diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 8a8b03635cb..702d581fe54 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1 +1,2 @@ +--- custom: https://lmms.io/get-involved/#donate diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index fcc87560172..00000000000 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -name: Bug report -about: Create a report to help us improve -title: '' -labels: bug -assignees: '' - ---- - -# Please search the issue tracker for existing bug reports before submitting your own. Delete this line to confirm no similar report has been posted yet. - -### Bug Summary - -#### Steps to reproduce - -#### Expected behavior - -#### Actual behavior - -#### Screenshot - -#### Affected LMMS versions - - - -#### Logs -
- Click to expand -
-
-
-
diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 00000000000..fe3d60ff219 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,91 @@ +# yamllint disable-file rule:line-length +name: Bug Report +description: File a bug report to help us improve +labels: + - bug +body: + - type: input + id: system-information + attributes: + label: System Information + description: | + - The operating system you use to run LMMS. + - When relevant, also include your hardware information. + placeholder: ex. Fedora Linux 39, KDE Plasma 5.27.10 - 13th Gen Intel® Core™ i9-13950HX, 32GB RAM + validations: + required: true + - type: input + id: affected-version + attributes: + label: LMMS Version(s) + description: | + - The version of LMMS affected by the bug. + - Can be an official version number, nightly release identifier, or commit hash. + - The version number can be found under the Help > About menu. + placeholder: ex. 1.2.2, 1.3.0-alpha.1.518+gdd53bec31, 2d185df + validations: + required: true + - type: input + id: working-version + attributes: + label: Most Recent Working Version + description: | + - If there is a previous version of LMMS that did not exhibit the bug, include it here. + placeholder: ex. 1.2.2, 1.3.0-alpha.1.518+gdd53bec31, 2d185df + validations: + required: false + - type: textarea + id: bug-summary + attributes: + label: Bug Summary + description: Briefly describe the bug. + validations: + required: true + - type: textarea + id: expected-behaviour + attributes: + label: Expected Behaviour + description: Describe what should have happened. + validations: + required: true + - type: textarea + id: steps-to-reproduce + attributes: + label: Steps To Reproduce + description: | + - Describe the minimum set of steps required to reproduce this bug. + - If you included a minimum reproducible project below, you can describe here how it should be used. + validations: + required: true + - type: textarea + id: logs + attributes: + label: Logs + description: | + - Copy and paste any relevant log output here. + value: | +
+ Click to expand +
+          
+        
+
+ validations: + required: false + - type: textarea + id: supporting-files + attributes: + label: Screenshots / Minimum Reproducible Project + description: | + - Upload any screenshots showing the bug in action. + - If possible, also include a .mmp/.mmpz project containing the simplest possible + setup needed to reproduce the bug. + + ***Note:** To upload a project file to GitHub, it will need to be placed in a .zip archive.* + - type: checkboxes + id: search-for-existing + attributes: + label: Please search the issue tracker for existing bug reports before submitting your own. + options: + - label: I have searched all existing issues and confirmed that this is not a duplicate. + required: true diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 2c51f276e3d..735942ffba8 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -1,4 +1,5 @@ +--- contact_links: -- name: Get help on Discord - url: https://lmms.io/chat/ - about: Need help? Have a question? Reach out to other LMMS users on our Discord server! + - name: Get help on Discord + url: https://lmms.io/chat/ + about: Need help? Have a question? Reach out to other LMMS users on our Discord server! diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md deleted file mode 100644 index f9a0ae1928c..00000000000 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -name: Feature request -about: Suggest an idea for this project -title: '' -labels: enhancement -assignees: '' - ---- - -# Please search the issue tracker for existing feature requests before submitting your own. Delete this line to confirm no similar request has been posted yet. - -### Enhancement Summary - -#### Justification - -#### Mockup - - diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 00000000000..cc233a6367a --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,32 @@ +# yamllint disable-file rule:line-length +name: Feature Request +description: Suggest an idea for the project +labels: + - "enhancement" +body: + - type: textarea + id: enhancement-summary + attributes: + label: Enhancement Summary + description: | + - Briefly describe the enhancement. + - Explain why you believe the proposed enhancement to be a good idea, and (if applicable) how it helps + overcome a limitation of LMMS you are currently facing. + validations: + required: true + - type: textarea + id: mockup + attributes: + label: Implementation Details / Mockup + description: | + - Explain how you believe this enhancement should be implemented. + - If your proposal encompasses changes to the user interface, include diagrams displaying your intent. + validations: + required: true + - type: checkboxes + id: search-for-existing + attributes: + label: Please search the issue tracker for existing feature requests before submitting your own. + options: + - label: I have searched all existing issues and confirmed that this is not a duplicate. + required: true diff --git a/.github/no-response.yml b/.github/no-response.yml index 4761654082e..f6c32953977 100644 --- a/.github/no-response.yml +++ b/.github/no-response.yml @@ -1,2 +1,3 @@ +--- # Label requiring a response responseRequiredLabel: "response required" diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 5fe1ec7bf72..74134aabde5 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -8,7 +8,7 @@ jobs: linux: name: linux runs-on: ubuntu-latest - container: lmmsci/linux.gcc:18.04 + container: ghcr.io/lmms/linux.gcc:20.04 env: CMAKE_OPTS: >- -DUSE_WERROR=ON @@ -18,12 +18,8 @@ jobs: CCACHE_NOCOMPRESS: 1 MAKEFLAGS: -j2 steps: - - name: Update and configure Git - run: | - add-apt-repository ppa:git-core/ppa - apt-get update - apt-get --yes install git - git config --global --add safe.directory "$GITHUB_WORKSPACE" + - name: Configure git + run: git config --global --add safe.directory "$GITHUB_WORKSPACE" - name: Check out uses: actions/checkout@v3 with: @@ -41,20 +37,22 @@ jobs: run: | ccache --zero-stats source /opt/qt5*/bin/qt5*-env.sh || true - mkdir build && cd build - cmake .. $CMAKE_OPTS -DCMAKE_INSTALL_PREFIX=./install + cmake -S . \ + -B build \ + -DCMAKE_INSTALL_PREFIX=./install \ + $CMAKE_OPTS - name: Build run: cmake --build build - - name: Build tests - run: cmake --build build --target tests - name: Run tests - run: build/tests/tests + run: | + cd build/tests + ctest --output-on-failure -j2 - name: Package run: | cmake --build build --target install cmake --build build --target appimage - name: Upload artifacts - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: linux path: build/lmms-*.AppImage @@ -62,23 +60,35 @@ jobs: run: | ccache --cleanup echo "[ccache config]" - ccache --print-config + ccache --show-config echo "[ccache stats]" ccache --show-stats env: CCACHE_MAXSIZE: 500M macos: - name: macos - runs-on: macos-12 + strategy: + fail-fast: false + matrix: + arch: [ x86_64, arm64 ] + include: + - arch: x86_64 + os: macos-13 + xcode: "15.2" + - arch: arm64 + os: macos-14 + xcode: "15.4" + name: macos-${{ matrix.arch }} + runs-on: ${{ matrix.os }} env: CMAKE_OPTS: >- + -Werror=dev -DUSE_WERROR=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo -DUSE_COMPILE_CACHE=ON CCACHE_MAXSIZE: 0 CCACHE_NOCOMPRESS: 1 MAKEFLAGS: -j3 - DEVELOPER_DIR: /Applications/Xcode_13.1.app/Contents/Developer + DEVELOPER_DIR: /Applications/Xcode_${{ matrix.xcode }}.app/Contents/Developer steps: - name: Check out uses: actions/checkout@v3 @@ -88,19 +98,21 @@ jobs: - name: Clean up Homebrew download cache run: rm -rf ~/Library/Caches/Homebrew/downloads - name: Restore Homebrew download cache + id: cache-homebrew uses: actions/cache/restore@v3 with: key: n/a - only restore from restore-keys restore-keys: | - homebrew- + homebrew-${{ matrix.arch }}- path: ~/Library/Caches/Homebrew/downloads - name: Cache ccache data uses: actions/cache@v3 with: - key: ccache-${{ github.job }}-${{ github.ref }}-${{ github.run_id }} + key: "ccache-${{ github.job }}-${{ matrix.arch }}-${{ github.ref }}\ + -${{ github.run_id }}" restore-keys: | - ccache-${{ github.job }}-${{ github.ref }}- - ccache-${{ github.job }}- + ccache-${{ github.job }}-${{ matrix.arch }}-${{ github.ref }}- + ccache-${{ github.job }}-${{ matrix.arch }}- path: ~/Library/Caches/ccache - name: Install dependencies run: | @@ -118,23 +130,24 @@ jobs: cmake -S . \ -B build \ -DCMAKE_INSTALL_PREFIX="../target" \ - -DCMAKE_PREFIX_PATH="$(brew --prefix qt5)" \ + -DCMAKE_PREFIX_PATH="$(brew --prefix qt@5)" \ + -DCMAKE_OSX_ARCHITECTURES=${{ matrix.arch }} \ $CMAKE_OPTS \ -DUSE_WERROR=OFF - name: Build run: cmake --build build - - name: Build tests - run: cmake --build build --target tests - name: Run tests - run: build/tests/tests + run: | + cd build/tests + ctest --output-on-failure -j3 - name: Package run: | cmake --build build --target install cmake --build build --target dmg - name: Upload artifacts - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: - name: macos + name: macos-${{ matrix.arch }} path: build/lmms-*.dmg - name: Trim ccache and print statistics run: | @@ -146,10 +159,14 @@ jobs: env: CCACHE_MAXSIZE: 500MB - name: Save Homebrew download cache + if: ${{ steps.cache-homebrew.outputs.cache-matched-key != env.key }} uses: actions/cache/save@v3 with: - key: homebrew-${{ hashFiles('Brewfile.lock.json') }} + key: ${{ env.key }} path: ~/Library/Caches/Homebrew/downloads + env: + key: "homebrew-${{ matrix.arch }}\ + -${{ hashFiles('Brewfile.lock.json') }}" mingw: strategy: fail-fast: false @@ -157,9 +174,10 @@ jobs: arch: ['32', '64'] name: mingw${{ matrix.arch }} runs-on: ubuntu-latest - container: lmmsci/linux.mingw${{ matrix.arch }}:18.04 + container: ghcr.io/lmms/linux.mingw:20.04 env: CMAKE_OPTS: >- + -Werror=dev -DUSE_WERROR=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo -DUSE_COMPILE_CACHE=ON @@ -167,12 +185,14 @@ jobs: CCACHE_NOCOMPRESS: 1 MAKEFLAGS: -j2 steps: - - name: Update and configure Git + - name: Enable POSIX MinGW run: | - add-apt-repository ppa:git-core/ppa - apt-get update - apt-get --yes install git - git config --global --add safe.directory "$GITHUB_WORKSPACE" + update-alternatives --set i686-w64-mingw32-gcc /usr/bin/i686-w64-mingw32-gcc-posix + update-alternatives --set i686-w64-mingw32-g++ /usr/bin/i686-w64-mingw32-g++-posix + update-alternatives --set x86_64-w64-mingw32-gcc /usr/bin/x86_64-w64-mingw32-gcc-posix + update-alternatives --set x86_64-w64-mingw32-g++ /usr/bin/x86_64-w64-mingw32-g++-posix + - name: Configure git + run: git config --global --add safe.directory "$GITHUB_WORKSPACE" - name: Check out uses: actions/checkout@v3 with: @@ -190,16 +210,17 @@ jobs: - name: Configure run: | ccache --zero-stats - mkdir build && cd build - ../cmake/build_win${{ matrix.arch }}.sh + cmake -S . \ + -B build \ + -DCMAKE_INSTALL_PREFIX=./install \ + -DCMAKE_TOOLCHAIN_FILE="./cmake/toolchains/MinGW-W64-${{ matrix.arch }}.cmake" \ + $CMAKE_OPTS - name: Build run: cmake --build build - - name: Build tests - run: cmake --build build --target tests - name: Package run: cmake --build build --target package - name: Upload artifacts - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: mingw${{ matrix.arch }} path: build/lmms-*.exe @@ -207,7 +228,7 @@ jobs: run: | ccache --cleanup echo "[ccache config]" - ccache --print-config + ccache --show-config echo "[ccache stats]" ccache --show-stats env: @@ -220,7 +241,6 @@ jobs: name: msvc-${{ matrix.arch }} runs-on: windows-2019 env: - qt-version: '5.15.2' CCACHE_MAXSIZE: 0 CCACHE_NOCOMPRESS: 1 steps: @@ -240,30 +260,31 @@ jobs: - name: Cache ccache data uses: actions/cache@v3 with: + # yamllint disable rule:line-length key: "ccache-${{ github.job }}-${{ matrix.arch }}-${{ github.ref }}\ -${{ github.run_id }}" restore-keys: | ccache-${{ github.job }}-${{ matrix.arch }}-${{ github.ref }}- ccache-${{ github.job }}-${{ matrix.arch }}- path: ~\AppData\Local\ccache + # yamllint enable rule:line-length - name: Install tools run: choco install ccache - - name: Install 64-bit Qt - if: matrix.arch == 'x64' + - name: Install Qt uses: jurplel/install-qt-action@b3ea5275e37b734d027040e2c7fe7a10ea2ef946 with: - version: ${{ env.qt-version }} - arch: win64_msvc2019_64 + version: '5.15.2' + arch: |- + ${{ + fromJSON(' + { + "x86": "win32_msvc2019", + "x64": "win64_msvc2019_64" + } + ')[matrix.arch] + }} archives: qtbase qtsvg qttools cache: true - - name: Install 32-bit Qt - uses: jurplel/install-qt-action@b3ea5275e37b734d027040e2c7fe7a10ea2ef946 - with: - version: ${{ env.qt-version }} - arch: win32_msvc2019 - archives: qtbase qtsvg qttools - cache: true - set-env: ${{ matrix.arch == 'x86' }} - name: Set up build environment uses: ilammy/msvc-dev-cmd@cec98b9d092141f74527d0afa6feb2af698cfe89 with: @@ -276,8 +297,10 @@ jobs: -B build ` -G Ninja ` --toolchain C:/vcpkg/scripts/buildsystems/vcpkg.cmake ` + -Werror=dev ` -DCMAKE_BUILD_TYPE=RelWithDebInfo ` -DUSE_COMPILE_CACHE=ON ` + -DUSE_WERROR=ON ` -DVCPKG_TARGET_TRIPLET="${{ matrix.arch }}-windows" ` -DVCPKG_HOST_TRIPLET="${{ matrix.arch }}-windows" ` -DVCPKG_MANIFEST_INSTALL="${{ env.should_install_manifest }}" @@ -286,12 +309,14 @@ jobs: ${{ steps.cache-deps.outputs.cache-hit == 'true' && 'NO' || 'YES' }} - name: Build run: cmake --build build - - name: Build tests - run: cmake --build build --target tests + - name: Run tests + run: | + cd build/tests + ctest --output-on-failure -j2 - name: Package run: cmake --build build --target package - name: Upload artifacts - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: msvc-${{ matrix.arch }} path: build\lmms-*.exe diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml index 3f770067466..228f383c127 100644 --- a/.github/workflows/checks.yml +++ b/.github/workflows/checks.yml @@ -31,3 +31,10 @@ jobs: $(find "./cmake/" -type f -name '*.sh' -o -name "*.sh.in") \ doc/bash-completion/lmms \ buildtools/update_locales + yamllint: + runs-on: ubuntu-latest + steps: + - name: Check out + uses: actions/checkout@v3 + - name: Run yamllint + run: for i in $(git ls-files '*.yml'); do yamllint $i; done diff --git a/.gitignore b/.gitignore index 1b855f204cb..cc2823ba06a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,5 @@ -/build -/target +/build/ +/target/ .*.sw? .DS_Store *~ diff --git a/.gitmodules b/.gitmodules index fa6980ac5f8..58c4d8526d4 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,15 +1,12 @@ [submodule "src/3rdparty/qt5-x11embed"] path = src/3rdparty/qt5-x11embed url = https://github.com/Lukas-W/qt5-x11embed.git -[submodule "src/3rdparty/rpmalloc/rpmalloc"] - path = src/3rdparty/rpmalloc/rpmalloc - url = https://github.com/mjansson/rpmalloc.git [submodule "plugins/ZynAddSubFx/zynaddsubfx"] path = plugins/ZynAddSubFx/zynaddsubfx url = https://github.com/lmms/zynaddsubfx.git [submodule "plugins/FreeBoy/game-music-emu"] path = plugins/FreeBoy/game-music-emu - url = https://bitbucket.org/mpyne/game-music-emu.git + url = https://github.com/libgme/game-music-emu.git [submodule "plugins/OpulenZ/adplug"] path = plugins/OpulenZ/adplug url = https://github.com/adplug/adplug.git @@ -24,13 +21,10 @@ url = https://github.com/swh/ladspa [submodule "plugins/LadspaEffect/tap/tap-plugins"] path = plugins/LadspaEffect/tap/tap-plugins - url = https://github.com/tomszilagyi/tap-plugins + url = https://github.com/lmms/tap-plugins [submodule "src/3rdparty/weakjack/weakjack"] path = src/3rdparty/weakjack/weakjack url = https://github.com/x42/weakjack.git -[submodule "src/3rdparty/mingw-std-threads"] - path = src/3rdparty/mingw-std-threads - url = https://github.com/meganz/mingw-std-threads.git [submodule "doc/wiki"] path = doc/wiki url = https://github.com/lmms/lmms.wiki.git diff --git a/.tx/config b/.tx/config index ab92433c518..f75700e9751 100644 --- a/.tx/config +++ b/.tx/config @@ -3,9 +3,8 @@ host = https://www.transifex.com minimum_perc = 51 #Need to finish at least 51% before merging back -[lmms.lmms] +[o:lmms:p:lmms:r:lmms] file_filter = data/locale/.ts source_file = data/locale/en.ts source_lang = en -type = QT - +type = QT diff --git a/.yamllint b/.yamllint new file mode 100644 index 00000000000..a7aa0ae1ed5 --- /dev/null +++ b/.yamllint @@ -0,0 +1,3 @@ +rules: + line-length: + max: 120 # be conforming to LMMS coding rules diff --git a/CMakeLists.txt b/CMakeLists.txt index 858849abd2f..5bb4adc4aa8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -CMAKE_MINIMUM_REQUIRED(VERSION 3.9) +CMAKE_MINIMUM_REQUIRED(VERSION 3.13) # Set the given policy to NEW. If it does not exist, it will not be set. If it # is already set to NEW (most likely due to predating the minimum required CMake @@ -15,8 +15,7 @@ function(enable_policy_if_exists id) endif() endfunction() -# Needed for the SWH Ladspa plugins. See below. -enable_policy_if_exists(CMP0074) # find_package() uses _ROOT variables. +enable_policy_if_exists(CMP0092) # MSVC warning flags are not in CMAKE__FLAGS by default. # Needed for ccache support with MSVC enable_policy_if_exists(CMP0141) # MSVC debug information format flags are selected by an abstraction. @@ -43,10 +42,11 @@ INCLUDE(AddFileDependencies) INCLUDE(CheckIncludeFiles) INCLUDE(FindPkgConfig) INCLUDE(GenerateExportHeader) +include(StaticDependencies) STRING(TOUPPER "${CMAKE_PROJECT_NAME}" PROJECT_NAME_UCASE) -SET(PROJECT_YEAR 2023) +SET(PROJECT_YEAR 2024) SET(PROJECT_AUTHOR "LMMS Developers") SET(PROJECT_URL "https://lmms.io") @@ -71,6 +71,7 @@ INCLUDE(VersionInfo) INCLUDE(DetectMachine) OPTION(WANT_ALSA "Include ALSA (Advanced Linux Sound Architecture) support" ON) +OPTION(WANT_OSS "Include Open Sound System support" ON) OPTION(WANT_CALF "Include CALF LADSPA plugins" ON) OPTION(WANT_CAPS "Include C* Audio Plugin Suite (LADSPA plugins)" ON) OPTION(WANT_CARLA "Include Carla plugin" ON) @@ -93,8 +94,8 @@ OPTION(WANT_STK "Include Stk (Synthesis Toolkit) support" ON) OPTION(WANT_SWH "Include Steve Harris's LADSPA plugins" ON) OPTION(WANT_TAP "Include Tom's Audio Processing LADSPA plugins" ON) OPTION(WANT_VST "Include VST support" ON) -OPTION(WANT_VST_32 "Include 32-bit VST support" ON) -OPTION(WANT_VST_64 "Include 64-bit VST support" ON) +OPTION(WANT_VST_32 "Include 32-bit Windows VST support" ON) +OPTION(WANT_VST_64 "Include 64-bit Windows VST support" ON) OPTION(WANT_WINMM "Include WinMM MIDI support" OFF) OPTION(WANT_DEBUG_FPE "Debug floating point exceptions" OFF) option(WANT_DEBUG_ASAN "Enable AddressSanitizer" OFF) @@ -109,9 +110,11 @@ IF(LMMS_BUILD_APPLE) LINK_DIRECTORIES("${APPLE_PREFIX}/lib") SET(WANT_SOUNDIO OFF) SET(WANT_ALSA OFF) + SET(WANT_OSS OFF) SET(WANT_PULSEAUDIO OFF) SET(WANT_VST OFF) SET(STATUS_ALSA "") + SET(STATUS_OSS "") SET(STATUS_PULSEAUDIO "") SET(STATUS_APPLEMIDI "OK") ELSE(LMMS_BUILD_APPLE) @@ -121,13 +124,18 @@ ENDIF(LMMS_BUILD_APPLE) IF(LMMS_BUILD_WIN32) SET(WANT_ALSA OFF) + SET(WANT_OSS OFF) SET(WANT_PULSEAUDIO OFF) SET(WANT_SNDIO OFF) SET(WANT_SOUNDIO OFF) SET(WANT_WINMM ON) SET(BUNDLE_QT_TRANSLATIONS ON) SET(LMMS_HAVE_WINMM TRUE) + if(NOT LMMS_BUILD_WIN64) + set(WANT_VST_64 OFF) + endif() SET(STATUS_ALSA "") + SET(STATUS_OSS "") SET(STATUS_PULSEAUDIO "") SET(STATUS_SOUNDIO "") SET(STATUS_SNDIO "") @@ -137,16 +145,6 @@ ELSE(LMMS_BUILD_WIN32) SET(STATUS_WINMM "") ENDIF(LMMS_BUILD_WIN32) - -# TODO: Fix linking issues with msys debug builds -IF(LMMS_BUILD_MSYS AND CMAKE_BUILD_TYPE STREQUAL "Debug") - SET(WANT_GIG OFF) - SET(WANT_STK OFF) - SET(WANT_SWH OFF) - SET(STATUS_GIG "not built as requested") - SET(STATUS_STK "not built as requested") -ENDIF() - SET(CMAKE_CXX_STANDARD_REQUIRED ON) CHECK_INCLUDE_FILES(pthread.h LMMS_HAVE_PTHREAD_H) @@ -156,6 +154,7 @@ CHECK_INCLUDE_FILES(sys/types.h LMMS_HAVE_SYS_TYPES_H) CHECK_INCLUDE_FILES(sys/ipc.h LMMS_HAVE_SYS_IPC_H) CHECK_INCLUDE_FILES(sys/time.h LMMS_HAVE_SYS_TIME_H) CHECK_INCLUDE_FILES(sys/times.h LMMS_HAVE_SYS_TIMES_H) +CHECK_INCLUDE_FILES(sys/prctl.h LMMS_HAVE_SYS_PRCTL_H) CHECK_INCLUDE_FILES(sched.h LMMS_HAVE_SCHED_H) CHECK_INCLUDE_FILES(sys/soundcard.h LMMS_HAVE_SYS_SOUNDCARD_H) CHECK_INCLUDE_FILES(soundcard.h LMMS_HAVE_SOUNDCARD_H) @@ -171,10 +170,10 @@ check_library_exists(rt shm_open "" LMMS_HAVE_LIBRT) LIST(APPEND CMAKE_PREFIX_PATH "${CMAKE_INSTALL_PREFIX}") -FIND_PACKAGE(Qt5 5.6.0 COMPONENTS Core Gui Widgets Xml REQUIRED) +FIND_PACKAGE(Qt5 5.9.0 COMPONENTS Core Gui Widgets Xml REQUIRED) FIND_PACKAGE(Qt5 COMPONENTS LinguistTools QUIET) -INCLUDE_DIRECTORIES( +include_directories(SYSTEM ${Qt5Core_INCLUDE_DIRS} ${Qt5Gui_INCLUDE_DIRS} ${Qt5Widgets_INCLUDE_DIRS} @@ -339,37 +338,14 @@ IF(WANT_SDL) FIND_PACKAGE(SDL2) IF(SDL2_FOUND) SET(LMMS_HAVE_SDL TRUE) - SET(LMMS_HAVE_SDL2 TRUE) - SET(STATUS_SDL "OK, using SDL2") + SET(STATUS_SDL "OK") SET(SDL2_LIBRARY "SDL2::SDL2") - SET(SDL_INCLUDE_DIR "") - SET(SDL_LIBRARY "") ELSE() + SET(STATUS_SDL "not found, please install libsdl2-dev (or similar) if you require SDL support") SET(SDL2_LIBRARY "") ENDIF() ENDIF() -# fallback to SDL1 -IF(WANT_SDL AND NOT LMMS_HAVE_SDL2) - # Fallback to SDL1.2 - SET(SDL_BUILDING_LIBRARY TRUE) - FIND_PACKAGE(SDL) - IF(SDL_FOUND) - SET(LMMS_HAVE_SDL TRUE) - SET(STATUS_SDL "OK, using SDL1.2") - # fix mingw since 53abd65 - IF(NOT SDL_INCLUDE_DIR) - SET(SDL_INCLUDE_DIR "${CMAKE_FIND_ROOT_PATH}/include") - ENDIF() - - ELSE() - SET(STATUS_SDL "not found, please install libsdl2-dev (or similar) " - "if you require SDL support") - SET(SDL_INCLUDE_DIR "") - SET(SDL_LIBRARY "") - ENDIF() -ENDIF() - # check for Sid if(WANT_SID) if(PERL_FOUND) @@ -412,7 +388,7 @@ IF(WANT_SOUNDIO) IF(SOUNDIO_FOUND) SET(LMMS_HAVE_SOUNDIO TRUE) SET(STATUS_SOUNDIO "OK") - INCLUDE_DIRECTORIES("${SOUNDIO_INCLUDE_DIR}") + include_directories(SYSTEM "${SOUNDIO_INCLUDE_DIR}") ELSE(SOUNDIO_FOUND) SET(SOUNDIO_INCLUDE_DIR "") SET(STATUS_SOUNDIO "not found, please install libsoundio if you require libsoundio support") @@ -464,13 +440,13 @@ IF(WANT_OGGVORBIS) ENDIF(WANT_OGGVORBIS) -# check whether to enable OSS-support -IF(LMMS_HAVE_SOUNDCARD_H OR LMMS_HAVE_SYS_SOUNDCARD_H) +# check for OSS +IF(WANT_OSS AND (LMMS_HAVE_SOUNDCARD_H OR LMMS_HAVE_SYS_SOUNDCARD_H)) SET(LMMS_HAVE_OSS TRUE) SET(STATUS_OSS "OK") -ELSE(LMMS_HAVE_SOUNDCARD_H OR LMMS_HAVE_SYS_SOUNDCARD_H) +ELSEIF(WANT_OSS) SET(STATUS_OSS "") -ENDIF(LMMS_HAVE_SOUNDCARD_H OR LMMS_HAVE_SYS_SOUNDCARD_H) +ENDIF() # check for ALSA @@ -493,11 +469,9 @@ ENDIF(NOT LMMS_HAVE_ALSA) IF(WANT_JACK) IF(WANT_WEAKJACK) SET(LMMS_HAVE_WEAKJACK TRUE) - SET(WEAKJACK_INCLUDE_DIRS ${CMAKE_SOURCE_DIR}/src/3rdparty/weakjack/weakjack) - SET(JACK_INCLUDE_DIRS ${CMAKE_SOURCE_DIR}/src/3rdparty/jack2/common) SET(STATUS_JACK "OK (weak linking enabled)") - # use dlsym instead - SET(JACK_LIBRARIES ${CMAKE_DL_LIBS}) + set(JACK_INCLUDE_DIRS "") + set(JACK_LIBRARIES weakjack) SET(LMMS_HAVE_JACK TRUE) SET(LMMS_HAVE_JACK_PRENAME TRUE) SET(JACK_FOUND TRUE) @@ -582,26 +556,42 @@ IF(WANT_SNDIO) ENDIF(WANT_SNDIO) # check for WINE -IF(WANT_VST) - FIND_PACKAGE(Wine) - IF(WINE_FOUND) - SET(LMMS_SUPPORT_VST TRUE) - IF(WINE_LIBRARY_FIX) - SET(STATUS_VST "OK, with workaround linking ${WINE_LIBRARY_FIX}") - ELSE() - SET(STATUS_VST "OK") - ENDIF() - ELSEIF(WANT_VST_NOWINE) - SET(LMMS_SUPPORT_VST TRUE) - SET(STATUS_VST "OK") - ELSE(WINE_FOUND) - SET(STATUS_VST "not found, please install (lib)wine-dev (or similar) - 64 bit systems additionally need gcc-multilib and g++-multilib") - ENDIF(WINE_FOUND) -ENDIF(WANT_VST) -IF(LMMS_BUILD_WIN32) - SET(LMMS_SUPPORT_VST TRUE) - SET(STATUS_VST "OK") -ENDIF(LMMS_BUILD_WIN32) +if(WANT_VST) + if((WANT_VST_32 OR WANT_VST_64) AND NOT LMMS_BUILD_WIN32) + find_package(Wine) + include(CheckWineGcc) + endif() + macro(check_vst bits) + if(NOT WANT_VST_${bits}) + set(STATUS_VST_${bits} "Not built, as requested") + elseif(LMMS_BUILD_WIN32) + set(STATUS_VST_${bits} "OK") + set(LMMS_HAVE_VST_${bits} TRUE) + elseif(NOT WINE_FOUND) + set(STATUS_VST_${bits} "not found, please install (lib)wine-dev (or similar) - 64 bit systems additionally need gcc-multilib and g++-multilib") + else() + CheckWineGcc("${bits}" "${WINEGCC}" WINEGCC_WORKING) + if(WINEGCC_WORKING) + set(LMMS_HAVE_VST_${bits} TRUE) + if(WINE_LIBRARY_FIX) + set(STATUS_VST_${bits} "OK, with workaround linking ${WINE_LIBRARY_FIX}") + else() + set(STATUS_VST_${bits} "OK") + endif() + else() + set(STATUS_VST_${bits} "winegcc fails to compile ${bits}-bit binaries, please make sure you have ${bits}-bit GCC libraries") + endif() + endif() + endmacro() + check_vst(32) + check_vst(64) + if(LMMS_HAVE_VST_32 OR LMMS_HAVE_VST_64 OR LMMS_BUILD_LINUX) + set(LMMS_HAVE_VST TRUE) + set(STATUS_VST "OK") + else() + set(STATUS_VST "No hosts selected and available") + endif() +endif() IF(WANT_DEBUG_FPE) IF(LMMS_BUILD_LINUX OR LMMS_BUILD_APPLE) @@ -617,28 +607,6 @@ ENDIF(WANT_DEBUG_FPE) # check for libsamplerate FIND_PACKAGE(Samplerate 0.1.8 MODULE REQUIRED) -# set compiler flags -IF(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang") - SET(WERROR_FLAGS "-Wall -Werror=unused-function -Wno-sign-compare -Wno-strict-overflow") - OPTION(USE_WERROR "Add -werror to the build flags. Stops the build on warnings" OFF) - IF(${USE_WERROR}) - SET(WERROR_FLAGS "${WERROR_FLAGS} -Werror") - ENDIF() - - # Due to a regression in gcc-4.8.X, we need to disable array-bounds check - IF (CMAKE_COMPILER_IS_GNUCXX AND ((CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL "4.8.0") OR (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER "4.8.0") OR LMMS_BUILD_WIN32)) - SET(WERROR_FLAGS "${WERROR_FLAGS} -Wno-array-bounds -Wno-attributes") - ENDIF() -ELSEIF(MSVC) - # Remove any existing /W flags - STRING(REGEX REPLACE "/W[0-4]" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) - SET(WERROR_FLAGS "/W2") - IF(${USE_WERROR}) - SET(WERROR_FLAGS "${WERROR_FLAGS} /WX") - ENDIF() -ENDIF() - - IF(NOT CMAKE_BUILD_TYPE) message(STATUS "Setting build type to 'Release' as none was specified.") set(CMAKE_BUILD_TYPE Release CACHE STRING "Choose the type of build." FORCE) @@ -647,8 +615,6 @@ IF(NOT CMAKE_BUILD_TYPE) "MinSizeRel" "RelWithDebInfo") ENDIF() -SET(CMAKE_C_FLAGS "${WERROR_FLAGS} ${CMAKE_C_FLAGS}") -SET(CMAKE_CXX_FLAGS "${WERROR_FLAGS} ${CMAKE_CXX_FLAGS}") SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DLMMS_DEBUG") SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DLMMS_DEBUG") @@ -690,12 +656,9 @@ ENDIF() # we somehow have to make LMMS-binary depend on MOC-files ADD_FILE_DEPENDENCIES("${CMAKE_BINARY_DIR}/lmmsconfig.h") -IF(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang") - IF(WIN32) - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-attributes") - ELSE(WIN32) - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -DPIC") - ENDIF(WIN32) +if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang" AND NOT WIN32) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC -DPIC") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -DPIC") elseif(MSVC) # Use UTF-8 as the source and execution character set add_compile_options("/utf-8") @@ -725,6 +688,8 @@ add_sanitizer(memory "Clang" WANT_DEBUG_MSAN STATUS_DEBUG_MSAN -fno-omit-frame-p # not being found by PeakController add_sanitizer(undefined "GNU|Clang" WANT_DEBUG_UBSAN STATUS_DEBUG_UBSAN -fno-sanitize=vptr) +# Add warning and error flags +include(ErrorFlags) # use ccache include(CompileCache) @@ -847,8 +812,9 @@ MESSAGE( "* SoundFont2 player : ${STATUS_FLUIDSYNTH}\n" "* Sid instrument : ${STATUS_SID}\n" "* Stk Mallets : ${STATUS_STK}\n" -"* VST-instrument hoster : ${STATUS_VST}\n" -"* VST-effect hoster : ${STATUS_VST}\n" +"* VST plugin host : ${STATUS_VST}\n" +" * 32-bit Windows host : ${STATUS_VST_32}\n" +" * 64-bit Windows host : ${STATUS_VST_64}\n" "* CALF LADSPA plugins : ${STATUS_CALF}\n" "* CAPS LADSPA plugins : ${STATUS_CAPS}\n" "* CMT LADSPA plugins : ${STATUS_CMT}\n" diff --git a/cmake/apple/CMakeLists.txt b/cmake/apple/CMakeLists.txt index 0b66689e75d..3fd0a4da457 100644 --- a/cmake/apple/CMakeLists.txt +++ b/cmake/apple/CMakeLists.txt @@ -19,8 +19,19 @@ CONFIGURE_FILE("lmms.plist.in" "${CMAKE_BINARY_DIR}/Info.plist") CONFIGURE_FILE("install_apple.sh.in" "${CMAKE_BINARY_DIR}/install_apple.sh" @ONLY) CONFIGURE_FILE("package_apple.json.in" "${CMAKE_BINARY_DIR}/package_apple.json" @ONLY) +IF(CMAKE_OSX_ARCHITECTURES) + SET(DMG_ARCH "${CMAKE_OSX_ARCHITECTURES}") +ELSEIF(IS_ARM64) + # Target arch is host arch + SET(DMG_ARCH "arm64") +ELSE() + # Fallback to Intel + SET(DMG_ARCH "x86_64") +ENDIF() + # DMG creation target -SET(DMG_FILE "${CMAKE_BINARY_DIR}/${CMAKE_PROJECT_NAME}-${VERSION}-mac${APPLE_OS_VER}.dmg") +SET(DMG_FILE "${CMAKE_BINARY_DIR}/${CMAKE_PROJECT_NAME}-${VERSION}-mac${APPLE_OS_VER}-${DMG_ARCH}.dmg") + FILE(REMOVE "${DMG_FILE}") ADD_CUSTOM_TARGET(removedmg COMMAND touch "\"${DMG_FILE}\"" && rm "\"${DMG_FILE}\"" diff --git a/cmake/build_win32.sh b/cmake/build_win32.sh deleted file mode 100755 index 33cd8ecce17..00000000000 --- a/cmake/build_win32.sh +++ /dev/null @@ -1,40 +0,0 @@ -#!/usr/bin/env bash -DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" - -# Accomodate both linux windows mingw locations -if [ -z "$ARCH" ]; then - ARCH=32 -fi - -MINGW=/mingw$ARCH - -if [ -z "$MSYSCON" ]; then - MINGW=/opt$MINGW - - DISTRO=$(lsb_release -si) - DISTRO_VERSION=$(lsb_release -sr) - - if [ "$DISTRO" != "Ubuntu" ]; then - echo "This script only supports Ubuntu" - exit 1 - fi - - if [ "$DISTRO_VERSION" == "14.04" ]; then - TOOLCHAIN="$DIR/toolchains/Ubuntu-MinGW-X-Trusty-$ARCH.cmake" - else - TOOLCHAIN="$DIR/toolchains/Ubuntu-MinGW-W64-$ARCH.cmake" - fi -else - TOOLCHAIN="$DIR/toolchains/MSYS-$ARCH.cmake" -fi - -export PATH=$MINGW/bin:$PATH -export CXXFLAGS="$CFLAGS" -if [ "$ARCH" == "32" ]; then - export CFLAGS="-march=pentium3 -mtune=generic -mpreferred-stack-boundary=5 -mfpmath=sse" -fi - -CMAKE_OPTS="-DCMAKE_PREFIX_PATH=$MINGW $CMAKE_OPTS" - -# shellcheck disable=SC2086 -cmake "$DIR/.." -DCMAKE_TOOLCHAIN_FILE="$TOOLCHAIN" $CMAKE_OPTS diff --git a/cmake/build_win64.sh b/cmake/build_win64.sh deleted file mode 100755 index 8dabe09f8f9..00000000000 --- a/cmake/build_win64.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/env bash -DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -ARCH=64 "$DIR/build_win32.sh" diff --git a/cmake/install/excludelist-win b/cmake/install/excludelist-win index 17793a113d9..ac3c479019e 100644 --- a/cmake/install/excludelist-win +++ b/cmake/install/excludelist-win @@ -3,17 +3,21 @@ ADVAPI32.dll COMCTL32.dll comdlg32.dll +d3d11.dll dwmapi.dll +dxgi.dll GDI32.dll IMM32.dll KERNEL32.dll MPR.DLL msvcrt.dll +netapi32.dll ole32.dll OLEAUT32.dll OPENGL32.DLL SHELL32.dll USER32.dll +userenv.dll UxTheme.dll VERSION.dll WINMM.DLL diff --git a/cmake/modules/BuildPlugin.cmake b/cmake/modules/BuildPlugin.cmake index 70e518c93ce..69af41ecb12 100644 --- a/cmake/modules/BuildPlugin.cmake +++ b/cmake/modules/BuildPlugin.cmake @@ -1,12 +1,12 @@ # BuildPlugin.cmake - Copyright (c) 2008 Tobias Doerffel # # description: build LMMS-plugin -# usage: BUILD_PLUGIN( MOCFILES EMBEDDED_RESOURCES UICFILES LINK ) +# usage: BUILD_PLUGIN( MOCFILES EMBEDDED_RESOURCES LINK ) INCLUDE(GenQrc) MACRO(BUILD_PLUGIN PLUGIN_NAME) - CMAKE_PARSE_ARGUMENTS(PLUGIN "" "LINK;EXPORT_BASE_NAME" "MOCFILES;EMBEDDED_RESOURCES;UICFILES" ${ARGN}) + CMAKE_PARSE_ARGUMENTS(PLUGIN "" "LINK;EXPORT_BASE_NAME" "MOCFILES;EMBEDDED_RESOURCES" ${ARGN}) SET(PLUGIN_SOURCES ${PLUGIN_UNPARSED_ARGUMENTS}) INCLUDE_DIRECTORIES("${CMAKE_CURRENT_BINARY_DIR}" "${CMAKE_BINARY_DIR}" "${CMAKE_SOURCE_DIR}/include") @@ -31,10 +31,9 @@ MACRO(BUILD_PLUGIN PLUGIN_NAME) ENDIF(ER_LEN) QT5_WRAP_CPP(plugin_MOC_out ${PLUGIN_MOCFILES}) - QT5_WRAP_UI(plugin_UIC_out ${PLUGIN_UICFILES}) FOREACH(f ${PLUGIN_SOURCES}) - ADD_FILE_DEPENDENCIES(${f} ${RCC_OUT} ${plugin_UIC_out}) + ADD_FILE_DEPENDENCIES(${f} ${RCC_OUT}) ENDFOREACH(f) IF(LMMS_BUILD_APPLE) @@ -45,10 +44,6 @@ MACRO(BUILD_PLUGIN PLUGIN_NAME) LINK_DIRECTORIES("${CMAKE_BINARY_DIR}" "${CMAKE_SOURCE_DIR}") LINK_LIBRARIES(${QT_LIBRARIES}) ENDIF(LMMS_BUILD_WIN32) - IF(LMMS_BUILD_MSYS AND CMAKE_BUILD_TYPE STREQUAL "Debug") - # Override Qt debug libraries with release versions - SET(QT_LIBRARIES "${QT_OVERRIDE_LIBRARIES}") - ENDIF() IF (NOT PLUGIN_LINK) SET(PLUGIN_LINK "MODULE") @@ -65,7 +60,7 @@ MACRO(BUILD_PLUGIN PLUGIN_NAME) IF(LMMS_BUILD_APPLE) IF ("${PLUGIN_LINK}" STREQUAL "SHARED") - SET_TARGET_PROPERTIES(${PLUGIN_NAME} PROPERTIES LINK_FLAGS "-undefined dynamic_lookup") + TARGET_LINK_OPTIONS(${PLUGIN_NAME} PRIVATE -undefined dynamic_lookup) ENDIF() ENDIF(LMMS_BUILD_APPLE) IF(LMMS_BUILD_WIN32) diff --git a/cmake/modules/DetectMachine.cmake b/cmake/modules/DetectMachine.cmake index 388efeb820c..b9aa4c8c6e5 100644 --- a/cmake/modules/DetectMachine.cmake +++ b/cmake/modules/DetectMachine.cmake @@ -12,11 +12,6 @@ ELSE() SET(LMMS_BUILD_LINUX 1) ENDIF(WIN32) -# LMMS_BUILD_MSYS also set in build_winXX.sh -IF(LMMS_BUILD_WIN32 AND CMAKE_COMPILER_IS_GNUCXX AND DEFINED ENV{MSYSCON}) - SET(LMMS_BUILD_MSYS TRUE) -ENDIF() - MESSAGE("PROCESSOR: ${CMAKE_SYSTEM_PROCESSOR}") SET(LMMS_HOST_X86 FALSE) SET(LMMS_HOST_X86_64 FALSE) @@ -92,7 +87,7 @@ IF(WIN32) endif() ELSE() # Detect target architecture based on compiler target triple e.g. "x86_64-pc-linux" - EXEC_PROGRAM( ${CMAKE_C_COMPILER} ARGS "-dumpmachine ${CMAKE_C_FLAGS}" OUTPUT_VARIABLE Machine ) + execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpmachine ${CMAKE_C_FLAGS} OUTPUT_VARIABLE Machine) MESSAGE("Machine: ${Machine}") STRING(REGEX MATCH "i.86" IS_X86 "${Machine}") STRING(REGEX MATCH "86_64|amd64" IS_X86_64 "${Machine}") diff --git a/cmake/modules/ErrorFlags.cmake b/cmake/modules/ErrorFlags.cmake new file mode 100644 index 00000000000..57cc6ad49f8 --- /dev/null +++ b/cmake/modules/ErrorFlags.cmake @@ -0,0 +1,72 @@ +# Shim the SYSTEM property for older CMake versions - we rely on this property +# to determine which set of error flags to use. +if(CMAKE_VERSION VERSION_LESS "3.25") + define_property(TARGET + PROPERTY SYSTEM + INHERITED + BRIEF_DOCS "Shim of built-in SYSTEM property for CMake versions less than 3.25" + FULL_DOCS "Non-functional, but allows the property to be inherited properly." + "See the CMake documentation at https://cmake.org/cmake/help/latest/prop_tgt/SYSTEM.html." + ) +endif() + +# Allow the user to control whether to treat warnings as errors +option(USE_WERROR "Treat compiler warnings as errors" OFF) + +# Compute the appropriate flags for the current compiler and options +if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang") + set(COMPILE_ERROR_FLAGS + "-Wall" # Enable most warnings by default + ) + set(THIRD_PARTY_COMPILE_ERROR_FLAGS + "-w" # Disable all warnings + ) + + if(CMAKE_COMPILER_IS_GNUCXX) + list(APPEND COMPILE_ERROR_FLAGS + # The following warning generates false positives that are difficult + # to work around, in particular when inlining calls to standard + # algorithms performed on single-element arrays. See, for example, + # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111273. + "-Wno-array-bounds" # Permit out-of-bounds array subscripts + ) + + if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL "11") + list(APPEND COMPILE_ERROR_FLAGS + # This has the same problems described above for "array-bounds". + "-Wno-stringop-overread" # Permit string functions overreading the source + ) + endif() + endif() + + if(USE_WERROR) + list(APPEND COMPILE_ERROR_FLAGS + "-Werror" # Treat warnings as errors + ) + endif() +elseif(MSVC) + set(COMPILE_ERROR_FLAGS + "/W2" # Enable some warnings by default + "/external:W0" # Don't emit warnings for third-party code + "/external:anglebrackets" # Consider headers included with angle brackets to be third-party + "/external:templates-" # Still emit warnings from first-party instantiations of third-party templates + # Silence "class X needs to have DLL-interface to be used by clients of + # class Y" warnings. These aren't trivial to address, and don't pose a + # problem for us since we build all modules with the same compiler and + # options, and dynamically link the CRT. + "/wd4251" + ) + set(THIRD_PARTY_COMPILE_ERROR_FLAGS + "/W0" # Disable all warnings + ) + + if(USE_WERROR) + list(APPEND COMPILE_ERROR_FLAGS + "/WX" # Treat warnings as errors + ) + endif() +endif() + +# Add the flags to the whole directory tree. We use the third-party flags for +# targets whose SYSTEM property is true, and the normal flags otherwise. +add_compile_options("$>,${THIRD_PARTY_COMPILE_ERROR_FLAGS},${COMPILE_ERROR_FLAGS}>") diff --git a/cmake/modules/FindPulseAudio.cmake b/cmake/modules/FindPulseAudio.cmake index 8ea2616cf53..0023d1d6329 100644 --- a/cmake/modules/FindPulseAudio.cmake +++ b/cmake/modules/FindPulseAudio.cmake @@ -18,13 +18,15 @@ ENDIF (PULSEAUDIO_INCLUDE_DIR AND PULSEAUDIO_LIBRARIES) IF (NOT WIN32) # use pkg-config to get the directories and then use these values # in the FIND_PATH() and FIND_LIBRARY() calls - INCLUDE(FindPkgConfig) - pkg_check_modules(PA libpulse) - set(_PASIncDir ${PA_INCLUDE_DIRS}) - set(_PASLinkDir ${PA_LIBRARY_DIRS}) - set(_PASLinkFlags ${PA_LDFLAGS}) - set(_PASCflags ${PA_CFLAGS}) - SET(PULSEAUDIO_DEFINITIONS ${_PASCflags}) + find_package(PkgConfig QUIET) + if(PKG_CONFIG_FOUND) + pkg_check_modules(PA libpulse) + set(_PASIncDir ${PA_INCLUDE_DIRS}) + set(_PASLinkDir ${PA_LIBRARY_DIRS}) + set(_PASLinkFlags ${PA_LDFLAGS}) + set(_PASCflags ${PA_CFLAGS}) + set(PULSEAUDIO_DEFINITIONS ${_PASCflags}) + endif() ENDIF (NOT WIN32) FIND_PATH(PULSEAUDIO_INCLUDE_DIR pulse/pulseaudio.h diff --git a/cmake/modules/FindSDL2.cmake b/cmake/modules/FindSDL2.cmake index 3bad1002ead..6e07f7affc2 100644 --- a/cmake/modules/FindSDL2.cmake +++ b/cmake/modules/FindSDL2.cmake @@ -33,6 +33,18 @@ find_package(SDL2 CONFIG QUIET) if(TARGET SDL2::SDL2) + # SDL2::SDL2 under MinGW is an interface target for reasons, so we can't get + # the library location from it. Print minimal information and return early. + get_target_property(sdl2_target_type SDL2::SDL2 TYPE) + if(sdl2_target_type STREQUAL "INTERFACE_LIBRARY") + unset(sdl2_target_type) + if(NOT SDL2_FIND_QUIETLY) + message(STATUS "Found SDL2 (found version \"${SDL2_VERSION}\")") + endif() + return() + endif() + unset(sdl2_target_type) + # Extract details for find_package_handle_standard_args get_target_property(SDL2_LIBRARY SDL2::SDL2 LOCATION) get_target_property(SDL2_INCLUDE_DIR SDL2::SDL2 INTERFACE_INCLUDE_DIRECTORIES) diff --git a/cmake/modules/FindSndio.cmake b/cmake/modules/FindSndio.cmake index e993702c29e..a1b24d06c5b 100644 --- a/cmake/modules/FindSndio.cmake +++ b/cmake/modules/FindSndio.cmake @@ -24,7 +24,7 @@ check_library_exists(sndio sio_open "${SNDIO_LIBRARY_DIR}" HAVE_SIO_OPEN) find_path(SNDIO_INCLUDE_DIR sndio.h) include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(SNDIO DEFAULT_MSG SNDIO_LIBRARY SNDIO_INCLUDE_DIR HAVE_SIO_OPEN) +find_package_handle_standard_args(Sndio DEFAULT_MSG SNDIO_LIBRARY SNDIO_INCLUDE_DIR HAVE_SIO_OPEN) if(SNDIO_FOUND) set(SNDIO_INCLUDE_DIRS "${SNDIO_INCLUDE_DIR}") diff --git a/cmake/modules/FindSoundIo.cmake b/cmake/modules/FindSoundIo.cmake index 0d905ecf21c..f5948f06156 100644 --- a/cmake/modules/FindSoundIo.cmake +++ b/cmake/modules/FindSoundIo.cmake @@ -11,6 +11,6 @@ find_path(SOUNDIO_INCLUDE_DIR NAMES soundio/soundio.h) find_library(SOUNDIO_LIBRARY NAMES soundio) include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(SOUNDIO DEFAULT_MSG SOUNDIO_LIBRARY SOUNDIO_INCLUDE_DIR) +find_package_handle_standard_args(SoundIo DEFAULT_MSG SOUNDIO_LIBRARY SOUNDIO_INCLUDE_DIR) mark_as_advanced(SOUNDIO_INCLUDE_DIR SOUNDIO_LIBRARY) diff --git a/cmake/modules/FindWine.cmake b/cmake/modules/FindWine.cmake index 024dac1ea50..19a0cffbbef 100644 --- a/cmake/modules/FindWine.cmake +++ b/cmake/modules/FindWine.cmake @@ -2,8 +2,15 @@ # Once done this will define # # WINE_FOUND - System has wine -# WINE_INCLUDE_DIRS - The wine include directories -# WINE_DEFINITIONS - Compiler switches required for using wine +# +# WINE_INCLUDE_DIR - Wine include directory +# WINE_BUILD - Path to winebuild +# WINE_CXX - Path to wineg++ +# WINE_GCC - Path to winegcc +# WINE_32_LIBRARY_DIRS - Path(s) to 32-bit wine libs +# WINE_32_FLAGS - 32-bit linker flags +# WINE_64_LIBRARY_DIRS - Path(s) to 64-bit wine libs +# WINE_64_FLAGS - 64-bit linker flags # MACRO(_findwine_find_flags output expression result) @@ -23,17 +30,49 @@ MACRO(_regex_replace_foreach EXPRESSION REPLACEMENT RESULT INPUT) ENDFOREACH() ENDMACRO() -LIST(APPEND CMAKE_PREFIX_PATH /opt/wine-stable /opt/wine-devel /opt/wine-staging /usr/lib/wine/) +# Prefer newest wine first +list(APPEND WINE_LOCATIONS + /opt/wine-staging + /opt/wine-devel + /opt/wine-stable + /usr/lib/wine) + +# Prepare bin search +foreach(_loc ${WINE_LOCATIONS}) + if(_loc STREQUAL /usr/lib/wine) + # /usr/lib/wine doesn't have a "bin" + list(APPEND WINE_CXX_LOCATIONS "${_loc}") + else() + # expect "bin" + list(APPEND WINE_CXX_LOCATIONS "${_loc}/bin") + endif() +endforeach() +# Fallback +list(APPEND WINE_CXX_LOCATIONS "/usr/bin") + +# Prefer most-common to least common +FIND_PROGRAM(WINE_CXX NAMES + wineg++ + wineg++-stable + PATHS + ${WINE_CXX_LOCATIONS} + NO_DEFAULT_PATH +) -FIND_PROGRAM(WINE_CXX - NAMES wineg++ winegcc winegcc64 winegcc32 winegcc-stable - PATHS /usr/lib/wine +FIND_PROGRAM(WINE_GCC NAMES + winegcc + winegcc-stable + PATHS + ${WINE_CXX_LOCATIONS} + NO_DEFAULT_PATH ) -FIND_PROGRAM(WINE_BUILD NAMES winebuild) + +FIND_PROGRAM(WINE_BUILD NAMES winebuild PATHS ${WINE_CXX_LOCATIONS} NO_DEFAULT_PATH) # Detect wine paths and handle linking problems IF(WINE_CXX) - EXEC_PROGRAM(${WINE_CXX} ARGS "-m32 -v /dev/zero" OUTPUT_VARIABLE WINEBUILD_OUTPUT_32) - EXEC_PROGRAM(${WINE_CXX} ARGS "-m64 -v /dev/zero" OUTPUT_VARIABLE WINEBUILD_OUTPUT_64) + # call wineg++ to obtain implied includes and libs + execute_process(COMMAND ${WINE_CXX} -m32 -v /dev/zero OUTPUT_VARIABLE WINEBUILD_OUTPUT_32 ERROR_QUIET) + execute_process(COMMAND ${WINE_CXX} -m64 -v /dev/zero OUTPUT_VARIABLE WINEBUILD_OUTPUT_64 ERROR_QUIET) _findwine_find_flags("${WINEBUILD_OUTPUT_32}" "^-isystem/usr/include$" BUGGED_WINEGCC) _findwine_find_flags("${WINEBUILD_OUTPUT_32}" "^-isystem" WINEGCC_INCLUDE_DIR) _findwine_find_flags("${WINEBUILD_OUTPUT_32}" "libwinecrt0\\.a.*" WINECRT_32) @@ -42,6 +81,9 @@ IF(WINE_CXX) _regex_replace_foreach("/wine/windows$" "" WINE_INCLUDE_HINT "${WINE_INCLUDE_HINT}") STRING(REGEX REPLACE "wine/libwinecrt0\\.a.*" "" WINE_32_LIBRARY_DIR "${WINECRT_32}") STRING(REGEX REPLACE "wine/libwinecrt0\\.a.*" "" WINE_64_LIBRARY_DIR "${WINECRT_64}") + # Handle winehq + STRING(REGEX REPLACE "/libwinecrt0\\.a.*" "/" WINE_32_LIBRARY_DIR "${WINE_32_LIBRARY_DIR}") + STRING(REGEX REPLACE "/libwinecrt0\\.a.*" "/" WINE_64_LIBRARY_DIR "${WINE_64_LIBRARY_DIR}") IF(BUGGED_WINEGCC) MESSAGE(WARNING "Your winegcc is unusable due to https://bugs.winehq.org/show_bug.cgi?id=46293,\n @@ -98,7 +140,11 @@ find_package_handle_standard_args(Wine DEFAULT_MSG WINE_CXX WINE_INCLUDE_DIRS) mark_as_advanced(WINE_INCLUDE_DIR WINE_LIBRARY WINE_CXX WINE_BUILD) IF(WINE_32_LIBRARY_DIR) - IF(WINE_32_LIBRARY_DIR MATCHES "wine*/lib") + IF(WINE_32_LIBRARY_DIR MATCHES "^/opt/wine-.*") + # winehq uses a singular lib directory + SET(WINE_32_FLAGS "-L${WINE_32_LIBRARY_DIR}") + SET(WINE_32_LIBRARY_DIRS "${WINE_32_LIBRARY_DIR}") + ELSEIF(WINE_32_LIBRARY_DIR MATCHES "wine*/lib") SET(WINE_32_FLAGS "-L${WINE_32_LIBRARY_DIR} -L${WINE_32_LIBRARY_DIR}../") SET(WINE_32_LIBRARY_DIRS "${WINE_32_LIBRARY_DIR}:${WINE_32_LIBRARY_DIR}/..") ELSE() @@ -108,7 +154,11 @@ IF(WINE_32_LIBRARY_DIR) ENDIF() IF(WINE_64_LIBRARY_DIR) - IF(WINE_64_LIBRARY_DIR MATCHES "wine*/lib") + IF(WINE_32_LIBRARY_DIR MATCHES "^/opt/wine-.*") + # winehq uses a singular lib directory + SET(WINE_64_FLAGS "-L${WINE_64_LIBRARY_DIR}") + SET(WINE_64_LIBRARY_DIRS "${WINE_64_LIBRARY_DIR}") + ELSEIF(WINE_64_LIBRARY_DIR MATCHES "wine*/lib") SET(WINE_64_FLAGS "-L${WINE_64_LIBRARY_DIR} -L${WINE_64_LIBRARY_DIR}../") SET(WINE_64_LIBRARY_DIRS "${WINE_64_LIBRARY_DIR}:${WINE_64_LIBRARY_DIR}/..") ELSE() @@ -117,6 +167,12 @@ IF(WINE_64_LIBRARY_DIR) ENDIF() ENDIF() -# Create winegcc wrapper +message(STATUS " WINE_INCLUDE_DIR: ${WINE_INCLUDE_DIR}") +message(STATUS " WINE_CXX: ${WINE_CXX}") +message(STATUS " WINE_GCC: ${WINE_GCC}") +message(STATUS " WINE_32_FLAGS: ${WINE_32_FLAGS}") +message(STATUS " WINE_64_FLAGS: ${WINE_64_FLAGS}") + +# Create winegcc (technically, wineg++) wrapper configure_file(${CMAKE_CURRENT_LIST_DIR}/winegcc_wrapper.in winegcc_wrapper @ONLY) SET(WINEGCC "${CMAKE_CURRENT_BINARY_DIR}/winegcc_wrapper") diff --git a/cmake/modules/PluginList.cmake b/cmake/modules/PluginList.cmake index 8c444aca291..009679533ae 100644 --- a/cmake/modules/PluginList.cmake +++ b/cmake/modules/PluginList.cmake @@ -38,6 +38,7 @@ SET(LMMS_PLUGIN_LIST DynamicsProcessor Eq Flanger + GranularPitchShifter HydrogenImport LadspaBrowser LadspaEffect @@ -100,12 +101,3 @@ IF(LIST_PLUGINS) UNSET(LIST_PLUGINS CACHE) LIST_ALL_PLUGINS() ENDIF() - -IF(MSVC) - SET(MSVC_INCOMPATIBLE_PLUGINS - LadspaEffect - ) - message(WARNING "Compiling with MSVC. The following plugins are not available: ${MSVC_INCOMPATIBLE_PLUGINS}") - LIST(REMOVE_ITEM PLUGIN_LIST ${MSVC_INCOMPATIBLE_PLUGINS}) -ENDIF() - diff --git a/cmake/modules/StaticDependencies.cmake b/cmake/modules/StaticDependencies.cmake new file mode 100644 index 00000000000..d12c47d12c8 --- /dev/null +++ b/cmake/modules/StaticDependencies.cmake @@ -0,0 +1,141 @@ +# StaticDependencies.cmake - adds features similar to interface properties that +# are only transitive over static dependencies. +# +# Copyright (c) 2024 Dominic Clark +# +# Redistribution and use is allowed according to the terms of the New BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. + +define_property(TARGET + PROPERTY STATIC_COMPILE_DEFINITIONS + BRIEF_DOCS "Compile definitions to be used by targets linking statically to this one" + FULL_DOCS "Behaves similarly to INTERFACE_COMPILE_DEFINITIONS, but only over static dependencies." + "Effectively becomes private once an executable module is reached." +) + +define_property(TARGET + PROPERTY STATIC_LINK_LIBRARIES + BRIEF_DOCS "Link libraries to be included in targets linking statically to this one" + FULL_DOCS "Behaves similarly to INTERFACE_LINK_LIBRARIES, but only over static dependencies." + "Effectively becomes private once an executable module is reached." +) + +# Link a target statically to a set of libraries. Forward the given arguments to +# `target_link_libraries`, but also perform two additional functions. Firstly, +# ensure that the given libraries will be linked into any module that also +# links the given target (allowing, for example, object libraries and private +# static libraries to be used transitively). Secondly, add any static compile +# definitions from the given libraries to the set of compile definitions used +# to build the given target. +# +# This function must be used in order for static requirements as defined in this +# module to be inherited transitively. Using `target_link_libraries` instead +# will break the chain for static link libraries and static compile definitions. +# +# Usage: +# target_static_libraries( +# # The target to which to add the libraries +# [] # Optionally, the scope to use for the following libraries +# ... # The libraries to which to link +# [ ...]... +# ) +function(target_static_libraries target) + # Target types that have a link step + set(linked_target_types "MODULE_LIBRARY" "SHARED_LIBRARY" "EXECUTABLE") + # Possible scopes for dependencies + set(scopes "PRIVATE" "PUBLIC" "INTERFACE") + + get_target_property(target_type "${target}" TYPE) + set(scope "") + + # Iterate over the dependencies (and possibly scopes) that we were given + foreach(dependency IN LISTS ARGN) + # If we have a scope, store it so we can apply it to upcoming libraries + if(dependency IN_LIST scopes) + set(scope "${dependency}") + continue() + endif() + + # Link the target to the current dependency. (Note: `${scope}` is + # unquoted so that the argument disappears if no scope was given.) + target_link_libraries("${target}" ${scope} "${dependency}") + + # Store the dependency so it can be linked in with this target later + set_property( + TARGET "${target}" + APPEND + PROPERTY STATIC_LINK_LIBRARIES + "${dependency}" + ) + + # If the dependency is a target, it may have some of our custom + # properties defined on it, so we have a bit more work to do + if(TARGET "${dependency}") + # Ensure it makes sense to link statically to this dependency + get_target_property(dependency_type "${dependency}" TYPE) + if(dependency_type IN_LIST linked_target_types) + message(SEND_ERROR "Cannot link statically to shared module ${dependency}") + endif() + + # Transitively include static definitions and libraries + set(defs "$>") + set(libs "$>") + set_property( + TARGET "${target}" + APPEND + PROPERTY STATIC_COMPILE_DEFINITIONS + "${defs}" + ) + set_property( + TARGET "${target}" + APPEND + PROPERTY STATIC_LINK_LIBRARIES + "${libs}" + ) + + # Add the dependency's transitive static compile definitions. + # (Note: definitions are private so dynamically linked dependents + # won't pick them up; a static dependent will have them set when + # this function is called for it.) + target_compile_definitions("${target}" PRIVATE "${defs}") + + # If the target has a link step, add the transitive static + # dependencies. (Note: we use `LINK_ONLY` so the caller can still + # control usage requirements through the normal use of scopes. Only + # transitive dependencies are needed here: the direct dependency was + # added earlier on. We have to append to `LINK_LIBRARIES` directly, + # rather than use `target_link_libraries(PRIVATE)`, in order to + # remain compatible with the scopeless signature of that command.) + if(target_type IN_LIST linked_target_types) + set_property( + TARGET "${target}" + APPEND + PROPERTY LINK_LIBRARIES + "$" + ) + endif() + endif() + endforeach() +endfunction() + +# Add compile definitions to a target only for use with dependents linking +# statically to it. +# +# Behaves like `target_compile_definitions(INTERFACE)`, except the definitions +# will not be inherited beyond any executable module into which the target is +# actually linked. The definitions are added to the `STATIC_COMPILE_DEFINITIONS` +# property on the target. +# +# Usage: +# target_static_definitions( +# # The target to which to add the definitions +# ... # The definitions to add to the target +# ) +function(target_static_definitions target) + set_property( + TARGET "${target}" + APPEND + PROPERTY STATIC_COMPILE_DEFINITIONS + "${ARGN}" + ) +endfunction() diff --git a/cmake/msys/extract_debs.sh b/cmake/msys/extract_debs.sh deleted file mode 100644 index 939912bb2c3..00000000000 --- a/cmake/msys/extract_debs.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash -set -e - -ppa_dir=./ppa/ - -pushd $ppa_dir - -for f in *.deb; do - echo "Extracting $f..." - ar xv "$f" - rm debian-binary - rm control.tar.* - tar xf data.tar.* --exclude=*mingw*/bin/fluid - rm data.tar.* -done - -popd - -echo "Your extracted files should be located in $ppa_dir" diff --git a/cmake/msys/fetch_ppa.sh b/cmake/msys/fetch_ppa.sh deleted file mode 100644 index ba8697c817d..00000000000 --- a/cmake/msys/fetch_ppa.sh +++ /dev/null @@ -1,53 +0,0 @@ -#!/bin/bash - -# Trusty=14.04, Precise=12.04 -PPA_DISTRO=trusty - -# Architecture=i386, amd64 -PPA_ARCH=amd64 - -# These shouldn't change -PPA_HOST=http://ppa.launchpad.net -PPA_USER=tobydox -PPA_PROJECT=mingw-x-trusty -PPA_ROOT=$PPA_HOST/$PPA_USER/$PPA_PROJECT/ubuntu - -PPA_URL=$PPA_ROOT/dists/$PPA_DISTRO/main/binary-$PPA_ARCH/Packages.gz - -ppa_dir=./ppa/ - -temp_file=/tmp/ppa_listing_$$ -temp_temp_file=/tmp/ppa_listing_temp_$$ - -skip_files="binutils openssl flac libgig libogg libvorbis x-bootstrap zlib" -skip_files="$skip_files x-runtime gcc qt_4 qt5 x-stk pkgconfig" -skip_files="$skip_files glib2 libpng" - -echo "Connecting to $PPA_URL to get list of packages..." -wget -qO- $PPA_URL | gzip -d -c | grep "Filename:" > $temp_file - -for j in $skip_files ; do - grep -v "$j" $temp_file > $temp_temp_file - mv $temp_temp_file $temp_file -done - -line_count=$(wc -l $temp_file |awk '{print $1}') - -echo "Found $line_count packages for download..." - -echo "Downloading packages. They will be saved to $ppa_dir" - -mkdir $ppa_dir - -while read -r j -do - echo "Downloading $j..." - echo "$PPA_ROOT/$j" - wget -qO "$ppa_dir$(basename "$j")" "$(echo "$PPA_ROOT/$j" | sed 's/\/Filename: /\//gi')" -done < $temp_file - - -echo "Cleaning up temporary files..." -rm -rf $temp_file - -echo "Packages have been saved to $ppa_dir. Please run extract_debs.sh" diff --git a/cmake/msys/msys_helper.sh b/cmake/msys/msys_helper.sh deleted file mode 100644 index a6a7e6aae38..00000000000 --- a/cmake/msys/msys_helper.sh +++ /dev/null @@ -1,226 +0,0 @@ -#!/bin/bash - -set -eu - -# Git repo information -fork="lmms" # i.e. "lmms" or "tobydox" -branch="master" # i.e. "master" or "stable-1.2" - -# Console colors -red="\\x1B[1;31m" -green="\\x1B[1;32m" -yellow="\\x1B[1;33m" -plain="\\x1B[0m" - -function info() { echo -e "\n${green}$1${plain}"; } -function warn() { echo -e "\n${yellow}$1${plain}"; } -function err() { echo -e "\n${red}$1${plain}"; exit 1;} - -info "Checking for mingw environment" -if ! env | grep MINGW; then - err " - Failed. Please relaunch using MinGW shell" -fi - -info "Preparing the git directory..." -mkdir "$HOME/.git" || true -touch "$HOME/.git/config" > /dev/null 2>&1 -git config --global http.sslverify false - -info "Cloning the repository..." -if [ -d ./lmms ]; then - warn " - Skipping, ./lmms already exists" -else - git clone -b $branch https://github.com/$fork/lmms.git -fi - -info "Fetching ppa using cmake/msys/fetch_ppas.sh..." -if [ -d "$HOME/ppa" ]; then - warn " - Skipping, $HOME/ppa already exists" -else - lmms/cmake/msys/fetch_ppa.sh -fi - -info "Extracting debs to $HOME/ppa/opt/, etc..." -if [ -d "$HOME/ppa/opt" ]; then - warn " - Skipping, $HOME/ppa/opt already exists" -else - lmms/cmake/msys/extract_debs.sh -fi - -info "Preparing library merge, making all qt headers writable..." -chmod u+w /mingw64/include/qt4 -R -chmod u+w /mingw32/include/qt4 -R - -info "Merging mingw headers and libraries from ppa over existing system libraries..." -if ! find /mingw64 | grep sndfile.h; then - command cp -r "$HOME/ppa/opt/mingw"* / -else - warn " - Skipping, sndfile.h has already been merged" -fi - -fltkver="1.3.3" -oggver="1.3.2" -vorbisver="1.3.5" -flacver="1.3.2" -gigver="4.0.0" -stkver="4.5.1" - -mingw_root="/$(echo "$MSYSTEM"|tr '[:upper:]' '[:lower:]')" - -info "Downloading and building fltk $fltkver" -if ! command -v fluid; then - wget http://fltk.org/pub/fltk/$fltkver/fltk-$fltkver-source.tar.gz -O "$HOME/fltk-source.tar.gz" - tar zxf "$HOME/fltk-source.tar.gz" -C "$HOME/" - pushd "$HOME/fltk-$fltkver" - - info " - Compiling fltk $fltkver..." - ./configure --prefix="$mingw_root" --enable-shared - make - - info " - Installing fltk..." - make install - -# ln -s $mingw_root/usr/local/bin/fluid.exe $mingw_root/bin/fluid.exe - popd -else - warn " - Skipping, fluid binary already exists" -fi - -info "Downloading and building libogg $oggver" -if [ ! -e "$mingw_root/lib/libogg.dll.a" ]; then - wget http://downloads.xiph.org/releases/ogg/libogg-$oggver.tar.xz -O "$HOME/libogg-source.tar.xz" - tar xf "$HOME/libogg-source.tar.xz" -C "$HOME/" - pushd "$HOME/libogg-$oggver" - - info " - Compiling libogg $oggver..." - ./configure --prefix="$mingw_root" - make - - info " - Installing libogg..." - make install - # for some reason libgig needs this - ./configure --prefix="/opt$mingw_root" - make - - info " - Installing libogg..." - make install - - popd -else - warn " - Skipping, libogg binary already exists" -fi - -info "Downloading and building libvorbis $vorbisver" -if [ ! -e "$mingw_root/lib/libvorbis.dll.a" ]; then - wget http://downloads.xiph.org/releases/vorbis/libvorbis-$vorbisver.tar.xz -O "$HOME/libvorbis-source.tar.xz" - tar xf "$HOME/libvorbis-source.tar.xz" -C "$HOME/" - pushd "$HOME/libvorbis-$vorbisver" - - info " - Compiling libvorbis $vorbisver..." - ./configure --prefix="$mingw_root" - make - - info " - Installing libvorbis..." - make install - - # for some reason libgig needs this - ./configure --prefix="/opt$mingw_root" - make - info " - Installing libvorbis..." - make install - - popd -else - warn " - Skipping, libvorbis binary already exists" -fi - -info "Downloading and building flac $flacver" - -if [ ! -e "$mingw_root/lib/libFLAC.dll.a" ]; then - - wget http://downloads.xiph.org/releases/flac/flac-$flacver.tar.xz -O "$HOME/flac-source.tar.xz" - tar xf "$HOME/flac-source.tar.xz" -C "$HOME/" - pushd "$HOME/flac-$flacver" - - info " - Compiling flac $flacver..." - ./configure --prefix="$mingw_root" - make - - info " - Installing flac..." - make install - - # for some reason libgig needs this - ./configure --prefix="/opt$mingw_root" - make - - info " - Installing flac..." - make install - - popd -else - warn " - Skipping, libvorbis flac already exists" -fi - -info "Downloading and building libgig $gigver" - -if [ ! -e "$mingw_root/lib/libgig/libgig.dll.a" ]; then - wget http://download.linuxsampler.org/packages/libgig-$gigver.tar.bz2 -O "$HOME/gig-source.tar.xz" - tar xf "$HOME/gig-source.tar.xz" -C "$HOME/" - pushd "$HOME/libgig-$gigver" - - info " - Compiling libgig $gigver..." - ./configure --prefix="$mingw_root" - make - - info " - Installing libgig..." - make install - - mv "$mingw_root/lib/bin/libakai-0.dll" "$mingw_root/bin" - mv "$mingw_root/lib/bin/libgig-7.dll" "$mingw_root/bin" - - popd -else - warn " - Skipping, libgig binary already exists" -fi - -info "Downloading and building stk $stkver" - -if [ ! -e "$mingw_root/lib/libstk.dll" ]; then - wget http://ccrma.stanford.edu/software/stk/release/stk-$stkver.tar.gz -O "$HOME/stk-source.tar.xz" - tar xf "$HOME/stk-source.tar.xz" -C "$HOME/" - pushd "$HOME/stk-$stkver" - - info " - Compiling stk $stkver..." - ./configure --prefix="$mingw_root" - make - - info " - Installing stk..." - make install - - mv "$mingw_root/lib/libstk.so" "$mingw_root/lib/libstk.dll" - mv "$mingw_root/lib/libstk-$stkver.so" "$mingw_root/lib/libstk-$stkver.dll" - - popd -else - warn " - Skipping, stk binary already exists" -fi - -# make a symlink to make cmake happy -if [ "$mingw_root" = "/mingw64" ]; then - if [ ! -e /opt/mingw64/bin/x86_64-w64-mingw32-pkg-config ]; then - ln -s /usr/bin/pkg-config /opt/mingw64/bin/x86_64-w64-mingw32-pkg-config - fi -elif [ "$mingw_root" = "/mingw32" ]; then - if [ ! -e /opt/mingw32/bin/i686-w64-mingw32-pkg-config ]; then - ln -s /usr/bin/pkg-config /opt/mingw32/bin/i686-w64-mingw32-pkg-config - fi -fi - -info "Cleaning up..." -rm -rf "$HOME/fltk-$fltkver" -rm -rf "$HOME/libogg-$oggver" -rm -rf "$HOME/libvorbis-$vorbisver" -rm -rf "$HOME/flac-$flacver" -rm -rf "$HOME/libgig-$gigver" -rm -rf "$HOME/stk-$stkver" -info "Done." diff --git a/cmake/nsis/CMakeLists.txt b/cmake/nsis/CMakeLists.txt index ee1bd45c305..e926e074d76 100644 --- a/cmake/nsis/CMakeLists.txt +++ b/cmake/nsis/CMakeLists.txt @@ -3,10 +3,9 @@ if(LMMS_MSVC_YEAR) SET(WIN_PLATFORM "msvc${LMMS_MSVC_YEAR}") endif() -SET(CPACK_PACKAGE_ICON "${CMAKE_SOURCE_DIR}/cmake/nsis/nsis_branding.bmp") -IF(MSVC) - STRING(REPLACE "/" "\\\\" CPACK_PACKAGE_ICON ${CPACK_PACKAGE_ICON}) -ENDIF(MSVC) +# the final slash needs to be flipped for CPACK_PACKAGE_ICON to work: +# https://cmake.org/pipermail/cmake/2008-June/022085.html +SET(CPACK_PACKAGE_ICON "${CMAKE_SOURCE_DIR}/cmake/nsis\\\\nsis_branding.bmp") SET(CPACK_NSIS_MUI_ICON "${CMAKE_SOURCE_DIR}/cmake/nsis/icon.ico") SET(CPACK_NSIS_INSTALLED_ICON_NAME "${CMAKE_PROJECT_NAME}.exe" PARENT_SCOPE) SET(CPACK_NSIS_DISPLAY_NAME "${PROJECT_NAME_UCASE} ${VERSION}" PARENT_SCOPE) @@ -44,25 +43,6 @@ IF(WIN64) ") ENDIF() -# Fix windows paths for msys -IF(LMMS_BUILD_MSYS) - STRING(REPLACE "/" "\\\\" CPACK_PACKAGE_ICON "${CPACK_PACKAGE_ICON}") - STRING(REPLACE "/" "\\\\" CPACK_NSIS_MUI_ICON "${CPACK_NSIS_MUI_ICON}") - STRING(REPLACE "/" "\\\\" CPACK_NSIS_DEFINES "${CPACK_NSIS_DEFINES}") - STRING(REPLACE "/" "\\\\" CMAKE_BINARY_DIR_FIX "${CMAKE_BINARY_DIR}") - - # FIXME: there's no easy way to fix $INST_DIR, so we'll redefine it manually - IF(WIN64) - SET(NSIS_ARCH "win64") - ELSE() - SET(NSIS_ARCH "win32") - ENDIF() - SET(CPACK_NSIS_DEFINES " - ${CPACK_NSIS_DEFINES} - !define /redef INST_DIR ${CMAKE_BINARY_DIR_FIX}\\\\_CPack_Packages\\\\${NSIS_ARCH}\\\\NSIS\\\\${CPACK_PACKAGE_FILE_NAME} - ") -ENDIF() - # Setup missing parent scopes SET(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_FILE_NAME}" PARENT_SCOPE) SET(CPACK_NSIS_DEFINES "${CPACK_NSIS_DEFINES}" PARENT_SCOPE) diff --git a/cmake/toolchains/MSYS-32.cmake b/cmake/toolchains/MSYS-32.cmake deleted file mode 100644 index 698dd543791..00000000000 --- a/cmake/toolchains/MSYS-32.cmake +++ /dev/null @@ -1,4 +0,0 @@ -INCLUDE(${CMAKE_CURRENT_LIST_DIR}/common/MSYS.cmake) -INCLUDE(${CMAKE_CURRENT_LIST_DIR}/common/Win32.cmake) - -SET(MINGW_PREFIX /mingw32) \ No newline at end of file diff --git a/cmake/toolchains/MSYS-64.cmake b/cmake/toolchains/MSYS-64.cmake deleted file mode 100644 index 8becd51b3d9..00000000000 --- a/cmake/toolchains/MSYS-64.cmake +++ /dev/null @@ -1,5 +0,0 @@ -INCLUDE(${CMAKE_CURRENT_LIST_DIR}/common/MSYS.cmake) -INCLUDE(${CMAKE_CURRENT_LIST_DIR}/common/Win64.cmake) - -SET(MINGW_PREFIX /mingw64) -SET(MINGW_PREFIX32 /mingw32) diff --git a/cmake/toolchains/MinGW-W64-32.cmake b/cmake/toolchains/MinGW-W64-32.cmake new file mode 100644 index 00000000000..acbdef8dd5a --- /dev/null +++ b/cmake/toolchains/MinGW-W64-32.cmake @@ -0,0 +1,6 @@ + +set(WIN64 FALSE) + +set(CMAKE_SYSTEM_PROCESSOR i686) + +include(${CMAKE_CURRENT_LIST_DIR}/common/MinGW-W64.cmake) diff --git a/cmake/toolchains/MinGW-W64-64.cmake b/cmake/toolchains/MinGW-W64-64.cmake new file mode 100644 index 00000000000..b3cf59b4775 --- /dev/null +++ b/cmake/toolchains/MinGW-W64-64.cmake @@ -0,0 +1,9 @@ + +set(WIN64 TRUE) + +set(CMAKE_SYSTEM_PROCESSOR x86_64) +set(CMAKE_SYSTEM_PROCESSOR32 i686) + +set(CMAKE_TOOLCHAIN_FILE_32 "${CMAKE_CURRENT_LIST_DIR}/MinGW-W64-32.cmake") + +include(${CMAKE_CURRENT_LIST_DIR}/common/MinGW-W64.cmake) diff --git a/cmake/toolchains/Ubuntu-MinGW-W64-32.cmake b/cmake/toolchains/Ubuntu-MinGW-W64-32.cmake deleted file mode 100644 index 6f7ec6f23d5..00000000000 --- a/cmake/toolchains/Ubuntu-MinGW-W64-32.cmake +++ /dev/null @@ -1,2 +0,0 @@ -INCLUDE(${CMAKE_CURRENT_LIST_DIR}/common/Win32.cmake) -INCLUDE(${CMAKE_CURRENT_LIST_DIR}/common/Ubuntu-MinGW-W64.cmake) diff --git a/cmake/toolchains/Ubuntu-MinGW-W64-64.cmake b/cmake/toolchains/Ubuntu-MinGW-W64-64.cmake deleted file mode 100644 index a1b33ec6795..00000000000 --- a/cmake/toolchains/Ubuntu-MinGW-W64-64.cmake +++ /dev/null @@ -1,4 +0,0 @@ -SET(CMAKE_TOOLCHAIN_FILE_32 "${CMAKE_CURRENT_LIST_DIR}/Ubuntu-MinGW-W64-32.cmake") - -INCLUDE(${CMAKE_CURRENT_LIST_DIR}/common/Win64.cmake) -INCLUDE(${CMAKE_CURRENT_LIST_DIR}/common/Ubuntu-MinGW-W64.cmake) diff --git a/cmake/toolchains/Ubuntu-MinGW-X-Trusty-32.cmake b/cmake/toolchains/Ubuntu-MinGW-X-Trusty-32.cmake deleted file mode 100644 index 0103d35e72b..00000000000 --- a/cmake/toolchains/Ubuntu-MinGW-X-Trusty-32.cmake +++ /dev/null @@ -1,3 +0,0 @@ -SET(MINGW_PREFIX /opt/mingw32) - -INCLUDE(${CMAKE_CURRENT_LIST_DIR}/common/Ubuntu-MinGW-X-Trusty.cmake) diff --git a/cmake/toolchains/Ubuntu-MinGW-X-Trusty-64.cmake b/cmake/toolchains/Ubuntu-MinGW-X-Trusty-64.cmake deleted file mode 100644 index 0f448fef527..00000000000 --- a/cmake/toolchains/Ubuntu-MinGW-X-Trusty-64.cmake +++ /dev/null @@ -1,9 +0,0 @@ -SET(MINGW_PREFIX /opt/mingw64) -SET(MINGW_PREFIX32 /opt/mingw32) - -SET(WIN64 TRUE) - -SET(CMAKE_TOOLCHAIN_FILE_32 "${CMAKE_CURRENT_LIST_DIR}/Ubuntu-MinGW-X-Trusty-32.cmake") -SET(CMAKE_PREFIX_PATH_32 "${MINGW_PREFIX32}") - -INCLUDE(${CMAKE_CURRENT_LIST_DIR}/common/Ubuntu-MinGW-X-Trusty.cmake) diff --git a/cmake/toolchains/common/MSYS.cmake b/cmake/toolchains/common/MSYS.cmake deleted file mode 100644 index 0b27e8d3246..00000000000 --- a/cmake/toolchains/common/MSYS.cmake +++ /dev/null @@ -1,22 +0,0 @@ -# The target environment -SET(CMAKE_FIND_ROOT_PATH ${MINGW_PREFIX}) -SET(CMAKE_INSTALL_PREFIX ${MINGW_PREFIX}) - -# Windows msys mingw ships with a mostly-suitable preconfigured environment -SET(STRIP ${MINGW_PREFIX}/bin/strip) -SET(CMAKE_RC_COMPILER ${MINGW_PREFIX}/bin/windres) -SET(CMAKE_C_COMPILER ${MINGW_PREFIX}/bin/gcc) -SET(CMAKE_CXX_COMPILER ${MINGW_PREFIX}/bin/g++) - -# For 32-bit vst support -IF(WIN64) - # Specify the 32-bit cross compiler - SET(CMAKE_C_COMPILER32 ${MINGW_PREFIX32}/bin/gcc) - SET(CMAKE_CXX_COMPILER32 ${MINGW_PREFIX32}/bin/g++) -ENDIF() - -# Msys compiler does not support @CMakeFiles/Include syntax -SET(CMAKE_C_USE_RESPONSE_FILE_FOR_INCLUDES OFF) -SET(CMAKE_CXX_USE_RESPONSE_FILE_FOR_INCLUDES OFF) - -SET(LMMS_BUILD_MSYS 1) diff --git a/cmake/toolchains/common/MinGW-W64.cmake b/cmake/toolchains/common/MinGW-W64.cmake new file mode 100644 index 00000000000..11b6a92d414 --- /dev/null +++ b/cmake/toolchains/common/MinGW-W64.cmake @@ -0,0 +1,24 @@ +# Toolchain for MinGW compiler + +set(CMAKE_SYSTEM_NAME Windows) +set(CMAKE_SYSTEM_VERSION 1) + +set(TOOLCHAIN_PREFIX ${CMAKE_SYSTEM_PROCESSOR}-w64-mingw32) +set(CMAKE_C_COMPILER ${TOOLCHAIN_PREFIX}-gcc) +set(CMAKE_CXX_COMPILER ${TOOLCHAIN_PREFIX}-g++) +set(CMAKE_RC_COMPILER ${TOOLCHAIN_PREFIX}-windres) + +set(CMAKE_FIND_ROOT_PATH /usr/${TOOLCHAIN_PREFIX}) +set(ENV{PKG_CONFIG} /usr/bin/${TOOLCHAIN_PREFIX}-pkg-config) + +if(WIN64) + set(TOOLCHAIN_PREFIX32 ${CMAKE_SYSTEM_PROCESSOR32}-w64-mingw32) + set(CMAKE_C_COMPILER32 ${TOOLCHAIN_PREFIX32}-gcc) + set(CMAKE_CXX_COMPILER32 ${TOOLCHAIN_PREFIX32}-g++) +endif() + +# Search for programs in the build host directories +set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) +# Search for libraries and headers in the target directories +set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) +set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) diff --git a/cmake/toolchains/common/Ubuntu-MinGW-W64.cmake b/cmake/toolchains/common/Ubuntu-MinGW-W64.cmake deleted file mode 100644 index 2f78a441e7a..00000000000 --- a/cmake/toolchains/common/Ubuntu-MinGW-W64.cmake +++ /dev/null @@ -1,17 +0,0 @@ -# Toolchain for Ubuntu MinGw compiler shipped with the mingw-w64 and -# g++-mingw-w64 packages -SET(TOOLCHAIN_PREFIX ${CMAKE_SYSTEM_PROCESSOR}-w64-mingw32) -set(CMAKE_C_COMPILER ${TOOLCHAIN_PREFIX}-gcc) -set(CMAKE_CXX_COMPILER ${TOOLCHAIN_PREFIX}-g++) -set(CMAKE_RC_COMPILER ${TOOLCHAIN_PREFIX}-windres) - -set(CMAKE_FIND_ROOT_PATH /usr/${TOOLCHAIN_PREFIX}) -SET(ENV{PKG_CONFIG} /usr/bin/${TOOLCHAIN_PREFIX}-pkg-config) - -IF(WIN64) - SET(TOOLCHAIN_PREFIX32 ${CMAKE_SYSTEM_PROCESSOR32}-w64-mingw32) - SET(CMAKE_C_COMPILER32 ${TOOLCHAIN_PREFIX32}-gcc) - SET(CMAKE_CXX_COMPILER32 ${TOOLCHAIN_PREFIX32}-g++) -ENDIF() - -INCLUDE(${CMAKE_CURRENT_LIST_DIR}/WinCrossCompile.cmake) diff --git a/cmake/toolchains/common/Ubuntu-MinGW-X-Trusty.cmake b/cmake/toolchains/common/Ubuntu-MinGW-X-Trusty.cmake deleted file mode 100644 index 686f4497f47..00000000000 --- a/cmake/toolchains/common/Ubuntu-MinGW-X-Trusty.cmake +++ /dev/null @@ -1,58 +0,0 @@ -IF(WIN64) - INCLUDE(${CMAKE_CURRENT_LIST_DIR}/Win64.cmake) -ELSE() - INCLUDE(${CMAKE_CURRENT_LIST_DIR}/Win32.cmake) -ENDIF() -INCLUDE(${CMAKE_CURRENT_LIST_DIR}/WinCrossCompile.cmake) - -# The target environment -SET(CMAKE_FIND_ROOT_PATH ${MINGW_PREFIX}) -SET(CMAKE_INSTALL_PREFIX ${MINGW_PREFIX}) - -# Linux mingw requires explicitly defined tools to prevent clash with native system tools -SET(MINGW_TOOL_PREFIX ${MINGW_PREFIX}/bin/${CMAKE_SYSTEM_PROCESSOR}-w64-mingw32-) - -# Specify the cross compiler -SET(CMAKE_C_COMPILER ${MINGW_TOOL_PREFIX}gcc) -SET(CMAKE_CXX_COMPILER ${MINGW_TOOL_PREFIX}g++) -SET(CMAKE_RC_COMPILER ${MINGW_TOOL_PREFIX}windres) - -# Mingw tools -SET(STRIP ${MINGW_TOOL_PREFIX}strip) -SET(ENV{PKG_CONFIG} ${MINGW_TOOL_PREFIX}pkg-config) - -# For 32-bit vst support -IF(WIN64) - # Specify the 32-bit cross compiler - SET(MINGW_TOOL_PREFIX32 ${MINGW_PREFIX32}/bin/${CMAKE_SYSTEM_PROCESSOR32}-w64-mingw32-) - SET(CMAKE_C_COMPILER32 ${MINGW_TOOL_PREFIX32}gcc) - SET(CMAKE_CXX_COMPILER32 ${MINGW_TOOL_PREFIX32}g++) -ENDIF() - -INCLUDE_DIRECTORIES(${MINGW_PREFIX}/include) - -LINK_DIRECTORIES(${MINGW_PREFIX}/lib ${MINGW_PREFIX}/bin) - -# Qt tools -SET(QT_BINARY_DIR ${MINGW_PREFIX}/bin) -SET(QT_QMAKE_EXECUTABLE ${QT_BINARY_DIR}/qmake) - -# Echo modified cmake vars to screen for debugging purposes -IF(NOT DEFINED ENV{MINGW_DEBUG_INFO}) - MESSAGE("") - MESSAGE("Custom cmake vars: (blank = system default)") - MESSAGE("-----------------------------------------") - MESSAGE("* CMAKE_C_COMPILER : ${CMAKE_C_COMPILER}") - MESSAGE("* CMAKE_CXX_COMPILER : ${CMAKE_CXX_COMPILER}") - MESSAGE("* CMAKE_RC_COMPILER : ${CMAKE_RC_COMPILER}") - MESSAGE("* ENV{PKG_CONFIG} : $ENV{PKG_CONFIG}") - MESSAGE("* MINGW_TOOL_PREFIX32 : ${MINGW_TOOL_PREFIX32}") - MESSAGE("* CMAKE_C_COMPILER32 : ${CMAKE_C_COMPILER32}") - MESSAGE("* CMAKE_CXX_COMPILER32 : ${CMAKE_CXX_COMPILER32}") - MESSAGE("* STRIP : ${STRIP}") - MESSAGE("* QT_BINARY_DIR : ${QT_BINARY_DIR}") - MESSAGE("* QT_QMAKE_EXECUTABLE : ${QT_QMAKE_EXECUTABLE}") - MESSAGE("") - # So that the debug info only appears once - SET(ENV{MINGW_DEBUG_INFO} SHOWN) -ENDIF() diff --git a/cmake/toolchains/common/Win32.cmake b/cmake/toolchains/common/Win32.cmake deleted file mode 100644 index bc20775d6c0..00000000000 --- a/cmake/toolchains/common/Win32.cmake +++ /dev/null @@ -1,6 +0,0 @@ -SET(CMAKE_SYSTEM_NAME Windows) -SET(CMAKE_SYSTEM_VERSION 1) - -SET(CMAKE_SYSTEM_PROCESSOR i686) - -SET(WIN64 FALSE) diff --git a/cmake/toolchains/common/Win64.cmake b/cmake/toolchains/common/Win64.cmake deleted file mode 100644 index 155a658f42b..00000000000 --- a/cmake/toolchains/common/Win64.cmake +++ /dev/null @@ -1,7 +0,0 @@ -SET(CMAKE_SYSTEM_NAME Windows) -SET(CMAKE_SYSTEM_VERSION 1) - -SET(CMAKE_SYSTEM_PROCESSOR x86_64) -SET(CMAKE_SYSTEM_PROCESSOR32 i686) - -SET(WIN64 TRUE) diff --git a/cmake/toolchains/common/WinCrossCompile.cmake b/cmake/toolchains/common/WinCrossCompile.cmake deleted file mode 100644 index a2d6ff2e929..00000000000 --- a/cmake/toolchains/common/WinCrossCompile.cmake +++ /dev/null @@ -1,9 +0,0 @@ -# Required by cmake if `uname -s` is inadaquate -SET(CMAKE_SYSTEM_NAME Windows) -SET(CMAKE_SYSTEM_VERSION 1) - -# Search for programs in the build host directories -SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) -# For libraries and headers in the target directories -SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) -SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) \ No newline at end of file diff --git a/data/locale/ar.ts b/data/locale/ar.ts index 0d44c22bf5c..4aca06e5149 100644 --- a/data/locale/ar.ts +++ b/data/locale/ar.ts @@ -5334,62 +5334,62 @@ Please make sure you have write permission to the file and the directory contain - MixerLine + MixerChannelView - + Channel send amount - + Move &left - + Move &right - + Rename &channel - + R&emove channel - + Remove &unused channels - + Set channel color - + Remove channel color - + Pick random channel color - MixerLineLcdSpinBox + MixerChannelLcdSpinBox - + Assign to: - + New Mixer Channel diff --git a/data/locale/bs.ts b/data/locale/bs.ts index 7abf0baf1e1..8050af8c246 100644 --- a/data/locale/bs.ts +++ b/data/locale/bs.ts @@ -2698,14 +2698,14 @@ Please make sure you have write-permission to the file and the directory contain - MixerLine + MixerChannelView - + Channel send amount - + The Mixer channel receives input from one or more instrument tracks. It in turn can be routed to multiple other mixer channels. LMMS automatically takes care of preventing infinite loops for you and doesn't allow making a connection that would result in an infinite loop. @@ -2716,27 +2716,27 @@ You can remove and move mixer channels in the context menu, which is accessed by - + Move &left - + Move &right - + Rename &channel - + R&emove channel - + Remove &unused channels @@ -2789,12 +2789,12 @@ You can remove and move mixer channels in the context menu, which is accessed by - + Rename mixer channel - + Enter the new name for this mixer channel @@ -9752,7 +9752,7 @@ Please make sure you have read-permission to the file and the directory containi - MixerLineLcdSpinBox + MixerChannelLcdSpinBox Assign to: diff --git a/data/locale/ca.ts b/data/locale/ca.ts index 0e27c39db80..2b06d075423 100644 --- a/data/locale/ca.ts +++ b/data/locale/ca.ts @@ -5333,62 +5333,62 @@ Please make sure you have write permission to the file and the directory contain - MixerLine + MixerChannelView - + Channel send amount - + Move &left - + Move &right - + Rename &channel - + R&emove channel - + Remove &unused channels - + Set channel color - + Remove channel color - + Pick random channel color - MixerLineLcdSpinBox + MixerChannelLcdSpinBox - + Assign to: - + New mixer Channel diff --git a/data/locale/cs.ts b/data/locale/cs.ts index 022f554592a..331a37c9bf4 100644 --- a/data/locale/cs.ts +++ b/data/locale/cs.ts @@ -1,4 +1,4 @@ - + AboutDialog @@ -69,954 +69,187 @@ If you're interested in translating LMMS in another language or want to imp - AmplifierControlDialog + AboutJuceDialog - - VOL - HLA - - - - Volume: - Hlasitost: - - - - PAN - PAN - - - - Panning: - Panoráma: - - - - LEFT - LEVÝ - - - - Left gain: - Zesílení vlevo: - - - - RIGHT - PRAVÝ - - - - Right gain: - Zesílení vpravo: - - - - AmplifierControls - - - Volume - Hlasitost - - - - Panning - Panoráma - - - - Left gain - Zesílení vlevo - - - - Right gain - Zesílení vpravo - - - - AudioAlsaSetupWidget - - - DEVICE - ZAŘÍZENÍ - - - - CHANNELS - KANÁLY - - - - AudioFileProcessorView - - - Open sample - Načíst sampl - - - - Reverse sample - Přehrávat pozpátku - - - - Disable loop - Vypnout smyčku - - - - Enable loop - Zapnout smyčku - - - - Enable ping-pong loop - Zapnout ping-pongovou smyčku - - - - Continue sample playback across notes - Pokračovat v přehrávání samplu přes znějící tóny - - - - Amplify: - Zesílení: - - - - Start point: - Počáteční bod: - - - - End point: - Koncový bod: - - - - Loopback point: - Začátek smyčky: - - - - AudioFileProcessorWaveView - - - Sample length: - Délka samplu: - - - - AudioJack - - - JACK client restarted - Klient JACK je restartován - - - - LMMS was kicked by JACK for some reason. Therefore the JACK backend of LMMS has been restarted. You will have to make manual connections again. - LMMS bylo z nějakého důvodu shozeno JACKem. Proto byl ovladač JACK v LMMS restartován. Musíte znovu provést ruční připojení. - - - - JACK server down - JACK server byl zastaven - - - - The JACK server seems to have been shutdown and starting a new instance failed. Therefore LMMS is unable to proceed. You should save your project and restart JACK and LMMS. - Vypnutí a nové spuštění serveru JACK se nezdařilo. LMMS proto nemůže pokračovat. Uložte svůj projekt a restartujte JACK i LMMS. - - - - Client name - Jméno klienta - - - - Channels - Kanály - - - - AudioOss - - - Device - Zařízení - - - - Channels - Kanály - - - - AudioPortAudio::setupWidget - - - Backend - Backend - - - - Device - Zařízení - - - - AudioPulseAudio - - - Device - Zařízení + + About JUCE + - - Channels - Kanály + + <b>About JUCE</b> + - - - AudioSdl::setupWidget - - Device - Zařízení + + This program uses JUCE version 3.x.x. + - - - AudioSndio - - Device - Zařízení + + JUCE is an open-source cross-platform C++ application framework for creating high quality desktop and mobile applications. + +The core JUCE modules (juce_audio_basics, juce_audio_devices, juce_core and juce_events) are permissively licensed under the terms of the ISC license. +Other modules are covered by a GNU GPL 3.0 license. + +Copyright (C) 2022 Raw Material Software Limited. + - - Channels - Kanály + + This program uses JUCE version + - AudioSoundIo::setupWidget - - - Backend - Backend - + AudioDeviceSetupWidget - - Device - Zařízení + + [System Default] + - AutomatableModel - - - &Reset (%1%2) - &Resetovat hodnoty (%1%2) - - - - &Copy value (%1%2) - &Kopírovat hodnoty (%1%2) - - - - &Paste value (%1%2) - &Vložit hodnoty (%1%2) - - - - &Paste value - &Vložit hodnoty - - - - Edit song-global automation - Upravit hlavní automatizaci skladby - - - - Remove song-global automation - Odebrat hlavní automatizaci skladby - + CarlaAboutW - - Remove all linked controls - Odebrat všechny propojené ovládací prvky + + About Carla + O programu Carla - - Connected to %1 - Připojeno k %1 + + About + O programu - - Connected to controller - Připojeno k ovladači + + About text here + - - Edit connection... - Upravit připojení... + + Extended licensing here + - - Remove connection - Odebrat připojení + + Artwork + - - Connect to controller... - Připojit k ovladači... + + Using KDE Oxygen icon set, designed by Oxygen Team. + - - - AutomationEditor - - Edit Value + + Contains some knobs, backgrounds and other small artwork from Calf Studio Gear, OpenAV and OpenOctave projects. - - New outValue + + VST is a trademark of Steinberg Media Technologies GmbH. - - New inValue + + Special thanks to António Saraiva for a few extra icons and artwork! - - Please open an automation clip with the context menu of a control! - Otevřete prosím automatizační záznam pomocí kontextové nabídky ovládání! + + The LV2 logo has been designed by Thorsten Wilms, based on a concept from Peter Shorthose. + - - - AutomationEditorWindow - - Play/pause current clip (Space) - Přehrát/Pozastavit přehrávání aktuálního záznamu (mezerník) + + MIDI Keyboard designed by Thorsten Wilms. + - - Stop playing of current clip (Space) - Zastavit přehrávání aktuálního záznamu (mezerník) + + Carla, Carla-Control and Patchbay icons designed by DoosC. + - - Edit actions - Akce úprav + + Features + - - Draw mode (Shift+D) - Režim kreslení (Shift+D) + + AU/AudioUnit: + - - Erase mode (Shift+E) - Režim mazání (Shift+E) + + LADSPA: + LADSPA: - - Draw outValues mode (Shift+C) + + + + + + + + + TextLabel - - Flip vertically - Převrátit vertikálně + + VST2: + VST2: - - Flip horizontally - Převrátit horizontálně + + DSSI: + DSSI: - - Interpolation controls - Ovládání interpolace + + LV2: + LV2: - - Discrete progression - Terasovitý průběh + + VST3: + VST3: - - Linear progression - Lineární průběh + + OSC + - - Cubic Hermite progression - Křivkovitý průběh + + Host URLs: + - - Tension value for spline - Hodnota napětí pro křivku + + Valid commands: + - - Tension: - Napětí: + + valid osc commands here + - - Zoom controls - Ovládání zvětšení + + Example: + - - Horizontal zooming - Horizontální zvětšení + + License + Licence - - Vertical zooming - Vertikální zvětšení - - - - Quantization controls - Ovládání kvantizace - - - - Quantization - Kvantizace - - - - - Automation Editor - no clip - Editor automatizace – žádný záznam - - - - - Automation Editor - %1 - Editor automatizace – %1 - - - - Model is already connected to this clip. - Model je již k tomuto záznamu připojen. - - - - AutomationClip - - - Drag a control while pressing <%1> - Ovládací prvek táhni při stisknutém <%1> - - - - AutomationClipView - - - Open in Automation editor - Otevřít v Editoru automatizace - - - - Clear - Vyčistit - - - - Reset name - Obnovit výchozí jméno - - - - Change name - Změnit jméno - - - - Set/clear record - Zapnout/Vypnout záznam - - - - Flip Vertically (Visible) - Převrátit vertikálně (viditelné) - - - - Flip Horizontally (Visible) - Převrátit horizontálně (viditelné) - - - - %1 Connections - %1 Připojení - - - - Disconnect "%1" - Odpojit "%1" - - - - Model is already connected to this clip. - Model je již k tomuto záznamu připojen. - - - - AutomationTrack - - - Automation track - Stopa automatizace - - - - PatternEditor - - - Beat+Bassline Editor - Editor bicích/basů - - - - Play/pause current beat/bassline (Space) - Přehrát/Pozastavit přehrávání aktuálního záznamu bicích/basů (mezerník) - - - - Stop playback of current beat/bassline (Space) - Zastavit přehrávání aktuálního záznamu bicích/basů (mezerník) - - - - Beat selector - Výběr rytmu - - - - Track and step actions - Akce stopy a kroků - - - - Add beat/bassline - Přidat bicí/basy - - - - Clone beat/bassline clip - - - - - Add sample-track - Přidat stopu samplů - - - - Add automation-track - Přidat stopu automatizace - - - - Remove steps - Odstranit kroky - - - - Add steps - Přidat kroky - - - - Clone Steps - Klonovat kroky - - - - PatternClipView - - - Open in Beat+Bassline-Editor - Otevřít v editoru bicích/basů - - - - Reset name - Resetovat jméno - - - - Change name - Změnit jméno - - - - PatternTrack - - - Beat/Bassline %1 - Bicí/basy %1 - - - - Clone of %1 - Klon z %1 - - - - BassBoosterControlDialog - - - FREQ - FREKV - - - - Frequency: - Frekvence: - - - - GAIN - ZES - - - - Gain: - Zesílení: - - - - RATIO - POMĚR - - - - Ratio: - Poměr: - - - - BassBoosterControls - - - Frequency - Frekvence - - - - Gain - Zesílení - - - - Ratio - Poměr - - - - BitcrushControlDialog - - - IN - IN - - - - OUT - OUT - - - - - GAIN - ZISK - - - - Input gain: - Zesílení vstupu: - - - - NOISE - ŠUM - - - - Input noise: - Vstup šumu: - - - - Output gain: - Zesílení výstupu: - - - - CLIP - OŘÍZ - - - - Output clip: - Oříznutí výstupu: - - - - Rate enabled - Frekvence zapnuta - - - - Enable sample-rate crushing - Zapnout drtič vzorkovací frekvence - - - - Depth enabled - Hloubka zapnuta - - - - Enable bit-depth crushing - Zapnout drtič bitové hloubky - - - - FREQ - FREKV - - - - Sample rate: - Vzorkovací frekvence: - - - - STEREO - STEREO - - - - Stereo difference: - Stereo rozdíl: - - - - QUANT - KVANT - - - - Levels: - Úrovně: - - - - BitcrushControls - - - Input gain - Zesílení vstupu - - - - Input noise - Vstup šumu - - - - Output gain - Zesílení výstupu - - - - Output clip - Oříznutí výstupu - - - - Sample rate - Vzorkovací frekvence - - - - Stereo difference - Stereo rozdíl - - - - Levels - Úrovně - - - - Rate enabled - Frekvence zapnuta - - - - Depth enabled - Hloubka zapnuta - - - - CarlaAboutW - - - About Carla - - - - - About - O LMMS - - - - About text here - - - - - Extended licensing here - - - - - Artwork - - - - - Using KDE Oxygen icon set, designed by Oxygen Team. - - - - - Contains some knobs, backgrounds and other small artwork from Calf Studio Gear, OpenAV and OpenOctave projects. - - - - - VST is a trademark of Steinberg Media Technologies GmbH. - - - - - Special thanks to António Saraiva for a few extra icons and artwork! - - - - - The LV2 logo has been designed by Thorsten Wilms, based on a concept from Peter Shorthose. - - - - - MIDI Keyboard designed by Thorsten Wilms. - - - - - Carla, Carla-Control and Patchbay icons designed by DoosC. - - - - - Features - - - - - AU/AudioUnit: - - - - - LADSPA: - - - - - - - - - - - - TextLabel - - - - - VST2: - - - - - DSSI: - - - - - LV2: - - - - - VST3: - - - - - OSC - - - - - Host URLs: - - - - - Valid commands: - - - - - valid osc commands here - - - - - Example: - - - - - License - Licence - - - + GNU GENERAL PUBLIC LICENSE Version 2, June 1991 @@ -1301,15036 +534,18221 @@ POSSIBILITY OF SUCH DAMAGES. - - OSC Bridge Version + + OSC Bridge Version + + + + + Plugin Version + Verze pluginu + + + + <br>Version %1<br>Carla is a fully-featured audio plugin host%2.<br><br>Copyright (C) 2011-2019 falkTX<br> + + + + + + (Engine not running) + + + + + Everything! (Including LRDF) + + + + + Everything! (Including CustomData/Chunks) + + + + + About 110&#37; complete (using custom extensions)<br/>Implemented Feature/Extensions:<ul><li>http://lv2plug.in/ns/ext/atom</li><li>http://lv2plug.in/ns/ext/buf-size</li><li>http://lv2plug.in/ns/ext/data-access</li><li>http://lv2plug.in/ns/ext/event</li><li>http://lv2plug.in/ns/ext/instance-access</li><li>http://lv2plug.in/ns/ext/log</li><li>http://lv2plug.in/ns/ext/midi</li><li>http://lv2plug.in/ns/ext/options</li><li>http://lv2plug.in/ns/ext/parameters</li><li>http://lv2plug.in/ns/ext/port-props</li><li>http://lv2plug.in/ns/ext/presets</li><li>http://lv2plug.in/ns/ext/resize-port</li><li>http://lv2plug.in/ns/ext/state</li><li>http://lv2plug.in/ns/ext/time</li><li>http://lv2plug.in/ns/ext/uri-map</li><li>http://lv2plug.in/ns/ext/urid</li><li>http://lv2plug.in/ns/ext/worker</li><li>http://lv2plug.in/ns/extensions/ui</li><li>http://lv2plug.in/ns/extensions/units</li><li>http://home.gna.org/lv2dynparam/rtmempool/v1</li><li>http://kxstudio.sf.net/ns/lv2ext/external-ui</li><li>http://kxstudio.sf.net/ns/lv2ext/programs</li><li>http://kxstudio.sf.net/ns/lv2ext/props</li><li>http://kxstudio.sf.net/ns/lv2ext/rtmempool</li><li>http://ll-plugins.nongnu.org/lv2/ext/midimap</li><li>http://ll-plugins.nongnu.org/lv2/ext/miditype</li></ul> + + + + + + + Using Juce host + + + + + About 85% complete (missing vst bank/presets and some minor stuff) + + + + + CarlaHostW + + + MainWindow + + + + + Rack + + + + + Patchbay + + + + + Logs + + + + + Loading... + + + + + Save + + + + + Clear + + + + + Ctrl+L + + + + + Auto-Scroll + + + + + Buffer Size: + + + + + Sample Rate: + + + + + ? Xruns + + + + + DSP Load: %p% + + + + + &File + &Soubor + + + + &Engine + + + + + &Plugin + + + + + Macros (all plugins) + + + + + &Canvas + + + + + Zoom + + + + + &Settings + + + + + &Help + &Nápověda + + + + Tool Bar + + + + + Disk + + + + + + Home + Domů + + + + Transport + + + + + Playback Controls + + + + + Time Information + + + + + Frame: + + + + + 000'000'000 + + + + + Time: + Délka: + + + + 00:00:00 + + + + + BBT: + + + + + 000|00|0000 + + + + + Settings + Nastavení + + + + BPM + + + + + Use JACK Transport + + + + + Use Ableton Link + + + + + &New + &Nový + + + + Ctrl+N + + + + + &Open... + &Otevřít... + + + + + Open... + + + + + Ctrl+O + + + + + &Save + &Uložit + + + + Ctrl+S + + + + + Save &As... + Uložit &jako... + + + + + Save As... + + + + + Ctrl+Shift+S + + + + + &Quit + &Ukončit + + + + Ctrl+Q + + + + + &Start + + + + + F5 + + + + + St&op + + + + + F6 + + + + + &Add Plugin... + + + + + Ctrl+A + + + + + &Remove All + + + + + Enable + + + + + Disable + + + + + 0% Wet (Bypass) + + + + + 100% Wet + + + + + 0% Volume (Mute) + + + + + 100% Volume + + + + + Center Balance + + + + + &Play + + + + + Ctrl+Shift+P + + + + + &Stop + + + + + Ctrl+Shift+X + + + + + &Backwards + + + + + Ctrl+Shift+B + + + + + &Forwards + + + + + Ctrl+Shift+F + + + + + &Arrange + + + + + Ctrl+G + + + + + + &Refresh + + + + + Ctrl+R + + + + + Save &Image... + + + + + Auto-Fit + + + + + Zoom In + Přiblížit + + + + Ctrl++ + Ctrl++ + + + + Zoom Out + Oddálit + + + + Ctrl+- + Ctrl+- + + + + Zoom 100% + + + + + Ctrl+1 + + + + + Show &Toolbar + + + + + &Configure Carla + + + + + &About + + + + + About &JUCE + + + + + About &Qt + + + + + Show Canvas &Meters + + + + + Show Canvas &Keyboard + + + + + Show Internal + + + + + Show External + + + + + Show Time Panel + + + + + Show &Side Panel + + + + + Ctrl+P + + + + + &Connect... + + + + + Compact Slots + + + + + Expand Slots + + + + + Perform secret 1 + + + + + Perform secret 2 + + + + + Perform secret 3 + + + + + Perform secret 4 + + + + + Perform secret 5 + + + + + Add &JACK Application... + + + + + &Configure driver... + + + + + Panic + + + + + Open custom driver panel... + + + + + Save Image... (2x zoom) + + + + + Save Image... (4x zoom) + + + + + Copy as Image to Clipboard + + + + + Ctrl+Shift+C + + + + + CarlaHostWindow + + + Export as... + + + + + + + + Error + Chyba + + + + Failed to load project + + + + + Failed to save project + + + + + Quit + + + + + Are you sure you want to quit Carla? + + + + + Could not connect to Audio backend '%1', possible reasons: +%2 + + + + + Could not connect to Audio backend '%1' + + + + + Warning + + + + + There are still some plugins loaded, you need to remove them to stop the engine. +Do you want to do this now? + + + + + CarlaSettingsW + + + Settings + Nastavení + + + + main + + + + + canvas + + + + + engine + + + + + osc + + + + + file-paths + + + + + plugin-paths + + + + + wine + + + + + experimental + + + + + Widget + + + + + + Main + + + + + + Canvas + + + + + + Engine + + + + + File Paths + + + + + Plugin Paths + + + + + Wine + + + + + + Experimental + + + + + <b>Main</b> + + + + + Paths + Cesty + + + + Default project folder: + + + + + Interface + + + + + Use "Classic" as default rack skin + + + + + Interface refresh interval: + + + + + + ms + + + + + Show console output in Logs tab (needs engine restart) + + + + + Show a confirmation dialog before quitting + + + + + + Theme + + + + + Use Carla "PRO" theme (needs restart) + + + + + Color scheme: + + + + + Black + + + + + System + + + + + Enable experimental features + + + + + <b>Canvas</b> + + + + + Bezier Lines + + + + + Theme: + + + + + Size: + Velikost: + + + + 775x600 + + + + + 1550x1200 + + + + + 3100x2400 + + + + + 4650x3600 + + + + + 6200x4800 + + + + + 12400x9600 + + + + + Options + + + + + Auto-hide groups with no ports + + + + + Auto-select items on hover + + + + + Basic eye-candy (group shadows) + + + + + Render Hints + + + + + Anti-Aliasing + + + + + Full canvas repaints (slower, but prevents drawing issues) + + + + + <b>Engine</b> + + + + + + Core + + + + + Single Client + + + + + Multiple Clients + + + + + + Continuous Rack + + + + + + Patchbay + + + + + Audio driver: + + + + + Process mode: + + + + + + + + Maximum number of parameters to allow in the built-in 'Edit' dialog + + + + + Max Parameters: + + + + + ... + + + + + Reset Xrun counter after project load + + + + + Plugin UIs + + + + + + How much time to wait for OSC GUIs to ping back the host + + + + + UI Bridge Timeout: + + + + + Use OSC-GUI bridges when possible, this way separating the UI from DSP code + + + + + Use UI bridges instead of direct handling when possible + + + + + Make plugin UIs always-on-top + + + + + Make plugin UIs appear on top of Carla (needs restart) + + + + + NOTE: Plugin-bridge UIs cannot be managed by Carla on macOS + + + + + + Restart the engine to load the new settings + + + + + <b>OSC</b> + + + + + Enable OSC + + + + + Enable TCP port + + + + + + Use specific port: + + + + + Overridden by CARLA_OSC_TCP_PORT env var + + + + + + Use randomly assigned port + + + + + Enable UDP port + + + + + Overridden by CARLA_OSC_UDP_PORT env var + + + + + DSSI UIs require OSC UDP port enabled + + + + + <b>File Paths</b> + + + + + Audio + Zvuk + + + + MIDI + MIDI + + + + Used for the "audiofile" plugin + + + + + Used for the "midifile" plugin + + + + + + Add... + + + + + + Remove + + + + + + Change... + + + + + <b>Plugin Paths</b> + + + + + LADSPA + LADSPA + + + + DSSI + DSSI + + + + LV2 + LV2 + + + + VST2 + VST2 + + + + VST3 + VST3 + + + + SF2/3 + SF2/3 + + + + SFZ + SFZ + + + + JSFX + + + + + CLAP + + + + + Restart Carla to find new plugins + + + + + <b>Wine</b> + + + + + Executable + + + + + Path to 'wine' binary: + + + + + Prefix + + + + + Auto-detect Wine prefix based on plugin filename + + + + + Fallback: + + + + + Note: WINEPREFIX env var is preferred over this fallback + + + + + Realtime Priority + + + + + Base priority: + + + + + WineServer priority: + + + + + These options are not available for Carla as plugin + + + + + <b>Experimental</b> + + + + + Experimental options! Likely to be unstable! + + + + + Enable plugin bridges + + + + + Enable Wine bridges + + + + + Enable jack applications + + + + + Export single plugins to LV2 + + + + + Use system/desktop-theme icons (needs restart) + + + + + Load Carla backend in global namespace (NOT RECOMMENDED) + + + + + Fancy eye-candy (fade-in/out groups, glow connections) + + + + + Use OpenGL for rendering (needs restart) + + + + + High Quality Anti-Aliasing (OpenGL only) + + + + + Render Ardour-style "Inline Displays" + + + + + Force mono plugins as stereo by running 2 instances at the same time. +This mode is not available for VST plugins. + + + + + Force mono plugins as stereo + + + + + When enabled, Carla will try to prevent plugins from doing things that might mess up the audio or cause xruns, such as fork(), gtk_init() and similar. + + + + + Prevent unsafe calls from plugins (needs restart) + + + + + Run plugins in a separate process, so if they crash it does not affect Carla. +Plugins get automatically deactivated in such cases. +Reactvate them to start the process again, with the last saved state applied to it. + + + + + Run plugins in bridge mode when possible + + + + + + + + Add Path + + + + + Dialog + + + Carla Control - Connect + + + + + Remote setup + + + + + UDP Port: + + + + + Remote host: + + + + + TCP Port: + + + + + Set value + Nastavit hodnotu + + + + TextLabel + + + + + Scale Points + + + + + DriverSettingsW + + + Driver Settings + + + + + Device: + + + + + Buffer size: + + + + + Sample rate: + Vzorkovací frekvence: + + + + Triple buffer + + + + + Show Driver Control Panel + + + + + Restart the engine to load the new settings + + + + + ExportProjectDialog + + + Export project + Exportovat projekt + + + + Export as loop (remove extra bar) + Exportovat jako smyčku (odstranit přebývající takty) + + + + Export between loop markers + Exportovat obsah smyčky + + + + Render Looped Section: + Opakovat smyčku: + + + + time(s) + krát + + + + File format settings + Nastavení formátu souboru + + + + File format: + Formát souboru: + + + + Sampling rate: + Vzorkovací frekvence: + + + + 44100 Hz + 44100 Hz + + + + 48000 Hz + 48000 Hz + + + + 88200 Hz + 88200 Hz + + + + 96000 Hz + 96000 Hz + + + + 192000 Hz + 192000 Hz + + + + Bit depth: + Bitová hloubka: + + + + 16 Bit integer + 16 bitů celočíselná + + + + 24 Bit integer + 24 bitů celočíselná + + + + 32 Bit float + 32 bitů s plovoucí řádovou čárkou + + + + Stereo mode: + Režim stereo: + + + + Mono + Mono + + + + Stereo + Stereo + + + + Joint stereo + Joint stereo + + + + Compression level: + Úroveň komprese: + + + + Bitrate: + Datový tok: + + + + 64 KBit/s + 64 kbit/s + + + + 128 KBit/s + 128 kbit/s + + + + 160 KBit/s + 160 kbit/s + + + + 192 KBit/s + 192 kbit/s + + + + 256 KBit/s + 256 kbit/s + + + + 320 KBit/s + 320 kbit/s + + + + Use variable bitrate + Použít proměnlivý datový tok + + + + Quality settings + Nastavení kvality + + + + Interpolation: + Interpolace: + + + + Zero order hold + Zero order hold + + + + Sinc worst (fastest) + Sinc nejhorší (nejrychlejší) + + + + Sinc medium (recommended) + Sinc střední (doporučeno) + + + + Sinc best (slowest) + Sinc nejlepší (nejpomalejší) + + + + Start + Začít + + + + Cancel + Zrušit + + + + InstrumentFunctionNoteStacking + + + octave + Oktáva + + + + + Major + Dur + + + + Majb5 + Maj5b + + + + minor + Moll + + + + minb5 + m5b + + + + sus2 + sus2 + + + + sus4 + sus4 + + + + aug + aug + + + + augsus4 + aug sus4 + + + + tri + tri + + + + 6 + 6 + + + + 6sus4 + 6 sus4 + + + + 6add9 + 6 add9 + + + + m6 + m6 + + + + m6add9 + m6 add9 + + + + 7 + 7 + + + + 7sus4 + 7 sus4 + + + + 7#5 + 7/5# + + + + 7b5 + 7/5b + + + + 7#9 + 7/9# + + + + 7b9 + 7/9b + + + + 7#5#9 + 7/5#/9# + + + + 7#5b9 + 7/5#/9b + + + + 7b5b9 + 7/5b/9b + + + + 7add11 + 7 add11 + + + + 7add13 + 7 add13 + + + + 7#11 + 7/11# + + + + Maj7 + Maj7 + + + + Maj7b5 + Maj7/5b + + + + Maj7#5 + Maj7/5# + + + + Maj7#11 + Maj7/11# + + + + Maj7add13 + Maj7 add13 + + + + m7 + m7 + + + + m7b5 + m7/5b + + + + m7b9 + m7/9b + + + + m7add11 + m7 add11 + + + + m7add13 + m7 add13 + + + + m-Maj7 + m-Maj7 + + + + m-Maj7add11 + m-Maj7 add11 + + + + m-Maj7add13 + m-Maj7 add13 + + + + 9 + 9 + + + + 9sus4 + 9 sus4 + + + + add9 + add9 + + + + 9#5 + 9/5# + + + + 9b5 + 9/5b + + + + 9#11 + 9/11# + + + + 9b13 + 9/13b + + + + Maj9 + Maj9 + + + + Maj9sus4 + Maj9 sus4 + + + + Maj9#5 + Maj9/5# + + + + Maj9#11 + Maj9/11# + + + + m9 + m9 + + + + madd9 + m add9 + + + + m9b5 + m9/5b + + + + m9-Maj7 + m9-Maj7 + + + + 11 + 11 + + + + 11b9 + 11/9b + + + + Maj11 + Maj11 + + + + m11 + m11 + + + + m-Maj11 + m-Maj11 + + + + 13 + 13 + + + + 13#9 + 13/9# + + + + 13b9 + 13/9b + + + + 13b5b9 + 13/9b/5b + + + + Maj13 + Maj13 + + + + m13 + m13 + + + + m-Maj13 + m-Maj13 + + + + Harmonic minor + Mollová harmonická + + + + Melodic minor + Mollová melodická + + + + Whole tone + Celotónová stupnice + + + + Diminished + Zmenšená + + + + Major pentatonic + Durová pentatonika + + + + Minor pentatonic + Mollová pentatonika + + + + Jap in sen + Japonská (in sen) stupnice + + + + Major bebop + Durová bebopová + + + + Dominant bebop + Dominantní bebopová + + + + Blues + Bluesová stupnice + + + + Arabic + Arabská + + + + Enigmatic + Enigmatická + + + + Neopolitan + Neapolská + + + + Neopolitan minor + Mollová neapolská + + + + Hungarian minor + Mollová maďarská + + + + Dorian + Dórská + + + + Phrygian + Frygický + + + + Lydian + Lydická + + + + Mixolydian + Mixolydická + + + + Aeolian + Aiolská + + + + Locrian + Lokrická + + + + Minor + Moll + + + + Chromatic + Chromatická + + + + Half-Whole Diminished + Zmenšená (půltón–celý tón) + + + + 5 + 5 + + + + Phrygian dominant + Frygická dominanta + + + + Persian + Perská + + + + InstrumentSoundShaping + + + VOLUME + HLASITOST + + + + Volume + Hlasitost + + + + CUTOFF + SEŘÍZNUTÍ + + + + Cutoff frequency + Frekvence oříznutí + + + + RESO + REZONANCE + + + + Resonance + Rezonance + + + + JackAppDialog + + + Add JACK Application + + + + + Note: Features not implemented yet are greyed out + + + + + Application + + + + + Name: + + + + + Application: + + + + + From template + + + + + Custom + + + + + Template: + + + + + Command: + + + + + Setup + + + + + Session Manager: + + + + + None + + + + + Audio inputs: + + + + + MIDI inputs: + + + + + Audio outputs: + + + + + MIDI outputs: + + + + + Take control of main application window + + + + + Workarounds + + + + + Wait for external application start (Advanced, for Debug only) + + + + + Capture only the first X11 Window + + + + + Use previous client output buffer as input for the next client + + + + + Simulate 16 JACK MIDI outputs, with MIDI channel as port index + + + + + Error here + + + + + NSM applications cannot use abstract or absolute paths + + + + + NSM applications cannot use CLI arguments + + + + + You need to save the current Carla project before NSM can be used + + + + + JuceAboutW + + + This program uses JUCE version %1. + + + + + MidiPatternW + + + MIDI Pattern + + + + + Time Signature: + + + + + + + 1/4 + + + + + 2/4 + + + + + 3/4 + + + + + 4/4 + + + + + 5/4 + + + + + 6/4 + + + + + Measures: + + + + + + + 1 + + + + + 2 + + + + + 3 + + + + + 4 + + + + + 5 + 5 + + + + 6 + 6 + + + + 7 + 7 + + + + 8 + + + + + 9 + 9 + + + + 10 + + + + + 11 + 11 + + + + 12 + + + + + 13 + 13 + + + + 14 + + + + + 15 + + + + + 16 + + + + + Default Length: + + + + + + 1/16 + + + + + + 1/15 + + + + + + 1/12 + + + + + + 1/9 + + + + + + 1/8 + + + + + + 1/6 + + + + + + 1/3 + + + + + + 1/2 + + + + + Quantize: + + + + + &File + &Soubor + + + + &Edit + Úpr&avy + + + + &Quit + &Ukončit + + + + Esc + + + + + &Insert Mode + + + + + F + + + + + &Velocity Mode + + + + + D + + + + + Select All + + + + + A + + + + + PatchesDialog + + + + Qsynth: Channel Preset + Qsynth: Předvolba kanálu + + + + + Bank selector + Výběr banky + + + + + Bank + Banka + + + + + Program selector + Výběr programu + + + + + Patch + Patch + + + + + Name + Název + + + + + OK + OK + + + + + Cancel + Zrušit + + + + PluginBrowser + + + no description + bez popisu + + + + A native amplifier plugin + Nativní plugin zesilovače + + + + Simple sampler with various settings for using samples (e.g. drums) in an instrument-track + Jednoduchý sampler s bohatým nastavením pro používání samplů (např. bicích nástrojů) v nástrojové stopě + + + + Boost your bass the fast and simple way + Zesílení vašeho basu rychlým a snadným způsobem + + + + Customizable wavetable synthesizer + Upravitelný tabulkový syntezátor + + + + An oversampling bitcrusher + Bitcrusher založený na převzorkování + + + + Carla Patchbay Instrument + Nástroj Carla Patchbay + + + + Carla Rack Instrument + Nástroj Carla Rack + + + + A dynamic range compressor. + + + + + A 4-band Crossover Equalizer + 4 pásmový crossover ekvalizér + + + + A native delay plugin + Nativní plugin delay + + + + A Dual filter plugin + Plugin duální filtr + + + + plugin for processing dynamics in a flexible way + plugin pro flexibilní práci s dynamikou + + + + A native eq plugin + Nativní plugin ekvalizér + + + + A native flanger plugin + Nativní plugin flanger + + + + Emulation of GameBoy (TM) APU + Emulace APU GameBoye (TM) + + + + Player for GIG files + Přehrávač GIG souborů + + + + Filter for importing Hydrogen files into LMMS + Filtr pro import souborů Hydrogen do LMMS + + + + Versatile drum synthesizer + Univerzální syntezátor bicích nástrojů + + + + List installed LADSPA plugins + Seznam nainstalovaných LADSPA pluginů + + + + plugin for using arbitrary LADSPA-effects inside LMMS. + plugin pro užití libovolných LADSPA efektů uvnitř LMMS. + + + + Incomplete monophonic imitation TB-303 + + + + + plugin for using arbitrary LV2-effects inside LMMS. + + + + + plugin for using arbitrary LV2 instruments inside LMMS. + + + + + Filter for exporting MIDI-files from LMMS + Filtr pro export souborů MIDI z LMMS + + + + Filter for importing MIDI-files into LMMS + Filtr pro import MIDI souborů do LMMS + + + + Monstrous 3-oscillator synth with modulation matrix + 3oscilátorový syntezátor Monstrous s modulační matricí + + + + A multitap echo delay plugin + Plugin multi-tap delay + + + + A NES-like synthesizer + Syntetizér typu NES + + + + 2-operator FM Synth + 2 operátorová FM syntéza + + + + Additive Synthesizer for organ-like sounds + Aditivní syntezátor pro zvuky podobné varhanám + + + + GUS-compatible patch instrument + GUS kompatibilní patch instrument + + + + Plugin for controlling knobs with sound peaks + Plugin pro řízení otočných ovladačů zvukovými špičkami + + + + Reverb algorithm by Sean Costello + Algoritmus dozvuku od Seana Costello + + + + Player for SoundFont files + Přehrávač SoundFont souborů + + + + LMMS port of sfxr + LMMS port sfxr + + + + Emulation of the MOS6581 and MOS8580 SID. +This chip was used in the Commodore 64 computer. + Emulace MOS6581 a MOS8580 SID. +Tento čip byl používán v počítačích Commodore 64. + + + + A graphical spectrum analyzer. + Grafický analyzátor spektra + + + + Plugin for enhancing stereo separation of a stereo input file + Plugin pro zlepšení stereo separace vstupních stereo souborů + + + + Plugin for freely manipulating stereo output + Plugin pro volné úpravy stereo výstupu + + + + Tuneful things to bang on + Melodické bicí nástroje + + + + Three powerful oscillators you can modulate in several ways + 3 silné oscilátory, které můžete různými způsoby modulovat + + + + A stereo field visualizer. + Vizualizér stereofonního pole. + + + + VST-host for using VST(i)-plugins within LMMS + VST host pro užití VST(i) pluginů v LMMS + + + + Vibrating string modeler + Vibrační modelátor strun + + + + plugin for using arbitrary VST effects inside LMMS. + Plugin pro použití libovolného VST efektu v LMMS. + + + + 4-oscillator modulatable wavetable synth + 4oscilátorový modulovatelný tabulkový syntezátor + + + + plugin for waveshaping + plugin pro tvarování vln + + + + Mathematical expression parser + Parser matematických výrazů + + + + Embedded ZynAddSubFX + Vestavěný ZynAddSubFX + + + + An all-pass filter allowing for extremely high orders. + + + + + Granular pitch shifter + + + + + Upwards/downwards multiband compression plugin powered by the eldritch elder god LOMMUS. + + + + + Basic Slicer + + + + + Tap to the beat + + + + + PluginEdit + + + Plugin Editor + + + + + Edit + + + + + Control + Ovládání + + + + MIDI Control Channel: + + + + + N + + + + + Output dry/wet (100%) + + + + + Output volume (100%) + + + + + Balance Left (0%) + + + + + + Balance Right (0%) + + + + + Use Balance + + + + + Use Panning + + + + + Settings + Nastavení + + + + Use Chunks + + + + + Audio: + + + + + Fixed-Size Buffer + + + + + Force Stereo (needs reload) + + + + + MIDI: + + + + + Map Program Changes + + + + + Send Notes + + + + + Send Bank/Program Changes + + + + + Send Control Changes + + + + + Send Channel Pressure + + + + + Send Note Aftertouch + + + + + Send Pitchbend + + + + + Send All Sound/Notes Off + + + + + +Plugin Name + + + + + + Program: + + + + + MIDI Program: + + + + + Save State + + + + + Load State + + + + + Information + + + + + Label/URI: + + + + + Name: + + + + + Type: + Typ: + + + + Maker: + + + + + Copyright: + + + + + Unique ID: + + + + + PluginFactory + + + Plugin not found. + Plugin nebyl nalezen. + + + + LMMS plugin %1 does not have a plugin descriptor named %2! + U LMMS pluginu %1 chybí popisovač pluginu s názvem %2! + + + + PluginListDialog + + + Carla - Add New + + + + + Requirements + + + + + With Custom GUI + + + + + With CV Ports + + + + + Real-time safe only + + + + + Stereo only + + + + + With Inline Display + + + + + Favorites only + + + + + (Number of Plugins go here) + + + + + &Add Plugin - - Plugin Version + + Cancel - - <br>Version %1<br>Carla is a fully-featured audio plugin host%2.<br><br>Copyright (C) 2011-2019 falkTX<br> + + Refresh - - - (Engine not running) + + Reset filters - - Everything! (Including LRDF) + + + + + + + + + + + + + + + + + TextLabel - - Everything! (Including CustomData/Chunks) + + Format: - - About 110&#37; complete (using custom extensions)<br/>Implemented Feature/Extensions:<ul><li>http://lv2plug.in/ns/ext/atom</li><li>http://lv2plug.in/ns/ext/buf-size</li><li>http://lv2plug.in/ns/ext/data-access</li><li>http://lv2plug.in/ns/ext/event</li><li>http://lv2plug.in/ns/ext/instance-access</li><li>http://lv2plug.in/ns/ext/log</li><li>http://lv2plug.in/ns/ext/midi</li><li>http://lv2plug.in/ns/ext/options</li><li>http://lv2plug.in/ns/ext/parameters</li><li>http://lv2plug.in/ns/ext/port-props</li><li>http://lv2plug.in/ns/ext/presets</li><li>http://lv2plug.in/ns/ext/resize-port</li><li>http://lv2plug.in/ns/ext/state</li><li>http://lv2plug.in/ns/ext/time</li><li>http://lv2plug.in/ns/ext/uri-map</li><li>http://lv2plug.in/ns/ext/urid</li><li>http://lv2plug.in/ns/ext/worker</li><li>http://lv2plug.in/ns/extensions/ui</li><li>http://lv2plug.in/ns/extensions/units</li><li>http://home.gna.org/lv2dynparam/rtmempool/v1</li><li>http://kxstudio.sf.net/ns/lv2ext/external-ui</li><li>http://kxstudio.sf.net/ns/lv2ext/programs</li><li>http://kxstudio.sf.net/ns/lv2ext/props</li><li>http://kxstudio.sf.net/ns/lv2ext/rtmempool</li><li>http://ll-plugins.nongnu.org/lv2/ext/midimap</li><li>http://ll-plugins.nongnu.org/lv2/ext/miditype</li></ul> + + Architecture: - - - - Using Juce host + + Type: - - About 85% complete (missing vst bank/presets and some minor stuff) + + MIDI Ins: - - - CarlaHostW - - MainWindow + + Audio Ins: - - Rack + + CV Outs: - - Patchbay + + MIDI Outs: - - Logs + + Parameter Ins: - - Loading... + + Parameter Outs: - - Buffer Size: + + Audio Outs: - - Sample Rate: + + CV Ins: - - ? Xruns + + UniqueID: - - DSP Load: %p% + + Has Inline Display: - - &File - &Soubor + + Has Custom GUI: + - - &Engine + + Is Synth: - - &Plugin + + Is Bridged: - - Macros (all plugins) + + Information - - &Canvas + + Name - - Zoom + + Label/Id/URI - - &Settings + + Maker - - &Help - &Nápověda + + Binary/Filename + - - toolBar + + Format - - Disk + + Internal - - - Home - Domů + + LADSPA + - - Transport + + DSSI - - Playback Controls + + LV2 - - Time Information + + VST2 - - Frame: + + VST3 - - 000'000'000 + + CLAP - - Time: - Délka: + + AU + - - 00:00:00 + + JSFX - - BBT: + + Sound Kits - - 000|00|0000 + + Type - - Settings - Nastavení + + Effects + - - BPM + + Instruments - - Use JACK Transport + + MIDI Plugins - - Use Ableton Link + + Other/Misc - - &New - &Nový + + Category + - - Ctrl+N + + All - - &Open... - &Otevřít... + + Delay + - - - Open... + + Distortion - - Ctrl+O + + Dynamics - - &Save - &Uložit + + EQ + - - Ctrl+S + + Filter - - Save &As... - Uložit &jako... + + Modulator + - - - Save As... + + Synth - - Ctrl+Shift+S + + Utility - - &Quit - &Ukončit + + + Other + - - Ctrl+Q + + Architecture - - &Start + + + Native - - F5 + + Bridged - - St&op + + Bridged (Wine) - - F6 + + Focus Text Search - - &Add Plugin... + + Ctrl+F - - Ctrl+A + + Bridged (32bit) - - &Remove All + + Discovering internal plugins... - - Enable + + Discovering LADSPA plugins... - - Disable + + Discovering DSSI plugins... - - 0% Wet (Bypass) + + Discovering LV2 plugins... - - 100% Wet + + Discovering VST2 plugins... - - 0% Volume (Mute) + + Discovering VST3 plugins... - - 100% Volume + + Discovering CLAP plugins... - - Center Balance + + Discovering AU plugins... - - &Play + + Discovering JSFX plugins... - - Ctrl+Shift+P + + Discovering SF2 kits... - - &Stop + + Discovering SFZ kits... - - Ctrl+Shift+X + + Unknown - - &Backwards + + + + + Yes - - Ctrl+Shift+B + + + + + No + + + + + PluginParameter + + + Form + + + + + Parameter Name + + + + + TextLabel + + + + + ... + + + + + PluginRefreshDialog + + + Plugin Refresh + + + + + Search for: + + + + + All plugins, ignoring cache + + + + + Updated plugins only + + + + + Check previously invalid plugins + + + + + Press 'Scan' to begin the search + + + + + Scan + + + + + >> Skip + + + + + Close + + + + + PluginWidget + + + + + + + Frame + + + + + Enable + + + + + On/Off + Zap/Vyp + + + + + + + PluginName + + + + + MIDI + MIDI + + + + AUDIO IN + + + + + AUDIO OUT + + + + + GUI + + + + + Edit - - &Forwards + + Remove - - Ctrl+Shift+F + + Plugin Name - - &Arrange + + Preset: + + + ProjectRenderer - - Ctrl+G - + + WAV (*.wav) + WAV (*.wav) - - - &Refresh - + + FLAC (*.flac) + FLAC (*.flac) - - Ctrl+R - + + OGG (*.ogg) + OGG (*.ogg) - - Save &Image... - + + MP3 (*.mp3) + MP3 (*.mp3) + + + QGroupBox - - Auto-Fit + + + Settings for %1 + + + QObject - - Zoom In - Přiblížit + + Reload Plugin + Restartuj plugin - - Ctrl++ - Ctrl++ + + Show GUI + Ukázat grafické rozhraní - - Zoom Out - Oddálit + + Help + Nápověda - - Ctrl+- - Ctrl+- + + LADSPA plugins + - - Zoom 100% + + The project contains %1 LADSPA plugin(s) which might have not been restored correctly! Please check the project. - - Ctrl+1 + + URI: - - Show &Toolbar + + Project: - - &Configure Carla + + Maker: - - &About + + Homepage: - - About &JUCE + + License: - - About &Qt + + File: %1 - - Show Canvas &Meters + + failed to load description - - Show Canvas &Keyboard + + Open audio file - - Show Internal + + Error loading sample - - Show External + + %1 (unsupported) + + + QWidget - - Show Time Panel - + + + Name: + Název: - - Show &Side Panel - + + Maker: + Tvůrce: - - &Connect... - + + Copyright: + Autorská práva: - - Compact Slots - + + Requires Real Time: + Vyžaduje běh v reálném čase: - - Expand Slots - + + + + Yes + Ano - - Perform secret 1 - + + + + No + Ne - - Perform secret 2 - + + Real Time Capable: + Schopnost běhu v reálném čase: - - Perform secret 3 - + + In Place Broken: + Na místě poškozeného: - - Perform secret 4 - + + Channels In: + Vstupní kanály: - - Perform secret 5 - + + Channels Out: + Výstupní kanály: - - Add &JACK Application... - + + File: %1 + Soubor: %1 - - &Configure driver... + + File: + Soubor: + + + + XYControllerW + + + XY Controller - - Panic + + X Controls: - - Open custom driver panel... + + Y Controls: - - - CarlaHostWindow - - Export as... + + Smooth - - - - - Error - Chyba + + &Settings + - - Failed to load project + + Channels - - Failed to save project + + &File - - Quit + + Show MIDI &Keyboard - - Are you sure you want to quit Carla? + + (All) - - Could not connect to Audio backend '%1', possible reasons: -%2 + + 1 - - Could not connect to Audio backend '%1' + + 2 - - Warning + + 3 - - There are still some plugins loaded, you need to remove them to stop the engine. -Do you want to do this now? + + 4 - - - CarlaInstrumentView - - Show GUI - Ukázat grafické rozhraní + + 5 + - - - CarlaSettingsW - - Settings - Nastavení + + 6 + - - main + + 7 - - canvas + + 8 - - engine + + 9 - - osc + + 10 - - file-paths + + 11 - - plugin-paths + + 12 - - wine + + 13 - - experimental + + 14 - - Widget + + 15 - - - Main + + 16 - - - Canvas + + &Quit - - - Engine + + Esc - - File Paths + + (None) + + + lmms::AmplifierControls - - Plugin Paths + + Volume - - Wine + + Panning - - - Experimental + + Left gain - - <b>Main</b> + + Right gain + + + lmms::AudioFileProcessor - - Paths - Cesty + + Amplify + - - Default project folder: + + Start of sample - - Interface + + End of sample - - Interface refresh interval: + + Loopback point - - - ms + + Reverse sample - - Show console output in Logs tab (needs engine restart) + + Loop mode - - Show a confirmation dialog before quitting + + Stutter - - - Theme + + Interpolation mode - - Use Carla "PRO" theme (needs restart) + + None - - Color scheme: + + Linear - - Black + + Sinc - - System + + Sample not found + + + lmms::AudioJack - - Enable experimental features - + + JACK client restarted + JACK klient restartován - - <b>Canvas</b> - + + LMMS was kicked by JACK for some reason. Therefore the JACK backend of LMMS has been restarted. You will have to make manual connections again. + LMMS bylo z nějakého důvodu odpojeno od JACKu. Ovladač JACK rozhraní v LMMS byl proto restartován. Budete muset znovu provést ruční připojení. - - Bezier Lines - + + JACK server down + JACK server byl zastaven - - Theme: - + + The JACK server seems to have been shutdown and starting a new instance failed. Therefore LMMS is unable to proceed. You should save your project and restart JACK and LMMS. + JACK server byl zřejmě zastaven, a jeho opětovné spuštění se nezdařilo. LMMS proto nemůže pokračovat. Uložte svůj projekt a restartujte JACK i LMMS. - - Size: - Velikost: + + Client name + Název klienta - - 775x600 - + + Channels + Kanály + + + lmms::AudioOss - - 1550x1200 - + + Device + Zařízení - - 3100x2400 - + + Channels + Kanály + + + lmms::AudioPortAudio::setupWidget - - 4650x3600 - + + Backend + Backend - - 6200x4800 - + + Device + Zařízení + + + lmms::AudioPulseAudio - - Options - + + Device + Zařízení - - Auto-hide groups with no ports - + + Channels + Kanály + + + lmms::AudioSdl::setupWidget - - Auto-select items on hover + + Playback device - - Basic eye-candy (group shadows) + + Input device + + + lmms::AudioSndio - - Render Hints - + + Device + Zařízení - - Anti-Aliasing - + + Channels + Kanály + + + lmms::AudioSoundIo::setupWidget - - Full canvas repaints (slower, but prevents drawing issues) - + + Backend + Backend - - <b>Engine</b> - + + Device + Zařízení + + + lmms::AutomatableModel - - - Core + + &Reset (%1%2) - - Single Client + + &Copy value (%1%2) - - Multiple Clients + + &Paste value (%1%2) - - - Continuous Rack + + &Paste value - - - Patchbay + + Edit song-global automation - - Audio driver: + + Remove song-global automation - - Process mode: + + Remove all linked controls - - - - - Maximum number of parameters to allow in the built-in 'Edit' dialog + + Connected to %1 - - Max Parameters: + + Connected to controller - - ... + + Edit connection... - - Reset Xrun counter after project load + + Remove connection - - Plugin UIs + + Connect to controller... + + + lmms::AutomationClip - - - How much time to wait for OSC GUIs to ping back the host + + Drag a control while pressing <%1> + + + lmms::AutomationTrack - - UI Bridge Timeout: + + Automation track + + + lmms::BassBoosterControls - - Use OSC-GUI bridges when possible, this way separating the UI from DSP code + + Frequency - - Use UI bridges instead of direct handling when possible + + Gain - - Make plugin UIs always-on-top + + Ratio + + + lmms::BitInvader - - Make plugin UIs appear on top of Carla (needs restart) + + Sample length - - NOTE: Plugin-bridge UIs cannot be managed by Carla on macOS + + Interpolation - - - Restart the engine to load the new settings + + Normalize + + + lmms::BitcrushControls - - <b>OSC</b> + + Input gain - - Enable OSC + + Input noise - - Enable TCP port + + Output gain - - - Use specific port: + + Output clip - - Overridden by CARLA_OSC_TCP_PORT env var + + Sample rate - - - Use randomly assigned port + + Stereo difference - - Enable UDP port + + Levels - - Overridden by CARLA_OSC_UDP_PORT env var + + Rate enabled - - DSSI UIs require OSC UDP port enabled + + Depth enabled + + + lmms::Clip - - <b>File Paths</b> + + Mute + + + lmms::CompressorControls - - Audio - Zvuk + + Threshold + - - MIDI - MIDI + + Ratio + - - Used for the "audiofile" plugin + + Attack - - Used for the "midifile" plugin + + Release - - - Add... + + Knee - - - Remove + + Hold - - - Change... + + Range - - <b>Plugin Paths</b> + + RMS Size - - LADSPA + + Mid/Side - - DSSI + + Peak Mode - - LV2 + + Lookahead Length - - VST2 + + Input Balance - - VST3 + + Output Balance - - SF2/3 + + Limiter - - SFZ + + Output Gain - - Restart Carla to find new plugins + + Input Gain - - <b>Wine</b> + + Blend - - Executable + + Stereo Balance - - Path to 'wine' binary: + + Auto Makeup Gain - - Prefix + + Audition - - Auto-detect Wine prefix based on plugin filename + + Feedback - - Fallback: + + Auto Attack - - Note: WINEPREFIX env var is preferred over this fallback + + Auto Release - - Realtime Priority + + Lookahead - - Base priority: + + Tilt - - WineServer priority: + + Tilt Frequency - - These options are not available for Carla as plugin + + Stereo Link - - <b>Experimental</b> + + Mix + + + lmms::Controller - - Experimental options! Likely to be unstable! + + Controller %1 + + + lmms::DelayControls - - Enable plugin bridges + + Delay samples - - Enable Wine bridges + + Feedback - - Enable jack applications + + LFO frequency - - Export single plugins to LV2 + + LFO amount - - Load Carla backend in global namespace (NOT RECOMMENDED) + + Output gain + + + lmms::DispersionControls - - Fancy eye-candy (fade-in/out groups, glow connections) + + Amount - - Use OpenGL for rendering (needs restart) + + Frequency - - High Quality Anti-Aliasing (OpenGL only) + + Resonance - - Render Ardour-style "Inline Displays" + + Feedback - - Force mono plugins as stereo by running 2 instances at the same time. -This mode is not available for VST plugins. + + DC Offset Removal + + + lmms::DualFilterControls - - Force mono plugins as stereo + + Filter 1 enabled - - Prevent plugins from doing bad stuff (needs restart) + + Filter 1 type - - Whenever possible, run the plugins in bridge mode. + + Cutoff frequency 1 - - Run plugins in bridge mode when possible + + Q/Resonance 1 - - - - - Add Path + + Gain 1 - - - CompressorControlDialog - - Threshold: + + Mix - - Volume at which the compression begins to take place + + Filter 2 enabled - - Ratio: - Poměr: + + Filter 2 type + - - How far the compressor must turn the volume down after crossing the threshold + + Cutoff frequency 2 - - Attack: - Náběh: + + Q/Resonance 2 + - - Speed at which the compressor starts to compress the audio + + Gain 2 - - Release: - Doznění: + + + Low-pass + - - Speed at which the compressor ceases to compress the audio + + + Hi-pass - - Knee: + + + Band-pass csg - - Smooth out the gain reduction curve around the threshold + + + Band-pass czpg - - Range: + + + Notch - - Maximum gain reduction + + + All-pass - - Lookahead Length: + + + Moog - - How long the compressor has to react to the sidechain signal ahead of time + + + 2x Low-pass - - Hold: - Zadržení: + + + RC Low-pass 12 dB/oct + - - Delay between attack and release stages + + + RC Band-pass 12 dB/oct - - RMS Size: + + + RC High-pass 12 dB/oct - - Size of the RMS buffer + + + RC Low-pass 24 dB/oct - - Input Balance: + + + RC Band-pass 24 dB/oct - - Bias the input audio to the left/right or mid/side + + + RC High-pass 24 dB/oct - - Output Balance: + + + Vocal Formant - - Bias the output audio to the left/right or mid/side + + + 2x Moog - - Stereo Balance: + + + SV Low-pass - - Bias the sidechain signal to the left/right or mid/side + + + SV Band-pass - - Stereo Link Blend: + + + SV High-pass - - Blend between unlinked/maximum/average/minimum stereo linking modes + + + SV Notch - - Tilt Gain: + + + Fast Formant - - Bias the sidechain signal to the low or high frequencies. -6 db is lowpass, 6 db is highpass. + + + Tripole + + + lmms::DynProcControls - - Tilt Frequency: + + Input gain - - Center frequency of sidechain tilt filter + + Output gain - - Mix: + + Attack time - - Balance between wet and dry signals + + Release time - - Auto Attack: + + Stereo mode + + + lmms::Effect - - Automatically control attack value depending on crest factor + + Effect enabled - - Auto Release: + + Wet/Dry mix - - Automatically control release value depending on crest factor + + Gate - - Output gain - Zesílení výstupu + + Decay + + + + lmms::EffectChain - - - Gain - Zesílení + + Effects enabled + + + + lmms::Engine - - Output volume + + Generating wavetables - - Input gain - Zesílení vstupu + + Initializing data structures + - - Input volume + + Opening audio and midi devices - - Root Mean Square + + Launching audio engine threads + + + lmms::EnvelopeAndLfoParameters - - Use RMS of the input + + Env pre-delay - - Peak + + Env attack - - Use absolute value of the input + + Env hold - - Left/Right + + Env decay - - Compress left and right audio + + Env sustain - - Mid/Side + + Env release - - Compress mid and side audio + + Env mod amount - - Compressor + + LFO pre-delay - - Compress the audio + + LFO attack - - Limiter + + LFO frequency - - Set Ratio to infinity (is not guaranteed to limit audio volume) + + LFO mod amount - - Unlinked + + LFO wave shape - - Compress each channel separately + + LFO frequency x 100 - - Maximum + + Modulate env amount - - Compress based on the loudest channel + + Sample not found + + + lmms::EqControls - - Average + + Input gain - - Compress based on the averaged channel volume + + Output gain - - Minimum + + Low-shelf gain - - Compress based on the quietest channel + + Peak 1 gain - - Blend + + Peak 2 gain - - Blend between stereo linking modes + + Peak 3 gain - - Auto Makeup Gain + + Peak 4 gain - - Automatically change makeup gain depending on threshold, knee, and ratio settings + + High-shelf gain - - - Soft Clip + + HP res - - Play the delta signal + + Low-shelf res - - Use the compressor's output as the sidechain input + + Peak 1 BW - - Lookahead Enabled + + Peak 2 BW - - Enable Lookahead, which introduces 20 milliseconds of latency + + Peak 3 BW - - - CompressorControls - - Threshold + + Peak 4 BW - - Ratio - Poměr + + High-shelf res + - - Attack - Náběh + + LP res + - - Release - Doznění + + HP freq + - - Knee + + Low-shelf freq - - Hold - Držení + + Peak 1 freq + - - Range + + Peak 2 freq - - RMS Size + + Peak 3 freq - - Mid/Side + + Peak 4 freq - - Peak Mode + + High-shelf freq - - Lookahead Length + + LP freq - - Input Balance + + HP active - - Output Balance + + Low-shelf active - - Limiter + + Peak 1 active - - Output Gain - Zesílení výstupu + + Peak 2 active + - - Input Gain - Vstupní úroveň + + Peak 3 active + - - Blend + + Peak 4 active - - Stereo Balance + + High-shelf active - - Auto Makeup Gain + + LP active - - Audition + + LP 12 - - Feedback - Zpětná vazba + + LP 24 + - - Auto Attack + + LP 48 - - Auto Release + + HP 12 - - Lookahead + + HP 24 - - Tilt + + HP 48 - - Tilt Frequency + + Low-pass type - - Stereo Link + + High-pass type - - Mix - Poměr + + Analyse IN + - - - Controller - - Controller %1 - Ovladač %1 + + Analyse OUT + - ControllerConnectionDialog - - - Connection Settings - Nastavení připojení - - - - MIDI CONTROLLER - MIDI OVLADAČ - - - - Input channel - Vstupní kanál - + lmms::FlangerControls - - CHANNEL - KANÁL - - - - Input controller - Vstupní ovladač - - - - CONTROLLER - OVLADAČ + + Delay samples + - - - Auto Detect - Autodetekce + + LFO frequency + - - MIDI-devices to receive MIDI-events from - MIDI zařízení k přijmu MIDI události + + Amount + - - USER CONTROLLER - UŽIVATELSKÝ OVLADAČ + + Stereo phase + - - MAPPING FUNCTION - MAPOVACÍ FUNKCE + + Feedback + - - OK - OK + + Noise + - - Cancel - Zrušit + + Invert + + + + lmms::FreeBoyInstrument - - LMMS - LMMS + + Sweep time + - - Cycle Detected. - Zjištěno zacyklení. + + Sweep direction + - - - ControllerRackView - - Controller Rack - Ovladače + + Sweep rate shift amount + - - Add - Přidat + + + Wave pattern duty cycle + - - Confirm Delete - Potvrdit smazání + + Channel 1 volume + - - Confirm delete? There are existing connection(s) associated with this controller. There is no way to undo. - Opravdu smazat? Je (jsou) zde propojení na tento ovladač. Nebude možné vrátit se zpět. - - - - ControllerView + + + + Volume sweep direction + + - - Controls - Ovládací prvky + + + + Length of each step in sweep + - - Rename controller - Přejmenovat ovladač + + Channel 2 volume + - - Enter the new name for this controller - Vložte nové jméno pro tento ovladač + + Channel 3 volume + - - LFO - LFO + + Channel 4 volume + - - &Remove this controller - Odst&ranit tento ovladač + + Shift Register width + - - Re&name this controller - Přejme&novat tento ovladač + + Right output level + - - - CrossoverEQControlDialog - - Band 1/2 crossover: - Přechod mezi pásmy 1/2: + + Left output level + - - Band 2/3 crossover: - Přechod mezi pásmy 2/3: + + Channel 1 to SO2 (Left) + - - Band 3/4 crossover: - Přechod mezi pásmy 3/4: + + Channel 2 to SO2 (Left) + - - Band 1 gain - Zesílení pásma 1 + + Channel 3 to SO2 (Left) + - - Band 1 gain: - Zesílení pásma 1: + + Channel 4 to SO2 (Left) + - - Band 2 gain - Zesílení pásma 2 + + Channel 1 to SO1 (Right) + - - Band 2 gain: - Zesílení pásma 2: + + Channel 2 to SO1 (Right) + - - Band 3 gain - Zesílení pásma 3 + + Channel 3 to SO1 (Right) + - - Band 3 gain: - Zesílení pásma 3: + + Channel 4 to SO1 (Right) + - - Band 4 gain - Zesílení pásma 4 + + Treble + - - Band 4 gain: - Zesílení pásma 4: + + Bass + + + + lmms::GigInstrument - - Band 1 mute - Ztlumení pásma 1 + + Bank + - - Mute band 1 - Ztlumit pásmo 1 + + Patch + - - Band 2 mute - Ztlumení pásma 2 + + Gain + + + + lmms::GranularPitchShifterControls - - Mute band 2 - Ztlumit pásmo 2 + + Pitch + - - Band 3 mute - Ztlumení pásma 3 + + Grain Size + - - Mute band 3 - Ztlumit pásmo 3 + + Spray + - - Band 4 mute - Ztlumení pásma 4 + + Jitter + - - Mute band 4 - Ztlumit pásmo 4 + + Twitch + - - - DelayControls - - Delay samples - Zpoždění vzorků + + Pitch Stereo Spread + - - Feedback - Zpětná vazba + + Spray Stereo + - - LFO frequency - Frekvence LFO + + Shape + - - LFO amount - Hloubka LFO + + Fade Length + - - Output gain - Zesílení výstupu + + Feedback + - - - DelayControlsDialog - - DELAY - ZPOŽ + + Minimum Allowed Latency + - - Delay time - Délka zpoždění + + Prefilter + - - FDBK - ZPVAZ + + Density + - - Feedback amount - Hloubka zpětné vazby + + Glide + - - RATE - RYCH + + Ring Buffer Length + - - LFO frequency - Frekvence LFO + + 5 Seconds + - - AMNT - MNOŽ + + 10 Seconds (Size) + - - LFO amount - Hloubka LFO + + 40 Seconds (Size and Pitch) + - - Out gain - Zesílení výstupu + + 40 Seconds (Size and Spray and Jitter) + - - Gain - Zesílení + + 120 Seconds (All of the above) + - Dialog + lmms::InstrumentFunctionArpeggio - - Add JACK Application + + Arpeggio - - Note: Features not implemented yet are greyed out + + Arpeggio type - - Application + + Arpeggio range - - Name: + + Note repeats - - Application: + + Cycle steps - - From template + + Skip rate - - Custom + + Miss rate - - Template: + + Arpeggio time - - Command: + + Arpeggio gate - - Setup + + Arpeggio direction - - Session Manager: + + Arpeggio mode - - None - Žádný + + Up + - - Audio inputs: + + Down - - MIDI inputs: + + Up and down - - Audio outputs: + + Down and up - - MIDI outputs: + + Random - - Take control of main application window + + Free - - Workarounds + + Sort - - Wait for external application start (Advanced, for Debug only) + + Sync + + + lmms::InstrumentFunctionNoteStacking - - Capture only the first X11 Window + + Chords - - Use previous client output buffer as input for the next client + + Chord type - - Simulate 16 JACK MIDI outputs, with MIDI channel as port index + + Chord range + + + lmms::InstrumentSoundShaping - - Error here + + Envelopes/LFOs - - Carla Control - Connect + + Filter type - - Remote setup + + Cutoff frequency - - UDP Port: + + Q/Resonance - - Remote host: + + Low-pass - - TCP Port: + + Hi-pass - - Reported host + + Band-pass csg - - Automatic + + Band-pass czpg - - Custom: + + Notch - - In some networks (like USB connections), the remote system cannot reach the local network. You can specify here which hostname or IP to make the remote Carla connect to. -If you are unsure, leave it as 'Automatic'. + + All-pass - - Set value - Nastavit hodnotu + + Moog + - - TextLabel + + 2x Low-pass - - Scale Points + + RC Low-pass 12 dB/oct - - - DriverSettingsW - - Driver Settings + + RC Band-pass 12 dB/oct - - Device: + + RC High-pass 12 dB/oct - - Buffer size: + + RC Low-pass 24 dB/oct - - Sample rate: - Vzorkovací frekvence: + + RC Band-pass 24 dB/oct + - - Triple buffer + + RC High-pass 24 dB/oct - - Show Driver Control Panel + + Vocal Formant - - Restart the engine to load the new settings + + 2x Moog - - - DualFilterControlDialog - - - FREQ - FREKV + + SV Low-pass + - - - Cutoff frequency - Frekvence oříznutí + + SV Band-pass + - - - RESO - REZON + + SV High-pass + - - - Resonance - Rezonance + + SV Notch + - - - GAIN - ZESIL + + Fast Formant + - - - Gain - Zesílení + + Tripole + + + + lmms::InstrumentTrack - - MIX - POMĚR + + + unnamed_track + - - Mix - Poměr + + Base note + - - Filter 1 enabled - Filtr 1 zapnutý + + First note + - - Filter 2 enabled - Filtr 2 zapnutý + + Last note + - - Enable/disable filter 1 - Zapnout/vypnout filtr 1 + + Volume + - - Enable/disable filter 2 - Zapnout/vypnout filtr 2 + + Panning + - - - DualFilterControls - - Filter 1 enabled - Filtr 1 zapnutý + + Pitch + - - Filter 1 type - Typ filtru 1 + + Pitch range + - - Cutoff frequency 1 - Frekvence oříznutí 1 + + Mixer channel + - - Q/Resonance 1 - Q/rezonance 1 + + Master pitch + - - Gain 1 - Zesílení 1 + + Enable/Disable MIDI CC + - - Mix - Mix + + CC Controller %1 + - - Filter 2 enabled - Filtr 1 zapnutý + + + Default preset + + + + lmms::Keymap - - Filter 2 type - Typ filtru 2 + + empty + + + + lmms::KickerInstrument - - Cutoff frequency 2 - Frekvence oříznutí 2 + + Start frequency + - - Q/Resonance 2 - Q/rezonance 2 + + End frequency + - - Gain 2 - Zesílení 2 + + Length + - - - Low-pass - Dolní propust + + Start distortion + - - - Hi-pass - Horní propust + + End distortion + - - - Band-pass csg - Pásmová propust csg + + Gain + - - - Band-pass czpg - Pásmová propust czpg + + Envelope slope + - - - Notch - Pásmová zádrž + + Noise + - - - All-pass - All-pass + + Click + - - - Moog - Moogův filtr + + Frequency slope + - - - 2x Low-pass - 2x dolní propust + + Start from note + - - - RC Low-pass 12 dB/oct - RC dolní propust 12 dB/okt + + End to note + + + + lmms::LOMMControls - - - RC Band-pass 12 dB/oct - RC pásmová propust 12 dB/okt + + Depth + - - - RC High-pass 12 dB/oct - RC horní propust 12 dB/okt + + Time + - - - RC Low-pass 24 dB/oct - RC dolní propust 24 dB/okt + + Input Volume + - - - RC Band-pass 24 dB/oct - RC pásmová propust 24 dB/okt + + Output Volume + - - - RC High-pass 24 dB/oct - RC horní propust 24 dB/okt + + Upward Depth + - - - Vocal Formant - Vokální formant + + Downward Depth + - - - 2x Moog - 2x Moogův filtr + + High/Mid Split + - - - SV Low-pass - SV dolní propust + + Mid/Low Split + - - - SV Band-pass - SV pásmová propust + + Enable High/Mid Split + - - - SV High-pass - SV horní propust + + Enable Mid/Low Split + - - - SV Notch - SV pásmová zádrž + + Enable High Band + - - - Fast Formant - Rychlý formantový filtr + + Enable Mid Band + - - - Tripole - Třípólový filtr + + Enable Low Band + - - - Editor - - Transport controls - Řízení přenosu + + High Input Volume + - - Play (Space) - Přehrát (mezerník) + + Mid Input Volume + - - Stop (Space) - Zastavit (mezerník) + + Low Input Volume + - - Record - Nahrávat + + High Output Volume + - - Record while playing - Nahrávat při přehrávání + + Mid Output Volume + - - Toggle Step Recording + + Low Output Volume - - - Effect - - Effect enabled - Efekt aktivován + + Above Threshold High + - - Wet/Dry mix - Poměr zpracovaného/původního signálu + + Above Threshold Mid + - - Gate - Brána + + Above Threshold Low + - - Decay - Pokles + + Above Ratio High + - - - EffectChain - - Effects enabled - Efekty aktivovány + + Above Ratio Mid + - - - EffectRackView - - EFFECTS CHAIN - ŘETĚZ EFEKTŮ + + Above Ratio Low + - - Add effect - Přidat efekt + + Below Threshold High + - - - EffectSelectDialog - - Add effect - Přidat efekt + + Below Threshold Mid + - - - Name - Název + + Below Threshold Low + - - Type - Typ + + Below Ratio High + - - Description - Popis + + Below Ratio Mid + - - Author - Autor + + Below Ratio Low + - - - EffectView - - On/Off - Zap/Vyp + + Attack High + - - W/D - POM + + Attack Mid + - - Wet Level: - Úroveň zpracovaného signálu: + + Attack Low + - - DECAY - POKLES + + Release High + - - Time: - Délka: + + Release Mid + - - GATE - BRÁ + + Release Low + - - Gate: - Brána: + + RMS Time + - - Controls - Ovladače + + Knee + - - Move &up - Posunout &nahoru + + Range + - - Move &down - Posunout &dolů + + Balance + - - &Remove this plugin - &Odstranit tento plugin + + Scale output volume with Depth + - - - EnvelopeAndLfoParameters - - Env pre-delay - Obálka předzpoždění + + Stereo Link + - - Env attack - Obálka náběh + + Auto Time + - - Env hold - Obálka zadržení + + Mix + - - Env decay - Obálka pokles + + Feedback + - - Env sustain - Obálka držení + + Mid/Side + - - Env release - Obálka doznění + + Lookahead + - - Env mod amount - Obálka hloubky modulace + + Lookahead Length + - - LFO pre-delay - Předzpoždění LFO + + Suppress upward compression for side band + + + + lmms::LadspaControl - - LFO attack - Náběh LFO + + Link channels + + + + lmms::LadspaEffect - - LFO frequency - Frekvence LFO + + Unknown LADSPA plugin %1 requested. + + + + lmms::Lb302Synth - - LFO mod amount - Hloubka modulace LFO + + VCF Cutoff Frequency + - - LFO wave shape - Tvar vlny LFO + + VCF Resonance + - - LFO frequency x 100 - Frekvence LFO x 100 + + VCF Envelope Mod + - - Modulate env amount - Modulovat obálku + + VCF Envelope Decay + - - - EnvelopeAndLfoView - - - DEL - PŘED + + Distortion + - - - Pre-delay: - Předzpoždění: + + Waveform + - - - ATT - NÁB + + Slide Decay + - - - Attack: - Náběh: + + Slide + - - HOLD - ZADR + + Accent + - - Hold: - Zadržení: + + Dead + - - DEC - POK + + 24dB/oct Filter + + + + lmms::LfoController - - Decay: - Pokles: + + LFO Controller + - - SUST - DRŽE + + Base value + - - Sustain: - Držení: + + Oscillator speed + - - REL - DOZ + + Oscillator amount + - - Release: - Doznění: + + Oscillator phase + - - - AMT - MOD + + Oscillator waveform + - - - Modulation amount: - Hloubka modulace: + + Frequency Multiplier + - - SPD - RYCH + + Sample not found + + + + lmms::MalletsInstrument - - Frequency: - Frekvence: + + Hardness + - - FREQ x 100 - FREKVENCE x 100 + + Position + - - Multiply LFO frequency by 100 - Vynásobit frekvenci LFO x 100 + + Vibrato gain + - - MODULATE ENV AMOUNT - MODULOVAT OBÁLKU + + Vibrato frequency + - - Control envelope amount by this LFO - Řízení množství obálky tímto LFO + + Stick mix + - - ms/LFO: - ms/LFO: + + Modulator + - - Hint - Rada + + Crossfade + - - Drag and drop a sample into this window. - Přetáhněte sampl do tohoto okna + + LFO speed + - - - EqControls - - Input gain - Zesílení vstupu + + LFO depth + - - Output gain - Zesílení výstupu + + ADSR + - - Low-shelf gain - Zesílení dolního šelfu + + Pressure + - - Peak 1 gain - Zesílení špičky 1 + + Motion + - - Peak 2 gain - Zesílení špičky 2 + + Speed + - - Peak 3 gain - Zesílení špičky 3 + + Bowed + - - Peak 4 gain - Zesílení špičky 4 + + Instrument + - - High-shelf gain - Zesílení horního šelfu + + Spread + - - HP res - Rezonance horní propusti + + Randomness + - - Low-shelf res - Rezonance dolního šelfu + + Marimba + - - Peak 1 BW - Šířka pásma špičky 1 + + Vibraphone + - - Peak 2 BW - Šířka pásma špičky 2 + + Agogo + - - Peak 3 BW - Šířka pásma špičky 3 + + Wood 1 + - - Peak 4 BW - Šířka pásma špičky 4 + + Reso + - - High-shelf res - Rezonance horního šelfu + + Wood 2 + - - LP res - Rezonance dolní propusti + + Beats + - - HP freq - Frekvence horní propusti + + Two fixed + - - Low-shelf freq - Frekvence dolního šelfu + + Clump + - - Peak 1 freq - Frekvence špičky 1 + + Tubular bells + - - Peak 2 freq - Frekvence špičky 2 + + Uniform bar + - - Peak 3 freq - Frekvence špičky 3 + + Tuned bar + - - Peak 4 freq - Frekvence špičky 3 + + Glass + - - High-shelf freq - Frekvence horního šelfu + + Tibetan bowl + + + + lmms::MeterModel - - LP freq - Frekvence dolní propusti + + Numerator + - - HP active - Horní propust aktivní + + Denominator + + + + lmms::Microtuner - - Low-shelf active - Dolní šelf aktivní + + Microtuner + - - Peak 1 active - Špička 1 aktivní + + Microtuner on / off + - - Peak 2 active - Špička 2 aktivní + + Selected scale + - - Peak 3 active - Špička 3 aktivní + + Selected keyboard mapping + + + + lmms::MidiController - - Peak 4 active - Špička 4 aktivní + + MIDI Controller + - - High-shelf active - Horní šelf aktivní + + unnamed_midi_controller + + + + lmms::MidiImport - - LP active - Dolní propust aktivní + + + Setup incomplete + - - LP 12 - DP 12 + + You have not set up a default soundfont in the settings dialog (Edit->Settings). Therefore no sound will be played back after importing this MIDI file. You should download a General MIDI soundfont, specify it in settings dialog and try again. + - - LP 24 - DP 24 + + You did not compile LMMS with support for SoundFont2 player, which is used to add default sound to imported MIDI files. Therefore no sound will be played back after importing this MIDI file. + - - LP 48 - DP 48 + + MIDI Time Signature Numerator + - - HP 12 - HP 12 + + MIDI Time Signature Denominator + - - HP 24 - HP 24 + + Numerator + - - HP 48 - HP 48 + + Denominator + - - Low-pass type - Typ dolní propusti + + + Tempo + - - High-pass type - Typ horní propusti + + Track + + + + lmms::MidiJack - - Analyse IN - Analýza VSTUPU + + JACK server down + When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (title) + - - Analyse OUT - Analýza VÝSTUPU + + The JACK server seems to be shuted down. + When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (dialog message) + - EqControlsDialog + lmms::MidiPort - - HP - HP + + Input channel + - - Low-shelf - Dolní šelf + + Output channel + - - Peak 1 - Špička 1 + + Input controller + - - Peak 2 - Špička 2 + + Output controller + - - Peak 3 - Špička 3 + + Fixed input velocity + - - Peak 4 - Špička 4 + + Fixed output velocity + - - High-shelf - Horní šelf + + Fixed output note + - - LP - DP + + Output MIDI program + - - Input gain - Zesílení vstupu + + Base velocity + - - - - Gain - Zesílení + + Receive MIDI-events + - - Output gain - Zesílení výstupu + + Send MIDI-events + + + + lmms::Mixer - - Bandwidth: - Šířka pásma: + + Master + - - Octave - oktávy + + + + Channel %1 + - - Resonance : - Rezonance: + + Volume + - - Frequency: - Frekvence: + + Mute + - - LP group - Skupina DP + + Solo + + + + lmms::MixerRoute - - HP group - Skupina HP + + + Amount to send from channel %1 to channel %2 + - EqHandle + lmms::MonstroInstrument - - Reso: - Rezon: + + Osc 1 volume + - - BW: - ŠPás: + + Osc 1 panning + - - - Freq: - Frekv: + + Osc 1 coarse detune + - - - ExportProjectDialog - - Export project - Exportovat projekt + + Osc 1 fine detune left + - - Export as loop (remove extra bar) - Exportovat jako smyčku (odstranit přebývající takty) + + Osc 1 fine detune right + - - Export between loop markers - Exportovat obsah smyčky + + Osc 1 stereo phase offset + - - Render Looped Section: + + Osc 1 pulse width - - time(s) + + Osc 1 sync send on rise - - File format settings - Nastavení formátu souboru + + Osc 1 sync send on fall + - - File format: - Formát souboru: + + Osc 2 volume + - - Sampling rate: - Vzorkovací frekvence: + + Osc 2 panning + - - 44100 Hz - 44100 Hz + + Osc 2 coarse detune + - - 48000 Hz - 48000 Hz + + Osc 2 fine detune left + - - 88200 Hz - 88200 Hz + + Osc 2 fine detune right + + + + + Osc 2 stereo phase offset + - - 96000 Hz - 96000 Hz + + Osc 2 waveform + - - 192000 Hz - 192000 Hz + + Osc 2 sync hard + - - Bit depth: - Bitová hloubka: + + Osc 2 sync reverse + - - 16 Bit integer - 16 bitů celočíselná + + Osc 3 volume + - - 24 Bit integer - 24 bitů celočíselná + + Osc 3 panning + - - 32 Bit float - 32 bitů s plovoucí řádovou čárkou + + Osc 3 coarse detune + - - Stereo mode: - Režim stereo: + + Osc 3 Stereo phase offset + - - Mono - Mono + + Osc 3 sub-oscillator mix + - - Stereo - Stereo + + Osc 3 waveform 1 + - - Joint stereo - Joint stereo + + Osc 3 waveform 2 + - - Compression level: - Úroveň komprese: + + Osc 3 sync hard + - - Bitrate: - Datový tok: + + Osc 3 Sync reverse + - - 64 KBit/s - 64 kbit/s + + LFO 1 waveform + - - 128 KBit/s - 128 kbit/s + + LFO 1 attack + - - 160 KBit/s - 160 kbit/s + + LFO 1 rate + - - 192 KBit/s - 192 kbit/s + + LFO 1 phase + - - 256 KBit/s - 256 kbit/s + + LFO 2 waveform + - - 320 KBit/s - 320 kbit/s + + LFO 2 attack + - - Use variable bitrate - Použít proměnlivý datový tok + + LFO 2 rate + - - Quality settings - Nastavení kvality + + LFO 2 phase + - - Interpolation: - Interpolace: + + Env 1 pre-delay + - - Zero order hold - Zero order hold + + Env 1 attack + - - Sinc worst (fastest) - Sinc nejhorší (nejrychlejší) + + Env 1 hold + - - Sinc medium (recommended) - Sinc střední (doporučeno) + + Env 1 decay + - - Sinc best (slowest) - Sinc nejlepší (nejpomalejší) + + Env 1 sustain + - - Oversampling: - Převzorkování: + + Env 1 release + - - 1x (None) - 1x (žádné) + + Env 1 slope + - - 2x - 2x + + Env 2 pre-delay + - - 4x - 4x + + Env 2 attack + - - 8x - 8x + + Env 2 hold + - - Start - Začít + + Env 2 decay + - - Cancel - Zrušit + + Env 2 sustain + - - Could not open file - Nemohu otevřít soubor + + Env 2 release + - - Could not open file %1 for writing. -Please make sure you have write permission to the file and the directory containing the file and try again! - Nelze otevřít soubor %1 pro zápis. -Ověřte si prosím, zda máte povolen zápis do souboru a do složky, ve které je umístěn, a zkuste znovu! + + Env 2 slope + - - Export project to %1 - Exportovat projekt do %1 + + Osc 2+3 modulation + - - ( Fastest - biggest ) - (Nejrychlejší – největší) + + Selected view + - - ( Slowest - smallest ) - (Nejpomalejší – nejmenší) + + Osc 1 - Vol env 1 + - - Error - Chyba + + Osc 1 - Vol env 2 + - - Error while determining file-encoder device. Please try to choose a different output format. - Chyba při zjišťování souboru enkodéru. Zkuste prosím vybrat jiný výstupní formát. + + Osc 1 - Vol LFO 1 + - - Rendering: %1% - Renderuji: %1% + + Osc 1 - Vol LFO 2 + - - - Fader - - Set value - Nastavit hodnotu + + Osc 2 - Vol env 1 + - - Please enter a new value between %1 and %2: - Vložte prosím novou hodnotu mezi %1 a %2: + + Osc 2 - Vol env 2 + - - - FileBrowser - - User content + + Osc 2 - Vol LFO 1 - - Factory content + + Osc 2 - Vol LFO 2 - - Browser - Prohlížeč + + Osc 3 - Vol env 1 + - - Search - Hledat + + Osc 3 - Vol env 2 + - - Refresh list - Obnovit seznam + + Osc 3 - Vol LFO 1 + - - - FileBrowserTreeWidget - - Send to active instrument-track - Odeslat do aktivní stopy nástroje + + Osc 3 - Vol LFO 2 + - - Open containing folder + + Osc 1 - Phs env 1 - - Song Editor - Editor skladby + + Osc 1 - Phs env 2 + - - BB Editor + + Osc 1 - Phs LFO 1 - - Send to new AudioFileProcessor instance + + Osc 1 - Phs LFO 2 - - Send to new instrument track + + Osc 2 - Phs env 1 - - (%2Enter) + + Osc 2 - Phs env 2 - - Send to new sample track (Shift + Enter) + + Osc 2 - Phs LFO 1 - - Loading sample - Načítám vzorek + + Osc 2 - Phs LFO 2 + - - Please wait, loading sample for preview... - Počkejte prosím, načítám vzorek pro náhled... + + Osc 3 - Phs env 1 + - - Error - Chyba + + Osc 3 - Phs env 2 + - - %1 does not appear to be a valid %2 file + + Osc 3 - Phs LFO 1 - - --- Factory files --- - --- Tovární soubory --- + + Osc 3 - Phs LFO 2 + - - - FlangerControls - - Delay samples - Zpoždění vzorků + + Osc 1 - Pit env 1 + - - LFO frequency - Frekvence LFO + + Osc 1 - Pit env 2 + - - Seconds - Sekund + + Osc 1 - Pit LFO 1 + - - Stereo phase + + Osc 1 - Pit LFO 2 - - Regen - Obnov + + Osc 2 - Pit env 1 + - - Noise - Šum + + Osc 2 - Pit env 2 + - - Invert - Převrátit + + Osc 2 - Pit LFO 1 + - - - FlangerControlsDialog - - DELAY - ZPOŽ + + Osc 2 - Pit LFO 2 + - - Delay time: - Délka zpoždění: + + Osc 3 - Pit env 1 + - - RATE - POMĚR + + Osc 3 - Pit env 2 + - - Period: - Perioda: + + Osc 3 - Pit LFO 1 + - - AMNT - MNOŽ + + Osc 3 - Pit LFO 2 + - - Amount: - Množství: + + Osc 1 - PW env 1 + - - PHASE + + Osc 1 - PW env 2 - - Phase: + + Osc 1 - PW LFO 1 - - FDBK - ZP. VAZ + + Osc 1 - PW LFO 2 + - - Feedback amount: - Velikost zpětné vazby: + + Osc 3 - Sub env 1 + - - NOISE - ŠUM + + Osc 3 - Sub env 2 + - - White noise amount: - Množství bílého šumu: + + Osc 3 - Sub LFO 1 + - - Invert - Převrátit + + Osc 3 - Sub LFO 2 + - - - FreeBoyInstrument - - Sweep time - Trvání sweepu + + + Sine wave + - - Sweep direction - Směr sweepu + + Bandlimited Triangle wave + - - Sweep rate shift amount - Úroveň pro změnu frekvence sweepu + + Bandlimited Saw wave + - - - Wave pattern duty cycle - Pracovní cyklus vlnového vzorce + + Bandlimited Ramp wave + - - Channel 1 volume - Hlasitost kanálu 1 + + Bandlimited Square wave + - - - - Volume sweep direction - Směr hlasitosti sweepu + + Bandlimited Moog saw wave + - - - - Length of each step in sweep - Délka každého kroku ve sweepu + + + Soft square wave + - - Channel 2 volume - Hlasitost kanálu 2 + + Absolute sine wave + - - Channel 3 volume - Hlasitost kanálu 3 + + + Exponential wave + - - Channel 4 volume - Hlasitost kanálu 4 + + White noise + - - Shift Register width - Posun šířky registru + + Digital Triangle wave + - - Right output level - Úroveň pravého výstupu + + Digital Saw wave + - - Left output level - Úroveň levého výstupu + + Digital Ramp wave + - - Channel 1 to SO2 (Left) - Kanál 1 do SO2 (pravý) + + Digital Square wave + - - Channel 2 to SO2 (Left) - Kanál 2 do SO2 (pravý) + + Digital Moog saw wave + - - Channel 3 to SO2 (Left) - Kanál 3 do SO2 (pravý) + + Triangle wave + - - Channel 4 to SO2 (Left) - Kanál 4 do SO2 (pravý) + + Saw wave + - - Channel 1 to SO1 (Right) - Kanál 1 do SO1 (pravý) + + Ramp wave + - - Channel 2 to SO1 (Right) - Kanál 2 do SO1 (pravý) + + Square wave + - - Channel 3 to SO1 (Right) - Kanál 3 do SO1 (pravý) + + Moog saw wave + - - Channel 4 to SO1 (Right) - Kanál 4 do SO1 (pravý) + + Abs. sine wave + - - Treble - Výšky + + Random + - - Bass - Basy + + Random smooth + - FreeBoyInstrumentView + lmms::NesInstrument - - Sweep time: - Trvání sweepu: - - - - Sweep time - Trvání sweepu + + Channel 1 enable + - - Sweep rate shift amount: - Úroveň pro změnu frekvence sweepu: + + Channel 1 coarse detune + - - Sweep rate shift amount - Úroveň pro změnu frekvence sweepu + + Channel 1 volume + - - - Wave pattern duty cycle: - Pracovní cyklus vlnového vzorce: + + Channel 1 envelope enable + - - - Wave pattern duty cycle - Pracovní cyklus vlnového vzorce + + Channel 1 envelope loop + - - Square channel 1 volume: - Hlasitost pulzního kanálu 1: + + Channel 1 envelope length + - - Square channel 1 volume - Hlasitost pulzního kanálu 1 + + Channel 1 duty cycle + - - - - Length of each step in sweep: - Délka každého kroku ve sweepu: + + Channel 1 sweep enable + - - - - Length of each step in sweep - Délka každého kroku ve sweepu + + Channel 1 sweep amount + - - Square channel 2 volume: - Hlasitost pulzního kanálu 2: + + Channel 1 sweep rate + - - Square channel 2 volume - Hlasitost pulzního kanálu 2 + + Channel 2 enable + - - Wave pattern channel volume: - Hlasitost kanálu vlnového vzorce: + + Channel 2 coarse detune + - - Wave pattern channel volume - Hlasitost kanálu vlnového vzorce + + Channel 2 volume + - - Noise channel volume: - Hlasitost šumového kanálu: + + Channel 2 envelope enable + - - Noise channel volume - Hlasitost šumového kanálu + + Channel 2 envelope loop + - - SO1 volume (Right): - Hlasitost SO1 (pravý): + + Channel 2 envelope length + - - SO1 volume (Right) - Hlasitost SO1 (pravý) + + Channel 2 duty cycle + - - SO2 volume (Left): - Hlasitost SO2 (levý): + + Channel 2 sweep enable + - - SO2 volume (Left) - Hlasitost SO2 (levý) + + Channel 2 sweep amount + - - Treble: - Výšky: + + Channel 2 sweep rate + - - Treble - Výšky + + Channel 3 enable + - - Bass: - Basy: + + Channel 3 coarse detune + - - Bass - Basy + + Channel 3 volume + - - Sweep direction - Směr sweepu + + Channel 4 enable + - - - - - - Volume sweep direction - Směr hlasitosti sweepu + + Channel 4 volume + - - Shift register width - Posun šířky registru + + Channel 4 envelope enable + - - Channel 1 to SO1 (Right) - Kanál 1 do SO1 (pravý) + + Channel 4 envelope loop + - - Channel 2 to SO1 (Right) - Kanál 2 do SO1 (pravý) + + Channel 4 envelope length + - - Channel 3 to SO1 (Right) - Kanál 3 do SO1 (pravý) + + Channel 4 noise mode + - - Channel 4 to SO1 (Right) - Kanál 4 do SO1 (pravý) + + Channel 4 frequency mode + - - Channel 1 to SO2 (Left) - Kanál 1 do SO2 (pravý) + + Channel 4 noise frequency + - - Channel 2 to SO2 (Left) - Kanál 2 do SO2 (pravý) + + Channel 4 noise frequency sweep + - - Channel 3 to SO2 (Left) - Kanál 3 do SO2 (pravý) + + Channel 4 quantize + - - Channel 4 to SO2 (Left) - Kanál 4 do SO2 (pravý) + + Master volume + - - Wave pattern graph - Zobrazení vlnového vzorce + + Vibrato + - MixerLine - - - Channel send amount - Množství odeslaného kanálu - + lmms::OpulenzInstrument - - Move &left - Přesunout do&leva + + Patch + - - Move &right - Přesun dop&rava + + Op 1 attack + - - Rename &channel - Přejmenovat &kanál + + Op 1 decay + - - R&emove channel - Př&esunout kanál + + Op 1 sustain + - - Remove &unused channels - Odstranit nepo&užívané kanály + + Op 1 release + - - Set channel color + + Op 1 level - - Remove channel color + + Op 1 level scaling - - Pick random channel color + + Op 1 frequency multiplier - - - MixerLineLcdSpinBox - - Assign to: - Přiřadit k: + + Op 1 feedback + - - New mixer Channel - Nový efektový kanál + + Op 1 key scaling rate + - - - Mixer - - Master - Hlavní + + Op 1 percussive envelope + - - - - Channel %1 - Efekt %1 + + Op 1 tremolo + - - Volume - Hlasitost + + Op 1 vibrato + - - Mute - Ztlumit + + Op 1 waveform + - - Solo - Sólo + + Op 2 attack + - - - MixerView - - Mixer - Efektový mixážní panel + + Op 2 decay + - - Fader %1 - Efektový fader %1 + + Op 2 sustain + - - Mute - Ztlumit + + Op 2 release + - - Mute this mixer channel - Ztlumit tento efektový kanál + + Op 2 level + - - Solo - Sólo + + Op 2 level scaling + - - Solo mixer channel - Sólovat efektový kanál + + Op 2 frequency multiplier + - - - MixerRoute - - - Amount to send from channel %1 to channel %2 - Množství k odeslání z kanálu %1 do kanálu %2 + + Op 2 key scaling rate + - - - GigInstrument - - Bank - Banka + + Op 2 percussive envelope + - - Patch - Patch + + Op 2 tremolo + - - Gain - Zisk + + Op 2 vibrato + - - - GigInstrumentView - - - Open GIG file - Otevřít GIG soubor + + Op 2 waveform + - - Choose patch - Vybrat patch + + FM + - - Gain: - Zesílení: + + Vibrato depth + - - GIG Files (*.gig) - GIG soubory (*.gig) + + Tremolo depth + - GuiApplication - - - Working directory - Pracovní adresář - - - - The LMMS working directory %1 does not exist. Create it now? You can change the directory later via Edit -> Settings. - Pracovní adresář LMMS %1 neexistuje. Chcete jej nyní vytvořit? Změnu adresáře mžete provést později v nabídce Úpravy -> Nastavení. - + lmms::OrganicInstrument - - Preparing UI - Připravuji UI + + Distortion + - - Preparing song editor - Připravuji editor skladby + + Volume + + + + lmms::OscillatorObject - - Preparing mixer - Připravuji mixážní panel + + Osc %1 waveform + - - Preparing controller rack - Připravuji panel ovladačů + + Osc %1 harmonic + - - Preparing project notes - Připravuji poznámky k projektu + + + Osc %1 volume + - - Preparing beat/bassline editor - Připravuji editor bicích/basů + + + Osc %1 panning + - - Preparing piano roll - Připravuji Piano roll + + Osc %1 stereo detuning + - - Preparing automation editor - Připravuji Editor automatizace + + Osc %1 coarse detuning + - - - InstrumentFunctionArpeggio - - Arpeggio - Arpeggio + + Osc %1 fine detuning left + - - Arpeggio type - Typ arpeggia + + Osc %1 fine detuning right + - - Arpeggio range - Rozsah arpeggia + + Osc %1 phase-offset + - - Note repeats + + Osc %1 stereo phase-detuning - - Cycle steps - Počet kroků v cyklu + + Osc %1 wave shape + - - Skip rate - Míra vynechávání + + Modulation type %1 + + + + lmms::PatternTrack - - Miss rate - Míra míjení + + Pattern %1 + - - Arpeggio time - Trvání arpeggia + + Clone of %1 + + + + lmms::PeakController - - Arpeggio gate - Brána arpeggia + + Peak Controller + - - Arpeggio direction - Směr arpeggia + + Peak Controller Bug + - - Arpeggio mode - Styl arpeggia + + Due to a bug in older version of LMMS, the peak controllers may not be connect properly. Please ensure that peak controllers are connected properly and re-save this file. Sorry for any inconvenience caused. + + + + lmms::PeakControllerEffectControls - - Up - Nahoru + + Base value + - - Down - Dolů + + Modulation amount + - - Up and down - Nahoru a dolů + + Attack + - - Down and up - Dolů a nahoru + + Release + - - Random - Náhodné + + Treshold + - - Free - Volné + + Mute output + - - Sort - Tříděné + + Absolute value + - - Sync - Synchronizované + + Amount multiplicator + - InstrumentFunctionArpeggioView - - - ARPEGGIO - ARPEGGIO - + lmms::Plugin - - RANGE - ROZSAH + + Plugin not found + - - Arpeggio range: - Rozsah arpeggia: + + The plugin "%1" wasn't found or could not be loaded! +Reason: "%2" + - - octave(s) - oktáva(y) + + Error while loading plugin + - - REP + + Failed to load plugin "%1"! + + + lmms::ReverbSCControls - - Note repeats: + + Input gain - - time(s) + + Size - - CYCLE - CYKL + + Color + - - Cycle notes: - Počet not v cyklu: + + Output gain + + + + lmms::SaControls - - note(s) - nota(y) + + Pause + - - SKIP - VYNECH + + Reference freeze + - - Skip rate: - Míra vynechávání: + + Waterfall + - - - - % - % + + Averaging + - - MISS - MÍJ + + Stereo + - - Miss rate: - Míra míjení: + + Peak hold + - - TIME - TRVÁNÍ + + Logarithmic frequency + - - Arpeggio time: - Trvání arpeggia: + + Logarithmic amplitude + - - ms - ms + + Frequency range + - - GATE - BRÁNA + + Amplitude range + - - Arpeggio gate: - Brána arpeggia: + + FFT block size + - - Chord: - Akord: + + FFT window type + - - Direction: - Směr: + + Peak envelope resolution + - - Mode: - Styl: + + Spectrum display resolution + - - - InstrumentFunctionNoteStacking - - octave - Oktáva + + Peak decay multiplier + - - - Major - Dur + + Averaging weight + - - Majb5 - Maj5b + + Waterfall history size + - - minor - Moll + + Waterfall gamma correction + - - minb5 - m5b + + FFT window overlap + - - sus2 - sus2 + + FFT zero padding + - - sus4 - sus4 + + + Full (auto) + - - aug - aug + + + + Audible + - - augsus4 - aug sus4 + + Bass + - - tri - tri + + Mids + - - 6 - 6 + + High + - - 6sus4 - 6 sus4 + + Extended + - - 6add9 - 6 add9 + + Loud + - - m6 - m6 + + Silent + - - m6add9 - m6 add9 + + (High time res.) + - - 7 - 7 + + (High freq. res.) + - - 7sus4 - 7 sus4 + + Rectangular (Off) + - - 7#5 - 7/5# + + + Blackman-Harris (Default) + - - 7b5 - 7/5b + + Hamming + - - 7#9 - 7/9# + + Hanning + + + + lmms::SampleClip - - 7b9 - 7/9b + + Sample not found + + + + lmms::SampleTrack - - 7#5#9 - 7/5#/9# + + Volume + - - 7#5b9 - 7/5#/9b + + Panning + - - 7b5b9 - 7/5b/9b + + Mixer channel + - - - 7add11 - 7 add11 + + + + Sample track + + + + lmms::Scale - - 7add13 - 7 add13 + + empty + + + + lmms::Sf2Instrument - - 7#11 - 7/11# + + Bank + - - Maj7 - Maj7 + + Patch + - - Maj7b5 - Maj7/5b + + Gain + - - Maj7#5 - Maj7/5# + + Reverb + - - Maj7#11 - Maj7/11# + + Reverb room size + - - Maj7add13 - Maj7 add13 + + Reverb damping + - - m7 - m7 + + Reverb width + - - m7b5 - m7/5b + + Reverb level + - - m7b9 - m7/9b + + Chorus + - - m7add11 - m7 add11 + + Chorus voices + - - m7add13 - m7 add13 + + Chorus level + - - m-Maj7 - m-Maj7 + + Chorus speed + - - m-Maj7add11 - m-Maj7 add11 + + Chorus depth + - - m-Maj7add13 - m-Maj7 add13 + + A soundfont %1 could not be loaded. + + + + lmms::SfxrInstrument - - 9 - 9 + + Wave + + + + lmms::SidInstrument - - 9sus4 - 9 sus4 + + Cutoff frequency + - - add9 - add9 + + Resonance + - - 9#5 - 9/5# + + Filter type + - - 9b5 - 9/5b + + Voice 3 off + - - 9#11 - 9/11# + + Volume + - - 9b13 - 9/13b + + Chip model + + + + lmms::SlicerT - - Maj9 - Maj9 + + Note threshold + - - Maj9sus4 - Maj9 sus4 + + FadeOut + - - Maj9#5 - Maj9/5# + + Original bpm + - - Maj9#11 - Maj9/11# + + Slice snap + - - m9 - m9 + + BPM sync + - - madd9 - m add9 + + + slice_%1 + - - m9b5 - m9/5b + + Sample not found: %1 + + + + lmms::Song - - m9-Maj7 - m9-Maj7 + + Tempo + - - 11 - 11 + + Master volume + - - 11b9 - 11/9b + + Master pitch + - - Maj11 - Maj11 + + Aborting project load + - - m11 - m11 + + Project file contains local paths to plugins, which could be used to run malicious code. + - - m-Maj11 - m-Maj11 + + Can't load project: Project file contains local paths to plugins. + - - 13 - 13 + + LMMS Error report + - - 13#9 - 13/9# + + (repeated %1 times) + - - 13b9 - 13/9b + + The following errors occurred while loading: + + + + lmms::StereoEnhancerControls - - 13b5b9 - 13/9b/5b + + Width + + + + lmms::StereoMatrixControls - - Maj13 - Maj13 + + Left to Left + - - m13 - m13 + + Left to Right + - - m-Maj13 - m-Maj13 + + Right to Left + - - Harmonic minor - Mollová harmonická + + Right to Right + + + + lmms::Track - - Melodic minor - Mollová melodická + + Mute + - - Whole tone - Celotónová stupnice + + Solo + + + + lmms::TrackContainer - - Diminished - Zmenšená + + Couldn't import file + - - Major pentatonic - Durová pentatonika + + Couldn't find a filter for importing file %1. +You should convert this file into a format supported by LMMS using another software. + - - Minor pentatonic - Mollová pentatonika + + Couldn't open file + - - Jap in sen - Japonská (in sen) stupnice + + Couldn't open file %1 for reading. +Please make sure you have read-permission to the file and the directory containing the file and try again! + - - Major bebop - Durová bebopová + + Loading project... + - - Dominant bebop - Dominantní bebopová + + + Cancel + - - Blues - Bluesová stupnice + + + Please wait... + - - Arabic - Arabská + + Loading cancelled + - - Enigmatic - Enigmatická + + Project loading was cancelled. + - - Neopolitan - Neapolská + + Loading Track %1 (%2/Total %3) + - - Neopolitan minor - Mollová neapolská + + Importing MIDI-file... + + + + lmms::TripleOscillator - - Hungarian minor - Mollová maďarská + + Sample not found + + + + lmms::VecControls - - Dorian - Dórská + + Display persistence amount + - - Phrygian - Frygický + + Logarithmic scale + - - Lydian - Lydická + + High quality + + + + lmms::VestigeInstrument - - Mixolydian - Mixolydická + + Loading plugin + - - Aeolian - Aiolská + + Please wait while loading the VST plugin... + + + + lmms::Vibed - - Locrian - Lokrická + + String %1 volume + - - Minor - Moll + + String %1 stiffness + - - Chromatic - Chromatická + + Pick %1 position + - - Half-Whole Diminished - Zmenšená (půltón–celý tón) + + Pickup %1 position + - - 5 - 5 + + String %1 panning + - - Phrygian dominant - Frygická dominanta + + String %1 detune + - - Persian - Perská + + String %1 fuzziness + - - Chords - Akordy + + String %1 length + - - Chord type - Typ akordu + + Impulse %1 + - - Chord range - Rozsah akordu + + String %1 + - InstrumentFunctionNoteStackingView + lmms::VoiceObject - - STACKING - VRSTVENÍ + + Voice %1 pulse width + - - Chord: - Akord: + + Voice %1 attack + - - RANGE - ROZSAH + + Voice %1 decay + - - Chord range: - Rozsah akordu: + + Voice %1 sustain + - - octave(s) - oktáva(y) + + Voice %1 release + - - - InstrumentMidiIOView - - ENABLE MIDI INPUT - POVOLIT MIDI VSTUP + + Voice %1 coarse detuning + - - ENABLE MIDI OUTPUT - POVOLIT MIDI VÝSTUP + + Voice %1 wave shape + - - - CHAN - This string must be be short, its width must be less than * width of LCD spin-box of two digits + + Voice %1 sync - - - VELOC - This string must be be short, its width must be less than * width of LCD spin-box of three digits + + Voice %1 ring modulate - - PROG - This string must be be short, its width must be less than the * width of LCD spin-box of three digits + + Voice %1 filtered - - NOTE - This string must be be short, its width must be less than * width of LCD spin-box of three digits - NOTA + + Voice %1 test + + + + lmms::VstPlugin - - MIDI devices to receive MIDI events from - MIDI zařízení pro přijímání MIDI událostí + + + The VST plugin %1 could not be loaded. + - - MIDI devices to send MIDI events to - MIDI zařízení pro odesílání MIDI událostí + + Open Preset + - - CUSTOM BASE VELOCITY - VLASTNÍ VÝCHOZÍ DYNAMIKA + + + VST Plugin Preset (*.fxp *.fxb) + - - Specify the velocity normalization base for MIDI-based instruments at 100% note velocity. - Udává výchozí úroveň dynamiky pro MIDI nástroje při 100 % dynamiky tónu. + + : default + - - BASE VELOCITY - VÝCHOZÍ DYNAMIKA + + Save Preset + - - - InstrumentTuningView - - MASTER PITCH - TRANSPOZICE + + .fxp + - - Enables the use of master pitch - Povolí použití transpozice + + .FXP + - - - InstrumentSoundShaping - - VOLUME - HLASITOST + + .FXB + - - Volume - Hlasitost + + .fxb + - - CUTOFF - SEŘÍZNUTÍ + + Loading plugin + - - - Cutoff frequency - Frekvence oříznutí + + Please wait while loading VST plugin... + + + + lmms::WatsynInstrument - - RESO - REZONANCE + + Volume A1 + - - Resonance - Rezonance + + Volume A2 + - - Envelopes/LFOs - Obálky/LFO + + Volume B1 + - - Filter type - Typ filtru + + Volume B2 + - - Q/Resonance - Q/rezonance + + Panning A1 + - - Low-pass - Dolní propust + + Panning A2 + - - Hi-pass - Horní propust + + Panning B1 + - - Band-pass csg - Pásmová propust csg + + Panning B2 + + + + + Freq. multiplier A1 + + + + + Freq. multiplier A2 + - - Band-pass czpg - Pásmová propust czpg + + Freq. multiplier B1 + - - Notch - Pásmová zádrž + + Freq. multiplier B2 + - - All-pass - All-pass + + Left detune A1 + - - Moog - Moogův filtr + + Left detune A2 + - - 2x Low-pass - 2x dolní propust + + Left detune B1 + - - RC Low-pass 12 dB/oct - RC dolní propust 12 dB/okt + + Left detune B2 + - - RC Band-pass 12 dB/oct - RC pásmová propust 12 dB/okt + + Right detune A1 + - - RC High-pass 12 dB/oct - RC horní propust 12 dB/okt + + Right detune A2 + - - RC Low-pass 24 dB/oct - RC dolní propust 24 dB/okt + + Right detune B1 + - - RC Band-pass 24 dB/oct - RC pásmová propust 24 dB/okt + + Right detune B2 + - - RC High-pass 24 dB/oct - RC horní propust 24 dB/okt + + A-B Mix + - - Vocal Formant - Vokální formant + + A-B Mix envelope amount + - - 2x Moog - 2x Moogův filtr + + A-B Mix envelope attack + - - SV Low-pass - SV dolní propust + + A-B Mix envelope hold + - - SV Band-pass - SV pásmová propust + + A-B Mix envelope decay + - - SV High-pass - SV horní propust + + A1-B2 Crosstalk + - - SV Notch - SV pásmová zádrž + + A2-A1 modulation + - - Fast Formant - Rychlý formantový filtr + + B2-B1 modulation + - - Tripole - Třípólový filtr + + Selected graph + - InstrumentSoundShapingView + lmms::WaveShaperControls - - TARGET - CÍL: + + Input gain + - - FILTER - FILTR + + Output gain + + + + lmms::Xpressive - - FREQ - FREKV + + Selected graph + - - Cutoff frequency: - Frekvence oříznutí: + + A1 + - - Hz - Hz + + A2 + - - Q/RESO - Q/REZO + + A3 + - - Q/Resonance: - Q/rezonance + + W1 smoothing + - - Envelopes, LFOs and filters are not supported by the current instrument. - Obálky, LFO a filtry nejsou podporovány stávajícím nástrojem. + + W2 smoothing + - - - InstrumentTrack - - - unnamed_track - nepojmenovaná_stopa + + W3 smoothing + - - Base note - Základní nota + + Panning 1 + - - First note + + Panning 2 - - Last note - Podle poslední noty + + Rel trans + + + + lmms::ZynAddSubFxInstrument - - Volume - Hlasitost + + Portamento + - - Panning - Panoráma + + Filter frequency + - - Pitch - Ladění + + Filter resonance + - - Pitch range - Výškový rozsah + + Bandwidth + - - Mixer channel - Efektový kanál + + FM gain + - - Master pitch - Transpozice + + Resonance center frequency + - - Enable/Disable MIDI CC + + Resonance bandwidth - - CC Controller %1 + + Forward MIDI control change events + + + lmms::graphModel - - - Default preset - Výchozí předvolba + + Graph + - InstrumentTrackView + lmms::gui::AmplifierControlDialog - - Volume - Hlasitost + + VOL + - + Volume: - Hlasitost: - - - - VOL - HLA + - - Panning - Panoráma + + PAN + - + Panning: - Panoráma: + - - PAN - PAN + + LEFT + - - MIDI - MIDI + + Left gain: + - - Input - Vstup + + RIGHT + - - Output - Výstup + + Right gain: + + + + lmms::gui::AudioAlsaSetupWidget - - Open/Close MIDI CC Rack + + Device - - Channel %1: %2 - Efekt %1: %2 + + Channels + - InstrumentTrackWindow + lmms::gui::AudioFileProcessorView - - GENERAL SETTINGS - HLAVNÍ NASTAVENÍ + + Open sample + - - Volume - Hlasitost + + Reverse sample + - - Volume: - Hlasitost: + + Disable loop + - - VOL - HLA + + Enable loop + - - Panning - Panoráma + + Enable ping-pong loop + - - Panning: - Panoráma: + + Continue sample playback across notes + - - PAN - PAN + + Amplify: + - - Pitch - Ladění + + Start point: + - - Pitch: - Ladění: + + End point: + - - cents - centů + + Loopback point: + + + + lmms::gui::AudioFileProcessorWaveView - - PITCH - LADĚNÍ + + Sample length: + + + + lmms::gui::AutomationClipView - - Pitch range (semitones) - Rozsah výšky (v půltónech) + + Open in Automation editor + - - RANGE - ROZSAH + + Clear + - - Mixer channel - Efektový kanál + + Reset name + - - CHANNEL - EFEKT + + Change name + - - Save current instrument track settings in a preset file - Uložit aktuální nastavení nástrojové stopy do souboru předvoleb + + Set/clear record + - - SAVE - ULOŽIT + + Flip Vertically (Visible) + - - Envelope, filter & LFO - Obálka, filtr a LFO + + Flip Horizontally (Visible) + - - Chord stacking & arpeggio - Vrstvení akordů a arpeggio + + %1 Connections + - - Effects - Efekty + + Disconnect "%1" + - - MIDI - MIDI + + Model is already connected to this clip. + + + + lmms::gui::AutomationEditor - - Miscellaneous - Různé + + Edit Value + - - Save preset - Uložit předvolbu + + New outValue + - - XML preset file (*.xpf) - XML soubor předvoleb (*.xpf) + + New inValue + - - Plugin - Plugin + + Please open an automation clip by double-clicking on it! + - JackApplicationW + lmms::gui::AutomationEditorWindow - - NSM applications cannot use abstract or absolute paths + + Play/pause current clip (Space) - - NSM applications cannot use CLI arguments + + Stop playing of current clip (Space) - - You need to save the current Carla project before NSM can be used + + Edit actions - - - JuceAboutW - - About JUCE + + Draw mode (Shift+D) - - <b>About JUCE</b> + + Erase mode (Shift+E) - - This program uses JUCE version 3.x.x. + + Draw outValues mode (Shift+C) - - JUCE (Jules' Utility Class Extensions) is an all-encompassing C++ class library for developing cross-platform software. - -It contains pretty much everything you're likely to need to create most applications, and is particularly well-suited for building highly-customised GUIs, and for handling graphics and sound. - -JUCE is licensed under the GNU Public Licence version 2.0. -One module (juce_core) is permissively licensed under the ISC. - -Copyright (C) 2017 ROLI Ltd. + + Edit tangents mode (Shift+T) - - This program uses JUCE version %1. + + Flip vertically - - - Knob - - Set linear - Lineární zobrazení + + Flip horizontally + - - Set logarithmic - Logaritmické zobrazení + + Interpolation controls + - - - Set value - Nastavit hodnotu + + Discrete progression + - - Please enter a new value between -96.0 dBFS and 6.0 dBFS: - Zadejte prosím novou hodnotu mezi -96.0 dBFS a 6.0 dBFS: + + Linear progression + - - Please enter a new value between %1 and %2: - Vložte prosím novou hodnotu mezi %1 a %2: + + Cubic Hermite progression + - - - LadspaControl - - Link channels - Propojit kanály + + Tension value for spline + - - - LadspaControlDialog - - Link Channels - Propojit kanály + + Tension: + - - Channel - Kanál + + Zoom controls + - - - LadspaControlView - - Link channels - Propojit kanály + + Horizontal zooming + - - Value: - Hodnota: + + Vertical zooming + - - - LadspaEffect - - Unknown LADSPA plugin %1 requested. - Je požadován neznámý LADSPA plugin %1. + + Quantization controls + - - - LcdFloatSpinBox - - Set value - Nastavit hodnotu + + Quantization + - - Please enter a new value between %1 and %2: - Vložte prosím novou hodnotu mezi %1 a %2: + + Clear ghost notes + - - - LcdSpinBox - - Set value - Nastavit hodnotu + + + Automation Editor - no clip + - - Please enter a new value between %1 and %2: - Vložte prosím novou hodnotu mezi %1 a %2: + + + Automation Editor - %1 + + + + + Model is already connected to this clip. + - LeftRightNav + lmms::gui::BassBoosterControlDialog - - - - Previous - Předchozí + + FREQ + - - - - Next - Další + + Frequency: + - - Previous (%1) - Předchozí (%1) + + GAIN + - - Next (%1) - Další (%1) + + Gain: + - - - LfoController - - LFO Controller - Ovladač LFO + + RATIO + - - Base value - Základní hodnota + + Ratio: + + + + lmms::gui::BitInvaderView - - Oscillator speed - Rychlost oscilátoru + + Sample length + - - Oscillator amount - Míra oscilátoru + + Draw your own waveform here by dragging your mouse on this graph. + - - Oscillator phase - Fáze oscilátoru + + + Sine wave + - - Oscillator waveform - Vlna oscilátoru + + + Triangle wave + - - Frequency Multiplier - Frekvenční multiplikátor + + + Saw wave + - - - LfoControllerDialog - - LFO - LFO + + + Square wave + - - BASE - ZÁKL + + + White noise + - - Base: + + + User-defined wave - - FREQ - FREKV + + + Smooth waveform + - - LFO frequency: - Frekvence LFO: + + Interpolation + - - AMNT - MNOŽ + + Normalize + + + + lmms::gui::BitcrushControlDialog - - Modulation amount: - Hloubka modulace: + + IN + - - PHS - FÁZ + + OUT + - - Phase offset: - Posun fáze: + + + GAIN + - - degrees - stupňů + + Input gain: + - - Sine wave - Sinusová vlna + + NOISE + - - Triangle wave - Trojúhelníková vlna + + Input noise: + - - Saw wave - Pilovitá vlna + + Output gain: + - - Square wave - Pravoúhlá vlna + + CLIP + - - Moog saw wave - Pilovitá vlna typu Moog + + Output clip: + - - Exponential wave - Exponenciální vlna + + Rate enabled + - - White noise - Bílý šum + + Enable sample-rate crushing + - - User-defined shape. -Double click to pick a file. - Uživatelem definovaná křivka. -Poklepejte pro výběr souboru. + + Depth enabled + - - Mutliply modulation frequency by 1 - Násobit frekvenci LFO x 1 + + Enable bit-depth crushing + - - Mutliply modulation frequency by 100 - Násobit frekvenci LFO x 100 + + FREQ + - - Divide modulation frequency by 100 - Dělit frekvenci LFO / 100 + + Sample rate: + - - - Engine - - Generating wavetables - Generuji vlny + + STEREO + - - Initializing data structures - Inicializuji datové struktury + + Stereo difference: + - - Opening audio and midi devices - Spouštím zvuková a MIDI zařízení + + QUANT + - - Launching mixer threads - Spouštím vlákna mixážního panelu + + Levels: + - MainWindow + lmms::gui::CPULoadWidget - - Configuration file - Soubor nastavení + + DSP total: %1% + - - Error while parsing configuration file at line %1:%2: %3 - Chyba při kontrole konfiguračního souboru na řádku %1:%2: %3 + + - Notes and setup: %1% + - - Could not open file - Nemohu otevřít soubor + + - Instruments: %1% + - - Could not open file %1 for writing. -Please make sure you have write permission to the file and the directory containing the file and try again! - Nelze otevřít soubor %1 pro zápis. -Ujistěte se prosím, zda máte povolen zápis do souboru a do složky obsahující soubor a zkuste znovu! + + - Effects: %1% + - - Project recovery - Obnovení projektu + + - Mixing: %1% + + + + lmms::gui::CarlaInstrumentView - - There is a recovery file present. It looks like the last session did not end properly or another instance of LMMS is already running. Do you want to recover the project of this session? - Je k dispozici soubor pro obnovu. Zdá se, že poslední práce nebyla správně ukončena nebo že je již spuštěna jiná instance LMMS. Chcete obnovit tuto verzi projektu? + + Show GUI + - - - Recover - Obnovit + + Click here to show or hide the graphical user interface (GUI) of Carla. + - - Recover the file. Please don't run multiple instances of LMMS when you do this. - Obnovit soubor. Před dokončením prosím nespouštějte další instance LMMS. + + Params + - - - Discard - Zrušit + + Available from Carla version 2.1 and up. + + + + lmms::gui::CarlaParamsView - - Launch a default session and delete the restored files. This is not reversible. - Spustit LMMS do výchozího stavu a smazat obnovené soubory. Tento krok je nevratný. + + Search.. + - - Version %1 - Verze %1 + + Clear filter text + - - Preparing plugin browser - Připravuji prohlížeč pluginů + + Only show knobs with a connection. + - - Preparing file browsers - Připravuji prohlížeč souborů + + - Parameters + + + + lmms::gui::ClipView - - My Projects - Moje projekty + + Current position + - - My Samples - Moje samply + + Current length + - - My Presets - Moje předvolby + + + %1:%2 (%3:%4 to %5:%6) + - - My Home - Domů + + Press <%1> and drag to make a copy. + - - Root directory - Kořenový adresář + + Press <%1> for free resizing. + - - Volumes - Hlasitosti + + Hint + - - My Computer - Můj počítač + + Delete (middle mousebutton) + - - &File - &Soubor + + Delete selection (middle mousebutton) + - - &New - &Nový + + Cut + - - &Open... - &Otevřít... + + Cut selection + - - Loading background picture - Načítání obrázku pozadí + + Merge Selection + - - &Save - &Uložit + + Copy + - - Save &As... - Uložit &jako... + + Copy selection + - - Save as New &Version - Uložit jako novou &verzi + + Paste + - - Save as default template - Uložit jako výchozí šablonu + + Mute/unmute (<%1> + middle click) + - - Import... - Importovat... + + Mute/unmute selection (<%1> + middle click) + - - E&xport... - E&xportovat... + + Clip color + - - E&xport Tracks... - E&xportovat stopy... + + Change + - - Export &MIDI... - &Exportovat MIDI... + + Reset + - - &Quit - &Ukončit + + Pick random + + + + lmms::gui::CompressorControlDialog - - &Edit - Úpr&avy + + Threshold: + - - Undo - Zpět + + Volume at which the compression begins to take place + - - Redo - Znovu + + Ratio: + - - Settings - Nastavení + + How far the compressor must turn the volume down after crossing the threshold + - - &View - &Zobrazení + + Attack: + - - &Tools - &Nástroje + + Speed at which the compressor starts to compress the audio + - - &Help - &Nápověda + + Release: + - - Online Help - Nápověda online + + Speed at which the compressor ceases to compress the audio + - - Help - Nápověda + + Knee: + - - About - O LMMS + + Smooth out the gain reduction curve around the threshold + - - Create new project - Vytvořit nový projekt + + Range: + - - Create new project from template - Vytvořit nový projekt ze šablony + + Maximum gain reduction + - - Open existing project - Otevřít existující projekt + + Lookahead Length: + - - Recently opened projects - Naposledy otevřené projekty + + How long the compressor has to react to the sidechain signal ahead of time + - - Save current project - Uložit aktuální projekt + + Hold: + - - Export current project - Exportovat aktuální projekt + + Delay between attack and release stages + - - Metronome - Metronom + + RMS Size: + - - - Song Editor - Editor skladby + + Size of the RMS buffer + - - - Beat+Bassline Editor - Editor bicích/basů + + Input Balance: + - - - Piano Roll - Piano roll + + Bias the input audio to the left/right or mid/side + - - - Automation Editor - Editor automatizace + + Output Balance: + - - - Mixer - Efektový mixážní panel + + Bias the output audio to the left/right or mid/side + - - Show/hide controller rack - Zobrazit/Skrýt panel ovladačů + + Stereo Balance: + - - Show/hide project notes - Zobrazit/Skrýt poznámky k projektu + + Bias the sidechain signal to the left/right or mid/side + - - Untitled - Nepojmenovaný + + Stereo Link Blend: + - - Recover session. Please save your work! - Obnovit projekt. Uložte prosím svou práci! + + Blend between unlinked/maximum/average/minimum stereo linking modes + - - LMMS %1 - LMMS %1 + + Tilt Gain: + - - Recovered project not saved - Obnovený projekt není uložen + + Bias the sidechain signal to the low or high frequencies. -6 db is lowpass, 6 db is highpass. + - - This project was recovered from the previous session. It is currently unsaved and will be lost if you don't save it. Do you want to save it now? - Tento projekt byl obnoven z minulého spuštění LMMS. Zatím není uložen a pokud tak neučiníte, práce bude ztracena. Chcete jej nyní uložit? + + Tilt Frequency: + - - Project not saved - Projekt není uložen + + Center frequency of sidechain tilt filter + - - The current project was modified since last saving. Do you want to save it now? - Aktuální projekt byl od posledního uložení změněn. Chcete jej nyní uložit? + + Mix: + - - Open Project - Otevřít projekt + + Balance between wet and dry signals + - - LMMS (*.mmp *.mmpz) - LMMS (*.mmp *.mmpz) + + Auto Attack: + - - Save Project - Uložit projekt + + Automatically control attack value depending on crest factor + - - LMMS Project - Projekt LMMS + + Auto Release: + - - LMMS Project Template - Šablona projektu LMMS + + Automatically control release value depending on crest factor + - - Save project template - Uložit šablonu projektu + + Output gain + - - Overwrite default template? - Přepsat výchozí šablonu? + + + Gain + - - This will overwrite your current default template. - Tímto se přepíše vaše nynější výchozí šablona. + + Output volume + - - Help not available - Nápověda není dostupná + + Input gain + - - Currently there's no help available in LMMS. -Please visit http://lmms.sf.net/wiki for documentation on LMMS. - V současnosti není v LMMS nápověda dostupná. -Navštivte prosím stránku s dokumentací k LMMS na adrese http://lmms.sf.net/wiki. + + Input volume + - - Controller Rack - Panel ovladačů + + Root Mean Square + - - Project Notes - Poznámky k projektu + + Use RMS of the input + - - Fullscreen + + Peak - - Volume as dBFS - Hlasitost v dBFS + + Use absolute value of the input + - - Smooth scroll - Plynulé posouvání + + Left/Right + - - Enable note labels in piano roll - Povolit názvy tónů v Piano rollu + + Compress left and right audio + - - MIDI File (*.mid) - MIDI soubor (*.mid) + + Mid/Side + - - - untitled - nepojmenovaný + + Compress mid and side audio + - - - Select file for project-export... - Vyberte soubor pro export projektu... + + Compressor + - - Select directory for writing exported tracks... - Vyberte adresář pro zápis exportovaných stop... + + Compress the audio + - - Save project - Uložit projekt + + Limiter + - - Project saved - Projekt uložen + + Set Ratio to infinity (is not guaranteed to limit audio volume) + - - The project %1 is now saved. - Projekt %1 je nyní uložen. + + Unlinked + - - Project NOT saved. - Projekt NENÍ uložen. + + Compress each channel separately + - - The project %1 was not saved! - Projekt %1 nebyl uložen! + + Maximum + - - Import file - Importovat soubor + + Compress based on the loudest channel + - - MIDI sequences - MIDI sekvence + + Average + - - Hydrogen projects - Projekty Hydrogen + + Compress based on the averaged channel volume + - - All file types - Všechny typy souborů + + Minimum + - - - MeterDialog - - - Meter Numerator - Počet dob v taktu + + Compress based on the quietest channel + - - Meter numerator - Počet dob v taktu + + Blend + - - - Meter Denominator - Délka doby v taktu + + Blend between stereo linking modes + - - Meter denominator - Délka doby v taktu + + Auto Makeup Gain + - - TIME SIG - METRUM + + Automatically change makeup gain depending on threshold, knee, and ratio settings + - - - MeterModel - - Numerator - Počet dob + + + Soft Clip + - - Denominator - Délka doby + + Play the delta signal + - - - MidiCCRackView - - - MIDI CC Rack - %1 + + Use the compressor's output as the sidechain input - - MIDI CC Knobs: + + Lookahead Enabled - - CC %1 + + Enable Lookahead, which introduces 20 milliseconds of latency - MidiController + lmms::gui::ControllerConnectionDialog - - MIDI Controller - MIDI ovladač + + Connection Settings + - - unnamed_midi_controller - nepojmenovaný_midi_ovladač + + MIDI CONTROLLER + - - - MidiImport - - - Setup incomplete - Nastavení není dokončeno + + Input channel + - - You have not set up a default soundfont in the settings dialog (Edit->Settings). Therefore no sound will be played back after importing this MIDI file. You should download a General MIDI soundfont, specify it in settings dialog and try again. - Nemáte nastaven výchozí soundfont v dialogovém okně (Edit-> Nastavení). Z tohoto důvodu nebude po importu MIDI souboru přehráván žádný zvuk. Stáhněte si nějaký General MIDI soundfont, zadejte jej v dialogovém okně nastavení a zkuste to znovu. + + CHANNEL + - - You did not compile LMMS with support for SoundFont2 player, which is used to add default sound to imported MIDI files. Therefore no sound will be played back after importing this MIDI file. - Nelze zkompilovat LMMS s podporou přehrávače SoundFont2, který je použitý k přidání výchozího zvuku do importovaných MIDI souborů. Proto nebude po importování tohoto MIDI souboru přehráván žádný zvuk. + + Input controller + - - MIDI Time Signature Numerator + + CONTROLLER - - MIDI Time Signature Denominator + + + Auto Detect - - Numerator - Počet dob + + MIDI-devices to receive MIDI-events from + - - Denominator - Délka doby + + USER CONTROLLER + - - Track - Stopa + + MAPPING FUNCTION + - - - MidiJack - - JACK server down - When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (title) - JACK server zhavaroval + + OK + - - The JACK server seems to be shuted down. - When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (dialog message) - Zdá se, že JACK server zhavaroval. + + Cancel + - - - MidiPatternW - - MIDI Pattern + + LMMS - - Time Signature: + + Cycle Detected. + + + lmms::gui::ControllerRackView - - - - 1/4 + + Controller Rack - - 2/4 + + Add - - 3/4 + + Confirm Delete - - 4/4 + + Confirm delete? There are existing connection(s) associated with this controller. There is no way to undo. + + + lmms::gui::ControllerView - - 5/4 + + Controls - - 6/4 + + Rename controller - - Measures: + + Enter the new name for this controller - - - - 1 + + LFO - - 2 + + Move &up - - 3 + + Move &down - - 4 + + &Remove this controller - - 5 - 5 + + Re&name this controller + + + + lmms::gui::CrossoverEQControlDialog - - 6 - 6 + + Band 1/2 crossover: + - - 7 - 7 + + Band 2/3 crossover: + - - 8 + + Band 3/4 crossover: - - 9 - 9 + + Band 1 gain + - - 10 + + Band 1 gain: - - 11 - 11 + + Band 2 gain + - - 12 + + Band 2 gain: - - 13 - 13 + + Band 3 gain + - - 14 + + Band 3 gain: - - 15 + + Band 4 gain - - 16 + + Band 4 gain: - - Default Length: + + Band 1 mute - - - 1/16 + + Mute band 1 - - - 1/15 + + Band 2 mute - - - 1/12 + + Mute band 2 - - - 1/9 + + Band 3 mute - - - 1/8 + + Mute band 3 - - - 1/6 + + Band 4 mute - - - 1/3 + + Mute band 4 + + + lmms::gui::DelayControlsDialog - - - 1/2 + + DELAY - - Quantize: + + Delay time - - &File - &Soubor - - - - &Edit - Úpr&avy + + FDBK + - - &Quit - &Ukončit + + Feedback amount + - - &Insert Mode + + RATE - - F + + LFO frequency - - &Velocity Mode + + AMNT - - D + + LFO amount - - Select All + + Out gain - - A + + Gain - MidiPort - - - Input channel - Vstupní kanál - - - - Output channel - Výstupní kanál - + lmms::gui::DispersionControlDialog - - Input controller - Vstupní ovladač + + AMOUNT + - - Output controller - Výstupní ovladač + + Number of all-pass filters + - - Fixed input velocity - Pevná vstupní dynamika + + FREQ + - - Fixed output velocity - Pevná výstupní dynamika + + Frequency: + - - Fixed output note - Pevná výstupní nota + + RESO + - - Output MIDI program - Výstupní MIDI program + + Resonance: + - - Base velocity - Výchozí dynamika + + FEED + - - Receive MIDI-events - Přijímat MIDI události + + Feedback: + - - Send MIDI-events - Posílat MIDI události + + DC Offset Removal + - - - MidiSetupWidget - - Device - Zařízení + + Remove DC Offset + - MonstroInstrument + lmms::gui::DualFilterControlDialog - - Osc 1 volume - Osc 1 hlasitost + + + FREQ + - - Osc 1 panning - Osc 1 panoráma + + + Cutoff frequency + - - Osc 1 coarse detune - Osc 1 hrubé rozladění + + + RESO + - - Osc 1 fine detune left - Osc 1 jemné rozladění vlevo + + + Resonance + - - Osc 1 fine detune right - Osc 1 jemné rozladění vpravo + + + GAIN + - - Osc 1 stereo phase offset - Osc 1 posun stereo fáze + + + Gain + - - Osc 1 pulse width - Osc 1 délka pulzu + + MIX + - - Osc 1 sync send on rise - Osc 1 synchronizace při nárůstu + + Mix + - - Osc 1 sync send on fall - Osc 1 synchronizace při poklesu + + Filter 1 enabled + - - Osc 2 volume - Osc 2 hlasitost + + Filter 2 enabled + - - Osc 2 panning - Osc 2 panoráma + + Enable/disable filter 1 + - - Osc 2 coarse detune - Osc 2 hrubé rozladění + + Enable/disable filter 2 + + + + lmms::gui::DynProcControlDialog - - Osc 2 fine detune left - Osc 2 jemné rozladění vlevo + + INPUT + - - Osc 2 fine detune right - Osc 2 jemné rozladění vpravo + + Input gain: + - - Osc 2 stereo phase offset - Osc 2 posun stereo fáze + + OUTPUT + - - Osc 2 waveform - Osc 2 typ vlny + + Output gain: + - - Osc 2 sync hard - Osc 2 pevná synchronizace + + ATTACK + - - Osc 2 sync reverse - Osc 2 reverzní synchronizace + + Peak attack time: + - - Osc 3 volume - Osc 3 hlasitost + + RELEASE + - - Osc 3 panning - Osc 3 panoráma + + Peak release time: + - - Osc 3 coarse detune - Osc 3 hrubé rozladění + + + Reset wavegraph + - - Osc 3 Stereo phase offset - Osc 3 posun stereo fáze + + + Smooth wavegraph + - - Osc 3 sub-oscillator mix - Osc 3 smíchání se sub-oscilátorem + + + Increase wavegraph amplitude by 1 dB + - - Osc 3 waveform 1 - Osc 3 typ vlny 1 + + + Decrease wavegraph amplitude by 1 dB + - - Osc 3 waveform 2 - Osc 3 typ vlny 2 + + Stereo mode: maximum + - - Osc 3 sync hard - Osc 2 pevná synchronizace + + Process based on the maximum of both stereo channels + - - Osc 3 Sync reverse - Osc 3 reverzní synchronizace + + Stereo mode: average + - - LFO 1 waveform - LFO 1 typ vlny + + Process based on the average of both stereo channels + - - LFO 1 attack - LFO 1 náběh + + Stereo mode: unlinked + - - LFO 1 rate - LFO 1 rychlost + + Process each stereo channel independently + + + + lmms::gui::Editor - - LFO 1 phase - LFO 1 fáze + + Transport controls + - - LFO 2 waveform - LFO 2 typ vlny + + Play (Space) + - - LFO 2 attack - LFO 2 náběh + + Stop (Space) + - - LFO 2 rate - LFO 2 rychlost + + Record + - - LFO 2 phase - LFO 2 fáze + + Record while playing + - - Env 1 pre-delay - Obálka 1 předzpoždění + + Toggle Step Recording + + + + lmms::gui::EffectRackView - - Env 1 attack - Obálka 1 náběh + + EFFECTS CHAIN + - - Env 1 hold - Obálka 1 zadržení + + Add effect + + + + lmms::gui::EffectSelectDialog - - Env 1 decay - Obálka 1 pokles + + Add effect + - - Env 1 sustain - Obálka 1 držení + + + Name + - - Env 1 release - Obálka 1 doznění + + Type + - - Env 1 slope - Obálka 1 strmost + + All + - - Env 2 pre-delay - Obálka 2 předzpoždění + + Search + - - Env 2 attack - Obálka 2 náběh + + Description + - - Env 2 hold - Obálka 2 zadržení + + Author + + + + lmms::gui::EffectView - - Env 2 decay - Obálka 2 pokles + + On/Off + - - Env 2 sustain - Obálka 2 držení + + W/D + - - Env 2 release - Obálka 2 doznění + + Wet Level: + - - Env 2 slope - Obálka 2 strmost + + DECAY + - - Osc 2+3 modulation - Osc 2+3 modulace + + Time: + - - Selected view - Zvolený pohled + + GATE + - - Osc 1 - Vol env 1 - Osc 1 – hlasitost obálka 1 + + Gate: + - - Osc 1 - Vol env 2 - Osc 1 – hlasitost obálka 2 + + Controls + - - Osc 1 - Vol LFO 1 - Osc 1 – hlasitost LFO 1 + + Move &up + - - Osc 1 - Vol LFO 2 - Osc 1 – hlasitost LFO 2 + + Move &down + - - Osc 2 - Vol env 1 - Osc 2 – hlasitost obálka 1 + + &Remove this plugin + + + + lmms::gui::EnvelopeAndLfoView - - Osc 2 - Vol env 2 - Osc 2 – hlasitost obálka 2 + + + AMT + - - Osc 2 - Vol LFO 1 - Osc 2 – hlasitost LFO 1 + + + Modulation amount: + - - Osc 2 - Vol LFO 2 - Osc 2 – hlasitost LFO 2 + + + DEL + - - Osc 3 - Vol env 1 - Osc 3 – hlasitost obálka 1 + + + Pre-delay: + - - Osc 3 - Vol env 2 - Osc 3 – hlasitost obálka 2 + + + ATT + - - Osc 3 - Vol LFO 1 - Osc 3 – hlasitost LFO 1 + + + Attack: + - - Osc 3 - Vol LFO 2 - Osc 3 – hlasitost LFO 2 + + HOLD + - - Osc 1 - Phs env 1 - Osc 1 – fáze obálka 1 + + Hold: + - - Osc 1 - Phs env 2 - Osc 1 – fáze obálka 2 + + DEC + - - Osc 1 - Phs LFO 1 - Osc 1 – fáze LFO 1 + + Decay: + - - Osc 1 - Phs LFO 2 - Osc 1 – fáze LFO 2 + + SUST + - - Osc 2 - Phs env 1 - Osc 2 – fáze obálka 1 + + Sustain: + - - Osc 2 - Phs env 2 - Osc 2 – fáze obálka 2 + + REL + - - Osc 2 - Phs LFO 1 - Osc 2 – fáze LFO 1 + + Release: + - - Osc 2 - Phs LFO 2 - Osc 2 – fáze LFO 2 + + SPD + - - Osc 3 - Phs env 1 - Osc 3 – fáze obálka 1 + + Frequency: + - - Osc 3 - Phs env 2 - Osc 3 – fáze obálka 2 + + FREQ x 100 + - - Osc 3 - Phs LFO 1 - Osc 3 – fáze LFO 1 + + Multiply LFO frequency by 100 + - - Osc 3 - Phs LFO 2 - Osc 3 – fáze LFO 2 + + MOD ENV AMOUNT + - - Osc 1 - Pit env 1 - Osc 1 – výška obálka 1 + + Control envelope amount by this LFO + - - Osc 1 - Pit env 2 - Osc 1 – výška obálka 2 + + Hint + - - Osc 1 - Pit LFO 1 - Osc 1 – výška LFO 1 + + Drag and drop a sample into this window. + + + + lmms::gui::EnvelopeGraph - - Osc 1 - Pit LFO 2 - Osc 1 – výška LFO 2 + + Scaling + - - Osc 2 - Pit env 1 - Osc 2 – výška obálka 1 + + Dynamic + - - Osc 2 - Pit env 2 - Osc 2 – výška obálka 2 + + Uses absolute spacings but switches to relative spacing if it's running out of space + - - Osc 2 - Pit LFO 1 - Osc 2 – výška LFO 1 + + Absolute + - - Osc 2 - Pit LFO 2 - Osc 2 – výška LFO 2 + + Provides enough potential space for each segment but does not scale + - - Osc 3 - Pit env 1 - Osc 3 – výška obálka 1 + + Relative + - - Osc 3 - Pit env 2 - Osc 3 – výška obálka 2 + + Always uses all of the available space to display the envelope graph + + + + lmms::gui::EqControlsDialog - - Osc 3 - Pit LFO 1 - Osc 3 – výška LFO 1 + + HP + - - Osc 3 - Pit LFO 2 - Osc 3 – výška LFO 2 + + Low-shelf + - - Osc 1 - PW env 1 - Osc 1 – délka pulzu obálka 1 + + Peak 1 + - - Osc 1 - PW env 2 - Osc 1 – délka pulzu obálka 2 + + Peak 2 + - - Osc 1 - PW LFO 1 - Osc 1 – délka pulzu LFO 1 + + Peak 3 + - - Osc 1 - PW LFO 2 - Osc 1 – délka pulzu LFO 2 + + Peak 4 + - - Osc 3 - Sub env 1 - Osc 3 – suboscilátor obálka 1 + + High-shelf + - - Osc 3 - Sub env 2 - Osc 3 – suboscilátor obálka 2 + + LP + - - Osc 3 - Sub LFO 1 - Osc 3 – suboscilátor LFO 1 + + Input gain + - - Osc 3 - Sub LFO 2 - Osc 3 – suboscilátor LFO 2 + + + + Gain + - - - Sine wave - Sinusová vlna + + Output gain + - - Bandlimited Triangle wave - Pásmově zúžená trojúhelníková vlna + + Bandwidth: + - - Bandlimited Saw wave - Pásmově zúžená pilovitá vlna + + Octave + - - Bandlimited Ramp wave - Pásmově zúžená šikmá vlna + + Resonance: + - - Bandlimited Square wave - Pásmově zúžená pravoúhlá vlna + + Frequency: + - - Bandlimited Moog saw wave - Pásmově zúžená pilovitá vlna typu Moog + + LP group + - - - Soft square wave - Zaoblená pravoúhlá vlna + + HP group + + + + lmms::gui::EqHandle - - Absolute sine wave - Absolutní sinusová vlna + + Reso: + - - - Exponential wave - Exponenciální vlna + + BW: + - - White noise - Bílý šum + + + Freq: + + + + lmms::gui::ExportProjectDialog - - Digital Triangle wave - Digitální trojúhelníková vlna + + Could not open file + - - Digital Saw wave - Digitální pilovitá vlna + + Could not open file %1 for writing. +Please make sure you have write permission to the file and the directory containing the file and try again! + - - Digital Ramp wave - Digitální šikmá vlna + + Export project to %1 + - - Digital Square wave - Digitální pravoúhlá vlna + + ( Fastest - biggest ) + - - Digital Moog saw wave - Digitální pilovitá vlna typu Moog + + ( Slowest - smallest ) + - - Triangle wave - Trojúhelníková vlna + + Error + - - Saw wave - Pilovitá vlna + + Error while determining file-encoder device. Please try to choose a different output format. + - - Ramp wave - Šikmá vlna + + Rendering: %1% + + + + lmms::gui::Fader - - Square wave - Pravoúhlá vlna + + Set value + - - Moog saw wave - Pilovitá vlna typu Moog + + Please enter a new value between %1 and %2: + - - Abs. sine wave - Abs. sinusová vlna + + Volume: %1 dBFS + + + + lmms::gui::FileBrowser - - Random - Náhodná + + Browser + - - Random smooth - Vyhlazená náhodná + + Search + - - - MonstroView - - Operators view - Zobrazení operátorů + + Refresh list + - - Matrix view - Zobrazení matrice + + User content + - - - - Volume - Hlasitost + + Factory content + - - - - Panning - Panoráma + + Hidden content + + + + lmms::gui::FileBrowserTreeWidget - - - - Coarse detune - Hrubé rozladění + + Send to active instrument-track + - - - - semitones - půltónů + + Open containing folder + - - - Fine tune left - Jemné rozladění vlevo + + Song Editor + - - - - - cents - centů + + Pattern Editor + - - - Fine tune right - Jemné rozladění vpravo + + Send to new AudioFileProcessor instance + - - - - Stereo phase offset - Posun stereo fáze + + Send to new instrument track + - - - - - - deg - stupňů + + (%2Enter) + - - Pulse width - Délka pulzu + + Send to new sample track (Shift + Enter) + - - Send sync on pulse rise - Synchronizace při nárůstu pulzu + + Loading sample + - - Send sync on pulse fall - Synchronizace při poklesu pulzu + + Please wait, loading sample for preview... + - - Hard sync oscillator 2 - Pevně synchronizovat oscilátor 2 + + Error + - - Reverse sync oscillator 2 - Reverzně synchronizovat oscilátor 2 + + %1 does not appear to be a valid %2 file + - - Sub-osc mix - Míchání sub-osc + + --- Factory files --- + + + + lmms::gui::FileDialog - - Hard sync oscillator 3 - Pevně synchronizovat oscilátor 3 + + %1 files + - - Reverse sync oscillator 3 - Reverzně synchronizovat oscilátor 3 + + All audio files + - - - - - Attack - Náběh + + Other files + + + + lmms::gui::FlangerControlsDialog - - - Rate - Typ + + DELAY + - - - Phase - Fáze + + Delay time: + - - - Pre-delay - Předzpoždění + + RATE + - - - Hold - Držení + + Period: + - - - Decay - Pokles + + AMNT + - - - Sustain - Držení + + Amount: + - - - Release - Doznění + + PHASE + - - - Slope - Strmost + + Phase: + - - Mix osc 2 with osc 3 - Smíchat osc 2 s osc 3 + + FDBK + - - Modulate amplitude of osc 3 by osc 2 - Modulovat amplitudu oscilátoru 3 oscilátorem 2 + + Feedback amount: + - - Modulate frequency of osc 3 by osc 2 - Modulovat frekvenci oscilátoru 3 oscilátorem 2 + + NOISE + - - Modulate phase of osc 3 by osc 2 - Modulovat fázi oscilátoru 3 oscilátorem 2 + + White noise amount: + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Modulation amount - Hloubka modulace + + Invert + - MultitapEchoControlDialog + lmms::gui::FloatModelEditorBase - - Length - Délka - - - - Step length: - Délka kroku: + + Set linear + - - Dry - Poměr + + Set logarithmic + - - Dry gain: - Poměr zdrojového zvuku: + + + Set value + - - Stages - Úrovně + + Please enter a new value between -96.0 dBFS and 6.0 dBFS: + - - Low-pass stages: - Počet úrovní dolní propusti: + + Please enter a new value between %1 and %2: + + + + lmms::gui::FreeBoyInstrumentView - - Swap inputs - Přepnout vstupy + + Sweep time: + - - Swap left and right input channels for reflections - Přepnout levý a pravý vstupní kanál pro odrazy + + Sweep time + - - - NesInstrument - - Channel 1 coarse detune - Kanál 1 hrubé rozladění + + Sweep rate shift amount: + - - Channel 1 volume - Hlasitost kanálu 1 + + Sweep rate shift amount + - - Channel 1 envelope length - Kanál 1 délka obálky + + + Wave pattern duty cycle: + - - Channel 1 duty cycle - Kanál 1 pracovní cyklus + + + Wave pattern duty cycle + - - Channel 1 sweep amount - Kanál 1 množství sweepu + + Square channel 1 volume: + - - Channel 1 sweep rate - Kanál 1 rychlost sweepu + + Square channel 1 volume + - - Channel 2 Coarse detune - Kanál 2 hrubé rozladění + + + + Length of each step in sweep: + - - Channel 2 Volume - Hlasitost kanálu 2 + + + + Length of each step in sweep + - - Channel 2 envelope length - Kanál 2 délka obálky + + Square channel 2 volume: + - - Channel 2 duty cycle - Kanál 2 pracovní cyklus + + Square channel 2 volume + - - Channel 2 sweep amount - Kanál 2 množství sweepu + + Wave pattern channel volume: + - - Channel 2 sweep rate - Kanál 2 rychlost sweepu + + Wave pattern channel volume + - - Channel 3 coarse detune - Kanál 3 hrubé rozladění + + Noise channel volume: + - - Channel 3 volume - Hlasitost kanálu 3 + + Noise channel volume + - - Channel 4 volume - Hlasitost kanálu 4 + + SO1 volume (Right): + - - Channel 4 envelope length - Kanál 4 délka obálky + + SO1 volume (Right) + - - Channel 4 noise frequency - Kanál 4 frekvence šumu + + SO2 volume (Left): + - - Channel 4 noise frequency sweep - Kanál 4 sweep frekvence šumu + + SO2 volume (Left) + - - Master volume - Hlavní hlasitost + + Treble: + - - Vibrato - Vibráto + + Treble + - - - NesInstrumentView - - - - - Volume - Hlasitost + + Bass: + - - - - Coarse detune - Hrubé rozladění + + Bass + - - - - Envelope length - Délka obálky + + Sweep direction + - - Enable channel 1 - Zapnout kanál 1 + + + + + + Volume sweep direction + - - Enable envelope 1 - Zapnout obálku 1 + + Shift register width + - - Enable envelope 1 loop - Zapnout smyčku obálky 1 + + Channel 1 to SO1 (Right) + - - Enable sweep 1 - Zapnout sweep 1 + + Channel 2 to SO1 (Right) + - - - Sweep amount - Množství sweepu + + Channel 3 to SO1 (Right) + - - - Sweep rate - Rychlost sweepu + + Channel 4 to SO1 (Right) + - - - 12.5% Duty cycle - 12.5% pracovního cyklu + + Channel 1 to SO2 (Left) + - - - 25% Duty cycle - 25% pracovního cyklu + + Channel 2 to SO2 (Left) + - - - 50% Duty cycle - 50% pracovního cyklu + + Channel 3 to SO2 (Left) + - - - 75% Duty cycle - 75% pracovního cyklu + + Channel 4 to SO2 (Left) + - - Enable channel 2 - Zapnout kanál 2 + + Wave pattern graph + + + + lmms::gui::GigInstrumentView - - Enable envelope 2 - Zapnout obálku 2 + + + Open GIG file + - - Enable envelope 2 loop - Zapnout smyčku obálky 2 + + Choose patch + - - Enable sweep 2 - Zapnout sweep 2 + + Gain: + - - Enable channel 3 - Zapnout kanál 3 + + GIG Files (*.gig) + + + + lmms::gui::GranularPitchShifterControlDialog - - Noise Frequency - Frekvence šumu + + Grain Size: + - - Frequency sweep - Frekvence sweepu + + Spray: + - - Enable channel 4 - Zapnout kanál 4 + + Jitter: + - - Enable envelope 4 - Zapnout obálku 4 + + Twitch: + - - Enable envelope 4 loop - Zapnout smyčku obálky 4 + + Spray Stereo Spread: + - - Quantize noise frequency when using note frequency - Kvantizovat frekvenci šumu při použití frekvence noty + + Grain Shape: + - - Use note frequency for noise - Použít frekvenci pro šum + + Fade Length: + - - Noise mode - Typ šumu + + Feedback: + - - Master volume - Hlavní hlasitost + + Minimum Allowed Latency: + - - Vibrato - Vibráto + + Density: + - - - OpulenzInstrument - - Patch - Patch + + Glide: + - - Op 1 attack - Op 1 náběh + + + Pitch + - - Op 1 decay - Op 1 pokles + + + Pitch Stereo Spread + - - Op 1 sustain - Op 1 držení + + Open help window + - - Op 1 release - Op 1 doznění + + + Prefilter + + + + lmms::gui::GuiApplication - - Op 1 level - Op 1 úroveň + + Working directory + - - Op 1 level scaling - Op 1 škálování úrovně + + The LMMS working directory %1 does not exist. Create it now? You can change the directory later via Edit -> Settings. + - - Op 1 frequency multiplier - Op 1 násobení frekvence + + Preparing UI + - - Op 1 feedback - Op 1 zpětná vazba + + Preparing song editor + - - Op 1 key scaling rate - Op 1 rychlost podle výšky klávesy + + Preparing mixer + - - Op 1 percussive envelope - Op 1 perkusivní obálka + + Preparing controller rack + - - Op 1 tremolo - Op 1 tremolo + + Preparing project notes + - - Op 1 vibrato - Op 1 vibrato + + Preparing microtuner + - - Op 1 waveform - Op 1 typ vlny + + Preparing pattern editor + - - Op 2 attack - Op 2 náběh + + Preparing piano roll + - - Op 2 decay - Op 2 pokles + + Preparing automation editor + + + + lmms::gui::InstrumentFunctionArpeggioView - - Op 2 sustain + + ARPEGGIO - - Op 2 release - Op 2 doznění + + RANGE + - - Op 2 level - Op 2 úroveň + + Arpeggio range: + - - Op 2 level scaling - Op 2 škálování úrovně + + octave(s) + - - Op 2 frequency multiplier - Op 2 násobení frekvence + + REP + - - Op 2 key scaling rate - Op 2 rychlost podle výšky klávesy + + Note repeats: + - - Op 2 percussive envelope - Op 2 perkusivní obálka + + time(s) + - - Op 2 tremolo - Op 2 tremolo + + CYCLE + - - Op 2 vibrato - Op 2 vibrato + + Cycle notes: + - - Op 2 waveform - Op 2 typ vlny + + note(s) + - - FM - FM + + SKIP + - - Vibrato depth - Hloubka vibráta + + Skip rate: + - - Tremolo depth - Hloubka tremola + + + + % + - - - OpulenzInstrumentView - - - Attack - Náběh + + MISS + - - - Decay - Pokles + + Miss rate: + - - - Release - Doznění + + TIME + - - - Frequency multiplier - Násobič frekvence + + Arpeggio time: + - - - OscillatorObject - - Osc %1 waveform - Osc %1 vlna + + ms + - - Osc %1 harmonic - Osc %1 harmonické + + GATE + - - - Osc %1 volume - Osc %1 hlasitost + + Arpeggio gate: + - - - Osc %1 panning - Osc %1 panoráma + + Chord: + - - - Osc %1 fine detuning left - Osc %1 jemné rozladění vlevo + + Direction: + - - Osc %1 coarse detuning - Osc %1 hrubé rozladění + + Mode: + + + + lmms::gui::InstrumentFunctionNoteStackingView - - Osc %1 fine detuning right - Osc %1 jemné rozladění vpravo + + STACKING + - - Osc %1 phase-offset - Osc %1 posun fáze + + Chord: + - - Osc %1 stereo phase-detuning - Osc %1 rozladění stereo fáze + + RANGE + - - Osc %1 wave shape - Osc %1 forma vlny + + Chord range: + - - Modulation type %1 - Typ modulace %1 + + octave(s) + - Oscilloscope + lmms::gui::InstrumentMidiIOView - - Oscilloscope - Osciloskop + + ENABLE MIDI INPUT + - - Click to enable - Klepněte pro zapnutí + + + CHAN + This string must be be short, its width must be less than * width of LCD spin-box of two digits + - - - PatchesDialog - - Qsynth: Channel Preset - Qsynth: Předvolba kanálu + + + VELOC + This string must be be short, its width must be less than * width of LCD spin-box of three digits + - - Bank selector - Výběr banky + + ENABLE MIDI OUTPUT + - - Bank - Banka + + PROG + This string must be be short, its width must be less than the * width of LCD spin-box of three digits + - - Program selector - Výběr programu + + NOTE + This string must be be short, its width must be less than * width of LCD spin-box of three digits + - - Patch - Patch + + MIDI devices to receive MIDI events from + - - Name - Název + + MIDI devices to send MIDI events to + - - OK - OK + + VELOCITY MAPPING + - - Cancel - Zrušit + + MIDI VELOCITY + + + + + MIDI notes at this velocity correspond to 100% note velocity. + - PatmanView + lmms::gui::InstrumentSoundShapingView - - Open patch - Otevřít patch + + TARGET + - - Loop - Smyčka + + FILTER + - - Loop mode - Režim smyčky + + FREQ + - - Tune - Ladění + + Cutoff frequency: + - - Tune mode - Režim ladění + + Hz + - - No file selected - Není vybrán žádný soubor + + Q/RESO + - - Open patch file - Otevřít soubor patch + + Q/Resonance: + - - Patch-Files (*.pat) - Soubor patch (*.pat) + + Envelopes, LFOs and filters are not supported by the current instrument. + - MidiClipView + lmms::gui::InstrumentTrackView - - Open in piano-roll - Otevřít v Piano rollu - - - - Set as ghost in piano-roll + + Mixer channel - - Clear all notes - Vymazat všechny noty + + Volume + - - Reset name - Resetovat jméno + + Volume: + - - Change name - Změnit jméno + + VOL + - - Add steps - Přidat kroky + + Panning + - - Remove steps - Odstranit kroky + + Panning: + - - Clone Steps - Klonovat kroky + + PAN + - - - PeakController - - Peak Controller - Ovladač špičky + + MIDI + - - Peak Controller Bug - Chyba ovladače špičky + + Input + - - Due to a bug in older version of LMMS, the peak controllers may not be connect properly. Please ensure that peak controllers are connected properly and re-save this file. Sorry for any inconvenience caused. - Z důvodu chyby ve starší verzi LMMS nemusí být ovladače špiček správně připojeny. Ujistěte se prosím, zda jsou ovladače špiček správně připojeny a znovu uložte tento soubor. Omlouváme se za způsobené nepříjemnosti. + + Output + - - - PeakControllerDialog - - PEAK - ŠPIČ + + Open/Close MIDI CC Rack + - - LFO Controller - Ovladač LFO + + %1: %2 + - PeakControllerEffectControlDialog - - - BASE - ZÁKL - + lmms::gui::InstrumentTrackWindow - - Base: + + Volume - - AMNT - MNOŽ - - - - Modulation amount: - Hloubka modulace: + + Volume: + - - MULT - NÁSB + + VOL + - - Amount multiplicator: - Násobič množství: + + Panning + - - ATCK - NÁBH + + Panning: + - - Attack: - Náběh: + + PAN + - - DCAY - POKL + + Pitch + - - Release: - Doznění: + + Pitch: + - - TRSH - PRÁH + + cents + - - Treshold: - Práh: + + PITCH + - - Mute output - Ztlumit výstup + + Pitch range (semitones) + - - Absolute value - Absolutní hodnota + + RANGE + - - - PeakControllerEffectControls - - Base value - Základní hodnota + + Mixer channel + - - Modulation amount - Hloubka modulace + + CHANNEL + - - Attack - Náběh + + Save current instrument track settings in a preset file + - - Release - Doznění + + SAVE + - - Treshold - Práh + + Envelope, filter & LFO + - - Mute output - Ztlumit výstup + + Chord stacking & arpeggio + - - Absolute value - Absolutní hodnota + + Effects + - - Amount multiplicator - Násobič množství + + MIDI + - - - PianoRoll - - Note Velocity - Dynamika noty + + Tuning and transposition + - - Note Panning - Panoráma noty + + Save preset + - - Mark/unmark current semitone - Zvýraznit/Skrýt zvolený tón + + XML preset file (*.xpf) + - - Mark/unmark all corresponding octave semitones - Zvýraznit/Skrýt zvolený tón ve všech oktávách + + Plugin + + + + lmms::gui::InstrumentTuningView - - Mark current scale - Zvýraznit zvolenou stupnici + + GLOBAL TRANSPOSITION + - - Mark current chord - Zvýraznit zvolený akord + + Enables the use of global transposition + - - Unmark all - Skrýt vše + + Microtuner is not available for MIDI-based instruments. + - - Select all notes on this key - Vybrat všechny noty zvolené výšky + + MICROTUNER + - - Note lock - Zamknout notu + + Active scale: + - - Last note - Podle poslední noty + + + Edit scales and keymaps + - - No key + + Active keymap: - - No scale - Žádná stupnice + + Import note ranges from keymap + - - No chord - Žádný akord + + When enabled, the first, last and base notes of this instrument will be overwritten with values specified by the selected keymap. + + + + lmms::gui::KickerInstrumentView - - Nudge + + Start frequency: - - Snap + + End frequency: - - Velocity: %1% - Dynamika: %1% + + Frequency slope: + - - Panning: %1% left - Panoráma: %1% vlevo + + Gain: + - - Panning: %1% right - Panoráma: %1% vpravo + + Envelope length: + - - Panning: center - Panoráma: střed + + Envelope slope: + - - Glue notes failed + + Click: - - Please select notes to glue first. + + Noise: - - Please open a clip by double-clicking on it! - Otevřete prosím záznam poklepáním! + + Start distortion: + - - - Please enter a new value between %1 and %2: - Vložte prosím novou hodnotu mezi %1 a %2: + + End distortion: + - PianoRollWindow + lmms::gui::LOMMControlDialog - - Play/pause current clip (Space) - Přehrát/Pozastavit přehrávání aktuálního záznamu (mezerník) + + Depth: + - - Record notes from MIDI-device/channel-piano - Nahrávat z MIDI zařízení / virtuální klávesnice + + Compression amount for all bands + - - Record notes from MIDI-device/channel-piano while playing song or BB track - Nahrávat z MIDI zařízení / virtuální klávesnice při přehrávání skladby nebo stopy bicích/basů + + Time: + - - Record notes from MIDI-device/channel-piano, one step at the time - Nahrává noty z MIDI zařízení / piano kanálu v jednotlivých krocích + + Attack/release scaling for all bands + - - Stop playing of current clip (Space) - Zastavit přehrávání aktuálního záznamu (mezerník) + + Input Volume: + - - Edit actions - Akce úprav + + Input volume + - - Draw mode (Shift+D) - Režim kreslení (Shift+D) + + Output Volume: + - - Erase mode (Shift+E) - Režim mazání (Shift+E) + + Output volume + - - Select mode (Shift+S) - Režim výběru (Shift+S) + + Upward Depth: + - - Pitch Bend mode (Shift+T) - Režim ohýbání výšky (Shift+T) + + Upward compression amount for all bands + - - Quantize - Kvantizace + + Downward Depth: + - - Quantize positions + + Downward compression amount for all bands - - Quantize lengths + + High/Mid Crossover - - File actions + + Mid/Low Crossover - - Import clip + + High/mid band split - - - Export clip + + Mid/low band split - - Copy paste controls - Ovládání kopírování a vkládání + + Enable High Band + - - Cut (%1+X) - Vystřihnout (%1+X) + + Enable Mid Band + - - Copy (%1+C) - Kopírovat (%1+C) + + Enable Low Band + - - Paste (%1+V) - Vložit (%1+V) + + High Input Volume: + - - Timeline controls - Ovládání časové osy + + Input volume for high band + - - Glue + + Mid Input Volume: - - Knife + + Input volume for mid band - - Fill + + Low Input Volume: - - Cut overlaps + + Input volume for low band - - Min length as last + + High Output Volume: - - Max length as last + + Output volume for high band - - Zoom and note controls - Lupa a ovládání not + + Mid Output Volume: + - - Horizontal zooming - Horizontální zvětšení + + Output volume for mid band + - - Vertical zooming - Vertikální zvětšení + + Low Output Volume: + - - Quantization - Kvantizace + + Output volume for low band + - - Note length - Délka noty + + Above Threshold High + - - Key + + Downward compression threshold for high band - - Scale - Stupnice + + Above Threshold Mid + - - Chord - Akord + + Downward compression threshold for mid band + - - Snap mode + + Above Threshold Low - - Clear ghost notes - Vymazat stínové noty + + Downward compression threshold for low band + - - - Piano-Roll - %1 - Piano roll – %1 + + Above Ratio High + - - - Piano-Roll - no clip - Piano roll – žádný záznam + + Downward compression ratio for high band + - - - XML clip file (*.xpt *.xptz) + + Above Ratio Mid - - Export clip success + + Downward compression ratio for mid band - - Clip saved to %1 + + Above Ratio Low - - Import clip. + + Downward compression ratio for low band - - You are about to import a clip, this will overwrite your current clip. Do you want to continue? + + Below Threshold High - - Open clip + + Upward compression threshold for high band - - Import clip success + + Below Threshold Mid - - Imported clip %1! + + Upward compression threshold for mid band - - - PianoView - - Base note - Základní nota + + Below Threshold Low + - - First note + + Upward compression threshold for low band - - Last note - Podle poslední noty + + Below Ratio High + - - - Plugin - - Plugin not found - Plugin nenalezen + + Upward compression ratio for high band + - - The plugin "%1" wasn't found or could not be loaded! -Reason: "%2" - Plugin "%1" nebyl nalezen nebo nemůže být načten! -Důvod: "%2" + + Below Ratio Mid + - - Error while loading plugin - Při načítání pluginu došlo k chybě + + Upward compression ratio for mid band + - - Failed to load plugin "%1"! - Načtení pluginu "%1" selhalo! + + Below Ratio Low + - - - PluginBrowser - - Instrument Plugins - Nástrojové pluginy + + Upward compression ratio for low band + - - Instrument browser - Prohlížeč nástrojů + + Attack High: + - - Drag an instrument into either the Song-Editor, the Beat+Bassline Editor or into an existing instrument track. - Nástroj přetáhněte do editoru skladby, editoru bicích/basů nebo do existující nástrojové stopy. + + Attack time for high band + - - no description - bez popisu + + Attack Mid: + - - A native amplifier plugin - Nativní plugin zesilovače + + Attack time for mid band + - - Simple sampler with various settings for using samples (e.g. drums) in an instrument-track - Jednoduchý sampler s bohatým nastavením pro používání samplů (např. bicích nástrojů) v nástrojové stopě + + Attack Low: + - - Boost your bass the fast and simple way - Zesílení vašeho basu rychlým a snadným způsobem + + Attack time for low band + - - Customizable wavetable synthesizer - Upravitelný tabulkový syntezátor + + Release High: + - - An oversampling bitcrusher - Bitcrusher založený na převzorkování + + Release time for high band + - - Carla Patchbay Instrument - Nástroj Carla Patchbay + + Release Mid: + - - Carla Rack Instrument - Nástroj Carla Rack + + Release time for mid band + - - A dynamic range compressor. + + Release Low: - - A 4-band Crossover Equalizer - 4 pásmový crossover ekvalizér + + Release time for low band + - - A native delay plugin - Nativní plugin delay + + RMS Time: + - - A Dual filter plugin - Plugin duální filtr + + RMS size for sidechain signal (set to 0 for Peak mode) + - - plugin for processing dynamics in a flexible way - plugin pro flexibilní práci s dynamikou + + Knee: + - - A native eq plugin - Nativní plugin ekvalizér + + Knee size for all compressors + + + + + Range: + - - A native flanger plugin - Nativní plugin flanger + + Maximum gain increase for all bands + - - Emulation of GameBoy (TM) APU - Emulace APU GameBoye (TM) + + Balance: + - - Player for GIG files - Přehrávač GIG souborů + + Bias input volume towards one channel + - - Filter for importing Hydrogen files into LMMS - Filtr pro import souborů Hydrogen do LMMS + + Scale output volume with Depth + - - Versatile drum synthesizer - Univerzální syntezátor bicích nástrojů + + Scale output volume with Depth parameter + - - List installed LADSPA plugins - Seznam nainstalovaných LADSPA pluginů + + Stereo Link + - - plugin for using arbitrary LADSPA-effects inside LMMS. - plugin pro užití libovolných LADSPA efektů uvnitř LMMS. + + Apply same gain change to both channels + - - Incomplete monophonic imitation TB-303 - Nekompletní monofonní imitace TB-303 + + Auto Time: + - - plugin for using arbitrary LV2-effects inside LMMS. + + Speed up attack and release times when transients occur - - plugin for using arbitrary LV2 instruments inside LMMS. + + Mix: - - Filter for exporting MIDI-files from LMMS - Filtr pro export souborů MIDI z LMMS + + Wet/Dry of all bands + - - Filter for importing MIDI-files into LMMS - Filtr pro import MIDI souborů do LMMS + + Feedback + - - Monstrous 3-oscillator synth with modulation matrix - 3oscilátorový syntezátor Monstrous s modulační matricí + + Use output as sidechain signal instead of input + - - A multitap echo delay plugin - Plugin multi-tap delay + + Mid/Side + - - A NES-like synthesizer - Syntetizér typu NES + + Compress mid/side channels instead of left/right + - - 2-operator FM Synth - 2 operátorová FM syntéza + + + Suppress upward compression for side band + - - Additive Synthesizer for organ-like sounds - Aditivní syntezátor pro zvuky podobné varhanám + + + Lookahead + - - GUS-compatible patch instrument - GUS kompatibilní patch instrument + + Lookahead length + - - Plugin for controlling knobs with sound peaks - Plugin pro řízení otočných ovladačů zvukovými špičkami + + Clear all parameters + + + + lmms::gui::LadspaBrowserView - - Reverb algorithm by Sean Costello - Algoritmus dozvuku od Seana Costello + + + Available Effects + - - Player for SoundFont files - Přehrávač SoundFont souborů + + + Unavailable Effects + - - LMMS port of sfxr - LMMS port sfxr + + + Instruments + - - Emulation of the MOS6581 and MOS8580 SID. -This chip was used in the Commodore 64 computer. - Emulace MOS6581 a MOS8580 SID. -Tento čip byl používán v počítačích Commodore 64. + + + Analysis Tools + - - A graphical spectrum analyzer. - Grafický analyzátor spektra + + + Don't know + - - Plugin for enhancing stereo separation of a stereo input file - Plugin pro zlepšení stereo separace vstupních stereo souborů + + Type: + + + + lmms::gui::LadspaControlDialog - - Plugin for freely manipulating stereo output - Plugin pro volné úpravy stereo výstupu + + Link Channels + - - Tuneful things to bang on - Melodické bicí nástroje + + Channel + + + + lmms::gui::LadspaControlView - - Three powerful oscillators you can modulate in several ways - 3 silné oscilátory, které můžete různými způsoby modulovat + + Link channels + - - A stereo field visualizer. + + Value: + + + lmms::gui::LadspaDescription - - VST-host for using VST(i)-plugins within LMMS - VST host pro užití VST(i) pluginů v LMMS + + Plugins + - - Vibrating string modeler - Vibrační modelátor strun + + Description + - - plugin for using arbitrary VST effects inside LMMS. - Plugin pro použití libovolného VST efektu v LMMS. + + Name: + - - 4-oscillator modulatable wavetable synth - 4oscilátorový modulovatelný tabulkový syntezátor + + Maker: + - - plugin for waveshaping - plugin pro tvarování vln + + Copyright: + - - Mathematical expression parser - Parser matematických výrazů + + Requires Real Time: + - - Embedded ZynAddSubFX - Vestavěný ZynAddSubFX + + + + Yes + - - - PluginDatabaseW - - Carla - Add New + + + + No - - Format + + Real Time Capable: - - Internal + + In Place Broken: - - LADSPA + + Channels In: - - DSSI + + Channels Out: + + + lmms::gui::LadspaMatrixControlDialog - - LV2 + + Link Channels - - VST2 + + Link - - VST3 + + Channel %1 - - AU + + Link channels + + + lmms::gui::LadspaPortDialog - - Sound Kits + + Ports - - Type - Typ + + Name + - - Effects - Efekty + + Rate + - - Instruments - Nástroje + + Direction + - - MIDI Plugins + + Type - - Other/Misc + + Min < Default < Max - - Architecture + + Logarithmic - - Native + + SR Dependent - - Bridged + + Audio - - Bridged (Wine) + + Control - - Requirements + + Input - - With Custom GUI + + Output - - With CV Ports + + Toggled - - Real-time safe only + + Integer - - Stereo only + + Float - - With Inline Display + + + Yes + + + lmms::gui::Lb302SynthView - - Favorites only + + Cutoff Freq: - - (Number of Plugins go here) + + Resonance: - - &Add Plugin + + Env Mod: - - Cancel - Zrušit + + Decay: + - - Refresh + + 303-es-que, 24dB/octave, 3 pole filter - - Reset filters + + Slide Decay: - - - - - - - - - - - - - - - - - TextLabel + + DIST: - - Format: + + Saw wave - - Architecture: + + Click here for a saw-wave. - - Type: - Typ: + + Triangle wave + - - MIDI Ins: + + Click here for a triangle-wave. - - Audio Ins: + + Square wave - - CV Outs: + + Click here for a square-wave. - - MIDI Outs: + + Rounded square wave - - Parameter Ins: + + Click here for a square-wave with a rounded end. - - Parameter Outs: + + Moog wave - - Audio Outs: + + Click here for a moog-like wave. - - CV Ins: + + Sine wave - - UniqueID: + + Click for a sine-wave. - - Has Inline Display: + + + White noise wave - - Has Custom GUI: + + Click here for an exponential wave. - - Is Synth: + + Click here for white-noise. - - Is Bridged: + + Bandlimited saw wave - - Information + + Click here for bandlimited saw wave. - - Name - Název + + Bandlimited square wave + - - Label/URI + + Click here for bandlimited square wave. - - Maker + + Bandlimited triangle wave - - Binary/Filename + + Click here for bandlimited triangle wave. - - Focus Text Search + + Bandlimited moog saw wave - - Ctrl+F + + Click here for bandlimited moog saw wave. - PluginEdit + lmms::gui::LcdFloatSpinBox - - Plugin Editor + + Set value - - Edit + + Please enter a new value between %1 and %2: + + + lmms::gui::LcdSpinBox - - Control - Ovládání - - - - MIDI Control Channel: + + Set value - - N + + Please enter a new value between %1 and %2: + + + lmms::gui::LeftRightNav - - Output dry/wet (100%) + + + + Previous - - Output volume (100%) + + + + Next - - Balance Left (0%) + + Previous (%1) - - - Balance Right (0%) + + Next (%1) + + + lmms::gui::LfoControllerDialog - - Use Balance + + LFO - - Use Panning + + BASE - - Settings - Nastavení - - - - Use Chunks + + Base: - - Audio: + + FREQ - - Fixed-Size Buffer + + LFO frequency: - - Force Stereo (needs reload) + + AMNT - - MIDI: + + Modulation amount: - - Map Program Changes + + PHS - - Send Bank/Program Changes + + Phase offset: - - Send Control Changes + + degrees - - Send Channel Pressure + + Sine wave - - Send Note Aftertouch + + Triangle wave - - Send Pitchbend + + Saw wave - - Send All Sound/Notes Off + + Square wave - - -Plugin Name - + + Moog saw wave - - Program: + + Exponential wave - - MIDI Program: + + White noise - - Save State + + User-defined shape. +Double click to pick a file. - - Load State + + Multiply modulation frequency by 1 - - Information + + Multiply modulation frequency by 100 - - Label/URI: + + Divide modulation frequency by 100 + + + lmms::gui::LfoGraph - - Name: + + %1 Hz + + + lmms::gui::MainWindow - - Type: - Typ: - - - - Maker: + + Configuration file - - Copyright: + + Error while parsing configuration file at line %1:%2: %3 - - Unique ID: + + Could not open file - - - PluginFactory - - Plugin not found. - Plugin nebyl nalezen. + + Could not open file %1 for writing. +Please make sure you have write permission to the file and the directory containing the file and try again! + - - LMMS plugin %1 does not have a plugin descriptor named %2! - U LMMS pluginu %1 chybí popisovač pluginu s názvem %2! + + Project recovery + - - - PluginParameter - - Form + + There is a recovery file present. It looks like the last session did not end properly or another instance of LMMS is already running. Do you want to recover the project of this session? - - Parameter Name + + + Recover - - ... + + Recover the file. Please don't run multiple instances of LMMS when you do this. - - - PluginRefreshW - - Carla - Refresh + + + Discard - - Search for new... + + Launch a default session and delete the restored files. This is not reversible. - - LADSPA + + Version %1 - - DSSI + + Preparing plugin browser - - LV2 + + Preparing file browsers - - VST2 + + My Projects - - VST3 + + My Samples - - AU + + My Presets - - SF2/3 + + My Home - - SFZ + + Root Directory - - Native + + Volumes - - POSIX 32bit + + My Computer - - POSIX 64bit + + Loading background picture - - Windows 32bit + + &File - - Windows 64bit + + &New - - Available tools: + + &Open... - - python3-rdflib (LADSPA-RDF support) + + &Save - - carla-discovery-win64 + + Save &As... - - carla-discovery-native + + Save as New &Version - - carla-discovery-posix32 + + Save as default template - - carla-discovery-posix64 + + Import... - - carla-discovery-win32 + + E&xport... - - Options: + + E&xport Tracks... - - Carla will run small processing checks when scanning the plugins (to make sure they won't crash). -You can disable these checks to get a faster scanning time (at your own risk). + + Export &MIDI... - - Run processing checks while scanning + + &Quit - - Press 'Scan' to begin the search + + &Edit - - Scan + + Undo - - >> Skip + + Redo - - Close - Zavřít + + Scales and keymaps + - - - PluginWidget - - - - - - Frame + + Settings - - Enable + + &View - - On/Off - Zap/Vyp + + &Tools + - - - - - PluginName + + &Help - - MIDI - MIDI + + Online Help + - - AUDIO IN + + Help - - AUDIO OUT + + About - - GUI + + Create new project - - Edit + + Create new project from template - - Remove + + Open existing project - - Plugin Name + + Recently opened projects - - Preset: + + Save current project - - - ProjectNotes - - Project Notes - Poznámky k projektu + + Export current project + - - Enter project notes here - Sem zapište poznámky k projektu + + Metronome + - - Edit Actions - Provedené úpravy + + + Song Editor + - - &Undo - &Zpět + + + Pattern Editor + - - %1+Z - %1+Z + + + Piano Roll + - - &Redo - &Znovu + + + Automation Editor + - - %1+Y - %1+Z + + + Mixer + - - &Copy - &Kopírovat + + Show/hide controller rack + - - %1+C - %1+C + + Show/hide project notes + - - Cu&t - &Vyjmout + + Untitled + - - %1+X - %1+X + + Recover session. Please save your work! + - - &Paste - V&ložit + + LMMS %1 + - - %1+V - %1+V + + Recovered project not saved + - - Format Actions - Formátování + + This project was recovered from the previous session. It is currently unsaved and will be lost if you don't save it. Do you want to save it now? + - - &Bold - &Tučné + + Project not saved + - - %1+B - %1+B + + The current project was modified since last saving. Do you want to save it now? + - - &Italic - &Kurzíva + + Open Project + - - %1+I - %1+I + + LMMS (*.mmp *.mmpz) + - - &Underline - &Podtržené + + Save Project + - - %1+U - %1+U + + LMMS Project + - - &Left - &Vlevo + + LMMS Project Template + - - %1+L - %1+L + + Save project template + - - C&enter - &Na střed + + Overwrite default template? + - - %1+E - %1+E + + This will overwrite your current default template. + - - &Right - V&pravo + + Help not available + - - %1+R - %1+R + + Currently there's no help available in LMMS. +Please visit http://lmms.sf.net/wiki for documentation on LMMS. + - - &Justify - &Do bloku + + Controller Rack + - - %1+J - %1+J + + Project Notes + - - &Color... - &Barva... + + Fullscreen + - - - ProjectRenderer - - WAV (*.wav) - WAV (*.wav) + + Volume as dBFS + - - FLAC (*.flac) - FLAC (*.flac) + + Smooth scroll + - - OGG (*.ogg) - OGG (*.ogg) + + Enable note labels in piano roll + - - MP3 (*.mp3) - MP3 (*.mp3) + + MIDI File (*.mid) + - - - QObject - - Reload Plugin + + + untitled - - Show GUI - Ukázat grafické rozhraní + + + Select file for project-export... + - - Help - Nápověda + + Select directory for writing exported tracks... + - - - QWidget - - - - - Name: - Název: + + Save project + - - URI: + + Project saved - - - - Maker: - Tvůrce: + + The project %1 is now saved. + - - - - Copyright: - Autorská práva: + + Project NOT saved. + - - - Requires Real Time: - Vyžaduje běh v reálném čase: + + The project %1 was not saved! + - - - - - - - Yes - Ano + + Import file + - - - - - - - No - Ne + + MIDI sequences + - - - Real Time Capable: - Schopnost běhu v reálném čase: + + Hydrogen projects + - - - In Place Broken: - Na místě poškozeného: + + All file types + + + + lmms::gui::MalletsInstrumentView - - - Channels In: - Vstupní kanály: + + Instrument + - - - Channels Out: - Výstupní kanály: + + Spread + - - File: %1 - Soubor: %1 + + Spread: + - - File: - Soubor: + + Random + - - - RecentProjectsMenu - - &Recently Opened Projects - &Naposledy otevřené projekty + + Random: + - - - RenameDialog - - Rename... - Přejmenovat... + + Missing files + - - - ReverbSCControlDialog - - Input - Vstup + + Your Stk-installation seems to be incomplete. Please make sure the full Stk-package is installed! + - - Input gain: - Zesílení vstupu: + + Hardness + - - Size - Velikost + + Hardness: + - - Size: - Velikost: + + Position + - - Color - Barva + + Position: + - - Color: - Barva: + + Vibrato gain + - - Output - Výstup + + Vibrato gain: + - - Output gain: - Zesílení výstupu: + + Vibrato frequency + - - - ReverbSCControls - - Input gain - Zesílení vstupu + + Vibrato frequency: + - - Size - Velikost + + Stick mix + - - Color - Barva + + Stick mix: + - - Output gain - Zesílení výstupu + + Modulator + - - - SaControls - - Pause - Pauza + + Modulator: + - - Reference freeze + + Crossfade - - Waterfall - Vodopád + + Crossfade: + - - Averaging + + LFO speed + + + + + LFO speed: - - Stereo - Stereo + + LFO depth + - - Peak hold - Držet špičku + + LFO depth: + - - Logarithmic frequency - Logaritmická frekvence + + ADSR + - - Logarithmic amplitude - Logaritmická amplituda + + ADSR: + - - Frequency range - Frekvenční rozsah + + Pressure + - - Amplitude range - Rozsah amplitudy + + Pressure: + - - FFT block size - Velikost FFT bloku + + Speed + - - FFT window type - Typ FFT okna + + Speed: + + + + lmms::gui::ManageVSTEffectView - - Peak envelope resolution + + - VST parameter control - - Spectrum display resolution - Rozlišení zobrazení spektra + + VST sync + - - Peak decay multiplier + + + Automated - - Averaging weight + + Close + + + lmms::gui::ManageVestigeInstrumentView - - Waterfall history size + + + - VST plugin control - - Waterfall gamma correction + + VST Sync - - FFT window overlap - Překrývání FFT oken + + + Automated + - - FFT zero padding + + Close + + + lmms::gui::MeterDialog - - - Full (auto) + + + Meter Numerator - - - - Audible + + Meter numerator - - Bass - Basy + + + Meter Denominator + - - Mids + + Meter denominator - - High + + TIME SIG + + + lmms::gui::MicrotunerConfig - - Extended - Rozšířený + + Selected scale slot + - - Loud - Hlasitý + + Selected keymap slot + - - Silent - Tichý + + + First key + - - (High time res.) + + + Last key - - (High freq. res.) + + + Middle key - - Rectangular (Off) + + + Base key - - - Blackman-Harris (Default) + + + + Base note frequency - - Hamming + + Microtuner Configuration - - Hanning + + Scale slot to edit: - - - SaControlsDialog - - Pause - Pauza + + Scale description. Cannot start with "!" and cannot contain a newline character. + - - Pause data acquisition + + + Load - - Reference freeze + + + Save - - Freeze current input as a reference / disable falloff in peak-hold mode. + + Load scale definition from a file. - - Waterfall - Vodopád + + Save scale definition to a file. + - - Display real-time spectrogram + + Enter intervals on separate lines. Numbers containing a decimal point are treated as cents. +Other inputs are treated as integer ratios and must be in the form of 'a/b' or 'a'. +Unity (0.0 cents or ratio 1/1) is always present as a hidden first value; do not enter it manually. - - Averaging + + Apply scale changes - - Enable exponential moving average + + Verify and apply changes made to the selected scale. To use the scale, select it in the settings of a supported instrument. - - Stereo - Stereo + + Keymap slot to edit: + - - Display stereo channels separately + + Keymap description. Cannot start with "!" and cannot contain a newline character. - - Peak hold - Držet špičku + + Load key mapping definition from a file. + - - Display envelope of peak values + + Save key mapping definition to a file. - - Logarithmic frequency - Logaritmická frekvence + + Enter key mappings on separate lines. Each line assigns a scale degree to a MIDI key, +starting with the middle key and continuing in sequence. +The pattern repeats for keys outside of the explicit keymap range. +Multiple keys can be mapped to the same scale degree. +Enter 'x' if you wish to leave the key disabled / not mapped. + - - Switch between logarithmic and linear frequency scale - Přepnout mezi mezi logaritmickým a lineárním zobrazením frekvence + + FIRST + - - - Frequency range - Frekvenční rozsah + + First MIDI key that will be mapped + - - Logarithmic amplitude - Logaritmická amplituda + + LAST + - - Switch between logarithmic and linear amplitude scale - Přepnout mezi mezi logaritmickým a lineárním zobrazením amplitudy + + Last MIDI key that will be mapped + - - - Amplitude range - Rozsah amplitudy + + MIDDLE + - - Envelope res. - Rozliš. obálky + + First line in the keymap refers to this MIDI key + - - Increase envelope resolution for better details, decrease for better GUI performance. - Zvyšte rozlišení obálky pro lepší detaily, snižte pro vyšší výkon rozhraní (GUI). + + BASE N. + - - - Draw at most + + Base note frequency will be assigned to this MIDI key - - envelope points per pixel + + BASE NOTE FREQ - - Spectrum res. - Rozliš. spektra + + Apply keymap changes + - - Increase spectrum resolution for better details, decrease for better GUI performance. - Zvyšte rozlišení spektra pro lepší detaily, snižte pro vyšší výkon rozhraní (GUI). + + Verify and apply changes made to the selected key mapping. To use the mapping, select it in the settings of a supported instrument. + - - spectrum points per pixel - bodů spektra na pixel + + Scale parsing error + - - Falloff factor + + Scale name cannot start with an exclamation mark - - Decrease to make peaks fall faster. + + Scale name cannot contain a new-line character - - Multiply buffered value by + + Interval defined in cents cannot be converted to a number - - Averaging weight + + Numerator of an interval defined as a ratio cannot be converted to a number - - Decrease to make averaging slower and smoother. + + Denominator of an interval defined as a ratio cannot be converted to a number - - New sample contributes + + Interval defined as a ratio cannot be negative - - Waterfall height + + Keymap parsing error - - Increase to get slower scrolling, decrease to see fast transitions better. Warning: medium CPU usage. + + Keymap name cannot start with an exclamation mark - - Keep - Zachovat + + Keymap name cannot contain a new-line character + - - lines - linie + + Scale degree cannot be converted to a whole number + - - Waterfall gamma - Gamma vodopádu + + Scale degree cannot be negative + - - Decrease to see very weak signals, increase to get better contrast. + + Invalid keymap - - Gamma value: - Hodnota gamma: + + Base key is not mapped to any scale degree. No sound will be produced as there is no way to assign reference frequency to any note. + - - Window overlap - Překrývání oken + + Open scale + - - Increase to prevent missing fast transitions arriving near FFT window edges. Warning: high CPU usage. + + + Scala scale definition (*.scl) - - Each sample processed - Zpracování všech samplů + + Scale load failure + - - times + + + Unable to open selected file. - - Zero padding + + Open keymap - - Increase to get smoother-looking spectrum. Warning: high CPU usage. + + + Scala keymap definition (*.kbm) - - Processing buffer is + + Keymap load failure - - steps larger than input block + + Save scale - - Advanced settings - Rozšířená nastavení + + Scale save failure + - - Access advanced settings + + + Unable to open selected file for writing. - - - FFT block size - Velikost FFT bloku + + Save keymap + - - - FFT window type - Typ FFT okna + + Keymap save failure + - SampleBuffer + lmms::gui::MidiCCRackView + + + + MIDI CC Rack - %1 + + - - Fail to open file - Chyba otevírání souboru + + MIDI CC Knobs: + - - Audio files are limited to %1 MB in size and %2 minutes of playing time - Audio soubory jsou omezeny na %1 MB velikosti a %2 minut délky + + CC %1 + + + + lmms::gui::MidiClipView - - Open audio file - Otevřít audio soubor + + + Transpose + - - All Audio-Files (*.wav *.ogg *.ds *.flac *.spx *.voc *.aif *.aiff *.au *.raw) - Všechny audio soubory (*.wav *.ogg *.ds *.flac *.spx *.voc *.aif *.aiff *.au *.raw) + + Semitones to transpose by: + - - Wave-Files (*.wav) - WAV soubory (*.wav) + + Open in piano-roll + - - OGG-Files (*.ogg) - OGG soubory (*.ogg) + + Set as ghost in piano-roll + - - DrumSynth-Files (*.ds) - DrumSynth soubory (*.ds) + + Set as ghost in automation editor + - - FLAC-Files (*.flac) - FLAC soubory (*.flac) + + Clear all notes + - - SPEEX-Files (*.spx) - SPEEX soubory (*.spx) + + Reset name + - - VOC-Files (*.voc) - VOC soubory (*.voc) + + Change name + - - AIFF-Files (*.aif *.aiff) - Soubory AIFF (*.aif *.aiff) + + Add steps + - - AU-Files (*.au) - AU soubory (*.au) + + Remove steps + - - RAW-Files (*.raw) - RAW soubory (*.raw) + + Clone Steps + - SampleClipView - - - Double-click to open sample - Poklepejte pro výběr samplu - + lmms::gui::MidiSetupWidget - - Delete (middle mousebutton) - Smazat (prostřední tlačítko myši) + + Device + + + + lmms::gui::MixerChannelLcdSpinBox - - Delete selection (middle mousebutton) + + Assign to: - - Cut - Vyjmout + + New Mixer Channel + - - Cut selection + + Please enter a new value between %1 and %2: - - Copy - Kopírovat + + Set value + + + + lmms::gui::MixerChannelView - - Copy selection + + Channel send amount - - Paste - Vložit + + Mute + - - Mute/unmute (<%1> + middle click) - Ztlumit/Odtlumit (<%1> + prostřední tlačítko) + + Mute this channel + - - Mute/unmute selection (<%1> + middle click) + + Solo - - Reverse sample - Přehrávat pozpátku + + Solo this channel + - - Set clip color + + Fader %1 - - Use track color + + Move &left - - - SampleTrack - - Volume - Hlasitost + + Move &right + - - Panning - Panoráma + + Rename &channel + - - Mixer channel - Efektový kanál + + R&emove channel + - - - Sample track - Stopa samplů + + Remove &unused channels + - - - SampleTrackView - - Track volume - Hlasitost stopy + + Color + - - Channel volume: - Hlasitost kanálu: + + Change + - - VOL - HLA + + Reset + - - Panning - Panoráma + + Pick random + - - Panning: - Panoráma: + + This Mixer Channel is being used. +Are you sure you want to remove this channel? + +Warning: This operation can not be undone. + - - PAN - PAN + + Confirm removal + - - Channel %1: %2 - Efekt %1: %2 + + Don't ask again + - SampleTrackWindow + lmms::gui::MixerView - - GENERAL SETTINGS - HLAVNÍ NASTAVENÍ + + Mixer + + + + lmms::gui::MonstroView - - Sample volume - Hlasitost samplu + + Operators view + - - Volume: - Hlasitost: + + Matrix view + - - VOL - HLA + + + + Volume + - + + + Panning - Panoráma - - - - Panning: - Panoráma: - - - - PAN - PAN + - - Mixer channel - Efektový kanál + + + + Coarse detune + - - CHANNEL - EFEKT + + + + semitones + - - - SaveOptionsWidget - - Discard MIDI connections - Zrušit MIDI připojení + + + Fine tune left + - - Save As Project Bundle (with resources) + + + + + cents - - - SetupDialog - - Reset to default value - Obnovit výchozí hodnoty + + + Fine tune right + - - Use built-in NaN handler - Použít vestavěný NaN handler + + + + Stereo phase offset + - - Settings - Nastavení + + + + + + deg + - - - General - Hlavní + + Pulse width + - - Graphical user interface (GUI) - Grafické uživatelské rozhraní (GUI) + + Send sync on pulse rise + - - Display volume as dBFS - Zobrazit hlasitost v dBFS + + Send sync on pulse fall + - - Enable tooltips - Zapnout bublinovou nápovědu + + Hard sync oscillator 2 + - - Enable master oscilloscope by default + + Reverse sync oscillator 2 - - Enable all note labels in piano roll + + Sub-osc mix - - Enable compact track buttons + + Hard sync oscillator 3 - - Enable one instrument-track-window mode + + Reverse sync oscillator 3 - - Show sidebar on the right-hand side + + + + + Attack - - Let sample previews continue when mouse is released + + + Rate - - Mute automation tracks during solo + + + Phase - - Show warning when deleting tracks + + + Pre-delay - - Projects - Projekty + + + Hold + - - Compress project files by default + + + Decay - - Create a backup file when saving a project + + + Sustain - - Reopen last project on startup + + + Release - - Language - Jazyk + + + Slope + - - - Performance - Výkon + + Mix osc 2 with osc 3 + - - Autosave - Automatické ukládání + + Modulate amplitude of osc 3 by osc 2 + - - Enable autosave - Povolit automatické ukládání + + Modulate frequency of osc 3 by osc 2 + - - Allow autosave while playing - Povolit automatické ukládání během přehrávání + + Modulate phase of osc 3 by osc 2 + - - User interface (UI) effects vs. performance - Efekty uživatelského rozhraní (UI) vs. výkon + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Modulation amount + + + + lmms::gui::MultitapEchoControlDialog - - Smooth scroll in song editor + + Length - - Display playback cursor in AudioFileProcessor + + Step length: - - Plugins - Pluginy + + Dry + - - VST plugins embedding: - Vložení VST pluginů: + + Dry gain: + - - No embedding - Nevkládat + + Stages + - - Embed using Qt API - Vložit pomocí rozhraní Qt + + Low-pass stages: + - - Embed using native Win32 API - Vložit pomocí nativního rozhraní Win32 + + Swap inputs + - - Embed using XEmbed protocol - Vložit pomocí protokolu XEmbed + + Swap left and right input channels for reflections + + + + lmms::gui::NesInstrumentView - - Keep plugin windows on top when not embedded - Udržet okna pluginů na vrchu, když nejsou vložená + + + + + Volume + - - Sync VST plugins to host playback - Synchronizace VST pluginů s hostujícím přehráváním + + + + Coarse detune + - - Keep effects running even without input - Nechat efekty spuštěné i bez vstupu + + + + Envelope length + - - - Audio - Zvuk + + Enable channel 1 + - - Audio interface - Zvukové rozhraní + + Enable envelope 1 + - - HQ mode for output audio device - HQ režim pro výstup audio zařízení + + Enable envelope 1 loop + - - Buffer size - Velikost bufferu + + Enable sweep 1 + - - - MIDI - MIDI + + + Sweep amount + - - MIDI interface - MIDI rozhraní + + + Sweep rate + - - Automatically assign MIDI controller to selected track + + + 12.5% Duty cycle - - LMMS working directory - Pracovní adresář LMMS + + + 25% Duty cycle + - - VST plugins directory + + + 50% Duty cycle - - LADSPA plugins directories + + + 75% Duty cycle - - SF2 directory - Adresář pro SF2 + + Enable channel 2 + - - Default SF2 + + Enable envelope 2 - - GIG directory - Adresář pro GIG + + Enable envelope 2 loop + - - Theme directory + + Enable sweep 2 - - Background artwork - Obrázek na pozadí + + Enable channel 3 + - - Some changes require restarting. - Některé změny vyžadují restartování. + + Noise Frequency + - - Autosave interval: %1 - Interval automatického ukládání: %1 + + Frequency sweep + - - Choose the LMMS working directory - Vyberte pracovní adresář LMMS + + Enable channel 4 + - - Choose your VST plugins directory - Vyberte svůj adresář pro VST pluginy + + Enable envelope 4 + - - Choose your LADSPA plugins directory - Vyberte svůj adresář pro LADSPA pluginy + + Enable envelope 4 loop + - - Choose your default SF2 - Vyberte svůj výchozí SF2 soubor + + Quantize noise frequency when using note frequency + - - Choose your theme directory - Vyberte svůj adresář pro motivy + + Use note frequency for noise + - - Choose your background picture - Vyberte svou tapetu + + Noise mode + - - - Paths - Cesty + + Master volume + - - OK - OK + + Vibrato + + + + lmms::gui::OpulenzInstrumentView - - Cancel - Zrušit + + + Attack + - - Frames: %1 -Latency: %2 ms - Rámce: %1 -Zpoždění %2 ms + + + Decay + - - Choose your GIG directory - Vyberte svůj adresář pro GIG soubory + + + Release + - - Choose your SF2 directory - Vyberte svůj adresář pro SF2 soubory + + + Frequency multiplier + + + + lmms::gui::OrganicInstrumentView - - minutes - minut + + Distortion: + - - minute - minuta + + Volume: + - - Disabled - Vypnuto + + Randomise + - - - SidInstrument - - Cutoff frequency - Frekvence oříznutí + + + Osc %1 waveform: + - - Resonance - Rezonance + + Osc %1 volume: + - - Filter type - Typ filtru + + Osc %1 panning: + - - Voice 3 off - Vypnout hlas 3 + + Osc %1 stereo detuning + - - Volume - Hlasitost + + cents + - - Chip model - Model čipu + + Osc %1 harmonic: + - SidInstrumentView + lmms::gui::Oscilloscope - - Volume: - Hlasitost: + + Oscilloscope + - - Resonance: - Rezonance: + + Click to enable + + + + lmms::gui::PatmanView - - - Cutoff frequency: - Frekvence oříznutí: + + Open patch + - - High-pass filter - Filtr horní propust + + Loop + - - Band-pass filter - Filtr pásmová propust + + Loop mode + - - Low-pass filter - Filtr dolní propust + + Tune + - - Voice 3 off - Vypnout hlas 3 + + Tune mode + - - MOS6581 SID - MOS6581 SID + + No file selected + - - MOS8580 SID - MOS8580 SID + + Open patch file + - - - Attack: - Náběh: + + Patch-Files (*.pat) + + + + lmms::gui::PatternClipView - - - Decay: - Pokles: + + Open in Pattern Editor + - - Sustain: - Držení: + + Reset name + - - - Release: - Doznění: + + Change name + + + + lmms::gui::PatternEditorWindow - - Pulse Width: - Délka pulzu: + + Pattern Editor + - - Coarse: - Ladění: + + Play/pause current pattern (Space) + - - Pulse wave - Pulzní vlna + + Stop playback of current pattern (Space) + - - Triangle wave - Trojúhelníková vlna + + Pattern selector + - - Saw wave - Pilovitá vlna + + Track and step actions + - - Noise - Šum + + New pattern + - - Sync - Synch + + Clone pattern + - - Ring modulation - Kruhová modulace + + Add sample-track + - - Filtered - Filtrování + + Add automation-track + - - Test - Test + + Remove steps + - - Pulse width: - Šířka pulzu: + + Add steps + - - - SideBarWidget - - Close - Zavřít + + Clone Steps + - Song - - - Tempo - Tempo - + lmms::gui::PeakControllerDialog - - Master volume - Hlavní hlasitost + + PEAK + - - Master pitch - Transpozice + + LFO Controller + + + + lmms::gui::PeakControllerEffectControlDialog - - Aborting project load + + BASE - - Project file contains local paths to plugins, which could be used to run malicious code. + + Base: - - Can't load project: Project file contains local paths to plugins. + + AMNT - - LMMS Error report - Chybové hlášení LMMS + + Modulation amount: + - - (repeated %1 times) + + MULT - - The following errors occurred while loading: + + Amount multiplicator: - - - SongEditor - - Could not open file - Nemohu otevřít soubor + + ATCK + - - Could not open file %1. You probably have no permissions to read this file. - Please make sure to have at least read permissions to the file and try again. - Nelze otevřít soubor %1. Pravděpodobně nemáte oprávnění číst tento soubor. - Ujistěte se prosím, že máte oprávnění alespoň číst tento soubor a zkuste to znovu. + + Attack: + - - Operation denied + + DCAY - - A bundle folder with that name already eists on the selected path. Can't overwrite a project bundle. Please select a different name. + + Release: - - - - Error - Chyba + + TRSH + - - Couldn't create bundle folder. + + Treshold: - - Couldn't create resources folder. + + Mute output - - Failed to copy resources. + + Absolute value + + + lmms::gui::PeakIndicator - - Could not write file - Nemohu zapsat soubor + + -inf + + + + lmms::gui::PianoRoll - - Could not open %1 for writing. You probably are not permitted towrite to this file. Please make sure you have write-access to the file and try again. + + Note Velocity - - This %1 was created with LMMS %2 + + Note Panning - - Error in file - Chyba v souboru + + Mark/unmark current semitone + - - The file %1 seems to contain errors and therefore can't be loaded. - Soubor %1 pravděpodobně obsahuje chyby, a proto nemohl být načten. + + Mark/unmark all corresponding octave semitones + - - Version difference - Rozdíl verzí + + Mark current scale + - - template - šablona + + Mark current chord + - - project - projekt + + Unmark all + - - Tempo - Tempo + + Select all notes on this key + - - TEMPO - TEMPO + + Note lock + - - Tempo in BPM - Tempo v BPM + + Last note + - - High quality mode - Režim vysoké kvality + + No key + - - - - Master volume - Hlavní hlasitost + + No scale + - - - - Master pitch - Transpozice + + No chord + - - Value: %1% - Hodnota: %1% + + Nudge + - - Value: %1 semitones - Hodnota: %1 půltónů + + Snap + - - - SongEditorWindow - - Song-Editor - Editor skladby + + Velocity: %1% + - - Play song (Space) - Přehrát skladbu (mezerník) + + Panning: %1% left + - - Record samples from Audio-device - Nahrát samply z audio zařízení + + Panning: %1% right + - - Record samples from Audio-device while playing song or BB track - Nahrát samply z audio zařízení při přehrávání skladby nebo stopy bicích/basů + + Panning: center + - - Stop song (Space) - Zastavit přehrávání (mezerník) + + Glue notes failed + - - Track actions - Akce stopy + + Please select notes to glue first. + - - Add beat/bassline - Přidat bicí/basy + + Please open a clip by double-clicking on it! + - - Add sample-track - Přidat stopu samplů + + + Please enter a new value between %1 and %2: + + + + lmms::gui::PianoRollWindow - - Add automation-track - Přidat stopu automatizace + + Play/pause current clip (Space) + - - Edit actions - Akce úprav + + Record notes from MIDI-device/channel-piano + - - Draw mode - Režim kreslení + + Record notes from MIDI-device/channel-piano while playing song or pattern track + - - Knife mode (split sample clips) + + Record notes from MIDI-device/channel-piano, one step at the time - - Edit mode (select and move) - Režim úprav (označit a přesunout) + + Stop playing of current clip (Space) + - - Timeline controls - Ovládání časové osy + + Edit actions + - - Bar insert controls + + Draw mode (Shift+D) - - Insert bar + + Erase mode (Shift+E) - - Remove bar + + Select mode (Shift+S) - - Zoom controls - Ovládání zvětšení + + Pitch Bend mode (Shift+T) + - - Horizontal zooming - Horizontální zvětšení + + Quantize + - - Snap controls + + Quantize positions - - - Clip snapping size + + Quantize lengths - - Toggle proportional snap on/off + + File actions - - Base snapping size + + Import clip - - - StepRecorderWidget - - Hint - Rada + + + Export clip + - - Move recording curser using <Left/Right> arrows - Přesuňte ukazatel pozice nahrávání pomocí <Levé/Pravé> šipky + + Copy paste controls + - - - SubWindow - - Close - Zavřít + + Cut (%1+X) + - - Maximize - Maximalizovat + + Copy (%1+C) + - - Restore - Obnovit + + Paste (%1+V) + - - - TabWidget - - - Settings for %1 - Nastavení rpo %1 + + Timeline controls + - - - TemplatesMenu - - New from template - Nový z šablony + + Glue + - - - TempoSyncKnob - - - Tempo Sync - Synchronizace tempa + + Knife + - - No Sync - Nesynchronizovat + + Fill + - - Eight beats - Osm dob + + Cut overlaps + - - Whole note - Celá nota + + Min length as last + - - Half note - Půlová nota + + Max length as last + - - Quarter note - Čtvrťová nota + + Zoom and note controls + - - 8th note - Osminová nota + + Horizontal zooming + - - 16th note - Šestnáctinová nota + + Vertical zooming + - - 32nd note - Dvaatřicetinová nota + + Quantization + - - Custom... - Vlastní... + + Note length + - - Custom - Vlastní + + Key + - - Synced to Eight Beats - Synchronizováno k osmi dobám + + Scale + - - Synced to Whole Note - Synchronizováno k celé notě + + Chord + - - Synced to Half Note - Synchronizováno k půlové notě + + Snap mode + - - Synced to Quarter Note - Synchronizováno ke čtvrťové notě + + Clear ghost notes + - - Synced to 8th Note - Synchronizováno k osminové notě + + + Piano-Roll - %1 + - - Synced to 16th Note - Synchronizováno k šestnáctinové notě + + + Piano-Roll - no clip + - - Synced to 32nd Note - Synchronizováno k dvaatřicetinové notě + + + XML clip file (*.xpt *.xptz) + - - - TimeDisplayWidget - - Time units - Časové jednotky + + Export clip success + - - MIN - MIN + + Clip saved to %1 + - - SEC - S + + Import clip. + - - MSEC - MS + + You are about to import a clip, this will overwrite your current clip. Do you want to continue? + - - BAR - TAKT + + Open clip + - - BEAT - DOBA + + Import clip success + - - TICK - TIK + + Imported clip %1! + - TimeLineWidget + lmms::gui::PianoView - - Auto scrolling - Automatické posouvání + + Base note + - - Loop points - Body smyčky + + First note + - - After stopping go back to beginning + + Last note + + + lmms::gui::PluginBrowser - - After stopping go back to position at which playing was started - Po skončení přetočit zpět na pozici, ze které přehrávání začalo + + Instrument Plugins + - - After stopping keep position - Po skončení zachovat pozici + + Instrument browser + - - Hint - Rada + + Drag an instrument into either the Song Editor, the Pattern Editor or an existing instrument track. + - - Press <%1> to disable magnetic loop points. - Stiskněte <%1> pro vypnutí magnetických bodů smyčky. + + Search + - Track + lmms::gui::PluginDescWidget - - Mute - Ztlumit - - - - Solo - Sólo + + Send to new instrument track + - TrackContainer + lmms::gui::ProjectNotes - - Couldn't import file - Nemohu importovat soubor + + Project Notes + - - - Couldn't find a filter for importing file %1. -You should convert this file into a format supported by LMMS using another software. - Nemohu najít filtr pro import souboru %1. -Měli byste tento soubor převést do formátu podporovaného LMMS pomocí jiného software. + + + Enter project notes here + - - Couldn't open file - Nemohu otevřít soubor + + Edit Actions + - - Couldn't open file %1 for reading. -Please make sure you have read-permission to the file and the directory containing the file and try again! - Nemohu otevřít soubor %1 pro čtení. -Přesvědčte se prosím, že máte právo ke čtení tohoto souboru a příslušného adresáře a zkuste to znovu! + + &Undo + - - Loading project... - Načítám projekt... + + %1+Z + - - - Cancel - Zrušit + + &Redo + - - - Please wait... - Prosím čekejte... + + %1+Y + - - Loading cancelled - Načítání zrušeno + + &Copy + - - Project loading was cancelled. - Načítání projektu bylo zrušeno. + + %1+C + - - Loading Track %1 (%2/Total %3) - Načítám Stopu %1 (%2/celkem %3) + + Cu&t + - - Importing MIDI-file... - Importuji MIDI soubor... + + %1+X + - - - Clip - - Mute - Ztlumit + + &Paste + - - - ClipView - - Current position - Aktuální pozice + + %1+V + - - Current length - Aktuální délka + + Format Actions + - - - %1:%2 (%3:%4 to %5:%6) - %1:%2 (%3:%4 do %5:%6) + + &Bold + - - Press <%1> and drag to make a copy. - K vytvoření kopie stiskněte <%1> a táhněte myší. + + %1+B + - - Press <%1> for free resizing. - Stiskněte <%1> pro volnou změnu velikosti. + + &Italic + - - Hint - Rada + + %1+I + - - Delete (middle mousebutton) - Smazat (prostřední tlačítko myši) + + &Underline + - - Delete selection (middle mousebutton) + + %1+U - - Cut - Vyjmout + + &Left + - - Cut selection + + %1+L - - Merge Selection + + C&enter - - Copy - Kopírovat + + %1+E + - - Copy selection + + &Right - - Paste - Vložit + + %1+R + - - Mute/unmute (<%1> + middle click) - Ztlumit/Odtlumit (<%1> + prostřední tlačítko) + + &Justify + - - Mute/unmute selection (<%1> + middle click) + + %1+J - - Set clip color + + &Color... + + + lmms::gui::RecentProjectsMenu - - Use track color + + &Recently Opened Projects - TrackContentWidget + lmms::gui::RenameDialog - - Paste - Vložit + + Rename... + - TrackOperationsWidget + lmms::gui::ReverbSCControlDialog - - Press <%1> while clicking on move-grip to begin a new drag'n'drop action. - Při klepnutí na úchop držte <%1> pro zkopírování přetahované stopy. + + Input + - - Actions - Akce + + Input gain: + - - - Mute - Ztlumit + + Size + - - - Solo - Sólo + + Size: + - - After removing a track, it can not be recovered. Are you sure you want to remove track "%1"? + + Color - - Confirm removal + + Color: - - Don't ask again + + Output - - Clone this track - Klonovat tuto stopu + + Output gain: + + + + lmms::gui::SaControlsDialog - - Remove this track - Odstranit tuto stopu + + Pause + - - Clear this track - Smazat tuto stopu + + Pause data acquisition + - - Channel %1: %2 - Efekt %1: %2 + + Reference freeze + - - Assign to new mixer Channel - Přiřadit k novému efektovému kanálu + + Freeze current input as a reference / disable falloff in peak-hold mode. + - - Turn all recording on - Spustit všechna nahrávání + + Waterfall + - - Turn all recording off - Zastavit všechna nahrávání + + Display real-time spectrogram + - - Change color - Změnit barvu + + Averaging + - - Reset color to default - Obnovit výchozí barvy + + Enable exponential moving average + - - Set random color + + Stereo - - Clear clip colors + + Display stereo channels separately - - - TripleOscillatorView - - Modulate phase of oscillator 1 by oscillator 2 - Modulovat fázi oscilátoru 1 oscilátorem 2 + + Peak hold + - - Modulate amplitude of oscillator 1 by oscillator 2 - Modulovat amplitudu oscilátoru 1 oscilátorem 2 + + Display envelope of peak values + - - Mix output of oscillators 1 & 2 - Smíchat výstupy oscilátorů 1 a 2 + + Logarithmic frequency + - - Synchronize oscillator 1 with oscillator 2 - Synchronizovat oscilátor 1 oscilátorem 2 + + Switch between logarithmic and linear frequency scale + - - Modulate frequency of oscillator 1 by oscillator 2 - Modulovat frekvenci oscilátoru 1 oscilátorem 2 + + + Frequency range + - - Modulate phase of oscillator 2 by oscillator 3 - Modulovat fázi oscilátoru 2 oscilátorem 3 + + Logarithmic amplitude + - - Modulate amplitude of oscillator 2 by oscillator 3 - Modulovat amplitudu oscilátoru 2 oscilátorem 3 + + Switch between logarithmic and linear amplitude scale + - - Mix output of oscillators 2 & 3 - Smíchat výstupy oscilátorů 2 a 3 + + + Amplitude range + - - Synchronize oscillator 2 with oscillator 3 - Synchronizovat oscilátor 2 oscilátorem 3 + + + FFT block size + - - Modulate frequency of oscillator 2 by oscillator 3 - Modulovat frekvenci oscilátoru 2 oscilátorem 3 + + + FFT window type + - - Osc %1 volume: - Osc %1 hlasitost: + + Envelope res. + - - Osc %1 panning: - Osc %1 panoráma: + + Increase envelope resolution for better details, decrease for better GUI performance. + - - Osc %1 coarse detuning: - Osc %1 hrubé rozladění: + + Maximum number of envelope points drawn per pixel: + - - semitones - půltónů + + Spectrum res. + - - Osc %1 fine detuning left: - Osc %1 jemné rozladění vlevo: + + Increase spectrum resolution for better details, decrease for better GUI performance. + - - - cents - centů + + Maximum number of spectrum points drawn per pixel: + - - Osc %1 fine detuning right: - Osc %1 jemné rozladění vpravo: + + Falloff factor + - - Osc %1 phase-offset: - Osc %1 posun fáze: + + Decrease to make peaks fall faster. + - - - degrees - stupňů + + Multiply buffered value by + - - Osc %1 stereo phase-detuning: - Osc %1 rozladění stereo fáze: + + Averaging weight + - - Sine wave - Sinusová vlna + + Decrease to make averaging slower and smoother. + - - Triangle wave - Trojúhelníková vlna + + New sample contributes + - - Saw wave - Pilovitá vlna + + Waterfall height + - - Square wave - Pravoúhlá vlna + + Increase to get slower scrolling, decrease to see fast transitions better. Warning: medium CPU usage. + - - Moog-like saw wave - Pilovitá vlna typu Moog + + Number of lines to keep: + - - Exponential wave - Exponenciální vlna + + Waterfall gamma + - - White noise - Bílý šum + + Decrease to see very weak signals, increase to get better contrast. + - - User-defined wave - Uživatelem definovaná vlna + + Gamma value: + - - - VecControls - - Display persistence amount + + Window overlap - - Logarithmic scale + + Increase to prevent missing fast transitions arriving near FFT window edges. Warning: high CPU usage. + + + + + Number of times each sample is processed: + + + + + Zero padding - - High quality + + Increase to get smoother-looking spectrum. Warning: high CPU usage. - - - VecControlsDialog - - HQ + + Processing buffer is - - Double the resolution and simulate continuous analog-like trace. + + steps larger than input block - - Log. scale + + Advanced settings - - Display amplitude on logarithmic scale to better see small values. + + Access advanced settings + + + lmms::gui::SampleClipView - - Persist. + + Double-click to open sample - - Trace persistence: higher amount means the trace will stay bright for longer time. + + Reverse sample - - Trace persistence + + Set as ghost in automation editor - VersionedSaveDialog + lmms::gui::SampleTrackView - - Increment version number - Zvýšit číslo verze + + Mixer channel + - - Decrement version number - Snížení čísla verze + + Track volume + - - Save Options - Možnosti ukládání + + Channel volume: + - - already exists. Do you want to replace it? - již existuje. Přejete si jej přepsat? + + VOL + - - - VestigeInstrumentView - - - Open VST plugin - Otevřít VST plugin + + Panning + - - Control VST plugin from LMMS host - Ovládání VST pluginu hostitelským programem LMMS + + Panning: + - - Open VST plugin preset - Otevřít předvolby VST pluginu + + PAN + - - Previous (-) - Předchozí (-) + + %1: %2 + + + + lmms::gui::SampleTrackWindow - - Save preset - Uložit předvolbu + + Sample volume + - - Next (+) - Další (+) + + Volume: + - - Show/hide GUI - Zobrazit/Skrýt grafické rozhraní + + VOL + - - Turn off all notes - Vypnout všechny noty + + Panning + - - DLL-files (*.dll) - DLL soubory (*.dll) + + Panning: + - - EXE-files (*.exe) - EXE soubory (*.exe) + + PAN + - - No VST plugin loaded - VST plugin není nahrán + + Mixer channel + - - Preset - Předvolba + + CHANNEL + + + + lmms::gui::SaveOptionsWidget - - by - od + + Discard MIDI connections + - - - VST plugin control - – ovládání VST pluginu + + Save As Project Bundle (with resources) + - VstEffectControlDialog + lmms::gui::SetupDialog - - Show/hide - Ukázat/Skrýt + + Settings + - - Control VST plugin from LMMS host - Ovládání VST pluginu hostitelským programem LMMS + + + General + - - Open VST plugin preset - Otevřít předvolby VST pluginu + + Graphical user interface (GUI) + - - Previous (-) - Předchozí (-) + + Display volume as dBFS + - - Next (+) - Další (+) + + Enable tooltips + - - Save preset - Uložit předvolbu + + Enable master oscilloscope by default + - - - Effect by: - Efekt od: + + Enable all note labels in piano roll + - - &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> - &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> + + Enable compact track buttons + - - - VstPlugin - - - The VST plugin %1 could not be loaded. - VST plugin %1 nelze načíst. + + Enable one instrument-track-window mode + - - Open Preset - Otevřít předvolbu + + Show sidebar on the right-hand side + - - - Vst Plugin Preset (*.fxp *.fxb) - Předvolba VST pluginu (*.fxp *.fxb) + + Let sample previews continue when mouse is released + - - : default - : výchozí + + Mute automation tracks during solo + - - Save Preset - Uložit předvolbu + + Show warning when deleting tracks + - - .fxp - .fxp + + Show warning when deleting a mixer channel that is in use + - - .FXP - .FXP + + Dual-button + - - .FXB - .FXB + + Grab closest + - - .fxb - .fxb + + Handles + - - Loading plugin - Načítám plugin + + Loop edit mode + - - Please wait while loading VST plugin... - Počkejte prosím, než se načte VST plugin... + + Projects + - - - WatsynInstrument - - Volume A1 - Hlasitost A1 + + Compress project files by default + - - Volume A2 - Hlasitost A2 + + Create a backup file when saving a project + - - Volume B1 - Hlasitost B1 + + Reopen last project on startup + - - Volume B2 - Hlasitost B2 + + Language + - - Panning A1 - Panoráma A1 + + + Performance + - - Panning A2 - Panoráma A2 + + Autosave + - - Panning B1 - Panoráma B1 + + Enable autosave + - - Panning B2 - Panoráma B2 + + Allow autosave while playing + - - Freq. multiplier A1 - Násobič frekv. A1 + + User interface (UI) effects vs. performance + - - Freq. multiplier A2 - Násobič frekv. A2 + + Smooth scroll in song editor + - - Freq. multiplier B1 - Násobič frekv. B1 + + Display playback cursor in AudioFileProcessor + - - Freq. multiplier B2 - Násobič frekv. B2 + + Plugins + - - Left detune A1 - Rozladění vlevo A1 + + VST plugins embedding: + - - Left detune A2 - Rozladění vlevo A2 + + No embedding + - - Left detune B1 - Rozladění vlevo B1 + + Embed using Qt API + - - Left detune B2 - Rozladění vlevo B2 + + Embed using native Win32 API + - - Right detune A1 - Rozladění vpravo A1 + + Embed using XEmbed protocol + - - Right detune A2 - Rozladění vpravo A2 + + Keep plugin windows on top when not embedded + - - Right detune B1 - Rozladění vpravo B1 + + Keep effects running even without input + - - Right detune B2 - Rozladění vpravo B2 + + + Audio + - - A-B Mix - Směšovač A-B + + Audio interface + - - A-B Mix envelope amount - Množství obálky směšovače A-B + + Buffer size + - - A-B Mix envelope attack - Náběh obálky směšovače A-B + + Reset to default value + - - A-B Mix envelope hold - Množství zadržení směšovače A-B + + + MIDI + - - A-B Mix envelope decay - Pokles obálky směšovače A-B + + MIDI interface + + + + + Automatically assign MIDI controller to selected track + + + + + Behavior when recording + - - A1-B2 Crosstalk - Přeslech A1-B2 + + Auto-quantize notes in Piano Roll + - - A2-A1 modulation - Modulace A1-B2 + + If enabled, notes will be automatically quantized when recording them from a MIDI controller. If disabled, they are always recorded at the highest possible resolution. + - - B2-B1 modulation - Modulace B2-B1 + + + Paths + - - Selected graph - Zvolený graf + + LMMS working directory + - - - WatsynView - - - - - Volume - Hlasitost + + VST plugins directory + - - - - - Panning - Panoráma + + LADSPA plugins directories + - - - - - Freq. multiplier - Násobič frekv. + + SF2 directory + - - - - - Left detune - Rozladění vlevo + + Default SF2 + - - - - - - - - - cents - centů + + GIG directory + - - - - - Right detune - Rozladění vpravo + + Theme directory + - - A-B Mix - Směšovač A-B + + Background artwork + - - Mix envelope amount - Množství obálky směšovače + + Some changes require restarting. + - - Mix envelope attack - Náběh obálky směšovače + + OK + - - Mix envelope hold - Zadržení obálky směšovače + + Cancel + - - Mix envelope decay - Pokles obálky směšovače + + minutes + - - Crosstalk - Přeslech + + minute + - - Select oscillator A1 - Vybrat oscilátor A1 + + Disabled + - - Select oscillator A2 - Vybrat oscilátor A2 + + Autosave interval: %1 + - - Select oscillator B1 - Vybrat oscilátor B1 + + The currently selected value is not a power of 2 (32, 64, 128, 256). Some plugins may not be available. + - - Select oscillator B2 - Vybrat oscilátor B2 + + The currently selected value is less than or equal to 32. Some plugins may not be available. + - - Mix output of A2 to A1 - Přimíchat výstup A1 do A2 + + Frames: %1 +Latency: %2 ms + - - Modulate amplitude of A1 by output of A2 - Modulovat amplitudu A1 výstupem A2 + + Choose the LMMS working directory + - - Ring modulate A1 and A2 - Kruhově modulovat A1 a A2 + + Choose your VST plugins directory + - - Modulate phase of A1 by output of A2 - Modulovat fázi A1 výstupem A2 + + Choose your LADSPA plugins directory + - - Mix output of B2 to B1 - Přimíchat výstup B1 do B2 + + Choose your SF2 directory + - - Modulate amplitude of B1 by output of B2 - Modulovat amplitudu B1 výstupem B2 + + Choose your default SF2 + - - Ring modulate B1 and B2 - Kruhově modulovat B1 a B2 + + Choose your GIG directory + - - Modulate phase of B1 by output of B2 - Modulovat fázi B1 výstupem B2 + + Choose your theme directory + - - - - - Draw your own waveform here by dragging your mouse on this graph. - Kreslení vlastní křivky tahem myši na tomto grafu. + + Choose your background picture + + + + lmms::gui::Sf2InstrumentView - - Load waveform - Načíst vlnu + + + Open SoundFont file + - - Load a waveform from a sample file - Načíst vlnu ze souboru samplů + + Choose patch + - - Phase left - Fáze vlevo + + Gain: + - - Shift phase by -15 degrees - Posunout fázi o -15 stupňů + + Apply reverb (if supported) + - - Phase right - Fáze vpravo + + Room size: + - - Shift phase by +15 degrees - Posunout fázi o +15 stupňů + + Damping: + - - - Normalize - Normalizovat + + Width: + - - - Invert - Převrátit + + + Level: + - - - Smooth - Uhladit + + Apply chorus (if supported) + - - - Sine wave - Sinusová vlna + + Voices: + - - - - Triangle wave - Trojúhelníková vlna + + Speed: + - - Saw wave - Pilovitá vlna + + Depth: + - - - Square wave - Pravoúhlá vlna + + SoundFont Files (*.sf2 *.sf3) + - Xpressive - - - Selected graph - Zvolený graf - + lmms::gui::SidInstrumentView - - A1 - A1 + + Volume: + - - A2 - A2 + + Resonance: + - - A3 - A3 + + + Cutoff frequency: + - - W1 smoothing - W1 vyhlazování + + High-pass filter + - - W2 smoothing - W2 vyhlazování + + Band-pass filter + - - W3 smoothing - W3 vyhlazování + + Low-pass filter + - - Panning 1 - Panoráma 1 + + Voice 3 off + - - Panning 2 - Panoráma 2 + + MOS6581 SID + - - Rel trans + + MOS8580 SID - - - XpressiveView - - Draw your own waveform here by dragging your mouse on this graph. - Kreslení vlastní křivky tahem myši na tomto grafu. + + + Attack: + - - Select oscillator W1 - Vybrat oscilátor W1 + + + Decay: + - - Select oscillator W2 - Vybrat oscilátor W2 + + Sustain: + - - Select oscillator W3 - Vybrat oscilátor W3 + + + Release: + - - Select output O1 - Vybrat výstup O1 + + Pulse Width: + - - Select output O2 - Vybrat výstup O2 + + Coarse: + - - Open help window - Otevřít okno nápovědy + + Pulse wave + - - - Sine wave - Sinusová vlna + + Triangle wave + - - - Moog-saw wave - Pilovitá vlna typu Moog + + Saw wave + - - - Exponential wave - Exponenciální vlna + + Noise + - - - Saw wave - Pilovitá vlna + + Sync + - - - User-defined wave - Uživatelem definovaná vlna + + Ring modulation + - - - Triangle wave - Trojúhelníková vlna + + Filtered + - - - Square wave - Pravoúhlá vlna + + Test + - - - White noise - Bílý šum + + Pulse width: + + + + lmms::gui::SideBarWidget - - WaveInterpolate - Interpolace vlnění + + Close + + + + lmms::gui::SlicerTView - - ExpressionValid - Platnost výrazu + + Slice snap + - - General purpose 1: - Celkový účel 1: + + Set slice snapping for detection + - - General purpose 2: - Celkový účel 2: + + Sync sample + - - General purpose 3: - Celkový účel 3: + + Enable BPM sync + - - O1 panning: - O1 vyvážení: + + Original sample BPM + - - O2 panning: - O2 vyvážení: + + Threshold used for slicing + - - Release transition: - Přechod mezi dozněním: + + Fade Out per note in milliseconds + - - Smoothness - Hladkost + + Copy midi pattern to clipboard + - - - ZynAddSubFxInstrument - - Portamento - Portamento + + Open sample selector + - - Filter frequency - Frekvence filtru + + Reset slices + - - Filter resonance - Rezonance filtru + + Threshold + - - Bandwidth - Šířka pásma + + Fade Out + - - FM gain - Zesílení FM + + Reset + - - Resonance center frequency - Střední frekvence rezonance + + Midi + - - Resonance bandwidth - Šířka pásma rezonance + + BPM + - - Forward MIDI control change events - Odesílat události MIDI control change + + Snap + - ZynAddSubFxView + lmms::gui::SlicerTWaveform - - Portamento: - Portamento: + + Click to load sample + + + + lmms::gui::SongEditor - - PORT - PORT + + Could not open file + - - Filter frequency: - Frekvence filtru: + + Could not open file %1. You probably have no permissions to read this file. + Please make sure to have at least read permissions to the file and try again. + - - FREQ - FREKV + + Operation denied + - - Filter resonance: - Rezonance filtru: + + A bundle folder with that name already eists on the selected path. Can't overwrite a project bundle. Please select a different name. + - - RES - REZ + + + + Error + - - Bandwidth: - Šířka pásma: + + Couldn't create bundle folder. + - - BW - ŠP + + Couldn't create resources folder. + - - FM gain: - Zesílení FM: + + Failed to copy resources. + - - FM GAIN - ZISK FM + + + Could not write file + - - Resonance center frequency: - Střední frekvence rezonance: + + Could not open %1 for writing. You probably are not permitted to write to this file. Please make sure you have write-access to the file and try again. + - - RES CF - SF REZ + + An unknown error has occurred and the file could not be saved. + - - Resonance bandwidth: - Šířka pásma rezonance: + + Error in file + - - RES BW - ŠP REZ + + The file %1 seems to contain errors and therefore can't be loaded. + - - Forward MIDI control changes - Odesílat události MIDI control change + + template + - - Show GUI - Ukázat grafické rozhraní + + project + - - - AudioFileProcessor - - Amplify - Zesílení + + Version difference + - - Start of sample - Začátek samplu + + This %1 was created with LMMS %2 + - - End of sample - Konec samplu + + Zoom + - - Loopback point - Začátek smyčky + + Tempo + - - Reverse sample - Přehrávat pozpátku + + TEMPO + - - Loop mode - Režim smyčky + + Tempo in BPM + - - Stutter - Pokračování v přehrávání samplu při změně noty + + + + Master volume + - - Interpolation mode - Režim interpolace + + + + Global transposition + - - None - Žádný + + 1/%1 Bar + - - Linear - Lineární + + %1 Bars + - - Sinc - Sinusový + + Value: %1% + - - Sample not found: %1 - Vzorek nenalezen: %1 + + Value: %1 keys + - BitInvader + lmms::gui::SongEditorWindow - - Sample length - Délka samplu + + Song-Editor + - - - BitInvaderView - - Sample length - Délka samplu + + Play song (Space) + - - Draw your own waveform here by dragging your mouse on this graph. - Kreslení vlastní křivky tahem myši na tomto grafu. + + Record samples from Audio-device + - - - Sine wave - Sinusová vlna + + Record samples from Audio-device while playing song or pattern track + - - - Triangle wave - Trojúhelníková vlna + + Stop song (Space) + - - - Saw wave - Pilovitá vlna + + Track actions + - - - Square wave - Pravoúhlá vlna + + Add pattern-track + - - - White noise - Bílý šum + + Add sample-track + - - - User-defined wave - Uživatelem definovaná vlna + + Add automation-track + - - - Smooth waveform - Vyhlazení vlny + + Edit actions + - - Interpolation - Interpolovat + + Draw mode + - - Normalize - Normalizovat + + Knife mode (split sample clips) + - - - DynProcControlDialog - - INPUT - VSTUP + + Edit mode (select and move) + - - Input gain: - Zesílení vstupu: + + Timeline controls + - - OUTPUT - VÝSTUP + + Bar insert controls + - - Output gain: - Zesílení výstupu: + + Insert bar + - - ATTACK - NÁBĚH + + Remove bar + - - Peak attack time: - Délka náběhu špičky: + + Zoom controls + - - RELEASE - DOZNĚNÍ + + + Zoom + - - Peak release time: - Délka doznění špičky: + + Snap controls + - - - Reset wavegraph - Vynulovat křivku + + + Clip snapping size + - - - Smooth wavegraph - Vyhladit křivku + + Toggle proportional snap on/off + - - - Increase wavegraph amplitude by 1 dB - Zvýšení amplitudy křivky o 1 dB + + Base snapping size + + + + lmms::gui::StepRecorderWidget - - - Decrease wavegraph amplitude by 1 dB - Snížení amplitudy křivky o 1 dB + + Hint + - - Stereo mode: maximum - Režim sterea: maximální + + Move recording curser using <Left/Right> arrows + + + + lmms::gui::StereoEnhancerControlDialog - - Process based on the maximum of both stereo channels - Zpracování vycházející z maxima obou stereo kanálů + + WIDTH + - - Stereo mode: average - Režim sterea: průměr + + Width: + + + + lmms::gui::StereoMatrixControlDialog - - Process based on the average of both stereo channels - Zpracování vycházející z průměru obou stereo kanálů + + Left to Left Vol: + - - Stereo mode: unlinked - Režim sterea: nepropojené + + Left to Right Vol: + - - Process each stereo channel independently - Zpracování každého stereo kanálu zvlášť + + Right to Left Vol: + + + + + Right to Right Vol: + + + + + lmms::gui::SubWindow + + + Close + + + + + Maximize + + + + + Restore + - DynProcControls - - - Input gain - Zesílení vstupu - + lmms::gui::TapTempoView - - Output gain - Zesílení výstupu + + 0 + - - Attack time - Doba náběhu + + + Precision + - - Release time - Délka doznění + + Display in high precision + - - Stereo mode - Režim sterea + + 0.0 ms + - - - graphModel - - Graph - Graf + + Mute metronome + - - - KickerInstrument - - Start frequency - Počáteční frekvence + + Mute + - - End frequency - Konečná frekvence + + BPM in milliseconds + - - Length - Délka + + 0 ms + - - Start distortion - Začátek zkreslení + + Frequency of BPM + - - End distortion - Konec zkreslení + + 0.0000 hz + - - Gain - Zisk + + Reset + - - Envelope slope - Sklon obálky + + Reset counter and sidebar information + - - Noise - Šum + + Sync + - - Click - Klik + + Sync with project tempo + - - Frequency slope - Sklon frekvence + + %1 ms + - - Start from note - Začít od noty + + %1 hz + + + + lmms::gui::TemplatesMenu - - End to note - Skončit na notě + + New from template + - KickerInstrumentView + lmms::gui::TempoSyncBarModelEditor - - Start frequency: - Počáteční frekvence: + + + Tempo Sync + - - End frequency: - Konečná frekvence: + + No Sync + - - Frequency slope: - Sklon frekvence: + + Eight beats + - - Gain: - Zisk: + + Whole note + - - Envelope length: - Délka obálky: + + Half note + - - Envelope slope: - Sklon obálky: + + Quarter note + - - Click: - Klik: + + 8th note + - - Noise: - Šum: + + 16th note + - - Start distortion: - Začátek zkreslení: + + 32nd note + - - End distortion: - Konec zkreslení: + + Custom... + - - - LadspaBrowserView - - - Available Effects - Dostupné efekty + + Custom + - - - Unavailable Effects - Nedostupné efekty + + Synced to Eight Beats + - - - Instruments - Nástroje + + Synced to Whole Note + - - - Analysis Tools - Analyzační nástroje + + Synced to Half Note + - - - Don't know - Neznámé + + Synced to Quarter Note + - - Type: - Typ: + + Synced to 8th Note + - - - LadspaDescription - - Plugins - Pluginy + + Synced to 16th Note + - - Description - Popis + + Synced to 32nd Note + - LadspaPortDialog + lmms::gui::TempoSyncKnob - - Ports - Porty + + + Tempo Sync + - - Name - Název + + No Sync + - - Rate - Druh + + Eight beats + - - Direction - Směr + + Whole note + - - Type - Typ + + Half note + - - Min < Default < Max - Min < Výchozí < Max + + Quarter note + - - Logarithmic - Logaritmický + + 8th note + - - SR Dependent - SR závislý + + 16th note + - - Audio - Zvuk + + 32nd note + - - Control - Ovládání + + Custom... + - - Input - Vstup + + Custom + - - Output - Výstup + + Synced to Eight Beats + - - Toggled - Zapnuto + + Synced to Whole Note + - - Integer - Celočíselný + + Synced to Half Note + - - Float - S plovoucí čárkou + + Synced to Quarter Note + - - - Yes - Ano + + Synced to 8th Note + + + + + Synced to 16th Note + + + + + Synced to 32nd Note + - Lb302Synth + lmms::gui::TimeDisplayWidget - - VCF Cutoff Frequency - VCF frekvence vypnutí + + Time units + - - VCF Resonance - VCF rezonance + + MIN + - - VCF Envelope Mod - VCF modulace obálky + + SEC + - - VCF Envelope Decay - VCF pokles obálky + + MSEC + - - Distortion - Zkreslení + + BAR + - - Waveform - Vlna + + BEAT + - - Slide Decay - Pokles sklouznutí + + TICK + + + + lmms::gui::TimeLineWidget - - Slide - Sklouznutí + + Auto scrolling + - - Accent - Důraz + + Stepped auto scrolling + - - Dead - Dead + + Continuous auto scrolling + - - 24dB/oct Filter - Filtr 24dB/okt + + Auto scrolling disabled + - - - Lb302SynthView - - Cutoff Freq: - Frekvence odstřihnutí: + + Loop points + - - Resonance: - Rezonance: + + After stopping go back to beginning + - - Env Mod: - Modulace obálky: + + After stopping go back to position at which playing was started + - - Decay: - Pokles: + + After stopping keep position + + + + + Hint + + + + + Press <%1> to disable magnetic loop points. + - - 303-es-que, 24dB/octave, 3 pole filter - 3pólový filtr 303-es-que, 24dB/okt + + Set loop begin here + - - Slide Decay: - Pokles sklouznutí: + + Set loop end here + - - DIST: - Zkreslení: + + Loop edit mode (hold shift) + - - Saw wave - Pilovitá vlna + + Dual-button + - - Click here for a saw-wave. - Klepněte sem pro pilovitou vlnu. + + Grab closest + - - Triangle wave - Trojúhelníková vlna + + Handles + + + + lmms::gui::TrackContentWidget - - Click here for a triangle-wave. - Klepněte sem pro trojúhelníkovou vlnu. + + Paste + + + + lmms::gui::TrackOperationsWidget - - Square wave - Pravoúhlá vlna + + Press <%1> while clicking on move-grip to begin a new drag'n'drop action. + - - Click here for a square-wave. - Klepněte sem pro pravoúhlou vlnu. + + Actions + - - Rounded square wave - Oblá pravoúhlá vlna + + + Mute + - - Click here for a square-wave with a rounded end. - Klepněte sem pro pravoúhlou vlnu s oblým zakončením. + + + Solo + - - Moog wave - Vlna typu Moog + + After removing a track, it can not be recovered. Are you sure you want to remove track "%1"? + - - Click here for a moog-like wave. - Klepněte sem pro vlnu typu Moog. + + Confirm removal + - - Sine wave - Sinusová vlna + + Don't ask again + - - Click for a sine-wave. - Klepněte sem pro sinusovou vlnu. + + Clone this track + - - - White noise wave - Bílý šum + + Remove this track + - - Click here for an exponential wave. - Klepněte sem pro exponenciální vlnu. + + Clear this track + - - Click here for white-noise. - Klepněte sem pro bílý šum. + + Channel %1: %2 + - - Bandlimited saw wave - Pásmově omezená pilovitá vlna + + Assign to new Mixer Channel + - - Click here for bandlimited saw wave. - Klepněte sem pro pásmově omezenou pilovitou vlnu. + + Turn all recording on + - - Bandlimited square wave - Pásmově zúžená pravoúhlá vlna + + Turn all recording off + - - Click here for bandlimited square wave. - Klepněte sem pro pásmově zúženou pravoúhlou vlnu. + + Track color + - - Bandlimited triangle wave - Pásmově zúžená trojúhelníková vlna + + Change + - - Click here for bandlimited triangle wave. - Klepněte sem pro pásmově zúženou trojúhelníkovou vlnu. + + Reset + - - Bandlimited moog saw wave - Pásmově zúžená pilovitá vlna typu Moog + + Pick random + - - Click here for bandlimited moog saw wave. - Klepněte sem pro úzkopásmovou pilovitou vlnu typu Moog. + + Reset clip colors + - MalletsInstrument + lmms::gui::TripleOscillatorView - - Hardness - Tvrdost + + Modulate phase of oscillator 1 by oscillator 2 + - - Position - Pozice + + Modulate amplitude of oscillator 1 by oscillator 2 + - - Vibrato gain - Zesílení vibráta + + Mix output of oscillators 1 & 2 + - - Vibrato frequency - Frekvence vibráta + + Synchronize oscillator 1 with oscillator 2 + - - Stick mix - Mix paliček + + Modulate frequency of oscillator 1 by oscillator 2 + - - Modulator - Modulátor + + Modulate phase of oscillator 2 by oscillator 3 + - - Crossfade - Prolínání (crossfade) + + Modulate amplitude of oscillator 2 by oscillator 3 + - - LFO speed - Rychlost LFO + + Mix output of oscillators 2 & 3 + - - LFO depth - Hloubka LFO + + Synchronize oscillator 2 with oscillator 3 + - - ADSR - ADSR + + Modulate frequency of oscillator 2 by oscillator 3 + - - Pressure - Tlak + + Osc %1 volume: + - - Motion - Pohyb + + Osc %1 panning: + - - Speed - Rychlost + + Osc %1 coarse detuning: + - - Bowed - Smyčcem + + semitones + - - Spread - Šíře + + Osc %1 fine detuning left: + - - Marimba - Marimba + + + cents + - - Vibraphone - Vibrafon + + Osc %1 fine detuning right: + - - Agogo - Agogo + + Osc %1 phase-offset: + - - Wood 1 - Dřevěné 1 + + + degrees + - - Reso - Rezo + + Osc %1 stereo phase-detuning: + - - Wood 2 - Dřevěné 2 + + Sine wave + - - Beats - Údery + + Triangle wave + - - Two fixed - Dvojité + + Saw wave + - - Clump - Svazek + + Square wave + - - Tubular bells - Trubicové zvony + + Moog-like saw wave + - - Uniform bar - Obyčejná tyč + + Exponential wave + - - Tuned bar - Laděná tyč + + White noise + - - Glass - Sklo + + User-defined wave + - - Tibetan bowl - Tibetská mísa + + Use alias-free wavetable oscillators. + - MalletsInstrumentView - - - Instrument - Nástroj - - - - Spread - Šíře - - - - Spread: - Šíře: - + lmms::gui::VecControlsDialog - - Missing files - Chybějící soubory + + HQ + - - Your Stk-installation seems to be incomplete. Please make sure the full Stk-package is installed! - Zdá se, že instalace Stk není kompletní. Ujistěte se prosím, že je nainstalován celý balík Stk! + + Double the resolution and simulate continuous analog-like trace. + - - Hardness - Tvrdost + + Log. scale + - - Hardness: - Tvrdost: + + Display amplitude on logarithmic scale to better see small values. + - - Position - Pozice + + Persist. + - - Position: - Pozice: + + Trace persistence: higher amount means the trace will stay bright for longer time. + - - Vibrato gain - Zesílení vibráta + + Trace persistence + + + + lmms::gui::VersionedSaveDialog - - Vibrato gain: - Zesílení vibráta: + + Increment version number + - - Vibrato frequency - Frekvence vibráta + + Decrement version number + - - Vibrato frequency: - Frekvence vibráta: + + Save Options + - - Stick mix - Mix paliček + + already exists. Do you want to replace it? + + + + lmms::gui::VestigeInstrumentView - - Stick mix: - Mix paliček: + + + Open VST plugin + - - Modulator - Modulátor + + Control VST plugin from LMMS host + - - Modulator: - Modulátor: + + Open VST plugin preset + - - Crossfade - Prolínání (crossfade) + + Previous (-) + - - Crossfade: - Prolínání (crossfade): + + Save preset + - - LFO speed - Rychlost LFO + + Next (+) + - - LFO speed: - Rychlost LFO: + + Show/hide GUI + - - LFO depth - Hloubka LFO + + Turn off all notes + - - LFO depth: - Hloubka LFO: + + DLL-files (*.dll) + - - ADSR - ADSR + + EXE-files (*.exe) + - - ADSR: - ADSR: + + SO-files (*.so) + - - Pressure - Tlak + + No VST plugin loaded + - - Pressure: - Tlak: + + Preset + - - Speed - Rychlost + + by + - - Speed: - Rychlost: + + - VST plugin control + - ManageVSTEffectView + lmms::gui::VibedView - - - VST parameter control - - řízení parametrů VST + + Enable waveform + - - VST sync - VST synch + + + Smooth waveform + - - - Automated - Automaticky + + + Normalize waveform + - - Close - Zavřít + + + Sine wave + - - - ManageVestigeInstrumentView - - - - VST plugin control - - ovládání VST pluginu + + + Triangle wave + - - VST Sync - VST synch + + + Saw wave + - - - Automated - Automaticky + + + Square wave + - - Close - Zavřít + + + White noise + - - - OrganicInstrument - - Distortion - Zkreslení + + + User-defined wave + - - Volume - Hlasitost + + String volume: + - - - OrganicInstrumentView - - Distortion: - Zkreslení: + + String stiffness: + - - Volume: - Hlasitost: + + Pick position: + - - Randomise - Nastavit náhodně + + Pickup position: + - - - Osc %1 waveform: - Osc %1 vlna: + + String panning: + - - Osc %1 volume: - Osc %1 hlasitost: + + String detune: + - - Osc %1 panning: - Osc %1 panoráma: + + String fuzziness: + - - Osc %1 stereo detuning - Osc %1 rozladění sterea + + String length: + - - cents - centů + + Impulse Editor + - - Osc %1 harmonic: - Osc %1 harmonické: + + Impulse + - - - PatchesDialog - - Qsynth: Channel Preset - Qsynth: Předvolba kanálu + + Enable/disable string + - - Bank selector - Výběr banky + + Octave + - - Bank - Banka + + String + + + + lmms::gui::VstEffectControlDialog - - Program selector - Výběr programu + + Show/hide + - - Patch - Patch + + Control VST plugin from LMMS host + - - Name - Název + + Open VST plugin preset + - - OK - OK + + Previous (-) + - - Cancel - Zrušit + + Next (+) + - - - Sf2Instrument - - Bank - Banka + + Save preset + - - Patch - Patch + + + Effect by: + - - Gain - Zisk + + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> + + + + lmms::gui::WatsynView - - Reverb - Dozvuk + + + + + Volume + - - Reverb room size - Velikost místnosti + + + + + Panning + - - Reverb damping - Útlum dozvuku + + + + + Freq. multiplier + - - Reverb width - Délka dozvuku + + + + + Left detune + - - Reverb level - Úroveň dozvuku + + + + + + + + + cents + - - Chorus - Chorus + + + + + Right detune + - - Chorus voices - Počet hlasů chorusu + + A-B Mix + - - Chorus level - Úroveň chorusu + + Mix envelope amount + - - Chorus speed - Rychlost chorusu + + Mix envelope attack + - - Chorus depth - Hloubka chorusu + + Mix envelope hold + - - A soundfont %1 could not be loaded. - Soundfont %1 nelze načíst. + + Mix envelope decay + - - - Sf2InstrumentView - - - Open SoundFont file - Otevřít SoundFont soubor + + Crosstalk + - - Choose patch - Vybrat patch + + Select oscillator A1 + - - Gain: - Zesílení: + + Select oscillator A2 + - - Apply reverb (if supported) - Použít dozvuk (je-li podporován) + + Select oscillator B1 + - - Room size: - Velikost místnosti: + + Select oscillator B2 + - - Damping: - Útlum: + + Mix output of A2 to A1 + - - Width: - Šířka: + + Modulate amplitude of A1 by output of A2 + - - - Level: - Úroveň: + + Ring modulate A1 and A2 + - - Apply chorus (if supported) - Použít chorus (je-li podporován) + + Modulate phase of A1 by output of A2 + - - Voices: - Hlasů: + + Mix output of B2 to B1 + - - Speed: - Rychlost: + + Modulate amplitude of B1 by output of B2 + - - Depth: - Hloubka: + + Ring modulate B1 and B2 + - - SoundFont Files (*.sf2 *.sf3) - Soubory SoundFont (*.sf2 *.sf3) + + Modulate phase of B1 by output of B2 + - - - SfxrInstrument - - Wave - Vlna + + + + + Draw your own waveform here by dragging your mouse on this graph. + - - - StereoEnhancerControlDialog - - WIDTH - ŠÍŘKA + + Load waveform + - - Width: - Šířka: + + Load a waveform from a sample file + - - - StereoEnhancerControls - - Width - Šířka + + Phase left + - - - StereoMatrixControlDialog - - Left to Left Vol: - Levý do levého – hlasitost: + + Shift phase by -15 degrees + - - Left to Right Vol: - Levý do pravého – hlasitost: + + Phase right + - - Right to Left Vol: - Pravý do levého – hlasitost: + + Shift phase by +15 degrees + - - Right to Right Vol: - Pravý do pravého – hlasitost: + + + Normalize + - - - StereoMatrixControls - - Left to Left - Levý do levého + + + Invert + - - Left to Right - Levý do pravého + + + Smooth + - - Right to Left - Pravý do levého + + + Sine wave + - - Right to Right - Pravý do pravého + + + + Triangle wave + - - - VestigeInstrument - - Loading plugin - Načítám plugin + + Saw wave + - - Please wait while loading the VST plugin... - Počkejte prosím, než se načte VST plugin... + + + Square wave + - Vibed + lmms::gui::WaveShaperControlDialog - - String %1 volume - Hlasitost struny %1 + + INPUT + - - String %1 stiffness - Tvrdost struny %1 + + Input gain: + - - Pick %1 position - Místo drnknutí %1 + + OUTPUT + - - Pickup %1 position - Umístění snímače %1 + + Output gain: + - - String %1 panning - Struna %1 panoráma + + + Reset wavegraph + - - String %1 detune - Struna %1 rozladění + + + Smooth wavegraph + - - String %1 fuzziness - Struna %1 roztřepení + + + Increase wavegraph amplitude by 1 dB + - - String %1 length - Struna %1 délka + + + Decrease wavegraph amplitude by 1 dB + - - Impulse %1 - Impulz %1 + + Clip input + - - String %1 - Struna %1 + + Clip input signal to 0 dB + - VibedView - - - String volume: - Hlasitost struny: - + lmms::gui::XpressiveView - - String stiffness: - Tvrdost struny: - - - - Pick position: - Místo drnknutí: - - - - Pickup position: - Pozice snímače: + + Draw your own waveform here by dragging your mouse on this graph. + - - String panning: - Panoráma struny: + + Select oscillator W1 + - - String detune: - Rozladění struny: + + Select oscillator W2 + - - String fuzziness: - Roztřepení struny: + + Select oscillator W3 + - - String length: - Délka struny: + + Select output O1 + - - Impulse - Impulz + + Select output O2 + - - Octave - Oktáva + + Open help window + - - Impulse Editor - Editor impulzu + + + Sine wave + - - Enable waveform - Zapnout vlnu + + + Moog-saw wave + - - Enable/disable string - Zapnout/vypnout strunu + + + Exponential wave + - - String - Struna + + + Saw wave + - - - Sine wave - Sinusová vlna + + + User-defined wave + - - + + Triangle wave - Trojúhelníková vlna - - - - - Saw wave - Pilovitá vlna + - - + + Square wave - Pravoúhlá vlna + - - + + White noise - Bílý šum - - - - - User-defined wave - Uživatelem definovaná vlna + - - - Smooth waveform - Vyhlazení vlny + + WaveInterpolate + - - - Normalize waveform - Normalizovat vlnu + + ExpressionValid + - - - VoiceObject - - Voice %1 pulse width - Hlas %1 šířka pulzu + + General purpose 1: + - - Voice %1 attack - Hlas %1 náběh + + General purpose 2: + - - Voice %1 decay - Hlas %1 pokles + + General purpose 3: + - - Voice %1 sustain - Hlas %1 držení + + O1 panning: + - - Voice %1 release - Hlas %1 doznění + + O2 panning: + - - Voice %1 coarse detuning - Hlas %1 hrubé ladění + + Release transition: + - - Voice %1 wave shape - Hlas %1 tvar vlny + + Smoothness + + + + lmms::gui::ZynAddSubFxView - - Voice %1 sync - Hlas %1 synchronizace + + Portamento: + - - Voice %1 ring modulate - Hlas %1 kruhová modulace + + PORT + - - Voice %1 filtered - Hlas %1 filtrování + + Filter frequency: + - - Voice %1 test - Hlas %1 test + + FREQ + - - - WaveShaperControlDialog - - INPUT - VSTUP + + Filter resonance: + - - Input gain: - Zesílení vstupu: + + RES + - - OUTPUT - VÝSTUP + + Bandwidth: + - - Output gain: - Zesílení výstupu: + + BW + - - - Reset wavegraph - Vynulovat křivku + + FM gain: + - - - Smooth wavegraph - Vyhladit křivku + + FM GAIN + - - - Increase wavegraph amplitude by 1 dB - Zvýšení amplitudy křivky o 1 dB + + Resonance center frequency: + - - - Decrease wavegraph amplitude by 1 dB - Snížení amplitudy křivky o 1 dB + + RES CF + - - Clip input - Ořezat vstup + + Resonance bandwidth: + - - Clip input signal to 0 dB - Ořezat vstupní signál na 0 dB + + RES BW + - - - WaveShaperControls - - Input gain - Zesílení vstupu + + Forward MIDI control changes + - - Output gain - Zesílení výstupu + + Show GUI + - + \ No newline at end of file diff --git a/data/locale/de.ts b/data/locale/de.ts index 7817857fdff..4736ea79798 100644 --- a/data/locale/de.ts +++ b/data/locale/de.ts @@ -1,4 +1,4 @@ - + AboutDialog @@ -69,954 +69,187 @@ If you're interested in translating LMMS in another language or want to imp - AmplifierControlDialog + AboutJuceDialog - - VOL - VOL - - - - Volume: - Lautstärke: - - - - PAN - PAN - - - - Panning: - Balance: - - - - LEFT - LINKS - - - - Left gain: - Linke Verstärkung: - - - - RIGHT - RECHTS - - - - Right gain: - Rechte Verstärkung: - - - - AmplifierControls - - - Volume - Lautstärke - - - - Panning - Balance - - - - Left gain - Linke Verstärkung - - - - Right gain - Rechte Verstärkung - - - - AudioAlsaSetupWidget - - - DEVICE - GERÄT - - - - CHANNELS - KANÄLE - - - - AudioFileProcessorView - - - Open sample - Sample öffnen - - - - Reverse sample - Sample umkehren - - - - Disable loop - Wiederholung deaktivieren - - - - Enable loop - Wiederholung aktivieren - - - - Enable ping-pong loop - Ping Pong Loop aktivieren - - - - Continue sample playback across notes - Samplewiedergabe über Noten fortsetzen - - - - Amplify: - Verstärkung: - - - - Start point: - Anfangspunkt: - - - - End point: - Endpunkt: - - - - Loopback point: - Wiederholungspunkt: - - - - AudioFileProcessorWaveView - - - Sample length: - Samplelänge: - - - - AudioJack - - - JACK client restarted - JACK-Client neugestartet - - - - LMMS was kicked by JACK for some reason. Therefore the JACK backend of LMMS has been restarted. You will have to make manual connections again. - LMMS wurde aus irgendeinem Grund von JACK verbannt. Aus diesem Grund wurde das JACK-Backend von LMMS neu gestartet. Sie müssen manuelle Verbindungen erneut vornehmen. - - - - JACK server down - JACK-Server nicht erreichbar - - - - The JACK server seems to have been shutdown and starting a new instance failed. Therefore LMMS is unable to proceed. You should save your project and restart JACK and LMMS. - Der JACK-Server scheint heruntergefahren worden zu sein und es war nicht möglich, eine neue Instanz zu starten. LMMS ist daher nicht in der Lage, fortzufahren. Sie sollten Ihr Projekt speichern und JACK und LMMS neustarten. - - - - Client name + + About JUCE - - Channels - Kanäle - - - - AudioOss - - - Device - Gerät - - - - Channels - Kanäle - - - - AudioPortAudio::setupWidget - - - Backend + + <b>About JUCE</b> - - Device - Gerät - - - - AudioPulseAudio - - - Device - Gerät - - - - Channels - Kanäle - - - - AudioSdl::setupWidget - - - Device - Gerät + + This program uses JUCE version 3.x.x. + - - - AudioSndio - - Device - Gerät + + JUCE is an open-source cross-platform C++ application framework for creating high quality desktop and mobile applications. + +The core JUCE modules (juce_audio_basics, juce_audio_devices, juce_core and juce_events) are permissively licensed under the terms of the ISC license. +Other modules are covered by a GNU GPL 3.0 license. + +Copyright (C) 2022 Raw Material Software Limited. + - - Channels - Kanäle + + This program uses JUCE version + - AudioSoundIo::setupWidget + AudioDeviceSetupWidget - - Backend + + [System Default] - - - Device - Gerät - - AutomatableModel - - - &Reset (%1%2) - &Zurücksetzen (%1%2) - - - - &Copy value (%1%2) - Wert &kopieren (%1%2) - - - - &Paste value (%1%2) - Wert &einfügen (%1%2) - + CarlaAboutW - - &Paste value + + About Carla - - Edit song-global automation - Song-globale Automation editieren - - - - Remove song-global automation - Song-globale Automation entfernen - - - - Remove all linked controls - Alle verknüpften Regler entfernen - - - - Connected to %1 - Verbunden mit %1 - - - - Connected to controller - Verbunden mit Controller - - - - Edit connection... - Verbindung bearbeiten... - - - - Remove connection - Verbindung entfernen + + About + Über - - Connect to controller... - Mit Controller verbinden... + + About text here + - - - AutomationEditor - - Edit Value + + Extended licensing here - - New outValue + + Artwork - - New inValue + + Using KDE Oxygen icon set, designed by Oxygen Team. - - Please open an automation clip with the context menu of a control! - Bitte öffnen Sie einen Automation-Pattern mit Hilfe des Kontextmenüs eines Steuerelements! + + Contains some knobs, backgrounds and other small artwork from Calf Studio Gear, OpenAV and OpenOctave projects. + - - - AutomationEditorWindow - - Play/pause current clip (Space) - Aktuelles Pattern abspielen/pausieren (Leertaste) + + VST is a trademark of Steinberg Media Technologies GmbH. + - - Stop playing of current clip (Space) - Abspielen des aktuellen Patterns stoppen (Leertaste) + + Special thanks to António Saraiva for a few extra icons and artwork! + - - Edit actions - Aktionen bearbeiten + + The LV2 logo has been designed by Thorsten Wilms, based on a concept from Peter Shorthose. + - - Draw mode (Shift+D) - Zeichnenmodus (Umschalt+D) + + MIDI Keyboard designed by Thorsten Wilms. + - - Erase mode (Shift+E) - Radiermodus (Umschalt+E) + + Carla, Carla-Control and Patchbay icons designed by DoosC. + - - Draw outValues mode (Shift+C) + + Features - - Flip vertically - Vertikal spiegeln + + AU/AudioUnit: + - - Flip horizontally - Horizontal spiegeln + + LADSPA: + - - Interpolation controls - Interpolations Regler + + + + + + + + + TextLabel + - - Discrete progression - Diskretes Fortschreiten + + VST2: + - - Linear progression - Lineares Fortschreiten + + DSSI: + - - Cubic Hermite progression - Kubisches, hermetisches Fortschreiten + + LV2: + - - Tension value for spline - Spannungswert für Spline + + VST3: + - - Tension: - Spannung: + + OSC + - - Zoom controls - Zoom Regler + + Host URLs: + - - Horizontal zooming - Horizontales Zoomen + + Valid commands: + - - Vertical zooming - Vertikales Zoomen + + valid osc commands here + - - Quantization controls - Quantisierungs Regler + + Example: + - - Quantization - Quantisierung + + License + Lizenz - - - Automation Editor - no clip - Automation-Editor - Kein Pattern - - - - - Automation Editor - %1 - Automation-Editor - %1 - - - - Model is already connected to this clip. - Model ist bereits mit diesem Pattern verbunden. - - - - AutomationClip - - - Drag a control while pressing <%1> - Ein Steuerelement mit <Strg> hier her ziehen - - - - AutomationClipView - - - Open in Automation editor - Im Automation-Editor öffnen - - - - Clear - Zurücksetzen - - - - Reset name - Name zurücksetzen - - - - Change name - Name ändern - - - - Set/clear record - Aufnahme setzen/löschen - - - - Flip Vertically (Visible) - Vertikal spiegeln (Sichtbar) - - - - Flip Horizontally (Visible) - Horizontal spiegeln (Sichtbar) - - - - %1 Connections - %1 Verbindungen - - - - Disconnect "%1" - »%1« trennen - - - - Model is already connected to this clip. - Model ist bereits mit diesem Pattern verbunden. - - - - AutomationTrack - - - Automation track - Automation-Spur - - - - PatternEditor - - - Beat+Bassline Editor - Beat+Bassline Editor - - - - Play/pause current beat/bassline (Space) - Aktuellen Beat/Bassline abspielen/pausieren (Leertaste) - - - - Stop playback of current beat/bassline (Space) - Abspielen des aktuellen Beats/Bassline stoppen (Leertaste) - - - - Beat selector - Beat Wähler - - - - Track and step actions - - - - - Add beat/bassline - Beat/Bassline hinzufügen - - - - Clone beat/bassline clip - - - - - Add sample-track - Sample Spur hinzufügen - - - - Add automation-track - Automation-Spur hinzufügen - - - - Remove steps - Schritte entfernen - - - - Add steps - Schritte hinzufügen - - - - Clone Steps - Schritte Klonen - - - - PatternClipView - - - Open in Beat+Bassline-Editor - Im Beat+Bassline-Editor öffnen - - - - Reset name - Name zurücksetzen - - - - Change name - Name ändern - - - - PatternTrack - - - Beat/Bassline %1 - Beat/Bassline %1 - - - - Clone of %1 - Klon von %1 - - - - BassBoosterControlDialog - - - FREQ - FREQ - - - - Frequency: - Frequenz: - - - - GAIN - GAIN - - - - Gain: - Verstärkung: - - - - RATIO - RATIO - - - - Ratio: - Verhältnis: - - - - BassBoosterControls - - - Frequency - Frequenz - - - - Gain - Verstärkung - - - - Ratio - Verhältnis - - - - BitcrushControlDialog - - - IN - IN - - - - OUT - OUT - - - - - GAIN - GAIN - - - - Input gain: - Eingangsverstärkung: - - - - NOISE - NOISE - - - - Input noise: - - - - - Output gain: - Ausgabeverstärkung: - - - - CLIP - CLIP - - - - Output clip: - - - - - Rate enabled - Rate aktiviert - - - - Enable sample-rate crushing - - - - - Depth enabled - Tiefe aktiviert - - - - Enable bit-depth crushing - - - - - FREQ - FREQ - - - - Sample rate: - Sample Rate: - - - - STEREO - STEREO - - - - Stereo difference: - Stereo Unterschied: - - - - QUANT - - - - - Levels: - Stärke: - - - - BitcrushControls - - - Input gain - Eingangsverstärkung - - - - Input noise - - - - - Output gain - Ausgabeverstärkung - - - - Output clip - - - - - Sample rate - - - - - Stereo difference - - - - - Levels - Stärke - - - - Rate enabled - Rate aktiviert - - - - Depth enabled - Tiefe aktiviert - - - - CarlaAboutW - - - About Carla - - - - - About - Über - - - - About text here - - - - - Extended licensing here - - - - - Artwork - - - - - Using KDE Oxygen icon set, designed by Oxygen Team. - - - - - Contains some knobs, backgrounds and other small artwork from Calf Studio Gear, OpenAV and OpenOctave projects. - - - - - VST is a trademark of Steinberg Media Technologies GmbH. - - - - - Special thanks to António Saraiva for a few extra icons and artwork! - - - - - The LV2 logo has been designed by Thorsten Wilms, based on a concept from Peter Shorthose. - - - - - MIDI Keyboard designed by Thorsten Wilms. - - - - - Carla, Carla-Control and Patchbay icons designed by DoosC. - - - - - Features - - - - - AU/AudioUnit: - - - - - LADSPA: - - - - - - - - - - - - TextLabel - - - - - VST2: - - - - - DSSI: - - - - - LV2: - - - - - VST3: - - - - - OSC - - - - - Host URLs: - - - - - Valid commands: - - - - - valid osc commands here - - - - - Example: - - - - - License - Lizenz - - - + GNU GENERAL PUBLIC LICENSE Version 2, June 1991 @@ -1301,15034 +534,18222 @@ POSSIBILITY OF SUCH DAMAGES. - - OSC Bridge Version + + OSC Bridge Version + + + + + Plugin Version + + + + + <br>Version %1<br>Carla is a fully-featured audio plugin host%2.<br><br>Copyright (C) 2011-2019 falkTX<br> + + + + + + (Engine not running) + + + + + Everything! (Including LRDF) + + + + + Everything! (Including CustomData/Chunks) + + + + + About 110&#37; complete (using custom extensions)<br/>Implemented Feature/Extensions:<ul><li>http://lv2plug.in/ns/ext/atom</li><li>http://lv2plug.in/ns/ext/buf-size</li><li>http://lv2plug.in/ns/ext/data-access</li><li>http://lv2plug.in/ns/ext/event</li><li>http://lv2plug.in/ns/ext/instance-access</li><li>http://lv2plug.in/ns/ext/log</li><li>http://lv2plug.in/ns/ext/midi</li><li>http://lv2plug.in/ns/ext/options</li><li>http://lv2plug.in/ns/ext/parameters</li><li>http://lv2plug.in/ns/ext/port-props</li><li>http://lv2plug.in/ns/ext/presets</li><li>http://lv2plug.in/ns/ext/resize-port</li><li>http://lv2plug.in/ns/ext/state</li><li>http://lv2plug.in/ns/ext/time</li><li>http://lv2plug.in/ns/ext/uri-map</li><li>http://lv2plug.in/ns/ext/urid</li><li>http://lv2plug.in/ns/ext/worker</li><li>http://lv2plug.in/ns/extensions/ui</li><li>http://lv2plug.in/ns/extensions/units</li><li>http://home.gna.org/lv2dynparam/rtmempool/v1</li><li>http://kxstudio.sf.net/ns/lv2ext/external-ui</li><li>http://kxstudio.sf.net/ns/lv2ext/programs</li><li>http://kxstudio.sf.net/ns/lv2ext/props</li><li>http://kxstudio.sf.net/ns/lv2ext/rtmempool</li><li>http://ll-plugins.nongnu.org/lv2/ext/midimap</li><li>http://ll-plugins.nongnu.org/lv2/ext/miditype</li></ul> + + + + + + + Using Juce host + + + + + About 85% complete (missing vst bank/presets and some minor stuff) + + + + + CarlaHostW + + + MainWindow + + + + + Rack + + + + + Patchbay + + + + + Logs + + + + + Loading... + + + + + Save + + + + + Clear + + + + + Ctrl+L + + + + + Auto-Scroll + + + + + Buffer Size: + + + + + Sample Rate: + + + + + ? Xruns + + + + + DSP Load: %p% + + + + + &File + &Datei + + + + &Engine + + + + + &Plugin + + + + + Macros (all plugins) + + + + + &Canvas + + + + + Zoom + + + + + &Settings + + + + + &Help + &Hilfe + + + + Tool Bar + + + + + Disk + + + + + + Home + Home + + + + Transport + + + + + Playback Controls + + + + + Time Information + + + + + Frame: + + + + + 000'000'000 + + + + + Time: + Zeit: + + + + 00:00:00 + + + + + BBT: + + + + + 000|00|0000 + + + + + Settings + Einstellungen + + + + BPM + + + + + Use JACK Transport + + + + + Use Ableton Link + + + + + &New + &Neu + + + + Ctrl+N + + + + + &Open... + Ö&ffnen... + + + + + Open... + + + + + Ctrl+O + + + + + &Save + &Speichern + + + + Ctrl+S + + + + + Save &As... + Speichern &als... + + + + + Save As... + + + + + Ctrl+Shift+S + + + + + &Quit + &Beenden + + + + Ctrl+Q + + + + + &Start + + + + + F5 + + + + + St&op + + + + + F6 + + + + + &Add Plugin... + + + + + Ctrl+A + + + + + &Remove All + + + + + Enable + + + + + Disable + + + + + 0% Wet (Bypass) + + + + + 100% Wet + + + + + 0% Volume (Mute) + 0% Volumen (Mute) + + + + 100% Volume + 100% Volumen + + + + Center Balance + + + + + &Play + + + + + Ctrl+Shift+P + + + + + &Stop + + + + + Ctrl+Shift+X + + + + + &Backwards + + + + + Ctrl+Shift+B + + + + + &Forwards + + + + + Ctrl+Shift+F + + + + + &Arrange + + + + + Ctrl+G + + + + + + &Refresh + + + + + Ctrl+R + + + + + Save &Image... + + + + + Auto-Fit + + + + + Zoom In + + + + + Ctrl++ + + + + + Zoom Out + + + + + Ctrl+- + + + + + Zoom 100% + + + + + Ctrl+1 + + + + + Show &Toolbar + + + + + &Configure Carla + + + + + &About + + + + + About &JUCE + + + + + About &Qt + + + + + Show Canvas &Meters + + + + + Show Canvas &Keyboard + + + + + Show Internal + + + + + Show External + + + + + Show Time Panel + + + + + Show &Side Panel + + + + + Ctrl+P + + + + + &Connect... + + + + + Compact Slots + + + + + Expand Slots + + + + + Perform secret 1 + + + + + Perform secret 2 + + + + + Perform secret 3 + + + + + Perform secret 4 + + + + + Perform secret 5 + + + + + Add &JACK Application... + + + + + &Configure driver... + + + + + Panic + + + + + Open custom driver panel... + + + + + Save Image... (2x zoom) + + + + + Save Image... (4x zoom) + + + + + Copy as Image to Clipboard + + + + + Ctrl+Shift+C + + + + + CarlaHostWindow + + + Export as... + + + + + + + + Error + Fehler + + + + Failed to load project + + + + + Failed to save project + + + + + Quit + + + + + Are you sure you want to quit Carla? + + + + + Could not connect to Audio backend '%1', possible reasons: +%2 + Konnte nicht zum Audio backend verbinden '%1', mögliche Gründe: +%2 + + + + Could not connect to Audio backend '%1' + Konnte nicht zum Audio backend verbinden '%1' + + + + Warning + + + + + There are still some plugins loaded, you need to remove them to stop the engine. +Do you want to do this now? + + + + + CarlaSettingsW + + + Settings + Einstellungen + + + + main + + + + + canvas + + + + + engine + + + + + osc + + + + + file-paths + + + + + plugin-paths + + + + + wine + + + + + experimental + + + + + Widget + + + + + + Main + + + + + + Canvas + + + + + + Engine + + + + + File Paths + + + + + Plugin Paths + + + + + Wine + + + + + + Experimental + + + + + <b>Main</b> + + + + + Paths + Pfade + + + + Default project folder: + + + + + Interface + + + + + Use "Classic" as default rack skin + + + + + Interface refresh interval: + + + + + + ms + + + + + Show console output in Logs tab (needs engine restart) + + + + + Show a confirmation dialog before quitting + + + + + + Theme + + + + + Use Carla "PRO" theme (needs restart) + + + + + Color scheme: + + + + + Black + + + + + System + + + + + Enable experimental features + + + + + <b>Canvas</b> + + + + + Bezier Lines + + + + + Theme: + + + + + Size: + Größe: + + + + 775x600 + + + + + 1550x1200 + + + + + 3100x2400 + + + + + 4650x3600 + + + + + 6200x4800 + + + + + 12400x9600 + + + + + Options + + + + + Auto-hide groups with no ports + + + + + Auto-select items on hover + + + + + Basic eye-candy (group shadows) + + + + + Render Hints + + + + + Anti-Aliasing + + + + + Full canvas repaints (slower, but prevents drawing issues) + + + + + <b>Engine</b> + + + + + + Core + + + + + Single Client + + + + + Multiple Clients + + + + + + Continuous Rack + + + + + + Patchbay + + + + + Audio driver: + + + + + Process mode: + + + + + + + + Maximum number of parameters to allow in the built-in 'Edit' dialog + + + + + Max Parameters: + + + + + ... + + + + + Reset Xrun counter after project load + + + + + Plugin UIs + + + + + + How much time to wait for OSC GUIs to ping back the host + + + + + UI Bridge Timeout: + + + + + Use OSC-GUI bridges when possible, this way separating the UI from DSP code + + + + + Use UI bridges instead of direct handling when possible + + + + + Make plugin UIs always-on-top + + + + + Make plugin UIs appear on top of Carla (needs restart) + + + + + NOTE: Plugin-bridge UIs cannot be managed by Carla on macOS + + + + + + Restart the engine to load the new settings + + + + + <b>OSC</b> + + + + + Enable OSC + + + + + Enable TCP port + + + + + + Use specific port: + + + + + Overridden by CARLA_OSC_TCP_PORT env var + + + + + + Use randomly assigned port + + + + + Enable UDP port + + + + + Overridden by CARLA_OSC_UDP_PORT env var + + + + + DSSI UIs require OSC UDP port enabled + + + + + <b>File Paths</b> + + + + + Audio + Audio + + + + MIDI + MIDI + + + + Used for the "audiofile" plugin + + + + + Used for the "midifile" plugin + + + + + + Add... + + + + + + Remove + + + + + + Change... + + + + + <b>Plugin Paths</b> + + + + + LADSPA + + + + + DSSI + + + + + LV2 + + + + + VST2 + + + + + VST3 + + + + + SF2/3 + + + + + SFZ + + + + + JSFX + + + + + CLAP + + + + + Restart Carla to find new plugins + + + + + <b>Wine</b> + + + + + Executable + + + + + Path to 'wine' binary: + + + + + Prefix + + + + + Auto-detect Wine prefix based on plugin filename + + + + + Fallback: + + + + + Note: WINEPREFIX env var is preferred over this fallback + + + + + Realtime Priority + + + + + Base priority: + + + + + WineServer priority: + + + + + These options are not available for Carla as plugin + + + + + <b>Experimental</b> + + + + + Experimental options! Likely to be unstable! + + + + + Enable plugin bridges + + + + + Enable Wine bridges + + + + + Enable jack applications + + + + + Export single plugins to LV2 + + + + + Use system/desktop-theme icons (needs restart) + + + + + Load Carla backend in global namespace (NOT RECOMMENDED) + + + + + Fancy eye-candy (fade-in/out groups, glow connections) + + + + + Use OpenGL for rendering (needs restart) + + + + + High Quality Anti-Aliasing (OpenGL only) + + + + + Render Ardour-style "Inline Displays" + + + + + Force mono plugins as stereo by running 2 instances at the same time. +This mode is not available for VST plugins. + + + + + Force mono plugins as stereo + + + + + When enabled, Carla will try to prevent plugins from doing things that might mess up the audio or cause xruns, such as fork(), gtk_init() and similar. + + + + + Prevent unsafe calls from plugins (needs restart) + + + + + Run plugins in a separate process, so if they crash it does not affect Carla. +Plugins get automatically deactivated in such cases. +Reactvate them to start the process again, with the last saved state applied to it. + + + + + Run plugins in bridge mode when possible + + + + + + + + Add Path + + + + + Dialog + + + Carla Control - Connect + + + + + Remote setup + + + + + UDP Port: + + + + + Remote host: + + + + + TCP Port: + + + + + Set value + Wert setzen + + + + TextLabel + + + + + Scale Points + + + + + DriverSettingsW + + + Driver Settings + + + + + Device: + + + + + Buffer size: + + + + + Sample rate: + Sample Rate: + + + + Triple buffer + + + + + Show Driver Control Panel + + + + + Restart the engine to load the new settings + + + + + ExportProjectDialog + + + Export project + Projekt exportieren + + + + Export as loop (remove extra bar) + + + + + Export between loop markers + Export zwischen den Loop markierungen + + + + Render Looped Section: + + + + + time(s) + + + + + File format settings + + + + + File format: + Dateiformat: + + + + Sampling rate: + + + + + 44100 Hz + 44100 Hz + + + + 48000 Hz + 48000 Hz + + + + 88200 Hz + 88200 Hz + + + + 96000 Hz + 96000 Hz + + + + 192000 Hz + 192000 Hz + + + + Bit depth: + + + + + 16 Bit integer + + + + + 24 Bit integer + + + + + 32 Bit float + + + + + Stereo mode: + Stereo Modus: + + + + Mono + Mono + + + + Stereo + Stereo + + + + Joint stereo + + + + + Compression level: + + + + + Bitrate: + Bitrate: + + + + 64 KBit/s + 64 KBit/s + + + + 128 KBit/s + 128 KBit/s + + + + 160 KBit/s + 160 KBit/s + + + + 192 KBit/s + 192 KBit/s + + + + 256 KBit/s + 256 KBit/s + + + + 320 KBit/s + 320 KBit/s + + + + Use variable bitrate + Verwende variable Bitrate + + + + Quality settings + Qualitätseinstellungen + + + + Interpolation: + Interpolation: + + + + Zero order hold + + + + + Sinc worst (fastest) + + + + + Sinc medium (recommended) + + + + + Sinc best (slowest) + + + + + Start + Start + + + + Cancel + Abbrechen + + + + InstrumentFunctionNoteStacking + + + octave + Oktave + + + + + Major + Dur + + + + Majb5 + Durb5 + + + + minor + moll + + + + minb5 + mollb5 + + + + sus2 + sus2 + + + + sus4 + sus4 + + + + aug + aug + + + + augsus4 + augsus4 + + + + tri + tri + + + + 6 + 6 + + + + 6sus4 + 6sus4 + + + + 6add9 + 6add9 + + + + m6 + m6 + + + + m6add9 + m6add9 + + + + 7 + 7 + + + + 7sus4 + 7sus4 + + + + 7#5 + 7#5 + + + + 7b5 + 7b5 + + + + 7#9 + 7#9 + + + + 7b9 + 7b9 + + + + 7#5#9 + 7#5#9 + + + + 7#5b9 + 7#5b9 + + + + 7b5b9 + 7b5b9 + + + + 7add11 + 7add11 + + + + 7add13 + 7add13 + + + + 7#11 + 7#11 + + + + Maj7 + Maj7 + + + + Maj7b5 + Maj7b5 + + + + Maj7#5 + Maj7#5 + + + + Maj7#11 + Maj7#11 + + + + Maj7add13 + Maj7add13 + + + + m7 + m7 + + + + m7b5 + m7b5 + + + + m7b9 + m7b9 + + + + m7add11 + m7add11 + + + + m7add13 + m7add13 + + + + m-Maj7 + m-Maj7 + + + + m-Maj7add11 + m-Maj7add11 + + + + m-Maj7add13 + m-Maj7add13 + + + + 9 + 9 + + + + 9sus4 + 9sus4 + + + + add9 + add9 + + + + 9#5 + 9#5 + + + + 9b5 + 9b5 + + + + 9#11 + 9#11 + + + + 9b13 + 9b13 + + + + Maj9 + Maj9 + + + + Maj9sus4 + Maj9sus4 + + + + Maj9#5 + Maj9#5 + + + + Maj9#11 + Maj9#11 + + + + m9 + m9 + + + + madd9 + madd9 + + + + m9b5 + m9b5 + + + + m9-Maj7 + m9-Maj7 + + + + 11 + 11 + + + + 11b9 + 11b9 + + + + Maj11 + Maj11 + + + + m11 + m11 + + + + m-Maj11 + m-Maj11 + + + + 13 + 13 + + + + 13#9 + 13#9 + + + + 13b9 + 13b9 + + + + 13b5b9 + 13b5b9 + + + + Maj13 + Maj13 + + + + m13 + m13 + + + + m-Maj13 + m-Maj13 + + + + Harmonic minor + Harmonisches Moll + + + + Melodic minor + Melodisches Moll + + + + Whole tone + Ganze Töne + + + + Diminished + Vermindert + + + + Major pentatonic + Pentatonisches Dur + + + + Minor pentatonic + Pentatonisches Moll + + + + Jap in sen + Jap in sen + + + + Major bebop + Dur Bebop + + + + Dominant bebop + Dominanter Bebop + + + + Blues + Blues + + + + Arabic + Arabisch + + + + Enigmatic + Enigmatisch + + + + Neopolitan + Neopolitanisch + + + + Neopolitan minor + Neopolitanisches Moll + + + + Hungarian minor + Zigeunermoll + + + + Dorian + Dorisch + + + + Phrygian + Phrygisch + + + + Lydian + Lydisch + + + + Mixolydian + Mixolydisch + + + + Aeolian + Äolisch + + + + Locrian + Locrisch + + + + Minor + Moll + + + + Chromatic + Chromatisch + + + + Half-Whole Diminished + Halbton-Ganzton-Leiter + + + + 5 + 5 + + + + Phrygian dominant + + + + + Persian + Persisch + + + + InstrumentSoundShaping + + + VOLUME + LAUTSTÄRKE + + + + Volume + Lautstärke + + + + CUTOFF + KENNFREQ + + + + Cutoff frequency + Kennfrequenz + + + + RESO + RESO + + + + Resonance + Resonanz + + + + JackAppDialog + + + Add JACK Application + + + + + Note: Features not implemented yet are greyed out + + + + + Application + + + + + Name: + + + + + Application: + + + + + From template + + + + + Custom + + + + + Template: + + + + + Command: + + + + + Setup + + + + + Session Manager: + + + + + None + + + + + Audio inputs: + + + + + MIDI inputs: + + + + + Audio outputs: + + + + + MIDI outputs: + + + + + Take control of main application window + + + + + Workarounds + + + + + Wait for external application start (Advanced, for Debug only) + + + + + Capture only the first X11 Window + + + + + Use previous client output buffer as input for the next client + + + + + Simulate 16 JACK MIDI outputs, with MIDI channel as port index + + + + + Error here + + + + + NSM applications cannot use abstract or absolute paths + + + + + NSM applications cannot use CLI arguments + + + + + You need to save the current Carla project before NSM can be used + + + + + JuceAboutW + + + This program uses JUCE version %1. + + + + + MidiPatternW + + + MIDI Pattern + + + + + Time Signature: + + + + + + + 1/4 + + + + + 2/4 + + + + + 3/4 + + + + + 4/4 + + + + + 5/4 + + + + + 6/4 + + + + + Measures: + + + + + + + 1 + + + + + 2 + + + + + 3 + + + + + 4 + + + + + 5 + 5 + + + + 6 + 6 + + + + 7 + 7 + + + + 8 + + + + + 9 + 9 + + + + 10 + + + + + 11 + 11 + + + + 12 + + + + + 13 + 13 + + + + 14 + + + + + 15 + + + + + 16 + + + + + Default Length: + + + + + + 1/16 + + + + + + 1/15 + + + + + + 1/12 + + + + + + 1/9 + + + + + + 1/8 + + + + + + 1/6 + + + + + + 1/3 + + + + + + 1/2 + + + + + Quantize: + + + + + &File + &Datei + + + + &Edit + &Bearbeiten + + + + &Quit + &Beenden + + + + Esc + + + + + &Insert Mode + + + + + F + + + + + &Velocity Mode + + + + + D + + + + + Select All + + + + + A + + + + + PatchesDialog + + + + Qsynth: Channel Preset + + + + + + Bank selector + + + + + + Bank + Bank + + + + + Program selector + Programmwähler + + + + + Patch + Patch + + + + + Name + Name + + + + + OK + OK + + + + + Cancel + Abbrechen + + + + PluginBrowser + + + no description + keine Beschreibung + + + + A native amplifier plugin + Ein natives Verstärker-Plugin + + + + Simple sampler with various settings for using samples (e.g. drums) in an instrument-track + Einfacher Sampler mit verschiedenen Einstellungen zum Benutzen von Samples (z.B. Trommeln) in einer Instrumentenspur + + + + Boost your bass the fast and simple way + Verstärken Sie Ihren Bass auf schnellen und einfachen Wege + + + + Customizable wavetable synthesizer + Flexibler Wavetable-Synthesizer + + + + An oversampling bitcrusher + + + + + Carla Patchbay Instrument + Carla Patchbay Instrument + + + + Carla Rack Instrument + Carla Rack Instrument + + + + A dynamic range compressor. + + + + + A 4-band Crossover Equalizer + Ein 4-Band Crossover Equalizer + + + + A native delay plugin + Ein natives Verzögerung-Plugin + + + + A Dual filter plugin + Ein doppel Fliter Plugin + + + + plugin for processing dynamics in a flexible way + Ein Plugin, um Dynamik auf Flexible Weise zu verarbeiten + + + + A native eq plugin + Ein natives EQ-Plugin + + + + A native flanger plugin + Ein natives Flanger-Plugin + + + + Emulation of GameBoy (TM) APU + Emulation des GameBoy (TM) APU + + + + Player for GIG files + + + + + Filter for importing Hydrogen files into LMMS + Filter zum importieren von Hydrogendateien in LMMS + + + + Versatile drum synthesizer + Vielseitiger Trommel-Synthesizer + + + + List installed LADSPA plugins + Installierte LADSPA-Plugins auflisten + + + + plugin for using arbitrary LADSPA-effects inside LMMS. + Plugin, um beliebige LADSPA-Effekte in LMMS nutzen zu können. + + + + Incomplete monophonic imitation TB-303 + + + + + plugin for using arbitrary LV2-effects inside LMMS. + + + + + plugin for using arbitrary LV2 instruments inside LMMS. + + + + + Filter for exporting MIDI-files from LMMS + + + + + Filter for importing MIDI-files into LMMS + Filter, um MIDI-Dateien in LMMS zu importieren + + + + Monstrous 3-oscillator synth with modulation matrix + Monströser 3-Oszillator Synth mit Modulationsmatrix + + + + A multitap echo delay plugin + + + + + A NES-like synthesizer + Ein NES ähnlicher Synthesizer + + + + 2-operator FM Synth + 2-Operator FM-Synth + + + + Additive Synthesizer for organ-like sounds + Additiver Synthesizer für orgelähnliche Klänge + + + + GUS-compatible patch instrument + GUS-kompatibles Patch-Instrument + + + + Plugin for controlling knobs with sound peaks + Plugin zur Kontrolle von Knöpfen mit Hilfe von Klangspitzen + + + + Reverb algorithm by Sean Costello + Hallalgorithmus von Sean Costello + + + + Player for SoundFont files + Wiedergabe von SoundFont-Dateien + + + + LMMS port of sfxr + LMMS-Portierung von sfxr + + + + Emulation of the MOS6581 and MOS8580 SID. +This chip was used in the Commodore 64 computer. + Emulation des MOS6581 und MOS8580 SID Chips. +Dieser Chip wurde in Commodore 64 Computern genutzt. + + + + A graphical spectrum analyzer. + + + + + Plugin for enhancing stereo separation of a stereo input file + Plugin zur Erweiterung des Stereo-Klangeindrucks + + + + Plugin for freely manipulating stereo output + Plugin zur freien Manipulation der Stereoausgabe + + + + Tuneful things to bang on + Gegenstände, die nach etwas klingen, wenn man drauf rumkloppt + + + + Three powerful oscillators you can modulate in several ways + Drei mächtige Oszillatoren, die Sie auf mehrere Weisen modulieren können + + + + A stereo field visualizer. + + + + + VST-host for using VST(i)-plugins within LMMS + VST-Host zum Benutzen von VST(i)-Plugins innerhalb von LMMS + + + + Vibrating string modeler + Modellierung schwingender Saiten + + + + plugin for using arbitrary VST effects inside LMMS. + Plugin um beliebige VST-Effekte in LMMS zu benutzen. + + + + 4-oscillator modulatable wavetable synth + 4-Oszillator modulierbarer Wellenformtabellen Synth + + + + plugin for waveshaping + Plugin für Wellenformen + + + + Mathematical expression parser + + + + + Embedded ZynAddSubFX + Eingebettetes ZynAddSubFX-Plugin + + + + An all-pass filter allowing for extremely high orders. + + + + + Granular pitch shifter + + + + + Upwards/downwards multiband compression plugin powered by the eldritch elder god LOMMUS. + + + + + Basic Slicer + + + + + Tap to the beat + + + + + PluginEdit + + + Plugin Editor + + + + + Edit + + + + + Control + Steuerung + + + + MIDI Control Channel: + + + + + N + + + + + Output dry/wet (100%) + + + + + Output volume (100%) + + + + + Balance Left (0%) + + + + + + Balance Right (0%) + + + + + Use Balance + + + + + Use Panning + + + + + Settings + Einstellungen + + + + Use Chunks + + + + + Audio: + + + + + Fixed-Size Buffer + + + + + Force Stereo (needs reload) + + + + + MIDI: + + + + + Map Program Changes + + + + + Send Notes + + + + + Send Bank/Program Changes + + + + + Send Control Changes + + + + + Send Channel Pressure + + + + + Send Note Aftertouch + + + + + Send Pitchbend + + + + + Send All Sound/Notes Off + + + + + +Plugin Name + + + + + + Program: + + + + + MIDI Program: + + + + + Save State + + + + + Load State + + + + + Information + + + + + Label/URI: + + + + + Name: + + + + + Type: + Typ: + + + + Maker: + + + + + Copyright: + + + + + Unique ID: + + + + + PluginFactory + + + Plugin not found. + Plugin nicht gefunden + + + + LMMS plugin %1 does not have a plugin descriptor named %2! + + + + + PluginListDialog + + + Carla - Add New - - Plugin Version + + Requirements - - <br>Version %1<br>Carla is a fully-featured audio plugin host%2.<br><br>Copyright (C) 2011-2019 falkTX<br> + + With Custom GUI - - - (Engine not running) + + With CV Ports - - Everything! (Including LRDF) + + Real-time safe only - - Everything! (Including CustomData/Chunks) + + Stereo only - - About 110&#37; complete (using custom extensions)<br/>Implemented Feature/Extensions:<ul><li>http://lv2plug.in/ns/ext/atom</li><li>http://lv2plug.in/ns/ext/buf-size</li><li>http://lv2plug.in/ns/ext/data-access</li><li>http://lv2plug.in/ns/ext/event</li><li>http://lv2plug.in/ns/ext/instance-access</li><li>http://lv2plug.in/ns/ext/log</li><li>http://lv2plug.in/ns/ext/midi</li><li>http://lv2plug.in/ns/ext/options</li><li>http://lv2plug.in/ns/ext/parameters</li><li>http://lv2plug.in/ns/ext/port-props</li><li>http://lv2plug.in/ns/ext/presets</li><li>http://lv2plug.in/ns/ext/resize-port</li><li>http://lv2plug.in/ns/ext/state</li><li>http://lv2plug.in/ns/ext/time</li><li>http://lv2plug.in/ns/ext/uri-map</li><li>http://lv2plug.in/ns/ext/urid</li><li>http://lv2plug.in/ns/ext/worker</li><li>http://lv2plug.in/ns/extensions/ui</li><li>http://lv2plug.in/ns/extensions/units</li><li>http://home.gna.org/lv2dynparam/rtmempool/v1</li><li>http://kxstudio.sf.net/ns/lv2ext/external-ui</li><li>http://kxstudio.sf.net/ns/lv2ext/programs</li><li>http://kxstudio.sf.net/ns/lv2ext/props</li><li>http://kxstudio.sf.net/ns/lv2ext/rtmempool</li><li>http://ll-plugins.nongnu.org/lv2/ext/midimap</li><li>http://ll-plugins.nongnu.org/lv2/ext/miditype</li></ul> + + With Inline Display - - - - Using Juce host + + Favorites only - - About 85% complete (missing vst bank/presets and some minor stuff) + + (Number of Plugins go here) - - - CarlaHostW - - MainWindow + + &Add Plugin - - Rack + + Cancel - - Patchbay + + Refresh - - Logs + + Reset filters - - Loading... + + + + + + + + + + + + + + + + + TextLabel - - Buffer Size: + + Format: - - Sample Rate: + + Architecture: - - ? Xruns + + Type: - - DSP Load: %p% + + MIDI Ins: - - &File - &Datei + + Audio Ins: + - - &Engine + + CV Outs: - - &Plugin + + MIDI Outs: - - Macros (all plugins) + + Parameter Ins: - - &Canvas + + Parameter Outs: - - Zoom + + Audio Outs: - - &Settings + + CV Ins: - - &Help - &Hilfe + + UniqueID: + - - toolBar + + Has Inline Display: - - Disk + + Has Custom GUI: - - - Home - Home + + Is Synth: + - - Transport + + Is Bridged: - - Playback Controls + + Information - - Time Information + + Name - - Frame: + + Label/Id/URI - - 000'000'000 + + Maker - - Time: - Zeit: + + Binary/Filename + - - 00:00:00 + + Format - - BBT: + + Internal - - 000|00|0000 + + LADSPA - - Settings - Einstellungen + + DSSI + + + + + LV2 + + + + + VST2 + + + + + VST3 + + + + + CLAP + + + + + AU + + + + + JSFX + + + + + Sound Kits + + + + + Type + + + + + Effects + + + + + Instruments + + + + + MIDI Plugins + + + + + Other/Misc + + + + + Category + + + + + All + + + + + Delay + + + + + Distortion + + + + + Dynamics + + + + + EQ + + + + + Filter + + + + + Modulator + + + + + Synth + + + + + Utility + + + + + + Other + + + + + Architecture + + + + + + Native + + + + + Bridged + + + + + Bridged (Wine) + + + + + Focus Text Search + + + + + Ctrl+F + + + + + Bridged (32bit) + + + + + Discovering internal plugins... + + + + + Discovering LADSPA plugins... + + + + + Discovering DSSI plugins... + + + + + Discovering LV2 plugins... + + + + + Discovering VST2 plugins... + - - BPM + + Discovering VST3 plugins... + + + + + Discovering CLAP plugins... + + + + + Discovering AU plugins... + + + + + Discovering JSFX plugins... + + + + + Discovering SF2 kits... + + + + + Discovering SFZ kits... + + + + + Unknown + + + + + + + + Yes + + + + + + + + No + + + + + PluginParameter + + + Form - - Use JACK Transport + + Parameter Name - - Use Ableton Link + + TextLabel - - &New - &Neu - - - - Ctrl+N + + ... + + + PluginRefreshDialog - - &Open... - Ö&ffnen... + + Plugin Refresh + - - - Open... + + Search for: - - Ctrl+O + + All plugins, ignoring cache - - &Save - &Speichern + + Updated plugins only + - - Ctrl+S + + Check previously invalid plugins - - Save &As... - Speichern &als... + + Press 'Scan' to begin the search + - - - Save As... + + Scan - - Ctrl+Shift+S + + >> Skip - - &Quit - &Beenden + + Close + + + + PluginWidget - - Ctrl+Q + + + + + + Frame - - &Start + + Enable - - F5 - + + On/Off + An/aus - - St&op + + + + + PluginName - - F6 - + + MIDI + MIDI - - &Add Plugin... + + AUDIO IN - - Ctrl+A + + AUDIO OUT - - &Remove All + + GUI - - Enable + + Edit - - Disable + + Remove - - 0% Wet (Bypass) + + Plugin Name - - 100% Wet + + Preset: + + + ProjectRenderer - - 0% Volume (Mute) - 0% Volumen (Mute) + + WAV (*.wav) + WAV (*.wav) - - 100% Volume - 100% Volumen + + FLAC (*.flac) + FLAC (*.flac) - - Center Balance - + + OGG (*.ogg) + OGG (*.ogg) - - &Play - + + MP3 (*.mp3) + MP3 (*.mp3) + + + QGroupBox - - Ctrl+Shift+P + + + Settings for %1 + + + QObject - - &Stop + + Reload Plugin - - Ctrl+Shift+X - + + Show GUI + GUI anzeigen - - &Backwards - + + Help + Hilfe - - Ctrl+Shift+B + + LADSPA plugins - - &Forwards + + The project contains %1 LADSPA plugin(s) which might have not been restored correctly! Please check the project. - - Ctrl+Shift+F + + URI: - - &Arrange + + Project: - - Ctrl+G + + Maker: - - - &Refresh + + Homepage: - - Ctrl+R + + License: - - Save &Image... + + File: %1 - - Auto-Fit + + failed to load description - - Zoom In + + Open audio file - - Ctrl++ + + Error loading sample - - Zoom Out + + %1 (unsupported) + + + QWidget - - Ctrl+- - + + + Name: + Name: - - Zoom 100% - + + Maker: + Hersteller: - - Ctrl+1 - + + Copyright: + Copyright: - - Show &Toolbar - + + Requires Real Time: + Benötigt Echtzeit: - - &Configure Carla - + + + + Yes + Ja - - &About - + + + + No + Nein - - About &JUCE - + + Real Time Capable: + Echtzeitfähig: - - About &Qt - + + In Place Broken: + Operationen nicht In-Place: - - Show Canvas &Meters - + + Channels In: + Eingangs-Kanäle: - - Show Canvas &Keyboard - + + Channels Out: + Ausgangs-Kanäle: - - Show Internal - + + File: %1 + Datei: %1 - - Show External - + + File: + Datei: + + + XYControllerW - - Show Time Panel + + XY Controller - - Show &Side Panel + + X Controls: - - &Connect... + + Y Controls: - - Compact Slots + + Smooth - - Expand Slots + + &Settings - - Perform secret 1 + + Channels - - Perform secret 2 + + &File - - Perform secret 3 + + Show MIDI &Keyboard - - Perform secret 4 + + (All) - - Perform secret 5 + + 1 - - Add &JACK Application... + + 2 - - &Configure driver... + + 3 - - Panic + + 4 - - Open custom driver panel... + + 5 - - - CarlaHostWindow - - Export as... + + 6 - - - - - Error - Fehler - - - - Failed to load project + + 7 - - Failed to save project + + 8 - - Quit + + 9 - - Are you sure you want to quit Carla? + + 10 - - Could not connect to Audio backend '%1', possible reasons: -%2 - Konnte nicht zum Audio backend verbinden '%1', mögliche Gründe: -%2 - - - - Could not connect to Audio backend '%1' - Konnte nicht zum Audio backend verbinden '%1' - - - - Warning + + 11 - - There are still some plugins loaded, you need to remove them to stop the engine. -Do you want to do this now? + + 12 - - - - CarlaInstrumentView + - - Show GUI - GUI anzeigen + + 13 + - - - CarlaSettingsW - - Settings - Einstellungen + + 14 + - - main + + 15 - - canvas + + 16 - - engine + + &Quit - - osc + + Esc - - file-paths + + (None) + + + lmms::AmplifierControls - - plugin-paths + + Volume - - wine + + Panning - - experimental + + Left gain - - Widget + + Right gain + + + lmms::AudioFileProcessor - - - Main + + Amplify - - - Canvas + + Start of sample - - - Engine + + End of sample - - File Paths + + Loopback point - - Plugin Paths + + Reverse sample - - Wine + + Loop mode - - - Experimental + + Stutter - - <b>Main</b> + + Interpolation mode - - Paths - Pfade + + None + - - Default project folder: + + Linear - - Interface + + Sinc - - Interface refresh interval: + + Sample not found + + + lmms::AudioJack - - - ms + + JACK client restarted - - Show console output in Logs tab (needs engine restart) + + LMMS was kicked by JACK for some reason. Therefore the JACK backend of LMMS has been restarted. You will have to make manual connections again. - - Show a confirmation dialog before quitting + + JACK server down - - - Theme + + The JACK server seems to have been shutdown and starting a new instance failed. Therefore LMMS is unable to proceed. You should save your project and restart JACK and LMMS. - - Use Carla "PRO" theme (needs restart) + + Client name - - Color scheme: + + Channels + + + lmms::AudioOss - - Black + + Device - - System + + Channels + + + lmms::AudioPortAudio::setupWidget - - Enable experimental features + + Backend - - <b>Canvas</b> + + Device + + + lmms::AudioPulseAudio - - Bezier Lines + + Device - - Theme: + + Channels + + + lmms::AudioSdl::setupWidget - - Size: - Größe: + + Playback device + - - 775x600 + + Input device + + + lmms::AudioSndio - - 1550x1200 + + Device - - 3100x2400 + + Channels + + + lmms::AudioSoundIo::setupWidget - - 4650x3600 + + Backend - - 6200x4800 + + Device + + + lmms::AutomatableModel - - Options + + &Reset (%1%2) - - Auto-hide groups with no ports + + &Copy value (%1%2) - - Auto-select items on hover + + &Paste value (%1%2) - - Basic eye-candy (group shadows) + + &Paste value - - Render Hints + + Edit song-global automation - - Anti-Aliasing + + Remove song-global automation - - Full canvas repaints (slower, but prevents drawing issues) + + Remove all linked controls - - <b>Engine</b> + + Connected to %1 - - - Core + + Connected to controller - - Single Client + + Edit connection... - - Multiple Clients + + Remove connection - - - Continuous Rack + + Connect to controller... + + + lmms::AutomationClip - - - Patchbay + + Drag a control while pressing <%1> + + + lmms::AutomationTrack - - Audio driver: + + Automation track + + + lmms::BassBoosterControls - - Process mode: + + Frequency - - - - - Maximum number of parameters to allow in the built-in 'Edit' dialog + + Gain - - Max Parameters: + + Ratio + + + lmms::BitInvader - - ... + + Sample length - - Reset Xrun counter after project load + + Interpolation - - Plugin UIs + + Normalize + + + lmms::BitcrushControls - - - How much time to wait for OSC GUIs to ping back the host + + Input gain - - UI Bridge Timeout: + + Input noise - - Use OSC-GUI bridges when possible, this way separating the UI from DSP code + + Output gain - - Use UI bridges instead of direct handling when possible + + Output clip - - Make plugin UIs always-on-top + + Sample rate - - Make plugin UIs appear on top of Carla (needs restart) + + Stereo difference - - NOTE: Plugin-bridge UIs cannot be managed by Carla on macOS + + Levels - - - Restart the engine to load the new settings + + Rate enabled - - <b>OSC</b> + + Depth enabled + + + lmms::Clip - - Enable OSC + + Mute + + + lmms::CompressorControls - - Enable TCP port + + Threshold - - - Use specific port: + + Ratio - - Overridden by CARLA_OSC_TCP_PORT env var + + Attack - - - Use randomly assigned port + + Release - - Enable UDP port + + Knee - - Overridden by CARLA_OSC_UDP_PORT env var + + Hold - - DSSI UIs require OSC UDP port enabled + + Range - - <b>File Paths</b> + + RMS Size - - Audio - Audio + + Mid/Side + - - MIDI - MIDI + + Peak Mode + - - Used for the "audiofile" plugin + + Lookahead Length - - Used for the "midifile" plugin + + Input Balance - - - Add... + + Output Balance - - - Remove + + Limiter - - - Change... + + Output Gain - - <b>Plugin Paths</b> + + Input Gain - - LADSPA + + Blend - - DSSI + + Stereo Balance - - LV2 + + Auto Makeup Gain - - VST2 + + Audition - - VST3 + + Feedback - - SF2/3 + + Auto Attack - - SFZ + + Auto Release - - Restart Carla to find new plugins + + Lookahead - - <b>Wine</b> + + Tilt - - Executable + + Tilt Frequency - - Path to 'wine' binary: + + Stereo Link - - Prefix + + Mix + + + lmms::Controller - - Auto-detect Wine prefix based on plugin filename + + Controller %1 + + + lmms::DelayControls - - Fallback: + + Delay samples - - Note: WINEPREFIX env var is preferred over this fallback + + Feedback - - Realtime Priority + + LFO frequency - - Base priority: + + LFO amount - - WineServer priority: + + Output gain + + + lmms::DispersionControls - - These options are not available for Carla as plugin + + Amount - - <b>Experimental</b> + + Frequency - - Experimental options! Likely to be unstable! + + Resonance - - Enable plugin bridges + + Feedback - - Enable Wine bridges + + DC Offset Removal + + + lmms::DualFilterControls - - Enable jack applications + + Filter 1 enabled - - Export single plugins to LV2 + + Filter 1 type - - Load Carla backend in global namespace (NOT RECOMMENDED) + + Cutoff frequency 1 - - Fancy eye-candy (fade-in/out groups, glow connections) + + Q/Resonance 1 - - Use OpenGL for rendering (needs restart) + + Gain 1 - - High Quality Anti-Aliasing (OpenGL only) + + Mix - - Render Ardour-style "Inline Displays" + + Filter 2 enabled - - Force mono plugins as stereo by running 2 instances at the same time. -This mode is not available for VST plugins. + + Filter 2 type - - Force mono plugins as stereo + + Cutoff frequency 2 - - Prevent plugins from doing bad stuff (needs restart) + + Q/Resonance 2 - - Whenever possible, run the plugins in bridge mode. + + Gain 2 - - Run plugins in bridge mode when possible + + + Low-pass - - - - - Add Path + + + Hi-pass - - - CompressorControlDialog - - Threshold: + + + Band-pass csg - - Volume at which the compression begins to take place + + + Band-pass czpg - - Ratio: - Verhältnis: - - - - How far the compressor must turn the volume down after crossing the threshold + + + Notch - - Attack: - Anschwellzeit (attack): + + + All-pass + - - Speed at which the compressor starts to compress the audio + + + Moog - - Release: - Ausklingzeit (release): + + + 2x Low-pass + - - Speed at which the compressor ceases to compress the audio + + + RC Low-pass 12 dB/oct - - Knee: + + + RC Band-pass 12 dB/oct - - Smooth out the gain reduction curve around the threshold + + + RC High-pass 12 dB/oct - - Range: + + + RC Low-pass 24 dB/oct - - Maximum gain reduction + + + RC Band-pass 24 dB/oct - - Lookahead Length: + + + RC High-pass 24 dB/oct - - How long the compressor has to react to the sidechain signal ahead of time + + + Vocal Formant - - Hold: - Haltezeit (hold): + + + 2x Moog + - - Delay between attack and release stages + + + SV Low-pass - - RMS Size: + + + SV Band-pass - - Size of the RMS buffer + + + SV High-pass - - Input Balance: + + + SV Notch - - Bias the input audio to the left/right or mid/side + + + Fast Formant - - Output Balance: + + + Tripole + + + lmms::DynProcControls - - Bias the output audio to the left/right or mid/side + + Input gain - - Stereo Balance: + + Output gain - - Bias the sidechain signal to the left/right or mid/side + + Attack time - - Stereo Link Blend: + + Release time - - Blend between unlinked/maximum/average/minimum stereo linking modes + + Stereo mode + + + lmms::Effect - - Tilt Gain: + + Effect enabled - - Bias the sidechain signal to the low or high frequencies. -6 db is lowpass, 6 db is highpass. + + Wet/Dry mix - - Tilt Frequency: + + Gate - - Center frequency of sidechain tilt filter + + Decay + + + lmms::EffectChain - - Mix: + + Effects enabled + + + lmms::Engine - - Balance between wet and dry signals + + Generating wavetables - - Auto Attack: + + Initializing data structures - - Automatically control attack value depending on crest factor + + Opening audio and midi devices - - Auto Release: + + Launching audio engine threads + + + lmms::EnvelopeAndLfoParameters - - Automatically control release value depending on crest factor + + Env pre-delay - - Output gain - Ausgabeverstärkung + + Env attack + - - - Gain - Verstärkung + + Env hold + - - Output volume + + Env decay - - Input gain - Eingangsverstärkung + + Env sustain + - - Input volume + + Env release - - Root Mean Square + + Env mod amount - - Use RMS of the input + + LFO pre-delay - - Peak + + LFO attack - - Use absolute value of the input + + LFO frequency - - Left/Right + + LFO mod amount - - Compress left and right audio + + LFO wave shape - - Mid/Side + + LFO frequency x 100 - - Compress mid and side audio + + Modulate env amount - - Compressor + + Sample not found + + + lmms::EqControls - - Compress the audio + + Input gain - - Limiter + + Output gain - - Set Ratio to infinity (is not guaranteed to limit audio volume) + + Low-shelf gain - - Unlinked + + Peak 1 gain - - Compress each channel separately + + Peak 2 gain - - Maximum + + Peak 3 gain - - Compress based on the loudest channel + + Peak 4 gain - - Average + + High-shelf gain - - Compress based on the averaged channel volume + + HP res - - Minimum + + Low-shelf res - - Compress based on the quietest channel + + Peak 1 BW - - Blend + + Peak 2 BW - - Blend between stereo linking modes + + Peak 3 BW - - Auto Makeup Gain + + Peak 4 BW - - Automatically change makeup gain depending on threshold, knee, and ratio settings + + High-shelf res - - - Soft Clip + + LP res - - Play the delta signal + + HP freq - - Use the compressor's output as the sidechain input + + Low-shelf freq - - Lookahead Enabled + + Peak 1 freq - - Enable Lookahead, which introduces 20 milliseconds of latency + + Peak 2 freq - - - CompressorControls - - Threshold + + Peak 3 freq - - Ratio - Verhältnis + + Peak 4 freq + - - Attack - Anschwellzeit (attack) + + High-shelf freq + - - Release - Ausklingzeit (release) + + LP freq + - - Knee + + HP active - - Hold - Haltezeit (hold) + + Low-shelf active + - - Range + + Peak 1 active - - RMS Size + + Peak 2 active - - Mid/Side + + Peak 3 active - - Peak Mode + + Peak 4 active - - Lookahead Length + + High-shelf active - - Input Balance + + LP active - - Output Balance + + LP 12 - - Limiter + + LP 24 - - Output Gain - Ausgangsverstärkung + + LP 48 + - - Input Gain - Eingangsverstärkung + + HP 12 + - - Blend + + HP 24 - - Stereo Balance + + HP 48 - - Auto Makeup Gain + + Low-pass type - - Audition + + High-pass type - - Feedback - Rückkopplung + + Analyse IN + - - Auto Attack + + Analyse OUT + + + lmms::FlangerControls - - Auto Release + + Delay samples - - Lookahead + + LFO frequency - - Tilt + + Amount - - Tilt Frequency + + Stereo phase - - Stereo Link + + Feedback - - Mix - Mischung + + Noise + - - - Controller - - Controller %1 - Controller %1 + + Invert + - ControllerConnectionDialog - - - Connection Settings - Verbindungseinstellungen - + lmms::FreeBoyInstrument - - MIDI CONTROLLER - MIDI CONTROLLER + + Sweep time + - - Input channel - Eingangskanal + + Sweep direction + - - CHANNEL - KANAL + + Sweep rate shift amount + - - Input controller - Eingangscontroller + + + Wave pattern duty cycle + - - CONTROLLER - CONTROLLER + + Channel 1 volume + - - - Auto Detect - Automatische Erkennung + + + + Volume sweep direction + - - MIDI-devices to receive MIDI-events from - MIDI-Geräte, von denen MIDI-Events empfangen werden sollen + + + + Length of each step in sweep + - - USER CONTROLLER - BENUTZERDEFINIETER CONTROLLER + + Channel 2 volume + - - MAPPING FUNCTION - ABBILDUNGS-FUNKTION + + Channel 3 volume + - - OK - OK + + Channel 4 volume + - - Cancel - Abbrechen + + Shift Register width + - - LMMS - LMMS + + Right output level + - - Cycle Detected. - Schleife erkannt. + + Left output level + - - - ControllerRackView - - Controller Rack - Controller-Einheit + + Channel 1 to SO2 (Left) + - - Add - Hinzufügen + + Channel 2 to SO2 (Left) + - - Confirm Delete - Löschen bestätigen + + Channel 3 to SO2 (Left) + - - Confirm delete? There are existing connection(s) associated with this controller. There is no way to undo. - Löschen bestätigen? Es existiert/en Verbindung(en) mit dem assoziatierten Kontroller. Es gibt keine Möglichkeit es rückgängig zu machen. + + Channel 4 to SO2 (Left) + - - - ControllerView - - Controls - Regler + + Channel 1 to SO1 (Right) + - - Rename controller - Controller umbenennen + + Channel 2 to SO1 (Right) + - - Enter the new name for this controller - Geben Sie einen neuen Namen für diesen Controller ein + + Channel 3 to SO1 (Right) + - - LFO - LFO + + Channel 4 to SO1 (Right) + - - &Remove this controller - &Diesen Controller entfernen + + Treble + - - Re&name this controller - Diesen Controller umbenennen + + Bass + - CrossoverEQControlDialog + lmms::GigInstrument - - Band 1/2 crossover: - Band 1/2 Crossover: - - - - Band 2/3 crossover: - Band 2/3 Crossover: + + Bank + - - Band 3/4 crossover: + + Patch - - Band 1 gain + + Gain + + + lmms::GranularPitchShifterControls - - Band 1 gain: + + Pitch - - Band 2 gain + + Grain Size - - Band 2 gain: + + Spray - - Band 3 gain + + Jitter - - Band 3 gain: + + Twitch - - Band 4 gain + + Pitch Stereo Spread - - Band 4 gain: + + Spray Stereo - - Band 1 mute + + Shape - - Mute band 1 + + Fade Length - - Band 2 mute + + Feedback - - Mute band 2 + + Minimum Allowed Latency - - Band 3 mute + + Prefilter - - Mute band 3 + + Density - - Band 4 mute + + Glide - - Mute band 4 + + Ring Buffer Length - - - DelayControls - - Delay samples + + 5 Seconds - - Feedback - Rückkopplung + + 10 Seconds (Size) + - - LFO frequency - LFO Frequenz + + 40 Seconds (Size and Pitch) + - - LFO amount + + 40 Seconds (Size and Spray and Jitter) - - Output gain - Ausgabeverstärkung + + 120 Seconds (All of the above) + - DelayControlsDialog - - - DELAY - VERZÖGERUNG - + lmms::InstrumentFunctionArpeggio - - Delay time + + Arpeggio - - FDBK - FDBK - - - - Feedback amount + + Arpeggio type - - RATE - RATE - - - - LFO frequency - LFO Frequenz - - - - AMNT - AMNT + + Arpeggio range + - - LFO amount + + Note repeats - - Out gain + + Cycle steps - - Gain - Verstärkung + + Skip rate + - - - Dialog - - Add JACK Application + + Miss rate - - Note: Features not implemented yet are greyed out + + Arpeggio time - - Application + + Arpeggio gate - - Name: + + Arpeggio direction - - Application: + + Arpeggio mode - - From template + + Up - - Custom + + Down - - Template: + + Up and down - - Command: + + Down and up - - Setup + + Random - - Session Manager: + + Free - - None - Keiner + + Sort + - - Audio inputs: + + Sync + + + lmms::InstrumentFunctionNoteStacking - - MIDI inputs: + + Chords - - Audio outputs: + + Chord type - - MIDI outputs: + + Chord range + + + lmms::InstrumentSoundShaping - - Take control of main application window + + Envelopes/LFOs - - Workarounds + + Filter type - - Wait for external application start (Advanced, for Debug only) + + Cutoff frequency - - Capture only the first X11 Window + + Q/Resonance - - Use previous client output buffer as input for the next client + + Low-pass - - Simulate 16 JACK MIDI outputs, with MIDI channel as port index + + Hi-pass - - Error here + + Band-pass csg - - Carla Control - Connect + + Band-pass czpg - - Remote setup + + Notch - - UDP Port: + + All-pass - - Remote host: + + Moog - - TCP Port: + + 2x Low-pass - - Reported host + + RC Low-pass 12 dB/oct - - Automatic + + RC Band-pass 12 dB/oct - - Custom: + + RC High-pass 12 dB/oct - - In some networks (like USB connections), the remote system cannot reach the local network. You can specify here which hostname or IP to make the remote Carla connect to. -If you are unsure, leave it as 'Automatic'. + + RC Low-pass 24 dB/oct - - Set value - Wert setzen + + RC Band-pass 24 dB/oct + - - TextLabel + + RC High-pass 24 dB/oct - - Scale Points + + Vocal Formant - - - DriverSettingsW - - Driver Settings + + 2x Moog - - Device: + + SV Low-pass - - Buffer size: + + SV Band-pass - - Sample rate: - Sample Rate: + + SV High-pass + - - Triple buffer + + SV Notch - - Show Driver Control Panel + + Fast Formant - - Restart the engine to load the new settings + + Tripole - DualFilterControlDialog - - - - FREQ - FREQ - - - - - Cutoff frequency - Kennfrequenz - - - - - RESO - RESO - - - - - Resonance - Resonanz - - - - - GAIN - GAIN - - - - - Gain - Verstärkung - + lmms::InstrumentTrack - - MIX - MIX + + + unnamed_track + - - Mix - Mischung + + Base note + - - Filter 1 enabled - Filter 1 aktiviert + + First note + - - Filter 2 enabled - Filter 2 aktiviert + + Last note + - - Enable/disable filter 1 + + Volume - - Enable/disable filter 2 + + Panning - - - DualFilterControls - - Filter 1 enabled - Filter 1 aktiviert + + Pitch + - - Filter 1 type - Filtertyp 1 + + Pitch range + - - Cutoff frequency 1 + + Mixer channel - - Q/Resonance 1 - Q/Resonanz 1 + + Master pitch + - - Gain 1 - Verstärkung 1 + + Enable/Disable MIDI CC + - - Mix - Mischung + + CC Controller %1 + - - Filter 2 enabled - Filter 2 aktiviert + + + Default preset + + + + lmms::Keymap - - Filter 2 type - Filtertyp 2 + + empty + + + + lmms::KickerInstrument - - Cutoff frequency 2 + + Start frequency - - Q/Resonance 2 - Q/Resonanz 2 + + End frequency + - - Gain 2 - Verstärkung 2 + + Length + - - - Low-pass + + Start distortion - - - Hi-pass + + End distortion - - - Band-pass csg + + Gain - - - Band-pass czpg + + Envelope slope - - - Notch - Notch + + Noise + - - - All-pass + + Click - - - Moog - Moog + + Frequency slope + - - - 2x Low-pass + + Start from note - - - RC Low-pass 12 dB/oct + + End to note + + + lmms::LOMMControls - - - RC Band-pass 12 dB/oct + + Depth - - - RC High-pass 12 dB/oct + + Time - - - RC Low-pass 24 dB/oct + + Input Volume - - - RC Band-pass 24 dB/oct + + Output Volume - - - RC High-pass 24 dB/oct + + Upward Depth - - - Vocal Formant + + Downward Depth - - - 2x Moog - 2x Moog + + High/Mid Split + - - - SV Low-pass + + Mid/Low Split - - - SV Band-pass + + Enable High/Mid Split - - - SV High-pass + + Enable Mid/Low Split - - - SV Notch + + Enable High Band - - - Fast Formant + + Enable Mid Band - - - Tripole - Tripol + + Enable Low Band + - - - Editor - - Transport controls + + High Input Volume - - Play (Space) - Abspielen (Leertaste) + + Mid Input Volume + - - Stop (Space) - Stoppen (Leertaste) + + Low Input Volume + - - Record - Aufnahme + + High Output Volume + - - Record while playing - Aufnahme während Abspielen + + Mid Output Volume + - - Toggle Step Recording + + Low Output Volume - - - Effect - - Effect enabled - Effekt aktiviert + + Above Threshold High + - - Wet/Dry mix - Wet/Dry-Mix + + Above Threshold Mid + - - Gate - Gate + + Above Threshold Low + - - Decay - Abfallzeit + + Above Ratio High + - - - EffectChain - - Effects enabled - Effekte aktiviert + + Above Ratio Mid + - - - EffectRackView - - EFFECTS CHAIN - EFFEKT-KETTE + + Above Ratio Low + - - Add effect - Effekt hinzufügen + + Below Threshold High + - - - EffectSelectDialog - - Add effect - Effekt hinzufügen + + Below Threshold Mid + - - - Name - Name + + Below Threshold Low + - - Type - Typ + + Below Ratio High + - - Description - Beschreibung + + Below Ratio Mid + - - Author - Verfasser + + Below Ratio Low + - - - EffectView - - On/Off - An/aus + + Attack High + - - W/D - W/D + + Attack Mid + - - Wet Level: - Wet-Level: + + Attack Low + - - DECAY - DECAY + + Release High + - - Time: - Zeit: + + Release Mid + - - GATE - GATE + + Release Low + - - Gate: - Gate: + + RMS Time + - - Controls - Regler + + Knee + - - Move &up - Nach &oben verschieben + + Range + - - Move &down - Nach &unten verschieben + + Balance + - - &Remove this plugin - Plugin entfe&rnen + + Scale output volume with Depth + - - - EnvelopeAndLfoParameters - - Env pre-delay + + Stereo Link - - Env attack + + Auto Time - - Env hold + + Mix - - Env decay + + Feedback - - Env sustain + + Mid/Side - - Env release + + Lookahead - - Env mod amount + + Lookahead Length - - LFO pre-delay + + Suppress upward compression for side band + + + lmms::LadspaControl - - LFO attack + + Link channels + + + lmms::LadspaEffect - - LFO frequency - LFO Frequenz + + Unknown LADSPA plugin %1 requested. + + + + lmms::Lb302Synth - - LFO mod amount + + VCF Cutoff Frequency - - LFO wave shape + + VCF Resonance - - LFO frequency x 100 + + VCF Envelope Mod - - Modulate env amount + + VCF Envelope Decay - - - EnvelopeAndLfoView - - - DEL - DEL + + Distortion + - - - Pre-delay: + + Waveform - - - ATT - ATT + + Slide Decay + - - - Attack: - Anschwellzeit (attack): + + Slide + - - HOLD - HOLD + + Accent + - - Hold: - Haltezeit (hold): + + Dead + - - DEC - DEC + + 24dB/oct Filter + + + + lmms::LfoController - - Decay: - Abfallzeit (decay): + + LFO Controller + - - SUST - SUST + + Base value + - - Sustain: - Dauerpegel (sustain): + + Oscillator speed + - - REL - REL + + Oscillator amount + - - Release: - Ausklingzeit (release): + + Oscillator phase + - - - AMT - AMT + + Oscillator waveform + - - - Modulation amount: - Modulationsintensität: + + Frequency Multiplier + - - SPD - SPD + + Sample not found + + + + lmms::MalletsInstrument - - Frequency: - Frequenz: + + Hardness + - - FREQ x 100 - FREQ x 100 + + Position + - - Multiply LFO frequency by 100 + + Vibrato gain - - MODULATE ENV AMOUNT + + Vibrato frequency - - Control envelope amount by this LFO + + Stick mix - - ms/LFO: - ms/LFO: + + Modulator + - - Hint - Tipp + + Crossfade + - - Drag and drop a sample into this window. + + LFO speed - - - EqControls - - Input gain - Eingangsverstärkung + + LFO depth + - - Output gain - Ausgabeverstärkung + + ADSR + - - Low-shelf gain + + Pressure - - Peak 1 gain - Peak 1 gain + + Motion + - - Peak 2 gain - Peak 2 gain + + Speed + - - Peak 3 gain - Peak 3 gain + + Bowed + - - Peak 4 gain - Peak 4 gain + + Instrument + - - High-shelf gain + + Spread - - HP res - HP res + + Randomness + - - Low-shelf res + + Marimba - - Peak 1 BW - Peak 1 BW + + Vibraphone + - - Peak 2 BW - Peak 2 BW + + Agogo + - - Peak 3 BW - Peak 3 BW + + Wood 1 + - - Peak 4 BW - Peak 4 BW + + Reso + - - High-shelf res + + Wood 2 - - LP res - LP res + + Beats + - - HP freq - HP Freq + + Two fixed + - - Low-shelf freq + + Clump - - Peak 1 freq + + Tubular bells - - Peak 2 freq + + Uniform bar - - Peak 3 freq + + Tuned bar - - Peak 4 freq + + Glass - - High-shelf freq + + Tibetan bowl + + + lmms::MeterModel - - LP freq - TP Freq + + Numerator + - - HP active + + Denominator + + + lmms::Microtuner - - Low-shelf active + + Microtuner - - Peak 1 active - Peak 1 Aktiv + + Microtuner on / off + - - Peak 2 active - Peak 2 Aktive + + Selected scale + - - Peak 3 active - Peak 3 Aktive + + Selected keyboard mapping + + + + lmms::MidiController - - Peak 4 active - Peak 4 Aktive + + MIDI Controller + - - High-shelf active + + unnamed_midi_controller + + + lmms::MidiImport - - LP active - LP aktiv + + + Setup incomplete + - - LP 12 - LP 12 + + You have not set up a default soundfont in the settings dialog (Edit->Settings). Therefore no sound will be played back after importing this MIDI file. You should download a General MIDI soundfont, specify it in settings dialog and try again. + - - LP 24 - LP 24 + + You did not compile LMMS with support for SoundFont2 player, which is used to add default sound to imported MIDI files. Therefore no sound will be played back after importing this MIDI file. + - - LP 48 - LP 48 + + MIDI Time Signature Numerator + - - HP 12 - HP 12 + + MIDI Time Signature Denominator + - - HP 24 - HP 24 + + Numerator + - - HP 48 - HP 48 + + Denominator + - - Low-pass type + + + Tempo - - High-pass type + + Track + + + lmms::MidiJack - - Analyse IN - Analyse IN + + JACK server down + When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (title) + - - Analyse OUT - Analyse OUT + + The JACK server seems to be shuted down. + When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (dialog message) + - EqControlsDialog + lmms::MidiPort - - HP - HP + + Input channel + - - Low-shelf + + Output channel - - Peak 1 - Peak 1 + + Input controller + - - Peak 2 - Peak 2 + + Output controller + - - Peak 3 - Peak 3 + + Fixed input velocity + - - Peak 4 - Peak 4 + + Fixed output velocity + - - High-shelf + + Fixed output note - - LP - LP + + Output MIDI program + - - Input gain - Eingangsverstärkung + + Base velocity + - - - - Gain - Verstärkung + + Receive MIDI-events + - - Output gain - Ausgabeverstärkung + + Send MIDI-events + + + + lmms::Mixer - - Bandwidth: - Bandbreite: + + Master + - - Octave - Octave + + + + Channel %1 + - - Resonance : - Resonanz: + + Volume + - - Frequency: - Frequenz: + + Mute + - - LP group + + Solo + + + lmms::MixerRoute - - HP group + + + Amount to send from channel %1 to channel %2 - EqHandle + lmms::MonstroInstrument - - Reso: - Reso: + + Osc 1 volume + - - BW: + + Osc 1 panning - - - Freq: - Freq: + + Osc 1 coarse detune + - - - ExportProjectDialog - - Export project - Projekt exportieren + + Osc 1 fine detune left + - - Export as loop (remove extra bar) + + Osc 1 fine detune right - - Export between loop markers - Export zwischen den Loop markierungen + + Osc 1 stereo phase offset + - - Render Looped Section: + + Osc 1 pulse width - - time(s) + + Osc 1 sync send on rise - - File format settings + + Osc 1 sync send on fall - - File format: - Dateiformat: + + Osc 2 volume + - - Sampling rate: + + Osc 2 panning - - 44100 Hz - 44100 Hz + + Osc 2 coarse detune + - - 48000 Hz - 48000 Hz + + Osc 2 fine detune left + - - 88200 Hz - 88200 Hz + + Osc 2 fine detune right + - - 96000 Hz - 96000 Hz + + Osc 2 stereo phase offset + - - 192000 Hz - 192000 Hz + + Osc 2 waveform + - - Bit depth: + + Osc 2 sync hard + + + + + Osc 2 sync reverse + + + + + Osc 3 volume + + + + + Osc 3 panning - - 16 Bit integer + + Osc 3 coarse detune - - 24 Bit integer + + Osc 3 Stereo phase offset - - 32 Bit float + + Osc 3 sub-oscillator mix - - Stereo mode: - Stereo Modus: + + Osc 3 waveform 1 + - - Mono - Mono + + Osc 3 waveform 2 + - - Stereo - Stereo + + Osc 3 sync hard + - - Joint stereo + + Osc 3 Sync reverse - - Compression level: + + LFO 1 waveform - - Bitrate: - Bitrate: + + LFO 1 attack + - - 64 KBit/s - 64 KBit/s + + LFO 1 rate + - - 128 KBit/s - 128 KBit/s + + LFO 1 phase + - - 160 KBit/s - 160 KBit/s + + LFO 2 waveform + - - 192 KBit/s - 192 KBit/s + + LFO 2 attack + - - 256 KBit/s - 256 KBit/s + + LFO 2 rate + - - 320 KBit/s - 320 KBit/s + + LFO 2 phase + - - Use variable bitrate - Verwende variable Bitrate + + Env 1 pre-delay + - - Quality settings - Qualitätseinstellungen + + Env 1 attack + - - Interpolation: - Interpolation: + + Env 1 hold + - - Zero order hold + + Env 1 decay - - Sinc worst (fastest) + + Env 1 sustain - - Sinc medium (recommended) + + Env 1 release - - Sinc best (slowest) + + Env 1 slope - - Oversampling: + + Env 2 pre-delay - - 1x (None) - 1x (keine) + + Env 2 attack + - - 2x - 2x + + Env 2 hold + - - 4x - 4x + + Env 2 decay + - - 8x - 8x + + Env 2 sustain + - - Start - Start + + Env 2 release + - - Cancel - Abbrechen + + Env 2 slope + - - Could not open file - Konnte Datei nicht öffnen + + Osc 2+3 modulation + - - Could not open file %1 for writing. -Please make sure you have write permission to the file and the directory containing the file and try again! - Konnte Datei %1 nicht zum Schreiben öffnen. Bitte stellen Sie sicher, dass Sie Schreibberechtigungen für die Datei und das Verzeichnis, welches die Datei beinhaltet haben, und versuchen Sie es erneut. + + Selected view + - - Export project to %1 - Projekt nach %1 exportieren + + Osc 1 - Vol env 1 + - - ( Fastest - biggest ) - ( Schnellstes - Größtes ) + + Osc 1 - Vol env 2 + - - ( Slowest - smallest ) - (Langsamstes - Kleinstes) + + Osc 1 - Vol LFO 1 + - - Error - Fehler + + Osc 1 - Vol LFO 2 + - - Error while determining file-encoder device. Please try to choose a different output format. - Fehler beim Bestimmen des Datei-Enkoder-Geräts. Bitte wählen Sie ein anderes Ausgabeformat. + + Osc 2 - Vol env 1 + - - Rendering: %1% - Rendere: %1% + + Osc 2 - Vol env 2 + - - - Fader - - Set value - Wert setzen + + Osc 2 - Vol LFO 1 + - - Please enter a new value between %1 and %2: - Bitte geben Sie einen neuen Wert zwischen %1 und %2 ein: + + Osc 2 - Vol LFO 2 + - - - FileBrowser - - User content + + Osc 3 - Vol env 1 - - Factory content + + Osc 3 - Vol env 2 - - Browser - Browser + + Osc 3 - Vol LFO 1 + - - Search + + Osc 3 - Vol LFO 2 - - Refresh list + + Osc 1 - Phs env 1 - - - FileBrowserTreeWidget - - Send to active instrument-track - An aktive Instrumentspur senden + + Osc 1 - Phs env 2 + - - Open containing folder + + Osc 1 - Phs LFO 1 - - Song Editor - Zeige/verstecke Song-Editor + + Osc 1 - Phs LFO 2 + - - BB Editor + + Osc 2 - Phs env 1 - - Send to new AudioFileProcessor instance + + Osc 2 - Phs env 2 - - Send to new instrument track + + Osc 2 - Phs LFO 1 - - (%2Enter) + + Osc 2 - Phs LFO 2 - - Send to new sample track (Shift + Enter) + + Osc 3 - Phs env 1 - - Loading sample - Lade Sample + + Osc 3 - Phs env 2 + - - Please wait, loading sample for preview... - Bitte warten, lade Sample für Vorschau… + + Osc 3 - Phs LFO 1 + - - Error - Fehler + + Osc 3 - Phs LFO 2 + - - %1 does not appear to be a valid %2 file + + Osc 1 - Pit env 1 - - --- Factory files --- - --- Mitgelieferte Dateien --- + + Osc 1 - Pit env 2 + - - - FlangerControls - - Delay samples + + Osc 1 - Pit LFO 1 - - LFO frequency - LFO Frequenz + + Osc 1 - Pit LFO 2 + - - Seconds - Sekunde + + Osc 2 - Pit env 1 + - - Stereo phase + + Osc 2 - Pit env 2 - - Regen + + Osc 2 - Pit LFO 1 - - Noise - Rauschen + + Osc 2 - Pit LFO 2 + - - Invert - Invertieren + + Osc 3 - Pit env 1 + - - - FlangerControlsDialog - - DELAY - VERZÖGERUNG + + Osc 3 - Pit env 2 + - - Delay time: + + Osc 3 - Pit LFO 1 - - RATE - RATE + + Osc 3 - Pit LFO 2 + - - Period: - Periode: + + Osc 1 - PW env 1 + - - AMNT - AMNT + + Osc 1 - PW env 2 + - - Amount: - Menge: + + Osc 1 - PW LFO 1 + - - PHASE + + Osc 1 - PW LFO 2 - - Phase: + + Osc 3 - Sub env 1 - - FDBK - FDBK + + Osc 3 - Sub env 2 + - - Feedback amount: + + Osc 3 - Sub LFO 1 - - NOISE - NOISE + + Osc 3 - Sub LFO 2 + - - White noise amount: + + + Sine wave - - Invert - Invertieren + + Bandlimited Triangle wave + - - - FreeBoyInstrument - - Sweep time - Streichzeit + + Bandlimited Saw wave + - - Sweep direction - Streichrichtung + + Bandlimited Ramp wave + - - Sweep rate shift amount + + Bandlimited Square wave - - - Wave pattern duty cycle + + Bandlimited Moog saw wave - - Channel 1 volume - Kanal 1 Lautstärke + + + Soft square wave + - - - - Volume sweep direction - Lautstärken-Streichrichtung + + Absolute sine wave + - - - - Length of each step in sweep - Länge jedes Schritts beim Streichen + + + Exponential wave + - - Channel 2 volume - Kanal 2 Lautstärke + + White noise + - - Channel 3 volume - Kanal 3 Lautstärke + + Digital Triangle wave + - - Channel 4 volume - Kanal 4 Lautstärke + + Digital Saw wave + - - Shift Register width - Schieberegister-Breite + + Digital Ramp wave + - - Right output level + + Digital Square wave - - Left output level + + Digital Moog saw wave - - Channel 1 to SO2 (Left) - Kanal 1 zu SO2 (Links) + + Triangle wave + - - Channel 2 to SO2 (Left) - Kanal 2 zu SO2 (Links) + + Saw wave + - - Channel 3 to SO2 (Left) - Kanal 3 zu SO2 (Links) + + Ramp wave + - - Channel 4 to SO2 (Left) - Kanal 4 zu SO2 (Links) + + Square wave + - - Channel 1 to SO1 (Right) - Kanal 1 zu SO1 (Rechts) + + Moog saw wave + - - Channel 2 to SO1 (Right) - Kanal 2 zu SO1 (Rechts) + + Abs. sine wave + - - Channel 3 to SO1 (Right) - Kanal 3 zu SO1 (Rechts) + + Random + - - Channel 4 to SO1 (Right) - Kanal 4 zu SO1 (Rechts) + + Random smooth + + + + lmms::NesInstrument - - Treble - Höhe + + Channel 1 enable + - - Bass - Bass + + Channel 1 coarse detune + - - - FreeBoyInstrumentView - - Sweep time: + + Channel 1 volume - - Sweep time - Streichzeit + + Channel 1 envelope enable + - - Sweep rate shift amount: + + Channel 1 envelope loop - - Sweep rate shift amount + + Channel 1 envelope length - - - Wave pattern duty cycle: + + Channel 1 duty cycle - - - Wave pattern duty cycle + + Channel 1 sweep enable - - Square channel 1 volume: + + Channel 1 sweep amount - - Square channel 1 volume + + Channel 1 sweep rate - - - - Length of each step in sweep: - Länge jedes Schritts beim Streichen: + + Channel 2 enable + - - - - Length of each step in sweep - Länge jedes Schritts beim Streichen + + Channel 2 coarse detune + - - Square channel 2 volume: + + Channel 2 volume - - Square channel 2 volume + + Channel 2 envelope enable - - Wave pattern channel volume: + + Channel 2 envelope loop - - Wave pattern channel volume + + Channel 2 envelope length - - Noise channel volume: + + Channel 2 duty cycle - - Noise channel volume + + Channel 2 sweep enable - - SO1 volume (Right): + + Channel 2 sweep amount - - SO1 volume (Right) + + Channel 2 sweep rate - - SO2 volume (Left): + + Channel 3 enable - - SO2 volume (Left) + + Channel 3 coarse detune - - Treble: - Höhe: + + Channel 3 volume + - - Treble - Höhe + + Channel 4 enable + - - Bass: - Bass: + + Channel 4 volume + - - Bass - Bass + + Channel 4 envelope enable + - - Sweep direction - Streichrichtung + + Channel 4 envelope loop + - - - - - - Volume sweep direction - Lautstärken-Streichrichtung + + Channel 4 envelope length + - - Shift register width + + Channel 4 noise mode - - Channel 1 to SO1 (Right) - Kanal 1 zu SO1 (Rechts) + + Channel 4 frequency mode + - - Channel 2 to SO1 (Right) - Kanal 2 zu SO1 (Rechts) + + Channel 4 noise frequency + - - Channel 3 to SO1 (Right) - Kanal 3 zu SO1 (Rechts) + + Channel 4 noise frequency sweep + - - Channel 4 to SO1 (Right) - Kanal 4 zu SO1 (Rechts) + + Channel 4 quantize + - - Channel 1 to SO2 (Left) - Kanal 1 zu SO2 (Links) + + Master volume + - - Channel 2 to SO2 (Left) - Kanal 2 zu SO2 (Links) + + Vibrato + + + + lmms::OpulenzInstrument - - Channel 3 to SO2 (Left) - Kanal 3 zu SO2 (Links) + + Patch + - - Channel 4 to SO2 (Left) - Kanal 4 zu SO2 (Links) + + Op 1 attack + - - Wave pattern graph + + Op 1 decay - - - MixerLine - - Channel send amount - Kanal Sendemenge + + Op 1 sustain + - - Move &left - Nach &links verschieben + + Op 1 release + - - Move &right - Nach &rechts verschieben + + Op 1 level + - - Rename &channel - &Kanal umbenennen + + Op 1 level scaling + - - R&emove channel - Kanal &Entfernen + + Op 1 frequency multiplier + - - Remove &unused channels - Entferne &unbenutzte Kanäle + + Op 1 feedback + - - Set channel color + + Op 1 key scaling rate - - Remove channel color + + Op 1 percussive envelope - - Pick random channel color + + Op 1 tremolo - - - MixerLineLcdSpinBox - - Assign to: - Weise hinzu: + + Op 1 vibrato + - - New mixer Channel - Neuer FX-Kanal + + Op 1 waveform + - - - Mixer - - Master - Master + + Op 2 attack + - - - - Channel %1 - FX %1 + + Op 2 decay + - - Volume - Lautstärke + + Op 2 sustain + - - Mute - Stumm + + Op 2 release + - - Solo - Solo + + Op 2 level + - - - MixerView - - Mixer - Mixer + + Op 2 level scaling + - - Fader %1 - FX Schieber %1 + + Op 2 frequency multiplier + - - Mute - Stumm + + Op 2 key scaling rate + - - Mute this mixer channel - Diesen FX-Kanal stummschalten + + Op 2 percussive envelope + - - Solo - Solo + + Op 2 tremolo + - - Solo mixer channel - Solo FX-Kanal + + Op 2 vibrato + - - - MixerRoute - - - Amount to send from channel %1 to channel %2 - Anteil, der von Kanal %1 zu Kanal %2 gesendet werden soll + + Op 2 waveform + - - - GigInstrument - - Bank - Bank + + FM + - - Patch - Patch + + Vibrato depth + - - Gain - Verstärkung + + Tremolo depth + - GigInstrumentView - - - - Open GIG file - GIG Datei öffnen - + lmms::OrganicInstrument - - Choose patch - Patch wählen - - - - Gain: - Gain: + + Distortion + - - GIG Files (*.gig) - GIG Dateien (*.gig) + + Volume + - GuiApplication - - - Working directory - Arbeitsverzeichnis - + lmms::OscillatorObject - - The LMMS working directory %1 does not exist. Create it now? You can change the directory later via Edit -> Settings. - Das LMMS-Arbeitsverzeichnis %1 existiert nicht. Soll es jetzt angelegt werden? Sie können das Verzeichnis später unter Bearbeiten -> Einstellungen ändern - - - - Preparing UI - Benutzeroberfläche vorbereiten - - - - Preparing song editor - Song Editor vorbereiten - - - - Preparing mixer - Mixer vorbereiten + + Osc %1 waveform + - - Preparing controller rack - Controller-Einheit vorbereiten + + Osc %1 harmonic + - - Preparing project notes - Projektnotizen vorbereiten + + + Osc %1 volume + - - Preparing beat/bassline editor - Beat/Bassline Editor vorbreiten + + + Osc %1 panning + - - Preparing piano roll + + Osc %1 stereo detuning - - Preparing automation editor + + Osc %1 coarse detuning - - - InstrumentFunctionArpeggio - - Arpeggio - Arpeggio + + Osc %1 fine detuning left + - - Arpeggio type - Arpeggiotyp + + Osc %1 fine detuning right + - - Arpeggio range - Arpeggio-Bereich + + Osc %1 phase-offset + - - Note repeats + + Osc %1 stereo phase-detuning - - Cycle steps + + Osc %1 wave shape - - Skip rate + + Modulation type %1 + + + lmms::PatternTrack - - Miss rate + + Pattern %1 - - Arpeggio time - Arpeggio-Zeit + + Clone of %1 + + + + lmms::PeakController - - Arpeggio gate - Arpeggio-Gate + + Peak Controller + - - Arpeggio direction - Arpeggio-Richtung + + Peak Controller Bug + - - Arpeggio mode - Arpeggio-Modus + + Due to a bug in older version of LMMS, the peak controllers may not be connect properly. Please ensure that peak controllers are connected properly and re-save this file. Sorry for any inconvenience caused. + + + + lmms::PeakControllerEffectControls - - Up - Hoch + + Base value + - - Down - Runter + + Modulation amount + - - Up and down - Hoch und runter + + Attack + - - Down and up - Hoch und runter + + Release + - - Random - Zufällig + + Treshold + - - Free - Frei + + Mute output + - - Sort - Sortiert + + Absolute value + - - Sync - Synchron + + Amount multiplicator + - InstrumentFunctionArpeggioView - - - ARPEGGIO - ARPEGGIO - - - - RANGE - RANGE - + lmms::Plugin - - Arpeggio range: - Arpeggio-Bereich: + + Plugin not found + - - octave(s) - Oktave(n) + + The plugin "%1" wasn't found or could not be loaded! +Reason: "%2" + - - REP + + Error while loading plugin - - Note repeats: + + Failed to load plugin "%1"! + + + lmms::ReverbSCControls - - time(s) + + Input gain - - CYCLE - CYCLE + + Size + - - Cycle notes: + + Color - - note(s) - Notizen + + Output gain + + + + lmms::SaControls - - SKIP - SKIP + + Pause + - - Skip rate: + + Reference freeze - - - - % - % + + Waterfall + - - MISS - MISS + + Averaging + - - Miss rate: + + Stereo - - TIME - ZEIT + + Peak hold + - - Arpeggio time: - Arpeggio-Zeit: + + Logarithmic frequency + - - ms - ms + + Logarithmic amplitude + - - GATE - GATE + + Frequency range + - - Arpeggio gate: - Arpeggio-Gate: + + Amplitude range + - - Chord: - Akkord: + + FFT block size + - - Direction: - Richtung: + + FFT window type + - - Mode: - Modus: + + Peak envelope resolution + - - - InstrumentFunctionNoteStacking - - octave - Oktave + + Spectrum display resolution + - - - Major - Dur + + Peak decay multiplier + - - Majb5 - Durb5 + + Averaging weight + - - minor - moll + + Waterfall history size + - - minb5 - mollb5 + + Waterfall gamma correction + - - sus2 - sus2 + + FFT window overlap + - - sus4 - sus4 + + FFT zero padding + - - aug - aug + + + Full (auto) + - - augsus4 - augsus4 + + + + Audible + - - tri - tri + + Bass + - - 6 - 6 + + Mids + - - 6sus4 - 6sus4 + + High + - - 6add9 - 6add9 + + Extended + - - m6 - m6 + + Loud + - - m6add9 - m6add9 + + Silent + - - 7 - 7 + + (High time res.) + - - 7sus4 - 7sus4 + + (High freq. res.) + - - 7#5 - 7#5 + + Rectangular (Off) + - - 7b5 - 7b5 + + + Blackman-Harris (Default) + - - 7#9 - 7#9 + + Hamming + - - 7b9 - 7b9 + + Hanning + + + + lmms::SampleClip - - 7#5#9 - 7#5#9 + + Sample not found + + + + lmms::SampleTrack - - 7#5b9 - 7#5b9 + + Volume + - - 7b5b9 - 7b5b9 + + Panning + - - 7add11 - 7add11 + + Mixer channel + - - 7add13 - 7add13 + + + Sample track + + + + lmms::Scale - - 7#11 - 7#11 + + empty + + + + lmms::Sf2Instrument - - Maj7 - Maj7 + + Bank + - - Maj7b5 - Maj7b5 + + Patch + - - Maj7#5 - Maj7#5 + + Gain + - - Maj7#11 - Maj7#11 + + Reverb + - - Maj7add13 - Maj7add13 + + Reverb room size + - - m7 - m7 + + Reverb damping + - - m7b5 - m7b5 + + Reverb width + - - m7b9 - m7b9 + + Reverb level + - - m7add11 - m7add11 + + Chorus + - - m7add13 - m7add13 + + Chorus voices + - - m-Maj7 - m-Maj7 + + Chorus level + - - m-Maj7add11 - m-Maj7add11 + + Chorus speed + + + + + Chorus depth + - - m-Maj7add13 - m-Maj7add13 + + A soundfont %1 could not be loaded. + + + + lmms::SfxrInstrument - - 9 - 9 + + Wave + + + + lmms::SidInstrument - - 9sus4 - 9sus4 + + Cutoff frequency + - - add9 - add9 + + Resonance + - - 9#5 - 9#5 + + Filter type + - - 9b5 - 9b5 + + Voice 3 off + - - 9#11 - 9#11 + + Volume + - - 9b13 - 9b13 + + Chip model + + + + lmms::SlicerT - - Maj9 - Maj9 + + Note threshold + - - Maj9sus4 - Maj9sus4 + + FadeOut + - - Maj9#5 - Maj9#5 + + Original bpm + - - Maj9#11 - Maj9#11 + + Slice snap + - - m9 - m9 + + BPM sync + - - madd9 - madd9 + + + slice_%1 + - - m9b5 - m9b5 + + Sample not found: %1 + + + + lmms::Song - - m9-Maj7 - m9-Maj7 + + Tempo + - - 11 - 11 + + Master volume + - - 11b9 - 11b9 + + Master pitch + - - Maj11 - Maj11 + + Aborting project load + - - m11 - m11 + + Project file contains local paths to plugins, which could be used to run malicious code. + - - m-Maj11 - m-Maj11 + + Can't load project: Project file contains local paths to plugins. + - - 13 - 13 + + LMMS Error report + - - 13#9 - 13#9 + + (repeated %1 times) + - - 13b9 - 13b9 + + The following errors occurred while loading: + + + + lmms::StereoEnhancerControls - - 13b5b9 - 13b5b9 + + Width + + + + lmms::StereoMatrixControls - - Maj13 - Maj13 + + Left to Left + - - m13 - m13 + + Left to Right + - - m-Maj13 - m-Maj13 + + Right to Left + - - Harmonic minor - Harmonisches Moll + + Right to Right + + + + lmms::Track - - Melodic minor - Melodisches Moll + + Mute + - - Whole tone - Ganze Töne + + Solo + + + + lmms::TrackContainer - - Diminished - Vermindert + + Couldn't import file + - - Major pentatonic - Pentatonisches Dur + + Couldn't find a filter for importing file %1. +You should convert this file into a format supported by LMMS using another software. + - - Minor pentatonic - Pentatonisches Moll + + Couldn't open file + - - Jap in sen - Jap in sen + + Couldn't open file %1 for reading. +Please make sure you have read-permission to the file and the directory containing the file and try again! + - - Major bebop - Dur Bebop + + Loading project... + - - Dominant bebop - Dominanter Bebop + + + Cancel + - - Blues - Blues + + + Please wait... + - - Arabic - Arabisch + + Loading cancelled + - - Enigmatic - Enigmatisch + + Project loading was cancelled. + - - Neopolitan - Neopolitanisch + + Loading Track %1 (%2/Total %3) + - - Neopolitan minor - Neopolitanisches Moll + + Importing MIDI-file... + + + + lmms::TripleOscillator - - Hungarian minor - Zigeunermoll + + Sample not found + + + + lmms::VecControls - - Dorian - Dorisch + + Display persistence amount + - - Phrygian - Phrygisch + + Logarithmic scale + - - Lydian - Lydisch + + High quality + + + + lmms::VestigeInstrument - - Mixolydian - Mixolydisch + + Loading plugin + - - Aeolian - Äolisch + + Please wait while loading the VST plugin... + + + + lmms::Vibed - - Locrian - Locrisch + + String %1 volume + - - Minor - Moll + + String %1 stiffness + - - Chromatic - Chromatisch + + Pick %1 position + - - Half-Whole Diminished - Halbton-Ganzton-Leiter + + Pickup %1 position + - - 5 - 5 + + String %1 panning + - - Phrygian dominant + + String %1 detune - - Persian - Persisch + + String %1 fuzziness + - - Chords - Akkorde + + String %1 length + - - Chord type - Akkordtyp + + Impulse %1 + - - Chord range - Akkord-Bereich + + String %1 + - InstrumentFunctionNoteStackingView + lmms::VoiceObject - - STACKING - STACKING + + Voice %1 pulse width + - - Chord: - Akkord: + + Voice %1 attack + - - RANGE - RANGE + + Voice %1 decay + - - Chord range: - Akkord-Bereich: + + Voice %1 sustain + - - octave(s) - Oktave(n) + + Voice %1 release + - - - InstrumentMidiIOView - - ENABLE MIDI INPUT - MIDI-EINGANG AKTIVIEREN + + Voice %1 coarse detuning + - - ENABLE MIDI OUTPUT - MIDI-AUSGANG AKTIVIEREN + + Voice %1 wave shape + - - - CHAN - This string must be be short, its width must be less than * width of LCD spin-box of two digits + + Voice %1 sync - - - VELOC - This string must be be short, its width must be less than * width of LCD spin-box of three digits + + Voice %1 ring modulate - - PROG - This string must be be short, its width must be less than the * width of LCD spin-box of three digits + + Voice %1 filtered - - NOTE - This string must be be short, its width must be less than * width of LCD spin-box of three digits - NOTE + + Voice %1 test + + + + lmms::VstPlugin - - MIDI devices to receive MIDI events from - MIDI Geräte, von denen MIDI-Events empfangen werden sollen + + + The VST plugin %1 could not be loaded. + - - MIDI devices to send MIDI events to - MIDI-Geräte, an die MIDI-Events gesendet werden sollen + + Open Preset + - - CUSTOM BASE VELOCITY - BENUTZERDEFINIERTE GRUNDLAUTSTÄRKE + + + VST Plugin Preset (*.fxp *.fxb) + - - Specify the velocity normalization base for MIDI-based instruments at 100% note velocity. + + : default - - BASE VELOCITY - GRUNDLAUTSTÄRKE + + Save Preset + - - - InstrumentTuningView - - MASTER PITCH + + .fxp - - Enables the use of master pitch + + .FXP - - - InstrumentSoundShaping - - VOLUME - LAUTSTÄRKE + + .FXB + - - Volume - Lautstärke + + .fxb + - - CUTOFF - KENNFREQ + + Loading plugin + - - - Cutoff frequency - Kennfrequenz + + Please wait while loading VST plugin... + + + + lmms::WatsynInstrument - - RESO - RESO + + Volume A1 + - - Resonance - Resonanz + + Volume A2 + - - Envelopes/LFOs - Hüllkurven/LFOs + + Volume B1 + - - Filter type - Filtertyp + + Volume B2 + - - Q/Resonance - Q/Resonanz + + Panning A1 + - - Low-pass + + Panning A2 - - Hi-pass + + Panning B1 - - Band-pass csg + + Panning B2 - - Band-pass czpg + + Freq. multiplier A1 - - Notch - Notch + + Freq. multiplier A2 + - - All-pass + + Freq. multiplier B1 - - Moog - Moog + + Freq. multiplier B2 + - - 2x Low-pass + + Left detune A1 - - RC Low-pass 12 dB/oct + + Left detune A2 - - RC Band-pass 12 dB/oct + + Left detune B1 - - RC High-pass 12 dB/oct + + Left detune B2 - - RC Low-pass 24 dB/oct + + Right detune A1 - - RC Band-pass 24 dB/oct + + Right detune A2 - - RC High-pass 24 dB/oct + + Right detune B1 - - Vocal Formant + + Right detune B2 - - 2x Moog - 2x Moog + + A-B Mix + - - SV Low-pass + + A-B Mix envelope amount - - SV Band-pass + + A-B Mix envelope attack - - SV High-pass + + A-B Mix envelope hold - - SV Notch + + A-B Mix envelope decay - - Fast Formant + + A1-B2 Crosstalk - - Tripole - Tripol + + A2-A1 modulation + - - - InstrumentSoundShapingView - - TARGET - ZIEL + + B2-B1 modulation + - - FILTER - FILTER + + Selected graph + + + + lmms::WaveShaperControls - - FREQ - FREQ + + Input gain + - - Cutoff frequency: - Kennfrequenz: + + Output gain + + + + + lmms::Xpressive + + + Selected graph + - - Hz - Hz + + A1 + - - Q/RESO + + A2 - - Q/Resonance: + + A3 - - Envelopes, LFOs and filters are not supported by the current instrument. - Hüllkurven, LFOs und Filter sind vom aktuellen Instrument nicht unterstützt. + + W1 smoothing + - - - InstrumentTrack - - - unnamed_track - Unbenannter_Kanal + + W2 smoothing + - - Base note - Grundton + + W3 smoothing + - - First note + + Panning 1 - - Last note - Letzte Note + + Panning 2 + - - Volume - Lautstärke + + Rel trans + + + + lmms::ZynAddSubFxInstrument - - Panning - Balance + + Portamento + - - Pitch - Tonhöhe + + Filter frequency + - - Pitch range - Tonhöhenbereich + + Filter resonance + - - Mixer channel - FX-Kanal + + Bandwidth + - - Master pitch - Master-Tonhöhe + + FM gain + - - Enable/Disable MIDI CC + + Resonance center frequency - - CC Controller %1 + + Resonance bandwidth - - - Default preset - Standard-Preset + + Forward MIDI control change events + - InstrumentTrackView - - - Volume - Lautstärke - + lmms::graphModel - - Volume: - Lautstärke: + + Graph + + + + lmms::gui::AmplifierControlDialog - + VOL - VOL - - - - Panning - Balance + - - Panning: - Balance: + + Volume: + - + PAN - PAN + - - MIDI - MIDI + + Panning: + - - Input - Eingang + + LEFT + - - Output - Ausgang + + Left gain: + - - Open/Close MIDI CC Rack + + RIGHT - - Channel %1: %2 - FX %1: %2 + + Right gain: + - InstrumentTrackWindow - - - GENERAL SETTINGS - GRUNDLEGENDE EINSTELLUNGEN - - - - Volume - Lautstärke - + lmms::gui::AudioAlsaSetupWidget - - Volume: - Lautstärke: + + Device + - - VOL - VOL + + Channels + + + + lmms::gui::AudioFileProcessorView - - Panning - Balance + + Open sample + - - Panning: - Balance: + + Reverse sample + - - PAN - PAN + + Disable loop + - - Pitch - Tonhöhe + + Enable loop + - - Pitch: - Tonhöhe: + + Enable ping-pong loop + - - cents - Cent + + Continue sample playback across notes + - - PITCH - PITCH + + Amplify: + - - Pitch range (semitones) - Tonhöhenbereich (Halbtöne) + + Start point: + - - RANGE - RANGE + + End point: + - - Mixer channel - FX-Kanal + + Loopback point: + + + + lmms::gui::AudioFileProcessorWaveView - - CHANNEL - FX + + Sample length: + + + + lmms::gui::AutomationClipView - - Save current instrument track settings in a preset file - Aktuelle Instrumentenspur-Einstelungen in einer Presetdatei speichern + + Open in Automation editor + - - SAVE - SPEICHERN + + Clear + - - Envelope, filter & LFO + + Reset name - - Chord stacking & arpeggio + + Change name - - Effects - Effekte + + Set/clear record + - - MIDI - MIDI + + Flip Vertically (Visible) + - - Miscellaneous - Verschiedenes + + Flip Horizontally (Visible) + - - Save preset - Preset speichern + + %1 Connections + - - XML preset file (*.xpf) - XML Preset Datei (*.xpf) + + Disconnect "%1" + - - Plugin - Plugin + + Model is already connected to this clip. + - JackApplicationW + lmms::gui::AutomationEditor - - NSM applications cannot use abstract or absolute paths + + Edit Value - - NSM applications cannot use CLI arguments + + New outValue - - You need to save the current Carla project before NSM can be used + + New inValue + + + + + Please open an automation clip by double-clicking on it! - JuceAboutW + lmms::gui::AutomationEditorWindow - - About JUCE + + Play/pause current clip (Space) - - <b>About JUCE</b> + + Stop playing of current clip (Space) - - This program uses JUCE version 3.x.x. + + Edit actions - - JUCE (Jules' Utility Class Extensions) is an all-encompassing C++ class library for developing cross-platform software. - -It contains pretty much everything you're likely to need to create most applications, and is particularly well-suited for building highly-customised GUIs, and for handling graphics and sound. - -JUCE is licensed under the GNU Public Licence version 2.0. -One module (juce_core) is permissively licensed under the ISC. - -Copyright (C) 2017 ROLI Ltd. + + Draw mode (Shift+D) - - This program uses JUCE version %1. + + Erase mode (Shift+E) - - - Knob - - Set linear - Linear einstellen + + Draw outValues mode (Shift+C) + - - Set logarithmic - Logarithmisch einstellen + + Edit tangents mode (Shift+T) + - - - Set value - Wert setzen + + Flip vertically + - - Please enter a new value between -96.0 dBFS and 6.0 dBFS: - Bitte geben Sie einen neuen Wert zwischen -96.0 dBFS und 6.0 dBFS: ein: + + Flip horizontally + - - Please enter a new value between %1 and %2: - Bitte geben Sie einen neuen Wert zwischen %1 und %2 ein: + + Interpolation controls + - - - LadspaControl - - Link channels - Kanäle verbinden + + Discrete progression + - - - LadspaControlDialog - - Link Channels - Kanäle verbinden + + Linear progression + - - Channel - Kanal + + Cubic Hermite progression + - - - LadspaControlView - - Link channels - Kanäle verbinden + + Tension value for spline + - - Value: - Wert: + + Tension: + - - - LadspaEffect - - Unknown LADSPA plugin %1 requested. - Unbekanntes LADSPA-Plugin %1 angefordert. + + Zoom controls + - - - LcdFloatSpinBox - - Set value - Wert setzen + + Horizontal zooming + - - Please enter a new value between %1 and %2: - Bitte geben Sie einen neuen Wert zwischen %1 und %2 ein: - - - - LcdSpinBox + + Vertical zooming + + - - Set value - Wert setzen + + Quantization controls + - - Please enter a new value between %1 and %2: - Bitte geben Sie einen neuen Wert zwischen %1 und %2 ein: + + Quantization + - - - LeftRightNav - - - - Previous - Vorheriges + + Clear ghost notes + - - - - Next - Nächstes + + + Automation Editor - no clip + - - Previous (%1) - Vorheriges (%1) + + + Automation Editor - %1 + - - Next (%1) - Nächstes (%1) + + Model is already connected to this clip. + - LfoController - - - LFO Controller - LFO-Controller - + lmms::gui::BassBoosterControlDialog - - Base value - Grundwert + + FREQ + - - Oscillator speed - Oszillator-Geschwindigkeit + + Frequency: + - - Oscillator amount - Oszillator-Stärke + + GAIN + - - Oscillator phase - Oszillator-Phase + + Gain: + - - Oscillator waveform - Oszillator-Wellenform + + RATIO + - - Frequency Multiplier - Frequenzmultiplikator + + Ratio: + - LfoControllerDialog + lmms::gui::BitInvaderView - - LFO - LFO - - - - BASE - BASE + + Sample length + - - Base: - Basis + + Draw your own waveform here by dragging your mouse on this graph. + - - FREQ - FREQ + + + Sine wave + - - LFO frequency: - LFO Frequenz: + + + Triangle wave + - - AMNT - AMNT + + + Saw wave + - - Modulation amount: - Modulationsintensität: + + + Square wave + - - PHS - PHS + + + White noise + - - Phase offset: - Phasenverschiebung: + + + User-defined wave + - - degrees - Grad + + + Smooth waveform + - - Sine wave - Sinuswelle + + Interpolation + - - Triangle wave - Dreieckwelle + + Normalize + + + + lmms::gui::BitcrushControlDialog - - Saw wave - Sägezahnwelle + + IN + - - Square wave - Rechteckwelle + + OUT + - - Moog saw wave - Moog-Sägezahnwelle + + + GAIN + - - Exponential wave - Exponentielle Welle + + Input gain: + - - White noise - Weißes Rauschen + + NOISE + - - User-defined shape. -Double click to pick a file. + + Input noise: - - Mutliply modulation frequency by 1 - Multipliziere Modulationsfrequenz mit 1 + + Output gain: + - - Mutliply modulation frequency by 100 - Multipliziere Modulationsfrequenz mit 100 + + CLIP + - - Divide modulation frequency by 100 - Dividiere Modulationsfrequenz mit 100 + + Output clip: + - - - Engine - - Generating wavetables - Wellenformtabllen erzeugen + + Rate enabled + - - Initializing data structures - Datenstrukturen initialisieren + + Enable sample-rate crushing + - - Opening audio and midi devices - Audio und MIDI-Geräte öffnen + + Depth enabled + - - Launching mixer threads + + Enable bit-depth crushing - - - MainWindow - - Configuration file - Konfigurationsdatei + + FREQ + - - Error while parsing configuration file at line %1:%2: %3 - Fehler beim Parsen der Konfigurationsdatei in Zeile %1:%2: %3 + + Sample rate: + - - Could not open file - Konnte Datei nicht öffnen + + STEREO + - - Could not open file %1 for writing. -Please make sure you have write permission to the file and the directory containing the file and try again! - Konnte Datei %1 nicht zum Schreiben öffnen. Bitte stellen Sie sicher, dass Sie Schreibberechtigungen für die Datei und das Verzeichnis, welches die Datei beinhaltet haben, und versuchen Sie es erneut. + + Stereo difference: + - - Project recovery - Project wiederherstellen + + QUANT + - - There is a recovery file present. It looks like the last session did not end properly or another instance of LMMS is already running. Do you want to recover the project of this session? - Es liegt eine Wiederherstellungsdatei vor. Es scheint, dass die letzte Sitzung nicht ordnungsgemäß beendet wurde oder eine andere Instanz von LMMS läuft bereits. Wollen Sie das Projekt von dieser Sitzung wiederherstellen? + + Levels: + + + + lmms::gui::CPULoadWidget - - - Recover - Wiederherstellen + + DSP total: %1% + - - Recover the file. Please don't run multiple instances of LMMS when you do this. - Wiederherstellen der Datei. Bitte führen Sie nicht mehrere Instanzen von LMMS aus, wenn Sie das tun. + + - Notes and setup: %1% + - - - Discard - Verwerfen + + - Instruments: %1% + - - Launch a default session and delete the restored files. This is not reversible. - Starten einer Standardsitzung und löschen der wiederhergestellten Dateien. Diese Aktion kann nicht rückgängig gemacht werden. + + - Effects: %1% + - - Version %1 - Version %1 + + - Mixing: %1% + + + + lmms::gui::CarlaInstrumentView - - Preparing plugin browser - Plugin Browser vorbereiten + + Show GUI + - - Preparing file browsers - Dateimanger vorbereiten + + Click here to show or hide the graphical user interface (GUI) of Carla. + - - My Projects - Meine Projekte + + Params + - - My Samples - Meine Samples + + Available from Carla version 2.1 and up. + + + + lmms::gui::CarlaParamsView - - My Presets - Meine Presets + + Search.. + - - My Home - Mein Home + + Clear filter text + - - Root directory - Grundverzeichniss + + Only show knobs with a connection. + - - Volumes - Volumes + + - Parameters + + + + lmms::gui::ClipView - - My Computer - Mein Computer + + Current position + - - &File - &Datei + + Current length + - - &New - &Neu + + + %1:%2 (%3:%4 to %5:%6) + - - &Open... - Ö&ffnen... + + Press <%1> and drag to make a copy. + - - Loading background picture - Lade Hintegrundbild + + Press <%1> for free resizing. + - - &Save - &Speichern + + Hint + - - Save &As... - Speichern &als... + + Delete (middle mousebutton) + - - Save as New &Version - Speichern als neue &Version + + Delete selection (middle mousebutton) + - - Save as default template - Speichere als Standard Vorlage + + Cut + - - Import... - Importieren... + + Cut selection + - - E&xport... - E&xportieren... + + Merge Selection + - - E&xport Tracks... - E&xport Tracks... + + Copy + - - Export &MIDI... - Exportiere &MIDI + + Copy selection + - - &Quit - &Beenden + + Paste + - - &Edit - &Bearbeiten + + Mute/unmute (<%1> + middle click) + - - Undo - Rückgängig + + Mute/unmute selection (<%1> + middle click) + - - Redo - Wiederholen + + Clip color + - - Settings - Einstellungen + + Change + - - &View - &Ansicht + + Reset + - - &Tools - &Werkzeuge + + Pick random + + + + lmms::gui::CompressorControlDialog - - &Help - &Hilfe + + Threshold: + - - Online Help - Online Hilfe + + Volume at which the compression begins to take place + - - Help - Hilfe + + Ratio: + - - About - Über + + How far the compressor must turn the volume down after crossing the threshold + - - Create new project - Neues Projekt erstellen + + Attack: + - - Create new project from template - Neues Projekt aus Vorlage erstellen + + Speed at which the compressor starts to compress the audio + - - Open existing project - Existierendes Projekt öffnen + + Release: + - - Recently opened projects - Zuletzt geöffnete Projekte + + Speed at which the compressor ceases to compress the audio + - - Save current project - Aktuelles Projekt speichern + + Knee: + - - Export current project - Aktuelles Projekt exportieren + + Smooth out the gain reduction curve around the threshold + - - Metronome - Metronom + + Range: + - - - Song Editor - Zeige/verstecke Song-Editor + + Maximum gain reduction + - - - Beat+Bassline Editor - Zeige/verstecke Beat+Bassline Editor + + Lookahead Length: + - - - Piano Roll - Zeige/verstecke Piano-Roll + + How long the compressor has to react to the sidechain signal ahead of time + - - - Automation Editor - Zeige/Verstecke Automation-Editor + + Hold: + - - - Mixer - Zeige/verstecke Mixer + + Delay between attack and release stages + - - Show/hide controller rack - Zeige/Verstecke Kontroller Rack + + RMS Size: + - - Show/hide project notes - Zeige/Verstecke Projekt Notizen + + Size of the RMS buffer + - - Untitled - Unbenannt + + Input Balance: + - - Recover session. Please save your work! - Session Wiederherstellung. Bitte speichere Deine Arbeit! + + Bias the input audio to the left/right or mid/side + - - LMMS %1 - LMMS %1 + + Output Balance: + - - Recovered project not saved - Wiederhergestelltes Projekt nicht gespeichert + + Bias the output audio to the left/right or mid/side + - - This project was recovered from the previous session. It is currently unsaved and will be lost if you don't save it. Do you want to save it now? + + Stereo Balance: - - Project not saved - Projekt nicht gespeichert + + Bias the sidechain signal to the left/right or mid/side + - - The current project was modified since last saving. Do you want to save it now? - Das aktuelle Projekt wurde seit dem letzten Speichern geändert. Wollen Sie es jetzt speichern? + + Stereo Link Blend: + - - Open Project - Projekt öffnen + + Blend between unlinked/maximum/average/minimum stereo linking modes + - - LMMS (*.mmp *.mmpz) - LMMS (*.mmp *.mmpz) + + Tilt Gain: + - - Save Project - Projekt speichern + + Bias the sidechain signal to the low or high frequencies. -6 db is lowpass, 6 db is highpass. + - - LMMS Project - LMMS Projekt + + Tilt Frequency: + - - LMMS Project Template - LMMS Projektvorlage + + Center frequency of sidechain tilt filter + - - Save project template - Projektvorlage speichern + + Mix: + - - Overwrite default template? - Standard Vorlage überschreiben? + + Balance between wet and dry signals + - - This will overwrite your current default template. - Das wird Ihre aktuelle Standardvorlage überschreiben. + + Auto Attack: + - - Help not available - Hilfe nicht verfügbar + + Automatically control attack value depending on crest factor + - - Currently there's no help available in LMMS. -Please visit http://lmms.sf.net/wiki for documentation on LMMS. - Derzeit ist in LMMS keine Hilfe verfügbar. -Bitte besuchen Sie http://lmms.sf.net/wiki für Dokumentationen über LMMS. + + Auto Release: + - - Controller Rack - Zeige/verstecke Controller-Rack + + Automatically control release value depending on crest factor + - - Project Notes - Zeige/verstecke Projekt-Notizen + + Output gain + - - Fullscreen + + + Gain - - Volume as dBFS + + Output volume - - Smooth scroll - Sanftes Scrollen + + Input gain + - - Enable note labels in piano roll - Notenbeschriftung in Piano-Roll aktivieren + + Input volume + - - MIDI File (*.mid) - MIDI Datei (*.mid) + + Root Mean Square + - - - untitled - Unbenannt + + Use RMS of the input + - - - Select file for project-export... - Datei für Projekt-Export wählen... + + Peak + - - Select directory for writing exported tracks... + + Use absolute value of the input - - Save project - Projekt speichern + + Left/Right + - - Project saved - Projekt gespeichert + + Compress left and right audio + - - The project %1 is now saved. - Das Projekt %1 ist nun gespeichert. + + Mid/Side + - - Project NOT saved. - Projekt NICHT gespeichert. + + Compress mid and side audio + - - The project %1 was not saved! - Das Projekt %1 wurde nicht gespeichert! + + Compressor + - - Import file - Importiere Datei + + Compress the audio + - - MIDI sequences - MIDI Sequenzen + + Limiter + - - Hydrogen projects - Hydrogen-Projekte + + Set Ratio to infinity (is not guaranteed to limit audio volume) + - - All file types - Alle Dateitypen + + Unlinked + - - - MeterDialog - - - Meter Numerator - Takt/Zähler + + Compress each channel separately + - - Meter numerator - Taktzähler + + Maximum + - - - Meter Denominator - Takt/Nenner + + Compress based on the loudest channel + - - Meter denominator - Taktnenner + + Average + - - TIME SIG - TAKTART + + Compress based on the averaged channel volume + - - - MeterModel - - Numerator - Zähler + + Minimum + - - Denominator - Nenner + + Compress based on the quietest channel + - - - MidiCCRackView - - - MIDI CC Rack - %1 + + Blend - - MIDI CC Knobs: + + Blend between stereo linking modes - - CC %1 + + Auto Makeup Gain - - - MidiController - - MIDI Controller - MIDI-Controller + + Automatically change makeup gain depending on threshold, knee, and ratio settings + - - unnamed_midi_controller - unbenannter_midi_controller + + + Soft Clip + - - - MidiImport - - - Setup incomplete - Unvollständige Einrichtung + + Play the delta signal + - - You have not set up a default soundfont in the settings dialog (Edit->Settings). Therefore no sound will be played back after importing this MIDI file. You should download a General MIDI soundfont, specify it in settings dialog and try again. - 97% match -Sie haben keine Standard-Soundfont im Einstellungsdialog (Bearbeiten->Einstellungen) festgelegt. Deshalb werden Sie nach dem Import der MIDI-Datei während der Wiedergabe nichts hören. Sie sollten eine General-MIDI-Soundfont herunterladen, diese in dem Einstellungdialog angeben und es erneut versuchen. + + Use the compressor's output as the sidechain input + - - You did not compile LMMS with support for SoundFont2 player, which is used to add default sound to imported MIDI files. Therefore no sound will be played back after importing this MIDI file. - Sie haben LMMS ohne das SoundFont2-Player-Plugin gebaut. Dieses Plugin wird normalerweise benutzt, um Standardklänge bei importierten MIDI-Dateien einzurichten. Aus diesem Grund werden Sie nach dem Import der MIDI-Datei nichts hören. + + Lookahead Enabled + - - MIDI Time Signature Numerator + + Enable Lookahead, which introduces 20 milliseconds of latency + + + lmms::gui::ControllerConnectionDialog - - MIDI Time Signature Denominator + + Connection Settings - - Numerator - Zähler + + MIDI CONTROLLER + - - Denominator - Nenner + + Input channel + - - Track - Spur + + CHANNEL + - - - MidiJack - - JACK server down - When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (title) - JACK-Server nicht erreichbar + + Input controller + - - The JACK server seems to be shuted down. - When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (dialog message) - Der JACK-Server scheint heruntergefahren zu sein. + + CONTROLLER + - - - MidiPatternW - - MIDI Pattern + + + Auto Detect - - Time Signature: + + MIDI-devices to receive MIDI-events from - - - - 1/4 + + USER CONTROLLER - - 2/4 + + MAPPING FUNCTION - - 3/4 + + OK - - 4/4 + + Cancel - - 5/4 + + LMMS - - 6/4 + + Cycle Detected. + + + lmms::gui::ControllerRackView - - Measures: + + Controller Rack - - - - 1 + + Add - - 2 + + Confirm Delete - - 3 + + Confirm delete? There are existing connection(s) associated with this controller. There is no way to undo. + + + lmms::gui::ControllerView - - 4 + + Controls - - 5 - 5 + + Rename controller + - - 6 - 6 + + Enter the new name for this controller + - - 7 - 7 + + LFO + - - 8 + + Move &up - - 9 - 9 + + Move &down + - - 10 + + &Remove this controller - - 11 - 11 + + Re&name this controller + + + + lmms::gui::CrossoverEQControlDialog - - 12 + + Band 1/2 crossover: - - 13 - 13 + + Band 2/3 crossover: + - - 14 + + Band 3/4 crossover: - - 15 + + Band 1 gain - - 16 + + Band 1 gain: - - Default Length: + + Band 2 gain - - - 1/16 + + Band 2 gain: - - - 1/15 + + Band 3 gain - - - 1/12 + + Band 3 gain: - - - 1/9 + + Band 4 gain - - - 1/8 + + Band 4 gain: - - - 1/6 + + Band 1 mute - - - 1/3 + + Mute band 1 - - - 1/2 + + Band 2 mute - - Quantize: + + Mute band 2 - - &File - &Datei + + Band 3 mute + - - &Edit - &Bearbeiten + + Mute band 3 + - - &Quit - &Beenden + + Band 4 mute + - - &Insert Mode + + Mute band 4 + + + lmms::gui::DelayControlsDialog - - F + + DELAY - - &Velocity Mode + + Delay time - - D + + FDBK - - Select All + + Feedback amount - - A + + RATE - - - MidiPort - - Input channel - Eingangskanal + + LFO frequency + - - Output channel - Ausgangskanal + + AMNT + - - Input controller - Eingangscontroller + + LFO amount + - - Output controller - Ausgangscontroller + + Out gain + - - Fixed input velocity - Feste Eingangslautstärke + + Gain + + + + lmms::gui::DispersionControlDialog - - Fixed output velocity - Feste Ausgangslautstärke + + AMOUNT + - - Fixed output note - Feste Ausgangnote + + Number of all-pass filters + - - Output MIDI program - Ausgangs-MIDI-Programm + + FREQ + - - Base velocity - Grundlautstärke + + Frequency: + - - Receive MIDI-events - MIDI-Ereignisse empfangen + + RESO + - - Send MIDI-events - MIDI-Ereignisse senden + + Resonance: + - - - MidiSetupWidget - - Device - Gerät + + FEED + - - - MonstroInstrument - - Osc 1 volume - Oszilator 1 Lautstärke + + Feedback: + - - Osc 1 panning - Oszillator 1 Balance + + DC Offset Removal + - - Osc 1 coarse detune + + Remove DC Offset + + + lmms::gui::DualFilterControlDialog - - Osc 1 fine detune left + + + FREQ - - Osc 1 fine detune right + + + Cutoff frequency - - Osc 1 stereo phase offset + + + RESO - - Osc 1 pulse width + + + Resonance - - Osc 1 sync send on rise + + + GAIN - - Osc 1 sync send on fall + + + Gain - - Osc 2 volume + + MIX - - Osc 2 panning + + Mix - - Osc 2 coarse detune + + Filter 1 enabled - - Osc 2 fine detune left + + Filter 2 enabled - - Osc 2 fine detune right + + Enable/disable filter 1 - - Osc 2 stereo phase offset + + Enable/disable filter 2 + + + lmms::gui::DynProcControlDialog - - Osc 2 waveform + + INPUT - - Osc 2 sync hard + + Input gain: - - Osc 2 sync reverse + + OUTPUT - - Osc 3 volume + + Output gain: - - Osc 3 panning + + ATTACK - - Osc 3 coarse detune + + Peak attack time: - - Osc 3 Stereo phase offset - Oszillator 3 Stereo Phasenverschiebung + + RELEASE + - - Osc 3 sub-oscillator mix + + Peak release time: - - Osc 3 waveform 1 + + + Reset wavegraph - - Osc 3 waveform 2 + + + Smooth wavegraph - - Osc 3 sync hard + + + Increase wavegraph amplitude by 1 dB - - Osc 3 Sync reverse + + + Decrease wavegraph amplitude by 1 dB - - LFO 1 waveform + + Stereo mode: maximum - - LFO 1 attack + + Process based on the maximum of both stereo channels - - LFO 1 rate + + Stereo mode: average - - LFO 1 phase + + Process based on the average of both stereo channels - - LFO 2 waveform + + Stereo mode: unlinked - - LFO 2 attack + + Process each stereo channel independently + + + lmms::gui::Editor - - LFO 2 rate + + Transport controls - - LFO 2 phase + + Play (Space) - - Env 1 pre-delay + + Stop (Space) - - Env 1 attack + + Record - - Env 1 hold + + Record while playing - - Env 1 decay + + Toggle Step Recording + + + lmms::gui::EffectRackView - - Env 1 sustain + + EFFECTS CHAIN - - Env 1 release + + Add effect + + + lmms::gui::EffectSelectDialog - - Env 1 slope + + Add effect - - Env 2 pre-delay + + + Name - - Env 2 attack + + Type - - Env 2 hold + + All - - Env 2 decay + + Search - - Env 2 sustain + + Description - - Env 2 release + + Author + + + lmms::gui::EffectView - - Env 2 slope + + On/Off - - Osc 2+3 modulation + + W/D - - Selected view - Ausgewählte Ansicht + + Wet Level: + - - Osc 1 - Vol env 1 + + DECAY - - Osc 1 - Vol env 2 + + Time: - - Osc 1 - Vol LFO 1 + + GATE - - Osc 1 - Vol LFO 2 + + Gate: - - Osc 2 - Vol env 1 + + Controls - - Osc 2 - Vol env 2 + + Move &up - - Osc 2 - Vol LFO 1 + + Move &down - - Osc 2 - Vol LFO 2 + + &Remove this plugin + + + lmms::gui::EnvelopeAndLfoView - - Osc 3 - Vol env 1 + + + AMT - - Osc 3 - Vol env 2 + + + Modulation amount: - - Osc 3 - Vol LFO 1 + + + DEL - - Osc 3 - Vol LFO 2 + + + Pre-delay: - - Osc 1 - Phs env 1 + + + ATT - - Osc 1 - Phs env 2 + + + Attack: - - Osc 1 - Phs LFO 1 + + HOLD - - Osc 1 - Phs LFO 2 + + Hold: - - Osc 2 - Phs env 1 + + DEC - - Osc 2 - Phs env 2 + + Decay: - - Osc 2 - Phs LFO 1 + + SUST - - Osc 2 - Phs LFO 2 + + Sustain: - - Osc 3 - Phs env 1 + + REL - - Osc 3 - Phs env 2 + + Release: - - Osc 3 - Phs LFO 1 + + SPD - - Osc 3 - Phs LFO 2 + + Frequency: - - Osc 1 - Pit env 1 + + FREQ x 100 - - Osc 1 - Pit env 2 + + Multiply LFO frequency by 100 - - Osc 1 - Pit LFO 1 + + MOD ENV AMOUNT - - Osc 1 - Pit LFO 2 + + Control envelope amount by this LFO - - Osc 2 - Pit env 1 + + Hint - - Osc 2 - Pit env 2 + + Drag and drop a sample into this window. + + + lmms::gui::EnvelopeGraph - - Osc 2 - Pit LFO 1 + + Scaling + + + + + Dynamic - - Osc 2 - Pit LFO 2 + + Uses absolute spacings but switches to relative spacing if it's running out of space - - Osc 3 - Pit env 1 + + Absolute - - Osc 3 - Pit env 2 + + Provides enough potential space for each segment but does not scale - - Osc 3 - Pit LFO 1 + + Relative - - Osc 3 - Pit LFO 2 + + Always uses all of the available space to display the envelope graph + + + lmms::gui::EqControlsDialog - - Osc 1 - PW env 1 + + HP - - Osc 1 - PW env 2 + + Low-shelf - - Osc 1 - PW LFO 1 + + Peak 1 - - Osc 1 - PW LFO 2 + + Peak 2 - - Osc 3 - Sub env 1 + + Peak 3 - - Osc 3 - Sub env 2 + + Peak 4 - - Osc 3 - Sub LFO 1 + + High-shelf - - Osc 3 - Sub LFO 2 + + LP - - - Sine wave - Sinuswelle + + Input gain + - - Bandlimited Triangle wave - Bandlimittierte Dreieckwelle + + + + Gain + - - Bandlimited Saw wave - Bandbegrenzte Sägezahnwelle + + Output gain + - - Bandlimited Ramp wave - Bandbegrenzte Sägezahnwelle + + Bandwidth: + - - Bandlimited Square wave - Bandbegrenzte Rechteckwelle + + Octave + - - Bandlimited Moog saw wave - Bandbegrenzte Moog-Sägezahnwelle + + Resonance: + - - - Soft square wave - Weiche Rechteckwelle + + Frequency: + - - Absolute sine wave - Absolute Sinuswelle + + LP group + - - - Exponential wave - Exponentielle Welle + + HP group + + + + lmms::gui::EqHandle - - White noise - Weißes Rauschen + + Reso: + - - Digital Triangle wave - Digitale Dreieckwelle + + BW: + - - Digital Saw wave - Digitale Sägezahnwelle + + + Freq: + + + + lmms::gui::ExportProjectDialog - - Digital Ramp wave - Digitale Sägezahnwelle + + Could not open file + - - Digital Square wave - Digitale Rechteckwelle + + Could not open file %1 for writing. +Please make sure you have write permission to the file and the directory containing the file and try again! + - - Digital Moog saw wave - Digitale Moog-Sägezahnwelle + + Export project to %1 + - - Triangle wave - Dreieckwelle + + ( Fastest - biggest ) + - - Saw wave - Sägezahnwelle + + ( Slowest - smallest ) + - - Ramp wave - Sägezahnwelle + + Error + - - Square wave - Rechteckwelle + + Error while determining file-encoder device. Please try to choose a different output format. + - - Moog saw wave - Moog-Sägezahnwelle + + Rendering: %1% + + + + lmms::gui::Fader - - Abs. sine wave - Abs. Sinuswelle + + Set value + - - Random - Zufällig + + Please enter a new value between %1 and %2: + - - Random smooth - Zufällig gleitend + + Volume: %1 dBFS + - MonstroView - - - Operators view - Operator-Ansicht - + lmms::gui::FileBrowser - - Matrix view - Matrix-Ansicht + + Browser + - - - - Volume - Lautstärke + + Search + - - - - Panning - Balance + + Refresh list + - - - - Coarse detune + + User content - - - - semitones - Halbtöne + + Factory content + - - - Fine tune left + + Hidden content + + + lmms::gui::FileBrowserTreeWidget - - - - - cents - Cent + + Send to active instrument-track + - - - Fine tune right + + Open containing folder - - - - Stereo phase offset + + Song Editor - - - - - - deg - deg + + Pattern Editor + - - Pulse width - Pulsbreite + + Send to new AudioFileProcessor instance + - - Send sync on pulse rise + + Send to new instrument track - - Send sync on pulse fall + + (%2Enter) - - Hard sync oscillator 2 + + Send to new sample track (Shift + Enter) - - Reverse sync oscillator 2 + + Loading sample - - Sub-osc mix + + Please wait, loading sample for preview... - - Hard sync oscillator 3 + + Error - - Reverse sync oscillator 3 + + %1 does not appear to be a valid %2 file - - - - - Attack - Anschwellzeit (attack) + + --- Factory files --- + + + + lmms::gui::FileDialog - - - Rate - Rate + + %1 files + - - - Phase - Phase + + All audio files + - - - Pre-delay + + Other files + + + lmms::gui::FlangerControlsDialog - - - Hold - Haltezeit (hold) + + DELAY + - - - Decay - Abfallzeit + + Delay time: + - - - Sustain - Haltepegel (sustain) + + RATE + - - - Release - Ausklingzeit (release) + + Period: + - - - Slope + + AMNT - - Mix osc 2 with osc 3 + + Amount: - - Modulate amplitude of osc 3 by osc 2 + + PHASE - - Modulate frequency of osc 3 by osc 2 + + Phase: - - Modulate phase of osc 3 by osc 2 + + FDBK - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Modulation amount - Modulationsintensität + + + Feedback amount: + - - - MultitapEchoControlDialog - - Length - Länge + + NOISE + - - Step length: + + White noise amount: - - Dry - Trocken + + Invert + + + + lmms::gui::FloatModelEditorBase - - Dry gain: + + Set linear - - Stages - Stufen + + Set logarithmic + - - Low-pass stages: + + + Set value - - Swap inputs - Eingänge vertauschen + + Please enter a new value between -96.0 dBFS and 6.0 dBFS: + - - Swap left and right input channels for reflections + + Please enter a new value between %1 and %2: - NesInstrument + lmms::gui::FreeBoyInstrumentView - - Channel 1 coarse detune + + Sweep time: - - Channel 1 volume - Kanal 1 Lautstärke + + Sweep time + - - Channel 1 envelope length + + Sweep rate shift amount: - - Channel 1 duty cycle + + Sweep rate shift amount - - Channel 1 sweep amount + + + Wave pattern duty cycle: - - Channel 1 sweep rate + + + Wave pattern duty cycle - - Channel 2 Coarse detune - Kanal 2 Grob-Verstimmung + + Square channel 1 volume: + - - Channel 2 Volume - Kanal 2 Lautstärke + + Square channel 1 volume + - - Channel 2 envelope length + + + + Length of each step in sweep: - - Channel 2 duty cycle + + + + Length of each step in sweep - - Channel 2 sweep amount + + Square channel 2 volume: - - Channel 2 sweep rate + + Square channel 2 volume - - Channel 3 coarse detune + + Wave pattern channel volume: - - Channel 3 volume - Kanal 3 Lautstärke + + Wave pattern channel volume + - - Channel 4 volume - Kanal 4 Lautstärke + + Noise channel volume: + - - Channel 4 envelope length + + Noise channel volume - - Channel 4 noise frequency + + SO1 volume (Right): - - Channel 4 noise frequency sweep + + SO1 volume (Right) - - Master volume - Master-Lautstärke + + SO2 volume (Left): + - - Vibrato - Vibrato + + SO2 volume (Left) + - - - NesInstrumentView - - - - - Volume - Lautstärke + + Treble: + - - - - Coarse detune + + Treble - - - - Envelope length + + Bass: - - Enable channel 1 - Kanal 1 aktivieren + + Bass + - - Enable envelope 1 + + Sweep direction - - Enable envelope 1 loop + + + + + + Volume sweep direction - - Enable sweep 1 + + Shift register width - - - Sweep amount + + Channel 1 to SO1 (Right) - - - Sweep rate + + Channel 2 to SO1 (Right) - - - 12.5% Duty cycle - 12.5% Tastverhältnis + + Channel 3 to SO1 (Right) + - - - 25% Duty cycle - 25% Tastverhältnis + + Channel 4 to SO1 (Right) + - - - 50% Duty cycle - 50% Tastverhältnis + + Channel 1 to SO2 (Left) + - - - 75% Duty cycle - 75% Tastverhältnis + + Channel 2 to SO2 (Left) + - - Enable channel 2 - Kanal 2 aktivieren + + Channel 3 to SO2 (Left) + - - Enable envelope 2 + + Channel 4 to SO2 (Left) - - Enable envelope 2 loop + + Wave pattern graph + + + lmms::gui::GigInstrumentView - - Enable sweep 2 + + + Open GIG file - - Enable channel 3 - Kanal 3 aktivieren + + Choose patch + - - Noise Frequency - Rauschfrequenz + + Gain: + - - Frequency sweep + + GIG Files (*.gig) + + + lmms::gui::GranularPitchShifterControlDialog - - Enable channel 4 - Kanal 4 aktivieren + + Grain Size: + - - Enable envelope 4 + + Spray: - - Enable envelope 4 loop + + Jitter: - - Quantize noise frequency when using note frequency + + Twitch: - - Use note frequency for noise + + Spray Stereo Spread: - - Noise mode - Rausch Modus + + Grain Shape: + - - Master volume - Master-Lautstärke + + Fade Length: + - - Vibrato - Vibrato + + Feedback: + - - - OpulenzInstrument - - Patch - Patch + + Minimum Allowed Latency: + - - Op 1 attack + + Density: - - Op 1 decay + + Glide: - - Op 1 sustain + + + Pitch - - Op 1 release + + + Pitch Stereo Spread - - Op 1 level + + Open help window - - Op 1 level scaling + + + Prefilter + + + lmms::gui::GuiApplication - - Op 1 frequency multiplier + + Working directory - - Op 1 feedback + + The LMMS working directory %1 does not exist. Create it now? You can change the directory later via Edit -> Settings. - - Op 1 key scaling rate + + Preparing UI - - Op 1 percussive envelope + + Preparing song editor - - Op 1 tremolo + + Preparing mixer - - Op 1 vibrato + + Preparing controller rack - - Op 1 waveform + + Preparing project notes - - Op 2 attack + + Preparing microtuner - - Op 2 decay + + Preparing pattern editor - - Op 2 sustain + + Preparing piano roll - - Op 2 release + + Preparing automation editor + + + lmms::gui::InstrumentFunctionArpeggioView - - Op 2 level + + ARPEGGIO - - Op 2 level scaling + + RANGE - - Op 2 frequency multiplier + + Arpeggio range: + + + + + octave(s) + + + + + REP - - Op 2 key scaling rate + + Note repeats: - - Op 2 percussive envelope + + time(s) - - Op 2 tremolo + + CYCLE - - Op 2 vibrato + + Cycle notes: - - Op 2 waveform + + note(s) - - FM - FM + + SKIP + - - Vibrato depth + + Skip rate: - - Tremolo depth + + + + % - - - OpulenzInstrumentView - - - Attack - Anschwellzeit (attack) + + MISS + - - - Decay - Abfallzeit + + Miss rate: + - - - Release - Ausklingzeit (release) + + TIME + - - - Frequency multiplier + + Arpeggio time: - - - OscillatorObject - - Osc %1 waveform - Oszillator %1 Wellenform + + ms + - - Osc %1 harmonic - Oszillator %1 Harmonie + + GATE + - - - Osc %1 volume - Oszillator %1 Lautstärke + + Arpeggio gate: + - - - Osc %1 panning - Oszillator %1 Balance + + Chord: + - - - Osc %1 fine detuning left - Oszillator %1 Fein-Verstimmung links + + Direction: + - - Osc %1 coarse detuning - Oszillator %1 Grob-Verstimmung + + Mode: + + + + lmms::gui::InstrumentFunctionNoteStackingView - - Osc %1 fine detuning right - Oszillator %1 Fein-Verstimmung rechts + + STACKING + - - Osc %1 phase-offset - Oszillator %1 Phasenverschiebung + + Chord: + - - Osc %1 stereo phase-detuning - Oszillator %1 Stereo Phasenverschiebung + + RANGE + - - Osc %1 wave shape - Oszillator %1 Wellenform + + Chord range: + - - Modulation type %1 - Modulationsart %1 + + octave(s) + - Oscilloscope + lmms::gui::InstrumentMidiIOView - - Oscilloscope + + ENABLE MIDI INPUT - - Click to enable - Klicken um zu aktivieren + + + CHAN + This string must be be short, its width must be less than * width of LCD spin-box of two digits + - - - PatchesDialog - - Qsynth: Channel Preset + + + VELOC + This string must be be short, its width must be less than * width of LCD spin-box of three digits - - Bank selector + + ENABLE MIDI OUTPUT - - Bank - Bank + + PROG + This string must be be short, its width must be less than the * width of LCD spin-box of three digits + - - Program selector - Programmwähler + + NOTE + This string must be be short, its width must be less than * width of LCD spin-box of three digits + - - Patch - Patch + + MIDI devices to receive MIDI events from + - - Name - Name + + MIDI devices to send MIDI events to + - - OK - OK + + VELOCITY MAPPING + - - Cancel - Abbrechen + + MIDI VELOCITY + + + + + MIDI notes at this velocity correspond to 100% note velocity. + - PatmanView + lmms::gui::InstrumentSoundShapingView - - Open patch + + TARGET - - Loop - Wiederholen + + FILTER + - - Loop mode - Modus beim Wiederholen + + FREQ + - - Tune - Stimmung + + Cutoff frequency: + - - Tune mode - Stimmungsmodus + + Hz + - - No file selected - Keine Datei ausgewählt + + Q/RESO + - - Open patch file - Patch-Datei öffnen + + Q/Resonance: + - - Patch-Files (*.pat) - Patch-Dateien (*.pat) + + Envelopes, LFOs and filters are not supported by the current instrument. + - MidiClipView - - - Open in piano-roll - Im Piano-Roll öffnen - + lmms::gui::InstrumentTrackView - - Set as ghost in piano-roll + + Mixer channel - - Clear all notes - Alle Noten löschen + + Volume + - - Reset name - Name zurücksetzen + + Volume: + - - Change name - Name ändern + + VOL + - - Add steps - Schritte hinzufügen + + Panning + - - Remove steps - Schritte entfernen + + Panning: + - - Clone Steps - Schritte Klonen + + PAN + - - - PeakController - - Peak Controller - Peak Controller + + MIDI + - - Peak Controller Bug - Peak Controller Fehler + + Input + - - Due to a bug in older version of LMMS, the peak controllers may not be connect properly. Please ensure that peak controllers are connected properly and re-save this file. Sorry for any inconvenience caused. - Aufgrud eines Fehlers in einer älteren Version von LMMS, sind die Peak Controller möglicherweise nicht richtig verbunden. Bitte stellen Sie sicher, dass die Peak Controller richtig verbunden sind und speichern Sie die Datei erneut. Entschuldigung für jegliche verursachte Unannehmlichkeiten. + + Output + - - - PeakControllerDialog - - PEAK - PEAK + + Open/Close MIDI CC Rack + - - LFO Controller - LFO-Controller + + %1: %2 + - PeakControllerEffectControlDialog - - - BASE - BASE - - - - Base: - Basis - + lmms::gui::InstrumentTrackWindow - - AMNT - AMNT + + Volume + - - Modulation amount: - Modulationsintensität: + + Volume: + - - MULT - MULT + + VOL + - - Amount multiplicator: + + Panning - - ATCK - ATCK + + Panning: + - - Attack: - Anschwellzeit (attack): + + PAN + - - DCAY - DCAY + + Pitch + - - Release: - Ausklingzeit (release): + + Pitch: + - - TRSH + + cents - - Treshold: - Schwellwert: + + PITCH + - - Mute output - Ausgang stummschalten + + Pitch range (semitones) + - - Absolute value + + RANGE - - - PeakControllerEffectControls - - Base value - Grundwert + + Mixer channel + - - Modulation amount - Modulationsintensität + + CHANNEL + - - Attack - Anschwellzeit (attack) + + Save current instrument track settings in a preset file + - - Release - Ausklingzeit (release) + + SAVE + - - Treshold - Schwellwert + + Envelope, filter & LFO + - - Mute output - Ausgang stummschalten + + Chord stacking & arpeggio + - - Absolute value + + Effects - - Amount multiplicator + + MIDI - - - PianoRoll - - Note Velocity - Noten-Lautstärke + + Tuning and transposition + - - Note Panning - Noten-Balance + + Save preset + - - Mark/unmark current semitone - Aktuellen Halbton markieren/demarkieren + + XML preset file (*.xpf) + - - Mark/unmark all corresponding octave semitones + + Plugin + + + lmms::gui::InstrumentTuningView - - Mark current scale - Aktuelle Tonleiter markieren + + GLOBAL TRANSPOSITION + - - Mark current chord - Aktuellen Akkord markieren + + Enables the use of global transposition + - - Unmark all - Alles Markierungen entfernen + + Microtuner is not available for MIDI-based instruments. + - - Select all notes on this key + + MICROTUNER - - Note lock - Notenraster + + Active scale: + - - Last note - Letzte Note + + + Edit scales and keymaps + - - No key + + Active keymap: - - No scale - Keine Tonleiter + + Import note ranges from keymap + - - No chord - Kein Akkord + + When enabled, the first, last and base notes of this instrument will be overwritten with values specified by the selected keymap. + + + + lmms::gui::KickerInstrumentView - - Nudge + + Start frequency: - - Snap + + End frequency: - - Velocity: %1% - Lautstärke: %1% + + Frequency slope: + - - Panning: %1% left - Balance: %1% links + + Gain: + - - Panning: %1% right - Balance: %1% rechts + + Envelope length: + - - Panning: center - Balance: mittig + + Envelope slope: + - - Glue notes failed + + Click: - - Please select notes to glue first. + + Noise: - - Please open a clip by double-clicking on it! - Bitte öffnen Sie einen Pattern, indem Sie ihn doppelklicken! + + Start distortion: + - - - Please enter a new value between %1 and %2: - Bitte geben Sie einen neuen Wert zwischen %1 und %2 ein: + + End distortion: + - PianoRollWindow + lmms::gui::LOMMControlDialog - - Play/pause current clip (Space) - Aktuelles Pattern abspielen/pausieren (Leertaste) + + Depth: + - - Record notes from MIDI-device/channel-piano - Zeichnet Noten von einem MIDI-Gerät/Kanal Piano auf + + Compression amount for all bands + - - Record notes from MIDI-device/channel-piano while playing song or BB track + + Time: - - Record notes from MIDI-device/channel-piano, one step at the time + + Attack/release scaling for all bands - - Stop playing of current clip (Space) - Abspielen des aktuellen Patterns stoppen (Leertaste) + + Input Volume: + - - Edit actions - Aktionen bearbeiten + + Input volume + - - Draw mode (Shift+D) - Zeichnenmodus (Umschalt+D) + + Output Volume: + - - Erase mode (Shift+E) - Radiermodus (Umschalt+E) + + Output volume + - - Select mode (Shift+S) - Auswahl-Modus (Umschalt+S) + + Upward Depth: + - - Pitch Bend mode (Shift+T) + + Upward compression amount for all bands - - Quantize - Quantisiere + + Downward Depth: + - - Quantize positions + + Downward compression amount for all bands - - Quantize lengths + + High/Mid Crossover - - File actions + + Mid/Low Crossover - - Import clip + + High/mid band split - - - Export clip + + Mid/low band split - - Copy paste controls + + Enable High Band - - Cut (%1+X) + + Enable Mid Band - - Copy (%1+C) + + Enable Low Band - - Paste (%1+V) + + High Input Volume: - - Timeline controls - Zeitstrahlregler + + Input volume for high band + - - Glue + + Mid Input Volume: - - Knife + + Input volume for mid band - - Fill + + Low Input Volume: - - Cut overlaps + + Input volume for low band - - Min length as last + + High Output Volume: - - Max length as last + + Output volume for high band - - Zoom and note controls + + Mid Output Volume: - - Horizontal zooming - Horizontales Zoomen + + Output volume for mid band + - - Vertical zooming - Vertikales Zoomen + + Low Output Volume: + - - Quantization - Quantisierung + + Output volume for low band + - - Note length - Notenlänge + + Above Threshold High + - - Key + + Downward compression threshold for high band - - Scale + + Above Threshold Mid - - Chord - Akkord + + Downward compression threshold for mid band + - - Snap mode + + Above Threshold Low - - Clear ghost notes + + Downward compression threshold for low band - - - Piano-Roll - %1 + + Above Ratio High - - - Piano-Roll - no clip + + Downward compression ratio for high band - - - XML clip file (*.xpt *.xptz) + + Above Ratio Mid - - Export clip success + + Downward compression ratio for mid band - - Clip saved to %1 + + Above Ratio Low - - Import clip. + + Downward compression ratio for low band - - You are about to import a clip, this will overwrite your current clip. Do you want to continue? + + Below Threshold High - - Open clip + + Upward compression threshold for high band - - Import clip success + + Below Threshold Mid - - Imported clip %1! + + Upward compression threshold for mid band - - - PianoView - - Base note - Grundton + + Below Threshold Low + - - First note + + Upward compression threshold for low band - - Last note - Letzte Note + + Below Ratio High + - - - Plugin - - Plugin not found - Plugin nicht gefunden + + Upward compression ratio for high band + - - The plugin "%1" wasn't found or could not be loaded! -Reason: "%2" - Das Plugin »%1« konnte nicht gefunden oder geladen werden! -Grund: »%2« + + Below Ratio Mid + - - Error while loading plugin - Fehler beim Laden des Plugins + + Upward compression ratio for mid band + - - Failed to load plugin "%1"! - Das Plugin »%1« konnte nicht geladen werden! + + Below Ratio Low + - - - PluginBrowser - - Instrument Plugins + + Upward compression ratio for low band - - Instrument browser - Instrument-Browser + + Attack High: + - - Drag an instrument into either the Song-Editor, the Beat+Bassline Editor or into an existing instrument track. - Ziehen Sie ein Instrument entweder in den Song-Editor, den Beat+Bassline-Editor oder in eine existierende Instrumentspur. + + Attack time for high band + - - no description - keine Beschreibung + + Attack Mid: + - - A native amplifier plugin - Ein natives Verstärker-Plugin + + Attack time for mid band + - - Simple sampler with various settings for using samples (e.g. drums) in an instrument-track - Einfacher Sampler mit verschiedenen Einstellungen zum Benutzen von Samples (z.B. Trommeln) in einer Instrumentenspur + + Attack Low: + - - Boost your bass the fast and simple way - Verstärken Sie Ihren Bass auf schnellen und einfachen Wege + + Attack time for low band + - - Customizable wavetable synthesizer - Flexibler Wavetable-Synthesizer + + Release High: + - - An oversampling bitcrusher + + Release time for high band - - Carla Patchbay Instrument - Carla Patchbay Instrument + + Release Mid: + - - Carla Rack Instrument - Carla Rack Instrument + + Release time for mid band + - - A dynamic range compressor. + + Release Low: - - A 4-band Crossover Equalizer - Ein 4-Band Crossover Equalizer + + Release time for low band + - - A native delay plugin - Ein natives Verzögerung-Plugin + + RMS Time: + - - A Dual filter plugin - Ein doppel Fliter Plugin + + RMS size for sidechain signal (set to 0 for Peak mode) + - - plugin for processing dynamics in a flexible way - Ein Plugin, um Dynamik auf Flexible Weise zu verarbeiten + + Knee: + - - A native eq plugin - Ein natives EQ-Plugin + + Knee size for all compressors + - - A native flanger plugin - Ein natives Flanger-Plugin + + Range: + - - Emulation of GameBoy (TM) APU - Emulation des GameBoy (TM) APU + + Maximum gain increase for all bands + - - Player for GIG files + + Balance: - - Filter for importing Hydrogen files into LMMS - Filter zum importieren von Hydrogendateien in LMMS + + Bias input volume towards one channel + - - Versatile drum synthesizer - Vielseitiger Trommel-Synthesizer + + Scale output volume with Depth + - - List installed LADSPA plugins - Installierte LADSPA-Plugins auflisten + + Scale output volume with Depth parameter + - - plugin for using arbitrary LADSPA-effects inside LMMS. - Plugin, um beliebige LADSPA-Effekte in LMMS nutzen zu können. + + Stereo Link + - - Incomplete monophonic imitation TB-303 - Unvollständiger monophonischer TB303-Klon + + Apply same gain change to both channels + - - plugin for using arbitrary LV2-effects inside LMMS. + + Auto Time: + + + + + Speed up attack and release times when transients occur - - plugin for using arbitrary LV2 instruments inside LMMS. + + Mix: - - Filter for exporting MIDI-files from LMMS + + Wet/Dry of all bands - - Filter for importing MIDI-files into LMMS - Filter, um MIDI-Dateien in LMMS zu importieren + + Feedback + - - Monstrous 3-oscillator synth with modulation matrix - Monströser 3-Oszillator Synth mit Modulationsmatrix + + Use output as sidechain signal instead of input + - - A multitap echo delay plugin + + Mid/Side - - A NES-like synthesizer - Ein NES ähnlicher Synthesizer + + Compress mid/side channels instead of left/right + - - 2-operator FM Synth - 2-Operator FM-Synth + + + Suppress upward compression for side band + - - Additive Synthesizer for organ-like sounds - Additiver Synthesizer für orgelähnliche Klänge + + + Lookahead + - - GUS-compatible patch instrument - GUS-kompatibles Patch-Instrument + + Lookahead length + - - Plugin for controlling knobs with sound peaks - Plugin zur Kontrolle von Knöpfen mit Hilfe von Klangspitzen + + Clear all parameters + + + + lmms::gui::LadspaBrowserView - - Reverb algorithm by Sean Costello - Hallalgorithmus von Sean Costello + + + Available Effects + - - Player for SoundFont files - Wiedergabe von SoundFont-Dateien + + + Unavailable Effects + - - LMMS port of sfxr - LMMS-Portierung von sfxr + + + Instruments + - - Emulation of the MOS6581 and MOS8580 SID. -This chip was used in the Commodore 64 computer. - Emulation des MOS6581 und MOS8580 SID Chips. -Dieser Chip wurde in Commodore 64 Computern genutzt. + + + Analysis Tools + - - A graphical spectrum analyzer. + + + Don't know - - Plugin for enhancing stereo separation of a stereo input file - Plugin zur Erweiterung des Stereo-Klangeindrucks + + Type: + + + + lmms::gui::LadspaControlDialog - - Plugin for freely manipulating stereo output - Plugin zur freien Manipulation der Stereoausgabe + + Link Channels + - - Tuneful things to bang on - Gegenstände, die nach etwas klingen, wenn man drauf rumkloppt + + Channel + + + + lmms::gui::LadspaControlView - - Three powerful oscillators you can modulate in several ways - Drei mächtige Oszillatoren, die Sie auf mehrere Weisen modulieren können + + Link channels + - - A stereo field visualizer. + + Value: + + + lmms::gui::LadspaDescription - - VST-host for using VST(i)-plugins within LMMS - VST-Host zum Benutzen von VST(i)-Plugins innerhalb von LMMS + + Plugins + - - Vibrating string modeler - Modellierung schwingender Saiten + + Description + - - plugin for using arbitrary VST effects inside LMMS. - Plugin um beliebige VST-Effekte in LMMS zu benutzen. + + Name: + - - 4-oscillator modulatable wavetable synth - 4-Oszillator modulierbarer Wellenformtabellen Synth + + Maker: + - - plugin for waveshaping - Plugin für Wellenformen + + Copyright: + - - Mathematical expression parser + + Requires Real Time: - - Embedded ZynAddSubFX - Eingebettetes ZynAddSubFX-Plugin + + + + Yes + - - - PluginDatabaseW - - Carla - Add New + + + + No - - Format + + Real Time Capable: - - Internal + + In Place Broken: - - LADSPA + + Channels In: - - DSSI + + Channels Out: + + + lmms::gui::LadspaMatrixControlDialog - - LV2 + + Link Channels - - VST2 + + Link - - VST3 + + Channel %1 - - AU + + Link channels + + + lmms::gui::LadspaPortDialog - - Sound Kits + + Ports - - Type - Typ + + Name + - - Effects - Effekte + + Rate + - - Instruments - Instrumente + + Direction + - - MIDI Plugins + + Type - - Other/Misc + + Min < Default < Max - - Architecture + + Logarithmic - - Native + + SR Dependent - - Bridged + + Audio - - Bridged (Wine) + + Control - - Requirements + + Input - - With Custom GUI + + Output - - With CV Ports + + Toggled - - Real-time safe only + + Integer - - Stereo only + + Float - - With Inline Display + + + Yes + + + lmms::gui::Lb302SynthView - - Favorites only + + Cutoff Freq: - - (Number of Plugins go here) + + Resonance: - - &Add Plugin + + Env Mod: - - Cancel - Abbrechen + + Decay: + - - Refresh + + 303-es-que, 24dB/octave, 3 pole filter - - Reset filters + + Slide Decay: - - - - - - - - - - - - - - - - - TextLabel + + DIST: - - Format: + + Saw wave - - Architecture: + + Click here for a saw-wave. - - Type: - Typ: + + Triangle wave + - - MIDI Ins: + + Click here for a triangle-wave. - - Audio Ins: + + Square wave - - CV Outs: + + Click here for a square-wave. - - MIDI Outs: + + Rounded square wave - - Parameter Ins: + + Click here for a square-wave with a rounded end. - - Parameter Outs: + + Moog wave - - Audio Outs: + + Click here for a moog-like wave. - - CV Ins: + + Sine wave - - UniqueID: + + Click for a sine-wave. - - Has Inline Display: + + + White noise wave - - Has Custom GUI: + + Click here for an exponential wave. - - Is Synth: + + Click here for white-noise. - - Is Bridged: + + Bandlimited saw wave - - Information + + Click here for bandlimited saw wave. - - Name - Name + + Bandlimited square wave + - - Label/URI + + Click here for bandlimited square wave. - - Maker + + Bandlimited triangle wave - - Binary/Filename + + Click here for bandlimited triangle wave. - - Focus Text Search + + Bandlimited moog saw wave - - Ctrl+F + + Click here for bandlimited moog saw wave. - PluginEdit + lmms::gui::LcdFloatSpinBox - - Plugin Editor + + Set value - - Edit + + Please enter a new value between %1 and %2: + + + + + lmms::gui::LcdSpinBox + + + Set value - - Control - Steuerung + + Please enter a new value between %1 and %2: + + + + lmms::gui::LeftRightNav - - MIDI Control Channel: + + + + Previous - - N + + + + Next - - Output dry/wet (100%) + + Previous (%1) - - Output volume (100%) + + Next (%1) + + + lmms::gui::LfoControllerDialog - - Balance Left (0%) + + LFO - - - Balance Right (0%) + + BASE - - Use Balance + + Base: - - Use Panning + + FREQ - - Settings - Einstellungen + + LFO frequency: + - - Use Chunks + + AMNT - - Audio: + + Modulation amount: - - Fixed-Size Buffer + + PHS - - Force Stereo (needs reload) + + Phase offset: - - MIDI: + + degrees - - Map Program Changes + + Sine wave - - Send Bank/Program Changes + + Triangle wave - - Send Control Changes + + Saw wave - - Send Channel Pressure + + Square wave - - Send Note Aftertouch + + Moog saw wave - - Send Pitchbend + + Exponential wave - - Send All Sound/Notes Off + + White noise - - -Plugin Name - + + User-defined shape. +Double click to pick a file. - - Program: + + Multiply modulation frequency by 1 - - MIDI Program: + + Multiply modulation frequency by 100 - - Save State + + Divide modulation frequency by 100 + + + lmms::gui::LfoGraph - - Load State + + %1 Hz + + + lmms::gui::MainWindow - - Information + + Configuration file - - Label/URI: + + Error while parsing configuration file at line %1:%2: %3 - - Name: + + Could not open file - - Type: - Typ: + + Could not open file %1 for writing. +Please make sure you have write permission to the file and the directory containing the file and try again! + - - Maker: + + Project recovery - - Copyright: + + There is a recovery file present. It looks like the last session did not end properly or another instance of LMMS is already running. Do you want to recover the project of this session? - - Unique ID: + + + Recover - - - PluginFactory - - Plugin not found. - Plugin nicht gefunden + + Recover the file. Please don't run multiple instances of LMMS when you do this. + - - LMMS plugin %1 does not have a plugin descriptor named %2! + + + Discard - - - PluginParameter - - Form + + Launch a default session and delete the restored files. This is not reversible. - - Parameter Name + + Version %1 - - ... + + Preparing plugin browser - - - PluginRefreshW - - Carla - Refresh + + Preparing file browsers - - Search for new... + + My Projects - - LADSPA + + My Samples - - DSSI + + My Presets - - LV2 + + My Home - - VST2 + + Root Directory - - VST3 + + Volumes - - AU + + My Computer - - SF2/3 + + Loading background picture - - SFZ + + &File - - Native + + &New - - POSIX 32bit + + &Open... - - POSIX 64bit + + &Save - - Windows 32bit + + Save &As... - - Windows 64bit + + Save as New &Version - - Available tools: + + Save as default template - - python3-rdflib (LADSPA-RDF support) + + Import... - - carla-discovery-win64 + + E&xport... - - carla-discovery-native + + E&xport Tracks... - - carla-discovery-posix32 + + Export &MIDI... - - carla-discovery-posix64 + + &Quit - - carla-discovery-win32 + + &Edit - - Options: + + Undo - - Carla will run small processing checks when scanning the plugins (to make sure they won't crash). -You can disable these checks to get a faster scanning time (at your own risk). + + Redo - - Run processing checks while scanning + + Scales and keymaps - - Press 'Scan' to begin the search + + Settings - - Scan + + &View - - >> Skip + + &Tools - - Close - Schließen + + &Help + - - - PluginWidget - - - - - - Frame + + Online Help - - Enable + + Help - - On/Off - An/aus + + About + - - - - - PluginName + + Create new project - - MIDI - MIDI + + Create new project from template + - - AUDIO IN + + Open existing project - - AUDIO OUT + + Recently opened projects - - GUI + + Save current project - - Edit + + Export current project - - Remove + + Metronome - - Plugin Name + + + Song Editor - - Preset: + + + Pattern Editor - - - ProjectNotes - - Project Notes - Zeige/verstecke Projekt-Notizen + + + Piano Roll + - - Enter project notes here + + + Automation Editor - - Edit Actions + + + Mixer - - &Undo - &Rückgängig + + Show/hide controller rack + - - %1+Z - %1+Z + + Show/hide project notes + - - &Redo - &Wiederholen + + Untitled + - - %1+Y - %1+Y + + Recover session. Please save your work! + - - &Copy - &Kopieren + + LMMS %1 + - - %1+C - %1+C + + Recovered project not saved + - - Cu&t - Schnei&de + + This project was recovered from the previous session. It is currently unsaved and will be lost if you don't save it. Do you want to save it now? + - - %1+X - %1+X + + Project not saved + - - &Paste - &Einfügen + + The current project was modified since last saving. Do you want to save it now? + - - %1+V - %1+V + + Open Project + - - Format Actions + + LMMS (*.mmp *.mmpz) - - &Bold - &Fett + + Save Project + - - %1+B - %1+B + + LMMS Project + - - &Italic - &Kursiv + + LMMS Project Template + - - %1+I - %1+l + + Save project template + - - &Underline - &Unterstrichen + + Overwrite default template? + - - %1+U - %1+U + + This will overwrite your current default template. + - - &Left - &Links + + Help not available + - - %1+L - %1+L + + Currently there's no help available in LMMS. +Please visit http://lmms.sf.net/wiki for documentation on LMMS. + - - C&enter - Z&entrum + + Controller Rack + - - %1+E - %1+E + + Project Notes + - - &Right - &Rechts + + Fullscreen + - - %1+R - %1+R + + Volume as dBFS + - - &Justify + + Smooth scroll - - %1+J - %1+J + + Enable note labels in piano roll + - - &Color... - &Farbe... + + MIDI File (*.mid) + - - - ProjectRenderer - - WAV (*.wav) - WAV (*.wav) + + + untitled + - - FLAC (*.flac) - FLAC (*.flac) + + + Select file for project-export... + - - OGG (*.ogg) - OGG (*.ogg) + + Select directory for writing exported tracks... + - - MP3 (*.mp3) - MP3 (*.mp3) + + Save project + - - - QObject - - Reload Plugin + + Project saved - - Show GUI - GUI anzeigen + + The project %1 is now saved. + - - Help - Hilfe + + Project NOT saved. + - - - QWidget - - - - - Name: - Name: + + The project %1 was not saved! + - - URI: + + Import file - - - - Maker: - Hersteller: + + MIDI sequences + - - - - Copyright: - Copyright: + + Hydrogen projects + - - - Requires Real Time: - Benötigt Echtzeit: + + All file types + + + + lmms::gui::MalletsInstrumentView - - - - - - - Yes - Ja + + Instrument + - - - - - - - No - Nein + + Spread + - - - Real Time Capable: - Echtzeitfähig: + + Spread: + - - - In Place Broken: - Operationen nicht In-Place: + + Random + - - - Channels In: - Eingangs-Kanäle: + + Random: + - - - Channels Out: - Ausgangs-Kanäle: + + Missing files + - - File: %1 - Datei: %1 + + Your Stk-installation seems to be incomplete. Please make sure the full Stk-package is installed! + - - File: - Datei: + + Hardness + - - - RecentProjectsMenu - - &Recently Opened Projects - &Zuletzt geöffnete Projekte + + Hardness: + - - - RenameDialog - - Rename... - Umbenennen... + + Position + - - - ReverbSCControlDialog - - Input - Eingang + + Position: + - - Input gain: - Eingangsverstärkung: + + Vibrato gain + - - Size - Größe + + Vibrato gain: + - - Size: - Größe: + + Vibrato frequency + - - Color - Farbe + + Vibrato frequency: + - - Color: - Farbe: + + Stick mix + - - Output - Ausgang + + Stick mix: + - - Output gain: - Ausgabeverstärkung: + + Modulator + - - - ReverbSCControls - - Input gain - Eingangsverstärkung + + Modulator: + - - Size - Größe + + Crossfade + - - Color - Farbe + + Crossfade: + - - Output gain - Ausgabeverstärkung + + LFO speed + - - - SaControls - - Pause + + LFO speed: - - Reference freeze + + LFO depth - - Waterfall + + LFO depth: - - Averaging + + ADSR - - Stereo - Stereo + + ADSR: + - - Peak hold + + Pressure - - Logarithmic frequency + + Pressure: - - Logarithmic amplitude + + Speed - - Frequency range + + Speed: + + + lmms::gui::ManageVSTEffectView - - Amplitude range + + - VST parameter control - - FFT block size + + VST sync - - FFT window type + + + Automated - - Peak envelope resolution + + Close + + + lmms::gui::ManageVestigeInstrumentView - - Spectrum display resolution + + + - VST plugin control - - Peak decay multiplier + + VST Sync - - Averaging weight + + + Automated - - Waterfall history size + + Close + + + lmms::gui::MeterDialog - - Waterfall gamma correction + + + Meter Numerator - - FFT window overlap + + Meter numerator - - FFT zero padding + + + Meter Denominator - - - Full (auto) + + Meter denominator - - - - Audible + + TIME SIG + + + lmms::gui::MicrotunerConfig - - Bass - Bass + + Selected scale slot + - - Mids - Mitten + + Selected keymap slot + - - High - Höhen + + + First key + - - Extended + + + Last key - - Loud - Laut + + + Middle key + - - Silent - Leise + + + Base key + - - (High time res.) + + + + Base note frequency - - (High freq. res.) + + Microtuner Configuration - - Rectangular (Off) + + Scale slot to edit: - - - Blackman-Harris (Default) + + Scale description. Cannot start with "!" and cannot contain a newline character. - - Hamming + + + Load - - Hanning + + + Save - - - SaControlsDialog - - Pause + + Load scale definition from a file. - - Pause data acquisition + + Save scale definition to a file. - - Reference freeze + + Enter intervals on separate lines. Numbers containing a decimal point are treated as cents. +Other inputs are treated as integer ratios and must be in the form of 'a/b' or 'a'. +Unity (0.0 cents or ratio 1/1) is always present as a hidden first value; do not enter it manually. - - Freeze current input as a reference / disable falloff in peak-hold mode. + + Apply scale changes - - Waterfall + + Verify and apply changes made to the selected scale. To use the scale, select it in the settings of a supported instrument. - - Display real-time spectrogram + + Keymap slot to edit: - - Averaging + + Keymap description. Cannot start with "!" and cannot contain a newline character. - - Enable exponential moving average + + Load key mapping definition from a file. - - Stereo - Stereo + + Save key mapping definition to a file. + - - Display stereo channels separately + + Enter key mappings on separate lines. Each line assigns a scale degree to a MIDI key, +starting with the middle key and continuing in sequence. +The pattern repeats for keys outside of the explicit keymap range. +Multiple keys can be mapped to the same scale degree. +Enter 'x' if you wish to leave the key disabled / not mapped. - - Peak hold + + FIRST - - Display envelope of peak values + + First MIDI key that will be mapped - - Logarithmic frequency + + LAST - - Switch between logarithmic and linear frequency scale + + Last MIDI key that will be mapped - - - Frequency range + + MIDDLE - - Logarithmic amplitude + + First line in the keymap refers to this MIDI key - - Switch between logarithmic and linear amplitude scale + + BASE N. - - - Amplitude range + + Base note frequency will be assigned to this MIDI key - - Envelope res. + + BASE NOTE FREQ - - Increase envelope resolution for better details, decrease for better GUI performance. + + Apply keymap changes - - - Draw at most + + Verify and apply changes made to the selected key mapping. To use the mapping, select it in the settings of a supported instrument. - - envelope points per pixel + + Scale parsing error - - Spectrum res. + + Scale name cannot start with an exclamation mark - - Increase spectrum resolution for better details, decrease for better GUI performance. + + Scale name cannot contain a new-line character - - spectrum points per pixel + + Interval defined in cents cannot be converted to a number - - Falloff factor + + Numerator of an interval defined as a ratio cannot be converted to a number - - Decrease to make peaks fall faster. + + Denominator of an interval defined as a ratio cannot be converted to a number - - Multiply buffered value by + + Interval defined as a ratio cannot be negative - - Averaging weight + + Keymap parsing error - - Decrease to make averaging slower and smoother. + + Keymap name cannot start with an exclamation mark - - New sample contributes + + Keymap name cannot contain a new-line character - - Waterfall height + + Scale degree cannot be converted to a whole number - - Increase to get slower scrolling, decrease to see fast transitions better. Warning: medium CPU usage. + + Scale degree cannot be negative - - Keep + + Invalid keymap - - lines + + Base key is not mapped to any scale degree. No sound will be produced as there is no way to assign reference frequency to any note. - - Waterfall gamma + + Open scale - - Decrease to see very weak signals, increase to get better contrast. + + + Scala scale definition (*.scl) - - Gamma value: + + Scale load failure - - Window overlap + + + Unable to open selected file. - - Increase to prevent missing fast transitions arriving near FFT window edges. Warning: high CPU usage. + + Open keymap - - Each sample processed - Jedes Sample verarbeitet + + + Scala keymap definition (*.kbm) + - - times + + Keymap load failure - - Zero padding + + Save scale - - Increase to get smoother-looking spectrum. Warning: high CPU usage. + + Scale save failure - - Processing buffer is + + + Unable to open selected file for writing. - - steps larger than input block + + Save keymap - - Advanced settings + + Keymap save failure + + + lmms::gui::MidiCCRackView - - Access advanced settings + + + MIDI CC Rack - %1 - - - FFT block size + + MIDI CC Knobs: - - - FFT window type + + CC %1 - SampleBuffer + lmms::gui::MidiClipView - - Fail to open file - Konnte Datei nicht öffnen - - - - Audio files are limited to %1 MB in size and %2 minutes of playing time + + + Transpose - - Open audio file - Audiodatei öffnen - - - - All Audio-Files (*.wav *.ogg *.ds *.flac *.spx *.voc *.aif *.aiff *.au *.raw) - Alle Audiodateien (*.wav *.ogg *.ds *.flac *.spx *.voc *.aif *.aiff *.au *.raw) + + Semitones to transpose by: + - - Wave-Files (*.wav) - Wave-Dateien (*.wav) + + Open in piano-roll + - - OGG-Files (*.ogg) - OGG-Dateien (*.ogg) + + Set as ghost in piano-roll + - - DrumSynth-Files (*.ds) - DrumSynth-Dateien (*.ds) + + Set as ghost in automation editor + - - FLAC-Files (*.flac) - FLAC-Dateien (*.flac) + + Clear all notes + - - SPEEX-Files (*.spx) - SPEEX-Dateien (*.spx) + + Reset name + - - VOC-Files (*.voc) - VOC-Dateien (*.voc) + + Change name + - - AIFF-Files (*.aif *.aiff) - AIFF-Dateien (*.aif *.aiff) + + Add steps + - - AU-Files (*.au) - AU-Dateien (*.au) + + Remove steps + - - RAW-Files (*.raw) - RAW-Dateien (*.raw) + + Clone Steps + - SampleClipView + lmms::gui::MidiSetupWidget - - Double-click to open sample + + Device + + + lmms::gui::MixerChannelLcdSpinBox - - Delete (middle mousebutton) - Löschen (mittlere Maustaste) - - - - Delete selection (middle mousebutton) + + Assign to: - - Cut - Ausschneiden + + New Mixer Channel + - - Cut selection + + Please enter a new value between %1 and %2: - - Copy - Kopieren + + Set value + + + + lmms::gui::MixerChannelView - - Copy selection + + Channel send amount - - Paste - Einfügen + + Mute + - - Mute/unmute (<%1> + middle click) - Stumm/Laut schalten (<Strg> + Mittelklick) + + Mute this channel + - - Mute/unmute selection (<%1> + middle click) + + Solo - - Reverse sample - Sample umkehren + + Solo this channel + - - Set clip color + + Fader %1 - - Use track color + + Move &left - - - SampleTrack - - Volume - Lautstärke + + Move &right + - - Panning - Balance + + Rename &channel + - - Mixer channel - FX-Kanal + + R&emove channel + - - - Sample track - Samplespur + + Remove &unused channels + - - - SampleTrackView - - Track volume - Lautstärke der Spur + + Color + - - Channel volume: - Kanal Lautstärke: + + Change + - - VOL - VOL + + Reset + - - Panning - Balance + + Pick random + - - Panning: - Balance: + + This Mixer Channel is being used. +Are you sure you want to remove this channel? + +Warning: This operation can not be undone. + - - PAN - PAN + + Confirm removal + - - Channel %1: %2 - FX %1: %2 + + Don't ask again + - SampleTrackWindow + lmms::gui::MixerView - - GENERAL SETTINGS - GRUNDLEGENDE EINSTELLUNGEN + + Mixer + + + + lmms::gui::MonstroView - - Sample volume + + Operators view - - Volume: - Lautstärke: + + Matrix view + - - VOL - VOL + + + + Volume + - + + + Panning - Balance - - - - Panning: - Balance: - - - - PAN - PAN + - - Mixer channel - FX-Kanal + + + + Coarse detune + - - CHANNEL - FX + + + + semitones + - - - SaveOptionsWidget - - Discard MIDI connections + + + Fine tune left - - Save As Project Bundle (with resources) + + + + + cents - - - SetupDialog - - Reset to default value + + + Fine tune right - - Use built-in NaN handler + + + + Stereo phase offset - - Settings - Einstellungen + + + + + + deg + - - - General + + Pulse width - - Graphical user interface (GUI) + + Send sync on pulse rise - - Display volume as dBFS + + Send sync on pulse fall - - Enable tooltips - Tooltips aktivieren + + Hard sync oscillator 2 + - - Enable master oscilloscope by default + + Reverse sync oscillator 2 - - Enable all note labels in piano roll + + Sub-osc mix - - Enable compact track buttons + + Hard sync oscillator 3 - - Enable one instrument-track-window mode + + Reverse sync oscillator 3 - - Show sidebar on the right-hand side + + + + + Attack - - Let sample previews continue when mouse is released + + + Rate - - Mute automation tracks during solo + + + Phase - - Show warning when deleting tracks + + + Pre-delay - - Projects + + + Hold - - Compress project files by default + + + Decay - - Create a backup file when saving a project + + + Sustain - - Reopen last project on startup + + + Release - - Language - Sprache + + + Slope + - - - Performance + + Mix osc 2 with osc 3 - - Autosave + + Modulate amplitude of osc 3 by osc 2 - - Enable autosave + + Modulate frequency of osc 3 by osc 2 - - Allow autosave while playing + + Modulate phase of osc 3 by osc 2 - - User interface (UI) effects vs. performance + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Modulation amount + + + lmms::gui::MultitapEchoControlDialog - - Smooth scroll in song editor + + Length - - Display playback cursor in AudioFileProcessor + + Step length: - - Plugins - Plugins + + Dry + - - VST plugins embedding: + + Dry gain: - - No embedding + + Stages - - Embed using Qt API + + Low-pass stages: - - Embed using native Win32 API + + Swap inputs - - Embed using XEmbed protocol + + Swap left and right input channels for reflections + + + lmms::gui::NesInstrumentView - - Keep plugin windows on top when not embedded + + + + + Volume - - Sync VST plugins to host playback + + + + Coarse detune - - Keep effects running even without input + + + + Envelope length - - - Audio - Audio + + Enable channel 1 + - - Audio interface + + Enable envelope 1 - - HQ mode for output audio device + + Enable envelope 1 loop - - Buffer size + + Enable sweep 1 - - - MIDI - MIDI + + + Sweep amount + - - MIDI interface + + + Sweep rate - - Automatically assign MIDI controller to selected track + + + 12.5% Duty cycle - - LMMS working directory - LMMS-Arbeitsverzeichnis + + + 25% Duty cycle + - - VST plugins directory + + + 50% Duty cycle - - LADSPA plugins directories + + + 75% Duty cycle - - SF2 directory - SF2 Verzeichniss + + Enable channel 2 + - - Default SF2 + + Enable envelope 2 - - GIG directory - GIG Verzeichniss + + Enable envelope 2 loop + - - Theme directory + + Enable sweep 2 - - Background artwork + + Enable channel 3 - - Some changes require restarting. + + Noise Frequency - - Autosave interval: %1 + + Frequency sweep - - Choose the LMMS working directory - LMMS-Arbeitsverzeichnis wählen + + Enable channel 4 + - - Choose your VST plugins directory - Wählen Sie Ihr VST-Plugin-Verzeichnis + + Enable envelope 4 + - - Choose your LADSPA plugins directory - Wählen Sie Ihr LADSPA-Plugin-Verzeichnis + + Enable envelope 4 loop + - - Choose your default SF2 - Wählen Sie Ihr Standard SF2 + + Quantize noise frequency when using note frequency + - - Choose your theme directory - Wählen Sie Ihr Theme-Verzeichnis + + Use note frequency for noise + - - Choose your background picture - Wählen Sie Ihr Hintergrundbild + + Noise mode + - - - Paths - Pfade + + Master volume + - - OK - OK + + Vibrato + + + + lmms::gui::OpulenzInstrumentView - - Cancel - Abbrechen + + + Attack + - - Frames: %1 -Latency: %2 ms - Frames: %1 -Latenz: %2 ms + + + Decay + - - Choose your GIG directory - Wählen Sie Ihr CIG-Verzeichnis aus + + + Release + - - Choose your SF2 directory - Wählen Sie Ihr SF2-Verzeichnis aus + + + Frequency multiplier + + + + lmms::gui::OrganicInstrumentView - - minutes - Minutes + + Distortion: + - - minute - Minute + + Volume: + - - Disabled - Deaktiviert + + Randomise + - - - SidInstrument - - Cutoff frequency - Kennfrequenz + + + Osc %1 waveform: + - - Resonance - Resonanz + + Osc %1 volume: + - - Filter type - Filtertyp + + Osc %1 panning: + - - Voice 3 off - Stimme 3 lautlos + + Osc %1 stereo detuning + - - Volume - Lautstärke + + cents + - - Chip model - Chipmodell + + Osc %1 harmonic: + - SidInstrumentView + lmms::gui::Oscilloscope - - Volume: - Lautstärke: + + Oscilloscope + - - Resonance: - Resonanz: + + Click to enable + + + + lmms::gui::PatmanView - - - Cutoff frequency: - Kennfrequenz: + + Open patch + - - High-pass filter + + Loop - - Band-pass filter + + Loop mode - - Low-pass filter + + Tune - - Voice 3 off + + Tune mode - - MOS6581 SID - MOS6581 SID + + No file selected + - - MOS8580 SID - MOS8580 SID + + Open patch file + - - - Attack: - Anschwellzeit (attack): + + Patch-Files (*.pat) + + + + lmms::gui::PatternClipView - - - Decay: - Abfallzeit (decay): + + Open in Pattern Editor + - - Sustain: - Dauerpegel (sustain): + + Reset name + - - - Release: - Ausklingzeit (release): + + Change name + + + + lmms::gui::PatternEditorWindow - - Pulse Width: - Pulsweite: + + Pattern Editor + - - Coarse: - Grob: + + Play/pause current pattern (Space) + - - Pulse wave + + Stop playback of current pattern (Space) - - Triangle wave - Dreieckwelle + + Pattern selector + - - Saw wave - Sägezahnwelle + + Track and step actions + - - Noise - Rauschen + + New pattern + - - Sync - Synchron + + Clone pattern + - - Ring modulation + + Add sample-track - - Filtered - Gefiltert + + Add automation-track + - - Test - Test + + Remove steps + - - Pulse width: + + Add steps - - - SideBarWidget - - Close - Schließen + + Clone Steps + - Song - - - Tempo - Tempo - + lmms::gui::PeakControllerDialog - - Master volume - Master-Lautstärke + + PEAK + - - Master pitch - Master-Tonhöhe + + LFO Controller + + + + lmms::gui::PeakControllerEffectControlDialog - - Aborting project load + + BASE - - Project file contains local paths to plugins, which could be used to run malicious code. + + Base: - - Can't load project: Project file contains local paths to plugins. + + AMNT - - LMMS Error report + + Modulation amount: - - (repeated %1 times) + + MULT - - The following errors occurred while loading: + + Amount multiplicator: - - - SongEditor - - Could not open file - Konnte Datei nicht öffnen + + ATCK + - - Could not open file %1. You probably have no permissions to read this file. - Please make sure to have at least read permissions to the file and try again. - Konnte die Datei %1 nicht öffnen. Sie sind wahrscheinlich nicht berechtigt, diese Datei zu lesen. Bitte stellen Sie sicher, dass Sie wenigstens Leserechte auf diese Datei besitzen und versuchen es erneut. + + Attack: + - - Operation denied + + DCAY - - A bundle folder with that name already eists on the selected path. Can't overwrite a project bundle. Please select a different name. + + Release: - - - - Error - Fehler + + TRSH + - - Couldn't create bundle folder. + + Treshold: - - Couldn't create resources folder. + + Mute output - - Failed to copy resources. + + Absolute value + + + lmms::gui::PeakIndicator - - Could not write file - Konnte Datei nicht schreiben + + -inf + + + + lmms::gui::PianoRoll - - Could not open %1 for writing. You probably are not permitted towrite to this file. Please make sure you have write-access to the file and try again. + + Note Velocity - - This %1 was created with LMMS %2 + + Note Panning - - Error in file - Fehler in Datei + + Mark/unmark current semitone + - - The file %1 seems to contain errors and therefore can't be loaded. - Die Datei %1 scheint fehlerhaft zu sein und kann daher nicht geladen werden. + + Mark/unmark all corresponding octave semitones + - - Version difference - Versionsunterschiede + + Mark current scale + - - template - Vorlage + + Mark current chord + - - project - Projekt + + Unmark all + - - Tempo - Tempo + + Select all notes on this key + - - TEMPO + + Note lock - - Tempo in BPM + + Last note - - High quality mode - High-Quality-Modus + + No key + - - - - Master volume - Master-Lautstärke + + No scale + - - - - Master pitch - Master-Tonhöhe + + No chord + - - Value: %1% - Wert: %1% + + Nudge + - - Value: %1 semitones - Wert: %1 Halbtöne + + Snap + - - - SongEditorWindow - - Song-Editor - Song-Editor + + Velocity: %1% + - - Play song (Space) - Spiele Song ab (Leertaste) + + Panning: %1% left + - - Record samples from Audio-device + + Panning: %1% right - - Record samples from Audio-device while playing song or BB track + + Panning: center - - Stop song (Space) - Song anhalten (Leertaste) + + Glue notes failed + - - Track actions + + Please select notes to glue first. - - Add beat/bassline - Beat/Bassline hinzufügen + + Please open a clip by double-clicking on it! + - - Add sample-track - Sample Spur hinzufügen + + + Please enter a new value between %1 and %2: + + + + lmms::gui::PianoRollWindow - - Add automation-track - Automation-Spur hinzufügen + + Play/pause current clip (Space) + - - Edit actions - Aktionen bearbeiten + + Record notes from MIDI-device/channel-piano + - - Draw mode - Zeichenmodus + + Record notes from MIDI-device/channel-piano while playing song or pattern track + - - Knife mode (split sample clips) + + Record notes from MIDI-device/channel-piano, one step at the time - - Edit mode (select and move) + + Stop playing of current clip (Space) - - Timeline controls - Zeitstrahlregler + + Edit actions + - - Bar insert controls + + Draw mode (Shift+D) - - Insert bar + + Erase mode (Shift+E) - - Remove bar + + Select mode (Shift+S) - - Zoom controls - Zoom Regler + + Pitch Bend mode (Shift+T) + - - Horizontal zooming - Horizontales Zoomen + + Quantize + - - Snap controls + + Quantize positions - - - Clip snapping size + + Quantize lengths - - Toggle proportional snap on/off + + File actions - - Base snapping size + + Import clip - - - StepRecorderWidget - - Hint - Tipp + + + Export clip + - - Move recording curser using <Left/Right> arrows + + Copy paste controls - - - SubWindow - - Close - Schließen + + Cut (%1+X) + - - Maximize - Maximieren + + Copy (%1+C) + - - Restore - Wiederherstellen + + Paste (%1+V) + - - - TabWidget - - - Settings for %1 - Einstellungen für %1 + + Timeline controls + - - - TemplatesMenu - - New from template - Neu von Vorlage + + Glue + - - - TempoSyncKnob - - - Tempo Sync - Tempo-Synchronisation + + Knife + - - No Sync - Keine Synchronisation + + Fill + - - Eight beats - Acht Schläge + + Cut overlaps + - - Whole note - Ganze Note + + Min length as last + - - Half note - Halbe Note + + Max length as last + - - Quarter note - Viertelnote + + Zoom and note controls + - - 8th note - Achtelnote + + Horizontal zooming + - - 16th note - 16tel Note + + Vertical zooming + - - 32nd note - 32tel Note + + Quantization + - - Custom... - Benutzerdefiniert... + + Note length + - - Custom - Benutzerdefiniert + + Key + - - Synced to Eight Beats - Mit acht Schlägen synchronisiert + + Scale + - - Synced to Whole Note - Mit ganzer Note synchronisiert + + Chord + - - Synced to Half Note - Mit halber Note synchronisiert + + Snap mode + - - Synced to Quarter Note - Mit Viertelnote synchronisiert + + Clear ghost notes + - - Synced to 8th Note - Mit Achtelnote synchronisiert + + + Piano-Roll - %1 + - - Synced to 16th Note - Mit 16tel Note synchronisiert + + + Piano-Roll - no clip + - - Synced to 32nd Note - Mit 32tel Note synchronisiert + + + XML clip file (*.xpt *.xptz) + - - - TimeDisplayWidget - - Time units + + Export clip success - - MIN - MIN + + Clip saved to %1 + - - SEC - SEC + + Import clip. + - - MSEC - MSEC + + You are about to import a clip, this will overwrite your current clip. Do you want to continue? + - - BAR - BAR + + Open clip + - - BEAT - BEAT + + Import clip success + - - TICK - TICK + + Imported clip %1! + - TimeLineWidget + lmms::gui::PianoView - - Auto scrolling + + Base note - - Loop points + + First note - - After stopping go back to beginning + + Last note + + + lmms::gui::PluginBrowser - - After stopping go back to position at which playing was started + + Instrument Plugins - - After stopping keep position - Nach dem Anhalten Position beibehalten + + Instrument browser + - - Hint - Tipp + + Drag an instrument into either the Song Editor, the Pattern Editor or an existing instrument track. + - - Press <%1> to disable magnetic loop points. - Drücken Sie <%1>, um magnetische Loop-Punkte zu deaktivieren. + + Search + - Track - - - Mute - Stumm - + lmms::gui::PluginDescWidget - - Solo - Solo + + Send to new instrument track + - TrackContainer + lmms::gui::ProjectNotes - - Couldn't import file - Datei konnte nicht importiert werden + + Project Notes + - - Couldn't find a filter for importing file %1. -You should convert this file into a format supported by LMMS using another software. - Es konnte kein Filter gefunden werden, um die Datei %1 zu importieren. -Sie sollten diese Datei mit Hilfe anderer Software in ein von LMMS unterstützes Format umwandeln. + + Enter project notes here + - - Couldn't open file - Datei konnte nicht geöffnet werden + + Edit Actions + - - Couldn't open file %1 for reading. -Please make sure you have read-permission to the file and the directory containing the file and try again! - Datei %1 konnte nicht zum Lesen geöffnet werden. -Bitte stellen Sie sicher, dass Sie Leserechte auf diese Datei sowie das Verzeichnis besitzen und probieren es erneut! + + &Undo + - - Loading project... - Lade Projekt… + + %1+Z + - - - Cancel - Abbrechen + + &Redo + - - - Please wait... - Bitte warten… + + %1+Y + - - Loading cancelled - Laden abgebrochen + + &Copy + - - Project loading was cancelled. + + %1+C - - Loading Track %1 (%2/Total %3) + + Cu&t - - Importing MIDI-file... - Importiere MIDI-Datei… + + %1+X + - - - Clip - - Mute - Stumm + + &Paste + - - - ClipView - - Current position - Aktuelle Position + + %1+V + - - Current length - Aktuelle Länge + + Format Actions + - - - %1:%2 (%3:%4 to %5:%6) + + &Bold - - Press <%1> and drag to make a copy. - <%1> drücken und ziehen, um eine Kopie zu erstellen. + + %1+B + - - Press <%1> for free resizing. - Drücken Sie <%1> für freie Größenänderung. + + &Italic + - - Hint - Tipp + + %1+I + - - Delete (middle mousebutton) - Löschen (mittlere Maustaste) + + &Underline + - - Delete selection (middle mousebutton) + + %1+U - - Cut - Ausschneiden + + &Left + - - Cut selection + + %1+L - - Merge Selection + + C&enter - - Copy - Kopieren + + %1+E + - - Copy selection + + &Right - - Paste - Einfügen + + %1+R + - - Mute/unmute (<%1> + middle click) - Stumm/Laut schalten (<Strg> + Mittelklick) + + &Justify + - - Mute/unmute selection (<%1> + middle click) + + %1+J - - Set clip color + + &Color... + + + lmms::gui::RecentProjectsMenu - - Use track color + + &Recently Opened Projects - TrackContentWidget + lmms::gui::RenameDialog - - Paste - Einfügen + + Rename... + - TrackOperationsWidget + lmms::gui::ReverbSCControlDialog - - Press <%1> while clicking on move-grip to begin a new drag'n'drop action. + + Input - - Actions + + Input gain: - - - Mute - Stumm + + Size + + + + + Size: + + + + + Color + + + + + Color: + + + + + Output + + + + + Output gain: + + + + + lmms::gui::SaControlsDialog + + + Pause + - - - Solo - Solo + + Pause data acquisition + - - After removing a track, it can not be recovered. Are you sure you want to remove track "%1"? + + Reference freeze - - Confirm removal + + Freeze current input as a reference / disable falloff in peak-hold mode. - - Don't ask again + + Waterfall - - Clone this track - Diese Spur klonen + + Display real-time spectrogram + - - Remove this track - Diese Spur entfernen + + Averaging + - - Clear this track - Diese Spur leeren + + Enable exponential moving average + - - Channel %1: %2 - FX %1: %2 + + Stereo + - - Assign to new Mixer Channel + + Display stereo channels separately - - Turn all recording on - Alle Aufnahmen einschalten + + Peak hold + - - Turn all recording off - Alle Aufnahmen ausschalten + + Display envelope of peak values + - - Change color - Farbe ändern + + Logarithmic frequency + - - Reset color to default - Farbe auf Standard zurücksetzen + + Switch between logarithmic and linear frequency scale + - - Set random color + + + Frequency range - - Clear clip colors + + Logarithmic amplitude - - - TripleOscillatorView - - Modulate phase of oscillator 1 by oscillator 2 + + Switch between logarithmic and linear amplitude scale - - Modulate amplitude of oscillator 1 by oscillator 2 + + + Amplitude range - - Mix output of oscillators 1 & 2 + + + FFT block size - - Synchronize oscillator 1 with oscillator 2 - Synchronisiere Oszillator 1 mit Oszillator 2 + + + FFT window type + - - Modulate frequency of oscillator 1 by oscillator 2 + + Envelope res. - - Modulate phase of oscillator 2 by oscillator 3 + + Increase envelope resolution for better details, decrease for better GUI performance. - - Modulate amplitude of oscillator 2 by oscillator 3 + + Maximum number of envelope points drawn per pixel: - - Mix output of oscillators 2 & 3 + + Spectrum res. - - Synchronize oscillator 2 with oscillator 3 - Synchronisiere Oszillator 2 mit Oszillator 3 + + Increase spectrum resolution for better details, decrease for better GUI performance. + - - Modulate frequency of oscillator 2 by oscillator 3 + + Maximum number of spectrum points drawn per pixel: - - Osc %1 volume: - Oszillator %1 Lautstärke: + + Falloff factor + - - Osc %1 panning: - Oszillator %1 Balance: + + Decrease to make peaks fall faster. + - - Osc %1 coarse detuning: - Oszillator %1 Grob-Verstimmung: + + Multiply buffered value by + - - semitones - Halbtöne + + Averaging weight + - - Osc %1 fine detuning left: - Oszillator %1 Fein-Verstimmung links: + + Decrease to make averaging slower and smoother. + - - - cents - Cent + + New sample contributes + - - Osc %1 fine detuning right: - Oszillator %1 Fein-Verstimmung rechts: + + Waterfall height + - - Osc %1 phase-offset: - Oszillator %1 Phasenverschiebung: + + Increase to get slower scrolling, decrease to see fast transitions better. Warning: medium CPU usage. + - - - degrees - Grad + + Number of lines to keep: + - - Osc %1 stereo phase-detuning: - Oszillator %1 Stereo Phasenverschiebung: + + Waterfall gamma + - - Sine wave - Sinuswelle + + Decrease to see very weak signals, increase to get better contrast. + - - Triangle wave - Dreieckwelle + + Gamma value: + - - Saw wave - Sägezahnwelle + + Window overlap + - - Square wave - Rechteckwelle + + Increase to prevent missing fast transitions arriving near FFT window edges. Warning: high CPU usage. + - - Moog-like saw wave + + Number of times each sample is processed: - - Exponential wave - Exponentielle Welle + + Zero padding + - - White noise - Weißes Rauschen + + Increase to get smoother-looking spectrum. Warning: high CPU usage. + - - User-defined wave - Benutzerdefinierte Welle + + Processing buffer is + - - - VecControls - - Display persistence amount + + steps larger than input block - - Logarithmic scale + + Advanced settings - - High quality + + Access advanced settings - VecControlsDialog + lmms::gui::SampleClipView - - HQ + + Double-click to open sample - - Double the resolution and simulate continuous analog-like trace. + + Reverse sample - - Log. scale + + Set as ghost in automation editor + + + lmms::gui::SampleTrackView - - Display amplitude on logarithmic scale to better see small values. + + Mixer channel - - Persist. + + Track volume - - Trace persistence: higher amount means the trace will stay bright for longer time. + + Channel volume: - - Trace persistence + + VOL - - - VersionedSaveDialog - - Increment version number - Versionsnummer erhöhen + + Panning + - - Decrement version number - Versionsnummer vermindern + + Panning: + - - Save Options + + PAN - - already exists. Do you want to replace it? - existiert bereits. Möchten Sie es ersetzen? + + %1: %2 + - VestigeInstrumentView + lmms::gui::SampleTrackWindow - - - Open VST plugin + + Sample volume - - Control VST plugin from LMMS host + + Volume: - - Open VST plugin preset + + VOL - - Previous (-) - Vorheriges (-) - - - - Save preset - Preset speichern - - - - Next (+) - Nächstes (+) + + Panning + - - Show/hide GUI - GUI zeigen/verstecken + + Panning: + - - Turn off all notes - Alle Noten ausschalten + + PAN + - - DLL-files (*.dll) - DLL-Dateien (*.dll) + + Mixer channel + - - EXE-files (*.exe) - EXE-Dateien (*.exe) + + CHANNEL + + + + lmms::gui::SaveOptionsWidget - - No VST plugin loaded + + Discard MIDI connections - - Preset - Preset + + Save As Project Bundle (with resources) + + + + lmms::gui::SetupDialog - - by - von + + Settings + - - - VST plugin control - - VST Plugin Controller + + + General + - - - VstEffectControlDialog - - Show/hide - Anzeigen/ausblenden + + Graphical user interface (GUI) + - - Control VST plugin from LMMS host + + Display volume as dBFS - - Open VST plugin preset + + Enable tooltips - - Previous (-) - Vorheriges (-) + + Enable master oscilloscope by default + - - Next (+) - Nächstes (+) + + Enable all note labels in piano roll + - - Save preset - Preset speichern + + Enable compact track buttons + - - - Effect by: - Effekt von: + + Enable one instrument-track-window mode + - - &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> - &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> + + Show sidebar on the right-hand side + - - - VstPlugin - - - The VST plugin %1 could not be loaded. - Das VST Plugin %1 konnte nicht geladen werden. + + Let sample previews continue when mouse is released + - - Open Preset - Preset öffnen + + Mute automation tracks during solo + - - - Vst Plugin Preset (*.fxp *.fxb) - VST-Plugin-Preset (*.fxp *.fxb) + + Show warning when deleting tracks + - - : default - : Standard + + Show warning when deleting a mixer channel that is in use + - - Save Preset - Preset speichern + + Dual-button + - - .fxp - .fxp + + Grab closest + - - .FXP - .FXP + + Handles + - - .FXB - .FXB + + Loop edit mode + - - .fxb - .fxb + + Projects + - - Loading plugin - Lade Plugin + + Compress project files by default + - - Please wait while loading VST plugin... - Bitte warten, während das VST-Plugin geladen wird… + + Create a backup file when saving a project + - - - WatsynInstrument - - Volume A1 - Lautstärke A1 + + Reopen last project on startup + - - Volume A2 - Lautstärke A2 + + Language + - - Volume B1 - Lautstärke B1 + + + Performance + - - Volume B2 - Lautstärke B2 + + Autosave + - - Panning A1 - Balance A1 + + Enable autosave + - - Panning A2 - Balance A2 + + Allow autosave while playing + - - Panning B1 - Balance B1 + + User interface (UI) effects vs. performance + - - Panning B2 - Balance B2 + + Smooth scroll in song editor + - - Freq. multiplier A1 - Frequenzmultiplikator-A1 + + Display playback cursor in AudioFileProcessor + - - Freq. multiplier A2 - Frequenzmultiplikator-A2 + + Plugins + - - Freq. multiplier B1 - Frequenzmultiplikator-B1 + + VST plugins embedding: + - - Freq. multiplier B2 - Frequenzmultiplikator-B2 + + No embedding + - - Left detune A1 - Links-Verstimmung A1 + + Embed using Qt API + - - Left detune A2 - Links-Verstimmung A2 + + Embed using native Win32 API + - - Left detune B1 - Links-Verstimmung B1 + + Embed using XEmbed protocol + - - Left detune B2 - Links-Verstimmung B2 + + Keep plugin windows on top when not embedded + - - Right detune A1 - Rechts-Verstimmung A1 + + Keep effects running even without input + - - Right detune A2 - Rechts-Verstimmung A2 + + + Audio + - - Right detune B1 - Rechts-Verstimmung B1 + + Audio interface + - - Right detune B2 - Rechts-Verstimmung B2 + + Buffer size + - - A-B Mix - A-B Mischung + + Reset to default value + - - A-B Mix envelope amount - A-B Mischung Hüllkurvenintensität + + + MIDI + - - A-B Mix envelope attack - A-B Mischung Hüllkurvenanschwellzeit + + MIDI interface + - - A-B Mix envelope hold - A-B Mischung Hüllkurvenhaltezeit + + Automatically assign MIDI controller to selected track + - - A-B Mix envelope decay - A-B Mischung Hüllkurvenabfallzeit + + Behavior when recording + - - A1-B2 Crosstalk - A1-B2 Überlagerung + + Auto-quantize notes in Piano Roll + - - A2-A1 modulation - A2-A1 Modulation + + If enabled, notes will be automatically quantized when recording them from a MIDI controller. If disabled, they are always recorded at the highest possible resolution. + - - B2-B1 modulation - B2-B1 Modulation + + + Paths + - - Selected graph - Ausgewählter Graph + + LMMS working directory + - - - WatsynView - - - - - Volume - Lautstärke + + VST plugins directory + - - - - - Panning - Balance + + LADSPA plugins directories + - - - - - Freq. multiplier + + SF2 directory - - - - - Left detune + + Default SF2 - - - - - - - - - cents - Cent + + GIG directory + - - - - - Right detune + + Theme directory - - A-B Mix - A-B Mischung + + Background artwork + - - Mix envelope amount + + Some changes require restarting. - - Mix envelope attack - Hüllenkurvenanstieg mischen + + OK + - - Mix envelope hold + + Cancel - - Mix envelope decay + + minutes - - Crosstalk + + minute - - Select oscillator A1 - Oszilator A1 auswählen + + Disabled + - - Select oscillator A2 - Oszilator A2 auswählen + + Autosave interval: %1 + - - Select oscillator B1 - Oszilator B1 auswählen + + The currently selected value is not a power of 2 (32, 64, 128, 256). Some plugins may not be available. + - - Select oscillator B2 - Oszilator B2 auswählen + + The currently selected value is less than or equal to 32. Some plugins may not be available. + - - Mix output of A2 to A1 - Mische Ausgang von A2 zu A1 + + Frames: %1 +Latency: %2 ms + - - Modulate amplitude of A1 by output of A2 + + Choose the LMMS working directory - - Ring modulate A1 and A2 + + Choose your VST plugins directory - - Modulate phase of A1 by output of A2 + + Choose your LADSPA plugins directory - - Mix output of B2 to B1 - Mische Ausgang von B2 zu B1 + + Choose your SF2 directory + - - Modulate amplitude of B1 by output of B2 + + Choose your default SF2 - - Ring modulate B1 and B2 + + Choose your GIG directory - - Modulate phase of B1 by output of B2 + + Choose your theme directory - - - - - Draw your own waveform here by dragging your mouse on this graph. - Zeichnen Sie heier eigene Wellenformen, indem Sie die Maus über den Graph ziehen. + + Choose your background picture + + + + lmms::gui::Sf2InstrumentView - - Load waveform - Wellenform laden + + + Open SoundFont file + - - Load a waveform from a sample file + + Choose patch - - Phase left - Nach links verschieben + + Gain: + - - Shift phase by -15 degrees + + Apply reverb (if supported) - - Phase right - Nach rechts verschieben + + Room size: + - - Shift phase by +15 degrees + + Damping: - - - Normalize - Normalisieren + + Width: + - - - Invert - Invertieren + + + Level: + - - - Smooth - Glätten + + Apply chorus (if supported) + - - - Sine wave - Sinuswelle + + Voices: + - - - - Triangle wave - Dreieckwelle + + Speed: + - - Saw wave - Sägezahnwelle + + Depth: + - - - Square wave - Rechteckwelle + + SoundFont Files (*.sf2 *.sf3) + - Xpressive + lmms::gui::SidInstrumentView - - Selected graph - Ausgewählter Graph - - - - A1 + + Volume: - - A2 + + Resonance: - - A3 + + + Cutoff frequency: - - W1 smoothing + + High-pass filter - - W2 smoothing + + Band-pass filter - - W3 smoothing + + Low-pass filter - - Panning 1 + + Voice 3 off - - Panning 2 + + MOS6581 SID - - Rel trans + + MOS8580 SID - - - XpressiveView - - Draw your own waveform here by dragging your mouse on this graph. - Zeichnen Sie eigene Wellenformen, indem Sie die Maus über den Graph ziehen. + + + Attack: + - - Select oscillator W1 + + + Decay: - - Select oscillator W2 + + Sustain: - - Select oscillator W3 + + + Release: - - Select output O1 + + Pulse Width: - - Select output O2 + + Coarse: - - Open help window + + Pulse wave - - - Sine wave - Sinuswelle + + Triangle wave + - - - Moog-saw wave + + Saw wave - - - Exponential wave - Exponentielle Welle + + Noise + - - - Saw wave - Sägezahnwelle + + Sync + - - - User-defined wave - Benutzerdefinierte Welle + + Ring modulation + - - - Triangle wave - Dreieckwelle + + Filtered + - - - Square wave - Rechteckwelle + + Test + - - - White noise - Weißes Rauschen + + Pulse width: + + + + lmms::gui::SideBarWidget - - WaveInterpolate + + Close + + + lmms::gui::SlicerTView - - ExpressionValid + + Slice snap - - General purpose 1: + + Set slice snapping for detection - - General purpose 2: + + Sync sample - - General purpose 3: + + Enable BPM sync - - O1 panning: + + Original sample BPM - - O2 panning: + + Threshold used for slicing - - Release transition: + + Fade Out per note in milliseconds - - Smoothness + + Copy midi pattern to clipboard - - - ZynAddSubFxInstrument - - Portamento - Portamento + + Open sample selector + - - Filter frequency + + Reset slices - - Filter resonance - Filter Resonanz + + Threshold + - - Bandwidth - Bandbreite + + Fade Out + - - FM gain - FM Gain + + Reset + - - Resonance center frequency - Resonanz Mittelfrequenz + + Midi + - - Resonance bandwidth - Resonanz Bandbreite + + BPM + - - Forward MIDI control change events + + Snap - ZynAddSubFxView + lmms::gui::SlicerTWaveform - - Portamento: - Portamento: + + Click to load sample + + + + lmms::gui::SongEditor - - PORT - PORT + + Could not open file + - - Filter frequency: - Filter Frequenz: + + Could not open file %1. You probably have no permissions to read this file. + Please make sure to have at least read permissions to the file and try again. + - - FREQ - FREQ + + Operation denied + - - Filter resonance: + + A bundle folder with that name already eists on the selected path. Can't overwrite a project bundle. Please select a different name. - - RES - RES + + + + Error + - - Bandwidth: - Bandbreite: + + Couldn't create bundle folder. + - - BW - BW + + Couldn't create resources folder. + - - FM gain: + + Failed to copy resources. - - FM GAIN - FM GAIN + + + Could not write file + - - Resonance center frequency: - Zentrale Resonanzfrequenz: + + Could not open %1 for writing. You probably are not permitted to write to this file. Please make sure you have write-access to the file and try again. + - - RES CF - RES CF + + An unknown error has occurred and the file could not be saved. + - - Resonance bandwidth: - Resonanzbandbreite: + + Error in file + - - RES BW - RES BW + + The file %1 seems to contain errors and therefore can't be loaded. + - - Forward MIDI control changes + + template - - Show GUI - GUI anzeigen + + project + - - - AudioFileProcessor - - Amplify - Verstärkung + + Version difference + - - Start of sample - Sample-Anfang + + This %1 was created with LMMS %2 + - - End of sample - Sample-Ende + + Zoom + - - Loopback point - Wiederholungspunkt + + Tempo + - - Reverse sample - Sample umkehren + + TEMPO + - - Loop mode - Wiederholungsmodus + + Tempo in BPM + - - Stutter - Stottern + + + + Master volume + - - Interpolation mode - Interpolationsmodus + + + + Global transposition + - - None - Keiner + + 1/%1 Bar + - - Linear - Linear + + %1 Bars + - - Sinc - Sinc + + Value: %1% + - - Sample not found: %1 - Sample nicht gefunden: %1 + + Value: %1 keys + - BitInvader + lmms::gui::SongEditorWindow - - Sample length + + Song-Editor - - - BitInvaderView - - Sample length + + Play song (Space) - - Draw your own waveform here by dragging your mouse on this graph. - Zeichnen Sie eigene Wellenformen, indem Sie die Maus über den Graph ziehen. + + Record samples from Audio-device + - - - Sine wave - Sinuswelle + + Record samples from Audio-device while playing song or pattern track + - - - Triangle wave - Dreieckwelle + + Stop song (Space) + - - - Saw wave - Sägezahnwelle + + Track actions + - - - Square wave - Rechteckwelle + + Add pattern-track + - - - White noise - Weißes Rauschen + + Add sample-track + - - - User-defined wave - Benutzerdefinierte Welle + + Add automation-track + - - - Smooth waveform - Wellenform glätten + + Edit actions + - - Interpolation - Interpolation + + Draw mode + - - Normalize - Normalisieren + + Knife mode (split sample clips) + + + + + Edit mode (select and move) + + + + + Timeline controls + + + + + Bar insert controls + + + + + Insert bar + - - - DynProcControlDialog - - INPUT - INPUT + + Remove bar + - - Input gain: - Eingangsverstärkung: + + Zoom controls + - - OUTPUT - OUTPUT + + + Zoom + - - Output gain: - Ausgabeverstärkung: + + Snap controls + - - ATTACK - ATTACK + + + Clip snapping size + - - Peak attack time: - Spitzen Anschwellzeit: + + Toggle proportional snap on/off + - - RELEASE - RELEASE + + Base snapping size + + + + lmms::gui::StepRecorderWidget - - Peak release time: - Spitzen Ausklingzeit: + + Hint + - - - Reset wavegraph + + Move recording curser using <Left/Right> arrows + + + lmms::gui::StereoEnhancerControlDialog - - - Smooth wavegraph + + WIDTH - - - Increase wavegraph amplitude by 1 dB - Erhöhe wavegraph Amplitude um 1 dB + + Width: + + + + lmms::gui::StereoMatrixControlDialog - - - Decrease wavegraph amplitude by 1 dB - Verringere wavegraph Amplitude um 1 dB + + Left to Left Vol: + - - Stereo mode: maximum + + Left to Right Vol: - - Process based on the maximum of both stereo channels - Basierend auf dem Maximum beider Stereokanäle verarbeiten + + Right to Left Vol: + - - Stereo mode: average + + Right to Right Vol: + + + lmms::gui::SubWindow - - Process based on the average of both stereo channels - Basierend auf dem Durchschnitt beider Stereokanäle verarbeiten + + Close + - - Stereo mode: unlinked + + Maximize - - Process each stereo channel independently - Jeden Stereokanal unabhängig verarbeiten + + Restore + - DynProcControls - - - Input gain - Eingangsverstärkung - + lmms::gui::TapTempoView - - Output gain - Ausgabeverstärkung + + 0 + - - Attack time - Anschwellzeit + + + Precision + - - Release time - Ausklingzeit + + Display in high precision + - - Stereo mode - Stereomodus + + 0.0 ms + - - - graphModel - - Graph - Graph + + Mute metronome + - - - KickerInstrument - - Start frequency - Startfrequenz + + Mute + - - End frequency - Endfrequenz + + BPM in milliseconds + - - Length - Länge + + 0 ms + - - Start distortion + + Frequency of BPM - - End distortion + + 0.0000 hz - - Gain - Gain + + Reset + - - Envelope slope + + Reset counter and sidebar information - - Noise - Rauschen + + Sync + - - Click - Klick + + Sync with project tempo + - - Frequency slope + + %1 ms - - Start from note - Starte bei Note + + %1 hz + + + + lmms::gui::TemplatesMenu - - End to note - Ende bei Note + + New from template + - KickerInstrumentView + lmms::gui::TempoSyncBarModelEditor - - Start frequency: - Startfrequenz: + + + Tempo Sync + - - End frequency: - Endfrequenz: + + No Sync + - - Frequency slope: + + Eight beats - - Gain: - Gain: + + Whole note + - - Envelope length: + + Half note - - Envelope slope: + + Quarter note - - Click: - Klick: + + 8th note + - - Noise: - Rauschen: + + 16th note + - - Start distortion: + + 32nd note - - End distortion: + + Custom... - - - LadspaBrowserView - - - Available Effects - Verfügbare Effekte + + Custom + - - - Unavailable Effects - Nicht verfügbare Effekte + + Synced to Eight Beats + - - - Instruments - Instrumente + + Synced to Whole Note + - - - Analysis Tools - Analysewerkzeuge + + Synced to Half Note + - - - Don't know - Weiß nicht + + Synced to Quarter Note + - - Type: - Typ: + + Synced to 8th Note + - - - LadspaDescription - - Plugins - Plugins + + Synced to 16th Note + - - Description - Beschreibung + + Synced to 32nd Note + - LadspaPortDialog + lmms::gui::TempoSyncKnob - - Ports - Ports + + + Tempo Sync + - - Name - Name + + No Sync + - - Rate - Rate + + Eight beats + - - Direction - Richtung + + Whole note + - - Type - Typ + + Half note + - - Min < Default < Max - Min < Standard < Max + + Quarter note + - - Logarithmic - Logarithmisch + + 8th note + - - SR Dependent - SR-abhängig + + 16th note + - - Audio - Audio + + 32nd note + - - Control - Steuerung + + Custom... + - - Input - Eingang + + Custom + - - Output - Ausgang + + Synced to Eight Beats + - - Toggled - Umgeschaltet + + Synced to Whole Note + - - Integer - Ganzahl + + Synced to Half Note + - - Float - Kommazahl + + Synced to Quarter Note + - - - Yes - Ja + + Synced to 8th Note + + + + + Synced to 16th Note + + + + + Synced to 32nd Note + - Lb302Synth + lmms::gui::TimeDisplayWidget + + + Time units + + + + + MIN + + - - VCF Cutoff Frequency - VCF-Kennfrequenz + + SEC + - - VCF Resonance - VCF-Resonanz + + MSEC + - - VCF Envelope Mod - VCF-Hüllkurvenintensität + + BAR + - - VCF Envelope Decay - VCF-Hüllkurvenabfallzeit + + BEAT + - - Distortion - Verzerrung + + TICK + + + + lmms::gui::TimeLineWidget - - Waveform - Wellenform + + Auto scrolling + - - Slide Decay - Slide-Abfallzeit + + Stepped auto scrolling + - - Slide - Slide + + Continuous auto scrolling + - - Accent - Betonung + + Auto scrolling disabled + - - Dead - Stumpf + + Loop points + - - 24dB/oct Filter - 24db/Okt Filter + + After stopping go back to beginning + - - - Lb302SynthView - - Cutoff Freq: - Kennfrequenz: + + After stopping go back to position at which playing was started + - - Resonance: - Resonanz: + + After stopping keep position + - - Env Mod: - Hüllkurven-Modulation: + + Hint + - - Decay: - Abfallzeit (decay): + + Press <%1> to disable magnetic loop points. + - - 303-es-que, 24dB/octave, 3 pole filter + + Set loop begin here - - Slide Decay: - Slide-Abfallzeit: + + Set loop end here + - - DIST: - DIST: + + Loop edit mode (hold shift) + - - Saw wave - Sägezahnwelle + + Dual-button + - - Click here for a saw-wave. - Klick für eine Sägezahnwelle. + + Grab closest + - - Triangle wave - Dreieckwelle + + Handles + + + + lmms::gui::TrackContentWidget - - Click here for a triangle-wave. - Klick für eine Dreieckwelle. + + Paste + + + + lmms::gui::TrackOperationsWidget - - Square wave - Rechteckwelle + + Press <%1> while clicking on move-grip to begin a new drag'n'drop action. + - - Click here for a square-wave. - Klick für eine Rechteckwelle. + + Actions + - - Rounded square wave - Abgerundete Rechteckwelle + + + Mute + - - Click here for a square-wave with a rounded end. - Klick für eine abgerundete Rechteckwelle. + + + Solo + - - Moog wave - Moog-Welle + + After removing a track, it can not be recovered. Are you sure you want to remove track "%1"? + - - Click here for a moog-like wave. - Klick für eine Moog-ähnliche Welle. + + Confirm removal + - - Sine wave - Sinuswelle + + Don't ask again + - - Click for a sine-wave. - Klick für eine Sinuswelle. + + Clone this track + - - - White noise wave - Weißes Rauschen + + Remove this track + - - Click here for an exponential wave. - Klick für eine exponentielle-Welle. + + Clear this track + - - Click here for white-noise. - Klick für weißes Rauschen. + + Channel %1: %2 + - - Bandlimited saw wave - Bandbegrenzte Sägezahnwelle + + Assign to new Mixer Channel + - - Click here for bandlimited saw wave. - Klick für eine bandbegrenzte Sägezahnwelle. + + Turn all recording on + - - Bandlimited square wave - Bandbegrenzte Rechteckwelle + + Turn all recording off + - - Click here for bandlimited square wave. - Klick für eine bandbegrenzte Rechteckwelle. + + Track color + - - Bandlimited triangle wave - Bandlimittierte Dreieckwelle + + Change + - - Click here for bandlimited triangle wave. - Klick für eine bandbegrenzte Dreieckwelle. + + Reset + - - Bandlimited moog saw wave - Bandbegrenzte Moog-Sägezahnwelle + + Pick random + - - Click here for bandlimited moog saw wave. - Klick für eine bandbegrenzte Moog-Sägezahnwelle. + + Reset clip colors + - MalletsInstrument + lmms::gui::TripleOscillatorView - - Hardness - Härte + + Modulate phase of oscillator 1 by oscillator 2 + - - Position - Position + + Modulate amplitude of oscillator 1 by oscillator 2 + - - Vibrato gain + + Mix output of oscillators 1 & 2 - - Vibrato frequency + + Synchronize oscillator 1 with oscillator 2 - - Stick mix + + Modulate frequency of oscillator 1 by oscillator 2 - - Modulator - Modulator + + Modulate phase of oscillator 2 by oscillator 3 + - - Crossfade - Crossfade + + Modulate amplitude of oscillator 2 by oscillator 3 + - - LFO speed - LFO-Geschwindigkeit + + Mix output of oscillators 2 & 3 + - - LFO depth + + Synchronize oscillator 2 with oscillator 3 - - ADSR - ADSR + + Modulate frequency of oscillator 2 by oscillator 3 + - - Pressure - Druck + + Osc %1 volume: + - - Motion - Bewegung + + Osc %1 panning: + - - Speed - Geschwindigkeit + + Osc %1 coarse detuning: + - - Bowed - Gestrichen + + semitones + - - Spread - Weite + + Osc %1 fine detuning left: + - - Marimba - Marimba + + + cents + - - Vibraphone - Vibraphon + + Osc %1 fine detuning right: + - - Agogo - Agogo + + Osc %1 phase-offset: + - - Wood 1 + + + degrees - - Reso - Reso + + Osc %1 stereo phase-detuning: + - - Wood 2 + + Sine wave - - Beats - Beats + + Triangle wave + - - Two fixed + + Saw wave - - Clump - Clump + + Square wave + - - Tubular bells + + Moog-like saw wave - - Uniform bar + + Exponential wave - - Tuned bar + + White noise - - Glass - Glas + + User-defined wave + - - Tibetan bowl + + Use alias-free wavetable oscillators. - MalletsInstrumentView - - - Instrument - Instrument - - - - Spread - Weite - + lmms::gui::VecControlsDialog - - Spread: - Weite: - - - - Missing files - Dateien fehlen + + HQ + - - Your Stk-installation seems to be incomplete. Please make sure the full Stk-package is installed! - Ihre Stk-Installation scheit unvollständig zu sein. Bitte stellen Sie sicher, dass das Stk-Paket installiert ist. + + Double the resolution and simulate continuous analog-like trace. + - - Hardness - Härte + + Log. scale + - - Hardness: - Härte: + + Display amplitude on logarithmic scale to better see small values. + - - Position - Position + + Persist. + - - Position: - Position: + + Trace persistence: higher amount means the trace will stay bright for longer time. + - - Vibrato gain + + Trace persistence + + + lmms::gui::VersionedSaveDialog - - Vibrato gain: + + Increment version number - - Vibrato frequency + + Decrement version number - - Vibrato frequency: + + Save Options - - Stick mix + + already exists. Do you want to replace it? + + + lmms::gui::VestigeInstrumentView - - Stick mix: + + + Open VST plugin - - Modulator - Modulator + + Control VST plugin from LMMS host + - - Modulator: - Modulator: + + Open VST plugin preset + - - Crossfade - Crossfade + + Previous (-) + - - Crossfade: - Crossfade: + + Save preset + - - LFO speed - LFO-Geschwindigkeit + + Next (+) + - - LFO speed: - LFO-Geschwindigkeit: + + Show/hide GUI + - - LFO depth + + Turn off all notes - - LFO depth: + + DLL-files (*.dll) - - ADSR - ADSR + + EXE-files (*.exe) + - - ADSR: - ADSR: + + SO-files (*.so) + - - Pressure - Druck + + No VST plugin loaded + - - Pressure: - Druck: + + Preset + - - Speed - Geschwindigkeit + + by + - - Speed: - Geschwindigkeit: + + - VST plugin control + - ManageVSTEffectView + lmms::gui::VibedView - - - VST parameter control - - VST Parameter Controller + + Enable waveform + - - VST sync + + + Smooth waveform - - - Automated - Automatisiert + + + Normalize waveform + - - Close - Schließen + + + Sine wave + - - - ManageVestigeInstrumentView - - - - VST plugin control - - VST Plugin Controller + + + Triangle wave + - - VST Sync - VST-Sync + + + Saw wave + - - - Automated - Automatisiert + + + Square wave + - - Close - Schließen + + + White noise + - - - OrganicInstrument - - Distortion - Verzerrung + + + User-defined wave + - - Volume - Lautstärke + + String volume: + - - - OrganicInstrumentView - - Distortion: - Verzerrung: + + String stiffness: + - - Volume: - Lautstärke: + + Pick position: + - - Randomise - Zufallswerte + + Pickup position: + - - - Osc %1 waveform: - Oszillator %1 Wellenform: + + String panning: + - - Osc %1 volume: - Oszillator %1 Lautstärke: + + String detune: + - - Osc %1 panning: - Oszillator %1 Balance: + + String fuzziness: + - - Osc %1 stereo detuning - Oszillator %1 Stereo Verstimmung + + String length: + - - cents - Cent + + Impulse Editor + - - Osc %1 harmonic: - Oszillator %1 Harmonie: + + Impulse + - - - PatchesDialog - - Qsynth: Channel Preset + + Enable/disable string - - Bank selector + + Octave - - Bank - Bank + + String + + + + lmms::gui::VstEffectControlDialog - - Program selector - Programmwähler + + Show/hide + - - Patch - Patch + + Control VST plugin from LMMS host + - - Name - Name + + Open VST plugin preset + - - OK - OK + + Previous (-) + - - Cancel - Abbrechen + + Next (+) + - - - Sf2Instrument - - Bank - Bank + + Save preset + - - Patch - Patch + + + Effect by: + - - Gain - Gain + + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> + + + + lmms::gui::WatsynView - - Reverb - Hall + + + + + Volume + - - Reverb room size + + + + + Panning - - Reverb damping + + + + + Freq. multiplier - - Reverb width + + + + + Left detune - - Reverb level + + + + + + + + + cents - - Chorus - Chorus + + + + + Right detune + - - Chorus voices + + A-B Mix - - Chorus level + + Mix envelope amount - - Chorus speed + + Mix envelope attack - - Chorus depth + + Mix envelope hold - - A soundfont %1 could not be loaded. - Soundfont %1 konnte nicht geladen werden. + + Mix envelope decay + - - - Sf2InstrumentView - - - Open SoundFont file - SoundFont-Datei öffnen + + Crosstalk + - - Choose patch - Patch wählen + + Select oscillator A1 + - - Gain: - Gain: + + Select oscillator A2 + - - Apply reverb (if supported) - Hall anwenden (wenn unterstützt) + + Select oscillator B1 + - - Room size: + + Select oscillator B2 - - Damping: + + Mix output of A2 to A1 - - Width: - Weite: + + Modulate amplitude of A1 by output of A2 + - - - Level: + + Ring modulate A1 and A2 - - Apply chorus (if supported) - Chorus-Effekt anwenden (wenn unterstützt) + + Modulate phase of A1 by output of A2 + - - Voices: + + Mix output of B2 to B1 - - Speed: - Geschwindigkeit: + + Modulate amplitude of B1 by output of B2 + - - Depth: - Genauigkeit: + + Ring modulate B1 and B2 + - - SoundFont Files (*.sf2 *.sf3) + + Modulate phase of B1 by output of B2 - - - SfxrInstrument - - Wave + + + + + Draw your own waveform here by dragging your mouse on this graph. - - - StereoEnhancerControlDialog - - WIDTH + + Load waveform - - Width: - Weite: + + Load a waveform from a sample file + - - - StereoEnhancerControls - - Width - Weite + + Phase left + - - - StereoMatrixControlDialog - - Left to Left Vol: - Links-nach-links Lautstärke: + + Shift phase by -15 degrees + - - Left to Right Vol: - Links-nach-rechts Lautstärke: + + Phase right + - - Right to Left Vol: - Rechts-nach-links Lautstärke: + + Shift phase by +15 degrees + - - Right to Right Vol: - Rechts-nach-rechts Lautstärke: + + + Normalize + - - - StereoMatrixControls - - Left to Left - Links-nach-links + + + Invert + - - Left to Right - Links-nach-rechts + + + Smooth + - - Right to Left - Rechts-nach-links + + + Sine wave + - - Right to Right - Rechts-nach-rechts + + + + Triangle wave + - - - VestigeInstrument - - Loading plugin - Lade Plugin + + Saw wave + - - Please wait while loading the VST plugin... + + + Square wave - Vibed + lmms::gui::WaveShaperControlDialog - - String %1 volume - Seite %1 Lautstärke + + INPUT + - - String %1 stiffness - Seite %1 Härte + + Input gain: + - - Pick %1 position - Zupf-Position %1 + + OUTPUT + - - Pickup %1 position - Abnehmer-Position %1 + + Output gain: + - - String %1 panning + + + Reset wavegraph - - String %1 detune + + + Smooth wavegraph - - String %1 fuzziness + + + Increase wavegraph amplitude by 1 dB - - String %1 length + + + Decrease wavegraph amplitude by 1 dB - - Impulse %1 - Impuls %1 + + Clip input + - - String %1 + + Clip input signal to 0 dB - VibedView + lmms::gui::XpressiveView - - String volume: + + Draw your own waveform here by dragging your mouse on this graph. - - String stiffness: - Härte der Saite: - - - - Pick position: - Zupf-Position: - - - - Pickup position: - Abnehmer-Position: - - - - String panning: + + Select oscillator W1 - - String detune: + + Select oscillator W2 - - String fuzziness: + + Select oscillator W3 - - String length: + + Select output O1 - - Impulse - Impuls + + Select output O2 + - - Octave - Okatve + + Open help window + - - Impulse Editor - Impuls-Editor + + + Sine wave + - - Enable waveform - Wellenform aktivieren + + + Moog-saw wave + - - Enable/disable string + + + Exponential wave - - String - Saite + + + Saw wave + - - - Sine wave - Sinuswelle + + + User-defined wave + - - + + Triangle wave - Dreieckwelle - - - - - Saw wave - Sägezahnwelle + - - + + Square wave - Rechteckwelle + - - + + White noise - Weißes Rauschen - - - - - User-defined wave - Benutzerdefinierte Welle + - - - Smooth waveform - Wellenform glätten + + WaveInterpolate + - - - Normalize waveform - Wellenform normalisieren + + ExpressionValid + - - - VoiceObject - - Voice %1 pulse width - Stimme %1 Pulsweite + + General purpose 1: + - - Voice %1 attack - Stimme %1 Anschwellzeit + + General purpose 2: + - - Voice %1 decay - Stimme %1 Abfallzeit + + General purpose 3: + - - Voice %1 sustain - Stimme %1 Haltepegel + + O1 panning: + - - Voice %1 release - Stimme %1 Release + + O2 panning: + - - Voice %1 coarse detuning - Stimme %1 Grob-Verstimmung + + Release transition: + - - Voice %1 wave shape - Stimme %1 Wellenform + + Smoothness + + + + lmms::gui::ZynAddSubFxView - - Voice %1 sync - Stimme %1 Sync + + Portamento: + - - Voice %1 ring modulate - Stimme %1 Ringmodulation + + PORT + - - Voice %1 filtered - Stimme %1 gefiltert + + Filter frequency: + - - Voice %1 test - Stimme %1 Test + + FREQ + - - - WaveShaperControlDialog - - INPUT - INPUT + + Filter resonance: + - - Input gain: - Eingangsverstärkung: + + RES + - - OUTPUT - OUTPUT + + Bandwidth: + - - Output gain: - Ausgabeverstärkung: + + BW + - - - Reset wavegraph + + FM gain: - - - Smooth wavegraph + + FM GAIN - - - Increase wavegraph amplitude by 1 dB - Erhöhe wavegraph Amplitude um 1 dB + + Resonance center frequency: + - - - Decrease wavegraph amplitude by 1 dB - Verringere wavegraph Amplitude um 1 dB + + RES CF + - - Clip input - Eingang begrenzen + + Resonance bandwidth: + - - Clip input signal to 0 dB - Schneide das Eingangssignal bei 0 dB ab + + RES BW + - - - WaveShaperControls - - Input gain - Eingangsverstärkung + + Forward MIDI control changes + - - Output gain - Ausgabeverstärkung + + Show GUI + - + \ No newline at end of file diff --git a/data/locale/el.ts b/data/locale/el.ts index 07e61778f1e..130d5c63efb 100644 --- a/data/locale/el.ts +++ b/data/locale/el.ts @@ -5333,62 +5333,62 @@ Please make sure you have write permission to the file and the directory contain - MixerLine + MixerChannelView - + Channel send amount - + Move &left - + Move &right - + Rename &channel - + R&emove channel - + Remove &unused channels - + Set channel color - + Remove channel color - + Pick random channel color - MixerLineLcdSpinBox + MixerChannelLcdSpinBox - + Assign to: - + New mixer Channel diff --git a/data/locale/en.ts b/data/locale/en.ts index 15c3ab1f07c..246311921af 100644 --- a/data/locale/en.ts +++ b/data/locale/en.ts @@ -5335,62 +5335,62 @@ Please make sure you have write permission to the file and the directory contain - MixerLine + MixerChannelView - + Channel send amount - + Move &left - + Move &right - + Rename &channel - + R&emove channel - + Remove &unused channels - + Set channel color - + Remove channel color - + Pick random channel color - MixerLineLcdSpinBox + MixerChannelLcdSpinBox - + Assign to: - + New mixer Channel diff --git a/data/locale/eo.ts b/data/locale/eo.ts index 0dd9c405f67..88e92cda859 100644 --- a/data/locale/eo.ts +++ b/data/locale/eo.ts @@ -5333,62 +5333,62 @@ Please make sure you have write permission to the file and the directory contain - MixerLine + MixerChannelView - + Channel send amount - + Move &left - + Move &right - + Rename &channel - + R&emove channel - + Remove &unused channels - + Set channel color - + Remove channel color - + Pick random channel color - MixerLineLcdSpinBox + MixerChannelLcdSpinBox - + Assign to: - + New mixer Channel diff --git a/data/locale/es.ts b/data/locale/es.ts index 3953ddc11bf..4182096b9e5 100644 --- a/data/locale/es.ts +++ b/data/locale/es.ts @@ -1,4 +1,4 @@ - + AboutDialog @@ -69,954 +69,187 @@ If you're interested in translating LMMS in another language or want to imp - AmplifierControlDialog + AboutJuceDialog - - VOL - VOL - - - - Volume: - Volumen: - - - - PAN - PAN - - - - Panning: - Paneo: - - - - LEFT - IZQ - - - - Left gain: - Ganancia izquierda: - - - - RIGHT - DER - - - - Right gain: - Ganancia derecha: - - - - AmplifierControls - - - Volume - Volumen - - - - Panning - Paneo - - - - Left gain - Ganacia izquierda - - - - Right gain - Ganancia derecha - - - - AudioAlsaSetupWidget - - - DEVICE - DISPOSITIVO - - - - CHANNELS - CANALES - - - - AudioFileProcessorView - - - Open sample - Abrir muestra - - - - Reverse sample - Reproducir la muestra en reversa - - - - Disable loop - Desactivar bucle - - - - Enable loop - Activar bucle - - - - Enable ping-pong loop + + About JUCE - - Continue sample playback across notes - Reproducción continua a través de las notas - - - - Amplify: - Amplificar: - - - - Start point: + + <b>About JUCE</b> - - End point: + + This program uses JUCE version 3.x.x. - - Loopback point: - Inicio del bucle: + + JUCE is an open-source cross-platform C++ application framework for creating high quality desktop and mobile applications. + +The core JUCE modules (juce_audio_basics, juce_audio_devices, juce_core and juce_events) are permissively licensed under the terms of the ISC license. +Other modules are covered by a GNU GPL 3.0 license. + +Copyright (C) 2022 Raw Material Software Limited. + - - - AudioFileProcessorWaveView - - Sample length: - Longitud de la muestra: + + This program uses JUCE version + - AudioJack - - - JACK client restarted - Se ha reiniciado el cliente de JACK - - - - LMMS was kicked by JACK for some reason. Therefore the JACK backend of LMMS has been restarted. You will have to make manual connections again. - LMMS fué rechazado por JACK por alguna razón. Por lo tanto, el motor de JACK de LMMS ha sido reiniciado. Tendrás que realizar las conexiones manuales nuevamente. - - - - JACK server down - Ha fallado el servidor JACK - + AudioDeviceSetupWidget - - The JACK server seems to have been shutdown and starting a new instance failed. Therefore LMMS is unable to proceed. You should save your project and restart JACK and LMMS. - El servidor de JACK parece haberse detenido y no hemos podido lanzar una nueva instancia. Por lo tanto LMMS no puede continuar. Debes guardar tu proyecto y reiniciar JACK y LMMS. - - - - Client name + + [System Default] - - - Channels - Canales - - AudioOss + CarlaAboutW - - Device + + About Carla - - Channels - Canales + + About + Acerca de - - - AudioPortAudio::setupWidget - - Backend + + About text here - - Device + + Extended licensing here - - - AudioPulseAudio - - Device + + Artwork - - Channels - Canales - - - - AudioSdl::setupWidget - - - Device + + Using KDE Oxygen icon set, designed by Oxygen Team. - - - AudioSndio - - Device + + Contains some knobs, backgrounds and other small artwork from Calf Studio Gear, OpenAV and OpenOctave projects. - - Channels - Canales - - - - AudioSoundIo::setupWidget - - - Backend + + VST is a trademark of Steinberg Media Technologies GmbH. - - Device + + Special thanks to António Saraiva for a few extra icons and artwork! - - - AutomatableModel - - - &Reset (%1%2) - &Restaurar (%1%2) - - - &Copy value (%1%2) - &Copiar valor (%1%2) - - - - &Paste value (%1%2) - &Pegar valor (%1%2) - - - - &Paste value + + The LV2 logo has been designed by Thorsten Wilms, based on a concept from Peter Shorthose. - - Edit song-global automation - Editar la automatización global de la canción - - - - Remove song-global automation - Borrar la automatización global de la canción - - - - Remove all linked controls - Quitar todos los controles enlazados - - - - Connected to %1 - Conectado a %1 - - - - Connected to controller - Conectado al controlador - - - - Edit connection... - Editar conexión... - - - - Remove connection - Quitar conexión - - - - Connect to controller... - Conectar al controlador... - - - - AutomationEditor - - - Edit Value + + MIDI Keyboard designed by Thorsten Wilms. - - New outValue + + Carla, Carla-Control and Patchbay icons designed by DoosC. - - New inValue + + Features - - Please open an automation clip with the context menu of a control! - ¡Por favor abre un patrón de automatización con el menú contextual de un control! - - - - AutomationEditorWindow - - - Play/pause current clip (Space) - Reproducir/Pausar el patrón actual (Espacio) - - - - Stop playing of current clip (Space) - Detener la reproducción del patrón actual (Espacio) - - - - Edit actions - Acciones de edición - - - - Draw mode (Shift+D) - Modo de dibujo (Shift+D) - - - - Erase mode (Shift+E) - Modo de borrado (Shift+E) - - - - Draw outValues mode (Shift+C) + + AU/AudioUnit: - - Flip vertically - Voltear verticalmente - - - - Flip horizontally - Voltear horizontalmente - - - - Interpolation controls - Controles de interpolación - - - - Discrete progression - Interpolación escalonada - - - - Linear progression - Interpolación lineal + + LADSPA: + - - Cubic Hermite progression - Interpolación de Hermite (suave) + + + + + + + + + TextLabel + - - Tension value for spline - Valor de tensión para la spline + + VST2: + - - Tension: - Tensión: + + DSSI: + - - Zoom controls - Controles de Acercamiento + + LV2: + - - Horizontal zooming + + VST3: - - Vertical zooming + + OSC - - Quantization controls - Controles de cuantización + + Host URLs: + - - Quantization - Cuantización + + Valid commands: + - - - Automation Editor - no clip - Editor de Automatización - no hay patrón + + valid osc commands here + - - - Automation Editor - %1 - Editor de Automatización - %1 + + Example: + - - Model is already connected to this clip. - El modelo ya está conectado a este patrón. + + License + Licencia - - - AutomationClip - - Drag a control while pressing <%1> - Arrastre un control mientras presiona <%1> - - - - AutomationClipView - - - Open in Automation editor - Abrir en el editor de Automatización - - - - Clear - Limpiar - - - - Reset name - Restaurar nombre - - - - Change name - Cambiar nombre - - - - Set/clear record - Activar/Desactivar grabación - - - - Flip Vertically (Visible) - Voltear verticalmente (Visible) - - - - Flip Horizontally (Visible) - Voltear horizontalmente (Visible) - - - - %1 Connections - %1 Conexiones - - - - Disconnect "%1" - Desconectar "%1" - - - - Model is already connected to this clip. - El modelo ya está conectado a este patrón. - - - - AutomationTrack - - - Automation track - Pista de Automatización - - - - PatternEditor - - - Beat+Bassline Editor - Editor de Ritmo+Bajo - - - - Play/pause current beat/bassline (Space) - Reproducir/pausar el ritmo/bajo actual (espacio) - - - - Stop playback of current beat/bassline (Space) - Detener la reproducción del ritmo/bajo actual (Espacio) - - - - Beat selector - Selector de ritmo - - - - Track and step actions - Acciones de pista y pasos - - - - Add beat/bassline - Agregar Ritmo/bajo - - - - Clone beat/bassline clip - - - - - Add sample-track - Agregar pista de muestras - - - - Add automation-track - Agregar pista de Automatización - - - - Remove steps - Quitar pasos - - - - Add steps - Agregar pasos - - - - Clone Steps - Clonar Pasos - - - - PatternClipView - - - Open in Beat+Bassline-Editor - Abrir en Editor de Ritmo+Bajo - - - - Reset name - Restaurar nombre - - - - Change name - Cambiar nombre - - - - PatternTrack - - - Beat/Bassline %1 - Ritmo/Bajo %1 - - - - Clone of %1 - Clon de %1 - - - - BassBoosterControlDialog - - - FREQ - FREC - - - - Frequency: - Frecuencia: - - - - GAIN - GAN - - - - Gain: - Ganancia: - - - - RATIO - RAZÓN - - - - Ratio: - Razón: - - - - BassBoosterControls - - - Frequency - Frecuencia - - - - Gain - Ganancia - - - - Ratio - Razón - - - - BitcrushControlDialog - - - IN - ENTRADA - - - - OUT - SALIDA - - - - - GAIN - GAN - - - - Input gain: - Ganancia de Entrada: - - - - NOISE - RUIDO - - - - Input noise: - - - - - Output gain: - Ganancia de Salida: - - - - CLIP - RECORTE - - - - Output clip: - - - - - Rate enabled - - - - - Enable sample-rate crushing - Habilitar aplastamiento de frecuencia de muestreo - - - - Depth enabled - - - - - Enable bit-depth crushing - - - - - FREQ - FREC - - - - Sample rate: - Frecuencia de Muestreo: - - - - STEREO - ESTÉREO - - - - Stereo difference: - Diferencia estéreo: - - - - QUANT - SECUENCIADOR - - - - Levels: - Niveles: - - - - BitcrushControls - - - Input gain - Ganancia de entrada - - - - Input noise - - - - - Output gain - Ganancia de salida - - - - Output clip - - - - - Sample rate - Frecuencia de muestreo - - - - Stereo difference - - - - - Levels - Niveles - - - - Rate enabled - - - - - Depth enabled - - - - - CarlaAboutW - - - About Carla - - - - - About - Acerca de - - - - About text here - - - - - Extended licensing here - - - - - Artwork - - - - - Using KDE Oxygen icon set, designed by Oxygen Team. - - - - - Contains some knobs, backgrounds and other small artwork from Calf Studio Gear, OpenAV and OpenOctave projects. - - - - - VST is a trademark of Steinberg Media Technologies GmbH. - - - - - Special thanks to António Saraiva for a few extra icons and artwork! - - - - - The LV2 logo has been designed by Thorsten Wilms, based on a concept from Peter Shorthose. - - - - - MIDI Keyboard designed by Thorsten Wilms. - - - - - Carla, Carla-Control and Patchbay icons designed by DoosC. - - - - - Features - - - - - AU/AudioUnit: - - - - - LADSPA: - - - - - - - - - - - - TextLabel - - - - - VST2: - - - - - DSSI: - - - - - LV2: - - - - - VST3: - - - - - OSC - - - - - Host URLs: - - - - - Valid commands: - - - - - valid osc commands here - - - - - Example: - - - - - License - Licencia - - - + GNU GENERAL PUBLIC LICENSE Version 2, June 1991 @@ -1301,15035 +534,18221 @@ POSSIBILITY OF SUCH DAMAGES. - - OSC Bridge Version + + OSC Bridge Version + + + + + Plugin Version + + + + + <br>Version %1<br>Carla is a fully-featured audio plugin host%2.<br><br>Copyright (C) 2011-2019 falkTX<br> + + + + + + (Engine not running) + + + + + Everything! (Including LRDF) + + + + + Everything! (Including CustomData/Chunks) + + + + + About 110&#37; complete (using custom extensions)<br/>Implemented Feature/Extensions:<ul><li>http://lv2plug.in/ns/ext/atom</li><li>http://lv2plug.in/ns/ext/buf-size</li><li>http://lv2plug.in/ns/ext/data-access</li><li>http://lv2plug.in/ns/ext/event</li><li>http://lv2plug.in/ns/ext/instance-access</li><li>http://lv2plug.in/ns/ext/log</li><li>http://lv2plug.in/ns/ext/midi</li><li>http://lv2plug.in/ns/ext/options</li><li>http://lv2plug.in/ns/ext/parameters</li><li>http://lv2plug.in/ns/ext/port-props</li><li>http://lv2plug.in/ns/ext/presets</li><li>http://lv2plug.in/ns/ext/resize-port</li><li>http://lv2plug.in/ns/ext/state</li><li>http://lv2plug.in/ns/ext/time</li><li>http://lv2plug.in/ns/ext/uri-map</li><li>http://lv2plug.in/ns/ext/urid</li><li>http://lv2plug.in/ns/ext/worker</li><li>http://lv2plug.in/ns/extensions/ui</li><li>http://lv2plug.in/ns/extensions/units</li><li>http://home.gna.org/lv2dynparam/rtmempool/v1</li><li>http://kxstudio.sf.net/ns/lv2ext/external-ui</li><li>http://kxstudio.sf.net/ns/lv2ext/programs</li><li>http://kxstudio.sf.net/ns/lv2ext/props</li><li>http://kxstudio.sf.net/ns/lv2ext/rtmempool</li><li>http://ll-plugins.nongnu.org/lv2/ext/midimap</li><li>http://ll-plugins.nongnu.org/lv2/ext/miditype</li></ul> + + + + + + + Using Juce host + + + + + About 85% complete (missing vst bank/presets and some minor stuff) + + + + + CarlaHostW + + + MainWindow + + + + + Rack + + + + + Patchbay + + + + + Logs + + + + + Loading... + + + + + Save + + + + + Clear + + + + + Ctrl+L + + + + + Auto-Scroll + + + + + Buffer Size: + + + + + Sample Rate: + Frecuencia de Muestreo: + + + + ? Xruns + + + + + DSP Load: %p% + + + + + &File + Archivo (&F) + + + + &Engine + + + + + &Plugin + + + + + Macros (all plugins) + + + + + &Canvas + + + + + Zoom + + + + + &Settings + + + + + &Help + Ayuda (&H) + + + + Tool Bar + + + + + Disk + + + + + + Home + + + + + Transport + + + + + Playback Controls + + + + + Time Information + + + + + Frame: + + + + + 000'000'000 + + + + + Time: + Tiempo: + + + + 00:00:00 + + + + + BBT: + + + + + 000|00|0000 + + + + + Settings + Configuración + + + + BPM + + + + + Use JACK Transport + + + + + Use Ableton Link + + + + + &New + &Nuevo + + + + Ctrl+N + + + + + &Open... + Abrir...(&O) + + + + + Open... + + + + + Ctrl+O + + + + + &Save + Guardar (&S) + + + + Ctrl+S + + + + + Save &As... + Guardar Como... (&A) + + + + + Save As... + + + + + Ctrl+Shift+S + + + + + &Quit + Salir (&Q) + + + + Ctrl+Q + + + + + &Start + + + + + F5 + + + + + St&op + + + + + F6 + + + + + &Add Plugin... + + + + + Ctrl+A + + + + + &Remove All + + + + + Enable + + + + + Disable + + + + + 0% Wet (Bypass) + + + + + 100% Wet + + + + + 0% Volume (Mute) + + + + + 100% Volume + + + + + Center Balance + + + + + &Play + + + + + Ctrl+Shift+P + + + + + &Stop + + + + + Ctrl+Shift+X + + + + + &Backwards + + + + + Ctrl+Shift+B + + + + + &Forwards + + + + + Ctrl+Shift+F + + + + + &Arrange + + + + + Ctrl+G + + + + + + &Refresh + + + + + Ctrl+R + + + + + Save &Image... + + + + + Auto-Fit + + + + + Zoom In + + + + + Ctrl++ + + + + + Zoom Out + + + + + Ctrl+- + + + + + Zoom 100% + + + + + Ctrl+1 + + + + + Show &Toolbar + + + + + &Configure Carla + + + + + &About + + + + + About &JUCE + + + + + About &Qt + + + + + Show Canvas &Meters + + + + + Show Canvas &Keyboard + + + + + Show Internal + + + + + Show External + + + + + Show Time Panel + + + + + Show &Side Panel + + + + + Ctrl+P + + + + + &Connect... + + + + + Compact Slots + + + + + Expand Slots + + + + + Perform secret 1 + + + + + Perform secret 2 + + + + + Perform secret 3 + + + + + Perform secret 4 + + + + + Perform secret 5 + + + + + Add &JACK Application... + + + + + &Configure driver... + + + + + Panic + + + + + Open custom driver panel... + + + + + Save Image... (2x zoom) + + + + + Save Image... (4x zoom) + + + + + Copy as Image to Clipboard + + + + + Ctrl+Shift+C + + + + + CarlaHostWindow + + + Export as... + + + + + + + + Error + Error + + + + Failed to load project + + + + + Failed to save project + + + + + Quit + Salir + + + + Are you sure you want to quit Carla? + + + + + Could not connect to Audio backend '%1', possible reasons: +%2 + + + + + Could not connect to Audio backend '%1' + + + + + Warning + + + + + There are still some plugins loaded, you need to remove them to stop the engine. +Do you want to do this now? + + + + + CarlaSettingsW + + + Settings + Configuración + + + + main + + + + + canvas + + + + + engine + + + + + osc + + + + + file-paths + + + + + plugin-paths + + + + + wine + + + + + experimental + + + + + Widget + + + + + + Main + + + + + + Canvas + + + + + + Engine + + + + + File Paths + + + + + Plugin Paths + + + + + Wine + + + + + + Experimental + + + + + <b>Main</b> + + + + + Paths + Lugares + + + + Default project folder: + + + + + Interface + + + + + Use "Classic" as default rack skin + + + + + Interface refresh interval: + + + + + + ms + + + + + Show console output in Logs tab (needs engine restart) + + + + + Show a confirmation dialog before quitting + + + + + + Theme + + + + + Use Carla "PRO" theme (needs restart) + + + + + Color scheme: + + + + + Black + + + + + System + + + + + Enable experimental features + + + + + <b>Canvas</b> + + + + + Bezier Lines + + + + + Theme: + + + + + Size: + Tamaño: + + + + 775x600 + + + + + 1550x1200 + + + + + 3100x2400 + + + + + 4650x3600 + + + + + 6200x4800 + + + + + 12400x9600 + + + + + Options + + + + + Auto-hide groups with no ports + + + + + Auto-select items on hover + + + + + Basic eye-candy (group shadows) + + + + + Render Hints + + + + + Anti-Aliasing + + + + + Full canvas repaints (slower, but prevents drawing issues) + + + + + <b>Engine</b> + + + + + + Core + + + + + Single Client + + + + + Multiple Clients + + + + + + Continuous Rack + + + + + + Patchbay + + + + + Audio driver: + + + + + Process mode: + + + + + + + + Maximum number of parameters to allow in the built-in 'Edit' dialog + + + + + Max Parameters: + + + + + ... + + + + + Reset Xrun counter after project load + + + + + Plugin UIs + + + + + + How much time to wait for OSC GUIs to ping back the host + + + + + UI Bridge Timeout: + + + + + Use OSC-GUI bridges when possible, this way separating the UI from DSP code + + + + + Use UI bridges instead of direct handling when possible + + + + + Make plugin UIs always-on-top + + + + + Make plugin UIs appear on top of Carla (needs restart) + + + + + NOTE: Plugin-bridge UIs cannot be managed by Carla on macOS + + + + + + Restart the engine to load the new settings + + + + + <b>OSC</b> + + + + + Enable OSC + + + + + Enable TCP port + + + + + + Use specific port: + + + + + Overridden by CARLA_OSC_TCP_PORT env var + + + + + + Use randomly assigned port + + + + + Enable UDP port + + + + + Overridden by CARLA_OSC_UDP_PORT env var + + + + + DSSI UIs require OSC UDP port enabled + + + + + <b>File Paths</b> + + + + + Audio + Audio + + + + MIDI + MIDI + + + + Used for the "audiofile" plugin + + + + + Used for the "midifile" plugin + + + + + + Add... + + + + + + Remove + + + + + + Change... + + + + + <b>Plugin Paths</b> + + + + + LADSPA + + + + + DSSI + + + + + LV2 + + + + + VST2 + + + + + VST3 + + + + + SF2/3 + + + + + SFZ + + + + + JSFX + + + + + CLAP + + + + + Restart Carla to find new plugins + + + + + <b>Wine</b> + + + + + Executable + + + + + Path to 'wine' binary: + + + + + Prefix + + + + + Auto-detect Wine prefix based on plugin filename + + + + + Fallback: + + + + + Note: WINEPREFIX env var is preferred over this fallback + + + + + Realtime Priority + + + + + Base priority: + + + + + WineServer priority: + + + + + These options are not available for Carla as plugin + + + + + <b>Experimental</b> + + + + + Experimental options! Likely to be unstable! + + + + + Enable plugin bridges + + + + + Enable Wine bridges + + + + + Enable jack applications + + + + + Export single plugins to LV2 + + + + + Use system/desktop-theme icons (needs restart) + + + + + Load Carla backend in global namespace (NOT RECOMMENDED) + + + + + Fancy eye-candy (fade-in/out groups, glow connections) + + + + + Use OpenGL for rendering (needs restart) + + + + + High Quality Anti-Aliasing (OpenGL only) + + + + + Render Ardour-style "Inline Displays" + + + + + Force mono plugins as stereo by running 2 instances at the same time. +This mode is not available for VST plugins. + + + + + Force mono plugins as stereo + + + + + When enabled, Carla will try to prevent plugins from doing things that might mess up the audio or cause xruns, such as fork(), gtk_init() and similar. + + + + + Prevent unsafe calls from plugins (needs restart) + + + + + Run plugins in a separate process, so if they crash it does not affect Carla. +Plugins get automatically deactivated in such cases. +Reactvate them to start the process again, with the last saved state applied to it. + + + + + Run plugins in bridge mode when possible + + + + + + + + Add Path + + + + + Dialog + + + Carla Control - Connect + + + + + Remote setup + + + + + UDP Port: + + + + + Remote host: + + + + + TCP Port: + + + + + Set value + + + + + TextLabel + + + + + Scale Points + + + + + DriverSettingsW + + + Driver Settings + + + + + Device: + + + + + Buffer size: + + + + + Sample rate: + Frecuencia de Muestreo: + + + + Triple buffer + + + + + Show Driver Control Panel + + + + + Restart the engine to load the new settings + + + + + ExportProjectDialog + + + Export project + Exportar proyecto + + + + Export as loop (remove extra bar) + + + + + Export between loop markers + Exportar el area contenida entre los marcadores de bucle + + + + Render Looped Section: + + + + + time(s) + + + + + File format settings + + + + + File format: + Tipo de archivo: + + + + Sampling rate: + Tasa de muestreo: + + + + 44100 Hz + 44100 Hz + + + + 48000 Hz + 48000 Hz + + + + 88200 Hz + 88200 Hz + + + + 96000 Hz + 96000 Hz + + + + 192000 Hz + 192000 Hz + + + + Bit depth: + Profundidad de bits: + + + + 16 Bit integer + + + + + 24 Bit integer + + + + + 32 Bit float + + + + + Stereo mode: + MODO ESTÉREO: + + + + Mono + Mono + + + + Stereo + Estéreo + + + + Joint stereo + + + + + Compression level: + Compresor De Niveles: + + + + Bitrate: + Tasa de bits: + + + + 64 KBit/s + 64 KBit/s + + + + 128 KBit/s + 128 KBit/s + + + + 160 KBit/s + 160 KBit/s + + + + 192 KBit/s + 192 KBit/s + + + + 256 KBit/s + 256 KBit/s + + + + 320 KBit/s + 320 KBit/s + + + + Use variable bitrate + Usar tasa de bits variable + + + + Quality settings + Configuración de calidad + + + + Interpolation: + Interpolación: + + + + Zero order hold + + + + + Sinc worst (fastest) + + + + + Sinc medium (recommended) + + + + + Sinc best (slowest) + + + + + Start + Comenzar + + + + Cancel + Cancelar + + + + InstrumentFunctionNoteStacking + + + octave + octava + + + + + Major + Mayor + + + + Majb5 + Mayor b5 + + + + minor + menor + + + + minb5 + menor b5 + + + + sus2 + sus 9na + + + + sus4 + sus 4 + + + + aug + aum + + + + augsus4 + aum sus 4 + + + + tri + disminuído + + + + 6 + Mayor añad 6 + + + + 6sus4 + sus 4 añad 6 + + + + 6add9 + Mayor 6/9 + + + + m6 + menor 6 + + + + m6add9 + menor 6/9 + + + + 7 + Dominante (1 3 5 b7) + + + + 7sus4 + Dominante sus4 (1-4-5-b7) + + + + 7#5 + Dominante #5 (1-3-#5-b7) + + + + 7b5 + Dominante b5(1-3-b5-b7) + + + + 7#9 + Dominante #9 + + + + 7b9 + Dominante b9 + + + + 7#5#9 + Dominante #5 #9 + + + + 7#5b9 + Dominante #5b9 + + + + 7b5b9 + Dominante b5b9 + + + + 7add11 + Dominante añad 11 + + + + 7add13 + Dominante añad13 + + + + 7#11 + Dominante #11 + + + + Maj7 + Mayor 7M + + + + Maj7b5 + Mayor7M b5 + + + + Maj7#5 + Mayor7may #5 + + + + Maj7#11 + Mayor7may #11 + + + + Maj7add13 + Mayor7may añad13 + + + + m7 + m7(menor 7 men) + + + + m7b5 + semidisminuído (1-b3-b5-b7) + + + + m7b9 + m7 b9 + + + + m7add11 + m7 añad11 + + + + m7add13 + m7 añad13 + + + + m-Maj7 + m 7M (1-b3-5-7) + + + + m-Maj7add11 + m-7M añad11 + + + + m-Maj7add13 + m-7M añad13 + + + + 9 + Dom 9 (1-3-5-b7-9) + + + + 9sus4 + Dom 9 sus4 + + + + add9 + mayor añad 9 + + + + 9#5 + Dom #5 9 + + + + 9b5 + Dom b5 9 + + + + 9#11 + Dom 9 #11 + + + + 9b13 + Dom 9 b13 + + + + Maj9 + 9 (1-3-5-7-9) + + + + Maj9sus4 + 9sus4 (1-4-5-7-9) + + + + Maj9#5 + 9na #5 (1-3-#5-7-9) + + + + Maj9#11 + 9 #11 (1-3-5-7-9-#11) + + + + m9 + m 7/9 + + + + madd9 + m añad 9 + + + + m9b5 + semidisminuído 9 + + + + m9-Maj7 + m9-7M + + + + 11 + Dom 11 (1-3-5-b7-9-11) + + + + 11b9 + Dom b9/11 + + + + Maj11 + 11na (1-3-5-7-9-11) + + + + m11 + m 11 (1-b3-5-b7-9-11) + + + + m-Maj11 + m 7M 11 + + + + 13 + Dom 13 (...b7-9-11-13) + + + + 13#9 + Dom #9 13 + + + + 13b9 + Dom b9 13 + + + + 13b5b9 + Dom b5 b9 13 + + + + Maj13 + 13na (...7-9-11-13) + + + + m13 + m13 (...b7-9-11-13) + + + + m-Maj13 + m 7M 13 (...7-9-11-13) + + + + Harmonic minor + Menor armónica + + + + Melodic minor + Menor melódica + + + + Whole tone + Hexatónica + + + + Diminished + Escala Disminuida + + + + Major pentatonic + Pentatónica mayor + + + + Minor pentatonic + Pentatónica menor + + + + Jap in sen + In Sen (japón) + + + + Major bebop + Bebop mayor + + + + Dominant bebop + Bebop dominante + + + + Blues + Pentatónica con BlueNote + + + + Arabic + Árabe + + + + Enigmatic + Enigmática + + + + Neopolitan + Napolitana + + + + Neopolitan minor + Napolitana menor + + + + Hungarian minor + Húngara menor + + + + Dorian + modo Dórico + + + + Phrygian + Frigio + + + + Lydian + modo Lidio + + + + Mixolydian + modo Mixolidio + + + + Aeolian + modo Eólico + + + + Locrian + modo Locrio + + + + Minor + Menor Natural (Eólica) + + + + Chromatic + Cromática + + + + Half-Whole Diminished + Simétrica + + + + 5 + 5ta + + + + Phrygian dominant + Frigio dominante + + + + Persian + Persa + + + + InstrumentSoundShaping + + + VOLUME + VOLUMEN + + + + Volume + Volumen + + + + CUTOFF + CORTE + + + + Cutoff frequency + Frecuencia de corte + + + + RESO + RESO + + + + Resonance + Resonancia + + + + JackAppDialog + + + Add JACK Application + + + + + Note: Features not implemented yet are greyed out + + + + + Application + + + + + Name: + + + + + Application: + + + + + From template + + + + + Custom + + + + + Template: + + + + + Command: + + + + + Setup + + + + + Session Manager: + + + + + None + + + + + Audio inputs: + + + + + MIDI inputs: + + + + + Audio outputs: + + + + + MIDI outputs: + + + + + Take control of main application window + + + + + Workarounds + + + + + Wait for external application start (Advanced, for Debug only) + + + + + Capture only the first X11 Window + + + + + Use previous client output buffer as input for the next client + + + + + Simulate 16 JACK MIDI outputs, with MIDI channel as port index + + + + + Error here + + + + + NSM applications cannot use abstract or absolute paths + + + + + NSM applications cannot use CLI arguments + + + + + You need to save the current Carla project before NSM can be used + + + + + JuceAboutW + + + This program uses JUCE version %1. + + + + + MidiPatternW + + + MIDI Pattern + + + + + Time Signature: + + + + + + + 1/4 + + + + + 2/4 + + + + + 3/4 + + + + + 4/4 + + + + + 5/4 + + + + + 6/4 + + + + + Measures: + + + + + + + 1 + + + + + 2 + + + + + 3 + + + + + 4 + + + + + 5 + 5ta + + + + 6 + Mayor añad 6 + + + + 7 + Dominante (1 3 5 b7) + + + + 8 + + + + + 9 + Dom 9 (1-3-5-b7-9) + + + + 10 + + + + + 11 + Dom 11 (1-3-5-b7-9-11) + + + + 12 + + + + + 13 + Dom 13 (...b7-9-11-13) + + + + 14 + + + + + 15 + + + + + 16 + + + + + Default Length: + + + + + + 1/16 + + + + + + 1/15 + + + + + + 1/12 + + + + + + 1/9 + + + + + + 1/8 + + + + + + 1/6 + + + + + + 1/3 + + + + + + 1/2 + + + + + Quantize: + + + + + &File + Archivo (&F) + + + + &Edit + &Editar + + + + &Quit + Salir (&Q) + + + + Esc + + + + + &Insert Mode + + + + + F + + + + + &Velocity Mode + + + + + D + + + + + Select All + + + + + A + + + + + PatchesDialog + + + + Qsynth: Channel Preset + Qsynth: Preconfiguración del Canal + + + + + Bank selector + Selector de banco + + + + + Bank + Banco + + + + + Program selector + Selector de programa + + + + + Patch + Ajuste + + + + + Name + Nombre + + + + + OK + De acuerdo + + + + + Cancel + Cancelar + + + + PluginBrowser + + + no description + sin descripción + + + + A native amplifier plugin + Un complemento de amplificación nativo + + + + Simple sampler with various settings for using samples (e.g. drums) in an instrument-track + Sampler simple con varias configuraciones para usar muestras (por ej. percusión) en una pista de instrumento + + + + Boost your bass the fast and simple way + Realza tus graves de forma rápida y fácil + + + + Customizable wavetable synthesizer + Sintetizador de tabla de ondas personalizable + + + + An oversampling bitcrusher + Un reductor de bits de sobremuestreo + + + + Carla Patchbay Instrument + Bahía de Conexiones Carla + + + + Carla Rack Instrument + Bandeja de complementos Carla + + + + A dynamic range compressor. + + + + + A 4-band Crossover Equalizer + Un ecualizador cruzado de 4 bandas + + + + A native delay plugin + Un complemento de Delay nativo + + + + A Dual filter plugin + Un complemento de filtro dual + + + + plugin for processing dynamics in a flexible way + Complemento para procesar dinámicas de una manera flexible + + + + A native eq plugin + Un complemento de EQ nativo + + + + A native flanger plugin + Un complemento Flanger nativo + + + + Emulation of GameBoy (TM) APU + Emulación del APU de GameBoy (TM) + + + + Player for GIG files + Reproductor para archivos GIG + + + + Filter for importing Hydrogen files into LMMS + Filtro para importar archivos de Hydrogen a LMMS + + + + Versatile drum synthesizer + Sintetizador de percusión versátil + + + + List installed LADSPA plugins + Listar los complementos LADSPA instalados + + + + plugin for using arbitrary LADSPA-effects inside LMMS. + complemento para usar efectos LADSPA a voluntad en LMMS. + + + + Incomplete monophonic imitation TB-303 + + + + + plugin for using arbitrary LV2-effects inside LMMS. + + + + + plugin for using arbitrary LV2 instruments inside LMMS. + + + + + Filter for exporting MIDI-files from LMMS + Filtro para exportar archivos MIDI desde LMMS + + + + Filter for importing MIDI-files into LMMS + Filtro para importar archivos MIDI en LMMS + + + + Monstrous 3-oscillator synth with modulation matrix + Monstruoso sinte de 3 osciladores con matriz de modulación + + + + A multitap echo delay plugin + Un complemento de Multitap echo delay + + + + A NES-like synthesizer + Un sintetizador tipo-NES + + + + 2-operator FM Synth + Sintetizador FM de 2 operadores + + + + Additive Synthesizer for organ-like sounds + Sintetizador Aditivo para crear sonidos estilo órgano + + + + GUS-compatible patch instrument + Instrumento de "patches" compatible con GUS + + + + Plugin for controlling knobs with sound peaks + Complemento para controlar perillas a través de los picos de sonido + + + + Reverb algorithm by Sean Costello + Algoritmo de reverberación por Sean Costello + + + + Player for SoundFont files + Reproductor de archivos SoundFont + + + + LMMS port of sfxr + Port de sfxr para LMMS + + + + Emulation of the MOS6581 and MOS8580 SID. +This chip was used in the Commodore 64 computer. + Emulación del MOS6581 y del MOS8580 SID. +Este chip fue usado en las computadoras Commodore 64. + + + + A graphical spectrum analyzer. + + + + + Plugin for enhancing stereo separation of a stereo input file + Complemento para mejorar la separación estéreo de un archivo de entrada estéreo + + + + Plugin for freely manipulating stereo output + Complemento para manipular libremente la salida estéreo + + + + Tuneful things to bang on + Cosas melodiosas para pegarles + + + + Three powerful oscillators you can modulate in several ways + Tres poderosos osciladores que puedes modular de muchas maneras + + + + A stereo field visualizer. + + + + + VST-host for using VST(i)-plugins within LMMS + Anfitrión VST para usar complementos VST(i) en LMMS + + + + Vibrating string modeler + Modelador de cuerdas vibrantes + + + + plugin for using arbitrary VST effects inside LMMS. + complemento para usar efectos VST a voluntad en LMMS. + + + + 4-oscillator modulatable wavetable synth + Sintetizador de tabla de ondas de 4 osciladores modulables + + + + plugin for waveshaping + complemento para modelado de ondas + + + + Mathematical expression parser + Analizador de Expresión Matemática + + + + Embedded ZynAddSubFX + ZynAddSubFX integrado + + + + An all-pass filter allowing for extremely high orders. + + + + + Granular pitch shifter + + + + + Upwards/downwards multiband compression plugin powered by the eldritch elder god LOMMUS. + + + + + Basic Slicer + + + + + Tap to the beat + + + + + PluginEdit + + + Plugin Editor + + + + + Edit + + + + + Control + Control + + + + MIDI Control Channel: + + + + + N + + + + + Output dry/wet (100%) + + + + + Output volume (100%) + + + + + Balance Left (0%) + + + + + + Balance Right (0%) + + + + + Use Balance + + + + + Use Panning + + + + + Settings + Configuración + + + + Use Chunks + + + + + Audio: + + + + + Fixed-Size Buffer + + + + + Force Stereo (needs reload) + + + + + MIDI: + + + + + Map Program Changes + + + + + Send Notes + + + + + Send Bank/Program Changes + + + + + Send Control Changes + + + + + Send Channel Pressure + + + + + Send Note Aftertouch + + + + + Send Pitchbend + + + + + Send All Sound/Notes Off + + + + + +Plugin Name + + + + + + Program: + + + + + MIDI Program: + + + + + Save State + + + + + Load State + + + + + Information + + + + + Label/URI: + + + + + Name: + + + + + Type: + Tipo: + + + + Maker: + + + + + Copyright: + + + + + Unique ID: + + + + + PluginFactory + + + Plugin not found. + Complemento no encontrado + + + + LMMS plugin %1 does not have a plugin descriptor named %2! + ¡El complemento LMMS %1 no tiene un identificador llamado %2! + + + + PluginListDialog + + + Carla - Add New + + + + + Requirements + + + + + With Custom GUI + + + + + With CV Ports + + + + + Real-time safe only + + + + + Stereo only + + + + + With Inline Display + + + + + Favorites only + + + + + (Number of Plugins go here) + + + + + &Add Plugin + + + + + Cancel + + + + + Refresh + + + + + Reset filters + + + + + + + + + + + + + + + + + + + + TextLabel + + + + + Format: + + + + + Architecture: + + + + + Type: + + + + + MIDI Ins: + + + + + Audio Ins: + + + + + CV Outs: + + + + + MIDI Outs: + + + + + Parameter Ins: + + + + + Parameter Outs: + + + + + Audio Outs: + + + + + CV Ins: - - Plugin Version + + UniqueID: - - <br>Version %1<br>Carla is a fully-featured audio plugin host%2.<br><br>Copyright (C) 2011-2019 falkTX<br> + + Has Inline Display: - - - (Engine not running) + + Has Custom GUI: - - Everything! (Including LRDF) + + Is Synth: - - Everything! (Including CustomData/Chunks) + + Is Bridged: - - About 110&#37; complete (using custom extensions)<br/>Implemented Feature/Extensions:<ul><li>http://lv2plug.in/ns/ext/atom</li><li>http://lv2plug.in/ns/ext/buf-size</li><li>http://lv2plug.in/ns/ext/data-access</li><li>http://lv2plug.in/ns/ext/event</li><li>http://lv2plug.in/ns/ext/instance-access</li><li>http://lv2plug.in/ns/ext/log</li><li>http://lv2plug.in/ns/ext/midi</li><li>http://lv2plug.in/ns/ext/options</li><li>http://lv2plug.in/ns/ext/parameters</li><li>http://lv2plug.in/ns/ext/port-props</li><li>http://lv2plug.in/ns/ext/presets</li><li>http://lv2plug.in/ns/ext/resize-port</li><li>http://lv2plug.in/ns/ext/state</li><li>http://lv2plug.in/ns/ext/time</li><li>http://lv2plug.in/ns/ext/uri-map</li><li>http://lv2plug.in/ns/ext/urid</li><li>http://lv2plug.in/ns/ext/worker</li><li>http://lv2plug.in/ns/extensions/ui</li><li>http://lv2plug.in/ns/extensions/units</li><li>http://home.gna.org/lv2dynparam/rtmempool/v1</li><li>http://kxstudio.sf.net/ns/lv2ext/external-ui</li><li>http://kxstudio.sf.net/ns/lv2ext/programs</li><li>http://kxstudio.sf.net/ns/lv2ext/props</li><li>http://kxstudio.sf.net/ns/lv2ext/rtmempool</li><li>http://ll-plugins.nongnu.org/lv2/ext/midimap</li><li>http://ll-plugins.nongnu.org/lv2/ext/miditype</li></ul> + + Information - - - - Using Juce host + + Name - - About 85% complete (missing vst bank/presets and some minor stuff) + + Label/Id/URI - - - CarlaHostW - - MainWindow + + Maker - - Rack + + Binary/Filename - - Patchbay + + Format - - Logs + + Internal - - Loading... + + LADSPA - - Buffer Size: + + DSSI - - Sample Rate: - Frecuencia de Muestreo: + + LV2 + - - ? Xruns + + VST2 - - DSP Load: %p% + + VST3 - - &File - Archivo (&F) + + CLAP + - - &Engine + + AU - - &Plugin + + JSFX - - Macros (all plugins) + + Sound Kits - - &Canvas + + Type - - Zoom + + Effects - - &Settings + + Instruments - - &Help - Ayuda (&H) + + MIDI Plugins + - - toolBar + + Other/Misc - - Disk + + Category - - - Home + + All - - Transport + + Delay - - Playback Controls + + Distortion - - Time Information + + Dynamics - - Frame: + + EQ + + + + + Filter + + + + + Modulator + + + + + Synth + + + + + Utility + + + + + + Other + + + + + Architecture + + + + + + Native + + + + + Bridged + + + + + Bridged (Wine) + + + + + Focus Text Search + + + + + Ctrl+F + + + + + Bridged (32bit) + + + + + Discovering internal plugins... + + + + + Discovering LADSPA plugins... + + + + + Discovering DSSI plugins... + + + + + Discovering LV2 plugins... + + + + + Discovering VST2 plugins... + + + + + Discovering VST3 plugins... + + + + + Discovering CLAP plugins... + + + + + Discovering AU plugins... + + + + + Discovering JSFX plugins... + + + + + Discovering SF2 kits... + + + + + Discovering SFZ kits... + + + + + Unknown + + + + + + + + Yes + + + + + + + + No + + + + + PluginParameter + + + Form + + + + + Parameter Name + + + + + TextLabel + + + + + ... + + + + + PluginRefreshDialog + + + Plugin Refresh + + + + + Search for: + + + + + All plugins, ignoring cache + + + + + Updated plugins only + + + + + Check previously invalid plugins + + + + + Press 'Scan' to begin the search + + + + + Scan + + + + + >> Skip + + + + + Close + + + + + PluginWidget + + + + + + + Frame + + + + + Enable + + + + + On/Off + Encendido/Apagado + + + + + + + PluginName + + + + + MIDI + MIDI + + + + AUDIO IN + + + + + AUDIO OUT - - 000'000'000 + + GUI - - Time: - Tiempo: + + Edit + - - 00:00:00 + + Remove - - BBT: + + Plugin Name - - 000|00|0000 + + Preset: + + + ProjectRenderer - - Settings - Configuración + + WAV (*.wav) + WAV (*.wav) - - BPM - + + FLAC (*.flac) + FLAC (*.flac) - - Use JACK Transport - + + OGG (*.ogg) + OGG (*.ogg) - - Use Ableton Link - + + MP3 (*.mp3) + MP3 (*.mp3) + + + QGroupBox - - &New - &Nuevo + + + Settings for %1 + + + + QObject - - Ctrl+N + + Reload Plugin - - &Open... - Abrir...(&O) + + Show GUI + Mostrar IGU - - - Open... - + + Help + Ayuda - - Ctrl+O + + LADSPA plugins - - &Save - Guardar (&S) + + The project contains %1 LADSPA plugin(s) which might have not been restored correctly! Please check the project. + - - Ctrl+S + + URI: - - Save &As... - Guardar Como... (&A) + + Project: + - - - Save As... + + Maker: - - Ctrl+Shift+S + + Homepage: - - &Quit - Salir (&Q) + + License: + - - Ctrl+Q + + File: %1 - - &Start + + failed to load description - - F5 + + Open audio file - - St&op + + Error loading sample - - F6 + + %1 (unsupported) + + + QWidget - - &Add Plugin... - + + + Name: + Nombre: - - Ctrl+A - + + Maker: + Creador: - - &Remove All - + + Copyright: + Derechos de autor: - - Enable - + + Requires Real Time: + Requiere Tiempo Real: - - Disable - + + + + Yes + Si - - 0% Wet (Bypass) - + + + + No + No - - 100% Wet - + + Real Time Capable: + Ejecutable en Tiempo Real: - - 0% Volume (Mute) - + + In Place Broken: + Conflicto de puertos: - - 100% Volume - + + Channels In: + Canales entrantes: - - Center Balance - + + Channels Out: + Canales salientes: - - &Play - + + File: %1 + Archivo: %1 - - Ctrl+Shift+P - + + File: + Archivo: + + + XYControllerW - - &Stop + + XY Controller - - Ctrl+Shift+X + + X Controls: - - &Backwards + + Y Controls: - - Ctrl+Shift+B + + Smooth - - &Forwards + + &Settings - - Ctrl+Shift+F + + Channels - - &Arrange + + &File - - Ctrl+G + + Show MIDI &Keyboard - - - &Refresh + + (All) - - Ctrl+R + + 1 - - Save &Image... + + 2 - - Auto-Fit + + 3 - - Zoom In + + 4 - - Ctrl++ + + 5 - - Zoom Out + + 6 - - Ctrl+- + + 7 - - Zoom 100% + + 8 - - Ctrl+1 + + 9 - - Show &Toolbar + + 10 - - &Configure Carla + + 11 - - &About + + 12 - - About &JUCE + + 13 - - About &Qt + + 14 - - Show Canvas &Meters + + 15 - - Show Canvas &Keyboard + + 16 - - Show Internal + + &Quit - - Show External + + Esc - - Show Time Panel + + (None) + + + lmms::AmplifierControls - - Show &Side Panel + + Volume - - &Connect... + + Panning - - Compact Slots + + Left gain - - Expand Slots + + Right gain + + + lmms::AudioFileProcessor - - Perform secret 1 + + Amplify - - Perform secret 2 + + Start of sample - - Perform secret 3 + + End of sample - - Perform secret 4 + + Loopback point - - Perform secret 5 + + Reverse sample - - Add &JACK Application... + + Loop mode - - &Configure driver... + + Stutter - - Panic + + Interpolation mode - - Open custom driver panel... + + None - - - CarlaHostWindow - - Export as... + + Linear - - - - - Error - Error + + Sinc + - - Failed to load project + + Sample not found + + + lmms::AudioJack - - Failed to save project + + JACK client restarted - - Quit - Salir + + LMMS was kicked by JACK for some reason. Therefore the JACK backend of LMMS has been restarted. You will have to make manual connections again. + - - Are you sure you want to quit Carla? + + JACK server down - - Could not connect to Audio backend '%1', possible reasons: -%2 + + The JACK server seems to have been shutdown and starting a new instance failed. Therefore LMMS is unable to proceed. You should save your project and restart JACK and LMMS. - - Could not connect to Audio backend '%1' + + Client name - - Warning + + Channels + + + lmms::AudioOss - - There are still some plugins loaded, you need to remove them to stop the engine. -Do you want to do this now? + + Device - - - CarlaInstrumentView - - Show GUI - Mostrar IGU + + Channels + - CarlaSettingsW + lmms::AudioPortAudio::setupWidget - - Settings - Configuración - - - - main + + Backend - - canvas + + Device + + + lmms::AudioPulseAudio - - engine + + Device - - osc + + Channels + + + lmms::AudioSdl::setupWidget - - file-paths + + Playback device - - plugin-paths + + Input device + + + lmms::AudioSndio - - wine + + Device - - experimental + + Channels + + + lmms::AudioSoundIo::setupWidget - - Widget + + Backend - - - Main + + Device + + + lmms::AutomatableModel - - - Canvas + + &Reset (%1%2) - - - Engine + + &Copy value (%1%2) - - File Paths + + &Paste value (%1%2) - - Plugin Paths + + &Paste value - - Wine + + Edit song-global automation - - - Experimental + + Remove song-global automation - - <b>Main</b> + + Remove all linked controls - - Paths - Lugares + + Connected to %1 + - - Default project folder: + + Connected to controller - - Interface + + Edit connection... - - Interface refresh interval: + + Remove connection - - - ms + + Connect to controller... + + + lmms::AutomationClip - - Show console output in Logs tab (needs engine restart) + + Drag a control while pressing <%1> + + + lmms::AutomationTrack - - Show a confirmation dialog before quitting + + Automation track + + + lmms::BassBoosterControls - - - Theme + + Frequency - - Use Carla "PRO" theme (needs restart) + + Gain - - Color scheme: + + Ratio + + + lmms::BitInvader - - Black + + Sample length - - System + + Interpolation - - Enable experimental features + + Normalize + + + lmms::BitcrushControls - - <b>Canvas</b> + + Input gain - - Bezier Lines + + Input noise - - Theme: + + Output gain - - Size: - Tamaño: + + Output clip + - - 775x600 + + Sample rate - - 1550x1200 + + Stereo difference - - 3100x2400 + + Levels - - 4650x3600 + + Rate enabled - - 6200x4800 + + Depth enabled + + + lmms::Clip - - Options + + Mute + + + lmms::CompressorControls - - Auto-hide groups with no ports + + Threshold - - Auto-select items on hover + + Ratio - - Basic eye-candy (group shadows) + + Attack - - Render Hints + + Release - - Anti-Aliasing + + Knee - - Full canvas repaints (slower, but prevents drawing issues) + + Hold - - <b>Engine</b> + + Range - - - Core + + RMS Size - - Single Client + + Mid/Side - - Multiple Clients + + Peak Mode - - - Continuous Rack + + Lookahead Length - - - Patchbay + + Input Balance - - Audio driver: + + Output Balance - - Process mode: + + Limiter - - - - - Maximum number of parameters to allow in the built-in 'Edit' dialog + + Output Gain - - Max Parameters: + + Input Gain - - ... + + Blend - - Reset Xrun counter after project load + + Stereo Balance - - Plugin UIs + + Auto Makeup Gain - - - How much time to wait for OSC GUIs to ping back the host + + Audition - - UI Bridge Timeout: + + Feedback - - Use OSC-GUI bridges when possible, this way separating the UI from DSP code + + Auto Attack - - Use UI bridges instead of direct handling when possible + + Auto Release - - Make plugin UIs always-on-top + + Lookahead - - Make plugin UIs appear on top of Carla (needs restart) + + Tilt - - NOTE: Plugin-bridge UIs cannot be managed by Carla on macOS + + Tilt Frequency - - - Restart the engine to load the new settings + + Stereo Link - - <b>OSC</b> + + Mix + + + lmms::Controller - - Enable OSC + + Controller %1 + + + lmms::DelayControls - - Enable TCP port + + Delay samples - - - Use specific port: + + Feedback - - Overridden by CARLA_OSC_TCP_PORT env var + + LFO frequency - - - Use randomly assigned port + + LFO amount - - Enable UDP port + + Output gain + + + lmms::DispersionControls - - Overridden by CARLA_OSC_UDP_PORT env var + + Amount - - DSSI UIs require OSC UDP port enabled + + Frequency - - <b>File Paths</b> + + Resonance - - Audio - Audio + + Feedback + - - MIDI - MIDI + + DC Offset Removal + + + + lmms::DualFilterControls - - Used for the "audiofile" plugin + + Filter 1 enabled - - Used for the "midifile" plugin + + Filter 1 type - - - Add... + + Cutoff frequency 1 - - - Remove + + Q/Resonance 1 - - - Change... + + Gain 1 - - <b>Plugin Paths</b> + + Mix - - LADSPA + + Filter 2 enabled - - DSSI + + Filter 2 type - - LV2 + + Cutoff frequency 2 - - VST2 + + Q/Resonance 2 - - VST3 + + Gain 2 - - SF2/3 + + + Low-pass - - SFZ + + + Hi-pass - - Restart Carla to find new plugins + + + Band-pass csg - - <b>Wine</b> + + + Band-pass czpg - - Executable + + + Notch - - Path to 'wine' binary: + + + All-pass - - Prefix + + + Moog - - Auto-detect Wine prefix based on plugin filename + + + 2x Low-pass - - Fallback: + + + RC Low-pass 12 dB/oct - - Note: WINEPREFIX env var is preferred over this fallback + + + RC Band-pass 12 dB/oct - - Realtime Priority + + + RC High-pass 12 dB/oct - - Base priority: + + + RC Low-pass 24 dB/oct - - WineServer priority: + + + RC Band-pass 24 dB/oct - - These options are not available for Carla as plugin + + + RC High-pass 24 dB/oct - - <b>Experimental</b> + + + Vocal Formant - - Experimental options! Likely to be unstable! + + + 2x Moog - - Enable plugin bridges + + + SV Low-pass - - Enable Wine bridges + + + SV Band-pass - - Enable jack applications + + + SV High-pass - - Export single plugins to LV2 + + + SV Notch - - Load Carla backend in global namespace (NOT RECOMMENDED) + + + Fast Formant - - Fancy eye-candy (fade-in/out groups, glow connections) + + + Tripole + + + lmms::DynProcControls - - Use OpenGL for rendering (needs restart) + + Input gain - - High Quality Anti-Aliasing (OpenGL only) + + Output gain - - Render Ardour-style "Inline Displays" + + Attack time - - Force mono plugins as stereo by running 2 instances at the same time. -This mode is not available for VST plugins. + + Release time - - Force mono plugins as stereo + + Stereo mode + + + lmms::Effect - - Prevent plugins from doing bad stuff (needs restart) + + Effect enabled - - Whenever possible, run the plugins in bridge mode. + + Wet/Dry mix - - Run plugins in bridge mode when possible + + Gate - - - - - Add Path + + Decay - CompressorControlDialog + lmms::EffectChain - - Threshold: + + Effects enabled + + + lmms::Engine - - Volume at which the compression begins to take place + + Generating wavetables - - Ratio: - Razón: - - - - How far the compressor must turn the volume down after crossing the threshold + + Initializing data structures - - Attack: - Ataque: + + Opening audio and midi devices + - - Speed at which the compressor starts to compress the audio + + Launching audio engine threads + + + lmms::EnvelopeAndLfoParameters - - Release: - Disipación: + + Env pre-delay + - - Speed at which the compressor ceases to compress the audio + + Env attack - - Knee: + + Env hold - - Smooth out the gain reduction curve around the threshold + + Env decay - - Range: + + Env sustain - - Maximum gain reduction + + Env release - - Lookahead Length: + + Env mod amount - - How long the compressor has to react to the sidechain signal ahead of time + + LFO pre-delay - - Hold: - Mantener: + + LFO attack + - - Delay between attack and release stages + + LFO frequency - - RMS Size: + + LFO mod amount - - Size of the RMS buffer + + LFO wave shape - - Input Balance: + + LFO frequency x 100 - - Bias the input audio to the left/right or mid/side + + Modulate env amount - - Output Balance: + + Sample not found + + + lmms::EqControls - - Bias the output audio to the left/right or mid/side + + Input gain - - Stereo Balance: + + Output gain - - Bias the sidechain signal to the left/right or mid/side + + Low-shelf gain - - Stereo Link Blend: + + Peak 1 gain - - Blend between unlinked/maximum/average/minimum stereo linking modes + + Peak 2 gain - - Tilt Gain: + + Peak 3 gain - - Bias the sidechain signal to the low or high frequencies. -6 db is lowpass, 6 db is highpass. + + Peak 4 gain - - Tilt Frequency: + + High-shelf gain - - Center frequency of sidechain tilt filter + + HP res - - Mix: + + Low-shelf res - - Balance between wet and dry signals + + Peak 1 BW - - Auto Attack: + + Peak 2 BW - - Automatically control attack value depending on crest factor + + Peak 3 BW - - Auto Release: + + Peak 4 BW - - Automatically control release value depending on crest factor + + High-shelf res - - Output gain - Ganancia de salida + + LP res + - - - Gain - Ganancia + + HP freq + - - Output volume + + Low-shelf freq - - Input gain - Ganancia de entrada + + Peak 1 freq + - - Input volume + + Peak 2 freq - - Root Mean Square + + Peak 3 freq - - Use RMS of the input + + Peak 4 freq - - Peak + + High-shelf freq - - Use absolute value of the input + + LP freq - - Left/Right + + HP active - - Compress left and right audio + + Low-shelf active - - Mid/Side + + Peak 1 active - - Compress mid and side audio + + Peak 2 active - - Compressor + + Peak 3 active - - Compress the audio + + Peak 4 active - - Limiter + + High-shelf active - - Set Ratio to infinity (is not guaranteed to limit audio volume) + + LP active - - Unlinked + + LP 12 - - Compress each channel separately + + LP 24 - - Maximum + + LP 48 - - Compress based on the loudest channel + + HP 12 - - Average + + HP 24 - - Compress based on the averaged channel volume + + HP 48 - - Minimum + + Low-pass type - - Compress based on the quietest channel + + High-pass type - - Blend + + Analyse IN - - Blend between stereo linking modes + + Analyse OUT + + + lmms::FlangerControls - - Auto Makeup Gain + + Delay samples - - Automatically change makeup gain depending on threshold, knee, and ratio settings + + LFO frequency - - - Soft Clip + + Amount - - Play the delta signal + + Stereo phase - - Use the compressor's output as the sidechain input + + Feedback - - Lookahead Enabled + + Noise - - Enable Lookahead, which introduces 20 milliseconds of latency + + Invert - CompressorControls + lmms::FreeBoyInstrument - - Threshold + + Sweep time - - Ratio - Razón - - - - Attack - Ataque - - - - Release - Disipación + + Sweep direction + - - Knee + + Sweep rate shift amount - - Hold - Mantener + + + Wave pattern duty cycle + - - Range + + Channel 1 volume - - RMS Size + + + + Volume sweep direction - - Mid/Side + + + + Length of each step in sweep - - Peak Mode + + Channel 2 volume - - Lookahead Length + + Channel 3 volume - - Input Balance + + Channel 4 volume - - Output Balance + + Shift Register width - - Limiter + + Right output level - - Output Gain - Ganancia de salida + + Left output level + - - Input Gain - Ganancia de entrada + + Channel 1 to SO2 (Left) + - - Blend + + Channel 2 to SO2 (Left) - - Stereo Balance + + Channel 3 to SO2 (Left) - - Auto Makeup Gain + + Channel 4 to SO2 (Left) - - Audition + + Channel 1 to SO1 (Right) - - Feedback - Realimentacion + + Channel 2 to SO1 (Right) + - - Auto Attack + + Channel 3 to SO1 (Right) - - Auto Release + + Channel 4 to SO1 (Right) - - Lookahead + + Treble - - Tilt + + Bass + + + lmms::GigInstrument - - Tilt Frequency + + Bank - - Stereo Link + + Patch - - Mix - Mezcla + + Gain + - Controller + lmms::GranularPitchShifterControls + + + Pitch + + - - Controller %1 - Controlador %1 + + Grain Size + - - - ControllerConnectionDialog - - Connection Settings - Configuración de conexiones + + Spray + - - MIDI CONTROLLER - CONTROLADOR MIDI + + Jitter + - - Input channel - Canal de entrada + + Twitch + - - CHANNEL - CANAL + + Pitch Stereo Spread + - - Input controller - Controlador de entrada + + Spray Stereo + - - CONTROLLER - CONTROLADOR + + Shape + - - - Auto Detect - Auto-detectar + + Fade Length + - - MIDI-devices to receive MIDI-events from - Dispositivos MIDI desde los cuales recibir eventos MIDI + + Feedback + - - USER CONTROLLER - CONTROLADOR DE USUARIO + + Minimum Allowed Latency + - - MAPPING FUNCTION - FUNCIÓN DE MAPEO + + Prefilter + - - OK - De acuerdo + + Density + - - Cancel - Cancelar + + Glide + - - LMMS - LMMS + + Ring Buffer Length + - - Cycle Detected. - Ciclo detectado. + + 5 Seconds + - - - ControllerRackView - - Controller Rack - Bandeja de Controladores + + 10 Seconds (Size) + - - Add - Añadir + + 40 Seconds (Size and Pitch) + - - Confirm Delete - Confirmar borrado + + 40 Seconds (Size and Spray and Jitter) + - - Confirm delete? There are existing connection(s) associated with this controller. There is no way to undo. - ¿Confirmar borrar? Hay conexiones asociadas a este controlador. Esta acción no se puede deshacer. + + 120 Seconds (All of the above) + - ControllerView - - - Controls - Controles - + lmms::InstrumentFunctionArpeggio - - Rename controller - Renombrar el controlador + + Arpeggio + - - Enter the new name for this controller - Escribe un nombre nuevo para este controlador + + Arpeggio type + - - LFO - LFO + + Arpeggio range + - - &Remove this controller - Quita&R este controlador + + Note repeats + - - Re&name this controller - Re&nombrar este controlador + + Cycle steps + - - - CrossoverEQControlDialog - - Band 1/2 crossover: + + Skip rate - - Band 2/3 crossover: + + Miss rate - - Band 3/4 crossover: + + Arpeggio time - - Band 1 gain + + Arpeggio gate - - Band 1 gain: + + Arpeggio direction - - Band 2 gain + + Arpeggio mode - - Band 2 gain: + + Up - - Band 3 gain + + Down - - Band 3 gain: + + Up and down - - Band 4 gain + + Down and up - - Band 4 gain: + + Random - - Band 1 mute + + Free - - Mute band 1 + + Sort - - Band 2 mute + + Sync + + + lmms::InstrumentFunctionNoteStacking - - Mute band 2 + + Chords - - Band 3 mute + + Chord type - - Mute band 3 + + Chord range + + + lmms::InstrumentSoundShaping - - Band 4 mute + + Envelopes/LFOs - - Mute band 4 + + Filter type - - - DelayControls - - Delay samples - Muestras de retardo + + Cutoff frequency + - - Feedback - Realimentacion + + Q/Resonance + - - LFO frequency + + Low-pass - - LFO amount + + Hi-pass - - Output gain - Ganancia de salida + + Band-pass csg + - - - DelayControlsDialog - - DELAY - RETRASO + + Band-pass czpg + - - Delay time + + Notch - - FDBK - RETRO + + All-pass + - - Feedback amount + + Moog - - RATE - TASA + + 2x Low-pass + - - LFO frequency + + RC Low-pass 12 dB/oct - - AMNT - CANT + + RC Band-pass 12 dB/oct + - - LFO amount + + RC High-pass 12 dB/oct - - Out gain + + RC Low-pass 24 dB/oct - - Gain - Ganancia + + RC Band-pass 24 dB/oct + - - - Dialog - - Add JACK Application + + RC High-pass 24 dB/oct - - Note: Features not implemented yet are greyed out + + Vocal Formant - - Application + + 2x Moog - - Name: + + SV Low-pass - - Application: + + SV Band-pass - - From template + + SV High-pass - - Custom + + SV Notch - - Template: + + Fast Formant - - Command: + + Tripole + + + lmms::InstrumentTrack - - Setup + + + unnamed_track - - Session Manager: + + Base note - - None - Ninguno + + First note + - - Audio inputs: + + Last note - - MIDI inputs: + + Volume - - Audio outputs: + + Panning - - MIDI outputs: + + Pitch - - Take control of main application window + + Pitch range - - Workarounds + + Mixer channel - - Wait for external application start (Advanced, for Debug only) + + Master pitch - - Capture only the first X11 Window + + Enable/Disable MIDI CC - - Use previous client output buffer as input for the next client + + CC Controller %1 - - Simulate 16 JACK MIDI outputs, with MIDI channel as port index + + + Default preset + + + lmms::Keymap - - Error here + + empty + + + lmms::KickerInstrument - - Carla Control - Connect + + Start frequency - - Remote setup + + End frequency - - UDP Port: + + Length - - Remote host: + + Start distortion - - TCP Port: + + End distortion - - Reported host + + Gain - - Automatic + + Envelope slope - - Custom: + + Noise - - In some networks (like USB connections), the remote system cannot reach the local network. You can specify here which hostname or IP to make the remote Carla connect to. -If you are unsure, leave it as 'Automatic'. + + Click - - Set value + + Frequency slope - - TextLabel + + Start from note - - Scale Points + + End to note - DriverSettingsW + lmms::LOMMControls - - Driver Settings + + Depth - - Device: + + Time - - Buffer size: + + Input Volume - - Sample rate: - Frecuencia de Muestreo: + + Output Volume + - - Triple buffer + + Upward Depth - - Show Driver Control Panel + + Downward Depth - - Restart the engine to load the new settings + + High/Mid Split - - - DualFilterControlDialog - - - FREQ - FREC + + Mid/Low Split + - - - Cutoff frequency - Frecuencia de corte + + Enable High/Mid Split + - - - RESO - RESO + + Enable Mid/Low Split + - - - Resonance - Resonancia + + Enable High Band + - - - GAIN - GAN + + Enable Mid Band + - - - Gain - Ganancia + + Enable Low Band + - - MIX - MEZCLA + + High Input Volume + - - Mix - Mezcla + + Mid Input Volume + - - Filter 1 enabled - Filtro 1 activado + + Low Input Volume + - - Filter 2 enabled - Filtro 2 activado + + High Output Volume + - - Enable/disable filter 1 + + Mid Output Volume - - Enable/disable filter 2 + + Low Output Volume - - - DualFilterControls - - Filter 1 enabled - Filtro 1 activado + + Above Threshold High + - - Filter 1 type - Filtro 1 tipo + + Above Threshold Mid + - - Cutoff frequency 1 + + Above Threshold Low - - Q/Resonance 1 - Q/Resonancia 1 + + Above Ratio High + - - Gain 1 - Ganancia 1 + + Above Ratio Mid + - - Mix - Mezcla + + Above Ratio Low + - - Filter 2 enabled - Filtro 2 activado + + Below Threshold High + - - Filter 2 type - Filtro 2 tipo + + Below Threshold Mid + - - Cutoff frequency 2 + + Below Threshold Low - - Q/Resonance 2 - Q/Resonancia 2 + + Below Ratio High + - - Gain 2 - Ganancia 2 + + Below Ratio Mid + - - - Low-pass + + Below Ratio Low - - - Hi-pass + + Attack High - - - Band-pass csg + + Attack Mid - - - Band-pass czpg + + Attack Low - - - Notch - Notch + + Release High + - - - All-pass + + Release Mid - - - Moog - Moog + + Release Low + - - - 2x Low-pass + + RMS Time - - - RC Low-pass 12 dB/oct + + Knee - - - RC Band-pass 12 dB/oct + + Range - - - RC High-pass 12 dB/oct + + Balance - - - RC Low-pass 24 dB/oct + + Scale output volume with Depth - - - RC Band-pass 24 dB/oct + + Stereo Link - - - RC High-pass 24 dB/oct + + Auto Time - - - Vocal Formant + + Mix - - - 2x Moog - 2x Moog + + Feedback + - - - SV Low-pass + + Mid/Side - - - SV Band-pass + + Lookahead - - - SV High-pass + + Lookahead Length - - - SV Notch - SV Notch + + Suppress upward compression for side band + + + + lmms::LadspaControl - - - Fast Formant - Formante Rápido + + Link channels + + + + lmms::LadspaEffect - - - Tripole - Tripolar + + Unknown LADSPA plugin %1 requested. + - Editor + lmms::Lb302Synth - - Transport controls - Controles de Transporte + + VCF Cutoff Frequency + - - Play (Space) - Reproducir (Espacio) + + VCF Resonance + - - Stop (Space) - Detener (Espacio) + + VCF Envelope Mod + - - Record - Grabar + + VCF Envelope Decay + - - Record while playing - Grabar reproduciendo + + Distortion + - - Toggle Step Recording + + Waveform - - - Effect - - Effect enabled - Efecto activado + + Slide Decay + - - Wet/Dry mix - Mezcla Wet/Dry + + Slide + - - Gate - Puerta + + Accent + - - Decay - Caída + + Dead + - - - EffectChain - - Effects enabled - Efectos activados + + 24dB/oct Filter + - EffectRackView + lmms::LfoController - - EFFECTS CHAIN - CADENA DE EFECTOS + + LFO Controller + - - Add effect - Añadir efecto + + Base value + + + + + Oscillator speed + - - - EffectSelectDialog - - Add effect - Añadir efecto + + Oscillator amount + - - - Name - Nombre + + Oscillator phase + - - Type - Tipo + + Oscillator waveform + - - Description - Descripción + + Frequency Multiplier + - - Author - Autor + + Sample not found + - EffectView + lmms::MalletsInstrument - - On/Off - Encendido/Apagado + + Hardness + - - W/D - W/D + + Position + - - Wet Level: - NIvel de efecto: + + Vibrato gain + - - DECAY - CAÍDA + + Vibrato frequency + - - Time: - Tiempo: + + Stick mix + - - GATE - PUERTA + + Modulator + - - Gate: - Puerta: + + Crossfade + - - Controls - Controles + + LFO speed + - - Move &up - Mover arriba (&U) + + LFO depth + - - Move &down - Mover abajo (&D) + + ADSR + - - &Remove this plugin - Quita&r este complemento + + Pressure + - - - EnvelopeAndLfoParameters - - Env pre-delay + + Motion - - Env attack + + Speed - - Env hold + + Bowed - - Env decay + + Instrument - - Env sustain + + Spread - - Env release + + Randomness - - Env mod amount + + Marimba - - LFO pre-delay + + Vibraphone - - LFO attack + + Agogo - - LFO frequency + + Wood 1 - - LFO mod amount + + Reso - - LFO wave shape + + Wood 2 - - LFO frequency x 100 + + Beats - - Modulate env amount + + Two fixed - - - EnvelopeAndLfoView - - - DEL - RETR + + Clump + - - - Pre-delay: + + Tubular bells - - - ATT - ATA + + Uniform bar + - - - Attack: - Ataque: + + Tuned bar + - - HOLD - MANT + + Glass + - - Hold: - Mantener: + + Tibetan bowl + + + + lmms::MeterModel - - DEC - CAI + + Numerator + - - Decay: - Caída: + + Denominator + + + + lmms::Microtuner - - SUST - SOST + + Microtuner + - - Sustain: - Sostenido: + + Microtuner on / off + - - REL - DIS + + Selected scale + - - Release: - Disipación: + + Selected keyboard mapping + + + + lmms::MidiController - - - AMT - CANT + + MIDI Controller + - - - Modulation amount: - Cantidad de modulación: + + unnamed_midi_controller + + + + lmms::MidiImport - - SPD - VEL + + + Setup incomplete + - - Frequency: - Frecuencia: + + You have not set up a default soundfont in the settings dialog (Edit->Settings). Therefore no sound will be played back after importing this MIDI file. You should download a General MIDI soundfont, specify it in settings dialog and try again. + - - FREQ x 100 - FREC x 100 + + You did not compile LMMS with support for SoundFont2 player, which is used to add default sound to imported MIDI files. Therefore no sound will be played back after importing this MIDI file. + - - Multiply LFO frequency by 100 + + MIDI Time Signature Numerator - - MODULATE ENV AMOUNT + + MIDI Time Signature Denominator - - Control envelope amount by this LFO + + Numerator - - ms/LFO: - ms/LFO: + + Denominator + - - Hint - Pista + + + Tempo + - - Drag and drop a sample into this window. - Arrastre y suelte una muestra en esta ventana. + + Track + - EqControls - - - Input gain - Ganancia de entrada - + lmms::MidiJack - - Output gain - Ganancia de salida - - - - Low-shelf gain + + JACK server down + When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (title) - - Peak 1 gain - Ganancia del Pico 1 - - - - Peak 2 gain - Ganancia del Pico 2 - - - - Peak 3 gain - Ganancia del Pico 3 + + The JACK server seems to be shuted down. + When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (dialog message) + + + + lmms::MidiPort - - Peak 4 gain - Ganancia del Pico 4 + + Input channel + - - High-shelf gain + + Output channel - - HP res - PasoAlto res + + Input controller + - - Low-shelf res + + Output controller - - Peak 1 BW - Ancho de Banda del Pico 1 + + Fixed input velocity + - - Peak 2 BW - Ancho de Banda del Pico 2 + + Fixed output velocity + - - Peak 3 BW - Ancho de Banda del Pico 3 + + Fixed output note + - - Peak 4 BW - Ancho de Banda del Pico 4 + + Output MIDI program + - - High-shelf res + + Base velocity - - LP res - PasoBajo res + + Receive MIDI-events + - - HP freq - PasoAlto frec + + Send MIDI-events + + + + lmms::Mixer - - Low-shelf freq + + Master - - Peak 1 freq - Pico 1 frec + + + + Channel %1 + - - Peak 2 freq - Pico 2 frec + + Volume + - - Peak 3 freq - Pico 3 frec + + Mute + - - Peak 4 freq - Pico 4 frec + + Solo + + + + lmms::MixerRoute - - High-shelf freq + + + Amount to send from channel %1 to channel %2 + + + lmms::MonstroInstrument - - LP freq - PasoBajo frec + + Osc 1 volume + - - HP active - PasoAlto activo + + Osc 1 panning + - - Low-shelf active + + Osc 1 coarse detune - - Peak 1 active - Pico 1 activo + + Osc 1 fine detune left + - - Peak 2 active - Pico 2 activo + + Osc 1 fine detune right + - - Peak 3 active - Pico 3 activo + + Osc 1 stereo phase offset + - - Peak 4 active - Pico 4 activo + + Osc 1 pulse width + - - High-shelf active + + Osc 1 sync send on rise - - LP active - PasoBajo activo + + Osc 1 sync send on fall + - - LP 12 - PB 12 + + Osc 2 volume + - - LP 24 - PB 24 + + Osc 2 panning + - - LP 48 - PB 48 + + Osc 2 coarse detune + - - HP 12 - PA 12 + + Osc 2 fine detune left + - - HP 24 - PA 24 + + Osc 2 fine detune right + - - HP 48 - PA 48 + + Osc 2 stereo phase offset + - - Low-pass type + + Osc 2 waveform - - High-pass type + + Osc 2 sync hard - - Analyse IN - Analizar ENTRADA + + Osc 2 sync reverse + - - Analyse OUT - Analizar SALIDA + + Osc 3 volume + - - - EqControlsDialog - - HP - PA + + Osc 3 panning + - - Low-shelf + + Osc 3 coarse detune - - Peak 1 - Pico 1 + + Osc 3 Stereo phase offset + - - Peak 2 - Pico 2 + + Osc 3 sub-oscillator mix + - - Peak 3 - Pico 3 + + Osc 3 waveform 1 + - - Peak 4 - Pico 4 + + Osc 3 waveform 2 + - - High-shelf + + Osc 3 sync hard - - LP - PB + + Osc 3 Sync reverse + - - Input gain - Ganancia de entrada + + LFO 1 waveform + - - - - Gain - Ganancia + + LFO 1 attack + - - Output gain - Ganancia de salida + + LFO 1 rate + - - Bandwidth: - AnchoDeBanda: + + LFO 1 phase + - - Octave - Octava + + LFO 2 waveform + - - Resonance : - Resonancia : + + LFO 2 attack + - - Frequency: - Frecuencia: + + LFO 2 rate + - - LP group + + LFO 2 phase - - HP group + + Env 1 pre-delay - - - EqHandle - - Reso: - Reso: + + Env 1 attack + - - BW: - AB: + + Env 1 hold + - - - Freq: - Frec: + + Env 1 decay + - - - ExportProjectDialog - - Export project - Exportar proyecto + + Env 1 sustain + - - Export as loop (remove extra bar) + + Env 1 release - - Export between loop markers - Exportar el area contenida entre los marcadores de bucle + + Env 1 slope + - - Render Looped Section: + + Env 2 pre-delay - - time(s) + + Env 2 attack - - File format settings + + Env 2 hold - - File format: - Tipo de archivo: + + Env 2 decay + - - Sampling rate: - Tasa de muestreo: + + Env 2 sustain + - - 44100 Hz - 44100 Hz + + Env 2 release + - - 48000 Hz - 48000 Hz + + Env 2 slope + - - 88200 Hz - 88200 Hz + + Osc 2+3 modulation + - - 96000 Hz - 96000 Hz + + Selected view + - - 192000 Hz - 192000 Hz + + Osc 1 - Vol env 1 + - - Bit depth: - Profundidad de bits: + + Osc 1 - Vol env 2 + - - 16 Bit integer + + Osc 1 - Vol LFO 1 - - 24 Bit integer + + Osc 1 - Vol LFO 2 - - 32 Bit float + + Osc 2 - Vol env 1 - - Stereo mode: - MODO ESTÉREO: + + Osc 2 - Vol env 2 + - - Mono - Mono + + Osc 2 - Vol LFO 1 + - - Stereo - Estéreo + + Osc 2 - Vol LFO 2 + - - Joint stereo + + Osc 3 - Vol env 1 - - Compression level: - Compresor De Niveles: + + Osc 3 - Vol env 2 + - - Bitrate: - Tasa de bits: + + Osc 3 - Vol LFO 1 + - - 64 KBit/s - 64 KBit/s + + Osc 3 - Vol LFO 2 + - - 128 KBit/s - 128 KBit/s + + Osc 1 - Phs env 1 + - - 160 KBit/s - 160 KBit/s + + Osc 1 - Phs env 2 + - - 192 KBit/s - 192 KBit/s + + Osc 1 - Phs LFO 1 + - - 256 KBit/s - 256 KBit/s + + Osc 1 - Phs LFO 2 + - - 320 KBit/s - 320 KBit/s + + Osc 2 - Phs env 1 + - - Use variable bitrate - Usar tasa de bits variable + + Osc 2 - Phs env 2 + - - Quality settings - Configuración de calidad + + Osc 2 - Phs LFO 1 + - - Interpolation: - Interpolación: + + Osc 2 - Phs LFO 2 + - - Zero order hold + + Osc 3 - Phs env 1 - - Sinc worst (fastest) + + Osc 3 - Phs env 2 - - Sinc medium (recommended) + + Osc 3 - Phs LFO 1 - - Sinc best (slowest) + + Osc 3 - Phs LFO 2 - - Oversampling: - Sobremuestreo: + + Osc 1 - Pit env 1 + - - 1x (None) - 1x (Ninguno) + + Osc 1 - Pit env 2 + - - 2x - 2x + + Osc 1 - Pit LFO 1 + - - 4x - 4x + + Osc 1 - Pit LFO 2 + - - 8x - 8x + + Osc 2 - Pit env 1 + - - Start - Comenzar + + Osc 2 - Pit env 2 + - - Cancel - Cancelar + + Osc 2 - Pit LFO 1 + - - Could not open file - No se puede abrir el archivo + + Osc 2 - Pit LFO 2 + - - Could not open file %1 for writing. -Please make sure you have write permission to the file and the directory containing the file and try again! - El archivo %1 no puede abrirse para escritura. -Asegúrate de tener permisos de escritura tanto del archivo como del directorio que lo contiene e inténtalo de nuevo. + + Osc 3 - Pit env 1 + - - Export project to %1 - Exportar proyecto a %1 + + Osc 3 - Pit env 2 + - - ( Fastest - biggest ) + + Osc 3 - Pit LFO 1 - - ( Slowest - smallest ) + + Osc 3 - Pit LFO 2 - - Error - Error + + Osc 1 - PW env 1 + - - Error while determining file-encoder device. Please try to choose a different output format. - Error al determinar el dispositivo codificador. Intenta elegir un formato de salida diferente. + + Osc 1 - PW env 2 + - - Rendering: %1% - Renderizando: %1% + + Osc 1 - PW LFO 1 + - - - Fader - - Set value + + Osc 1 - PW LFO 2 - - Please enter a new value between %1 and %2: - Por favor ingresa un nuevo valor entre %1 y %2: + + Osc 3 - Sub env 1 + - - - FileBrowser - - User content + + Osc 3 - Sub env 2 - - Factory content + + Osc 3 - Sub LFO 1 - - Browser - Explorador + + Osc 3 - Sub LFO 2 + - - Search - Buscar + + + Sine wave + - - Refresh list - Actualizar Lista + + Bandlimited Triangle wave + - - - FileBrowserTreeWidget - - Send to active instrument-track - Enviar a la pista de instrumento activa + + Bandlimited Saw wave + - - Open containing folder + + Bandlimited Ramp wave - - Song Editor - Editor de Canción + + Bandlimited Square wave + + + + + Bandlimited Moog saw wave + - - BB Editor + + + Soft square wave - - Send to new AudioFileProcessor instance + + Absolute sine wave - - Send to new instrument track + + + Exponential wave - - (%2Enter) + + White noise - - Send to new sample track (Shift + Enter) + + Digital Triangle wave - - Loading sample - Cargando muestra + + Digital Saw wave + - - Please wait, loading sample for preview... - Espera por favor mientras se carga la muestra para previsualizar... + + Digital Ramp wave + - - Error - Error + + Digital Square wave + - - %1 does not appear to be a valid %2 file + + Digital Moog saw wave - - --- Factory files --- - --- Archivos de Fábrica --- + + Triangle wave + - - - FlangerControls - - Delay samples - Muestras de retardo + + Saw wave + - - LFO frequency + + Ramp wave - - Seconds - Segundos + + Square wave + - - Stereo phase + + Moog saw wave - - Regen - Intensidad + + Abs. sine wave + - - Noise - Ruido + + Random + - - Invert - Invertir + + Random smooth + - FlangerControlsDialog - - - DELAY - RETRASO - + lmms::NesInstrument - - Delay time: + + Channel 1 enable - - RATE - TASA + + Channel 1 coarse detune + - - Period: - Period: + + Channel 1 volume + - - AMNT - CANT + + Channel 1 envelope enable + - - Amount: - Cantidad: + + Channel 1 envelope loop + - - PHASE + + Channel 1 envelope length - - Phase: + + Channel 1 duty cycle - - FDBK - RETRO + + Channel 1 sweep enable + - - Feedback amount: + + Channel 1 sweep amount - - NOISE - RUIDO + + Channel 1 sweep rate + - - White noise amount: + + Channel 2 enable - - Invert - Invertir + + Channel 2 coarse detune + - - - FreeBoyInstrument - - Sweep time - Duración del barrido + + Channel 2 volume + - - Sweep direction - Dirección del barrido + + Channel 2 envelope enable + - - Sweep rate shift amount + + Channel 2 envelope loop - - - Wave pattern duty cycle + + Channel 2 envelope length - - Channel 1 volume - Canal 1 Volumen + + Channel 2 duty cycle + - - - - Volume sweep direction - Dirección del barrido de volumen + + Channel 2 sweep enable + - - - - Length of each step in sweep - Duración de cada etapa del barrido + + Channel 2 sweep amount + - - Channel 2 volume - Canal 2 Volumen + + Channel 2 sweep rate + - - Channel 3 volume - Canal 3 Volumen + + Channel 3 enable + - - Channel 4 volume - Canal 4 Volumen + + Channel 3 coarse detune + - - Shift Register width - Cambiar Amplitud del Registro + + Channel 3 volume + - - Right output level + + Channel 4 enable - - Left output level + + Channel 4 volume - - Channel 1 to SO2 (Left) - Canal 1 a SO2 (izq) + + Channel 4 envelope enable + - - Channel 2 to SO2 (Left) - Canal 2 a SO2 (izq) + + Channel 4 envelope loop + - - Channel 3 to SO2 (Left) - Canal 3 a SO2 (izq) + + Channel 4 envelope length + - - Channel 4 to SO2 (Left) - Canal 4 a SO2 (izq) + + Channel 4 noise mode + - - Channel 1 to SO1 (Right) - Canal 1 a SO1 (der) + + Channel 4 frequency mode + - - Channel 2 to SO1 (Right) - Canal 2 a SO1 (der) + + Channel 4 noise frequency + - - Channel 3 to SO1 (Right) - Canal 3 a SO1 (der) + + Channel 4 noise frequency sweep + - - Channel 4 to SO1 (Right) - Canal 4 a SO1 (der) + + Channel 4 quantize + - - Treble - Agudos + + Master volume + - - Bass - Graves + + Vibrato + - FreeBoyInstrumentView + lmms::OpulenzInstrument - - Sweep time: + + Patch - - Sweep time - Duración del barrido - - - - Sweep rate shift amount: + + Op 1 attack - - Sweep rate shift amount + + Op 1 decay - - - Wave pattern duty cycle: + + Op 1 sustain - - - Wave pattern duty cycle + + Op 1 release - - Square channel 1 volume: + + Op 1 level - - Square channel 1 volume + + Op 1 level scaling - - - - Length of each step in sweep: - Duración de cada etapa del barrido: - - - - - - Length of each step in sweep - Duración de cada etapa del barrido + + Op 1 frequency multiplier + - - Square channel 2 volume: + + Op 1 feedback - - Square channel 2 volume + + Op 1 key scaling rate - - Wave pattern channel volume: + + Op 1 percussive envelope - - Wave pattern channel volume + + Op 1 tremolo - - Noise channel volume: + + Op 1 vibrato - - Noise channel volume + + Op 1 waveform - - SO1 volume (Right): + + Op 2 attack - - SO1 volume (Right) + + Op 2 decay - - SO2 volume (Left): + + Op 2 sustain - - SO2 volume (Left) + + Op 2 release - - Treble: - Agudos: + + Op 2 level + - - Treble - Agudos + + Op 2 level scaling + - - Bass: - Graves: + + Op 2 frequency multiplier + - - Bass - Graves + + Op 2 key scaling rate + - - Sweep direction - Dirección del barrido + + Op 2 percussive envelope + - - - - - - Volume sweep direction - Dirección del barrido de volumen + + Op 2 tremolo + - - Shift register width + + Op 2 vibrato - - Channel 1 to SO1 (Right) - Canal 1 a SO1 (der) + + Op 2 waveform + - - Channel 2 to SO1 (Right) - Canal 2 a SO1 (der) + + FM + - - Channel 3 to SO1 (Right) - Canal 3 a SO1 (der) + + Vibrato depth + - - Channel 4 to SO1 (Right) - Canal 4 a SO1 (der) + + Tremolo depth + + + + lmms::OrganicInstrument - - Channel 1 to SO2 (Left) - Canal 1 a SO2 (izq) + + Distortion + - - Channel 2 to SO2 (Left) - Canal 2 a SO2 (izq) + + Volume + + + + lmms::OscillatorObject - - Channel 3 to SO2 (Left) - Canal 3 a SO2 (izq) + + Osc %1 waveform + - - Channel 4 to SO2 (Left) - Canal 4 a SO2 (izq) + + Osc %1 harmonic + - - Wave pattern graph + + + Osc %1 volume - - - MixerLine - - Channel send amount - Cantidad de envío del canal + + + Osc %1 panning + - - Move &left - Mover a la Izquierda (&L) + + Osc %1 stereo detuning + - - Move &right - Mover a la Derecha (&R) + + Osc %1 coarse detuning + - - Rename &channel - Renombrar &Canal + + Osc %1 fine detuning left + - - R&emove channel - Borrar canal (&E) + + Osc %1 fine detuning right + - - Remove &unused channels - Quitar los canales que no esten en &uso + + Osc %1 phase-offset + - - Set channel color + + Osc %1 stereo phase-detuning - - Remove channel color + + Osc %1 wave shape - - Pick random channel color + + Modulation type %1 - MixerLineLcdSpinBox + lmms::PatternTrack - - Assign to: - Asignar a: + + Pattern %1 + - - New mixer Channel - Nuevo Canal FX + + Clone of %1 + - Mixer + lmms::PeakController - - Master - Maestro + + Peak Controller + - - - - Channel %1 - FX %1 + + Peak Controller Bug + - - Volume - Volumen + + Due to a bug in older version of LMMS, the peak controllers may not be connect properly. Please ensure that peak controllers are connected properly and re-save this file. Sorry for any inconvenience caused. + + + + lmms::PeakControllerEffectControls - - Mute - Silencio + + Base value + - - Solo - Solo + + Modulation amount + - - - MixerView - - Mixer - Mezcladora FX + + Attack + - - Fader %1 - Fader FX %1 + + Release + - - Mute - Silencio + + Treshold + - - Mute this mixer channel - Silenciar este canal FX + + Mute output + - - Solo - Solo + + Absolute value + - - Solo mixer channel - Canal FX Solo + + Amount multiplicator + - MixerRoute + lmms::Plugin - - - Amount to send from channel %1 to channel %2 - Cantidad de envío del canal %1 al canal %2 + + Plugin not found + - - - GigInstrument - - Bank - Banco + + The plugin "%1" wasn't found or could not be loaded! +Reason: "%2" + - - Patch - Ajuste + + Error while loading plugin + - - Gain - Ganancia + + Failed to load plugin "%1"! + - GigInstrumentView + lmms::ReverbSCControls - - - Open GIG file - Abrir archivo GIG + + Input gain + - - Choose patch + + Size - - Gain: - Ganancia: + + Color + - - GIG Files (*.gig) - Archivos GIG (*.gig) + + Output gain + - GuiApplication - - - Working directory - Directorio de trabajo - - - - The LMMS working directory %1 does not exist. Create it now? You can change the directory later via Edit -> Settings. - El directorio de trabajo LMMS %1 no existe. ¿Deseas crearlo ahora? Puedes cambiar este directorio luego via Edición -> Configuración. - + lmms::SaControls - - Preparing UI - Preparando IU - - - - Preparing song editor - Preparando editor de canción + + Pause + - - Preparing mixer - Preparando mezclador + + Reference freeze + - - Preparing controller rack - Preparando bandeja de controladores + + Waterfall + - - Preparing project notes - Preparando notas del proyecto + + Averaging + - - Preparing beat/bassline editor - Preparando editor de ritmo/bajo + + Stereo + - - Preparing piano roll - Preparando piano roll + + Peak hold + - - Preparing automation editor - Preparando editor de automatización + + Logarithmic frequency + - - - InstrumentFunctionArpeggio - - Arpeggio - Arpegio + + Logarithmic amplitude + - - Arpeggio type - tipo de arpegio + + Frequency range + - - Arpeggio range - Extensión del arpegio + + Amplitude range + - - Note repeats + + FFT block size - - Cycle steps - Ciclar pasos + + FFT window type + - - Skip rate - Tasa de salto + + Peak envelope resolution + - - Miss rate - Tasa de omisión + + Spectrum display resolution + - - Arpeggio time - Duración del arpegio + + Peak decay multiplier + - - Arpeggio gate - Puerta del arpegio + + Averaging weight + - - Arpeggio direction - Dirección del arpegio + + Waterfall history size + - - Arpeggio mode - Modo del arpegio + + Waterfall gamma correction + - - Up - Arriba + + FFT window overlap + - - Down - Abajo + + FFT zero padding + - - Up and down - Arriba y abajo + + + Full (auto) + - - Down and up - Abajo y arriba + + + + Audible + - - Random - Aleatorio + + Bass + - - Free - Libre + + Mids + - - Sort - Ordenado + + High + - - Sync - Sincronizado + + Extended + - - - InstrumentFunctionArpeggioView - - ARPEGGIO - ARPEGIO + + Loud + - - RANGE - EXTENSIÓN + + Silent + - - Arpeggio range: - Extensión del arpegio: + + (High time res.) + - - octave(s) - octava(s) + + (High freq. res.) + - - REP + + Rectangular (Off) - - Note repeats: + + + Blackman-Harris (Default) - - time(s) + + Hamming - - CYCLE - CICLO + + Hanning + + + + lmms::SampleClip - - Cycle notes: - Ciclar notas: + + Sample not found + + + + lmms::SampleTrack - - note(s) - nota(s) + + Volume + - - SKIP - SALTAR + + Panning + - - Skip rate: - Tasa de salto: + + Mixer channel + - - - - % - % + + + Sample track + + + + lmms::Scale - - MISS - OMITIR + + empty + + + + lmms::Sf2Instrument - - Miss rate: - Tasa de omisión: + + Bank + - - TIME - DURACIÓN + + Patch + - - Arpeggio time: - Duración de las notas (ms): + + Gain + - - ms - ms + + Reverb + - - GATE - PUERTA + + Reverb room size + - - Arpeggio gate: - Puerta del arpegio: + + Reverb damping + - - Chord: - Acorde: + + Reverb width + - - Direction: - Dirección: + + Reverb level + - - Mode: - Modo: + + Chorus + - - - InstrumentFunctionNoteStacking - - octave - octava + + Chorus voices + - - - Major - Mayor + + Chorus level + - - Majb5 - Mayor b5 + + Chorus speed + - - minor - menor + + Chorus depth + - - minb5 - menor b5 + + A soundfont %1 could not be loaded. + + + + lmms::SfxrInstrument - - sus2 - sus 9na + + Wave + + + + lmms::SidInstrument - - sus4 - sus 4 + + Cutoff frequency + - - aug - aum + + Resonance + - - augsus4 - aum sus 4 + + Filter type + - - tri - disminuído + + Voice 3 off + - - 6 - Mayor añad 6 + + Volume + - - 6sus4 - sus 4 añad 6 + + Chip model + + + + lmms::SlicerT - - 6add9 - Mayor 6/9 + + Note threshold + - - m6 - menor 6 + + FadeOut + - - m6add9 - menor 6/9 + + Original bpm + - - 7 - Dominante (1 3 5 b7) + + Slice snap + - - 7sus4 - Dominante sus4 (1-4-5-b7) + + BPM sync + - - 7#5 - Dominante #5 (1-3-#5-b7) + + + slice_%1 + - - 7b5 - Dominante b5(1-3-b5-b7) + + Sample not found: %1 + + + + lmms::Song - - 7#9 - Dominante #9 + + Tempo + - - 7b9 - Dominante b9 + + Master volume + - - 7#5#9 - Dominante #5 #9 + + Master pitch + - - 7#5b9 - Dominante #5b9 + + Aborting project load + - - 7b5b9 - Dominante b5b9 + + Project file contains local paths to plugins, which could be used to run malicious code. + - - 7add11 - Dominante añad 11 + + Can't load project: Project file contains local paths to plugins. + - - 7add13 - Dominante añad13 + + LMMS Error report + - - 7#11 - Dominante #11 + + (repeated %1 times) + - - Maj7 - Mayor 7M + + The following errors occurred while loading: + + + + lmms::StereoEnhancerControls - - Maj7b5 - Mayor7M b5 + + Width + + + + lmms::StereoMatrixControls - - Maj7#5 - Mayor7may #5 + + Left to Left + - - Maj7#11 - Mayor7may #11 + + Left to Right + - - Maj7add13 - Mayor7may añad13 + + Right to Left + - - m7 - m7(menor 7 men) + + Right to Right + + + + lmms::Track - - m7b5 - semidisminuído (1-b3-b5-b7) + + Mute + - - m7b9 - m7 b9 + + Solo + + + + lmms::TrackContainer - - m7add11 - m7 añad11 + + Couldn't import file + - - m7add13 - m7 añad13 + + Couldn't find a filter for importing file %1. +You should convert this file into a format supported by LMMS using another software. + - - m-Maj7 - m 7M (1-b3-5-7) + + Couldn't open file + - - m-Maj7add11 - m-7M añad11 + + Couldn't open file %1 for reading. +Please make sure you have read-permission to the file and the directory containing the file and try again! + - - m-Maj7add13 - m-7M añad13 + + Loading project... + - - 9 - Dom 9 (1-3-5-b7-9) + + + Cancel + - - 9sus4 - Dom 9 sus4 + + + Please wait... + - - add9 - mayor añad 9 + + Loading cancelled + - - 9#5 - Dom #5 9 + + Project loading was cancelled. + - - 9b5 - Dom b5 9 + + Loading Track %1 (%2/Total %3) + - - 9#11 - Dom 9 #11 + + Importing MIDI-file... + + + + lmms::TripleOscillator - - 9b13 - Dom 9 b13 + + Sample not found + + + + lmms::VecControls - - Maj9 - 9 (1-3-5-7-9) + + Display persistence amount + - - Maj9sus4 - 9sus4 (1-4-5-7-9) + + Logarithmic scale + - - Maj9#5 - 9na #5 (1-3-#5-7-9) + + High quality + + + + lmms::VestigeInstrument - - Maj9#11 - 9 #11 (1-3-5-7-9-#11) + + Loading plugin + - - m9 - m 7/9 + + Please wait while loading the VST plugin... + + + + lmms::Vibed - - madd9 - m añad 9 + + String %1 volume + - - m9b5 - semidisminuído 9 + + String %1 stiffness + - - m9-Maj7 - m9-7M + + Pick %1 position + - - 11 - Dom 11 (1-3-5-b7-9-11) + + Pickup %1 position + - - 11b9 - Dom b9/11 + + String %1 panning + - - Maj11 - 11na (1-3-5-7-9-11) + + String %1 detune + - - m11 - m 11 (1-b3-5-b7-9-11) + + String %1 fuzziness + - - m-Maj11 - m 7M 11 + + String %1 length + - - 13 - Dom 13 (...b7-9-11-13) + + Impulse %1 + - - 13#9 - Dom #9 13 + + String %1 + + + + lmms::VoiceObject - - 13b9 - Dom b9 13 + + Voice %1 pulse width + - - 13b5b9 - Dom b5 b9 13 + + Voice %1 attack + - - Maj13 - 13na (...7-9-11-13) + + Voice %1 decay + - - m13 - m13 (...b7-9-11-13) + + Voice %1 sustain + - - m-Maj13 - m 7M 13 (...7-9-11-13) + + Voice %1 release + - - Harmonic minor - Menor armónica + + Voice %1 coarse detuning + - - Melodic minor - Menor melódica + + Voice %1 wave shape + - - Whole tone - Hexatónica + + Voice %1 sync + - - Diminished - Escala Disminuida + + Voice %1 ring modulate + - - Major pentatonic - Pentatónica mayor + + Voice %1 filtered + - - Minor pentatonic - Pentatónica menor + + Voice %1 test + + + + lmms::VstPlugin - - Jap in sen - In Sen (japón) + + + The VST plugin %1 could not be loaded. + - - Major bebop - Bebop mayor + + Open Preset + - - Dominant bebop - Bebop dominante + + + VST Plugin Preset (*.fxp *.fxb) + - - Blues - Pentatónica con BlueNote + + : default + - - Arabic - Árabe + + Save Preset + - - Enigmatic - Enigmática + + .fxp + - - Neopolitan - Napolitana + + .FXP + - - Neopolitan minor - Napolitana menor + + .FXB + - - Hungarian minor - Húngara menor + + .fxb + - - Dorian - modo Dórico + + Loading plugin + - - Phrygian - Frigio + + Please wait while loading VST plugin... + + + + lmms::WatsynInstrument - - Lydian - modo Lidio + + Volume A1 + - - Mixolydian - modo Mixolidio + + Volume A2 + - - Aeolian - modo Eólico + + Volume B1 + - - Locrian - modo Locrio + + Volume B2 + - - Minor - Menor Natural (Eólica) + + Panning A1 + - - Chromatic - Cromática + + Panning A2 + - - Half-Whole Diminished - Simétrica + + Panning B1 + - - 5 - 5ta + + Panning B2 + - - Phrygian dominant - Frigio dominante + + Freq. multiplier A1 + - - Persian - Persa + + Freq. multiplier A2 + - - Chords - Acordes + + Freq. multiplier B1 + - - Chord type - Tipo de acorde + + Freq. multiplier B2 + - - Chord range - Extensión del acorde + + Left detune A1 + - - - InstrumentFunctionNoteStackingView - - STACKING - SUPERPOSICIÓN + + Left detune A2 + - - Chord: - Acorde: + + Left detune B1 + - - RANGE - EXTENSIÓN + + Left detune B2 + - - Chord range: - Extensión del acorde: + + Right detune A1 + - - octave(s) - octava(s) + + Right detune A2 + - - - InstrumentMidiIOView - - ENABLE MIDI INPUT - HABILITAR ENTRADA MIDI + + Right detune B1 + - - ENABLE MIDI OUTPUT - HABILITAR SALIDA MIDI + + Right detune B2 + - - - CHAN - This string must be be short, its width must be less than * width of LCD spin-box of two digits + + A-B Mix - - - VELOC - This string must be be short, its width must be less than * width of LCD spin-box of three digits + + A-B Mix envelope amount - - PROG - This string must be be short, its width must be less than the * width of LCD spin-box of three digits + + A-B Mix envelope attack - - NOTE - This string must be be short, its width must be less than * width of LCD spin-box of three digits - NOTA + + A-B Mix envelope hold + - - MIDI devices to receive MIDI events from - Dispositivos MIDI desde los cuales recibir eventos MIDI + + A-B Mix envelope decay + - - MIDI devices to send MIDI events to - Dispositivos MIDI hacia los cuales enviar eventos MIDI + + A1-B2 Crosstalk + - - CUSTOM BASE VELOCITY - VELOCIDAD BÁSICA PERSONALIZADA + + A2-A1 modulation + - - Specify the velocity normalization base for MIDI-based instruments at 100% note velocity. + + B2-B1 modulation - - BASE VELOCITY - VELOCIDAD BÁSICA + + Selected graph + - InstrumentTuningView + lmms::WaveShaperControls - - MASTER PITCH - TRANSPORTE + + Input gain + - - Enables the use of master pitch + + Output gain - InstrumentSoundShaping + lmms::Xpressive - - VOLUME - VOLUMEN + + Selected graph + - - Volume - Volumen + + A1 + - - CUTOFF - CORTE + + A2 + - - - Cutoff frequency - Frecuencia de corte + + A3 + - - RESO - RESO + + W1 smoothing + - - Resonance - Resonancia + + W2 smoothing + - - Envelopes/LFOs - Envolventes/LFOs + + W3 smoothing + - - Filter type - Tipo de filtro + + Panning 1 + - - Q/Resonance - Q/Resonancia + + Panning 2 + - - Low-pass + + Rel trans + + + lmms::ZynAddSubFxInstrument - - Hi-pass + + Portamento - - Band-pass csg + + Filter frequency - - Band-pass czpg + + Filter resonance - - Notch - Notch + + Bandwidth + - - All-pass + + FM gain - - Moog - Moog + + Resonance center frequency + - - 2x Low-pass + + Resonance bandwidth - - RC Low-pass 12 dB/oct + + Forward MIDI control change events + + + lmms::graphModel - - RC Band-pass 12 dB/oct + + Graph + + + lmms::gui::AmplifierControlDialog - - RC High-pass 12 dB/oct + + VOL - - RC Low-pass 24 dB/oct + + Volume: - - RC Band-pass 24 dB/oct + + PAN - - RC High-pass 24 dB/oct + + Panning: - - Vocal Formant + + LEFT - - 2x Moog - 2x Moog + + Left gain: + - - SV Low-pass + + RIGHT - - SV Band-pass + + Right gain: + + + lmms::gui::AudioAlsaSetupWidget - - SV High-pass + + Device - - SV Notch - SV Notch + + Channels + + + + lmms::gui::AudioFileProcessorView - - Fast Formant - Formante Rápido + + Open sample + - - Tripole - Tripolar + + Reverse sample + - - - InstrumentSoundShapingView - - TARGET - DESTINO + + Disable loop + - - FILTER - FILTRO + + Enable loop + - - FREQ - FREC + + Enable ping-pong loop + - - Cutoff frequency: - Frecuencia de corte: + + Continue sample playback across notes + - - Hz - Hz + + Amplify: + + + + + Start point: + - - Q/RESO + + End point: - - Q/Resonance: + + Loopback point: + + + lmms::gui::AudioFileProcessorWaveView - - Envelopes, LFOs and filters are not supported by the current instrument. - Envolventes, LFOx y filtros no son soportados por este instrumento. + + Sample length: + - InstrumentTrack + lmms::gui::AutomationClipView - - - unnamed_track - pista_sin_título + + Open in Automation editor + - - Base note - Nota base + + Clear + - - First note + + Reset name - - Last note - Ultima nota + + Change name + - - Volume - Volumen + + Set/clear record + - - Panning - Paneo + + Flip Vertically (Visible) + - - Pitch - Altura + + Flip Horizontally (Visible) + - - Pitch range - Registro + + %1 Connections + - - Mixer channel - Canal FX + + Disconnect "%1" + - - Master pitch - Transporte + + Model is already connected to this clip. + + + + lmms::gui::AutomationEditor - - Enable/Disable MIDI CC + + Edit Value - - CC Controller %1 + + New outValue - - - Default preset - Configuración predeterminada + + New inValue + + + + + Please open an automation clip by double-clicking on it! + - InstrumentTrackView + lmms::gui::AutomationEditorWindow - - Volume - Volumen + + Play/pause current clip (Space) + - - Volume: - Volumen: + + Stop playing of current clip (Space) + - - VOL - VOL + + Edit actions + - - Panning - Paneo + + Draw mode (Shift+D) + - - Panning: - Paneo: + + Erase mode (Shift+E) + - - PAN - PAN + + Draw outValues mode (Shift+C) + - - MIDI - MIDI + + Edit tangents mode (Shift+T) + - - Input - Entrada + + Flip vertically + - - Output - Salida + + Flip horizontally + - - Open/Close MIDI CC Rack + + Interpolation controls - - Channel %1: %2 - FX %1: %2 + + Discrete progression + - - - InstrumentTrackWindow - - GENERAL SETTINGS - CONFIGURACIÓN GENERAL + + Linear progression + - - Volume - Volumen + + Cubic Hermite progression + - - Volume: - Volumen: + + Tension value for spline + - - VOL - VOL + + Tension: + - - Panning - Paneo + + Zoom controls + - - Panning: - Paneo: + + Horizontal zooming + - - PAN - PAN + + Vertical zooming + - - Pitch - Altura + + Quantization controls + - - Pitch: - Altura: + + Quantization + - - cents - cents + + Clear ghost notes + - - PITCH - ALTURA + + + Automation Editor - no clip + - - Pitch range (semitones) - Extensión (en semitonos) + + + Automation Editor - %1 + - - RANGE - EXTENSIÓN + + Model is already connected to this clip. + + + + lmms::gui::BassBoosterControlDialog - - Mixer channel - Canal FX + + FREQ + - - CHANNEL - FX + + Frequency: + - - Save current instrument track settings in a preset file - Guardar la configuración de esta pista de instrumento en un archivo de preconfiguración + + GAIN + - - SAVE - GUARDAR + + Gain: + - - Envelope, filter & LFO - Sobre, Filtro y LFO + + RATIO + - - Chord stacking & arpeggio - Acorde de Apilamiento y Arpegio + + Ratio: + + + + lmms::gui::BitInvaderView - - Effects - Efectos + + Sample length + - - MIDI - MIDI + + Draw your own waveform here by dragging your mouse on this graph. + - - Miscellaneous - Diversos + + + Sine wave + - - Save preset - Guardar preconfiguración + + + Triangle wave + - - XML preset file (*.xpf) - archivo de preconfiguración XML (*.xpf) + + + Saw wave + - - Plugin - Plugin + + + Square wave + - - - JackApplicationW - - NSM applications cannot use abstract or absolute paths + + + White noise - - NSM applications cannot use CLI arguments + + + User-defined wave - - You need to save the current Carla project before NSM can be used + + + Smooth waveform - - - JuceAboutW - - About JUCE + + Interpolation - - <b>About JUCE</b> + + Normalize + + + + + lmms::gui::BitcrushControlDialog + + + IN - - This program uses JUCE version 3.x.x. + + OUT - - JUCE (Jules' Utility Class Extensions) is an all-encompassing C++ class library for developing cross-platform software. - -It contains pretty much everything you're likely to need to create most applications, and is particularly well-suited for building highly-customised GUIs, and for handling graphics and sound. - -JUCE is licensed under the GNU Public Licence version 2.0. -One module (juce_core) is permissively licensed under the ISC. - -Copyright (C) 2017 ROLI Ltd. + + + GAIN - - This program uses JUCE version %1. + + Input gain: - - - Knob - - Set linear - Establecer como Lineal + + NOISE + - - Set logarithmic - Establecer como Logarítmico + + Input noise: + - - - Set value + + Output gain: - - Please enter a new value between -96.0 dBFS and 6.0 dBFS: - Por favor ingresa un nuevo valor entre -96.0 dBFS y 6.0 dBFS: + + CLIP + - - Please enter a new value between %1 and %2: - Por favor ingresa un nuevo valor entre %1 y %2: + + Output clip: + - - - LadspaControl - - Link channels - Enlazar canales + + Rate enabled + - - - LadspaControlDialog - - Link Channels - Enlazar Canales + + Enable sample-rate crushing + - - Channel - Canal + + Depth enabled + - - - LadspaControlView - - Link channels - Enlazar canales + + Enable bit-depth crushing + - - Value: - Valor: + + FREQ + - - - LadspaEffect - - Unknown LADSPA plugin %1 requested. - Se requiere un complemento LADSPA desconocido %1. + + Sample rate: + - - - LcdFloatSpinBox - - Set value + + STEREO - - Please enter a new value between %1 and %2: - Por favor ingresa un nuevo valor entre %1 y %2: + + Stereo difference: + - - - LcdSpinBox - - Set value + + QUANT - - Please enter a new value between %1 and %2: - Por favor ingresa un nuevo valor entre %1 y %2: + + Levels: + - LeftRightNav - - - - - Previous - Anterior - + lmms::gui::CPULoadWidget - - - - Next - Siguiente - - - - Previous (%1) - Anterior (%1) + + DSP total: %1% + - - Next (%1) - Siguiente (%1) + + - Notes and setup: %1% + - - - LfoController - - LFO Controller - Controlador LFO + + - Instruments: %1% + - - Base value - Valor base + + - Effects: %1% + - - Oscillator speed - Velocidad del oscilador + + - Mixing: %1% + + + + lmms::gui::CarlaInstrumentView - - Oscillator amount - Cantidad del oscilador + + Show GUI + - - Oscillator phase - Fase del oscilador + + Click here to show or hide the graphical user interface (GUI) of Carla. + - - Oscillator waveform - Forma de onda del oscilador + + Params + - - Frequency Multiplier - Multiplicador de frecuencia + + Available from Carla version 2.1 and up. + - LfoControllerDialog - - - LFO - LFO - + lmms::gui::CarlaParamsView - - BASE - BASE + + Search.. + - - Base: + + Clear filter text - - FREQ - FREC + + Only show knobs with a connection. + - - LFO frequency: + + - Parameters + + + lmms::gui::ClipView - - AMNT - CANT + + Current position + - - Modulation amount: - Cantidad de modulación: + + Current length + - - PHS - FASE + + + %1:%2 (%3:%4 to %5:%6) + - - Phase offset: - Desfase: + + Press <%1> and drag to make a copy. + - - degrees + + Press <%1> for free resizing. - - Sine wave - Onda sinusoidal + + Hint + - - Triangle wave - Onda triangular + + Delete (middle mousebutton) + - - Saw wave - Onda de sierra + + Delete selection (middle mousebutton) + - - Square wave - Onda cuadrada + + Cut + - - Moog saw wave - Onda de sierra Moog + + Cut selection + - - Exponential wave - Onda Exponencial + + Merge Selection + - - White noise - Ruido blanco + + Copy + - - User-defined shape. -Double click to pick a file. + + Copy selection - - Mutliply modulation frequency by 1 + + Paste - - Mutliply modulation frequency by 100 + + Mute/unmute (<%1> + middle click) - - Divide modulation frequency by 100 + + Mute/unmute selection (<%1> + middle click) - - - Engine - - Generating wavetables - Generando tablas de onda + + Clip color + - - Initializing data structures - Inicializando estructuras de datos + + Change + - - Opening audio and midi devices - Abriendo dispositivos de audio y midi + + Reset + - - Launching mixer threads - Lanzando tareas del mezclador + + Pick random + - MainWindow - - - Configuration file - Archivo de configuración - - - - Error while parsing configuration file at line %1:%2: %3 - Error al analizar el archivo de configuración en la línea %1:%2: %3 - + lmms::gui::CompressorControlDialog - - Could not open file - No se puede abrir el archivo + + Threshold: + - - Could not open file %1 for writing. -Please make sure you have write permission to the file and the directory containing the file and try again! - El archivo %1 no puede abrirse para escritura. -Asegúrate de tener permisos de escritura tanto del archivo como del directorio que lo contiene e inténtalo de nuevo. + + Volume at which the compression begins to take place + - - Project recovery - Recuperar proyecto + + Ratio: + - - There is a recovery file present. It looks like the last session did not end properly or another instance of LMMS is already running. Do you want to recover the project of this session? - Hemos encontrado un archivo de recuperación de proyecto. Parece que la última sesión no se cerró correctamente o se está ejecutando otra instancia de LMMS. ¿Quieres recuperar el proyecto de esta sesión? + + How far the compressor must turn the volume down after crossing the threshold + - - - Recover - Recuperar + + Attack: + - - Recover the file. Please don't run multiple instances of LMMS when you do this. - Recuperar el archivo. Por favor no ejecutes múltiples instancias de LMMS al hacerlo. + + Speed at which the compressor starts to compress the audio + - - - Discard - Descartar + + Release: + - - Launch a default session and delete the restored files. This is not reversible. - Iniciar una sesión por defecto y borrar los archivos restaurados. Esta acción no es reversible. + + Speed at which the compressor ceases to compress the audio + - - Version %1 - Versión %1 + + Knee: + - - Preparing plugin browser - Preparando el explorador de complementos + + Smooth out the gain reduction curve around the threshold + - - Preparing file browsers - Preparando el explorador de archivos + + Range: + - - My Projects - Mis Proyectos + + Maximum gain reduction + - - My Samples - Mis Muestras + + Lookahead Length: + - - My Presets - Mis Preconfiguraciones + + How long the compressor has to react to the sidechain signal ahead of time + - - My Home - Carpeta Personal + + Hold: + - - Root directory - Directorio raíz + + Delay between attack and release stages + - - Volumes - Volúmenes + + RMS Size: + - - My Computer - Equipo + + Size of the RMS buffer + - - &File - Archivo (&F) + + Input Balance: + - - &New - &Nuevo + + Bias the input audio to the left/right or mid/side + - - &Open... - Abrir...(&O) + + Output Balance: + - - Loading background picture + + Bias the output audio to the left/right or mid/side - - &Save - Guardar (&S) + + Stereo Balance: + - - Save &As... - Guardar Como... (&A) + + Bias the sidechain signal to the left/right or mid/side + - - Save as New &Version - Guardar como una Nueva &Versión + + Stereo Link Blend: + - - Save as default template - Guardar como plantilla por defecto + + Blend between unlinked/maximum/average/minimum stereo linking modes + - - Import... - Importar... + + Tilt Gain: + - - E&xport... - E&xportar... + + Bias the sidechain signal to the low or high frequencies. -6 db is lowpass, 6 db is highpass. + - - E&xport Tracks... - E&xportar Pistas... + + Tilt Frequency: + - - Export &MIDI... - Exportar &MIDI... + + Center frequency of sidechain tilt filter + - - &Quit - Salir (&Q) + + Mix: + - - &Edit - &Editar + + Balance between wet and dry signals + - - Undo - Deshacer + + Auto Attack: + - - Redo - Rehacer + + Automatically control attack value depending on crest factor + - - Settings - Configuración + + Auto Release: + - - &View - &Ver + + Automatically control release value depending on crest factor + - - &Tools - Herramientas (&T) + + Output gain + - - &Help - Ayuda (&H) + + + Gain + - - Online Help - Ayuda en línea + + Output volume + - - Help - Ayuda + + Input gain + - - About - Acerca de + + Input volume + - - Create new project - Crear un proyecto nuevo + + Root Mean Square + - - Create new project from template - Crear un proyecto nuevo desde una plantilla + + Use RMS of the input + - - Open existing project - Abrir un proyecto existente + + Peak + - - Recently opened projects - Proyectos recientes + + Use absolute value of the input + - - Save current project - Guardar este proyecto + + Left/Right + - - Export current project - Exportar este proyecto + + Compress left and right audio + - - Metronome + + Mid/Side - - - Song Editor - Editor de Canción + + Compress mid and side audio + - - - Beat+Bassline Editor - Editor de Ritmo+Bajo + + Compressor + - - - Piano Roll - Piano Roll + + Compress the audio + - - - Automation Editor - Editor de Automatización + + Limiter + - - - Mixer - Mezcladora FX + + Set Ratio to infinity (is not guaranteed to limit audio volume) + - - Show/hide controller rack - Mostrar/ocultar bandeja de controladores + + Unlinked + - - Show/hide project notes - Mostrar/ocultar notas del proyecto + + Compress each channel separately + - - Untitled - Sin Título + + Maximum + - - Recover session. Please save your work! - Recuperar sesión. ¡Por favor guarda tu trabajo! + + Compress based on the loudest channel + - - LMMS %1 - LMMS %1 + + Average + - - Recovered project not saved - Proyecto recuperado no guardado + + Compress based on the averaged channel volume + - - This project was recovered from the previous session. It is currently unsaved and will be lost if you don't save it. Do you want to save it now? - Este proyecto se ha recuperado de la sesión anterior. No ha sido guardado con anterioridad y se perderá para siempre si no lo guardas. ¿Deseas guardarlo ahora? + + Minimum + - - Project not saved - Proyecto no guardado + + Compress based on the quietest channel + - - The current project was modified since last saving. Do you want to save it now? - El proyecto actual ha sido modificado desde la última vez que se guardó. ¿Quieres guardarlo ahora? + + Blend + - - Open Project - Abrir Proyecto + + Blend between stereo linking modes + - - LMMS (*.mmp *.mmpz) - LMMS (*.mmp *.mmpz) + + Auto Makeup Gain + - - Save Project - Guardar proyecto + + Automatically change makeup gain depending on threshold, knee, and ratio settings + - - LMMS Project - Proyecto LMMS + + + Soft Clip + - - LMMS Project Template - Plantilla de proyecto LMMS + + Play the delta signal + - - Save project template - Guardar plantilla de proyecto + + Use the compressor's output as the sidechain input + - - Overwrite default template? - ¿Sobreescribir la plantilla por defecto? + + Lookahead Enabled + - - This will overwrite your current default template. - Esta acción sobreescribirá tu actual plantilla por defecto. + + Enable Lookahead, which introduces 20 milliseconds of latency + + + + lmms::gui::ControllerConnectionDialog - - Help not available - Ayuda no disponible + + Connection Settings + - - Currently there's no help available in LMMS. -Please visit http://lmms.sf.net/wiki for documentation on LMMS. - Actualmente no hay ayuda disponible en LMMS. -Por favor visita http://lmms.sf.net/wiki para obtener documentación acerca de LMMS. + + MIDI CONTROLLER + - - Controller Rack - Bandeja de Controladores + + Input channel + - - Project Notes - Notas del Proyecto + + CHANNEL + - - Fullscreen + + Input controller - - Volume as dBFS - Volumen en dBFS + + CONTROLLER + - - Smooth scroll - Desplazamiento suave + + + Auto Detect + - - Enable note labels in piano roll - Nombres de notas en piano roll + + MIDI-devices to receive MIDI-events from + - - MIDI File (*.mid) - Archivo MIDI (*.mid) + + USER CONTROLLER + - - - untitled - Sin título + + MAPPING FUNCTION + - - - Select file for project-export... - Selecciona un archivo para exportar proyecto... + + OK + - - Select directory for writing exported tracks... - Elige en qué directorio se escribirán las pistas exportadas... + + Cancel + - - Save project - Guardar proyecto + + LMMS + - - Project saved - Proyecto guardado + + Cycle Detected. + + + + lmms::gui::ControllerRackView - - The project %1 is now saved. - El proyecto %1 ha sido guardado. + + Controller Rack + - - Project NOT saved. - Proyecto NO guardado. + + Add + - - The project %1 was not saved! - ¡El proyecto %1 no ha sido guardado! + + Confirm Delete + - - Import file - Importar archivo + + Confirm delete? There are existing connection(s) associated with this controller. There is no way to undo. + + + + lmms::gui::ControllerView - - MIDI sequences - secuencias MIDI + + Controls + - - Hydrogen projects - Proyectos de Hydrogen + + Rename controller + - - All file types - Todos los archivos + + Enter the new name for this controller + - - - MeterDialog - - - Meter Numerator - Numerador del Compás + + LFO + - - Meter numerator + + Move &up - - - Meter Denominator - Denominador del Compás + + Move &down + - - Meter denominator + + &Remove this controller - - TIME SIG - COMPÁS + + Re&name this controller + - MeterModel + lmms::gui::CrossoverEQControlDialog - - Numerator - Numerador + + Band 1/2 crossover: + - - Denominator - Denominador + + Band 2/3 crossover: + - - - MidiCCRackView - - - MIDI CC Rack - %1 + + Band 3/4 crossover: - - MIDI CC Knobs: + + Band 1 gain - - CC %1 + + Band 1 gain: - - - MidiController - - MIDI Controller - Controlador MIDI + + Band 2 gain + - - unnamed_midi_controller - controlador_midi_sin_nombre + + Band 2 gain: + - - - MidiImport - - - Setup incomplete - Configuración incompleta + + Band 3 gain + - - You have not set up a default soundfont in the settings dialog (Edit->Settings). Therefore no sound will be played back after importing this MIDI file. You should download a General MIDI soundfont, specify it in settings dialog and try again. + + Band 3 gain: + + + + + Band 4 gain + + + + + Band 4 gain: - - You did not compile LMMS with support for SoundFont2 player, which is used to add default sound to imported MIDI files. Therefore no sound will be played back after importing this MIDI file. - Nos has complidado LMMS con soporte para el reproductor SoundFont2, que se utiliza para añadir los sonidos por defecto de los archivos MIDI importados. Por lo tanto, no se reproducirá ningún sonido luego de importar este archivo MIDI. + + Band 1 mute + - - MIDI Time Signature Numerator + + Mute band 1 - - MIDI Time Signature Denominator + + Band 2 mute - - Numerator - Numerador + + Mute band 2 + - - Denominator - Denominador + + Band 3 mute + - - Track - Pista + + Mute band 3 + - - - MidiJack - - JACK server down - When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (title) - Ha fallado el servidor JACK + + Band 4 mute + - - The JACK server seems to be shuted down. - When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (dialog message) - Parece ser que el servidor JACK está apagado. + + Mute band 4 + - MidiPatternW + lmms::gui::DelayControlsDialog - - MIDI Pattern + + DELAY - - Time Signature: + + Delay time - - - - 1/4 + + FDBK - - 2/4 + + Feedback amount - - 3/4 + + RATE - - 4/4 + + LFO frequency - - 5/4 + + AMNT - - 6/4 + + LFO amount - - Measures: + + Out gain - - - - 1 + + Gain + + + lmms::gui::DispersionControlDialog - - 2 + + AMOUNT - - 3 + + Number of all-pass filters - - 4 + + FREQ - - 5 - 5ta - - - - 6 - Mayor añad 6 - - - - 7 - Dominante (1 3 5 b7) - - - - 8 + + Frequency: - - 9 - Dom 9 (1-3-5-b7-9) + + RESO + - - 10 + + Resonance: - - 11 - Dom 11 (1-3-5-b7-9-11) + + FEED + - - 12 + + Feedback: - - 13 - Dom 13 (...b7-9-11-13) + + DC Offset Removal + - - 14 + + Remove DC Offset + + + lmms::gui::DualFilterControlDialog - - 15 + + + FREQ - - 16 + + + Cutoff frequency - - Default Length: + + + RESO - - - 1/16 + + + Resonance - - - 1/15 + + + GAIN - - - 1/12 + + + Gain - - - 1/9 + + MIX - - - 1/8 + + Mix - - - 1/6 + + Filter 1 enabled - - - 1/3 + + Filter 2 enabled - - - 1/2 + + Enable/disable filter 1 - - Quantize: + + Enable/disable filter 2 + + + lmms::gui::DynProcControlDialog - - &File - Archivo (&F) + + INPUT + - - &Edit - &Editar + + Input gain: + - - &Quit - Salir (&Q) + + OUTPUT + - - &Insert Mode + + Output gain: - - F + + ATTACK - - &Velocity Mode + + Peak attack time: - - D + + RELEASE - - Select All + + Peak release time: - - A + + + Reset wavegraph - - - MidiPort - - Input channel - Canal de entrada + + + Smooth wavegraph + - - Output channel - Canal de salida + + + Increase wavegraph amplitude by 1 dB + - - Input controller - Controlador de entrada + + + Decrease wavegraph amplitude by 1 dB + - - Output controller - Controlador de salida + + Stereo mode: maximum + - - Fixed input velocity - Velocidad de entrada fija + + Process based on the maximum of both stereo channels + - - Fixed output velocity - Velocidad de salida fija + + Stereo mode: average + - - Fixed output note - Nota de salida fija + + Process based on the average of both stereo channels + - - Output MIDI program - Programa de salida MIDI + + Stereo mode: unlinked + - - Base velocity - Velocidad básica + + Process each stereo channel independently + + + + lmms::gui::Editor - - Receive MIDI-events - Recibir eventos MIDI + + Transport controls + - - Send MIDI-events - Enviar eventos MIDI + + Play (Space) + - - - MidiSetupWidget - - Device + + Stop (Space) - - - MonstroInstrument - - Osc 1 volume + + Record - - Osc 1 panning + + Record while playing - - Osc 1 coarse detune + + Toggle Step Recording + + + lmms::gui::EffectRackView - - Osc 1 fine detune left + + EFFECTS CHAIN - - Osc 1 fine detune right + + Add effect + + + lmms::gui::EffectSelectDialog - - Osc 1 stereo phase offset + + Add effect - - Osc 1 pulse width + + + Name - - Osc 1 sync send on rise + + Type - - Osc 1 sync send on fall + + All - - Osc 2 volume + + Search - - Osc 2 panning + + Description - - Osc 2 coarse detune + + Author + + + lmms::gui::EffectView - - Osc 2 fine detune left + + On/Off - - Osc 2 fine detune right + + W/D - - Osc 2 stereo phase offset + + Wet Level: - - Osc 2 waveform + + DECAY - - Osc 2 sync hard + + Time: - - Osc 2 sync reverse + + GATE - - Osc 3 volume + + Gate: - - Osc 3 panning + + Controls - - Osc 3 coarse detune + + Move &up - - Osc 3 Stereo phase offset - Osc 3 desfase estéreo + + Move &down + - - Osc 3 sub-oscillator mix + + &Remove this plugin + + + lmms::gui::EnvelopeAndLfoView - - Osc 3 waveform 1 + + + AMT - - Osc 3 waveform 2 + + + Modulation amount: - - Osc 3 sync hard + + + DEL - - Osc 3 Sync reverse + + + Pre-delay: - - LFO 1 waveform + + + ATT - - LFO 1 attack + + + Attack: - - LFO 1 rate + + HOLD - - LFO 1 phase + + Hold: - - LFO 2 waveform + + DEC - - LFO 2 attack + + Decay: - - LFO 2 rate + + SUST - - LFO 2 phase + + Sustain: - - Env 1 pre-delay + + REL - - Env 1 attack + + Release: - - Env 1 hold + + SPD - - Env 1 decay + + Frequency: - - Env 1 sustain + + FREQ x 100 - - Env 1 release + + Multiply LFO frequency by 100 - - Env 1 slope + + MOD ENV AMOUNT - - Env 2 pre-delay + + Control envelope amount by this LFO - - Env 2 attack + + Hint - - Env 2 hold + + Drag and drop a sample into this window. + + + lmms::gui::EnvelopeGraph - - Env 2 decay + + Scaling - - Env 2 sustain + + Dynamic - - Env 2 release + + Uses absolute spacings but switches to relative spacing if it's running out of space - - Env 2 slope + + Absolute - - Osc 2+3 modulation + + Provides enough potential space for each segment but does not scale - - Selected view - Vista seleccionada + + Relative + - - Osc 1 - Vol env 1 + + Always uses all of the available space to display the envelope graph + + + lmms::gui::EqControlsDialog - - Osc 1 - Vol env 2 + + HP - - Osc 1 - Vol LFO 1 + + Low-shelf - - Osc 1 - Vol LFO 2 + + Peak 1 - - Osc 2 - Vol env 1 + + Peak 2 - - Osc 2 - Vol env 2 + + Peak 3 - - Osc 2 - Vol LFO 1 + + Peak 4 - - Osc 2 - Vol LFO 2 + + High-shelf - - Osc 3 - Vol env 1 + + LP - - Osc 3 - Vol env 2 + + Input gain - - Osc 3 - Vol LFO 1 + + + + Gain - - Osc 3 - Vol LFO 2 + + Output gain - - Osc 1 - Phs env 1 + + Bandwidth: - - Osc 1 - Phs env 2 + + Octave - - Osc 1 - Phs LFO 1 + + Resonance: - - Osc 1 - Phs LFO 2 + + Frequency: - - Osc 2 - Phs env 1 + + LP group - - Osc 2 - Phs env 2 + + HP group + + + lmms::gui::EqHandle - - Osc 2 - Phs LFO 1 + + Reso: - - Osc 2 - Phs LFO 2 + + BW: - - Osc 3 - Phs env 1 + + + Freq: + + + lmms::gui::ExportProjectDialog - - Osc 3 - Phs env 2 + + Could not open file - - Osc 3 - Phs LFO 1 + + Could not open file %1 for writing. +Please make sure you have write permission to the file and the directory containing the file and try again! - - Osc 3 - Phs LFO 2 + + Export project to %1 - - Osc 1 - Pit env 1 + + ( Fastest - biggest ) - - Osc 1 - Pit env 2 + + ( Slowest - smallest ) - - Osc 1 - Pit LFO 1 + + Error - - Osc 1 - Pit LFO 2 + + Error while determining file-encoder device. Please try to choose a different output format. - - Osc 2 - Pit env 1 + + Rendering: %1% + + + lmms::gui::Fader - - Osc 2 - Pit env 2 + + Set value - - Osc 2 - Pit LFO 1 + + Please enter a new value between %1 and %2: - - Osc 2 - Pit LFO 2 + + Volume: %1 dBFS + + + lmms::gui::FileBrowser - - Osc 3 - Pit env 1 + + Browser - - Osc 3 - Pit env 2 + + Search - - Osc 3 - Pit LFO 1 + + Refresh list - - Osc 3 - Pit LFO 2 + + User content - - Osc 1 - PW env 1 + + Factory content - - Osc 1 - PW env 2 + + Hidden content + + + lmms::gui::FileBrowserTreeWidget - - Osc 1 - PW LFO 1 + + Send to active instrument-track - - Osc 1 - PW LFO 2 + + Open containing folder - - Osc 3 - Sub env 1 + + Song Editor - - Osc 3 - Sub env 2 + + Pattern Editor - - Osc 3 - Sub LFO 1 + + Send to new AudioFileProcessor instance - - Osc 3 - Sub LFO 2 + + Send to new instrument track - - - Sine wave - Onda Sinusoidal + + (%2Enter) + - - Bandlimited Triangle wave - Onda triangular de BandaLimitada + + Send to new sample track (Shift + Enter) + - - Bandlimited Saw wave - Onda de sierra de bandaLimitada + + Loading sample + - - Bandlimited Ramp wave - Onda de rampa de bandaLimitada + + Please wait, loading sample for preview... + - - Bandlimited Square wave - Onda cuadrada de BandaLimitada + + Error + - - Bandlimited Moog saw wave - Onda de sierra Moog de banda Limitada + + %1 does not appear to be a valid %2 file + - - - Soft square wave - Onda Cuadrada suave + + --- Factory files --- + + + + lmms::gui::FileDialog - - Absolute sine wave - Onda Sinusoidal Absoluta + + %1 files + - - - Exponential wave - Onda Exponencial + + All audio files + - - White noise - Ruido blanco + + Other files + + + + lmms::gui::FlangerControlsDialog - - Digital Triangle wave - Onda triangular digital + + DELAY + - - Digital Saw wave - Onda de sierra digital + + Delay time: + - - Digital Ramp wave - Onda de Rampa digital + + RATE + - - Digital Square wave - Onda Cuadrada digital + + Period: + - - Digital Moog saw wave - Onda de sierra Moog digital + + AMNT + - - Triangle wave - Onda triangular + + Amount: + - - Saw wave - Onda de sierra + + PHASE + - - Ramp wave - Onda de rampa + + Phase: + - - Square wave - Onda Cuadrada + + FDBK + - - Moog saw wave - Onda de sierra Moog + + Feedback amount: + - - Abs. sine wave - Onda sinus. abs + + NOISE + - - Random - Aleatorio + + White noise amount: + - - Random smooth - Aleatoria suave + + Invert + - MonstroView - - - Operators view - Vista de Operadores - - - - Matrix view - Vista de Matriz - + lmms::gui::FloatModelEditorBase - - - - Volume - Volumen - - - - - - Panning - Paneo + + Set linear + - - - - Coarse detune - Desafinación gruesa + + Set logarithmic + - - - - semitones - semitonos + + + Set value + - - - Fine tune left + + Please enter a new value between -96.0 dBFS and 6.0 dBFS: - - - - - cents - cents + + Please enter a new value between %1 and %2: + + + + lmms::gui::FreeBoyInstrumentView - - - Fine tune right + + Sweep time: - - - - Stereo phase offset - Desfase estéreo + + Sweep time + - - - - - - deg - deg + + Sweep rate shift amount: + - - Pulse width - Amplitud del pulso + + Sweep rate shift amount + - - Send sync on pulse rise - Enviar sinc en la fase ascendente del pulso + + + Wave pattern duty cycle: + - - Send sync on pulse fall - Enviar sinc en la fase descendente del pulso + + + Wave pattern duty cycle + - - Hard sync oscillator 2 - Sincronización dura oscilador 2 + + Square channel 1 volume: + - - Reverse sync oscillator 2 - Sincronización reversa oscilador 2 + + Square channel 1 volume + - - Sub-osc mix - Mezcla de sub-osc + + + + Length of each step in sweep: + - - Hard sync oscillator 3 - Sincronización dura oscilador 3 + + + + Length of each step in sweep + - - Reverse sync oscillator 3 - Sincronización reversa oscilador 3 + + Square channel 2 volume: + - - - - - Attack - Ataque + + Square channel 2 volume + - - - Rate - Tasa + + Wave pattern channel volume: + - - - Phase - Fase + + Wave pattern channel volume + - - - Pre-delay - Pre-retraso + + Noise channel volume: + - - - Hold - Mantener + + Noise channel volume + - - - Decay - Caída + + SO1 volume (Right): + - - - Sustain - Sostén + + SO1 volume (Right) + - - - Release - Disipación + + SO2 volume (Left): + - - - Slope - Curva + + SO2 volume (Left) + - - Mix osc 2 with osc 3 + + Treble: - - Modulate amplitude of osc 3 by osc 2 + + Treble - - Modulate frequency of osc 3 by osc 2 + + Bass: - - Modulate phase of osc 3 by osc 2 + + Bass - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Modulation amount - Cantidad de modulación + + Sweep direction + - - - MultitapEchoControlDialog - - Length - Duración + + + + + + Volume sweep direction + - - Step length: - Longitud del paso: + + Shift register width + - - Dry - Limpio + + Channel 1 to SO1 (Right) + - - Dry gain: + + Channel 2 to SO1 (Right) - - Stages - Etapas + + Channel 3 to SO1 (Right) + - - Low-pass stages: + + Channel 4 to SO1 (Right) - - Swap inputs - Intercambiar entradas + + Channel 1 to SO2 (Left) + - - Swap left and right input channels for reflections - Intercambiar los canales de entrada izquierdo y derecho para reflexiones + + Channel 2 to SO2 (Left) + - - - NesInstrument - - Channel 1 coarse detune + + Channel 3 to SO2 (Left) - - Channel 1 volume - Canal 1 Volumen + + Channel 4 to SO2 (Left) + - - Channel 1 envelope length + + Wave pattern graph + + + lmms::gui::GigInstrumentView - - Channel 1 duty cycle + + + Open GIG file - - Channel 1 sweep amount + + Choose patch - - Channel 1 sweep rate + + Gain: - - Channel 2 Coarse detune - Canal 2 desafinación gruesa + + GIG Files (*.gig) + + + + lmms::gui::GranularPitchShifterControlDialog - - Channel 2 Volume - Canal 2 Volumen + + Grain Size: + - - Channel 2 envelope length + + Spray: - - Channel 2 duty cycle + + Jitter: - - Channel 2 sweep amount + + Twitch: - - Channel 2 sweep rate + + Spray Stereo Spread: - - Channel 3 coarse detune + + Grain Shape: - - Channel 3 volume - Canal 3 Volumen + + Fade Length: + - - Channel 4 volume - Canal 4 Volumen + + Feedback: + - - Channel 4 envelope length + + Minimum Allowed Latency: - - Channel 4 noise frequency + + Density: - - Channel 4 noise frequency sweep + + Glide: - - Master volume - Volumen maestro + + + Pitch + - - Vibrato - Vibrato + + + Pitch Stereo Spread + - - - NesInstrumentView - - - - - Volume - Volumen + + Open help window + - - - - Coarse detune - Desafinación gruesa + + + Prefilter + + + + lmms::gui::GuiApplication - - - - Envelope length - Longitud de la Envolvente + + Working directory + - - Enable channel 1 - Habilitar el canal 1 + + The LMMS working directory %1 does not exist. Create it now? You can change the directory later via Edit -> Settings. + - - Enable envelope 1 - Habilitar la envolvente 1 + + Preparing UI + - - Enable envelope 1 loop - Habilitar el bucle de la envolvente 1 + + Preparing song editor + - - Enable sweep 1 - Habilitar barrido 1 + + Preparing mixer + - - - Sweep amount - Cantidad de barrido + + Preparing controller rack + - - - Sweep rate - Tasa de barrido + + Preparing project notes + - - - 12.5% Duty cycle - Ciclo de trabajo 12.5% + + Preparing microtuner + - - - 25% Duty cycle - Ciclo de trabajo 25% + + Preparing pattern editor + - - - 50% Duty cycle - Ciclo de trabajo 50% + + Preparing piano roll + - - - 75% Duty cycle - Ciclo de trabajo 75% + + Preparing automation editor + + + + lmms::gui::InstrumentFunctionArpeggioView - - Enable channel 2 - Habilitar el canal 2 + + ARPEGGIO + - - Enable envelope 2 - Habilitar la envolvente 2 + + RANGE + - - Enable envelope 2 loop - Habilitar el bucle de la envolvente 2 + + Arpeggio range: + - - Enable sweep 2 - Habilitar barrido 2 + + octave(s) + - - Enable channel 3 - Habilitar el canal 3 + + REP + - - Noise Frequency - Frecuencia de Ruido + + Note repeats: + - - Frequency sweep - Barrido de Frecuencia + + time(s) + - - Enable channel 4 - Habilitar el canal 4 + + CYCLE + - - Enable envelope 4 - Habilitar la envolvente 4 + + Cycle notes: + - - Enable envelope 4 loop - Habilitar el bucle de la envolvente 4 + + note(s) + - - Quantize noise frequency when using note frequency - Cuantizar la frecuencia de ruido al usar frecuencia de nota + + SKIP + - - Use note frequency for noise - Usar frecuencia de nota para ruido + + Skip rate: + - - Noise mode - Modo de Ruido + + + + % + - - Master volume - Volumen maestro + + MISS + - - Vibrato - Vibrato + + Miss rate: + - - - OpulenzInstrument - - Patch - Ajuste + + TIME + - - Op 1 attack + + Arpeggio time: - - Op 1 decay + + ms - - Op 1 sustain + + GATE - - Op 1 release + + Arpeggio gate: - - Op 1 level + + Chord: - - Op 1 level scaling + + Direction: - - Op 1 frequency multiplier + + Mode: + + + lmms::gui::InstrumentFunctionNoteStackingView - - Op 1 feedback + + STACKING - - Op 1 key scaling rate + + Chord: - - Op 1 percussive envelope + + RANGE - - Op 1 tremolo + + Chord range: - - Op 1 vibrato + + octave(s) + + + lmms::gui::InstrumentMidiIOView - - Op 1 waveform + + ENABLE MIDI INPUT - - Op 2 attack + + + CHAN + This string must be be short, its width must be less than * width of LCD spin-box of two digits - - Op 2 decay + + + VELOC + This string must be be short, its width must be less than * width of LCD spin-box of three digits - - Op 2 sustain + + ENABLE MIDI OUTPUT - - Op 2 release + + PROG + This string must be be short, its width must be less than the * width of LCD spin-box of three digits - - Op 2 level + + NOTE + This string must be be short, its width must be less than * width of LCD spin-box of three digits - - Op 2 level scaling + + MIDI devices to receive MIDI events from - - Op 2 frequency multiplier + + MIDI devices to send MIDI events to - - Op 2 key scaling rate + + VELOCITY MAPPING - - Op 2 percussive envelope + + MIDI VELOCITY - - Op 2 tremolo + + MIDI notes at this velocity correspond to 100% note velocity. + + + lmms::gui::InstrumentSoundShapingView - - Op 2 vibrato + + TARGET - - Op 2 waveform + + FILTER - - FM - FM - - - - Vibrato depth + + FREQ - - Tremolo depth + + Cutoff frequency: - - - OpulenzInstrumentView - - - Attack - Ataque + + Hz + - - - Decay - Caída + + Q/RESO + - - - Release - Disipación + + Q/Resonance: + - - - Frequency multiplier - Multiplicador de frecuencia + + Envelopes, LFOs and filters are not supported by the current instrument. + - OscillatorObject - - - Osc %1 waveform - Forma de onda del osc %1 - + lmms::gui::InstrumentTrackView - - Osc %1 harmonic - armónicos del Osc %1 + + Mixer channel + - - - Osc %1 volume - Osc %1 Volumen + + Volume + - - - Osc %1 panning - Osc %1 paneo + + Volume: + - - - Osc %1 fine detuning left - Osc %1 desafinación fina izquierda + + VOL + - - Osc %1 coarse detuning - Osc %1 desafinación gruesa + + Panning + - - Osc %1 fine detuning right - Osc %1 desafinación fina derecha + + Panning: + - - Osc %1 phase-offset - Osc %1 desfase + + PAN + - - Osc %1 stereo phase-detuning - Osc %1 desafinación de fase estéreo + + MIDI + - - Osc %1 wave shape - Osc %1 forma de onda + + Input + - - Modulation type %1 - Tipo de modulación %1 + + Output + - - - Oscilloscope - - Oscilloscope + + Open/Close MIDI CC Rack - - Click to enable - Click para activar + + %1: %2 + - PatchesDialog + lmms::gui::InstrumentTrackWindow - - Qsynth: Channel Preset - Qsynth: Preconfiguración del Canal + + Volume + - - Bank selector - Selector de banco + + Volume: + - - Bank - Banco + + VOL + - - Program selector - Selector de programa + + Panning + - - Patch - Ajuste + + Panning: + - - Name - Nombre + + PAN + - - OK - De acuerdo + + Pitch + - - Cancel - Cancelar + + Pitch: + - - - PatmanView - - Open patch + + cents - - Loop - Bucle + + PITCH + - - Loop mode - Modo Bucle + + Pitch range (semitones) + - - Tune - Afinación + + RANGE + - - Tune mode - Modo de Afinación + + Mixer channel + - - No file selected - Ningún archivo seleccionado + + CHANNEL + - - Open patch file - Abrir archivo Patch + + Save current instrument track settings in a preset file + - - Patch-Files (*.pat) - Archivos Patch (*.pat) + + SAVE + - - - MidiClipView - - Open in piano-roll - Abrir en piano-roll + + Envelope, filter & LFO + - - Set as ghost in piano-roll + + Chord stacking & arpeggio - - Clear all notes - Borrar todas las notas + + Effects + - - Reset name - Restaurar nombre + + MIDI + - - Change name - Cambiar nombre + + Tuning and transposition + - - Add steps - Agregar pasos + + Save preset + - - Remove steps - Quitar pasos + + XML preset file (*.xpf) + - - Clone Steps - Clonar Pasos + + Plugin + - PeakController + lmms::gui::InstrumentTuningView - - Peak Controller - Controlador de Picos + + GLOBAL TRANSPOSITION + - - Peak Controller Bug - Error en el controlador de Picos + + Enables the use of global transposition + - - Due to a bug in older version of LMMS, the peak controllers may not be connect properly. Please ensure that peak controllers are connected properly and re-save this file. Sorry for any inconvenience caused. - Debido a un error en versiones antiguas de LMMS, el controlador de Picos tal vez no se conecte apropiadamente. Por favor asegúrate que los controladores de picos estén conectados apropiadamente y vuelve a guardar este archivo. Disculpa los inconvenientes. + + Microtuner is not available for MIDI-based instruments. + - - - PeakControllerDialog - - PEAK - PICO + + MICROTUNER + - - LFO Controller - Controlador LFO + + Active scale: + - - - PeakControllerEffectControlDialog - - BASE - BASE + + + Edit scales and keymaps + - - Base: + + Active keymap: - - AMNT - CANT + + Import note ranges from keymap + - - Modulation amount: - Cantidad de modulación: + + When enabled, the first, last and base notes of this instrument will be overwritten with values specified by the selected keymap. + + + + lmms::gui::KickerInstrumentView - - MULT - MULT + + Start frequency: + - - Amount multiplicator: + + End frequency: - - ATCK - ATQ + + Frequency slope: + - - Attack: - Ataque: + + Gain: + - - DCAY - CAI + + Envelope length: + - - Release: - Disipación: + + Envelope slope: + - - TRSH - UMBRAL + + Click: + - - Treshold: - Umbral: + + Noise: + - - Mute output - Silenciar salida + + Start distortion: + - - Absolute value + + End distortion: + + + + + lmms::gui::LOMMControlDialog + + + Depth: + + + + + Compression amount for all bands - - - PeakControllerEffectControls - - Base value - Valor base + + Time: + - - Modulation amount - Cantidad de modulación + + Attack/release scaling for all bands + - - Attack - Ataque + + Input Volume: + - - Release - Disipación + + Input volume + - - Treshold - Umbral + + Output Volume: + - - Mute output - Silenciar salida + + Output volume + - - Absolute value + + Upward Depth: - - Amount multiplicator + + Upward compression amount for all bands - - - PianoRoll - - Note Velocity - Velocidad de Nota + + Downward Depth: + - - Note Panning - Paneo de nota + + Downward compression amount for all bands + - - Mark/unmark current semitone - Marcar/desmarcar este semitono + + High/Mid Crossover + - - Mark/unmark all corresponding octave semitones - Marcar/desmarcar todos los semitonos en la octava correspondiente + + Mid/Low Crossover + - - Mark current scale - Marcar la escala actual + + High/mid band split + - - Mark current chord - Marcar el acorde actual + + Mid/low band split + - - Unmark all - Desmarcar todo + + Enable High Band + - - Select all notes on this key - Seleccionar todas las notas en este tono + + Enable Mid Band + - - Note lock - Figura actual + + Enable Low Band + - - Last note - Ultima nota + + High Input Volume: + - - No key + + Input volume for high band - - No scale - Sin escala + + Mid Input Volume: + - - No chord - Sin acorde + + Input volume for mid band + - - Nudge + + Low Input Volume: - - Snap + + Input volume for low band - - Velocity: %1% - Velocidad: %1% + + High Output Volume: + - - Panning: %1% left - Paneo: %1% izq + + Output volume for high band + - - Panning: %1% right - Paneo: %1% der + + Mid Output Volume: + - - Panning: center - Paneo: centro + + Output volume for mid band + - - Glue notes failed + + Low Output Volume: - - Please select notes to glue first. + + Output volume for low band - - Please open a clip by double-clicking on it! - ¡Por favor abre el patrón haciendo doble click sobre él! + + Above Threshold High + - - - Please enter a new value between %1 and %2: - Por favor ingresa un nuevo valor entre %1 y %2: + + Downward compression threshold for high band + - - - PianoRollWindow - - Play/pause current clip (Space) - Reproducir/Pausar el patrón actual (Espacio) + + Above Threshold Mid + - - Record notes from MIDI-device/channel-piano - Grabar notas desde el dispositivo/canal/teclado MIDI + + Downward compression threshold for mid band + - - Record notes from MIDI-device/channel-piano while playing song or BB track - Grabar notas desde el dispositivo/canal/teclado MIDI escuchando la Canción o el Ritmo+Bajo + + Above Threshold Low + - - Record notes from MIDI-device/channel-piano, one step at the time + + Downward compression threshold for low band - - Stop playing of current clip (Space) - Detener la reproducción del patrón actual (Espacio) + + Above Ratio High + - - Edit actions - Acciones de edición + + Downward compression ratio for high band + - - Draw mode (Shift+D) - Modo de dibujo (Shift+D) + + Above Ratio Mid + - - Erase mode (Shift+E) - Modo de borrado (Shift+E) + + Downward compression ratio for mid band + - - Select mode (Shift+S) - Modo de Selección (Shift+S) + + Above Ratio Low + - - Pitch Bend mode (Shift+T) + + Downward compression ratio for low band - - Quantize - Cuantizar + + Below Threshold High + - - Quantize positions + + Upward compression threshold for high band - - Quantize lengths + + Below Threshold Mid - - File actions + + Upward compression threshold for mid band - - Import clip + + Below Threshold Low - - - Export clip + + Upward compression threshold for low band - - Copy paste controls - Controles de copiado y pegado + + Below Ratio High + - - Cut (%1+X) + + Upward compression ratio for high band - - Copy (%1+C) + + Below Ratio Mid - - Paste (%1+V) + + Upward compression ratio for mid band - - Timeline controls - Controles de la línea de Tiempo + + Below Ratio Low + - - Glue + + Upward compression ratio for low band - - Knife + + Attack High: - - Fill + + Attack time for high band - - Cut overlaps + + Attack Mid: - - Min length as last + + Attack time for mid band - - Max length as last + + Attack Low: - - Zoom and note controls - Controles de acercamiento y nota + + Attack time for low band + - - Horizontal zooming + + Release High: - - Vertical zooming + + Release time for high band - - Quantization - Cuantización + + Release Mid: + - - Note length + + Release time for mid band - - Key + + Release Low: - - Scale + + Release time for low band - - Chord + + RMS Time: - - Snap mode + + RMS size for sidechain signal (set to 0 for Peak mode) - - Clear ghost notes + + Knee: - - - Piano-Roll - %1 - Piano-Roll - %1 + + Knee size for all compressors + - - - Piano-Roll - no clip - Piano-Roll - sin patrón + + Range: + - - - XML clip file (*.xpt *.xptz) + + Maximum gain increase for all bands - - Export clip success + + Balance: - - Clip saved to %1 + + Bias input volume towards one channel - - Import clip. + + Scale output volume with Depth - - You are about to import a clip, this will overwrite your current clip. Do you want to continue? + + Scale output volume with Depth parameter - - Open clip + + Stereo Link - - Import clip success + + Apply same gain change to both channels - - Imported clip %1! + + Auto Time: - - - PianoView - - Base note - Nota base + + Speed up attack and release times when transients occur + - - First note + + Mix: - - Last note - Ultima nota + + Wet/Dry of all bands + - - - Plugin - - Plugin not found - Complemento no encontrado + + Feedback + - - The plugin "%1" wasn't found or could not be loaded! -Reason: "%2" - ¡El complemento "%1" no fue encontrado o no se pudo cargar! -Razón: "%2" + + Use output as sidechain signal instead of input + - - Error while loading plugin - Error al cargar el complemento + + Mid/Side + - - Failed to load plugin "%1"! - Falló la carga del complemento "%1"! + + Compress mid/side channels instead of left/right + - - - PluginBrowser - - Instrument Plugins - Instrumentos + + + Suppress upward compression for side band + - - Instrument browser - Explorador de Instrumentos + + + Lookahead + - - Drag an instrument into either the Song-Editor, the Beat+Bassline Editor or into an existing instrument track. - Arrastra un instrumento al Editor de Canción, al Editor de Ritmo+Bajo o sobre una pista de instrumento existente. + + Lookahead length + - - no description - sin descripción + + Clear all parameters + + + + lmms::gui::LadspaBrowserView - - A native amplifier plugin - Un complemento de amplificación nativo + + + Available Effects + - - Simple sampler with various settings for using samples (e.g. drums) in an instrument-track - Sampler simple con varias configuraciones para usar muestras (por ej. percusión) en una pista de instrumento + + + Unavailable Effects + - - Boost your bass the fast and simple way - Realza tus graves de forma rápida y fácil + + + Instruments + - - Customizable wavetable synthesizer - Sintetizador de tabla de ondas personalizable + + + Analysis Tools + - - An oversampling bitcrusher - Un reductor de bits de sobremuestreo + + + Don't know + - - Carla Patchbay Instrument - Bahía de Conexiones Carla + + Type: + + + + lmms::gui::LadspaControlDialog - - Carla Rack Instrument - Bandeja de complementos Carla + + Link Channels + - - A dynamic range compressor. + + Channel + + + lmms::gui::LadspaControlView - - A 4-band Crossover Equalizer - Un ecualizador cruzado de 4 bandas + + Link channels + - - A native delay plugin - Un complemento de Delay nativo + + Value: + + + + lmms::gui::LadspaDescription - - A Dual filter plugin - Un complemento de filtro dual + + Plugins + - - plugin for processing dynamics in a flexible way - Complemento para procesar dinámicas de una manera flexible + + Description + - - A native eq plugin - Un complemento de EQ nativo + + Name: + - - A native flanger plugin - Un complemento Flanger nativo + + Maker: + - - Emulation of GameBoy (TM) APU - Emulación del APU de GameBoy (TM) + + Copyright: + - - Player for GIG files - Reproductor para archivos GIG + + Requires Real Time: + - - Filter for importing Hydrogen files into LMMS - Filtro para importar archivos de Hydrogen a LMMS + + + + Yes + - - Versatile drum synthesizer - Sintetizador de percusión versátil + + + + No + - - List installed LADSPA plugins - Listar los complementos LADSPA instalados + + Real Time Capable: + - - plugin for using arbitrary LADSPA-effects inside LMMS. - complemento para usar efectos LADSPA a voluntad en LMMS. + + In Place Broken: + - - Incomplete monophonic imitation TB-303 - Imitación monofónica incompleta del TB-303 + + Channels In: + - - plugin for using arbitrary LV2-effects inside LMMS. + + Channels Out: + + + lmms::gui::LadspaMatrixControlDialog - - plugin for using arbitrary LV2 instruments inside LMMS. + + Link Channels - - Filter for exporting MIDI-files from LMMS - Filtro para exportar archivos MIDI desde LMMS + + Link + - - Filter for importing MIDI-files into LMMS - Filtro para importar archivos MIDI en LMMS + + Channel %1 + - - Monstrous 3-oscillator synth with modulation matrix - Monstruoso sinte de 3 osciladores con matriz de modulación + + Link channels + + + + lmms::gui::LadspaPortDialog - - A multitap echo delay plugin - Un complemento de Multitap echo delay + + Ports + - - A NES-like synthesizer - Un sintetizador tipo-NES + + Name + - - 2-operator FM Synth - Sintetizador FM de 2 operadores + + Rate + - - Additive Synthesizer for organ-like sounds - Sintetizador Aditivo para crear sonidos estilo órgano + + Direction + - - GUS-compatible patch instrument - Instrumento de "patches" compatible con GUS + + Type + - - Plugin for controlling knobs with sound peaks - Complemento para controlar perillas a través de los picos de sonido + + Min < Default < Max + - - Reverb algorithm by Sean Costello - Algoritmo de reverberación por Sean Costello + + Logarithmic + - - Player for SoundFont files - Reproductor de archivos SoundFont + + SR Dependent + - - LMMS port of sfxr - Port de sfxr para LMMS + + Audio + - - Emulation of the MOS6581 and MOS8580 SID. -This chip was used in the Commodore 64 computer. - Emulación del MOS6581 y del MOS8580 SID. -Este chip fue usado en las computadoras Commodore 64. + + Control + - - A graphical spectrum analyzer. + + Input - - Plugin for enhancing stereo separation of a stereo input file - Complemento para mejorar la separación estéreo de un archivo de entrada estéreo + + Output + - - Plugin for freely manipulating stereo output - Complemento para manipular libremente la salida estéreo + + Toggled + - - Tuneful things to bang on - Cosas melodiosas para pegarles + + Integer + - - Three powerful oscillators you can modulate in several ways - Tres poderosos osciladores que puedes modular de muchas maneras + + Float + - - A stereo field visualizer. + + + Yes + + + lmms::gui::Lb302SynthView - - VST-host for using VST(i)-plugins within LMMS - Anfitrión VST para usar complementos VST(i) en LMMS + + Cutoff Freq: + - - Vibrating string modeler - Modelador de cuerdas vibrantes + + Resonance: + - - plugin for using arbitrary VST effects inside LMMS. - complemento para usar efectos VST a voluntad en LMMS. + + Env Mod: + - - 4-oscillator modulatable wavetable synth - Sintetizador de tabla de ondas de 4 osciladores modulables + + Decay: + - - plugin for waveshaping - complemento para modelado de ondas + + 303-es-que, 24dB/octave, 3 pole filter + - - Mathematical expression parser - Analizador de Expresión Matemática + + Slide Decay: + - - Embedded ZynAddSubFX - ZynAddSubFX integrado + + DIST: + - - - PluginDatabaseW - - Carla - Add New + + Saw wave - - Format + + Click here for a saw-wave. - - Internal + + Triangle wave - - LADSPA + + Click here for a triangle-wave. - - DSSI + + Square wave - - LV2 + + Click here for a square-wave. - - VST2 + + Rounded square wave - - VST3 + + Click here for a square-wave with a rounded end. - - AU + + Moog wave - - Sound Kits + + Click here for a moog-like wave. - - Type - Tipo + + Sine wave + - - Effects - Efectos + + Click for a sine-wave. + - - Instruments - Instrumentos + + + White noise wave + - - MIDI Plugins + + Click here for an exponential wave. - - Other/Misc + + Click here for white-noise. - - Architecture + + Bandlimited saw wave - - Native + + Click here for bandlimited saw wave. - - Bridged + + Bandlimited square wave - - Bridged (Wine) + + Click here for bandlimited square wave. - - Requirements + + Bandlimited triangle wave - - With Custom GUI + + Click here for bandlimited triangle wave. - - With CV Ports + + Bandlimited moog saw wave - - Real-time safe only + + Click here for bandlimited moog saw wave. + + + lmms::gui::LcdFloatSpinBox - - Stereo only + + Set value - - With Inline Display + + Please enter a new value between %1 and %2: + + + lmms::gui::LcdSpinBox - - Favorites only + + Set value - - (Number of Plugins go here) + + Please enter a new value between %1 and %2: + + + lmms::gui::LeftRightNav - - &Add Plugin + + + + Previous - - Cancel - Cancelar + + + + Next + - - Refresh + + Previous (%1) - - Reset filters + + Next (%1) + + + lmms::gui::LfoControllerDialog - - - - - - - - - - - - - - - - - TextLabel + + LFO - - Format: + + BASE - - Architecture: + + Base: - - Type: - Tipo: + + FREQ + - - MIDI Ins: + + LFO frequency: - - Audio Ins: + + AMNT - - CV Outs: + + Modulation amount: - - MIDI Outs: + + PHS - - Parameter Ins: + + Phase offset: - - Parameter Outs: + + degrees - - Audio Outs: + + Sine wave - - CV Ins: + + Triangle wave - - UniqueID: + + Saw wave - - Has Inline Display: + + Square wave - - Has Custom GUI: + + Moog saw wave - - Is Synth: + + Exponential wave - - Is Bridged: + + White noise - - Information + + User-defined shape. +Double click to pick a file. - - Name - Nombre + + Multiply modulation frequency by 1 + - - Label/URI + + Multiply modulation frequency by 100 - - Maker + + Divide modulation frequency by 100 + + + lmms::gui::LfoGraph - - Binary/Filename + + %1 Hz + + + lmms::gui::MainWindow - - Focus Text Search + + Configuration file - - Ctrl+F + + Error while parsing configuration file at line %1:%2: %3 - - - PluginEdit - - Plugin Editor + + Could not open file - - Edit + + Could not open file %1 for writing. +Please make sure you have write permission to the file and the directory containing the file and try again! - - Control - Control + + Project recovery + - - MIDI Control Channel: + + There is a recovery file present. It looks like the last session did not end properly or another instance of LMMS is already running. Do you want to recover the project of this session? - - N + + + Recover - - Output dry/wet (100%) + + Recover the file. Please don't run multiple instances of LMMS when you do this. - - Output volume (100%) + + + Discard - - Balance Left (0%) + + Launch a default session and delete the restored files. This is not reversible. - - - Balance Right (0%) + + Version %1 - - Use Balance + + Preparing plugin browser - - Use Panning + + Preparing file browsers - - Settings - Configuración + + My Projects + - - Use Chunks + + My Samples - - Audio: + + My Presets - - Fixed-Size Buffer + + My Home - - Force Stereo (needs reload) + + Root Directory - - MIDI: + + Volumes - - Map Program Changes + + My Computer - - Send Bank/Program Changes + + Loading background picture - - Send Control Changes + + &File - - Send Channel Pressure + + &New - - Send Note Aftertouch + + &Open... - - Send Pitchbend + + &Save - - Send All Sound/Notes Off + + Save &As... - - -Plugin Name - + + Save as New &Version - - Program: + + Save as default template - - MIDI Program: + + Import... - - Save State + + E&xport... - - Load State + + E&xport Tracks... - - Information + + Export &MIDI... - - Label/URI: + + &Quit - - Name: + + &Edit - - Type: - Tipo: + + Undo + - - Maker: + + Redo - - Copyright: + + Scales and keymaps - - Unique ID: + + Settings - - - PluginFactory - - Plugin not found. - Complemento no encontrado + + &View + - - LMMS plugin %1 does not have a plugin descriptor named %2! - ¡El complemento LMMS %1 no tiene un identificador llamado %2! + + &Tools + - - - PluginParameter - - Form + + &Help - - Parameter Name + + Online Help - - ... + + Help - - - PluginRefreshW - - Carla - Refresh + + About - - Search for new... + + Create new project - - LADSPA + + Create new project from template - - DSSI + + Open existing project - - LV2 + + Recently opened projects - - VST2 + + Save current project - - VST3 + + Export current project - - AU + + Metronome - - SF2/3 + + + Song Editor - - SFZ + + + Pattern Editor - - Native + + + Piano Roll - - POSIX 32bit + + + Automation Editor - - POSIX 64bit + + + Mixer - - Windows 32bit + + Show/hide controller rack - - Windows 64bit + + Show/hide project notes - - Available tools: + + Untitled - - python3-rdflib (LADSPA-RDF support) + + Recover session. Please save your work! - - carla-discovery-win64 + + LMMS %1 - - carla-discovery-native + + Recovered project not saved - - carla-discovery-posix32 + + This project was recovered from the previous session. It is currently unsaved and will be lost if you don't save it. Do you want to save it now? - - carla-discovery-posix64 + + Project not saved - - carla-discovery-win32 + + The current project was modified since last saving. Do you want to save it now? - - Options: + + Open Project - - Carla will run small processing checks when scanning the plugins (to make sure they won't crash). -You can disable these checks to get a faster scanning time (at your own risk). + + LMMS (*.mmp *.mmpz) - - Run processing checks while scanning + + Save Project - - Press 'Scan' to begin the search + + LMMS Project - - Scan + + LMMS Project Template - - >> Skip + + Save project template - - Close - Cerrar + + Overwrite default template? + - - - PluginWidget - - - - - - Frame + + This will overwrite your current default template. - - Enable + + Help not available - - On/Off - Encendido/Apagado + + Currently there's no help available in LMMS. +Please visit http://lmms.sf.net/wiki for documentation on LMMS. + - - - - - PluginName + + Controller Rack - - MIDI - MIDI + + Project Notes + - - AUDIO IN + + Fullscreen - - AUDIO OUT + + Volume as dBFS - - GUI + + Smooth scroll - - Edit + + Enable note labels in piano roll - - Remove + + MIDI File (*.mid) - - Plugin Name + + + untitled - - Preset: + + + Select file for project-export... - - - ProjectNotes - - Project Notes - Notas del Proyecto + + Select directory for writing exported tracks... + - - Enter project notes here - Ingrese las Notas del Proyecto Aquí + + Save project + - - Edit Actions - Edición + + Project saved + - - &Undo - Deshacer(&U) + + The project %1 is now saved. + - - %1+Z - %1+Z + + Project NOT saved. + - - &Redo - &Rehacer + + The project %1 was not saved! + - - %1+Y - %1+Y + + Import file + - - &Copy - &Copiar + + MIDI sequences + - - %1+C - %1+C + + Hydrogen projects + - - Cu&t - Cor&tar + + All file types + + + + lmms::gui::MalletsInstrumentView - - %1+X - %1+X + + Instrument + - - &Paste - &Pegar + + Spread + - - %1+V - %1+V + + Spread: + - - Format Actions - Formato + + Random + - - &Bold - Negrita (&B) + + Random: + - - %1+B - %1+B + + Missing files + - - &Italic - Cursiva (&I) + + Your Stk-installation seems to be incomplete. Please make sure the full Stk-package is installed! + - - %1+I - %1+I + + Hardness + - - &Underline - S&ubrayado + + Hardness: + - - %1+U - %1+U + + Position + - - &Left - Izquierda(&L) + + Position: + - - %1+L - %1+L + + Vibrato gain + - - C&enter - C&entrar + + Vibrato gain: + - - %1+E - %1+E + + Vibrato frequency + - - &Right - De&recha + + Vibrato frequency: + - - %1+R - %1+R + + Stick mix + - - &Justify - &Justificar + + Stick mix: + - - %1+J - %1+J + + Modulator + - - &Color... - &Color... + + Modulator: + - - - ProjectRenderer - - WAV (*.wav) - WAV (*.wav) + + Crossfade + - - FLAC (*.flac) - FLAC (*.flac) + + Crossfade: + - - OGG (*.ogg) - OGG (*.ogg) + + LFO speed + - - MP3 (*.mp3) - MP3 (*.mp3) + + LFO speed: + - - - QObject - - Reload Plugin + + LFO depth - - Show GUI - Mostrar IGU + + LFO depth: + - - Help - Ayuda + + ADSR + - - - QWidget - - - - - Name: - Nombre: + + ADSR: + - - URI: + + Pressure - - - - Maker: - Creador: + + Pressure: + - - - - Copyright: - Derechos de autor: + + Speed + - - - Requires Real Time: - Requiere Tiempo Real: + + Speed: + + + + lmms::gui::ManageVSTEffectView - - - - - - - Yes - Si + + - VST parameter control + - - - - - - - No - No + + VST sync + - - - Real Time Capable: - Ejecutable en Tiempo Real: + + + Automated + - - - In Place Broken: - Conflicto de puertos: + + Close + + + + lmms::gui::ManageVestigeInstrumentView - - - Channels In: - Canales entrantes: + + + - VST plugin control + - - - Channels Out: - Canales salientes: + + VST Sync + - - File: %1 - Archivo: %1 + + + Automated + - - File: - Archivo: + + Close + - RecentProjectsMenu + lmms::gui::MeterDialog - - &Recently Opened Projects - Proyectos &Recientes + + + Meter Numerator + - - - RenameDialog - - Rename... - Renombrar... + + Meter numerator + - - - ReverbSCControlDialog - - Input - Entrada + + + Meter Denominator + - - Input gain: - Ganancia de Entrada: + + Meter denominator + - - Size - Tamaño + + TIME SIG + + + + lmms::gui::MicrotunerConfig - - Size: - Tamaño: + + Selected scale slot + - - Color - Color + + Selected keymap slot + - - Color: - Color: + + + First key + - - Output - Salida + + + Last key + - - Output gain: - Ganancia de Salida: + + + Middle key + - - - ReverbSCControls - - Input gain - Ganancia de entrada + + + Base key + - - Size - Tamaño + + + + Base note frequency + - - Color - Color + + Microtuner Configuration + - - Output gain - Ganancia de salida + + Scale slot to edit: + - - - SaControls - - Pause + + Scale description. Cannot start with "!" and cannot contain a newline character. - - Reference freeze + + + Load - - Waterfall + + + Save - - Averaging + + Load scale definition from a file. - - Stereo - Estéreo + + Save scale definition to a file. + - - Peak hold + + Enter intervals on separate lines. Numbers containing a decimal point are treated as cents. +Other inputs are treated as integer ratios and must be in the form of 'a/b' or 'a'. +Unity (0.0 cents or ratio 1/1) is always present as a hidden first value; do not enter it manually. - - Logarithmic frequency + + Apply scale changes - - Logarithmic amplitude + + Verify and apply changes made to the selected scale. To use the scale, select it in the settings of a supported instrument. - - Frequency range + + Keymap slot to edit: - - Amplitude range + + Keymap description. Cannot start with "!" and cannot contain a newline character. - - FFT block size + + Load key mapping definition from a file. - - FFT window type + + Save key mapping definition to a file. - - Peak envelope resolution + + Enter key mappings on separate lines. Each line assigns a scale degree to a MIDI key, +starting with the middle key and continuing in sequence. +The pattern repeats for keys outside of the explicit keymap range. +Multiple keys can be mapped to the same scale degree. +Enter 'x' if you wish to leave the key disabled / not mapped. - - Spectrum display resolution + + FIRST - - Peak decay multiplier + + First MIDI key that will be mapped - - Averaging weight + + LAST - - Waterfall history size + + Last MIDI key that will be mapped - - Waterfall gamma correction + + MIDDLE - - FFT window overlap + + First line in the keymap refers to this MIDI key - - FFT zero padding + + BASE N. - - - Full (auto) + + Base note frequency will be assigned to this MIDI key - - - - Audible + + BASE NOTE FREQ - - Bass - Graves + + Apply keymap changes + - - Mids + + Verify and apply changes made to the selected key mapping. To use the mapping, select it in the settings of a supported instrument. - - High + + Scale parsing error - - Extended + + Scale name cannot start with an exclamation mark - - Loud + + Scale name cannot contain a new-line character - - Silent + + Interval defined in cents cannot be converted to a number - - (High time res.) + + Numerator of an interval defined as a ratio cannot be converted to a number - - (High freq. res.) + + Denominator of an interval defined as a ratio cannot be converted to a number - - Rectangular (Off) + + Interval defined as a ratio cannot be negative - - - Blackman-Harris (Default) + + Keymap parsing error - - Hamming + + Keymap name cannot start with an exclamation mark - - Hanning + + Keymap name cannot contain a new-line character - - - SaControlsDialog - - Pause + + Scale degree cannot be converted to a whole number - - Pause data acquisition + + Scale degree cannot be negative - - Reference freeze + + Invalid keymap - - Freeze current input as a reference / disable falloff in peak-hold mode. + + Base key is not mapped to any scale degree. No sound will be produced as there is no way to assign reference frequency to any note. - - Waterfall + + Open scale - - Display real-time spectrogram + + + Scala scale definition (*.scl) - - Averaging + + Scale load failure - - Enable exponential moving average + + + Unable to open selected file. - - Stereo - Estéreo + + Open keymap + - - Display stereo channels separately - Mostrar canales estéreo por separado + + + Scala keymap definition (*.kbm) + - - Peak hold + + Keymap load failure - - Display envelope of peak values + + Save scale - - Logarithmic frequency + + Scale save failure - - Switch between logarithmic and linear frequency scale + + + Unable to open selected file for writing. - - - Frequency range + + Save keymap - - Logarithmic amplitude + + Keymap save failure + + + lmms::gui::MidiCCRackView - - Switch between logarithmic and linear amplitude scale + + + MIDI CC Rack - %1 - - - Amplitude range + + MIDI CC Knobs: - - Envelope res. + + CC %1 + + + lmms::gui::MidiClipView - - Increase envelope resolution for better details, decrease for better GUI performance. + + + Transpose - - - Draw at most + + Semitones to transpose by: - - envelope points per pixel + + Open in piano-roll - - Spectrum res. + + Set as ghost in piano-roll - - Increase spectrum resolution for better details, decrease for better GUI performance. + + Set as ghost in automation editor - - spectrum points per pixel + + Clear all notes - - Falloff factor + + Reset name - - Decrease to make peaks fall faster. + + Change name - - Multiply buffered value by + + Add steps - - Averaging weight + + Remove steps - - Decrease to make averaging slower and smoother. + + Clone Steps + + + lmms::gui::MidiSetupWidget - - New sample contributes - La nueva muestra aporta + + Device + + + + lmms::gui::MixerChannelLcdSpinBox - - Waterfall height + + Assign to: - - Increase to get slower scrolling, decrease to see fast transitions better. Warning: medium CPU usage. + + New Mixer Channel - - Keep + + Please enter a new value between %1 and %2: - - lines + + Set value + + + lmms::gui::MixerChannelView - - Waterfall gamma + + Channel send amount - - Decrease to see very weak signals, increase to get better contrast. + + Mute - - Gamma value: + + Mute this channel - - Window overlap + + Solo - - Increase to prevent missing fast transitions arriving near FFT window edges. Warning: high CPU usage. + + Solo this channel - - Each sample processed - Cada muestra procesada + + Fader %1 + - - times + + Move &left - - Zero padding + + Move &right - - Increase to get smoother-looking spectrum. Warning: high CPU usage. + + Rename &channel - - Processing buffer is + + R&emove channel - - steps larger than input block + + Remove &unused channels - - Advanced settings + + Color - - Access advanced settings + + Change - - - FFT block size + + Reset - - - FFT window type + + Pick random - - - SampleBuffer - - Fail to open file - No se pudo abrir el archivo + + This Mixer Channel is being used. +Are you sure you want to remove this channel? + +Warning: This operation can not be undone. + - - Audio files are limited to %1 MB in size and %2 minutes of playing time - Los archivos de audio tienen un límite de tamaño de %1 MB y %2 minutos de duración + + Confirm removal + - - Open audio file - Abrir archivo de audio + + Don't ask again + + + + lmms::gui::MixerView - - All Audio-Files (*.wav *.ogg *.ds *.flac *.spx *.voc *.aif *.aiff *.au *.raw) - Todos los archivos de Audio (*.wav *.ogg *.ds *.flac *.spx *.voc *.aif *.aiff *.au *.raw) + + Mixer + + + + lmms::gui::MonstroView - - Wave-Files (*.wav) - Archivos Wave (*.wav) + + Operators view + - - OGG-Files (*.ogg) - Archivos OGG (*.ogg) + + Matrix view + - - DrumSynth-Files (*.ds) - Archivos DrumSynth (*.ds) + + + + Volume + - - FLAC-Files (*.flac) - Archivos FLAC (*.flac) + + + + Panning + - - SPEEX-Files (*.spx) - Archivos SPEEX (*.spx) + + + + Coarse detune + - - VOC-Files (*.voc) - Archivos VOC (*.voc) + + + + semitones + - - AIFF-Files (*.aif *.aiff) - Archivos AIFF (*.aif *.aiff) + + + Fine tune left + - - AU-Files (*.au) - Archivos AU (*.au) + + + + + cents + - - RAW-Files (*.raw) - Archivos RAW (*.raw) + + + Fine tune right + - - - SampleClipView - - Double-click to open sample - Haga doble clic para abrir la muestra. + + + + Stereo phase offset + - - Delete (middle mousebutton) - Borrar (click del medio ) + + + + + + deg + - - Delete selection (middle mousebutton) + + Pulse width - - Cut - Cortar + + Send sync on pulse rise + - - Cut selection + + Send sync on pulse fall - - Copy - Copiar + + Hard sync oscillator 2 + - - Copy selection + + Reverse sync oscillator 2 - - Paste - Pegar + + Sub-osc mix + - - Mute/unmute (<%1> + middle click) - Silenciar/Escuchar (<%1> + click del medio) + + Hard sync oscillator 3 + - - Mute/unmute selection (<%1> + middle click) + + Reverse sync oscillator 3 - - Reverse sample - Reproducir la muestra en reversa + + + + + Attack + - - Set clip color + + + Rate - - Use track color + + + Phase - - - SampleTrack - - Volume - Volumen + + + Pre-delay + - - Panning - Paneo + + + Hold + - - Mixer channel - Canal FX + + + Decay + - - - Sample track - Pista de muestras + + + Sustain + - - - SampleTrackView - - Track volume - Volumen de la pista + + + Release + - - Channel volume: - Volumen del canal: + + + Slope + - - VOL - VOL + + Mix osc 2 with osc 3 + - - Panning - Paneo + + Modulate amplitude of osc 3 by osc 2 + - - Panning: - Paneo: + + Modulate frequency of osc 3 by osc 2 + - - PAN - PAN + + Modulate phase of osc 3 by osc 2 + - - Channel %1: %2 - FX %1: %2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Modulation amount + - SampleTrackWindow - - - GENERAL SETTINGS - CONFIGURACIÓN GENERAL - - - - Sample volume - Volumen de la muestra - - - - Volume: - Volumen: - + lmms::gui::MultitapEchoControlDialog - - VOL - VOL + + Length + - - Panning - Paneo + + Step length: + - - Panning: - Paneo: + + Dry + - - PAN - PAN + + Dry gain: + - - Mixer channel - Canal FX + + Stages + - - CHANNEL - FX + + Low-pass stages: + - - - SaveOptionsWidget - - Discard MIDI connections + + Swap inputs - - Save As Project Bundle (with resources) + + Swap left and right input channels for reflections - SetupDialog + lmms::gui::NesInstrumentView - - Reset to default value + + + + + Volume - - Use built-in NaN handler + + + + Coarse detune - - Settings - Configuración - - - - - General + + + + Envelope length - - Graphical user interface (GUI) + + Enable channel 1 - - Display volume as dBFS - Mostrar volumen en dBFS - - - - Enable tooltips - Habilitar Consejos + + Enable envelope 1 + - - Enable master oscilloscope by default + + Enable envelope 1 loop - - Enable all note labels in piano roll + + Enable sweep 1 - - Enable compact track buttons + + + Sweep amount - - Enable one instrument-track-window mode + + + Sweep rate - - Show sidebar on the right-hand side + + + 12.5% Duty cycle - - Let sample previews continue when mouse is released + + + 25% Duty cycle - - Mute automation tracks during solo + + + 50% Duty cycle - - Show warning when deleting tracks + + + 75% Duty cycle - - Projects + + Enable channel 2 - - Compress project files by default + + Enable envelope 2 - - Create a backup file when saving a project + + Enable envelope 2 loop - - Reopen last project on startup + + Enable sweep 2 - - Language + + Enable channel 3 - - - Performance + + Noise Frequency - - Autosave + + Frequency sweep - - Enable autosave + + Enable channel 4 - - Allow autosave while playing + + Enable envelope 4 - - User interface (UI) effects vs. performance + + Enable envelope 4 loop - - Smooth scroll in song editor + + Quantize noise frequency when using note frequency - - Display playback cursor in AudioFileProcessor + + Use note frequency for noise - - Plugins - Complementos + + Noise mode + - - VST plugins embedding: + + Master volume - - No embedding - No hay inserciones + + Vibrato + + + + lmms::gui::OpulenzInstrumentView - - Embed using Qt API - Insertado usando la API Qt + + + Attack + - - Embed using native Win32 API - Insertado usando la API Win32 + + + Decay + - - Embed using XEmbed protocol - Insertado usando el protocolo XEmbed + + + Release + - - Keep plugin windows on top when not embedded + + + Frequency multiplier + + + lmms::gui::OrganicInstrumentView - - Sync VST plugins to host playback - Sincronizar complementos VST al anfitrión + + Distortion: + - - Keep effects running even without input - Mantener los efectos en proceso aún sin señal de entrada + + Volume: + - - - Audio - Audio + + Randomise + - - Audio interface + + + Osc %1 waveform: - - HQ mode for output audio device + + Osc %1 volume: - - Buffer size + + Osc %1 panning: - - - MIDI - MIDI + + Osc %1 stereo detuning + - - MIDI interface + + cents - - Automatically assign MIDI controller to selected track + + Osc %1 harmonic: + + + lmms::gui::Oscilloscope - - LMMS working directory - Directorio de trabajo de LMMS + + Oscilloscope + - - VST plugins directory + + Click to enable + + + lmms::gui::PatmanView - - LADSPA plugins directories + + Open patch - - SF2 directory - Directorio SF2 + + Loop + - - Default SF2 + + Loop mode - - GIG directory - Directorio GIG + + Tune + - - Theme directory + + Tune mode - - Background artwork - Imágenes de fondo + + No file selected + - - Some changes require restarting. + + Open patch file - - Autosave interval: %1 + + Patch-Files (*.pat) + + + lmms::gui::PatternClipView - - Choose the LMMS working directory + + Open in Pattern Editor - - Choose your VST plugins directory + + Reset name - - Choose your LADSPA plugins directory + + Change name + + + lmms::gui::PatternEditorWindow - - Choose your default SF2 + + Pattern Editor - - Choose your theme directory + + Play/pause current pattern (Space) - - Choose your background picture + + Stop playback of current pattern (Space) - - - Paths - Lugares + + Pattern selector + - - OK - De acuerdo + + Track and step actions + - - Cancel - Cancelar + + New pattern + - - Frames: %1 -Latency: %2 ms - Cuadros: %1 -Latencia: %2 ms + + Clone pattern + - - Choose your GIG directory - Elige tu directorio GIG + + Add sample-track + - - Choose your SF2 directory - Elige tu directorio SF2 + + Add automation-track + - - minutes - minutos + + Remove steps + - - minute - minuto + + Add steps + - - Disabled - Inhabilitado + + Clone Steps + - SidInstrument + lmms::gui::PeakControllerDialog - - Cutoff frequency - Frecuencia de corte + + PEAK + - - Resonance - Resonancia + + LFO Controller + + + + lmms::gui::PeakControllerEffectControlDialog - - Filter type - Tipo de filtro + + BASE + - - Voice 3 off - Voz 3 apagada + + Base: + - - Volume - Volumen + + AMNT + - - Chip model - Modelo del chip + + Modulation amount: + - - - SidInstrumentView - - Volume: - Volumen: + + MULT + - - Resonance: - Resonancia: + + Amount multiplicator: + - - - Cutoff frequency: - Frecuencia de corte: + + ATCK + - - High-pass filter + + Attack: - - Band-pass filter + + DCAY - - Low-pass filter + + Release: - - Voice 3 off + + TRSH - - MOS6581 SID - MOS6581 SID + + Treshold: + - - MOS8580 SID - MOS8580 SID + + Mute output + - - - Attack: - Ataque: + + Absolute value + + + + lmms::gui::PeakIndicator - - - Decay: - Caída: + + -inf + + + + lmms::gui::PianoRoll - - Sustain: - Sostenido: + + Note Velocity + - - - Release: - Disipación: + + Note Panning + - - Pulse Width: - Amplitud del Pulso: + + Mark/unmark current semitone + - - Coarse: - Gruesa: + + Mark/unmark all corresponding octave semitones + - - Pulse wave + + Mark current scale - - Triangle wave - Onda triangular + + Mark current chord + - - Saw wave - Onda de sierra + + Unmark all + - - Noise - Ruido + + Select all notes on this key + - - Sync - Sincro + + Note lock + - - Ring modulation + + Last note - - Filtered - Filtrado + + No key + - - Test - Prueba + + No scale + - - Pulse width: + + No chord - - - SideBarWidget - - Close - Cerrar + + Nudge + - - - Song - - Tempo - Tempo + + Snap + - - Master volume - Volumen maestro + + Velocity: %1% + - - Master pitch - Transporte + + Panning: %1% left + - - Aborting project load + + Panning: %1% right - - Project file contains local paths to plugins, which could be used to run malicious code. + + Panning: center - - Can't load project: Project file contains local paths to plugins. + + Glue notes failed - - LMMS Error report - Reporte de errores LMMS + + Please select notes to glue first. + - - (repeated %1 times) + + Please open a clip by double-clicking on it! - - The following errors occurred while loading: + + + Please enter a new value between %1 and %2: - SongEditor + lmms::gui::PianoRollWindow - - Could not open file - No se puede abrir el archivo + + Play/pause current clip (Space) + - - Could not open file %1. You probably have no permissions to read this file. - Please make sure to have at least read permissions to the file and try again. - No se puede abrir el archivo %1. Probablemente no tengas permisos para leer este archivo. -Asegúrate de tener al menos permisos de lectura sobre este archivo e inténtalo nuevamente. + + Record notes from MIDI-device/channel-piano + - - Operation denied + + Record notes from MIDI-device/channel-piano while playing song or pattern track - - A bundle folder with that name already eists on the selected path. Can't overwrite a project bundle. Please select a different name. + + Record notes from MIDI-device/channel-piano, one step at the time - - - - Error - Error + + Stop playing of current clip (Space) + - - Couldn't create bundle folder. + + Edit actions - - Couldn't create resources folder. + + Draw mode (Shift+D) - - Failed to copy resources. + + Erase mode (Shift+E) - - Could not write file - No se puede escribir el archivo + + Select mode (Shift+S) + - - Could not open %1 for writing. You probably are not permitted towrite to this file. Please make sure you have write-access to the file and try again. + + Pitch Bend mode (Shift+T) - - This %1 was created with LMMS %2 + + Quantize - - Error in file - Error en el archivo + + Quantize positions + - - The file %1 seems to contain errors and therefore can't be loaded. - El archivo %1 aparentemente contiene errores y por lo tanto no puede cargarse. + + Quantize lengths + - - Version difference - Diferencia de versión + + File actions + - - template - plantilla + + Import clip + - - project - proyecto + + + Export clip + - - Tempo - Tempo + + Copy paste controls + - - TEMPO + + Cut (%1+X) - - Tempo in BPM + + Copy (%1+C) - - High quality mode - Modo de alta calidad + + Paste (%1+V) + - - - - Master volume - Volumen maestro + + Timeline controls + - - - - Master pitch - Transporte + + Glue + - - Value: %1% - Valor: %1% + + Knife + - - Value: %1 semitones - Valor: %1 semitonos + + Fill + - - - SongEditorWindow - - Song-Editor - Editor de Canción + + Cut overlaps + - - Play song (Space) - Reproducir canción (Espacio) + + Min length as last + - - Record samples from Audio-device - Grabar muestras desde el Dispositivo de Audio + + Max length as last + - - Record samples from Audio-device while playing song or BB track - Grabar muestras desde el Dispositivo de Audio escuchando la Canción o el Ritmo/Bajo + + Zoom and note controls + - - Stop song (Space) - Detener canción (Espacio) + + Horizontal zooming + - - Track actions - Acciones de pista + + Vertical zooming + - - Add beat/bassline - Agregar Ritmo/bajo + + Quantization + - - Add sample-track - Agregar pista de muestras + + Note length + - - Add automation-track - Agregar pista de Automatización + + Key + - - Edit actions - Acciones de edición + + Scale + - - Draw mode - Modo de dibujo + + Chord + - - Knife mode (split sample clips) + + Snap mode - - Edit mode (select and move) - Modo de edición (seleccionar y mover) + + Clear ghost notes + - - Timeline controls - Controles de la línea de Tiempo + + + Piano-Roll - %1 + - - Bar insert controls + + + Piano-Roll - no clip - - Insert bar + + + XML clip file (*.xpt *.xptz) - - Remove bar + + Export clip success - - Zoom controls - Controles de Acercamiento + + Clip saved to %1 + - - Horizontal zooming + + Import clip. - - Snap controls + + You are about to import a clip, this will overwrite your current clip. Do you want to continue? - - - Clip snapping size + + Open clip - - Toggle proportional snap on/off + + Import clip success - - Base snapping size + + Imported clip %1! - StepRecorderWidget + lmms::gui::PianoView - - Hint - Pista + + Base note + - - Move recording curser using <Left/Right> arrows + + First note + + + + + Last note - SubWindow + lmms::gui::PluginBrowser - - Close - Cerrar + + Instrument Plugins + - - Maximize - Maximizar + + Instrument browser + - - Restore - Restaurar + + Drag an instrument into either the Song Editor, the Pattern Editor or an existing instrument track. + - - - TabWidget - - - Settings for %1 - Configuración para %1 + + Search + - TemplatesMenu + lmms::gui::PluginDescWidget - - New from template - Nuevo desde plantilla + + Send to new instrument track + - TempoSyncKnob - - - - Tempo Sync - Sincronizar al Tempo - + lmms::gui::ProjectNotes - - No Sync - Sin Sincro - - - - Eight beats - Ocho tiempos - - - - Whole note - Redonda + + Project Notes + - - Half note - Blanca + + Enter project notes here + - - Quarter note - Negra + + Edit Actions + - - 8th note - Corchea + + &Undo + - - 16th note - Semicorchea + + %1+Z + - - 32nd note - Fusa + + &Redo + - - Custom... - Personalizado... + + %1+Y + - - Custom - Personalizado + + &Copy + - - Synced to Eight Beats - Sincronizado a ocho tiempos + + %1+C + - - Synced to Whole Note - Sincronizado a Redondas + + Cu&t + - - Synced to Half Note - Sincronizado a Blancas + + %1+X + - - Synced to Quarter Note - Sincronizado a Negras + + &Paste + - - Synced to 8th Note - Sincronizado a Corcheas + + %1+V + - - Synced to 16th Note - Sincronizado a Semicorcheas + + Format Actions + - - Synced to 32nd Note - Sincronizado a Fusas + + &Bold + - - - TimeDisplayWidget - - Time units + + %1+B - - MIN - MIN + + &Italic + - - SEC - SEG + + %1+I + - - MSEC - MSEG + + &Underline + - - BAR - COMPAS + + %1+U + - - BEAT - PULSO + + &Left + - - TICK - TICK + + %1+L + - - - TimeLineWidget - - Auto scrolling + + C&enter - - Loop points + + %1+E - - After stopping go back to beginning + + &Right - - After stopping go back to position at which playing was started - Al detenerse volver a la posición en la que comenzó la reproducción + + %1+R + - - After stopping keep position - Al detenerse mantener la posición final + + &Justify + - - Hint - Pista + + %1+J + - - Press <%1> to disable magnetic loop points. - Presiona <%1> para desactivar los puntos de bucle magnéticos. + + &Color... + - Track - - - Mute - Silencio - + lmms::gui::RecentProjectsMenu - - Solo - Solo + + &Recently Opened Projects + - TrackContainer - - - Couldn't import file - No se pudo importar el archivo - - - - Couldn't find a filter for importing file %1. -You should convert this file into a format supported by LMMS using another software. - No se pudo hallar un filtro para importar el archivo %1. -Debes convertir este archivo a un formato soportado por LMMS usando otra aplicación. - - - - Couldn't open file - No se puede abrir el archivo - - - - Couldn't open file %1 for reading. -Please make sure you have read-permission to the file and the directory containing the file and try again! - El archivo %1 no puede abrirse para lectura. -¡Asegúrate de tener permisos de lectura tanto del archivo como del directorio que lo contiene e inténtalo nuevamente! - - - - Loading project... - Cargando proyecto... - - - - - Cancel - Cancelar - + lmms::gui::RenameDialog - - - Please wait... - Por favor, espera... - - - - Loading cancelled - Carga cancelada - - - - Project loading was cancelled. - Carga del proyecto cancelada. - - - - Loading Track %1 (%2/Total %3) - Cargando Pista %1 (%2/Total %3) - - - - Importing MIDI-file... - Importando archivo MIDI... + + Rename... + - Clip + lmms::gui::ReverbSCControlDialog - - Mute - Silencio + + Input + - - - ClipView - - Current position - Posición actual + + Input gain: + - - Current length - Duración actual + + Size + - - - %1:%2 (%3:%4 to %5:%6) - %1:%2 (%3:%4 a %5:%6) + + Size: + - - Press <%1> and drag to make a copy. - Presiona <%1> y arrastra para crear una copia. + + Color + - - Press <%1> for free resizing. - Presiona <%1> para redimensionar libremente. + + Color: + - - Hint - Pista + + Output + - - Delete (middle mousebutton) - Borrar (click del medio ) + + Output gain: + + + + lmms::gui::SaControlsDialog - - Delete selection (middle mousebutton) + + Pause - - Cut - Cortar + + Pause data acquisition + - - Cut selection + + Reference freeze - - Merge Selection + + Freeze current input as a reference / disable falloff in peak-hold mode. - - Copy - Copiar + + Waterfall + - - Copy selection + + Display real-time spectrogram - - Paste - Pegar + + Averaging + - - Mute/unmute (<%1> + middle click) - Silenciar/Escuchar (<%1> + click del medio) + + Enable exponential moving average + - - Mute/unmute selection (<%1> + middle click) + + Stereo - - Set clip color + + Display stereo channels separately - - Use track color + + Peak hold - - - TrackContentWidget - - Paste - Pegar + + Display envelope of peak values + - - - TrackOperationsWidget - - Press <%1> while clicking on move-grip to begin a new drag'n'drop action. + + Logarithmic frequency - - Actions + + Switch between logarithmic and linear frequency scale - - - Mute - Silencio + + + Frequency range + - - - Solo - Solo + + Logarithmic amplitude + - - After removing a track, it can not be recovered. Are you sure you want to remove track "%1"? + + Switch between logarithmic and linear amplitude scale - - Confirm removal + + + Amplitude range - - Don't ask again + + + FFT block size - - Clone this track - Clonar esta pista + + + FFT window type + - - Remove this track - Eliminar esta pista + + Envelope res. + - - Clear this track - Limpiar esta pista + + Increase envelope resolution for better details, decrease for better GUI performance. + - - Channel %1: %2 - FX %1: %2 + + Maximum number of envelope points drawn per pixel: + - - Assign to new mixer Channel - Asignar a un nuevo Canal FX + + Spectrum res. + - - Turn all recording on - Activar todas las grabaciones + + Increase spectrum resolution for better details, decrease for better GUI performance. + - - Turn all recording off - Apagar todas las grabacioens + + Maximum number of spectrum points drawn per pixel: + - - Change color - Cambiar color + + Falloff factor + - - Reset color to default - Restaurar el color por defecto + + Decrease to make peaks fall faster. + - - Set random color + + Multiply buffered value by - - Clear clip colors + + Averaging weight - - - TripleOscillatorView - - Modulate phase of oscillator 1 by oscillator 2 + + Decrease to make averaging slower and smoother. - - Modulate amplitude of oscillator 1 by oscillator 2 + + New sample contributes - - Mix output of oscillators 1 & 2 + + Waterfall height - - Synchronize oscillator 1 with oscillator 2 - Sincronizar el oscilador 1 con el oscilador 2 + + Increase to get slower scrolling, decrease to see fast transitions better. Warning: medium CPU usage. + - - Modulate frequency of oscillator 1 by oscillator 2 + + Number of lines to keep: - - Modulate phase of oscillator 2 by oscillator 3 + + Waterfall gamma - - Modulate amplitude of oscillator 2 by oscillator 3 + + Decrease to see very weak signals, increase to get better contrast. - - Mix output of oscillators 2 & 3 + + Gamma value: - - Synchronize oscillator 2 with oscillator 3 - Sincronizar el oscilador 2 con el oscilador 3 + + Window overlap + - - Modulate frequency of oscillator 2 by oscillator 3 + + Increase to prevent missing fast transitions arriving near FFT window edges. Warning: high CPU usage. - - Osc %1 volume: - Osc %1 Volumen: + + Number of times each sample is processed: + - - Osc %1 panning: - Osc %1 paneo: + + Zero padding + - - Osc %1 coarse detuning: - Osc %1 desafinación gruesa: + + Increase to get smoother-looking spectrum. Warning: high CPU usage. + - - semitones - semitonos + + Processing buffer is + - - Osc %1 fine detuning left: - Osc %1 desafinación fina izquierda: + + steps larger than input block + - - - cents - cents + + Advanced settings + - - Osc %1 fine detuning right: - Osc %1 desafinación fina derecha: + + Access advanced settings + + + + lmms::gui::SampleClipView - - Osc %1 phase-offset: - Osc %1 desfase: + + Double-click to open sample + - - - degrees - grados + + Reverse sample + - - Osc %1 stereo phase-detuning: - Osc %1 desafinación de fase estéreo: + + Set as ghost in automation editor + + + + lmms::gui::SampleTrackView - - Sine wave - Onda sinusoidal + + Mixer channel + - - Triangle wave - Onda triangular + + Track volume + - - Saw wave - Onda de sierra + + Channel volume: + - - Square wave - Onda cuadrada + + VOL + - - Moog-like saw wave + + Panning - - Exponential wave - Onda Exponencial + + Panning: + - - White noise - Ruido blanco + + PAN + - - User-defined wave + + %1: %2 - VecControls + lmms::gui::SampleTrackWindow - - Display persistence amount + + Sample volume - - Logarithmic scale + + Volume: - - High quality + + VOL - - - VecControlsDialog - - HQ + + Panning - - Double the resolution and simulate continuous analog-like trace. + + Panning: - - Log. scale + + PAN - - Display amplitude on logarithmic scale to better see small values. + + Mixer channel - - Persist. + + CHANNEL + + + lmms::gui::SaveOptionsWidget - - Trace persistence: higher amount means the trace will stay bright for longer time. + + Discard MIDI connections - - Trace persistence + + Save As Project Bundle (with resources) - VersionedSaveDialog - - - Increment version number - Incrementar el número de versión - + lmms::gui::SetupDialog - - Decrement version number - Disminuír el número de versión - - - - Save Options + + Settings - - already exists. Do you want to replace it? - ¡Ya existe! ¿Deseas reemplazarlo? + + + General + - - - VestigeInstrumentView - - - Open VST plugin + + Graphical user interface (GUI) - - Control VST plugin from LMMS host + + Display volume as dBFS - - Open VST plugin preset + + Enable tooltips - - Previous (-) - Anterior (-) + + Enable master oscilloscope by default + - - Save preset - Guardar preconfiguración + + Enable all note labels in piano roll + - - Next (+) - Siguiente (+) + + Enable compact track buttons + - - Show/hide GUI - Mostrar/Ocultar IGU + + Enable one instrument-track-window mode + - - Turn off all notes - Apagar todas las notas + + Show sidebar on the right-hand side + - - DLL-files (*.dll) - archivos DDL (*.dll) + + Let sample previews continue when mouse is released + - - EXE-files (*.exe) - archivos EXE (*.exe) + + Mute automation tracks during solo + - - No VST plugin loaded + + Show warning when deleting tracks - - Preset - Preconfiguración + + Show warning when deleting a mixer channel that is in use + - - by - por + + Dual-button + - - - VST plugin control - - control de complemento VST + + Grab closest + - - - VstEffectControlDialog - - Show/hide - Mostrar/Ocultar + + Handles + - - Control VST plugin from LMMS host + + Loop edit mode - - Open VST plugin preset + + Projects - - Previous (-) - Anterior (-) + + Compress project files by default + - - Next (+) - Siguiente (+) + + Create a backup file when saving a project + - - Save preset - Guardar preconfiguración + + Reopen last project on startup + - - - Effect by: - Efecto por: + + Language + - - &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> - &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> + + + Performance + - - - VstPlugin - - - The VST plugin %1 could not be loaded. - El complemento VST %1 no se ha podido cargar. + + Autosave + - - Open Preset - Abrir Preconfiguración + + Enable autosave + - - - Vst Plugin Preset (*.fxp *.fxb) - Preconfiguración VST (*.fxp *.fxb) + + Allow autosave while playing + - - : default - : por defecto + + User interface (UI) effects vs. performance + - - Save Preset - Guardar preconfiguración + + Smooth scroll in song editor + - - .fxp - .fxp + + Display playback cursor in AudioFileProcessor + - - .FXP - .FXP + + Plugins + - - .FXB - .FXB + + VST plugins embedding: + - - .fxb - .fxb + + No embedding + - - Loading plugin - Cargando complemento + + Embed using Qt API + - - Please wait while loading VST plugin... - Por favor espera mientras se carga el complemento VST... + + Embed using native Win32 API + - - - WatsynInstrument - - Volume A1 - A1 volumen + + Embed using XEmbed protocol + - - Volume A2 - A2 volumen + + Keep plugin windows on top when not embedded + - - Volume B1 - B1 volumen + + Keep effects running even without input + - - Volume B2 - B2 volumen + + + Audio + - - Panning A1 - A1 paneo + + Audio interface + - - Panning A2 - A2 paneo + + Buffer size + - - Panning B1 - B1 paneo + + Reset to default value + - - Panning B2 - B2 paneo + + + MIDI + - - Freq. multiplier A1 - A1 multiplicador de frec. + + MIDI interface + - - Freq. multiplier A2 - A2 multiplicador de frec. + + Automatically assign MIDI controller to selected track + - - Freq. multiplier B1 - B1 multiplicador de frec. + + Behavior when recording + - - Freq. multiplier B2 - B2 multiplicador de frec. + + Auto-quantize notes in Piano Roll + - - Left detune A1 - A1 desafin izq + + If enabled, notes will be automatically quantized when recording them from a MIDI controller. If disabled, they are always recorded at the highest possible resolution. + - - Left detune A2 - A2 desafin izq + + + Paths + - - Left detune B1 - B1 desafin izq + + LMMS working directory + - - Left detune B2 - B2 desafin izq + + VST plugins directory + - - Right detune A1 - A1 desafin der + + LADSPA plugins directories + - - Right detune A2 - A2 desafin der + + SF2 directory + - - Right detune B1 - B1 desafin der + + Default SF2 + - - Right detune B2 - B2 desafin der + + GIG directory + - - A-B Mix - Mezcla A-B + + Theme directory + - - A-B Mix envelope amount - Cantidad de envolvente de la Mezcla A-B + + Background artwork + - - A-B Mix envelope attack - Ataque de la envolvente de la mezcla A-B + + Some changes require restarting. + - - A-B Mix envelope hold - Mantenido de la envolvente de la mezcla A-B + + OK + - - A-B Mix envelope decay - Caída de la envolvente de la mezcla A-B + + Cancel + - - A1-B2 Crosstalk - Diafonía A1-B2 + + minutes + - - A2-A1 modulation - Modulación A2-A1 + + minute + - - B2-B1 modulation - Modulación B2-B1 + + Disabled + - - Selected graph - Gráfico seleccionado + + Autosave interval: %1 + - - - WatsynView - - - - - Volume - Volumen + + The currently selected value is not a power of 2 (32, 64, 128, 256). Some plugins may not be available. + - - - - - Panning - Paneo + + The currently selected value is less than or equal to 32. Some plugins may not be available. + - - - - - Freq. multiplier - Multiplicador de frec. + + Frames: %1 +Latency: %2 ms + - - - - - Left detune - Desafinación izquierda + + Choose the LMMS working directory + - - - - - - - - - cents - cents + + Choose your VST plugins directory + - - - - - Right detune - Desafinación derecha + + Choose your LADSPA plugins directory + - - A-B Mix - Mezcla A-B + + Choose your SF2 directory + - - Mix envelope amount - Cantidad de envolvente de la Mezcla + + Choose your default SF2 + - - Mix envelope attack - Ataque de la envolvente de la Mezcla + + Choose your GIG directory + - - Mix envelope hold - Mantenido de la envolvente de la Mezcla + + Choose your theme directory + - - Mix envelope decay - Caída de la envolvente de la Mezcla + + Choose your background picture + + + + lmms::gui::Sf2InstrumentView - - Crosstalk - Diafonía + + + Open SoundFont file + - - Select oscillator A1 - Seleccionar oscilador A1 + + Choose patch + - - Select oscillator A2 - Seleccionar oscilador A2 + + Gain: + - - Select oscillator B1 - Seleccionar oscilador B1 + + Apply reverb (if supported) + - - Select oscillator B2 - Seleccionar oscilador B2 + + Room size: + - - Mix output of A2 to A1 - Mezclar la salida de A2 con A1 + + Damping: + - - Modulate amplitude of A1 by output of A2 + + Width: - - Ring modulate A1 and A2 + + + Level: - - Modulate phase of A1 by output of A2 + + Apply chorus (if supported) - - Mix output of B2 to B1 - Mezclar la salida de B2 con B1 + + Voices: + - - Modulate amplitude of B1 by output of B2 + + Speed: - - Ring modulate B1 and B2 + + Depth: - - Modulate phase of B1 by output of B2 + + SoundFont Files (*.sf2 *.sf3) + + + lmms::gui::SidInstrumentView - - - - - Draw your own waveform here by dragging your mouse on this graph. - Dibuja tu propia onda arrastrando el puntero sobre el gráfico. + + Volume: + - - Load waveform - Cargar onda + + Resonance: + - - Load a waveform from a sample file - Cargar una forma de onda desde un archivo de muestra + + + Cutoff frequency: + - - Phase left - Fase izquierda + + High-pass filter + - - Shift phase by -15 degrees + + Band-pass filter - - Phase right - Fase derecha + + Low-pass filter + - - Shift phase by +15 degrees + + Voice 3 off - - - Normalize - Normalizar + + MOS6581 SID + - - - Invert - Invertir + + MOS8580 SID + - - - Smooth - Suavizar + + + Attack: + - - - Sine wave - Onda Sinusoidal + + + Decay: + - - - - Triangle wave - Onda triangular + + Sustain: + - - Saw wave - Onda de sierra + + + Release: + - - - Square wave - Onda Cuadrada + + Pulse Width: + - - - Xpressive - - Selected graph - Gráfico seleccionado + + Coarse: + - - A1 - A1 + + Pulse wave + - - A2 - A2 + + Triangle wave + - - A3 - A3 + + Saw wave + - - W1 smoothing - W1 Suavizadora + + Noise + - - W2 smoothing - W2 Suavizadora + + Sync + - - W3 smoothing - W3 Suavizadora + + Ring modulation + - - Panning 1 + + Filtered - - Panning 2 + + Test - - Rel trans + + Pulse width: - XpressiveView + lmms::gui::SideBarWidget - - Draw your own waveform here by dragging your mouse on this graph. - Dibuja tu propia onda arrastrando el puntero sobre el gráfico. + + Close + + + + lmms::gui::SlicerTView - - Select oscillator W1 - Seleccionar Oscilador W1 + + Slice snap + - - Select oscillator W2 - Seleccionar Oscilador W2 + + Set slice snapping for detection + - - Select oscillator W3 - Seleccionar Oscilador W3 + + Sync sample + - - Select output O1 + + Enable BPM sync - - Select output O2 + + Original sample BPM - - Open help window - Abrir Ventana De Ayuda + + Threshold used for slicing + - - - Sine wave - Onda sinusoidal + + Fade Out per note in milliseconds + - - - Moog-saw wave + + Copy midi pattern to clipboard - - - Exponential wave - Onda Exponencial + + Open sample selector + - - - Saw wave - Onda de sierra + + Reset slices + - - - User-defined wave + + Threshold - - - Triangle wave - Onda triangular + + Fade Out + - - - Square wave - Onda cuadrada + + Reset + - - - White noise - Ruido blanco + + Midi + - - WaveInterpolate - Oleada Interpolar + + BPM + - - ExpressionValid - Expresión Validada + + Snap + + + + lmms::gui::SlicerTWaveform - - General purpose 1: - Propósito General 1: + + Click to load sample + + + + lmms::gui::SongEditor - - General purpose 2: - Propósito General 2: + + Could not open file + - - General purpose 3: - Propósito General 3: + + Could not open file %1. You probably have no permissions to read this file. + Please make sure to have at least read permissions to the file and try again. + - - O1 panning: - Panorámica O1: + + Operation denied + - - O2 panning: - Panorámica O2: + + A bundle folder with that name already eists on the selected path. Can't overwrite a project bundle. Please select a different name. + - - Release transition: - Liberar La Transición: + + + + Error + - - Smoothness - Suavizar + + Couldn't create bundle folder. + - - - ZynAddSubFxInstrument - - Portamento - Portamento + + Couldn't create resources folder. + - - Filter frequency + + Failed to copy resources. - - Filter resonance + + + Could not write file - - Bandwidth - Ancho De Banda + + Could not open %1 for writing. You probably are not permitted to write to this file. Please make sure you have write-access to the file and try again. + - - FM gain + + An unknown error has occurred and the file could not be saved. - - Resonance center frequency + + Error in file - - Resonance bandwidth + + The file %1 seems to contain errors and therefore can't be loaded. - - Forward MIDI control change events + + template - - - ZynAddSubFxView - - Portamento: - Portamento: + + project + - - PORT - PORT + + Version difference + - - Filter frequency: + + This %1 was created with LMMS %2 - - FREQ - FREC + + Zoom + - - Filter resonance: + + Tempo - - RES - RESO + + TEMPO + - - Bandwidth: - Ancho De Banda: + + Tempo in BPM + - - BW - AdB + + + + Master volume + - - FM gain: + + + + Global transposition - - FM GAIN - GAN FM + + 1/%1 Bar + - - Resonance center frequency: - Frecuencia Central de Resonancia: + + %1 Bars + - - RES CF - FCdRES + + Value: %1% + - - Resonance bandwidth: - Ancho de banda de Resonancia: + + Value: %1 keys + + + + lmms::gui::SongEditorWindow - - RES BW - AdB RES + + Song-Editor + - - Forward MIDI control changes + + Play song (Space) - - Show GUI - Mostrar IGU + + Record samples from Audio-device + - - - AudioFileProcessor - - Amplify - Amplificar + + Record samples from Audio-device while playing song or pattern track + - - Start of sample - Inicio de la muestra + + Stop song (Space) + - - End of sample - Fin de la muestra + + Track actions + - - Loopback point - Punto de bucle + + Add pattern-track + - - Reverse sample - Reproducir la muestra en reversa + + Add sample-track + - - Loop mode - Modo Bucle + + Add automation-track + - - Stutter - Tartamudeo + + Edit actions + - - Interpolation mode - Modo de Interpolación + + Draw mode + - - None - Ninguno + + Knife mode (split sample clips) + - - Linear - Lineal + + Edit mode (select and move) + - - Sinc - Sinc + + Timeline controls + - - Sample not found: %1 - Muestra no encontrada: %1 + + Bar insert controls + - - - BitInvader - - Sample length - Longitud de la muestra + + Insert bar + - - - BitInvaderView - - Sample length - Longitud de la muestra + + Remove bar + - - Draw your own waveform here by dragging your mouse on this graph. - Dibuja tu propia onda arrastrando el puntero sobre el gráfico. + + Zoom controls + - - - Sine wave - Onda Sinusoidal + + + Zoom + - - - Triangle wave - Onda triangular + + Snap controls + - - - Saw wave - Onda de sierra + + + Clip snapping size + - - - Square wave - Onda Cuadrada + + Toggle proportional snap on/off + - - - White noise - Ruido blanco + + Base snapping size + + + + lmms::gui::StepRecorderWidget - - - User-defined wave + + Hint - - - Smooth waveform - Suavizar onda + + Move recording curser using <Left/Right> arrows + + + + lmms::gui::StereoEnhancerControlDialog - - Interpolation - Interpolación + + WIDTH + - - Normalize - Normalizar + + Width: + - DynProcControlDialog + lmms::gui::StereoMatrixControlDialog - - INPUT - ENTRADA + + Left to Left Vol: + - - Input gain: - Ganancia de Entrada: + + Left to Right Vol: + - - OUTPUT - SALIDA + + Right to Left Vol: + - - Output gain: - Ganancia de Salida: + + Right to Right Vol: + + + + lmms::gui::SubWindow - - ATTACK - ATAQUE + + Close + - - Peak attack time: - Tiempo pico de ataque: + + Maximize + - - RELEASE - DISIPACIÓN + + Restore + + + + lmms::gui::TapTempoView - - Peak release time: - Tiempo pico de disipación: + + 0 + - - - Reset wavegraph + + + Precision - - - Smooth wavegraph + + Display in high precision - - - Increase wavegraph amplitude by 1 dB + + 0.0 ms - - - Decrease wavegraph amplitude by 1 dB + + Mute metronome - - Stereo mode: maximum + + Mute - - Process based on the maximum of both stereo channels - Procesar basado en el máximo de ambos canales estéreo + + BPM in milliseconds + - - Stereo mode: average + + 0 ms - - Process based on the average of both stereo channels - Procesar basado en el promedio de ambos canales estéreo + + Frequency of BPM + - - Stereo mode: unlinked + + 0.0000 hz - - Process each stereo channel independently - Procesar cada canal estéreo de manera independiente + + Reset + - - - DynProcControls - - Input gain - Ganancia de entrada + + Reset counter and sidebar information + - - Output gain - Ganancia de salida + + Sync + - - Attack time - Tiempo de ataque + + Sync with project tempo + - - Release time - Tiempo de disipación + + %1 ms + - - Stereo mode - Modo Estéreo + + %1 hz + - graphModel + lmms::gui::TemplatesMenu - - Graph - Gráfico + + New from template + - KickerInstrument - - - Start frequency - Frecuencia Inicial - - - - End frequency - Frecuencia Final - - - - Length - Duración - + lmms::gui::TempoSyncBarModelEditor - - Start distortion + + + Tempo Sync - - End distortion + + No Sync - - Gain - Ganancia - - - - Envelope slope + + Eight beats - - Noise - Ruido + + Whole note + - - Click - Chasquido + + Half note + - - Frequency slope + + Quarter note - - Start from note - Empezar en la nota + + 8th note + - - End to note - Terminar en la nota + + 16th note + - - - KickerInstrumentView - - Start frequency: - Frecuencia Inicial: + + 32nd note + - - End frequency: - Frecuencia Final: + + Custom... + - - Frequency slope: + + Custom - - Gain: - Ganancia: + + Synced to Eight Beats + - - Envelope length: + + Synced to Whole Note - - Envelope slope: + + Synced to Half Note - - Click: - Chasquido: + + Synced to Quarter Note + - - Noise: - Ruido: + + Synced to 8th Note + - - Start distortion: + + Synced to 16th Note - - End distortion: + + Synced to 32nd Note - LadspaBrowserView - - - - Available Effects - Efectos Disponibles - - - - - Unavailable Effects - Efectos No Disponibles - - - - - Instruments - Instrumentos - + lmms::gui::TempoSyncKnob - - - Analysis Tools - Herramientas de Análisis - - - - - Don't know - Desconocido + + + Tempo Sync + - - Type: - Tipo: + + No Sync + - - - LadspaDescription - - Plugins - Complementos + + Eight beats + - - Description - Descripción + + Whole note + - - - LadspaPortDialog - - Ports - Puertos + + Half note + - - Name - Nombre + + Quarter note + - - Rate - Tasa + + 8th note + - - Direction - Dirección + + 16th note + - - Type - Tipo + + 32nd note + - - Min < Default < Max - Min < Defecto < Max + + Custom... + - - Logarithmic - Logarítmico + + Custom + - - SR Dependent - Depende de SR + + Synced to Eight Beats + - - Audio - Audio + + Synced to Whole Note + - - Control - Control + + Synced to Half Note + - - Input - Entrada + + Synced to Quarter Note + - - Output - Salida + + Synced to 8th Note + - - Toggled - Alternado + + Synced to 16th Note + - - Integer - Entero + + Synced to 32nd Note + + + + lmms::gui::TimeDisplayWidget - - Float - Decimal + + Time units + - - - Yes - Si + + MIN + - - - Lb302Synth - - VCF Cutoff Frequency - FCV frecuencia de corte + + SEC + - - VCF Resonance - FCV Resonancia + + MSEC + - - VCF Envelope Mod - FCV Mod de Envolvente + + BAR + - - VCF Envelope Decay - FCV Caída de Envolvente + + BEAT + - - Distortion - Distorsión + + TICK + + + + lmms::gui::TimeLineWidget - - Waveform - Forma de Onda + + Auto scrolling + - - Slide Decay - Duración del Portamento + + Stepped auto scrolling + - - Slide - Portamento + + Continuous auto scrolling + - - Accent - Acento + + Auto scrolling disabled + - - Dead - Sordina + + Loop points + - - 24dB/oct Filter - Filtro 24dB/oct + + After stopping go back to beginning + - - - Lb302SynthView - - Cutoff Freq: - Frec.de Corte: + + After stopping go back to position at which playing was started + - - Resonance: - Resonancia: + + After stopping keep position + - - Env Mod: - Mod Env: + + Hint + - - Decay: - Caída: + + Press <%1> to disable magnetic loop points. + - - 303-es-que, 24dB/octave, 3 pole filter - Filtro Tipolar de 24dB/octava tipo-303 + + Set loop begin here + - - Slide Decay: - Duración del Portamento: + + Set loop end here + - - DIST: - DIST: + + Loop edit mode (hold shift) + - - Saw wave - Onda de sierra + + Dual-button + - - Click here for a saw-wave. - Haz click aquí para elegir una onda de sierra. + + Grab closest + - - Triangle wave - Onda triangular + + Handles + + + + lmms::gui::TrackContentWidget - - Click here for a triangle-wave. - Haz click aquí para seleccionar una onda triangular. + + Paste + + + + lmms::gui::TrackOperationsWidget - - Square wave - Onda Cuadrada + + Press <%1> while clicking on move-grip to begin a new drag'n'drop action. + - - Click here for a square-wave. - Haz click aquí para elegir una onda cuadrada. + + Actions + - - Rounded square wave - Onda Cuadrada-redondeada + + + Mute + - - Click here for a square-wave with a rounded end. - Haz click aquí para elegir una onda cuadrada-redondeada. + + + Solo + - - Moog wave - Onda Moog + + After removing a track, it can not be recovered. Are you sure you want to remove track "%1"? + - - Click here for a moog-like wave. - Haz click aquí para elegir una onda tipo moog. + + Confirm removal + - - Sine wave - Onda Sinusoidal + + Don't ask again + - - Click for a sine-wave. - Haz click aquí para elegir una onda-sinusoidal. + + Clone this track + - - - White noise wave - Ruido blanco + + Remove this track + - - Click here for an exponential wave. - Haz click aquí para elegir una onda exponencial. + + Clear this track + - - Click here for white-noise. - Haz click aquí para elegir ruido blanco. + + Channel %1: %2 + - - Bandlimited saw wave - Onda de sierra de banda limitada + + Assign to new Mixer Channel + - - Click here for bandlimited saw wave. - Haz click aquí para elegir una onda de sierra de banda limitada. + + Turn all recording on + - - Bandlimited square wave - Onda cuadrada de banda limitada + + Turn all recording off + - - Click here for bandlimited square wave. - Haz click aquí para elegir una onda cuadrada de banda limitada. + + Track color + - - Bandlimited triangle wave - Onda triangular de banda limitada + + Change + - - Click here for bandlimited triangle wave. - Haz click aquí para elegir una onda triangular de banda limitada. + + Reset + - - Bandlimited moog saw wave - Onda de sierra Moog de banda limitada + + Pick random + - - Click here for bandlimited moog saw wave. - Haz click aquí para elegir una onda de sierra tipo Moog de banda limitada. + + Reset clip colors + - MalletsInstrument + lmms::gui::TripleOscillatorView - - Hardness - Dureza + + Modulate phase of oscillator 1 by oscillator 2 + - - Position - Posición + + Modulate amplitude of oscillator 1 by oscillator 2 + - - Vibrato gain + + Mix output of oscillators 1 & 2 - - Vibrato frequency + + Synchronize oscillator 1 with oscillator 2 - - Stick mix + + Modulate frequency of oscillator 1 by oscillator 2 - - Modulator - Modulador + + Modulate phase of oscillator 2 by oscillator 3 + - - Crossfade - Fundido cruzado + + Modulate amplitude of oscillator 2 by oscillator 3 + - - LFO speed - Velocidad del LFO + + Mix output of oscillators 2 & 3 + - - LFO depth + + Synchronize oscillator 2 with oscillator 3 - - ADSR - ADSR + + Modulate frequency of oscillator 2 by oscillator 3 + - - Pressure - Presión + + Osc %1 volume: + - - Motion - Movimiento + + Osc %1 panning: + - - Speed - Velocidad + + Osc %1 coarse detuning: + - - Bowed - Frotado + + semitones + - - Spread - Propagación + + Osc %1 fine detuning left: + - - Marimba - Marimba + + + cents + - - Vibraphone - Vibráfono + + Osc %1 fine detuning right: + - - Agogo - Agogo + + Osc %1 phase-offset: + - - Wood 1 + + + degrees - - Reso - Reso + + Osc %1 stereo phase-detuning: + - - Wood 2 + + Sine wave - - Beats - Latidos + + Triangle wave + - - Two fixed + + Saw wave - - Clump - Golpe seco + + Square wave + - - Tubular bells + + Moog-like saw wave - - Uniform bar + + Exponential wave - - Tuned bar + + White noise - - Glass - Vidrio + + User-defined wave + - - Tibetan bowl + + Use alias-free wavetable oscillators. - MalletsInstrumentView - - - Instrument - Instrumento - - - - Spread - Propagación - - - - Spread: - Propagación: - + lmms::gui::VecControlsDialog - - Missing files - Archivos perdidos + + HQ + - - Your Stk-installation seems to be incomplete. Please make sure the full Stk-package is installed! - Parece que tu instalación de Stk está incompleta. Por favor asegúrate que el paquete completo de Stk esté instalado. + + Double the resolution and simulate continuous analog-like trace. + - - Hardness - Dureza + + Log. scale + - - Hardness: - Dureza: + + Display amplitude on logarithmic scale to better see small values. + - - Position - Posición + + Persist. + - - Position: - Posición: + + Trace persistence: higher amount means the trace will stay bright for longer time. + - - Vibrato gain + + Trace persistence + + + lmms::gui::VersionedSaveDialog - - Vibrato gain: + + Increment version number - - Vibrato frequency + + Decrement version number - - Vibrato frequency: + + Save Options - - Stick mix + + already exists. Do you want to replace it? + + + lmms::gui::VestigeInstrumentView - - Stick mix: + + + Open VST plugin - - Modulator - Modulador + + Control VST plugin from LMMS host + - - Modulator: - Modulador: + + Open VST plugin preset + - - Crossfade - Fundido cruzado + + Previous (-) + - - Crossfade: - Fundido cruzado: + + Save preset + - - LFO speed - Velocidad del LFO + + Next (+) + - - LFO speed: - velocidad del LFO: + + Show/hide GUI + - - LFO depth + + Turn off all notes - - LFO depth: + + DLL-files (*.dll) - - ADSR - ADSR + + EXE-files (*.exe) + - - ADSR: - ADSR: + + SO-files (*.so) + - - Pressure - Presión + + No VST plugin loaded + - - Pressure: - Presión: + + Preset + - - Speed - Velocidad + + by + - - Speed: - Velocidad: + + - VST plugin control + - ManageVSTEffectView + lmms::gui::VibedView - - - VST parameter control - - control de parámetros VST + + Enable waveform + - - VST sync + + + Smooth waveform - - - Automated - Automatizado + + + Normalize waveform + - - Close - Cerrar + + + Sine wave + - - - ManageVestigeInstrumentView - - - - VST plugin control - - control de complementos VST + + + Triangle wave + - - VST Sync - Sinc VST + + + Saw wave + - - - Automated - Automatizado + + + Square wave + - - Close - Cerrar + + + White noise + - - - OrganicInstrument - - Distortion - Distorsión + + + User-defined wave + - - Volume - Volumen + + String volume: + - - - OrganicInstrumentView - - Distortion: - Distorsión: + + String stiffness: + - - Volume: - Volumen: + + Pick position: + - - Randomise - Aleatorizar + + Pickup position: + - - - Osc %1 waveform: - Osc %1 forma de onda: + + String panning: + - - Osc %1 volume: - Osc %1 Volumen: + + String detune: + - - Osc %1 panning: - Osc %1 paneo: + + String fuzziness: + - - Osc %1 stereo detuning - Desafinación estéreo del Osc %1 + + String length: + - - cents - cents + + Impulse Editor + - - Osc %1 harmonic: - armónicos del Osc %1: + + Impulse + - - - PatchesDialog - - Qsynth: Channel Preset - Qsynth: Preconfiguración del Canal + + Enable/disable string + - - Bank selector - Selector de banco + + Octave + - - Bank - Banco + + String + + + + lmms::gui::VstEffectControlDialog - - Program selector - Selector de programa + + Show/hide + - - Patch - Ajuste + + Control VST plugin from LMMS host + - - Name - Nombre + + Open VST plugin preset + - - OK - De acuerdo + + Previous (-) + - - Cancel - Cancelar + + Next (+) + - - - Sf2Instrument - - Bank - Banco + + Save preset + - - Patch - Ajuste + + + Effect by: + - - Gain - Ganancia + + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> + + + + lmms::gui::WatsynView - - Reverb - Reverberancia + + + + + Volume + - - Reverb room size + + + + + Panning - - Reverb damping + + + + + Freq. multiplier - - Reverb width + + + + + Left detune - - Reverb level + + + + + + + + + cents - - Chorus - Coro + + + + + Right detune + - - Chorus voices + + A-B Mix - - Chorus level + + Mix envelope amount - - Chorus speed + + Mix envelope attack - - Chorus depth + + Mix envelope hold - - A soundfont %1 could not be loaded. - Una soundfont %1 no se pudo cargar. + + Mix envelope decay + - - - Sf2InstrumentView - - - Open SoundFont file - Abrir archivo SoundFont + + Crosstalk + - - Choose patch + + Select oscillator A1 - - Gain: - Ganancia: + + Select oscillator A2 + - - Apply reverb (if supported) - Aplicar reverberancia (si es posible) + + Select oscillator B1 + - - Room size: + + Select oscillator B2 - - Damping: + + Mix output of A2 to A1 - - Width: - Amplitud: + + Modulate amplitude of A1 by output of A2 + - - - Level: + + Ring modulate A1 and A2 - - Apply chorus (if supported) - Aplicar coro (si es posible) + + Modulate phase of A1 by output of A2 + - - Voices: + + Mix output of B2 to B1 - - Speed: - Velocidad: + + Modulate amplitude of B1 by output of B2 + - - Depth: - Profundidad: + + Ring modulate B1 and B2 + - - SoundFont Files (*.sf2 *.sf3) - Archivos SoundFont (*.sf2 *.sf3) + + Modulate phase of B1 by output of B2 + - - - SfxrInstrument - - Wave + + + + + Draw your own waveform here by dragging your mouse on this graph. - - - StereoEnhancerControlDialog - - WIDTH + + Load waveform - - Width: - Amplitud: + + Load a waveform from a sample file + - - - StereoEnhancerControls - - Width - Amplitud + + Phase left + - - - StereoMatrixControlDialog - - Left to Left Vol: - Vol izq a izq: + + Shift phase by -15 degrees + - - Left to Right Vol: - Vol izq a der: + + Phase right + - - Right to Left Vol: - Vol der a izq: + + Shift phase by +15 degrees + - - Right to Right Vol: - Vol der a der: + + + Normalize + - - - StereoMatrixControls - - Left to Left - izq a izq + + + Invert + - - Left to Right - izq a der + + + Smooth + - - Right to Left - der a izq + + + Sine wave + - - Right to Right - der a der + + + + Triangle wave + - - - VestigeInstrument - - Loading plugin - Cargando complemento + + Saw wave + - - Please wait while loading the VST plugin... + + + Square wave - Vibed + lmms::gui::WaveShaperControlDialog - - String %1 volume - Volumen Cuerda %1 + + INPUT + - - String %1 stiffness - Rigidez Cuerda %1 + + Input gain: + - - Pick %1 position - Posición del plectro %1 + + OUTPUT + - - Pickup %1 position - Posición de micrófono %1 + + Output gain: + - - String %1 panning + + + Reset wavegraph - - String %1 detune + + + Smooth wavegraph - - String %1 fuzziness + + + Increase wavegraph amplitude by 1 dB - - String %1 length + + + Decrease wavegraph amplitude by 1 dB - - Impulse %1 - Impulso %1 + + Clip input + - - String %1 + + Clip input signal to 0 dB - VibedView + lmms::gui::XpressiveView - - String volume: + + Draw your own waveform here by dragging your mouse on this graph. - - String stiffness: - Rigidez de la cuerda: - - - - Pick position: - Posición del plectro: - - - - Pickup position: - Posición del micrófono: - - - - String panning: + + Select oscillator W1 - - String detune: + + Select oscillator W2 - - String fuzziness: + + Select oscillator W3 - - String length: + + Select output O1 - - Impulse + + Select output O2 - - Octave - Octava + + Open help window + - - Impulse Editor - Editor de Impulso + + + Sine wave + - - Enable waveform - Activar Onda + + + Moog-saw wave + - - Enable/disable string + + + Exponential wave - - String - Cuerda + + + Saw wave + - - - Sine wave - Onda sinusoidal + + + User-defined wave + - - + + Triangle wave - Onda triangular - - - - - Saw wave - Onda de sierra + - - + + Square wave - Onda cuadrada + - - + + White noise - Ruido blanco - - - - - User-defined wave - - - Smooth waveform - Suavizar onda + + WaveInterpolate + - - - Normalize waveform + + ExpressionValid - - - VoiceObject - - Voice %1 pulse width - Voz %1 amplitud de pulso + + General purpose 1: + - - Voice %1 attack - Voz %1 ataque + + General purpose 2: + - - Voice %1 decay - Voz %1 caída + + General purpose 3: + - - Voice %1 sustain - Voz %1 sostén + + O1 panning: + - - Voice %1 release - Voz %1 disipación + + O2 panning: + - - Voice %1 coarse detuning - Voz %1 desafinación gruesa + + Release transition: + - - Voice %1 wave shape - Voz %1 forma de onda + + Smoothness + + + + lmms::gui::ZynAddSubFxView - - Voice %1 sync - Voz %1 sinc + + Portamento: + - - Voice %1 ring modulate - Voz %1 modulación en anillo + + PORT + - - Voice %1 filtered - Voz %1 filtrada + + Filter frequency: + - - Voice %1 test - Voz %1 prueba + + FREQ + - - - WaveShaperControlDialog - - INPUT - ENTRADA + + Filter resonance: + - - Input gain: - Ganancia de Entrada: + + RES + - - OUTPUT - SALIDA + + Bandwidth: + - - Output gain: - Ganancia de Salida: + + BW + - - - Reset wavegraph + + FM gain: - - - Smooth wavegraph + + FM GAIN - - - Increase wavegraph amplitude by 1 dB + + Resonance center frequency: - - - Decrease wavegraph amplitude by 1 dB + + RES CF - - Clip input - Recortar entrada + + Resonance bandwidth: + - - Clip input signal to 0 dB + + RES BW - - - WaveShaperControls - - Input gain - ganancia de entrada + + Forward MIDI control changes + - - Output gain - ganancia de salida + + Show GUI + - + \ No newline at end of file diff --git a/data/locale/eu.ts b/data/locale/eu.ts index fe6495c0a65..f23c8682a75 100644 --- a/data/locale/eu.ts +++ b/data/locale/eu.ts @@ -1,4 +1,4 @@ - + AboutDialog @@ -70,954 +70,187 @@ LMMS beste hizkuntza batera itzultzeko interesa baduzu edo lehendik dauden itzul - AmplifierControlDialog + AboutJuceDialog - - VOL - BOL - - - - Volume: - Bolumena: - - - - PAN - PAN - - - - Panning: - Panoramika: - - - - LEFT - EZKERRA - - - - Left gain: - Ezkerreko irabazia: - - - - RIGHT - ESKUINA - - - - Right gain: - Eskuineko irabazia: - - - - AmplifierControls - - - Volume - Bolumena - - - - Panning - Panoramika - - - - Left gain - Ezkerreko irabazia - - - - Right gain - Eskuineko irabazia - - - - AudioAlsaSetupWidget - - - DEVICE - GAILUA - - - - CHANNELS - KANALAK - - - - AudioFileProcessorView - - - Open sample - Ireki lagina - - - - Reverse sample - Alderantzikatu lagina - - - - Disable loop - Desgaitu begizta - - - - Enable loop - Gaitu begizta - - - - Enable ping-pong loop + + About JUCE - - Continue sample playback across notes + + <b>About JUCE</b> - - Amplify: - Anplifikatu: - - - - Start point: - Hasierako puntua: - - - - End point: - Amaierako puntua: - - - - Loopback point: - Atzera-begiztaren puntua: - - - - AudioFileProcessorWaveView - - - Sample length: - Lagin-luzera: - - - - AudioJack - - - JACK client restarted - JACK bezeroa berrabiarazi da - - - - LMMS was kicked by JACK for some reason. Therefore the JACK backend of LMMS has been restarted. You will have to make manual connections again. - JACKek LMMS egotzi du arrazoiren batengatik. Hori dela eta, LMMSren JACK backend-a berrabiarazi egin da. Konexioak eskuz egin beharko dituzu berriro. - - - - JACK server down - JACK zerbitzaria erorita - - - - The JACK server seems to have been shutdown and starting a new instance failed. Therefore LMMS is unable to proceed. You should save your project and restart JACK and LMMS. - JACK zerbitzaria itxi egin dela dirudi eta instantzia berria hasteak huts egin du. LMMSk ezin du jarraitu. Zure proiektua gorde eta JACK eta LMMS berrabiarazi beharko zenituzke. - - - - Client name - Bezeroaren izena - - - - Channels - Kanalak - - - - AudioOss - - - Device - Gailua - - - - Channels - Kanalak - - - - AudioPortAudio::setupWidget - - - Backend - Motorra - - - - Device - Gailua - - - - AudioPulseAudio - - - Device - Gailua - - - - Channels - Kanalak - - - - AudioSdl::setupWidget - - - Device - Gailua + + This program uses JUCE version 3.x.x. + - - - AudioSndio - - Device - Gailua + + JUCE is an open-source cross-platform C++ application framework for creating high quality desktop and mobile applications. + +The core JUCE modules (juce_audio_basics, juce_audio_devices, juce_core and juce_events) are permissively licensed under the terms of the ISC license. +Other modules are covered by a GNU GPL 3.0 license. + +Copyright (C) 2022 Raw Material Software Limited. + - - Channels - Kanalak + + This program uses JUCE version + - AudioSoundIo::setupWidget - - - Backend - Motorra - + AudioDeviceSetupWidget - - Device - Gailua + + [System Default] + - AutomatableModel - - - &Reset (%1%2) - &Berrezarr (%1%2) - + CarlaAboutW - - &Copy value (%1%2) - &Kopiatu balioa (%1%2) + + About Carla + Carlari buruz - - &Paste value (%1%2) - I&tsatsi balioa (%1%2) + + About + Honi buruz - - &Paste value - &Itsatsi balioa + + About text here + Honi buruzko testua hemen - - Edit song-global automation - + + Extended licensing here + Lizentzia hedatua hemen - - Remove song-global automation - + + Artwork + Artelana - - Remove all linked controls - Kendu estekatutako kontrol guztiak + + Using KDE Oxygen icon set, designed by Oxygen Team. + Osygen taldeak sortutako KDE Oxygen ikono multzoa erabiltzen. - - Connected to %1 - + + Contains some knobs, backgrounds and other small artwork from Calf Studio Gear, OpenAV and OpenOctave projects. + Calf Studio Gear, OpenAV eta OpenOctave proiektuetako zenbait botoi, atzeko plano eta beste artelan txiki batzuk ditu. - - Connected to controller - Kontrolagailuarekin konektatua + + VST is a trademark of Steinberg Media Technologies GmbH. + VST marka Steinberg Media Technologies GmbH enpresaren marka erregistratua da. - - Edit connection... - Editatu konexioa... + + Special thanks to António Saraiva for a few extra icons and artwork! + Mila esker António Saraivari ikono gehigarriak eta artelana eskaintzeagatik! - - Remove connection - Kendu konexioa + + The LV2 logo has been designed by Thorsten Wilms, based on a concept from Peter Shorthose. + LV2 logoa Thorsten Wilmsek diseinatu du, Peter Shorthosen kontzeptu batean oinarrituta. - - Connect to controller... - Konektatu kontrolatzailearekin... + + MIDI Keyboard designed by Thorsten Wilms. + MIDI teklatuaren diseinua: Thorsten Wilms. - - - AutomationEditor - - Edit Value - Editatu balioa + + Carla, Carla-Control and Patchbay icons designed by DoosC. + Carla, Carla-Control eta Patchbay ikonoen diseinua: DoosC. - - New outValue - Irteerako balio berria + + Features + Eginbideak - - New inValue - Sarrerako balio berria + + AU/AudioUnit: + AU/AudioUnitatea: - - Please open an automation clip with the context menu of a control! - Ireki automatizazio-eredu bat kontrol baten laster-menuaren bidez! + + LADSPA: + LADSPA: - - - AutomationEditorWindow - - Play/pause current clip (Space) - Erreproduzitu/pausatu uneko eredua (espazioa) + + + + + + + + + TextLabel + TestuEtiketa - - Stop playing of current clip (Space) - Gelditu uneko ereduaren erreprodukzioa (espazioa) + + VST2: + VST2: - - Edit actions - Editatu ekintzak + + DSSI: + DSSI: - - Draw mode (Shift+D) - Marrazte modua (Shift+D) + + LV2: + LV2: - - Erase mode (Shift+E) - Ezabatze modua (Shift+E) + + VST3: + VST3: - - Draw outValues mode (Shift+C) - + + OSC + OSC - - Flip vertically - Irauli bertikalean + + Host URLs: + URL ostalariak: - - Flip horizontally - Irauli horizontalean + + Valid commands: + Baliozko komandoak: - - Interpolation controls - Interpolazio-kontrolak + + valid osc commands here + baliozko osc komandoa hemen - - Discrete progression - Progresio diskretua + + Example: + Adibidea: - - Linear progression - Progresio lineala + + License + Lizentzia - - Cubic Hermite progression - - - - - Tension value for spline - - - - - Tension: - Tentsioa: - - - - Zoom controls - Zoom-kontrolak - - - - Horizontal zooming - Zoom horizontala - - - - Vertical zooming - Zoom bertikala - - - - Quantization controls - Kuantifikazio-kontrolak - - - - Quantization - Kuantifikazioa - - - - - Automation Editor - no clip - Automatizazio-editorea - patroirik ez - - - - - Automation Editor - %1 - Automatizazio-editorea - %1 - - - - Model is already connected to this clip. - Eredua dagoeneko konektatuta dago patroi honekin - - - - AutomationClip - - - Drag a control while pressing <%1> - Arrastatu kontrol bat <%1> sakatzen ari zaren bitartean - - - - AutomationClipView - - - Open in Automation editor - Ireki automatizazio-editorean - - - - Clear - Garbitu - - - - Reset name - Berrezarri izena - - - - Change name - Aldatu izena - - - - Set/clear record - Ezarri/garbitu grabazioa - - - - Flip Vertically (Visible) - Irauli bertikalean (ikusgai) - - - - Flip Horizontally (Visible) - Irauli horizontalean (ikusgai) - - - - %1 Connections - %1 konexio - - - - Disconnect "%1" - Deskonektatu "%1" - - - - Model is already connected to this clip. - Eredua dagoeneko konektatuta dago patroi honekin - - - - AutomationTrack - - - Automation track - Automatizazio-pista - - - - PatternEditor - - - Beat+Bassline Editor - - - - - Play/pause current beat/bassline (Space) - - - - - Stop playback of current beat/bassline (Space) - - - - - Beat selector - Taupada-hautatzailea - - - - Track and step actions - - - - - Add beat/bassline - Gehitu taupada/baxu-lerroa - - - - Clone beat/bassline clip - - - - - Add sample-track - Gehitu lagin-pista - - - - Add automation-track - Gehitu automatizazio-pista - - - - Remove steps - Kendu urratsak - - - - Add steps - Gehitu urratsa - - - - Clone Steps - Klonatu urratsak - - - - PatternClipView - - - Open in Beat+Bassline-Editor - - - - - Reset name - Berrezarri izena - - - - Change name - Aldatu izena - - - - PatternTrack - - - Beat/Bassline %1 - - - - - Clone of %1 - - - - - BassBoosterControlDialog - - - FREQ - - - - - Frequency: - Maiztasuna: - - - - GAIN - - - - - Gain: - Irabazia: - - - - RATIO - - - - - Ratio: - - - - - BassBoosterControls - - - Frequency - Maiztasuna - - - - Gain - Irabazia - - - - Ratio - - - - - BitcrushControlDialog - - - IN - - - - - OUT - - - - - - GAIN - - - - - Input gain: - Sarrerako irabazia: - - - - NOISE - - - - - Input noise: - - - - - Output gain: - Irteerako irabazia: - - - - CLIP - - - - - Output clip: - - - - - Rate enabled - - - - - Enable sample-rate crushing - - - - - Depth enabled - Sakonera gaituta - - - - Enable bit-depth crushing - - - - - FREQ - - - - - Sample rate: - - - - - STEREO - - - - - Stereo difference: - - - - - QUANT - - - - - Levels: - Mailak: - - - - BitcrushControls - - - Input gain - Sarrerako irabazia - - - - Input noise - Sarrerako zarata - - - - Output gain - Irteerako irabazia - - - - Output clip - Irteerako klipa - - - - Sample rate - - - - - Stereo difference - - - - - Levels - Maila - - - - Rate enabled - - - - - Depth enabled - Sakonera gaituta - - - - CarlaAboutW - - - About Carla - Carlari buruz - - - - About - Honi buruz - - - - About text here - - - - - Extended licensing here - - - - - Artwork - Artelana - - - - Using KDE Oxygen icon set, designed by Oxygen Team. - - - - - Contains some knobs, backgrounds and other small artwork from Calf Studio Gear, OpenAV and OpenOctave projects. - - - - - VST is a trademark of Steinberg Media Technologies GmbH. - - - - - Special thanks to António Saraiva for a few extra icons and artwork! - - - - - The LV2 logo has been designed by Thorsten Wilms, based on a concept from Peter Shorthose. - - - - - MIDI Keyboard designed by Thorsten Wilms. - - - - - Carla, Carla-Control and Patchbay icons designed by DoosC. - - - - - Features - Eginbideak - - - - AU/AudioUnit: - - - - - LADSPA: - LADSPA: - - - - - - - - - - - TextLabel - - - - - VST2: - - - - - DSSI: - - - - - LV2: - - - - - VST3: - - - - - OSC - - - - - Host URLs: - URL ostalariak: - - - - Valid commands: - Baliozko komandoak: - - - - valid osc commands here - baliozko osc komandoa hemen - - - - Example: - Adibidea: - - - - License - Lizentzia - - - + GNU GENERAL PUBLIC LICENSE Version 2, June 1991 @@ -1582,15026 +815,18220 @@ POSSIBILITY OF SUCH DAMAGES. - - OSC Bridge Version - OSC Bridge bertsioa + + OSC Bridge Version + OSC Bridge bertsioa + + + + Plugin Version + Pluginaren bertsioa + + + + <br>Version %1<br>Carla is a fully-featured audio plugin host%2.<br><br>Copyright (C) 2011-2019 falkTX<br> + + + + + + (Engine not running) + (Motorra ez dago martxan) + + + + Everything! (Including LRDF) + Dena! (LRDF barne) + + + + Everything! (Including CustomData/Chunks) + + + + + About 110&#37; complete (using custom extensions)<br/>Implemented Feature/Extensions:<ul><li>http://lv2plug.in/ns/ext/atom</li><li>http://lv2plug.in/ns/ext/buf-size</li><li>http://lv2plug.in/ns/ext/data-access</li><li>http://lv2plug.in/ns/ext/event</li><li>http://lv2plug.in/ns/ext/instance-access</li><li>http://lv2plug.in/ns/ext/log</li><li>http://lv2plug.in/ns/ext/midi</li><li>http://lv2plug.in/ns/ext/options</li><li>http://lv2plug.in/ns/ext/parameters</li><li>http://lv2plug.in/ns/ext/port-props</li><li>http://lv2plug.in/ns/ext/presets</li><li>http://lv2plug.in/ns/ext/resize-port</li><li>http://lv2plug.in/ns/ext/state</li><li>http://lv2plug.in/ns/ext/time</li><li>http://lv2plug.in/ns/ext/uri-map</li><li>http://lv2plug.in/ns/ext/urid</li><li>http://lv2plug.in/ns/ext/worker</li><li>http://lv2plug.in/ns/extensions/ui</li><li>http://lv2plug.in/ns/extensions/units</li><li>http://home.gna.org/lv2dynparam/rtmempool/v1</li><li>http://kxstudio.sf.net/ns/lv2ext/external-ui</li><li>http://kxstudio.sf.net/ns/lv2ext/programs</li><li>http://kxstudio.sf.net/ns/lv2ext/props</li><li>http://kxstudio.sf.net/ns/lv2ext/rtmempool</li><li>http://ll-plugins.nongnu.org/lv2/ext/midimap</li><li>http://ll-plugins.nongnu.org/lv2/ext/miditype</li></ul> + + + + + + + Using Juce host + Juce ostalaria erabiltzen + + + + About 85% complete (missing vst bank/presets and some minor stuff) + + + + + CarlaHostW + + + MainWindow + LeihoNagusia + + + + Rack + + + + + Patchbay + + + + + Logs + Egunkariak + + + + Loading... + Kargatzen... + + + + Save + + + + + Clear + + + + + Ctrl+L + + + + + Auto-Scroll + + + + + Buffer Size: + Buffer-tamaina: + + + + Sample Rate: + + + + + ? Xruns + ? Xruns + + + + DSP Load: %p% + DSP karga: %p% + + + + &File + &Fitxategia + + + + &Engine + &Motorra + + + + &Plugin + &Plugina + + + + Macros (all plugins) + Makroak (plugin guztiak) + + + + &Canvas + &Oihala + + + + Zoom + Zoom + + + + &Settings + E&zarpenak + + + + &Help + &Laguntza + + + + Tool Bar + + + + + Disk + Diskoa + + + + + Home + Etxea + + + + Transport + Garraioa + + + + Playback Controls + Erreprodukzio-kontrolak + + + + Time Information + Denbora-informazioa + + + + Frame: + Fotograma: + + + + 000'000'000 + 000'000'000 + + + + Time: + Denbora: + + + + 00:00:00 + 00:00:00 + + + + BBT: + BBT: + + + + 000|00|0000 + 000|00|0000 + + + + Settings + Ezarpenak + + + + BPM + BPM + + + + Use JACK Transport + Erabili JACK garraioa + + + + Use Ableton Link + Erabili Ableton esteka + + + + &New + &Berria + + + + Ctrl+N + Ctrl+N + + + + &Open... + &Ireki... + + + + + Open... + Ireki... + + + + Ctrl+O + Ctrl+O + + + + &Save + &Gorde + + + + Ctrl+S + Ctrl+S + + + + Save &As... + Gorde &honela... + + + + + Save As... + Gorde honela... + + + + Ctrl+Shift+S + Ctrl+Shift+S + + + + &Quit + I&rten + + + + Ctrl+Q + Ctrl+Q + + + + &Start + &Hasi + + + + F5 + F5 + + + + St&op + &Gelditu + + + + F6 + F6 + + + + &Add Plugin... + Ge&hitu plugina... + + + + Ctrl+A + Ctrl+A + + + + &Remove All + &Kendu dena + + + + Enable + Gaitu + + + + Disable + Desgaitu + + + + 0% Wet (Bypass) + + + + + 100% Wet + %100 heze + + + + 0% Volume (Mute) + %0 bolumena (mutu) + + + + 100% Volume + %100 bolumena + + + + Center Balance + + + + + &Play + &Erreproduzitu + + + + Ctrl+Shift+P + Ctrl+Shift+P + + + + &Stop + &Gelditu + + + + Ctrl+Shift+X + Ctrl+Shift+X + + + + &Backwards + A&tzerantz + + + + Ctrl+Shift+B + Ctrl+Shift+B + + + + &Forwards + A&urrerantz + + + + Ctrl+Shift+F + Ctrl+Shift+F + + + + &Arrange + &Ordenatu + + + + Ctrl+G + Ctrl+G + + + + + &Refresh + &Freskatu + + + + Ctrl+R + Ctrl+R + + + + Save &Image... + Gorde &irudia... + + + + Auto-Fit + Automatikoki doitu + + + + Zoom In + Handiagotu + + + + Ctrl++ + Ctrl++ + + + + Zoom Out + Txikiagotu + + + + Ctrl+- + Ctrl+- + + + + Zoom 100% + %100eko zooma + + + + Ctrl+1 + Ctrl+1 + + + + Show &Toolbar + Erakutsi &tresna-barra + + + + &Configure Carla + &Konfiguratu Carla + + + + &About + &Honi buruz + + + + About &JUCE + &JUCE aplikazioari buruz + + + + About &Qt + &Qt aplikazioari buruz + + + + Show Canvas &Meters + + + + + Show Canvas &Keyboard + + + + + Show Internal + Erakutsi barnekoa + + + + Show External + Erakutsi kanpokoa + + + + Show Time Panel + Erakutsi denbora-panela + + + + Show &Side Panel + Erakutsi &alboko panela + + + + Ctrl+P + + + + + &Connect... + &Konektatu... + + + + Compact Slots + + + + + Expand Slots + + + + + Perform secret 1 + + + + + Perform secret 2 + + + + + Perform secret 3 + + + + + Perform secret 4 + + + + + Perform secret 5 + + + + + Add &JACK Application... + + + + + &Configure driver... + &Konfiguratu kontrolagailua... + + + + Panic + + + + + Open custom driver panel... + + + + + Save Image... (2x zoom) + + + + + Save Image... (4x zoom) + + + + + Copy as Image to Clipboard + + + + + Ctrl+Shift+C + + + + + CarlaHostWindow + + + Export as... + Esportatu honela... + + + + + + + Error + Errorea + + + + Failed to load project + Proiektuaren kargak huts egin du + + + + Failed to save project + Proiektua gordetzeak huts egin du + + + + Quit + Irten + + + + Are you sure you want to quit Carla? + Ziur zaude Carla aplikaziotik irten nahi duzula? + + + + Could not connect to Audio backend '%1', possible reasons: +%2 + + + + + Could not connect to Audio backend '%1' + + + + + Warning + Abisua + + + + There are still some plugins loaded, you need to remove them to stop the engine. +Do you want to do this now? + + + + + CarlaSettingsW + + + Settings + Ezarpenak + + + + main + nagusia + + + + canvas + oihala + + + + engine + motorra + + + + osc + osc + + + + file-paths + fitxategi-bideak + + + + plugin-paths + plugin-bideak + + + + wine + wine + + + + experimental + esperimentala + + + + Widget + + + + + + Main + Nagusia + + + + + Canvas + Oihala + + + + + Engine + Motorra + + + + File Paths + Fitxategien bide-izenak + + + + Plugin Paths + Pluginen bide-izenak + + + + Wine + Wine + + + + + Experimental + Esperimentala + + + + <b>Main</b> + <b>Nagusia</b> + + + + Paths + Bideak + + + + Default project folder: + Proiektuaren karpeta lehenetsia: + + + + Interface + Interfazea + + + + Use "Classic" as default rack skin + + + + + Interface refresh interval: + Interfazearen freskatze-tartea: + + + + + ms + ms + + + + Show console output in Logs tab (needs engine restart) + + + + + Show a confirmation dialog before quitting + + + + + + Theme + Gaia + + + + Use Carla "PRO" theme (needs restart) + Erabili Carla "PRO" gaia (berrabiarazi behar da) + + + + Color scheme: + Kolore-eskema: + + + + Black + Beltza + + + + System + Sistema + + + + Enable experimental features + Gaitu eginbide esperimentalak + + + + <b>Canvas</b> + <b>Oihala</b> + + + + Bezier Lines + Bezier lerroak + + + + Theme: + Gaia: + + + + Size: + Tamaina: + + + + 775x600 + 775x600 + + + + 1550x1200 + 1550x1200 + + + + 3100x2400 + 3100x2400 + + + + 4650x3600 + 4650x3600 + + + + 6200x4800 + 6200x4800 + + + + 12400x9600 + + + + + Options + Aukerak + + + + Auto-hide groups with no ports + + + + + Auto-select items on hover + + + + + Basic eye-candy (group shadows) + + + + + Render Hints + + + + + Anti-Aliasing + + + + + Full canvas repaints (slower, but prevents drawing issues) + + + + + <b>Engine</b> + + + + + + Core + Nukleoa + + + + Single Client + Bezero bakarra + + + + Multiple Clients + Bezero anitz + + + + + Continuous Rack + + + + + + Patchbay + + + + + Audio driver: + + + + + Process mode: + + + + + + + + Maximum number of parameters to allow in the built-in 'Edit' dialog + + + + + Max Parameters: + + + + + ... + + + + + Reset Xrun counter after project load + + + + + Plugin UIs + + + + + + How much time to wait for OSC GUIs to ping back the host + + + + + UI Bridge Timeout: + + + + + Use OSC-GUI bridges when possible, this way separating the UI from DSP code + + + + + Use UI bridges instead of direct handling when possible + + + + + Make plugin UIs always-on-top + + + + + Make plugin UIs appear on top of Carla (needs restart) + + + + + NOTE: Plugin-bridge UIs cannot be managed by Carla on macOS + + + + + + Restart the engine to load the new settings + + + + + <b>OSC</b> + + + + + Enable OSC + + + + + Enable TCP port + Gaitu TCP ataka + + + + + Use specific port: + Erabili ataka espezifikoa: + + + + Overridden by CARLA_OSC_TCP_PORT env var + + + + + + Use randomly assigned port + Erabili ausaz esleitutako ataka + + + + Enable UDP port + Gaitu UDP ataka + + + + Overridden by CARLA_OSC_UDP_PORT env var + + + + + DSSI UIs require OSC UDP port enabled + + + + + <b>File Paths</b> + + + + + Audio + Audioa + + + + MIDI + MIDI + + + + Used for the "audiofile" plugin + + + + + Used for the "midifile" plugin + + + + + + Add... + Gehitu... + + + + + Remove + Kendu + + + + + Change... + Aldatu... + + + + <b>Plugin Paths</b> + <b>Pluginen bide-izenak</b> + + + + LADSPA + LADSPA + + + + DSSI + DSSI + + + + LV2 + LV2 + + + + VST2 + VST2 + + + + VST3 + VST3 + + + + SF2/3 + SF2/3 + + + + SFZ + SFZ + + + + JSFX + + + + + CLAP + + + + + Restart Carla to find new plugins + Berrabiarazi Carla plugin berriak aurkitzeko + + + + <b>Wine</b> + <b>Wine</b> + + + + Executable + Exekutagarria + + + + Path to 'wine' binary: + 'wine' bitarraren bide-izena: + + + + Prefix + Aurrizkia + + + + Auto-detect Wine prefix based on plugin filename + Detektatu automatikoki Wine aurrizkia pluginaren fitxategi-izenean oinarrituta + + + + Fallback: + + + + + Note: WINEPREFIX env var is preferred over this fallback + + + + + Realtime Priority + + + + + Base priority: + + + + + WineServer priority: + + + + + These options are not available for Carla as plugin + + + + + <b>Experimental</b> + + + + + Experimental options! Likely to be unstable! + + + + + Enable plugin bridges + + + + + Enable Wine bridges + + + + + Enable jack applications + + + + + Export single plugins to LV2 + + + + + Use system/desktop-theme icons (needs restart) + + + + + Load Carla backend in global namespace (NOT RECOMMENDED) + + + + + Fancy eye-candy (fade-in/out groups, glow connections) + + + + + Use OpenGL for rendering (needs restart) + + + + + High Quality Anti-Aliasing (OpenGL only) + + + + + Render Ardour-style "Inline Displays" + + + + + Force mono plugins as stereo by running 2 instances at the same time. +This mode is not available for VST plugins. + + + + + Force mono plugins as stereo + + + + + When enabled, Carla will try to prevent plugins from doing things that might mess up the audio or cause xruns, such as fork(), gtk_init() and similar. + + + + + Prevent unsafe calls from plugins (needs restart) + + + + + Run plugins in a separate process, so if they crash it does not affect Carla. +Plugins get automatically deactivated in such cases. +Reactvate them to start the process again, with the last saved state applied to it. + + + + + Run plugins in bridge mode when possible + + + + + + + + Add Path + + + + + Dialog + + + Carla Control - Connect + Carla kontrola - Konektatu + + + + Remote setup + Urruneko konfigurazioa + + + + UDP Port: + UDP ataka: + + + + Remote host: + Urruneko ostalaria: + + + + TCP Port: + TCP ataka: + + + + Set value + Ezarri balioa + + + + TextLabel + + + + + Scale Points + + + + + DriverSettingsW + + + Driver Settings + + + + + Device: + Gailua: + + + + Buffer size: + Buffer-tamaina: + + + + Sample rate: + + + + + Triple buffer + Buffer hirukoitza + + + + Show Driver Control Panel + + + + + Restart the engine to load the new settings + + + + + ExportProjectDialog + + + Export project + Esportatu proiektua + + + + Export as loop (remove extra bar) + + + + + Export between loop markers + + + + + Render Looped Section: + + + + + time(s) + + + + + File format settings + Fitxategi-formatuen ezarpenak + + + + File format: + Fitxategi-formatua: + + + + Sampling rate: + + + + + 44100 Hz + 44.100 Hz + + + + 48000 Hz + 48.000 Hz + + + + 88200 Hz + 88.200 Hz + + + + 96000 Hz + 96.000 Hz + + + + 192000 Hz + 192.000 Hz + + + + Bit depth: + Bit-sakonera: + + + + 16 Bit integer + + + + + 24 Bit integer + + + + + 32 Bit float + + + + + Stereo mode: + + + + + Mono + + + + + Stereo + + + + + Joint stereo + + + + + Compression level: + + + + + Bitrate: + + + + + 64 KBit/s + 64 KBit/s + + + + 128 KBit/s + 128 KBit/s + + + + 160 KBit/s + 160 KBit/s + + + + 192 KBit/s + 192 KBit/s + + + + 256 KBit/s + 256 KBit/s + + + + 320 KBit/s + 320 KBit/s + + + + Use variable bitrate + + + + + Quality settings + Kalitate-ezarpenak + + + + Interpolation: + Interpolazioa: + + + + Zero order hold + + + + + Sinc worst (fastest) + + + + + Sinc medium (recommended) + + + + + Sinc best (slowest) + + + + + Start + Hasiera + + + + Cancel + Utzi + + + + InstrumentFunctionNoteStacking + + + octave + + + + + + Major + + + + + Majb5 + + + + + minor + + + + + minb5 + + + + + sus2 + + + + + sus4 + + + + + aug + + + + + augsus4 + + + + + tri + + + + + 6 + + + + + 6sus4 + + + + + 6add9 + + + + + m6 + + + + + m6add9 + + + + + 7 + + + + + 7sus4 + + + + + 7#5 + + + + + 7b5 + + + + + 7#9 + + + + + 7b9 + + + + + 7#5#9 + + + + + 7#5b9 + + + + + 7b5b9 + + + + + 7add11 + + + + + 7add13 + + + + + 7#11 + + + + + Maj7 + + + + + Maj7b5 + + + + + Maj7#5 + + + + + Maj7#11 + + + + + Maj7add13 + + + + + m7 + + + + + m7b5 + + + + + m7b9 + + + + + m7add11 + + + + + m7add13 + + + + + m-Maj7 + + + + + m-Maj7add11 + + + + + m-Maj7add13 + + + + + 9 + + + + + 9sus4 + + + + + add9 + + + + + 9#5 + + + + + 9b5 + + + + + 9#11 + + + + + 9b13 + + + + + Maj9 + + + + + Maj9sus4 + + + + + Maj9#5 + + + + + Maj9#11 + + + + + m9 + + + + + madd9 + + + + + m9b5 + + + + + m9-Maj7 + + + + + 11 + + + + + 11b9 + + + + + Maj11 + + + + + m11 + + + + + m-Maj11 + + + + + 13 + + + + + 13#9 + + + + + 13b9 + + + + + 13b5b9 + + + + + Maj13 + + + + + m13 + + + + + m-Maj13 + + + + + Harmonic minor + + + + + Melodic minor + + + + + Whole tone + + + + + Diminished + + + + + Major pentatonic + + + + + Minor pentatonic + + + + + Jap in sen + + + + + Major bebop + + + + + Dominant bebop + + + + + Blues + + + + + Arabic + + + + + Enigmatic + + + + + Neopolitan + + + + + Neopolitan minor + + + + + Hungarian minor + + + + + Dorian + + + + + Phrygian + + + + + Lydian + + + + + Mixolydian + + + + + Aeolian + + + + + Locrian + + + + + Minor + + + + + Chromatic + + + + + Half-Whole Diminished + + + + + 5 + + + + + Phrygian dominant + + + + + Persian + + + + + InstrumentSoundShaping + + + VOLUME + + + + + Volume + Bolumena + + + + CUTOFF + + + + + Cutoff frequency + + + + + RESO + + + + + Resonance + + + + + JackAppDialog + + + Add JACK Application + + + + + Note: Features not implemented yet are greyed out + + + + + Application + + + + + Name: + + + + + Application: + + + + + From template + + + + + Custom + + + + + Template: + + + + + Command: + + + + + Setup + + + + + Session Manager: + + + + + None + + + + + Audio inputs: + + + + + MIDI inputs: + + + + + Audio outputs: + + + + + MIDI outputs: + + + + + Take control of main application window + + + + + Workarounds + + + + + Wait for external application start (Advanced, for Debug only) + + + + + Capture only the first X11 Window + + + + + Use previous client output buffer as input for the next client + + + + + Simulate 16 JACK MIDI outputs, with MIDI channel as port index + + + + + Error here + + + + + NSM applications cannot use abstract or absolute paths + + + + + NSM applications cannot use CLI arguments + + + + + You need to save the current Carla project before NSM can be used + + + + + JuceAboutW + + + This program uses JUCE version %1. + + + + + MidiPatternW + + + MIDI Pattern + + + + + Time Signature: + + + + + + + 1/4 + + + + + 2/4 + + + + + 3/4 + + + + + 4/4 + + + + + 5/4 + + + + + 6/4 + + + + + Measures: + + + + + + + 1 + + + + + 2 + + + + + 3 + + + + + 4 + + + + + 5 + + + + + 6 + + + + + 7 + + + + + 8 + + + + + 9 + + + + + 10 + + + + + 11 + + + + + 12 + + + + + 13 + + + + + 14 + + + + + 15 + + + + + 16 + + + + + Default Length: + + + + + + 1/16 + + + + + + 1/15 + + + + + + 1/12 + + + + + + 1/9 + + + + + + 1/8 + + + + + + 1/6 + + + + + + 1/3 + + + + + + 1/2 + + + + + Quantize: + + + + + &File + &Fitxategia + + + + &Edit + &Editatu + + + + &Quit + I&rten + + + + Esc + + + + + &Insert Mode + + + + + F + + + + + &Velocity Mode + + + + + D + + + + + Select All + + + + + A + + + + + PatchesDialog + + + + Qsynth: Channel Preset + + + + + + Bank selector + + + + + + Bank + + + + + + Program selector + + + + + + Patch + + + + + + Name + Izena + + + + + OK + Ados + + + + + Cancel + Utzi + + + + PluginBrowser + + + no description + + + + + A native amplifier plugin + + + + + Simple sampler with various settings for using samples (e.g. drums) in an instrument-track + + + + + Boost your bass the fast and simple way + + + + + Customizable wavetable synthesizer + + + + + An oversampling bitcrusher + + + + + Carla Patchbay Instrument + + + + + Carla Rack Instrument + + + + + A dynamic range compressor. + + + + + A 4-band Crossover Equalizer + + + + + A native delay plugin + + + + + A Dual filter plugin + + + + + plugin for processing dynamics in a flexible way + + + + + A native eq plugin + + + + + A native flanger plugin + + + + + Emulation of GameBoy (TM) APU + + + + + Player for GIG files + + + + + Filter for importing Hydrogen files into LMMS + + + + + Versatile drum synthesizer + + + + + List installed LADSPA plugins + + + + + plugin for using arbitrary LADSPA-effects inside LMMS. + + + + + Incomplete monophonic imitation TB-303 + + + + + plugin for using arbitrary LV2-effects inside LMMS. + + + + + plugin for using arbitrary LV2 instruments inside LMMS. + + + + + Filter for exporting MIDI-files from LMMS + + + + + Filter for importing MIDI-files into LMMS + + + + + Monstrous 3-oscillator synth with modulation matrix + + + + + A multitap echo delay plugin + + + + + A NES-like synthesizer + + + + + 2-operator FM Synth + + + + + Additive Synthesizer for organ-like sounds + + + + + GUS-compatible patch instrument + + + + + Plugin for controlling knobs with sound peaks + + + + + Reverb algorithm by Sean Costello + + + + + Player for SoundFont files + + + + + LMMS port of sfxr + + + + + Emulation of the MOS6581 and MOS8580 SID. +This chip was used in the Commodore 64 computer. + + + + + A graphical spectrum analyzer. + + + + + Plugin for enhancing stereo separation of a stereo input file + + + + + Plugin for freely manipulating stereo output + + + + + Tuneful things to bang on + + + + + Three powerful oscillators you can modulate in several ways + + + + + A stereo field visualizer. + + + + + VST-host for using VST(i)-plugins within LMMS + + + + + Vibrating string modeler + + + + + plugin for using arbitrary VST effects inside LMMS. + + + + + 4-oscillator modulatable wavetable synth + + + + + plugin for waveshaping + + + + + Mathematical expression parser + + + + + Embedded ZynAddSubFX + + + + + An all-pass filter allowing for extremely high orders. + + + + + Granular pitch shifter + + + + + Upwards/downwards multiband compression plugin powered by the eldritch elder god LOMMUS. + + + + + Basic Slicer + + + + + Tap to the beat + + + + + PluginEdit + + + Plugin Editor + + + + + Edit + + + + + Control + + + + + MIDI Control Channel: + + + + + N + + + + + Output dry/wet (100%) + + + + + Output volume (100%) + + + + + Balance Left (0%) + + + + + + Balance Right (0%) + + + + + Use Balance + + + + + Use Panning + + + + + Settings + Ezarpenak + + + + Use Chunks + + + + + Audio: + + + + + Fixed-Size Buffer + + + + + Force Stereo (needs reload) + + + + + MIDI: + + + + + Map Program Changes + - - Plugin Version - Pluginaren bertsioa + + Send Notes + - - <br>Version %1<br>Carla is a fully-featured audio plugin host%2.<br><br>Copyright (C) 2011-2019 falkTX<br> + + Send Bank/Program Changes - - - (Engine not running) - (Motorra ez dago martxan) + + Send Control Changes + - - Everything! (Including LRDF) - Dena! (LRDF barne) + + Send Channel Pressure + - - Everything! (Including CustomData/Chunks) + + Send Note Aftertouch - - About 110&#37; complete (using custom extensions)<br/>Implemented Feature/Extensions:<ul><li>http://lv2plug.in/ns/ext/atom</li><li>http://lv2plug.in/ns/ext/buf-size</li><li>http://lv2plug.in/ns/ext/data-access</li><li>http://lv2plug.in/ns/ext/event</li><li>http://lv2plug.in/ns/ext/instance-access</li><li>http://lv2plug.in/ns/ext/log</li><li>http://lv2plug.in/ns/ext/midi</li><li>http://lv2plug.in/ns/ext/options</li><li>http://lv2plug.in/ns/ext/parameters</li><li>http://lv2plug.in/ns/ext/port-props</li><li>http://lv2plug.in/ns/ext/presets</li><li>http://lv2plug.in/ns/ext/resize-port</li><li>http://lv2plug.in/ns/ext/state</li><li>http://lv2plug.in/ns/ext/time</li><li>http://lv2plug.in/ns/ext/uri-map</li><li>http://lv2plug.in/ns/ext/urid</li><li>http://lv2plug.in/ns/ext/worker</li><li>http://lv2plug.in/ns/extensions/ui</li><li>http://lv2plug.in/ns/extensions/units</li><li>http://home.gna.org/lv2dynparam/rtmempool/v1</li><li>http://kxstudio.sf.net/ns/lv2ext/external-ui</li><li>http://kxstudio.sf.net/ns/lv2ext/programs</li><li>http://kxstudio.sf.net/ns/lv2ext/props</li><li>http://kxstudio.sf.net/ns/lv2ext/rtmempool</li><li>http://ll-plugins.nongnu.org/lv2/ext/midimap</li><li>http://ll-plugins.nongnu.org/lv2/ext/miditype</li></ul> + + Send Pitchbend - - - - Using Juce host + + Send All Sound/Notes Off - - About 85% complete (missing vst bank/presets and some minor stuff) + + +Plugin Name + + + + + + Program: + + + + + MIDI Program: + + + + + Save State + + + + + Load State + + + + + Information + + + + + Label/URI: + + + + + Name: + + + + + Type: + Mota: + + + + Maker: + + + + + Copyright: + + + + + Unique ID: - CarlaHostW + PluginFactory - - MainWindow - LeihoNagusia + + Plugin not found. + - - Rack + + LMMS plugin %1 does not have a plugin descriptor named %2! + + + PluginListDialog - - Patchbay + + Carla - Add New - - Logs - Egunkariak + + Requirements + - - Loading... - Kargatzen... + + With Custom GUI + - - Buffer Size: - Buffer-tamaina: + + With CV Ports + - - Sample Rate: + + Real-time safe only - - ? Xruns + + Stereo only - - DSP Load: %p% + + With Inline Display - - &File - &Fitxategia + + Favorites only + - - &Engine - &Motorra + + (Number of Plugins go here) + + + + + &Add Plugin + + + + + Cancel + + + + + Refresh + + + + + Reset filters + + + + + + + + + + + + + + + + + + + + TextLabel + + + + + Format: + + + + + Architecture: + + + + + Type: + + + + + MIDI Ins: + + + + + Audio Ins: + + + + + CV Outs: + + + + + MIDI Outs: + + + + + Parameter Ins: + + + + + Parameter Outs: + + + + + Audio Outs: + + + + + CV Ins: + + + + + UniqueID: + + + + + Has Inline Display: + + + + + Has Custom GUI: + + + + + Is Synth: + + + + + Is Bridged: + + + + + Information + + + + + Name + + + + + Label/Id/URI + + + + + Maker + + + + + Binary/Filename + + + + + Format + + + + + Internal + + + + + LADSPA + + + + + DSSI + + + + + LV2 + + + + + VST2 + + + + + VST3 + + + + + CLAP + - - &Plugin - &Plugina + + AU + - - Macros (all plugins) - Makroak (plugin guztiak) + + JSFX + - - &Canvas - &Oihala + + Sound Kits + - - Zoom - Zoom + + Type + - - &Settings - E&zarpenak + + Effects + - - &Help - &Laguntza + + Instruments + - - toolBar - tresnaBarra + + MIDI Plugins + - - Disk - Diskoa + + Other/Misc + - - - Home - Etxea + + Category + - - Transport - Garraioa + + All + - - Playback Controls + + Delay - - Time Information + + Distortion - - Frame: + + Dynamics - - 000'000'000 + + EQ - - Time: + + Filter - - 00:00:00 + + Modulator - - BBT: + + Synth - - 000|00|0000 + + Utility - - Settings - Ezarpenak + + + Other + - - BPM + + Architecture - - Use JACK Transport + + + Native - - Use Ableton Link + + Bridged - - &New - &Berria + + Bridged (Wine) + - - Ctrl+N - Ctrl+N + + Focus Text Search + - - &Open... - &Ireki... + + Ctrl+F + - - - Open... - Ireki... + + Bridged (32bit) + - - Ctrl+O - Ctrl+O + + Discovering internal plugins... + - - &Save - &Gorde + + Discovering LADSPA plugins... + - - Ctrl+S - Ctrl+S + + Discovering DSSI plugins... + - - Save &As... - Gorde &honela... + + Discovering LV2 plugins... + - - - Save As... - Gorde honela... + + Discovering VST2 plugins... + - - Ctrl+Shift+S - Ctrl+Shift+S + + Discovering VST3 plugins... + - - &Quit - I&rten + + Discovering CLAP plugins... + - - Ctrl+Q - Ctrl+Q + + Discovering AU plugins... + - - &Start - &Hasi + + Discovering JSFX plugins... + - - F5 - F5 + + Discovering SF2 kits... + - - St&op - &Gelditu + + Discovering SFZ kits... + - - F6 - F6 + + Unknown + - - &Add Plugin... - Ge&hitu plugina... + + + + + Yes + - - Ctrl+A - Ctrl+A + + + + + No + + + + PluginParameter - - &Remove All - &Kendu dena + + Form + - - Enable - Gaitu + + Parameter Name + - - Disable - Desgaitu + + TextLabel + - - 0% Wet (Bypass) + + ... + + + PluginRefreshDialog - - 100% Wet + + Plugin Refresh - - 0% Volume (Mute) + + Search for: - - 100% Volume + + All plugins, ignoring cache - - Center Balance + + Updated plugins only - - &Play - &Erreproduzitu + + Check previously invalid plugins + - - Ctrl+Shift+P - Ctrl+Shift+P + + Press 'Scan' to begin the search + - - &Stop - &Gelditu + + Scan + - - Ctrl+Shift+X - Ctrl+Shift+X + + >> Skip + - - &Backwards - A&tzerantz + + Close + + + + PluginWidget - - Ctrl+Shift+B - Ctrl+Shift+B + + + + + + Frame + - - &Forwards - A&urrerantz + + Enable + Gaitu - - Ctrl+Shift+F - Ctrl+Shift+F + + On/Off + - - &Arrange - &Ordenatu + + + + + PluginName + - - Ctrl+G - Ctrl+G + + MIDI + MIDI - - - &Refresh - &Freskatu + + AUDIO IN + - - Ctrl+R - Ctrl+R + + AUDIO OUT + - - Save &Image... - Gorde &irudia... + + GUI + - - Auto-Fit - Automatikoki doitu + + Edit + - - Zoom In - Handiagotu + + Remove + - - Ctrl++ - Ctrl++ + + Plugin Name + - - Zoom Out - Txikiagotu + + Preset: + + + + ProjectRenderer - - Ctrl+- - Ctrl+- + + WAV (*.wav) + WAV (*.wav) - - Zoom 100% - %100eko zooma + + FLAC (*.flac) + FLAC (*.flac) - - Ctrl+1 - Ctrl+1 + + OGG (*.ogg) + OGG (*.ogg) - - Show &Toolbar - Erakutsi &tresna-barra + + MP3 (*.mp3) + MP3 (*.mp3) + + + QGroupBox - - &Configure Carla - &Konfiguratu Carla + + + Settings for %1 + + + + QObject - - &About - &Honi buruz + + Reload Plugin + - - About &JUCE - &JUCE aplikazioari buruz + + Show GUI + Erakutsi erabiltzaile-interfazea - - About &Qt - &Qt aplikazioari buruz + + Help + Laguntza - - Show Canvas &Meters + + LADSPA plugins - - Show Canvas &Keyboard + + The project contains %1 LADSPA plugin(s) which might have not been restored correctly! Please check the project. - - Show Internal + + URI: - - Show External + + Project: - - Show Time Panel + + Maker: - - Show &Side Panel + + Homepage: - - &Connect... + + License: - - Compact Slots + + File: %1 - - Expand Slots + + failed to load description - - Perform secret 1 + + Open audio file - - Perform secret 2 + + Error loading sample - - Perform secret 3 + + %1 (unsupported) + + + QWidget - - Perform secret 4 - + + + Name: + Izena: - - Perform secret 5 - + + Maker: + Egilea: - - Add &JACK Application... - + + Copyright: + Copyright: - - &Configure driver... + + Requires Real Time: - - Panic - + + + + Yes + Bai - - Open custom driver panel... - + + + + No + Ez - - - CarlaHostWindow - - Export as... + + Real Time Capable: - - - - - Error - Errorea + + In Place Broken: + - - Failed to load project + + Channels In: - - Failed to save project + + Channels Out: - - Quit + + File: %1 + Fitxategia: %1 + + + + File: + Fitxategia: + + + + XYControllerW + + + XY Controller - - Are you sure you want to quit Carla? + + X Controls: - - Could not connect to Audio backend '%1', possible reasons: -%2 + + Y Controls: - - Could not connect to Audio backend '%1' + + Smooth - - Warning + + &Settings - - There are still some plugins loaded, you need to remove them to stop the engine. -Do you want to do this now? + + Channels - - - CarlaInstrumentView - - Show GUI - Erakutsi erabiltzaile-interfazea + + &File + - - - CarlaSettingsW - - Settings - Ezarpenak + + Show MIDI &Keyboard + - - main + + (All) - - canvas + + 1 - - engine + + 2 - - osc + + 3 - - file-paths + + 4 - - plugin-paths + + 5 - - wine + + 6 - - experimental + + 7 - - Widget + + 8 - - - Main + + 9 - - - Canvas + + 10 - - - Engine + + 11 - - File Paths + + 12 - - Plugin Paths + + 13 - - Wine + + 14 - - - Experimental + + 15 - - <b>Main</b> + + 16 - - Paths - Bideak + + &Quit + - - Default project folder: + + Esc - - Interface + + (None) + + + lmms::AmplifierControls - - Interface refresh interval: + + Volume - - - ms + + Panning - - Show console output in Logs tab (needs engine restart) + + Left gain - - Show a confirmation dialog before quitting + + Right gain + + + lmms::AudioFileProcessor - - - Theme + + Amplify - - Use Carla "PRO" theme (needs restart) + + Start of sample - - Color scheme: + + End of sample - - Black + + Loopback point - - System + + Reverse sample - - Enable experimental features + + Loop mode - - <b>Canvas</b> + + Stutter - - Bezier Lines + + Interpolation mode - - Theme: + + None - - Size: - Tamaina: + + Linear + - - 775x600 + + Sinc - - 1550x1200 + + Sample not found + + + lmms::AudioJack - - 3100x2400 + + JACK client restarted - - 4650x3600 + + LMMS was kicked by JACK for some reason. Therefore the JACK backend of LMMS has been restarted. You will have to make manual connections again. - - 6200x4800 + + JACK server down - - Options + + The JACK server seems to have been shutdown and starting a new instance failed. Therefore LMMS is unable to proceed. You should save your project and restart JACK and LMMS. - - Auto-hide groups with no ports + + Client name - - Auto-select items on hover + + Channels + + + lmms::AudioOss - - Basic eye-candy (group shadows) + + Device - - Render Hints + + Channels + + + lmms::AudioPortAudio::setupWidget - - Anti-Aliasing + + Backend - - Full canvas repaints (slower, but prevents drawing issues) + + Device + + + lmms::AudioPulseAudio - - <b>Engine</b> + + Device - - - Core + + Channels + + + lmms::AudioSdl::setupWidget - - Single Client + + Playback device - - Multiple Clients + + Input device + + + lmms::AudioSndio - - - Continuous Rack + + Device - - - Patchbay + + Channels + + + lmms::AudioSoundIo::setupWidget - - Audio driver: + + Backend - - Process mode: + + Device + + + lmms::AutomatableModel - - - - - Maximum number of parameters to allow in the built-in 'Edit' dialog + + &Reset (%1%2) - - Max Parameters: + + &Copy value (%1%2) - - ... + + &Paste value (%1%2) - - Reset Xrun counter after project load + + &Paste value - - Plugin UIs + + Edit song-global automation - - - How much time to wait for OSC GUIs to ping back the host + + Remove song-global automation - - UI Bridge Timeout: + + Remove all linked controls - - Use OSC-GUI bridges when possible, this way separating the UI from DSP code + + Connected to %1 - - Use UI bridges instead of direct handling when possible + + Connected to controller - - Make plugin UIs always-on-top + + Edit connection... - - Make plugin UIs appear on top of Carla (needs restart) + + Remove connection - - NOTE: Plugin-bridge UIs cannot be managed by Carla on macOS + + Connect to controller... + + + lmms::AutomationClip - - - Restart the engine to load the new settings + + Drag a control while pressing <%1> + + + lmms::AutomationTrack - - <b>OSC</b> + + Automation track + + + lmms::BassBoosterControls - - Enable OSC + + Frequency - - Enable TCP port + + Gain - - - Use specific port: + + Ratio + + + lmms::BitInvader - - Overridden by CARLA_OSC_TCP_PORT env var + + Sample length - - - Use randomly assigned port + + Interpolation - - Enable UDP port + + Normalize + + + lmms::BitcrushControls - - Overridden by CARLA_OSC_UDP_PORT env var + + Input gain - - DSSI UIs require OSC UDP port enabled + + Input noise - - <b>File Paths</b> + + Output gain - - Audio - Audioa + + Output clip + - - MIDI - MIDI + + Sample rate + - - Used for the "audiofile" plugin + + Stereo difference - - Used for the "midifile" plugin + + Levels - - - Add... + + Rate enabled - - - Remove + + Depth enabled + + + lmms::Clip - - - Change... + + Mute + + + lmms::CompressorControls - - <b>Plugin Paths</b> + + Threshold - - LADSPA + + Ratio - - DSSI + + Attack - - LV2 + + Release - - VST2 + + Knee - - VST3 + + Hold - - SF2/3 + + Range - - SFZ + + RMS Size - - Restart Carla to find new plugins + + Mid/Side - - <b>Wine</b> + + Peak Mode - - Executable + + Lookahead Length - - Path to 'wine' binary: + + Input Balance - - Prefix + + Output Balance - - Auto-detect Wine prefix based on plugin filename + + Limiter - - Fallback: + + Output Gain - - Note: WINEPREFIX env var is preferred over this fallback + + Input Gain - - Realtime Priority + + Blend - - Base priority: + + Stereo Balance - - WineServer priority: + + Auto Makeup Gain - - These options are not available for Carla as plugin + + Audition - - <b>Experimental</b> + + Feedback - - Experimental options! Likely to be unstable! + + Auto Attack - - Enable plugin bridges + + Auto Release - - Enable Wine bridges + + Lookahead - - Enable jack applications + + Tilt - - Export single plugins to LV2 + + Tilt Frequency - - Load Carla backend in global namespace (NOT RECOMMENDED) + + Stereo Link - - Fancy eye-candy (fade-in/out groups, glow connections) + + Mix + + + lmms::Controller - - Use OpenGL for rendering (needs restart) + + Controller %1 + + + lmms::DelayControls - - High Quality Anti-Aliasing (OpenGL only) + + Delay samples - - Render Ardour-style "Inline Displays" + + Feedback - - Force mono plugins as stereo by running 2 instances at the same time. -This mode is not available for VST plugins. + + LFO frequency - - Force mono plugins as stereo + + LFO amount - - Prevent plugins from doing bad stuff (needs restart) + + Output gain + + + lmms::DispersionControls - - Whenever possible, run the plugins in bridge mode. + + Amount - - Run plugins in bridge mode when possible + + Frequency - - - - - Add Path + + Resonance - - - CompressorControlDialog - - Threshold: + + Feedback - - Volume at which the compression begins to take place + + DC Offset Removal + + + lmms::DualFilterControls - - Ratio: + + Filter 1 enabled - - How far the compressor must turn the volume down after crossing the threshold + + Filter 1 type - - Attack: + + Cutoff frequency 1 - - Speed at which the compressor starts to compress the audio + + Q/Resonance 1 - - Release: + + Gain 1 - - Speed at which the compressor ceases to compress the audio + + Mix - - Knee: + + Filter 2 enabled - - Smooth out the gain reduction curve around the threshold + + Filter 2 type - - Range: + + Cutoff frequency 2 - - Maximum gain reduction + + Q/Resonance 2 - - Lookahead Length: + + Gain 2 - - How long the compressor has to react to the sidechain signal ahead of time + + + Low-pass - - Hold: + + + Hi-pass - - Delay between attack and release stages + + + Band-pass csg - - RMS Size: + + + Band-pass czpg - - Size of the RMS buffer + + + Notch - - Input Balance: + + + All-pass - - Bias the input audio to the left/right or mid/side + + + Moog - - Output Balance: + + + 2x Low-pass - - Bias the output audio to the left/right or mid/side + + + RC Low-pass 12 dB/oct - - Stereo Balance: + + + RC Band-pass 12 dB/oct - - Bias the sidechain signal to the left/right or mid/side + + + RC High-pass 12 dB/oct - - Stereo Link Blend: + + + RC Low-pass 24 dB/oct - - Blend between unlinked/maximum/average/minimum stereo linking modes + + + RC Band-pass 24 dB/oct - - Tilt Gain: + + + RC High-pass 24 dB/oct - - Bias the sidechain signal to the low or high frequencies. -6 db is lowpass, 6 db is highpass. + + + Vocal Formant - - Tilt Frequency: + + + 2x Moog - - Center frequency of sidechain tilt filter + + + SV Low-pass - - Mix: + + + SV Band-pass - - Balance between wet and dry signals + + + SV High-pass - - Auto Attack: + + + SV Notch - - Automatically control attack value depending on crest factor + + + Fast Formant - - Auto Release: + + + Tripole + + + lmms::DynProcControls - - Automatically control release value depending on crest factor - + + Input gain + Sarrerako irabazia - + Output gain Irteerako irabazia - - - Gain - Irabazia + + Attack time + - - Output volume + + Release time - - Input gain - Sarrerako irabazia + + Stereo mode + Estereo modua + + + lmms::Effect - - Input volume + + Effect enabled + Efektua gaituta + + + + Wet/Dry mix - - Root Mean Square + + Gate - - Use RMS of the input + + Decay + + + lmms::EffectChain - - Peak + + Effects enabled + + + lmms::Engine - - Use absolute value of the input + + Generating wavetables - - Left/Right + + Initializing data structures - - Compress left and right audio + + Opening audio and midi devices - - Mid/Side + + Launching audio engine threads + + + lmms::EnvelopeAndLfoParameters - - Compress mid and side audio + + Env pre-delay - - Compressor + + Env attack - - Compress the audio + + Env hold - - Limiter + + Env decay - - Set Ratio to infinity (is not guaranteed to limit audio volume) + + Env sustain - - Unlinked + + Env release - - Compress each channel separately + + Env mod amount - - Maximum + + LFO pre-delay - - Compress based on the loudest channel + + LFO attack - - Average + + LFO frequency - - Compress based on the averaged channel volume + + LFO mod amount - - Minimum + + LFO wave shape - - Compress based on the quietest channel + + LFO frequency x 100 - - Blend + + Modulate env amount - - Blend between stereo linking modes + + Sample not found + + + + + lmms::EqControls + + + Input gain - - Auto Makeup Gain + + Output gain - - Automatically change makeup gain depending on threshold, knee, and ratio settings + + Low-shelf gain - - - Soft Clip + + Peak 1 gain - - Play the delta signal + + Peak 2 gain - - Use the compressor's output as the sidechain input + + Peak 3 gain - - Lookahead Enabled + + Peak 4 gain - - Enable Lookahead, which introduces 20 milliseconds of latency + + High-shelf gain - - - CompressorControls - - Threshold + + HP res - - Ratio + + Low-shelf res - - Attack + + Peak 1 BW - - Release + + Peak 2 BW - - Knee + + Peak 3 BW - - Hold + + Peak 4 BW - - Range + + High-shelf res - - RMS Size + + LP res - - Mid/Side + + HP freq - - Peak Mode + + Low-shelf freq - - Lookahead Length + + Peak 1 freq - - Input Balance + + Peak 2 freq - - Output Balance + + Peak 3 freq - - Limiter + + Peak 4 freq - - Output Gain + + High-shelf freq - - Input Gain + + LP freq - - Blend + + HP active - - Stereo Balance + + Low-shelf active - - Auto Makeup Gain + + Peak 1 active - - Audition + + Peak 2 active - - Feedback + + Peak 3 active - - Auto Attack + + Peak 4 active - - Auto Release + + High-shelf active - - Lookahead + + LP active - - Tilt + + LP 12 - - Tilt Frequency + + LP 24 - - Stereo Link + + LP 48 - - Mix + + HP 12 - - - Controller - - Controller %1 - %1 kontrolatzailea + + HP 24 + - - - ControllerConnectionDialog - - Connection Settings - Konexio-ezarpenak + + HP 48 + - - MIDI CONTROLLER + + Low-pass type - - Input channel - Sarrerako kanala + + High-pass type + - - CHANNEL + + Analyse IN - - Input controller - Sarrerako kontrolatzailea + + Analyse OUT + + + + lmms::FlangerControls - - CONTROLLER + + Delay samples - - - Auto Detect + + LFO frequency - - MIDI-devices to receive MIDI-events from + + Amount - - USER CONTROLLER + + Stereo phase - - MAPPING FUNCTION + + Feedback - - OK - Ados + + Noise + - - Cancel - Utzi + + Invert + + + + lmms::FreeBoyInstrument - - LMMS - LMMS + + Sweep time + - - Cycle Detected. + + Sweep direction - - - ControllerRackView - - Controller Rack + + Sweep rate shift amount - - Add - Gehitu + + + Wave pattern duty cycle + - - Confirm Delete - Baieztatu ezabatzea + + Channel 1 volume + - - Confirm delete? There are existing connection(s) associated with this controller. There is no way to undo. - Ezabatzea baieztatu? Kontrolagailu honi lotutako konexioak daude. Ez dago desegiteko modurik + + + + Volume sweep direction + - - - ControllerView - - Controls - Kontrola + + + + Length of each step in sweep + - - Rename controller - Berrizendatu kontrolagailua + + Channel 2 volume + - - Enter the new name for this controller - Sartu beste izen bat kontrolagailu honentzat + + Channel 3 volume + - - LFO - LFO + + Channel 4 volume + - - &Remove this controller - &Kendu kontrolagailu hau + + Shift Register width + - - Re&name this controller - &Berrizendatu kontrolagailu hau + + Right output level + - - - CrossoverEQControlDialog - - Band 1/2 crossover: + + Left output level - - Band 2/3 crossover: + + Channel 1 to SO2 (Left) - - Band 3/4 crossover: + + Channel 2 to SO2 (Left) - - Band 1 gain - 1. bandaren irabazia + + Channel 3 to SO2 (Left) + - - Band 1 gain: - 1. bandaren irabazia: + + Channel 4 to SO2 (Left) + - - Band 2 gain - 2. bandaren irabazia + + Channel 1 to SO1 (Right) + - - Band 2 gain: - 2. bandaren irabazia: + + Channel 2 to SO1 (Right) + - - Band 3 gain - 3. bandaren irabazia + + Channel 3 to SO1 (Right) + - - Band 3 gain: - 3. bandaren irabazia: + + Channel 4 to SO1 (Right) + - - Band 4 gain - 4. bandaren irabazia + + Treble + - - Band 4 gain: - 4. bandaren irabazia: + + Bass + + + + lmms::GigInstrument - - Band 1 mute + + Bank - - Mute band 1 + + Patch - - Band 2 mute + + Gain + + + lmms::GranularPitchShifterControls - - Mute band 2 + + Pitch - - Band 3 mute + + Grain Size - - Mute band 3 + + Spray - - Band 4 mute + + Jitter - - Mute band 4 + + Twitch - - - DelayControls - - Delay samples - Atzeratu laginak + + Pitch Stereo Spread + - - Feedback + + Spray Stereo - - LFO frequency + + Shape - - LFO amount + + Fade Length - - Output gain - Irteerako irabazia + + Feedback + - - - DelayControlsDialog - - DELAY + + Minimum Allowed Latency - - Delay time + + Prefilter - - FDBK + + Density - - Feedback amount + + Glide - - RATE + + Ring Buffer Length - - LFO frequency + + 5 Seconds - - AMNT + + 10 Seconds (Size) - - LFO amount + + 40 Seconds (Size and Pitch) - - Out gain + + 40 Seconds (Size and Spray and Jitter) - - Gain - Irabazia + + 120 Seconds (All of the above) + - Dialog + lmms::InstrumentFunctionArpeggio - - Add JACK Application + + Arpeggio - - Note: Features not implemented yet are greyed out + + Arpeggio type - - Application + + Arpeggio range - - Name: + + Note repeats - - Application: + + Cycle steps - - From template + + Skip rate - - Custom + + Miss rate - - Template: + + Arpeggio time - - Command: + + Arpeggio gate - - Setup + + Arpeggio direction - - Session Manager: + + Arpeggio mode - - None - Bat ere ez + + Up + - - Audio inputs: + + Down - - MIDI inputs: + + Up and down - - Audio outputs: + + Down and up - - MIDI outputs: + + Random - - Take control of main application window + + Free - - Workarounds + + Sort - - Wait for external application start (Advanced, for Debug only) + + Sync + + + lmms::InstrumentFunctionNoteStacking - - Capture only the first X11 Window + + Chords - - Use previous client output buffer as input for the next client + + Chord type - - Simulate 16 JACK MIDI outputs, with MIDI channel as port index + + Chord range + + + lmms::InstrumentSoundShaping - - Error here + + Envelopes/LFOs - - Carla Control - Connect - + + Filter type + Iragazki mota - - Remote setup + + Cutoff frequency - - UDP Port: + + Q/Resonance - - Remote host: - + + Low-pass + Pasaera baxua - - TCP Port: - + + Hi-pass + Pasaera altua - - Reported host + + Band-pass csg - - Automatic + + Band-pass czpg - - Custom: + + Notch - - In some networks (like USB connections), the remote system cannot reach the local network. You can specify here which hostname or IP to make the remote Carla connect to. -If you are unsure, leave it as 'Automatic'. + + All-pass - - Set value + + Moog - - TextLabel + + 2x Low-pass - - Scale Points + + RC Low-pass 12 dB/oct - - - DriverSettingsW - - Driver Settings + + RC Band-pass 12 dB/oct - - Device: + + RC High-pass 12 dB/oct - - Buffer size: + + RC Low-pass 24 dB/oct - - Sample rate: + + RC Band-pass 24 dB/oct - - Triple buffer + + RC High-pass 24 dB/oct - - Show Driver Control Panel + + Vocal Formant - - Restart the engine to load the new settings + + 2x Moog - - - DualFilterControlDialog - - - FREQ + + SV Low-pass - - - Cutoff frequency + + SV Band-pass - - - RESO + + SV High-pass - - - Resonance + + SV Notch - - - GAIN + + Fast Formant - - - Gain - Irabazia + + Tripole + + + + lmms::InstrumentTrack - - MIX + + + unnamed_track - - Mix + + Base note - - Filter 1 enabled + + First note - - Filter 2 enabled + + Last note - - Enable/disable filter 1 - + + Volume + Bolumena - - Enable/disable filter 2 + + Panning - - - DualFilterControls - - Filter 1 enabled + + Pitch - - Filter 1 type + + Pitch range - - Cutoff frequency 1 + + Mixer channel - - Q/Resonance 1 + + Master pitch - - Gain 1 + + Enable/Disable MIDI CC - - Mix + + CC Controller %1 - - Filter 2 enabled + + + Default preset + + + lmms::Keymap - - Filter 2 type - + + empty + hutsik + + + lmms::KickerInstrument - - Cutoff frequency 2 - + + Start frequency + Hasierako maiztasuna - - Q/Resonance 2 - + + End frequency + Amaierako maiztasuna - - Gain 2 - + + Length + Luzera - - - Low-pass - + + Start distortion + Hasierako distortsioa - - - Hi-pass - + + End distortion + Amaierako distortsioa - - - Band-pass csg - + + Gain + Irabazia - - - Band-pass czpg + + Envelope slope - - - Notch - + + Noise + Zarata - - - All-pass - + + Click + Klika - - - Moog - + + Frequency slope + Maiztasun-malda - - - 2x Low-pass + + Start from note - - - RC Low-pass 12 dB/oct + + End to note + + + lmms::LOMMControls - - - RC Band-pass 12 dB/oct - + + Depth + Sakonera - - - RC High-pass 12 dB/oct - + + Time + Denbora - - - RC Low-pass 24 dB/oct - + + Input Volume + Sarrerako bolumena - - - RC Band-pass 24 dB/oct - + + Output Volume + Irteerako bolumena - - - RC High-pass 24 dB/oct - + + Upward Depth + Goranzko sakonera - - - Vocal Formant - + + Downward Depth + Beheranzko sakonera - - - 2x Moog + + High/Mid Split - - - SV Low-pass + + Mid/Low Split - - - SV Band-pass + + Enable High/Mid Split - - - SV High-pass + + Enable Mid/Low Split - - - SV Notch - + + Enable High Band + Gaitu banda altua - - - Fast Formant - + + Enable Mid Band + Gaitu tarteko banda - - - Tripole - + + Enable Low Band + Gaitu banda baxua - - - Editor - - Transport controls - + + High Input Volume + Sarrera-bolumen altua - - Play (Space) - + + Mid Input Volume + Tarteko sarrera-bolumena - - Stop (Space) - + + Low Input Volume + Sarrera-bolumen baxua - - Record - Grabatu + + High Output Volume + Irteera-bolumen altua - - Record while playing - Grabatu erreproduzitzean + + Mid Output Volume + Tarteko irteera-bolumena - - Toggle Step Recording + + Low Output Volume + Irteera-bolumen baxua + + + + Above Threshold High - - - Effect - - Effect enabled + + Above Threshold Mid - - Wet/Dry mix + + Above Threshold Low - - Gate + + Above Ratio High - - Decay + + Above Ratio Mid - - - EffectChain - - Effects enabled - Efektuak gaituta + + Above Ratio Low + - - - EffectRackView - - EFFECTS CHAIN + + Below Threshold High - - Add effect - Gehitu efektua + + Below Threshold Mid + - - - EffectSelectDialog - - Add effect - Gehitu efektua + + Below Threshold Low + - - - Name - Izena + + Below Ratio High + - - Type - Mota + + Below Ratio Mid + - - Description - Deskribapena + + Below Ratio Low + - - Author - Egilea + + Attack High + - - - EffectView - - On/Off + + Attack Mid - - W/D + + Attack Low - - Wet Level: + + Release High - - DECAY + + Release Mid - - Time: + + Release Low - - GATE + + RMS Time - - Gate: + + Knee - - Controls - Kontrola + + Range + Barrutia - - Move &up - + + Balance + Balantzea - - Move &down + + Scale output volume with Depth - - &Remove this plugin + + Stereo Link - - - EnvelopeAndLfoParameters - - Env pre-delay + + Auto Time - - Env attack + + Mix - - Env hold + + Feedback - - Env decay + + Mid/Side - - Env sustain + + Lookahead - - Env release + + Lookahead Length - - Env mod amount + + Suppress upward compression for side band + + + lmms::LadspaControl - - LFO pre-delay - + + Link channels + Estekatu kanalak + + + lmms::LadspaEffect - - LFO attack + + Unknown LADSPA plugin %1 requested. + + + lmms::Lb302Synth - - LFO frequency + + VCF Cutoff Frequency - - LFO mod amount - + + VCF Resonance + VCF erresonantzia - - LFO wave shape + + VCF Envelope Mod - - LFO frequency x 100 + + VCF Envelope Decay - - Modulate env amount - + + Distortion + Distortsioa - - - EnvelopeAndLfoView - - - DEL - + + Waveform + Uhin-forma - - - Pre-delay: + + Slide Decay - - - ATT + + Slide - - - Attack: + + Accent - - HOLD + + Dead - - Hold: + + 24dB/oct Filter + + + lmms::LfoController - - DEC + + LFO Controller - - Decay: + + Base value - - SUST + + Oscillator speed - - Sustain: + + Oscillator amount - - REL + + Oscillator phase - - Release: + + Oscillator waveform - - - AMT + + Frequency Multiplier - - - Modulation amount: + + Sample not found + Ez da lagina aurkitu + + + + lmms::MalletsInstrument + + + Hardness + Gogortasuna + + + + Position + Posizioa + + + + Vibrato gain - - SPD - SPD + + Vibrato frequency + - - Frequency: - Maiztasuna: + + Stick mix + - - FREQ x 100 + + Modulator - - Multiply LFO frequency by 100 + + Crossfade - - MODULATE ENV AMOUNT + + LFO speed - - Control envelope amount by this LFO + + LFO depth - - ms/LFO: + + ADSR - - Hint - + + Pressure + Presioa - - Drag and drop a sample into this window. + + Motion - - - EqControls - - - Input gain - Sarrerako irabazia - - - Output gain - Irteerako irabazia + + Speed + Abiadura - - Low-shelf gain + + Bowed - - Peak 1 gain + + Instrument - - Peak 2 gain + + Spread - - Peak 3 gain + + Randomness - - Peak 4 gain + + Marimba - - High-shelf gain + + Vibraphone - - HP res + + Agogo - - Low-shelf res + + Wood 1 - - Peak 1 BW + + Reso - - Peak 2 BW + + Wood 2 - - Peak 3 BW + + Beats - - Peak 4 BW + + Two fixed - - High-shelf res + + Clump - - LP res + + Tubular bells - - HP freq - + + Uniform bar + Barra uniformea - - Low-shelf freq + + Tuned bar - - Peak 1 freq - + + Glass + Beira - - Peak 2 freq + + Tibetan bowl + + + lmms::MeterModel - - Peak 3 freq - + + Numerator + Zenbakitzailea - - Peak 4 freq - + + Denominator + Izendatzailea + + + lmms::Microtuner - - High-shelf freq + + Microtuner - - LP freq + + Microtuner on / off - - HP active - + + Selected scale + Hautatutako eskala - - Low-shelf active + + Selected keyboard mapping + + + lmms::MidiController - - Peak 1 active - + + MIDI Controller + MIDI kontrolatzailea - - Peak 2 active + + unnamed_midi_controller + + + lmms::MidiImport - - Peak 3 active + + + Setup incomplete - - Peak 4 active + + You have not set up a default soundfont in the settings dialog (Edit->Settings). Therefore no sound will be played back after importing this MIDI file. You should download a General MIDI soundfont, specify it in settings dialog and try again. - - High-shelf active + + You did not compile LMMS with support for SoundFont2 player, which is used to add default sound to imported MIDI files. Therefore no sound will be played back after importing this MIDI file. - - LP active + + MIDI Time Signature Numerator - - LP 12 + + MIDI Time Signature Denominator - - LP 24 - + + Numerator + Zenbakitzailea - - LP 48 - + + Denominator + Izendatzailea - - HP 12 + + + Tempo - - HP 24 - + + Track + Pista + + + lmms::MidiJack - - HP 48 + + JACK server down + When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (title) - - Low-pass type + + The JACK server seems to be shuted down. + When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (dialog message) + + + lmms::MidiPort - - High-pass type - + + Input channel + Sarrerako kanala - - Analyse IN - + + Output channel + Irteerako kanala - - Analyse OUT - + + Input controller + Sarrerako kontrolatzailea - - - EqControlsDialog - - HP - + + Output controller + Irteerako kontrolatzailea - - Low-shelf + + Fixed input velocity - - Peak 1 + + Fixed output velocity - - Peak 2 + + Fixed output note - - Peak 3 - + + Output MIDI program + Irteerako MIDI programa - - Peak 4 + + Base velocity - - High-shelf + + Receive MIDI-events - - LP + + Send MIDI-events + + + lmms::Mixer - - Input gain - Sarrerako irabazia + + Master + Maisua - - - - Gain - Irabazia + + + + Channel %1 + %1 kanala - - Output gain - Irteerako irabazia + + Volume + Bolumena - - Bandwidth: - Banda-zabalera: + + Mute + - - Octave + + Solo + + + lmms::MixerRoute - - Resonance : + + + Amount to send from channel %1 to channel %2 + + + lmms::MonstroInstrument - - Frequency: - Maiztasuna: + + Osc 1 volume + - - LP group + + Osc 1 panning - - HP group + + Osc 1 coarse detune - - - EqHandle - - Reso: + + Osc 1 fine detune left - - BW: + + Osc 1 fine detune right - - - Freq: + + Osc 1 stereo phase offset - - - ExportProjectDialog - - Export project + + Osc 1 pulse width - - Export as loop (remove extra bar) + + Osc 1 sync send on rise - - Export between loop markers + + Osc 1 sync send on fall - - Render Looped Section: + + Osc 2 volume - - time(s) + + Osc 2 panning - - File format settings + + Osc 2 coarse detune - - File format: + + Osc 2 fine detune left - - Sampling rate: + + Osc 2 fine detune right - - 44100 Hz - 44.100 Hz + + Osc 2 stereo phase offset + - - 48000 Hz - 48.000 Hz + + Osc 2 waveform + - - 88200 Hz - 88.200 Hz + + Osc 2 sync hard + - - 96000 Hz - 96.000 Hz + + Osc 2 sync reverse + - - 192000 Hz - 192.000 Hz + + Osc 3 volume + - - Bit depth: + + Osc 3 panning - - 16 Bit integer + + Osc 3 coarse detune - - 24 Bit integer + + Osc 3 Stereo phase offset - - 32 Bit float + + Osc 3 sub-oscillator mix - - Stereo mode: + + Osc 3 waveform 1 - - Mono + + Osc 3 waveform 2 - - Stereo + + Osc 3 sync hard - - Joint stereo + + Osc 3 Sync reverse - - Compression level: + + LFO 1 waveform - - Bitrate: + + LFO 1 attack - - 64 KBit/s - 64 KBit/s + + LFO 1 rate + - - 128 KBit/s - 128 KBit/s + + LFO 1 phase + - - 160 KBit/s - 160 KBit/s + + LFO 2 waveform + - - 192 KBit/s - 192 KBit/s + + LFO 2 attack + - - 256 KBit/s - 256 KBit/s + + LFO 2 rate + - - 320 KBit/s - 320 KBit/s + + LFO 2 phase + - - Use variable bitrate + + Env 1 pre-delay - - Quality settings - Kalitate-ezarpenak + + Env 1 attack + - - Interpolation: - Interpolazioa: + + Env 1 hold + - - Zero order hold + + Env 1 decay - - Sinc worst (fastest) + + Env 1 sustain - - Sinc medium (recommended) + + Env 1 release - - Sinc best (slowest) + + Env 1 slope - - Oversampling: + + Env 2 pre-delay - - 1x (None) - 1x (bat ere ez) + + Env 2 attack + - - 2x - 2x + + Env 2 hold + - - 4x - 4x + + Env 2 decay + - - 8x - 8x + + Env 2 sustain + - - Start - Hasiera + + Env 2 release + - - Cancel - Utzi + + Env 2 slope + - - Could not open file - Ezin da fitxategia irek + + Osc 2+3 modulation + - - Could not open file %1 for writing. -Please make sure you have write permission to the file and the directory containing the file and try again! + + Selected view - - Export project to %1 + + Osc 1 - Vol env 1 - - ( Fastest - biggest ) + + Osc 1 - Vol env 2 - - ( Slowest - smallest ) + + Osc 1 - Vol LFO 1 - - Error - Errorea + + Osc 1 - Vol LFO 2 + - - Error while determining file-encoder device. Please try to choose a different output format. + + Osc 2 - Vol env 1 - - Rendering: %1% + + Osc 2 - Vol env 2 - - - Fader - - Set value + + Osc 2 - Vol LFO 1 - - Please enter a new value between %1 and %2: - Sartu %1 eta %2 arteko balio berri bat: + + Osc 2 - Vol LFO 2 + - - - FileBrowser - - User content + + Osc 3 - Vol env 1 - - Factory content + + Osc 3 - Vol env 2 - - Browser + + Osc 3 - Vol LFO 1 - - Search - Bilatu + + Osc 3 - Vol LFO 2 + - - Refresh list - Freskatu zerrenda + + Osc 1 - Phs env 1 + - - - FileBrowserTreeWidget - - Send to active instrument-track + + Osc 1 - Phs env 2 - - Open containing folder + + Osc 1 - Phs LFO 1 - - Song Editor + + Osc 1 - Phs LFO 2 - - BB Editor + + Osc 2 - Phs env 1 - - Send to new AudioFileProcessor instance + + Osc 2 - Phs env 2 - - Send to new instrument track + + Osc 2 - Phs LFO 1 - - (%2Enter) + + Osc 2 - Phs LFO 2 - - Send to new sample track (Shift + Enter) + + Osc 3 - Phs env 1 - - Loading sample - Lagina kargatzen + + Osc 3 - Phs env 2 + - - Please wait, loading sample for preview... - Itxaron, lagina kargatzen ari da aurrebistarako... + + Osc 3 - Phs LFO 1 + - - Error - Errorea + + Osc 3 - Phs LFO 2 + - - %1 does not appear to be a valid %2 file + + Osc 1 - Pit env 1 - - --- Factory files --- + + Osc 1 - Pit env 2 - - - FlangerControls - - Delay samples - Atzeratu laginak + + Osc 1 - Pit LFO 1 + - - LFO frequency + + Osc 1 - Pit LFO 2 - - Seconds + + Osc 2 - Pit env 1 - - Stereo phase + + Osc 2 - Pit env 2 - - Regen + + Osc 2 - Pit LFO 1 - - Noise + + Osc 2 - Pit LFO 2 - - Invert + + Osc 3 - Pit env 1 - - - FlangerControlsDialog - - DELAY + + Osc 3 - Pit env 2 - - Delay time: + + Osc 3 - Pit LFO 1 - - RATE + + Osc 3 - Pit LFO 2 - - Period: + + Osc 1 - PW env 1 - - AMNT + + Osc 1 - PW env 2 - - Amount: + + Osc 1 - PW LFO 1 - - PHASE + + Osc 1 - PW LFO 2 - - Phase: + + Osc 3 - Sub env 1 - - FDBK + + Osc 3 - Sub env 2 - - Feedback amount: + + Osc 3 - Sub LFO 1 - - NOISE + + Osc 3 - Sub LFO 2 - - White noise amount: + + + Sine wave - - Invert + + Bandlimited Triangle wave - - - FreeBoyInstrument - - Sweep time + + Bandlimited Saw wave - - Sweep direction + + Bandlimited Ramp wave - - Sweep rate shift amount + + Bandlimited Square wave - - - Wave pattern duty cycle + + Bandlimited Moog saw wave - - Channel 1 volume + + + Soft square wave - - - - Volume sweep direction + + Absolute sine wave - - - - Length of each step in sweep + + + Exponential wave - - Channel 2 volume + + White noise - - Channel 3 volume + + Digital Triangle wave - - Channel 4 volume + + Digital Saw wave - - Shift Register width + + Digital Ramp wave - - Right output level + + Digital Square wave - - Left output level + + Digital Moog saw wave - - Channel 1 to SO2 (Left) + + Triangle wave - - Channel 2 to SO2 (Left) + + Saw wave - - Channel 3 to SO2 (Left) + + Ramp wave - - Channel 4 to SO2 (Left) + + Square wave - - Channel 1 to SO1 (Right) + + Moog saw wave - - Channel 2 to SO1 (Right) + + Abs. sine wave - - Channel 3 to SO1 (Right) + + Random - - Channel 4 to SO1 (Right) + + Random smooth + + + lmms::NesInstrument - - Treble + + Channel 1 enable - - Bass + + Channel 1 coarse detune - - - FreeBoyInstrumentView - - Sweep time: + + Channel 1 volume - - Sweep time + + Channel 1 envelope enable - - Sweep rate shift amount: + + Channel 1 envelope loop - - Sweep rate shift amount + + Channel 1 envelope length - - - Wave pattern duty cycle: + + Channel 1 duty cycle - - - Wave pattern duty cycle + + Channel 1 sweep enable - - Square channel 1 volume: + + Channel 1 sweep amount - - Square channel 1 volume + + Channel 1 sweep rate - - - - Length of each step in sweep: + + Channel 2 enable - - - - Length of each step in sweep + + Channel 2 coarse detune - - Square channel 2 volume: + + Channel 2 volume - - Square channel 2 volume + + Channel 2 envelope enable - - Wave pattern channel volume: + + Channel 2 envelope loop - - Wave pattern channel volume + + Channel 2 envelope length - - Noise channel volume: + + Channel 2 duty cycle - - Noise channel volume + + Channel 2 sweep enable - - SO1 volume (Right): + + Channel 2 sweep amount - - SO1 volume (Right) + + Channel 2 sweep rate - - SO2 volume (Left): + + Channel 3 enable - - SO2 volume (Left) + + Channel 3 coarse detune - - Treble: + + Channel 3 volume - - Treble + + Channel 4 enable - - Bass: + + Channel 4 volume - - Bass + + Channel 4 envelope enable - - Sweep direction + + Channel 4 envelope loop - - - - - - Volume sweep direction + + Channel 4 envelope length - - Shift register width + + Channel 4 noise mode - - Channel 1 to SO1 (Right) + + Channel 4 frequency mode - - Channel 2 to SO1 (Right) + + Channel 4 noise frequency - - Channel 3 to SO1 (Right) + + Channel 4 noise frequency sweep - - Channel 4 to SO1 (Right) + + Channel 4 quantize - - Channel 1 to SO2 (Left) + + Master volume - - Channel 2 to SO2 (Left) + + Vibrato + + + lmms::OpulenzInstrument - - Channel 3 to SO2 (Left) + + Patch - - Channel 4 to SO2 (Left) + + Op 1 attack - - Wave pattern graph + + Op 1 decay - - - MixerLine - - Channel send amount + + Op 1 sustain - - Move &left + + Op 1 release - - Move &right + + Op 1 level - - Rename &channel + + Op 1 level scaling - - R&emove channel + + Op 1 frequency multiplier - - Remove &unused channels + + Op 1 feedback - - Set channel color + + Op 1 key scaling rate - - Remove channel color + + Op 1 percussive envelope - - Pick random channel color + + Op 1 tremolo - - - MixerLineLcdSpinBox - - Assign to: + + Op 1 vibrato - - New mixer Channel + + Op 1 waveform - - - Mixer - - Master + + Op 2 attack - - - - Channel %1 + + Op 2 decay - - Volume - Bolumena + + Op 2 sustain + - - Mute + + Op 2 release - - Solo + + Op 2 level - - - MixerView - - Mixer + + Op 2 level scaling - - Fader %1 + + Op 2 frequency multiplier - - Mute + + Op 2 key scaling rate - - Mute this mixer channel + + Op 2 percussive envelope - - Solo + + Op 2 tremolo - - Solo mixer channel + + Op 2 vibrato - - - MixerRoute - - - Amount to send from channel %1 to channel %2 + + Op 2 waveform - - - GigInstrument - - Bank + + FM - - Patch + + Vibrato depth - - Gain - Irabazia + + Tremolo depth + - GigInstrumentView - - - - Open GIG file - Ireki GIG fitxategia - + lmms::OrganicInstrument - - Choose patch + + Distortion - - Gain: - Irabazia: - - - - GIG Files (*.gig) - GIG fitxategiak (*.gig) + + Volume + - GuiApplication - - - Working directory - Laneko direktorioa - + lmms::OscillatorObject - - The LMMS working directory %1 does not exist. Create it now? You can change the directory later via Edit -> Settings. + + Osc %1 waveform - - Preparing UI - Interfazea prestatzen - - - - Preparing song editor - Abesti-editorea prestatzen - - - - Preparing mixer - Nahasgailua prestatzen - - - - Preparing controller rack + + Osc %1 harmonic - - Preparing project notes + + + Osc %1 volume - - Preparing beat/bassline editor + + + Osc %1 panning - - Preparing piano roll + + Osc %1 stereo detuning - - Preparing automation editor + + Osc %1 coarse detuning - - - InstrumentFunctionArpeggio - - Arpeggio + + Osc %1 fine detuning left - - Arpeggio type + + Osc %1 fine detuning right - - Arpeggio range + + Osc %1 phase-offset - - Note repeats + + Osc %1 stereo phase-detuning - - Cycle steps + + Osc %1 wave shape - - Skip rate + + Modulation type %1 + + + lmms::PatternTrack - - Miss rate + + Pattern %1 - - Arpeggio time + + Clone of %1 + + + lmms::PeakController - - Arpeggio gate + + Peak Controller - - Arpeggio direction + + Peak Controller Bug - - Arpeggio mode + + Due to a bug in older version of LMMS, the peak controllers may not be connect properly. Please ensure that peak controllers are connected properly and re-save this file. Sorry for any inconvenience caused. + + + lmms::PeakControllerEffectControls - - Up + + Base value - - Down + + Modulation amount - - Up and down + + Attack - - Down and up + + Release - - Random - Ausazkoa + + Treshold + - - Free + + Mute output - - Sort + + Absolute value - - Sync + + Amount multiplicator - InstrumentFunctionArpeggioView - - - ARPEGGIO - - + lmms::Plugin - - RANGE + + Plugin not found - - Arpeggio range: + + The plugin "%1" wasn't found or could not be loaded! +Reason: "%2" - - octave(s) + + Error while loading plugin - - REP + + Failed to load plugin "%1"! + + + lmms::ReverbSCControls - - Note repeats: + + Input gain - - time(s) + + Size - - CYCLE + + Color - - Cycle notes: + + Output gain + + + lmms::SaControls - - note(s) + + Pause - - SKIP + + Reference freeze - - Skip rate: + + Waterfall - - - - % + + Averaging - - MISS + + Stereo - - Miss rate: + + Peak hold - - TIME + + Logarithmic frequency - - Arpeggio time: + + Logarithmic amplitude - - ms + + Frequency range - - GATE + + Amplitude range - - Arpeggio gate: + + FFT block size - - Chord: + + FFT window type - - Direction: + + Peak envelope resolution - - Mode: + + Spectrum display resolution - - - InstrumentFunctionNoteStacking - - octave + + Peak decay multiplier - - - - Major + + + Averaging weight - - Majb5 + + Waterfall history size - - minor + + Waterfall gamma correction - - minb5 + + FFT window overlap - - sus2 + + FFT zero padding - - sus4 + + + Full (auto) - - aug + + + + Audible - - augsus4 + + Bass - - tri + + Mids - - 6 + + High - - 6sus4 + + Extended - - 6add9 + + Loud - - m6 + + Silent - - m6add9 + + (High time res.) - - 7 + + (High freq. res.) - - 7sus4 + + Rectangular (Off) - - 7#5 + + + Blackman-Harris (Default) - - 7b5 + + Hamming - - 7#9 + + Hanning + + + lmms::SampleClip - - 7b9 + + Sample not found + + + lmms::SampleTrack - - 7#5#9 + + Volume - - 7#5b9 + + Panning - - 7b5b9 + + Mixer channel - - 7add11 + + + Sample track + + + lmms::Scale - - 7add13 + + empty + + + lmms::Sf2Instrument - - 7#11 + + Bank - - Maj7 + + Patch - - Maj7b5 + + Gain - - Maj7#5 + + Reverb - - Maj7#11 + + Reverb room size - - Maj7add13 + + Reverb damping - - m7 + + Reverb width - - m7b5 + + Reverb level - - m7b9 + + Chorus - - m7add11 + + Chorus voices - - m7add13 + + Chorus level - - m-Maj7 + + Chorus speed - - m-Maj7add11 + + Chorus depth - - m-Maj7add13 + + A soundfont %1 could not be loaded. + + + lmms::SfxrInstrument - - 9 + + Wave + + + lmms::SidInstrument - - 9sus4 + + Cutoff frequency - - add9 + + Resonance - - 9#5 + + Filter type - - 9b5 + + Voice 3 off - - 9#11 + + Volume - - 9b13 + + Chip model + + + lmms::SlicerT - - Maj9 + + Note threshold - - Maj9sus4 + + FadeOut - - Maj9#5 + + Original bpm - - Maj9#11 + + Slice snap - - m9 + + BPM sync - - madd9 + + + slice_%1 - - m9b5 + + Sample not found: %1 + + + lmms::Song - - m9-Maj7 + + Tempo - - 11 + + Master volume - - 11b9 + + Master pitch - - Maj11 + + Aborting project load - - m11 + + Project file contains local paths to plugins, which could be used to run malicious code. - - m-Maj11 + + Can't load project: Project file contains local paths to plugins. - - 13 + + LMMS Error report - - 13#9 + + (repeated %1 times) - - 13b9 + + The following errors occurred while loading: + + + lmms::StereoEnhancerControls - - 13b5b9 + + Width + + + lmms::StereoMatrixControls - - Maj13 + + Left to Left - - m13 + + Left to Right - - m-Maj13 + + Right to Left - - Harmonic minor + + Right to Right + + + lmms::Track - - Melodic minor + + Mute - - Whole tone + + Solo + + + lmms::TrackContainer - - Diminished + + Couldn't import file - - Major pentatonic + + Couldn't find a filter for importing file %1. +You should convert this file into a format supported by LMMS using another software. - - Minor pentatonic + + Couldn't open file - - Jap in sen + + Couldn't open file %1 for reading. +Please make sure you have read-permission to the file and the directory containing the file and try again! - - Major bebop + + Loading project... - - Dominant bebop + + + Cancel - - Blues + + + Please wait... - - Arabic + + Loading cancelled - - Enigmatic + + Project loading was cancelled. - - Neopolitan + + Loading Track %1 (%2/Total %3) - - Neopolitan minor + + Importing MIDI-file... + + + lmms::TripleOscillator - - Hungarian minor + + Sample not found + + + lmms::VecControls - - Dorian + + Display persistence amount - - Phrygian - + + Logarithmic scale + Eskala logaritmikoa - - Lydian - + + High quality + Kalitate altua + + + lmms::VestigeInstrument - - Mixolydian - + + Loading plugin + Plugina kargatzen - - Aeolian - + + Please wait while loading the VST plugin... + Itxaron VST plugina kargatu arte... + + + lmms::Vibed - - Locrian + + String %1 volume - - Minor + + String %1 stiffness - - Chromatic + + Pick %1 position - - Half-Whole Diminished + + Pickup %1 position - - 5 + + String %1 panning - - Phrygian dominant + + String %1 detune - - Persian + + String %1 fuzziness - - Chords + + String %1 length - - Chord type + + Impulse %1 - - Chord range + + String %1 - InstrumentFunctionNoteStackingView + lmms::VoiceObject - - STACKING + + Voice %1 pulse width - - Chord: + + Voice %1 attack - - RANGE + + Voice %1 decay - - Chord range: + + Voice %1 sustain - - octave(s) + + Voice %1 release - - - InstrumentMidiIOView - - ENABLE MIDI INPUT + + Voice %1 coarse detuning - - ENABLE MIDI OUTPUT + + Voice %1 wave shape - - - CHAN - This string must be be short, its width must be less than * width of LCD spin-box of two digits + + Voice %1 sync - - - VELOC - This string must be be short, its width must be less than * width of LCD spin-box of three digits + + Voice %1 ring modulate - - PROG - This string must be be short, its width must be less than the * width of LCD spin-box of three digits + + Voice %1 filtered - - NOTE - This string must be be short, its width must be less than * width of LCD spin-box of three digits + + Voice %1 test + + + lmms::VstPlugin - - MIDI devices to receive MIDI events from + + + The VST plugin %1 could not be loaded. - - MIDI devices to send MIDI events to + + Open Preset - - CUSTOM BASE VELOCITY + + + VST Plugin Preset (*.fxp *.fxb) - - Specify the velocity normalization base for MIDI-based instruments at 100% note velocity. + + : default - - BASE VELOCITY - + + Save Preset + Gorde aurrezarpena - - - InstrumentTuningView - - MASTER PITCH - + + .fxp + .fxp - - Enables the use of master pitch - + + .FXP + .FXP - - - InstrumentSoundShaping - - VOLUME - + + .FXB + .FXB - - Volume - Bolumena + + .fxb + .fxb - - CUTOFF - + + Loading plugin + Plugina kargatzen - - - Cutoff frequency + + Please wait while loading VST plugin... + + + lmms::WatsynInstrument - - RESO + + Volume A1 - - Resonance + + Volume A2 - - Envelopes/LFOs + + Volume B1 - - Filter type + + Volume B2 - - Q/Resonance + + Panning A1 - - Low-pass + + Panning A2 - - Hi-pass + + Panning B1 - - Band-pass csg + + Panning B2 - - Band-pass czpg + + Freq. multiplier A1 - - Notch + + Freq. multiplier A2 - - All-pass + + Freq. multiplier B1 - - Moog + + Freq. multiplier B2 - - 2x Low-pass + + Left detune A1 - - RC Low-pass 12 dB/oct + + Left detune A2 - - RC Band-pass 12 dB/oct + + Left detune B1 - - RC High-pass 12 dB/oct + + Left detune B2 - - RC Low-pass 24 dB/oct + + Right detune A1 - - RC Band-pass 24 dB/oct + + Right detune A2 - - RC High-pass 24 dB/oct + + Right detune B1 - - Vocal Formant + + Right detune B2 - - 2x Moog + + A-B Mix - - SV Low-pass + + A-B Mix envelope amount - - SV Band-pass + + A-B Mix envelope attack - - SV High-pass + + A-B Mix envelope hold - - SV Notch + + A-B Mix envelope decay - - Fast Formant + + A1-B2 Crosstalk - - Tripole + + A2-A1 modulation - - - InstrumentSoundShapingView - - TARGET + + B2-B1 modulation - - FILTER + + Selected graph + + + lmms::WaveShaperControls - - FREQ - + + Input gain + Sarrerako irabazia - - Cutoff frequency: - + + Output gain + Irteerako irabazia + + + lmms::Xpressive - - Hz + + Selected graph - - Q/RESO - + + A1 + A1 + + + + A2 + A2 - - Q/Resonance: - + + A3 + A3 - - Envelopes, LFOs and filters are not supported by the current instrument. + + W1 smoothing - - - InstrumentTrack - - - unnamed_track + + W2 smoothing - - Base note + + W3 smoothing - - First note + + Panning 1 - - Last note + + Panning 2 - - Volume - Bolumena + + Rel trans + + + + lmms::ZynAddSubFxInstrument - - Panning - Panoramika + + Portamento + - - Pitch + + Filter frequency - - Pitch range + + Filter resonance - - Mixer channel - + + Bandwidth + Banda-zabalera - - Master pitch - + + FM gain + FM irabazia - - Enable/Disable MIDI CC + + Resonance center frequency - - CC Controller %1 + + Resonance bandwidth - - - Default preset + + Forward MIDI control change events - InstrumentTrackView - - - Volume - Bolumena - + lmms::graphModel - - Volume: - Bolumena: + + Graph + + + + lmms::gui::AmplifierControlDialog - + VOL VOL - - Panning - Panoramika - - - - Panning: - Panoramika: + + Volume: + Bolumena: - + PAN PAN - - MIDI - MIDI - - - - Input - Sarrera + + Panning: + - - Output - Irteera + + LEFT + LEFT - - Open/Close MIDI CC Rack + + Left gain: - - Channel %1: %2 - FX %1: %2 + + RIGHT + RIGHT - - - InstrumentTrackWindow - - GENERAL SETTINGS + + Right gain: + + + lmms::gui::AudioAlsaSetupWidget - - Volume - Bolumena - - - - Volume: - Bolumena: + + Device + Gailua - - VOL - VOL + + Channels + Kanalak + + + lmms::gui::AudioFileProcessorView - - Panning - Panoramika + + Open sample + Ireki lagina - - Panning: - Panoramika: + + Reverse sample + Alderantzikatu lagina - - PAN - PAN + + Disable loop + Desgaitu begizta - - Pitch - + + Enable loop + Gaitu begizta - - Pitch: + + Enable ping-pong loop - - cents + + Continue sample playback across notes - - PITCH + + Amplify: - - Pitch range (semitones) + + Start point: - - RANGE + + End point: - - Mixer channel + + Loopback point: + + + lmms::gui::AudioFileProcessorWaveView - - CHANNEL + + Sample length: + + + lmms::gui::AutomationClipView - - Save current instrument track settings in a preset file + + Open in Automation editor - - SAVE - + + Clear + Garbitu - - Envelope, filter & LFO - + + Reset name + Berrezarri izena - - Chord stacking & arpeggio - + + Change name + Aldatu izena - - Effects - Efektuak + + Set/clear record + Ezarri/garbitu grabazioa - - MIDI - MIDI + + Flip Vertically (Visible) + Irauli bertikalean (ikusgai) - - Miscellaneous - Bestelakoak + + Flip Horizontally (Visible) + Irauli horizontalean (ikusgai) - - Save preset + + %1 Connections - - XML preset file (*.xpf) + + Disconnect "%1" - - Plugin - Plugina + + Model is already connected to this clip. + - JackApplicationW + lmms::gui::AutomationEditor - - NSM applications cannot use abstract or absolute paths - + + Edit Value + Editatu balioa - - NSM applications cannot use CLI arguments - + + New outValue + Irteerako balio berria - - You need to save the current Carla project before NSM can be used + + New inValue + Sarrerako balio berria + + + + Please open an automation clip by double-clicking on it! - JuceAboutW + lmms::gui::AutomationEditorWindow - - About JUCE + + Play/pause current clip (Space) - - <b>About JUCE</b> + + Stop playing of current clip (Space) - - This program uses JUCE version 3.x.x. - + + Edit actions + Editatu ekintzak - - JUCE (Jules' Utility Class Extensions) is an all-encompassing C++ class library for developing cross-platform software. - -It contains pretty much everything you're likely to need to create most applications, and is particularly well-suited for building highly-customised GUIs, and for handling graphics and sound. - -JUCE is licensed under the GNU Public Licence version 2.0. -One module (juce_core) is permissively licensed under the ISC. - -Copyright (C) 2017 ROLI Ltd. - + + Draw mode (Shift+D) + Marrazte modua (Shift+D) - - This program uses JUCE version %1. - + + Erase mode (Shift+E) + Ezabatze modua (Shift+E) - - - Knob - - Set linear - Ezarri lineala + + Draw outValues mode (Shift+C) + - - Set logarithmic - Ezarri logaritmikoa + + Edit tangents mode (Shift+T) + - - - Set value - + + Flip vertically + Irauli bertikalean - - Please enter a new value between -96.0 dBFS and 6.0 dBFS: - Sartu -96.0 dBFS eta 6.0 dBFS arteko balio berri bat: + + Flip horizontally + Irauli horizontalean - - Please enter a new value between %1 and %2: - Sartu %1 eta %2 arteko balio berri bat: + + Interpolation controls + Interpolazio-kontrolak - - - LadspaControl - - Link channels - Estekatu kanalak + + Discrete progression + Progresio diskretua - - - LadspaControlDialog - - Link Channels - Estekatu kanalak + + Linear progression + Progresio lineala - - Channel - Kanala + + Cubic Hermite progression + - - - LadspaControlView - - Link channels - Estekatu kanalak + + Tension value for spline + - - Value: - Balioa: + + Tension: + - - - LadspaEffect - - Unknown LADSPA plugin %1 requested. + + Zoom controls - - - LcdFloatSpinBox - - Set value + + Horizontal zooming - - Please enter a new value between %1 and %2: - Sartu %1 eta %2 arteko balio berri bat: + + Vertical zooming + - - - LcdSpinBox - - Set value + + Quantization controls - - Please enter a new value between %1 and %2: - Sartu %1 eta %2 arteko balio berri bat: + + Quantization + - - - LeftRightNav - - - - Previous - Aurrekoa + + Clear ghost notes + - - - - Next - Hurrengoa + + + Automation Editor - no clip + - - Previous (%1) - Aurrekoa (%1) + + + Automation Editor - %1 + - - Next (%1) - Hurrengoa (%1) + + Model is already connected to this clip. + - LfoController - - - LFO Controller - LFO kontrolagailua - + lmms::gui::BassBoosterControlDialog - - Base value - Oinarri-balioa + + FREQ + - - Oscillator speed - Osziladore-abiadura + + Frequency: + - - Oscillator amount - Osziladore-kantitatea + + GAIN + - - Oscillator phase - Osziladore-fasea + + Gain: + - - Oscillator waveform - Osziladorearen uhin-forma + + RATIO + - - Frequency Multiplier + + Ratio: - LfoControllerDialog - - - LFO - LFO - + lmms::gui::BitInvaderView - - BASE + + Sample length - - Base: + + Draw your own waveform here by dragging your mouse on this graph. - - FREQ + + + Sine wave - - LFO frequency: + + + Triangle wave - - AMNT + + + Saw wave - - Modulation amount: + + + Square wave - - PHS + + + White noise - - Phase offset: + + + User-defined wave - - degrees + + + Smooth waveform - - Sine wave + + Interpolation - - Triangle wave + + Normalize + + + lmms::gui::BitcrushControlDialog - - Saw wave + + IN - - Square wave + + OUT - - Moog saw wave + + + GAIN - - Exponential wave + + Input gain: - - White noise + + NOISE - - User-defined shape. -Double click to pick a file. + + Input noise: - - Mutliply modulation frequency by 1 + + Output gain: - - Mutliply modulation frequency by 100 + + CLIP - - Divide modulation frequency by 100 + + Output clip: - - - Engine - - Generating wavetables + + Rate enabled - - Initializing data structures + + Enable sample-rate crushing - - Opening audio and midi devices + + Depth enabled - - Launching mixer threads + + Enable bit-depth crushing - - - MainWindow - - - Configuration file - Konfigurazio-fitxategia - - - Error while parsing configuration file at line %1:%2: %3 + + FREQ - - Could not open file - Ezin da fitxategia irek + + Sample rate: + - - Could not open file %1 for writing. -Please make sure you have write permission to the file and the directory containing the file and try again! + + STEREO - - Project recovery - Proiektuaren berreskurapena + + Stereo difference: + - - There is a recovery file present. It looks like the last session did not end properly or another instance of LMMS is already running. Do you want to recover the project of this session? + + QUANT - - - Recover - Berreskuratu + + Levels: + + + + lmms::gui::CPULoadWidget - - Recover the file. Please don't run multiple instances of LMMS when you do this. + + DSP total: %1% - - - Discard - Baztertu + + - Notes and setup: %1% + - - Launch a default session and delete the restored files. This is not reversible. - Abiarazi saio lehenetsi bat eta ezabatu leheneratutako fitxategiak. Ekintza hori ezin da desegin + + - Instruments: %1% + - - Version %1 - %1 bertsioa + + - Effects: %1% + - - Preparing plugin browser - Plugin-arakatzailea prestatzen + + - Mixing: %1% + + + + lmms::gui::CarlaInstrumentView - - Preparing file browsers - Fitxategi-arakatzaileak prestatzen + + Show GUI + - - My Projects - Nire proiektuak + + Click here to show or hide the graphical user interface (GUI) of Carla. + - - My Samples + + Params - - My Presets + + Available from Carla version 2.1 and up. + + + lmms::gui::CarlaParamsView - - My Home + + Search.. - - Root directory - Erro-direktorioa + + Clear filter text + - - Volumes - Bolumenak + + Only show knobs with a connection. + - - My Computer + + - Parameters + + + lmms::gui::ClipView - - &File - &Fitxategia + + Current position + - - &New - &Berria + + Current length + - - &Open... - &Ireki... + + + %1:%2 (%3:%4 to %5:%6) + - - Loading background picture + + Press <%1> and drag to make a copy. - - &Save - &Gorde + + Press <%1> for free resizing. + - - Save &As... - Gorde &honela... + + Hint + - - Save as New &Version - Gorde &bertsio berri gisa + + Delete (middle mousebutton) + - - Save as default template - Gorde txantiloi lehenetsi gisa + + Delete selection (middle mousebutton) + - - Import... - Importatu... + + Cut + - - E&xport... - E&sportatu... + + Cut selection + - - E&xport Tracks... + + Merge Selection - - Export &MIDI... - Esportatu &MIDIa... + + Copy + - - &Quit - I&rten + + Copy selection + - - &Edit - &Editatu + + Paste + - - Undo - Desegin + + Mute/unmute (<%1> + middle click) + - - Redo - Berregin + + Mute/unmute selection (<%1> + middle click) + - - Settings - Ezarpenak + + Clip color + - - &View - &Ikusi + + Change + - - &Tools - &Tresnak + + Reset + - - &Help - &Laguntza + + Pick random + + + + lmms::gui::CompressorControlDialog - - Online Help + + Threshold: - - Help - Laguntza + + Volume at which the compression begins to take place + - - About - Honi buruz + + Ratio: + - - Create new project - Sortu proiektu berria + + How far the compressor must turn the volume down after crossing the threshold + - - Create new project from template - Sortu proiektu berria txantiloitik + + Attack: + - - Open existing project - Ireki lehendik dagoen proiektua + + Speed at which the compressor starts to compress the audio + - - Recently opened projects - Azken aldian irekitako proiektuak + + Release: + - - Save current project - Gorde uneko proiektua + + Speed at which the compressor ceases to compress the audio + - - Export current project - Esportatu uneko proiektua + + Knee: + - - Metronome + + Smooth out the gain reduction curve around the threshold - - - Song Editor + + Range: - - - Beat+Bassline Editor + + Maximum gain reduction - - - Piano Roll + + Lookahead Length: - - - Automation Editor + + How long the compressor has to react to the sidechain signal ahead of time - - - Mixer + + Hold: - - Show/hide controller rack + + Delay between attack and release stages - - Show/hide project notes + + RMS Size: - - Untitled + + Size of the RMS buffer - - Recover session. Please save your work! + + Input Balance: - - LMMS %1 + + Bias the input audio to the left/right or mid/side - - Recovered project not saved + + Output Balance: - - This project was recovered from the previous session. It is currently unsaved and will be lost if you don't save it. Do you want to save it now? + + Bias the output audio to the left/right or mid/side - - Project not saved + + Stereo Balance: - - The current project was modified since last saving. Do you want to save it now? + + Bias the sidechain signal to the left/right or mid/side - - Open Project - Ireki proiektua + + Stereo Link Blend: + - - LMMS (*.mmp *.mmpz) - LMMS (*.mmp *.mmpz) + + Blend between unlinked/maximum/average/minimum stereo linking modes + - - Save Project - Gorde proiektua + + Tilt Gain: + - - LMMS Project - LMMS proiektua + + Bias the sidechain signal to the low or high frequencies. -6 db is lowpass, 6 db is highpass. + - - LMMS Project Template - LMMS proiektu-txantiloia + + Tilt Frequency: + - - Save project template - Gorde proiektu-txantiloia + + Center frequency of sidechain tilt filter + - - Overwrite default template? - Gainidatzi txantiloi lehenetsia? + + Mix: + - - This will overwrite your current default template. - Horrek zure uneko txantiloi lehenetsia gainidatziko du. + + Balance between wet and dry signals + - - Help not available + + Auto Attack: - - Currently there's no help available in LMMS. -Please visit http://lmms.sf.net/wiki for documentation on LMMS. + + Automatically control attack value depending on crest factor - - Controller Rack + + Auto Release: - - Project Notes + + Automatically control release value depending on crest factor - - Fullscreen + + Output gain - - Volume as dBFS + + + Gain - - Smooth scroll - Korritze leuna + + Output volume + - - Enable note labels in piano roll + + Input gain - - MIDI File (*.mid) - MIDI fitxategia (*.mid) + + Input volume + - - - untitled + + Root Mean Square - - - Select file for project-export... + + Use RMS of the input - - Select directory for writing exported tracks... + + Peak - - Save project - Gorde proiektua + + Use absolute value of the input + - - Project saved - Proiektua gorde da + + Left/Right + - - The project %1 is now saved. - %1 proiektua gorde da. + + Compress left and right audio + - - Project NOT saved. - Proiektua EZ da gorde. + + Mid/Side + - - The project %1 was not saved! - %1 proiektua ez da gorde! + + Compress mid and side audio + - - Import file - Inportatu fitxategia + + Compressor + - - MIDI sequences - MIDI sekuentziak + + Compress the audio + - - Hydrogen projects + + Limiter - - All file types - Fitxategi mota guztiak + + Set Ratio to infinity (is not guaranteed to limit audio volume) + - - - MeterDialog - - - Meter Numerator + + Unlinked - - Meter numerator + + Compress each channel separately - - - Meter Denominator + + Maximum - - Meter denominator + + Compress based on the loudest channel - - TIME SIG + + Average - - - MeterModel - - Numerator - Zenbakitzailea + + Compress based on the averaged channel volume + - - Denominator - Izendatzailea + + Minimum + - - - MidiCCRackView - - - MIDI CC Rack - %1 + + Compress based on the quietest channel - - MIDI CC Knobs: + + Blend - - CC %1 + + Blend between stereo linking modes - - - MidiController - - MIDI Controller - MIDI kontrolatzailea + + Auto Makeup Gain + - - unnamed_midi_controller + + Automatically change makeup gain depending on threshold, knee, and ratio settings - - - MidiImport - - - Setup incomplete + + + Soft Clip - - You have not set up a default soundfont in the settings dialog (Edit->Settings). Therefore no sound will be played back after importing this MIDI file. You should download a General MIDI soundfont, specify it in settings dialog and try again. + + Play the delta signal - - You did not compile LMMS with support for SoundFont2 player, which is used to add default sound to imported MIDI files. Therefore no sound will be played back after importing this MIDI file. + + Use the compressor's output as the sidechain input - - MIDI Time Signature Numerator + + Lookahead Enabled - - MIDI Time Signature Denominator + + Enable Lookahead, which introduces 20 milliseconds of latency + + + lmms::gui::ControllerConnectionDialog - - Numerator - Zenbakitzailea + + Connection Settings + - - Denominator - Izendatzailea + + MIDI CONTROLLER + - - Track - Pista + + Input channel + - - - MidiJack - - JACK server down - When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (title) - JACK zerbitzaria erorita + + CHANNEL + - - The JACK server seems to be shuted down. - When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (dialog message) - Badirudi JACK zerbitzaria itxi egin dela. + + Input controller + - - - MidiPatternW - - MIDI Pattern + + CONTROLLER - - Time Signature: + + + Auto Detect - - - - 1/4 + + MIDI-devices to receive MIDI-events from - - 2/4 + + USER CONTROLLER - - 3/4 + + MAPPING FUNCTION - - 4/4 + + OK - - 5/4 + + Cancel - - 6/4 + + LMMS - - Measures: + + Cycle Detected. + + + lmms::gui::ControllerRackView - - - - 1 + + Controller Rack - - 2 + + Add - - 3 + + Confirm Delete - - 4 + + Confirm delete? There are existing connection(s) associated with this controller. There is no way to undo. + + + lmms::gui::ControllerView - - 5 + + Controls - - 6 + + Rename controller - - 7 + + Enter the new name for this controller - - 8 + + LFO - - 9 + + Move &up - - 10 + + Move &down - - 11 + + &Remove this controller - - 12 + + Re&name this controller + + + lmms::gui::CrossoverEQControlDialog - - 13 + + Band 1/2 crossover: - - 14 + + Band 2/3 crossover: - - 15 + + Band 3/4 crossover: - - 16 + + Band 1 gain - - Default Length: + + Band 1 gain: - - - 1/16 + + Band 2 gain - - - 1/15 + + Band 2 gain: - - - 1/12 + + Band 3 gain - - - 1/9 + + Band 3 gain: - - - 1/8 + + Band 4 gain - - - 1/6 + + Band 4 gain: - - - 1/3 + + Band 1 mute - - - 1/2 + + Mute band 1 - - Quantize: + + Band 2 mute - - &File - &Fitxategia + + Mute band 2 + - - &Edit - &Editatu + + Band 3 mute + - - &Quit - I&rten + + Mute band 3 + - - &Insert Mode + + Band 4 mute - - F + + Mute band 4 + + + lmms::gui::DelayControlsDialog - - &Velocity Mode + + DELAY - - D + + Delay time - - Select All + + FDBK - - A + + Feedback amount - - - MidiPort - - Input channel - Sarrerako kanala + + RATE + - - Output channel - Irteerako kanala + + LFO frequency + - - Input controller - Sarrerako kontrolatzailea + + AMNT + - - Output controller - Irteerako kontrolatzailea + + LFO amount + - - Fixed input velocity - Sarrerako abiadura finkoa + + Out gain + - - Fixed output velocity - Irteerako abiadura finkoa + + Gain + + + + lmms::gui::DispersionControlDialog - - Fixed output note + + AMOUNT - - Output MIDI program - Irteerako MIDI programa + + Number of all-pass filters + - - Base velocity + + FREQ - - Receive MIDI-events - Jaso MIDI-events + + Frequency: + - - Send MIDI-events - Bidali MIDI-events + + RESO + - - - MidiSetupWidget - - Device - Gailua + + Resonance: + - - - MonstroInstrument - - Osc 1 volume + + FEED - - Osc 1 panning + + Feedback: - - Osc 1 coarse detune + + DC Offset Removal - - Osc 1 fine detune left + + Remove DC Offset + + + lmms::gui::DualFilterControlDialog - - Osc 1 fine detune right + + + FREQ - - Osc 1 stereo phase offset + + + Cutoff frequency - - Osc 1 pulse width + + + RESO - - Osc 1 sync send on rise + + + Resonance - - Osc 1 sync send on fall + + + GAIN - - Osc 2 volume + + + Gain - - Osc 2 panning + + MIX - - Osc 2 coarse detune + + Mix - - Osc 2 fine detune left + + Filter 1 enabled - - Osc 2 fine detune right + + Filter 2 enabled - - Osc 2 stereo phase offset + + Enable/disable filter 1 - - Osc 2 waveform + + Enable/disable filter 2 + + + lmms::gui::DynProcControlDialog - - Osc 2 sync hard + + INPUT - - Osc 2 sync reverse + + Input gain: - - Osc 3 volume + + OUTPUT - - Osc 3 panning + + Output gain: - - Osc 3 coarse detune + + ATTACK - - Osc 3 Stereo phase offset + + Peak attack time: - - Osc 3 sub-oscillator mix + + RELEASE - - Osc 3 waveform 1 + + Peak release time: - - Osc 3 waveform 2 + + + Reset wavegraph - - Osc 3 sync hard + + + Smooth wavegraph - - Osc 3 Sync reverse + + + Increase wavegraph amplitude by 1 dB - - LFO 1 waveform + + + Decrease wavegraph amplitude by 1 dB - - LFO 1 attack + + Stereo mode: maximum - - LFO 1 rate + + Process based on the maximum of both stereo channels - - LFO 1 phase + + Stereo mode: average - - LFO 2 waveform + + Process based on the average of both stereo channels - - LFO 2 attack + + Stereo mode: unlinked - - LFO 2 rate + + Process each stereo channel independently + + + lmms::gui::Editor - - LFO 2 phase + + Transport controls - - Env 1 pre-delay + + Play (Space) - - Env 1 attack + + Stop (Space) - - Env 1 hold + + Record - - Env 1 decay + + Record while playing - - Env 1 sustain + + Toggle Step Recording + + + lmms::gui::EffectRackView - - Env 1 release + + EFFECTS CHAIN - - Env 1 slope - + + Add effect + Gehitu efektua + + + lmms::gui::EffectSelectDialog - - Env 2 pre-delay + + Add effect - - Env 2 attack - + + + Name + Izena - - Env 2 hold - + + Type + Mota - - Env 2 decay + + All - - Env 2 sustain + + Search - - Env 2 release - + + Description + Deskribapena - - Env 2 slope - + + Author + Egilea + + + lmms::gui::EffectView - - Osc 2+3 modulation + + On/Off - - Selected view - Hautatutako bista - - - - Osc 1 - Vol env 1 + + W/D - - Osc 1 - Vol env 2 + + Wet Level: - - Osc 1 - Vol LFO 1 + + DECAY - - Osc 1 - Vol LFO 2 + + Time: - - Osc 2 - Vol env 1 + + GATE - - Osc 2 - Vol env 2 + + Gate: - - Osc 2 - Vol LFO 1 + + Controls - - Osc 2 - Vol LFO 2 + + Move &up - - Osc 3 - Vol env 1 + + Move &down - - Osc 3 - Vol env 2 + + &Remove this plugin + + + lmms::gui::EnvelopeAndLfoView - - Osc 3 - Vol LFO 1 + + + AMT - - Osc 3 - Vol LFO 2 + + + Modulation amount: - - Osc 1 - Phs env 1 + + + DEL - - Osc 1 - Phs env 2 + + + Pre-delay: - - Osc 1 - Phs LFO 1 + + + ATT - - Osc 1 - Phs LFO 2 + + + Attack: - - Osc 2 - Phs env 1 + + HOLD - - Osc 2 - Phs env 2 + + Hold: - - Osc 2 - Phs LFO 1 + + DEC - - Osc 2 - Phs LFO 2 + + Decay: - - Osc 3 - Phs env 1 + + SUST - - Osc 3 - Phs env 2 + + Sustain: - - Osc 3 - Phs LFO 1 + + REL - - Osc 3 - Phs LFO 2 + + Release: - - Osc 1 - Pit env 1 + + SPD - - Osc 1 - Pit env 2 + + Frequency: - - Osc 1 - Pit LFO 1 + + FREQ x 100 - - Osc 1 - Pit LFO 2 + + Multiply LFO frequency by 100 - - Osc 2 - Pit env 1 + + MOD ENV AMOUNT - - Osc 2 - Pit env 2 + + Control envelope amount by this LFO - - Osc 2 - Pit LFO 1 + + Hint - - Osc 2 - Pit LFO 2 + + Drag and drop a sample into this window. + + + lmms::gui::EnvelopeGraph - - Osc 3 - Pit env 1 + + Scaling - - Osc 3 - Pit env 2 + + Dynamic - - Osc 3 - Pit LFO 1 + + Uses absolute spacings but switches to relative spacing if it's running out of space - - Osc 3 - Pit LFO 2 + + Absolute - - Osc 1 - PW env 1 + + Provides enough potential space for each segment but does not scale - - Osc 1 - PW env 2 + + Relative - - Osc 1 - PW LFO 1 + + Always uses all of the available space to display the envelope graph + + + lmms::gui::EqControlsDialog - - Osc 1 - PW LFO 2 + + HP - - Osc 3 - Sub env 1 + + Low-shelf - - Osc 3 - Sub env 2 + + Peak 1 - - Osc 3 - Sub LFO 1 + + Peak 2 - - Osc 3 - Sub LFO 2 + + Peak 3 - - - Sine wave + + Peak 4 - - Bandlimited Triangle wave + + High-shelf - - Bandlimited Saw wave + + LP - - Bandlimited Ramp wave + + Input gain - - Bandlimited Square wave + + + + Gain - - Bandlimited Moog saw wave + + Output gain - - - Soft square wave + + Bandwidth: - - Absolute sine wave + + Octave - - - Exponential wave + + Resonance: - - White noise + + Frequency: - - Digital Triangle wave + + LP group - - Digital Saw wave + + HP group + + + lmms::gui::EqHandle - - Digital Ramp wave + + Reso: - - Digital Square wave + + BW: - - Digital Moog saw wave + + + Freq: + + + lmms::gui::ExportProjectDialog - - Triangle wave + + Could not open file - - Saw wave + + Could not open file %1 for writing. +Please make sure you have write permission to the file and the directory containing the file and try again! - - Ramp wave + + Export project to %1 - - Square wave + + ( Fastest - biggest ) - - Moog saw wave + + ( Slowest - smallest ) - - Abs. sine wave + + Error - - Random - Ausazkoa + + Error while determining file-encoder device. Please try to choose a different output format. + - - Random smooth - Ausazko leuntzea + + Rendering: %1% + - MonstroView + lmms::gui::Fader - - Operators view + + Set value + Ezarri balioa + + + + Please enter a new value between %1 and %2: - - Matrix view + + Volume: %1 dBFS + + + lmms::gui::FileBrowser - - - - Volume - Bolumena + + Browser + Arakatzailea - - - - Panning - Panoramika + + Search + Bilatu - - - - Coarse detune - + + Refresh list + Freskatu zerrenda - - - - semitones + + User content - - - Fine tune left + + Factory content - - - - - cents + + Hidden content + + + lmms::gui::FileBrowserTreeWidget - - - Fine tune right + + Send to active instrument-track - - - - Stereo phase offset + + Open containing folder - - - - - - deg + + Song Editor + Abestien editorea + + + + Pattern Editor + Ereduen editorea + + + + Send to new AudioFileProcessor instance - - Pulse width + + Send to new instrument track - - Send sync on pulse rise + + (%2Enter) - - Send sync on pulse fall + + Send to new sample track (Shift + Enter) - - Hard sync oscillator 2 + + Loading sample + Lagina kargatzen + + + + Please wait, loading sample for preview... - - Reverse sync oscillator 2 + + Error + Errorea + + + + %1 does not appear to be a valid %2 file - - Sub-osc mix + + --- Factory files --- + + + lmms::gui::FileDialog - - Hard sync oscillator 3 + + %1 files - - Reverse sync oscillator 3 + + All audio files - - - - - Attack + + Other files + + + lmms::gui::FlangerControlsDialog - - - Rate + + DELAY - - - Phase + + Delay time: - - - Pre-delay + + RATE - - - Hold + + Period: - - - Decay + + AMNT - - - Sustain + + Amount: - - - Release + + PHASE - - - Slope + + Phase: - - Mix osc 2 with osc 3 + + FDBK - - Modulate amplitude of osc 3 by osc 2 + + Feedback amount: - - Modulate frequency of osc 3 by osc 2 + + NOISE - - Modulate phase of osc 3 by osc 2 + + White noise amount: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Modulation amount + + Invert - MultitapEchoControlDialog + lmms::gui::FloatModelEditorBase - - Length + + Set linear - - Step length: + + Set logarithmic - - Dry + + + Set value - - Dry gain: + + Please enter a new value between -96.0 dBFS and 6.0 dBFS: - - Stages + + Please enter a new value between %1 and %2: + + + lmms::gui::FreeBoyInstrumentView - - Low-pass stages: + + Sweep time: - - Swap inputs + + Sweep time - - Swap left and right input channels for reflections + + Sweep rate shift amount: - - - NesInstrument - - Channel 1 coarse detune + + Sweep rate shift amount - - Channel 1 volume + + + Wave pattern duty cycle: - - Channel 1 envelope length + + + Wave pattern duty cycle - - Channel 1 duty cycle + + Square channel 1 volume: - - Channel 1 sweep amount + + Square channel 1 volume - - Channel 1 sweep rate + + + + Length of each step in sweep: - - Channel 2 Coarse detune + + + + Length of each step in sweep - - Channel 2 Volume + + Square channel 2 volume: - - Channel 2 envelope length + + Square channel 2 volume - - Channel 2 duty cycle + + Wave pattern channel volume: - - Channel 2 sweep amount + + Wave pattern channel volume - - Channel 2 sweep rate + + Noise channel volume: - - Channel 3 coarse detune + + Noise channel volume - - Channel 3 volume + + SO1 volume (Right): - - Channel 4 volume + + SO1 volume (Right) - - Channel 4 envelope length + + SO2 volume (Left): - - Channel 4 noise frequency + + SO2 volume (Left) - - Channel 4 noise frequency sweep + + Treble: - - Master volume + + Treble - - Vibrato + + Bass: - - - NesInstrumentView - - - - - - Volume - Bolumena - - - - - Coarse detune + + Bass - - - - Envelope length + + Sweep direction - - Enable channel 1 + + + + + + Volume sweep direction - - Enable envelope 1 + + Shift register width - - Enable envelope 1 loop + + Channel 1 to SO1 (Right) - - Enable sweep 1 + + Channel 2 to SO1 (Right) - - - Sweep amount + + Channel 3 to SO1 (Right) - - - Sweep rate + + Channel 4 to SO1 (Right) - - - 12.5% Duty cycle + + Channel 1 to SO2 (Left) - - - 25% Duty cycle + + Channel 2 to SO2 (Left) - - - 50% Duty cycle + + Channel 3 to SO2 (Left) - - - 75% Duty cycle + + Channel 4 to SO2 (Left) - - Enable channel 2 + + Wave pattern graph + + + lmms::gui::GigInstrumentView - - Enable envelope 2 + + + Open GIG file - - Enable envelope 2 loop + + Choose patch - - Enable sweep 2 + + Gain: - - Enable channel 3 + + GIG Files (*.gig) + + + lmms::gui::GranularPitchShifterControlDialog - - Noise Frequency + + Grain Size: - - Frequency sweep + + Spray: - - Enable channel 4 + + Jitter: - - Enable envelope 4 + + Twitch: - - Enable envelope 4 loop + + Spray Stereo Spread: - - Quantize noise frequency when using note frequency + + Grain Shape: - - Use note frequency for noise + + Fade Length: - - Noise mode + + Feedback: - - Master volume + + Minimum Allowed Latency: - - Vibrato + + Density: - - - OpulenzInstrument - - Patch + + Glide: - - Op 1 attack + + + Pitch - - Op 1 decay + + + Pitch Stereo Spread - - Op 1 sustain + + Open help window - - Op 1 release + + + Prefilter + + + lmms::gui::GuiApplication - - Op 1 level + + Working directory - - Op 1 level scaling + + The LMMS working directory %1 does not exist. Create it now? You can change the directory later via Edit -> Settings. - - Op 1 frequency multiplier + + Preparing UI - - Op 1 feedback + + Preparing song editor - - Op 1 key scaling rate + + Preparing mixer - - Op 1 percussive envelope + + Preparing controller rack - - Op 1 tremolo + + Preparing project notes - - Op 1 vibrato + + Preparing microtuner - - Op 1 waveform + + Preparing pattern editor - - Op 2 attack + + Preparing piano roll - - Op 2 decay + + Preparing automation editor + + + lmms::gui::InstrumentFunctionArpeggioView - - Op 2 sustain + + ARPEGGIO - - Op 2 release + + RANGE - - Op 2 level + + Arpeggio range: - - Op 2 level scaling + + octave(s) - - Op 2 frequency multiplier + + REP - - Op 2 key scaling rate + + Note repeats: - - Op 2 percussive envelope + + time(s) - - Op 2 tremolo + + CYCLE - - Op 2 vibrato + + Cycle notes: - - Op 2 waveform + + note(s) - - FM + + SKIP - - Vibrato depth + + Skip rate: - - Tremolo depth + + + + % - - - OpulenzInstrumentView - - - Attack + + MISS - - - Decay + + Miss rate: - - - Release + + TIME - - - Frequency multiplier + + Arpeggio time: - - - OscillatorObject - - Osc %1 waveform + + ms - - Osc %1 harmonic + + GATE - - - Osc %1 volume + + Arpeggio gate: - - - Osc %1 panning + + Chord: - - - Osc %1 fine detuning left + + Direction: - - Osc %1 coarse detuning + + Mode: + + + lmms::gui::InstrumentFunctionNoteStackingView - - Osc %1 fine detuning right + + STACKING - - Osc %1 phase-offset + + Chord: - - Osc %1 stereo phase-detuning + + RANGE - - Osc %1 wave shape + + Chord range: - - Modulation type %1 + + octave(s) - Oscilloscope + lmms::gui::InstrumentMidiIOView - - Oscilloscope + + ENABLE MIDI INPUT + + + + + + CHAN + This string must be be short, its width must be less than * width of LCD spin-box of two digits - - Click to enable + + + VELOC + This string must be be short, its width must be less than * width of LCD spin-box of three digits - - - PatchesDialog - - Qsynth: Channel Preset + + ENABLE MIDI OUTPUT - - Bank selector + + PROG + This string must be be short, its width must be less than the * width of LCD spin-box of three digits - - Bank + + NOTE + This string must be be short, its width must be less than * width of LCD spin-box of three digits - - Program selector + + MIDI devices to receive MIDI events from - - Patch + + MIDI devices to send MIDI events to - - Name - Izena + + VELOCITY MAPPING + - - OK - Ados + + MIDI VELOCITY + - - Cancel - Utzi + + MIDI notes at this velocity correspond to 100% note velocity. + - PatmanView + lmms::gui::InstrumentSoundShapingView - - Open patch + + TARGET - - Loop - Begizta + + FILTER + - - Loop mode - Begizta modua + + FREQ + - - Tune + + Cutoff frequency: - - Tune mode + + Hz - - No file selected - Ez da fitxategirik hautatu + + Q/RESO + - - Open patch file + + Q/Resonance: - - Patch-Files (*.pat) + + Envelopes, LFOs and filters are not supported by the current instrument. - MidiClipView - - - Open in piano-roll - - + lmms::gui::InstrumentTrackView - - Set as ghost in piano-roll + + Mixer channel - - Clear all notes - + + Volume + Bolumena - - Reset name - Berrezarri izena + + Volume: + Bolumena: - - Change name - Aldatu izena + + VOL + BOL - - Add steps - Gehitu urratsa + + Panning + - - Remove steps - Kendu urratsak + + Panning: + - - Clone Steps - Klonatu urratsak + + PAN + - - - PeakController - - Peak Controller - + + MIDI + MIDI - - Peak Controller Bug - + + Input + Sarrera - - Due to a bug in older version of LMMS, the peak controllers may not be connect properly. Please ensure that peak controllers are connected properly and re-save this file. Sorry for any inconvenience caused. - + + Output + Irteera - - - PeakControllerDialog - - PEAK + + Open/Close MIDI CC Rack - - LFO Controller - LFO kontrolagailua + + %1: %2 + %1: %2 - PeakControllerEffectControlDialog + lmms::gui::InstrumentTrackWindow - - BASE - + + Volume + Bolumena - - Base: - + + Volume: + Bolumena: - - AMNT + + VOL + BOL + + + + Panning - - Modulation amount: + + Panning: - - MULT + + PAN - - Amount multiplicator: + + Pitch - - ATCK + + Pitch: - - Attack: + + cents - - DCAY + + PITCH - - Release: + + Pitch range (semitones) - - TRSH + + RANGE - - Treshold: + + Mixer channel - - Mute output + + CHANNEL - - Absolute value + + Save current instrument track settings in a preset file - - - PeakControllerEffectControls - - Base value - Oinarri-balioa + + SAVE + GORDE - - Modulation amount + + Envelope, filter & LFO - - Attack + + Chord stacking & arpeggio - - Release - + + Effects + Efektuak - - Treshold - Atalasea + + MIDI + MIDI - - Mute output + + Tuning and transposition - - Absolute value - + + Save preset + Gorde aurrezarpena - - Amount multiplicator - + + XML preset file (*.xpf) + XML aurrezarpen-fitxategia (*.xpf) + + + + Plugin + Plugina - PianoRoll + lmms::gui::InstrumentTuningView - - Note Velocity + + GLOBAL TRANSPOSITION - - Note Panning + + Enables the use of global transposition - - Mark/unmark current semitone + + Microtuner is not available for MIDI-based instruments. - - Mark/unmark all corresponding octave semitones + + MICROTUNER - - Mark current scale + + Active scale: - - Mark current chord + + + Edit scales and keymaps - - Unmark all + + Active keymap: - - Select all notes on this key + + Import note ranges from keymap - - Note lock + + When enabled, the first, last and base notes of this instrument will be overwritten with values specified by the selected keymap. + + + lmms::gui::KickerInstrumentView - - Last note - + + Start frequency: + Hasierako maiztasuna: - - No key - + + End frequency: + Amaierako maiztasuna: - - No scale - + + Frequency slope: + Maiztasun-malda: - - No chord - + + Gain: + Irabazia: - - Nudge + + Envelope length: - - Snap + + Envelope slope: - - Velocity: %1% - + + Click: + Klika: - - Panning: %1% left - + + Noise: + Zarata: - - Panning: %1% right - + + Start distortion: + Hasierako distortsioa: - - Panning: center - + + End distortion: + Amaierako distortsioa: + + + lmms::gui::LOMMControlDialog - - Glue notes failed + + Depth: - - Please select notes to glue first. + + Compression amount for all bands - - Please open a clip by double-clicking on it! + + Time: - - - Please enter a new value between %1 and %2: - Sartu %1 eta %2 arteko balio berri bat: + + Attack/release scaling for all bands + - - - PianoRollWindow - - Play/pause current clip (Space) - Erreproduzitu/pausatu uneko eredua (espazioa) + + Input Volume: + - - Record notes from MIDI-device/channel-piano + + Input volume - - Record notes from MIDI-device/channel-piano while playing song or BB track + + Output Volume: - - Record notes from MIDI-device/channel-piano, one step at the time + + Output volume - - Stop playing of current clip (Space) - Gelditu uneko ereduaren erreprodukzioa (espazioa) + + Upward Depth: + - - Edit actions - Editatu ekintzak + + Upward compression amount for all bands + - - Draw mode (Shift+D) - Marrazte modua (Shift+D) + + Downward Depth: + - - Erase mode (Shift+E) - Ezabatze modua (Shift+E) + + Downward compression amount for all bands + - - Select mode (Shift+S) + + High/Mid Crossover - - Pitch Bend mode (Shift+T) + + Mid/Low Crossover - - Quantize + + High/mid band split - - Quantize positions + + Mid/low band split - - Quantize lengths + + Enable High Band - - File actions + + Enable Mid Band - - Import clip + + Enable Low Band - - - Export clip + + High Input Volume: - - Copy paste controls + + Input volume for high band - - Cut (%1+X) + + Mid Input Volume: - - Copy (%1+C) + + Input volume for mid band - - Paste (%1+V) + + Low Input Volume: - - Timeline controls - Denbora-lerroaren kontrolak + + Input volume for low band + - - Glue + + High Output Volume: - - Knife + + Output volume for high band - - Fill + + Mid Output Volume: - - Cut overlaps + + Output volume for mid band - - Min length as last + + Low Output Volume: - - Max length as last + + Output volume for low band - - Zoom and note controls + + Above Threshold High - - Horizontal zooming - Zoom horizontala + + Downward compression threshold for high band + - - Vertical zooming - Zoom bertikala + + Above Threshold Mid + - - Quantization - Kuantifikazioa + + Downward compression threshold for mid band + - - Note length + + Above Threshold Low - - Key + + Downward compression threshold for low band - - Scale + + Above Ratio High - - Chord + + Downward compression ratio for high band - - Snap mode + + Above Ratio Mid - - Clear ghost notes + + Downward compression ratio for mid band - - - Piano-Roll - %1 + + Above Ratio Low - - - Piano-Roll - no clip + + Downward compression ratio for low band - - - XML clip file (*.xpt *.xptz) + + Below Threshold High - - Export clip success + + Upward compression threshold for high band - - Clip saved to %1 + + Below Threshold Mid - - Import clip. + + Upward compression threshold for mid band - - You are about to import a clip, this will overwrite your current clip. Do you want to continue? + + Below Threshold Low - - Open clip + + Upward compression threshold for low band - - Import clip success + + Below Ratio High - - Imported clip %1! + + Upward compression ratio for high band - - - PianoView - - Base note + + Below Ratio Mid - - First note + + Upward compression ratio for mid band - - Last note + + Below Ratio Low - - - Plugin - - Plugin not found + + Upward compression ratio for low band - - The plugin "%1" wasn't found or could not be loaded! -Reason: "%2" + + Attack High: - - Error while loading plugin + + Attack time for high band - - Failed to load plugin "%1"! + + Attack Mid: - - - PluginBrowser - - Instrument Plugins + + Attack time for mid band - - Instrument browser + + Attack Low: - - Drag an instrument into either the Song-Editor, the Beat+Bassline Editor or into an existing instrument track. + + Attack time for low band - - no description + + Release High: - - A native amplifier plugin + + Release time for high band - - Simple sampler with various settings for using samples (e.g. drums) in an instrument-track + + Release Mid: - - Boost your bass the fast and simple way + + Release time for mid band - - Customizable wavetable synthesizer + + Release Low: - - An oversampling bitcrusher + + Release time for low band - - Carla Patchbay Instrument + + RMS Time: - - Carla Rack Instrument + + RMS size for sidechain signal (set to 0 for Peak mode) - - A dynamic range compressor. + + Knee: - - A 4-band Crossover Equalizer + + Knee size for all compressors - - A native delay plugin + + Range: - - A Dual filter plugin + + Maximum gain increase for all bands - - plugin for processing dynamics in a flexible way + + Balance: - - A native eq plugin + + Bias input volume towards one channel - - A native flanger plugin + + Scale output volume with Depth - - Emulation of GameBoy (TM) APU + + Scale output volume with Depth parameter - - Player for GIG files + + Stereo Link - - Filter for importing Hydrogen files into LMMS + + Apply same gain change to both channels - - Versatile drum synthesizer + + Auto Time: - - List installed LADSPA plugins + + Speed up attack and release times when transients occur - - plugin for using arbitrary LADSPA-effects inside LMMS. + + Mix: - - Incomplete monophonic imitation TB-303 + + Wet/Dry of all bands - - plugin for using arbitrary LV2-effects inside LMMS. + + Feedback - - plugin for using arbitrary LV2 instruments inside LMMS. + + Use output as sidechain signal instead of input - - Filter for exporting MIDI-files from LMMS + + Mid/Side - - Filter for importing MIDI-files into LMMS + + Compress mid/side channels instead of left/right - - Monstrous 3-oscillator synth with modulation matrix + + + Suppress upward compression for side band - - A multitap echo delay plugin + + + Lookahead - - A NES-like synthesizer + + Lookahead length - - 2-operator FM Synth + + Clear all parameters + + + lmms::gui::LadspaBrowserView - - Additive Synthesizer for organ-like sounds - + + + Available Effects + Erabilgarri dauden efektuak - - GUS-compatible patch instrument - + + + Unavailable Effects + Erabilgarri ez dauden efektuak - - Plugin for controlling knobs with sound peaks - + + + Instruments + Instrumentuak - - Reverb algorithm by Sean Costello - + + + Analysis Tools + Analisi-tresnak - - Player for SoundFont files - + + + Don't know + Ezezaguna - - LMMS port of sfxr - + + Type: + Mota: + + + lmms::gui::LadspaControlDialog - - Emulation of the MOS6581 and MOS8580 SID. -This chip was used in the Commodore 64 computer. - + + Link Channels + Estekatu kanalak - - A graphical spectrum analyzer. - + + Channel + Kanala + + + lmms::gui::LadspaControlView - - Plugin for enhancing stereo separation of a stereo input file - + + Link channels + Estekatu kanalak - - Plugin for freely manipulating stereo output - + + Value: + Balioa: + + + lmms::gui::LadspaDescription - - Tuneful things to bang on - + + Plugins + Pluginak - - Three powerful oscillators you can modulate in several ways - + + Description + Deskribapena - - A stereo field visualizer. + + Name: - - VST-host for using VST(i)-plugins within LMMS + + Maker: - - Vibrating string modeler + + Copyright: - - plugin for using arbitrary VST effects inside LMMS. + + Requires Real Time: - - 4-oscillator modulatable wavetable synth + + + + Yes - - plugin for waveshaping + + + + No - - Mathematical expression parser + + Real Time Capable: - - Embedded ZynAddSubFX + + In Place Broken: - - - PluginDatabaseW - - Carla - Add New + + Channels In: - - Format + + Channels Out: + + + lmms::gui::LadspaMatrixControlDialog - - Internal + + Link Channels - - LADSPA + + Link - - DSSI + + Channel %1 - - LV2 + + Link channels + + + lmms::gui::LadspaPortDialog - - VST2 - + + Ports + Atakak - - VST3 - + + Name + Izena - - AU - + + Rate + Tasa - - Sound Kits - + + Direction + Norabidea - + Type Mota - - Effects - Efektuak + + Min < Default < Max + Min > Lehenetsia > Max - - Instruments - + + Logarithmic + Logaritmikoa - - MIDI Plugins + + SR Dependent - - Other/Misc - + + Audio + Audioa - - Architecture - + + Control + Kontrola - - Native - + + Input + Sarrera - - Bridged - + + Output + Irteera - - Bridged (Wine) + + Toggled - - Requirements + + Integer - - With Custom GUI + + Float - - With CV Ports - + + + Yes + Bai + + + lmms::gui::Lb302SynthView - - Real-time safe only + + Cutoff Freq: - - Stereo only - + + Resonance: + Erresonantzia: - - With Inline Display + + Env Mod: - - Favorites only + + Decay: - - (Number of Plugins go here) + + 303-es-que, 24dB/octave, 3 pole filter - - &Add Plugin + + Slide Decay: - - Cancel - Utzi + + DIST: + - - Refresh + + Saw wave - - Reset filters + + Click here for a saw-wave. - - - - - - - - - - - - - - - - - TextLabel + + Triangle wave - - Format: + + Click here for a triangle-wave. - - Architecture: + + Square wave - - Type: - Mota: + + Click here for a square-wave. + - - MIDI Ins: + + Rounded square wave - - Audio Ins: + + Click here for a square-wave with a rounded end. - - CV Outs: + + Moog wave - - MIDI Outs: + + Click here for a moog-like wave. - - Parameter Ins: + + Sine wave - - Parameter Outs: + + Click for a sine-wave. - - Audio Outs: + + + White noise wave - - CV Ins: + + Click here for an exponential wave. - - UniqueID: + + Click here for white-noise. - - Has Inline Display: + + Bandlimited saw wave - - Has Custom GUI: + + Click here for bandlimited saw wave. - - Is Synth: + + Bandlimited square wave - - Is Bridged: + + Click here for bandlimited square wave. - - Information + + Bandlimited triangle wave - - Name - Izena + + Click here for bandlimited triangle wave. + - - Label/URI + + Bandlimited moog saw wave - - Maker + + Click here for bandlimited moog saw wave. + + + lmms::gui::LcdFloatSpinBox - - Binary/Filename - + + Set value + Ezarri balioa - - Focus Text Search + + Please enter a new value between %1 and %2: + + + lmms::gui::LcdSpinBox + + + Set value + Ezarri balioa + - - Ctrl+F + + Please enter a new value between %1 and %2: - PluginEdit + lmms::gui::LeftRightNav - - Plugin Editor - + + + + Previous + Aurrekoa - - Edit - + + + + Next + Hurrengoa - - Control - + + Previous (%1) + Aurrekoa (%1) - - MIDI Control Channel: - + + Next (%1) + Hurrengoa (%1) + + + lmms::gui::LfoControllerDialog - - N + + LFO - - Output dry/wet (100%) - + + BASE + OINARRIA - - Output volume (100%) - + + Base: + Oinarria: - - Balance Left (0%) + + FREQ + MAIZT + + + + LFO frequency: + LFO maiztasuna: + + + + AMNT - - - Balance Right (0%) + + Modulation amount: - - Use Balance + + PHS - - Use Panning + + Phase offset: - - Settings - Ezarpenak + + degrees + gradu - - Use Chunks + + Sine wave - - Audio: + + Triangle wave - - Fixed-Size Buffer + + Saw wave - - Force Stereo (needs reload) + + Square wave - - MIDI: + + Moog saw wave - - Map Program Changes + + Exponential wave - - Send Bank/Program Changes - + + White noise + Zarata zuria - - Send Control Changes + + User-defined shape. +Double click to pick a file. - - Send Channel Pressure + + Multiply modulation frequency by 1 - - Send Note Aftertouch + + Multiply modulation frequency by 100 - - Send Pitchbend + + Divide modulation frequency by 100 + + + lmms::gui::LfoGraph - - Send All Sound/Notes Off + + %1 Hz + + + lmms::gui::MainWindow - - -Plugin Name - - + + Configuration file + Konfigurazio-fitxategia - - Program: + + Error while parsing configuration file at line %1:%2: %3 - - MIDI Program: - + + Could not open file + Ezin da fitxategia ireki - - Save State + + Could not open file %1 for writing. +Please make sure you have write permission to the file and the directory containing the file and try again! - - Load State + + Project recovery - - Information + + There is a recovery file present. It looks like the last session did not end properly or another instance of LMMS is already running. Do you want to recover the project of this session? - - Label/URI: + + + Recover - - Name: + + Recover the file. Please don't run multiple instances of LMMS when you do this. - - Type: - Mota: + + + Discard + Baztertu - - Maker: + + Launch a default session and delete the restored files. This is not reversible. - - Copyright: - + + Version %1 + %1 bertsioa - - Unique ID: + + Preparing plugin browser - - - PluginFactory - - Plugin not found. + + Preparing file browsers - - LMMS plugin %1 does not have a plugin descriptor named %2! - + + My Projects + Nire proiektuak - - - PluginParameter - - Form - + + My Samples + Nire laginak - - Parameter Name - + + My Presets + Nire aurrezarpenak - - ... - + + My Home + Nire karpeta nagusia - - - PluginRefreshW - - Carla - Refresh + + Root Directory - - Search for new... - + + Volumes + Bolumenak - - LADSPA - + + My Computer + Nire ordenagailua - - DSSI + + Loading background picture - - LV2 - + + &File + &Fitxategia - - VST2 - + + &New + &Berria - - VST3 - + + &Open... + &Ireki... - - AU - + + &Save + &Gorde - - - SF2/3 - + + + Save &As... + Gorde &honela... - - SFZ - + + Save as New &Version + Gorde &bertsio berri gisa - - Native - + + Save as default template + Gorde txantiloi lehenetsi gisa - - POSIX 32bit - + + Import... + Importatu... - - POSIX 64bit - + + E&xport... + E&sportatu... - - Windows 32bit - + + E&xport Tracks... + Esportatu &pistak... - - Windows 64bit - + + Export &MIDI... + Esportatu &MIDIa... - - Available tools: - + + &Quit + I&rten - - python3-rdflib (LADSPA-RDF support) - + + &Edit + &Editatu - - carla-discovery-win64 - + + Undo + Desegin - - carla-discovery-native - + + Redo + Berregin - - carla-discovery-posix32 + + Scales and keymaps - - carla-discovery-posix64 - + + Settings + Ezarpenak - - carla-discovery-win32 - + + &View + &Ikusi - - Options: - + + &Tools + &Tresnak - - Carla will run small processing checks when scanning the plugins (to make sure they won't crash). -You can disable these checks to get a faster scanning time (at your own risk). - + + &Help + &Laguntza - - Run processing checks while scanning - + + Online Help + Lineako laguntza - - Press 'Scan' to begin the search - + + Help + Laguntza - - Scan - + + About + Honi buruz - - >> Skip - + + Create new project + Sortu proiektu berria - - Close - Itxi + + Create new project from template + Sortu proiektu berria txantiloitik - - - PluginWidget - - - - - - Frame - + + Open existing project + Ireki lehendik dagoen proiektua - - Enable - Gaitu + + Recently opened projects + Azken aldian irekitako proiektuak - - On/Off - + + Save current project + Gorde uneko proiektua - - - - - PluginName - + + Export current project + Esportatu uneko proiektua - - MIDI - MIDI + + Metronome + Metronomoa - - AUDIO IN - + + + Song Editor + Abesti-editorea - - AUDIO OUT - + + + Pattern Editor + Eredu-editorea - - GUI + + + Piano Roll - - Edit - + + + Automation Editor + Automatizazio-editorea - - Remove + + + Mixer - - Plugin Name + + Show/hide controller rack - - Preset: + + Show/hide project notes - - - ProjectNotes - - Project Notes + + Untitled - - Enter project notes here + + Recover session. Please save your work! - - Edit Actions - Edizio-ekintzak + + LMMS %1 + LMMS %1 - - &Undo - &Desegin + + Recovered project not saved + - - %1+Z - %1+Z + + This project was recovered from the previous session. It is currently unsaved and will be lost if you don't save it. Do you want to save it now? + - - &Redo - Be&rregin + + Project not saved + - - %1+Y - %1+Y + + The current project was modified since last saving. Do you want to save it now? + - - &Copy - &Kopiatu + + Open Project + Ireki proiektua - - %1+C - %1+C + + LMMS (*.mmp *.mmpz) + LMMS (*.mmp *.mmpz) - - Cu&t - Mo&ztu + + Save Project + Gorde proiektua - - %1+X - %1+X + + LMMS Project + LMMS proiektua - - &Paste - &Itsatsi + + LMMS Project Template + LMMS proiektu-txantiloia - - %1+V - %1+V + + Save project template + - - Format Actions - Formatu-ekintzak + + Overwrite default template? + - - &Bold + + This will overwrite your current default template. - - %1+B + + Help not available - - &Italic + + Currently there's no help available in LMMS. +Please visit http://lmms.sf.net/wiki for documentation on LMMS. - - %1+I + + Controller Rack - - &Underline + + Project Notes - - %1+U + + Fullscreen - - &Left + + Volume as dBFS - - %1+L + + Smooth scroll - - C&enter + + Enable note labels in piano roll - - %1+E + + MIDI File (*.mid) - - &Right + + + untitled - - %1+R + + + Select file for project-export... - - &Justify + + Select directory for writing exported tracks... - - %1+J + + Save project - - &Color... - &Kolorea... + + Project saved + - - - ProjectRenderer - - WAV (*.wav) - WAV (*.wav) + + The project %1 is now saved. + - - FLAC (*.flac) - FLAC (*.flac) + + Project NOT saved. + - - OGG (*.ogg) - OGG (*.ogg) + + The project %1 was not saved! + - - MP3 (*.mp3) - MP3 (*.mp3) + + Import file + - - - QObject - - Reload Plugin + + MIDI sequences - - Show GUI - Erakutsi erabiltzaile-interfazea + + Hydrogen projects + - - Help - Laguntza + + All file types + - QWidget - - - - - - Name: - Izena: - + lmms::gui::MalletsInstrumentView - - URI: + + Instrument - - - - Maker: - Egilea: - - - - - - Copyright: - Copyright: + + Spread + - - - Requires Real Time: + + Spread: - - - - - - - Yes - Bai + + Random + - - - - - - - No - Ez + + Random: + - - - Real Time Capable: + + Missing files - - - In Place Broken: + + Your Stk-installation seems to be incomplete. Please make sure the full Stk-package is installed! - - - Channels In: + + Hardness - - - Channels Out: + + Hardness: - - File: %1 - Fitxategia: %1 + + Position + - - File: - Fitxategia: + + Position: + - - - RecentProjectsMenu - - &Recently Opened Projects - &Azken aldian irekitako proiektuak + + Vibrato gain + - - - RenameDialog - - Rename... - Aldatu izena... + + Vibrato gain: + - - - ReverbSCControlDialog - - Input - Sarrera + + Vibrato frequency + - - Input gain: - Sarrerako irabazia: + + Vibrato frequency: + - - Size - Tamaina + + Stick mix + - - Size: - Tamaina: + + Stick mix: + - - Color - Kolorea + + Modulator + - - Color: - Kolorea: + + Modulator: + - - Output - Irteera + + Crossfade + - - Output gain: - Irteerako irabazia: + + Crossfade: + - - - ReverbSCControls - - Input gain - Sarrerako irabazia + + LFO speed + - - Size - Tamaina + + LFO speed: + - - Color - Kolorea + + LFO depth + - - Output gain - Irteerako irabazia + + LFO depth: + - - - SaControls - - Pause + + ADSR - - Reference freeze + + ADSR: - - Waterfall + + Pressure - - Averaging + + Pressure: - - Stereo + + Speed - - Peak hold + + Speed: + + + lmms::gui::ManageVSTEffectView - - Logarithmic frequency + + - VST parameter control - - Logarithmic amplitude + + VST sync - - Frequency range + + + Automated - - Amplitude range + + Close + + + lmms::gui::ManageVestigeInstrumentView - - FFT block size + + + - VST plugin control - - FFT window type + + VST Sync - - Peak envelope resolution + + + Automated - - Spectrum display resolution + + Close + + + lmms::gui::MeterDialog - - Peak decay multiplier + + + Meter Numerator - - Averaging weight + + Meter numerator - - Waterfall history size + + + Meter Denominator - - Waterfall gamma correction + + Meter denominator - - FFT window overlap + + TIME SIG + + + lmms::gui::MicrotunerConfig - - FFT zero padding + + Selected scale slot - - - Full (auto) + + Selected keymap slot - - - - Audible + + + First key - - Bass + + + Last key - - Mids + + + Middle key - - High + + + Base key - - Extended + + + + Base note frequency - - Loud + + Microtuner Configuration - - Silent + + Scale slot to edit: - - (High time res.) + + Scale description. Cannot start with "!" and cannot contain a newline character. - - (High freq. res.) + + + Load - - Rectangular (Off) + + + Save - - - Blackman-Harris (Default) + + Load scale definition from a file. - - Hamming + + Save scale definition to a file. - - Hanning + + Enter intervals on separate lines. Numbers containing a decimal point are treated as cents. +Other inputs are treated as integer ratios and must be in the form of 'a/b' or 'a'. +Unity (0.0 cents or ratio 1/1) is always present as a hidden first value; do not enter it manually. - - - SaControlsDialog - - Pause + + Apply scale changes - - Pause data acquisition + + Verify and apply changes made to the selected scale. To use the scale, select it in the settings of a supported instrument. - - Reference freeze + + Keymap slot to edit: - - Freeze current input as a reference / disable falloff in peak-hold mode. + + Keymap description. Cannot start with "!" and cannot contain a newline character. - - Waterfall + + Load key mapping definition from a file. - - Display real-time spectrogram + + Save key mapping definition to a file. - - Averaging + + Enter key mappings on separate lines. Each line assigns a scale degree to a MIDI key, +starting with the middle key and continuing in sequence. +The pattern repeats for keys outside of the explicit keymap range. +Multiple keys can be mapped to the same scale degree. +Enter 'x' if you wish to leave the key disabled / not mapped. - - Enable exponential moving average + + FIRST - - Stereo + + First MIDI key that will be mapped - - Display stereo channels separately + + LAST - - Peak hold + + Last MIDI key that will be mapped - - Display envelope of peak values + + MIDDLE - - Logarithmic frequency + + First line in the keymap refers to this MIDI key - - Switch between logarithmic and linear frequency scale + + BASE N. - - - Frequency range + + Base note frequency will be assigned to this MIDI key - - Logarithmic amplitude + + BASE NOTE FREQ - - Switch between logarithmic and linear amplitude scale + + Apply keymap changes - - - Amplitude range + + Verify and apply changes made to the selected key mapping. To use the mapping, select it in the settings of a supported instrument. - - Envelope res. + + Scale parsing error - - Increase envelope resolution for better details, decrease for better GUI performance. + + Scale name cannot start with an exclamation mark - - - Draw at most + + Scale name cannot contain a new-line character - - envelope points per pixel + + Interval defined in cents cannot be converted to a number - - Spectrum res. + + Numerator of an interval defined as a ratio cannot be converted to a number - - Increase spectrum resolution for better details, decrease for better GUI performance. + + Denominator of an interval defined as a ratio cannot be converted to a number - - spectrum points per pixel + + Interval defined as a ratio cannot be negative - - Falloff factor + + Keymap parsing error - - Decrease to make peaks fall faster. + + Keymap name cannot start with an exclamation mark - - Multiply buffered value by + + Keymap name cannot contain a new-line character - - Averaging weight + + Scale degree cannot be converted to a whole number - - Decrease to make averaging slower and smoother. + + Scale degree cannot be negative - - New sample contributes + + Invalid keymap - - Waterfall height + + Base key is not mapped to any scale degree. No sound will be produced as there is no way to assign reference frequency to any note. - - Increase to get slower scrolling, decrease to see fast transitions better. Warning: medium CPU usage. + + Open scale - - Keep + + + Scala scale definition (*.scl) - - lines + + Scale load failure - - Waterfall gamma + + + Unable to open selected file. - - Decrease to see very weak signals, increase to get better contrast. + + Open keymap - - Gamma value: + + + Scala keymap definition (*.kbm) - - Window overlap + + Keymap load failure - - Increase to prevent missing fast transitions arriving near FFT window edges. Warning: high CPU usage. + + Save scale - - Each sample processed + + Scale save failure - - times + + + Unable to open selected file for writing. - - Zero padding + + Save keymap - - Increase to get smoother-looking spectrum. Warning: high CPU usage. + + Keymap save failure + + + lmms::gui::MidiCCRackView - - Processing buffer is + + + MIDI CC Rack - %1 - - steps larger than input block + + MIDI CC Knobs: - - Advanced settings + + CC %1 + + + lmms::gui::MidiClipView - - Access advanced settings + + + Transpose - - - FFT block size + + Semitones to transpose by: - - - FFT window type + + Open in piano-roll - - - SampleBuffer - - Fail to open file - Ezin izan da fitxategia ireki + + Set as ghost in piano-roll + - - Audio files are limited to %1 MB in size and %2 minutes of playing time + + Set as ghost in automation editor - - Open audio file - Ireki audio-fitxategia + + Clear all notes + - - All Audio-Files (*.wav *.ogg *.ds *.flac *.spx *.voc *.aif *.aiff *.au *.raw) - Audio-fitxategi guztiak (*.wav *.ogg *.ds *.flac *.spx *.voc *.aif *.aiff *.au *.raw) + + Reset name + - - Wave-Files (*.wav) - Wave fitxategiak (*.wav) + + Change name + - - OGG-Files (*.ogg) - OGG fitxategiak (*.ogg) + + Add steps + - - DrumSynth-Files (*.ds) - DrumSynth fitxategia (*.ds) + + Remove steps + - - FLAC-Files (*.flac) - FLAC fitxategiak (*.flac) + + Clone Steps + + + + lmms::gui::MidiSetupWidget - - SPEEX-Files (*.spx) - SPEEX fitxategiak (*.spx) + + Device + + + + lmms::gui::MixerChannelLcdSpinBox - - VOC-Files (*.voc) - VOC fitxategiak (*.voc) + + Assign to: + - - AIFF-Files (*.aif *.aiff) - AIFF fitxategiak (*.aif *.aiff) + + New Mixer Channel + - - AU-Files (*.au) - AU fitxategiak (*.au) + + Please enter a new value between %1 and %2: + - - RAW-Files (*.raw) - RAW fitxategiak (*.raw) + + Set value + - SampleClipView + lmms::gui::MixerChannelView - - Double-click to open sample + + Channel send amount - - Delete (middle mousebutton) - Ezabatu (saguaren erdiko botoia) + + Mute + - - Delete selection (middle mousebutton) + + Mute this channel - - Cut - Moztu + + Solo + - - Cut selection + + Solo this channel - - Copy - Kopiatu + + Fader %1 + - - Copy selection + + Move &left - - Paste - Itsatsi + + Move &right + - - Mute/unmute (<%1> + middle click) + + Rename &channel - - Mute/unmute selection (<%1> + middle click) + + R&emove channel - - Reverse sample - Alderantzikatu lagina + + Remove &unused channels + + + + + Color + - - Set clip color + + Change - - Use track color + + Reset - - - SampleTrack - - Volume - Bolumena + + Pick random + - - Panning - Panoramika + + This Mixer Channel is being used. +Are you sure you want to remove this channel? + +Warning: This operation can not be undone. + - - Mixer channel + + Confirm removal - - - Sample track + + Don't ask again - SampleTrackView + lmms::gui::MixerView - - Track volume + + Mixer + + + lmms::gui::MonstroView - - Channel volume: + + Operators view - - VOL - VOL - - - - Panning - Panoramika + + Matrix view + - - Panning: - Panoramika: + + + + Volume + - - PAN - PAN + + + + Panning + - - Channel %1: %2 - FX %1: %2 + + + + Coarse detune + - - - SampleTrackWindow - - GENERAL SETTINGS + + + + semitones - - Sample volume + + + Fine tune left - - Volume: - Bolumena: + + + + + cents + - - VOL - BOL + + + Fine tune right + - - Panning - Panoramika + + + + Stereo phase offset + - - Panning: - Panoramika: + + + + + + deg + - - PAN - PAN + + Pulse width + - - Mixer channel + + Send sync on pulse rise - - CHANNEL + + Send sync on pulse fall - - - SaveOptionsWidget - - Discard MIDI connections + + Hard sync oscillator 2 - - Save As Project Bundle (with resources) + + Reverse sync oscillator 2 - - - SetupDialog - - Reset to default value + + Sub-osc mix - - Use built-in NaN handler + + Hard sync oscillator 3 - - Settings - Ezarpenak + + Reverse sync oscillator 3 + - - - General - Orokorra + + + + + Attack + - - Graphical user interface (GUI) - Erabiltzaile-interfaze grafikoa (GUI) + + + Rate + - - Display volume as dBFS + + + Phase - - Enable tooltips + + + Pre-delay - - Enable master oscilloscope by default + + + Hold - - Enable all note labels in piano roll + + + Decay - - Enable compact track buttons + + + Sustain - - Enable one instrument-track-window mode + + + Release - - Show sidebar on the right-hand side + + + Slope - - Let sample previews continue when mouse is released + + Mix osc 2 with osc 3 - - Mute automation tracks during solo + + Modulate amplitude of osc 3 by osc 2 - - Show warning when deleting tracks + + Modulate frequency of osc 3 by osc 2 - - Projects - Proiektuak + + Modulate phase of osc 3 by osc 2 + - - Compress project files by default + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Modulation amount + + + lmms::gui::MultitapEchoControlDialog - - Create a backup file when saving a project + + Length - - Reopen last project on startup + + Step length: - - Language - Hizkuntza + + Dry + - - - Performance - Errendimendua + + Dry gain: + - - Autosave - Gordetze automatikoa + + Stages + - - Enable autosave - Gaitu gordetze automatikoa + + Low-pass stages: + - - Allow autosave while playing - Onartu gordetze automatikoa erreproduzitzean + + Swap inputs + - - User interface (UI) effects vs. performance + + Swap left and right input channels for reflections + + + lmms::gui::NesInstrumentView - - Smooth scroll in song editor + + + + + Volume - - Display playback cursor in AudioFileProcessor + + + + Coarse detune - - Plugins - Pluginak + + + + Envelope length + - - VST plugins embedding: + + Enable channel 1 - - No embedding + + Enable envelope 1 - - Embed using Qt API + + Enable envelope 1 loop - - Embed using native Win32 API + + Enable sweep 1 - - Embed using XEmbed protocol + + + Sweep amount - - - Keep plugin windows on top when not embedded + + + + Sweep rate - - Sync VST plugins to host playback + + + 12.5% Duty cycle - - Keep effects running even without input + + + 25% Duty cycle - - - Audio - Audioa + + + 50% Duty cycle + - - Audio interface - Audio-interfazea + + + 75% Duty cycle + - - HQ mode for output audio device + + Enable channel 2 - - Buffer size - Buffer-tamaina + + Enable envelope 2 + - - - MIDI - MIDI + + Enable envelope 2 loop + - - MIDI interface - MIDI interfazea + + Enable sweep 2 + - - Automatically assign MIDI controller to selected track + + Enable channel 3 - - LMMS working directory + + Noise Frequency - - VST plugins directory + + Frequency sweep - - LADSPA plugins directories + + Enable channel 4 - - SF2 directory - SF2 direktorioa + + Enable envelope 4 + - - Default SF2 + + Enable envelope 4 loop - - GIG directory - GIG direktorioa + + Quantize noise frequency when using note frequency + - - Theme directory + + Use note frequency for noise - - Background artwork + + Noise mode - - Some changes require restarting. - Zenbait aldaketak berrabiaraztea behar dute. + + Master volume + - - Autosave interval: %1 - Gordetze automatikoaren tartea: %1 + + Vibrato + + + + lmms::gui::OpulenzInstrumentView - - Choose the LMMS working directory - Aukeratu LMMSren laneko direktorioa + + + Attack + - - Choose your VST plugins directory - Aukeratu VST pluginen direktorioa + + + Decay + - - Choose your LADSPA plugins directory - Aukeratu LADSPA pluginen direktorioa + + + Release + - - Choose your default SF2 - Aukeratu SF2 lehenetsia + + + Frequency multiplier + + + + lmms::gui::OrganicInstrumentView - - Choose your theme directory - Aukeratu azalen direktorioa + + Distortion: + - - Choose your background picture - Aukeratu atzeko planoaren irudia + + Volume: + - - - Paths - Bideak + + Randomise + - - OK - Ados + + + Osc %1 waveform: + - - Cancel - Utzi + + Osc %1 volume: + - - Frames: %1 -Latency: %2 ms + + Osc %1 panning: - - Choose your GIG directory - Hautatu zure GIG direktorioa + + Osc %1 stereo detuning + - - Choose your SF2 directory - Hautatu zure SF2 direktorioa + + cents + - - minutes - minutu + + Osc %1 harmonic: + + + + lmms::gui::Oscilloscope - - minute - minutu + + Oscilloscope + - - Disabled - Desgaituta + + Click to enable + - SidInstrument + lmms::gui::PatmanView - - Cutoff frequency + + Open patch - - Resonance + + Loop - - Filter type + + Loop mode - - Voice 3 off + + Tune - - Volume - Bolumena - - - - Chip model + + Tune mode - - - SidInstrumentView - - Volume: - Bolumena: + + No file selected + - - Resonance: + + Open patch file - - - Cutoff frequency: + + Patch-Files (*.pat) + + + lmms::gui::PatternClipView - - High-pass filter + + Open in Pattern Editor - - Band-pass filter + + Reset name - - Low-pass filter + + Change name + + + lmms::gui::PatternEditorWindow - - Voice 3 off + + Pattern Editor - - MOS6581 SID + + Play/pause current pattern (Space) - - MOS8580 SID + + Stop playback of current pattern (Space) - - - Attack: + + Pattern selector - - - Decay: + + Track and step actions - - Sustain: + + New pattern - - - Release: + + Clone pattern - - Pulse Width: + + Add sample-track - - Coarse: + + Add automation-track - - Pulse wave + + Remove steps - - Triangle wave + + Add steps - - Saw wave + + Clone Steps + + + lmms::gui::PeakControllerDialog - - Noise + + PEAK - - Sync + + LFO Controller + + + lmms::gui::PeakControllerEffectControlDialog - - Ring modulation + + BASE - - Filtered + + Base: - - Test + + AMNT - - Pulse width: + + Modulation amount: - - - SideBarWidget - - Close - Itxi + + MULT + - - - Song - - Tempo + + Amount multiplicator: - - Master volume + + ATCK - - Master pitch + + Attack: - - Aborting project load + + DCAY - - Project file contains local paths to plugins, which could be used to run malicious code. + + Release: - - Can't load project: Project file contains local paths to plugins. + + TRSH - - LMMS Error report - LMMS errore-txostena + + Treshold: + - - (repeated %1 times) + + Mute output - - The following errors occurred while loading: + + Absolute value - SongEditor + lmms::gui::PeakIndicator - - Could not open file - Ezin da fitxategia irek + + -inf + + + + lmms::gui::PianoRoll - - Could not open file %1. You probably have no permissions to read this file. - Please make sure to have at least read permissions to the file and try again. + + Note Velocity - - Operation denied + + Note Panning - - A bundle folder with that name already eists on the selected path. Can't overwrite a project bundle. Please select a different name. + + Mark/unmark current semitone - - - - Error - Errorea + + Mark/unmark all corresponding octave semitones + - - Couldn't create bundle folder. + + Mark current scale - - Couldn't create resources folder. + + Mark current chord - - Failed to copy resources. + + Unmark all - - Could not write file - Ezin da fitxategia idatzi + + Select all notes on this key + - - Could not open %1 for writing. You probably are not permitted towrite to this file. Please make sure you have write-access to the file and try again. + + Note lock - - This %1 was created with LMMS %2 + + Last note - - Error in file + + No key - - The file %1 seems to contain errors and therefore can't be loaded. + + No scale - - Version difference + + No chord - - template + + Nudge - - project + + Snap - - Tempo + + Velocity: %1% - - TEMPO + + Panning: %1% left - - Tempo in BPM + + Panning: %1% right - - High quality mode + + Panning: center - - - - Master volume + + Glue notes failed - - - - Master pitch + + Please select notes to glue first. - - Value: %1% + + Please open a clip by double-clicking on it! - - Value: %1 semitones + + + Please enter a new value between %1 and %2: - SongEditorWindow + lmms::gui::PianoRollWindow - - Song-Editor + + Play/pause current clip (Space) - - Play song (Space) + + Record notes from MIDI-device/channel-piano - - Record samples from Audio-device + + Record notes from MIDI-device/channel-piano while playing song or pattern track - - Record samples from Audio-device while playing song or BB track + + Record notes from MIDI-device/channel-piano, one step at the time - - Stop song (Space) + + Stop playing of current clip (Space) - - Track actions + + Edit actions - - Add beat/bassline - Gehitu taupada/baxu-lerroa - - - - Add sample-track - Gehitu lagin-pista + + Draw mode (Shift+D) + - - Add automation-track - Gehitu automatizazio-pista + + Erase mode (Shift+E) + - - Edit actions - Editatu ekintzak + + Select mode (Shift+S) + - - Draw mode + + Pitch Bend mode (Shift+T) - - Knife mode (split sample clips) + + Quantize - - Edit mode (select and move) + + Quantize positions - - Timeline controls - Denbora-lerroaren kontrolak + + Quantize lengths + - - Bar insert controls + + File actions - - Insert bar + + Import clip - - Remove bar + + + Export clip - - Zoom controls - Zoom-kontrolak + + Copy paste controls + - - Horizontal zooming - Zoom horizontala + + Cut (%1+X) + - - Snap controls + + Copy (%1+C) - - - Clip snapping size + + Paste (%1+V) - - Toggle proportional snap on/off + + Timeline controls - - Base snapping size + + Glue - - - StepRecorderWidget - - Hint + + Knife - - Move recording curser using <Left/Right> arrows + + Fill - - - SubWindow - - Close - Itxi + + Cut overlaps + - - Maximize - Maximizatu + + Min length as last + - - Restore - Leheneratu + + Max length as last + - - - TabWidget - - - Settings for %1 + + Zoom and note controls - - - TemplatesMenu - - New from template - Berria txantiloitik + + Horizontal zooming + - - - TempoSyncKnob - - - Tempo Sync + + Vertical zooming - - No Sync + + Quantization - - Eight beats + + Note length - - Whole note - Nota osoa + + Key + - - Half note - Nota erdia + + Scale + - - Quarter note - Nota laurdena + + Chord + - - 8th note - 8. nota + + Snap mode + - - 16th note - 16. nota + + Clear ghost notes + - - 32nd note - 32. nota + + + Piano-Roll - %1 + - - Custom... - Pertsonalizatua... + + + Piano-Roll - no clip + - - Custom - Pertsonalizatua + + + XML clip file (*.xpt *.xptz) + - - Synced to Eight Beats + + Export clip success - - Synced to Whole Note + + Clip saved to %1 - - Synced to Half Note + + Import clip. - - Synced to Quarter Note + + You are about to import a clip, this will overwrite your current clip. Do you want to continue? - - Synced to 8th Note + + Open clip - - Synced to 16th Note + + Import clip success - - Synced to 32nd Note + + Imported clip %1! - TimeDisplayWidget + lmms::gui::PianoView - - Time units + + Base note - - MIN + + First note - - SEC + + Last note + + + lmms::gui::PluginBrowser - - MSEC + + Instrument Plugins - - BAR + + Instrument browser - - BEAT + + Drag an instrument into either the Song Editor, the Pattern Editor or an existing instrument track. - - TICK + + Search - TimeLineWidget + lmms::gui::PluginDescWidget - - Auto scrolling + + Send to new instrument track + + + lmms::gui::ProjectNotes - - Loop points + + Project Notes - - After stopping go back to beginning + + Enter project notes here - - After stopping go back to position at which playing was started + + Edit Actions - - After stopping keep position + + &Undo - - Hint + + %1+Z - - Press <%1> to disable magnetic loop points. + + &Redo - - - Track - - Mute + + %1+Y - - Solo + + &Copy - - - TrackContainer - - Couldn't import file - Ezin da fitxategia inportatu + + %1+C + - - Couldn't find a filter for importing file %1. -You should convert this file into a format supported by LMMS using another software. + + Cu&t - - Couldn't open file - Ezin da fitxategia ireki + + %1+X + - - Couldn't open file %1 for reading. -Please make sure you have read-permission to the file and the directory containing the file and try again! + + &Paste - - Loading project... - Proiektua kargatzen... + + %1+V + - - - Cancel - Utzi + + Format Actions + - - - Please wait... - Itxaron... + + &Bold + - - Loading cancelled + + %1+B - - Project loading was cancelled. + + &Italic - - Loading Track %1 (%2/Total %3) + + %1+I - - Importing MIDI-file... - MIDI fitxategia inportatzen... + + &Underline + - - - Clip - - Mute + + %1+U - - - ClipView - - Current position - Uneko posizioa + + &Left + - - Current length - Uneko luzera + + %1+L + - - - %1:%2 (%3:%4 to %5:%6) + + C&enter - - Press <%1> and drag to make a copy. + + %1+E - - Press <%1> for free resizing. + + &Right - - Hint + + %1+R - - Delete (middle mousebutton) - Ezabatu (saguaren erdiko botoia) + + &Justify + - - Delete selection (middle mousebutton) + + %1+J - - Cut - Moztu + + &Color... + + + + lmms::gui::RecentProjectsMenu - - Cut selection + + &Recently Opened Projects + + + lmms::gui::RenameDialog - - Merge Selection + + Rename... + + + lmms::gui::ReverbSCControlDialog - - Copy - Kopiatu + + Input + - - Copy selection + + Input gain: - - Paste - Itsatsi + + Size + - - Mute/unmute (<%1> + middle click) + + Size: - - Mute/unmute selection (<%1> + middle click) + + Color - - Set clip color + + Color: - - Use track color + + Output - - - TrackContentWidget - - Paste - Itsatsi + + Output gain: + - TrackOperationsWidget + lmms::gui::SaControlsDialog - - Press <%1> while clicking on move-grip to begin a new drag'n'drop action. + + Pause - - Actions - Ekintzak - - - - - Mute + + Pause data acquisition - - - Solo + + Reference freeze - - After removing a track, it can not be recovered. Are you sure you want to remove track "%1"? + + Freeze current input as a reference / disable falloff in peak-hold mode. - - Confirm removal + + Waterfall - - Don't ask again + + Display real-time spectrogram - - Clone this track - Klonatu pista hau - - - - Remove this track - Kendu pista hau + + Averaging + - - Clear this track - Garbitu pista hau + + Enable exponential moving average + - - Channel %1: %2 - FX %1: %2 + + Stereo + - - Assign to new mixer Channel + + Display stereo channels separately - - Turn all recording on - Aktibatu grabazio guztiak + + Peak hold + - - Turn all recording off - Desaktibatu grabazio guztiak + + Display envelope of peak values + - - Change color - Aldatu kolorea + + Logarithmic frequency + - - Reset color to default - Berrezarri kolorea lehenetsira + + Switch between logarithmic and linear frequency scale + - - Set random color + + + Frequency range - - Clear clip colors + + Logarithmic amplitude - - - TripleOscillatorView - - Modulate phase of oscillator 1 by oscillator 2 + + Switch between logarithmic and linear amplitude scale - - Modulate amplitude of oscillator 1 by oscillator 2 + + + Amplitude range - - Mix output of oscillators 1 & 2 + + + FFT block size - - Synchronize oscillator 1 with oscillator 2 + + + FFT window type - - Modulate frequency of oscillator 1 by oscillator 2 + + Envelope res. - - Modulate phase of oscillator 2 by oscillator 3 + + Increase envelope resolution for better details, decrease for better GUI performance. - - Modulate amplitude of oscillator 2 by oscillator 3 + + Maximum number of envelope points drawn per pixel: - - Mix output of oscillators 2 & 3 + + Spectrum res. - - Synchronize oscillator 2 with oscillator 3 + + Increase spectrum resolution for better details, decrease for better GUI performance. - - Modulate frequency of oscillator 2 by oscillator 3 + + Maximum number of spectrum points drawn per pixel: - - Osc %1 volume: + + Falloff factor - - Osc %1 panning: + + Decrease to make peaks fall faster. - - Osc %1 coarse detuning: + + Multiply buffered value by - - semitones + + Averaging weight - - Osc %1 fine detuning left: + + Decrease to make averaging slower and smoother. - - - cents + + New sample contributes - - Osc %1 fine detuning right: + + Waterfall height - - Osc %1 phase-offset: + + Increase to get slower scrolling, decrease to see fast transitions better. Warning: medium CPU usage. - - - degrees - gradu + + Number of lines to keep: + - - Osc %1 stereo phase-detuning: + + Waterfall gamma - - Sine wave + + Decrease to see very weak signals, increase to get better contrast. - - Triangle wave + + Gamma value: - - Saw wave + + Window overlap - - Square wave + + Increase to prevent missing fast transitions arriving near FFT window edges. Warning: high CPU usage. - - Moog-like saw wave + + Number of times each sample is processed: - - Exponential wave + + Zero padding - - White noise + + Increase to get smoother-looking spectrum. Warning: high CPU usage. - - User-defined wave + + Processing buffer is - - - VecControls - - Display persistence amount + + steps larger than input block - - Logarithmic scale + + Advanced settings - - High quality + + Access advanced settings - VecControlsDialog + lmms::gui::SampleClipView - - HQ + + Double-click to open sample - - Double the resolution and simulate continuous analog-like trace. + + Reverse sample - - Log. scale + + Set as ghost in automation editor + + + lmms::gui::SampleTrackView - - Display amplitude on logarithmic scale to better see small values. + + Mixer channel - - Persist. + + Track volume - - Trace persistence: higher amount means the trace will stay bright for longer time. + + Channel volume: - - Trace persistence + + VOL - - - VersionedSaveDialog - - Increment version number + + Panning - - Decrement version number + + Panning: - - Save Options + + PAN - - already exists. Do you want to replace it? + + %1: %2 - VestigeInstrumentView + lmms::gui::SampleTrackWindow - - - Open VST plugin + + Sample volume - - Control VST plugin from LMMS host + + Volume: - - Open VST plugin preset + + VOL - - Previous (-) + + Panning - - Save preset + + Panning: - - Next (+) + + PAN - - Show/hide GUI + + Mixer channel - - Turn off all notes + + CHANNEL + + + lmms::gui::SaveOptionsWidget - - DLL-files (*.dll) + + Discard MIDI connections - - EXE-files (*.exe) + + Save As Project Bundle (with resources) + + + lmms::gui::SetupDialog - - No VST plugin loaded + + Settings - - Preset + + + General - - by + + Graphical user interface (GUI) - - - VST plugin control + + Display volume as dBFS - - - VstEffectControlDialog - - Show/hide + + Enable tooltips - - Control VST plugin from LMMS host + + Enable master oscilloscope by default - - Open VST plugin preset + + Enable all note labels in piano roll + + + + + Enable compact track buttons - - Previous (-) + + Enable one instrument-track-window mode - - Next (+) + + Show sidebar on the right-hand side - - Save preset + + Let sample previews continue when mouse is released - - - Effect by: + + Mute automation tracks during solo - - &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> + + Show warning when deleting tracks - - - VstPlugin - - - The VST plugin %1 could not be loaded. + + Show warning when deleting a mixer channel that is in use - - Open Preset + + Dual-button - - - Vst Plugin Preset (*.fxp *.fxb) + + Grab closest - - : default + + Handles - - Save Preset + + Loop edit mode - - .fxp + + Projects - - .FXP + + Compress project files by default - - .FXB + + Create a backup file when saving a project - - .fxb + + Reopen last project on startup - - Loading plugin + + Language - - Please wait while loading VST plugin... + + + Performance - - - WatsynInstrument - - Volume A1 + + Autosave - - Volume A2 + + Enable autosave - - Volume B1 + + Allow autosave while playing - - Volume B2 + + User interface (UI) effects vs. performance - - Panning A1 + + Smooth scroll in song editor - - Panning A2 + + Display playback cursor in AudioFileProcessor - - Panning B1 + + Plugins - - Panning B2 + + VST plugins embedding: - - Freq. multiplier A1 + + No embedding - - Freq. multiplier A2 + + Embed using Qt API - - Freq. multiplier B1 + + Embed using native Win32 API - - Freq. multiplier B2 + + Embed using XEmbed protocol - - Left detune A1 + + Keep plugin windows on top when not embedded - - Left detune A2 + + Keep effects running even without input - - Left detune B1 + + + Audio - - Left detune B2 + + Audio interface - - Right detune A1 + + Buffer size - - Right detune A2 + + Reset to default value - - Right detune B1 + + + MIDI - - Right detune B2 + + MIDI interface - - A-B Mix + + Automatically assign MIDI controller to selected track - - A-B Mix envelope amount + + Behavior when recording - - A-B Mix envelope attack + + Auto-quantize notes in Piano Roll - - A-B Mix envelope hold + + If enabled, notes will be automatically quantized when recording them from a MIDI controller. If disabled, they are always recorded at the highest possible resolution. - - A-B Mix envelope decay + + + Paths - - A1-B2 Crosstalk + + LMMS working directory - - A2-A1 modulation + + VST plugins directory - - B2-B1 modulation + + LADSPA plugins directories - - Selected graph + + SF2 directory - - - WatsynView - - - - - Volume - Bolumena + + Default SF2 + - - - - - Panning - Panoramika + + GIG directory + - - - - - Freq. multiplier + + Theme directory - - - - - Left detune + + Background artwork - - - - - - - - - cents + + Some changes require restarting. - - - - - Right detune + + OK - - A-B Mix + + Cancel - - Mix envelope amount + + minutes - - Mix envelope attack + + minute - - Mix envelope hold + + Disabled - - Mix envelope decay + + Autosave interval: %1 - - Crosstalk + + The currently selected value is not a power of 2 (32, 64, 128, 256). Some plugins may not be available. - - Select oscillator A1 + + The currently selected value is less than or equal to 32. Some plugins may not be available. - - Select oscillator A2 + + Frames: %1 +Latency: %2 ms - - Select oscillator B1 + + Choose the LMMS working directory - - Select oscillator B2 + + Choose your VST plugins directory - - Mix output of A2 to A1 + + Choose your LADSPA plugins directory - - Modulate amplitude of A1 by output of A2 + + Choose your SF2 directory - - Ring modulate A1 and A2 + + Choose your default SF2 - - Modulate phase of A1 by output of A2 + + Choose your GIG directory - - Mix output of B2 to B1 + + Choose your theme directory - - Modulate amplitude of B1 by output of B2 + + Choose your background picture + + + lmms::gui::Sf2InstrumentView - - Ring modulate B1 and B2 + + + Open SoundFont file - - Modulate phase of B1 by output of B2 + + Choose patch - - - - - Draw your own waveform here by dragging your mouse on this graph. + + Gain: - - Load waveform + + Apply reverb (if supported) - - Load a waveform from a sample file + + Room size: - - Phase left + + Damping: - - Shift phase by -15 degrees + + Width: - - Phase right + + + Level: - - Shift phase by +15 degrees + + Apply chorus (if supported) - - - Normalize + + Voices: - - - Invert + + Speed: - - - Smooth + + Depth: - - - Sine wave + + SoundFont Files (*.sf2 *.sf3) + + + lmms::gui::SidInstrumentView - - - - Triangle wave + + Volume: - - Saw wave + + Resonance: - - - Square wave + + + Cutoff frequency: - - - Xpressive - - Selected graph + + High-pass filter - - A1 - A1 + + Band-pass filter + - - A2 - A2 + + Low-pass filter + - - A3 - A3 + + Voice 3 off + - - W1 smoothing + + MOS6581 SID - - W2 smoothing + + MOS8580 SID - - W3 smoothing + + + Attack: - - Panning 1 + + + Decay: - - Panning 2 + + Sustain: - - Rel trans + + + Release: - - - XpressiveView - - Draw your own waveform here by dragging your mouse on this graph. + + Pulse Width: - - Select oscillator W1 + + Coarse: - - Select oscillator W2 + + Pulse wave - - Select oscillator W3 + + Triangle wave - - Select output O1 + + Saw wave - - Select output O2 + + Noise - - Open help window + + Sync - - - Sine wave + + Ring modulation - - - Moog-saw wave + + Filtered - - - Exponential wave + + Test - - - Saw wave + + Pulse width: + + + lmms::gui::SideBarWidget - - - User-defined wave + + Close + + + lmms::gui::SlicerTView - - - Triangle wave + + Slice snap - - - Square wave + + Set slice snapping for detection - - - White noise + + Sync sample - - WaveInterpolate + + Enable BPM sync - - ExpressionValid + + Original sample BPM - - General purpose 1: + + Threshold used for slicing - - General purpose 2: + + Fade Out per note in milliseconds - - General purpose 3: + + Copy midi pattern to clipboard - - O1 panning: + + Open sample selector - - O2 panning: + + Reset slices - - Release transition: + + Threshold - - Smoothness + + Fade Out - - - ZynAddSubFxInstrument - - Portamento + + Reset - - Filter frequency + + Midi - - Filter resonance + + BPM - - Bandwidth + + Snap + + + lmms::gui::SlicerTWaveform - - FM gain + + Click to load sample + + + lmms::gui::SongEditor - - Resonance center frequency + + Could not open file - - Resonance bandwidth + + Could not open file %1. You probably have no permissions to read this file. + Please make sure to have at least read permissions to the file and try again. - - Forward MIDI control change events + + Operation denied - - - ZynAddSubFxView - - Portamento: + + A bundle folder with that name already eists on the selected path. Can't overwrite a project bundle. Please select a different name. - - PORT + + + + Error - - Filter frequency: + + Couldn't create bundle folder. - - FREQ + + Couldn't create resources folder. - - Filter resonance: + + Failed to copy resources. - - RES + + + Could not write file - - Bandwidth: + + Could not open %1 for writing. You probably are not permitted to write to this file. Please make sure you have write-access to the file and try again. - - BW + + An unknown error has occurred and the file could not be saved. - - FM gain: + + Error in file - - FM GAIN + + The file %1 seems to contain errors and therefore can't be loaded. - - Resonance center frequency: + + template - - RES CF + + project - - Resonance bandwidth: + + Version difference - - RES BW + + This %1 was created with LMMS %2 - - Forward MIDI control changes + + Zoom - - Show GUI - Erakutsi erabiltzaile-interfazea + + Tempo + - - - AudioFileProcessor - - Amplify + + TEMPO - - Start of sample + + Tempo in BPM - - End of sample + + + + Master volume - - Loopback point + + + + Global transposition - - Reverse sample - Alderantzikatu lagina + + 1/%1 Bar + - - Loop mode - Begizta modua + + %1 Bars + - - Stutter + + Value: %1% - - Interpolation mode - Interpolazio modua + + Value: %1 keys + + + + lmms::gui::SongEditorWindow - - None - Bat ere ez + + Song-Editor + - - Linear - Lineala + + Play song (Space) + - - Sinc + + Record samples from Audio-device - - Sample not found: %1 + + Record samples from Audio-device while playing song or pattern track - - - BitInvader - - Sample length + + Stop song (Space) - - - BitInvaderView - - Sample length + + Track actions - - Draw your own waveform here by dragging your mouse on this graph. + + Add pattern-track - - - Sine wave + + Add sample-track - - - Triangle wave + + Add automation-track - - - Saw wave + + Edit actions - - - Square wave + + Draw mode - - - White noise + + Knife mode (split sample clips) - - - User-defined wave + + Edit mode (select and move) - - - Smooth waveform + + Timeline controls - - Interpolation + + Bar insert controls - - Normalize + + Insert bar - - - DynProcControlDialog - - INPUT + + Remove bar - - Input gain: - Sarrerako irabazia: + + Zoom controls + - - OUTPUT + + + Zoom - - Output gain: - Irteerako irabazia: + + Snap controls + - - ATTACK + + + Clip snapping size - - Peak attack time: + + Toggle proportional snap on/off - - RELEASE + + Base snapping size + + + lmms::gui::StepRecorderWidget - - Peak release time: + + Hint - - - Reset wavegraph + + Move recording curser using <Left/Right> arrows + + + lmms::gui::StereoEnhancerControlDialog - - - Smooth wavegraph + + WIDTH - - - Increase wavegraph amplitude by 1 dB + + Width: + + + lmms::gui::StereoMatrixControlDialog - - - Decrease wavegraph amplitude by 1 dB + + Left to Left Vol: - - Stereo mode: maximum + + Left to Right Vol: - - Process based on the maximum of both stereo channels + + Right to Left Vol: - - Stereo mode: average + + Right to Right Vol: + + + lmms::gui::SubWindow - - Process based on the average of both stereo channels + + Close - - Stereo mode: unlinked + + Maximize - - Process each stereo channel independently + + Restore - DynProcControls + lmms::gui::TapTempoView - - Input gain - Sarrerako irabazia + + 0 + - - Output gain - Irteerako irabazia + + + Precision + - - Attack time + + Display in high precision - - Release time + + 0.0 ms - - Stereo mode + + Mute metronome - - - graphModel - - Graph + + Mute - - - KickerInstrument - - Start frequency + + BPM in milliseconds - - End frequency + + 0 ms - - Length + + Frequency of BPM - - Start distortion + + 0.0000 hz + + + + + Reset - - End distortion + + Reset counter and sidebar information - - Gain - Irabazia + + Sync + - - Envelope slope + + Sync with project tempo - - Noise + + %1 ms - - Click + + %1 hz + + + lmms::gui::TemplatesMenu - - Frequency slope + + New from template + + + lmms::gui::TempoSyncBarModelEditor - - Start from note + + + Tempo Sync - - End to note + + No Sync - - - KickerInstrumentView - - Start frequency: + + Eight beats - - End frequency: + + Whole note - - Frequency slope: + + Half note - - Gain: - Irabazia: + + Quarter note + - - Envelope length: + + 8th note - - Envelope slope: + + 16th note - - Click: + + 32nd note - - Noise: + + Custom... - - Start distortion: + + Custom - - End distortion: + + Synced to Eight Beats - - - LadspaBrowserView - - - Available Effects + + Synced to Whole Note - - - Unavailable Effects + + Synced to Half Note - - - Instruments + + Synced to Quarter Note - - - Analysis Tools - Analisi-tresnak + + Synced to 8th Note + - - - Don't know - Ezezaguna + + Synced to 16th Note + - - Type: - Mota: + + Synced to 32nd Note + - LadspaDescription + lmms::gui::TempoSyncKnob - - Plugins - Pluginak + + + Tempo Sync + - - Description - Deskribapena + + No Sync + - - - LadspaPortDialog - - Ports + + Eight beats - - Name - Izena + + Whole note + - - Rate + + Half note - - Direction + + Quarter note - - Type - Mota + + 8th note + - - Min < Default < Max + + 16th note - - Logarithmic - Logaritmikoa + + 32nd note + - - SR Dependent + + Custom... - - Audio - Audioa + + Custom + - - Control + + Synced to Eight Beats - - Input - Sarrera + + Synced to Whole Note + - - Output - Irteera + + Synced to Half Note + - - Toggled + + Synced to Quarter Note - - Integer + + Synced to 8th Note - - Float + + Synced to 16th Note - - - Yes - Bai + + Synced to 32nd Note + - Lb302Synth + lmms::gui::TimeDisplayWidget - - VCF Cutoff Frequency + + Time units - - VCF Resonance + + MIN - - VCF Envelope Mod + + SEC - - VCF Envelope Decay + + MSEC - - Distortion + + BAR - - Waveform + + BEAT - - Slide Decay + + TICK + + + lmms::gui::TimeLineWidget - - Slide + + Auto scrolling - - Accent + + Stepped auto scrolling - - Dead + + Continuous auto scrolling - - 24dB/oct Filter + + Auto scrolling disabled - - - Lb302SynthView - - Cutoff Freq: + + Loop points - - Resonance: + + After stopping go back to beginning - - Env Mod: + + After stopping go back to position at which playing was started - - Decay: + + After stopping keep position - - 303-es-que, 24dB/octave, 3 pole filter + + Hint - - Slide Decay: + + Press <%1> to disable magnetic loop points. - - DIST: + + Set loop begin here - - Saw wave + + Set loop end here - - Click here for a saw-wave. + + Loop edit mode (hold shift) - - Triangle wave + + Dual-button - - Click here for a triangle-wave. + + Grab closest - - Square wave + + Handles + + + lmms::gui::TrackContentWidget - - Click here for a square-wave. + + Paste + + + lmms::gui::TrackOperationsWidget - - Rounded square wave + + Press <%1> while clicking on move-grip to begin a new drag'n'drop action. - - Click here for a square-wave with a rounded end. + + Actions - - Moog wave + + + Mute - - Click here for a moog-like wave. + + + Solo - - Sine wave + + After removing a track, it can not be recovered. Are you sure you want to remove track "%1"? - - Click for a sine-wave. + + Confirm removal - - - White noise wave + + Don't ask again - - Click here for an exponential wave. + + Clone this track - - Click here for white-noise. + + Remove this track - - Bandlimited saw wave + + Clear this track - - Click here for bandlimited saw wave. + + Channel %1: %2 - - Bandlimited square wave + + Assign to new Mixer Channel - - Click here for bandlimited square wave. + + Turn all recording on - - Bandlimited triangle wave + + Turn all recording off - - Click here for bandlimited triangle wave. + + Track color - - Bandlimited moog saw wave + + Change - - Click here for bandlimited moog saw wave. + + Reset + + + + + Pick random + + + + + Reset clip colors - MalletsInstrument + lmms::gui::TripleOscillatorView - - Hardness + + Modulate phase of oscillator 1 by oscillator 2 - - Position + + Modulate amplitude of oscillator 1 by oscillator 2 - - Vibrato gain + + Mix output of oscillators 1 & 2 - - Vibrato frequency + + Synchronize oscillator 1 with oscillator 2 - - Stick mix + + Modulate frequency of oscillator 1 by oscillator 2 - - Modulator + + Modulate phase of oscillator 2 by oscillator 3 - - Crossfade + + Modulate amplitude of oscillator 2 by oscillator 3 - - LFO speed + + Mix output of oscillators 2 & 3 - - LFO depth + + Synchronize oscillator 2 with oscillator 3 - - ADSR + + Modulate frequency of oscillator 2 by oscillator 3 - - Pressure + + Osc %1 volume: - - Motion + + Osc %1 panning: - - Speed + + Osc %1 coarse detuning: - - Bowed + + semitones - - Spread + + Osc %1 fine detuning left: - - Marimba + + + cents - - Vibraphone + + Osc %1 fine detuning right: - - Agogo + + Osc %1 phase-offset: - - Wood 1 + + + degrees - - Reso + + Osc %1 stereo phase-detuning: - - Wood 2 + + Sine wave - - Beats + + Triangle wave - - Two fixed + + Saw wave - - Clump + + Square wave - - Tubular bells + + Moog-like saw wave - - Uniform bar + + Exponential wave - - Tuned bar + + White noise - - Glass + + User-defined wave - - Tibetan bowl + + Use alias-free wavetable oscillators. - MalletsInstrumentView + lmms::gui::VecControlsDialog - - Instrument + + HQ - - Spread + + Double the resolution and simulate continuous analog-like trace. - - Spread: + + Log. scale - - Missing files + + Display amplitude on logarithmic scale to better see small values. - - Your Stk-installation seems to be incomplete. Please make sure the full Stk-package is installed! + + Persist. - - Hardness + + Trace persistence: higher amount means the trace will stay bright for longer time. - - Hardness: + + Trace persistence + + + lmms::gui::VersionedSaveDialog - - Position + + Increment version number - - Position: + + Decrement version number - - Vibrato gain + + Save Options - - Vibrato gain: + + already exists. Do you want to replace it? + + + lmms::gui::VestigeInstrumentView - - Vibrato frequency + + + Open VST plugin - - Vibrato frequency: + + Control VST plugin from LMMS host - - Stick mix + + Open VST plugin preset - - Stick mix: + + Previous (-) - - Modulator + + Save preset - - Modulator: + + Next (+) - - Crossfade + + Show/hide GUI - - Crossfade: + + Turn off all notes - - LFO speed + + DLL-files (*.dll) - - LFO speed: - LFO abiadura: + + EXE-files (*.exe) + - - LFO depth + + SO-files (*.so) - - LFO depth: + + No VST plugin loaded - - ADSR + + Preset - - ADSR: + + by - - Pressure + + - VST plugin control + + + lmms::gui::VibedView - - Pressure: + + Enable waveform - - Speed + + + Smooth waveform - - Speed: + + + Normalize waveform - - - ManageVSTEffectView - - - VST parameter control + + + Sine wave - - VST sync + + + Triangle wave - - - Automated + + + Saw wave - - Close + + + Square wave - - - ManageVestigeInstrumentView - - - - VST plugin control + + + White noise - - VST Sync + + + User-defined wave - - - Automated + + String volume: - - Close + + String stiffness: - - - OrganicInstrument - - Distortion + + Pick position: - - Volume - Bolumena + + Pickup position: + - - - OrganicInstrumentView - - Distortion: + + String panning: - - Volume: - Bolumena: + + String detune: + - - Randomise + + String fuzziness: - - - Osc %1 waveform: + + String length: - - Osc %1 volume: + + Impulse Editor - - Osc %1 panning: + + Impulse - - Osc %1 stereo detuning + + Enable/disable string - - cents + + Octave - - Osc %1 harmonic: + + String - PatchesDialog + lmms::gui::VstEffectControlDialog - - Qsynth: Channel Preset + + Show/hide - - Bank selector + + Control VST plugin from LMMS host - - Bank + + Open VST plugin preset - - Program selector + + Previous (-) - - Patch + + Next (+) - - Name - Izena + + Save preset + - - OK - Ados + + + Effect by: + - - Cancel - Utzi + + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> + - Sf2Instrument + lmms::gui::WatsynView - - Bank + + + + + Volume - - Patch + + + + + Panning - - Gain - Irabazia - - - - Reverb + + + + + Freq. multiplier - - Reverb room size + + + + + Left detune - - Reverb damping + + + + + + + + + cents - - Reverb width + + + + + Right detune - - Reverb level + + A-B Mix - - Chorus + + Mix envelope amount - - Chorus voices + + Mix envelope attack - - Chorus level + + Mix envelope hold - - Chorus speed + + Mix envelope decay - - Chorus depth + + Crosstalk - - A soundfont %1 could not be loaded. + + Select oscillator A1 - - - Sf2InstrumentView - - - Open SoundFont file + + Select oscillator A2 - - Choose patch + + Select oscillator B1 - - Gain: - Irabazia: - - - - Apply reverb (if supported) + + Select oscillator B2 - - Room size: + + Mix output of A2 to A1 - - Damping: + + Modulate amplitude of A1 by output of A2 - - Width: - Zabalera: - - - - - Level: + + Ring modulate A1 and A2 - - Apply chorus (if supported) + + Modulate phase of A1 by output of A2 - - Voices: + + Mix output of B2 to B1 - - Speed: + + Modulate amplitude of B1 by output of B2 - - Depth: - Sakonera: + + Ring modulate B1 and B2 + - - SoundFont Files (*.sf2 *.sf3) + + Modulate phase of B1 by output of B2 - - - SfxrInstrument - - Wave + + + + + Draw your own waveform here by dragging your mouse on this graph. - - - StereoEnhancerControlDialog - - WIDTH + + Load waveform - - Width: - Zabalera: + + Load a waveform from a sample file + - - - StereoEnhancerControls - - Width - Zabalera + + Phase left + - - - StereoMatrixControlDialog - - Left to Left Vol: + + Shift phase by -15 degrees - - Left to Right Vol: + + Phase right - - Right to Left Vol: + + Shift phase by +15 degrees - - Right to Right Vol: + + + Normalize - - - StereoMatrixControls - - Left to Left + + + Invert - - Left to Right + + + Smooth - - Right to Left + + + Sine wave - - Right to Right + + + + Triangle wave - - - VestigeInstrument - - Loading plugin + + Saw wave - - Please wait while loading the VST plugin... + + + Square wave - Vibed + lmms::gui::WaveShaperControlDialog - - String %1 volume + + INPUT - - String %1 stiffness + + Input gain: - - Pick %1 position + + OUTPUT - - Pickup %1 position + + Output gain: - - String %1 panning + + + Reset wavegraph - - String %1 detune + + + Smooth wavegraph - - String %1 fuzziness + + + Increase wavegraph amplitude by 1 dB - - String %1 length + + + Decrease wavegraph amplitude by 1 dB - - Impulse %1 + + Clip input - - String %1 + + Clip input signal to 0 dB - VibedView - - - String volume: - - - - - String stiffness: - - - - - Pick position: - - + lmms::gui::XpressiveView - - Pickup position: + + Draw your own waveform here by dragging your mouse on this graph. - - String panning: + + Select oscillator W1 - - String detune: + + Select oscillator W2 - - String fuzziness: + + Select oscillator W3 - - String length: + + Select output O1 - - Impulse + + Select output O2 - - Octave + + Open help window - - Impulse Editor + + + Sine wave - - Enable waveform + + + Moog-saw wave - - Enable/disable string + + + Exponential wave - - String + + + Saw wave - - - Sine wave + + + User-defined wave - - + + Triangle wave - - - Saw wave - - - - - + + Square wave - - + + White noise - - - User-defined wave + + WaveInterpolate - - - Smooth waveform + + ExpressionValid - - - Normalize waveform + + General purpose 1: - - - VoiceObject - - Voice %1 pulse width + + General purpose 2: - - Voice %1 attack + + General purpose 3: - - Voice %1 decay + + O1 panning: - - Voice %1 sustain + + O2 panning: - - Voice %1 release + + Release transition: - - Voice %1 coarse detuning + + Smoothness + + + lmms::gui::ZynAddSubFxView - - Voice %1 wave shape + + Portamento: - - Voice %1 sync + + PORT - - Voice %1 ring modulate + + Filter frequency: - - Voice %1 filtered + + FREQ - - Voice %1 test + + Filter resonance: - - - WaveShaperControlDialog - - INPUT + + RES - - Input gain: - Sarrerako irabazia: - - - - OUTPUT + + Bandwidth: - - Output gain: - Irteerako irabazia: + + BW + - - - Reset wavegraph + + FM gain: - - - Smooth wavegraph + + FM GAIN - - - Increase wavegraph amplitude by 1 dB + + Resonance center frequency: - - - Decrease wavegraph amplitude by 1 dB + + RES CF - - Clip input + + Resonance bandwidth: - - Clip input signal to 0 dB + + RES BW - - - WaveShaperControls - - Input gain - Sarrerako irabazia + + Forward MIDI control changes + - - Output gain - Irteerako irabazia + + Show GUI + Erakutsi erabiltzaile-interfazea - + \ No newline at end of file diff --git a/data/locale/fa.ts b/data/locale/fa.ts index b376a8424f8..b167716fd84 100644 --- a/data/locale/fa.ts +++ b/data/locale/fa.ts @@ -5333,62 +5333,62 @@ Please make sure you have write permission to the file and the directory contain - MixerLine + MixerChannelView - + Channel send amount - + Move &left - + Move &right - + Rename &channel - + R&emove channel - + Remove &unused channels - + Set channel color - + Remove channel color - + Pick random channel color - MixerLineLcdSpinBox + MixerChannelLcdSpinBox - + Assign to: - + New mixer Channel diff --git a/data/locale/fr.ts b/data/locale/fr.ts index 4862f4263ce..8169224f86d 100644 --- a/data/locale/fr.ts +++ b/data/locale/fr.ts @@ -1,4 +1,4 @@ - + AboutDialog @@ -70,954 +70,187 @@ Si vous souhaitez traduire LMMS dans une autre langue ou améliorer les traducti - AmplifierControlDialog + AboutJuceDialog - - VOL - VOL - - - - Volume: - Volume : - - - - PAN - PAN - - - - Panning: - Panoramisation : - - - - LEFT - GAUCHE - - - - Left gain: - Gain de gauche : - - - - RIGHT - DROITE - - - - Right gain: - Gain de droite : - - - - AmplifierControls - - - Volume - Volume - - - - Panning - Panoramisation - - - - Left gain - Gain de gauche - - - - Right gain - Gain de droite - - - - AudioAlsaSetupWidget - - - DEVICE - PÉRIPHÉRIQUE - - - - CHANNELS - CANAUX - - - - AudioFileProcessorView - - - Open sample - Ouvrir un échantillon - - - - Reverse sample - Inverser l'échantillon - - - - Disable loop - Désactiver la boucle - - - - Enable loop - Activer la boucle - - - - Enable ping-pong loop - Activer la boucle ping-pong - - - - Continue sample playback across notes - Continuer de jouer l'échantillon à traver les notes - - - - Amplify: - Amplifier : - - - - Start point: - Point de départ : - - - - End point: - Point d'arrivée : - - - - Loopback point: - Point de bouclage : - - - - AudioFileProcessorWaveView - - - Sample length: - Longueur de l'échantillon : - - - - AudioJack - - - JACK client restarted - Le client JACK a redémarré - - - - LMMS was kicked by JACK for some reason. Therefore the JACK backend of LMMS has been restarted. You will have to make manual connections again. - LMMS a été jeté dehors par JACK pour une raison quelconque. Par conséquent le serveur de JACK a été redémarré. Vous devrez refaire les connexions manuellement. - - - - JACK server down - Le serveur JACK est arrêté - - - - The JACK server seems to have been shutdown and starting a new instance failed. Therefore LMMS is unable to proceed. You should save your project and restart JACK and LMMS. - Le serveur JACK semble avoir été arrêté et le démarrage d'une nouvelle instance a échoué. Par conséquent, LMMS ne peut pas continuer. Vous devriez enregistrer votre projet puis redémarrer JACK et LMMS. - - - - Client name - Nom du client - - - - Channels - Canaux - - - - AudioOss - - - Device - Périphérique - - - - Channels - Canaux + + About JUCE + - - - AudioPortAudio::setupWidget - - Backend - Backend + + <b>About JUCE</b> + - - Device - Périphérique + + This program uses JUCE version 3.x.x. + - - - AudioPulseAudio - - Device - Périphérique + + JUCE is an open-source cross-platform C++ application framework for creating high quality desktop and mobile applications. + +The core JUCE modules (juce_audio_basics, juce_audio_devices, juce_core and juce_events) are permissively licensed under the terms of the ISC license. +Other modules are covered by a GNU GPL 3.0 license. + +Copyright (C) 2022 Raw Material Software Limited. + - - Channels - Canaux + + This program uses JUCE version + - AudioSdl::setupWidget + AudioDeviceSetupWidget - - Device - Périphérique + + [System Default] + - AudioSndio + CarlaAboutW - - Device - Périphérique + + About Carla + À propos de Carla - - Channels - Canaux + + About + À propos - - - AudioSoundIo::setupWidget - - Backend - Backend + + About text here + À propos du texte ici - - Device - Périphérique + + Extended licensing here + Licence étendue ici - - - AutomatableModel - - &Reset (%1%2) - &Réinitialiser (%1%2) + + Artwork + Illustration - - &Copy value (%1%2) - &Copier la valeur (%1%2) + + Using KDE Oxygen icon set, designed by Oxygen Team. + Utilisation du jeu d'icônes KDE Oxygen, conçu par l'équipe Oxygen. - - &Paste value (%1%2) - &Coller la valeur (%1%2) + + Contains some knobs, backgrounds and other small artwork from Calf Studio Gear, OpenAV and OpenOctave projects. + Contient quelques boutons, arrière-plans et autres petites illustrations des projets Calf Studio Gear, OpenAV et OpenOctave. - - &Paste value - &Coller la valeur + + VST is a trademark of Steinberg Media Technologies GmbH. + VST est une marque déposée de Steinberg Media Technologies GmbH. - - Edit song-global automation - Éditer l'automation globale du morceau + + Special thanks to António Saraiva for a few extra icons and artwork! + Un grand merci à António Saraiva pour quelques icônes et illustrations supplémentaires ! - - Remove song-global automation - Supprimer l'automation globale du morceau + + The LV2 logo has been designed by Thorsten Wilms, based on a concept from Peter Shorthose. + Le logo LV2 a été conçu par Thorsten Wilms, sur la base d'un concept de Peter Shorthose. - - Remove all linked controls - Supprimer tous les contrôles liés + + MIDI Keyboard designed by Thorsten Wilms. + Clavier MIDI conçu par Thorsten Wilms. - - Connected to %1 - Connecté à %1 + + Carla, Carla-Control and Patchbay icons designed by DoosC. + Icônes Carla, Carla-Control et Patchbay conçues par DoosC. - - Connected to controller - Connecté au contrôleur + + Features + Caractéristiques - - Edit connection... - Éditer la connexion... + + AU/AudioUnit: + Unité audio : - - Remove connection - Supprimer la connexion + + LADSPA: + LADSPA : - - Connect to controller... - Connecter le contrôleur... + + + + + + + + + TextLabel + TextLabel - - - AutomationEditor - - Edit Value - Éditer la valeur + + VST2: + VST2 : - - New outValue - Nouvelle valeur de sortie + + DSSI: + DSSI : - - New inValue - Nouvelle valeur d'entrée + + LV2: + LV2 : - - Please open an automation clip with the context menu of a control! - Veuillez ouvrir un motif d'automation avec le menu contextuel d'un contrôle ! + + VST3: + VST3 : - - - AutomationEditorWindow - - Play/pause current clip (Space) - Jouer/mettre en pause le motif (barre d'espace) + + OSC + OSC - - Stop playing of current clip (Space) - Arrêter de jouer le motif actuel (barre d'espace) + + Host URLs: + URL d'hôte : - - Edit actions - Actions d'édition + + Valid commands: + Commandes valides : - - Draw mode (Shift+D) - Mode dessin (Shift+D) + + valid osc commands here + commandes osc valides ici - - Erase mode (Shift+E) - Mode effacement (Shift+E) + + Example: + Exemple : - - Draw outValues mode (Shift+C) - Mode dessin de valeurs de sortie (Maj + C) + + License + Licence - - Flip vertically - Tourner verticalement - - - - Flip horizontally - Tourner horizontalement - - - - Interpolation controls - Contrôles d'interpolation - - - - Discrete progression - Progression discrète - - - - Linear progression - Progression linéaire - - - - Cubic Hermite progression - Progression cubique de Hermite - - - - Tension value for spline - Valeur de tension pour la spline - - - - Tension: - Tension : - - - - Zoom controls - Contrôles du zoom - - - - Horizontal zooming - Zoom horizontal - - - - Vertical zooming - Zoom vertical - - - - Quantization controls - Contrôles de quantification - - - - Quantization - Quantification - - - - - Automation Editor - no clip - Éditeur d'automation - pas de motif - - - - - Automation Editor - %1 - Éditeur d'automation - %1 - - - - Model is already connected to this clip. - Ce modèle est déjà connecté à ce motif. - - - - AutomationClip - - - Drag a control while pressing <%1> - Déplacer un contrôle en appuyant sur <%1> - - - - AutomationClipView - - - Open in Automation editor - Ouvrir dans l'éditeur d'automation - - - - Clear - Effacer - - - - Reset name - Réinitialiser le nom - - - - Change name - Modifier le nom - - - - Set/clear record - Armer/désarmer l'enregistrement - - - - Flip Vertically (Visible) - Tourner verticalement (visible) - - - - Flip Horizontally (Visible) - Tourner horizontalement (visible) - - - - %1 Connections - %1 connexions - - - - Disconnect "%1" - Déconnecter "%1" - - - - Model is already connected to this clip. - Ce modèle est déjà connecté à ce motif. - - - - AutomationTrack - - - Automation track - Piste d'automation - - - - PatternEditor - - - Beat+Bassline Editor - Éditeur de rythme et de ligne de basse - - - - Play/pause current beat/bassline (Space) - Jouer/mettre en pause le rythme ou la ligne de basse (barre d'espace) - - - - Stop playback of current beat/bassline (Space) - Arrêter de jouer le rythme ou la ligne de basse (barre d'espace) - - - - Beat selector - Sélecteur de rythme - - - - Track and step actions - Actions des pas et de piste - - - - Add beat/bassline - Ajouter un rythme ou une ligne de basse - - - - Clone beat/bassline clip - Cloner le rythme/la ligne de basse - - - - Add sample-track - Ajouter une piste d'échantillon - - - - Add automation-track - Ajouter une piste d'automation - - - - Remove steps - Supprimer des pas - - - - Add steps - Ajouter des pas - - - - Clone Steps - Cloner des pas - - - - PatternClipView - - - Open in Beat+Bassline-Editor - Ouvrir dans l'éditeur de rythmes et de ligne de basse - - - - Reset name - Réinitialiser le nom - - - - Change name - Modifier le nom - - - - PatternTrack - - - Beat/Bassline %1 - Rythme ou ligne de basse %1 - - - - Clone of %1 - Clone de %1 - - - - BassBoosterControlDialog - - - FREQ - FRÉQ - - - - Frequency: - Fréquence : - - - - GAIN - GAIN - - - - Gain: - Gain : - - - - RATIO - RATIO - - - - Ratio: - Ratio : - - - - BassBoosterControls - - - Frequency - Fréquence - - - - Gain - Gain - - - - Ratio - Ratio - - - - BitcrushControlDialog - - - IN - ENTRÉE - - - - OUT - SORTIE - - - - - GAIN - GAIN - - - - Input gain: - Gain en entrée : - - - - NOISE - BRUIT - - - - Input noise: - Bruit d'entrée : - - - - Output gain: - Gain en sortie : - - - - CLIP - CLIP - - - - Output clip: - Clip de sortie : - - - - Rate enabled - Taux activé - - - - Enable sample-rate crushing - Activer le compactage du taux d'échantillonnage - - - - Depth enabled - Profondeur activée - - - - Enable bit-depth crushing - Activer la compression en profondeur des bits - - - - FREQ - FRÉQ - - - - Sample rate: - Taux d'échantillonnage : - - - - STEREO - STÉRÉO - - - - Stereo difference: - Différence stéréo : - - - - QUANT - quant - - - - Levels: - Niveaux : - - - - BitcrushControls - - - Input gain - Gain en entrée - - - - Input noise - Bruit d'entrée - - - - Output gain - Gain en sortie - - - - Output clip - Clip de sortie - - - - Sample rate - Taux d'échantillonnage - - - - Stereo difference - Différence stéréo - - - - Levels - Niveaux - - - - Rate enabled - Taux activé - - - - Depth enabled - Profondeur activée - - - - CarlaAboutW - - - About Carla - À propos de Carla - - - - About - À propos - - - - About text here - À propos du texte ici - - - - Extended licensing here - Licence étendue ici - - - - Artwork - Illustration - - - - Using KDE Oxygen icon set, designed by Oxygen Team. - Utilisation du jeu d'icônes KDE Oxygen, conçu par l'équipe Oxygen. - - - - Contains some knobs, backgrounds and other small artwork from Calf Studio Gear, OpenAV and OpenOctave projects. - Contient quelques boutons, arrière-plans et autres petites illustrations des projets Calf Studio Gear, OpenAV et OpenOctave. - - - - VST is a trademark of Steinberg Media Technologies GmbH. - VST est une marque déposée de Steinberg Media Technologies GmbH. - - - - Special thanks to António Saraiva for a few extra icons and artwork! - Un grand merci à António Saraiva pour quelques icônes et illustrations supplémentaires ! - - - - The LV2 logo has been designed by Thorsten Wilms, based on a concept from Peter Shorthose. - Le logo LV2 a été conçu par Thorsten Wilms, sur la base d'un concept de Peter Shorthose. - - - - MIDI Keyboard designed by Thorsten Wilms. - Clavier MIDI conçu par Thorsten Wilms. - - - - Carla, Carla-Control and Patchbay icons designed by DoosC. - Icônes Carla, Carla-Control et Patchbay conçues par DoosC. - - - - Features - Caractéristiques - - - - AU/AudioUnit: - Unité audio : - - - - LADSPA: - LADSPA : - - - - - - - - - - - TextLabel - TextLabel - - - - VST2: - VST2 : - - - - DSSI: - DSSI : - - - - LV2: - LV2 : - - - - VST3: - VST3 : - - - - OSC - OSC - - - - Host URLs: - URL d'hôte : - - - - Valid commands: - Commandes valides : - - - - valid osc commands here - commandes osc valides ici - - - - Example: - Exemple : - - - - License - Licence - - - + GNU GENERAL PUBLIC LICENSE Version 2, June 1991 @@ -1582,15046 +815,18226 @@ POSSIBILITY OF SUCH DAMAGES. - - OSC Bridge Version - Version passerelle de l'oscillateur + + OSC Bridge Version + Version passerelle de l'oscillateur + + + + Plugin Version + Version du plugin + + + + <br>Version %1<br>Carla is a fully-featured audio plugin host%2.<br><br>Copyright (C) 2011-2019 falkTX<br> + <br>Version %1<br>Carla est un plugin audio complet host%2.<br><br>Copyright (C) 2011-2019 falkTX<br> + + + + + (Engine not running) + (Le moteur ne fonctionne pas) + + + + Everything! (Including LRDF) + Tout ! (Y compris LRDF) + + + + Everything! (Including CustomData/Chunks) + Tout ! (Y compris CustomData/Chunks) + + + + About 110&#37; complete (using custom extensions)<br/>Implemented Feature/Extensions:<ul><li>http://lv2plug.in/ns/ext/atom</li><li>http://lv2plug.in/ns/ext/buf-size</li><li>http://lv2plug.in/ns/ext/data-access</li><li>http://lv2plug.in/ns/ext/event</li><li>http://lv2plug.in/ns/ext/instance-access</li><li>http://lv2plug.in/ns/ext/log</li><li>http://lv2plug.in/ns/ext/midi</li><li>http://lv2plug.in/ns/ext/options</li><li>http://lv2plug.in/ns/ext/parameters</li><li>http://lv2plug.in/ns/ext/port-props</li><li>http://lv2plug.in/ns/ext/presets</li><li>http://lv2plug.in/ns/ext/resize-port</li><li>http://lv2plug.in/ns/ext/state</li><li>http://lv2plug.in/ns/ext/time</li><li>http://lv2plug.in/ns/ext/uri-map</li><li>http://lv2plug.in/ns/ext/urid</li><li>http://lv2plug.in/ns/ext/worker</li><li>http://lv2plug.in/ns/extensions/ui</li><li>http://lv2plug.in/ns/extensions/units</li><li>http://home.gna.org/lv2dynparam/rtmempool/v1</li><li>http://kxstudio.sf.net/ns/lv2ext/external-ui</li><li>http://kxstudio.sf.net/ns/lv2ext/programs</li><li>http://kxstudio.sf.net/ns/lv2ext/props</li><li>http://kxstudio.sf.net/ns/lv2ext/rtmempool</li><li>http://ll-plugins.nongnu.org/lv2/ext/midimap</li><li>http://ll-plugins.nongnu.org/lv2/ext/miditype</li></ul> + About 110&#37; complete (using custom extensions)<br/>Implemented Feature/Extensions:<ul><li>http://lv2plug.in/ns/ext/atom</li><li>http://lv2plug.in/ns/ext/buf-size</li><li>http://lv2plug.in/ns/ext/data-access</li><li>http://lv2plug.in/ns/ext/event</li><li>http://lv2plug.in/ns/ext/instance-access</li><li>http://lv2plug.in/ns/ext/log</li><li>http://lv2plug.in/ns/ext/midi</li><li>http://lv2plug.in/ns/ext/options</li><li>http://lv2plug.in/ns/ext/parameters</li><li>http://lv2plug.in/ns/ext/port-props</li><li>http://lv2plug.in/ns/ext/presets</li><li>http://lv2plug.in/ns/ext/resize-port</li><li>http://lv2plug.in/ns/ext/state</li><li>http://lv2plug.in/ns/ext/time</li><li>http://lv2plug.in/ns/ext/uri-map</li><li>http://lv2plug.in/ns/ext/urid</li><li>http://lv2plug.in/ns/ext/worker</li><li>http://lv2plug.in/ns/extensions/ui</li><li>http://lv2plug.in/ns/extensions/units</li><li>http://home.gna.org/lv2dynparam/rtmempool/v1</li><li>http://kxstudio.sf.net/ns/lv2ext/external-ui</li><li>http://kxstudio.sf.net/ns/lv2ext/programs</li><li>http://kxstudio.sf.net/ns/lv2ext/props</li><li>http://kxstudio.sf.net/ns/lv2ext/rtmempool</li><li>http://ll-plugins.nongnu.org/lv2/ext/midimap</li><li>http://ll-plugins.nongnu.org/lv2/ext/miditype</li></ul> + + + + + + Using Juce host + Utilisation de l'hôte Juce + + + + About 85% complete (missing vst bank/presets and some minor stuff) + Environ 85% complété (banque de VST et de préréglages manquante et quelques éléments mineurs) + + + + CarlaHostW + + + MainWindow + Fenêtre principale + + + + Rack + Rack + + + + Patchbay + Baie de connexions + + + + Logs + Journaux + + + + Loading... + Chargement... + + + + Save + + + + + Clear + + + + + Ctrl+L + + + + + Auto-Scroll + + + + + Buffer Size: + Taille du tampon : + + + + Sample Rate: + Taux d'échantillonnage : + + + + ? Xruns + ? Xruns + + + + DSP Load: %p% + Chargement du DSP : %p% + + + + &File + &Fichier + + + + &Engine + &Moteur + + + + &Plugin + &Plugin + + + + Macros (all plugins) + Macros (tous les plugins) + + + + &Canvas + &Canvas + + + + Zoom + Zoom + + + + &Settings + &Paramètres + + + + &Help + &Aide + + + + Tool Bar + + + + + Disk + Disque + + + + + Home + Accueil + + + + Transport + Transport + + + + Playback Controls + Contrôles de lecture + + + + Time Information + Information sur la durée + + + + Frame: + Structure : + + + + 000'000'000 + 000'000'000 + + + + Time: + Durée : + + + + 00:00:00 + 00:00:00 + + + + BBT: + + + + + 000|00|0000 + 000|00|0000 + + + + Settings + Configuration + + + + BPM + BPM + + + + Use JACK Transport + Utiliser le transport JACK + + + + Use Ableton Link + Utiliser un lien Ableton + + + + &New + &Nouveau + + + + Ctrl+N + Ctrl + N + + + + &Open... + &Ouvrir... + + + + + Open... + Ouvrir... + + + + Ctrl+O + Ctrl + O + + + + &Save + &Enregistrer + + + + Ctrl+S + Ctrl + S + + + + Save &As... + Enregistrer &sous... + + + + + Save As... + Enregistrer sous... + + + + Ctrl+Shift+S + Ctrl + Maj + S + + + + &Quit + &Quitter + + + + Ctrl+Q + Ctrl + Q + + + + &Start + &Démarrer + + + + F5 + F5 + + + + St&op + Arr&êter + + + + F6 + F6 + + + + &Add Plugin... + &Ajouter un plugin... + + + + Ctrl+A + Ctrl + A + + + + &Remove All + &Tout effacer + + + + Enable + Activer + + + + Disable + Désactiver + + + + 0% Wet (Bypass) + Niveau 0% (Contourner) + + + + 100% Wet + Niveau 100% + + + + 0% Volume (Mute) + Volume à 0% (Muet) + + + + 100% Volume + Volume à 100% + + + + Center Balance + Équilibre central + + + + &Play + &Jouer + + + + Ctrl+Shift+P + Ctrl + Maj + P + + + + &Stop + &Arrêter + + + + Ctrl+Shift+X + Ctrl + Maj + X + + + + &Backwards + &Retour + + + + Ctrl+Shift+B + Ctrl + Maj + B + + + + &Forwards + &En avant + + + + Ctrl+Shift+F + Ctrl + Maj + F + + + + &Arrange + &Arranger + + + + Ctrl+G + Ctrl + G + + + + + &Refresh + &Actualiser + + + + Ctrl+R + Ctrl + R + + + + Save &Image... + Enregistrer &l'image... + + + + Auto-Fit + Ajustement automatique + + + + Zoom In + Zoom avant + + + + Ctrl++ + Ctrl + + + + + + Zoom Out + Zoom arrière + + + + Ctrl+- + Ctrl + - + + + + Zoom 100% + Zoom 100% + + + + Ctrl+1 + Ctrl + 1 + + + + Show &Toolbar + Afficher la &barre d'outils + + + + &Configure Carla + &Configurer Carla + + + + &About + &À propos + + + + About &JUCE + À propos de &JUCE + + + + About &Qt + À propos de &Qt + + + + Show Canvas &Meters + + + + + Show Canvas &Keyboard + + + + + Show Internal + Afficher l'intérieur + + + + Show External + Afficher l'extérieur + + + + Show Time Panel + Afficher le panneau horaire + + + + Show &Side Panel + Afficher le &panneau latéral + + + + Ctrl+P + + + + + &Connect... + &Connecter... + + + + Compact Slots + Compacter les emplacements + + + + Expand Slots + Élargir les emplacements + + + + Perform secret 1 + Effectuer le secret 1 + + + + Perform secret 2 + Effectuer le secret 2 + + + + Perform secret 3 + Effectuer le secret 3 + + + + Perform secret 4 + Effectuer le secret 4 + + + + Perform secret 5 + Effectuer le secret 5 + + + + Add &JACK Application... + Ajouter l'application &JACK... + + + + &Configure driver... + &Configurer le pilote... + + + + Panic + + + + + Open custom driver panel... + Ouvrir le panneau personnalisé du pilote... + + + + Save Image... (2x zoom) + + + + + Save Image... (4x zoom) + + + + + Copy as Image to Clipboard + + + + + Ctrl+Shift+C + + + + + CarlaHostWindow + + + Export as... + Exporter sous... + + + + + + + Error + Erreur + + + + Failed to load project + Échec du chargement du projet + + + + Failed to save project + Échec de l'enregistrement du projet + + + + Quit + Quitter + + + + Are you sure you want to quit Carla? + Êtes-vous sûr de vouloir quitter Carla ? + + + + Could not connect to Audio backend '%1', possible reasons: +%2 + Impossible de se connecter au backend audio "%1", raisons possibles : +%2 + + + + Could not connect to Audio backend '%1' + Impossible de se connecter au backend audio "%1" + + + + Warning + Avertissement + + + + There are still some plugins loaded, you need to remove them to stop the engine. +Do you want to do this now? + Il y a encore quelques plugins chargés, vous devez les supprimer pour arrêter le moteur. +Voulez-vous le faire maintenant ? + + + + CarlaSettingsW + + + Settings + Configuration + + + + main + principal + + + + canvas + + + + + engine + moteur + + + + osc + osc + + + + file-paths + chemins d'accès des fichiers + + + + plugin-paths + chemins d'accès des plugins + + + + wine + wine + + + + experimental + expérimental + + + + Widget + Widget + + + + + Main + Principal + + + + + Canvas + + + + + + Engine + Moteur + + + + File Paths + Chemins d'accès des fichiers + + + + Plugin Paths + chemins d'accès des plugins + + + + Wine + Wine + + + + + Experimental + Expérimental + + + + <b>Main</b> + <b>Principal</b> + + + + Paths + Chemins d'accès + + + + Default project folder: + Dossier de projet par défaut : + + + + Interface + Interface + + + + Use "Classic" as default rack skin + + + + + Interface refresh interval: + Intervalle de rafraîchissement de l'interface : + + + + + ms + ms + + + + Show console output in Logs tab (needs engine restart) + Afficher la sortie de la console dans l'onglet Journaux (nécessite le redémarrage du moteur) + + + + Show a confirmation dialog before quitting + Afficher un dialogue de confirmation avant de quitter + + + + + Theme + Thème + + + + Use Carla "PRO" theme (needs restart) + Utiliser le thème "PRO" de Carla (nécessite un redémarrage) + + + + Color scheme: + Schéma de couleurs : + + + + Black + Noir + + + + System + Système + + + + Enable experimental features + Activer les fonctions expérimentales + + + + <b>Canvas</b> + + + + + Bezier Lines + Lignes de Bézier + + + + Theme: + Thème : + + + + Size: + Taille : + + + + 775x600 + 775x600 + + + + 1550x1200 + 1550x1200 + + + + 3100x2400 + 3100x2400 + + + + 4650x3600 + 4650x3600 + + + + 6200x4800 + 6200x4800 + + + + 12400x9600 + + + + + Options + Options + + + + Auto-hide groups with no ports + Masquer automatiquement les groupes sans ports + + + + Auto-select items on hover + Sélection automatique des éléments au passage de la souris + + + + Basic eye-candy (group shadows) + + + + + Render Hints + Indications de rendu + + + + Anti-Aliasing + Anticrénelage + + + + Full canvas repaints (slower, but prevents drawing issues) + + + + + <b>Engine</b> + <b>Moteur</b> + + + + + Core + Noyau + + + + Single Client + Client unique + + + + Multiple Clients + Clients multiples + + + + + Continuous Rack + Rack permanent + + + + + Patchbay + Patchbay + + + + Audio driver: + Pilote audio : + + + + Process mode: + Mode de traitement : + + + + + + + Maximum number of parameters to allow in the built-in 'Edit' dialog + Nombre maximum de paramètres à autoriser dans la boîte de dialogue intégrée "Éditer" + + + + Max Parameters: + Paramètres maximum : + + + + ... + ... + + + + Reset Xrun counter after project load + Réinitialiser le compteur Xrun après le chargement du projet + + + + Plugin UIs + Interface utilisateur des plugins + + + + + How much time to wait for OSC GUIs to ping back the host + Temps d'attente pour que les interfaces graphiques de l'oscillateur renvoient l'hôte + + + + UI Bridge Timeout: + Délai d'attente du pont de I'interface utilisateur : + + + + Use OSC-GUI bridges when possible, this way separating the UI from DSP code + Utilisez les ponts OSC-GUI lorsque cela est possible, de manière à séparer l'interface utilisateur du code DSP + + + + Use UI bridges instead of direct handling when possible + Utiliser les ponts de l'interface utilisateur au lieu de la gestion directe lorsque cela est possible + + + + Make plugin UIs always-on-top + Afficher les interfaces utilisateur des plugins au premier plan + + + + Make plugin UIs appear on top of Carla (needs restart) + Afficher les interfaces utilisateur des plugins au-dessus de Carla (redémarrage nécessaire) + + + + NOTE: Plugin-bridge UIs cannot be managed by Carla on macOS + NOTE : les ponts des interfaces utilisateur des plugins ne peuvent pas être gérées par Carla sous MacOS + + + + + Restart the engine to load the new settings + Redémarrez le moteur pour charger les nouveaux paramètres + + + + <b>OSC</b> + <b>OSC</b> + + + + Enable OSC + Activer l'oscillateur + + + + Enable TCP port + Activer le port TCP + + + + + Use specific port: + Utiliser un port spécifique : + + + + Overridden by CARLA_OSC_TCP_PORT env var + Remplacé par la variable d'environnement CARLA_OSC_TCP_PORT + + + + + Use randomly assigned port + Utiliser un port attribué de manière aléatoire + + + + Enable UDP port + Activer le port UDP + + + + Overridden by CARLA_OSC_UDP_PORT env var + Remplacé par la variable d'environnement CARLA_OSC_UDP_PORT + + + + DSSI UIs require OSC UDP port enabled + Les interfaces utilisateur de DSSI nécessitent que le port UDP de l’oscillateur soit activé + + + + <b>File Paths</b> + <b>Chemins d'accès des fichiers</b> + + + + Audio + Audio + + + + MIDI + MIDI + + + + Used for the "audiofile" plugin + Utilisé pour le plugin "audiofile" + + + + Used for the "midifile" plugin + Utilisé pour le plugin "midifile" + + + + + Add... + Ajouter... + + + + + Remove + Supprimer + + + + + Change... + Modifier... + + + + <b>Plugin Paths</b> + <b>Chemin d'accès des plugins</b> + + + + LADSPA + LADSPA + + + + DSSI + DSSI + + + + LV2 + LV2 + + + + VST2 + VST2 + + + + VST3 + VST3 + + + + SF2/3 + SF2/3 + + + + SFZ + SFZ + + + + JSFX + + + + + CLAP + + + + + Restart Carla to find new plugins + Redémarrez Carla pour trouver de nouveaux plugins + + + + <b>Wine</b> + <b>Wine</b> + + + + Executable + Exécutable + + + + Path to 'wine' binary: + Chemin d'accès de "Wine" binaire : + + + + Prefix + Préfixe + + + + Auto-detect Wine prefix based on plugin filename + Détection automatique du préfixe Wine basé sur le nom de fichier d'un plugin + + + + Fallback: + Option de secours : + + + + Note: WINEPREFIX env var is preferred over this fallback + Note : La variable d'environnement WINEPREFIX est préférable à cette option de secours + + + + Realtime Priority + Priorité en temps réel + + + + Base priority: + Priorité de base : + + + + WineServer priority: + Priorité du serveur Wine : + + + + These options are not available for Carla as plugin + Ces options ne sont pas disponibles sous forme de plugin pour Carla + + + + <b>Experimental</b> + <b>Expérimental</b> + + + + Experimental options! Likely to be unstable! + Ces options sont expérimentales et sont probablement instables. + + + + Enable plugin bridges + Activer les ponts des plugins + + + + Enable Wine bridges + Activer les ponts de Wine + + + + Enable jack applications + Activer les applications jack + + + + Export single plugins to LV2 + Exporter les plugins simples vers LV2 + + + + Use system/desktop-theme icons (needs restart) + + + + + Load Carla backend in global namespace (NOT RECOMMENDED) + Charger l'arrière-plan de Carla dans l'espace de noms global (NON RECOMMANDÉ) + + + + Fancy eye-candy (fade-in/out groups, glow connections) + + + + + Use OpenGL for rendering (needs restart) + Utiliser OpenGL pour le rendu (nécessite un redémarrage) + + + + High Quality Anti-Aliasing (OpenGL only) + Anticrénelage de haute qualité (OpenGL uniquement) + + + + Render Ardour-style "Inline Displays" + + + + + Force mono plugins as stereo by running 2 instances at the same time. +This mode is not available for VST plugins. + Forcer les plugins mono à fonctionner en stéréo en exécutant simultanément 2 instances. +Ce mode n'est pas disponible pour les plugins VST. + + + + Force mono plugins as stereo + Forcer les plugins mono à fonctionner en stéréo + + + + When enabled, Carla will try to prevent plugins from doing things that might mess up the audio or cause xruns, such as fork(), gtk_init() and similar. + + + + + Prevent unsafe calls from plugins (needs restart) + + + + + Run plugins in a separate process, so if they crash it does not affect Carla. +Plugins get automatically deactivated in such cases. +Reactvate them to start the process again, with the last saved state applied to it. + + + + + Run plugins in bridge mode when possible + Exécutez les plugins en mode bridge si cela est possible. + + + + + + + Add Path + Ajouter un chemin d'accès + + + + Dialog + + + Carla Control - Connect + Contrôle Carla - Connexion + + + + Remote setup + Configuration à distance + + + + UDP Port: + Port UDP: + + + + Remote host: + Hôte distant: + + + + TCP Port: + Port TCP: + + + + Set value + Mode valeur + + + + TextLabel + TextLabel + + + + Scale Points + + + + + DriverSettingsW + + + Driver Settings + Paramètres du driver + + + + Device: + Périphérique: + + + + Buffer size: + Taille du tampon: + + + + Sample rate: + Taux d'échantillonnage : + + + + Triple buffer + + + + + Show Driver Control Panel + Afficher le panneau de contrôle du driver + + + + Restart the engine to load the new settings + Redémarrez le moteur pour charger les nouveaux paramètres + + + + ExportProjectDialog + + + Export project + Exporter le projet + + + + Export as loop (remove extra bar) + + + + + Export between loop markers + Exporter la section entre les marqueurs de boucle + + + + Render Looped Section: + Faire le rendu de la section bouclée: + + + + time(s) + + + + + File format settings + Configuration du format de fichier + + + + File format: + Format de fichier : + + + + Sampling rate: + Taux d'échantillonnage : + + + + 44100 Hz + 44100 Hz + + + + 48000 Hz + 48000 Hz + + + + 88200 Hz + 88200 Hz + + + + 96000 Hz + 96000 Hz + + + + 192000 Hz + 192000 Hz + + + + Bit depth: + Profondeur de bit: + + + + 16 Bit integer + Entier 16 bits + + + + 24 Bit integer + Entier 24 bits + + + + 32 Bit float + Flottants 32 bits + + + + Stereo mode: + Mode stéréo : + + + + Mono + Mono + + + + Stereo + Stéréo + + + + Joint stereo + + + + + Compression level: + Niveau de compression : + + + + Bitrate: + Débit : + + + + 64 KBit/s + 64 kbit/s + + + + 128 KBit/s + 128 kbit/s + + + + 160 KBit/s + 160 kbit/s + + + + 192 KBit/s + 192 kbit/s + + + + 256 KBit/s + 256 kbit/s + + + + 320 KBit/s + 320 kbit/s + + + + Use variable bitrate + Utiliser un taux variable + + + + Quality settings + Réglages de qualité + + + + Interpolation: + Interpolation : + + + + Zero order hold + + + + + Sinc worst (fastest) + + + + + Sinc medium (recommended) + + + + + Sinc best (slowest) + + + + + Start + Démarrer + + + + Cancel + Annuler + + + + InstrumentFunctionNoteStacking + + + octave + octave + + + + + Major + Majeur + + + + Majb5 + Si majeur 5 + + + + minor + mineur + + + + minb5 + Si mineur 5 + + + + sus2 + sus2 + + + + sus4 + sus4 + + + + aug + aug + + + + augsus4 + augsus4 + + + + tri + tri + + + + 6 + 6 + + + + 6sus4 + 6sus4 + + + + 6add9 + 6add9 + + + + m6 + m6 + + + + m6add9 + m6add9 + + + + 7 + 7 + + + + 7sus4 + 7sus4 + + + + 7#5 + 7#5 + + + + 7b5 + 7b5 + + + + 7#9 + 7#9 + + + + 7b9 + 7b9 + + + + 7#5#9 + 7#5#9 + + + + 7#5b9 + 7#5b9 + + + + 7b5b9 + 7b5b9 + + + + 7add11 + 7add11 + + + + 7add13 + 7add13 + + + + 7#11 + 7#11 + + + + Maj7 + Maj7 + + + + Maj7b5 + Maj7b5 + + + + Maj7#5 + Maj7#5 + + + + Maj7#11 + Maj7#11 + + + + Maj7add13 + Maj7add13 + + + + m7 + m7 + + + + m7b5 + m7b5 + + + + m7b9 + m7b9 + + + + m7add11 + m7add11 + + + + m7add13 + m7add13 + + + + m-Maj7 + m-Maj7 + + + + m-Maj7add11 + m-Maj7add11 + + + + m-Maj7add13 + m-Maj7add13 + + + + 9 + 9 + + + + 9sus4 + 9sus4 + + + + add9 + add9 + + + + 9#5 + 9#5 + + + + 9b5 + 9b5 + + + + 9#11 + 9#11 + + + + 9b13 + 9b13 + + + + Maj9 + Maj9 + + + + Maj9sus4 + Maj9sus4 + + + + Maj9#5 + Maj9#5 + + + + Maj9#11 + Maj9#11 + + + + m9 + m9 + + + + madd9 + madd9 + + + + m9b5 + m9b5 + + + + m9-Maj7 + m9-Maj7 + + + + 11 + 11 + + + + 11b9 + 11b9 + + + + Maj11 + Maj11 + + + + m11 + m11 + + + + m-Maj11 + m-Maj11 + + + + 13 + 13 + + + + 13#9 + 13#9 + + + + 13b9 + 13b9 + + + + 13b5b9 + 13b5b9 + + + + Maj13 + Maj13 + + + + m13 + m13 + + + + m-Maj13 + m-Maj13 + + + + Harmonic minor + Mineure harmonique + + + + Melodic minor + Mineure mélodique + + + + Whole tone + Note complète + + + + Diminished + Diminuée + + + + Major pentatonic + Pentatonique majeure + + + + Minor pentatonic + Pentatonique mineure + + + + Jap in sen + Japonaise "in sen" + + + + Major bebop + Bebop majeure + + + + Dominant bebop + Bebop dominante + + + + Blues + Blues + + + + Arabic + Arabe + + + + Enigmatic + Énigmatique + + + + Neopolitan + Napolitaine + + + + Neopolitan minor + Napolitaine mineure + + + + Hungarian minor + Hongroise mineure + + + + Dorian + Dorienne + + + + Phrygian + Phrygien + + + + Lydian + Lydienne + + + + Mixolydian + Mixolydienne + + + + Aeolian + Éolienne + + + + Locrian + Locrienne + + + + Minor + Mineur + + + + Chromatic + Chromatique + + + + Half-Whole Diminished + Demi-globalement diminué + + + + 5 + 5 + + + + Phrygian dominant + Phrygien dominant + + + + Persian + Persien + + + + InstrumentSoundShaping + + + VOLUME + VOLUME + + + + Volume + Volume + + + + CUTOFF + COUPURE + + + + Cutoff frequency + Fréquence de coupure + + + + RESO + RÉSON + + + + Resonance + Résonance + + + + JackAppDialog + + + Add JACK Application + + + + + Note: Features not implemented yet are greyed out + + + + + Application + + + + + Name: + + + + + Application: + + + + + From template + + + + + Custom + + + + + Template: + + + + + Command: + + + + + Setup + + + + + Session Manager: + + + + + None + + + + + Audio inputs: + + + + + MIDI inputs: + + + + + Audio outputs: + + + + + MIDI outputs: + + + + + Take control of main application window + + + + + Workarounds + + + + + Wait for external application start (Advanced, for Debug only) + + + + + Capture only the first X11 Window + + + + + Use previous client output buffer as input for the next client + + + + + Simulate 16 JACK MIDI outputs, with MIDI channel as port index + + + + + Error here + + + + + NSM applications cannot use abstract or absolute paths + + + + + NSM applications cannot use CLI arguments + + + + + You need to save the current Carla project before NSM can be used + + + + + JuceAboutW + + + This program uses JUCE version %1. + Ce programme utilise la version %1 de JUCE. + + + + MidiPatternW + + + MIDI Pattern + Modèle MIDI + + + + Time Signature: + Signature rythmique: + + + + + + 1/4 + 1/4 + + + + 2/4 + 2/4 + + + + 3/4 + 3/4 + + + + 4/4 + 4/4 + + + + 5/4 + 5/4 + + + + 6/4 + 6/4 + + + + Measures: + Mesures : + + + + + + 1 + 1 + + + + 2 + 2 + + + + 3 + 3 + + + + 4 + 4 + + + + 5 + 5 + + + + 6 + 6 + + + + 7 + 7 + + + + 8 + 8 + + + + 9 + 9 + + + + 10 + 10 + + + + 11 + 11 + + + + 12 + 12 + + + + 13 + 13 + + + + 14 + 14 + + + + 15 + 15 + + + + 16 + 16 + + + + Default Length: + Longueur par défaut: + + + + + 1/16 + 1/16 + + + + + 1/15 + 1/15 + + + + + 1/12 + 1/12 + + + + + 1/9 + 1/9 + + + + + 1/8 + 1/8 + + + + + 1/6 + 1/6 + + + + + 1/3 + 1/3 + + + + + 1/2 + 1/2 + + + + Quantize: + Quantifier + + + + &File + &Fichier + + + + &Edit + &Éditer + + + + &Quit + &Quitter + + + + Esc + + + + + &Insert Mode + + + + + F + + + + + &Velocity Mode + + + + + D + D + + + + Select All + Tout sélectionner + + + + A + A + + + + PatchesDialog + + + + Qsynth: Channel Preset + Qsynth : pré-réglage de canal + + + + + Bank selector + Sélecteur de banque + + + + + Bank + Banque + + + + + Program selector + Sélecteur de programme + + + + + Patch + Instrument + + + + + Name + Nom + + + + + OK + OK + + + + + Cancel + Annuler + + + + PluginBrowser + + + no description + pas de description + + + + A native amplifier plugin + Un greffon d'amplification natif + + + + Simple sampler with various settings for using samples (e.g. drums) in an instrument-track + Échantillonneur simple avec divers paramètres pour utiliser des échantillons (par exemple : percussions) dans une piste d'instrument + + + + Boost your bass the fast and simple way + Renforcer vos basses de la manière la plus simple et la plus rapide + + + + Customizable wavetable synthesizer + Synthétiseur de table d'ondes personnalisable + + + + An oversampling bitcrusher + Un bitcrusher sur-échantillonneur + + + + Carla Patchbay Instrument + Baie d'instruments Carla + + + + Carla Rack Instrument + Rack d'instruments Carla + + + + A dynamic range compressor. + Un compresseur de plage dynamique. + + + + A 4-band Crossover Equalizer + Un égaliseur crossover à 4 bandes + + + + A native delay plugin + Greffon délai natif + + + + A Dual filter plugin + Un greffon de filtre double + + + + plugin for processing dynamics in a flexible way + Greffon pour transformer la dynamique sonore de façon flexible + + + + A native eq plugin + Un greffon égaliseur natif + + + + A native flanger plugin + Un greffon flanger natif + + + + Emulation of GameBoy (TM) APU + Émulateur de l'APU de la GameBoy (TM) + + + + Player for GIG files + Lecteur de fichiers GIG + + + + Filter for importing Hydrogen files into LMMS + Filtre pour importer des fichiers Hydrogen dans LMMS + + + + Versatile drum synthesizer + Synthétiseur de batterie polyvalent + + + + List installed LADSPA plugins + Liste des greffons LADSPA installés + + + + plugin for using arbitrary LADSPA-effects inside LMMS. + Greffon pour l'utilisation de tout effet LADSPA dans LMMS. + + + + Incomplete monophonic imitation TB-303 + Une imitation monophonique incomplète de la TB-303 + + + + plugin for using arbitrary LV2-effects inside LMMS. + Greffon pour l'utilisation de tout effet LV2 dans LMMS. + + + + plugin for using arbitrary LV2 instruments inside LMMS. + Greffon pour l'utilisation de tout instrument LV2 dans LMMS. + + + + Filter for exporting MIDI-files from LMMS + Filtre pour l'exportation de fichiers MIDI depuis LMMS + + + + Filter for importing MIDI-files into LMMS + Filtre pour importer des fichiers MIDI dans LMMS + + + + Monstrous 3-oscillator synth with modulation matrix + Synthétiseur à 3 oscillateurs monstrueux avec matrice de modulation + + + + A multitap echo delay plugin + Un greffon d'écho et délai multitap + + + + A NES-like synthesizer + Un synthétiseur genre 'NES' + + + + 2-operator FM Synth + Synthé FM à 2 opérateurs + + + + Additive Synthesizer for organ-like sounds + Synthétiseur additif pour sons d'orgue + + + + GUS-compatible patch instrument + Sons d'instruments compatibles avec la carte Gravis UltraSound (GUS) + + + + Plugin for controlling knobs with sound peaks + Greffon pour des boutons de contrôles avec des crêtes de son + + + + Reverb algorithm by Sean Costello + Algorithme de réverbération par Sean Costello + + + + Player for SoundFont files + Lecteur de fichiers SoundFont + + + + LMMS port of sfxr + Port LMMS de sfxr + + + + Emulation of the MOS6581 and MOS8580 SID. +This chip was used in the Commodore 64 computer. + Émulateur des SID MOS6581 et MOS8580. +Cette puce était utilisée dans l'ordinateur Commodore 64. + + + + A graphical spectrum analyzer. + Un analyseur de spectre graphique + + + + Plugin for enhancing stereo separation of a stereo input file + Greffon pour l'amélioration de la séparation stéréo d'un fichier stéréo en entrée + + + + Plugin for freely manipulating stereo output + Greffon pour la manipulation de la sortie stéréo + + + + Tuneful things to bang on + Instruments à percussion mélodiques + + + + Three powerful oscillators you can modulate in several ways + Trois oscillateurs puissants que vous pouvez moduler de différentes manières + + + + A stereo field visualizer. + Un visualiseur de champ stéréo. + + + + VST-host for using VST(i)-plugins within LMMS + Hôte VST pour l'utilisation de greffons VST(i) dans LMMS + + + + Vibrating string modeler + Modeleur de corde vibrante + + + + plugin for using arbitrary VST effects inside LMMS. + Greffon pour l'utilisation de tout effet VST dans LMMS. + + + + 4-oscillator modulatable wavetable synth + Synthétiseur de table d'ondes modulables à 4 oscillateurs + + + + plugin for waveshaping + Greffon pour du modelage d'onde + + + + Mathematical expression parser + Analyseur d'expression mathématique + + + + Embedded ZynAddSubFX + ZynAddSubFX intégré + + + + An all-pass filter allowing for extremely high orders. + + + + + Granular pitch shifter + + + + + Upwards/downwards multiband compression plugin powered by the eldritch elder god LOMMUS. + + + + + Basic Slicer + + + + + Tap to the beat + + + + + PluginEdit + + + Plugin Editor + Éditeur de plugin + + + + Edit + Éditer + + + + Control + Contrôle + + + + MIDI Control Channel: + + + + + N + + + + + Output dry/wet (100%) + Sortie dry/wet(100%) + + + + Output volume (100%) + Volume de sorte (100%) + + + + Balance Left (0%) + Balance gauche (0%) + + + + + Balance Right (0%) + Balance droite (0%) + + + + Use Balance + Utiliser la balance + + + + Use Panning + Utiliser le panoramique + + + + Settings + Configuration + + + + Use Chunks + + + + + Audio: + Audio: + + + + Fixed-Size Buffer + Tampon à taille fixe + + + + Force Stereo (needs reload) + + + + + MIDI: + MIDI: + + + + Map Program Changes + + + + + Send Notes + + + + + Send Bank/Program Changes + + + + + Send Control Changes + + + + + Send Channel Pressure + + + + + Send Note Aftertouch + + + + + Send Pitchbend + + + + + Send All Sound/Notes Off + + + + + +Plugin Name + + +Nom du plugin + + + + + Program: + Programme: - - Plugin Version - Version du plugin + + MIDI Program: + Programme MIDI: - - <br>Version %1<br>Carla is a fully-featured audio plugin host%2.<br><br>Copyright (C) 2011-2019 falkTX<br> - <br>Version %1<br>Carla est un plugin audio complet host%2.<br><br>Copyright (C) 2011-2019 falkTX<br> + + Save State + Enregistrer l'état - - - (Engine not running) - (Le moteur ne fonctionne pas) + + Load State + Charger l'état - - Everything! (Including LRDF) - Tout ! (Y compris LRDF) + + Information + Information - - Everything! (Including CustomData/Chunks) - Tout ! (Y compris CustomData/Chunks) + + Label/URI: + Étiquette/URI: - - About 110&#37; complete (using custom extensions)<br/>Implemented Feature/Extensions:<ul><li>http://lv2plug.in/ns/ext/atom</li><li>http://lv2plug.in/ns/ext/buf-size</li><li>http://lv2plug.in/ns/ext/data-access</li><li>http://lv2plug.in/ns/ext/event</li><li>http://lv2plug.in/ns/ext/instance-access</li><li>http://lv2plug.in/ns/ext/log</li><li>http://lv2plug.in/ns/ext/midi</li><li>http://lv2plug.in/ns/ext/options</li><li>http://lv2plug.in/ns/ext/parameters</li><li>http://lv2plug.in/ns/ext/port-props</li><li>http://lv2plug.in/ns/ext/presets</li><li>http://lv2plug.in/ns/ext/resize-port</li><li>http://lv2plug.in/ns/ext/state</li><li>http://lv2plug.in/ns/ext/time</li><li>http://lv2plug.in/ns/ext/uri-map</li><li>http://lv2plug.in/ns/ext/urid</li><li>http://lv2plug.in/ns/ext/worker</li><li>http://lv2plug.in/ns/extensions/ui</li><li>http://lv2plug.in/ns/extensions/units</li><li>http://home.gna.org/lv2dynparam/rtmempool/v1</li><li>http://kxstudio.sf.net/ns/lv2ext/external-ui</li><li>http://kxstudio.sf.net/ns/lv2ext/programs</li><li>http://kxstudio.sf.net/ns/lv2ext/props</li><li>http://kxstudio.sf.net/ns/lv2ext/rtmempool</li><li>http://ll-plugins.nongnu.org/lv2/ext/midimap</li><li>http://ll-plugins.nongnu.org/lv2/ext/miditype</li></ul> - About 110&#37; complete (using custom extensions)<br/>Implemented Feature/Extensions:<ul><li>http://lv2plug.in/ns/ext/atom</li><li>http://lv2plug.in/ns/ext/buf-size</li><li>http://lv2plug.in/ns/ext/data-access</li><li>http://lv2plug.in/ns/ext/event</li><li>http://lv2plug.in/ns/ext/instance-access</li><li>http://lv2plug.in/ns/ext/log</li><li>http://lv2plug.in/ns/ext/midi</li><li>http://lv2plug.in/ns/ext/options</li><li>http://lv2plug.in/ns/ext/parameters</li><li>http://lv2plug.in/ns/ext/port-props</li><li>http://lv2plug.in/ns/ext/presets</li><li>http://lv2plug.in/ns/ext/resize-port</li><li>http://lv2plug.in/ns/ext/state</li><li>http://lv2plug.in/ns/ext/time</li><li>http://lv2plug.in/ns/ext/uri-map</li><li>http://lv2plug.in/ns/ext/urid</li><li>http://lv2plug.in/ns/ext/worker</li><li>http://lv2plug.in/ns/extensions/ui</li><li>http://lv2plug.in/ns/extensions/units</li><li>http://home.gna.org/lv2dynparam/rtmempool/v1</li><li>http://kxstudio.sf.net/ns/lv2ext/external-ui</li><li>http://kxstudio.sf.net/ns/lv2ext/programs</li><li>http://kxstudio.sf.net/ns/lv2ext/props</li><li>http://kxstudio.sf.net/ns/lv2ext/rtmempool</li><li>http://ll-plugins.nongnu.org/lv2/ext/midimap</li><li>http://ll-plugins.nongnu.org/lv2/ext/miditype</li></ul> + + Name: + Nom : - - - - Using Juce host - Utilisation de l'hôte Juce + + Type: + Type : - - About 85% complete (missing vst bank/presets and some minor stuff) - Environ 85% complété (banque de VST et de préréglages manquante et quelques éléments mineurs) + + Maker: + Créateur: + + + + Copyright: + Copyright : + + + + Unique ID: + - CarlaHostW + PluginFactory - - MainWindow - Fenêtre principale + + Plugin not found. + Greffon introuvable. - - Rack - Rack + + LMMS plugin %1 does not have a plugin descriptor named %2! + Le greffon LMMS %1 n'a pas de descripteur de greffon nommé %2 ! + + + PluginListDialog - - Patchbay - Baie de connexions + + Carla - Add New + - - Logs - Journaux + + Requirements + - - Loading... - Chargement... + + With Custom GUI + - - Buffer Size: - Taille du tampon : + + With CV Ports + - - Sample Rate: - Taux d'échantillonnage : + + Real-time safe only + - - ? Xruns - ? Xruns + + Stereo only + - - DSP Load: %p% - Chargement du DSP : %p% + + With Inline Display + - - &File - &Fichier + + Favorites only + - - &Engine - &Moteur + + (Number of Plugins go here) + - - &Plugin - &Plugin + + &Add Plugin + - - Macros (all plugins) - Macros (tous les plugins) + + Cancel + - - &Canvas - &Canvas + + Refresh + - - Zoom - Zoom + + Reset filters + - - &Settings - &Paramètres + + + + + + + + + + + + + + + + + TextLabel + - - &Help - &Aide + + Format: + + + + + Architecture: + + + + + Type: + + + + + MIDI Ins: + + + + + Audio Ins: + + + + + CV Outs: + + + + + MIDI Outs: + + + + + Parameter Ins: + + + + + Parameter Outs: + + + + + Audio Outs: + + + + + CV Ins: + + + + + UniqueID: + + + + + Has Inline Display: + + + + + Has Custom GUI: + + + + + Is Synth: + + + + + Is Bridged: + + + + + Information + + + + + Name + + + + + Label/Id/URI + + + + + Maker + + + + + Binary/Filename + + + + + Format + + + + + Internal + + + + + LADSPA + + + + + DSSI + + + + + LV2 + + + + + VST2 + + + + + VST3 + + + + + CLAP + + + + + AU + + + + + JSFX + + + + + Sound Kits + + + + + Type + + + + + Effects + + + + + Instruments + - - toolBar - Barre d'outils + + MIDI Plugins + - - Disk - Disque + + Other/Misc + - - - Home - Accueil + + Category + - - Transport - Transport + + All + - - Playback Controls - Contrôles de lecture + + Delay + - - Time Information - Information sur la durée + + Distortion + - - Frame: - Structure : + + Dynamics + - - 000'000'000 - 000'000'000 + + EQ + - - Time: - Durée : + + Filter + - - 00:00:00 - 00:00:00 + + Modulator + - - BBT: + + Synth - - 000|00|0000 - 000|00|0000 + + Utility + - - Settings - Configuration + + + Other + - - BPM - BPM + + Architecture + - - Use JACK Transport - Utiliser le transport JACK + + + Native + - - Use Ableton Link - Utiliser un lien Ableton + + Bridged + - - &New - &Nouveau + + Bridged (Wine) + - - Ctrl+N - Ctrl + N + + Focus Text Search + - - &Open... - &Ouvrir... + + Ctrl+F + - - - Open... - Ouvrir... + + Bridged (32bit) + - - Ctrl+O - Ctrl + O + + Discovering internal plugins... + - - &Save - &Enregistrer + + Discovering LADSPA plugins... + - - Ctrl+S - Ctrl + S + + Discovering DSSI plugins... + - - Save &As... - Enregistrer &sous... + + Discovering LV2 plugins... + - - - Save As... - Enregistrer sous... + + Discovering VST2 plugins... + - - Ctrl+Shift+S - Ctrl + Maj + S + + Discovering VST3 plugins... + - - &Quit - &Quitter + + Discovering CLAP plugins... + - - Ctrl+Q - Ctrl + Q + + Discovering AU plugins... + - - &Start - &Démarrer + + Discovering JSFX plugins... + - - F5 - F5 + + Discovering SF2 kits... + - - St&op - Arr&êter + + Discovering SFZ kits... + - - F6 - F6 + + Unknown + - - &Add Plugin... - &Ajouter un plugin... + + + + + Yes + - - Ctrl+A - Ctrl + A + + + + + No + + + + PluginParameter - - &Remove All - &Tout effacer + + Form + - - Enable - Activer + + Parameter Name + Nom du paramètre - - Disable - Désactiver + + TextLabel + - - 0% Wet (Bypass) - Niveau 0% (Contourner) + + ... + ... + + + PluginRefreshDialog - - 100% Wet - Niveau 100% + + Plugin Refresh + - - 0% Volume (Mute) - Volume à 0% (Muet) + + Search for: + - - 100% Volume - Volume à 100% + + All plugins, ignoring cache + - - Center Balance - Équilibre central + + Updated plugins only + - - &Play - &Jouer + + Check previously invalid plugins + - - Ctrl+Shift+P - Ctrl + Maj + P + + Press 'Scan' to begin the search + - - &Stop - &Arrêter + + Scan + - - Ctrl+Shift+X - Ctrl + Maj + X + + >> Skip + - - &Backwards - &Retour + + Close + + + + PluginWidget - - Ctrl+Shift+B - Ctrl + Maj + B + + + + + + Frame + - - &Forwards - &En avant + + Enable + Activer - - Ctrl+Shift+F - Ctrl + Maj + F + + On/Off + On/Off - - &Arrange - &Arranger + + + + + PluginName + - - Ctrl+G - Ctrl + G + + MIDI + MIDI - - - &Refresh - &Actualiser + + AUDIO IN + ENTRÉE AUDIO - - Ctrl+R - Ctrl + R + + AUDIO OUT + SORTIE AUDIO - - Save &Image... - Enregistrer &l'image... + + GUI + GUI - - Auto-Fit - Ajustement automatique + + Edit + Éditer - - Zoom In - Zoom avant + + Remove + Supprimer - - Ctrl++ - Ctrl + + + + Plugin Name + Nom du plugin - - Zoom Out - Zoom arrière + + Preset: + Préréglage: + + + ProjectRenderer - - Ctrl+- - Ctrl + - + + WAV (*.wav) + WAV (*.wav) - - Zoom 100% - Zoom 100% + + FLAC (*.flac) + FLAC (*.flac) - - Ctrl+1 - Ctrl + 1 + + OGG (*.ogg) + OGG (*.ogg) - - Show &Toolbar - Afficher la &barre d'outils + + MP3 (*.mp3) + MP3 (*.mp3) + + + QGroupBox - - &Configure Carla - &Configurer Carla + + + Settings for %1 + + + + QObject - - &About - &À propos + + Reload Plugin + Recharger le plugin - - About &JUCE - À propos de &JUCE + + Show GUI + Montrer l'interface graphique - - About &Qt - À propos de &Qt + + Help + Aide - - Show Canvas &Meters + + LADSPA plugins - - Show Canvas &Keyboard + + The project contains %1 LADSPA plugin(s) which might have not been restored correctly! Please check the project. - - Show Internal - Afficher l'intérieur - - - - Show External - Afficher l'extérieur + + URI: + - - Show Time Panel - Afficher le panneau horaire + + Project: + - - Show &Side Panel - Afficher le &panneau latéral + + Maker: + - - &Connect... - &Connecter... + + Homepage: + - - Compact Slots - Compacter les emplacements + + License: + - - Expand Slots - Élargir les emplacements + + File: %1 + - - Perform secret 1 - Effectuer le secret 1 + + failed to load description + - - Perform secret 2 - Effectuer le secret 2 + + Open audio file + - - Perform secret 3 - Effectuer le secret 3 + + Error loading sample + - - Perform secret 4 - Effectuer le secret 4 + + %1 (unsupported) + + + + QWidget - - Perform secret 5 - Effectuer le secret 5 + + + Name: + Nom : - - Add &JACK Application... - Ajouter l'application &JACK... + + Maker: + Fabricant : - - &Configure driver... - &Configurer le pilote... + + Copyright: + Copyright : - - Panic - + + Requires Real Time: + Nécessite le temps réel : - - Open custom driver panel... - Ouvrir le panneau personnalisé du pilote... + + + + Yes + Oui - - - CarlaHostWindow - - Export as... - Exporter sous... + + + + No + Non - - - - - Error - Erreur + + Real Time Capable: + Support temps réel : - - Failed to load project - Échec du chargement du projet + + In Place Broken: + Inutilisable : - - Failed to save project - Échec de l'enregistrement du projet + + Channels In: + Canaux d'entrée : - - Quit - Quitter + + Channels Out: + Canaux de sortie : - - Are you sure you want to quit Carla? - Êtes-vous sûr de vouloir quitter Carla ? + + File: %1 + Fichier : %1 - - Could not connect to Audio backend '%1', possible reasons: -%2 - Impossible de se connecter au backend audio "%1", raisons possibles : -%2 + + File: + Fichier : + + + XYControllerW - - Could not connect to Audio backend '%1' - Impossible de se connecter au backend audio "%1" + + XY Controller + - - Warning - Avertissement + + X Controls: + - - There are still some plugins loaded, you need to remove them to stop the engine. -Do you want to do this now? - Il y a encore quelques plugins chargés, vous devez les supprimer pour arrêter le moteur. -Voulez-vous le faire maintenant ? + + Y Controls: + - - - CarlaInstrumentView - - Show GUI - Montrer l'interface graphique + + Smooth + - - - CarlaSettingsW - - Settings - Configuration + + &Settings + - - main - principal + + Channels + - - canvas + + &File - - engine - moteur + + Show MIDI &Keyboard + - - osc - osc + + (All) + - - file-paths - chemins d'accès des fichiers + + 1 + - - plugin-paths - chemins d'accès des plugins + + 2 + - - wine - wine + + 3 + - - experimental - expérimental + + 4 + - - Widget - Widget + + 5 + - - - Main - Principal + + 6 + - - - Canvas + + 7 - - - Engine - Moteur + + 8 + - - File Paths - Chemins d'accès des fichiers + + 9 + - - Plugin Paths - chemins d'accès des plugins + + 10 + - - Wine - Wine + + 11 + - - - Experimental - Expérimental + + 12 + - - <b>Main</b> - <b>Principal</b> + + 13 + - - Paths - Chemins d'accès + + 14 + - - Default project folder: - Dossier de projet par défaut : + + 15 + - - Interface - Interface + + 16 + - - Interface refresh interval: - Intervalle de rafraîchissement de l'interface : + + &Quit + - - - ms - ms + + Esc + - - Show console output in Logs tab (needs engine restart) - Afficher la sortie de la console dans l'onglet Journaux (nécessite le redémarrage du moteur) + + (None) + + + + lmms::AmplifierControls - - Show a confirmation dialog before quitting - Afficher un dialogue de confirmation avant de quitter + + Volume + Volume - - - Theme - Thème + + Panning + Panoramisation - - Use Carla "PRO" theme (needs restart) - Utiliser le thème "PRO" de Carla (nécessite un redémarrage) + + Left gain + Gain de gauche - - Color scheme: - Schéma de couleurs : + + Right gain + Gain de droite + + + lmms::AudioFileProcessor - - Black - Noir + + Amplify + Amplifier - - System - Système + + Start of sample + Début de l'échantillon - - Enable experimental features - Activer les fonctions expérimentales + + End of sample + Fin de l'échantillon - - <b>Canvas</b> - + + Loopback point + Point de bouclage - - Bezier Lines - Lignes de Bézier + + Reverse sample + Inverser l'échantillon - - Theme: - Thème : + + Loop mode + Mode de bouclage - - Size: - Taille : + + Stutter + - - 775x600 - 775x600 + + Interpolation mode + Mode d'interpolation - - 1550x1200 - 1550x1200 + + None + Aucun - - 3100x2400 - 3100x2400 + + Linear + Linéaire - - 4650x3600 - 4650x3600 + + Sinc + Sync - - 6200x4800 - 6200x4800 + + Sample not found + + + + lmms::AudioJack - - Options - Options + + JACK client restarted + Le client JACK a redémarré - - Auto-hide groups with no ports - Masquer automatiquement les groupes sans ports + + LMMS was kicked by JACK for some reason. Therefore the JACK backend of LMMS has been restarted. You will have to make manual connections again. + - - Auto-select items on hover - Sélection automatique des éléments au passage de la souris + + JACK server down + Le serveur JACK est arrêté - - Basic eye-candy (group shadows) - + + The JACK server seems to have been shutdown and starting a new instance failed. Therefore LMMS is unable to proceed. You should save your project and restart JACK and LMMS. + Le serveur JACK semble avoir été arrêté et le démarrage d'une nouvelle instance a échoué. Par conséquent, LMMS ne peut pas continuer. Vous devriez enregistrer votre projet puis redémarrer JACK et LMMS. - - Render Hints - Indications de rendu + + Client name + Nom du client - - Anti-Aliasing - Anticrénelage + + Channels + Canaux + + + lmms::AudioOss - - Full canvas repaints (slower, but prevents drawing issues) - + + Device + Périphérique - - <b>Engine</b> - <b>Moteur</b> + + Channels + Canaux + + + lmms::AudioPortAudio::setupWidget - - - Core - Noyau + + Backend + - - Single Client - Client unique + + Device + Périphérique + + + lmms::AudioPulseAudio - - Multiple Clients - Clients multiples + + Device + Périphérique - - - Continuous Rack - Rack permanent + + Channels + Canaux + + + lmms::AudioSdl::setupWidget - - - Patchbay - Patchbay + + Playback device + - - Audio driver: - Pilote audio : + + Input device + + + + lmms::AudioSndio - - Process mode: - Mode de traitement : + + Device + Périphérique - - - - - Maximum number of parameters to allow in the built-in 'Edit' dialog - Nombre maximum de paramètres à autoriser dans la boîte de dialogue intégrée "Éditer" + + Channels + Canaux + + + lmms::AudioSoundIo::setupWidget - - Max Parameters: - Paramètres maximum : + + Backend + - - ... - ... + + Device + Périphérique + + + lmms::AutomatableModel - - Reset Xrun counter after project load - Réinitialiser le compteur Xrun après le chargement du projet + + &Reset (%1%2) + &Réinitialiser (%1%2) - - Plugin UIs - Interface utilisateur des plugins + + &Copy value (%1%2) + &Copier la valeur (%1%2) - - - How much time to wait for OSC GUIs to ping back the host - Temps d'attente pour que les interfaces graphiques de l'oscillateur renvoient l'hôte + + &Paste value (%1%2) + &Coller la valeur (%1%2) - - UI Bridge Timeout: - Délai d'attente du pont de I'interface utilisateur : + + &Paste value + &Coller la valeur - - Use OSC-GUI bridges when possible, this way separating the UI from DSP code - Utilisez les ponts OSC-GUI lorsque cela est possible, de manière à séparer l'interface utilisateur du code DSP + + Edit song-global automation + Éditer l'automation globale du morceau - - Use UI bridges instead of direct handling when possible - Utiliser les ponts de l'interface utilisateur au lieu de la gestion directe lorsque cela est possible + + Remove song-global automation + Supprimer l'automation globale du morceau - - Make plugin UIs always-on-top - Afficher les interfaces utilisateur des plugins au premier plan + + Remove all linked controls + Supprimer tous les contrôles liés - - Make plugin UIs appear on top of Carla (needs restart) - Afficher les interfaces utilisateur des plugins au-dessus de Carla (redémarrage nécessaire) + + Connected to %1 + Connecté à %1 - - NOTE: Plugin-bridge UIs cannot be managed by Carla on macOS - NOTE : les ponts des interfaces utilisateur des plugins ne peuvent pas être gérées par Carla sous MacOS + + Connected to controller + Connecté au contrôleur - - - Restart the engine to load the new settings - Redémarrez le moteur pour charger les nouveaux paramètres + + Edit connection... + Éditer la connexion... - - <b>OSC</b> - <b>OSC</b> + + Remove connection + Supprimer la connexion - - Enable OSC - Activer l'oscillateur + + Connect to controller... + Connecter le contrôleur... + + + lmms::AutomationClip - - Enable TCP port - Activer le port TCP + + Drag a control while pressing <%1> + Déplacer un contrôle en appuyant sur <%1> + + + lmms::AutomationTrack - - - Use specific port: - Utiliser un port spécifique : + + Automation track + Piste d'automation + + + lmms::BassBoosterControls - - Overridden by CARLA_OSC_TCP_PORT env var - Remplacé par la variable d'environnement CARLA_OSC_TCP_PORT + + Frequency + Fréquence - - - Use randomly assigned port - Utiliser un port attribué de manière aléatoire + + Gain + Gain - - Enable UDP port - Activer le port UDP + + Ratio + Ratio + + + lmms::BitInvader - - Overridden by CARLA_OSC_UDP_PORT env var - Remplacé par la variable d'environnement CARLA_OSC_UDP_PORT + + Sample length + Longueur de l'échantillon - - DSSI UIs require OSC UDP port enabled - Les interfaces utilisateur de DSSI nécessitent que le port UDP de l’oscillateur soit activé + + Interpolation + - - <b>File Paths</b> - <b>Chemins d'accès des fichiers</b> + + Normalize + + + + lmms::BitcrushControls - - Audio - Audio + + Input gain + Gain en entrée - - MIDI - MIDI + + Input noise + Bruit en entrée : - - Used for the "audiofile" plugin - Utilisé pour le plugin "audiofile" + + Output gain + Gain en sortie - - Used for the "midifile" plugin - Utilisé pour le plugin "midifile" + + Output clip + Clip de sortie - - - Add... - Ajouter... + + Sample rate + Taux d'échantillonnage - - - Remove - Supprimer + + Stereo difference + Différence stéréo - - - Change... - Modifier... + + Levels + Niveaux - - <b>Plugin Paths</b> - <b>Chemin d'accès des plugins</b> + + Rate enabled + Taux activé - - LADSPA - LADSPA + + Depth enabled + Profondeur activée + + + lmms::Clip - - DSSI - DSSI + + Mute + Mettre en sourdine + + + lmms::CompressorControls - - LV2 - LV2 + + Threshold + Seuil : - - VST2 - VST2 + + Ratio + Ratio - - VST3 - VST3 + + Attack + Attaque - - SF2/3 - SF2/3 + + Release + - - SFZ - SFZ + + Knee + - - Restart Carla to find new plugins - Redémarrez Carla pour trouver de nouveaux plugins + + Hold + - - <b>Wine</b> - <b>Wine</b> + + Range + - - Executable - Exécutable + + RMS Size + Taille RMS - - Path to 'wine' binary: - Chemin d'accès de "Wine" binaire : + + Mid/Side + - - Prefix - Préfixe + + Peak Mode + Mode crête - - Auto-detect Wine prefix based on plugin filename - Détection automatique du préfixe Wine basé sur le nom de fichier d'un plugin + + Lookahead Length + - - Fallback: - Option de secours : + + Input Balance + Balance d'entrée - - Note: WINEPREFIX env var is preferred over this fallback - Note : La variable d'environnement WINEPREFIX est préférable à cette option de secours + + Output Balance + Balance de sortie - - Realtime Priority - Priorité en temps réel + + Limiter + Limiteur - - Base priority: - Priorité de base : + + Output Gain + Gain en sortie - - WineServer priority: - Priorité du serveur Wine : + + Input Gain + Gain en entrée - - These options are not available for Carla as plugin - Ces options ne sont pas disponibles sous forme de plugin pour Carla + + Blend + Mélange - - <b>Experimental</b> - <b>Expérimental</b> + + Stereo Balance + Balance stéréo : - - Experimental options! Likely to be unstable! - Ces options sont expérimentales et sont probablement instables. + + Auto Makeup Gain + - - Enable plugin bridges - Activer les ponts des plugins + + Audition + - - Enable Wine bridges - Activer les ponts de Wine + + Feedback + - - Enable jack applications - Activer les applications jack + + Auto Attack + - - Export single plugins to LV2 - Exporter les plugins simples vers LV2 + + Auto Release + - - Load Carla backend in global namespace (NOT RECOMMENDED) - Charger l'arrière-plan de Carla dans l'espace de noms global (NON RECOMMANDÉ) + + Lookahead + - - Fancy eye-candy (fade-in/out groups, glow connections) + + Tilt - - Use OpenGL for rendering (needs restart) - Utiliser OpenGL pour le rendu (nécessite un redémarrage) + + Tilt Frequency + - - High Quality Anti-Aliasing (OpenGL only) - Anticrénelage de haute qualité (OpenGL uniquement) + + Stereo Link + Lien stéréo - - Render Ardour-style "Inline Displays" + + Mix + + + lmms::Controller - - Force mono plugins as stereo by running 2 instances at the same time. -This mode is not available for VST plugins. - Forcer les plugins mono à fonctionner en stéréo en exécutant simultanément 2 instances. -Ce mode n'est pas disponible pour les plugins VST. + + Controller %1 + + + + lmms::DelayControls - - Force mono plugins as stereo - Forcer les plugins mono à fonctionner en stéréo + + Delay samples + - - Prevent plugins from doing bad stuff (needs restart) - Empêcher les dysfonctionnements des plugins (nécessite un redémarrage) + + Feedback + - - Whenever possible, run the plugins in bridge mode. - Exécutez les plugins en mode bridge si cela est possible. + + LFO frequency + Fréquence du LFO : - - Run plugins in bridge mode when possible - Exécutez les plugins en mode bridge si cela est possible. + + LFO amount + Niveau du LFO - - - - - Add Path - Ajouter un chemin d'accès + + Output gain + Gain en sortie - CompressorControlDialog - - - Threshold: - Seuil : - - - - Volume at which the compression begins to take place - Volume à partir duquel la compression commence à se produire - + lmms::DispersionControls - - Ratio: - Ratio : + + Amount + Niveau - - How far the compressor must turn the volume down after crossing the threshold - De combien le compresseur doit réduire le volume après avoir franchi le seuil + + Frequency + Fréquence - - Attack: - Attaque : + + Resonance + Résonance - - Speed at which the compressor starts to compress the audio - Vitesse à laquelle le compresseur commence à compresser l'audio + + Feedback + - - Release: - Relâchement : + + DC Offset Removal + Suppression de la composante continue + + + lmms::DualFilterControls - - Speed at which the compressor ceases to compress the audio - Vitesse à laquelle le compresseur cesse de compresser l'audio + + Filter 1 enabled + Filtre 1 activé - - Knee: - + + Filter 1 type + Type du filtre 1 - - Smooth out the gain reduction curve around the threshold - Lisser la courbe de réduction du gain autour du seuil + + Cutoff frequency 1 + Fréquence de coupure 1 - - Range: - Gamme : + + Q/Resonance 1 + Q/Résonance 1 - - Maximum gain reduction - Réduction maximale du gain + + Gain 1 + Gain 1 - - Lookahead Length: - Durée de l'anticipation : + + Mix + Mix - - How long the compressor has to react to the sidechain signal ahead of time - Combien de temps le compresseur doit-il réagir au signal du sidechain à l'avance + + Filter 2 enabled + Filtre 2 activé - - Hold: - Maintien : + + Filter 2 type + Type du filtre 2 - - Delay between attack and release stages - Délai entre les phases d'attaque et de relâchement + + Cutoff frequency 2 + Fréquence de coupure 2 - - RMS Size: - Taille de la moyenne quadratique : + + Q/Resonance 2 + Q/Résonance 2 - - Size of the RMS buffer - Taille du tampon de la moyenne quadratique + + Gain 2 + Gain 2 - - Input Balance: - Balance d'entrée : + + + Low-pass + Passe-bas - - Bias the input audio to the left/right or mid/side - Polarise l'entrée audio vers la gauche/la droite ou le milieu/le côté + + + Hi-pass + Passe-haut - - Output Balance: - Balance de sortie : + + + Band-pass csg + Passe-bande CSG - - Bias the output audio to the left/right or mid/side - Polarise la sortie audio vers la gauche/la droite ou le milieu/le côté + + + Band-pass czpg + Passe-bande CZPG - - Stereo Balance: - Balance stéréo : + + + Notch + Coupe-bande - - Bias the sidechain signal to the left/right or mid/side - Polarise le signal du sidechain vers la gauche/la droite ou le milieu/le côté + + + All-pass + Passe-tout - - Stereo Link Blend: - + + + Moog + Moog - - Blend between unlinked/maximum/average/minimum stereo linking modes - + + + 2x Low-pass + 2x Passe-bas - - Tilt Gain: - + + + RC Low-pass 12 dB/oct + RC Passe-bas 12 dB/octave - - Bias the sidechain signal to the low or high frequencies. -6 db is lowpass, 6 db is highpass. - + + + RC Band-pass 12 dB/oct + RC Passe-bande 12 dB/octave - - Tilt Frequency: - + + + RC High-pass 12 dB/oct + RC Passe-haut 12 dB/octave - - Center frequency of sidechain tilt filter - + + + RC Low-pass 24 dB/oct + RC Passe-bas 24 dB/octave - - Mix: - + + + RC Band-pass 24 dB/oct + RC Passe-bande 24 dB/octave - - Balance between wet and dry signals - + + + RC High-pass 24 dB/oct + RC Passe-haut 24 dB/octave - - Auto Attack: + + + Vocal Formant - - Automatically control attack value depending on crest factor - + + + 2x Moog + 2x Moog - - Auto Release: - + + + SV Low-pass + SV Passe-bas - - Automatically control release value depending on crest factor - + + + SV Band-pass + SV Passe-bande - - Output gain - Gain en sortie + + + SV High-pass + SV Passe-haut - - - Gain - Gain + + + SV Notch + SV coupe-bande - - Output volume + + + Fast Formant - - Input gain - Gain en entrée - - - - Input volume - + + + Tripole + Tripôle + + + lmms::DynProcControls - - Root Mean Square - + + Input gain + Gain en entrée - - Use RMS of the input - + + Output gain + Gain en sortie - - Peak - + + Attack time + Temps d'attaque - - Use absolute value of the input + + Release time - - Left/Right - + + Stereo mode + Mode stéréo + + + lmms::Effect - - Compress left and right audio - + + Effect enabled + Effet activé - - Mid/Side - + + Wet/Dry mix + Mélange originel/traité - - Compress mid and side audio - + + Gate + Seuil - - Compressor + + Decay + + + lmms::EffectChain - - Compress the audio - + + Effects enabled + Effets activés + + + lmms::Engine - - Limiter - + + Generating wavetables + Génération des tables d'ondes - - Set Ratio to infinity (is not guaranteed to limit audio volume) - + + Initializing data structures + Initialisation des structures de données - - Unlinked - + + Opening audio and midi devices + Ouverture des périphériques audio et MIDI - - Compress each channel separately + + Launching audio engine threads + + + lmms::EnvelopeAndLfoParameters - - Maximum - + + Env pre-delay + Pré-délai de l'enveloppe - - Compress based on the loudest channel - + + Env attack + Attaque de l'enveloppe - - Average - + + Env hold + Maintien de enveloppe - - Compress based on the averaged channel volume + + Env decay - - Minimum + + Env sustain - - Compress based on the quietest channel + + Env release - - Blend - + + Env mod amount + Niveau de modulation de enveloppe - - Blend between stereo linking modes - + + LFO pre-delay + Pré-délai du LFO - - Auto Makeup Gain - + + LFO attack + Attaque du LFO - - Automatically change makeup gain depending on threshold, knee, and ratio settings - + + LFO frequency + Fréquence du LFO - - - Soft Clip - + + LFO mod amount + Niveau de modulation du LFO - - Play the delta signal - + + LFO wave shape + Forme d'onde du LFO - - Use the compressor's output as the sidechain input - + + LFO frequency x 100 + Fréquence du LFO x 100 - - Lookahead Enabled - + + Modulate env amount + Moduler le niveau de l'enveloppe - - Enable Lookahead, which introduces 20 milliseconds of latency + + Sample not found - CompressorControls - - - Threshold - - + lmms::EqControls - - Ratio - Ratio + + Input gain + Gain en entrée - - Attack - Attaque + + Output gain + Gain en sortie - - Release - Relâchement + + Low-shelf gain + Gain du low-shelf - - Knee - + + Peak 1 gain + Gain de crête 1 - - Hold - Maintien + + Peak 2 gain + Gain de crête 2 - - Range - + + Peak 3 gain + Gain de crête 3 - - RMS Size - + + Peak 4 gain + Gain de crête 4 - - Mid/Side - + + High-shelf gain + Gain du high-shelf - - Peak Mode - + + HP res + Résolution du passe-haut - - Lookahead Length - + + Low-shelf res + Résolution du low-shelf - - Input Balance - + + Peak 1 BW + Bande-passante du pic 1 - - Output Balance - + + Peak 2 BW + Bande-passante du pic 2 - - Limiter - + + Peak 3 BW + Bande-passante du pic 3 - - Output Gain - Gain en sortie + + Peak 4 BW + Bande-passante du pic 4 - - Input Gain - Gain en entrée + + High-shelf res + Résolution du high-shelf - - Blend - + + LP res + Résolution du passe-bas - - Stereo Balance - + + HP freq + Fréquence du passe-haut - - Auto Makeup Gain - + + Low-shelf freq + Fréquence du low-shelf - - Audition - + + Peak 1 freq + Fréquence de crête 1 - - Feedback - Réinjection + + Peak 2 freq + Fréquence de crête 2 - - Auto Attack - + + Peak 3 freq + Fréquence de crête 3 - - Auto Release - + + Peak 4 freq + Fréquence de crête 4 - - Lookahead - + + High-shelf freq + Fréquence du high-shelf - - Tilt - + + LP freq + Fréquence du passe-bas - - Tilt Frequency - + + HP active + Passe-haut actif - - Stereo Link - + + Low-shelf active + Low-shelf actif - - Mix - Mix + + Peak 1 active + Crête 1 active - - - Controller - - Controller %1 - Contrôleur %1 + + Peak 2 active + Crête 2 active - - - ControllerConnectionDialog - - Connection Settings - Configuration de la connexion + + Peak 3 active + Crête 3 active - - MIDI CONTROLLER - CONTRÔLEUR MIDI + + Peak 4 active + Crête 4 active - - Input channel - Canal d'entrée + + High-shelf active + High-shelf actif - - CHANNEL - CANAL + + LP active + Passe-bas actif - - Input controller - Contrôleur d'entrée + + LP 12 + Passe-bas 12 - - CONTROLLER - CONTRÔLEUR + + LP 24 + Passe-bas 24 - - - Auto Detect - Auto-détection + + LP 48 + Passe-bas 48 - - MIDI-devices to receive MIDI-events from - Périphériques MIDI desquels recevoir des événements MIDI + + HP 12 + Passe-haut 12 - - USER CONTROLLER - CONTRÔLEUR UTILISATEUR + + HP 24 + Passe-haut 24 - - MAPPING FUNCTION - FONCTION DE MAPPAGE + + HP 48 + Passe-haut 48 - - OK - OK + + Low-pass type + type de passe-bas - - Cancel - Annuler + + High-pass type + type de passe-haut - - LMMS - LMMS + + Analyse IN + Analyse de l'entrée - - Cycle Detected. - Un cycle a été détecté. + + Analyse OUT + Analyse de la sortie - ControllerRackView + lmms::FlangerControls - - Controller Rack - Rack de contrôleurs + + Delay samples + Délai d'échantillonnage - - Add - Ajouter + + LFO frequency + Fréquence du LFO - - Confirm Delete - Confirmer la suppression + + Amount + - - Confirm delete? There are existing connection(s) associated with this controller. There is no way to undo. - Confirmer la suppression ? Il existe des connection(s) associée(s) avec ce contrôleur. Il n'est pas possible d'annuler cette action. + + Stereo phase + Phase stéréo - - - ControllerView - - Controls - Contrôles + + Feedback + - - Rename controller - Renommer un contrôleur + + Noise + Bruit - - Enter the new name for this controller - Entrez un nouveau nom pour ce contrôleur + + Invert + Inverser + + + + lmms::FreeBoyInstrument + + + Sweep time + Temps de balayage - - LFO - LFO + + Sweep direction + Sens de balayage - - &Remove this controller - Supp&rimer ce contrôleur + + Sweep rate shift amount + Niveau de décalage du taux de balayage - - Re&name this controller - Re&nommer ce contrôleur + + + Wave pattern duty cycle + - - - CrossoverEQControlDialog - - Band 1/2 crossover: - Fréquence de croisement des bandes 1/2 : + + Channel 1 volume + Volume du canal 1 - - Band 2/3 crossover: - Fréquence de croisement des bandes 2/3 : + + + + Volume sweep direction + - - Band 3/4 crossover: - Fréquence de croisement des bandes 3/4 : + + + + Length of each step in sweep + - - Band 1 gain - Gain de la bande 1 + + Channel 2 volume + Volume du canal 2 - - Band 1 gain: - Gain de la bande 1 : + + Channel 3 volume + Volume du canal 3 - - Band 2 gain - Gain de la bande 2 + + Channel 4 volume + Volume du canal 4 - - Band 2 gain: - Gain de la bande 2 : + + Shift Register width + Largeur du registre de décalage - - Band 3 gain - Gain de la bande 3 + + Right output level + Niveau de sortie droite - - Band 3 gain: - Gain de la bande 3 : + + Left output level + Niveau de sortie gauche - - Band 4 gain - Gain de la bande 4 + + Channel 1 to SO2 (Left) + Canal 1 vers SO2 (gauche) - - Band 4 gain: - Gain de la bande 4 : + + Channel 2 to SO2 (Left) + Canal 2 vers SO2 (gauche) - - Band 1 mute - Bande 1 en sourdine + + Channel 3 to SO2 (Left) + Canal 3 vers SO2 (gauche) - - Mute band 1 - Mettre la bande 1 en sourdine + + Channel 4 to SO2 (Left) + Canal 4 vers SO2 (gauche) - - Band 2 mute - Mettre la bande 2 en sourdine + + Channel 1 to SO1 (Right) + Canal 1 vers SO1 (droite) - - Mute band 2 - + + Channel 2 to SO1 (Right) + Canal 2 vers SO1 (droite) - - Band 3 mute - + + Channel 3 to SO1 (Right) + Canal 3 vers SO1 (droite) - - Mute band 3 - + + Channel 4 to SO1 (Right) + Canal 4 vers SO1 (droite) - - Band 4 mute - + + Treble + Aigus - - Mute band 4 - + + Bass + Graves - DelayControls - - - Delay samples - - + lmms::GigInstrument - - Feedback - Réinjection + + Bank + Banque - - LFO frequency + + Patch - - LFO amount - Niveau LFO - - - - Output gain - Gain en sortie + + Gain + Gain - DelayControlsDialog + lmms::GranularPitchShifterControls - - DELAY - DE RETARD + + Pitch + - - Delay time + + Grain Size - - FDBK - FDBK + + Spray + - - Feedback amount + + Jitter - - RATE - TAUX + + Twitch + - - LFO frequency + + Pitch Stereo Spread - - AMNT - AMNT + + Spray Stereo + - - LFO amount - Niveau LFO + + Shape + - - Out gain - Gain en sortie + + Fade Length + - - Gain - Gain + + Feedback + - - - Dialog - - Add JACK Application + + Minimum Allowed Latency - - Note: Features not implemented yet are greyed out + + Prefilter - - Application - Application + + Density + - - Name: + + Glide - - Application: + + Ring Buffer Length - - From template + + 5 Seconds - - Custom + + 10 Seconds (Size) - - Template: + + 40 Seconds (Size and Pitch) - - Command: + + 40 Seconds (Size and Spray and Jitter) - - Setup + + 120 Seconds (All of the above) + + + lmms::InstrumentFunctionArpeggio - - Session Manager: - + + Arpeggio + Arpège - - None - Aucun + + Arpeggio type + Type d'arpège - - Audio inputs: - Entrées audio : + + Arpeggio range + Plage d'arpège - - MIDI inputs: - Entrées MIDI : + + Note repeats + Répétition de note - - Audio outputs: + + Cycle steps - - MIDI outputs: - + + Skip rate + Taux de saut - - Take control of main application window - + + Miss rate + Taux de manqué - - Workarounds - + + Arpeggio time + Temps d'arpège - - Wait for external application start (Advanced, for Debug only) - + + Arpeggio gate + Durée d'arpège - - Capture only the first X11 Window - + + Arpeggio direction + Direction de l'arpège - - Use previous client output buffer as input for the next client - Utiliser le tampon de sortie du client précédent comme entrée pour le client suivant + + Arpeggio mode + Mode d'arpège - - Simulate 16 JACK MIDI outputs, with MIDI channel as port index - + + Up + Ascendant - - Error here - + + Down + Descendant - - Carla Control - Connect - + + Up and down + Ascendant et descendant - - Remote setup - + + Down and up + Descendant et ascendant - - UDP Port: - + + Random + Aléatoire - - Remote host: - + + Free + Libre - - TCP Port: - + + Sort + Tri - - Reported host - + + Sync + Sync + + + lmms::InstrumentFunctionNoteStacking - - Automatic - + + Chords + Accords - - Custom: - + + Chord type + Type d'accord - - In some networks (like USB connections), the remote system cannot reach the local network. You can specify here which hostname or IP to make the remote Carla connect to. -If you are unsure, leave it as 'Automatic'. - + + Chord range + Gamme d'accord + + + lmms::InstrumentSoundShaping - - Set value - Mode valeur + + Envelopes/LFOs + Enveloppes/LFOs + + + + Filter type + Type de filtre + + + + Cutoff frequency + Fréquence de coupure + + + + Q/Resonance + Q/Résonance - - TextLabel - TextLabel + + Low-pass + Passe-bas - - Scale Points - + + Hi-pass + Passe-haut - - - DriverSettingsW - - Driver Settings - + + Band-pass csg + Passe-bande CSG - - Device: - + + Band-pass czpg + Passe-bande czpg - - Buffer size: - + + Notch + Coupe-bande - - Sample rate: - Taux d'échantillonnage : + + All-pass + Passe-tout - - Triple buffer - + + Moog + Moog - - Show Driver Control Panel - + + 2x Low-pass + 2x Passe-bas - - Restart the engine to load the new settings - Redémarrez le moteur pour charger les nouveaux paramètres + + RC Low-pass 12 dB/oct + RC Passe-bas 12 dB/octave - - - DualFilterControlDialog - - - FREQ - FRÉQ + + RC Band-pass 12 dB/oct + RC Passe-bande 12 dB/octave - - - Cutoff frequency - Fréquence de coupure + + RC High-pass 12 dB/oct + RC Passe-haut 12 dB/octave - - - RESO - RÉSON + + RC Low-pass 24 dB/oct + RC Passe-bas 24 dB/octave - - - Resonance - Résonance + + RC Band-pass 24 dB/oct + RC Passe-bande 24 dB/octave - - - GAIN - GAIN + + RC High-pass 24 dB/oct + RC Passe-haut 24 dB/octave - - - Gain - Gain + + Vocal Formant + - - MIX - MIX + + 2x Moog + 2x Moog - - Mix - Mix + + SV Low-pass + SV Passe-bas - - Filter 1 enabled - Filtre 1 activé + + SV Band-pass + SV Passe-bande - - Filter 2 enabled - Filtre 2 activé + + SV High-pass + SV Passe-haut - - Enable/disable filter 1 - + + SV Notch + SV coupe-bande - - Enable/disable filter 2 + + Fast Formant + + + Tripole + Tripôle + - DualFilterControls + lmms::InstrumentTrack - - Filter 1 enabled - Filtre 1 activé + + + unnamed_track + - - Filter 1 type - Type du filtre 1 + + Base note + Note de base - - Cutoff frequency 1 - + + First note + Première note - - Q/Resonance 1 - Q/Résonance 1 + + Last note + Dernière note - - Gain 1 - Gain 1 + + Volume + Volume - - Mix - Mix + + Panning + Panoramisation - - Filter 2 enabled - Filtre 2 activé + + Pitch + Tonalité - - Filter 2 type - Type du filtre 2 + + Pitch range + Plage de tonalité - - Cutoff frequency 2 - + + Mixer channel + Canal du mixeur - - Q/Resonance 2 - Q/Résonance 2 + + Master pitch + Tonalité générale - - Gain 2 - Gain 2 + + Enable/Disable MIDI CC + Activer/désactiver MIDI CC - - - Low-pass - Passe-bas + + CC Controller %1 + - - - Hi-pass - Passe-haut + + + Default preset + Pré-réglage par défaut + + + lmms::Keymap - - - Band-pass csg - Passe-bande "csg" + + empty + + + + lmms::KickerInstrument - - - Band-pass czpg - Passe-bande "czpg" + + Start frequency + Fréquence de début - - - Notch - Coupe-bande + + End frequency + Fréquence de fin - - - All-pass - Passe-tout + + Length + Longueur - - - Moog - Moog + + Start distortion + Début de la distorsion - - - 2x Low-pass - Passe-bas x2 + + End distortion + Fin de la distorsion - - - RC Low-pass 12 dB/oct - RC Passe-bas 12 dB + + Gain + Gain - - - RC Band-pass 12 dB/oct - RC Passe-bande 12 dB + + Envelope slope + Pente de l'enveloppe - - - RC High-pass 12 dB/oct - RC Passe-haut 12 dB + + Noise + Bruit - - - RC Low-pass 24 dB/oct - RC Passe-bas 24 dB + + Click + Clic - - - RC Band-pass 24 dB/oct - RC Passe-bande 24 dB + + Frequency slope + Pente de fréquence - - - RC High-pass 24 dB/oct - RC Passe-haut 24 dB + + Start from note + Commencer à la note - - - Vocal Formant - Formant vocal + + End to note + Finir à la note + + + lmms::LOMMControls - - - 2x Moog - 2x Moog + + Depth + - - - SV Low-pass - SV Passe-bas + + Time + - - - SV Band-pass - SV Passe-bande + + Input Volume + - - - SV High-pass - SV Passe-bas + + Output Volume + - - - SV Notch - SV coupe-bande + + Upward Depth + - - - Fast Formant - Formant rapide + + Downward Depth + - - - Tripole - Tripôle + + High/Mid Split + - - - Editor - - Transport controls - Contrôle du transport + + Mid/Low Split + - - Play (Space) - Jouer (barre d'espace) + + Enable High/Mid Split + - - Stop (Space) - Arrêter (barre d'espace) + + Enable Mid/Low Split + - - Record - Enregistrer + + Enable High Band + - - Record while playing - Enregistrer en jouant + + Enable Mid Band + - - Toggle Step Recording + + Enable Low Band - - - Effect - - Effect enabled - Effet activé + + High Input Volume + - - Wet/Dry mix - Mélange originel/traité + + Mid Input Volume + - - Gate - Seuil + + Low Input Volume + - - Decay - Affaiblissement (decay) + + High Output Volume + - - - EffectChain - - Effects enabled - Effets activés + + Mid Output Volume + - - - EffectRackView - - EFFECTS CHAIN - CHAÎNE D'EFFETS + + Low Output Volume + - - Add effect - Ajouter un effet + + Above Threshold High + - - - EffectSelectDialog - - Add effect - Ajouter un effet + + Above Threshold Mid + - - - Name - Nom + + Above Threshold Low + - - Type - Type + + Above Ratio High + - - Description - Description + + Above Ratio Mid + - - Author - Auteur + + Above Ratio Low + - - - EffectView - - On/Off - On/Off + + Below Threshold High + - - W/D - W/D + + Below Threshold Mid + - - Wet Level: - Niveau avec effet : + + Below Threshold Low + - - DECAY - DECAY + + Below Ratio High + - - Time: - Durée : + + Below Ratio Mid + - - GATE - GATE + + Below Ratio Low + - - Gate: - Gate : + + Attack High + - - Controls - Contrôles + + Attack Mid + - - Move &up - Déplacer vers le &haut + + Attack Low + - - Move &down - Déplacer vers le &bas + + Release High + - - &Remove this plugin - &Supprimer cet effet + + Release Mid + - - - EnvelopeAndLfoParameters - - Env pre-delay + + Release Low - - Env attack + + RMS Time - - Env hold + + Knee - - Env decay - Affaiblissement de l'enveloppe + + Range + - - Env sustain + + Balance - - Env release + + Scale output volume with Depth - - Env mod amount + + Stereo Link - - LFO pre-delay + + Auto Time - - LFO attack + + Mix - - LFO frequency + + Feedback - - LFO mod amount + + Mid/Side - - LFO wave shape + + Lookahead - - LFO frequency x 100 + + Lookahead Length - - Modulate env amount + + Suppress upward compression for side band - EnvelopeAndLfoView + lmms::LadspaControl - - - DEL - DEL + + Link channels + Lier les canaux + + + lmms::LadspaEffect - - - Pre-delay: - + + Unknown LADSPA plugin %1 requested. + Le greffon LADSPA %1 demandé est inconnu. + + + lmms::Lb302Synth - - - ATT - ATT + + VCF Cutoff Frequency + Fréquence de coupure du VCF - - - Attack: - Attaque : + + VCF Resonance + Résonance du VCF - - HOLD - HOLD + + VCF Envelope Mod + Modulation de l'enveloppe du VCF - - Hold: - Maintien : + + VCF Envelope Decay + Decay de l'enveloppe du VCF - - DEC - DEC + + Distortion + Distorsion - - Decay: - Affaiblissement (decay) : + + Waveform + Forme d'onde - - SUST - SUST + + Slide Decay + - - Sustain: - Soutien : + + Slide + - - REL - REL + + Accent + Accent - - Release: - Relâchement : + + Dead + - - - AMT - AMT + + 24dB/oct Filter + Filtre 24 dB/octave + + + lmms::LfoController - - - Modulation amount: - Niveau de modulation : + + LFO Controller + Contrôleur du LFO - - SPD - SPD + + Base value + Valeur de base - - Frequency: - Fréquence : + + Oscillator speed + Vitesse de l'oscillateur - - FREQ x 100 - FRÉQ x 100 + + Oscillator amount + Niveau de l'oscillateur - - Multiply LFO frequency by 100 - + + Oscillator phase + Phase de l'oscillateur - - MODULATE ENV AMOUNT - + + Oscillator waveform + Forme d'onde de l'oscillateur - - Control envelope amount by this LFO + + Frequency Multiplier + Multiplicateur de fréquence + + + + Sample not found + + + lmms::MalletsInstrument - - ms/LFO: - ms/LFO : + + Hardness + Dureté - - Hint - Astuce + + Position + Position - - Drag and drop a sample into this window. + + Vibrato gain + Gain du vibrato + + + + Vibrato frequency + Fréquence du vibrato + + + + Stick mix + + + + + Modulator + Modulateur + + + + Crossfade - - - EqControls - - Input gain - Gain en entrée + + LFO speed + Vitesse du LFO - - Output gain - Gain en sortie + + LFO depth + Profondeur du LFO - - Low-shelf gain - + + ADSR + ADSR - - Peak 1 gain - Gain de crête 1 + + Pressure + Pression - - Peak 2 gain - Gain de crête 2 + + Motion + Mouvement - - Peak 3 gain - Gain de crête 3 + + Speed + Vitesse - - Peak 4 gain - Gain de crête 4 + + Bowed + - - High-shelf gain + + Instrument - - HP res - PH rés + + Spread + Diffusion - - Low-shelf res + + Randomness - - Peak 1 BW - Bande-passante du pic 1 + + Marimba + Marimba - - Peak 2 BW - Bande-passante du pic 2 + + Vibraphone + Vibraphone - - Peak 3 BW - Bande-passante du pic 3 + + Agogo + Agogo - - Peak 4 BW - Bande-passante du pic 4 + + Wood 1 + Bois 1 - - High-shelf res - + + Reso + Résonance - - LP res - Rés. du passe-base + + Wood 2 + Bois 2 - - HP freq - Fréquence du passe-haut + + Beats + Temps - - Low-shelf freq + + Two fixed - - Peak 1 freq - Fréquence de crête 1 + + Clump + - - Peak 2 freq - Fréquence de crête 2 + + Tubular bells + Cloches tubulaires - - Peak 3 freq - Fréquence de crête 3 + + Uniform bar + Mesure uniforme - - Peak 4 freq - Fréquence de crête 4 + + Tuned bar + Mesure accordée - - High-shelf freq - + + Glass + Verre - - LP freq - Fréq. passe-base + + Tibetan bowl + Bol tibétain + + + lmms::MeterModel - - HP active - Passe-haut actif + + Numerator + Numérateur - - Low-shelf active - + + Denominator + Dénominateur + + + lmms::Microtuner - - Peak 1 active - Crête 1 active + + Microtuner + Micro-tuner - - Peak 2 active - Crête 2 active + + Microtuner on / off + Micro-tuner marche/arrêt - - Peak 3 active - Crête 3 active + + Selected scale + Gamme sélectionné - - Peak 4 active - Crête 4 active + + Selected keyboard mapping + Configuration du clavier sélectionné + + + lmms::MidiController - - High-shelf active + + MIDI Controller + Contrôleur MIDI + + + + unnamed_midi_controller + + + lmms::MidiImport - - LP active - Passe-bas actif + + + Setup incomplete + Paramétrage incomplet - - LP 12 - Passe-bas 12 + + You have not set up a default soundfont in the settings dialog (Edit->Settings). Therefore no sound will be played back after importing this MIDI file. You should download a General MIDI soundfont, specify it in settings dialog and try again. + Vous n'avez pas choisi de SoundFont par défaut dans la boîte de dialogue de configuration (Éditer -> Configuration). Par conséquent aucun son ne sera joué lorsque vous aurez importé ce fichier MIDI. Vous devriez télécharger une Soundfont General MIDI, la référencer dans la configuration et réessayer. - - LP 24 - Passe-bas 24 + + You did not compile LMMS with support for SoundFont2 player, which is used to add default sound to imported MIDI files. Therefore no sound will be played back after importing this MIDI file. + Vous n'avez pas compilé LMMS avec la prise en charge du lecteur SoundFont2, qui est utilisé pour ajouter un son par défaut aux fichiers MIDI importés. Par conséquent aucun son ne sera joué après l'importation de ce fichier MIDI. - - LP 48 - Passe-bas 48 + + MIDI Time Signature Numerator + Numérateur de la signature rythmique MIDI - - HP 12 - Passe-haut 12 + + MIDI Time Signature Denominator + Dénominateur de la signature rythmique MIDI - - HP 24 - Passe-haut 24 + + Numerator + Numérateur - - HP 48 - Passe-haut 48 + + Denominator + Dénominateur - - Low-pass type - + + + Tempo + Tempo - - High-pass type - + + Track + Piste + + + lmms::MidiJack - - Analyse IN - Analyse d'entrée + + JACK server down + When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (title) + Le serveur JACK est arrêté - - Analyse OUT - Analyse de sortie + + The JACK server seems to be shuted down. + When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (dialog message) + Le serveur JACK semble avoir été coupé - EqControlsDialog + lmms::MidiPort - - HP - PH + + Input channel + Canal d'entrée - - Low-shelf - + + Output channel + Canal de sortie - - Peak 1 - Crête 1 + + Input controller + Contrôleur d'entrée - - Peak 2 - Crête 2 + + Output controller + Contrôleur de sortie - - Peak 3 - Crête 3 + + Fixed input velocity + Vélocité d'entrée fixe - - Peak 4 - Crête 4 + + Fixed output velocity + Vélocité de sortie fixe - - High-shelf - + + Fixed output note + Note de sortie fixe - - LP - Passe-bas + + Output MIDI program + Programme MIDI de sortie - - Input gain - Gain en entrée + + Base velocity + Vélocité de base - - - - Gain - Gain + + Receive MIDI-events + Recevoir des événements MIDI - - Output gain - Gain en sortie + + Send MIDI-events + Envoyer des événements MIDI + + + lmms::Mixer - - Bandwidth: - Largeur de bande : + + Master + Général - - Octave - Octave + + + + Channel %1 + Canal %1 - - Resonance : - Résonance : + + Volume + Volume - - Frequency: - Fréquence : + + Mute + Mettre en sourdine - - LP group - + + Solo + Solo + + + lmms::MixerRoute - - HP group - + + + Amount to send from channel %1 to channel %2 + Quantité à envoyer du canal %1 au canal %2 - EqHandle + lmms::MonstroInstrument - - Reso: - Réso : + + Osc 1 volume + Volume de l'oscillateur 1 - - BW: - Bande-passante : + + Osc 1 panning + Panoramisation de l'oscillateur 1 - - - Freq: - Fréquence : + + Osc 1 coarse detune + Désaccordage grossier de l'oscillateur 1 - - - ExportProjectDialog - - Export project - Exporter le projet + + Osc 1 fine detune left + Désaccordage fin de gauche de l'oscillateur 1 - - Export as loop (remove extra bar) - + + Osc 1 fine detune right + Désaccordage fin de droite de l'oscillateur 1 - - Export between loop markers - Exporter la section entre les marqueurs de boucle + + Osc 1 stereo phase offset + Décalage de phase stéréo de l'oscillateur 1 - - Render Looped Section: - + + Osc 1 pulse width + Largeur de la pulsation de l'oscillateur 1 - - time(s) - + + Osc 1 sync send on rise + Synchronisation envoyée lors de la montée de l'oscillateur 1 - - File format settings - + + Osc 1 sync send on fall + Synchronisation envoyée lors de la descente de l'oscillateur 1 - - File format: - Format de fichier : + + Osc 2 volume + Volume de l'oscillateur 2 - - Sampling rate: - + + Osc 2 panning + Panoramisation de l'oscillateur 2 - - 44100 Hz - 44100 Hz + + Osc 2 coarse detune + Désaccordage grossier de l'oscillateur 2 - - 48000 Hz - 48000 Hz + + Osc 2 fine detune left + Désaccordage fin de gauche de l'oscillateur 2 - - 88200 Hz - 88200 Hz + + Osc 2 fine detune right + Désaccordage fin de droite de l'oscillateur 2 - - 96000 Hz - 96000 Hz + + Osc 2 stereo phase offset + Décalage de phase stéréo de l'oscillateur 2 - - 192000 Hz - 192000 Hz + + Osc 2 waveform + Forme d'onde de l'oscillateur 2 - - Bit depth: + + Osc 2 sync hard - - 16 Bit integer + + Osc 2 sync reverse - - 24 Bit integer - + + Osc 3 volume + Volume de l'oscillateur 3 - - 32 Bit float - + + Osc 3 panning + Panoramisation de l'oscillateur 3 - - Stereo mode: - Mode stéréo : + + Osc 3 coarse detune + Désaccordage grossier de l'oscillateur 3 - - Mono - Mono + + Osc 3 Stereo phase offset + Décalage de phase stéréo de l'oscillateur 3 - - Stereo - Stéréo + + Osc 3 sub-oscillator mix + Mélange du sous-oscillateur de l'oscillateur 3 - - Joint stereo - + + Osc 3 waveform 1 + Forme d'onde 1 de l'oscillateur 3 - - Compression level: - Niveau de compression : + + Osc 3 waveform 2 + Forme d'onde 2 de l'oscillateur 3 - - Bitrate: - Débit : + + Osc 3 sync hard + - - 64 KBit/s - 64 kbit/s + + Osc 3 Sync reverse + - - 128 KBit/s - 128 kbit/s + + LFO 1 waveform + Forme d'onde du LFO 1 - - 160 KBit/s - 160 kbit/s + + LFO 1 attack + Attaque du LFO 1 - - 192 KBit/s - 192 kbit/s + + LFO 1 rate + Taux du LFO 1 - - 256 KBit/s - 256 kbit/s + + LFO 1 phase + Phase du LFO 1 - - 320 KBit/s - 320 kbit/s + + LFO 2 waveform + Forme d'onde du LFO 2 - - Use variable bitrate - Utiliser un taux variable + + LFO 2 attack + Attaque du LFO 2 - - Quality settings - Réglages de qualité + + LFO 2 rate + Taux du LFO 2 - - Interpolation: - Interpolation : + + LFO 2 phase + Phase du LFO2 - - Zero order hold - + + Env 1 pre-delay + Pré-délai de l'enveloppe 1 - - Sinc worst (fastest) - + + Env 1 attack + Attaque de l'enveloppe 1 - - Sinc medium (recommended) + + Env 1 hold + Maintien de enveloppe 1 + + + + Env 1 decay - - Sinc best (slowest) + + Env 1 sustain - - Oversampling: + + Env 1 release - - 1x (None) - 1x (Aucun) + + Env 1 slope + Pente de l'enveloppe 1 - - 2x - 2x + + Env 2 pre-delay + - - 4x - 4x + + Env 2 attack + - - 8x - 8x + + Env 2 hold + - - Start - Démarrer + + Env 2 decay + - - Cancel - Annuler + + Env 2 sustain + - - Could not open file - Le fichier n'a pas pu être ouvert + + Env 2 release + - - Could not open file %1 for writing. -Please make sure you have write permission to the file and the directory containing the file and try again! - Impossible d'ouvrir le fichier %1 en écriture. -Veuillez vous assurez que vous avez les droits d'écriture sur le fichier et le dossier contenant le fichier, et essayez à nouveau ! + + Env 2 slope + - - Export project to %1 - Exporter le projet vers %1 + + Osc 2+3 modulation + - - ( Fastest - biggest ) + + Selected view - - ( Slowest - smallest ) + + Osc 1 - Vol env 1 - - Error - Erreur + + Osc 1 - Vol env 2 + - - Error while determining file-encoder device. Please try to choose a different output format. - Erreur pendant la détection du périphérique d'encodage du fichier. Veuillez essayer de choisir un format de sortie différent. + + Osc 1 - Vol LFO 1 + - - Rendering: %1% - Encodage : %1% + + Osc 1 - Vol LFO 2 + - - - Fader - - Set value - Mode valeur + + Osc 2 - Vol env 1 + - - Please enter a new value between %1 and %2: - Veuillez entrer une valeur entre %1 et %2 : + + Osc 2 - Vol env 2 + - - - FileBrowser - - User content + + Osc 2 - Vol LFO 1 - - Factory content + + Osc 2 - Vol LFO 2 - - Browser - Explorateur + + Osc 3 - Vol env 1 + - - Search - Chercher + + Osc 3 - Vol env 2 + - - Refresh list - Rafraîchir la liste + + Osc 3 - Vol LFO 1 + - - - FileBrowserTreeWidget - - Send to active instrument-track - Envoyer vers la piste d'instrument actif + + Osc 3 - Vol LFO 2 + - - Open containing folder + + Osc 1 - Phs env 1 - - Song Editor - Éditeur de morceau + + Osc 1 - Phs env 2 + - - BB Editor + + Osc 1 - Phs LFO 1 - - Send to new AudioFileProcessor instance + + Osc 1 - Phs LFO 2 - - Send to new instrument track + + Osc 2 - Phs env 1 - - (%2Enter) + + Osc 2 - Phs env 2 - - Send to new sample track (Shift + Enter) + + Osc 2 - Phs LFO 1 - - Loading sample - Chargement de l'échantillon + + Osc 2 - Phs LFO 2 + - - Please wait, loading sample for preview... - Veuillez patienter, chargement de l'échantillon pour un aperçu... + + Osc 3 - Phs env 1 + - - Error - Erreur + + Osc 3 - Phs env 2 + - - %1 does not appear to be a valid %2 file + + Osc 3 - Phs LFO 1 - - --- Factory files --- - --- Fichiers usine --- + + Osc 3 - Phs LFO 2 + - - - FlangerControls - - Delay samples + + Osc 1 - Pit env 1 - - LFO frequency + + Osc 1 - Pit env 2 - - Seconds - Secondes + + Osc 1 - Pit LFO 1 + - - Stereo phase + + Osc 1 - Pit LFO 2 - - Regen - Régén + + Osc 2 - Pit env 1 + - - Noise - Bruit + + Osc 2 - Pit env 2 + - - Invert - Inverser + + Osc 2 - Pit LFO 1 + - - - FlangerControlsDialog - - DELAY - DE RETARD + + Osc 2 - Pit LFO 2 + - - Delay time: + + Osc 3 - Pit env 1 - - RATE - TAUX + + Osc 3 - Pit env 2 + - - Period: - Période : + + Osc 3 - Pit LFO 1 + - - AMNT - AMNT + + Osc 3 - Pit LFO 2 + - - Amount: - Montant : + + Osc 1 - PW env 1 + - - PHASE + + Osc 1 - PW env 2 - - Phase: + + Osc 1 - PW LFO 1 - - FDBK - FDBK + + Osc 1 - PW LFO 2 + - - Feedback amount: + + Osc 3 - Sub env 1 - - NOISE - BRUIT + + Osc 3 - Sub env 2 + - - White noise amount: + + Osc 3 - Sub LFO 1 - - Invert - Inverser + + Osc 3 - Sub LFO 2 + - - - FreeBoyInstrument - - Sweep time - Temps de balayage + + + Sine wave + - - Sweep direction - Sens de balayage + + Bandlimited Triangle wave + Onde triangulaire à bande limitée - - Sweep rate shift amount - + + Bandlimited Saw wave + Onde en dents-de-scie à bande limitée - - - Wave pattern duty cycle + + Bandlimited Ramp wave - - Channel 1 volume - Volume du canal 1 + + Bandlimited Square wave + Onde carrée à bande limitée - - - - Volume sweep direction - Sens du volume du balayage + + Bandlimited Moog saw wave + Onde en dents-de-scie Moog à bande limitée - - - - Length of each step in sweep - Longueur de chaque pas du balayage + + + Soft square wave + - - Channel 2 volume - Volume du canal 2 + + Absolute sine wave + Onde sinusoïdale absolue - - Channel 3 volume - Volume du canal 3 + + + Exponential wave + - - Channel 4 volume - Volume du canal 4 + + White noise + Bruit blanc - - Shift Register width - Largeur du registre de décalage + + Digital Triangle wave + - - Right output level + + Digital Saw wave - - Left output level + + Digital Ramp wave - - Channel 1 to SO2 (Left) - Canal 1 vers SO2 (gauche) + + Digital Square wave + - - Channel 2 to SO2 (Left) - Canal 2 vers SO2 (gauche) + + Digital Moog saw wave + - - Channel 3 to SO2 (Left) - Canal 3 vers SO2 (gauche) + + Triangle wave + - - Channel 4 to SO2 (Left) - Canal 4 vers SO2 (gauche) + + Saw wave + Onde en dents-de-scie - - Channel 1 to SO1 (Right) - Canal 1 vers SO2 (droite) + + Ramp wave + - - Channel 2 to SO1 (Right) - Canal 2 vers SO2 (droite) + + Square wave + Onde carrée - - Channel 3 to SO1 (Right) - Canal 3 vers SO2 (droite) + + Moog saw wave + - - Channel 4 to SO1 (Right) - Canal 4 vers SO2 (droite) + + Abs. sine wave + Onde sinusoïdale absolue - - Treble - Aigus + + Random + - - Bass - Graves + + Random smooth + - FreeBoyInstrumentView + lmms::NesInstrument - - Sweep time: + + Channel 1 enable - - Sweep time - Temps de balayage - - - - Sweep rate shift amount: + + Channel 1 coarse detune - - Sweep rate shift amount + + Channel 1 volume - - - - Wave pattern duty cycle: + + + Channel 1 envelope enable - - - Wave pattern duty cycle + + Channel 1 envelope loop - - Square channel 1 volume: + + Channel 1 envelope length - - Square channel 1 volume + + Channel 1 duty cycle - - - - Length of each step in sweep: - Longueur de chaque pas du balayage : + + Channel 1 sweep enable + - - - - Length of each step in sweep - Longueur de chaque pas du balayage + + Channel 1 sweep amount + - - Square channel 2 volume: - Volume du canal carré 2 : + + Channel 1 sweep rate + - - Square channel 2 volume + + Channel 2 enable - - Wave pattern channel volume: + + Channel 2 coarse detune - - Wave pattern channel volume + + Channel 2 volume - - Noise channel volume: + + Channel 2 envelope enable - - Noise channel volume + + Channel 2 envelope loop - - SO1 volume (Right): + + Channel 2 envelope length - - SO1 volume (Right) + + Channel 2 duty cycle - - SO2 volume (Left): + + Channel 2 sweep enable - - SO2 volume (Left) + + Channel 2 sweep amount - - Treble: - Aigus : + + Channel 2 sweep rate + - - Treble - Aigus + + Channel 3 enable + - - Bass: - Graves : + + Channel 3 coarse detune + - - Bass - Graves + + Channel 3 volume + - - Sweep direction - Sens de balayage + + Channel 4 enable + - - - - - - Volume sweep direction - Sens du volume du balayage + + Channel 4 volume + - - Shift register width + + Channel 4 envelope enable - - Channel 1 to SO1 (Right) - Canal 1 vers SO2 (droite) + + Channel 4 envelope loop + - - Channel 2 to SO1 (Right) - Canal 2 vers SO2 (droite) + + Channel 4 envelope length + - - Channel 3 to SO1 (Right) - Canal 3 vers SO2 (droite) + + Channel 4 noise mode + - - Channel 4 to SO1 (Right) - Canal 4 vers SO2 (droite) + + Channel 4 frequency mode + - - Channel 1 to SO2 (Left) - Canal 1 vers SO2 (gauche) + + Channel 4 noise frequency + - - Channel 2 to SO2 (Left) - Canal 2 vers SO2 (gauche) + + Channel 4 noise frequency sweep + - - Channel 3 to SO2 (Left) - Canal 3 vers SO2 (gauche) + + Channel 4 quantize + - - Channel 4 to SO2 (Left) - Canal 4 vers SO2 (gauche) + + Master volume + - - Wave pattern graph + + Vibrato - MixerLine - - - Channel send amount - Quantité de signal envoyé du canal - + lmms::OpulenzInstrument - - Move &left - Déplacer à &gauche + + Patch + - - Move &right - Déplacer à &droite + + Op 1 attack + - - Rename &channel - &Renommer le canal + + Op 1 decay + - - R&emove channel - &Supprimer le canal + + Op 1 sustain + - - Remove &unused channels - Supprimer les canaux &inutilisés + + Op 1 release + - - Set channel color + + Op 1 level - - Remove channel color + + Op 1 level scaling - - Pick random channel color + + Op 1 frequency multiplier - - - MixerLineLcdSpinBox - - Assign to: - Assigner à : + + Op 1 feedback + - - New mixer Channel - Nouveau canal d'effet + + Op 1 key scaling rate + - - - Mixer - - Master - Général + + Op 1 percussive envelope + - - - - Channel %1 - Effet %1 + + Op 1 tremolo + - - Volume - Volume + + Op 1 vibrato + - - Mute - Mettre en sourdine + + Op 1 waveform + - - Solo - Solo + + Op 2 attack + - - - MixerView - - Mixer - Mélangeur d'effets + + Op 2 decay + - - Fader %1 - Chariot d'effet %1 + + Op 2 sustain + - - Mute - Mettre en sourdine + + Op 2 release + - - Mute this mixer channel - Mettre ce canal d'effet en sourdine + + Op 2 level + - - Solo - Solo + + Op 2 level scaling + - - Solo mixer channel - Mettre ce canal d'effet en solo + + Op 2 frequency multiplier + - - - MixerRoute - - - Amount to send from channel %1 to channel %2 - Quantité à envoyer du canal %1 au canal %2 + + Op 2 key scaling rate + - - - GigInstrument - - Bank - Banque + + Op 2 percussive envelope + - - Patch - Son + + Op 2 tremolo + - - Gain - Gain + + Op 2 vibrato + - - - GigInstrumentView - - - Open GIG file - Ouvrir un fichier GIG + + Op 2 waveform + - - Choose patch + + FM - - Gain: - Gain : + + Vibrato depth + - - GIG Files (*.gig) - Fichiers GIG (*.gig) + + Tremolo depth + - GuiApplication + lmms::OrganicInstrument - - Working directory - Répertoire de travail - - - - The LMMS working directory %1 does not exist. Create it now? You can change the directory later via Edit -> Settings. - Le répertoire de travail %1 n'existe pas. Le créer maintenant ? Vous pouvez modifier le répertoire plus tard avec Éditer -> Configurations. - - - - Preparing UI - Préparation de l'interface utilisateur + + Distortion + - - Preparing song editor - Préparation de l'éditeur de morceau + + Volume + + + + lmms::OscillatorObject - - Preparing mixer - Préparation du mélangeur + + Osc %1 waveform + - - Preparing controller rack - Préparation du rack de contrôleurs + + Osc %1 harmonic + - - Preparing project notes - Préparation des notes de projet + + + Osc %1 volume + - - Preparing beat/bassline editor - Préparation de l'éditeur de rythme et de ligne de basse + + + Osc %1 panning + - - Preparing piano roll - Préparation du piano virtuel + + Osc %1 stereo detuning + - - Preparing automation editor - Préparation de l'éditeur d'automation + + Osc %1 coarse detuning + - - - InstrumentFunctionArpeggio - - Arpeggio - Arpège + + Osc %1 fine detuning left + - - Arpeggio type - Type d'arpège + + Osc %1 fine detuning right + - - Arpeggio range - Plage d'arpège + + Osc %1 phase-offset + - - Note repeats + + Osc %1 stereo phase-detuning - - Cycle steps - Pas de cycle + + Osc %1 wave shape + - - Skip rate - Taux de saut + + Modulation type %1 + + + + lmms::PatternTrack - - Miss rate - Taux de manqué + + Pattern %1 + - - Arpeggio time - Temps d'arpège + + Clone of %1 + + + + lmms::PeakController - - Arpeggio gate - Durée d'arpège + + Peak Controller + - - Arpeggio direction - Direction de l'arpège + + Peak Controller Bug + - - Arpeggio mode - Mode d'arpège + + Due to a bug in older version of LMMS, the peak controllers may not be connect properly. Please ensure that peak controllers are connected properly and re-save this file. Sorry for any inconvenience caused. + + + + lmms::PeakControllerEffectControls - - Up - Ascendant + + Base value + - - Down - Descendant + + Modulation amount + - - Up and down - Ascendant et descendant + + Attack + - - Down and up - Descendant et ascendant + + Release + - - Random - Aléatoire + + Treshold + - - Free - Libre + + Mute output + - - Sort - Tri + + Absolute value + - - Sync - Sync + + Amount multiplicator + - InstrumentFunctionArpeggioView - - - ARPEGGIO - ARPÈGE - + lmms::Plugin - - RANGE - PLAGE + + Plugin not found + - - Arpeggio range: - Plage d'arpège : + + The plugin "%1" wasn't found or could not be loaded! +Reason: "%2" + - - octave(s) - octave(s) + + Error while loading plugin + - - REP + + Failed to load plugin "%1"! + + + lmms::ReverbSCControls - - Note repeats: + + Input gain - - time(s) + + Size - - CYCLE - CYCLE + + Color + - - Cycle notes: - Notes de cycle : + + Output gain + + + + lmms::SaControls - - note(s) - note(s) + + Pause + - - SKIP - SAUT + + Reference freeze + - - Skip rate: - Taux de saut : + + Waterfall + - - - - % - % + + Averaging + - - MISS - MANQUÉ + + Stereo + - - Miss rate: - Taux de manqué : + + Peak hold + - - TIME - TEMPS + + Logarithmic frequency + - - Arpeggio time: - Temps d'arpège : + + Logarithmic amplitude + - - ms - ms + + Frequency range + - - GATE - DUREE + + Amplitude range + - - Arpeggio gate: - Durée d'arpège : + + FFT block size + - - Chord: - Accord : + + FFT window type + - - Direction: - Direction : + + Peak envelope resolution + - - Mode: - Mode : + + Spectrum display resolution + - - - InstrumentFunctionNoteStacking - - octave - octave + + Peak decay multiplier + - - - Major - Majeur + + Averaging weight + - - Majb5 - Si majeur 5 + + Waterfall history size + - - minor - mineur + + Waterfall gamma correction + - - minb5 - Si mineur 5 + + FFT window overlap + - - sus2 - sus2 + + FFT zero padding + - - sus4 - sus4 + + + Full (auto) + - - aug - aug + + + + Audible + - - augsus4 - augsus4 + + Bass + - - tri - tri + + Mids + - - 6 - 6 + + High + - - 6sus4 - 6sus4 + + Extended + - - 6add9 - 6add9 + + Loud + - - m6 - m6 + + Silent + - - m6add9 - m6add9 + + (High time res.) + - - 7 - 7 + + (High freq. res.) + - - 7sus4 - 7sus4 + + Rectangular (Off) + - - 7#5 - 7#5 + + + Blackman-Harris (Default) + - - 7b5 - 7b5 + + Hamming + - - 7#9 - 7#9 + + Hanning + + + + lmms::SampleClip - - 7b9 - 7b9 + + Sample not found + + + + lmms::SampleTrack - - 7#5#9 - 7#5#9 + + Volume + - - 7#5b9 - 7#5b9 + + Panning + - - 7b5b9 - 7b5b9 + + Mixer channel + - - 7add11 - 7add11 + + + Sample track + + + + lmms::Scale - - 7add13 - 7add13 + + empty + + + + lmms::Sf2Instrument - - 7#11 - 7#11 + + Bank + - - Maj7 - Maj7 + + Patch + - - Maj7b5 - Maj7b5 + + Gain + - - Maj7#5 - Maj7#5 + + Reverb + - - Maj7#11 - Maj7#11 + + Reverb room size + - - Maj7add13 - Maj7add13 + + Reverb damping + - - m7 - m7 + + Reverb width + - - m7b5 - m7b5 + + Reverb level + - - m7b9 - m7b9 + + Chorus + - - m7add11 - m7add11 + + Chorus voices + - - m7add13 - m7add13 + + Chorus level + - - m-Maj7 - m-Maj7 + + Chorus speed + - - m-Maj7add11 - m-Maj7add11 + + Chorus depth + - - m-Maj7add13 - m-Maj7add13 + + A soundfont %1 could not be loaded. + + + + lmms::SfxrInstrument - - 9 - 9 + + Wave + + + + lmms::SidInstrument - - 9sus4 - 9sus4 + + Cutoff frequency + - - add9 - add9 + + Resonance + - - 9#5 - 9#5 + + Filter type + - - 9b5 - 9b5 + + Voice 3 off + - - 9#11 - 9#11 + + Volume + - - 9b13 - 9b13 + + Chip model + + + + lmms::SlicerT - - Maj9 - Maj9 + + Note threshold + - - Maj9sus4 - Maj9sus4 + + FadeOut + - - Maj9#5 - Maj9#5 + + Original bpm + - - Maj9#11 - Maj9#11 + + Slice snap + - - m9 - m9 + + BPM sync + - - madd9 - madd9 + + + slice_%1 + - - m9b5 - m9b5 + + Sample not found: %1 + + + + lmms::Song - - m9-Maj7 - m9-Maj7 + + Tempo + - - 11 - 11 + + Master volume + - - 11b9 - 11b9 + + Master pitch + - - Maj11 - Maj11 + + Aborting project load + - - m11 - m11 + + Project file contains local paths to plugins, which could be used to run malicious code. + - - m-Maj11 - m-Maj11 + + Can't load project: Project file contains local paths to plugins. + - - 13 - 13 + + LMMS Error report + - - 13#9 - 13#9 + + (repeated %1 times) + - - 13b9 - 13b9 + + The following errors occurred while loading: + + + + lmms::StereoEnhancerControls - - 13b5b9 - 13b5b9 + + Width + + + + lmms::StereoMatrixControls - - Maj13 - Maj13 + + Left to Left + - - m13 - m13 + + Left to Right + - - m-Maj13 - m-Maj13 + + Right to Left + - - Harmonic minor - Mineure harmonique + + Right to Right + + + + lmms::Track - - Melodic minor - Mineure mélodique + + Mute + - - Whole tone - Note complète + + Solo + + + + lmms::TrackContainer - - Diminished - Diminuée + + Couldn't import file + - - Major pentatonic - Pentatonique majeure + + Couldn't find a filter for importing file %1. +You should convert this file into a format supported by LMMS using another software. + - - Minor pentatonic - Pentatonique mineure + + Couldn't open file + - - Jap in sen - Japonaise "in sen" + + Couldn't open file %1 for reading. +Please make sure you have read-permission to the file and the directory containing the file and try again! + - - Major bebop - Bebop majeure + + Loading project... + - - Dominant bebop - Bebop dominante + + + Cancel + - - Blues - Blues + + + Please wait... + - - Arabic - Arabe + + Loading cancelled + - - Enigmatic - Énigmatique + + Project loading was cancelled. + - - Neopolitan - Napolitaine + + Loading Track %1 (%2/Total %3) + - - Neopolitan minor - Napolitaine mineure + + Importing MIDI-file... + + + + lmms::TripleOscillator - - Hungarian minor - Hongroise mineure + + Sample not found + + + + lmms::VecControls - - Dorian - Dorienne + + Display persistence amount + - - Phrygian - Phrygien + + Logarithmic scale + - - Lydian - Lydienne + + High quality + + + + lmms::VestigeInstrument - - Mixolydian - Mixolydienne + + Loading plugin + - - Aeolian - Éolienne + + Please wait while loading the VST plugin... + + + + lmms::Vibed - - Locrian - Locrienne + + String %1 volume + - - Minor - Mineur + + String %1 stiffness + - - Chromatic - Chromatique + + Pick %1 position + - - Half-Whole Diminished - Demi-globalement diminué + + Pickup %1 position + - - 5 - 5 + + String %1 panning + - - Phrygian dominant - Phrygien dominant + + String %1 detune + - - Persian - Persien + + String %1 fuzziness + - - Chords - Accords + + String %1 length + - - Chord type - Type d'accord + + Impulse %1 + - - Chord range - Gamme d'accord + + String %1 + - InstrumentFunctionNoteStackingView + lmms::VoiceObject - - STACKING - EMPILEMENT + + Voice %1 pulse width + - - Chord: - Accord : + + Voice %1 attack + - - RANGE - GAMME + + Voice %1 decay + - - Chord range: - Gamme d'accord : + + Voice %1 sustain + - - octave(s) - octave(s) + + Voice %1 release + - - - InstrumentMidiIOView - - ENABLE MIDI INPUT - ACTIVER L'ENTRÉE MIDI + + Voice %1 coarse detuning + - - ENABLE MIDI OUTPUT - ACTIVER LA SORTIE MIDI + + Voice %1 wave shape + - - - CHAN - This string must be be short, its width must be less than * width of LCD spin-box of two digits + + Voice %1 sync - - - VELOC - This string must be be short, its width must be less than * width of LCD spin-box of three digits + + Voice %1 ring modulate - - PROG - This string must be be short, its width must be less than the * width of LCD spin-box of three digits + + Voice %1 filtered - - NOTE - This string must be be short, its width must be less than * width of LCD spin-box of three digits - NOTE + + Voice %1 test + + + + + lmms::VstPlugin + + + + The VST plugin %1 could not be loaded. + + + + + Open Preset + - - MIDI devices to receive MIDI events from - Périphériques MIDI desquels recevoir des événements MIDI + + + VST Plugin Preset (*.fxp *.fxb) + - - MIDI devices to send MIDI events to - Périphériques MIDI auxquels envoyer des événements MIDI + + : default + - - CUSTOM BASE VELOCITY - VÉLOCITÉ DE BASE PERSONNALISÉE + + Save Preset + - - Specify the velocity normalization base for MIDI-based instruments at 100% note velocity. - Spécifie la normalisation de base de la vélocité des instruments MIDI pour un volume de note de 100%. + + .fxp + - - BASE VELOCITY - VÉLOCITÉ DE BASE + + .FXP + - - - InstrumentTuningView - - MASTER PITCH - TONALITÉ GÉNÉRALE + + .FXB + - - Enables the use of master pitch - Activer l'utilisation de la tonalité générale + + .fxb + - - - InstrumentSoundShaping - - VOLUME - VOLUME + + Loading plugin + - - Volume - Volume + + Please wait while loading VST plugin... + + + + lmms::WatsynInstrument - - CUTOFF - COUPURE + + Volume A1 + - - - Cutoff frequency - Fréquence de coupure + + Volume A2 + - - RESO - RÉSON + + Volume B1 + - - Resonance - Résonance + + Volume B2 + - - Envelopes/LFOs - Enveloppes/LFOs + + Panning A1 + - - Filter type - Type de filtre + + Panning A2 + - - Q/Resonance - Q/Résonance + + Panning B1 + - - Low-pass - Passe-bas + + Panning B2 + - - Hi-pass - Passe-haut + + Freq. multiplier A1 + - - Band-pass csg - Passe-bande CSG + + Freq. multiplier A2 + - - Band-pass czpg - Passe-bande CZPG + + Freq. multiplier B1 + - - Notch - Coupe-bande + + Freq. multiplier B2 + - - All-pass - Passe-tout + + Left detune A1 + - - Moog - Moog + + Left detune A2 + - - 2x Low-pass - 2x Passe-bas + + Left detune B1 + - - RC Low-pass 12 dB/oct - RC Passe-bas 12 dB + + Left detune B2 + - - RC Band-pass 12 dB/oct - RC Passe-bande 12 dB + + Right detune A1 + - - RC High-pass 12 dB/oct - RC Passe-haut 12 dB + + Right detune A2 + - - RC Low-pass 24 dB/oct - RC Passe-bas 24 dB + + Right detune B1 + - - RC Band-pass 24 dB/oct - RC Passe-bande 24 dB + + Right detune B2 + - - RC High-pass 24 dB/oct - RC Passe-haut 24 dB + + A-B Mix + - - Vocal Formant - Formant vocal + + A-B Mix envelope amount + - - 2x Moog - 2x Moog + + A-B Mix envelope attack + - - SV Low-pass - SV Passe-bas + + A-B Mix envelope hold + - - SV Band-pass - SV Passe-bande + + A-B Mix envelope decay + - - SV High-pass - SV Passe-haut + + A1-B2 Crosstalk + - - SV Notch - SV coupe-bande + + A2-A1 modulation + - - Fast Formant - Formant rapide + + B2-B1 modulation + - - Tripole - Tripôle + + Selected graph + - InstrumentSoundShapingView + lmms::WaveShaperControls - - TARGET - CIBLE + + Input gain + - - FILTER - FILTRE + + Output gain + + + + lmms::Xpressive - - FREQ - FRÉQ + + Selected graph + - - Cutoff frequency: - Fréquence de coupure : + + A1 + - - Hz - Hz + + A2 + - - Q/RESO - Q/RÉSO + + A3 + - - Q/Resonance: - Q/Résonance + + W1 smoothing + - - Envelopes, LFOs and filters are not supported by the current instrument. - Les enveloppes, les LFO et les filtres ne sont pas supportés par l'instrument actuel. + + W2 smoothing + - - - InstrumentTrack - - - unnamed_track - piste_sans_nom + + W3 smoothing + - - Base note - Note de base + + Panning 1 + - - First note + + Panning 2 - - Last note - Dernière note + + Rel trans + + + + lmms::ZynAddSubFxInstrument - - Volume - Volume + + Portamento + - - Panning - Panoramisation + + Filter frequency + - - Pitch - Tonalité + + Filter resonance + - - Pitch range - Plage de hauteur + + Bandwidth + - - Mixer channel - Canal d'effet + + FM gain + - - Master pitch - Tonalité générale + + Resonance center frequency + - - Enable/Disable MIDI CC + + Resonance bandwidth - - CC Controller %1 + + Forward MIDI control change events - - - - Default preset - Pré-réglage par défaut - - InstrumentTrackView - - - Volume - Volume - + lmms::graphModel - - Volume: - Volume : + + Graph + + + + lmms::gui::AmplifierControlDialog - + VOL - VOL - - - - Panning - Panoramisation + - - Panning: - Panoramisation : + + Volume: + - + PAN - PAN + - - MIDI - MIDI + + Panning: + - - Input - Entrée + + LEFT + - - Output - Sortie + + Left gain: + - - Open/Close MIDI CC Rack + + RIGHT - - Channel %1: %2 - Effet %1 : %2 + + Right gain: + - InstrumentTrackWindow - - - GENERAL SETTINGS - CONFIGURATION GÉNÉRALE - - - - Volume - Volume - + lmms::gui::AudioAlsaSetupWidget - - Volume: - Volume : + + Device + - - VOL - VOL + + Channels + + + + lmms::gui::AudioFileProcessorView - - Panning - Panoramisation + + Open sample + - - Panning: - Panoramisation : + + Reverse sample + - - PAN - PAN + + Disable loop + - - Pitch - Tonalité + + Enable loop + - - Pitch: - Tonalité : + + Enable ping-pong loop + - - cents - centièmes + + Continue sample playback across notes + - - PITCH - PITCH + + Amplify: + - - Pitch range (semitones) - Plage de hauteur (demi-tons) + + Start point: + - - RANGE - PLAGE + + End point: + - - Mixer channel - Canal d'effet + + Loopback point: + + + + lmms::gui::AudioFileProcessorWaveView - - CHANNEL - EFFET + + Sample length: + + + + lmms::gui::AutomationClipView - - Save current instrument track settings in a preset file - Sauvegarder les paramètres de la piste de l'instrument actuel dans un fichier de pré-réglage + + Open in Automation editor + - - SAVE - SAUV + + Clear + - - Envelope, filter & LFO - Enveloppe, filtre, et LFO + + Reset name + - - Chord stacking & arpeggio - Empilement d'accords et arpège + + Change name + - - Effects - Effets + + Set/clear record + - - MIDI - MIDI + + Flip Vertically (Visible) + - - Miscellaneous - Divers + + Flip Horizontally (Visible) + - - Save preset - Enregistrer le pré-réglage + + %1 Connections + - - XML preset file (*.xpf) - Fichier XML de pré-réglage (*.xpf) + + Disconnect "%1" + - - Plugin - Greffon + + Model is already connected to this clip. + - JackApplicationW + lmms::gui::AutomationEditor - - NSM applications cannot use abstract or absolute paths - Les applications NSM ne peuvent pas utiliser des chemins abstraits ou absolus + + Edit Value + - - NSM applications cannot use CLI arguments - Les applications NSM ne peuvent pas utiliser d'arguments CLI + + New outValue + - - You need to save the current Carla project before NSM can be used - Vous devez sauvegarder le projet Carla actuel avant de pouvoir utiliser NSM + + New inValue + + + + + Please open an automation clip by double-clicking on it! + - JuceAboutW + lmms::gui::AutomationEditorWindow - - About JUCE - À propos de JUCE + + Play/pause current clip (Space) + - - <b>About JUCE</b> - <b>À propos de JUCE</b> + + Stop playing of current clip (Space) + - - This program uses JUCE version 3.x.x. - Ce programme utilise la version 3.x.x de JUCE + + Edit actions + - - JUCE (Jules' Utility Class Extensions) is an all-encompassing C++ class library for developing cross-platform software. - -It contains pretty much everything you're likely to need to create most applications, and is particularly well-suited for building highly-customised GUIs, and for handling graphics and sound. - -JUCE is licensed under the GNU Public Licence version 2.0. -One module (juce_core) is permissively licensed under the ISC. - -Copyright (C) 2017 ROLI Ltd. - JUCE (Jules' Utility Class Extensions) est une bibliothèque de classe C++ complète pour le développement de logiciels multiplateformes. - -Cette librairie contient à peu près tout ce dont vous aurez probablement besoin pour créer la plupart des applications, et elle est particulièrement adaptée à la création d'interfaces graphiques hautement personnalisées et à la gestion des graphiques et du son. - -JUCE est sous licence GNU Public Licence version 2.0. -Un module (juce_core) est sous licence ISC. - -Copyright (C) 2017 ROLI Ltd. + + Draw mode (Shift+D) + - - This program uses JUCE version %1. - Ce programme utilise la version %1 de JUCE. + + Erase mode (Shift+E) + - - - Knob - - Set linear - Mode linéaire + + Draw outValues mode (Shift+C) + - - Set logarithmic - Mode logarithmique + + Edit tangents mode (Shift+T) + - - - Set value - Mode valeur + + Flip vertically + - - Please enter a new value between -96.0 dBFS and 6.0 dBFS: - Veuillez entrer une valeur entre -96,0 dBV et 6,0 dBFS: + + Flip horizontally + - - Please enter a new value between %1 and %2: - Veuillez entrer une valeur entre %1 et %2 : + + Interpolation controls + - - - LadspaControl - - Link channels - Relier les canaux + + Discrete progression + - - - LadspaControlDialog - - Link Channels - Lier les canaux + + Linear progression + - - Channel - Canal + + Cubic Hermite progression + - - - LadspaControlView - - Link channels - Lier les canaux + + Tension value for spline + - - Value: - Valeur : + + Tension: + - - - LadspaEffect - - Unknown LADSPA plugin %1 requested. - Le greffon LADSPA %1 demandé est inconnu. + + Zoom controls + - - - LcdFloatSpinBox - - Set value - Mode valeur + + Horizontal zooming + - - Please enter a new value between %1 and %2: - Veuillez entrer une valeur entre %1 et %2 : + + Vertical zooming + - - - LcdSpinBox - - Set value - Mode valeur + + Quantization controls + - - Please enter a new value between %1 and %2: - Veuillez entrer une valeur entre %1 et %2 : + + Quantization + - - - LeftRightNav - - - - Previous - Précédent + + Clear ghost notes + - - - - Next - Suivant + + + Automation Editor - no clip + - - Previous (%1) - Précédent (%1) + + + Automation Editor - %1 + - - Next (%1) - Suivant (%1) + + Model is already connected to this clip. + - LfoController - - - LFO Controller - Contrôleur du LFO - + lmms::gui::BassBoosterControlDialog - - Base value - Valeur de base + + FREQ + - - Oscillator speed - Vitesse de l'oscillateur + + Frequency: + - - Oscillator amount - Niveau de l'oscillateur + + GAIN + - - Oscillator phase - Phase de l'oscillateur + + Gain: + - - Oscillator waveform - Forme d'onde de l'oscillateur + + RATIO + - - Frequency Multiplier - Multiplicateur de fréquence + + Ratio: + - LfoControllerDialog + lmms::gui::BitInvaderView - - LFO - LFO + + Sample length + - - BASE - BASE + + Draw your own waveform here by dragging your mouse on this graph. + - - Base: - Base : + + + Sine wave + - - FREQ - FRÉQ + + + Triangle wave + - - LFO frequency: - Fréquence du LFO : + + + Saw wave + - - AMNT - AMNT + + + Square wave + - - Modulation amount: - Niveau de modulation : + + + White noise + - - PHS - PHS + + + User-defined wave + - - Phase offset: - Décalage de phase : + + + Smooth waveform + - - degrees - degrés + + Interpolation + - - Sine wave - Onde sinusoïdale + + Normalize + + + + lmms::gui::BitcrushControlDialog - - Triangle wave - Onde triangulaire + + IN + - - Saw wave - Onde en dents-de-scie + + OUT + - - Square wave - Onde carrée + + + GAIN + - - Moog saw wave - Onde en dents-de-scie Moog + + Input gain: + - - Exponential wave - Onde exponentielle + + NOISE + - - White noise - Bruit blanc + + Input noise: + - - User-defined shape. -Double click to pick a file. - Forme définie par l'utilisateur. -Double-cliquez pour choisir un fichier. + + Output gain: + - - Mutliply modulation frequency by 1 - Multiplier la fréquence de modulation par 1 + + CLIP + - - Mutliply modulation frequency by 100 - Multiplier la fréquence de modulation par 100 + + Output clip: + - - Divide modulation frequency by 100 - Diviser la fréquence de modulation par 100 + + Rate enabled + - - - Engine - - Generating wavetables - Génération des tables d'ondes + + Enable sample-rate crushing + - - Initializing data structures - Initialisation des structures de données + + Depth enabled + - - Opening audio and midi devices - Ouverture des périphériques audio et MIDI + + Enable bit-depth crushing + - - Launching mixer threads - Lancement du mélangeur de threads + + FREQ + - - - MainWindow - - Configuration file - Fichier de configuration + + Sample rate: + - - Error while parsing configuration file at line %1:%2: %3 - Erreur pendant l'analyse du fichier de configuration à la ligne %1:%2:%3 + + STEREO + - - Could not open file - Le fichier n'a pas pu être ouvert + + Stereo difference: + - - Could not open file %1 for writing. -Please make sure you have write permission to the file and the directory containing the file and try again! - Impossible d'ouvrir le fichier %1 en écriture. -Veuillez vous assurez que vous avez les droits d'écriture sur le fichier et le dossier contenant le fichier, et essayez à nouveau ! + + QUANT + - - Project recovery - Récupération de projet + + Levels: + + + + lmms::gui::CPULoadWidget - - There is a recovery file present. It looks like the last session did not end properly or another instance of LMMS is already running. Do you want to recover the project of this session? - Il y a un fichier de récupération présent. Il semble que la dernière session du logiciel ne s'est pas fermée proprement ou bien qu'une autre instance de LMMS est déjà ouverte. Voulez-vous récupérer le projet de cette dernière session ? + + DSP total: %1% + - - - Recover - Récupérer + + - Notes and setup: %1% + - - Recover the file. Please don't run multiple instances of LMMS when you do this. - Récupérer le fichier. Veuillez ne pas lancer de multiple instances de LMMS lorsque vous faites cela. + + - Instruments: %1% + - - - Discard - Abandonner + + - Effects: %1% + - - Launch a default session and delete the restored files. This is not reversible. - Lancer une session par défaut et effacer les fichiers de récupération. Ceci n'est pas réversible. + + - Mixing: %1% + + + + lmms::gui::CarlaInstrumentView - - Version %1 - Version %1 + + Show GUI + - - Preparing plugin browser - Préparation du navigateur de greffons + + Click here to show or hide the graphical user interface (GUI) of Carla. + - - Preparing file browsers - Préparation du navigateur de fichiers + + Params + - - My Projects - Mes projets + + Available from Carla version 2.1 and up. + + + + lmms::gui::CarlaParamsView - - My Samples - Mes échantillons + + Search.. + - - My Presets - Mes pré-réglages + + Clear filter text + - - My Home - Mon répertoire + + Only show knobs with a connection. + - - Root directory - Répertoire racine + + - Parameters + + + + lmms::gui::ClipView - - Volumes - Volumes + + Current position + - - My Computer - Mon ordinateur + + Current length + - - &File - &Fichier + + + %1:%2 (%3:%4 to %5:%6) + - - &New - &Nouveau + + Press <%1> and drag to make a copy. + - - &Open... - &Ouvrir... + + Press <%1> for free resizing. + - - Loading background picture - Chargement de l'image de fond + + Hint + - - &Save - &Enregistrer + + Delete (middle mousebutton) + - - Save &As... - Enregistrer &sous... + + Delete selection (middle mousebutton) + - - Save as New &Version - Enregistrer en tant que nouvelle &version + + Cut + - - Save as default template - Sauvegarder en tant que modèle par défaut + + Cut selection + - - Import... - Importer... + + Merge Selection + - - E&xport... - E&xporter... + + Copy + - - E&xport Tracks... - E&xporter les pistes... + + Copy selection + - - Export &MIDI... - Exporter en &MIDI... + + Paste + - - &Quit - &Quitter + + Mute/unmute (<%1> + middle click) + - - &Edit - &Éditer + + Mute/unmute selection (<%1> + middle click) + - - Undo - Défaire + + Clip color + - - Redo - Refaire + + Change + - - Settings - Configuration + + Reset + - - &View - &Afficher + + Pick random + + + + + lmms::gui::CompressorControlDialog + + + Threshold: + - - &Tools - Ou&tils + + Volume at which the compression begins to take place + - - &Help - &Aide + + Ratio: + - - Online Help - Aide en ligne + + How far the compressor must turn the volume down after crossing the threshold + - - Help - Aide + + Attack: + - - About - À propos + + Speed at which the compressor starts to compress the audio + + + + + Release: + + + + + Speed at which the compressor ceases to compress the audio + - - Create new project - Créer un nouveau projet + + Knee: + - - Create new project from template - Créer un nouveau projet à partir d'un modèle + + Smooth out the gain reduction curve around the threshold + - - Open existing project - Ouvrir un projet existant + + Range: + - - Recently opened projects - Projets ouverts récemment + + Maximum gain reduction + - - Save current project - Enregistrer le projet + + Lookahead Length: + - - Export current project - Exporter le projet + + How long the compressor has to react to the sidechain signal ahead of time + - - Metronome - Métronome + + Hold: + - - - Song Editor - Éditeur de morceau + + Delay between attack and release stages + - - - Beat+Bassline Editor - Éditeur de rythme et de ligne de basse + + RMS Size: + - - - Piano Roll - Piano virtuel + + Size of the RMS buffer + - - - Automation Editor - Éditeur d'automation + + Input Balance: + - - - Mixer - Mélangeur d'effets + + Bias the input audio to the left/right or mid/side + - - Show/hide controller rack - Afficher/cacher le rack de contrôleurs + + Output Balance: + - - Show/hide project notes - Afficher/cacher les notes de projet + + Bias the output audio to the left/right or mid/side + - - Untitled - Sans titre + + Stereo Balance: + - - Recover session. Please save your work! - Récupération de session. Veuillez sauvegarder votre travail ! + + Bias the sidechain signal to the left/right or mid/side + - - LMMS %1 - LMMS %1 + + Stereo Link Blend: + - - Recovered project not saved - Le projet récupéré n'a pas été sauvegardé + + Blend between unlinked/maximum/average/minimum stereo linking modes + - - This project was recovered from the previous session. It is currently unsaved and will be lost if you don't save it. Do you want to save it now? - Ce projet a été récupéré de la session précédente. Il n'est pas encore sauvegardé et sera perdu si vous ne le sauvegardez pas. Voulez-vous le sauvegarder maintenant ? + + Tilt Gain: + - - Project not saved - Projet non sauvegardé + + Bias the sidechain signal to the low or high frequencies. -6 db is lowpass, 6 db is highpass. + - - The current project was modified since last saving. Do you want to save it now? - Ce projet a été modifié depuis son dernier enregistrement. Souhaitez-vous l'enregistrer maintenant ? + + Tilt Frequency: + - - Open Project - Ouvrir le projet + + Center frequency of sidechain tilt filter + - - LMMS (*.mmp *.mmpz) - LMMS (*.mmp *.mmpz) + + Mix: + - - Save Project - Enregistrer le projet + + Balance between wet and dry signals + - - LMMS Project - Projet LMMS + + Auto Attack: + - - LMMS Project Template - Modèle de projet LMMS + + Automatically control attack value depending on crest factor + - - Save project template - Sauvegarder le modèle de projet + + Auto Release: + - - Overwrite default template? - Écrire par dessus le modèle par défaut ? + + Automatically control release value depending on crest factor + - - This will overwrite your current default template. - Ceci ré-écrira votre modèle par défaut actuel. + + Output gain + - - Help not available - L'aide n'est pas disponible + + + Gain + - - Currently there's no help available in LMMS. -Please visit http://lmms.sf.net/wiki for documentation on LMMS. - Il n'y a pour l'instant pas de d'aide dans LMMS. -Veuillez visiter http://lmms.sf.net/wiki pour la documentation de LMMS. + + Output volume + - - Controller Rack - Rack de contrôleurs + + Input gain + - - Project Notes - Montrer/cacher les notes du projet + + Input volume + - - Fullscreen + + Root Mean Square - - Volume as dBFS - Volume en dBFS + + Use RMS of the input + - - Smooth scroll - Déplacement fluide + + Peak + - - Enable note labels in piano roll - Activer les étiquettes de note dans le piano virtuel + + Use absolute value of the input + - - MIDI File (*.mid) - Fichier MIDI (*.mid) + + Left/Right + - - - untitled - sans titre + + Compress left and right audio + - - - Select file for project-export... - Sélectionnez un fichier vers lequel exporter le projet... + + Mid/Side + - - Select directory for writing exported tracks... - Sélectionnez le répertoire pour écrire les pistes exportées... + + Compress mid and side audio + - - Save project - Sauvegarder le projet + + Compressor + - - Project saved - Projet sauvegardé + + Compress the audio + - - The project %1 is now saved. - Le projet %1 est maintenant sauvegardé. + + Limiter + - - Project NOT saved. - Projet NON sauvegardé. + + Set Ratio to infinity (is not guaranteed to limit audio volume) + - - The project %1 was not saved! - Le projet %1 n'a pas été sauvegardé! + + Unlinked + - - Import file - Importer un fichier + + Compress each channel separately + - - MIDI sequences - Séquences MIDI + + Maximum + - - Hydrogen projects - Projets Hydrogen + + Compress based on the loudest channel + - - All file types - Tous les types de fichier + + Average + - - - MeterDialog - - - Meter Numerator - Numérateur de la mesure + + Compress based on the averaged channel volume + - - Meter numerator - Numérateur de la mesure + + Minimum + - - - Meter Denominator - Dénominateur de la mesure + + Compress based on the quietest channel + - - Meter denominator - Dénominateur de la mesure + + Blend + - - TIME SIG - SIGN RYTHM + + Blend between stereo linking modes + - - - MeterModel - - Numerator - Numérateur + + Auto Makeup Gain + - - Denominator - Dénominateur + + Automatically change makeup gain depending on threshold, knee, and ratio settings + - - - MidiCCRackView - - - MIDI CC Rack - %1 + + + Soft Clip - - MIDI CC Knobs: + + Play the delta signal - - CC %1 + + Use the compressor's output as the sidechain input - - - MidiController - - MIDI Controller - Contrôleur MIDI + + Lookahead Enabled + - - unnamed_midi_controller - contrôleur_midi_sans_nom + + Enable Lookahead, which introduces 20 milliseconds of latency + - MidiImport - - - - Setup incomplete - Paramétrage incomplet - + lmms::gui::ControllerConnectionDialog - - You have not set up a default soundfont in the settings dialog (Edit->Settings). Therefore no sound will be played back after importing this MIDI file. You should download a General MIDI soundfont, specify it in settings dialog and try again. + + Connection Settings - - You did not compile LMMS with support for SoundFont2 player, which is used to add default sound to imported MIDI files. Therefore no sound will be played back after importing this MIDI file. - Vous n'avez pas compilé LMMS avec la prise en charge du lecteur SoundFont2, qui est utilisé pour ajouter un son par défaut aux fichiers MIDI importés. Par conséquent aucun son ne sera joué après l'importation de ce fichier MIDI. + + MIDI CONTROLLER + - - MIDI Time Signature Numerator + + Input channel - - MIDI Time Signature Denominator + + CHANNEL - - Numerator - Numérateur + + Input controller + - - Denominator - Dénominateur + + CONTROLLER + - - Track - Piste + + + Auto Detect + - - - MidiJack - - JACK server down - When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (title) - Le serveur JACK est arrêté + + MIDI-devices to receive MIDI-events from + - - The JACK server seems to be shuted down. - When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (dialog message) - Le serveur JACK semble avoir été coupé + + USER CONTROLLER + - - - MidiPatternW - - MIDI Pattern + + MAPPING FUNCTION - - Time Signature: + + OK - - - - 1/4 + + Cancel - - 2/4 + + LMMS - - 3/4 + + Cycle Detected. + + + lmms::gui::ControllerRackView - - 4/4 + + Controller Rack - - 5/4 + + Add - - 6/4 + + Confirm Delete - - Measures: + + Confirm delete? There are existing connection(s) associated with this controller. There is no way to undo. + + + lmms::gui::ControllerView - - - - 1 + + Controls - - 2 + + Rename controller - - 3 + + Enter the new name for this controller - - 4 + + LFO - - 5 - 5 + + Move &up + - - 6 - 6 + + Move &down + - - 7 - 7 + + &Remove this controller + - - 8 + + Re&name this controller + + + lmms::gui::CrossoverEQControlDialog - - 9 - 9 + + Band 1/2 crossover: + - - 10 + + Band 2/3 crossover: - - 11 - 11 + + Band 3/4 crossover: + - - 12 + + Band 1 gain - - 13 - 13 + + Band 1 gain: + - - 14 + + Band 2 gain - - 15 + + Band 2 gain: - - 16 + + Band 3 gain - - Default Length: + + Band 3 gain: - - - 1/16 + + Band 4 gain - - - 1/15 + + Band 4 gain: - - - 1/12 + + Band 1 mute - - - 1/9 + + Mute band 1 - - - 1/8 + + Band 2 mute - - - 1/6 + + Mute band 2 - - - 1/3 + + Band 3 mute - - - 1/2 + + Mute band 3 - - Quantize: + + Band 4 mute - - &File - &Fichier + + Mute band 4 + + + + lmms::gui::DelayControlsDialog - - &Edit - &Éditer + + DELAY + - - &Quit - &Quitter + + Delay time + - - &Insert Mode + + FDBK - - F + + Feedback amount - - &Velocity Mode + + RATE - - D - D + + LFO frequency + - - Select All + + AMNT - - A - A + + LFO amount + - - - MidiPort - - Input channel - Canal d'entrée + + Out gain + - - Output channel - Canal de sortie + + Gain + + + + lmms::gui::DispersionControlDialog - - Input controller - Contrôleur d'entrée + + AMOUNT + - - Output controller - Contrôleur de sortie + + Number of all-pass filters + - - Fixed input velocity - Vélocité d'entrée fixe + + FREQ + - - Fixed output velocity - Vélocité de sortie fixe + + Frequency: + - - Fixed output note - Note de sortie fixe + + RESO + - - Output MIDI program - Programme MIDI de sortie + + Resonance: + - - Base velocity - Vélocité de base + + FEED + - - Receive MIDI-events - Recevoir des événements MIDI + + Feedback: + - - Send MIDI-events - Envoyer des événements MIDI + + DC Offset Removal + - - - MidiSetupWidget - - Device - Périphérique + + Remove DC Offset + - MonstroInstrument + lmms::gui::DualFilterControlDialog - - Osc 1 volume + + + FREQ - - Osc 1 panning - Panoramique du 1er oscillateur + + + Cutoff frequency + - - Osc 1 coarse detune + + + RESO - - Osc 1 fine detune left + + + Resonance - - Osc 1 fine detune right + + + GAIN - - Osc 1 stereo phase offset + + + Gain - - Osc 1 pulse width + + MIX - - Osc 1 sync send on rise + + Mix - - Osc 1 sync send on fall + + Filter 1 enabled - - Osc 2 volume + + Filter 2 enabled - - Osc 2 panning - Panoramique du 2e oscillateur + + Enable/disable filter 1 + - - Osc 2 coarse detune + + Enable/disable filter 2 + + + lmms::gui::DynProcControlDialog - - Osc 2 fine detune left + + INPUT - - Osc 2 fine detune right + + Input gain: - - Osc 2 stereo phase offset + + OUTPUT - - Osc 2 waveform + + Output gain: - - Osc 2 sync hard + + ATTACK - - Osc 2 sync reverse + + Peak attack time: - - Osc 3 volume + + RELEASE - - Osc 3 panning - Panoramique du 3e oscillateur + + Peak release time: + - - Osc 3 coarse detune + + + Reset wavegraph - - Osc 3 Stereo phase offset - Décalage de phase stéréo de l'oscillateur 3 + + + Smooth wavegraph + - - Osc 3 sub-oscillator mix + + + Increase wavegraph amplitude by 1 dB - - Osc 3 waveform 1 + + + Decrease wavegraph amplitude by 1 dB - - Osc 3 waveform 2 + + Stereo mode: maximum - - Osc 3 sync hard + + Process based on the maximum of both stereo channels - - Osc 3 Sync reverse + + Stereo mode: average - - LFO 1 waveform + + Process based on the average of both stereo channels - - LFO 1 attack + + Stereo mode: unlinked - - LFO 1 rate + + Process each stereo channel independently + + + lmms::gui::Editor - - LFO 1 phase + + Transport controls - - LFO 2 waveform + + Play (Space) - - LFO 2 attack + + Stop (Space) - - LFO 2 rate + + Record - - LFO 2 phase + + Record while playing - - Env 1 pre-delay + + Toggle Step Recording + + + lmms::gui::EffectRackView - - Env 1 attack + + EFFECTS CHAIN - - Env 1 hold + + Add effect + + + lmms::gui::EffectSelectDialog - - Env 1 decay + + Add effect - - Env 1 sustain + + + Name - - Env 1 release + + Type - - Env 1 slope + + All - - Env 2 pre-delay + + Search - - Env 2 attack + + Description - - Env 2 hold + + Author + + + lmms::gui::EffectView - - Env 2 decay + + On/Off - - Env 2 sustain + + W/D - - Env 2 release - Relâchement de l'enveloppe 2 + + Wet Level: + - - Env 2 slope + + DECAY - - Osc 2+3 modulation + + Time: - - Selected view - Affichage sélectionné + + GATE + - - Osc 1 - Vol env 1 + + Gate: - - Osc 1 - Vol env 2 + + Controls - - Osc 1 - Vol LFO 1 + + Move &up - - Osc 1 - Vol LFO 2 + + Move &down - - Osc 2 - Vol env 1 + + &Remove this plugin + + + lmms::gui::EnvelopeAndLfoView - - Osc 2 - Vol env 2 + + + AMT - - Osc 2 - Vol LFO 1 + + + Modulation amount: - - Osc 2 - Vol LFO 2 + + + DEL - - Osc 3 - Vol env 1 + + + Pre-delay: - - Osc 3 - Vol env 2 + + + ATT - - Osc 3 - Vol LFO 1 + + + Attack: - - Osc 3 - Vol LFO 2 + + HOLD - - Osc 1 - Phs env 1 + + Hold: - - Osc 1 - Phs env 2 + + DEC - - Osc 1 - Phs LFO 1 + + Decay: - - Osc 1 - Phs LFO 2 + + SUST - - Osc 2 - Phs env 1 + + Sustain: - - Osc 2 - Phs env 2 + + REL - - Osc 2 - Phs LFO 1 + + Release: - - Osc 2 - Phs LFO 2 + + SPD - - Osc 3 - Phs env 1 + + Frequency: - - Osc 3 - Phs env 2 + + FREQ x 100 - - Osc 3 - Phs LFO 1 + + Multiply LFO frequency by 100 - - Osc 3 - Phs LFO 2 + + MOD ENV AMOUNT - - Osc 1 - Pit env 1 + + Control envelope amount by this LFO - - Osc 1 - Pit env 2 + + Hint - - Osc 1 - Pit LFO 1 + + Drag and drop a sample into this window. + + + lmms::gui::EnvelopeGraph - - Osc 1 - Pit LFO 2 + + Scaling - - Osc 2 - Pit env 1 + + Dynamic - - Osc 2 - Pit env 2 + + Uses absolute spacings but switches to relative spacing if it's running out of space - - Osc 2 - Pit LFO 1 + + Absolute - - Osc 2 - Pit LFO 2 + + Provides enough potential space for each segment but does not scale - - Osc 3 - Pit env 1 + + Relative - - Osc 3 - Pit env 2 + + Always uses all of the available space to display the envelope graph + + + lmms::gui::EqControlsDialog - - Osc 3 - Pit LFO 1 + + HP - - Osc 3 - Pit LFO 2 + + Low-shelf - - Osc 1 - PW env 1 + + Peak 1 - - Osc 1 - PW env 2 + + Peak 2 - - Osc 1 - PW LFO 1 + + Peak 3 - - Osc 1 - PW LFO 2 + + Peak 4 - - Osc 3 - Sub env 1 + + High-shelf - - Osc 3 - Sub env 2 + + LP - - Osc 3 - Sub LFO 1 + + Input gain - - Osc 3 - Sub LFO 2 + + + + Gain - - - Sine wave - Onde sinusoïdale + + Output gain + - - Bandlimited Triangle wave - Onde triangulaire à bande limitée + + Bandwidth: + - - Bandlimited Saw wave - Onde en dents-de-scie à bande limitée + + Octave + - - Bandlimited Ramp wave - Onde en rampe à bande limitée + + Resonance: + - - Bandlimited Square wave - Onde carrée à bande limitée + + Frequency: + - - Bandlimited Moog saw wave - Onde en dents-de-scie Moog à bande limitée + + LP group + - - - Soft square wave - Onde carrée douce + + HP group + + + + lmms::gui::EqHandle - - Absolute sine wave - Onde sinusoïdale absolue + + Reso: + - - - Exponential wave - Onde exponentielle + + BW: + - - White noise - Bruit blanc + + + Freq: + + + + lmms::gui::ExportProjectDialog - - Digital Triangle wave - Onde triangulaire digitale + + Could not open file + - - Digital Saw wave - Onde en dents-de-scie digitale + + Could not open file %1 for writing. +Please make sure you have write permission to the file and the directory containing the file and try again! + - - Digital Ramp wave - Onde en rampe digitale + + Export project to %1 + - - Digital Square wave - Onde carrée digitale + + ( Fastest - biggest ) + - - Digital Moog saw wave - Onde en dents-de-scie Moog digitale + + ( Slowest - smallest ) + - - Triangle wave - Onde triangulaire + + Error + - - Saw wave - Onde en dents-de-scie + + Error while determining file-encoder device. Please try to choose a different output format. + - - Ramp wave - Onde en rampe + + Rendering: %1% + + + + lmms::gui::Fader - - Square wave - Onde carrée + + Set value + - - Moog saw wave - Onde en dents-de-scie Moog + + Please enter a new value between %1 and %2: + - - Abs. sine wave - Onde sinusoïdale absolue + + Volume: %1 dBFS + + + + lmms::gui::FileBrowser - - Random - Aléatoire + + Browser + - - Random smooth - Aléatoire adoucie + + Search + - - - MonstroView - - Operators view - Vue des opérateurs + + Refresh list + - - Matrix view - Vue de la matrice + + User content + - - - - Volume - Volume + + Factory content + - - - - Panning - Panoramisation + + Hidden content + + + + lmms::gui::FileBrowserTreeWidget - - - - Coarse detune - Désaccordage grossier + + Send to active instrument-track + - - - - semitones - demi-tons + + Open containing folder + - - - Fine tune left + + Song Editor - - - - - cents - centièmes + + Pattern Editor + - - - Fine tune right + + Send to new AudioFileProcessor instance - - - - Stereo phase offset - Décalage stéréo de phase + + Send to new instrument track + - - - - - - deg - degrés + + (%2Enter) + - - Pulse width - Largeur de pulsation + + Send to new sample track (Shift + Enter) + - - Send sync on pulse rise - Envoi de la synchro à la montée + + Loading sample + - - Send sync on pulse fall - Envoi de la synchro à la descente + + Please wait, loading sample for preview... + - - Hard sync oscillator 2 - Synchro fixe oscillateur 2 + + Error + - - Reverse sync oscillator 2 - Synchro inverse oscillateur 2 + + %1 does not appear to be a valid %2 file + - - Sub-osc mix - Mélange du sous-oscillateur + + --- Factory files --- + + + + lmms::gui::FileDialog - - Hard sync oscillator 3 - Synchro fixe oscillateur 3 + + %1 files + - - Reverse sync oscillator 3 - Synchro inverse oscillateur 3 + + All audio files + - - - - - Attack - Attaque + + Other files + + + + lmms::gui::FlangerControlsDialog - - - Rate - Vitesse + + DELAY + - - - Phase - Phase + + Delay time: + - - - Pre-delay - Pré-délai + + RATE + - - - Hold - Maintien + + Period: + - - - Decay - Descente + + AMNT + - - - Sustain - Soutien + + Amount: + - - - Release - Relâchement + + PHASE + - - - Slope - Pente + + Phase: + - - Mix osc 2 with osc 3 + + FDBK - - Modulate amplitude of osc 3 by osc 2 + + Feedback amount: - - Modulate frequency of osc 3 by osc 2 + + NOISE - - Modulate phase of osc 3 by osc 2 + + White noise amount: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Modulation amount - Niveau de modulation + + Invert + - MultitapEchoControlDialog - - - Length - Longueur - + lmms::gui::FloatModelEditorBase - - Step length: - Longueur de pas : + + Set linear + - - Dry - Sec + + Set logarithmic + - - Dry gain: + + + Set value - - Stages - Niveaux + + Please enter a new value between -96.0 dBFS and 6.0 dBFS: + - - Low-pass stages: + + Please enter a new value between %1 and %2: + + + lmms::gui::FreeBoyInstrumentView - - Swap inputs - Permutation des entrées + + Sweep time: + - - Swap left and right input channels for reflections + + Sweep time - - - NesInstrument - - Channel 1 coarse detune + + Sweep rate shift amount: - - Channel 1 volume - Volume du canal 1 + + Sweep rate shift amount + - - Channel 1 envelope length + + + Wave pattern duty cycle: - - Channel 1 duty cycle + + + Wave pattern duty cycle - - Channel 1 sweep amount + + Square channel 1 volume: - - Channel 1 sweep rate + + Square channel 1 volume - - Channel 2 Coarse detune - Dé-réglage grossier du canal 2 + + + + Length of each step in sweep: + - - Channel 2 Volume - Volume du canal 2 + + + + Length of each step in sweep + - - Channel 2 envelope length + + Square channel 2 volume: - - Channel 2 duty cycle + + Square channel 2 volume - - Channel 2 sweep amount - Quantité de balayage du canal 2 + + Wave pattern channel volume: + - - Channel 2 sweep rate + + Wave pattern channel volume - - Channel 3 coarse detune + + Noise channel volume: - - Channel 3 volume - Volume du canal 3 + + Noise channel volume + - - Channel 4 volume - Volume du canal 4 + + SO1 volume (Right): + - - Channel 4 envelope length + + SO1 volume (Right) - - Channel 4 noise frequency + + SO2 volume (Left): - - Channel 4 noise frequency sweep + + SO2 volume (Left) - - Master volume - Volume général + + Treble: + - - Vibrato - Vibrato + + Treble + - - - NesInstrumentView - - - - - Volume - Volume + + Bass: + - - - - Coarse detune - Désaccordage grossier + + Bass + - - - - Envelope length - Longueur de l'enveloppe + + Sweep direction + - - Enable channel 1 - Activer le canal 1 + + + + + + Volume sweep direction + - - Enable envelope 1 - Activer l'enveloppe 1 + + Shift register width + - - Enable envelope 1 loop - Activer la boucle d'enveloppe 1 + + Channel 1 to SO1 (Right) + - - Enable sweep 1 - Activer le balayage 1 + + Channel 2 to SO1 (Right) + - - - Sweep amount - Temps de balayage + + Channel 3 to SO1 (Right) + - - - Sweep rate - Vitesse de balayage + + Channel 4 to SO1 (Right) + - - - 12.5% Duty cycle - 12.5% du cycle + + Channel 1 to SO2 (Left) + - - - 25% Duty cycle - 25% du cycle + + Channel 2 to SO2 (Left) + - - - 50% Duty cycle - 50% du cycle + + Channel 3 to SO2 (Left) + - - - 75% Duty cycle - 75% du cycle + + Channel 4 to SO2 (Left) + - - Enable channel 2 - Activer le canal 2 + + Wave pattern graph + + + + lmms::gui::GigInstrumentView - - Enable envelope 2 - Activer l'enveloppe 2 + + + Open GIG file + - - Enable envelope 2 loop - Activer la boucle d'enveloppe 2 + + Choose patch + - - Enable sweep 2 - Activer le balayage 2 + + Gain: + - - Enable channel 3 - Activer le canal 3 + + GIG Files (*.gig) + + + + lmms::gui::GranularPitchShifterControlDialog - - Noise Frequency - Fréquence du bruit + + Grain Size: + - - Frequency sweep - Fréquence de balayage + + Spray: + - - Enable channel 4 - Activer le canal 4 + + Jitter: + - - Enable envelope 4 - Activer l'enveloppe 4 + + Twitch: + - - Enable envelope 4 loop - Activer la boucle d'enveloppe 4 + + Spray Stereo Spread: + - - Quantize noise frequency when using note frequency - Quantifier la fréquence du bruit lorsque la fréquence de la note est utilisée + + Grain Shape: + - - Use note frequency for noise - Utiliser la fréquence de note pour le bruit + + Fade Length: + - - Noise mode - Mode de bruit + + Feedback: + - - Master volume - Volume général + + Minimum Allowed Latency: + - - Vibrato - Vibrato + + Density: + - - - OpulenzInstrument - - Patch - Patch + + Glide: + - - Op 1 attack + + + Pitch - - Op 1 decay + + + Pitch Stereo Spread - - Op 1 sustain + + Open help window - - Op 1 release + + + Prefilter + + + lmms::gui::GuiApplication - - Op 1 level + + Working directory - - Op 1 level scaling + + The LMMS working directory %1 does not exist. Create it now? You can change the directory later via Edit -> Settings. - - Op 1 frequency multiplier + + Preparing UI - - Op 1 feedback + + Preparing song editor - - Op 1 key scaling rate + + Preparing mixer - - Op 1 percussive envelope - Enveloppe percussive Op 1 + + Preparing controller rack + - - Op 1 tremolo + + Preparing project notes - - Op 1 vibrato + + Preparing microtuner - - Op 1 waveform + + Preparing pattern editor - - Op 2 attack + + Preparing piano roll - - Op 2 decay + + Preparing automation editor + + + lmms::gui::InstrumentFunctionArpeggioView - - Op 2 sustain + + ARPEGGIO - - Op 2 release + + RANGE - - Op 2 level + + Arpeggio range: - - Op 2 level scaling + + octave(s) - - Op 2 frequency multiplier + + REP - - Op 2 key scaling rate + + Note repeats: - - Op 2 percussive envelope + + time(s) - - Op 2 tremolo + + CYCLE - - Op 2 vibrato + + Cycle notes: - - Op 2 waveform + + note(s) - - FM - FM + + SKIP + - - Vibrato depth + + Skip rate: - - Tremolo depth - Profondeur du trémolo + + + + % + - - - OpulenzInstrumentView - - - Attack - Attaque + + MISS + - - - Decay - Affaiblissement (decay) + + Miss rate: + - - - Release - Relâchement + + TIME + - - - Frequency multiplier - Multiplicateur de fréquence + + Arpeggio time: + - - - OscillatorObject - - Osc %1 waveform - Forme d'onde de l'oscillateur %1 + + ms + - - Osc %1 harmonic - Harmonique de l'oscillateur %1 + + GATE + - - - Osc %1 volume - Volume de l'oscillateur %1 + + Arpeggio gate: + - - - Osc %1 panning - Panoramisation de l'oscillateur %1 + + Chord: + - - - Osc %1 fine detuning left - Désaccordage fin (gauche) de l'oscillateur %1 + + Direction: + - - Osc %1 coarse detuning - Désaccordage grossier de l'oscillateur %1 + + Mode: + + + + lmms::gui::InstrumentFunctionNoteStackingView - - Osc %1 fine detuning right - Désaccordage fin (droite) de l'oscillateur %1 + + STACKING + - - Osc %1 phase-offset - Décalage de phase de l'oscillateur %1 + + Chord: + - - Osc %1 stereo phase-detuning - Désaccordage stéréo de la phase de l'oscillateur %1 + + RANGE + - - Osc %1 wave shape - Forme d'onde de l'oscillateur %1 + + Chord range: + - - Modulation type %1 - Modulation de type %1 + + octave(s) + - Oscilloscope + lmms::gui::InstrumentMidiIOView - - Oscilloscope + + ENABLE MIDI INPUT - - Click to enable - Cliquez pour activer + + + CHAN + This string must be be short, its width must be less than * width of LCD spin-box of two digits + - - - PatchesDialog - - Qsynth: Channel Preset - Qsynth : pré-réglage de canal + + + VELOC + This string must be be short, its width must be less than * width of LCD spin-box of three digits + - - Bank selector - Sélecteur de banque + + ENABLE MIDI OUTPUT + - - Bank - Banque + + PROG + This string must be be short, its width must be less than the * width of LCD spin-box of three digits + - - Program selector - Sélecteur de programme + + NOTE + This string must be be short, its width must be less than * width of LCD spin-box of three digits + - - Patch - Instrument + + MIDI devices to receive MIDI events from + - - Name - Nom + + MIDI devices to send MIDI events to + - - OK - OK + + VELOCITY MAPPING + - - Cancel - Annuler + + MIDI VELOCITY + + + + + MIDI notes at this velocity correspond to 100% note velocity. + - PatmanView + lmms::gui::InstrumentSoundShapingView - - Open patch + + TARGET - - Loop - Boucler + + FILTER + - - Loop mode - Mode de jeu en boucle + + FREQ + - - Tune - Accorder + + Cutoff frequency: + - - Tune mode - Mode accordage + + Hz + - - No file selected - Aucun fichier sélectionné + + Q/RESO + - - Open patch file - Ouvrir un fichier de son + + Q/Resonance: + - - Patch-Files (*.pat) - Fichiers de son (*.pat) + + Envelopes, LFOs and filters are not supported by the current instrument. + - MidiClipView - - - Open in piano-roll - Ouvrir dans le piano virtuel - + lmms::gui::InstrumentTrackView - - Set as ghost in piano-roll + + Mixer channel - - Clear all notes - Effacer toutes les notes - - - - Reset name - Réinitialiser le nom - - - - Change name - Modifier le nom + + Volume + - - Add steps - Ajouter des pas + + Volume: + - - Remove steps - Supprimer des pas + + VOL + - - Clone Steps - Cloner les pas + + Panning + - - - PeakController - - Peak Controller - Contrôleur de crêtes + + Panning: + - - Peak Controller Bug - Bug du contrôleur de crêtes + + PAN + - - Due to a bug in older version of LMMS, the peak controllers may not be connect properly. Please ensure that peak controllers are connected properly and re-save this file. Sorry for any inconvenience caused. - A cause d'un bug dans les anciennes versions de LMMS, les contrôleurs de crêtes peuvent ne pas s'être connectés correctement. Verifiez que les contrôleurs de crêtes sont connectés correctement et re-sauvegardez ce fichier. Désolé pour la gène occasionnée. + + MIDI + - - - PeakControllerDialog - - PEAK - CRÊTE + + Input + - - LFO Controller - Contrôleur du LFO + + Output + - - - PeakControllerEffectControlDialog - - BASE - BASE + + Open/Close MIDI CC Rack + - - Base: - Base : + + %1: %2 + + + + lmms::gui::InstrumentTrackWindow - - AMNT - AMNT + + Volume + - - Modulation amount: - Niveau de modulation : + + Volume: + - - MULT - MULT + + VOL + - - Amount multiplicator: + + Panning - - ATCK - ATCK + + Panning: + - - Attack: - Attaque : + + PAN + - - DCAY - DCAY + + Pitch + - - Release: - Relâchement : + + Pitch: + - - TRSH - TRSH + + cents + - - Treshold: - Seuil : + + PITCH + - - Mute output - Mettre la sortie en sourdine + + Pitch range (semitones) + - - Absolute value + + RANGE - - - PeakControllerEffectControls - - Base value - Valeur de base + + Mixer channel + - - Modulation amount - Niveau de modulation + + CHANNEL + - - Attack - Attaque + + Save current instrument track settings in a preset file + - - Release - Relâchement + + SAVE + - - Treshold - Seuil + + Envelope, filter & LFO + - - Mute output - Mettre la sortie en sourdine + + Chord stacking & arpeggio + - - Absolute value + + Effects - - Amount multiplicator + + MIDI - - - PianoRoll - - Note Velocity - Vélocité de la note + + Tuning and transposition + - - Note Panning - Panoramisation de la note + + Save preset + - - Mark/unmark current semitone - Marquer/démarquer le demi-ton actuel + + XML preset file (*.xpf) + - - Mark/unmark all corresponding octave semitones - Marquer/démarquer tous les demi-tons d'octave correspondant + + Plugin + + + + lmms::gui::InstrumentTuningView - - Mark current scale - Marquer la gamme actuelle + + GLOBAL TRANSPOSITION + - - Mark current chord - Marquer l'accord actuel + + Enables the use of global transposition + - - Unmark all - Démarquer tout + + Microtuner is not available for MIDI-based instruments. + - - Select all notes on this key - Sélectionner toutes les notes de cet clef + + MICROTUNER + - - Note lock - Verrouiller la note + + Active scale: + - - Last note - Dernière note + + + Edit scales and keymaps + - - No key + + Active keymap: - - No scale - Pas de gamme + + Import note ranges from keymap + - - No chord - Pas d'accord + + When enabled, the first, last and base notes of this instrument will be overwritten with values specified by the selected keymap. + + + + lmms::gui::KickerInstrumentView - - Nudge + + Start frequency: - - Snap + + End frequency: - - Velocity: %1% - Vélocité : %1% + + Frequency slope: + - - Panning: %1% left - Panoramisation : %1% gauche + + Gain: + - - Panning: %1% right - Panoramisation : %1% droite + + Envelope length: + - - Panning: center - Panoramisation : centre + + Envelope slope: + - - Glue notes failed + + Click: - - Please select notes to glue first. + + Noise: - - Please open a clip by double-clicking on it! - Veuillez ouvrir un motif en double-cliquant dessus ! + + Start distortion: + - - - Please enter a new value between %1 and %2: - Veuillez entrer une valeur entre %1 et %2 : + + End distortion: + - PianoRollWindow + lmms::gui::LOMMControlDialog - - Play/pause current clip (Space) - Jouer/mettre en pause le motif (barre d'espace) + + Depth: + - - Record notes from MIDI-device/channel-piano - Enregistrez des notes à partir d'un périphérique MIDI ou d'un canal du piano + + Compression amount for all bands + - - Record notes from MIDI-device/channel-piano while playing song or BB track - Enregistrez des notes à partir d'un périphérique MIDI ou d'un canal du piano pendant l'écoute d'un morceau ou bien d'une piste de rythme ou de ligne de basse + + Time: + - - Record notes from MIDI-device/channel-piano, one step at the time + + Attack/release scaling for all bands - - Stop playing of current clip (Space) - Arrêter de jouer le motif (barre d'espace) + + Input Volume: + - - Edit actions - Actions d'édition + + Input volume + - - Draw mode (Shift+D) - Mode dessin (Shift+D) + + Output Volume: + - - Erase mode (Shift+E) - Mode effacement (Shift+E) + + Output volume + - - Select mode (Shift+S) - Mode sélection (Shift+S) + + Upward Depth: + - - Pitch Bend mode (Shift+T) - Mode Pitch Bend (Maj + T) + + Upward compression amount for all bands + - - Quantize - Quantifier + + Downward Depth: + - - Quantize positions + + Downward compression amount for all bands - - Quantize lengths + + High/Mid Crossover - - File actions + + Mid/Low Crossover - - Import clip + + High/mid band split - - - Export clip + + Mid/low band split - - Copy paste controls - Contrôles de copier/coller + + Enable High Band + - - Cut (%1+X) + + Enable Mid Band - - Copy (%1+C) + + Enable Low Band - - Paste (%1+V) + + High Input Volume: - - Timeline controls - Contrôles de la ligne de temps + + Input volume for high band + - - Glue + + Mid Input Volume: - - Knife + + Input volume for mid band - - Fill + + Low Input Volume: - - Cut overlaps + + Input volume for low band - - Min length as last + + High Output Volume: - - Max length as last + + Output volume for high band - - Zoom and note controls - Contrôles de zoom et de notes + + Mid Output Volume: + - - Horizontal zooming - Zoom horizontal + + Output volume for mid band + - - Vertical zooming - Zoom vertical + + Low Output Volume: + - - Quantization - Quantification + + Output volume for low band + - - Note length + + Above Threshold High - - Key + + Downward compression threshold for high band - - Scale + + Above Threshold Mid - - Chord + + Downward compression threshold for mid band - - Snap mode + + Above Threshold Low - - Clear ghost notes + + Downward compression threshold for low band - - - Piano-Roll - %1 - Piano virtuel - %1 + + Above Ratio High + - - - Piano-Roll - no clip - Piano virtuel - pas de motif + + Downward compression ratio for high band + - - - XML clip file (*.xpt *.xptz) + + Above Ratio Mid - - Export clip success + + Downward compression ratio for mid band - - Clip saved to %1 + + Above Ratio Low - - Import clip. + + Downward compression ratio for low band - - You are about to import a clip, this will overwrite your current clip. Do you want to continue? + + Below Threshold High - - Open clip + + Upward compression threshold for high band - - Import clip success + + Below Threshold Mid - - Imported clip %1! + + Upward compression threshold for mid band - - - PianoView - - Base note - Note de base + + Below Threshold Low + - - First note + + Upward compression threshold for low band - - Last note - Dernière note + + Below Ratio High + - - - Plugin - - Plugin not found - Le greffon n'a pas été trouvé + + Upward compression ratio for high band + + + + + Below Ratio Mid + - - The plugin "%1" wasn't found or could not be loaded! -Reason: "%2" - Le greffon "%1" n'a pas été trouvé ou n'a pas pu être chargé ! -Raison : "%2" + + Upward compression ratio for mid band + - - Error while loading plugin - Une erreur est survenue pendant le chargement du greffon + + Below Ratio Low + - - Failed to load plugin "%1"! - Le chargement du greffon "%1" a échoué ! + + Upward compression ratio for low band + - - - PluginBrowser - - Instrument Plugins - Greffons d'instrument + + Attack High: + - - Instrument browser - Navigateur d'instruments + + Attack time for high band + - - Drag an instrument into either the Song-Editor, the Beat+Bassline Editor or into an existing instrument track. - Glissez un instrument dans l'éditeur de morceau, dans l'éditeur de rythme et de ligne de basse, ou dans une piste d'instrument existante. + + Attack Mid: + - - no description - pas de description + + Attack time for mid band + - - A native amplifier plugin - Un greffon d'amplification natif + + Attack Low: + - - Simple sampler with various settings for using samples (e.g. drums) in an instrument-track - Échantillonneur simple avec divers paramètres pour utiliser des échantillons (par exemple : percussions) dans une piste d'instrument + + Attack time for low band + - - Boost your bass the fast and simple way - Renforcer vos basses de la manière la plus simple et la plus rapide + + Release High: + - - Customizable wavetable synthesizer - Synthétiseur de table d'ondes personnalisable + + Release time for high band + - - An oversampling bitcrusher - Un bitcrusher sur-échantillonneur + + Release Mid: + - - Carla Patchbay Instrument - Baie d'instruments Carla + + Release time for mid band + - - Carla Rack Instrument - Rack d'instruments Carla + + Release Low: + - - A dynamic range compressor. + + Release time for low band - - A 4-band Crossover Equalizer - Un égaliseur crossover à 4 bandes + + RMS Time: + - - A native delay plugin - Greffon délai natif + + RMS size for sidechain signal (set to 0 for Peak mode) + - - A Dual filter plugin - Un greffon de filtre double + + Knee: + - - plugin for processing dynamics in a flexible way - Greffon pour transformer la dynamique sonore de façon flexible + + Knee size for all compressors + - - A native eq plugin - Un greffon égaliseur natif + + Range: + - - A native flanger plugin - Un greffon flanger natif + + Maximum gain increase for all bands + - - Emulation of GameBoy (TM) APU - Émulateur de l'APU de la GameBoy (TM) + + Balance: + - - Player for GIG files - Lecteur de fichiers GIG + + Bias input volume towards one channel + - - Filter for importing Hydrogen files into LMMS - Filtre pour importer des fichiers Hydrogen dans LMMS + + Scale output volume with Depth + - - Versatile drum synthesizer - Synthétiseur de batterie polyvalent + + Scale output volume with Depth parameter + - - List installed LADSPA plugins - Liste des greffons LADSPA installés + + Stereo Link + - - plugin for using arbitrary LADSPA-effects inside LMMS. - Greffon pour l'utilisation de tout effet LADSPA dans LMMS. + + Apply same gain change to both channels + - - Incomplete monophonic imitation TB-303 - Imitation incomplète de TB-303 monophonique + + Auto Time: + - - plugin for using arbitrary LV2-effects inside LMMS. + + Speed up attack and release times when transients occur - - plugin for using arbitrary LV2 instruments inside LMMS. + + Mix: - - Filter for exporting MIDI-files from LMMS - Filtre pour l'exportation de fichiers MIDI depuis LMMS + + Wet/Dry of all bands + - - Filter for importing MIDI-files into LMMS - Filtre pour importer des fichiers MIDI dans LMMS + + Feedback + - - Monstrous 3-oscillator synth with modulation matrix - Synthétiseur à 3 oscillateurs monstrueux avec matrice de modulation + + Use output as sidechain signal instead of input + - - A multitap echo delay plugin - Un greffon d'écho et délai multitap + + Mid/Side + - - A NES-like synthesizer - Un synthétiseur genre 'NES' + + Compress mid/side channels instead of left/right + - - 2-operator FM Synth - Synthé FM à 2 opérateurs + + + Suppress upward compression for side band + - - Additive Synthesizer for organ-like sounds - Synthétiseur additif pour sons d'orgue + + + Lookahead + - - GUS-compatible patch instrument - Sons d'instruments compatibles avec la carte Gravis UltraSound (GUS) + + Lookahead length + - - Plugin for controlling knobs with sound peaks - Greffon pour des boutons de contrôles avec des crêtes de son + + Clear all parameters + + + + lmms::gui::LadspaBrowserView - - Reverb algorithm by Sean Costello - Algorithme de réverbération par Sean Costello + + + Available Effects + - - Player for SoundFont files - Lecteur de fichiers SoundFont + + + Unavailable Effects + - - LMMS port of sfxr - Port LMMS de sfxr + + + Instruments + - - Emulation of the MOS6581 and MOS8580 SID. -This chip was used in the Commodore 64 computer. - Émulateur des SID MOS6581 et MOS8580. -Cette puce était utilisée dans l'ordinateur Commodore 64. + + + Analysis Tools + - - A graphical spectrum analyzer. + + + Don't know - - Plugin for enhancing stereo separation of a stereo input file - Greffon pour l'amélioration de la séparation stéréo d'un fichier stéréo en entrée + + Type: + + + + lmms::gui::LadspaControlDialog - - Plugin for freely manipulating stereo output - Greffon pour la manipulation de la sortie stéréo + + Link Channels + - - Tuneful things to bang on - Instruments à percussion mélodiques + + Channel + + + + lmms::gui::LadspaControlView - - Three powerful oscillators you can modulate in several ways - Trois oscillateurs puissants que vous pouvez moduler de différentes manières + + Link channels + - - A stereo field visualizer. + + Value: + + + lmms::gui::LadspaDescription - - VST-host for using VST(i)-plugins within LMMS - Hôte VST pour l'utilisation de greffons VST(i) dans LMMS + + Plugins + - - Vibrating string modeler - Modeleur de corde vibrante + + Description + - - plugin for using arbitrary VST effects inside LMMS. - Greffon pour l'utilisation de tout effet VST dans LMMS. + + Name: + - - 4-oscillator modulatable wavetable synth - Synthétiseur de table d'ondes modulables à 4 oscillateurs + + Maker: + - - plugin for waveshaping - Greffon pour du modelage d'onde + + Copyright: + - - Mathematical expression parser - Analyseur d'expression mathématique + + Requires Real Time: + - - Embedded ZynAddSubFX - ZynAddSubFX intégré + + + + Yes + - - - PluginDatabaseW - - Carla - Add New + + + + No - - Format + + Real Time Capable: - - Internal + + In Place Broken: - - LADSPA - LADSPA + + Channels In: + - - DSSI - DSSI + + Channels Out: + + + + lmms::gui::LadspaMatrixControlDialog - - LV2 - LV2 + + Link Channels + - - VST2 - VST2 + + Link + - - VST3 - VST3 + + Channel %1 + - - AU + + Link channels + + + lmms::gui::LadspaPortDialog - - Sound Kits + + Ports - - Type - Type + + Name + - - Effects - Effets + + Rate + - - Instruments - Instruments + + Direction + - - MIDI Plugins + + Type - - Other/Misc + + Min < Default < Max - - Architecture + + Logarithmic - - Native + + SR Dependent - - Bridged + + Audio - - Bridged (Wine) + + Control - - Requirements + + Input - - With Custom GUI + + Output - - With CV Ports + + Toggled - - Real-time safe only + + Integer - - Stereo only + + Float - - With Inline Display + + + Yes + + + lmms::gui::Lb302SynthView - - Favorites only + + Cutoff Freq: - - (Number of Plugins go here) + + Resonance: - - &Add Plugin + + Env Mod: - - Cancel - Annuler + + Decay: + - - Refresh + + 303-es-que, 24dB/octave, 3 pole filter - - Reset filters + + Slide Decay: - - - - - - - - - - - - - - - - - TextLabel - TextLabel + + DIST: + - - Format: + + Saw wave - - Architecture: + + Click here for a saw-wave. - - Type: - Type : + + Triangle wave + - - MIDI Ins: + + Click here for a triangle-wave. - - Audio Ins: + + Square wave - - CV Outs: + + Click here for a square-wave. - - MIDI Outs: + + Rounded square wave - - Parameter Ins: + + Click here for a square-wave with a rounded end. - - Parameter Outs: + + Moog wave - - Audio Outs: + + Click here for a moog-like wave. - - CV Ins: + + Sine wave - - UniqueID: + + Click for a sine-wave. - - Has Inline Display: + + + White noise wave - - Has Custom GUI: + + Click here for an exponential wave. - - Is Synth: + + Click here for white-noise. - - Is Bridged: + + Bandlimited saw wave - - Information + + Click here for bandlimited saw wave. - - Name - Nom + + Bandlimited square wave + - - Label/URI + + Click here for bandlimited square wave. - - Maker + + Bandlimited triangle wave - - Binary/Filename + + Click here for bandlimited triangle wave. - - Focus Text Search + + Bandlimited moog saw wave - - Ctrl+F + + Click here for bandlimited moog saw wave. - PluginEdit + lmms::gui::LcdFloatSpinBox - - Plugin Editor + + Set value - - Edit + + Please enter a new value between %1 and %2: + + + lmms::gui::LcdSpinBox - - Control - Contrôle - - - - MIDI Control Channel: + + Set value - - N + + Please enter a new value between %1 and %2: + + + lmms::gui::LeftRightNav - - Output dry/wet (100%) + + + + Previous - - Output volume (100%) + + + + Next - - Balance Left (0%) + + Previous (%1) - - - Balance Right (0%) + + Next (%1) + + + lmms::gui::LfoControllerDialog - - Use Balance + + LFO - - Use Panning - Utiliser le panoramique - - - - Settings - Configuration + + BASE + - - Use Chunks + + Base: - - Audio: + + FREQ - - Fixed-Size Buffer + + LFO frequency: - - Force Stereo (needs reload) + + AMNT - - MIDI: + + Modulation amount: - - Map Program Changes + + PHS - - Send Bank/Program Changes + + Phase offset: - - Send Control Changes + + degrees - - Send Channel Pressure + + Sine wave - - Send Note Aftertouch + + Triangle wave - - Send Pitchbend + + Saw wave - - Send All Sound/Notes Off + + Square wave - - -Plugin Name - + + Moog saw wave - - Program: + + Exponential wave - - MIDI Program: + + White noise - - Save State + + User-defined shape. +Double click to pick a file. - - Load State + + Multiply modulation frequency by 1 - - Information + + Multiply modulation frequency by 100 - - Label/URI: + + Divide modulation frequency by 100 + + + lmms::gui::LfoGraph - - Name: + + %1 Hz + + + lmms::gui::MainWindow - - Type: - Type : + + Configuration file + - - Maker: + + Error while parsing configuration file at line %1:%2: %3 - - Copyright: + + Could not open file - - Unique ID: + + Could not open file %1 for writing. +Please make sure you have write permission to the file and the directory containing the file and try again! - - - PluginFactory - - Plugin not found. - Greffon introuvable. + + Project recovery + - - LMMS plugin %1 does not have a plugin descriptor named %2! - Le greffon LMMS %1 n'a pas de descripteur de greffon nommé %2 ! + + There is a recovery file present. It looks like the last session did not end properly or another instance of LMMS is already running. Do you want to recover the project of this session? + - - - PluginParameter - - Form + + + Recover - - Parameter Name + + Recover the file. Please don't run multiple instances of LMMS when you do this. - - ... - ... + + + Discard + - - - PluginRefreshW - - Carla - Refresh + + Launch a default session and delete the restored files. This is not reversible. - - Search for new... + + Version %1 - - LADSPA - LADSPA + + Preparing plugin browser + - - DSSI - DSSI + + Preparing file browsers + - - LV2 - LV2 + + My Projects + - - VST2 - VST2 + + My Samples + - - VST3 - VST3 + + My Presets + - - AU + + My Home - - - SF2/3 - SF2/3 + + + Root Directory + - - SFZ - SFZ + + Volumes + - - Native + + My Computer - - POSIX 32bit + + Loading background picture - - POSIX 64bit + + &File - - Windows 32bit + + &New - - Windows 64bit + + &Open... - - Available tools: + + &Save - - python3-rdflib (LADSPA-RDF support) + + Save &As... - - carla-discovery-win64 + + Save as New &Version - - carla-discovery-native + + Save as default template - - carla-discovery-posix32 + + Import... - - carla-discovery-posix64 + + E&xport... - - carla-discovery-win32 + + E&xport Tracks... - - Options: + + Export &MIDI... - - Carla will run small processing checks when scanning the plugins (to make sure they won't crash). -You can disable these checks to get a faster scanning time (at your own risk). + + &Quit - - Run processing checks while scanning + + &Edit - - Press 'Scan' to begin the search + + Undo - - Scan + + Redo - - >> Skip + + Scales and keymaps - - Close - Fermer + + Settings + - - - PluginWidget - - - - - - Frame + + &View - - Enable - Activer + + &Tools + - - On/Off - On/Off + + &Help + - - - - - PluginName + + Online Help - - MIDI - MIDI + + Help + - - AUDIO IN + + About - - AUDIO OUT + + Create new project - - GUI + + Create new project from template - - Edit + + Open existing project - - Remove - Supprimer + + Recently opened projects + - - Plugin Name + + Save current project - - Preset: + + Export current project - - - ProjectNotes - - Project Notes - Montrer/cacher les notes du projet + + Metronome + - - Enter project notes here - Inscrire les notes de projet ici + + + Song Editor + - - Edit Actions - Édition + + + Pattern Editor + - - &Undo - &Défaire + + + Piano Roll + - - %1+Z - %1+Z + + + Automation Editor + - - &Redo - &Refaire + + + Mixer + - - %1+Y - %1+Y + + Show/hide controller rack + - - &Copy - &Copier + + Show/hide project notes + - - %1+C - %1+C + + Untitled + - - Cu&t - Cou&per + + Recover session. Please save your work! + - - %1+X - %1+X + + LMMS %1 + - - &Paste - Co&ller + + Recovered project not saved + - - %1+V - %1+V + + This project was recovered from the previous session. It is currently unsaved and will be lost if you don't save it. Do you want to save it now? + - - Format Actions - Format + + Project not saved + - - &Bold - Gr&as + + The current project was modified since last saving. Do you want to save it now? + - - %1+B - %1+B + + Open Project + - - &Italic - &Italique + + LMMS (*.mmp *.mmpz) + - - %1+I - %1+I + + Save Project + - - &Underline - &Souligné + + LMMS Project + - - %1+U - %1+U + + LMMS Project Template + - - &Left - &Gauche + + Save project template + - - %1+L - %1+L + + Overwrite default template? + - - C&enter - C&entrer + + This will overwrite your current default template. + - - %1+E - %1+E + + Help not available + - - &Right - D&roite + + Currently there's no help available in LMMS. +Please visit http://lmms.sf.net/wiki for documentation on LMMS. + - - %1+R - %1+R + + Controller Rack + - - &Justify - &Justifier + + Project Notes + - - %1+J - %1+J + + Fullscreen + - - &Color... - C&ouleurs... + + Volume as dBFS + - - - ProjectRenderer - - WAV (*.wav) + + Smooth scroll - - FLAC (*.flac) + + Enable note labels in piano roll - - OGG (*.ogg) + + MIDI File (*.mid) - - MP3 (*.mp3) + + + untitled - - - QObject - - Reload Plugin + + + Select file for project-export... - - Show GUI - Montrer l'interface graphique + + Select directory for writing exported tracks... + - - Help - Aide + + Save project + - - - QWidget - - - - - Name: - Nom : + + Project saved + - - URI: + + The project %1 is now saved. - - - - Maker: - Fabricant : + + Project NOT saved. + - - - - Copyright: - Copyright : + + The project %1 was not saved! + - - - Requires Real Time: - Nécessite le temps réel : + + Import file + - - - - - - - Yes - Oui + + MIDI sequences + - - - - - - - No - Non + + Hydrogen projects + - - - Real Time Capable: - Support temps réel : + + All file types + + + + lmms::gui::MalletsInstrumentView - - - In Place Broken: - Inutilisable : + + Instrument + - - - Channels In: - Canaux d'entrée : + + Spread + - - - Channels Out: - Canaux de sortie : + + Spread: + - - File: %1 - Fichier : %1 + + Random + - - File: - Fichier : + + Random: + - - - RecentProjectsMenu - - &Recently Opened Projects - Projets ouverts &Récemment + + Missing files + - - - RenameDialog - - Rename... - Renommer... + + Your Stk-installation seems to be incomplete. Please make sure the full Stk-package is installed! + - - - ReverbSCControlDialog - - Input - Entrée + + Hardness + - - Input gain: - Gain en entrée : + + Hardness: + - - Size - Taille + + Position + - - Size: - Taille : + + Position: + - - Color - Couleur + + Vibrato gain + - - Color: - Couleur : + + Vibrato gain: + - - Output - Sortie + + Vibrato frequency + - - Output gain: - Gain en sortie : + + Vibrato frequency: + - - - ReverbSCControls - - Input gain - Gain en entrée + + Stick mix + - - Size - Taille + + Stick mix: + - - Color - Couleur + + Modulator + - - Output gain - Gain en sortie + + Modulator: + - - - SaControls - - Pause + + Crossfade - - Reference freeze + + Crossfade: - - Waterfall + + LFO speed - - Averaging + + LFO speed: - - Stereo - Stéréo + + LFO depth + - - Peak hold + + LFO depth: - - Logarithmic frequency + + ADSR - - Logarithmic amplitude + + ADSR: - - Frequency range + + Pressure - - Amplitude range + + Pressure: - - FFT block size - Taille du bloc FFT + + Speed + - - FFT window type + + Speed: + + + lmms::gui::ManageVSTEffectView - - Peak envelope resolution + + - VST parameter control - - Spectrum display resolution + + VST sync - - Peak decay multiplier + + + Automated - - Averaging weight + + Close + + + lmms::gui::ManageVestigeInstrumentView - - Waterfall history size + + + - VST plugin control - - Waterfall gamma correction + + VST Sync - - FFT window overlap + + + Automated - - FFT zero padding + + Close + + + lmms::gui::MeterDialog - - - Full (auto) + + + Meter Numerator - - - - Audible + + Meter numerator - - Bass - Graves + + + Meter Denominator + - - Mids + + Meter denominator - - High + + TIME SIG + + + lmms::gui::MicrotunerConfig - - Extended + + Selected scale slot - - Loud - Fort + + Selected keymap slot + - - Silent + + + First key - - (High time res.) + + + Last key - - (High freq. res.) + + + Middle key - - Rectangular (Off) + + + Base key - - - Blackman-Harris (Default) + + + + Base note frequency - - Hamming + + Microtuner Configuration - - Hanning + + Scale slot to edit: - - - SaControlsDialog - - Pause + + Scale description. Cannot start with "!" and cannot contain a newline character. - - Pause data acquisition + + + Load - - Reference freeze + + + Save - - Freeze current input as a reference / disable falloff in peak-hold mode. + + Load scale definition from a file. - - Waterfall + + Save scale definition to a file. - - Display real-time spectrogram + + Enter intervals on separate lines. Numbers containing a decimal point are treated as cents. +Other inputs are treated as integer ratios and must be in the form of 'a/b' or 'a'. +Unity (0.0 cents or ratio 1/1) is always present as a hidden first value; do not enter it manually. - - Averaging + + Apply scale changes - - Enable exponential moving average + + Verify and apply changes made to the selected scale. To use the scale, select it in the settings of a supported instrument. - - Stereo - Stéréo + + Keymap slot to edit: + - - Display stereo channels separately + + Keymap description. Cannot start with "!" and cannot contain a newline character. - - Peak hold + + Load key mapping definition from a file. - - Display envelope of peak values + + Save key mapping definition to a file. - - Logarithmic frequency + + Enter key mappings on separate lines. Each line assigns a scale degree to a MIDI key, +starting with the middle key and continuing in sequence. +The pattern repeats for keys outside of the explicit keymap range. +Multiple keys can be mapped to the same scale degree. +Enter 'x' if you wish to leave the key disabled / not mapped. - - Switch between logarithmic and linear frequency scale + + FIRST - - - Frequency range + + First MIDI key that will be mapped - - Logarithmic amplitude + + LAST - - Switch between logarithmic and linear amplitude scale + + Last MIDI key that will be mapped - - - Amplitude range + + MIDDLE - - Envelope res. + + First line in the keymap refers to this MIDI key - - Increase envelope resolution for better details, decrease for better GUI performance. + + BASE N. - - - Draw at most + + Base note frequency will be assigned to this MIDI key - - envelope points per pixel - points d'enveloppe par pixel + + BASE NOTE FREQ + - - Spectrum res. + + Apply keymap changes - - Increase spectrum resolution for better details, decrease for better GUI performance. + + Verify and apply changes made to the selected key mapping. To use the mapping, select it in the settings of a supported instrument. - - spectrum points per pixel + + Scale parsing error - - Falloff factor + + Scale name cannot start with an exclamation mark - - Decrease to make peaks fall faster. + + Scale name cannot contain a new-line character - - Multiply buffered value by + + Interval defined in cents cannot be converted to a number - - Averaging weight + + Numerator of an interval defined as a ratio cannot be converted to a number - - Decrease to make averaging slower and smoother. + + Denominator of an interval defined as a ratio cannot be converted to a number - - New sample contributes + + Interval defined as a ratio cannot be negative - - Waterfall height + + Keymap parsing error - - Increase to get slower scrolling, decrease to see fast transitions better. Warning: medium CPU usage. + + Keymap name cannot start with an exclamation mark - - Keep + + Keymap name cannot contain a new-line character - - lines + + Scale degree cannot be converted to a whole number - - Waterfall gamma + + Scale degree cannot be negative - - Decrease to see very weak signals, increase to get better contrast. + + Invalid keymap - - Gamma value: + + Base key is not mapped to any scale degree. No sound will be produced as there is no way to assign reference frequency to any note. - - Window overlap + + Open scale - - Increase to prevent missing fast transitions arriving near FFT window edges. Warning: high CPU usage. + + + Scala scale definition (*.scl) - - Each sample processed + + Scale load failure - - times + + + Unable to open selected file. - - Zero padding + + Open keymap - - Increase to get smoother-looking spectrum. Warning: high CPU usage. + + + Scala keymap definition (*.kbm) - - Processing buffer is + + Keymap load failure - - steps larger than input block + + Save scale - - Advanced settings + + Scale save failure - - Access advanced settings + + + Unable to open selected file for writing. - - - FFT block size - Taille du bloc FFT + + Save keymap + - - - FFT window type + + Keymap save failure - SampleBuffer + lmms::gui::MidiCCRackView - - Fail to open file - Échec à l'ouverture du fichier + + + MIDI CC Rack - %1 + - - Audio files are limited to %1 MB in size and %2 minutes of playing time - Les fichiers audio sont limités à une taille de %1 MB et %2 minutes de temps de lecture + + MIDI CC Knobs: + - - Open audio file - Ouvrir un fichier audio + + CC %1 + + + + lmms::gui::MidiClipView - - All Audio-Files (*.wav *.ogg *.ds *.flac *.spx *.voc *.aif *.aiff *.au *.raw) - Tous les fichiers audio.(*.wav *.ogg *.ds *.flac *.spx *.voc *.aif *.aiff *.au *.raw) + + + Transpose + - - Wave-Files (*.wav) - Fichiers WAVE (*.wav) + + Semitones to transpose by: + - - OGG-Files (*.ogg) - Fichiers OGG (*.ogg) + + Open in piano-roll + - - DrumSynth-Files (*.ds) - Fichiers DrumSynth (*.ds) + + Set as ghost in piano-roll + - - FLAC-Files (*.flac) - Fichiers FLAC (*.flac) + + Set as ghost in automation editor + - - SPEEX-Files (*.spx) - Fichiers SPEEX (*.spx) + + Clear all notes + - - VOC-Files (*.voc) - Fichiers VOC (*.voc) + + Reset name + - - AIFF-Files (*.aif *.aiff) - Fichiers AIFF (*.aif *.aiff) + + Change name + - - AU-Files (*.au) - Fichiers AU (*.au) + + Add steps + - - RAW-Files (*.raw) - Fichiers RAW (*.raw) + + Remove steps + - - - SampleClipView - - Double-click to open sample + + Clone Steps + + + lmms::gui::MidiSetupWidget - - Delete (middle mousebutton) - Supprimer (bouton du milieu de la souris) + + Device + + + + lmms::gui::MixerChannelLcdSpinBox - - Delete selection (middle mousebutton) + + Assign to: - - Cut - Couper + + New Mixer Channel + - - Cut selection + + Please enter a new value between %1 and %2: - - Copy - Copier + + Set value + + + + lmms::gui::MixerChannelView - - Copy selection + + Channel send amount - - Paste - Coller + + Mute + - - Mute/unmute (<%1> + middle click) - Sourdine (ou non) (<%1> + clic-milieu) + + Mute this channel + - - Mute/unmute selection (<%1> + middle click) + + Solo - - Reverse sample - Inverser l'échantillon + + Solo this channel + - - Set clip color + + Fader %1 - - Use track color + + Move &left - - - SampleTrack - - Volume - Volume + + Move &right + - - Panning - Panoramisation + + Rename &channel + - - Mixer channel - Canal d'effet + + R&emove channel + - - - Sample track - Piste d'échantillon + + Remove &unused channels + - - - SampleTrackView - - Track volume - Volume de la piste + + Color + - - Channel volume: - Volume du canal : + + Change + - - VOL - VOL + + Reset + - - Panning - Panoramisation + + Pick random + - - Panning: - Panoramisation : + + This Mixer Channel is being used. +Are you sure you want to remove this channel? + +Warning: This operation can not be undone. + - - PAN - PAN + + Confirm removal + - - Channel %1: %2 - Effet %1 : %2 + + Don't ask again + - SampleTrackWindow + lmms::gui::MixerView - - GENERAL SETTINGS - CONFIGURATION GÉNÉRALE + + Mixer + + + + lmms::gui::MonstroView - - Sample volume + + Operators view - - Volume: - Volume : + + Matrix view + - - VOL - VOL + + + + Volume + - + + + Panning - Panoramisation - - - - Panning: - Panoramisation : - - - - PAN - PAN + - - Mixer channel - Canal d'effet + + + + Coarse detune + - - CHANNEL - EFFET + + + + semitones + - - - SaveOptionsWidget - - Discard MIDI connections + + + Fine tune left - - Save As Project Bundle (with resources) + + + + + cents - - - SetupDialog - - Reset to default value + + + Fine tune right - - Use built-in NaN handler - Utiliser le gestionnaire NaN intégré + + + + Stereo phase offset + - - Settings - Configuration + + + + + + deg + - - - General + + Pulse width - - Graphical user interface (GUI) + + Send sync on pulse rise - - Display volume as dBFS - Afficher le volume en dBFS + + Send sync on pulse fall + - - Enable tooltips - Activer les info-bulles + + Hard sync oscillator 2 + - - Enable master oscilloscope by default + + Reverse sync oscillator 2 - - Enable all note labels in piano roll + + Sub-osc mix - - Enable compact track buttons + + Hard sync oscillator 3 - - Enable one instrument-track-window mode + + Reverse sync oscillator 3 - - Show sidebar on the right-hand side + + + + + Attack - - Let sample previews continue when mouse is released + + + Rate - - Mute automation tracks during solo + + + Phase - - Show warning when deleting tracks + + + Pre-delay - - Projects + + + Hold - - Compress project files by default + + + Decay - - Create a backup file when saving a project + + + Sustain - - Reopen last project on startup + + + Release - - Language + + + Slope - - - Performance + + Mix osc 2 with osc 3 - - Autosave + + Modulate amplitude of osc 3 by osc 2 - - Enable autosave - Activer la sauvegarde automatique + + Modulate frequency of osc 3 by osc 2 + - - Allow autosave while playing + + Modulate phase of osc 3 by osc 2 - - User interface (UI) effects vs. performance + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Modulation amount + + + lmms::gui::MultitapEchoControlDialog - - Smooth scroll in song editor + + Length - - Display playback cursor in AudioFileProcessor + + Step length: - - Plugins - Greffons + + Dry + - - VST plugins embedding: + + Dry gain: - - No embedding - Aucune intégration + + Stages + - - Embed using Qt API - Intégrer en utilisant l'API Qt + + Low-pass stages: + - - Embed using native Win32 API - Intégrer en utilisant l'API Win32 native + + Swap inputs + - - Embed using XEmbed protocol - Intégrer en utilisant le protocole XEmbed + + Swap left and right input channels for reflections + + + + lmms::gui::NesInstrumentView - - Keep plugin windows on top when not embedded - Maintenir les fenêtres des plugins au premier plan lorsqu'elles ne sont pas intégrées + + + + + Volume + - - Sync VST plugins to host playback - Synchroniser les greffons VST à la lecture de l'hôte + + + + Coarse detune + - - Keep effects running even without input - Laisser les effets opérer même sans entrée + + + + Envelope length + - - - Audio - Audio + + Enable channel 1 + - - Audio interface + + Enable envelope 1 - - HQ mode for output audio device + + Enable envelope 1 loop - - Buffer size + + Enable sweep 1 - - - MIDI - MIDI + + + Sweep amount + - - MIDI interface + + + Sweep rate - - Automatically assign MIDI controller to selected track + + + 12.5% Duty cycle - - LMMS working directory - Répertoire de travail de LMMS + + + 25% Duty cycle + - - VST plugins directory + + + 50% Duty cycle - - LADSPA plugins directories + + + 75% Duty cycle - - SF2 directory - Répertoire des SF2 + + Enable channel 2 + - - Default SF2 + + Enable envelope 2 - - GIG directory - Répertoire des GIG + + Enable envelope 2 loop + - - Theme directory + + Enable sweep 2 - - Background artwork - Thème graphique d'arrière-plan + + Enable channel 3 + - - Some changes require restarting. + + Noise Frequency - - Autosave interval: %1 + + Frequency sweep - - Choose the LMMS working directory + + Enable channel 4 - - Choose your VST plugins directory + + Enable envelope 4 - - Choose your LADSPA plugins directory + + Enable envelope 4 loop - - Choose your default SF2 + + Quantize noise frequency when using note frequency - - Choose your theme directory + + Use note frequency for noise - - Choose your background picture + + Noise mode - - - Paths - Chemins d'accès + + Master volume + - - OK - OK + + Vibrato + + + + lmms::gui::OpulenzInstrumentView - - Cancel - Annuler + + + Attack + - - Frames: %1 -Latency: %2 ms - Trames : %1 -Latence : %2 ms + + + Decay + - - Choose your GIG directory - Choisissez le répertoire des fichiers GIG + + + Release + - - Choose your SF2 directory - Choisissez le répertoire des fichiers SF2 + + + Frequency multiplier + + + + lmms::gui::OrganicInstrumentView - - minutes - minutes + + Distortion: + - - minute - minute + + Volume: + - - Disabled - Désactivé + + Randomise + - - - SidInstrument - - Cutoff frequency - Fréquence de coupure + + + Osc %1 waveform: + - - Resonance - Résonance + + Osc %1 volume: + - - Filter type - Type de filtre + + Osc %1 panning: + - - Voice 3 off - Voix 3 coupée + + Osc %1 stereo detuning + - - Volume - Volume + + cents + - - Chip model - Modèle de circuit + + Osc %1 harmonic: + - SidInstrumentView + lmms::gui::Oscilloscope - - Volume: - Volume : + + Oscilloscope + - - Resonance: - Résonance : + + Click to enable + + + + lmms::gui::PatmanView - - - Cutoff frequency: - Fréquence de coupure : + + Open patch + - - High-pass filter + + Loop - - Band-pass filter + + Loop mode - - Low-pass filter + + Tune - - Voice 3 off + + Tune mode - - MOS6581 SID - SID MOS6581 + + No file selected + - - MOS8580 SID - SID MOS8580 + + Open patch file + - - - Attack: - Attaque : + + Patch-Files (*.pat) + + + + lmms::gui::PatternClipView - - - Decay: - Affaiblissement (decay) : + + Open in Pattern Editor + - - Sustain: - Soutien : + + Reset name + - - - Release: - Relâchement : + + Change name + + + + lmms::gui::PatternEditorWindow - - Pulse Width: - Largeur de pulsation : + + Pattern Editor + - - Coarse: - Grossier : + + Play/pause current pattern (Space) + - - Pulse wave + + Stop playback of current pattern (Space) - - Triangle wave - Onde triangulaire + + Pattern selector + - - Saw wave - Onde en dents-de-scie + + Track and step actions + - - Noise - Bruit + + New pattern + - - Sync - Sync + + Clone pattern + - - Ring modulation + + Add sample-track - - Filtered - Filtré + + Add automation-track + - - Test - Test + + Remove steps + - - Pulse width: + + Add steps - - - SideBarWidget - - Close - Fermer + + Clone Steps + - Song + lmms::gui::PeakControllerDialog - - Tempo - Tempo + + PEAK + - - Master volume - Volume général + + LFO Controller + + + + lmms::gui::PeakControllerEffectControlDialog - - Master pitch - Tonalité générale + + BASE + - - Aborting project load + + Base: - - Project file contains local paths to plugins, which could be used to run malicious code. + + AMNT - - Can't load project: Project file contains local paths to plugins. + + Modulation amount: - - LMMS Error report - Rapport d'erreur LMMS + + MULT + - - (repeated %1 times) + + Amount multiplicator: - - The following errors occurred while loading: + + ATCK - - - SongEditor - - Could not open file - Le fichier n'a pas pu être ouvert + + Attack: + - - Could not open file %1. You probably have no permissions to read this file. - Please make sure to have at least read permissions to the file and try again. - Le fichier %1 n'a pas pu être ouvert. Vous n'avez probablement pas les droits pour lire ce fichier. -Veuillez vérifier que vous avez au moins les droits en lecture pour ce fichier et réessayez. + + DCAY + - - Operation denied + + Release: - - A bundle folder with that name already eists on the selected path. Can't overwrite a project bundle. Please select a different name. + + TRSH - - - - Error - Erreur + + Treshold: + - - Couldn't create bundle folder. + + Mute output - - Couldn't create resources folder. + + Absolute value + + + lmms::gui::PeakIndicator - - Failed to copy resources. + + -inf + + + lmms::gui::PianoRoll - - Could not write file - Le fichier n'a pas pu être écrit - - - - Could not open %1 for writing. You probably are not permitted towrite to this file. Please make sure you have write-access to the file and try again. + + Note Velocity - - This %1 was created with LMMS %2 + + Note Panning - - Error in file - Erreur dans le fichier + + Mark/unmark current semitone + - - The file %1 seems to contain errors and therefore can't be loaded. - Le fichier %1 semble contenir des erreurs et ne peut donc pas être chargé. + + Mark/unmark all corresponding octave semitones + - - Version difference - Différence de version + + Mark current scale + - - template - modèle + + Mark current chord + - - project - projet + + Unmark all + - - Tempo - Tempo + + Select all notes on this key + - - TEMPO + + Note lock - - Tempo in BPM + + Last note - - High quality mode - Mode haute qualité + + No key + - - - - Master volume - Volume général + + No scale + - - - - Master pitch - Tonalité générale + + No chord + - - Value: %1% - Valeur : %1% + + Nudge + - - Value: %1 semitones - Valeur : %1 demi-tons + + Snap + - - - SongEditorWindow - - Song-Editor - Éditeur de morceau + + Velocity: %1% + - - Play song (Space) - Jouer le morceau (barre d'espace) + + Panning: %1% left + - - Record samples from Audio-device - Enregistrer des échantillons à partir d'un périphérique audio + + Panning: %1% right + - - Record samples from Audio-device while playing song or BB track - Enregistrer des échantillons à partir d'un périphérique audio pendant l'écoute d'un morceau ou bien d'un rythme ou d'une ligne de basse + + Panning: center + - - Stop song (Space) - Arrêter de jouer le morceau (barre d'espace) + + Glue notes failed + - - Track actions - Actions de la piste + + Please select notes to glue first. + - - Add beat/bassline - Ajouter un rythme ou une ligne de basse + + Please open a clip by double-clicking on it! + - - Add sample-track - Ajouter une piste d'échantillon + + + Please enter a new value between %1 and %2: + + + + lmms::gui::PianoRollWindow - - Add automation-track - Ajouter une piste d'automation + + Play/pause current clip (Space) + - - Edit actions - Actions d'édition + + Record notes from MIDI-device/channel-piano + - - Draw mode - Mode dessin + + Record notes from MIDI-device/channel-piano while playing song or pattern track + - - Knife mode (split sample clips) + + Record notes from MIDI-device/channel-piano, one step at the time - - Edit mode (select and move) - Mode édition (sélectionner et déplacer) + + Stop playing of current clip (Space) + - - Timeline controls - Contrôles de la ligne de temps + + Edit actions + - - Bar insert controls + + Draw mode (Shift+D) - - Insert bar + + Erase mode (Shift+E) - - Remove bar + + Select mode (Shift+S) - - Zoom controls - Contrôle du zoom + + Pitch Bend mode (Shift+T) + - - Horizontal zooming - Zoom horizontal + + Quantize + - - Snap controls + + Quantize positions - - - Clip snapping size + + Quantize lengths - - Toggle proportional snap on/off + + File actions - - Base snapping size + + Import clip - - - StepRecorderWidget - - Hint - Astuce + + + Export clip + - - Move recording curser using <Left/Right> arrows + + Copy paste controls - - - SubWindow - - Close - Fermer + + Cut (%1+X) + - - Maximize - Maximiser + + Copy (%1+C) + - - Restore - Restorer + + Paste (%1+V) + - - - TabWidget - - - Settings for %1 - Réglages pour %1 + + Timeline controls + - - - TemplatesMenu - - New from template - Nouveau à partir d'un modèle + + Glue + - - - TempoSyncKnob - - - Tempo Sync - Synchronisation du tempo + + Knife + - - No Sync - Pas de synchronisation + + Fill + - - Eight beats - Huit temps + + Cut overlaps + - - Whole note - Note entière + + Min length as last + - - Half note - Demi-note + + Max length as last + - - Quarter note - Quart de note + + Zoom and note controls + - - 8th note - 8 ième de note + + Horizontal zooming + - - 16th note - 16 ième de note + + Vertical zooming + - - 32nd note - 32 ième de note + + Quantization + - - Custom... - Personnalisé... + + Note length + - - Custom - Personnalisé + + Key + - - Synced to Eight Beats - Synchronisé sur huit temps + + Scale + - - Synced to Whole Note - Synchronisé sur note entière + + Chord + - - Synced to Half Note - Synchronisé sur demi-note + + Snap mode + - - Synced to Quarter Note - Synchronisé sur quart de note + + Clear ghost notes + - - Synced to 8th Note - Synchronisé sur 8 ième de note + + + Piano-Roll - %1 + - - Synced to 16th Note - Synchronisé sur 16 ième de note + + + Piano-Roll - no clip + - - Synced to 32nd Note - Synchronisé sur 32 ième de note + + + XML clip file (*.xpt *.xptz) + - - - TimeDisplayWidget - - Time units + + Export clip success - - MIN - MIN + + Clip saved to %1 + - - SEC - DEC + + Import clip. + - - MSEC - MSEC + + You are about to import a clip, this will overwrite your current clip. Do you want to continue? + - - BAR - BAR + + Open clip + - - BEAT - BATT + + Import clip success + - - TICK - TICK + + Imported clip %1! + - TimeLineWidget + lmms::gui::PianoView - - Auto scrolling + + Base note - - Loop points + + First note - - After stopping go back to beginning + + Last note + + + lmms::gui::PluginBrowser - - After stopping go back to position at which playing was started - Revenir à la position de départ après l'arrêt + + Instrument Plugins + - - After stopping keep position - Ne rien faire après l'arrêt + + Instrument browser + - - Hint - Astuce + + Drag an instrument into either the Song Editor, the Pattern Editor or an existing instrument track. + - - Press <%1> to disable magnetic loop points. - Appuyez sur <%1> pour désactiver les marqueur magnétiques de jeu en boucle. + + Search + - Track - - - Mute - Mettre en sourdine - + lmms::gui::PluginDescWidget - - Solo - Solo + + Send to new instrument track + - TrackContainer + lmms::gui::ProjectNotes - - Couldn't import file - Le fichier n'a pas pu être importé + + Project Notes + - - Couldn't find a filter for importing file %1. -You should convert this file into a format supported by LMMS using another software. - Aucun filtre n'a pu être trouvé pour importer le fichier %1. -Vous devriez convertir ce fichier dans un format pris en charge par LMMS en utilisant un autre logiciel. + + Enter project notes here + - - Couldn't open file - Le fichier n'a pas pu être ouvert + + Edit Actions + - - Couldn't open file %1 for reading. -Please make sure you have read-permission to the file and the directory containing the file and try again! - Le fichier %1 n'a pas pu être ouvert en lecture. -Veuillez vérifier que vous avez les droits en lecture pour ce fichier et le répertoire qui contient ce fichier et réessayez ! + + &Undo + - - Loading project... - Chargement du projet... + + %1+Z + - - - Cancel - Annuler + + &Redo + - - - Please wait... - Veuillez patienter... + + %1+Y + - - Loading cancelled - Chargement annulé + + &Copy + - - Project loading was cancelled. - Le chargement du projet a été annulé. + + %1+C + - - Loading Track %1 (%2/Total %3) - Chargement de la piste %1 (%2/Total %3) + + Cu&t + - - Importing MIDI-file... - Importation du fichier MIDI... + + %1+X + - - - Clip - - Mute - Mettre en sourdine + + &Paste + - - - ClipView - - Current position - Position actuelle + + %1+V + - - Current length - Longueur actuelle + + Format Actions + - - - %1:%2 (%3:%4 to %5:%6) - %1:%2 (%3:%4 vers %5:%6) + + &Bold + - - Press <%1> and drag to make a copy. - Appuyez sur <%1> et glissez pour faire une copie. + + %1+B + - - Press <%1> for free resizing. - Appuyez sur <%1> pour un redimensionnement libre. + + &Italic + - - Hint - Astuce + + %1+I + - - Delete (middle mousebutton) - Supprimer (bouton du milieu de la souris) + + &Underline + - - Delete selection (middle mousebutton) + + %1+U - - Cut - Couper + + &Left + - - Cut selection + + %1+L - - Merge Selection + + C&enter - - Copy - Copier + + %1+E + - - Copy selection + + &Right - - Paste - Coller + + %1+R + - - Mute/unmute (<%1> + middle click) - Sourdine (ou non) (<%1> + clic-milieu) + + &Justify + - - Mute/unmute selection (<%1> + middle click) + + %1+J - - Set clip color + + &Color... + + + lmms::gui::RecentProjectsMenu - - Use track color + + &Recently Opened Projects - TrackContentWidget + lmms::gui::RenameDialog - - Paste - Coller + + Rename... + - TrackOperationsWidget + lmms::gui::ReverbSCControlDialog - - Press <%1> while clicking on move-grip to begin a new drag'n'drop action. + + Input - - Actions + + Input gain: - - - Mute - Mode sourdine + + Size + - - - Solo - Mode solo + + Size: + - - After removing a track, it can not be recovered. Are you sure you want to remove track "%1"? + + Color - - Confirm removal + + Color: - - Don't ask again + + Output - - Clone this track - Cloner cette piste + + Output gain: + + + + lmms::gui::SaControlsDialog - - Remove this track - Supprimer cette piste + + Pause + - - Clear this track - Vider cette piste + + Pause data acquisition + - - Channel %1: %2 - Effet %1 : %2 + + Reference freeze + - - Assign to new mixer Channel - Assigner à un nouveau canal d'effet + + Freeze current input as a reference / disable falloff in peak-hold mode. + - - Turn all recording on - Armer tous les enregistrements + + Waterfall + - - Turn all recording off - Désarmer tous les enregistrements + + Display real-time spectrogram + - - Change color - Modifier la couleur + + Averaging + - - Reset color to default - Réinitialiser la couleur par défaut + + Enable exponential moving average + - - Set random color + + Stereo - - Clear clip colors + + Display stereo channels separately - - - TripleOscillatorView - - Modulate phase of oscillator 1 by oscillator 2 - Moduler la phase de l'oscillateur 1 par l'oscillateur 2 + + Peak hold + - - Modulate amplitude of oscillator 1 by oscillator 2 + + Display envelope of peak values - - Mix output of oscillators 1 & 2 + + Logarithmic frequency - - Synchronize oscillator 1 with oscillator 2 - Synchroniser l'oscillateur 1 avec l'oscillateur 2 + + Switch between logarithmic and linear frequency scale + - - Modulate frequency of oscillator 1 by oscillator 2 + + + Frequency range - - Modulate phase of oscillator 2 by oscillator 3 + + Logarithmic amplitude - - Modulate amplitude of oscillator 2 by oscillator 3 + + Switch between logarithmic and linear amplitude scale - - Mix output of oscillators 2 & 3 + + + Amplitude range - - Synchronize oscillator 2 with oscillator 3 - Synchroniser l'oscillateur 2 avec l'oscillateur 3 + + + FFT block size + - - Modulate frequency of oscillator 2 by oscillator 3 + + + FFT window type - - Osc %1 volume: - Volume de l'oscillateur %1 : + + Envelope res. + - - Osc %1 panning: - Panoramisation de l'oscillateur %1 : + + Increase envelope resolution for better details, decrease for better GUI performance. + - - Osc %1 coarse detuning: - Désaccordage grossier de l'oscillateur %1 : + + Maximum number of envelope points drawn per pixel: + - - semitones - demi-tons + + Spectrum res. + - - Osc %1 fine detuning left: - Désaccordage fin (gauche) de l'oscillateur %1 : + + Increase spectrum resolution for better details, decrease for better GUI performance. + - - - cents - centièmes + + Maximum number of spectrum points drawn per pixel: + - - Osc %1 fine detuning right: - Désaccordage fin (droite) de l'oscillateur %1 : + + Falloff factor + - - Osc %1 phase-offset: - Décalage de phase de l'oscillateur %1 : + + Decrease to make peaks fall faster. + - - - degrees - degrés + + Multiply buffered value by + - - Osc %1 stereo phase-detuning: - Désaccordage stéréo de la phase de l'oscillateur %1 : + + Averaging weight + - - Sine wave - Onde sinusoïdale + + Decrease to make averaging slower and smoother. + - - Triangle wave - Onde triangulaire + + New sample contributes + - - Saw wave - Onde en dents-de-scie + + Waterfall height + - - Square wave - Onde carrée + + Increase to get slower scrolling, decrease to see fast transitions better. Warning: medium CPU usage. + - - Moog-like saw wave + + Number of lines to keep: + + + + + Waterfall gamma + + + + + Decrease to see very weak signals, increase to get better contrast. - - Exponential wave - Onde exponentielle + + Gamma value: + - - White noise - Bruit blanc + + Window overlap + - - User-defined wave + + Increase to prevent missing fast transitions arriving near FFT window edges. Warning: high CPU usage. - - - VecControls - - Display persistence amount + + Number of times each sample is processed: - - Logarithmic scale + + Zero padding - - High quality + + Increase to get smoother-looking spectrum. Warning: high CPU usage. - - - VecControlsDialog - - HQ + + Processing buffer is - - Double the resolution and simulate continuous analog-like trace. + + steps larger than input block - - Log. scale + + Advanced settings - - Display amplitude on logarithmic scale to better see small values. + + Access advanced settings + + + lmms::gui::SampleClipView - - Persist. + + Double-click to open sample - - Trace persistence: higher amount means the trace will stay bright for longer time. + + Reverse sample - - Trace persistence + + Set as ghost in automation editor - VersionedSaveDialog + lmms::gui::SampleTrackView - - Increment version number - Incrémenter le numéro de version + + Mixer channel + - - Decrement version number - Décrémenter le numéro de version + + Track volume + - - Save Options + + Channel volume: - - already exists. Do you want to replace it? - existe déjà. Souhaitez-vous le remplacer ? + + VOL + - - - VestigeInstrumentView - - - Open VST plugin - Ouvrir un plugin VST + + Panning + - - Control VST plugin from LMMS host + + Panning: - - Open VST plugin preset + + PAN - - Previous (-) - Précédent (-) + + %1: %2 + + + + lmms::gui::SampleTrackWindow - - Save preset - Enregistrer le pré-réglage + + Sample volume + - - Next (+) - Suivant (+) + + Volume: + - - Show/hide GUI - Montrer l'interface graphique + + VOL + - - Turn off all notes - Stopper toutes les notes + + Panning + - - DLL-files (*.dll) - Fichiers DLL (*.dll) + + Panning: + - - EXE-files (*.exe) - Fichiers EXE (*.exe) + + PAN + - - No VST plugin loaded + + Mixer channel - - Preset - Pré-réglage + + CHANNEL + + + + lmms::gui::SaveOptionsWidget - - by - par + + Discard MIDI connections + - - - VST plugin control - - contrôle de greffon VST + + Save As Project Bundle (with resources) + - VstEffectControlDialog + lmms::gui::SetupDialog - - Show/hide - Montrer/cacher + + Settings + - - Control VST plugin from LMMS host + + + General - - Open VST plugin preset + + Graphical user interface (GUI) - - Previous (-) - Précédent (-) + + Display volume as dBFS + - - Next (+) - Suivant (+) + + Enable tooltips + - - Save preset - Enregistrer le pré-réglage + + Enable master oscilloscope by default + - - - Effect by: - Effet par : + + Enable all note labels in piano roll + - - &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> - &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> + + Enable compact track buttons + - - - VstPlugin - - - The VST plugin %1 could not be loaded. - Le greffon "%1" n'a pas pu être chargé. + + Enable one instrument-track-window mode + - - Open Preset - Ouvrir le pré-réglage + + Show sidebar on the right-hand side + - - - Vst Plugin Preset (*.fxp *.fxb) - Pré-réglage de greffon VST (*.fxp *.fxb) + + Let sample previews continue when mouse is released + - - : default - : défaut + + Mute automation tracks during solo + - - Save Preset - Enregistrer le pré-réglage + + Show warning when deleting tracks + - - .fxp - .fxp + + Show warning when deleting a mixer channel that is in use + - - .FXP - .FXP + + Dual-button + - - .FXB - .FXB + + Grab closest + - - .fxb - .fxb + + Handles + - - Loading plugin - Chargement du greffon + + Loop edit mode + - - Please wait while loading VST plugin... - Veuillez patienter pendant le chargement du greffon VST... + + Projects + - - - WatsynInstrument - - Volume A1 - Volume A1 + + Compress project files by default + - - Volume A2 - Volume A2 + + Create a backup file when saving a project + - - Volume B1 - Volume B1 + + Reopen last project on startup + - - Volume B2 - Volume B2 + + Language + - - Panning A1 - Panoramisation A1 + + + Performance + - - Panning A2 - Panoramisation A2 + + Autosave + - - Panning B1 - Panoramisation B1 + + Enable autosave + - - Panning B2 - Panoramisation B2 + + Allow autosave while playing + - - Freq. multiplier A1 - Multiplicateur de fréquence A1 + + User interface (UI) effects vs. performance + - - Freq. multiplier A2 - Multiplicateur de fréquence A2 + + Smooth scroll in song editor + - - Freq. multiplier B1 - Multiplicateur de fréquence B1 + + Display playback cursor in AudioFileProcessor + - - Freq. multiplier B2 - Multiplicateur de fréquence B2 + + Plugins + - - Left detune A1 - Dé-réglage gauche A1 + + VST plugins embedding: + - - Left detune A2 - Dé-réglage gauche A2 + + No embedding + - - Left detune B1 - Dé-réglage gauche B1 + + Embed using Qt API + - - Left detune B2 - Dé-réglage gauche B2 + + Embed using native Win32 API + - - Right detune A1 - Dé-réglage droit A1 + + Embed using XEmbed protocol + - - Right detune A2 - Dé-réglage droit A2 + + Keep plugin windows on top when not embedded + - - Right detune B1 - Dé-réglage droit B1 + + Keep effects running even without input + - - Right detune B2 - Dé-réglage droit B2 + + + Audio + - - A-B Mix - Mélange A-B + + Audio interface + - - A-B Mix envelope amount - Niveau de mélange d'enveloppe A-B + + Buffer size + + + + + Reset to default value + + + + + + MIDI + - - A-B Mix envelope attack - Niveau de mélange d'attaque d'enveloppe A-B + + MIDI interface + - - A-B Mix envelope hold - Niveau de mélange du maintien d'enveloppe A-B + + Automatically assign MIDI controller to selected track + - - A-B Mix envelope decay - Niveau de mélange de l'affaiblissement (decay) d'enveloppe A-B + + Behavior when recording + - - A1-B2 Crosstalk - Diaphonie A1-B2 + + Auto-quantize notes in Piano Roll + - - A2-A1 modulation - Modulation A2-A1 + + If enabled, notes will be automatically quantized when recording them from a MIDI controller. If disabled, they are always recorded at the highest possible resolution. + - - B2-B1 modulation - Modulation B2-B1 + + + Paths + - - Selected graph - Graphique sélectionné + + LMMS working directory + - - - WatsynView - - - - - Volume - Volume + + VST plugins directory + - - - - - Panning - Panoramisation + + LADSPA plugins directories + - - - - - Freq. multiplier - Multiplicateur de fréquence + + SF2 directory + - - - - - Left detune - Déréglage gauche + + Default SF2 + - - - - - - - - - cents - centièmes + + GIG directory + - - - - - Right detune - Déréglage droite + + Theme directory + - - A-B Mix - Mélange A-B + + Background artwork + - - Mix envelope amount - Niveau de mélange d'enveloppe + + Some changes require restarting. + - - Mix envelope attack - Mélanger l'attaque d'enveloppe + + OK + - - Mix envelope hold - Mélanger le maintien d'enveloppe + + Cancel + - - Mix envelope decay - Mélanger la descente d'enveloppe + + minutes + - - Crosstalk - Diaphonie + + minute + - - Select oscillator A1 - Sélectionner l'oscillateur A1 + + Disabled + - - Select oscillator A2 - Sélectionner l'oscillateur A2 + + Autosave interval: %1 + - - Select oscillator B1 - Sélectionner l'oscillateur B1 + + The currently selected value is not a power of 2 (32, 64, 128, 256). Some plugins may not be available. + - - Select oscillator B2 - Sélectionner l'oscillateur B2 + + The currently selected value is less than or equal to 32. Some plugins may not be available. + - - Mix output of A2 to A1 - Mélanger la sortie de A2 dans A1 + + Frames: %1 +Latency: %2 ms + - - Modulate amplitude of A1 by output of A2 + + Choose the LMMS working directory - - Ring modulate A1 and A2 + + Choose your VST plugins directory - - Modulate phase of A1 by output of A2 + + Choose your LADSPA plugins directory - - Mix output of B2 to B1 - Mélanger la sortie de B2 dans B1 + + Choose your SF2 directory + - - Modulate amplitude of B1 by output of B2 + + Choose your default SF2 - - Ring modulate B1 and B2 + + Choose your GIG directory - - Modulate phase of B1 by output of B2 + + Choose your theme directory - - - - - Draw your own waveform here by dragging your mouse on this graph. - Dessinez ici votre propre forme d'onde en faisant glisser votre souris sur ce graphique. + + Choose your background picture + + + + lmms::gui::Sf2InstrumentView - - Load waveform - Charger la forme d'onde + + + Open SoundFont file + - - Load a waveform from a sample file + + Choose patch - - Phase left - Phase gauche + + Gain: + - - Shift phase by -15 degrees + + Apply reverb (if supported) - - Phase right - Phase droite + + Room size: + - - Shift phase by +15 degrees + + Damping: - - - Normalize - Normaliser + + Width: + - - - Invert - Inverser + + + Level: + - - - Smooth - Adoucir + + Apply chorus (if supported) + - - - Sine wave - Onde sinusoïdale + + Voices: + - - - - Triangle wave - Onde triangulaire + + Speed: + - - Saw wave - Onde en dents-de-scie + + Depth: + - - - Square wave - Onde carrée + + SoundFont Files (*.sf2 *.sf3) + - Xpressive - - - Selected graph - Graphique sélectionné - + lmms::gui::SidInstrumentView - - A1 - A1 + + Volume: + - - A2 - A2 + + Resonance: + - - A3 - A3 + + + Cutoff frequency: + - - W1 smoothing - Adoucissement W1 + + High-pass filter + - - W2 smoothing - Adoucissement W2 + + Band-pass filter + - - W3 smoothing - Adoucissement W3 + + Low-pass filter + - - Panning 1 - Panoramique 1 + + Voice 3 off + - - Panning 2 - Panoramique 2 + + MOS6581 SID + - - Rel trans + + MOS8580 SID - - - XpressiveView - - Draw your own waveform here by dragging your mouse on this graph. - Dessinez ici votre propre forme d'onde en faisant glisser votre souris sur ce graphique. + + + Attack: + - - Select oscillator W1 - Sélectionner l'oscillateur W1 + + + Decay: + - - Select oscillator W2 - Sélectionner l'oscillateur W2 + + Sustain: + - - Select oscillator W3 - Sélectionner l'oscillateur W3 + + + Release: + - - Select output O1 + + Pulse Width: - - Select output O2 + + Coarse: - - Open help window - Ouvrir la fenêtre d'aide + + Pulse wave + - - - Sine wave - Onde sinusoïdale + + Triangle wave + - - - Moog-saw wave + + Saw wave - - - Exponential wave - Onde exponentielle + + Noise + - - - Saw wave - Onde en dents-de-scie + + Sync + - - - User-defined wave + + Ring modulation - - - Triangle wave - Onde triangulaire + + Filtered + - - - Square wave - Onde carrée + + Test + - - - White noise - Bruit blanc + + Pulse width: + + + + lmms::gui::SideBarWidget - - WaveInterpolate - WaveInterpolate + + Close + + + + lmms::gui::SlicerTView - - ExpressionValid - ExpressionValid + + Slice snap + - - General purpose 1: - Universel 1 : + + Set slice snapping for detection + - - General purpose 2: - Universel 2 : + + Sync sample + - - General purpose 3: - Universel 3 : + + Enable BPM sync + - - O1 panning: - Panoramisation 01 : + + Original sample BPM + - - O2 panning: - Panoramisation 02 : + + Threshold used for slicing + - - Release transition: - Transition de relâche : + + Fade Out per note in milliseconds + - - Smoothness - Adoucissement + + Copy midi pattern to clipboard + - - - ZynAddSubFxInstrument - - Portamento - Portamento + + Open sample selector + - - Filter frequency + + Reset slices - - Filter resonance + + Threshold - - Bandwidth - Largeur de bande + + Fade Out + - - FM gain + + Reset - - Resonance center frequency + + Midi - - Resonance bandwidth + + BPM - - Forward MIDI control change events + + Snap - ZynAddSubFxView + lmms::gui::SlicerTWaveform - - Portamento: - Portamento : + + Click to load sample + + + + lmms::gui::SongEditor - - PORT - PORT + + Could not open file + - - Filter frequency: + + Could not open file %1. You probably have no permissions to read this file. + Please make sure to have at least read permissions to the file and try again. - - FREQ - FRÉQ + + Operation denied + - - Filter resonance: + + A bundle folder with that name already eists on the selected path. Can't overwrite a project bundle. Please select a different name. - - RES - RES + + + + Error + - - Bandwidth: - Bande passante : + + Couldn't create bundle folder. + - - BW - LB + + Couldn't create resources folder. + - - FM gain: + + Failed to copy resources. - - FM GAIN - GAIN FM + + + Could not write file + - - Resonance center frequency: - Fréquence centrale de la résonance : + + Could not open %1 for writing. You probably are not permitted to write to this file. Please make sure you have write-access to the file and try again. + - - RES CF - RES CF + + An unknown error has occurred and the file could not be saved. + - - Resonance bandwidth: - Largeur de bande de la résonance : + + Error in file + - - RES BW - RES BW + + The file %1 seems to contain errors and therefore can't be loaded. + - - Forward MIDI control changes + + template - - Show GUI - Montrer l'interface graphique + + project + - - - AudioFileProcessor - - Amplify - Amplifier + + Version difference + - - Start of sample - Début de l'échantillon + + This %1 was created with LMMS %2 + - - End of sample - Fin de l'échantillon + + Zoom + - - Loopback point - Point de bouclage + + Tempo + - - Reverse sample - Inverser l'échantillon + + TEMPO + - - Loop mode - Mode de jeu en boucle + + Tempo in BPM + - - Stutter - Bégaiement + + + + Master volume + - - Interpolation mode - Mode interpolation + + + + Global transposition + - - None - Aucun + + 1/%1 Bar + - - Linear - Linéaire + + %1 Bars + - - Sinc - Sync + + Value: %1% + - - Sample not found: %1 - Échantillon %1 non trouvé + + Value: %1 keys + - BitInvader + lmms::gui::SongEditorWindow - - Sample length + + Song-Editor - - - BitInvaderView - - Sample length + + Play song (Space) - - Draw your own waveform here by dragging your mouse on this graph. - Dessinez ici votre propre forme d'onde en faisant glisser votre souris sur ce graphique. + + Record samples from Audio-device + - - - Sine wave - Onde sinusoïdale + + Record samples from Audio-device while playing song or pattern track + - - - Triangle wave - Onde triangulaire + + Stop song (Space) + - - - Saw wave - Onde en dents-de-scie + + Track actions + - - - Square wave - Onde carrée + + Add pattern-track + - - - White noise - Bruit blanc + + Add sample-track + - - - User-defined wave + + Add automation-track - - - Smooth waveform - Forme d'onde adoucie + + Edit actions + - - Interpolation - Interpolation + + Draw mode + - - Normalize - Normaliser + + Knife mode (split sample clips) + - - - DynProcControlDialog - - INPUT - ENTRÉE + + Edit mode (select and move) + - - Input gain: - Gain en entrée : + + Timeline controls + - - OUTPUT - SORTIE + + Bar insert controls + - - Output gain: - Gain en sortie : + + Insert bar + - - ATTACK - ATTAQUE + + Remove bar + - - Peak attack time: - Temps d'attaque du pic : + + Zoom controls + - - RELEASE - RELÂCHEMENT + + + Zoom + - - Peak release time: - Temps de relâchement : + + Snap controls + - - - Reset wavegraph + + + Clip snapping size - - - Smooth wavegraph + + Toggle proportional snap on/off - - - Increase wavegraph amplitude by 1 dB + + Base snapping size + + + lmms::gui::StepRecorderWidget - - - Decrease wavegraph amplitude by 1 dB + + Hint - - Stereo mode: maximum + + Move recording curser using <Left/Right> arrows + + + + + lmms::gui::StereoEnhancerControlDialog + + + WIDTH - - Process based on the maximum of both stereo channels - Traitement basé sur le maximum des deux canaux stéréo + + Width: + + + + lmms::gui::StereoMatrixControlDialog - - Stereo mode: average + + Left to Left Vol: - - Process based on the average of both stereo channels - Traitement basé sur la moyenne des deux canaux stéréo + + Left to Right Vol: + - - Stereo mode: unlinked + + Right to Left Vol: - - Process each stereo channel independently - Traiter chaque canal stéréo indépendamment + + Right to Right Vol: + + + + + lmms::gui::SubWindow + + + Close + + + + + Maximize + + + + + Restore + - DynProcControls - - - Input gain - Gain en entrée - + lmms::gui::TapTempoView - - Output gain - Gain en sortie + + 0 + - - Attack time - Temps d'attaque + + + Precision + - - Release time - Temps de relâchement + + Display in high precision + - - Stereo mode - Mode stéréo + + 0.0 ms + - - - graphModel - - Graph - Graphique + + Mute metronome + - - - KickerInstrument - - Start frequency - Fréquence de début + + Mute + - - End frequency - Fréquence de fin + + BPM in milliseconds + - - Length - Longueur + + 0 ms + - - Start distortion + + Frequency of BPM - - End distortion + + 0.0000 hz - - Gain - Gain + + Reset + - - Envelope slope + + Reset counter and sidebar information - - Noise - Bruit + + Sync + - - Click - Clic + + Sync with project tempo + - - Frequency slope + + %1 ms - - Start from note - Commencer à la note + + %1 hz + + + + lmms::gui::TemplatesMenu - - End to note - Finir à la note + + New from template + - KickerInstrumentView + lmms::gui::TempoSyncBarModelEditor - - Start frequency: - Fréquence de début : + + + Tempo Sync + - - End frequency: - Fréquence de fin : + + No Sync + - - Frequency slope: + + Eight beats - - Gain: - Gain : + + Whole note + - - Envelope length: + + Half note - - Envelope slope: + + Quarter note - - Click: - Clic : + + 8th note + - - Noise: - Bruit : + + 16th note + - - Start distortion: + + 32nd note - - End distortion: + + Custom... - - - LadspaBrowserView - - - Available Effects - Effets disponibles + + Custom + - - - Unavailable Effects - Effets indisponibles + + Synced to Eight Beats + - - - Instruments - Instruments + + Synced to Whole Note + - - - Analysis Tools - Outils d'analyse + + Synced to Half Note + - - - Don't know - Divers + + Synced to Quarter Note + - - Type: - Type : + + Synced to 8th Note + - - - LadspaDescription - - Plugins - Greffons + + Synced to 16th Note + - - Description - Description + + Synced to 32nd Note + - LadspaPortDialog + lmms::gui::TempoSyncKnob - - Ports - Ports + + + Tempo Sync + - - Name - Nom + + No Sync + - - Rate - Vitesse + + Eight beats + - - Direction - Sens + + Whole note + - - Type - Type + + Half note + - - Min < Default < Max - Min < par défaut < Max + + Quarter note + - - Logarithmic - Logarithmique + + 8th note + - - SR Dependent - Dépendant du taux d'échantillonnage + + 16th note + - - Audio - Audio + + 32nd note + - - Control - Contrôle + + Custom... + - - Input - Entrée + + Custom + - - Output - Sortie + + Synced to Eight Beats + - - Toggled - Permuté + + Synced to Whole Note + - - Integer - Entier + + Synced to Half Note + - - Float - Flottant + + Synced to Quarter Note + - - - Yes - Oui + + Synced to 8th Note + + + + + Synced to 16th Note + + + + + Synced to 32nd Note + - Lb302Synth + lmms::gui::TimeDisplayWidget - - VCF Cutoff Frequency - Fréquence de coupure du VCF + + Time units + - - VCF Resonance - Résonance du VCF + + MIN + - - VCF Envelope Mod - Modulation de l'enveloppe du VCF + + SEC + - - VCF Envelope Decay - Affaiblissement (decay) de l'enveloppe du VCF + + MSEC + - - Distortion - Distorsion + + BAR + - - Waveform - Forme d'onde + + BEAT + - - Slide Decay - Affaiblissement (decay) glissant + + TICK + + + + lmms::gui::TimeLineWidget - - Slide - Liaison + + Auto scrolling + - - Accent - Accent + + Stepped auto scrolling + - - Dead - Éteint + + Continuous auto scrolling + - - 24dB/oct Filter - Filtre 24 dB/oct + + Auto scrolling disabled + + + + + Loop points + + + + + After stopping go back to beginning + - - - Lb302SynthView - - Cutoff Freq: - Fréquence de coupure : + + After stopping go back to position at which playing was started + - - Resonance: - Résonance : + + After stopping keep position + - - Env Mod: - Modulation de l'enveloppe : + + Hint + - - Decay: - Affaiblissement : + + Press <%1> to disable magnetic loop points. + - - 303-es-que, 24dB/octave, 3 pole filter - 303-esque, 24 dB/octave, filtre à 3 pôles + + Set loop begin here + - - Slide Decay: - Affaiblissement glissant : + + Set loop end here + - - DIST: - DIST : + + Loop edit mode (hold shift) + - - Saw wave - Onde en dents-de-scie + + Dual-button + - - Click here for a saw-wave. - Cliquez ici pour une onde en dents-de-scie. + + Grab closest + - - Triangle wave - Onde triangulaire + + Handles + + + + lmms::gui::TrackContentWidget - - Click here for a triangle-wave. - Cliquez ici pour une onde triangulaire. + + Paste + + + + lmms::gui::TrackOperationsWidget - - Square wave - Onde carrée + + Press <%1> while clicking on move-grip to begin a new drag'n'drop action. + - - Click here for a square-wave. - Cliquez ici pour une onde carrée. + + Actions + - - Rounded square wave - Onde carrée arrondie + + + Mute + - - Click here for a square-wave with a rounded end. - Cliquez ici pour une onde carrée avec une fin arrondie. + + + Solo + - - Moog wave - Onde Moog + + After removing a track, it can not be recovered. Are you sure you want to remove track "%1"? + - - Click here for a moog-like wave. - Cliquez ici pour une onde de type Moog. + + Confirm removal + - - Sine wave - Onde sinusoïdale + + Don't ask again + - - Click for a sine-wave. - Cliquez ici pour une onde sinusoïdale. + + Clone this track + - - - White noise wave - Bruit blanc + + Remove this track + - - Click here for an exponential wave. - Cliquez ici pour une onde exponentielle. + + Clear this track + - - Click here for white-noise. - Cliquez ici pour un bruit blanc. + + Channel %1: %2 + - - Bandlimited saw wave - Onde en dents-de-scie à bande limitée + + Assign to new Mixer Channel + - - Click here for bandlimited saw wave. - Cliquez ici pour une onde en dents-de-scie à bande limitée. + + Turn all recording on + - - Bandlimited square wave - Onde carrée à bande limitée + + Turn all recording off + - - Click here for bandlimited square wave. - Cliquez ici pour une onde carrée à bande limitée. + + Track color + - - Bandlimited triangle wave - Onde triangulaire à bande limitée + + Change + - - Click here for bandlimited triangle wave. - Cliquez ici pour une onde triangulaire à bande limitée. + + Reset + - - Bandlimited moog saw wave - Onde en dents-de-scie Moog à bande limitée + + Pick random + - - Click here for bandlimited moog saw wave. - Cliquez ici pour une onde en dents-de-scie de type Moog à bande limitée. + + Reset clip colors + - MalletsInstrument + lmms::gui::TripleOscillatorView - - Hardness - Dureté + + Modulate phase of oscillator 1 by oscillator 2 + - - Position - Position + + Modulate amplitude of oscillator 1 by oscillator 2 + - - Vibrato gain + + Mix output of oscillators 1 & 2 - - Vibrato frequency + + Synchronize oscillator 1 with oscillator 2 - - Stick mix + + Modulate frequency of oscillator 1 by oscillator 2 - - Modulator - Modulateur + + Modulate phase of oscillator 2 by oscillator 3 + - - Crossfade - Fondu enchainé + + Modulate amplitude of oscillator 2 by oscillator 3 + - - LFO speed - Vitesse du LFO + + Mix output of oscillators 2 & 3 + - - LFO depth + + Synchronize oscillator 2 with oscillator 3 - - ADSR - ADSR + + Modulate frequency of oscillator 2 by oscillator 3 + - - Pressure - Pression + + Osc %1 volume: + - - Motion - Mouvement + + Osc %1 panning: + - - Speed - Vitesse + + Osc %1 coarse detuning: + - - Bowed - Courbé + + semitones + - - Spread - Diffusion + + Osc %1 fine detuning left: + - - Marimba - Marimba + + + cents + - - Vibraphone - Vibraphone + + Osc %1 fine detuning right: + - - Agogo - Agogo + + Osc %1 phase-offset: + - - Wood 1 + + + degrees - - Reso - Réso + + Osc %1 stereo phase-detuning: + - - Wood 2 + + Sine wave - - Beats - Battements + + Triangle wave + - - Two fixed + + Saw wave - - Clump - Bruit lourd + + Square wave + - - Tubular bells + + Moog-like saw wave - - Uniform bar + + Exponential wave - - Tuned bar + + White noise - - Glass - Verre + + User-defined wave + - - Tibetan bowl + + Use alias-free wavetable oscillators. - MalletsInstrumentView + lmms::gui::VecControlsDialog - - Instrument - Instrument + + HQ + - - Spread - Diffusion + + Double the resolution and simulate continuous analog-like trace. + - - Spread: - Diffusion : + + Log. scale + - - Missing files - Fichiers manquants + + Display amplitude on logarithmic scale to better see small values. + - - Your Stk-installation seems to be incomplete. Please make sure the full Stk-package is installed! - Votre installation de STK semble incomplète. Veuillez vous assurer que le paquet STK complet est installé ! + + Persist. + - - Hardness - Dureté + + Trace persistence: higher amount means the trace will stay bright for longer time. + - - Hardness: - Dureté : + + Trace persistence + + + + lmms::gui::VersionedSaveDialog - - Position - Position + + Increment version number + - - Position: - Position : + + Decrement version number + - - Vibrato gain + + Save Options - - Vibrato gain: + + already exists. Do you want to replace it? + + + lmms::gui::VestigeInstrumentView - - Vibrato frequency + + + Open VST plugin - - Vibrato frequency: + + Control VST plugin from LMMS host - - Stick mix + + Open VST plugin preset - - Stick mix: + + Previous (-) - - Modulator - Modulateur + + Save preset + - - Modulator: - Modulateur : + + Next (+) + - - Crossfade - Fondu enchainé + + Show/hide GUI + - - Crossfade: - Fondu enchainé : + + Turn off all notes + - - LFO speed - Vitesse du LFO + + DLL-files (*.dll) + - - LFO speed: - Vitesse du LFO : + + EXE-files (*.exe) + - - LFO depth + + SO-files (*.so) - - LFO depth: + + No VST plugin loaded - - ADSR - ADSR + + Preset + - - ADSR: - ADSR : + + by + - - Pressure - Pression + + - VST plugin control + + + + lmms::gui::VibedView - - Pressure: - Pression : + + Enable waveform + - - Speed - Vitesse + + + Smooth waveform + - - Speed: - Vitesse : + + + Normalize waveform + - - - ManageVSTEffectView - - - VST parameter control - - Paramètre de contrôle VST + + + Sine wave + - - VST sync + + + Triangle wave - - - Automated - Automatique + + + Saw wave + - - Close - Fermer + + + Square wave + - - - ManageVestigeInstrumentView - - - - VST plugin control - - contrôle de greffon VST + + + White noise + - - VST Sync - VST Sync + + + User-defined wave + - - - Automated - Automatique + + String volume: + - - Close - Fermer + + String stiffness: + - - - OrganicInstrument - - Distortion - Distorsion + + Pick position: + - - Volume - Volume + + Pickup position: + - - - OrganicInstrumentView - - Distortion: - Distorsion : + + String panning: + - - Volume: - Volume : + + String detune: + - - Randomise - Randomiser + + String fuzziness: + - - - Osc %1 waveform: - Form d'onde de l'oscillateur %1 : + + String length: + - - Osc %1 volume: - Volume de l'oscillateur %1 : + + Impulse Editor + - - Osc %1 panning: - Panoramisation de l'oscillateur %1 : + + Impulse + - - Osc %1 stereo detuning - Dé-réglage stéréo de l'oscillateur %1 + + Enable/disable string + - - cents - centièmes + + Octave + - - Osc %1 harmonic: - Harmonique de l'oscillateur %1 : + + String + - PatchesDialog + lmms::gui::VstEffectControlDialog - - Qsynth: Channel Preset - Qsynth : pré-réglage de canal + + Show/hide + - - Bank selector - Sélecteur de banque + + Control VST plugin from LMMS host + - - Bank - Banque + + Open VST plugin preset + - - Program selector - Sélecteur de programme + + Previous (-) + - - Patch - Patch + + Next (+) + - - Name - Nom + + Save preset + - - OK - OK + + + Effect by: + - - Cancel - Annuler + + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> + - Sf2Instrument - - - Bank - Banque - - - - Patch - Son - - - - Gain - Gain - + lmms::gui::WatsynView - - Reverb - Réverbération + + + + + Volume + - - Reverb room size + + + + + Panning - - Reverb damping + + + + + Freq. multiplier - - Reverb width + + + + + Left detune - - Reverb level + + + + + + + + + cents - - Chorus - Chorus + + + + + Right detune + - - Chorus voices + + A-B Mix - - Chorus level + + Mix envelope amount - - Chorus speed + + Mix envelope attack - - Chorus depth + + Mix envelope hold - - A soundfont %1 could not be loaded. - La banque de sons %1 n'a pu être chargée. + + Mix envelope decay + - - - Sf2InstrumentView - - - Open SoundFont file - Ouvrir un fichier SoundFont + + Crosstalk + - - Choose patch + + Select oscillator A1 - - Gain: - Gain : + + Select oscillator A2 + - - Apply reverb (if supported) - Appliquer la réverbération (si prise en charge) + + Select oscillator B1 + - - Room size: + + Select oscillator B2 - - Damping: + + Mix output of A2 to A1 - - Width: - Ampleur : + + Modulate amplitude of A1 by output of A2 + - - - Level: + + Ring modulate A1 and A2 - - Apply chorus (if supported) - Appliquer le chorus (si pris en charge) + + Modulate phase of A1 by output of A2 + - - Voices: + + Mix output of B2 to B1 - - Speed: - Vitesse : + + Modulate amplitude of B1 by output of B2 + - - Depth: - Profondeur : + + Ring modulate B1 and B2 + - - SoundFont Files (*.sf2 *.sf3) + + Modulate phase of B1 by output of B2 - - - SfxrInstrument - - Wave + + + + + Draw your own waveform here by dragging your mouse on this graph. - - - StereoEnhancerControlDialog - - WIDTH + + Load waveform - - Width: - Ampleur : + + Load a waveform from a sample file + - - - StereoEnhancerControls - - Width - Ampleur + + Phase left + - - - StereoMatrixControlDialog - - Left to Left Vol: - Volume de gauche à gauche : + + Shift phase by -15 degrees + - - Left to Right Vol: - Volume de gauche à droite : + + Phase right + - - Right to Left Vol: - Volume de droite à gauche : + + Shift phase by +15 degrees + - - Right to Right Vol: - Volume de droite à droite : + + + Normalize + - - - StereoMatrixControls - - Left to Left - Gauche à gauche + + + Invert + - - Left to Right - Gauche à droite + + + Smooth + - - Right to Left - Droite à gauche + + + Sine wave + - - Right to Right - Droite à droite + + + + Triangle wave + - - - VestigeInstrument - - Loading plugin - Chargement du greffon + + Saw wave + - - Please wait while loading the VST plugin... + + + Square wave - Vibed + lmms::gui::WaveShaperControlDialog - - String %1 volume - Volume de la corde %1 + + INPUT + - - String %1 stiffness - Rigidité de la corde %1 + + Input gain: + - - Pick %1 position - Position du micro %1 + + OUTPUT + - - Pickup %1 position - Position du micro %1 + + Output gain: + - - String %1 panning - Panoramique de la corde %1 + + + Reset wavegraph + - - String %1 detune - Désaccordage de la corde %1 + + + Smooth wavegraph + - - String %1 fuzziness - Flou de la corde %1 + + + Increase wavegraph amplitude by 1 dB + - - String %1 length - Longueur de la corde %1 + + + Decrease wavegraph amplitude by 1 dB + - - Impulse %1 - Pulsation %1 + + Clip input + - - String %1 - Corde %1 + + Clip input signal to 0 dB + - VibedView - - - String volume: - Volume de la corde : - - - - String stiffness: - Rigidité de la corde : - - - - Pick position: - Point de contact : - + lmms::gui::XpressiveView - - Pickup position: - Point d'écoute : + + Draw your own waveform here by dragging your mouse on this graph. + - - String panning: - Panoramique de la corde : + + Select oscillator W1 + - - String detune: - Désaccordage de la corde : + + Select oscillator W2 + - - String fuzziness: - Flou de la corde : + + Select oscillator W3 + - - String length: - Longueur de la corde : + + Select output O1 + - - Impulse + + Select output O2 - - Octave - Octave + + Open help window + - - Impulse Editor - Éditeur d'impulsion + + + Sine wave + - - Enable waveform - Activer la forme d'onde + + + Moog-saw wave + - - Enable/disable string - Activer/désactiver la corde + + + Exponential wave + - - String - Corde + + + Saw wave + - - - Sine wave - Onde sinusoïdale + + + User-defined wave + - - + + Triangle wave - Onde triangulaire - - - - - Saw wave - Onde en dents-de-scie + - - + + Square wave - Onde carrée + - - + + White noise - Bruit blanc - - - - - User-defined wave - - - Smooth waveform - Forme d'onde adoucie + + WaveInterpolate + - - - Normalize waveform - Normaliser la forme d'onde + + ExpressionValid + - - - VoiceObject - - Voice %1 pulse width - Largeur de pulsation de la voix %1 + + General purpose 1: + - - Voice %1 attack - Attaque de la voix %1 + + General purpose 2: + - - Voice %1 decay - Affaiblissement de la voix %1 + + General purpose 3: + - - Voice %1 sustain - Soutien de la voix %1 + + O1 panning: + - - Voice %1 release - Relâchement de la voix %1 + + O2 panning: + - - Voice %1 coarse detuning - Désaccordage grossier de la voix %1 + + Release transition: + - - Voice %1 wave shape - Forme d'onde de la voix %1 + + Smoothness + + + + lmms::gui::ZynAddSubFxView - - Voice %1 sync - Synchronisation de la voix %1 + + Portamento: + Portamento : - - Voice %1 ring modulate - Modulation en anneaux de la voix %1 + + PORT + - - Voice %1 filtered - Voix %1 filtrée + + Filter frequency: + - - Voice %1 test - Test de la voix %1 + + FREQ + - - - WaveShaperControlDialog - - INPUT - ENTRÉE + + Filter resonance: + - - Input gain: - Gain en entrée : + + RES + - - OUTPUT - SORTIE + + Bandwidth: + Bande passante : - - Output gain: - Gain en sortie : + + BW + - - - Reset wavegraph - + + FM gain: + Gain FM : - - - Smooth wavegraph - + + FM GAIN + GAIN FM - - - Increase wavegraph amplitude by 1 dB - + + Resonance center frequency: + Fréquence centrale de la résonance : - - - Decrease wavegraph amplitude by 1 dB + + RES CF - - Clip input - Couper le signal d'entrée + + Resonance bandwidth: + Largeur de bande de la résonance : - - Clip input signal to 0 dB + + RES BW - - - WaveShaperControls - - Input gain - Gain en entrée + + Forward MIDI control changes + - - Output gain - Gain en sortie + + Show GUI + Montrer l'interface graphique - + \ No newline at end of file diff --git a/data/locale/gl.ts b/data/locale/gl.ts index a1a9e6bf1a4..01cd543227c 100644 --- a/data/locale/gl.ts +++ b/data/locale/gl.ts @@ -5333,62 +5333,62 @@ Please make sure you have write permission to the file and the directory contain - MixerLine + MixerChannelView - + Channel send amount - + Move &left - + Move &right - + Rename &channel - + R&emove channel - + Remove &unused channels - + Set channel color - + Remove channel color - + Pick random channel color - MixerLineLcdSpinBox + MixerChannelLcdSpinBox - + Assign to: - + New mixer Channel diff --git a/data/locale/he.ts b/data/locale/he.ts index fef0caa9178..2789aa3d72b 100644 --- a/data/locale/he.ts +++ b/data/locale/he.ts @@ -1,10 +1,10 @@ - + AboutDialog About LMMS - אודות LMMS + על אודות LMMS @@ -19,18 +19,17 @@ About - אודות + על אודות LMMS - easy music production for everyone. - LMMS - יצירת מוסיקה פשוטה עבור כולם + LMMS - הפקת מוזיקה פשוטה לכולם. Copyright © %1. - כל הזכויות שמורות © %1. - + כל הזכויות שמורות © %1 @@ -45,12 +44,12 @@ Involved - להשתתף + שותפים Contributors ordered by number of commits: - מפתחים מסודרים לפי מספר התרומות: + התורמים מסודרים לפי מספר התרומות: @@ -61,963 +60,197 @@ Current language not translated (or native English). If you're interested in translating LMMS in another language or want to improve existing translations, you're welcome to help us! Simply contact the maintainer! - + אין תרגום לשפה הנוכחית (או שהתוכנה בשפה האנגלית). +אם יש לך עניין בתרגום LMMS לשפה אחרת או בשיפור התרגומים הקיימים, נשמח לקבל ממך עזרה! כל מה שצריך לעשות הוא פשוט לפנות למתחזק! License - רשיון - - - - AmplifierControlDialog - - - VOL - ווליום - - - - Volume: - ווליום: - - - - PAN - - - - - Panning: - - - - - LEFT - שמאל - - - - Left gain: - - - - - RIGHT - ימין - - - - Right gain: - - - - - AmplifierControls - - - Volume - ווליום - - - - Panning - - - - - Left gain - - - - - Right gain - - - - - AudioAlsaSetupWidget - - - DEVICE - התקן - - - - CHANNELS - ערוצים - - - - AudioFileProcessorView - - - Open sample - - - - - Reverse sample - - - - - Disable loop - השבת לופ - - - - Enable loop - אפשר לופ - - - - Enable ping-pong loop - - - - - Continue sample playback across notes - - - - - Amplify: - - - - - Start point: - - - - - End point: - - - - - Loopback point: - - - - - AudioFileProcessorWaveView - - - Sample length: - - - - - AudioJack - - - JACK client restarted - - - - - LMMS was kicked by JACK for some reason. Therefore the JACK backend of LMMS has been restarted. You will have to make manual connections again. - - - - - JACK server down - - - - - The JACK server seems to have been shutdown and starting a new instance failed. Therefore LMMS is unable to proceed. You should save your project and restart JACK and LMMS. - - - - - Client name - - - - - Channels - - - - - AudioOss - - - Device - - - - - Channels - - - - - AudioPortAudio::setupWidget - - - Backend - - - - - Device - + רישיון - AudioPulseAudio + AboutJuceDialog - - Device + + About JUCE - - Channels + + <b>About JUCE</b> - - - AudioSdl::setupWidget - - Device + + This program uses JUCE version 3.x.x. - - - AudioSndio - - Device + + JUCE is an open-source cross-platform C++ application framework for creating high quality desktop and mobile applications. + +The core JUCE modules (juce_audio_basics, juce_audio_devices, juce_core and juce_events) are permissively licensed under the terms of the ISC license. +Other modules are covered by a GNU GPL 3.0 license. + +Copyright (C) 2022 Raw Material Software Limited. - - Channels + + This program uses JUCE version - AudioSoundIo::setupWidget - - - Backend - - + AudioDeviceSetupWidget - - Device + + [System Default] - AutomatableModel - - - &Reset (%1%2) - &איפוס (%1%2) - - - - &Copy value (%1%2) - &העתק ערך (%1%2) - - - - &Paste value (%1%2) - &הדבק ערך (%1%2) - - - - &Paste value - &הדבק ערך - + CarlaAboutW - - Edit song-global automation - ערוך אוטומציה גלובאלית + + About Carla + על אודות Carla - - Remove song-global automation - מחק אוטומציה גלובלית + + About + על אודות - - Remove all linked controls - + + About text here + על אודות "טקסט כאן" - - Connected to %1 - + + Extended licensing here + פרטי רישיון מורחבים כאן - - Connected to controller - + + Artwork + עבודות אומנות - - Edit connection... - + + Using KDE Oxygen icon set, designed by Oxygen Team. + נעשה שימוש בערכת הסמלים Oxygen של KDE, שעוצבה על ידי צוות Oxygen. - - Remove connection + + Contains some knobs, backgrounds and other small artwork from Calf Studio Gear, OpenAV and OpenOctave projects. - - Connect to controller... + + VST is a trademark of Steinberg Media Technologies GmbH. - - - AutomationEditor - - Edit Value - + + Special thanks to António Saraiva for a few extra icons and artwork! + תודותינו המיוחדות נתונות לאנטוניו סראיבה (António Saraiva) על מעט סמלים נוספים ועבודות אומנות שהכין! - - New outValue + + The LV2 logo has been designed by Thorsten Wilms, based on a concept from Peter Shorthose. - - New inValue + + MIDI Keyboard designed by Thorsten Wilms. - - Please open an automation clip with the context menu of a control! + + Carla, Carla-Control and Patchbay icons designed by DoosC. - - - AutomationEditorWindow - - Play/pause current clip (Space) - + + Features + תכונות - - Stop playing of current clip (Space) + + AU/AudioUnit: - - Edit actions - + + LADSPA: + LADSPA: - - Draw mode (Shift+D) + + + + + + + + + TextLabel - - Erase mode (Shift+E) - + + VST2: + VST2: - - Draw outValues mode (Shift+C) + + DSSI: - - Flip vertically + + LV2: - - Flip horizontally + + VST3: - - Interpolation controls + + OSC - - Discrete progression - + + Host URLs: + כתובות מארחים: - - Linear progression + + Valid commands: - - Cubic Hermite progression + + valid osc commands here - - Tension value for spline - + + Example: + דוגמה: - - Tension: - + + License + רישיון - - Zoom controls - - - - - Horizontal zooming - - - - - Vertical zooming - - - - - Quantization controls - - - - - Quantization - - - - - - Automation Editor - no clip - - - - - - Automation Editor - %1 - - - - - Model is already connected to this clip. - - - - - AutomationClip - - - Drag a control while pressing <%1> - - - - - AutomationClipView - - - Open in Automation editor - - - - - Clear - נקה - - - - Reset name - - - - - Change name - - - - - Set/clear record - - - - - Flip Vertically (Visible) - - - - - Flip Horizontally (Visible) - - - - - %1 Connections - - - - - Disconnect "%1" - - - - - Model is already connected to this clip. - - - - - AutomationTrack - - - Automation track - - - - - PatternEditor - - - Beat+Bassline Editor - - - - - Play/pause current beat/bassline (Space) - - - - - Stop playback of current beat/bassline (Space) - - - - - Beat selector - - - - - Track and step actions - - - - - Add beat/bassline - - - - - Clone beat/bassline clip - - - - - Add sample-track - - - - - Add automation-track - - - - - Remove steps - - - - - Add steps - - - - - Clone Steps - - - - - PatternClipView - - - Open in Beat+Bassline-Editor - - - - - Reset name - - - - - Change name - - - - - PatternTrack - - - Beat/Bassline %1 - - - - - Clone of %1 - - - - - BassBoosterControlDialog - - - FREQ - - - - - Frequency: - - - - - GAIN - - - - - Gain: - - - - - RATIO - - - - - Ratio: - - - - - BassBoosterControls - - - Frequency - - - - - Gain - - - - - Ratio - - - - - BitcrushControlDialog - - - IN - - - - - OUT - - - - - - GAIN - - - - - Input gain: - - - - - NOISE - - - - - Input noise: - - - - - Output gain: - - - - - CLIP - - - - - Output clip: - - - - - Rate enabled - - - - - Enable sample-rate crushing - - - - - Depth enabled - - - - - Enable bit-depth crushing - - - - - FREQ - - - - - Sample rate: - - - - - STEREO - - - - - Stereo difference: - - - - - QUANT - - - - - Levels: - - - - - BitcrushControls - - - Input gain - - - - - Input noise - - - - - Output gain - - - - - Output clip - - - - - Sample rate - קצב דגימה - - - - Stereo difference - - - - - Levels - - - - - Rate enabled - - - - - Depth enabled - - - - - CarlaAboutW - - - About Carla - - - - - About - אודות - - - - About text here - - - - - Extended licensing here - - - - - Artwork - - - - - Using KDE Oxygen icon set, designed by Oxygen Team. - - - - - Contains some knobs, backgrounds and other small artwork from Calf Studio Gear, OpenAV and OpenOctave projects. - - - - - VST is a trademark of Steinberg Media Technologies GmbH. - - - - - Special thanks to António Saraiva for a few extra icons and artwork! - - - - - The LV2 logo has been designed by Thorsten Wilms, based on a concept from Peter Shorthose. - - - - - MIDI Keyboard designed by Thorsten Wilms. - - - - - Carla, Carla-Control and Patchbay icons designed by DoosC. - - - - - Features - - - - - AU/AudioUnit: - - - - - LADSPA: - - - - - - - - - - - - TextLabel - - - - - VST2: - - - - - DSSI: - - - - - LV2: - - - - - VST3: - - - - - OSC - - - - - Host URLs: - - - - - Valid commands: - - - - - valid osc commands here - - - - - Example: - - - - - License - רשיון - - - + GNU GENERAL PUBLIC LICENSE Version 2, June 1991 @@ -1302,15026 +535,18221 @@ POSSIBILITY OF SUCH DAMAGES. - - OSC Bridge Version + + OSC Bridge Version + + + + + Plugin Version + גרסת התוסף + + + + <br>Version %1<br>Carla is a fully-featured audio plugin host%2.<br><br>Copyright (C) 2011-2019 falkTX<br> + + + + + + (Engine not running) + + + + + Everything! (Including LRDF) + + + + + Everything! (Including CustomData/Chunks) + + + + + About 110&#37; complete (using custom extensions)<br/>Implemented Feature/Extensions:<ul><li>http://lv2plug.in/ns/ext/atom</li><li>http://lv2plug.in/ns/ext/buf-size</li><li>http://lv2plug.in/ns/ext/data-access</li><li>http://lv2plug.in/ns/ext/event</li><li>http://lv2plug.in/ns/ext/instance-access</li><li>http://lv2plug.in/ns/ext/log</li><li>http://lv2plug.in/ns/ext/midi</li><li>http://lv2plug.in/ns/ext/options</li><li>http://lv2plug.in/ns/ext/parameters</li><li>http://lv2plug.in/ns/ext/port-props</li><li>http://lv2plug.in/ns/ext/presets</li><li>http://lv2plug.in/ns/ext/resize-port</li><li>http://lv2plug.in/ns/ext/state</li><li>http://lv2plug.in/ns/ext/time</li><li>http://lv2plug.in/ns/ext/uri-map</li><li>http://lv2plug.in/ns/ext/urid</li><li>http://lv2plug.in/ns/ext/worker</li><li>http://lv2plug.in/ns/extensions/ui</li><li>http://lv2plug.in/ns/extensions/units</li><li>http://home.gna.org/lv2dynparam/rtmempool/v1</li><li>http://kxstudio.sf.net/ns/lv2ext/external-ui</li><li>http://kxstudio.sf.net/ns/lv2ext/programs</li><li>http://kxstudio.sf.net/ns/lv2ext/props</li><li>http://kxstudio.sf.net/ns/lv2ext/rtmempool</li><li>http://ll-plugins.nongnu.org/lv2/ext/midimap</li><li>http://ll-plugins.nongnu.org/lv2/ext/miditype</li></ul> + + + + + + + Using Juce host + + + + + About 85% complete (missing vst bank/presets and some minor stuff) + + + + + CarlaHostW + + + MainWindow + + + + + Rack + + + + + Patchbay + + + + + Logs + + + + + Loading... + מתבצעת טעינה... + + + + Save + + + + + Clear + + + + + Ctrl+L + + + + + Auto-Scroll + + + + + Buffer Size: + + + + + Sample Rate: + + + + + ? Xruns + + + + + DSP Load: %p% + + + + + &File + + + + + &Engine + + + + + &Plugin + + + + + Macros (all plugins) + + + + + &Canvas + + + + + Zoom + + + + + &Settings + + + + + &Help + ע&זרה + + + + Tool Bar + + + + + Disk + כונן + + + + + Home + בית + + + + Transport + + + + + Playback Controls + + + + + Time Information + + + + + Frame: + + + + + 000'000'000 + 000'000'000 + + + + Time: + + + + + 00:00:00 + 00:00:00 + + + + BBT: + + + + + 000|00|0000 + 000|00|0000 + + + + Settings + הגדרות + + + + BPM + + + + + Use JACK Transport + + + + + Use Ableton Link + + + + + &New + + + + + Ctrl+N + Ctrl+N + + + + &Open... + &פתיחה... + + + + + Open... + פתיחה... + + + + Ctrl+O + Ctrl+O + + + + &Save + &שמירה + + + + Ctrl+S + Ctrl+S + + + + Save &As... + ש&מירה בשם... + + + + + Save As... + שמירה בשם... + + + + Ctrl+Shift+S + + + + + &Quit + י&ציאה + + + + Ctrl+Q + Ctrl+Q + + + + &Start + + + + + F5 + F5 + + + + St&op + + + + + F6 + F6 + + + + &Add Plugin... + + + + + Ctrl+A + Ctrl+A + + + + &Remove All + לה&סיר הכול + + + + Enable + הפעלה + + + + Disable + השבתה + + + + 0% Wet (Bypass) + + + + + 100% Wet + + + + + 0% Volume (Mute) + + + + + 100% Volume + + + + + Center Balance + + + + + &Play + ני&גון + + + + Ctrl+Shift+P + + + + + &Stop + + + + + Ctrl+Shift+X + Ctrl+Shift+X + + + + &Backwards + + + + + Ctrl+Shift+B + + + + + &Forwards + + + + + Ctrl+Shift+F + + + + + &Arrange + + + + + Ctrl+G + + + + + + &Refresh + + + + + Ctrl+R + Ctrl+R + + + + Save &Image... + + + + + Auto-Fit + + + + + Zoom In + התקרבות + + + + Ctrl++ + Ctrl++ + + + + Zoom Out + התרחקות + + + + Ctrl+- + Ctrl+- + + + + Zoom 100% + תקריב של 100% + + + + Ctrl+1 + Ctrl+1 + + + + Show &Toolbar + + + + + &Configure Carla + + + + + &About + על &אודות + + + + About &JUCE + על או&דות JUCE + + + + About &Qt + על אודו&ת Qt + + + + Show Canvas &Meters + + + + + Show Canvas &Keyboard + + + + + Show Internal + + + + + Show External + + + + + Show Time Panel + + + + + Show &Side Panel + + + + + Ctrl+P + + + + + &Connect... + + + + + Compact Slots + + + + + Expand Slots + + + + + Perform secret 1 + + + + + Perform secret 2 + + + + + Perform secret 3 + + + + + Perform secret 4 + + + + + Perform secret 5 + + + + + Add &JACK Application... + + + + + &Configure driver... + + + + + Panic + + + + + Open custom driver panel... + + + + + Save Image... (2x zoom) + + + + + Save Image... (4x zoom) + + + + + Copy as Image to Clipboard + + + + + Ctrl+Shift+C + + + + + CarlaHostWindow + + + Export as... + ייצוא בשם... + + + + + + + Error + שגיאה + + + + Failed to load project + טעינת המיזם נכשלה + + + + Failed to save project + שמירת המיזם נכשלה + + + + Quit + יציאה + + + + Are you sure you want to quit Carla? + לצאת מ־Carla? + + + + Could not connect to Audio backend '%1', possible reasons: +%2 + + + + + Could not connect to Audio backend '%1' + + + + + Warning + אזהרה + + + + There are still some plugins loaded, you need to remove them to stop the engine. +Do you want to do this now? + חלק מהתוספים עדיין פועלים, יש להסירם כדי לכבות את המנוע. +לעשות זאת כעת? + + + + CarlaSettingsW + + + Settings + הגדרות + + + + main + + + + + canvas + + + + + engine + + + + + osc + + + + + file-paths + + + + + plugin-paths + + + + + wine + + + + + experimental + + + + + Widget + יישומון + + + + + Main + + + + + + Canvas + + + + + + Engine + מנוע + + + + File Paths + נתיבי קובץ + + + + Plugin Paths + נתיבי תוסף + + + + Wine + + + + + + Experimental + + + + + <b>Main</b> + + + + + Paths + נתיבים + + + + Default project folder: + + + + + Interface + ממשק + + + + Use "Classic" as default rack skin + + + + + Interface refresh interval: + + + + + + ms + מ״ש + + + + Show console output in Logs tab (needs engine restart) + + + + + Show a confirmation dialog before quitting + + + + + + Theme + ערכת נושא + + + + Use Carla "PRO" theme (needs restart) + + + + + Color scheme: + ערכת צבעים: + + + + Black + צבע שחור + + + + System + מערכת + + + + Enable experimental features + + + + + <b>Canvas</b> + + + + + Bezier Lines + + + + + Theme: + ערכת נושא: + + + + Size: + גודל: + + + + 775x600 + 775x600 + + + + 1550x1200 + 1550x1200 + + + + 3100x2400 + 3100x2400 + + + + 4650x3600 + 4650x3600 + + + + 6200x4800 + 6200x4800 + + + + 12400x9600 + + + + + Options + אפשרויות + + + + Auto-hide groups with no ports + + + + + Auto-select items on hover + + + + + Basic eye-candy (group shadows) + + + + + Render Hints + + + + + Anti-Aliasing + החלקת עקומות + + + + Full canvas repaints (slower, but prevents drawing issues) + + + + + <b>Engine</b> + <b>מנוע</b> + + + + + Core + + + + + Single Client + לקוח יחיד + + + + Multiple Clients + לקוחות מרובים + + + + + Continuous Rack + + + + + + Patchbay + + + + + Audio driver: + + + + + Process mode: + + + + + + + + Maximum number of parameters to allow in the built-in 'Edit' dialog + + + + + Max Parameters: + + + + + ... + ... + + + + Reset Xrun counter after project load + + + + + Plugin UIs + + + + + + How much time to wait for OSC GUIs to ping back the host + + + + + UI Bridge Timeout: + + + + + Use OSC-GUI bridges when possible, this way separating the UI from DSP code + + + + + Use UI bridges instead of direct handling when possible + + + + + Make plugin UIs always-on-top + + + + + Make plugin UIs appear on top of Carla (needs restart) + + + + + NOTE: Plugin-bridge UIs cannot be managed by Carla on macOS + + + + + + Restart the engine to load the new settings + + + + + <b>OSC</b> + + + + + Enable OSC + + + + + Enable TCP port + + + + + + Use specific port: + + + + + Overridden by CARLA_OSC_TCP_PORT env var + + + + + + Use randomly assigned port + + + + + Enable UDP port + + + + + Overridden by CARLA_OSC_UDP_PORT env var + + + + + DSSI UIs require OSC UDP port enabled + + + + + <b>File Paths</b> + + + + + Audio + שמע + + + + MIDI + + + + + Used for the "audiofile" plugin + + + + + Used for the "midifile" plugin + + + + + + Add... + הוספה... + + + + + Remove + הסרה + + + + + Change... + שינוי... + + + + <b>Plugin Paths</b> + + + + + LADSPA + + + + + DSSI + + + + + LV2 + + + + + VST2 + + + + + VST3 + + + + + SF2/3 + + + + + SFZ + + + + + JSFX + + + + + CLAP + + + + + Restart Carla to find new plugins + + + + + <b>Wine</b> + + + + + Executable + + + + + Path to 'wine' binary: + + + + + Prefix + + + + + Auto-detect Wine prefix based on plugin filename + + + + + Fallback: + נסיגה: + + + + Note: WINEPREFIX env var is preferred over this fallback + + + + + Realtime Priority + + + + + Base priority: + + + + + WineServer priority: + + + + + These options are not available for Carla as plugin + + + + + <b>Experimental</b> + + + + + Experimental options! Likely to be unstable! + + + + + Enable plugin bridges + + + + + Enable Wine bridges + + + + + Enable jack applications + + + + + Export single plugins to LV2 + + + + + Use system/desktop-theme icons (needs restart) + + + + + Load Carla backend in global namespace (NOT RECOMMENDED) + + + + + Fancy eye-candy (fade-in/out groups, glow connections) + + + + + Use OpenGL for rendering (needs restart) + + + + + High Quality Anti-Aliasing (OpenGL only) + + + + + Render Ardour-style "Inline Displays" + + + + + Force mono plugins as stereo by running 2 instances at the same time. +This mode is not available for VST plugins. + + + + + Force mono plugins as stereo + + + + + When enabled, Carla will try to prevent plugins from doing things that might mess up the audio or cause xruns, such as fork(), gtk_init() and similar. + + + + + Prevent unsafe calls from plugins (needs restart) + + + + + Run plugins in a separate process, so if they crash it does not affect Carla. +Plugins get automatically deactivated in such cases. +Reactvate them to start the process again, with the last saved state applied to it. + + + + + Run plugins in bridge mode when possible + + + + + + + + Add Path + הוספת נתיב + + + + Dialog + + + Carla Control - Connect + + + + + Remote setup + + + + + UDP Port: + + + + + Remote host: + + + + + TCP Port: + + + + + Set value + + + + + TextLabel + + + + + Scale Points + + + + + DriverSettingsW + + + Driver Settings + + + + + Device: + + + + + Buffer size: + + + + + Sample rate: + + + + + Triple buffer + + + + + Show Driver Control Panel + + + + + Restart the engine to load the new settings + יש להפעיל את המנוע מחדש לטעינת ההגדרות החדשות + + + + ExportProjectDialog + + + Export project + + + + + Export as loop (remove extra bar) + + + + + Export between loop markers + + + + + Render Looped Section: + + + + + time(s) + + + + + File format settings + הגדרות פורמט קובץ + + + + File format: + פורמט קובץ: + + + + Sampling rate: + קצב דגימה: + + + + 44100 Hz + 44100 Hz + + + + 48000 Hz + 48000 Hz + + + + 88200 Hz + 88200 Hz + + + + 96000 Hz + 96000 Hz + + + + 192000 Hz + 192000 Hz + + + + Bit depth: + + + + + 16 Bit integer + + + + + 24 Bit integer + + + + + 32 Bit float + + + + + Stereo mode: + מצב סטריאו: + + + + Mono + מונו + + + + Stereo + סטריאו + + + + Joint stereo + + + + + Compression level: + רמת כיווץ: + + + + Bitrate: + + + + + 64 KBit/s + + + + + 128 KBit/s + + + + + 160 KBit/s + + + + + 192 KBit/s + + + + + 256 KBit/s + + + + + 320 KBit/s + + + + + Use variable bitrate + + + + + Quality settings + הגדרות איכות + + + + Interpolation: + + + + + Zero order hold + + + + + Sinc worst (fastest) + + + + + Sinc medium (recommended) + + + + + Sinc best (slowest) + + + + + Start + התחלה + + + + Cancel + ביטול + + + + InstrumentFunctionNoteStacking + + + octave + + + + + + Major + + + + + Majb5 + + + + + minor + + + + + minb5 + + + + + sus2 + + + + + sus4 + + + + + aug + + + + + augsus4 + + + + + tri + + + + + 6 + + + + + 6sus4 + + + + + 6add9 + + + + + m6 + + + + + m6add9 + + + + + 7 + + + + + 7sus4 + + + + + 7#5 + 7#5 + + + + 7b5 + + + + + 7#9 + 7#9 + + + + 7b9 + + + + + 7#5#9 + 7#5#9 + + + + 7#5b9 + 7#5b9 + + + + 7b5b9 + + + + + 7add11 + + + + + 7add13 + + + + + 7#11 + 7#11 + + + + Maj7 + + + + + Maj7b5 + + + + + Maj7#5 + Maj7#5 + + + + Maj7#11 + Maj7#11 + + + + Maj7add13 + + + + + m7 + m7 + + + + m7b5 + m7b5 + + + + m7b9 + m7b9 + + + + m7add11 + m7add11 + + + + m7add13 + m7add13 + + + + m-Maj7 + m-Maj7 + + + + m-Maj7add11 + m-Maj7add11 + + + + m-Maj7add13 + m-Maj7add13 + + + + 9 + 9 + + + + 9sus4 + 9sus4 + + + + add9 + add9 + + + + 9#5 + 9#5 + + + + 9b5 + 9b5 + + + + 9#11 + 9#11 + + + + 9b13 + 9b13 + + + + Maj9 + Maj9 + + + + Maj9sus4 + Maj9sus4 + + + + Maj9#5 + Maj9#5 + + + + Maj9#11 + Maj9#11 + + + + m9 + m9 + + + + madd9 + madd9 + + + + m9b5 + m9b5 + + + + m9-Maj7 + m9-Maj7 + + + + 11 + 11 + + + + 11b9 + 11b9 + + + + Maj11 + Maj11 + + + + m11 + m11 + + + + m-Maj11 + m-Maj11 + + + + 13 + 13 + + + + 13#9 + 13#9 + + + + 13b9 + 13b9 + + + + 13b5b9 + 13b5b9 + + + + Maj13 + + + + + m13 + m13 + + + + m-Maj13 + m-Maj13 + + + + Harmonic minor + + + + + Melodic minor + + + + + Whole tone + + + + + Diminished + + + + + Major pentatonic + + + + + Minor pentatonic + + + + + Jap in sen + + + + + Major bebop + + + + + Dominant bebop + + + + + Blues + + + + + Arabic + + + + + Enigmatic + + + + + Neopolitan + + + + + Neopolitan minor + + + + + Hungarian minor + + + + + Dorian + + + + + Phrygian + + + + + Lydian + + + + + Mixolydian + + + + + Aeolian + + + + + Locrian + + + + + Minor + + + + + Chromatic + + + + + Half-Whole Diminished + + + + + 5 + 5 + + + + Phrygian dominant + + + + + Persian + + + + + InstrumentSoundShaping + + + VOLUME + + + + + Volume + עוצמת שמע + + + + CUTOFF + + + + + Cutoff frequency + + + + + RESO + + + + + Resonance + + + + + JackAppDialog + + + Add JACK Application + + + + + Note: Features not implemented yet are greyed out + + + + + Application + + + + + Name: + + + + + Application: + + + + + From template + + + + + Custom + + + + + Template: + + + + + Command: + + + + + Setup + + + + + Session Manager: + + + + + None + + + + + Audio inputs: + + + + + MIDI inputs: + + + + + Audio outputs: + + + + + MIDI outputs: + + + + + Take control of main application window + + + + + Workarounds + + + + + Wait for external application start (Advanced, for Debug only) + + + + + Capture only the first X11 Window + + + + + Use previous client output buffer as input for the next client + + + + + Simulate 16 JACK MIDI outputs, with MIDI channel as port index + + + + + Error here + + + + + NSM applications cannot use abstract or absolute paths + + + + + NSM applications cannot use CLI arguments + + + + + You need to save the current Carla project before NSM can be used + + + + + JuceAboutW + + + This program uses JUCE version %1. + + + + + MidiPatternW + + + MIDI Pattern + + + + + Time Signature: + + + + + + + 1/4 + 1/4 + + + + 2/4 + 2/4 + + + + 3/4 + 3/4 + + + + 4/4 + 4/4 + + + + 5/4 + 5/4 + + + + 6/4 + 6/4 + + + + Measures: + + + + + + + 1 + 1 + + + + 2 + 2 + + + + 3 + 3 + + + + 4 + 4 + + + + 5 + 5 + + + + 6 + 6 + + + + 7 + 7 + + + + 8 + 8 + + + + 9 + 9 + + + + 10 + 10 + + + + 11 + 11 + + + + 12 + 12 + + + + 13 + 13 + + + + 14 + 14 + + + + 15 + 15 + + + + 16 + 16 + + + + Default Length: + אורך ברירת מחדל: + + + + + 1/16 + 1/16 + + + + + 1/15 + 1/15 + + + + + 1/12 + 1/12 + + + + + 1/9 + 1/9 + + + + + 1/8 + 1/8 + + + + + 1/6 + 1/6 + + + + + 1/3 + 1/3 + + + + + 1/2 + 1/2 + + + + Quantize: + + + + + &File + &קובץ + + + + &Edit + ע&ריכה + + + + &Quit + י&ציאה + + + + Esc + + + + + &Insert Mode + + + + + F + + + + + &Velocity Mode + + + + + D + + + + + Select All + לבחור הכול + + + + A + + + + + PatchesDialog + + + + Qsynth: Channel Preset + + + + + + Bank selector + + + + + + Bank + + + + + + Program selector + + + + + + Patch + + + + + + Name + + + + + + OK + אישור + + + + + Cancel + ביטול + + + + PluginBrowser + + + no description + + + + + A native amplifier plugin + + + + + Simple sampler with various settings for using samples (e.g. drums) in an instrument-track + + + + + Boost your bass the fast and simple way + + + + + Customizable wavetable synthesizer + + + + + An oversampling bitcrusher + + + + + Carla Patchbay Instrument + + + + + Carla Rack Instrument + + + + + A dynamic range compressor. + + + + + A 4-band Crossover Equalizer + + + + + A native delay plugin + + + + + A Dual filter plugin + + + + + plugin for processing dynamics in a flexible way + + + + + A native eq plugin + + + + + A native flanger plugin + + + + + Emulation of GameBoy (TM) APU + + + + + Player for GIG files + + + + + Filter for importing Hydrogen files into LMMS + + + + + Versatile drum synthesizer + + + + + List installed LADSPA plugins + + + + + plugin for using arbitrary LADSPA-effects inside LMMS. + + + + + Incomplete monophonic imitation TB-303 + + + + + plugin for using arbitrary LV2-effects inside LMMS. + + + + + plugin for using arbitrary LV2 instruments inside LMMS. + + + + + Filter for exporting MIDI-files from LMMS + + + + + Filter for importing MIDI-files into LMMS + + + + + Monstrous 3-oscillator synth with modulation matrix + + + + + A multitap echo delay plugin + + + + + A NES-like synthesizer + + + + + 2-operator FM Synth + + + + + Additive Synthesizer for organ-like sounds + + + + + GUS-compatible patch instrument + + + + + Plugin for controlling knobs with sound peaks + + + + + Reverb algorithm by Sean Costello + + + + + Player for SoundFont files + + + + + LMMS port of sfxr + + + + + Emulation of the MOS6581 and MOS8580 SID. +This chip was used in the Commodore 64 computer. + + + + + A graphical spectrum analyzer. + + + + + Plugin for enhancing stereo separation of a stereo input file + + + + + Plugin for freely manipulating stereo output + + + + + Tuneful things to bang on + + + + + Three powerful oscillators you can modulate in several ways + + + + + A stereo field visualizer. + + + + + VST-host for using VST(i)-plugins within LMMS + + + + + Vibrating string modeler + + + + + plugin for using arbitrary VST effects inside LMMS. + + + + + 4-oscillator modulatable wavetable synth + + + + + plugin for waveshaping + + + + + Mathematical expression parser + + + + + Embedded ZynAddSubFX + + + + + An all-pass filter allowing for extremely high orders. + + + + + Granular pitch shifter + + + + + Upwards/downwards multiband compression plugin powered by the eldritch elder god LOMMUS. + + + + + Basic Slicer + + + + + Tap to the beat + + + + + PluginEdit + + + Plugin Editor + עורך התוספים + + + + Edit + + + + + Control + + + + + MIDI Control Channel: + + + + + N + + + + + Output dry/wet (100%) + + + + + Output volume (100%) + + + + + Balance Left (0%) + + + + + + Balance Right (0%) + + + + + Use Balance + + + + + Use Panning + + + + + Settings + + + + + Use Chunks + + + + + Audio: + + + + + Fixed-Size Buffer + + + + + Force Stereo (needs reload) + + + + + MIDI: + + + + + Map Program Changes + + + + + Send Notes + + + + + Send Bank/Program Changes + + + + + Send Control Changes + + + + + Send Channel Pressure + + + + + Send Note Aftertouch + + + + + Send Pitchbend + + + + + Send All Sound/Notes Off + + + + + +Plugin Name + + + + + + Program: - - Plugin Version + + MIDI Program: - - <br>Version %1<br>Carla is a fully-featured audio plugin host%2.<br><br>Copyright (C) 2011-2019 falkTX<br> + + Save State + שמירת מצב + + + + Load State - - - (Engine not running) + + Information - - Everything! (Including LRDF) + + Label/URI: - - Everything! (Including CustomData/Chunks) + + Name: - - About 110&#37; complete (using custom extensions)<br/>Implemented Feature/Extensions:<ul><li>http://lv2plug.in/ns/ext/atom</li><li>http://lv2plug.in/ns/ext/buf-size</li><li>http://lv2plug.in/ns/ext/data-access</li><li>http://lv2plug.in/ns/ext/event</li><li>http://lv2plug.in/ns/ext/instance-access</li><li>http://lv2plug.in/ns/ext/log</li><li>http://lv2plug.in/ns/ext/midi</li><li>http://lv2plug.in/ns/ext/options</li><li>http://lv2plug.in/ns/ext/parameters</li><li>http://lv2plug.in/ns/ext/port-props</li><li>http://lv2plug.in/ns/ext/presets</li><li>http://lv2plug.in/ns/ext/resize-port</li><li>http://lv2plug.in/ns/ext/state</li><li>http://lv2plug.in/ns/ext/time</li><li>http://lv2plug.in/ns/ext/uri-map</li><li>http://lv2plug.in/ns/ext/urid</li><li>http://lv2plug.in/ns/ext/worker</li><li>http://lv2plug.in/ns/extensions/ui</li><li>http://lv2plug.in/ns/extensions/units</li><li>http://home.gna.org/lv2dynparam/rtmempool/v1</li><li>http://kxstudio.sf.net/ns/lv2ext/external-ui</li><li>http://kxstudio.sf.net/ns/lv2ext/programs</li><li>http://kxstudio.sf.net/ns/lv2ext/props</li><li>http://kxstudio.sf.net/ns/lv2ext/rtmempool</li><li>http://ll-plugins.nongnu.org/lv2/ext/midimap</li><li>http://ll-plugins.nongnu.org/lv2/ext/miditype</li></ul> + + Type: - - - - Using Juce host + + Maker: - - About 85% complete (missing vst bank/presets and some minor stuff) + + Copyright: + + + + + Unique ID: - CarlaHostW + PluginFactory - - MainWindow + + Plugin not found. - - Rack + + LMMS plugin %1 does not have a plugin descriptor named %2! + + + PluginListDialog - - Patchbay + + Carla - Add New - - Logs + + Requirements - - Loading... + + With Custom GUI - - Buffer Size: + + With CV Ports - - Sample Rate: + + Real-time safe only - - ? Xruns + + Stereo only - - DSP Load: %p% + + With Inline Display - - &File + + Favorites only - - &Engine + + (Number of Plugins go here) - - &Plugin + + &Add Plugin - - Macros (all plugins) + + Cancel - - &Canvas + + Refresh - - Zoom + + Reset filters - - &Settings + + + + + + + + + + + + + + + + + TextLabel - - &Help + + Format: + + + + + Architecture: - - toolBar + + Type: - - Disk + + MIDI Ins: - - - Home + + Audio Ins: - - Transport + + CV Outs: - - Playback Controls + + MIDI Outs: - - Time Information + + Parameter Ins: + + + + + Parameter Outs: + + + + + Audio Outs: + + + + + CV Ins: + + + + + UniqueID: + + + + + Has Inline Display: + + + + + Has Custom GUI: + + + + + Is Synth: + + + + + Is Bridged: + + + + + Information + + + + + Name + + + + + Label/Id/URI + + + + + Maker + + + + + Binary/Filename + + + + + Format + + + + + Internal + + + + + LADSPA + + + + + DSSI + + + + + LV2 + + + + + VST2 + + + + + VST3 + + + + + CLAP + + + + + AU + + + + + JSFX + + + + + Sound Kits + + + + + Type + + + + + Effects + + + + + Instruments + + + + + MIDI Plugins + + + + + Other/Misc + + + + + Category + + + + + All + + + + + Delay + + + + + Distortion + + + + + Dynamics + + + + + EQ + + + + + Filter + + + + + Modulator + + + + + Synth + + + + + Utility - - Frame: + + + Other - - 000'000'000 + + Architecture - - Time: + + + Native - - 00:00:00 + + Bridged - - BBT: + + Bridged (Wine) - - 000|00|0000 + + Focus Text Search - - Settings + + Ctrl+F - - BPM + + Bridged (32bit) - - Use JACK Transport + + Discovering internal plugins... - - Use Ableton Link + + Discovering LADSPA plugins... - - &New + + Discovering DSSI plugins... - - Ctrl+N + + Discovering LV2 plugins... - - &Open... + + Discovering VST2 plugins... - - - Open... + + Discovering VST3 plugins... - - Ctrl+O + + Discovering CLAP plugins... - - &Save + + Discovering AU plugins... - - Ctrl+S + + Discovering JSFX plugins... - - Save &As... + + Discovering SF2 kits... - - - Save As... + + Discovering SFZ kits... - - Ctrl+Shift+S + + Unknown - - &Quit + + + + + Yes - - Ctrl+Q + + + + + No + + + PluginParameter - - &Start + + Form - - F5 + + Parameter Name - - St&op + + TextLabel - - F6 + + ... + + + PluginRefreshDialog - - &Add Plugin... + + Plugin Refresh - - Ctrl+A + + Search for: - - &Remove All + + All plugins, ignoring cache - - Enable + + Updated plugins only - - Disable + + Check previously invalid plugins - - 0% Wet (Bypass) + + Press 'Scan' to begin the search - - 100% Wet + + Scan - - 0% Volume (Mute) + + >> Skip - - 100% Volume + + Close + + + PluginWidget - - Center Balance + + + + + + Frame - - &Play + + Enable - - Ctrl+Shift+P + + On/Off - - &Stop + + + + + PluginName - - Ctrl+Shift+X + + MIDI - - &Backwards + + AUDIO IN - - Ctrl+Shift+B + + AUDIO OUT - - &Forwards - + + GUI + ממשק משתמש - - Ctrl+Shift+F + + Edit - - &Arrange + + Remove - - Ctrl+G + + Plugin Name - - - &Refresh - + + Preset: + מערך: + + + ProjectRenderer - - Ctrl+R + + WAV (*.wav) - - Save &Image... + + FLAC (*.flac) - - Auto-Fit + + OGG (*.ogg) - - Zoom In + + MP3 (*.mp3) + + + QGroupBox - - Ctrl++ + + + Settings for %1 + + + QObject - - Zoom Out + + Reload Plugin - - Ctrl+- - + + Show GUI + הצגת ממשק המשתמש - - Zoom 100% + + Help - - Ctrl+1 + + LADSPA plugins - - Show &Toolbar + + The project contains %1 LADSPA plugin(s) which might have not been restored correctly! Please check the project. - - &Configure Carla + + URI: - - &About + + Project: - - About &JUCE + + Maker: - - About &Qt + + Homepage: - - Show Canvas &Meters + + License: - - Show Canvas &Keyboard + + File: %1 - - Show Internal + + failed to load description - - Show External + + Open audio file - - Show Time Panel + + Error loading sample - - Show &Side Panel + + %1 (unsupported) + + + QWidget - - &Connect... + + + Name: - - Compact Slots + + Maker: - - Expand Slots + + Copyright: - - Perform secret 1 + + Requires Real Time: - - Perform secret 2 - + + + + Yes + כן - - Perform secret 3 + + + + No - - Perform secret 4 + + Real Time Capable: - - Perform secret 5 + + In Place Broken: - - Add &JACK Application... + + Channels In: - - &Configure driver... + + Channels Out: - - Panic + + File: %1 - - Open custom driver panel... + + File: - CarlaHostWindow - - - Export as... - - + XYControllerW - - - - - Error + + XY Controller - - Failed to load project + + X Controls: - - Failed to save project + + Y Controls: - - Quit + + Smooth - - Are you sure you want to quit Carla? + + &Settings - - Could not connect to Audio backend '%1', possible reasons: -%2 + + Channels - - Could not connect to Audio backend '%1' + + &File - - Warning + + Show MIDI &Keyboard - - There are still some plugins loaded, you need to remove them to stop the engine. -Do you want to do this now? + + (All) - - - CarlaInstrumentView - - Show GUI + + 1 - - - CarlaSettingsW - - Settings + + 2 - - main + + 3 - - canvas + + 4 - - engine + + 5 - - osc + + 6 - - file-paths + + 7 - - plugin-paths + + 8 - - wine + + 9 - - experimental + + 10 - - Widget + + 11 - - - Main + + 12 - - - Canvas + + 13 - - - Engine + + 14 - - File Paths + + 15 - - Plugin Paths + + 16 - - Wine + + &Quit - - - Experimental + + Esc - - <b>Main</b> + + (None) + + + lmms::AmplifierControls - - Paths + + Volume - - Default project folder: + + Panning - - Interface + + Left gain - - Interface refresh interval: + + Right gain + + + lmms::AudioFileProcessor - - - ms + + Amplify - - Show console output in Logs tab (needs engine restart) + + Start of sample - - Show a confirmation dialog before quitting + + End of sample - - - Theme + + Loopback point - - Use Carla "PRO" theme (needs restart) + + Reverse sample - - Color scheme: + + Loop mode - - Black + + Stutter - - System + + Interpolation mode - - Enable experimental features + + None - - <b>Canvas</b> + + Linear - - Bezier Lines + + Sinc - - Theme: + + Sample not found + + + lmms::AudioJack - - Size: + + JACK client restarted - - 775x600 + + LMMS was kicked by JACK for some reason. Therefore the JACK backend of LMMS has been restarted. You will have to make manual connections again. - - 1550x1200 + + JACK server down - - 3100x2400 + + The JACK server seems to have been shutdown and starting a new instance failed. Therefore LMMS is unable to proceed. You should save your project and restart JACK and LMMS. - - 4650x3600 + + Client name - - 6200x4800 + + Channels + + + lmms::AudioOss - - Options + + Device - - Auto-hide groups with no ports + + Channels + + + lmms::AudioPortAudio::setupWidget - - Auto-select items on hover + + Backend - - Basic eye-candy (group shadows) + + Device + + + lmms::AudioPulseAudio - - Render Hints + + Device - - Anti-Aliasing + + Channels + + + lmms::AudioSdl::setupWidget - - Full canvas repaints (slower, but prevents drawing issues) + + Playback device - - <b>Engine</b> + + Input device + + + lmms::AudioSndio - - - Core + + Device - - Single Client + + Channels + + + lmms::AudioSoundIo::setupWidget - - Multiple Clients + + Backend - - - Continuous Rack + + Device + + + lmms::AutomatableModel - - - Patchbay + + &Reset (%1%2) - - Audio driver: + + &Copy value (%1%2) - - Process mode: + + &Paste value (%1%2) - - - - - Maximum number of parameters to allow in the built-in 'Edit' dialog + + &Paste value - - Max Parameters: + + Edit song-global automation - - ... + + Remove song-global automation - - Reset Xrun counter after project load + + Remove all linked controls - - Plugin UIs + + Connected to %1 - - - How much time to wait for OSC GUIs to ping back the host + + Connected to controller - - UI Bridge Timeout: + + Edit connection... - - Use OSC-GUI bridges when possible, this way separating the UI from DSP code + + Remove connection - - Use UI bridges instead of direct handling when possible + + Connect to controller... + + + lmms::AutomationClip - - Make plugin UIs always-on-top + + Drag a control while pressing <%1> + + + lmms::AutomationTrack - - Make plugin UIs appear on top of Carla (needs restart) + + Automation track + + + lmms::BassBoosterControls - - NOTE: Plugin-bridge UIs cannot be managed by Carla on macOS + + Frequency - - - Restart the engine to load the new settings + + Gain - - <b>OSC</b> + + Ratio + + + lmms::BitInvader - - Enable OSC + + Sample length - - Enable TCP port + + Interpolation - - - Use specific port: + + Normalize + + + lmms::BitcrushControls - - Overridden by CARLA_OSC_TCP_PORT env var + + Input gain - - - Use randomly assigned port + + Input noise - - Enable UDP port + + Output gain - - Overridden by CARLA_OSC_UDP_PORT env var + + Output clip - - DSSI UIs require OSC UDP port enabled + + Sample rate - - <b>File Paths</b> + + Stereo difference - - Audio + + Levels - - MIDI + + Rate enabled - - Used for the "audiofile" plugin + + Depth enabled + + + lmms::Clip - - Used for the "midifile" plugin + + Mute + + + lmms::CompressorControls - - - Add... + + Threshold - - - Remove + + Ratio - - - Change... + + Attack - - <b>Plugin Paths</b> + + Release - - LADSPA + + Knee - - DSSI + + Hold - - LV2 + + Range - - VST2 + + RMS Size - - VST3 + + Mid/Side - - SF2/3 + + Peak Mode - - SFZ + + Lookahead Length - - Restart Carla to find new plugins + + Input Balance - - <b>Wine</b> + + Output Balance - - Executable + + Limiter - - Path to 'wine' binary: + + Output Gain - - Prefix + + Input Gain - - Auto-detect Wine prefix based on plugin filename + + Blend - - Fallback: + + Stereo Balance - - Note: WINEPREFIX env var is preferred over this fallback + + Auto Makeup Gain - - Realtime Priority + + Audition - - Base priority: + + Feedback - - WineServer priority: + + Auto Attack - - These options are not available for Carla as plugin + + Auto Release - - <b>Experimental</b> + + Lookahead - - Experimental options! Likely to be unstable! + + Tilt - - Enable plugin bridges + + Tilt Frequency - - Enable Wine bridges + + Stereo Link - - Enable jack applications + + Mix + + + lmms::Controller - - Export single plugins to LV2 + + Controller %1 + + + lmms::DelayControls - - Load Carla backend in global namespace (NOT RECOMMENDED) + + Delay samples - - Fancy eye-candy (fade-in/out groups, glow connections) + + Feedback - - Use OpenGL for rendering (needs restart) + + LFO frequency - - High Quality Anti-Aliasing (OpenGL only) + + LFO amount - - Render Ardour-style "Inline Displays" + + Output gain + + + lmms::DispersionControls - - Force mono plugins as stereo by running 2 instances at the same time. -This mode is not available for VST plugins. + + Amount - - Force mono plugins as stereo + + Frequency - - Prevent plugins from doing bad stuff (needs restart) + + Resonance - - Whenever possible, run the plugins in bridge mode. + + Feedback - - Run plugins in bridge mode when possible + + DC Offset Removal + + + lmms::DualFilterControls - - - - - Add Path + + Filter 1 enabled - - - CompressorControlDialog - - Threshold: + + Filter 1 type - - Volume at which the compression begins to take place + + Cutoff frequency 1 - - Ratio: + + Q/Resonance 1 - - How far the compressor must turn the volume down after crossing the threshold + + Gain 1 - - Attack: + + Mix - - Speed at which the compressor starts to compress the audio + + Filter 2 enabled - - Release: + + Filter 2 type - - Speed at which the compressor ceases to compress the audio + + Cutoff frequency 2 - - Knee: + + Q/Resonance 2 - - Smooth out the gain reduction curve around the threshold + + Gain 2 - - Range: + + + Low-pass - - Maximum gain reduction + + + Hi-pass - - Lookahead Length: + + + Band-pass csg - - How long the compressor has to react to the sidechain signal ahead of time + + + Band-pass czpg - - Hold: + + + Notch - - Delay between attack and release stages + + + All-pass - - RMS Size: + + + Moog - - Size of the RMS buffer + + + 2x Low-pass - - Input Balance: + + + RC Low-pass 12 dB/oct - - Bias the input audio to the left/right or mid/side + + + RC Band-pass 12 dB/oct - - Output Balance: + + + RC High-pass 12 dB/oct - - Bias the output audio to the left/right or mid/side + + + RC Low-pass 24 dB/oct - - Stereo Balance: + + + RC Band-pass 24 dB/oct - - Bias the sidechain signal to the left/right or mid/side + + + RC High-pass 24 dB/oct - - Stereo Link Blend: + + + Vocal Formant - - Blend between unlinked/maximum/average/minimum stereo linking modes + + + 2x Moog - - Tilt Gain: + + + SV Low-pass - - Bias the sidechain signal to the low or high frequencies. -6 db is lowpass, 6 db is highpass. + + + SV Band-pass - - Tilt Frequency: + + + SV High-pass - - Center frequency of sidechain tilt filter + + + SV Notch - - Mix: + + + Fast Formant - - Balance between wet and dry signals + + + Tripole + + + lmms::DynProcControls - - Auto Attack: + + Input gain - - Automatically control attack value depending on crest factor + + Output gain - - Auto Release: + + Attack time - - Automatically control release value depending on crest factor + + Release time - - Output gain + + Stereo mode + + + lmms::Effect - - - Gain + + Effect enabled - - Output volume + + Wet/Dry mix - - Input gain + + Gate - - Input volume + + Decay + + + lmms::EffectChain - - Root Mean Square + + Effects enabled + + + lmms::Engine - - Use RMS of the input + + Generating wavetables - - Peak + + Initializing data structures - - Use absolute value of the input + + Opening audio and midi devices - - Left/Right + + Launching audio engine threads + + + lmms::EnvelopeAndLfoParameters - - Compress left and right audio + + Env pre-delay - - Mid/Side + + Env attack - - Compress mid and side audio + + Env hold - - Compressor + + Env decay - - Compress the audio + + Env sustain - - Limiter + + Env release - - Set Ratio to infinity (is not guaranteed to limit audio volume) + + Env mod amount - - Unlinked + + LFO pre-delay - - Compress each channel separately + + LFO attack - - Maximum + + LFO frequency - - Compress based on the loudest channel + + LFO mod amount - - Average + + LFO wave shape - - Compress based on the averaged channel volume + + LFO frequency x 100 - - Minimum + + Modulate env amount - - Compress based on the quietest channel + + Sample not found + + + lmms::EqControls - - Blend + + Input gain - - Blend between stereo linking modes + + Output gain - - Auto Makeup Gain + + Low-shelf gain - - Automatically change makeup gain depending on threshold, knee, and ratio settings + + Peak 1 gain - - - Soft Clip + + Peak 2 gain - - Play the delta signal + + Peak 3 gain - - Use the compressor's output as the sidechain input + + Peak 4 gain - - Lookahead Enabled + + High-shelf gain - - Enable Lookahead, which introduces 20 milliseconds of latency + + HP res - - - CompressorControls - - Threshold + + Low-shelf res - - Ratio + + Peak 1 BW - - Attack + + Peak 2 BW - - Release + + Peak 3 BW - - Knee + + Peak 4 BW - - Hold + + High-shelf res - - Range + + LP res - - RMS Size + + HP freq - - Mid/Side + + Low-shelf freq - - Peak Mode + + Peak 1 freq - - Lookahead Length + + Peak 2 freq - - Input Balance + + Peak 3 freq - - Output Balance + + Peak 4 freq - - Limiter + + High-shelf freq - - Output Gain + + LP freq - - Input Gain + + HP active - - Blend + + Low-shelf active - - Stereo Balance + + Peak 1 active - - Auto Makeup Gain + + Peak 2 active - - Audition + + Peak 3 active - - Feedback + + Peak 4 active - - Auto Attack + + High-shelf active - - Auto Release + + LP active - - Lookahead + + LP 12 - - Tilt + + LP 24 - - Tilt Frequency + + LP 48 - - Stereo Link + + HP 12 - - Mix + + HP 24 - - - Controller - - Controller %1 + + HP 48 - - - ControllerConnectionDialog - - Connection Settings + + Low-pass type - - MIDI CONTROLLER + + High-pass type - - Input channel + + Analyse IN - - CHANNEL + + Analyse OUT + + + lmms::FlangerControls - - Input controller + + Delay samples - - CONTROLLER + + LFO frequency - - - Auto Detect + + Amount - - MIDI-devices to receive MIDI-events from + + Stereo phase - - USER CONTROLLER + + Feedback - - MAPPING FUNCTION + + Noise - - OK + + Invert + + + lmms::FreeBoyInstrument - - Cancel + + Sweep time - - LMMS - LMMS - - - - Cycle Detected. + + Sweep direction - - - ControllerRackView - - Controller Rack + + Sweep rate shift amount - - Add - הוסף + + + Wave pattern duty cycle + - - Confirm Delete + + Channel 1 volume - - Confirm delete? There are existing connection(s) associated with this controller. There is no way to undo. + + + + Volume sweep direction - - - ControllerView - - Controls + + + + Length of each step in sweep - - Rename controller + + Channel 2 volume - - Enter the new name for this controller + + Channel 3 volume - - LFO + + Channel 4 volume - - &Remove this controller + + Shift Register width - - Re&name this controller + + Right output level - - - CrossoverEQControlDialog - - Band 1/2 crossover: + + Left output level - - Band 2/3 crossover: + + Channel 1 to SO2 (Left) - - Band 3/4 crossover: + + Channel 2 to SO2 (Left) - - Band 1 gain + + Channel 3 to SO2 (Left) - - Band 1 gain: + + Channel 4 to SO2 (Left) - - Band 2 gain + + Channel 1 to SO1 (Right) - - Band 2 gain: + + Channel 2 to SO1 (Right) - - Band 3 gain + + Channel 3 to SO1 (Right) - - Band 3 gain: + + Channel 4 to SO1 (Right) - - Band 4 gain + + Treble - - Band 4 gain: + + Bass + + + lmms::GigInstrument - - Band 1 mute + + Bank - - Mute band 1 + + Patch - - Band 2 mute + + Gain + + + lmms::GranularPitchShifterControls - - Mute band 2 + + Pitch - - Band 3 mute + + Grain Size - - Mute band 3 + + Spray - - Band 4 mute + + Jitter - - Mute band 4 + + Twitch - - - DelayControls - - Delay samples + + Pitch Stereo Spread - - Feedback + + Spray Stereo - - LFO frequency + + Shape - - LFO amount + + Fade Length - - Output gain + + Feedback - - - DelayControlsDialog - - DELAY + + Minimum Allowed Latency - - Delay time + + Prefilter - - FDBK + + Density - - Feedback amount + + Glide - - RATE + + Ring Buffer Length - - LFO frequency + + 5 Seconds - - AMNT + + 10 Seconds (Size) - - LFO amount + + 40 Seconds (Size and Pitch) - - Out gain + + 40 Seconds (Size and Spray and Jitter) - - Gain + + 120 Seconds (All of the above) - Dialog + lmms::InstrumentFunctionArpeggio - - Add JACK Application + + Arpeggio - - Note: Features not implemented yet are greyed out + + Arpeggio type - - Application + + Arpeggio range - - Name: + + Note repeats - - Application: + + Cycle steps - - From template + + Skip rate - - Custom + + Miss rate - - Template: + + Arpeggio time - - Command: + + Arpeggio gate - - Setup + + Arpeggio direction - - Session Manager: + + Arpeggio mode - - None + + Up - - Audio inputs: + + Down - - MIDI inputs: + + Up and down - - Audio outputs: + + Down and up - - MIDI outputs: + + Random - - Take control of main application window + + Free - - Workarounds + + Sort - - Wait for external application start (Advanced, for Debug only) + + Sync + + + lmms::InstrumentFunctionNoteStacking - - Capture only the first X11 Window + + Chords - - Use previous client output buffer as input for the next client + + Chord type - - Simulate 16 JACK MIDI outputs, with MIDI channel as port index + + Chord range + + + lmms::InstrumentSoundShaping - - Error here + + Envelopes/LFOs - - Carla Control - Connect + + Filter type - - Remote setup + + Cutoff frequency - - UDP Port: + + Q/Resonance - - Remote host: + + Low-pass - - TCP Port: + + Hi-pass - - Reported host + + Band-pass csg - - Automatic + + Band-pass czpg - - Custom: + + Notch - - In some networks (like USB connections), the remote system cannot reach the local network. You can specify here which hostname or IP to make the remote Carla connect to. -If you are unsure, leave it as 'Automatic'. + + All-pass - - Set value + + Moog - - TextLabel + + 2x Low-pass - - Scale Points + + RC Low-pass 12 dB/oct - - - DriverSettingsW - - Driver Settings + + RC Band-pass 12 dB/oct - - Device: + + RC High-pass 12 dB/oct - - Buffer size: + + RC Low-pass 24 dB/oct - - Sample rate: + + RC Band-pass 24 dB/oct - - Triple buffer + + RC High-pass 24 dB/oct - - Show Driver Control Panel + + Vocal Formant - - Restart the engine to load the new settings + + 2x Moog - - - DualFilterControlDialog - - - FREQ + + SV Low-pass - - - Cutoff frequency + + SV Band-pass - - - RESO + + SV High-pass - - - Resonance + + SV Notch - - - GAIN + + Fast Formant - - - Gain + + Tripole + + + lmms::InstrumentTrack - - MIX + + + unnamed_track - - Mix + + Base note - - Filter 1 enabled + + First note - - Filter 2 enabled + + Last note - - Enable/disable filter 1 + + Volume - - Enable/disable filter 2 + + Panning - - - DualFilterControls - - Filter 1 enabled + + Pitch - - Filter 1 type + + Pitch range - - Cutoff frequency 1 + + Mixer channel - - Q/Resonance 1 + + Master pitch - - Gain 1 + + Enable/Disable MIDI CC - - Mix + + CC Controller %1 - - Filter 2 enabled + + + Default preset + + + lmms::Keymap - - Filter 2 type + + empty + + + lmms::KickerInstrument - - Cutoff frequency 2 + + Start frequency - - Q/Resonance 2 + + End frequency - - Gain 2 + + Length - - - Low-pass + + Start distortion - - - Hi-pass + + End distortion - - - Band-pass csg + + Gain - - - Band-pass czpg + + Envelope slope - - - Notch + + Noise - - - All-pass + + Click - - - Moog + + Frequency slope - - - 2x Low-pass + + Start from note - - - RC Low-pass 12 dB/oct + + End to note + + + lmms::LOMMControls - - - RC Band-pass 12 dB/oct + + Depth - - - RC High-pass 12 dB/oct + + Time - - - RC Low-pass 24 dB/oct + + Input Volume - - - RC Band-pass 24 dB/oct + + Output Volume - - - RC High-pass 24 dB/oct + + Upward Depth - - - Vocal Formant + + Downward Depth - - - 2x Moog + + High/Mid Split - - - SV Low-pass + + Mid/Low Split - - - SV Band-pass + + Enable High/Mid Split - - - SV High-pass + + Enable Mid/Low Split - - - SV Notch + + Enable High Band - - - Fast Formant + + Enable Mid Band - - - Tripole + + Enable Low Band - - - Editor - - Transport controls + + High Input Volume - - Play (Space) + + Mid Input Volume - - Stop (Space) + + Low Input Volume - - Record + + High Output Volume - - Record while playing + + Mid Output Volume - - Toggle Step Recording + + Low Output Volume - - - Effect - - Effect enabled + + Above Threshold High - - Wet/Dry mix + + Above Threshold Mid - - Gate + + Above Threshold Low - - Decay + + Above Ratio High - - - EffectChain - - Effects enabled + + Above Ratio Mid - - - EffectRackView - - EFFECTS CHAIN + + Above Ratio Low - - Add effect + + Below Threshold High - - - EffectSelectDialog - - Add effect + + Below Threshold Mid - - - Name + + Below Threshold Low - - Type + + Below Ratio High - - Description + + Below Ratio Mid - - Author + + Below Ratio Low - - - EffectView - - On/Off + + Attack High - - W/D + + Attack Mid - - Wet Level: + + Attack Low - - DECAY + + Release High - - Time: + + Release Mid - - GATE + + Release Low - - Gate: + + RMS Time - - Controls + + Knee - - Move &up + + Range - - Move &down + + Balance - - &Remove this plugin + + Scale output volume with Depth - - - EnvelopeAndLfoParameters - - Env pre-delay + + Stereo Link - - Env attack + + Auto Time - - Env hold + + Mix - - Env decay + + Feedback - - Env sustain + + Mid/Side - - Env release + + Lookahead - - Env mod amount + + Lookahead Length - - LFO pre-delay + + Suppress upward compression for side band + + + lmms::LadspaControl - - LFO attack + + Link channels + + + lmms::LadspaEffect - - LFO frequency + + Unknown LADSPA plugin %1 requested. + + + lmms::Lb302Synth - - LFO mod amount + + VCF Cutoff Frequency - - LFO wave shape + + VCF Resonance - - LFO frequency x 100 + + VCF Envelope Mod - - Modulate env amount + + VCF Envelope Decay - - - EnvelopeAndLfoView - - - DEL + + Distortion - - - Pre-delay: + + Waveform - - - ATT + + Slide Decay - - - Attack: + + Slide - - HOLD + + Accent - - Hold: + + Dead - - DEC + + 24dB/oct Filter + + + lmms::LfoController - - Decay: + + LFO Controller - - SUST + + Base value - - Sustain: + + Oscillator speed - - REL + + Oscillator amount - - Release: + + Oscillator phase - - - AMT + + Oscillator waveform - - - Modulation amount: + + Frequency Multiplier - - SPD + + Sample not found + + + lmms::MalletsInstrument - - Frequency: + + Hardness - - FREQ x 100 + + Position - - Multiply LFO frequency by 100 + + Vibrato gain - - MODULATE ENV AMOUNT + + Vibrato frequency - - Control envelope amount by this LFO + + Stick mix - - ms/LFO: + + Modulator - - Hint + + Crossfade - - Drag and drop a sample into this window. + + LFO speed - - - EqControls - - Input gain + + LFO depth - - Output gain + + ADSR - - Low-shelf gain + + Pressure - - Peak 1 gain + + Motion - - Peak 2 gain + + Speed - - Peak 3 gain + + Bowed - - Peak 4 gain + + Instrument - - High-shelf gain + + Spread - - HP res + + Randomness - - Low-shelf res + + Marimba - - Peak 1 BW + + Vibraphone - - Peak 2 BW + + Agogo - - Peak 3 BW + + Wood 1 - - Peak 4 BW + + Reso - - High-shelf res + + Wood 2 - - LP res + + Beats - - HP freq + + Two fixed - - Low-shelf freq + + Clump - - Peak 1 freq + + Tubular bells - - Peak 2 freq + + Uniform bar - - Peak 3 freq + + Tuned bar - - Peak 4 freq + + Glass - - High-shelf freq + + Tibetan bowl + + + lmms::MeterModel - - LP freq + + Numerator - - HP active + + Denominator + + + lmms::Microtuner - - Low-shelf active + + Microtuner - - Peak 1 active + + Microtuner on / off - - Peak 2 active + + Selected scale - - Peak 3 active + + Selected keyboard mapping + + + lmms::MidiController - - Peak 4 active + + MIDI Controller - - High-shelf active + + unnamed_midi_controller + + + lmms::MidiImport - - LP active + + + Setup incomplete - - LP 12 + + You have not set up a default soundfont in the settings dialog (Edit->Settings). Therefore no sound will be played back after importing this MIDI file. You should download a General MIDI soundfont, specify it in settings dialog and try again. - - LP 24 + + You did not compile LMMS with support for SoundFont2 player, which is used to add default sound to imported MIDI files. Therefore no sound will be played back after importing this MIDI file. - - LP 48 + + MIDI Time Signature Numerator - - HP 12 + + MIDI Time Signature Denominator - - HP 24 + + Numerator - - HP 48 + + Denominator - - Low-pass type + + + Tempo - - High-pass type + + Track + + + lmms::MidiJack - - Analyse IN + + JACK server down + When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (title) - - Analyse OUT + + The JACK server seems to be shuted down. + When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (dialog message) - EqControlsDialog + lmms::MidiPort - - HP + + Input channel - - Low-shelf + + Output channel - - Peak 1 + + Input controller - - Peak 2 + + Output controller - - Peak 3 + + Fixed input velocity - - Peak 4 + + Fixed output velocity - - High-shelf + + Fixed output note - - LP + + Output MIDI program - - Input gain + + Base velocity - - - - Gain + + Receive MIDI-events - - Output gain + + Send MIDI-events + + + lmms::Mixer - - Bandwidth: + + Master - - Octave + + + + Channel %1 - - Resonance : + + Volume - - Frequency: + + Mute - - LP group + + Solo + + + lmms::MixerRoute - - HP group + + + Amount to send from channel %1 to channel %2 - EqHandle + lmms::MonstroInstrument - - Reso: + + Osc 1 volume - - BW: + + Osc 1 panning - - - Freq: + + Osc 1 coarse detune - - - ExportProjectDialog - - Export project + + Osc 1 fine detune left - - Export as loop (remove extra bar) + + Osc 1 fine detune right - - Export between loop markers + + Osc 1 stereo phase offset - - Render Looped Section: + + Osc 1 pulse width - - time(s) + + Osc 1 sync send on rise - - File format settings + + Osc 1 sync send on fall - - File format: + + Osc 2 volume - - Sampling rate: + + Osc 2 panning - - 44100 Hz - 44100 Hz + + Osc 2 coarse detune + - - 48000 Hz - 48000 Hz + + Osc 2 fine detune left + - - 88200 Hz - 88200 Hz + + Osc 2 fine detune right + - - 96000 Hz - 96000 Hz + + Osc 2 stereo phase offset + + + + + Osc 2 waveform + - - 192000 Hz - 192000 Hz + + Osc 2 sync hard + - - Bit depth: + + Osc 2 sync reverse - - 16 Bit integer + + Osc 3 volume - - 24 Bit integer + + Osc 3 panning - - 32 Bit float + + Osc 3 coarse detune - - Stereo mode: + + Osc 3 Stereo phase offset - - Mono - מונו + + Osc 3 sub-oscillator mix + - - Stereo - סטריאו + + Osc 3 waveform 1 + - - Joint stereo + + Osc 3 waveform 2 - - Compression level: - רמת כיווץ: + + Osc 3 sync hard + - - Bitrate: + + Osc 3 Sync reverse - - 64 KBit/s + + LFO 1 waveform - - 128 KBit/s + + LFO 1 attack - - 160 KBit/s + + LFO 1 rate - - 192 KBit/s + + LFO 1 phase - - 256 KBit/s + + LFO 2 waveform - - 320 KBit/s + + LFO 2 attack - - Use variable bitrate + + LFO 2 rate - - Quality settings + + LFO 2 phase - - Interpolation: + + Env 1 pre-delay - - Zero order hold + + Env 1 attack - - Sinc worst (fastest) + + Env 1 hold - - Sinc medium (recommended) + + Env 1 decay - - Sinc best (slowest) + + Env 1 sustain - - Oversampling: + + Env 1 release - - 1x (None) + + Env 1 slope - - 2x + + Env 2 pre-delay - - 4x + + Env 2 attack - - 8x + + Env 2 hold - - Start + + Env 2 decay - - Cancel + + Env 2 sustain - - Could not open file + + Env 2 release - - Could not open file %1 for writing. -Please make sure you have write permission to the file and the directory containing the file and try again! + + Env 2 slope - - Export project to %1 + + Osc 2+3 modulation - - ( Fastest - biggest ) + + Selected view - - ( Slowest - smallest ) + + Osc 1 - Vol env 1 - - Error + + Osc 1 - Vol env 2 - - Error while determining file-encoder device. Please try to choose a different output format. + + Osc 1 - Vol LFO 1 - - Rendering: %1% + + Osc 1 - Vol LFO 2 - - - Fader - - Set value + + Osc 2 - Vol env 1 - - Please enter a new value between %1 and %2: + + Osc 2 - Vol env 2 - - - FileBrowser - - User content + + Osc 2 - Vol LFO 1 - - Factory content + + Osc 2 - Vol LFO 2 - - Browser + + Osc 3 - Vol env 1 - - Search + + Osc 3 - Vol env 2 - - Refresh list + + Osc 3 - Vol LFO 1 - - - FileBrowserTreeWidget - - Send to active instrument-track + + Osc 3 - Vol LFO 2 - - Open containing folder + + Osc 1 - Phs env 1 - - Song Editor + + Osc 1 - Phs env 2 - - BB Editor + + Osc 1 - Phs LFO 1 - - Send to new AudioFileProcessor instance + + Osc 1 - Phs LFO 2 - - Send to new instrument track + + Osc 2 - Phs env 1 - - (%2Enter) + + Osc 2 - Phs env 2 - - Send to new sample track (Shift + Enter) + + Osc 2 - Phs LFO 1 - - Loading sample + + Osc 2 - Phs LFO 2 - - Please wait, loading sample for preview... + + Osc 3 - Phs env 1 - - Error + + Osc 3 - Phs env 2 - - %1 does not appear to be a valid %2 file + + Osc 3 - Phs LFO 1 - - --- Factory files --- + + Osc 3 - Phs LFO 2 - - - FlangerControls - - Delay samples + + Osc 1 - Pit env 1 - - LFO frequency + + Osc 1 - Pit env 2 - - Seconds + + Osc 1 - Pit LFO 1 - - Stereo phase + + Osc 1 - Pit LFO 2 - - Regen + + Osc 2 - Pit env 1 - - Noise + + Osc 2 - Pit env 2 - - Invert + + Osc 2 - Pit LFO 1 - - - FlangerControlsDialog - - DELAY + + Osc 2 - Pit LFO 2 - - Delay time: + + Osc 3 - Pit env 1 - - RATE + + Osc 3 - Pit env 2 - - Period: + + Osc 3 - Pit LFO 1 - - AMNT + + Osc 3 - Pit LFO 2 - - Amount: + + Osc 1 - PW env 1 - - PHASE + + Osc 1 - PW env 2 - - Phase: + + Osc 1 - PW LFO 1 - - FDBK + + Osc 1 - PW LFO 2 - - Feedback amount: + + Osc 3 - Sub env 1 - - NOISE + + Osc 3 - Sub env 2 - - White noise amount: + + Osc 3 - Sub LFO 1 - - Invert + + Osc 3 - Sub LFO 2 - - - FreeBoyInstrument - - Sweep time + + + Sine wave - - Sweep direction + + Bandlimited Triangle wave - - Sweep rate shift amount + + Bandlimited Saw wave - - - Wave pattern duty cycle + + Bandlimited Ramp wave - - Channel 1 volume + + Bandlimited Square wave - - - - Volume sweep direction + + Bandlimited Moog saw wave - - - - Length of each step in sweep + + + Soft square wave - - Channel 2 volume + + Absolute sine wave - - Channel 3 volume + + + Exponential wave - - Channel 4 volume + + White noise - - Shift Register width + + Digital Triangle wave - - Right output level + + Digital Saw wave - - Left output level + + Digital Ramp wave - - Channel 1 to SO2 (Left) + + Digital Square wave - - Channel 2 to SO2 (Left) + + Digital Moog saw wave - - Channel 3 to SO2 (Left) + + Triangle wave - - Channel 4 to SO2 (Left) + + Saw wave - - Channel 1 to SO1 (Right) + + Ramp wave - - Channel 2 to SO1 (Right) + + Square wave - - Channel 3 to SO1 (Right) + + Moog saw wave - - Channel 4 to SO1 (Right) + + Abs. sine wave - - Treble + + Random - - Bass + + Random smooth - FreeBoyInstrumentView - - - Sweep time: - - + lmms::NesInstrument - - Sweep time + + Channel 1 enable - - Sweep rate shift amount: + + Channel 1 coarse detune - - Sweep rate shift amount + + Channel 1 volume - - - Wave pattern duty cycle: + + Channel 1 envelope enable - - - Wave pattern duty cycle + + Channel 1 envelope loop - - Square channel 1 volume: + + Channel 1 envelope length - - Square channel 1 volume + + Channel 1 duty cycle - - - - Length of each step in sweep: + + Channel 1 sweep enable - - - - Length of each step in sweep + + Channel 1 sweep amount - - Square channel 2 volume: + + Channel 1 sweep rate - - Square channel 2 volume + + Channel 2 enable - - Wave pattern channel volume: + + Channel 2 coarse detune - - Wave pattern channel volume + + Channel 2 volume - - Noise channel volume: + + Channel 2 envelope enable - - Noise channel volume + + Channel 2 envelope loop - - SO1 volume (Right): + + Channel 2 envelope length - - SO1 volume (Right) + + Channel 2 duty cycle - - SO2 volume (Left): + + Channel 2 sweep enable - - SO2 volume (Left) + + Channel 2 sweep amount - - Treble: + + Channel 2 sweep rate - - Treble + + Channel 3 enable - - Bass: + + Channel 3 coarse detune - - Bass + + Channel 3 volume - - Sweep direction + + Channel 4 enable - - - - - - Volume sweep direction + + Channel 4 volume - - Shift register width + + Channel 4 envelope enable - - Channel 1 to SO1 (Right) + + Channel 4 envelope loop - - Channel 2 to SO1 (Right) + + Channel 4 envelope length - - Channel 3 to SO1 (Right) + + Channel 4 noise mode - - Channel 4 to SO1 (Right) + + Channel 4 frequency mode - - Channel 1 to SO2 (Left) + + Channel 4 noise frequency - - Channel 2 to SO2 (Left) + + Channel 4 noise frequency sweep - - Channel 3 to SO2 (Left) + + Channel 4 quantize - - Channel 4 to SO2 (Left) + + Master volume - - Wave pattern graph + + Vibrato - MixerLine + lmms::OpulenzInstrument - - Channel send amount + + Patch - - Move &left + + Op 1 attack - - Move &right + + Op 1 decay - - Rename &channel + + Op 1 sustain - - R&emove channel + + Op 1 release - - Remove &unused channels + + Op 1 level - - Set channel color + + Op 1 level scaling - - Remove channel color + + Op 1 frequency multiplier - - Pick random channel color + + Op 1 feedback - - - MixerLineLcdSpinBox - - Assign to: + + Op 1 key scaling rate - - New mixer Channel + + Op 1 percussive envelope - - - Mixer - - Master + + Op 1 tremolo - - - - Channel %1 + + Op 1 vibrato - - Volume - ווליום - - - - Mute + + Op 1 waveform - - Solo + + Op 2 attack - - - MixerView - - Mixer + + Op 2 decay - - Fader %1 + + Op 2 sustain - - Mute + + Op 2 release - - Mute this mixer channel + + Op 2 level - - Solo + + Op 2 level scaling - - Solo mixer channel + + Op 2 frequency multiplier - - - MixerRoute - - - Amount to send from channel %1 to channel %2 + + Op 2 key scaling rate - - - GigInstrument - - Bank + + Op 2 percussive envelope - - Patch + + Op 2 tremolo - - Gain + + Op 2 vibrato - - - GigInstrumentView - - - Open GIG file + + Op 2 waveform - - Choose patch + + FM - - Gain: + + Vibrato depth - - GIG Files (*.gig) + + Tremolo depth - GuiApplication - - - Working directory - - - - - The LMMS working directory %1 does not exist. Create it now? You can change the directory later via Edit -> Settings. - - + lmms::OrganicInstrument - - Preparing UI + + Distortion - - Preparing song editor + + Volume + + + lmms::OscillatorObject - - Preparing mixer + + Osc %1 waveform - - Preparing controller rack + + Osc %1 harmonic - - Preparing project notes + + + Osc %1 volume - - Preparing beat/bassline editor + + + Osc %1 panning - - Preparing piano roll + + Osc %1 stereo detuning - - Preparing automation editor + + Osc %1 coarse detuning - - - InstrumentFunctionArpeggio - - Arpeggio + + Osc %1 fine detuning left - - Arpeggio type + + Osc %1 fine detuning right - - Arpeggio range + + Osc %1 phase-offset - - Note repeats + + Osc %1 stereo phase-detuning - - Cycle steps + + Osc %1 wave shape - - Skip rate + + Modulation type %1 + + + lmms::PatternTrack - - Miss rate + + Pattern %1 - - Arpeggio time + + Clone of %1 + + + lmms::PeakController - - Arpeggio gate + + Peak Controller - - Arpeggio direction + + Peak Controller Bug - - Arpeggio mode + + Due to a bug in older version of LMMS, the peak controllers may not be connect properly. Please ensure that peak controllers are connected properly and re-save this file. Sorry for any inconvenience caused. + + + lmms::PeakControllerEffectControls - - Up + + Base value - - Down + + Modulation amount - - Up and down + + Attack - - Down and up + + Release - - Random + + Treshold - - Free + + Mute output - - Sort + + Absolute value - - Sync + + Amount multiplicator - InstrumentFunctionArpeggioView + lmms::Plugin - - ARPEGGIO + + Plugin not found - - RANGE + + The plugin "%1" wasn't found or could not be loaded! +Reason: "%2" - - Arpeggio range: + + Error while loading plugin - - octave(s) + + Failed to load plugin "%1"! + + + lmms::ReverbSCControls - - REP + + Input gain - - Note repeats: + + Size - - time(s) + + Color - - CYCLE + + Output gain + + + lmms::SaControls - - Cycle notes: + + Pause - - note(s) + + Reference freeze - - SKIP + + Waterfall - - Skip rate: + + Averaging - - - - % + + Stereo - - MISS + + Peak hold - - Miss rate: + + Logarithmic frequency - - TIME + + Logarithmic amplitude - - Arpeggio time: + + Frequency range - - ms + + Amplitude range - - GATE + + FFT block size - - Arpeggio gate: + + FFT window type - - Chord: + + Peak envelope resolution - - Direction: + + Spectrum display resolution - - Mode: + + Peak decay multiplier - - - InstrumentFunctionNoteStacking - - octave + + Averaging weight - - - Major + + Waterfall history size - - Majb5 + + Waterfall gamma correction - - minor + + FFT window overlap - - minb5 + + FFT zero padding - - sus2 + + + Full (auto) - - sus4 + + + + Audible - - aug + + Bass - - augsus4 + + Mids - - tri + + High - - 6 + + Extended - - 6sus4 + + Loud - - 6add9 + + Silent - - m6 + + (High time res.) - - m6add9 + + (High freq. res.) - - 7 + + Rectangular (Off) - - 7sus4 + + + Blackman-Harris (Default) - - 7#5 + + Hamming - - 7b5 + + Hanning + + + lmms::SampleClip - - 7#9 + + Sample not found + + + lmms::SampleTrack - - 7b9 + + Volume - - 7#5#9 + + Panning - - 7#5b9 + + Mixer channel - - 7b5b9 + + + Sample track + + + lmms::Scale - - 7add11 + + empty + + + lmms::Sf2Instrument - - 7add13 + + Bank - - 7#11 + + Patch - - Maj7 + + Gain - - Maj7b5 + + Reverb + + + + + Reverb room size - - Maj7#5 + + Reverb damping - - Maj7#11 + + Reverb width - - Maj7add13 + + Reverb level - - m7 + + Chorus - - m7b5 + + Chorus voices - - m7b9 + + Chorus level - - m7add11 + + Chorus speed - - m7add13 + + Chorus depth - - m-Maj7 + + A soundfont %1 could not be loaded. + + + lmms::SfxrInstrument - - m-Maj7add11 + + Wave + + + lmms::SidInstrument - - m-Maj7add13 + + Cutoff frequency - - 9 + + Resonance - - 9sus4 + + Filter type - - add9 + + Voice 3 off - - 9#5 + + Volume - - 9b5 + + Chip model + + + lmms::SlicerT - - 9#11 + + Note threshold - - 9b13 + + FadeOut - - Maj9 + + Original bpm - - Maj9sus4 + + Slice snap - - Maj9#5 + + BPM sync - - Maj9#11 + + + slice_%1 - - m9 + + Sample not found: %1 + + + lmms::Song - - madd9 + + Tempo - - m9b5 + + Master volume - - m9-Maj7 + + Master pitch - - 11 + + Aborting project load - - 11b9 + + Project file contains local paths to plugins, which could be used to run malicious code. - - Maj11 + + Can't load project: Project file contains local paths to plugins. - - m11 + + LMMS Error report - - m-Maj11 + + (repeated %1 times) - - 13 + + The following errors occurred while loading: + + + lmms::StereoEnhancerControls - - 13#9 + + Width + + + lmms::StereoMatrixControls - - 13b9 + + Left to Left - - 13b5b9 + + Left to Right - - Maj13 + + Right to Left - - m13 + + Right to Right + + + lmms::Track - - m-Maj13 + + Mute - - Harmonic minor + + Solo + + + lmms::TrackContainer - - Melodic minor + + Couldn't import file - - Whole tone + + Couldn't find a filter for importing file %1. +You should convert this file into a format supported by LMMS using another software. - - Diminished + + Couldn't open file - - Major pentatonic + + Couldn't open file %1 for reading. +Please make sure you have read-permission to the file and the directory containing the file and try again! - - Minor pentatonic + + Loading project... - - Jap in sen + + + Cancel - - Major bebop + + + Please wait... - - Dominant bebop + + Loading cancelled - - Blues + + Project loading was cancelled. - - Arabic + + Loading Track %1 (%2/Total %3) - - Enigmatic + + Importing MIDI-file... + + + lmms::TripleOscillator - - Neopolitan + + Sample not found + + + lmms::VecControls - - Neopolitan minor + + Display persistence amount - - Hungarian minor + + Logarithmic scale - - Dorian + + High quality + + + lmms::VestigeInstrument - - Phrygian + + Loading plugin - - Lydian + + Please wait while loading the VST plugin... + + + lmms::Vibed - - Mixolydian + + String %1 volume - - Aeolian + + String %1 stiffness - - Locrian + + Pick %1 position - - Minor + + Pickup %1 position - - Chromatic + + String %1 panning - - Half-Whole Diminished + + String %1 detune - - 5 + + String %1 fuzziness - - Phrygian dominant + + String %1 length - - Persian + + Impulse %1 - - Chords + + String %1 + + + lmms::VoiceObject - - Chord type + + Voice %1 pulse width - - Chord range + + Voice %1 attack - - - InstrumentFunctionNoteStackingView - - STACKING + + Voice %1 decay - - Chord: + + Voice %1 sustain - - RANGE + + Voice %1 release - - Chord range: + + Voice %1 coarse detuning - - octave(s) + + Voice %1 wave shape - - - InstrumentMidiIOView - - ENABLE MIDI INPUT + + Voice %1 sync - - ENABLE MIDI OUTPUT + + Voice %1 ring modulate - - - CHAN - This string must be be short, its width must be less than * width of LCD spin-box of two digits + + Voice %1 filtered - - - VELOC - This string must be be short, its width must be less than * width of LCD spin-box of three digits + + Voice %1 test + + + lmms::VstPlugin - - PROG - This string must be be short, its width must be less than the * width of LCD spin-box of three digits + + + The VST plugin %1 could not be loaded. - - NOTE - This string must be be short, its width must be less than * width of LCD spin-box of three digits + + Open Preset - - MIDI devices to receive MIDI events from + + + VST Plugin Preset (*.fxp *.fxb) - - MIDI devices to send MIDI events to + + : default - - CUSTOM BASE VELOCITY + + Save Preset - - Specify the velocity normalization base for MIDI-based instruments at 100% note velocity. + + .fxp - - BASE VELOCITY + + .FXP - - - InstrumentTuningView - - MASTER PITCH + + .FXB - - Enables the use of master pitch + + .fxb - - - InstrumentSoundShaping - - VOLUME + + Loading plugin - - Volume - ווליום + + Please wait while loading VST plugin... + + + + lmms::WatsynInstrument - - CUTOFF + + Volume A1 - - - Cutoff frequency + + Volume A2 - - RESO + + Volume B1 - - Resonance + + Volume B2 - - Envelopes/LFOs + + Panning A1 - - Filter type + + Panning A2 - - Q/Resonance + + Panning B1 - - Low-pass + + Panning B2 - - Hi-pass + + Freq. multiplier A1 - - Band-pass csg + + Freq. multiplier A2 - - Band-pass czpg + + Freq. multiplier B1 - - Notch + + Freq. multiplier B2 - - All-pass + + Left detune A1 - - Moog + + Left detune A2 - - 2x Low-pass + + Left detune B1 - - RC Low-pass 12 dB/oct + + Left detune B2 - - RC Band-pass 12 dB/oct + + Right detune A1 - - RC High-pass 12 dB/oct + + Right detune A2 - - RC Low-pass 24 dB/oct + + Right detune B1 - - RC Band-pass 24 dB/oct + + Right detune B2 - - RC High-pass 24 dB/oct + + A-B Mix - - Vocal Formant + + A-B Mix envelope amount - - 2x Moog + + A-B Mix envelope attack - - SV Low-pass + + A-B Mix envelope hold - - SV Band-pass + + A-B Mix envelope decay - - SV High-pass + + A1-B2 Crosstalk - - SV Notch + + A2-A1 modulation - - Fast Formant + + B2-B1 modulation - - Tripole + + Selected graph - InstrumentSoundShapingView + lmms::WaveShaperControls - - TARGET + + Input gain - - FILTER + + Output gain + + + lmms::Xpressive - - FREQ + + Selected graph - - Cutoff frequency: + + A1 - - Hz + + A2 - - Q/RESO + + A3 - - Q/Resonance: + + W1 smoothing - - Envelopes, LFOs and filters are not supported by the current instrument. + + W2 smoothing - - - InstrumentTrack - - - unnamed_track + + W3 smoothing - - Base note + + Panning 1 - - First note + + Panning 2 - - Last note + + Rel trans + + + lmms::ZynAddSubFxInstrument - - Volume - ווליום + + Portamento + - - Panning + + Filter frequency - - Pitch + + Filter resonance - - Pitch range + + Bandwidth - - Mixer channel + + FM gain - - Master pitch + + Resonance center frequency - - Enable/Disable MIDI CC + + Resonance bandwidth - - CC Controller %1 + + Forward MIDI control change events + + + lmms::graphModel - - - Default preset + + Graph - InstrumentTrackView + lmms::gui::AmplifierControlDialog - - Volume - ווליום + + VOL + - + Volume: - ווליום: - - - - VOL - ווליום + - - Panning + + PAN - + Panning: - - PAN + + LEFT - - MIDI + + Left gain: - - Input + + RIGHT - - Output + + Right gain: + + + lmms::gui::AudioAlsaSetupWidget - - Open/Close MIDI CC Rack + + Device - - Channel %1: %2 + + Channels - InstrumentTrackWindow + lmms::gui::AudioFileProcessorView - - GENERAL SETTINGS + + Open sample - - Volume - ווליום + + Reverse sample + - - Volume: - ווליום: + + Disable loop + - - VOL - ווליום + + Enable loop + - - Panning + + Enable ping-pong loop - - Panning: + + Continue sample playback across notes - - PAN + + Amplify: - - Pitch + + Start point: - - Pitch: + + End point: - - cents + + Loopback point: + + + lmms::gui::AudioFileProcessorWaveView - - PITCH + + Sample length: + + + lmms::gui::AutomationClipView - - Pitch range (semitones) + + Open in Automation editor - - RANGE + + Clear - - Mixer channel + + Reset name - - CHANNEL + + Change name - - Save current instrument track settings in a preset file + + Set/clear record - - SAVE + + Flip Vertically (Visible) - - Envelope, filter & LFO + + Flip Horizontally (Visible) - - Chord stacking & arpeggio + + %1 Connections - - Effects + + Disconnect "%1" - - MIDI + + Model is already connected to this clip. + + + lmms::gui::AutomationEditor - - Miscellaneous + + Edit Value - - Save preset + + New outValue - - XML preset file (*.xpf) + + New inValue - - Plugin + + Please open an automation clip by double-clicking on it! - JackApplicationW + lmms::gui::AutomationEditorWindow - - NSM applications cannot use abstract or absolute paths + + Play/pause current clip (Space) - - NSM applications cannot use CLI arguments + + Stop playing of current clip (Space) - - You need to save the current Carla project before NSM can be used + + Edit actions - - - JuceAboutW - - About JUCE + + Draw mode (Shift+D) - - <b>About JUCE</b> + + Erase mode (Shift+E) - - This program uses JUCE version 3.x.x. + + Draw outValues mode (Shift+C) - - JUCE (Jules' Utility Class Extensions) is an all-encompassing C++ class library for developing cross-platform software. - -It contains pretty much everything you're likely to need to create most applications, and is particularly well-suited for building highly-customised GUIs, and for handling graphics and sound. - -JUCE is licensed under the GNU Public Licence version 2.0. -One module (juce_core) is permissively licensed under the ISC. - -Copyright (C) 2017 ROLI Ltd. + + Edit tangents mode (Shift+T) - - This program uses JUCE version %1. + + Flip vertically - - - Knob - - Set linear + + Flip horizontally - - Set logarithmic + + Interpolation controls - - - Set value + + Discrete progression - - Please enter a new value between -96.0 dBFS and 6.0 dBFS: + + Linear progression - - Please enter a new value between %1 and %2: + + Cubic Hermite progression - - - LadspaControl - - Link channels + + Tension value for spline - - - LadspaControlDialog - - Link Channels + + Tension: - - Channel + + Zoom controls - - - LadspaControlView - - Link channels + + Horizontal zooming - - Value: + + Vertical zooming - - - LadspaEffect - - Unknown LADSPA plugin %1 requested. + + Quantization controls - - - LcdFloatSpinBox - - Set value + + Quantization - - Please enter a new value between %1 and %2: + + Clear ghost notes - - - LcdSpinBox - - Set value + + + Automation Editor - no clip - - Please enter a new value between %1 and %2: + + + Automation Editor - %1 + + + + + Model is already connected to this clip. - LeftRightNav + lmms::gui::BassBoosterControlDialog - - - - Previous + + FREQ - - - - Next + + Frequency: - - Previous (%1) + + GAIN - - Next (%1) + + Gain: - - - LfoController - - LFO Controller + + RATIO - - Base value + + Ratio: + + + lmms::gui::BitInvaderView - - Oscillator speed + + Sample length - - Oscillator amount + + Draw your own waveform here by dragging your mouse on this graph. - - Oscillator phase + + + Sine wave - - Oscillator waveform + + + Triangle wave - - Frequency Multiplier + + + Saw wave - - - LfoControllerDialog - - LFO + + + Square wave - - BASE + + + White noise - - Base: + + + User-defined wave - - FREQ + + + Smooth waveform - - LFO frequency: + + Interpolation - - AMNT + + Normalize + + + lmms::gui::BitcrushControlDialog - - Modulation amount: + + IN - - PHS + + OUT - - Phase offset: + + + GAIN - - degrees + + Input gain: - - Sine wave + + NOISE - - Triangle wave + + Input noise: - - Saw wave + + Output gain: - - Square wave + + CLIP - - Moog saw wave + + Output clip: - - Exponential wave + + Rate enabled - - White noise + + Enable sample-rate crushing - - User-defined shape. -Double click to pick a file. + + Depth enabled - - Mutliply modulation frequency by 1 + + Enable bit-depth crushing - - Mutliply modulation frequency by 100 + + FREQ - - Divide modulation frequency by 100 + + Sample rate: - - - Engine - - Generating wavetables + + STEREO - - Initializing data structures + + Stereo difference: - - Opening audio and midi devices + + QUANT - - Launching mixer threads + + Levels: - MainWindow + lmms::gui::CPULoadWidget - - Configuration file - - - - - Error while parsing configuration file at line %1:%2: %3 + + DSP total: %1% - - Could not open file + + - Notes and setup: %1% - - Could not open file %1 for writing. -Please make sure you have write permission to the file and the directory containing the file and try again! + + - Instruments: %1% - - Project recovery + + - Effects: %1% - - There is a recovery file present. It looks like the last session did not end properly or another instance of LMMS is already running. Do you want to recover the project of this session? + + - Mixing: %1% + + + lmms::gui::CarlaInstrumentView - - - Recover + + Show GUI - - Recover the file. Please don't run multiple instances of LMMS when you do this. + + Click here to show or hide the graphical user interface (GUI) of Carla. - - - Discard + + Params - - Launch a default session and delete the restored files. This is not reversible. + + Available from Carla version 2.1 and up. + + + lmms::gui::CarlaParamsView - - Version %1 + + Search.. - - Preparing plugin browser + + Clear filter text - - Preparing file browsers + + Only show knobs with a connection. - - My Projects + + - Parameters + + + lmms::gui::ClipView - - My Samples + + Current position - - My Presets + + Current length - - My Home + + + %1:%2 (%3:%4 to %5:%6) - - Root directory + + Press <%1> and drag to make a copy. - - Volumes + + Press <%1> for free resizing. - - My Computer + + Hint - - &File + + Delete (middle mousebutton) - - &New + + Delete selection (middle mousebutton) - - &Open... + + Cut - - Loading background picture + + Cut selection - - &Save + + Merge Selection - - Save &As... + + Copy - - Save as New &Version + + Copy selection - - Save as default template + + Paste - - Import... + + Mute/unmute (<%1> + middle click) - - E&xport... + + Mute/unmute selection (<%1> + middle click) - - E&xport Tracks... + + Clip color - - Export &MIDI... + + Change - - &Quit + + Reset - - &Edit + + Pick random + + + lmms::gui::CompressorControlDialog - - Undo + + Threshold: - - Redo + + Volume at which the compression begins to take place - - Settings + + Ratio: - - &View + + How far the compressor must turn the volume down after crossing the threshold - - &Tools + + Attack: - - &Help + + Speed at which the compressor starts to compress the audio - - Online Help + + Release: - - Help + + Speed at which the compressor ceases to compress the audio - - About - אודות - - - - Create new project + + Knee: - - Create new project from template + + Smooth out the gain reduction curve around the threshold - - Open existing project + + Range: - - Recently opened projects + + Maximum gain reduction - - Save current project + + Lookahead Length: - - Export current project + + How long the compressor has to react to the sidechain signal ahead of time - - Metronome + + Hold: - - - Song Editor + + Delay between attack and release stages - - - Beat+Bassline Editor + + RMS Size: - - - Piano Roll + + Size of the RMS buffer - - - Automation Editor + + Input Balance: - - - Mixer + + Bias the input audio to the left/right or mid/side - - Show/hide controller rack + + Output Balance: - - Show/hide project notes + + Bias the output audio to the left/right or mid/side - - Untitled + + Stereo Balance: - - Recover session. Please save your work! + + Bias the sidechain signal to the left/right or mid/side - - LMMS %1 + + Stereo Link Blend: - - Recovered project not saved + + Blend between unlinked/maximum/average/minimum stereo linking modes - - This project was recovered from the previous session. It is currently unsaved and will be lost if you don't save it. Do you want to save it now? + + Tilt Gain: - - Project not saved + + Bias the sidechain signal to the low or high frequencies. -6 db is lowpass, 6 db is highpass. - - The current project was modified since last saving. Do you want to save it now? + + Tilt Frequency: - - Open Project + + Center frequency of sidechain tilt filter - - LMMS (*.mmp *.mmpz) + + Mix: - - Save Project + + Balance between wet and dry signals - - LMMS Project + + Auto Attack: - - LMMS Project Template + + Automatically control attack value depending on crest factor - - Save project template + + Auto Release: - - Overwrite default template? + + Automatically control release value depending on crest factor - - This will overwrite your current default template. + + Output gain - - Help not available + + + Gain - - Currently there's no help available in LMMS. -Please visit http://lmms.sf.net/wiki for documentation on LMMS. + + Output volume - - Controller Rack + + Input gain - - Project Notes + + Input volume - - Fullscreen + + Root Mean Square - - Volume as dBFS + + Use RMS of the input - - Smooth scroll + + Peak - - Enable note labels in piano roll + + Use absolute value of the input - - MIDI File (*.mid) + + Left/Right - - - untitled + + Compress left and right audio - - - Select file for project-export... + + Mid/Side - - Select directory for writing exported tracks... + + Compress mid and side audio - - Save project + + Compressor - - Project saved + + Compress the audio - - The project %1 is now saved. + + Limiter - - Project NOT saved. + + Set Ratio to infinity (is not guaranteed to limit audio volume) - - The project %1 was not saved! + + Unlinked - - Import file + + Compress each channel separately - - MIDI sequences + + Maximum - - Hydrogen projects + + Compress based on the loudest channel - - All file types + + Average - - - MeterDialog - - - Meter Numerator + + Compress based on the averaged channel volume - - Meter numerator + + Minimum - - - Meter Denominator + + Compress based on the quietest channel - - Meter denominator + + Blend - - TIME SIG + + Blend between stereo linking modes - - - MeterModel - - Numerator + + Auto Makeup Gain - - Denominator + + Automatically change makeup gain depending on threshold, knee, and ratio settings - - - MidiCCRackView - - - MIDI CC Rack - %1 + + + Soft Clip - - MIDI CC Knobs: + + Play the delta signal - - CC %1 + + Use the compressor's output as the sidechain input - - - MidiController - - MIDI Controller + + Lookahead Enabled - - unnamed_midi_controller + + Enable Lookahead, which introduces 20 milliseconds of latency - MidiImport - - - - Setup incomplete - - + lmms::gui::ControllerConnectionDialog - - You have not set up a default soundfont in the settings dialog (Edit->Settings). Therefore no sound will be played back after importing this MIDI file. You should download a General MIDI soundfont, specify it in settings dialog and try again. + + Connection Settings - - You did not compile LMMS with support for SoundFont2 player, which is used to add default sound to imported MIDI files. Therefore no sound will be played back after importing this MIDI file. + + MIDI CONTROLLER - - MIDI Time Signature Numerator + + Input channel - - MIDI Time Signature Denominator + + CHANNEL - - Numerator + + Input controller - - Denominator + + CONTROLLER - - Track + + + Auto Detect - - - MidiJack - - JACK server down - When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (title) + + MIDI-devices to receive MIDI-events from - - The JACK server seems to be shuted down. - When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (dialog message) + + USER CONTROLLER - - - MidiPatternW - - MIDI Pattern + + MAPPING FUNCTION - - Time Signature: + + OK - - - - 1/4 + + Cancel - - 2/4 + + LMMS - - 3/4 + + Cycle Detected. + + + lmms::gui::ControllerRackView - - 4/4 + + Controller Rack - - 5/4 + + Add - - 6/4 + + Confirm Delete - - Measures: + + Confirm delete? There are existing connection(s) associated with this controller. There is no way to undo. + + + lmms::gui::ControllerView - - - - 1 + + Controls - - 2 + + Rename controller - - 3 + + Enter the new name for this controller - - 4 + + LFO - - 5 + + Move &up - - 6 + + Move &down - - 7 + + &Remove this controller - - 8 + + Re&name this controller + + + lmms::gui::CrossoverEQControlDialog - - 9 + + Band 1/2 crossover: - - 10 + + Band 2/3 crossover: - - 11 + + Band 3/4 crossover: - - 12 + + Band 1 gain - - 13 + + Band 1 gain: - - 14 + + Band 2 gain - - 15 + + Band 2 gain: - - 16 + + Band 3 gain - - Default Length: + + Band 3 gain: - - - 1/16 + + Band 4 gain - - - 1/15 + + Band 4 gain: - - - 1/12 + + Band 1 mute - - - 1/9 + + Mute band 1 - - - 1/8 + + Band 2 mute - - - 1/6 + + Mute band 2 - - - 1/3 + + Band 3 mute - - - 1/2 + + Mute band 3 - - Quantize: + + Band 4 mute - - &File + + Mute band 4 + + + lmms::gui::DelayControlsDialog - - &Edit + + DELAY - - &Quit + + Delay time - - &Insert Mode + + FDBK - - F + + Feedback amount - - &Velocity Mode + + RATE - - D + + LFO frequency - - Select All + + AMNT - - A + + LFO amount - - - MidiPort - - Input channel + + Out gain - - Output channel + + Gain + + + lmms::gui::DispersionControlDialog - - Input controller + + AMOUNT - - Output controller + + Number of all-pass filters - - Fixed input velocity + + FREQ - - Fixed output velocity + + Frequency: - - Fixed output note + + RESO - - Output MIDI program + + Resonance: - - Base velocity + + FEED - - Receive MIDI-events + + Feedback: - - Send MIDI-events + + DC Offset Removal - - - MidiSetupWidget - - Device + + Remove DC Offset - MonstroInstrument - - - Osc 1 volume - - + lmms::gui::DualFilterControlDialog - - Osc 1 panning + + + FREQ - - Osc 1 coarse detune + + + Cutoff frequency - - Osc 1 fine detune left + + + RESO - - Osc 1 fine detune right + + + Resonance - - Osc 1 stereo phase offset + + + GAIN - - Osc 1 pulse width + + + Gain - - Osc 1 sync send on rise + + MIX - - Osc 1 sync send on fall + + Mix - - Osc 2 volume + + Filter 1 enabled - - Osc 2 panning + + Filter 2 enabled - - Osc 2 coarse detune + + Enable/disable filter 1 - - Osc 2 fine detune left + + Enable/disable filter 2 + + + lmms::gui::DynProcControlDialog - - Osc 2 fine detune right + + INPUT - - Osc 2 stereo phase offset + + Input gain: - - Osc 2 waveform + + OUTPUT - - Osc 2 sync hard + + Output gain: - - Osc 2 sync reverse + + ATTACK - - Osc 3 volume + + Peak attack time: - - Osc 3 panning + + RELEASE - - Osc 3 coarse detune + + Peak release time: - - Osc 3 Stereo phase offset + + + Reset wavegraph - - Osc 3 sub-oscillator mix + + + Smooth wavegraph - - Osc 3 waveform 1 + + + Increase wavegraph amplitude by 1 dB - - Osc 3 waveform 2 + + + Decrease wavegraph amplitude by 1 dB - - Osc 3 sync hard + + Stereo mode: maximum - - Osc 3 Sync reverse + + Process based on the maximum of both stereo channels - - LFO 1 waveform + + Stereo mode: average - - LFO 1 attack + + Process based on the average of both stereo channels - - LFO 1 rate + + Stereo mode: unlinked - - LFO 1 phase + + Process each stereo channel independently + + + lmms::gui::Editor - - LFO 2 waveform + + Transport controls - - LFO 2 attack + + Play (Space) - - LFO 2 rate + + Stop (Space) - - LFO 2 phase + + Record - - Env 1 pre-delay + + Record while playing - - Env 1 attack + + Toggle Step Recording + + + lmms::gui::EffectRackView - - Env 1 hold + + EFFECTS CHAIN - - Env 1 decay + + Add effect + + + lmms::gui::EffectSelectDialog - - Env 1 sustain + + Add effect - - Env 1 release + + + Name - - Env 1 slope + + Type - - Env 2 pre-delay + + All - - Env 2 attack + + Search - - Env 2 hold + + Description - - Env 2 decay + + Author + + + lmms::gui::EffectView - - Env 2 sustain + + On/Off - - Env 2 release + + W/D - - Env 2 slope + + Wet Level: - - Osc 2+3 modulation + + DECAY - - Selected view + + Time: - - Osc 1 - Vol env 1 + + GATE - - Osc 1 - Vol env 2 + + Gate: - - Osc 1 - Vol LFO 1 + + Controls - - Osc 1 - Vol LFO 2 + + Move &up - - Osc 2 - Vol env 1 + + Move &down - - Osc 2 - Vol env 2 + + &Remove this plugin + + + lmms::gui::EnvelopeAndLfoView - - Osc 2 - Vol LFO 1 + + + AMT - - Osc 2 - Vol LFO 2 + + + Modulation amount: - - Osc 3 - Vol env 1 + + + DEL - - Osc 3 - Vol env 2 + + + Pre-delay: - - Osc 3 - Vol LFO 1 + + + ATT - - Osc 3 - Vol LFO 2 + + + Attack: - - Osc 1 - Phs env 1 + + HOLD - - Osc 1 - Phs env 2 + + Hold: - - Osc 1 - Phs LFO 1 + + DEC - - Osc 1 - Phs LFO 2 + + Decay: - - Osc 2 - Phs env 1 + + SUST - - Osc 2 - Phs env 2 + + Sustain: - - Osc 2 - Phs LFO 1 + + REL - - Osc 2 - Phs LFO 2 + + Release: - - Osc 3 - Phs env 1 + + SPD - - Osc 3 - Phs env 2 + + Frequency: - - Osc 3 - Phs LFO 1 + + FREQ x 100 - - Osc 3 - Phs LFO 2 + + Multiply LFO frequency by 100 - - Osc 1 - Pit env 1 + + MOD ENV AMOUNT - - Osc 1 - Pit env 2 + + Control envelope amount by this LFO - - Osc 1 - Pit LFO 1 + + Hint - - Osc 1 - Pit LFO 2 + + Drag and drop a sample into this window. + + + lmms::gui::EnvelopeGraph - - Osc 2 - Pit env 1 + + Scaling - - Osc 2 - Pit env 2 + + Dynamic - - Osc 2 - Pit LFO 1 + + Uses absolute spacings but switches to relative spacing if it's running out of space - - Osc 2 - Pit LFO 2 + + Absolute - - Osc 3 - Pit env 1 + + Provides enough potential space for each segment but does not scale - - Osc 3 - Pit env 2 + + Relative - - Osc 3 - Pit LFO 1 + + Always uses all of the available space to display the envelope graph + + + lmms::gui::EqControlsDialog - - Osc 3 - Pit LFO 2 + + HP - - Osc 1 - PW env 1 + + Low-shelf - - Osc 1 - PW env 2 + + Peak 1 - - Osc 1 - PW LFO 1 + + Peak 2 - - Osc 1 - PW LFO 2 + + Peak 3 - - Osc 3 - Sub env 1 + + Peak 4 - - Osc 3 - Sub env 2 + + High-shelf - - Osc 3 - Sub LFO 1 + + LP - - Osc 3 - Sub LFO 2 + + Input gain - - - Sine wave + + + + Gain - - Bandlimited Triangle wave + + Output gain - - Bandlimited Saw wave + + Bandwidth: - - Bandlimited Ramp wave + + Octave - - Bandlimited Square wave + + Resonance: - - Bandlimited Moog saw wave + + Frequency: - - - Soft square wave + + LP group - - Absolute sine wave + + HP group + + + lmms::gui::EqHandle - - - Exponential wave + + Reso: - - White noise + + BW: - - Digital Triangle wave + + + Freq: + + + lmms::gui::ExportProjectDialog - - Digital Saw wave + + Could not open file - - Digital Ramp wave + + Could not open file %1 for writing. +Please make sure you have write permission to the file and the directory containing the file and try again! - - Digital Square wave + + Export project to %1 - - Digital Moog saw wave + + ( Fastest - biggest ) - - Triangle wave + + ( Slowest - smallest ) - - Saw wave + + Error - - Ramp wave + + Error while determining file-encoder device. Please try to choose a different output format. - - Square wave + + Rendering: %1% + + + lmms::gui::Fader - - Moog saw wave + + Set value - - Abs. sine wave + + Please enter a new value between %1 and %2: - - Random + + Volume: %1 dBFS + + + + + lmms::gui::FileBrowser + + + Browser - - Random smooth + + Search - - - MonstroView - - Operators view + + Refresh list - - Matrix view + + User content - - - - Volume - ווליום + + Factory content + - - - - Panning + + Hidden content + + + lmms::gui::FileBrowserTreeWidget - - - - Coarse detune + + Send to active instrument-track - - - - semitones + + Open containing folder - - - Fine tune left + + Song Editor - - - - - cents + + Pattern Editor - - - Fine tune right + + Send to new AudioFileProcessor instance - - - - Stereo phase offset + + Send to new instrument track - - - - - - deg + + (%2Enter) - - Pulse width + + Send to new sample track (Shift + Enter) - - Send sync on pulse rise + + Loading sample - - Send sync on pulse fall + + Please wait, loading sample for preview... - - Hard sync oscillator 2 + + Error - - Reverse sync oscillator 2 + + %1 does not appear to be a valid %2 file - - Sub-osc mix + + --- Factory files --- + + + lmms::gui::FileDialog - - Hard sync oscillator 3 + + %1 files - - Reverse sync oscillator 3 + + All audio files - - - - - Attack + + Other files + + + lmms::gui::FlangerControlsDialog - - - Rate + + DELAY - - - Phase + + Delay time: - - - Pre-delay + + RATE - - - Hold + + Period: - - - Decay + + AMNT - - - Sustain + + Amount: - - - Release + + PHASE - - - Slope + + Phase: - - Mix osc 2 with osc 3 + + FDBK - - Modulate amplitude of osc 3 by osc 2 + + Feedback amount: - - Modulate frequency of osc 3 by osc 2 + + NOISE - - Modulate phase of osc 3 by osc 2 + + White noise amount: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Modulation amount + + Invert - MultitapEchoControlDialog + lmms::gui::FloatModelEditorBase - - Length + + Set linear - - Step length: + + Set logarithmic - - Dry + + + Set value - - Dry gain: + + Please enter a new value between -96.0 dBFS and 6.0 dBFS: - - Stages + + Please enter a new value between %1 and %2: + + + lmms::gui::FreeBoyInstrumentView - - Low-pass stages: + + Sweep time: - - Swap inputs + + Sweep time - - Swap left and right input channels for reflections + + Sweep rate shift amount: - - - NesInstrument - - Channel 1 coarse detune + + Sweep rate shift amount - - Channel 1 volume + + + Wave pattern duty cycle: - - Channel 1 envelope length + + + Wave pattern duty cycle - - Channel 1 duty cycle + + Square channel 1 volume: - - Channel 1 sweep amount + + Square channel 1 volume - - Channel 1 sweep rate + + + + Length of each step in sweep: - - Channel 2 Coarse detune + + + + Length of each step in sweep - - Channel 2 Volume + + Square channel 2 volume: - - Channel 2 envelope length + + Square channel 2 volume - - Channel 2 duty cycle + + Wave pattern channel volume: - - Channel 2 sweep amount + + Wave pattern channel volume - - Channel 2 sweep rate + + Noise channel volume: - - Channel 3 coarse detune + + Noise channel volume - - Channel 3 volume + + SO1 volume (Right): - - Channel 4 volume + + SO1 volume (Right) - - Channel 4 envelope length + + SO2 volume (Left): - - Channel 4 noise frequency + + SO2 volume (Left) - - Channel 4 noise frequency sweep + + Treble: - - Master volume + + Treble - - Vibrato + + Bass: - - - NesInstrumentView - - - - - - Volume - ווליום - - - - - Coarse detune + + Bass - - - - Envelope length + + Sweep direction - - Enable channel 1 + + + + + + Volume sweep direction - - Enable envelope 1 + + Shift register width - - Enable envelope 1 loop + + Channel 1 to SO1 (Right) - - Enable sweep 1 + + Channel 2 to SO1 (Right) - - - Sweep amount + + Channel 3 to SO1 (Right) - - - Sweep rate + + Channel 4 to SO1 (Right) - - - 12.5% Duty cycle + + Channel 1 to SO2 (Left) - - - 25% Duty cycle + + Channel 2 to SO2 (Left) - - - 50% Duty cycle + + Channel 3 to SO2 (Left) - - - 75% Duty cycle + + Channel 4 to SO2 (Left) - - Enable channel 2 + + Wave pattern graph + + + lmms::gui::GigInstrumentView - - Enable envelope 2 + + + Open GIG file - - Enable envelope 2 loop + + Choose patch - - Enable sweep 2 + + Gain: - - Enable channel 3 + + GIG Files (*.gig) + + + lmms::gui::GranularPitchShifterControlDialog - - Noise Frequency + + Grain Size: - - Frequency sweep + + Spray: - - Enable channel 4 + + Jitter: - - Enable envelope 4 + + Twitch: - - Enable envelope 4 loop + + Spray Stereo Spread: - - Quantize noise frequency when using note frequency + + Grain Shape: - - Use note frequency for noise + + Fade Length: - - Noise mode + + Feedback: - - Master volume + + Minimum Allowed Latency: - - Vibrato + + Density: - - - OpulenzInstrument - - Patch + + Glide: - - Op 1 attack + + + Pitch - - Op 1 decay + + + Pitch Stereo Spread - - Op 1 sustain + + Open help window - - Op 1 release + + + Prefilter + + + lmms::gui::GuiApplication - - Op 1 level + + Working directory - - Op 1 level scaling + + The LMMS working directory %1 does not exist. Create it now? You can change the directory later via Edit -> Settings. - - Op 1 frequency multiplier + + Preparing UI - - Op 1 feedback + + Preparing song editor - - Op 1 key scaling rate + + Preparing mixer - - Op 1 percussive envelope + + Preparing controller rack - - Op 1 tremolo + + Preparing project notes - - Op 1 vibrato + + Preparing microtuner - - Op 1 waveform + + Preparing pattern editor - - Op 2 attack + + Preparing piano roll - - Op 2 decay + + Preparing automation editor + + + lmms::gui::InstrumentFunctionArpeggioView - - Op 2 sustain + + ARPEGGIO - - Op 2 release + + RANGE - - Op 2 level + + Arpeggio range: - - Op 2 level scaling + + octave(s) - - Op 2 frequency multiplier + + REP - - Op 2 key scaling rate + + Note repeats: - - Op 2 percussive envelope + + time(s) - - Op 2 tremolo + + CYCLE - - Op 2 vibrato + + Cycle notes: - - Op 2 waveform + + note(s) - - FM + + SKIP - - Vibrato depth + + Skip rate: - - Tremolo depth + + + + % - - - OpulenzInstrumentView - - - Attack + + MISS - - - Decay + + Miss rate: - - - Release + + TIME - - - Frequency multiplier + + Arpeggio time: - - - OscillatorObject - - Osc %1 waveform + + ms - - Osc %1 harmonic + + GATE - - - Osc %1 volume + + Arpeggio gate: - - - Osc %1 panning + + Chord: - - - Osc %1 fine detuning left + + Direction: - - Osc %1 coarse detuning + + Mode: + + + lmms::gui::InstrumentFunctionNoteStackingView - - Osc %1 fine detuning right + + STACKING - - Osc %1 phase-offset + + Chord: - - Osc %1 stereo phase-detuning + + RANGE - - Osc %1 wave shape + + Chord range: - - Modulation type %1 + + octave(s) - Oscilloscope + lmms::gui::InstrumentMidiIOView - - Oscilloscope + + ENABLE MIDI INPUT - - Click to enable + + + CHAN + This string must be be short, its width must be less than * width of LCD spin-box of two digits - - - PatchesDialog - - Qsynth: Channel Preset + + + VELOC + This string must be be short, its width must be less than * width of LCD spin-box of three digits - - Bank selector + + ENABLE MIDI OUTPUT - - Bank + + PROG + This string must be be short, its width must be less than the * width of LCD spin-box of three digits - - Program selector + + NOTE + This string must be be short, its width must be less than * width of LCD spin-box of three digits - - Patch + + MIDI devices to receive MIDI events from - - Name + + MIDI devices to send MIDI events to - - OK + + VELOCITY MAPPING - - Cancel + + MIDI VELOCITY + + + + + MIDI notes at this velocity correspond to 100% note velocity. - PatmanView + lmms::gui::InstrumentSoundShapingView - - Open patch + + TARGET - - Loop + + FILTER - - Loop mode + + FREQ - - Tune + + Cutoff frequency: - - Tune mode + + Hz - - No file selected + + Q/RESO - - Open patch file + + Q/Resonance: - - Patch-Files (*.pat) + + Envelopes, LFOs and filters are not supported by the current instrument. - MidiClipView + lmms::gui::InstrumentTrackView - - Open in piano-roll + + Mixer channel - - Set as ghost in piano-roll + + Volume - - Clear all notes + + Volume: - - Reset name + + VOL - - Change name + + Panning - - Add steps + + Panning: - - Remove steps + + PAN - - Clone Steps + + MIDI - - - PeakController - - Peak Controller + + Input - - Peak Controller Bug + + Output - - Due to a bug in older version of LMMS, the peak controllers may not be connect properly. Please ensure that peak controllers are connected properly and re-save this file. Sorry for any inconvenience caused. + + Open/Close MIDI CC Rack + + + + + %1: %2 - PeakControllerDialog + lmms::gui::InstrumentTrackWindow - - PEAK + + Volume - - LFO Controller + + Volume: + + + + + VOL + + + + + Panning - - - PeakControllerEffectControlDialog - - BASE + + Panning: - - Base: + + PAN - - AMNT + + Pitch - - Modulation amount: + + Pitch: - - MULT + + cents - - Amount multiplicator: + + PITCH - - ATCK + + Pitch range (semitones) - - Attack: + + RANGE - - DCAY + + Mixer channel - - Release: + + CHANNEL - - TRSH + + Save current instrument track settings in a preset file - - Treshold: + + SAVE - - Mute output + + Envelope, filter & LFO - - Absolute value + + Chord stacking & arpeggio - - - PeakControllerEffectControls - - Base value + + Effects - - Modulation amount + + MIDI - - Attack + + Tuning and transposition - - Release + + Save preset - - Treshold + + XML preset file (*.xpf) - - Mute output + + Plugin + + + lmms::gui::InstrumentTuningView - - Absolute value + + GLOBAL TRANSPOSITION - - Amount multiplicator + + Enables the use of global transposition - - - PianoRoll - - Note Velocity + + Microtuner is not available for MIDI-based instruments. - - Note Panning + + MICROTUNER - - Mark/unmark current semitone + + Active scale: - - Mark/unmark all corresponding octave semitones + + + Edit scales and keymaps - - Mark current scale + + Active keymap: - - Mark current chord + + Import note ranges from keymap - - Unmark all + + When enabled, the first, last and base notes of this instrument will be overwritten with values specified by the selected keymap. + + + lmms::gui::KickerInstrumentView - - Select all notes on this key + + Start frequency: - - Note lock + + End frequency: - - Last note + + Frequency slope: - - No key + + Gain: - - No scale + + Envelope length: - - No chord + + Envelope slope: - - Nudge + + Click: - - Snap + + Noise: - - Velocity: %1% + + Start distortion: - - Panning: %1% left + + End distortion: + + + lmms::gui::LOMMControlDialog - - Panning: %1% right + + Depth: - - Panning: center + + Compression amount for all bands - - Glue notes failed + + Time: - - Please select notes to glue first. + + Attack/release scaling for all bands - - Please open a clip by double-clicking on it! + + Input Volume: - - - Please enter a new value between %1 and %2: + + Input volume - - - PianoRollWindow - - Play/pause current clip (Space) + + Output Volume: - - Record notes from MIDI-device/channel-piano + + Output volume - - Record notes from MIDI-device/channel-piano while playing song or BB track + + Upward Depth: - - Record notes from MIDI-device/channel-piano, one step at the time + + Upward compression amount for all bands - - Stop playing of current clip (Space) + + Downward Depth: - - Edit actions + + Downward compression amount for all bands - - Draw mode (Shift+D) + + High/Mid Crossover - - Erase mode (Shift+E) + + Mid/Low Crossover - - Select mode (Shift+S) + + High/mid band split - - Pitch Bend mode (Shift+T) + + Mid/low band split - - Quantize + + Enable High Band - - Quantize positions + + Enable Mid Band - - Quantize lengths + + Enable Low Band - - File actions + + High Input Volume: - - Import clip + + Input volume for high band - - - Export clip + + Mid Input Volume: - - Copy paste controls + + Input volume for mid band - - Cut (%1+X) + + Low Input Volume: - - Copy (%1+C) + + Input volume for low band - - Paste (%1+V) + + High Output Volume: - - Timeline controls + + Output volume for high band - - Glue + + Mid Output Volume: - - Knife + + Output volume for mid band - - Fill + + Low Output Volume: - - Cut overlaps + + Output volume for low band - - Min length as last + + Above Threshold High - - Max length as last + + Downward compression threshold for high band - - Zoom and note controls + + Above Threshold Mid - - Horizontal zooming + + Downward compression threshold for mid band - - Vertical zooming + + Above Threshold Low - - Quantization + + Downward compression threshold for low band - - Note length + + Above Ratio High - - Key + + Downward compression ratio for high band - - Scale + + Above Ratio Mid - - Chord + + Downward compression ratio for mid band - - Snap mode + + Above Ratio Low - - Clear ghost notes + + Downward compression ratio for low band - - - Piano-Roll - %1 + + Below Threshold High - - - Piano-Roll - no clip + + Upward compression threshold for high band - - - XML clip file (*.xpt *.xptz) + + Below Threshold Mid - - Export clip success + + Upward compression threshold for mid band - - Clip saved to %1 + + Below Threshold Low - - Import clip. + + Upward compression threshold for low band - - You are about to import a clip, this will overwrite your current clip. Do you want to continue? + + Below Ratio High - - Open clip + + Upward compression ratio for high band - - Import clip success + + Below Ratio Mid - - Imported clip %1! + + Upward compression ratio for mid band - - - PianoView - - Base note + + Below Ratio Low - - First note + + Upward compression ratio for low band - - Last note + + Attack High: - - - Plugin - - Plugin not found + + Attack time for high band - - The plugin "%1" wasn't found or could not be loaded! -Reason: "%2" + + Attack Mid: - - Error while loading plugin + + Attack time for mid band - - Failed to load plugin "%1"! + + Attack Low: - - - PluginBrowser - - Instrument Plugins + + Attack time for low band - - Instrument browser + + Release High: - - Drag an instrument into either the Song-Editor, the Beat+Bassline Editor or into an existing instrument track. + + Release time for high band - - no description + + Release Mid: - - A native amplifier plugin + + Release time for mid band - - Simple sampler with various settings for using samples (e.g. drums) in an instrument-track + + Release Low: - - Boost your bass the fast and simple way + + Release time for low band - - Customizable wavetable synthesizer + + RMS Time: - - An oversampling bitcrusher + + RMS size for sidechain signal (set to 0 for Peak mode) - - Carla Patchbay Instrument + + Knee: - - Carla Rack Instrument + + Knee size for all compressors - - A dynamic range compressor. + + Range: - - A 4-band Crossover Equalizer + + Maximum gain increase for all bands - - A native delay plugin + + Balance: - - A Dual filter plugin + + Bias input volume towards one channel - - plugin for processing dynamics in a flexible way + + Scale output volume with Depth - - A native eq plugin + + Scale output volume with Depth parameter - - A native flanger plugin + + Stereo Link - - Emulation of GameBoy (TM) APU + + Apply same gain change to both channels - - Player for GIG files + + Auto Time: - - Filter for importing Hydrogen files into LMMS + + Speed up attack and release times when transients occur - - Versatile drum synthesizer + + Mix: - - List installed LADSPA plugins + + Wet/Dry of all bands - - plugin for using arbitrary LADSPA-effects inside LMMS. + + Feedback - - Incomplete monophonic imitation TB-303 + + Use output as sidechain signal instead of input - - plugin for using arbitrary LV2-effects inside LMMS. + + Mid/Side - - plugin for using arbitrary LV2 instruments inside LMMS. + + Compress mid/side channels instead of left/right - - Filter for exporting MIDI-files from LMMS + + + Suppress upward compression for side band - - Filter for importing MIDI-files into LMMS + + + Lookahead - - Monstrous 3-oscillator synth with modulation matrix + + Lookahead length - - A multitap echo delay plugin + + Clear all parameters + + + lmms::gui::LadspaBrowserView - - A NES-like synthesizer + + + Available Effects - - 2-operator FM Synth + + + Unavailable Effects - - Additive Synthesizer for organ-like sounds + + + Instruments - - GUS-compatible patch instrument + + + Analysis Tools - - Plugin for controlling knobs with sound peaks + + + Don't know - - Reverb algorithm by Sean Costello + + Type: + + + lmms::gui::LadspaControlDialog - - Player for SoundFont files + + Link Channels - - LMMS port of sfxr + + Channel + + + lmms::gui::LadspaControlView - - Emulation of the MOS6581 and MOS8580 SID. -This chip was used in the Commodore 64 computer. + + Link channels - - A graphical spectrum analyzer. + + Value: + + + lmms::gui::LadspaDescription - - Plugin for enhancing stereo separation of a stereo input file + + Plugins - - Plugin for freely manipulating stereo output + + Description - - Tuneful things to bang on + + Name: - - Three powerful oscillators you can modulate in several ways + + Maker: - - A stereo field visualizer. + + Copyright: - - VST-host for using VST(i)-plugins within LMMS + + Requires Real Time: - - Vibrating string modeler + + + + Yes - - plugin for using arbitrary VST effects inside LMMS. + + + + No - - 4-oscillator modulatable wavetable synth + + Real Time Capable: - - plugin for waveshaping + + In Place Broken: - - Mathematical expression parser + + Channels In: - - Embedded ZynAddSubFX + + Channels Out: - PluginDatabaseW - - - Carla - Add New - - + lmms::gui::LadspaMatrixControlDialog - - Format + + Link Channels - - Internal + + Link - - LADSPA + + Channel %1 - - DSSI + + Link channels + + + lmms::gui::LadspaPortDialog - - LV2 + + Ports - - VST2 + + Name - - VST3 + + Rate - - AU + + Direction - - Sound Kits + + Type - - Type + + Min < Default < Max - - Effects + + Logarithmic - - Instruments + + SR Dependent - - MIDI Plugins + + Audio - - Other/Misc + + Control - - Architecture + + Input - - Native + + Output - - Bridged + + Toggled - - Bridged (Wine) + + Integer - - Requirements + + Float - - With Custom GUI + + + Yes + + + lmms::gui::Lb302SynthView - - With CV Ports + + Cutoff Freq: - - Real-time safe only + + Resonance: - - Stereo only + + Env Mod: - - With Inline Display + + Decay: - - Favorites only + + 303-es-que, 24dB/octave, 3 pole filter - - (Number of Plugins go here) + + Slide Decay: - - &Add Plugin + + DIST: - - Cancel + + Saw wave - - Refresh + + Click here for a saw-wave. - - Reset filters + + Triangle wave - - - - - - - - - - - - - - - - - TextLabel + + Click here for a triangle-wave. - - Format: + + Square wave - - Architecture: + + Click here for a square-wave. - - Type: + + Rounded square wave - - MIDI Ins: + + Click here for a square-wave with a rounded end. - - Audio Ins: + + Moog wave - - CV Outs: + + Click here for a moog-like wave. - - MIDI Outs: + + Sine wave - - Parameter Ins: + + Click for a sine-wave. - - Parameter Outs: + + + White noise wave - - Audio Outs: + + Click here for an exponential wave. - - CV Ins: + + Click here for white-noise. - - UniqueID: + + Bandlimited saw wave - - Has Inline Display: + + Click here for bandlimited saw wave. - - Has Custom GUI: + + Bandlimited square wave - - Is Synth: + + Click here for bandlimited square wave. - - Is Bridged: + + Bandlimited triangle wave - - Information + + Click here for bandlimited triangle wave. - - Name + + Bandlimited moog saw wave - - Label/URI + + Click here for bandlimited moog saw wave. + + + lmms::gui::LcdFloatSpinBox - - Maker + + Set value - - Binary/Filename + + Please enter a new value between %1 and %2: + + + lmms::gui::LcdSpinBox - - Focus Text Search + + Set value - - Ctrl+F + + Please enter a new value between %1 and %2: - PluginEdit + lmms::gui::LeftRightNav - - Plugin Editor + + + + Previous - - Edit + + + + Next - - Control + + Previous (%1) - - MIDI Control Channel: + + Next (%1) + + + lmms::gui::LfoControllerDialog - - N + + LFO - - Output dry/wet (100%) + + BASE - - Output volume (100%) + + Base: - - Balance Left (0%) + + FREQ - - - Balance Right (0%) + + LFO frequency: - - Use Balance + + AMNT - - Use Panning + + Modulation amount: - - Settings + + PHS - - Use Chunks + + Phase offset: - - Audio: + + degrees - - Fixed-Size Buffer + + Sine wave - - Force Stereo (needs reload) + + Triangle wave - - MIDI: + + Saw wave - - Map Program Changes + + Square wave - - Send Bank/Program Changes + + Moog saw wave - - Send Control Changes + + Exponential wave - - Send Channel Pressure + + White noise - - Send Note Aftertouch + + User-defined shape. +Double click to pick a file. - - Send Pitchbend + + Multiply modulation frequency by 1 - - Send All Sound/Notes Off + + Multiply modulation frequency by 100 - - -Plugin Name - + + Divide modulation frequency by 100 + + + lmms::gui::LfoGraph - - Program: + + %1 Hz + + + lmms::gui::MainWindow - - MIDI Program: + + Configuration file - - Save State + + Error while parsing configuration file at line %1:%2: %3 - - Load State + + Could not open file - - Information + + Could not open file %1 for writing. +Please make sure you have write permission to the file and the directory containing the file and try again! - - Label/URI: + + Project recovery - - Name: + + There is a recovery file present. It looks like the last session did not end properly or another instance of LMMS is already running. Do you want to recover the project of this session? - - Type: + + + Recover - - Maker: + + Recover the file. Please don't run multiple instances of LMMS when you do this. - - Copyright: + + + Discard - - Unique ID: + + Launch a default session and delete the restored files. This is not reversible. - - - PluginFactory - - Plugin not found. + + Version %1 - - LMMS plugin %1 does not have a plugin descriptor named %2! + + Preparing plugin browser - - - - PluginParameter + - - Form + + Preparing file browsers - - Parameter Name + + My Projects - - ... + + My Samples - - - PluginRefreshW - - Carla - Refresh + + My Presets - - Search for new... + + My Home - - LADSPA + + Root Directory - - DSSI + + Volumes - - LV2 + + My Computer - - VST2 + + Loading background picture - - VST3 + + &File - - AU + + &New - - SF2/3 + + &Open... - - SFZ + + &Save - - Native + + Save &As... - - POSIX 32bit + + Save as New &Version - - POSIX 64bit + + Save as default template - - Windows 32bit + + Import... - - Windows 64bit + + E&xport... - - Available tools: + + E&xport Tracks... - - python3-rdflib (LADSPA-RDF support) + + Export &MIDI... - - carla-discovery-win64 + + &Quit - - carla-discovery-native + + &Edit - - carla-discovery-posix32 + + Undo - - carla-discovery-posix64 + + Redo - - carla-discovery-win32 + + Scales and keymaps - - Options: + + Settings - - Carla will run small processing checks when scanning the plugins (to make sure they won't crash). -You can disable these checks to get a faster scanning time (at your own risk). + + &View - - Run processing checks while scanning + + &Tools - - Press 'Scan' to begin the search + + &Help - - Scan + + Online Help - - >> Skip + + Help - - Close - סגור + + About + - - - PluginWidget - - - - - - Frame + + Create new project - - Enable + + Create new project from template - - On/Off + + Open existing project - - - - - PluginName + + Recently opened projects - - MIDI + + Save current project - - AUDIO IN + + Export current project - - AUDIO OUT + + Metronome - - GUI + + + Song Editor - - Edit + + + Pattern Editor - - Remove + + + Piano Roll - - Plugin Name + + + Automation Editor - - Preset: + + + Mixer - - - ProjectNotes - - Project Notes + + Show/hide controller rack - - Enter project notes here + + Show/hide project notes - - Edit Actions + + Untitled - - &Undo + + Recover session. Please save your work! - - %1+Z + + LMMS %1 - - &Redo + + Recovered project not saved - - %1+Y + + This project was recovered from the previous session. It is currently unsaved and will be lost if you don't save it. Do you want to save it now? - - &Copy + + Project not saved - - %1+C + + The current project was modified since last saving. Do you want to save it now? - - Cu&t + + Open Project - - %1+X + + LMMS (*.mmp *.mmpz) - - &Paste + + Save Project - - %1+V + + LMMS Project - - Format Actions + + LMMS Project Template - - &Bold + + Save project template - - %1+B + + Overwrite default template? - - &Italic + + This will overwrite your current default template. - - %1+I + + Help not available - - &Underline + + Currently there's no help available in LMMS. +Please visit http://lmms.sf.net/wiki for documentation on LMMS. - - %1+U + + Controller Rack - - &Left + + Project Notes - - %1+L + + Fullscreen - - C&enter + + Volume as dBFS - - %1+E + + Smooth scroll - - &Right + + Enable note labels in piano roll - - %1+R + + MIDI File (*.mid) - - &Justify + + + untitled - - %1+J + + + Select file for project-export... - - &Color... + + Select directory for writing exported tracks... - - - ProjectRenderer - - WAV (*.wav) + + Save project - - FLAC (*.flac) + + Project saved - - OGG (*.ogg) + + The project %1 is now saved. - - MP3 (*.mp3) + + Project NOT saved. - - - QObject - - Reload Plugin + + The project %1 was not saved! - - Show GUI + + Import file - - Help + + MIDI sequences - - - QWidget - - - - - Name: + + Hydrogen projects - - URI: + + All file types + + + lmms::gui::MalletsInstrumentView - - - - Maker: + + Instrument - - - - Copyright: + + Spread - - - Requires Real Time: + + Spread: - - - - - - - Yes + + Random - - - - - - - No + + Random: - - - Real Time Capable: + + Missing files - - - In Place Broken: + + Your Stk-installation seems to be incomplete. Please make sure the full Stk-package is installed! - - - Channels In: + + Hardness - - - Channels Out: + + Hardness: - - File: %1 + + Position - - File: + + Position: - - - RecentProjectsMenu - - &Recently Opened Projects + + Vibrato gain - - - RenameDialog - - Rename... + + Vibrato gain: - - - ReverbSCControlDialog - - Input + + Vibrato frequency - - Input gain: + + Vibrato frequency: - - Size + + Stick mix - - Size: + + Stick mix: - - Color + + Modulator - - Color: + + Modulator: - - Output + + Crossfade - - Output gain: + + Crossfade: - - - ReverbSCControls - - Input gain + + LFO speed - - Size + + LFO speed: - - Color + + LFO depth - - Output gain + + LFO depth: - - - SaControls - - Pause + + ADSR - - Reference freeze + + ADSR: - - Waterfall + + Pressure - - Averaging + + Pressure: - - Stereo - סטריאו + + Speed + - - Peak hold + + Speed: + + + lmms::gui::ManageVSTEffectView - - Logarithmic frequency + + - VST parameter control - - Logarithmic amplitude + + VST sync - - Frequency range + + + Automated - - Amplitude range + + Close + + + lmms::gui::ManageVestigeInstrumentView - - FFT block size + + + - VST plugin control - - FFT window type + + VST Sync - - Peak envelope resolution + + + Automated - - Spectrum display resolution + + Close + + + lmms::gui::MeterDialog - - Peak decay multiplier + + + Meter Numerator - - Averaging weight + + Meter numerator - - Waterfall history size + + + Meter Denominator - - Waterfall gamma correction + + Meter denominator - - FFT window overlap + + TIME SIG + + + lmms::gui::MicrotunerConfig - - FFT zero padding + + Selected scale slot - - - Full (auto) + + Selected keymap slot - - - - Audible + + + First key - - Bass + + + Last key - - Mids + + + Middle key - - High + + + Base key - - Extended + + + + Base note frequency - - Loud + + Microtuner Configuration - - Silent + + Scale slot to edit: - - (High time res.) + + Scale description. Cannot start with "!" and cannot contain a newline character. - - (High freq. res.) + + + Load - - Rectangular (Off) + + + Save - - - Blackman-Harris (Default) + + Load scale definition from a file. - - Hamming + + Save scale definition to a file. - - Hanning + + Enter intervals on separate lines. Numbers containing a decimal point are treated as cents. +Other inputs are treated as integer ratios and must be in the form of 'a/b' or 'a'. +Unity (0.0 cents or ratio 1/1) is always present as a hidden first value; do not enter it manually. - - - SaControlsDialog - - Pause + + Apply scale changes - - Pause data acquisition + + Verify and apply changes made to the selected scale. To use the scale, select it in the settings of a supported instrument. - - Reference freeze + + Keymap slot to edit: - - Freeze current input as a reference / disable falloff in peak-hold mode. + + Keymap description. Cannot start with "!" and cannot contain a newline character. - - Waterfall + + Load key mapping definition from a file. - - Display real-time spectrogram + + Save key mapping definition to a file. - - Averaging + + Enter key mappings on separate lines. Each line assigns a scale degree to a MIDI key, +starting with the middle key and continuing in sequence. +The pattern repeats for keys outside of the explicit keymap range. +Multiple keys can be mapped to the same scale degree. +Enter 'x' if you wish to leave the key disabled / not mapped. - - Enable exponential moving average + + FIRST - - Stereo - סטריאו + + First MIDI key that will be mapped + - - Display stereo channels separately + + LAST - - Peak hold + + Last MIDI key that will be mapped - - Display envelope of peak values + + MIDDLE - - Logarithmic frequency + + First line in the keymap refers to this MIDI key - - Switch between logarithmic and linear frequency scale + + BASE N. - - - Frequency range + + Base note frequency will be assigned to this MIDI key - - Logarithmic amplitude + + BASE NOTE FREQ - - Switch between logarithmic and linear amplitude scale + + Apply keymap changes - - - Amplitude range + + Verify and apply changes made to the selected key mapping. To use the mapping, select it in the settings of a supported instrument. - - Envelope res. + + Scale parsing error - - Increase envelope resolution for better details, decrease for better GUI performance. + + Scale name cannot start with an exclamation mark - - - Draw at most + + Scale name cannot contain a new-line character - - envelope points per pixel + + Interval defined in cents cannot be converted to a number - - Spectrum res. + + Numerator of an interval defined as a ratio cannot be converted to a number - - Increase spectrum resolution for better details, decrease for better GUI performance. + + Denominator of an interval defined as a ratio cannot be converted to a number - - spectrum points per pixel + + Interval defined as a ratio cannot be negative - - Falloff factor + + Keymap parsing error - - Decrease to make peaks fall faster. + + Keymap name cannot start with an exclamation mark - - Multiply buffered value by + + Keymap name cannot contain a new-line character - - Averaging weight + + Scale degree cannot be converted to a whole number - - Decrease to make averaging slower and smoother. + + Scale degree cannot be negative - - New sample contributes + + Invalid keymap - - Waterfall height + + Base key is not mapped to any scale degree. No sound will be produced as there is no way to assign reference frequency to any note. - - Increase to get slower scrolling, decrease to see fast transitions better. Warning: medium CPU usage. + + Open scale - - Keep + + + Scala scale definition (*.scl) - - lines + + Scale load failure - - Waterfall gamma + + + Unable to open selected file. - - Decrease to see very weak signals, increase to get better contrast. + + Open keymap - - Gamma value: + + + Scala keymap definition (*.kbm) - - Window overlap + + Keymap load failure - - Increase to prevent missing fast transitions arriving near FFT window edges. Warning: high CPU usage. + + Save scale - - Each sample processed + + Scale save failure - - times + + + Unable to open selected file for writing. - - Zero padding + + Save keymap - - Increase to get smoother-looking spectrum. Warning: high CPU usage. + + Keymap save failure + + + lmms::gui::MidiCCRackView - - Processing buffer is + + + MIDI CC Rack - %1 - - steps larger than input block + + MIDI CC Knobs: - - Advanced settings + + CC %1 + + + lmms::gui::MidiClipView - - Access advanced settings + + + Transpose - - - FFT block size + + Semitones to transpose by: - - - FFT window type + + Open in piano-roll - - - SampleBuffer - - Fail to open file + + Set as ghost in piano-roll - - Audio files are limited to %1 MB in size and %2 minutes of playing time + + Set as ghost in automation editor - - Open audio file + + Clear all notes - - All Audio-Files (*.wav *.ogg *.ds *.flac *.spx *.voc *.aif *.aiff *.au *.raw) + + Reset name - - Wave-Files (*.wav) + + Change name - - OGG-Files (*.ogg) + + Add steps - - DrumSynth-Files (*.ds) + + Remove steps - - FLAC-Files (*.flac) + + Clone Steps + + + lmms::gui::MidiSetupWidget - - SPEEX-Files (*.spx) + + Device + + + lmms::gui::MixerChannelLcdSpinBox - - VOC-Files (*.voc) + + Assign to: - - AIFF-Files (*.aif *.aiff) + + New Mixer Channel - - AU-Files (*.au) + + Please enter a new value between %1 and %2: - - RAW-Files (*.raw) + + Set value - SampleClipView + lmms::gui::MixerChannelView - - Double-click to open sample + + Channel send amount - - Delete (middle mousebutton) + + Mute - - Delete selection (middle mousebutton) + + Mute this channel - - Cut + + Solo - - Cut selection + + Solo this channel - - Copy + + Fader %1 - - Copy selection + + Move &left - - Paste + + Move &right - - Mute/unmute (<%1> + middle click) + + Rename &channel - - Mute/unmute selection (<%1> + middle click) + + R&emove channel - - Reverse sample + + Remove &unused channels - - Set clip color + + Color - - Use track color + + Change - - - SampleTrack - - Volume - ווליום + + Reset + - - Panning + + Pick random - - Mixer channel + + This Mixer Channel is being used. +Are you sure you want to remove this channel? + +Warning: This operation can not be undone. - - - Sample track + + Confirm removal - - - SampleTrackView - - Track volume + + Don't ask again + + + lmms::gui::MixerView - - Channel volume: + + Mixer + + + lmms::gui::MonstroView - - VOL - ווליום + + Operators view + - - Panning + + Matrix view - - Panning: + + + + Volume - - PAN + + + + Panning - - Channel %1: %2 + + + + Coarse detune - - - SampleTrackWindow - - GENERAL SETTINGS + + + + semitones - - Sample volume + + + Fine tune left - - Volume: - ווליום: + + + + + cents + - - VOL - ווליום + + + Fine tune right + - - Panning + + + + Stereo phase offset - - Panning: + + + + + + deg - - PAN + + Pulse width - - Mixer channel + + Send sync on pulse rise - - CHANNEL + + Send sync on pulse fall - - - SaveOptionsWidget - - Discard MIDI connections + + Hard sync oscillator 2 - - Save As Project Bundle (with resources) + + Reverse sync oscillator 2 - - - SetupDialog - - Reset to default value + + Sub-osc mix - - Use built-in NaN handler + + Hard sync oscillator 3 - - Settings + + Reverse sync oscillator 3 - - - General + + + + + Attack - - Graphical user interface (GUI) + + + Rate - - Display volume as dBFS + + + Phase - - Enable tooltips + + + Pre-delay - - Enable master oscilloscope by default + + + Hold - - Enable all note labels in piano roll + + + Decay - - Enable compact track buttons + + + Sustain - - Enable one instrument-track-window mode + + + Release - - Show sidebar on the right-hand side + + + Slope - - Let sample previews continue when mouse is released + + Mix osc 2 with osc 3 - - Mute automation tracks during solo + + Modulate amplitude of osc 3 by osc 2 - - Show warning when deleting tracks + + Modulate frequency of osc 3 by osc 2 - - Projects + + Modulate phase of osc 3 by osc 2 - - Compress project files by default + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Modulation amount + + + lmms::gui::MultitapEchoControlDialog - - Create a backup file when saving a project + + Length - - Reopen last project on startup + + Step length: - - Language + + Dry - - - Performance + + Dry gain: - - Autosave + + Stages - - Enable autosave + + Low-pass stages: - - Allow autosave while playing + + Swap inputs - - User interface (UI) effects vs. performance + + Swap left and right input channels for reflections + + + lmms::gui::NesInstrumentView - - Smooth scroll in song editor + + + + + Volume - - Display playback cursor in AudioFileProcessor + + + + Coarse detune - - Plugins + + + + Envelope length - - VST plugins embedding: + + Enable channel 1 - - No embedding + + Enable envelope 1 - - Embed using Qt API + + Enable envelope 1 loop - - Embed using native Win32 API + + Enable sweep 1 - - Embed using XEmbed protocol + + + Sweep amount - - Keep plugin windows on top when not embedded + + + Sweep rate - - Sync VST plugins to host playback + + + 12.5% Duty cycle - - Keep effects running even without input + + + 25% Duty cycle - - - Audio + + + 50% Duty cycle - - Audio interface + + + 75% Duty cycle - - HQ mode for output audio device + + Enable channel 2 - - Buffer size + + Enable envelope 2 - - - MIDI + + Enable envelope 2 loop - - MIDI interface + + Enable sweep 2 - - Automatically assign MIDI controller to selected track + + Enable channel 3 - - LMMS working directory + + Noise Frequency - - VST plugins directory + + Frequency sweep - - LADSPA plugins directories + + Enable channel 4 - - SF2 directory + + Enable envelope 4 - - Default SF2 + + Enable envelope 4 loop - - GIG directory + + Quantize noise frequency when using note frequency - - Theme directory + + Use note frequency for noise - - Background artwork + + Noise mode - - Some changes require restarting. + + Master volume - - Autosave interval: %1 + + Vibrato + + + lmms::gui::OpulenzInstrumentView - - Choose the LMMS working directory + + + Attack - - Choose your VST plugins directory + + + Decay - - Choose your LADSPA plugins directory + + + Release - - Choose your default SF2 + + + Frequency multiplier + + + lmms::gui::OrganicInstrumentView - - Choose your theme directory + + Distortion: - - Choose your background picture + + Volume: - - - Paths + + Randomise - - OK + + + Osc %1 waveform: - - Cancel + + Osc %1 volume: - - Frames: %1 -Latency: %2 ms + + Osc %1 panning: - - Choose your GIG directory + + Osc %1 stereo detuning - - Choose your SF2 directory + + cents - - minutes + + Osc %1 harmonic: + + + lmms::gui::Oscilloscope - - minute + + Oscilloscope - - Disabled + + Click to enable - SidInstrument + lmms::gui::PatmanView - - Cutoff frequency + + Open patch - - Resonance + + Loop - - Filter type + + Loop mode - - Voice 3 off + + Tune - - Volume - ווליום - - - - Chip model + + Tune mode - - - SidInstrumentView - - Volume: - ווליום: + + No file selected + - - Resonance: + + Open patch file - - - Cutoff frequency: + + Patch-Files (*.pat) + + + lmms::gui::PatternClipView - - High-pass filter + + Open in Pattern Editor - - Band-pass filter + + Reset name - - Low-pass filter + + Change name + + + lmms::gui::PatternEditorWindow - - Voice 3 off + + Pattern Editor - - MOS6581 SID + + Play/pause current pattern (Space) - - MOS8580 SID + + Stop playback of current pattern (Space) - - - Attack: + + Pattern selector - - - Decay: + + Track and step actions - - Sustain: + + New pattern - - - Release: + + Clone pattern - - Pulse Width: + + Add sample-track - - Coarse: + + Add automation-track - - Pulse wave + + Remove steps - - Triangle wave + + Add steps - - Saw wave + + Clone Steps + + + lmms::gui::PeakControllerDialog - - Noise + + PEAK - - Sync + + LFO Controller + + + lmms::gui::PeakControllerEffectControlDialog - - Ring modulation + + BASE - - Filtered + + Base: - - Test + + AMNT - - Pulse width: + + Modulation amount: - - - SideBarWidget - - Close - סגור + + MULT + - - - Song - - Tempo + + Amount multiplicator: - - Master volume + + ATCK - - Master pitch + + Attack: - - Aborting project load + + DCAY - - Project file contains local paths to plugins, which could be used to run malicious code. + + Release: - - Can't load project: Project file contains local paths to plugins. + + TRSH - - LMMS Error report + + Treshold: - - (repeated %1 times) + + Mute output - - The following errors occurred while loading: + + Absolute value - SongEditor + lmms::gui::PeakIndicator - - Could not open file + + -inf + + + lmms::gui::PianoRoll - - Could not open file %1. You probably have no permissions to read this file. - Please make sure to have at least read permissions to the file and try again. + + Note Velocity - - Operation denied + + Note Panning - - A bundle folder with that name already eists on the selected path. Can't overwrite a project bundle. Please select a different name. + + Mark/unmark current semitone - - - - Error + + Mark/unmark all corresponding octave semitones - - Couldn't create bundle folder. + + Mark current scale - - Couldn't create resources folder. + + Mark current chord - - Failed to copy resources. + + Unmark all - - Could not write file + + Select all notes on this key - - Could not open %1 for writing. You probably are not permitted towrite to this file. Please make sure you have write-access to the file and try again. + + Note lock - - This %1 was created with LMMS %2 + + Last note - - Error in file + + No key - - The file %1 seems to contain errors and therefore can't be loaded. + + No scale - - Version difference + + No chord - - template + + Nudge - - project + + Snap - - Tempo + + Velocity: %1% - - TEMPO + + Panning: %1% left - - Tempo in BPM + + Panning: %1% right - - High quality mode + + Panning: center - - - - Master volume + + Glue notes failed - - - - Master pitch + + Please select notes to glue first. - - Value: %1% + + Please open a clip by double-clicking on it! - - Value: %1 semitones + + + Please enter a new value between %1 and %2: - SongEditorWindow + lmms::gui::PianoRollWindow - - Song-Editor + + Play/pause current clip (Space) - - Play song (Space) + + Record notes from MIDI-device/channel-piano - - Record samples from Audio-device + + Record notes from MIDI-device/channel-piano while playing song or pattern track - - Record samples from Audio-device while playing song or BB track + + Record notes from MIDI-device/channel-piano, one step at the time - - Stop song (Space) + + Stop playing of current clip (Space) - - Track actions + + Edit actions - - Add beat/bassline + + Draw mode (Shift+D) - - Add sample-track + + Erase mode (Shift+E) - - Add automation-track + + Select mode (Shift+S) - - Edit actions + + Pitch Bend mode (Shift+T) - - Draw mode + + Quantize - - Knife mode (split sample clips) + + Quantize positions - - Edit mode (select and move) + + Quantize lengths - - Timeline controls + + File actions - - Bar insert controls + + Import clip - - Insert bar + + + Export clip - - Remove bar + + Copy paste controls - - Zoom controls + + Cut (%1+X) - - Horizontal zooming + + Copy (%1+C) - - Snap controls + + Paste (%1+V) - - - Clip snapping size + + Timeline controls - - Toggle proportional snap on/off + + Glue - - Base snapping size + + Knife - - - StepRecorderWidget - - Hint + + Fill - - Move recording curser using <Left/Right> arrows + + Cut overlaps - - - SubWindow - - - Close - סגור - - - Maximize + + Min length as last - - Restore + + Max length as last - - - TabWidget - - - Settings for %1 + + Zoom and note controls - - - TemplatesMenu - - New from template + + Horizontal zooming - - - TempoSyncKnob - - - Tempo Sync + + Vertical zooming - - No Sync + + Quantization - - Eight beats + + Note length - - Whole note + + Key - - Half note + + Scale - - Quarter note + + Chord - - 8th note + + Snap mode - - 16th note + + Clear ghost notes - - 32nd note + + + Piano-Roll - %1 - - Custom... + + + Piano-Roll - no clip - - Custom + + + XML clip file (*.xpt *.xptz) - - Synced to Eight Beats + + Export clip success - - Synced to Whole Note + + Clip saved to %1 - - Synced to Half Note + + Import clip. - - Synced to Quarter Note + + You are about to import a clip, this will overwrite your current clip. Do you want to continue? - - Synced to 8th Note + + Open clip - - Synced to 16th Note + + Import clip success - - Synced to 32nd Note + + Imported clip %1! - TimeDisplayWidget + lmms::gui::PianoView - - Time units + + Base note + + + + + First note - - MIN + + Last note + + + lmms::gui::PluginBrowser - - SEC + + Instrument Plugins - - MSEC + + Instrument browser - - BAR + + Drag an instrument into either the Song Editor, the Pattern Editor or an existing instrument track. - - BEAT + + Search + + + lmms::gui::PluginDescWidget - - TICK + + Send to new instrument track - TimeLineWidget + lmms::gui::ProjectNotes - - Auto scrolling + + Project Notes - - Loop points + + Enter project notes here - - After stopping go back to beginning + + Edit Actions - - After stopping go back to position at which playing was started + + &Undo - - After stopping keep position + + %1+Z - - Hint + + &Redo - - Press <%1> to disable magnetic loop points. + + %1+Y - - - Track - - Mute + + &Copy - - Solo + + %1+C - - - TrackContainer - - Couldn't import file + + Cu&t - - Couldn't find a filter for importing file %1. -You should convert this file into a format supported by LMMS using another software. + + %1+X - - Couldn't open file + + &Paste - - Couldn't open file %1 for reading. -Please make sure you have read-permission to the file and the directory containing the file and try again! + + %1+V - - Loading project... + + Format Actions - - - Cancel + + &Bold - - - Please wait... + + %1+B - - Loading cancelled + + &Italic - - Project loading was cancelled. + + %1+I - - Loading Track %1 (%2/Total %3) + + &Underline - - Importing MIDI-file... + + %1+U - - - Clip - - Mute + + &Left - - - ClipView - - Current position + + %1+L - - Current length + + C&enter - - - %1:%2 (%3:%4 to %5:%6) + + %1+E - - Press <%1> and drag to make a copy. + + &Right - - Press <%1> for free resizing. + + %1+R - - Hint + + &Justify - - Delete (middle mousebutton) + + %1+J - - Delete selection (middle mousebutton) + + &Color... + + + lmms::gui::RecentProjectsMenu - - Cut + + &Recently Opened Projects + + + lmms::gui::RenameDialog - - Cut selection + + Rename... + + + lmms::gui::ReverbSCControlDialog - - Merge Selection + + Input - - Copy + + Input gain: - - Copy selection + + Size - - Paste + + Size: - - Mute/unmute (<%1> + middle click) + + Color - - Mute/unmute selection (<%1> + middle click) + + Color: - - Set clip color + + Output - - Use track color + + Output gain: - TrackContentWidget + lmms::gui::SaControlsDialog - - Paste + + Pause - - - TrackOperationsWidget - - Press <%1> while clicking on move-grip to begin a new drag'n'drop action. + + Pause data acquisition - - Actions + + Reference freeze - - - Mute + + Freeze current input as a reference / disable falloff in peak-hold mode. - - - Solo + + Waterfall - - After removing a track, it can not be recovered. Are you sure you want to remove track "%1"? + + Display real-time spectrogram - - Confirm removal + + Averaging - - Don't ask again + + Enable exponential moving average - - Clone this track + + Stereo - - Remove this track + + Display stereo channels separately - - Clear this track + + Peak hold - - Channel %1: %2 + + Display envelope of peak values - - Assign to new mixer Channel + + Logarithmic frequency - - Turn all recording on + + Switch between logarithmic and linear frequency scale - - Turn all recording off + + + Frequency range - - Change color + + Logarithmic amplitude - - Reset color to default + + Switch between logarithmic and linear amplitude scale - - Set random color + + + Amplitude range - - Clear clip colors + + + FFT block size - - - TripleOscillatorView - - Modulate phase of oscillator 1 by oscillator 2 + + + FFT window type - - Modulate amplitude of oscillator 1 by oscillator 2 + + Envelope res. - - Mix output of oscillators 1 & 2 + + Increase envelope resolution for better details, decrease for better GUI performance. - - Synchronize oscillator 1 with oscillator 2 + + Maximum number of envelope points drawn per pixel: - - Modulate frequency of oscillator 1 by oscillator 2 + + Spectrum res. - - Modulate phase of oscillator 2 by oscillator 3 + + Increase spectrum resolution for better details, decrease for better GUI performance. - - Modulate amplitude of oscillator 2 by oscillator 3 + + Maximum number of spectrum points drawn per pixel: - - Mix output of oscillators 2 & 3 + + Falloff factor - - Synchronize oscillator 2 with oscillator 3 + + Decrease to make peaks fall faster. - - Modulate frequency of oscillator 2 by oscillator 3 + + Multiply buffered value by - - Osc %1 volume: + + Averaging weight - - Osc %1 panning: + + Decrease to make averaging slower and smoother. - - Osc %1 coarse detuning: + + New sample contributes - - semitones + + Waterfall height - - Osc %1 fine detuning left: + + Increase to get slower scrolling, decrease to see fast transitions better. Warning: medium CPU usage. - - - cents + + Number of lines to keep: - - Osc %1 fine detuning right: + + Waterfall gamma - - Osc %1 phase-offset: + + Decrease to see very weak signals, increase to get better contrast. - - - degrees + + Gamma value: - - Osc %1 stereo phase-detuning: + + Window overlap - - Sine wave + + Increase to prevent missing fast transitions arriving near FFT window edges. Warning: high CPU usage. - - Triangle wave + + Number of times each sample is processed: - - Saw wave + + Zero padding - - Square wave + + Increase to get smoother-looking spectrum. Warning: high CPU usage. - - Moog-like saw wave + + Processing buffer is - - Exponential wave + + steps larger than input block - - White noise + + Advanced settings - - User-defined wave + + Access advanced settings - VecControls + lmms::gui::SampleClipView - - Display persistence amount + + Double-click to open sample - - Logarithmic scale + + Reverse sample - - High quality + + Set as ghost in automation editor - VecControlsDialog - - - HQ - - - - - Double the resolution and simulate continuous analog-like trace. - - + lmms::gui::SampleTrackView - - Log. scale - - - - - Display amplitude on logarithmic scale to better see small values. + + Mixer channel - - Persist. + + Track volume - - Trace persistence: higher amount means the trace will stay bright for longer time. + + Channel volume: - - Trace persistence + + VOL - - - VersionedSaveDialog - - Increment version number + + Panning - - Decrement version number + + Panning: - - Save Options + + PAN - - already exists. Do you want to replace it? + + %1: %2 - VestigeInstrumentView + lmms::gui::SampleTrackWindow - - - Open VST plugin + + Sample volume - - Control VST plugin from LMMS host + + Volume: - - Open VST plugin preset + + VOL - - Previous (-) + + Panning - - Save preset + + Panning: - - Next (+) + + PAN - - Show/hide GUI + + Mixer channel - - Turn off all notes + + CHANNEL + + + lmms::gui::SaveOptionsWidget - - DLL-files (*.dll) + + Discard MIDI connections - - EXE-files (*.exe) + + Save As Project Bundle (with resources) + + + lmms::gui::SetupDialog - - No VST plugin loaded + + Settings - - Preset + + + General - - by + + Graphical user interface (GUI) - - - VST plugin control + + Display volume as dBFS - - - VstEffectControlDialog - - Show/hide + + Enable tooltips - - Control VST plugin from LMMS host + + Enable master oscilloscope by default - - Open VST plugin preset + + Enable all note labels in piano roll - - Previous (-) + + Enable compact track buttons - - Next (+) + + Enable one instrument-track-window mode - - Save preset + + Show sidebar on the right-hand side - - - Effect by: + + Let sample previews continue when mouse is released - - &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> + + Mute automation tracks during solo - - - VstPlugin - - - The VST plugin %1 could not be loaded. + + Show warning when deleting tracks - - Open Preset + + Show warning when deleting a mixer channel that is in use - - - Vst Plugin Preset (*.fxp *.fxb) + + Dual-button - - : default + + Grab closest - - Save Preset + + Handles - - .fxp + + Loop edit mode - - .FXP + + Projects - - .FXB + + Compress project files by default - - .fxb + + Create a backup file when saving a project - - Loading plugin + + Reopen last project on startup - - Please wait while loading VST plugin... + + Language - - - WatsynInstrument - - Volume A1 + + + Performance - - Volume A2 + + Autosave - - Volume B1 + + Enable autosave - - Volume B2 + + Allow autosave while playing - - Panning A1 + + User interface (UI) effects vs. performance - - Panning A2 + + Smooth scroll in song editor - - Panning B1 + + Display playback cursor in AudioFileProcessor - - Panning B2 + + Plugins - - Freq. multiplier A1 + + VST plugins embedding: - - Freq. multiplier A2 + + No embedding - - Freq. multiplier B1 + + Embed using Qt API - - Freq. multiplier B2 + + Embed using native Win32 API - - Left detune A1 + + Embed using XEmbed protocol - - Left detune A2 + + Keep plugin windows on top when not embedded - - Left detune B1 + + Keep effects running even without input - - Left detune B2 + + + Audio - - Right detune A1 + + Audio interface - - Right detune A2 + + Buffer size - - Right detune B1 + + Reset to default value - - Right detune B2 + + + MIDI - - A-B Mix + + MIDI interface - - A-B Mix envelope amount + + Automatically assign MIDI controller to selected track - - A-B Mix envelope attack + + Behavior when recording - - A-B Mix envelope hold + + Auto-quantize notes in Piano Roll - - A-B Mix envelope decay + + If enabled, notes will be automatically quantized when recording them from a MIDI controller. If disabled, they are always recorded at the highest possible resolution. - - A1-B2 Crosstalk + + + Paths - - A2-A1 modulation + + LMMS working directory - - B2-B1 modulation + + VST plugins directory - - Selected graph + + LADSPA plugins directories - - - WatsynView - - - - - Volume - ווליום + + SF2 directory + - - - - - Panning + + Default SF2 - - - - - Freq. multiplier + + GIG directory - - - - - Left detune + + Theme directory - - - - - - - - - cents + + Background artwork - - - - - Right detune + + Some changes require restarting. - - A-B Mix + + OK - - Mix envelope amount + + Cancel - - Mix envelope attack + + minutes - - Mix envelope hold + + minute - - Mix envelope decay + + Disabled - - Crosstalk + + Autosave interval: %1 - - Select oscillator A1 + + The currently selected value is not a power of 2 (32, 64, 128, 256). Some plugins may not be available. - - Select oscillator A2 + + The currently selected value is less than or equal to 32. Some plugins may not be available. - - Select oscillator B1 + + Frames: %1 +Latency: %2 ms - - Select oscillator B2 + + Choose the LMMS working directory - - Mix output of A2 to A1 + + Choose your VST plugins directory - - Modulate amplitude of A1 by output of A2 + + Choose your LADSPA plugins directory - - Ring modulate A1 and A2 + + Choose your SF2 directory - - Modulate phase of A1 by output of A2 + + Choose your default SF2 - - Mix output of B2 to B1 + + Choose your GIG directory - - Modulate amplitude of B1 by output of B2 + + Choose your theme directory - - Ring modulate B1 and B2 + + Choose your background picture + + + lmms::gui::Sf2InstrumentView - - Modulate phase of B1 by output of B2 + + + Open SoundFont file - - - - - Draw your own waveform here by dragging your mouse on this graph. + + Choose patch - - Load waveform + + Gain: + + + + + Apply reverb (if supported) - - Load a waveform from a sample file + + Room size: - - Phase left + + Damping: - - Shift phase by -15 degrees + + Width: - - Phase right + + + Level: - - Shift phase by +15 degrees + + Apply chorus (if supported) - - - Normalize + + Voices: - - - Invert + + Speed: - - - Smooth + + Depth: - - - Sine wave + + SoundFont Files (*.sf2 *.sf3) + + + lmms::gui::SidInstrumentView - - - - Triangle wave + + Volume: - - Saw wave + + Resonance: - - - Square wave + + + Cutoff frequency: - - - Xpressive - - Selected graph + + High-pass filter - - A1 + + Band-pass filter - - A2 + + Low-pass filter - - A3 + + Voice 3 off - - W1 smoothing + + MOS6581 SID - - W2 smoothing + + MOS8580 SID - - W3 smoothing + + + Attack: - - Panning 1 + + + Decay: - - Panning 2 + + Sustain: - - Rel trans + + + Release: - - - XpressiveView - - Draw your own waveform here by dragging your mouse on this graph. + + Pulse Width: - - Select oscillator W1 + + Coarse: - - Select oscillator W2 + + Pulse wave - - Select oscillator W3 + + Triangle wave - - Select output O1 + + Saw wave - - Select output O2 + + Noise - - Open help window + + Sync - - - Sine wave + + Ring modulation - - - Moog-saw wave + + Filtered - - - Exponential wave + + Test - - - Saw wave + + Pulse width: + + + lmms::gui::SideBarWidget - - - User-defined wave + + Close + + + lmms::gui::SlicerTView - - - Triangle wave + + Slice snap - - - Square wave + + Set slice snapping for detection - - - White noise + + Sync sample - - WaveInterpolate + + Enable BPM sync - - ExpressionValid + + Original sample BPM - - General purpose 1: + + Threshold used for slicing - - General purpose 2: + + Fade Out per note in milliseconds - - General purpose 3: + + Copy midi pattern to clipboard - - O1 panning: + + Open sample selector - - O2 panning: + + Reset slices - - Release transition: + + Threshold - - Smoothness + + Fade Out - - - ZynAddSubFxInstrument - - Portamento + + Reset - - Filter frequency + + Midi - - Filter resonance + + BPM - - Bandwidth + + Snap + + + lmms::gui::SlicerTWaveform - - FM gain + + Click to load sample + + + lmms::gui::SongEditor - - Resonance center frequency + + Could not open file - - Resonance bandwidth + + Could not open file %1. You probably have no permissions to read this file. + Please make sure to have at least read permissions to the file and try again. - - Forward MIDI control change events + + Operation denied - - - ZynAddSubFxView - - Portamento: + + A bundle folder with that name already eists on the selected path. Can't overwrite a project bundle. Please select a different name. - - PORT + + + + Error - - Filter frequency: + + Couldn't create bundle folder. - - FREQ + + Couldn't create resources folder. - - Filter resonance: + + Failed to copy resources. - - RES + + + Could not write file - - Bandwidth: + + Could not open %1 for writing. You probably are not permitted to write to this file. Please make sure you have write-access to the file and try again. - - BW + + An unknown error has occurred and the file could not be saved. - - FM gain: + + Error in file - - FM GAIN + + The file %1 seems to contain errors and therefore can't be loaded. - - Resonance center frequency: + + template - - RES CF + + project - - Resonance bandwidth: + + Version difference - - RES BW + + This %1 was created with LMMS %2 - - Forward MIDI control changes + + Zoom - - Show GUI + + Tempo - - - AudioFileProcessor - - Amplify + + TEMPO - - Start of sample + + Tempo in BPM - - End of sample + + + + Master volume - - Loopback point + + + + Global transposition - - Reverse sample + + 1/%1 Bar - - Loop mode + + %1 Bars - - Stutter + + Value: %1% - - Interpolation mode + + Value: %1 keys + + + lmms::gui::SongEditorWindow - - None + + Song-Editor - - Linear + + Play song (Space) - - Sinc + + Record samples from Audio-device - - Sample not found: %1 + + Record samples from Audio-device while playing song or pattern track - - - BitInvader - - Sample length + + Stop song (Space) - - - BitInvaderView - - Sample length + + Track actions - - Draw your own waveform here by dragging your mouse on this graph. + + Add pattern-track - - - Sine wave + + Add sample-track - - - Triangle wave + + Add automation-track - - - Saw wave + + Edit actions - - - Square wave + + Draw mode - - - White noise + + Knife mode (split sample clips) - - - User-defined wave + + Edit mode (select and move) - - - Smooth waveform + + Timeline controls - - Interpolation + + Bar insert controls - - Normalize + + Insert bar - - - DynProcControlDialog - - INPUT + + Remove bar - - Input gain: + + Zoom controls - - OUTPUT + + + Zoom - - Output gain: + + Snap controls - - ATTACK + + + Clip snapping size - - Peak attack time: + + Toggle proportional snap on/off - - RELEASE + + Base snapping size + + + lmms::gui::StepRecorderWidget - - Peak release time: + + Hint - - - Reset wavegraph + + Move recording curser using <Left/Right> arrows + + + lmms::gui::StereoEnhancerControlDialog - - - Smooth wavegraph + + WIDTH - - - Increase wavegraph amplitude by 1 dB + + Width: + + + lmms::gui::StereoMatrixControlDialog - - - Decrease wavegraph amplitude by 1 dB + + Left to Left Vol: - - Stereo mode: maximum + + Left to Right Vol: - - Process based on the maximum of both stereo channels + + Right to Left Vol: - - Stereo mode: average + + Right to Right Vol: + + + lmms::gui::SubWindow - - Process based on the average of both stereo channels + + Close - - Stereo mode: unlinked + + Maximize - - Process each stereo channel independently + + Restore - DynProcControls + lmms::gui::TapTempoView - - Input gain + + 0 - - Output gain + + + Precision - - Attack time + + Display in high precision - - Release time + + 0.0 ms - - Stereo mode + + Mute metronome - - - graphModel - - Graph + + Mute - - - KickerInstrument - - Start frequency + + BPM in milliseconds - - End frequency + + 0 ms - - Length + + Frequency of BPM - - Start distortion + + 0.0000 hz - - End distortion + + Reset - - Gain + + Reset counter and sidebar information - - Envelope slope + + Sync - - Noise + + Sync with project tempo - - Click + + %1 ms - - Frequency slope + + %1 hz + + + lmms::gui::TemplatesMenu - - Start from note + + New from template + + + lmms::gui::TempoSyncBarModelEditor - - End to note + + + Tempo Sync - - - KickerInstrumentView - - Start frequency: + + No Sync - - End frequency: + + Eight beats - - Frequency slope: + + Whole note - - Gain: + + Half note - - Envelope length: + + Quarter note - - Envelope slope: + + 8th note - - Click: + + 16th note - - Noise: + + 32nd note - - Start distortion: + + Custom... - - End distortion: + + Custom - - - LadspaBrowserView - - - Available Effects + + Synced to Eight Beats - - - Unavailable Effects + + Synced to Whole Note - - - Instruments + + Synced to Half Note - - - Analysis Tools + + Synced to Quarter Note - - - Don't know + + Synced to 8th Note - - Type: + + Synced to 16th Note + + + + + Synced to 32nd Note - LadspaDescription + lmms::gui::TempoSyncKnob - - Plugins + + + Tempo Sync - - Description + + No Sync - - - LadspaPortDialog - - Ports + + Eight beats - - Name + + Whole note - - Rate + + Half note - - Direction + + Quarter note - - Type + + 8th note - - Min < Default < Max + + 16th note - - Logarithmic + + 32nd note - - SR Dependent + + Custom... - - Audio + + Custom - - Control + + Synced to Eight Beats - - Input + + Synced to Whole Note - - Output + + Synced to Half Note - - Toggled + + Synced to Quarter Note - - Integer + + Synced to 8th Note - - Float + + Synced to 16th Note - - - Yes + + Synced to 32nd Note - Lb302Synth + lmms::gui::TimeDisplayWidget - - VCF Cutoff Frequency + + Time units - - VCF Resonance + + MIN - - VCF Envelope Mod + + SEC - - VCF Envelope Decay + + MSEC - - Distortion + + BAR - - Waveform + + BEAT - - Slide Decay + + TICK + + + lmms::gui::TimeLineWidget - - Slide + + Auto scrolling - - Accent + + Stepped auto scrolling - - Dead + + Continuous auto scrolling - - 24dB/oct Filter + + Auto scrolling disabled - - - Lb302SynthView - - Cutoff Freq: + + Loop points - - Resonance: + + After stopping go back to beginning - - Env Mod: + + After stopping go back to position at which playing was started - - Decay: + + After stopping keep position - - 303-es-que, 24dB/octave, 3 pole filter + + Hint - - Slide Decay: + + Press <%1> to disable magnetic loop points. - - DIST: + + Set loop begin here - - Saw wave + + Set loop end here - - Click here for a saw-wave. + + Loop edit mode (hold shift) - - Triangle wave + + Dual-button - - Click here for a triangle-wave. + + Grab closest - - Square wave + + Handles + + + lmms::gui::TrackContentWidget - - Click here for a square-wave. + + Paste + + + lmms::gui::TrackOperationsWidget - - Rounded square wave + + Press <%1> while clicking on move-grip to begin a new drag'n'drop action. - - Click here for a square-wave with a rounded end. + + Actions - - Moog wave + + + Mute - - Click here for a moog-like wave. + + + Solo - - Sine wave + + After removing a track, it can not be recovered. Are you sure you want to remove track "%1"? - - Click for a sine-wave. + + Confirm removal - - - White noise wave + + Don't ask again - - Click here for an exponential wave. + + Clone this track - - Click here for white-noise. + + Remove this track - - Bandlimited saw wave + + Clear this track - - Click here for bandlimited saw wave. + + Channel %1: %2 + + + + + Assign to new Mixer Channel + + + + + Turn all recording on - - Bandlimited square wave + + Turn all recording off - - Click here for bandlimited square wave. + + Track color - - Bandlimited triangle wave + + Change - - Click here for bandlimited triangle wave. + + Reset - - Bandlimited moog saw wave + + Pick random - - Click here for bandlimited moog saw wave. + + Reset clip colors - MalletsInstrument + lmms::gui::TripleOscillatorView - - Hardness + + Modulate phase of oscillator 1 by oscillator 2 - - Position + + Modulate amplitude of oscillator 1 by oscillator 2 - - Vibrato gain + + Mix output of oscillators 1 & 2 - - Vibrato frequency + + Synchronize oscillator 1 with oscillator 2 - - Stick mix + + Modulate frequency of oscillator 1 by oscillator 2 - - Modulator + + Modulate phase of oscillator 2 by oscillator 3 - - Crossfade + + Modulate amplitude of oscillator 2 by oscillator 3 - - LFO speed + + Mix output of oscillators 2 & 3 - - LFO depth + + Synchronize oscillator 2 with oscillator 3 - - ADSR + + Modulate frequency of oscillator 2 by oscillator 3 - - Pressure + + Osc %1 volume: - - Motion + + Osc %1 panning: - - Speed + + Osc %1 coarse detuning: - - Bowed + + semitones - - Spread + + Osc %1 fine detuning left: - - Marimba + + + cents - - Vibraphone + + Osc %1 fine detuning right: - - Agogo + + Osc %1 phase-offset: - - Wood 1 + + + degrees - - Reso + + Osc %1 stereo phase-detuning: - - Wood 2 + + Sine wave - - Beats + + Triangle wave - - Two fixed + + Saw wave - - Clump + + Square wave - - Tubular bells + + Moog-like saw wave - - Uniform bar + + Exponential wave - - Tuned bar + + White noise - - Glass + + User-defined wave - - Tibetan bowl + + Use alias-free wavetable oscillators. - MalletsInstrumentView + lmms::gui::VecControlsDialog - - Instrument + + HQ - - Spread + + Double the resolution and simulate continuous analog-like trace. - - Spread: + + Log. scale - - Missing files + + Display amplitude on logarithmic scale to better see small values. - - Your Stk-installation seems to be incomplete. Please make sure the full Stk-package is installed! + + Persist. - - Hardness + + Trace persistence: higher amount means the trace will stay bright for longer time. - - Hardness: + + Trace persistence + + + lmms::gui::VersionedSaveDialog - - Position + + Increment version number - - Position: + + Decrement version number - - Vibrato gain + + Save Options - - Vibrato gain: + + already exists. Do you want to replace it? + + + lmms::gui::VestigeInstrumentView - - Vibrato frequency + + + Open VST plugin - - Vibrato frequency: + + Control VST plugin from LMMS host - - Stick mix + + Open VST plugin preset - - Stick mix: + + Previous (-) - - Modulator + + Save preset - - Modulator: + + Next (+) - - Crossfade + + Show/hide GUI - - Crossfade: + + Turn off all notes - - LFO speed + + DLL-files (*.dll) - - LFO speed: + + EXE-files (*.exe) - - LFO depth + + SO-files (*.so) - - LFO depth: + + No VST plugin loaded - - ADSR + + Preset - - ADSR: + + by - - Pressure + + - VST plugin control + + + lmms::gui::VibedView - - Pressure: + + Enable waveform - - Speed + + + Smooth waveform - - Speed: + + + Normalize waveform - - - ManageVSTEffectView - - - VST parameter control + + + Sine wave - - VST sync + + + Triangle wave - - - Automated + + + Saw wave - - Close + + + Square wave - - - ManageVestigeInstrumentView - - - - VST plugin control + + + White noise - - VST Sync + + + User-defined wave - - - Automated + + String volume: - - Close + + String stiffness: - - - OrganicInstrument - - Distortion + + Pick position: - - Volume - ווליום + + Pickup position: + - - - OrganicInstrumentView - - Distortion: + + String panning: - - Volume: - ווליום: + + String detune: + - - Randomise + + String fuzziness: - - - Osc %1 waveform: + + String length: - - Osc %1 volume: + + Impulse Editor - - Osc %1 panning: + + Impulse - - Osc %1 stereo detuning + + Enable/disable string - - cents + + Octave - - Osc %1 harmonic: + + String - PatchesDialog + lmms::gui::VstEffectControlDialog - - Qsynth: Channel Preset + + Show/hide - - Bank selector + + Control VST plugin from LMMS host - - Bank + + Open VST plugin preset - - Program selector + + Previous (-) - - Patch + + Next (+) - - Name + + Save preset - - OK + + + Effect by: - - Cancel + + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> - Sf2Instrument - - - Bank - - - - - Patch - - - - - Gain - - + lmms::gui::WatsynView - - Reverb + + + + + Volume - - Reverb room size + + + + + Panning - - Reverb damping + + + + + Freq. multiplier - - Reverb width + + + + + Left detune - - Reverb level + + + + + + + + + cents - - Chorus + + + + + Right detune - - Chorus voices + + A-B Mix - - Chorus level + + Mix envelope amount - - Chorus speed + + Mix envelope attack - - Chorus depth + + Mix envelope hold - - A soundfont %1 could not be loaded. + + Mix envelope decay - - - Sf2InstrumentView - - - Open SoundFont file + + Crosstalk - - Choose patch + + Select oscillator A1 - - Gain: + + Select oscillator A2 - - Apply reverb (if supported) + + Select oscillator B1 - - Room size: + + Select oscillator B2 - - Damping: + + Mix output of A2 to A1 - - Width: + + Modulate amplitude of A1 by output of A2 - - - Level: + + Ring modulate A1 and A2 - - Apply chorus (if supported) + + Modulate phase of A1 by output of A2 - - Voices: + + Mix output of B2 to B1 - - Speed: + + Modulate amplitude of B1 by output of B2 - - Depth: + + Ring modulate B1 and B2 - - SoundFont Files (*.sf2 *.sf3) + + Modulate phase of B1 by output of B2 - - - SfxrInstrument - - Wave + + + + + Draw your own waveform here by dragging your mouse on this graph. - - - StereoEnhancerControlDialog - - WIDTH + + Load waveform - - Width: + + Load a waveform from a sample file - - - StereoEnhancerControls - - Width + + Phase left - - - StereoMatrixControlDialog - - Left to Left Vol: + + Shift phase by -15 degrees - - Left to Right Vol: + + Phase right - - Right to Left Vol: + + Shift phase by +15 degrees - - Right to Right Vol: + + + Normalize - - - StereoMatrixControls - - Left to Left + + + Invert - - Left to Right + + + Smooth - - Right to Left + + + Sine wave - - Right to Right + + + + Triangle wave - - - VestigeInstrument - - Loading plugin + + Saw wave - - Please wait while loading the VST plugin... + + + Square wave - Vibed + lmms::gui::WaveShaperControlDialog - - String %1 volume + + INPUT - - String %1 stiffness + + Input gain: - - Pick %1 position + + OUTPUT - - Pickup %1 position + + Output gain: - - String %1 panning + + + Reset wavegraph - - String %1 detune + + + Smooth wavegraph - - String %1 fuzziness + + + Increase wavegraph amplitude by 1 dB - - String %1 length + + + Decrease wavegraph amplitude by 1 dB - - Impulse %1 + + Clip input - - String %1 + + Clip input signal to 0 dB - VibedView - - - String volume: - - - - - String stiffness: - - - - - Pick position: - - + lmms::gui::XpressiveView - - Pickup position: + + Draw your own waveform here by dragging your mouse on this graph. - - String panning: + + Select oscillator W1 - - String detune: + + Select oscillator W2 - - String fuzziness: + + Select oscillator W3 - - String length: + + Select output O1 - - Impulse + + Select output O2 - - Octave + + Open help window - - Impulse Editor + + + Sine wave - - Enable waveform + + + Moog-saw wave - - Enable/disable string + + + Exponential wave - - String + + + Saw wave - - - Sine wave + + + User-defined wave - - + + Triangle wave - - - Saw wave - - - - - + + Square wave - - + + White noise - - - User-defined wave - - - - - - Smooth waveform + + WaveInterpolate - - - Normalize waveform + + ExpressionValid - - - VoiceObject - - Voice %1 pulse width + + General purpose 1: - - Voice %1 attack + + General purpose 2: - - Voice %1 decay + + General purpose 3: - - Voice %1 sustain + + O1 panning: - - Voice %1 release + + O2 panning: - - Voice %1 coarse detuning + + Release transition: - - Voice %1 wave shape + + Smoothness + + + lmms::gui::ZynAddSubFxView - - Voice %1 sync + + Portamento: - - Voice %1 ring modulate + + PORT - - Voice %1 filtered + + Filter frequency: - - Voice %1 test + + FREQ - - - WaveShaperControlDialog - - INPUT + + Filter resonance: - - Input gain: + + RES - - OUTPUT + + Bandwidth: - - Output gain: + + BW - - - Reset wavegraph + + FM gain: - - - Smooth wavegraph + + FM GAIN - - - Increase wavegraph amplitude by 1 dB + + Resonance center frequency: - - - Decrease wavegraph amplitude by 1 dB + + RES CF - - Clip input + + Resonance bandwidth: - - Clip input signal to 0 dB + + RES BW - - - WaveShaperControls - - Input gain + + Forward MIDI control changes - - Output gain + + Show GUI - + \ No newline at end of file diff --git a/data/locale/hi_IN.ts b/data/locale/hi_IN.ts index 82cf364e332..5b2eeebf5b3 100644 --- a/data/locale/hi_IN.ts +++ b/data/locale/hi_IN.ts @@ -5335,62 +5335,62 @@ Please make sure you have write permission to the file and the directory contain - MixerLine + MixerChannelView - + Channel send amount - + Move &left - + Move &right - + Rename &channel - + R&emove channel - + Remove &unused channels - + Set channel color - + Remove channel color - + Pick random channel color - MixerLineLcdSpinBox + MixerChannelLcdSpinBox - + Assign to: - + New mixer Channel diff --git a/data/locale/hu_HU.ts b/data/locale/hu_HU.ts index a0f1e4d4542..a15c5d42c24 100644 --- a/data/locale/hu_HU.ts +++ b/data/locale/hu_HU.ts @@ -1,4 +1,4 @@ - + AboutDialog @@ -70,954 +70,187 @@ Ha szeretnél részt venni az LMMS más nyelvekre történő fordításában vag - AmplifierControlDialog + AboutJuceDialog - - VOL - VOL - - - - Volume: - Hangerő: - - - - PAN - PAN - - - - Panning: - Panoráma: - - - - LEFT - BAL - - - - Left gain: - Bal oldali erősítés: - - - - RIGHT - JOBB - - - - Right gain: - Jobb oldali erősítés: - - - - AmplifierControls - - - Volume - Hangerő - - - - Panning - Panoráma - - - - Left gain - Bal oldali erősítés - - - - Right gain - Jobb oldali erősítés - - - - AudioAlsaSetupWidget - - - DEVICE - ESZKÖZ - - - - CHANNELS - CSATORNÁK - - - - AudioFileProcessorView - - - Open sample - Minta megnyitása - - - - Reverse sample - Minta megfordítása - - - - Disable loop - Ismétlés tiltása - - - - Enable loop - Ismétlés engedélyezése - - - - Enable ping-pong loop - Oda-vissza ismétlés engedélyezése - - - - Continue sample playback across notes - Folyamatos lejátszás több note-on keresztül - - - - Amplify: - Erősítés: - - - - Start point: - Kezdőpont: - - - - End point: - Végpont: - - - - Loopback point: - Visszatérési pont: - - - - AudioFileProcessorWaveView - - - Sample length: - Minta hossza: - - - - AudioJack - - - JACK client restarted - JACK kliens újraindítva - - - - LMMS was kicked by JACK for some reason. Therefore the JACK backend of LMMS has been restarted. You will have to make manual connections again. - A JACK kirúgta az LMMS-t valamilyen oknál fogva, ezért az LMMS JACK backendje újra lett indítva. A kapcsolatokat manuálisan kell újra létrehozni. - - - - JACK server down - JACK szerver leállt - - - - The JACK server seems to have been shutdown and starting a new instance failed. Therefore LMMS is unable to proceed. You should save your project and restart JACK and LMMS. - Úgy tűnik, a JACK kiszolgáló leállt, és új példány indítása nem sikerült. Ennél fogva az LMMS nem képes tovább működni. Kérjük, mentsd a projektet és indítsd újra a JACK-et és LMMS-t. - - - - Client name - Kliens név - - - - Channels - Csatornák - - - - AudioOss - - - Device - Eszköz - - - - Channels - Csatornák - - - - AudioPortAudio::setupWidget - - - Backend - Backend - - - - Device - Eszköz - - - - AudioPulseAudio - - - Device - Eszköz + + About JUCE + - - Channels - Csatornák + + <b>About JUCE</b> + - - - AudioSdl::setupWidget - - Device - Eszköz + + This program uses JUCE version 3.x.x. + - - - AudioSndio - - Device - Eszköz + + JUCE is an open-source cross-platform C++ application framework for creating high quality desktop and mobile applications. + +The core JUCE modules (juce_audio_basics, juce_audio_devices, juce_core and juce_events) are permissively licensed under the terms of the ISC license. +Other modules are covered by a GNU GPL 3.0 license. + +Copyright (C) 2022 Raw Material Software Limited. + - - Channels - Csatornák + + This program uses JUCE version + - AudioSoundIo::setupWidget - - - Backend - Backend - + AudioDeviceSetupWidget - - Device - Eszköz + + [System Default] + - AutomatableModel - - - &Reset (%1%2) - &Visszaállítás (%1%2) - - - - &Copy value (%1%2) - Érték &másolása (%1%2) - - - - &Paste value (%1%2) - Érték &beillesztése (%1%2) - - - - &Paste value - Érték &beillesztése - - - - Edit song-global automation - Globális automatizáció szerkesztése - - - - Remove song-global automation - Globális automatizáció eltávolítása - + CarlaAboutW - - Remove all linked controls - Minden kapcsolt vezérlő eltávolítása + + About Carla + A Carla névjegye - - Connected to %1 - Csatlakozva ehhez: %1 + + About + Névjegy - - Connected to controller - Csatlakozva a vezérlőhöz + + About text here + Névjegy helye - - Edit connection... - Kapcsolat szerkesztése... + + Extended licensing here + Részletes licensz helye - - Remove connection - Kapcsolat eltávolítása + + Artwork + Grafika - - Connect to controller... - Csatlakozás a vezérlőhöz... + + Using KDE Oxygen icon set, designed by Oxygen Team. + KDE Oxygen ikonkészlet, tervezte az Oxygen Team. - - - AutomationEditor - - Edit Value - Érték megadása + + Contains some knobs, backgrounds and other small artwork from Calf Studio Gear, OpenAV and OpenOctave projects. + Néhány gomb, háttér és egyéb grafikus elem a Calf Studio Gear, OpenAV és OpenOctave projektekből. - - New outValue - Kimenő érték + + VST is a trademark of Steinberg Media Technologies GmbH. + A VST a Steinberg Media Technologies GmbH. védjegye. - - New inValue - Bemenő érték + + Special thanks to António Saraiva for a few extra icons and artwork! + Külön köszönet António Saraivának a további ikonokért és grafikus elemekért! - - Please open an automation clip with the context menu of a control! - Nyiss meg egy automatizációs klipet dupla kattintással! + + The LV2 logo has been designed by Thorsten Wilms, based on a concept from Peter Shorthose. + Az LV2 logót tervezte Thorsten Wilms, Peter Shorthose ötlete alapján. - - - AutomationEditorWindow - - Play/pause current clip (Space) - Klip lejátszása/megállítása (Space) + + MIDI Keyboard designed by Thorsten Wilms. + A MIDI billentyűzetet tervezte Thorsten Wilms. - - Stop playing of current clip (Space) - Lejátszás leállítása (Space) + + Carla, Carla-Control and Patchbay icons designed by DoosC. + A Carla, Carla-Control és Patchbay ikonokat tervezte: DoosC - - Edit actions - Műveletek szerkesztése + + Features + Szolgáltatások - - Draw mode (Shift+D) - Beszúrás (Shift+D) + + AU/AudioUnit: + AU/AudioUnit: - - Erase mode (Shift+E) - Törlés (Shift+E) + + LADSPA: + LADSPA: - - Draw outValues mode (Shift+C) - Kimenő érték beszúrása (Shift+C) + + + + + + + + + TextLabel + TextLabel - - Flip vertically - Függőleges tükrözés + + VST2: + VST2: - - Flip horizontally - Vízszintes tükrözés + + DSSI: + DSSI: - - Interpolation controls - Interpoláció vezérlők + + LV2: + LV2: - - Discrete progression - Diszkrét átmenet + + VST3: + VST3: - - Linear progression - Lineáris átmenet + + OSC + OSC - - Cubic Hermite progression - Köbös Hermite átmenet + + Host URLs: + Hoszt URL-ek: - - Tension value for spline - Spline feszítése + + Valid commands: + Érvényes parancsok: - - Tension: - Feszítés: + + valid osc commands here + érvényes osc parancsok helye - - Zoom controls - Nagyítás vezérlők + + Example: + Példa: - - Horizontal zooming - Vízszintes nagyítás + + License + Licenc - - Vertical zooming - Függőleges nagyítás - - - - Quantization controls - Kvantálás vezérlők - - - - Quantization - Kvantálás - - - - - Automation Editor - no clip - Automatizáció Szerkesztő - - - - - Automation Editor - %1 - Automatizáció Szerkesztő - %1 - - - - Model is already connected to this clip. - Ez a vezérlő már csatlakoztatva van a kliphez. - - - - AutomationClip - - - Drag a control while pressing <%1> - Húzz ide egy vezérlőt <%1> nyomvatartása mellett - - - - AutomationClipView - - - Open in Automation editor - Megnyitás az Automatizáció Szerkesztőben - - - - Clear - Tartalom törlése - - - - Reset name - Név visszaállítása - - - - Change name - Átnevezés - - - - Set/clear record - Felvétel be/ki - - - - Flip Vertically (Visible) - Látható terület függőleges tükrözése - - - - Flip Horizontally (Visible) - Látható terület vízszintes tükrözése - - - - %1 Connections - %1 Kapcsolat - - - - Disconnect "%1" - "%1" leválasztása - - - - Model is already connected to this clip. - Ez a vezérlő már csatlakoztatva van a kliphez. - - - - AutomationTrack - - - Automation track - Automatizáció sáv - - - - PatternEditor - - - Beat+Bassline Editor - Beat+Bassline szerkesztő - - - - Play/pause current beat/bassline (Space) - Klip lejátszása/megállítása (Space) - - - - Stop playback of current beat/bassline (Space) - Lejátszás leállítása (Space) - - - - Beat selector - Ütem választó - - - - Track and step actions - Sáv és lépés műveletek - - - - Add beat/bassline - Beat/Bassline sáv hozzáadása - - - - Clone beat/bassline clip - Beat/Bassline sáv klónozása - - - - Add sample-track - Hangminta sáv hozzáadása - - - - Add automation-track - Automatizáció sáv hozzáadása - - - - Remove steps - Lépések eltávolítása - - - - Add steps - Lépések hozzáadása - - - - Clone Steps - Megduplázás - - - - PatternClipView - - - Open in Beat+Bassline-Editor - Megnyitás a Beat+Bassline szerkesztőben - - - - Reset name - Név visszaállítása - - - - Change name - Átnevezés - - - - PatternTrack - - - Beat/Bassline %1 - Beat/Bassline %1 - - - - Clone of %1 - %1 másolata - - - - BassBoosterControlDialog - - - FREQ - FREKV - - - - Frequency: - Frekvencia: - - - - GAIN - ERŐSÍTÉS - - - - Gain: - Erősítés: - - - - RATIO - ARÁNY - - - - Ratio: - Arány: - - - - BassBoosterControls - - - Frequency - Frekvencia - - - - Gain - Erősítés - - - - Ratio - Arány - - - - BitcrushControlDialog - - - IN - BE - - - - OUT - KI - - - - - GAIN - ERŐSÍTÉS - - - - Input gain: - Bemeneti erősítés: - - - - NOISE - ZAJ - - - - Input noise: - Bemeneti zaj: - - - - Output gain: - Kimeneti erősítés: - - - - CLIP - CLIP - - - - Output clip: - Kimenet levágása: - - - - Rate enabled - Mintavételi gyakoriság - - - - Enable sample-rate crushing - Mintavételi frekvencia csökkentése - - - - Depth enabled - Bitmélység - - - - Enable bit-depth crushing - Bitmélység csökkentése - - - - FREQ - FREKV - - - - Sample rate: - Mintavételi frekvencia: - - - - STEREO - SZTEREÓ - - - - Stereo difference: - Sztereó különbség: - - - - QUANT - QUANT - - - - Levels: - Szintek: - - - - BitcrushControls - - - Input gain - Bemeneti erősítés - - - - Input noise - Bemeneti zaj - - - - Output gain - Kimeneti erősítés - - - - Output clip - Kimenet levágása - - - - Sample rate - Mintavételi frekvencia - - - - Stereo difference - Sztereó különbség - - - - Levels - Szintek - - - - Rate enabled - Mintavételi gyakoriság - - - - Depth enabled - Bitmélység - - - - CarlaAboutW - - - About Carla - A Carla névjegye - - - - About - Névjegy - - - - About text here - Névjegy helye - - - - Extended licensing here - Részletes licensz helye - - - - Artwork - Grafika - - - - Using KDE Oxygen icon set, designed by Oxygen Team. - KDE Oxygen ikonkészlet, tervezte az Oxygen Team. - - - - Contains some knobs, backgrounds and other small artwork from Calf Studio Gear, OpenAV and OpenOctave projects. - Néhány gomb, háttér és egyéb grafikus elem a Calf Studio Gear, OpenAV és OpenOctave projektekből. - - - - VST is a trademark of Steinberg Media Technologies GmbH. - A VST a Steinberg Media Technologies GmbH. védjegye. - - - - Special thanks to António Saraiva for a few extra icons and artwork! - Külön köszönet António Saraivának a további ikonokért és grafikus elemekért! - - - - The LV2 logo has been designed by Thorsten Wilms, based on a concept from Peter Shorthose. - Az LV2 logót tervezte Thorsten Wilms, Peter Shorthose ötlete alapján. - - - - MIDI Keyboard designed by Thorsten Wilms. - A MIDI billentyűzetet tervezte Thorsten Wilms. - - - - Carla, Carla-Control and Patchbay icons designed by DoosC. - A Carla, Carla-Control és Patchbay ikonokat tervezte: DoosC - - - - Features - Szolgáltatások - - - - AU/AudioUnit: - AU/AudioUnit: - - - - LADSPA: - LADSPA: - - - - - - - - - - - TextLabel - TextLabel - - - - VST2: - VST2: - - - - DSSI: - DSSI: - - - - LV2: - LV2: - - - - VST3: - VST3: - - - - OSC - OSC - - - - Host URLs: - Hoszt URL-ek: - - - - Valid commands: - Érvényes parancsok: - - - - valid osc commands here - érvényes osc parancsok helye - - - - Example: - Példa: - - - - License - Licenc - - - + GNU GENERAL PUBLIC LICENSE Version 2, June 1991 @@ -1302,15038 +535,18225 @@ POSSIBILITY OF SUCH DAMAGES. - - OSC Bridge Version - OSC Bridge verzió + + OSC Bridge Version + OSC Bridge verzió + + + + Plugin Version + Bővítmény verzió + + + + <br>Version %1<br>Carla is a fully-featured audio plugin host%2.<br><br>Copyright (C) 2011-2019 falkTX<br> + <br>Verzió: %1<br>A Carla egy teljes értékű audio plugin host%2.<br><br>Copyright (C) 2011-2019 falkTX<br> + + + + + (Engine not running) + (A motor nem fut) + + + + Everything! (Including LRDF) + Minden! (Az LRDF-et is beleértve) + + + + Everything! (Including CustomData/Chunks) + Minden! (CustomData/Chunks beleértve) + + + + About 110&#37; complete (using custom extensions)<br/>Implemented Feature/Extensions:<ul><li>http://lv2plug.in/ns/ext/atom</li><li>http://lv2plug.in/ns/ext/buf-size</li><li>http://lv2plug.in/ns/ext/data-access</li><li>http://lv2plug.in/ns/ext/event</li><li>http://lv2plug.in/ns/ext/instance-access</li><li>http://lv2plug.in/ns/ext/log</li><li>http://lv2plug.in/ns/ext/midi</li><li>http://lv2plug.in/ns/ext/options</li><li>http://lv2plug.in/ns/ext/parameters</li><li>http://lv2plug.in/ns/ext/port-props</li><li>http://lv2plug.in/ns/ext/presets</li><li>http://lv2plug.in/ns/ext/resize-port</li><li>http://lv2plug.in/ns/ext/state</li><li>http://lv2plug.in/ns/ext/time</li><li>http://lv2plug.in/ns/ext/uri-map</li><li>http://lv2plug.in/ns/ext/urid</li><li>http://lv2plug.in/ns/ext/worker</li><li>http://lv2plug.in/ns/extensions/ui</li><li>http://lv2plug.in/ns/extensions/units</li><li>http://home.gna.org/lv2dynparam/rtmempool/v1</li><li>http://kxstudio.sf.net/ns/lv2ext/external-ui</li><li>http://kxstudio.sf.net/ns/lv2ext/programs</li><li>http://kxstudio.sf.net/ns/lv2ext/props</li><li>http://kxstudio.sf.net/ns/lv2ext/rtmempool</li><li>http://ll-plugins.nongnu.org/lv2/ext/midimap</li><li>http://ll-plugins.nongnu.org/lv2/ext/miditype</li></ul> + Körülbelül 110&#37;-ig teljes (egyedi bővítményekkel)<br/>Elérhető szolgáltatások/bővítmények:<ul><li>http://lv2plug.in/ns/ext/atom</li><li>http://lv2plug.in/ns/ext/buf-size</li><li>http://lv2plug.in/ns/ext/data-access</li><li>http://lv2plug.in/ns/ext/event</li><li>http://lv2plug.in/ns/ext/instance-access</li><li>http://lv2plug.in/ns/ext/log</li><li>http://lv2plug.in/ns/ext/midi</li><li>http://lv2plug.in/ns/ext/options</li><li>http://lv2plug.in/ns/ext/parameters</li><li>http://lv2plug.in/ns/ext/port-props</li><li>http://lv2plug.in/ns/ext/presets</li><li>http://lv2plug.in/ns/ext/resize-port</li><li>http://lv2plug.in/ns/ext/state</li><li>http://lv2plug.in/ns/ext/time</li><li>http://lv2plug.in/ns/ext/uri-map</li><li>http://lv2plug.in/ns/ext/urid</li><li>http://lv2plug.in/ns/ext/worker</li><li>http://lv2plug.in/ns/extensions/ui</li><li>http://lv2plug.in/ns/extensions/units</li><li>http://home.gna.org/lv2dynparam/rtmempool/v1</li><li>http://kxstudio.sf.net/ns/lv2ext/external-ui</li><li>http://kxstudio.sf.net/ns/lv2ext/programs</li><li>http://kxstudio.sf.net/ns/lv2ext/props</li><li>http://kxstudio.sf.net/ns/lv2ext/rtmempool</li><li>http://ll-plugins.nongnu.org/lv2/ext/midimap</li><li>http://ll-plugins.nongnu.org/lv2/ext/miditype</li></ul> + + + + + + Using Juce host + JUCE host használatával + + + + About 85% complete (missing vst bank/presets and some minor stuff) + Körülbelül 85%-ig teljes (VST bankok/presetek és néhány apróbb dolog hiányzik) + + + + CarlaHostW + + + MainWindow + MainWindow + + + + Rack + Rack + + + + Patchbay + Patchbay + + + + Logs + Naplók + + + + Loading... + Betöltés... + + + + Save + + + + + Clear + + + + + Ctrl+L + + + + + Auto-Scroll + + + + + Buffer Size: + Pufferméret: + + + + Sample Rate: + Mintavételi frekvencia: + + + + ? Xruns + ? Xrun + + + + DSP Load: %p% + DSP terhelés: %p% + + + + &File + &Fájl + + + + &Engine + &Motor + + + + &Plugin + &Plugin + + + + Macros (all plugins) + Makrók (minden bővítmény) + + + + &Canvas + &Vászon + + + + Zoom + Nagyítás + + + + &Settings + &Beállítások + + + + &Help + &Súgó + + + + Tool Bar + + + + + Disk + Lemez + + + + + Home + Kezdőlap + + + + Transport + Továbbítás + + + + Playback Controls + Lejátszás vezérlők + + + + Time Information + Idő Információ + + + + Frame: + Keret: + + + + 000'000'000 + 000'000'000 + + + + Time: + Idő: + + + + 00:00:00 + 00:00:00 + + + + BBT: + BBT: + + + + 000|00|0000 + 000|00|0000 + + + + Settings + Beállítások + + + + BPM + BPM + + + + Use JACK Transport + JACK Transport használata + + + + Use Ableton Link + Ableton Link használata + + + + &New + &Új + + + + Ctrl+N + Ctrl+N + + + + &Open... + &Megnyitás... + + + + + Open... + Megnyitás... + + + + Ctrl+O + Ctrl+O + + + + &Save + &Mentés + + + + Ctrl+S + Ctrl+S + + + + Save &As... + Mentés &másként... + + + + + Save As... + Mentés másként... + + + + Ctrl+Shift+S + Ctrl+Shift+S + + + + &Quit + &Kilépés + + + + Ctrl+Q + Ctrl+Q + + + + &Start + &Start + + + + F5 + F5 + + + + St&op + St&op + + + + F6 + F6 + + + + &Add Plugin... + Bővítmény &hozzáadása... + + + + Ctrl+A + Ctrl+A + + + + &Remove All + Összes &eltávolítása + + + + Enable + Engedélyezés + + + + Disable + Tiltás + + + + 0% Wet (Bypass) + + + + + 100% Wet + + + + + 0% Volume (Mute) + 0% Hangerő (Némítás) + + + + 100% Volume + 100% Hangerő + + + + Center Balance + Balansz középre állítása + + + + &Play + &Lejátszás + + + + Ctrl+Shift+P + Ctrl+Shift+P + + + + &Stop + &Stop + + + + Ctrl+Shift+X + Ctrl+Shift+X + + + + &Backwards + &Vissza + + + + Ctrl+Shift+B + Ctrl+Shift+B + + + + &Forwards + &Előre + + + + Ctrl+Shift+F + Ctrl+Shift+F + + + + &Arrange + &Rendezés + + + + Ctrl+G + Ctrl+G + + + + + &Refresh + &Frissítés + + + + Ctrl+R + Ctrl+R + + + + Save &Image... + &Kép mentése... + + + + Auto-Fit + Automatikus kitöltés + + + + Zoom In + Nagyítás + + + + Ctrl++ + Ctrl++ + + + + Zoom Out + Kicsinyítés + + + + Ctrl+- + Ctrl+- + + + + Zoom 100% + Nagyítás 100% + + + + Ctrl+1 + Ctrl+1 + + + + Show &Toolbar + &Eszköztár megjelenítése + + + + &Configure Carla + Carla &konfigurálása + + + + &About + &Névjegy + + + + About &JUCE + &JUCE névjegye + + + + About &Qt + &Qt névjegye + + + + Show Canvas &Meters + &Kivezérlésmérő megjelenítése + + + + Show Canvas &Keyboard + &Billentyűzet megjelenítése + + + + Show Internal + Belső + + + + Show External + Külső + + + + Show Time Panel + Idő panel megjelenítése + + + + Show &Side Panel + Oldalsó &panel megjelenítése + + + + Ctrl+P + + + + + &Connect... + &Csatlakozás + + + + Compact Slots + Rekeszek összecsukása + + + + Expand Slots + Rekeszek kinyitása + + + + Perform secret 1 + + + + + Perform secret 2 + + + + + Perform secret 3 + + + + + Perform secret 4 + + + + + Perform secret 5 + + + + + Add &JACK Application... + &JACK alkalmazás hozzáadása... + + + + &Configure driver... + &Driver konfigurálása... + + + + Panic + Pánik + + + + Open custom driver panel... + Driver vezérlőpaneljének megnyitása... + + + + Save Image... (2x zoom) + + + + + Save Image... (4x zoom) + + + + + Copy as Image to Clipboard + + + + + Ctrl+Shift+C + + + + + CarlaHostWindow + + + Export as... + Exportálás... + + + + + + + Error + Hiba + + + + Failed to load project + Nem sikerült betölteni a projektet + + + + Failed to save project + Nem sikerült menteni a projektet + + + + Quit + Kilépés + + + + Are you sure you want to quit Carla? + Biztosan ki akarsz lépni? + + + + Could not connect to Audio backend '%1', possible reasons: +%2 + Nem sikerült a(z) '%1' audio backendhez csatlakozni. Lehetséges okok: +%2 + + + + Could not connect to Audio backend '%1' + Nem sikerült a(z) '%1' audio backendhez csatlakozni. + + + + Warning + Figyelmeztetés + + + + There are still some plugins loaded, you need to remove them to stop the engine. +Do you want to do this now? + Néhány bővítmény még be van töltve, ezeket el kell távolítani a motor leállításához. +Szeretnéd ezt most megtenni? + + + + CarlaSettingsW + + + Settings + Beállítások + + + + main + main + + + + canvas + canvas + + + + engine + engine + + + + osc + osc + + + + file-paths + file-paths + + + + plugin-paths + plugin-paths + + + + wine + wine + + + + experimental + experimental + + + + Widget + Widget + + + + + Main + + + + + + Canvas + Vászon + + + + + Engine + Motor + + + + File Paths + Fájl útvonalak + + + + Plugin Paths + Bővítmény útvonalak + + + + Wine + Wine + + + + + Experimental + Kísérleti + + + + <b>Main</b> + <b>Fő</b> + + + + Paths + Útvonalak + + + + Default project folder: + Alapértelmezett projekt mappa: + + + + Interface + Felület: + + + + Use "Classic" as default rack skin + + + + + Interface refresh interval: + Felület frissítési gyakorisága: + + + + + ms + ms + + + + Show console output in Logs tab (needs engine restart) + Konzol kimenet megjelenítése a Napló lapon (motor újraindítása szükséges) + + + + Show a confirmation dialog before quitting + Megerősítés kilépés előtt + + + + + Theme + Téma + + + + Use Carla "PRO" theme (needs restart) + Carla "PRO" téma használata (újraindítást igényel) + + + + Color scheme: + Színséma: + + + + Black + Sötét + + + + System + Rendszer + + + + Enable experimental features + Kísérleti funkciók engedélyezése + + + + <b>Canvas</b> + <b>Vászon</b> + + + + Bezier Lines + Bezier-vonalak + + + + Theme: + Téma: + + + + Size: + Méret: + + + + 775x600 + 775x600 + + + + 1550x1200 + 1550x1200 + + + + 3100x2400 + 3100x2400 + + + + 4650x3600 + 4650x3600 + + + + 6200x4800 + 6200x4800 + + + + 12400x9600 + + + + + Options + Opciók + + + + Auto-hide groups with no ports + Port nélküli csoportok automatikus elrejtése + + + + Auto-select items on hover + Elemek kijelölése rámutatáskor + + + + Basic eye-candy (group shadows) + Árnyékok + + + + Render Hints + Megjelenítés + + + + Anti-Aliasing + Anti-Aliasing + + + + Full canvas repaints (slower, but prevents drawing issues) + Teljes vászon újrarajzolása (lassabb, de megelőzheti a grafikai problémákat) + + + + <b>Engine</b> + <b>Motor</b> + + + + + Core + Mag + + + + Single Client + Egy kliens + + + + Multiple Clients + Több kliens + + + + + Continuous Rack + Összefüggő rack + + + + + Patchbay + Patchbay + + + + Audio driver: + Audió driver: + + + + Process mode: + Működési mód: + + + + + + + Maximum number of parameters to allow in the built-in 'Edit' dialog + Paraméterek maximális száma a Szerkesztés ablakban + + + + Max Parameters: + Maximális paraméterszám: + + + + ... + ... + + + + Reset Xrun counter after project load + Xrun számláló lenullázása projekt betöltésekor + + + + Plugin UIs + Bővítmények felülete + + + + + How much time to wait for OSC GUIs to ping back the host + Várakozás az OSC GUI válaszára + + + + UI Bridge Timeout: + + + + + Use OSC-GUI bridges when possible, this way separating the UI from DSP code + OSC-GUI hidak használata lehetőség szerint, így elkülönítve a felhasználói felületet a DSP kódtól. + + + + Use UI bridges instead of direct handling when possible + UI hidak kasználata közvetlen kezelés helyett, ha lehetséges + + + + Make plugin UIs always-on-top + A bővítmény-ablakok mindig felül legyenek + + + + Make plugin UIs appear on top of Carla (needs restart) + Bővítmények felületének megjelenítése a Carla felett (újraindítást igényel) + + + + NOTE: Plugin-bridge UIs cannot be managed by Carla on macOS + + + + + + Restart the engine to load the new settings + Indítsd újra a motort az új beállítások betöltéséhez + + + + <b>OSC</b> + <b>OSC</b> + + + + Enable OSC + OSC engedélyezése + + + + Enable TCP port + TCP port engedélyezése + + + + + Use specific port: + Megadott port használata: + + + + Overridden by CARLA_OSC_TCP_PORT env var + Felülírja a CARLA_OSC_TCP_PORT környezeti változó + + + + + Use randomly assigned port + Véletlenszerű portszám használata + + + + Enable UDP port + UDP port engedélyezése + + + + Overridden by CARLA_OSC_UDP_PORT env var + Felülírja a CARLA_OSC_UDP_PORT környezeti változó + + + + DSSI UIs require OSC UDP port enabled + + + + + <b>File Paths</b> + <b>Fájl útvonalak</b> + + + + Audio + Audió + + + + MIDI + MIDI + + + + Used for the "audiofile" plugin + Az "audiofile" bővítmény számára + + + + Used for the "midifile" plugin + A "midifile" bővítmény számára + + + + + Add... + Hozzáadás... + + + + + Remove + Eltávolítás + + + + + Change... + Módosít... + + + + <b>Plugin Paths</b> + <b>Bővítmény útvonalak</b> + + + + LADSPA + LADSPA + + + + DSSI + DSSI + + + + LV2 + LV2 + + + + VST2 + VST2 + + + + VST3 + VST3 + + + + SF2/3 + SF2/3 + + + + SFZ + SFZ + + + + JSFX + + + + + CLAP + + + + + Restart Carla to find new plugins + + + + + <b>Wine</b> + <b>Wine</b> + + + + Executable + Futtatható + + + + Path to 'wine' binary: + A 'wine' futtatható állomány útvonala: + + + + Prefix + Prefix + + + + Auto-detect Wine prefix based on plugin filename + Wine prefix automatikus felismerése a bővítmény fájlneve alapján + + + + Fallback: + Tartalék: + + + + Note: WINEPREFIX env var is preferred over this fallback + Megjegyzés: A WINEPREFIX környezeti változó ezt a beállítást felülbírálja. + + + + Realtime Priority + Valósidejű prioritás + + + + Base priority: + Alap prioritás: + + + + WineServer priority: + WineServer prioritás: + + + + These options are not available for Carla as plugin + Ezek a beállítások nem elérhetők a Carla bővítményként való használatakor. + + + + <b>Experimental</b> + <b>Kísérleti</b> + + + + Experimental options! Likely to be unstable! + Ezen funkciók használata instabilitáshoz vezethet! + + + + Enable plugin bridges + Plugin hidak engedélyezése + + + + Enable Wine bridges + Wine hidak engedélyezése + + + + Enable jack applications + JACK alkalmazások engedélyezése + + + + Export single plugins to LV2 + + + + + Use system/desktop-theme icons (needs restart) + + + + + Load Carla backend in global namespace (NOT RECOMMENDED) + A Carla backend betöltése globális névtérben (NEM JAVASOLT) + + + + Fancy eye-candy (fade-in/out groups, glow connections) + Vizuális effektusok + + + + Use OpenGL for rendering (needs restart) + OpenGL használata a rendereléshez (újraindítást igényel) + + + + High Quality Anti-Aliasing (OpenGL only) + Magas minőségű anti-aliasing (csak OpenGL) + + + + Render Ardour-style "Inline Displays" + Ardour-féle "Inline kijelzők" megjelenítése + + + + Force mono plugins as stereo by running 2 instances at the same time. +This mode is not available for VST plugins. + Monó bővítmények használata sztereóként 2 példány futtatásával. +Ez a mód nem elérhető VST bővítmények esetén. + + + + Force mono plugins as stereo + Monó bővítmények használata sztereóként + + + + When enabled, Carla will try to prevent plugins from doing things that might mess up the audio or cause xruns, such as fork(), gtk_init() and similar. + + + + + Prevent unsafe calls from plugins (needs restart) + + + + + Run plugins in a separate process, so if they crash it does not affect Carla. +Plugins get automatically deactivated in such cases. +Reactvate them to start the process again, with the last saved state applied to it. + + + + + Run plugins in bridge mode when possible + + + + + + + + Add Path + Útvonal hozzáadása + + + + Dialog + + + Carla Control - Connect + Carla Control - Kapcsolódás + + + + Remote setup + Távoli kapcsolat beállítása + + + + UDP Port: + UDP Port: + + + + Remote host: + Távoli hoszt: + + + + TCP Port: + TCP Port: + + + + Set value + Érték megadása + + + + TextLabel + TextLabel + + + + Scale Points + Beosztás + + + + DriverSettingsW + + + Driver Settings + Driver Beállítások + + + + Device: + Eszköz: + + + + Buffer size: + Pufferméret: + + + + Sample rate: + Mintavételi frekvencia: + + + + Triple buffer + + + + + Show Driver Control Panel + Driver vezérlőpaneljének megnyitása + + + + Restart the engine to load the new settings + Indítsd újra a motort az új beállítások betöltéséhez + + + + ExportProjectDialog + + + Export project + Projekt exportálása + + + + Export as loop (remove extra bar) + Extra ütem eltávolítása a projekt végéről + + + + Export between loop markers + Csak a kijelölt terület exportálása + + + + Render Looped Section: + Ismételt tartomány renderelése ennyiszer: + + + + time(s) + + + + + File format settings + Fájlformátum + + + + File format: + Fájlformátum: + + + + Sampling rate: + Mintavételi frekvencia: + + + + 44100 Hz + 44100 Hz + + + + 48000 Hz + 48000 Hz + + + + 88200 Hz + 88200 Hz + + + + 96000 Hz + 96000 Hz + + + + 192000 Hz + 192000 Hz + + + + Bit depth: + Bitmélység: + + + + 16 Bit integer + 16 bites egész + + + + 24 Bit integer + 24 bites egész + + + + 32 Bit float + 32 bit lebegőpontos + + + + Stereo mode: + Sztereó mód: + + + + Mono + Monó + + + + Stereo + Sztereó + + + + Joint stereo + Összekapcsolt sztereó + + + + Compression level: + Tömörítési szint: + + + + Bitrate: + Bitsebesség: + + + + 64 KBit/s + 64 KBit/s + + + + 128 KBit/s + 128 KBit/s + + + + 160 KBit/s + 160 KBit/s + + + + 192 KBit/s + 192 KBit/s + + + + 256 KBit/s + 256 KBit/s + + + + 320 KBit/s + 320 KBit/s + + + + Use variable bitrate + Változó bitsebesség használata + + + + Quality settings + Minőség + + + + Interpolation: + Interpoláció: + + + + Zero order hold + Zero order hold + + + + Sinc worst (fastest) + Sinc worst (leggyorsabb) + + + + Sinc medium (recommended) + Sinc medium (ajánlott) + + + + Sinc best (slowest) + Sinc best (leglassabb) + + + + Start + Indítás + + + + Cancel + Mégse + + + + InstrumentFunctionNoteStacking + + + octave + oktáv + + + + + Major + Dúr + + + + Majb5 + Majb5 + + + + minor + Moll + + + + minb5 + minb5 + + + + sus2 + sus2 + + + + sus4 + sus4 + + + + aug + aug + + + + augsus4 + augsus4 + + + + tri + tri + + + + 6 + 6 + + + + 6sus4 + 6sus4 + + + + 6add9 + 6add9 + + + + m6 + m6 + + + + m6add9 + m6add9 + + + + 7 + 7 + + + + 7sus4 + 7sus4 + + + + 7#5 + 7#5 + + + + 7b5 + 7b5 + + + + 7#9 + 7#9 + + + + 7b9 + 7b9 + + + + 7#5#9 + 7#5#9 + + + + 7#5b9 + 7#5b9 + + + + 7b5b9 + 7b5b9 + + + + 7add11 + 7add11 + + + + 7add13 + 7add13 + + + + 7#11 + 7#11 + + + + Maj7 + Maj7 + + + + Maj7b5 + Maj7b5 + + + + Maj7#5 + Maj7#5 + + + + Maj7#11 + Maj7#11 + + + + Maj7add13 + Maj7add13 + + + + m7 + m7 + + + + m7b5 + m7b5 + + + + m7b9 + m7b9 + + + + m7add11 + m7add11 + + + + m7add13 + m7add13 + + + + m-Maj7 + m-Maj7 + + + + m-Maj7add11 + m-Maj7add11 + + + + m-Maj7add13 + m-Maj7add13 + + + + 9 + 9 + + + + 9sus4 + 9sus4 + + + + add9 + add9 + + + + 9#5 + 9#5 + + + + 9b5 + 9b5 + + + + 9#11 + 9#11 + + + + 9b13 + 9b13 + + + + Maj9 + Maj9 + + + + Maj9sus4 + Maj9sus4 + + + + Maj9#5 + Maj9#5 + + + + Maj9#11 + Maj9#11 + + + + m9 + m9 + + + + madd9 + madd9 + + + + m9b5 + m9b5 + + + + m9-Maj7 + m9-Maj7 + + + + 11 + 11 + + + + 11b9 + 11b9 + + + + Maj11 + Maj11 + + + + m11 + m11 + + + + m-Maj11 + m-Maj11 + + + + 13 + 13 + + + + 13#9 + 13#9 + + + + 13b9 + 13b9 + + + + 13b5b9 + 13b5b9 + + + + Maj13 + Maj13 + + + + m13 + m13 + + + + m-Maj13 + m-Maj13 + + + + Harmonic minor + Harmonikus moll + + + + Melodic minor + Dallamos moll + + + + Whole tone + Egészhang + + + + Diminished + Szűkített + + + + Major pentatonic + Dúr pentaton + + + + Minor pentatonic + Mól pentaton + + + + Jap in sen + Jap in sen + + + + Major bebop + Dúr Bebop + + + + Dominant bebop + Domináns Bebop + + + + Blues + Blues + + + + Arabic + Arab + + + + Enigmatic + Enigmatikus + + + + Neopolitan + Nápolyi + + + + Neopolitan minor + Nápolyi moll + + + + Hungarian minor + Magyar moll + + + + Dorian + Dór + + + + Phrygian + Fríg + + + + Lydian + Líd + + + + Mixolydian + Mixolíd + + + + Aeolian + Eol + + + + Locrian + Lokriszi + + + + Minor + Moll + + + + Chromatic + Kromatikus + + + + Half-Whole Diminished + Fél-egész szűkített + + + + 5 + 5 + + + + Phrygian dominant + Fríg domináns + + + + Persian + Perzsa + + + + InstrumentSoundShaping + + + VOLUME + HANGERŐ + + + + Volume + Hangerő + + + + CUTOFF + FREKV + + + + Cutoff frequency + Vágási frekvencia + + + + RESO + RESO + + + + Resonance + Rezonancia + + + + JackAppDialog + + + Add JACK Application + + + + + Note: Features not implemented yet are greyed out + + + + + Application + + + + + Name: + + + + + Application: + + + + + From template + + + + + Custom + + + + + Template: + + + + + Command: + + + + + Setup + + + + + Session Manager: + + + + + None + + + + + Audio inputs: + + + + + MIDI inputs: + + + + + Audio outputs: + + + + + MIDI outputs: + + + + + Take control of main application window + + + + + Workarounds + + + + + Wait for external application start (Advanced, for Debug only) + + + + + Capture only the first X11 Window + + + + + Use previous client output buffer as input for the next client + + + + + Simulate 16 JACK MIDI outputs, with MIDI channel as port index + + + + + Error here + + + + + NSM applications cannot use abstract or absolute paths + + + + + NSM applications cannot use CLI arguments + + + + + You need to save the current Carla project before NSM can be used + + + + + JuceAboutW + + + This program uses JUCE version %1. + Ez a program a JUCE %1 verziót használja. + + + + MidiPatternW + + + MIDI Pattern + MIDI Pattern + + + + Time Signature: + Ütemjelzés: + + + + + + 1/4 + 1/4 + + + + 2/4 + 2/4 + + + + 3/4 + 3/4 + + + + 4/4 + 4/4 + + + + 5/4 + 5/4 + + + + 6/4 + 6/4 + + + + Measures: + + + + + + + 1 + 1 + + + + 2 + 2 + + + + 3 + 3 + + + + 4 + 4 + + + + 5 + 5 + + + + 6 + 6 + + + + 7 + 7 + + + + 8 + 8 + + + + 9 + 9 + + + + 10 + 10 + + + + 11 + 11 + + + + 12 + 12 + + + + 13 + 13 + + + + 14 + 14 + + + + 15 + 15 + + + + 16 + 16 + + + + Default Length: + Alapértelmezett hossz: + + + + + 1/16 + 1/16 + + + + + 1/15 + 1/15 + + + + + 1/12 + 1/12 + + + + + 1/9 + 1/9 + + + + + 1/8 + 1/8 + + + + + 1/6 + 1/6 + + + + + 1/3 + 1/3 + + + + + 1/2 + 1/2 + + + + Quantize: + Kvantálás: + + + + &File + &Fájl + + + + &Edit + &Szerkesztés + + + + &Quit + &Kilépés + + + + Esc + + + + + &Insert Mode + &Beszúrás mód + + + + F + F + + + + &Velocity Mode + &Velocity Mód + + + + D + D + + + + Select All + Összes kijelölése + + + + A + A + + + + PatchesDialog + + + + Qsynth: Channel Preset + + + + + + Bank selector + Bank választó + + + + + Bank + Bank + + + + + Program selector + Program választó + + + + + Patch + Patch + + + + + Name + Név + + + + + OK + OK + + + + + Cancel + Mégse + + + + PluginBrowser + + + no description + nincs leírás + + + + A native amplifier plugin + Natív erősítő + + + + Simple sampler with various settings for using samples (e.g. drums) in an instrument-track + Egyszerű sampler különböző beállításokkal a hangminták (pl. dobok) hangszersávon történő használatához + + + + Boost your bass the fast and simple way + Mélytartomány kiemelése gyors és egyszerű módon + + + + Customizable wavetable synthesizer + Testreszabható hullámtábla-szintetizátor + + + + An oversampling bitcrusher + + + + + Carla Patchbay Instrument + Carla Patchbay hangszer + + + + Carla Rack Instrument + Carla Rack hangszer + + + + A dynamic range compressor. + Dinamikakompresszor + + + + A 4-band Crossover Equalizer + 4 sávos crossover equalizer + + + + A native delay plugin + Natív késleltetés + + + + A Dual filter plugin + Kettős szűrő + + + + plugin for processing dynamics in a flexible way + Dinamikatartomány kezelése rugalmas módon + + + + A native eq plugin + Natív equalizer + + + + A native flanger plugin + Natív flanger + + + + Emulation of GameBoy (TM) APU + A GameBoy (TM) APU emulációja + + + + Player for GIG files + Lejátszó GIG fájlokhoz + + + + Filter for importing Hydrogen files into LMMS + Szűrő a Hydrogen fájlok LMMS-be történő importálásához + + + + Versatile drum synthesizer + Sokoldalú dobszintetizátor + + + + List installed LADSPA plugins + Telepített LADSPA bővítmények listája + + + + plugin for using arbitrary LADSPA-effects inside LMMS. + Bővítmény tetszőleges LADSPA effektek LMMS-ben történő használatához + + + + Incomplete monophonic imitation TB-303 + Félkész monofonikus TB-303 imitáció + + + + plugin for using arbitrary LV2-effects inside LMMS. + Bővítmény tetszőleges LV2 effektek LMMS-ben történő használatához + + + + plugin for using arbitrary LV2 instruments inside LMMS. + Bővítmény tetszőleges LV2 hangszerek LMMS-ben történő használatához + + + + Filter for exporting MIDI-files from LMMS + Szűrő a MIDI fájlok LMMS-ből történő exportálásához + + + + Filter for importing MIDI-files into LMMS + Szűrő a MIDI fájlok LMMS-be történő importálásához + + + + Monstrous 3-oscillator synth with modulation matrix + Szörnyűséges 3 oszcillátoros szintetizátor modulációs mátrixszal + + + + A multitap echo delay plugin + Többlépéses késleltetés + + + + A NES-like synthesizer + NES-szerű szintetizátor + + + + 2-operator FM Synth + 2 operátoros FM szintetizátor + + + + Additive Synthesizer for organ-like sounds + Additív szintetizátor orgonaszerű hangokhoz + + + + GUS-compatible patch instrument + + + + + Plugin for controlling knobs with sound peaks + Szabályzók vezérlése a hangjel segítségével + + + + Reverb algorithm by Sean Costello + Sean Costello zengető algoritmusa + + + + Player for SoundFont files + Lejátszó a SoundFont fájlokhoz + + + + LMMS port of sfxr + + + + + Emulation of the MOS6581 and MOS8580 SID. +This chip was used in the Commodore 64 computer. + A Commodore 64-ben használt MOS6581 és MOS8580 SID chip emulációja. + + + + A graphical spectrum analyzer. + Grafikus spektrum-analizátor + + + + Plugin for enhancing stereo separation of a stereo input file + Bővítmény a sztereó fájlok sztereó különválasztásának javításához + + + + Plugin for freely manipulating stereo output + Bővítmény a sztereó kimenet manipulálásához + + + + Tuneful things to bang on + Hangolt dolgok, amit ütni lehet + + + + Three powerful oscillators you can modulate in several ways + Három erőteljes oszcillátor számos modulációs móddal + + + + A stereo field visualizer. + Sztereó tér megjelenítése + + + + VST-host for using VST(i)-plugins within LMMS + VST host a VSTi bővítmények használatához + + + + Vibrating string modeler + Rezgő húrok fizikai modellezése + + + + plugin for using arbitrary VST effects inside LMMS. + Bővítmény tetszőleges VST effektek LMMS-ben történő használatához + + + + 4-oscillator modulatable wavetable synth + + + + + plugin for waveshaping + Hullámformálásra használható bővítmény + + + + Mathematical expression parser + Matematikai kifejezés értelmező + + + + Embedded ZynAddSubFX + Beágyazott ZynAddSubFX + + + + An all-pass filter allowing for extremely high orders. + + + + + Granular pitch shifter + + + + + Upwards/downwards multiband compression plugin powered by the eldritch elder god LOMMUS. + + + + + Basic Slicer + + + + + Tap to the beat + + + + + PluginEdit + + + Plugin Editor + + + + + Edit + Szerkesztés + + + + Control + Vezérlő + + + + MIDI Control Channel: + MIDI csatorna: + + + + N + N + + + + Output dry/wet (100%) + + + + + Output volume (100%) + Kimeneti hangerő (100%) + + + + Balance Left (0%) + + + + + + Balance Right (0%) + + + + + Use Balance + + + + + Use Panning + + + + + Settings + Beállítások + + + + Use Chunks + + + + + Audio: + Audió: + + + + Fixed-Size Buffer + Fix méretű puffer + + + + Force Stereo (needs reload) + + + + + MIDI: + MIDI: + + + + Map Program Changes + + + + + Send Notes + + + + + Send Bank/Program Changes + Bank- és programváltás küldése + + + + Send Control Changes + + + + + Send Channel Pressure + + + + + Send Note Aftertouch + Aftertouch küldése + + + + Send Pitchbend + Hanghajlítás küldése + + + + Send All Sound/Notes Off + Minden hang kikapcsolása + + + + +Plugin Name + + +Bővítmény név + + + + + Program: + Program: + + + + MIDI Program: + MIDI Program: + + + + Save State + Állapot mentése + + + + Load State + Állapot betöltése + + + + Information + Információ + + + + Label/URI: + Címke/URI: + + + + Name: + Név: + + + + Type: + Típus: + + + + Maker: + Készítő: + + + + Copyright: + Copyright: + + + + Unique ID: + Egyedi azonosító: + + + + PluginFactory + + + Plugin not found. + A bővítmény nem található. + + + + LMMS plugin %1 does not have a plugin descriptor named %2! + A(z) %1 LMMS bővítmény nem rendelkezik %2 nevű plugin-leíróval. + + + + PluginListDialog + + + Carla - Add New + + + + + Requirements + - - Plugin Version - Plugin verzió + + With Custom GUI + - - <br>Version %1<br>Carla is a fully-featured audio plugin host%2.<br><br>Copyright (C) 2011-2019 falkTX<br> - <br>Verzió: %1<br>A Carla egy teljes értékű audio plugin host%2.<br><br>Copyright (C) 2011-2019 falkTX<br> + + With CV Ports + - - - (Engine not running) - (A motor nem fut) + + Real-time safe only + - - Everything! (Including LRDF) - Minden! (Az LRDF-et is beleértve) + + Stereo only + - - Everything! (Including CustomData/Chunks) - Minden! (CustomData/Chunks beleértve) + + With Inline Display + - - About 110&#37; complete (using custom extensions)<br/>Implemented Feature/Extensions:<ul><li>http://lv2plug.in/ns/ext/atom</li><li>http://lv2plug.in/ns/ext/buf-size</li><li>http://lv2plug.in/ns/ext/data-access</li><li>http://lv2plug.in/ns/ext/event</li><li>http://lv2plug.in/ns/ext/instance-access</li><li>http://lv2plug.in/ns/ext/log</li><li>http://lv2plug.in/ns/ext/midi</li><li>http://lv2plug.in/ns/ext/options</li><li>http://lv2plug.in/ns/ext/parameters</li><li>http://lv2plug.in/ns/ext/port-props</li><li>http://lv2plug.in/ns/ext/presets</li><li>http://lv2plug.in/ns/ext/resize-port</li><li>http://lv2plug.in/ns/ext/state</li><li>http://lv2plug.in/ns/ext/time</li><li>http://lv2plug.in/ns/ext/uri-map</li><li>http://lv2plug.in/ns/ext/urid</li><li>http://lv2plug.in/ns/ext/worker</li><li>http://lv2plug.in/ns/extensions/ui</li><li>http://lv2plug.in/ns/extensions/units</li><li>http://home.gna.org/lv2dynparam/rtmempool/v1</li><li>http://kxstudio.sf.net/ns/lv2ext/external-ui</li><li>http://kxstudio.sf.net/ns/lv2ext/programs</li><li>http://kxstudio.sf.net/ns/lv2ext/props</li><li>http://kxstudio.sf.net/ns/lv2ext/rtmempool</li><li>http://ll-plugins.nongnu.org/lv2/ext/midimap</li><li>http://ll-plugins.nongnu.org/lv2/ext/miditype</li></ul> - Körülbelül 110&#37;-ig teljes (egyedi bővítményekkel)<br/>Elérhető szolgáltatások/bővítmények:<ul><li>http://lv2plug.in/ns/ext/atom</li><li>http://lv2plug.in/ns/ext/buf-size</li><li>http://lv2plug.in/ns/ext/data-access</li><li>http://lv2plug.in/ns/ext/event</li><li>http://lv2plug.in/ns/ext/instance-access</li><li>http://lv2plug.in/ns/ext/log</li><li>http://lv2plug.in/ns/ext/midi</li><li>http://lv2plug.in/ns/ext/options</li><li>http://lv2plug.in/ns/ext/parameters</li><li>http://lv2plug.in/ns/ext/port-props</li><li>http://lv2plug.in/ns/ext/presets</li><li>http://lv2plug.in/ns/ext/resize-port</li><li>http://lv2plug.in/ns/ext/state</li><li>http://lv2plug.in/ns/ext/time</li><li>http://lv2plug.in/ns/ext/uri-map</li><li>http://lv2plug.in/ns/ext/urid</li><li>http://lv2plug.in/ns/ext/worker</li><li>http://lv2plug.in/ns/extensions/ui</li><li>http://lv2plug.in/ns/extensions/units</li><li>http://home.gna.org/lv2dynparam/rtmempool/v1</li><li>http://kxstudio.sf.net/ns/lv2ext/external-ui</li><li>http://kxstudio.sf.net/ns/lv2ext/programs</li><li>http://kxstudio.sf.net/ns/lv2ext/props</li><li>http://kxstudio.sf.net/ns/lv2ext/rtmempool</li><li>http://ll-plugins.nongnu.org/lv2/ext/midimap</li><li>http://ll-plugins.nongnu.org/lv2/ext/miditype</li></ul> + + Favorites only + - - - - Using Juce host - JUCE host használatával + + (Number of Plugins go here) + - - About 85% complete (missing vst bank/presets and some minor stuff) - Körülbelül 85%-ig teljes (VST bankok/presetek és néhány apróbb dolog hiányzik) + + &Add Plugin + - - - CarlaHostW - - MainWindow - MainWindow + + Cancel + - - Rack - Rack + + Refresh + - - Patchbay - Patchbay + + Reset filters + - - Logs - Naplók + + + + + + + + + + + + + + + + + TextLabel + - - Loading... - Betöltés... + + Format: + - - Buffer Size: - Buffer méret: + + Architecture: + - - Sample Rate: - Mintavételi frekvencia: + + Type: + - - ? Xruns - ? Xrun + + MIDI Ins: + - - DSP Load: %p% - DSP terhelés: %p% + + Audio Ins: + - - &File - &Fájl + + CV Outs: + - - &Engine - &Motor + + MIDI Outs: + - - &Plugin - &Plugin + + Parameter Ins: + - - Macros (all plugins) - Makrók (minden plugin) + + Parameter Outs: + - - &Canvas - &Vászon + + Audio Outs: + - - Zoom - Nagyítás + + CV Ins: + - - &Settings - &Beállítások + + UniqueID: + - - &Help - &Súgó + + Has Inline Display: + - - toolBar - toolBar + + Has Custom GUI: + - - Disk - Lemez + + Is Synth: + - - - Home - Kezdőlap + + Is Bridged: + + + + + Information + + + + + Name + + + + + Label/Id/URI + + + + + Maker + + + + + Binary/Filename + + + + + Format + + + + + Internal + + + + + LADSPA + + + + + DSSI + + + + + LV2 + + + + + VST2 + + + + + VST3 + + + + + CLAP + + + + + AU + + + + + JSFX + + + + + Sound Kits + + + + + Type + + + + + Effects + + + + + Instruments + + + + + MIDI Plugins + + + + + Other/Misc + + + + + Category + + + + + All + + + + + Delay + + + + + Distortion + + + + + Dynamics + + + + + EQ + + + + + Filter + - - Transport - Továbbítás + + Modulator + - - Playback Controls - Lejátszás vezérlők + + Synth + - - Time Information - Idő Információ + + Utility + - - Frame: + + + Other - - 000'000'000 - 000'000'000 + + Architecture + - - Time: - Idő: + + + Native + - - 00:00:00 - 00:00:00 + + Bridged + - - BBT: - BBT: + + Bridged (Wine) + - - 000|00|0000 - 000|00|0000 + + Focus Text Search + - - Settings - Beállítások + + Ctrl+F + - - BPM - BPM + + Bridged (32bit) + - - Use JACK Transport - JACK Transport használata + + Discovering internal plugins... + - - Use Ableton Link - Ableton Link használata + + Discovering LADSPA plugins... + - - &New - &Új + + Discovering DSSI plugins... + - - Ctrl+N - Ctrl+N + + Discovering LV2 plugins... + - - &Open... - &Megnyitás... + + Discovering VST2 plugins... + - - - Open... - Megnyitás... + + Discovering VST3 plugins... + - - Ctrl+O - Ctrl+O + + Discovering CLAP plugins... + - - &Save - &Mentés + + Discovering AU plugins... + - - Ctrl+S - Ctrl+S + + Discovering JSFX plugins... + - - Save &As... - Mentés &másként... + + Discovering SF2 kits... + - - - Save As... - Mentés másként... + + Discovering SFZ kits... + - - Ctrl+Shift+S - Ctrl+Shift+S + + Unknown + - - &Quit - &Kilépés + + + + + Yes + - - Ctrl+Q - Ctrl+Q + + + + + No + + + + PluginParameter - - &Start - &Start + + Form + Form - - F5 - F5 + + Parameter Name + Paraméter név - - St&op - St&op + + TextLabel + - - F6 - F6 + + ... + ... + + + PluginRefreshDialog - - &Add Plugin... - Plugin &hozzáadása... + + Plugin Refresh + - - Ctrl+A - Ctrl+A + + Search for: + - - &Remove All - Összes &eltávolítása + + All plugins, ignoring cache + - - Enable - Engedélyezés + + Updated plugins only + - - Disable - Tiltás + + Check previously invalid plugins + - - 0% Wet (Bypass) + + Press 'Scan' to begin the search - - 100% Wet + + Scan - - 0% Volume (Mute) - 0% Hangerő (Némítás) + + >> Skip + - - 100% Volume - 100% Hangerő + + Close + + + + PluginWidget - - Center Balance - Balansz középre állítása + + + + + + Frame + - - &Play - &Lejátszás + + Enable + Engedélyezés - - Ctrl+Shift+P - Ctrl+Shift+P + + On/Off + Be/Ki - - &Stop - &Stop + + + + + PluginName + - - Ctrl+Shift+X - Ctrl+Shift+X + + MIDI + MIDI - - &Backwards - &Vissza + + AUDIO IN + AUDIÓ BEMENET - - Ctrl+Shift+B - Ctrl+Shift+B + + AUDIO OUT + AUDIÓ KIMENET - - &Forwards - &Előre + + GUI + GUI - - Ctrl+Shift+F - Ctrl+Shift+F + + Edit + Szerkesztés - - &Arrange - &Rendezés + + Remove + Eltávolítás - - Ctrl+G - Ctrl+G + + Plugin Name + Bővítmény név - - - &Refresh - &Frissítés + + Preset: + Preset: + + + ProjectRenderer - - Ctrl+R - Ctrl+R + + WAV (*.wav) + WAV (*.wav) - - Save &Image... - &Kép mentése... + + FLAC (*.flac) + FLAC (*.flac) - - Auto-Fit - Automatikus kitöltés + + OGG (*.ogg) + OGG (*.ogg) - - Zoom In - Nagyítás + + MP3 (*.mp3) + MP3 (*.mp3) + + + QGroupBox - - Ctrl++ - Ctrl++ + + + Settings for %1 + + + + QObject - - Zoom Out - Kicsinyítés + + Reload Plugin + Bővítmény újratöltése - - Ctrl+- - Ctrl+- + + Show GUI + GUI megjelenítése - - Zoom 100% - Nagyítás 100% + + Help + Súgó - - Ctrl+1 - Ctrl+1 + + LADSPA plugins + - - Show &Toolbar - &Eszköztár megjelenítése + + The project contains %1 LADSPA plugin(s) which might have not been restored correctly! Please check the project. + - - &Configure Carla - Carla &konfigurálása + + URI: + - - &About - &Névjegy + + Project: + - - About &JUCE - &JUCE névjegye + + Maker: + - - About &Qt - &Qt névjegye + + Homepage: + - - Show Canvas &Meters - &Kivezérlésmérő megjelenítése + + License: + - - Show Canvas &Keyboard - &Billentyűzet megjelenítése + + File: %1 + - - Show Internal - Belső + + failed to load description + - - Show External - Külső + + Open audio file + - - Show Time Panel + + Error loading sample - - Show &Side Panel - Oldalsó &panel megjelenítése + + %1 (unsupported) + + + + QWidget - - &Connect... - &Csatlakozás + + + Name: + Név: - - Compact Slots - + + Maker: + Készítő: - - Expand Slots - + + Copyright: + Copyright: - - Perform secret 1 + + Requires Real Time: - - Perform secret 2 - + + + + Yes + Igen - - Perform secret 3 - + + + + No + Nem - - Perform secret 4 + + Real Time Capable: - - Perform secret 5 + + In Place Broken: - - Add &JACK Application... - &JACK alkalmazás hozzáadása... + + Channels In: + Bemeneti csatornák: - - &Configure driver... - &Driver konfigurálása... + + Channels Out: + Kimeneti csatornák: - - Panic - Pánik + + File: %1 + Fájl: %1 - - Open custom driver panel... - Driver vezérlőpaneljének megnyitása... + + File: + Fájl: - CarlaHostWindow - - - Export as... - Exportálás... - - - - - - - Error - Hiba - + XYControllerW - - Failed to load project - Nem sikerült betölteni a projektet + + XY Controller + - - Failed to save project - Nem sikerült menteni a projektet + + X Controls: + - - Quit - Kilépés + + Y Controls: + - - Are you sure you want to quit Carla? - Biztosan ki akarsz lépni? + + Smooth + - - Could not connect to Audio backend '%1', possible reasons: -%2 - Nem sikerült a(z) '%1' audio backendhez csatlakozni. Lehetséges okok: -%2 + + &Settings + - - Could not connect to Audio backend '%1' - Nem sikerült a(z) '%1' audio backendhez csatlakozni. + + Channels + - - Warning - Figyelmeztetés + + &File + - - There are still some plugins loaded, you need to remove them to stop the engine. -Do you want to do this now? - Néhány plugin még be van töltve, ezeket el kell távolítani a motor leállításához.. -Szeretnéd ezt most megtenni? + + Show MIDI &Keyboard + - - - CarlaInstrumentView - - Show GUI - GUI megjelenítése + + (All) + - - - CarlaSettingsW - - Settings - Beállítások + + 1 + - - main - main + + 2 + - - canvas - canvas + + 3 + - - engine - engine + + 4 + - - osc - osc + + 5 + - - file-paths - file-paths + + 6 + - - plugin-paths - plugin-paths + + 7 + - - wine - wine + + 8 + - - experimental - experimental + + 9 + - - Widget - Widget + + 10 + - - - Main - + + 11 + - - - Canvas - Vászon + + 12 + - - - Engine - Motor + + 13 + - - File Paths - Fájl útvonalak + + 14 + - - Plugin Paths - Plugin útvonalak + + 15 + - - Wine - Wine + + 16 + - - - Experimental - Kísérleti + + &Quit + - - <b>Main</b> - <b>Fő</b> + + Esc + - - Paths - Útvonalak + + (None) + + + + lmms::AmplifierControls - - Default project folder: - Alapértelmezett projekt mappa: + + Volume + - - Interface - Felület: + + Panning + - - Interface refresh interval: - Felület frissítési gyakorisága: + + Left gain + - - - ms - ms + + Right gain + + + + lmms::AudioFileProcessor - - Show console output in Logs tab (needs engine restart) - Konzol kimenet megjelenítése a Napló lapon (motor újraindítása szükséges) + + Amplify + - - Show a confirmation dialog before quitting - Megerősítés kilépés előtt + + Start of sample + - - - Theme - Téma + + End of sample + - - Use Carla "PRO" theme (needs restart) - Carla "PRO" téma használata (újraindítást igényel) + + Loopback point + - - Color scheme: - Színséma: + + Reverse sample + - - Black - Sötét + + Loop mode + - - System - Rendszer + + Stutter + - - Enable experimental features - Kísérleti funkciók engedélyezése + + Interpolation mode + - - <b>Canvas</b> - <b>Vászon</b> + + None + - - Bezier Lines - Bezier-vonalak + + Linear + - - Theme: - Téma: + + Sinc + - - Size: - Méret: + + Sample not found + + + + lmms::AudioJack - - 775x600 - 775x600 + + JACK client restarted + - - 1550x1200 - 1550x1200 + + LMMS was kicked by JACK for some reason. Therefore the JACK backend of LMMS has been restarted. You will have to make manual connections again. + - - 3100x2400 - 3100x2400 + + JACK server down + - - 4650x3600 - 4650x3600 + + The JACK server seems to have been shutdown and starting a new instance failed. Therefore LMMS is unable to proceed. You should save your project and restart JACK and LMMS. + - - 6200x4800 - 6200x4800 + + Client name + - - Options - Opciók + + Channels + + + + lmms::AudioOss - - Auto-hide groups with no ports - Port nélküli csoportok automatikus elrejtése + + Device + - - Auto-select items on hover - Elemek kijelölése rámutatáskor + + Channels + + + + lmms::AudioPortAudio::setupWidget - - Basic eye-candy (group shadows) - Árnyékok + + Backend + - - Render Hints - Megjelenítés + + Device + + + + lmms::AudioPulseAudio - - Anti-Aliasing - Anti-Aliasing + + Device + - - Full canvas repaints (slower, but prevents drawing issues) - Teljes vászon újrarajzolása (lassabb, de megelőzheti a grafikai problémákat) + + Channels + + + + lmms::AudioSdl::setupWidget - - <b>Engine</b> - <b>Motor</b> + + Playback device + - - - Core - Mag + + Input device + + + + lmms::AudioSndio - - Single Client - Egy kliens + + Device + - - Multiple Clients - Több kliens + + Channels + + + + lmms::AudioSoundIo::setupWidget - - - Continuous Rack - Összefüggő rack + + Backend + - - - Patchbay - Patchbay + + Device + + + + lmms::AutomatableModel - - Audio driver: - Audió driver: + + &Reset (%1%2) + - - Process mode: - Működési mód: + + &Copy value (%1%2) + - - - - - Maximum number of parameters to allow in the built-in 'Edit' dialog - Paraméterek maximális száma a Szerkesztés ablakban + + &Paste value (%1%2) + - - Max Parameters: + + &Paste value - - ... - ... + + Edit song-global automation + - - Reset Xrun counter after project load - Xrun számláló lenullázása projekt betöltésekor + + Remove song-global automation + - - Plugin UIs - Pluginek felülete + + Remove all linked controls + - - - How much time to wait for OSC GUIs to ping back the host - Várakozás az OSC GUI válaszára + + Connected to %1 + - - UI Bridge Timeout: + + Connected to controller - - Use OSC-GUI bridges when possible, this way separating the UI from DSP code + + Edit connection... - - Use UI bridges instead of direct handling when possible - UI hidak kasználata közvetlen kezelés helyett, ha lehetséges + + Remove connection + - - Make plugin UIs always-on-top - A plugin-ablakok mindig felül legyenek + + Connect to controller... + + + + lmms::AutomationClip - - Make plugin UIs appear on top of Carla (needs restart) - Pluginek felületének megjelenítése a Carla felett (újraindítást igényel) + + Drag a control while pressing <%1> + + + + lmms::AutomationTrack - - NOTE: Plugin-bridge UIs cannot be managed by Carla on macOS + + Automation track + + + lmms::BassBoosterControls - - - Restart the engine to load the new settings - Indítsd újra a motort az új beállítások betöltéséhez + + Frequency + - - <b>OSC</b> - <b>OSC</b> + + Gain + - - Enable OSC - OSC engedélyezése + + Ratio + + + + lmms::BitInvader - - Enable TCP port - TCP port engedélyezése + + Sample length + - - - Use specific port: - Megadott port használata: + + Interpolation + - - Overridden by CARLA_OSC_TCP_PORT env var - Felülírja a CARLA_OSC_TCP_PORT környezeti változó + + Normalize + + + + lmms::BitcrushControls - - - Use randomly assigned port - Véletlenszerű portszám használata + + Input gain + - - Enable UDP port - UDP port engedélyezése + + Input noise + - - Overridden by CARLA_OSC_UDP_PORT env var - Felülírja a CARLA_OSC_UDP_PORT környezeti változó + + Output gain + - - DSSI UIs require OSC UDP port enabled + + Output clip - - <b>File Paths</b> - <b>Fájl útvonalak</b> + + Sample rate + - - Audio - Audió + + Stereo difference + - - MIDI - MIDI + + Levels + - - Used for the "audiofile" plugin - Az "audiofile" plugin számára + + Rate enabled + - - Used for the "midifile" plugin - A "midifile" plugin számára + + Depth enabled + + + + lmms::Clip - - - Add... - Hozzáadás... + + Mute + + + + lmms::CompressorControls - - - Remove - Eltávolítás + + Threshold + - - - Change... - Módosít... + + Ratio + - - <b>Plugin Paths</b> - <b>Plugin útvonalak</b> + + Attack + - - LADSPA - LADSPA + + Release + - - DSSI - DSSI + + Knee + - - LV2 - LV2 + + Hold + - - VST2 - VST2 + + Range + - - VST3 - VST3 + + RMS Size + - - SF2/3 - SF2/3 + + Mid/Side + - - SFZ - SFZ + + Peak Mode + - - Restart Carla to find new plugins + + Lookahead Length - - <b>Wine</b> - <b>Wine</b> + + Input Balance + - - Executable - Futtatható + + Output Balance + - - Path to 'wine' binary: - A 'wine' futtatható állomány útvonala: + + Limiter + - - Prefix - Prefix + + Output Gain + - - Auto-detect Wine prefix based on plugin filename - Wine prefix automatikus felismerése a plugin fájlneve alapján + + Input Gain + - - Fallback: - Tartalék: + + Blend + - - Note: WINEPREFIX env var is preferred over this fallback - Megjegyzés: A WINEPREFIX környezeti változó ezt a beállítást felülbírálja. + + Stereo Balance + - - Realtime Priority - Valósidejű prioritás + + Auto Makeup Gain + - - Base priority: - Alap prioritás: + + Audition + - - WineServer priority: - WineServer prioritás: + + Feedback + - - These options are not available for Carla as plugin - Ezek a beállítások nem elérhetők a Carla pluginként való használatakor. + + Auto Attack + - - <b>Experimental</b> - <b>Kísérleti</b> + + Auto Release + - - Experimental options! Likely to be unstable! - Ezen funkciók használata instabilitáshoz vezethet! + + Lookahead + - - Enable plugin bridges - Plugin hidak engedélyezése + + Tilt + - - Enable Wine bridges - Wine hidak engedélyezése + + Tilt Frequency + - - Enable jack applications - JACK alkalmazások engedélyezése + + Stereo Link + - - Export single plugins to LV2 + + Mix + + + lmms::Controller - - Load Carla backend in global namespace (NOT RECOMMENDED) + + Controller %1 + + + lmms::DelayControls - - Fancy eye-candy (fade-in/out groups, glow connections) - Vizuális effektusok + + Delay samples + - - Use OpenGL for rendering (needs restart) - OpenGL használata a rendereléshez (újraindítást igényel) + + Feedback + - - High Quality Anti-Aliasing (OpenGL only) - Magas minőségű anti-aliasing (csak OpenGL) + + LFO frequency + - - Render Ardour-style "Inline Displays" - Ardour-féle "Inline kijelzők" megjelenítése + + LFO amount + - - Force mono plugins as stereo by running 2 instances at the same time. -This mode is not available for VST plugins. - Monó pluginek használata sztereóként 2 példány futtatásával. -Ez a mód nem elérhető VST pluginek esetén. + + Output gain + + + + lmms::DispersionControls - - Force mono plugins as stereo - Monó pluginek kényszerítése sztereóként + + Amount + - - Prevent plugins from doing bad stuff (needs restart) + + Frequency - - Whenever possible, run the plugins in bridge mode. + + Resonance - - Run plugins in bridge mode when possible + + Feedback - - - - - Add Path - Útvonal hozzáadása + + DC Offset Removal + - CompressorControlDialog + lmms::DualFilterControls - - Threshold: - Küszöb: + + Filter 1 enabled + - - Volume at which the compression begins to take place - Az a jelszint, amely felett a kompresszió elkezdődik + + Filter 1 type + - - Ratio: - Arány: + + Cutoff frequency 1 + - - How far the compressor must turn the volume down after crossing the threshold - Mennyire csökkentse a jelszintet a kompresszor a küszöb átlépése után + + Q/Resonance 1 + - - Attack: - Attack: + + Gain 1 + - - Speed at which the compressor starts to compress the audio - A kompresszió kezdetének sebessége + + Mix + - - Release: - Release: + + Filter 2 enabled + - - Speed at which the compressor ceases to compress the audio - A kompresszió megszűnésének sebessége + + Filter 2 type + - - Knee: - Lekerekítés: + + Cutoff frequency 2 + - - Smooth out the gain reduction curve around the threshold - Az erősítési görbe lekerekítése a küszöbérték körül + + Q/Resonance 2 + - - Range: - Tartomány: + + Gain 2 + - - Maximum gain reduction - Maximális jelszint-csökkentés + + + Low-pass + - - Lookahead Length: - Előretekintés hossza: + + + Hi-pass + - - How long the compressor has to react to the sidechain signal ahead of time - A kompresszor ennyi idővel előre reagál a sidechain jelre. + + + Band-pass csg + - - Hold: - Tartás: + + + Band-pass czpg + - - Delay between attack and release stages - Az attack és release fázisok közötti késleltetés + + + Notch + - - RMS Size: - RMS méret: + + + All-pass + - - Size of the RMS buffer - Az RMS puffer mérete + + + Moog + - - Input Balance: - Bemeneti balansz: + + + 2x Low-pass + - - Bias the input audio to the left/right or mid/side - Bemenet eltolása bal/jobb vagy mid/side irányban + + + RC Low-pass 12 dB/oct + - - Output Balance: - Kimeneti balansz: + + + RC Band-pass 12 dB/oct + - - Bias the output audio to the left/right or mid/side - Kimenet eltolása bal/jobb vagy mid/side irányban + + + RC High-pass 12 dB/oct + - - Stereo Balance: - Sztereó balansz: + + + RC Low-pass 24 dB/oct + - - Bias the sidechain signal to the left/right or mid/side - Sidechain jel eltolása bal/jobb vagy mid/side irányban + + + RC Band-pass 24 dB/oct + - - Stereo Link Blend: - Sztereó mód keverése: + + + RC High-pass 24 dB/oct + - - Blend between unlinked/maximum/average/minimum stereo linking modes - Sztereó módok közötti keverés + + + Vocal Formant + - - Tilt Gain: + + + 2x Moog - - Bias the sidechain signal to the low or high frequencies. -6 db is lowpass, 6 db is highpass. + + + SV Low-pass - - Tilt Frequency: + + + SV Band-pass - - Center frequency of sidechain tilt filter + + + SV High-pass - - Mix: - Keverés: + + + SV Notch + - - Balance between wet and dry signals - A nyers és a feldolgozott jel aránya + + + Fast Formant + - - Auto Attack: + + + Tripole + + + lmms::DynProcControls - - Automatically control attack value depending on crest factor + + Input gain - - Auto Release: + + Output gain - - Automatically control release value depending on crest factor + + Attack time - - Output gain - Kimeneti erősítés + + Release time + - - - Gain - Erősítés + + Stereo mode + + + + lmms::Effect - - Output volume - Kimeneti hangerő + + Effect enabled + - - Input gain - Bemeneti erősítés + + Wet/Dry mix + - - Input volume - Bemeneti hangerő + + Gate + - - Root Mean Square - Négyzetes közép + + Decay + + + + lmms::EffectChain - - Use RMS of the input - Bemenet RMS értékének használata + + Effects enabled + + + + lmms::Engine - - Peak - Csúcsérték + + Generating wavetables + - - Use absolute value of the input - Bemenet abszolútértékének használata + + Initializing data structures + - - Left/Right - Bal/Jobb + + Opening audio and midi devices + - - Compress left and right audio + + Launching audio engine threads + + + lmms::EnvelopeAndLfoParameters - - Mid/Side - Mid/Side + + Env pre-delay + - - Compress mid and side audio + + Env attack - - Compressor - Kompresszor + + Env hold + - - Compress the audio - Audió jel kompresszálása + + Env decay + - - Limiter - Limiter + + Env sustain + - - Set Ratio to infinity (is not guaranteed to limit audio volume) - Az arány végtelenre állítása (nem garantált a jelszint-korlátozás) + + Env release + - - Unlinked - Független + + Env mod amount + - - Compress each channel separately - Csatornák kezelése egymástól függetlenül + + LFO pre-delay + - - Maximum - Maximum + + LFO attack + - - Compress based on the loudest channel - A leghangosabb csatorna alapján + + LFO frequency + - - Average - Átlag + + LFO mod amount + - - Compress based on the averaged channel volume - A csatornák átlaga alapján + + LFO wave shape + - - Minimum - Minimum + + LFO frequency x 100 + - - Compress based on the quietest channel - A leghalkabb csatorna alapján + + Modulate env amount + - - Blend - Keverés + + Sample not found + + + + lmms::EqControls - - Blend between stereo linking modes - Sztereó módok közötti keverés + + Input gain + - - Auto Makeup Gain + + Output gain - - Automatically change makeup gain depending on threshold, knee, and ratio settings + + Low-shelf gain - - - Soft Clip + + Peak 1 gain - - Play the delta signal - Különbségi jel hallgatása + + Peak 2 gain + - - Use the compressor's output as the sidechain input - A kompresszor kimenetének használata sidechain bemenetként + + Peak 3 gain + - - Lookahead Enabled - Előretekintés engedélyezése + + Peak 4 gain + - - Enable Lookahead, which introduces 20 milliseconds of latency - Előretekintés engedélyezése, mely 20 ms késést eredményez. + + High-shelf gain + - - - CompressorControls - - Threshold - Küszöb + + HP res + - - Ratio - Arány + + Low-shelf res + - - Attack - Attack + + Peak 1 BW + - - Release - Release + + Peak 2 BW + - - Knee - Lekerekítés + + Peak 3 BW + - - Hold - Tartás + + Peak 4 BW + - - Range - Tartomány + + High-shelf res + - - RMS Size - RMS méret + + LP res + - - Mid/Side - Mid/Side + + HP freq + - - Peak Mode - Csúcsérték mód + + Low-shelf freq + - - Lookahead Length - Előretekintés hossza + + Peak 1 freq + - - Input Balance - Bemeneti balansz + + Peak 2 freq + - - Output Balance - Kimeneti balansz + + Peak 3 freq + - - Limiter - Limiter + + Peak 4 freq + - - Output Gain - Kimeneti erősítés + + High-shelf freq + - - Input Gain - Bemeneti erősítés + + LP freq + - - Blend - Keverés + + HP active + - - Stereo Balance - Sztereó balansz + + Low-shelf active + - - Auto Makeup Gain + + Peak 1 active - - Audition + + Peak 2 active - - Feedback - Visszacsatolás + + Peak 3 active + - - Auto Attack + + Peak 4 active - - Auto Release + + High-shelf active - - Lookahead - Előretekintés + + LP active + - - Tilt + + LP 12 - - Tilt Frequency + + LP 24 - - Stereo Link - Sztereó összekapcsolás + + LP 48 + - - Mix - Keverés + + HP 12 + - - - Controller - - Controller %1 - Vezérlő %1 + + HP 24 + - - - ControllerConnectionDialog - - Connection Settings - Kapcsolat tulajdonságai + + HP 48 + - - MIDI CONTROLLER - MIDI VEZÉRLŐ + + Low-pass type + - - Input channel - Bemeneti csatorna + + High-pass type + - - CHANNEL - CSATORNA + + Analyse IN + - - Input controller - Bemeneti eszköz + + Analyse OUT + + + + lmms::FlangerControls - - CONTROLLER - VEZÉRLŐ + + Delay samples + - - - Auto Detect - Automatikus felismerés + + LFO frequency + - - MIDI-devices to receive MIDI-events from - MIDI események fogadása erről az eszközről + + Amount + - - USER CONTROLLER - SZOFTVERES VEZÉRLŐ + + Stereo phase + - - MAPPING FUNCTION - HOZZÁRENDELÉSI FÜGGVÉNY + + Feedback + - - OK - OK + + Noise + - - Cancel - Mégse + + Invert + + + + lmms::FreeBoyInstrument - - LMMS - LMMS + + Sweep time + - - Cycle Detected. - Körkörös hozzárendelés. + + Sweep direction + - - - ControllerRackView - - Controller Rack - Vezérlő Rack + + Sweep rate shift amount + - - Add - Hozzáadás + + + Wave pattern duty cycle + - - Confirm Delete - Törlés megerősítése + + Channel 1 volume + - - Confirm delete? There are existing connection(s) associated with this controller. There is no way to undo. - Biztosan törlöd? Ehhez a vezérlőhöz működő kapcsolatok tartoznak. A visszavonás nem lehetséges. + + + + Volume sweep direction + - - - ControllerView - - Controls - Paraméterek + + + + Length of each step in sweep + - - Rename controller - Vezérlő átnevezése + + Channel 2 volume + - - Enter the new name for this controller - Add meg a vezérlő új nevét + + Channel 3 volume + - - LFO - LFO + + Channel 4 volume + - - &Remove this controller - Vezérlő &törlése + + Shift Register width + - - Re&name this controller - Vezérlő át&nevezése + + Right output level + - - - CrossoverEQControlDialog - - Band 1/2 crossover: - Sáv 1/2 frekvencia: + + Left output level + - - Band 2/3 crossover: - Sáv 2/3 frekvencia: + + Channel 1 to SO2 (Left) + - - Band 3/4 crossover: - Sáv 3/4 frekvencia: + + Channel 2 to SO2 (Left) + - - Band 1 gain - Sáv 1 erősítés + + Channel 3 to SO2 (Left) + - - Band 1 gain: - Sáv 1 erősítés: + + Channel 4 to SO2 (Left) + - - Band 2 gain - Sáv 2 erősítés + + Channel 1 to SO1 (Right) + - - Band 2 gain: - Sáv 2 erősítés: + + Channel 2 to SO1 (Right) + - - Band 3 gain - Sáv 3 erősítés + + Channel 3 to SO1 (Right) + - - Band 3 gain: - Sáv 3 erősítés: + + Channel 4 to SO1 (Right) + - - Band 4 gain - Sáv 4 erősítés + + Treble + - - Band 4 gain: - Sáv 4 erősítés: + + Bass + + + + lmms::GigInstrument - - Band 1 mute - Sáv 1 némítás + + Bank + - - Mute band 1 - Sáv 1 némítás + + Patch + - - Band 2 mute - Sáv 2 némítás + + Gain + + + + lmms::GranularPitchShifterControls - - Mute band 2 - Sáv 2 némítás + + Pitch + - - Band 3 mute - Sáv 3 némítás + + Grain Size + - - Mute band 3 - Sáv 3 némítás + + Spray + - - Band 4 mute - Sáv 4 némítás + + Jitter + - - Mute band 4 - Sáv 4 némítás + + Twitch + - - - DelayControls - - Delay samples - Késleltetési idő + + Pitch Stereo Spread + - - Feedback - Visszacsatolás + + Spray Stereo + - - LFO frequency - LFO frekvencia + + Shape + - - LFO amount - LFO mennyiség + + Fade Length + - - Output gain - Kimeneti erősítés + + Feedback + - - - DelayControlsDialog - - DELAY - IDŐ + + Minimum Allowed Latency + - - Delay time - Késleltetési idő + + Prefilter + - - FDBK - FDBK + + Density + - - Feedback amount - Visszacsatolás mennyisége: + + Glide + - - RATE - FREKV + + Ring Buffer Length + - - LFO frequency - LFO frekvencia + + 5 Seconds + - - AMNT - AMNT + + 10 Seconds (Size) + - - LFO amount - LFO mennyiség + + 40 Seconds (Size and Pitch) + - - Out gain - Kimeneti erősítés + + 40 Seconds (Size and Spray and Jitter) + - - Gain - Erősítés + + 120 Seconds (All of the above) + - Dialog - - - Add JACK Application - JACK alkalmazás hozzáadása - + lmms::InstrumentFunctionArpeggio - - Note: Features not implemented yet are greyed out - Megjegyzés: A nem implementált funkciók szürkével jelennek meg. + + Arpeggio + - - Application - Alkalmazás + + Arpeggio type + - - Name: - Név: + + Arpeggio range + - - Application: - Alkalmazás: + + Note repeats + - - From template - Sablonból + + Cycle steps + - - Custom - Egyéni + + Skip rate + - - Template: - Sablon: + + Miss rate + - - Command: - Parancs: + + Arpeggio time + - - Setup - Beállítások + + Arpeggio gate + - - Session Manager: - Munkamenet kezelő: + + Arpeggio direction + - - None - Nincs + + Arpeggio mode + - - Audio inputs: - Audió bemenetek: + + Up + - - MIDI inputs: - MIDI bemenetek: + + Down + - - Audio outputs: - Audió kimenetek: + + Up and down + - - MIDI outputs: - MIDI kimenetek: + + Down and up + - - Take control of main application window - Irányítás átvétele az alkalmazás fő ablaka felett + + Random + - - Workarounds - Kerülő megoldások + + Free + - - Wait for external application start (Advanced, for Debug only) - Várakozás a külső alkalmazás indulására (Haladó, csak hibakeresési célra) + + Sort + - - Capture only the first X11 Window - Csak az első X11 ablak elkapása + + Sync + + + + lmms::InstrumentFunctionNoteStacking - - Use previous client output buffer as input for the next client - Előző kliens kimeneti pufferének használata a következő kliens bemeneteként + + Chords + - - Simulate 16 JACK MIDI outputs, with MIDI channel as port index - 16 JACK MIDI kimenet szimulálása, ahol a port száma a MIDI csatornát jelöli + + Chord type + - - Error here - Hiba helye + + Chord range + + + + lmms::InstrumentSoundShaping - - Carla Control - Connect - Carla Control - Kapcsolódás + + Envelopes/LFOs + - - Remote setup - Távoli kapcsolat beállítása + + Filter type + - - UDP Port: - UDP Port: + + Cutoff frequency + - - Remote host: - Távoli hoszt: + + Q/Resonance + - - TCP Port: - TCP Port: + + Low-pass + - - Reported host + + Hi-pass - - Automatic - Automatikus + + Band-pass csg + - - Custom: - Egyéni: + + Band-pass czpg + - - In some networks (like USB connections), the remote system cannot reach the local network. You can specify here which hostname or IP to make the remote Carla connect to. -If you are unsure, leave it as 'Automatic'. - Bizonyos hálózatokban (példáus USB kapcsolatnál) a távoli rendszer nem éri el a helyi hálózatot. Itt adhatod meg, hogy a távoli Carla példány mely állomásnévhez vagy IP-címhez kapcsolódjon. -Ha nem vagy biztos benne, válaszd az "Automatikus" lehetőséget. + + Notch + - - Set value - Érték megadása + + All-pass + - - TextLabel - TextLabel + + Moog + - - Scale Points - Beosztás + + 2x Low-pass + - - - DriverSettingsW - - Driver Settings - Driver Beállítások + + RC Low-pass 12 dB/oct + - - Device: - Eszköz: + + RC Band-pass 12 dB/oct + - - Buffer size: - Buffer méret: + + RC High-pass 12 dB/oct + - - Sample rate: - Mintavételi frekvencia: + + RC Low-pass 24 dB/oct + - - Triple buffer + + RC Band-pass 24 dB/oct - - Show Driver Control Panel - Driver vezérlőpaneljének megnyitása + + RC High-pass 24 dB/oct + - - Restart the engine to load the new settings - Indítsd újra a motort az új beállítások betöltéséhez + + Vocal Formant + - - - DualFilterControlDialog - - - - FREQ - FREKV + + + 2x Moog + - - - Cutoff frequency - Vágási frekvencia + + SV Low-pass + - - - RESO - RESO + + SV Band-pass + - - - Resonance - Rezonancia + + SV High-pass + - - - GAIN - ERŐSÍTÉS + + SV Notch + - - - Gain - Erősítés + + Fast Formant + - - MIX - MIX + + Tripole + + + + lmms::InstrumentTrack - - Mix - Keverés + + + unnamed_track + - - Filter 1 enabled - 1. szűrő engedélyezése + + Base note + - - Filter 2 enabled - 2. szűrő engedélyezése + + First note + - - Enable/disable filter 1 - 1. szűrő engedélyezése + + Last note + - - Enable/disable filter 2 - 2. szűrő engedélyezése + + Volume + - - - DualFilterControls - - Filter 1 enabled - 1. szűrő engedélyezése + + Panning + - - Filter 1 type - 1. szűrő típusa + + Pitch + - - Cutoff frequency 1 - Vágási frekvencia 1 + + Pitch range + - - Q/Resonance 1 - Q/Rezonancia 1 + + Mixer channel + - - Gain 1 - Erősítés 1 + + Master pitch + - - Mix - Keverés + + Enable/Disable MIDI CC + - - Filter 2 enabled - 2. szűrő engedélyezése + + CC Controller %1 + - - Filter 2 type - 2. szűrő típusa + + + Default preset + + + + lmms::Keymap - - Cutoff frequency 2 - Vágási frekvencia 2 + + empty + + + + lmms::KickerInstrument - - Q/Resonance 2 - Q/Rezonancia 2 + + Start frequency + - - Gain 2 - Erősítés 2 + + End frequency + - - - Low-pass - Aluláteresztő + + Length + - - - Hi-pass - Felüláteresztő + + Start distortion + - - - Band-pass csg - Sáváteresztő csg + + End distortion + - - - Band-pass czpg - Sáváteresztő czpg + + Gain + - - - Notch - Lyukszűrő + + Envelope slope + - - - All-pass - All-pass + + Noise + - - - Moog - Moog + + Click + - - - 2x Low-pass - 2x Aluláteresztő + + Frequency slope + - - - RC Low-pass 12 dB/oct - RC aluláteresztő 12 dB/oktáv + + Start from note + - - - RC Band-pass 12 dB/oct - RC sáváteresztő 12 dB/oktáv + + End to note + + + + lmms::LOMMControls - - - RC High-pass 12 dB/oct - RC felüláteresztő 12 dB/oktáv + + Depth + - - - RC Low-pass 24 dB/oct - RC aluláteresztő 24 dB/oktáv + + Time + - - - RC Band-pass 24 dB/oct - RC sáváteresztő 24 dB/oktáv + + Input Volume + - - - RC High-pass 24 dB/oct - RC felüláteresztő 24 dB/oktáv + + Output Volume + - - - Vocal Formant + + Upward Depth - - - 2x Moog - 2x Moog + + Downward Depth + - - - SV Low-pass - SV aluláteresztő + + High/Mid Split + - - - SV Band-pass - SV sáváteresztő + + Mid/Low Split + - - - SV High-pass - SV felüláteresztő + + Enable High/Mid Split + - - - SV Notch - SV lyukszűrő + + Enable Mid/Low Split + - - - Fast Formant + + Enable High Band - - - Tripole + + Enable Mid Band - - - Editor - - Transport controls - Továbbítás vezérlők + + Enable Low Band + - - Play (Space) - Lejátszás (Space) + + High Input Volume + - - Stop (Space) - Stop (Space) + + Mid Input Volume + - - Record - Felvétel + + Low Input Volume + - - Record while playing + + High Output Volume - - Toggle Step Recording + + Mid Output Volume - - - Effect - - Effect enabled - Effekt engedélyezése + + Low Output Volume + - - Wet/Dry mix + + Above Threshold High - - Gate + + Above Threshold Mid - - Decay - Decay + + Above Threshold Low + - - - EffectChain - - Effects enabled - Effektlánc engedélyezése + + Above Ratio High + - - - EffectRackView - - EFFECTS CHAIN - EFFEKTLÁNC + + Above Ratio Mid + - - Add effect - Effekt hozzáadása + + Above Ratio Low + - - - EffectSelectDialog - - Add effect - Effekt hozzáadása + + Below Threshold High + - - - Name - Név + + Below Threshold Mid + - - Type - Típus + + Below Threshold Low + - - Description - Leírás + + Below Ratio High + - - Author - Készítő + + Below Ratio Mid + - - - EffectView - - On/Off - Be/Ki + + Below Ratio Low + + + + + Attack High + - - W/D - W/D + + Attack Mid + - - Wet Level: + + Attack Low - - DECAY + + Release High - - Time: - Idő: + + Release Mid + - - GATE + + Release Low - - Gate: + + RMS Time - - Controls - Paraméterek + + Knee + - - Move &up - Mozgatás &fel + + Range + - - Move &down - Mozgatás &le + + Balance + - - &Remove this plugin - Plugin &eltávolítása + + Scale output volume with Depth + - - - EnvelopeAndLfoParameters - - Env pre-delay + + Stereo Link - - Env attack + + Auto Time - - Env hold + + Mix - - Env decay + + Feedback - - Env sustain + + Mid/Side - - Env release + + Lookahead - - Env mod amount + + Lookahead Length - - LFO pre-delay - LFO késleltetés + + Suppress upward compression for side band + + + + lmms::LadspaControl - - LFO attack - LFO felfutás + + Link channels + + + + lmms::LadspaEffect - - LFO frequency - LFO frekvencia + + Unknown LADSPA plugin %1 requested. + + + + lmms::Lb302Synth - - LFO mod amount - LFO moduláció mértéke + + VCF Cutoff Frequency + - - LFO wave shape - LFO hullámforma + + VCF Resonance + - - LFO frequency x 100 - LFO frekvencia x 100 + + VCF Envelope Mod + - - Modulate env amount + + VCF Envelope Decay - - - EnvelopeAndLfoView - - - DEL - DEL + + Distortion + - - - Pre-delay: - Késleltetés: + + Waveform + - - - ATT - ATT + + Slide Decay + - - - Attack: - Felfutás: + + Slide + - - HOLD - HOLD + + Accent + - - Hold: - Tartás: + + Dead + - - DEC - DEC + + 24dB/oct Filter + + + + lmms::LfoController - - Decay: - Decay: + + LFO Controller + - - SUST - SUST + + Base value + - - Sustain: - Kitartás: + + Oscillator speed + - - REL - REL + + Oscillator amount + - - Release: - Lecsengés: + + Oscillator phase + - - - AMT - AMT + + Oscillator waveform + - - - Modulation amount: - Moduláció mértéke: + + Frequency Multiplier + - - SPD - SPD + + Sample not found + + + + lmms::MalletsInstrument - - Frequency: - Frekvencia: + + Hardness + - - FREQ x 100 - FREKVENCIA x 100 + + Position + - - Multiply LFO frequency by 100 - LFO frekvencia szorzása 100-zal + + Vibrato gain + - - MODULATE ENV AMOUNT + + Vibrato frequency - - Control envelope amount by this LFO - A burkológörbe erősségének vezérlése az LFO-val + + Stick mix + - - ms/LFO: - ms/LFO: + + Modulator + - - Hint - Tipp + + Crossfade + - - Drag and drop a sample into this window. - Húzz egy hangmintát erre az ablakra. + + LFO speed + - - - EqControls - - Input gain - Bemeneti erősítés + + LFO depth + - - Output gain - Kimeneti erősítés + + ADSR + - - Low-shelf gain + + Pressure - - Peak 1 gain + + Motion - - Peak 2 gain + + Speed - - Peak 3 gain + + Bowed - - Peak 4 gain + + Instrument - - High-shelf gain + + Spread - - HP res - Felüláteresztő rezonancia + + Randomness + - - Low-shelf res + + Marimba - - Peak 1 BW + + Vibraphone - - Peak 2 BW + + Agogo - - Peak 3 BW + + Wood 1 - - Peak 4 BW + + Reso - - High-shelf res + + Wood 2 - - LP res - Aluláteresztő rezonancia + + Beats + - - HP freq - Felüláteresztő frekvencia + + Two fixed + - - Low-shelf freq + + Clump - - Peak 1 freq + + Tubular bells - - Peak 2 freq + + Uniform bar - - Peak 3 freq + + Tuned bar - - Peak 4 freq + + Glass - - High-shelf freq + + Tibetan bowl + + + lmms::MeterModel - - LP freq - Aluláteresztő frekvencia + + Numerator + - - HP active - Felüláteresztő aktív + + Denominator + + + + lmms::Microtuner - - Low-shelf active + + Microtuner - - Peak 1 active + + Microtuner on / off - - Peak 2 active + + Selected scale - - Peak 3 active + + Selected keyboard mapping + + + lmms::MidiController - - Peak 4 active + + MIDI Controller - - High-shelf active + + unnamed_midi_controller + + + lmms::MidiImport - - LP active - Aluláteresztő aktív + + + Setup incomplete + - - LP 12 - LP 12 + + You have not set up a default soundfont in the settings dialog (Edit->Settings). Therefore no sound will be played back after importing this MIDI file. You should download a General MIDI soundfont, specify it in settings dialog and try again. + - - LP 24 - LP 24 + + You did not compile LMMS with support for SoundFont2 player, which is used to add default sound to imported MIDI files. Therefore no sound will be played back after importing this MIDI file. + - - LP 48 - LP 48 + + MIDI Time Signature Numerator + - - HP 12 - HP 12 + + MIDI Time Signature Denominator + - - HP 24 - HP 24 + + Numerator + - - HP 48 - HP 48 + + Denominator + - - Low-pass type - Aluláteresztő meredeksége + + + Tempo + - - High-pass type - Felüláteresztő meredeksége + + Track + + + + lmms::MidiJack - - Analyse IN - Bemeneti jel mutatása + + JACK server down + When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (title) + - - Analyse OUT - Kimeneti jel mutatása + + The JACK server seems to be shuted down. + When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (dialog message) + - EqControlsDialog + lmms::MidiPort - - HP - Felüláteresztő + + Input channel + - - Low-shelf + + Output channel - - Peak 1 + + Input controller - - Peak 2 + + Output controller - - Peak 3 + + Fixed input velocity - - Peak 4 + + Fixed output velocity - - High-shelf + + Fixed output note - - LP - Aluláteresztő + + Output MIDI program + - - Input gain - Bemeneti erősítés + + Base velocity + - - - - Gain - Erősítés + + Receive MIDI-events + - - Output gain - Kimeneti erősítés + + Send MIDI-events + + + + lmms::Mixer - - Bandwidth: - Sávszélesség: + + Master + - - Octave - Oktáv + + + + Channel %1 + - - Resonance : - Rezonancia: + + Volume + - - Frequency: - Frekvencia: + + Mute + - - LP group - LP csoport + + Solo + + + + lmms::MixerRoute - - HP group - HP csoport + + + Amount to send from channel %1 to channel %2 + - EqHandle + lmms::MonstroInstrument - - Reso: - Rezonancia: + + Osc 1 volume + - - BW: - Sávszélesség: + + Osc 1 panning + - - - Freq: - Frekvencia: + + Osc 1 coarse detune + - - - ExportProjectDialog - - Export project - Projekt exportálása + + Osc 1 fine detune left + - - Export as loop (remove extra bar) - Extra ütem eltávolítása a projekt végéről + + Osc 1 fine detune right + - - Export between loop markers - Csak a kijelölt terület exportálása + + Osc 1 stereo phase offset + - - Render Looped Section: - Ismételt tartomány renderelése ennyiszer: + + Osc 1 pulse width + - - time(s) - + + Osc 1 sync send on rise + - - File format settings - Fájlformátum + + Osc 1 sync send on fall + - - File format: - Fájlformátum: + + Osc 2 volume + - - Sampling rate: - Mintavételi frekvencia: + + Osc 2 panning + - - 44100 Hz - 44100 Hz + + Osc 2 coarse detune + - - 48000 Hz - 48000 Hz + + Osc 2 fine detune left + - - 88200 Hz - 88200 Hz + + Osc 2 fine detune right + - - 96000 Hz - 96000 Hz + + Osc 2 stereo phase offset + - - 192000 Hz - 192000 Hz + + Osc 2 waveform + - - Bit depth: - Bitmélység: + + Osc 2 sync hard + - - 16 Bit integer - 16 bites egész + + Osc 2 sync reverse + - - 24 Bit integer - 24 bites egész + + Osc 3 volume + - - 32 Bit float - 32 bit lebegőpontos + + Osc 3 panning + - - Stereo mode: - Sztereó mód: + + Osc 3 coarse detune + - - Mono - Monó + + Osc 3 Stereo phase offset + - - Stereo - Sztereó + + Osc 3 sub-oscillator mix + - - Joint stereo - Összekapcsolt sztereó + + Osc 3 waveform 1 + - - Compression level: - Tömörítési szint: + + Osc 3 waveform 2 + - - Bitrate: - Bitsebesség: + + Osc 3 sync hard + - - 64 KBit/s - 64 KBit/s + + Osc 3 Sync reverse + - - 128 KBit/s - 128 KBit/s + + LFO 1 waveform + - - 160 KBit/s - 160 KBit/s + + LFO 1 attack + - - 192 KBit/s - 192 KBit/s + + LFO 1 rate + - - 256 KBit/s - 256 KBit/s + + LFO 1 phase + - - 320 KBit/s - 320 KBit/s + + LFO 2 waveform + - - Use variable bitrate - Változó bitsebesség használata + + LFO 2 attack + - - Quality settings - Minőség + + LFO 2 rate + - - Interpolation: - Interpoláció: + + LFO 2 phase + - - Zero order hold - Zero order hold + + Env 1 pre-delay + - - Sinc worst (fastest) - Sinc worst (leggyorsabb) + + Env 1 attack + - - Sinc medium (recommended) - Sinc medium (ajánlott) + + Env 1 hold + - - Sinc best (slowest) - Sinc best (leglassabb) + + Env 1 decay + - - Oversampling: - Túlmintavételezés: + + Env 1 sustain + - - 1x (None) - 1x (Nincs) + + Env 1 release + - - 2x - 2x + + Env 1 slope + - - 4x - 4x + + Env 2 pre-delay + - - 8x - 8x + + Env 2 attack + - - Start - Indítás + + Env 2 hold + - - Cancel - Mégse + + Env 2 decay + - - Could not open file - Nem lehet megnyitni a fájlt + + Env 2 sustain + - - Could not open file %1 for writing. -Please make sure you have write permission to the file and the directory containing the file and try again! - A(z) %1 fájl nem nyitható meg írásra. -Ellenőrizd, hogy rendelkezel-e a szükséges engedélyekkel és próbáld újra! + + Env 2 release + - - Export project to %1 - Exportálás a(z) %1 fájlba + + Env 2 slope + - - ( Fastest - biggest ) - ( Leggyorsabb - legnagyobb ) + + Osc 2+3 modulation + - - ( Slowest - smallest ) - ( Leglassabb - legkisebb ) + + Selected view + - - Error - Hiba + + Osc 1 - Vol env 1 + - - Error while determining file-encoder device. Please try to choose a different output format. - Hiba a fájlkódoló eszköz meghatározásakor. Próbálj másik kimeneti formátumot választani. + + Osc 1 - Vol env 2 + - - Rendering: %1% - Renderelés: %1% + + Osc 1 - Vol LFO 1 + - - - Fader - - Set value - Érték megadása + + Osc 1 - Vol LFO 2 + - - Please enter a new value between %1 and %2: - Adj meg egy új értéket %1 és %2 között: + + Osc 2 - Vol env 1 + - - - FileBrowser - - User content - Saját tartalom + + Osc 2 - Vol env 2 + - - Factory content - Gyári tartalom + + Osc 2 - Vol LFO 1 + - - Browser - Tallózás + + Osc 2 - Vol LFO 2 + - - Search - Keresés + + Osc 3 - Vol env 1 + - - Refresh list - Lista frissítése + + Osc 3 - Vol env 2 + - - - FileBrowserTreeWidget - - Send to active instrument-track - Küldés az aktív hangszersávra + + Osc 3 - Vol LFO 1 + - - Open containing folder - Tartalmazó mappa megnyitása + + Osc 3 - Vol LFO 2 + - - Song Editor - Dalszerkesztő + + Osc 1 - Phs env 1 + - - BB Editor - Beat+Bassline szerkesztő + + Osc 1 - Phs env 2 + - - Send to new AudioFileProcessor instance - Küldés új AudioFileProcessor példányba + + Osc 1 - Phs LFO 1 + - - Send to new instrument track - Küldés új hangszersávra + + Osc 1 - Phs LFO 2 + - - (%2Enter) - (%2Enter) + + Osc 2 - Phs env 1 + - - Send to new sample track (Shift + Enter) - Küldés új audió sávra (Shift + Enter) + + Osc 2 - Phs env 2 + - - Loading sample - Hangminta betöltése + + Osc 2 - Phs LFO 1 + - - Please wait, loading sample for preview... - Kis türelmet, hangminta betöltése előnézethez... + + Osc 2 - Phs LFO 2 + - - Error - Hiba + + Osc 3 - Phs env 1 + - - %1 does not appear to be a valid %2 file - %1 nem tűnik érvényes %2 fájlnak. + + Osc 3 - Phs env 2 + - - --- Factory files --- - --- Gyári tartalom --- + + Osc 3 - Phs LFO 1 + - - - FlangerControls - - Delay samples - Késleltetési idő + + Osc 3 - Phs LFO 2 + - - LFO frequency - LFO frekvencia + + Osc 1 - Pit env 1 + - - Seconds - Erősség + + Osc 1 - Pit env 2 + - - Stereo phase - Sztereó fázis + + Osc 1 - Pit LFO 1 + - - Regen - Visszacsatolás + + Osc 1 - Pit LFO 2 + - - Noise - Zaj + + Osc 2 - Pit env 1 + - - Invert - Invertálás + + Osc 2 - Pit env 2 + + + + + Osc 2 - Pit LFO 1 + - - - FlangerControlsDialog - - DELAY - IDŐ + + Osc 2 - Pit LFO 2 + - - Delay time: - Késleltetési idő: + + Osc 3 - Pit env 1 + - - RATE - FREKV + + Osc 3 - Pit env 2 + - - Period: - Periódus: + + Osc 3 - Pit LFO 1 + - - AMNT - AMNT + + Osc 3 - Pit LFO 2 + - - Amount: - Mérték: + + Osc 1 - PW env 1 + - - PHASE - FÁZIS + + Osc 1 - PW env 2 + - - Phase: - Fázis: + + Osc 1 - PW LFO 1 + - - FDBK - FDBK + + Osc 1 - PW LFO 2 + - - Feedback amount: - Visszacsatolás mértéke: + + Osc 3 - Sub env 1 + - - NOISE - ZAJ + + Osc 3 - Sub env 2 + - - White noise amount: - Fehér zaj mennyisége: + + Osc 3 - Sub LFO 1 + - - Invert - Invertálás + + Osc 3 - Sub LFO 2 + - - - FreeBoyInstrument - - Sweep time + + + Sine wave - - Sweep direction + + Bandlimited Triangle wave - - Sweep rate shift amount + + Bandlimited Saw wave - - - Wave pattern duty cycle - Kitöltési tényező + + Bandlimited Ramp wave + - - Channel 1 volume - 1. csatorna hangerő + + Bandlimited Square wave + - - - - Volume sweep direction + + Bandlimited Moog saw wave - - - - Length of each step in sweep + + + Soft square wave - - Channel 2 volume - 2. csatorna hangerő + + Absolute sine wave + - - Channel 3 volume - 3. csatorna hangerő + + + Exponential wave + - - Channel 4 volume - 4. csatorna hangerő + + White noise + - - Shift Register width - Shift regiszter méret + + Digital Triangle wave + - - Right output level - Jobb kimeneti szint + + Digital Saw wave + - - Left output level - Bal kimeneti szint + + Digital Ramp wave + - - Channel 1 to SO2 (Left) + + Digital Square wave - - Channel 2 to SO2 (Left) + + Digital Moog saw wave - - Channel 3 to SO2 (Left) + + Triangle wave - - Channel 4 to SO2 (Left) + + Saw wave - - Channel 1 to SO1 (Right) + + Ramp wave - - Channel 2 to SO1 (Right) + + Square wave - - Channel 3 to SO1 (Right) + + Moog saw wave - - Channel 4 to SO1 (Right) + + Abs. sine wave - - Treble - Magas + + Random + - - Bass - Mély + + Random smooth + - FreeBoyInstrumentView + lmms::NesInstrument - - Sweep time: + + Channel 1 enable - - Sweep time + + Channel 1 coarse detune - - Sweep rate shift amount: + + Channel 1 volume - - Sweep rate shift amount + + Channel 1 envelope enable - - - Wave pattern duty cycle: - Kitöltési tényező: - - - - - Wave pattern duty cycle - Kitöltési tényező + + Channel 1 envelope loop + - - Square channel 1 volume: - Négyszög csatorna 1 hangerő: + + Channel 1 envelope length + - - Square channel 1 volume - Négyszög csatorna 1 hangerő + + Channel 1 duty cycle + - - - - Length of each step in sweep: + + Channel 1 sweep enable - - - - Length of each step in sweep + + Channel 1 sweep amount - - Square channel 2 volume: - Négyszög csatorna 2 hangerő: + + Channel 1 sweep rate + - - Square channel 2 volume - Négyszög csatorna 2 hangerő + + Channel 2 enable + - - Wave pattern channel volume: - Rajzolt hullám hangerő: + + Channel 2 coarse detune + - - Wave pattern channel volume - Rajzolt hullám hangerő + + Channel 2 volume + - - Noise channel volume: - Zaj csatorna hangerő: + + Channel 2 envelope enable + - - Noise channel volume - Zaj csatorna hangerő + + Channel 2 envelope loop + - - SO1 volume (Right): + + Channel 2 envelope length - - SO1 volume (Right) + + Channel 2 duty cycle - - SO2 volume (Left): + + Channel 2 sweep enable - - SO2 volume (Left) + + Channel 2 sweep amount - - Treble: - Magas: + + Channel 2 sweep rate + - - Treble - Magas + + Channel 3 enable + - - Bass: - Mély: + + Channel 3 coarse detune + - - Bass - Mély + + Channel 3 volume + - - Sweep direction + + Channel 4 enable - - - - - - Volume sweep direction + + Channel 4 volume - - Shift register width - Shift regiszter méret + + Channel 4 envelope enable + - - Channel 1 to SO1 (Right) + + Channel 4 envelope loop - - Channel 2 to SO1 (Right) + + Channel 4 envelope length - - Channel 3 to SO1 (Right) + + Channel 4 noise mode - - Channel 4 to SO1 (Right) + + Channel 4 frequency mode - - Channel 1 to SO2 (Left) + + Channel 4 noise frequency - - Channel 2 to SO2 (Left) + + Channel 4 noise frequency sweep - - Channel 3 to SO2 (Left) + + Channel 4 quantize - - Channel 4 to SO2 (Left) + + Master volume - - Wave pattern graph + + Vibrato - MixerLine + lmms::OpulenzInstrument - - Channel send amount + + Patch - - Move &left - Mozgatás &balra - - - - Move &right - Mozgatás &jobbra + + Op 1 attack + - - Rename &channel - Csatorna át&nevezése + + Op 1 decay + - - R&emove channel - Csatorna &eltávolítása + + Op 1 sustain + - - Remove &unused channels - &Nem használt csatornák eltávolítása + + Op 1 release + - - Set channel color - Szín módosítása + + Op 1 level + - - Remove channel color - Szín eltávolítása + + Op 1 level scaling + - - Pick random channel color - Véletlenszerű szín + + Op 1 frequency multiplier + - - - MixerLineLcdSpinBox - - Assign to: - Hozzárendelés: + + Op 1 feedback + - - New mixer Channel - Új csatorna + + Op 1 key scaling rate + - - - Mixer - - Master - Master + + Op 1 percussive envelope + - - - - Channel %1 - FX %1 + + Op 1 tremolo + - - Volume - Hangerő + + Op 1 vibrato + - - Mute - Némítás + + Op 1 waveform + - - Solo - Szóló + + Op 2 attack + - - - MixerView - - Mixer - Keverő + + Op 2 decay + - - Fader %1 - FX Fader %1 + + Op 2 sustain + - - Mute - Némítás + + Op 2 release + - - Mute this mixer channel - Csatorna némítása + + Op 2 level + - - Solo - Szóló + + Op 2 level scaling + - - Solo mixer channel - Csatorna szóló + + Op 2 frequency multiplier + - - - MixerRoute - - - Amount to send from channel %1 to channel %2 - %1. csatornáról %2. csatornára küldött jel mennyisége + + Op 2 key scaling rate + - - - GigInstrument - - Bank - Bank + + Op 2 percussive envelope + - - Patch - Patch + + Op 2 tremolo + - - Gain - Erősítés + + Op 2 vibrato + - - - GigInstrumentView - - - Open GIG file - GIG fájl megnyitása + + Op 2 waveform + - - Choose patch - Patch kiválasztása + + FM + - - Gain: - Erősítés: + + Vibrato depth + - - GIG Files (*.gig) - GIG fájlok (*.gig) + + Tremolo depth + - GuiApplication - - - Working directory - Munkakönyvtár - + lmms::OrganicInstrument - - The LMMS working directory %1 does not exist. Create it now? You can change the directory later via Edit -> Settings. - A(z) %1 munkakönyvtár nem létezik. Létrehozod most? A munkakönyvtár bármikor megváltoztatható a Szerkesztés -> Beállítások menüpontban. - - - - Preparing UI - Kezelőfelület előkészítése + + Distortion + - - Preparing song editor - Dalszerkesztő előkészítése + + Volume + + + + lmms::OscillatorObject - - Preparing mixer - Keverő előkészítése + + Osc %1 waveform + - - Preparing controller rack - Controller Rack előkészítése + + Osc %1 harmonic + - - Preparing project notes - Jegyzetek előkészítése + + + Osc %1 volume + - - Preparing beat/bassline editor - Beat+Bassline szerkesztő előkészítése + + + Osc %1 panning + - - Preparing piano roll - Piano Roll előkészítése + + Osc %1 stereo detuning + - - Preparing automation editor - Automatizáció szerkesztő előkészítése + + Osc %1 coarse detuning + - - - InstrumentFunctionArpeggio - - Arpeggio - Arpeggio + + Osc %1 fine detuning left + - - Arpeggio type - Arpeggio típusa + + Osc %1 fine detuning right + - - Arpeggio range + + Osc %1 phase-offset - - Note repeats - Ismétlés + + Osc %1 stereo phase-detuning + - - Cycle steps + + Osc %1 wave shape - - Skip rate - Kihagyási arány + + Modulation type %1 + + + + lmms::PatternTrack - - Miss rate - Tévesztési arány + + Pattern %1 + - - Arpeggio time + + Clone of %1 + + + lmms::PeakController - - Arpeggio gate + + Peak Controller - - Arpeggio direction - Arpeggio iránya + + Peak Controller Bug + - - Arpeggio mode - Arpeggio mód + + Due to a bug in older version of LMMS, the peak controllers may not be connect properly. Please ensure that peak controllers are connected properly and re-save this file. Sorry for any inconvenience caused. + + + + lmms::PeakControllerEffectControls - - Up - Fel + + Base value + - - Down - Le + + Modulation amount + - - Up and down - Fel és le + + Attack + - - Down and up - Le és fel + + Release + - - Random - Véletlenszerű + + Treshold + - - Free - Szabad + + Mute output + - - Sort - Sorrend + + Absolute value + - - Sync - Szinkron + + Amount multiplicator + - InstrumentFunctionArpeggioView - - - ARPEGGIO - ARPEGGIO - + lmms::Plugin - - RANGE + + Plugin not found - - Arpeggio range: - Arpeggio tartomány: + + The plugin "%1" wasn't found or could not be loaded! +Reason: "%2" + - - octave(s) - oktáv + + Error while loading plugin + - - REP + + Failed to load plugin "%1"! + + + lmms::ReverbSCControls - - Note repeats: - Ismétlés: + + Input gain + - - time(s) - + + Size + - - CYCLE + + Color - - Cycle notes: + + Output gain + + + lmms::SaControls - - note(s) + + Pause - - SKIP + + Reference freeze - - Skip rate: - Kihagyási arány: + + Waterfall + - - - - % - % + + Averaging + - - - MISS + + + Stereo - - Miss rate: - Tévesztési arány: + + Peak hold + - - TIME - IDŐ + + Logarithmic frequency + - - Arpeggio time: - Arpeggio sebesség: + + Logarithmic amplitude + - - ms - ms + + Frequency range + - - GATE + + Amplitude range - - Arpeggio gate: + + FFT block size - - Chord: - Akkord: + + FFT window type + - - Direction: - Irány: + + Peak envelope resolution + - - Mode: - Mód: + + Spectrum display resolution + - - - InstrumentFunctionNoteStacking - - octave - oktáv + + Peak decay multiplier + - - - Major - Dúr + + Averaging weight + - - Majb5 - Majb5 + + Waterfall history size + - - minor - Moll + + Waterfall gamma correction + - - minb5 - minb5 + + FFT window overlap + - - sus2 - sus2 + + FFT zero padding + - - sus4 - sus4 + + + Full (auto) + - - aug - aug + + + + Audible + - - augsus4 - augsus4 + + Bass + - - tri + + Mids - - 6 - 6 + + High + - - 6sus4 - 6sus4 + + Extended + - - 6add9 - 6add9 + + Loud + - - m6 - m6 + + Silent + - - m6add9 - m6add9 + + (High time res.) + - - 7 - 7 + + (High freq. res.) + - - 7sus4 - 7sus4 + + Rectangular (Off) + - - 7#5 - 7#5 + + + Blackman-Harris (Default) + - - 7b5 - 7b5 + + Hamming + - - 7#9 - 7#9 + + Hanning + + + + lmms::SampleClip - - 7b9 - 7b9 + + Sample not found + + + + lmms::SampleTrack - - 7#5#9 - 7#5#9 + + Volume + - - 7#5b9 - 7#5b9 + + Panning + - - 7b5b9 - 7b5b9 + + Mixer channel + - - 7add11 - 7add11 + + + Sample track + + + + lmms::Scale - - 7add13 - 7add13 + + empty + + + + lmms::Sf2Instrument - - 7#11 - 7#11 + + Bank + - - Maj7 - Maj7 + + Patch + - - Maj7b5 - Maj7b5 + + Gain + - - Maj7#5 - Maj7#5 + + Reverb + - - Maj7#11 - Maj7#11 + + Reverb room size + - - Maj7add13 - Maj7add13 + + Reverb damping + - - m7 - m7 + + Reverb width + - - m7b5 - m7b5 + + Reverb level + - - m7b9 - m7b9 + + Chorus + - - m7add11 - m7add11 + + Chorus voices + - - m7add13 - m7add13 + + Chorus level + - - m-Maj7 - m-Maj7 + + Chorus speed + - - m-Maj7add11 - m-Maj7add11 + + Chorus depth + - - m-Maj7add13 - m-Maj7add13 + + A soundfont %1 could not be loaded. + + + + lmms::SfxrInstrument - - 9 - 9 + + Wave + + + + lmms::SidInstrument - - 9sus4 - 9sus4 + + Cutoff frequency + - - add9 - add9 + + Resonance + - - 9#5 - 9#5 + + Filter type + - - 9b5 - 9b5 + + Voice 3 off + - - 9#11 - 9#11 + + Volume + - - 9b13 - 9b13 + + Chip model + + + + lmms::SlicerT - - Maj9 - Maj9 + + Note threshold + - - Maj9sus4 - Maj9sus4 + + FadeOut + - - Maj9#5 - Maj9#5 + + Original bpm + - - Maj9#11 - Maj9#11 + + Slice snap + - - m9 - m9 + + BPM sync + - - madd9 - madd9 + + + slice_%1 + - - m9b5 - m9b5 + + Sample not found: %1 + + + + lmms::Song - - m9-Maj7 - m9-Maj7 + + Tempo + - - 11 - 11 + + Master volume + - - 11b9 - 11b9 + + Master pitch + - - Maj11 - Maj11 + + Aborting project load + - - m11 - m11 + + Project file contains local paths to plugins, which could be used to run malicious code. + - - m-Maj11 - m-Maj11 + + Can't load project: Project file contains local paths to plugins. + - - 13 - 13 + + LMMS Error report + - - 13#9 - 13#9 + + (repeated %1 times) + - - 13b9 - 13b9 + + The following errors occurred while loading: + + + + lmms::StereoEnhancerControls - - 13b5b9 - 13b5b9 + + Width + + + + lmms::StereoMatrixControls - - Maj13 - Maj13 + + Left to Left + - - m13 - m13 + + Left to Right + - - m-Maj13 - m-Maj13 + + Right to Left + - - Harmonic minor - Harmonikus moll + + Right to Right + + + + lmms::Track - - Melodic minor - Dallamos moll + + Mute + - - Whole tone - Egészhang + + Solo + + + + lmms::TrackContainer - - Diminished - Szűkített + + Couldn't import file + - - Major pentatonic - Dúr pentaton + + Couldn't find a filter for importing file %1. +You should convert this file into a format supported by LMMS using another software. + - - Minor pentatonic - Mól pentaton + + Couldn't open file + - - Jap in sen - Jap in sen + + Couldn't open file %1 for reading. +Please make sure you have read-permission to the file and the directory containing the file and try again! + - - Major bebop - Dúr Bebop + + Loading project... + - - Dominant bebop - Domináns Bebop + + + Cancel + - - Blues - Blues + + + Please wait... + - - Arabic - Arab + + Loading cancelled + - - Enigmatic - Enigmatikus + + Project loading was cancelled. + - - Neopolitan - Nápolyi + + Loading Track %1 (%2/Total %3) + - - Neopolitan minor - Nápolyi moll + + Importing MIDI-file... + + + + lmms::TripleOscillator - - Hungarian minor - Magyar moll + + Sample not found + + + + lmms::VecControls - - Dorian - Dór + + Display persistence amount + - - Phrygian - Fríg + + Logarithmic scale + - - Lydian - Líd + + High quality + + + + lmms::VestigeInstrument - - Mixolydian - Mixolíd + + Loading plugin + - - Aeolian - Eol + + Please wait while loading the VST plugin... + + + + lmms::Vibed - - Locrian - Lokriszi + + String %1 volume + - - Minor - Moll + + String %1 stiffness + - - Chromatic - Kromatikus + + Pick %1 position + - - Half-Whole Diminished - Fél-egész szűkített + + Pickup %1 position + - - 5 - 5 + + String %1 panning + - - Phrygian dominant - Fríg domináns + + String %1 detune + - - Persian - Perzsa + + String %1 fuzziness + - - Chords - Akkordok + + String %1 length + - - Chord type - Akkord típus + + Impulse %1 + - - Chord range - Akkord tartomány + + String %1 + - InstrumentFunctionNoteStackingView + lmms::VoiceObject - - STACKING + + Voice %1 pulse width - - Chord: - Akkord: + + Voice %1 attack + - - RANGE + + Voice %1 decay - - Chord range: - Akkord tartomány: + + Voice %1 sustain + - - octave(s) - oktáv + + Voice %1 release + - - - InstrumentMidiIOView - - ENABLE MIDI INPUT - MIDI BEMENET ENGEDÉLYEZÉSE + + Voice %1 coarse detuning + - - ENABLE MIDI OUTPUT - MIDI KIMENET ENGEDÉLYEZÉSE + + Voice %1 wave shape + - - - CHAN - This string must be be short, its width must be less than * width of LCD spin-box of two digits - CSAT + + Voice %1 sync + - - - VELOC - This string must be be short, its width must be less than * width of LCD spin-box of three digits + + Voice %1 ring modulate - - PROG - This string must be be short, its width must be less than the * width of LCD spin-box of three digits - PROG + + Voice %1 filtered + - - NOTE - This string must be be short, its width must be less than * width of LCD spin-box of three digits + + Voice %1 test + + + lmms::VstPlugin - - MIDI devices to receive MIDI events from - MIDI események fogadása erről az eszközről + + + The VST plugin %1 could not be loaded. + - - MIDI devices to send MIDI events to - MIDI események küldése erre az eszközre + + Open Preset + - - CUSTOM BASE VELOCITY + + + VST Plugin Preset (*.fxp *.fxb) - - Specify the velocity normalization base for MIDI-based instruments at 100% note velocity. + + : default - - BASE VELOCITY + + Save Preset - - - InstrumentTuningView - - MASTER PITCH - TRANSZPONÁLÁS + + .fxp + - - Enables the use of master pitch - Transzponálás engedélyezése + + .FXP + - - - InstrumentSoundShaping - - VOLUME - HANGERŐ + + .FXB + - - Volume - Hangerő + + .fxb + - - CUTOFF + + Loading plugin - - - Cutoff frequency - Vágási frekvencia + + Please wait while loading VST plugin... + + + + lmms::WatsynInstrument - - RESO - RESO + + Volume A1 + - - Resonance - Rezonancia + + Volume A2 + - - Envelopes/LFOs - Burkológörbék/LFO-k + + Volume B1 + - - Filter type - Szűrő típus + + Volume B2 + - - Q/Resonance - Q/Rezonancia + + Panning A1 + - - Low-pass - Aluláteresztő + + Panning A2 + - - Hi-pass - Felüláteresztő + + Panning B1 + - - Band-pass csg - Sáváteresztő csg + + Panning B2 + - - Band-pass czpg - Sáváteresztő czpg + + Freq. multiplier A1 + - - Notch - Lyukszűrő + + Freq. multiplier A2 + - - All-pass - All-pass + + Freq. multiplier B1 + - - Moog - Moog + + Freq. multiplier B2 + - - 2x Low-pass - 2x Aluláteresztő + + Left detune A1 + - - RC Low-pass 12 dB/oct - RC aluláteresztő 12 dB/oktáv + + Left detune A2 + - - RC Band-pass 12 dB/oct - RC sáváteresztő 12 dB/oktáv + + Left detune B1 + - - RC High-pass 12 dB/oct - RC felüláteresztő 12 dB/oktáv + + Left detune B2 + - - RC Low-pass 24 dB/oct - RC aluláteresztő 24 dB/oktáv + + Right detune A1 + - - RC Band-pass 24 dB/oct - RC sáváteresztő 24 dB/oktáv + + Right detune A2 + - - RC High-pass 24 dB/oct - RC felüláteresztő 24 dB/oktáv + + Right detune B1 + - - Vocal Formant + + Right detune B2 - - 2x Moog - 2x Moog + + A-B Mix + - - SV Low-pass - SV aluláteresztő + + A-B Mix envelope amount + - - SV Band-pass - SV sáváteresztő + + A-B Mix envelope attack + - - SV High-pass - SV felüláteresztő + + A-B Mix envelope hold + - - SV Notch - SV lyukszűrő + + A-B Mix envelope decay + - - Fast Formant + + A1-B2 Crosstalk - - Tripole + + A2-A1 modulation - - - InstrumentSoundShapingView - - TARGET - CÉL + + B2-B1 modulation + - - FILTER - SZŰRŐ + + Selected graph + + + + + lmms::WaveShaperControls + + + Input gain + - - FREQ - FREKV + + Output gain + + + + lmms::Xpressive - - Cutoff frequency: - Vágási frekvencia: + + Selected graph + - - Hz - Hz + + A1 + - - Q/RESO - Q/RESO + + A2 + - - Q/Resonance: - Q/Rezonancia: + + A3 + - - Envelopes, LFOs and filters are not supported by the current instrument. - A burkológörbék, LFO-k és szűrők nem támogatottak a jelenlegi hangszer által. + + W1 smoothing + - - - InstrumentTrack - - - unnamed_track - névtelen_sáv + + W2 smoothing + - - Base note - Alaphang + + W3 smoothing + - - First note - Legalsó hang + + Panning 1 + - - Last note - Legfelső hang + + Panning 2 + - - Volume - Hangerő + + Rel trans + + + + lmms::ZynAddSubFxInstrument - - Panning - Panoráma + + Portamento + - - Pitch - Hangmagasság + + Filter frequency + - - Pitch range - Hangmagasság tartomány + + Filter resonance + - - Mixer channel - Keverő csatorna + + Bandwidth + - - Master pitch - Transzponálás + + FM gain + - - Enable/Disable MIDI CC - MIDI CC engedélyezése + + Resonance center frequency + - - CC Controller %1 - CC vezérlő %1 + + Resonance bandwidth + - - - Default preset - Alapértelmezett preset + + Forward MIDI control change events + - InstrumentTrackView - - - Volume - Hangerő - + lmms::graphModel - - Volume: - Hangerő: + + Graph + + + + lmms::gui::AmplifierControlDialog - + VOL - VOL - - - - Panning - Panoráma + - - Panning: - Panoráma: + + Volume: + - + PAN - PAN + - - MIDI - MIDI + + Panning: + - - Input - Bemenet + + LEFT + - - Output - Kimenet + + Left gain: + - - Open/Close MIDI CC Rack - MIDI CC Rack megnyitása/bezárása + + RIGHT + - - Channel %1: %2 - FX %1: %2 + + Right gain: + - InstrumentTrackWindow + lmms::gui::AudioAlsaSetupWidget - - GENERAL SETTINGS - ÁLTALÁNOS BEÁLLÍTÁSOK - - - - Volume - Hangerő - - - - Volume: - Hangerő: + + Device + - - VOL - VOL + + Channels + + + + lmms::gui::AudioFileProcessorView - - Panning - Panoráma + + Open sample + - - Panning: - Panoráma: + + Reverse sample + - - PAN - PAN + + Disable loop + - - Pitch - Hangmagasság + + Enable loop + - - Pitch: - Hangmagasság: + + Enable ping-pong loop + - - cents - cent + + Continue sample playback across notes + - - PITCH + + Amplify: - - Pitch range (semitones) - Hangmagasság tartomány (félhangok) + + Start point: + - - RANGE + + End point: - - Mixer channel - Keverő csatorna + + Loopback point: + + + + lmms::gui::AudioFileProcessorWaveView - - CHANNEL - FX + + Sample length: + + + + lmms::gui::AutomationClipView - - Save current instrument track settings in a preset file - Aktuális hangszersáv beállításainak mentése + + Open in Automation editor + - - SAVE - MENTÉS + + Clear + - - Envelope, filter & LFO - Burkológörbe, szűrő, LFO + + Reset name + - - Chord stacking & arpeggio + + Change name - - Effects - Effektek + + Set/clear record + - - MIDI - MIDI + + Flip Vertically (Visible) + - - Miscellaneous - Egyéb + + Flip Horizontally (Visible) + - - Save preset - Preset mentése + + %1 Connections + - - XML preset file (*.xpf) - XML preset fájl (*.xpf) + + Disconnect "%1" + - - Plugin - Plugin + + Model is already connected to this clip. + - JackApplicationW + lmms::gui::AutomationEditor - - NSM applications cannot use abstract or absolute paths + + Edit Value - - NSM applications cannot use CLI arguments + + New outValue - - You need to save the current Carla project before NSM can be used + + New inValue + + + + + Please open an automation clip by double-clicking on it! - JuceAboutW + lmms::gui::AutomationEditorWindow - - About JUCE - A JUCE névjegye + + Play/pause current clip (Space) + - - <b>About JUCE</b> - <b>A JUCE névjegye</b> + + Stop playing of current clip (Space) + - - This program uses JUCE version 3.x.x. - Ez a program a JUCE 3.x.x verziót használja. + + Edit actions + - - JUCE (Jules' Utility Class Extensions) is an all-encompassing C++ class library for developing cross-platform software. - -It contains pretty much everything you're likely to need to create most applications, and is particularly well-suited for building highly-customised GUIs, and for handling graphics and sound. - -JUCE is licensed under the GNU Public Licence version 2.0. -One module (juce_core) is permissively licensed under the ISC. - -Copyright (C) 2017 ROLI Ltd. + + Draw mode (Shift+D) - - This program uses JUCE version %1. - Ez a program a JUCE %1 verziót használja. + + Erase mode (Shift+E) + - - - Knob - - Set linear - Lineáris skála + + Draw outValues mode (Shift+C) + - - Set logarithmic - Logaritmikus skála + + Edit tangents mode (Shift+T) + - - - Set value - Érték megadása + + Flip vertically + - - Please enter a new value between -96.0 dBFS and 6.0 dBFS: - Adj meg egy új értéket -96.0 dBFS és 6.0 dBFS között: + + Flip horizontally + - - Please enter a new value between %1 and %2: - Adj meg egy új értéket %1 és %2 között: + + Interpolation controls + - - - LadspaControl - - Link channels - Csatornák összekapcsolása + + Discrete progression + - - - LadspaControlDialog - - Link Channels - Csatornák összekapcsolása + + Linear progression + - - Channel - Csatorna + + Cubic Hermite progression + - - - LadspaControlView - - Link channels - Csatornák összekapcsolása + + Tension value for spline + - - Value: - Érték: + + Tension: + - - - LadspaEffect - - Unknown LADSPA plugin %1 requested. - Ismeretlen LADSPA plugin: %1 + + Zoom controls + - - - LcdFloatSpinBox - - Set value - Érték megadása + + Horizontal zooming + - - Please enter a new value between %1 and %2: - Adj meg egy új értéket %1 és %2 között: + + Vertical zooming + - - - LcdSpinBox - - Set value - Érték megadása + + Quantization controls + - - Please enter a new value between %1 and %2: - Adj meg egy új értéket %1 és %2 között: + + Quantization + - - - LeftRightNav - - - - Previous - Előző + + Clear ghost notes + - - - - Next - Következő + + + Automation Editor - no clip + - - Previous (%1) - Előző (%1) + + + Automation Editor - %1 + - - Next (%1) - Következő (%1) + + Model is already connected to this clip. + - LfoController - - - LFO Controller - LFO vezérlő - + lmms::gui::BassBoosterControlDialog - - Base value - Alapérték + + FREQ + - - Oscillator speed - Oszcillátor sebesség + + Frequency: + - - Oscillator amount - Moduláció mértéke + + GAIN + - - Oscillator phase - Oszcillátor fázis + + Gain: + - - Oscillator waveform - Oszcillátor hullámforma + + RATIO + - - Frequency Multiplier - Frekvencia szorzó + + Ratio: + - LfoControllerDialog - - - LFO - LFO - + lmms::gui::BitInvaderView - - BASE - ALAP + + Sample length + - - Base: - Alapérték: + + Draw your own waveform here by dragging your mouse on this graph. + - - FREQ - FREKV + + + Sine wave + - - LFO frequency: - LFO frekvencia: + + + Triangle wave + - - AMNT - AMNT + + + Saw wave + - - Modulation amount: - Moduláció mértéke: + + + Square wave + - - PHS + + + White noise - - Phase offset: - Fáziseltolás: + + + User-defined wave + - - degrees - fok + + + Smooth waveform + - - Sine wave - Szinuszhullám + + Interpolation + - - Triangle wave - Háromszöghullám + + Normalize + + + + lmms::gui::BitcrushControlDialog - - Saw wave - Fűrészfoghullám + + IN + - - Square wave - Négyszöghullám + + OUT + - - Moog saw wave - Moog fűrészfog + + + GAIN + - - Exponential wave - Exponenciális + + Input gain: + - - White noise - Fehér zaj + + NOISE + - - User-defined shape. -Double click to pick a file. - Felhasználó által megadott hullámforma. -Kattints duplán egy fájl kiválasztásához. + + Input noise: + - - Mutliply modulation frequency by 1 - Frekvencia szorzása 1-gyel + + Output gain: + - - Mutliply modulation frequency by 100 - Frekvencia szorzása 100-zal + + CLIP + - - Divide modulation frequency by 100 - Frekvencia osztása 100-zal + + Output clip: + - - - Engine - - Generating wavetables - Hullámtáblák generálása + + Rate enabled + - - Initializing data structures - Adatstruktúrák inicializálása + + Enable sample-rate crushing + - - Opening audio and midi devices - Audio és MIDI eszközök megnyitása + + Depth enabled + - - Launching mixer threads + + Enable bit-depth crushing - - - MainWindow - - Configuration file - Konfigurációs fájl + + FREQ + - - Error while parsing configuration file at line %1:%2: %3 - Hiba a konfigurációs fájl olvasásakor: -%1:%2: %3 + + Sample rate: + - - Could not open file - Nem lehet megnyitni a fájlt + + STEREO + - - Could not open file %1 for writing. -Please make sure you have write permission to the file and the directory containing the file and try again! - A(z) %1 fájl nem nyitható meg írásra. -Ellenőrizd, hogy rendelkezel-e a szükséges engedélyekkel és próbáld újra! + + Stereo difference: + - - Project recovery - Projekt helyreállítása + + QUANT + - - There is a recovery file present. It looks like the last session did not end properly or another instance of LMMS is already running. Do you want to recover the project of this session? - Létezik egy visszaállítási fájl. Úgy tűnik, hogy a legutóbbi munkamenet nem megfelelően fejeződött be, vagy az LMMS egy másik példánya már fut. Szeretnéd helyreállítani a munkamenetet? + + Levels: + + + + lmms::gui::CPULoadWidget - - - Recover - Visszaállítás + + DSP total: %1% + - - Recover the file. Please don't run multiple instances of LMMS when you do this. + + - Notes and setup: %1% - - - Discard - Elvetés + + - Instruments: %1% + - - Launch a default session and delete the restored files. This is not reversible. - Üres munkamenet indítása és a visszaállított fájlok törlése. Ez a művelet nem vonható vissza. + + - Effects: %1% + - - Version %1 - Verzió %1 + + - Mixing: %1% + + + + lmms::gui::CarlaInstrumentView - - Preparing plugin browser - Plugin tallózó előkészítése + + Show GUI + - - Preparing file browsers - Fájltallózók előlészítése + + Click here to show or hide the graphical user interface (GUI) of Carla. + - - My Projects - Projektjeim + + Params + - - My Samples - Mintáim + + Available from Carla version 2.1 and up. + + + + lmms::gui::CarlaParamsView - - My Presets - Presetek + + Search.. + - - My Home - Mappám + + Clear filter text + - - Root directory - Gyökérkönyvtár + + Only show knobs with a connection. + - - Volumes - Hangerők + + - Parameters + + + + lmms::gui::ClipView - - My Computer - Számítógépem + + Current position + - - &File - &Fájl + + Current length + - - &New - &Új + + + %1:%2 (%3:%4 to %5:%6) + - - &Open... - &Megnyitás... + + Press <%1> and drag to make a copy. + - - Loading background picture - Háttérkép betöltése + + Press <%1> for free resizing. + - - &Save - &Mentés + + Hint + - - Save &As... - Mentés &másként... + + Delete (middle mousebutton) + - - Save as New &Version - Mentés új &verzióként + + Delete selection (middle mousebutton) + - - Save as default template - Mentés alapértelmezett sablonként + + Cut + - - Import... - Importálás... + + Cut selection + - - E&xport... - E&xportálás... + + Merge Selection + - - E&xport Tracks... - Sávonkénti e&xportálás + + Copy + - - Export &MIDI... - &MIDI exportálása... + + Copy selection + - - &Quit - &Kilépés + + Paste + - - &Edit - &Szerkesztés + + Mute/unmute (<%1> + middle click) + - - Undo - Visszavonás + + Mute/unmute selection (<%1> + middle click) + - - Redo - Mégis + + Clip color + - - Settings - Beállítások + + Change + - - &View - &Nézet + + Reset + - - &Tools - &Eszközök + + Pick random + + + + lmms::gui::CompressorControlDialog - - &Help - &Súgó + + Threshold: + - - Online Help - Online súgó + + Volume at which the compression begins to take place + - - Help - Súgó + + Ratio: + - - About - Névjegy + + How far the compressor must turn the volume down after crossing the threshold + - - Create new project - Új projekt létrehozása + + Attack: + - - Create new project from template - Új projekt létrehozása sablonból + + Speed at which the compressor starts to compress the audio + - - Open existing project - Már létező projekt megnyitása + + Release: + - - Recently opened projects - Legutóbbi projektek + + Speed at which the compressor ceases to compress the audio + - - Save current project - Jelenlegi projekt mentése + + Knee: + - - Export current project - Jelenlegi projekt exportálása + + Smooth out the gain reduction curve around the threshold + - - Metronome - Metronóm + + Range: + - - - Song Editor - Dalszerkesztő + + Maximum gain reduction + - - - Beat+Bassline Editor - Beat+Bassline szerkesztő + + Lookahead Length: + - - - Piano Roll - Piano Roll + + How long the compressor has to react to the sidechain signal ahead of time + - - - Automation Editor - Automatizáció szerkesztő + + Hold: + - - - Mixer - Keverő + + Delay between attack and release stages + - - Show/hide controller rack - Controller Rack megjelenítése/elrejtése + + RMS Size: + - - Show/hide project notes - Jegyzetek megjelenítése/elrejtése + + Size of the RMS buffer + - - Untitled - Névtelen + + Input Balance: + - - Recover session. Please save your work! + + Bias the input audio to the left/right or mid/side - - LMMS %1 - LMMS %1 + + Output Balance: + - - Recovered project not saved + + Bias the output audio to the left/right or mid/side - - This project was recovered from the previous session. It is currently unsaved and will be lost if you don't save it. Do you want to save it now? - Ez a projekt egy korábbi munkamenetből lett visszaállítva és jelenleg nincs mentve. El akarod menteni most? + + Stereo Balance: + - - Project not saved - A projekt nincs elmentve + + Bias the sidechain signal to the left/right or mid/side + - - The current project was modified since last saving. Do you want to save it now? - A jelenlegi projekt módosítva lett a legutóbbi mentés óta. El szeretnéd menteni most? + + Stereo Link Blend: + - - Open Project - Projekt megnyitása + + Blend between unlinked/maximum/average/minimum stereo linking modes + - - LMMS (*.mmp *.mmpz) - LMMS (*.mmp *.mmpz) + + Tilt Gain: + - - Save Project - Projekt mentése + + Bias the sidechain signal to the low or high frequencies. -6 db is lowpass, 6 db is highpass. + - - LMMS Project - LMMS Projekt + + Tilt Frequency: + - - LMMS Project Template - LMMS Projekt Sablon + + Center frequency of sidechain tilt filter + - - Save project template - Projekt sablon mentése + + Mix: + - - Overwrite default template? - Felülírod az alapértelmezett sablont? + + Balance between wet and dry signals + - - This will overwrite your current default template. - Ez a művelet felülírja a jelenlegi alapértelmezett sablont. + + Auto Attack: + - - Help not available - Súgó nem elérhatő + + Automatically control attack value depending on crest factor + - - Currently there's no help available in LMMS. -Please visit http://lmms.sf.net/wiki for documentation on LMMS. + + Auto Release: - - Controller Rack - Vezérlő Rack + + Automatically control release value depending on crest factor + - - Project Notes - Jegyzetek + + Output gain + - - Fullscreen - Teljes képernyő + + + Gain + - - Volume as dBFS - Hangerő dBFS-ként + + Output volume + - - Smooth scroll - Sima görgetés + + Input gain + - - Enable note labels in piano roll + + Input volume - - MIDI File (*.mid) - MIDI fájl (*.mid) + + Root Mean Square + - - - untitled - névtelen + + Use RMS of the input + - - - Select file for project-export... - Válassz egy fájlt az exportáláshoz... + + Peak + - - Select directory for writing exported tracks... - Válassz mappát az exportált fájloknak... + + Use absolute value of the input + - - Save project - Projekt mentése + + Left/Right + - - Project saved - Projekt mentve + + Compress left and right audio + - - The project %1 is now saved. - A(z) %1 projekt mentésre került. + + Mid/Side + - - Project NOT saved. - A projekt NEM került mentésre. + + Compress mid and side audio + - - The project %1 was not saved! - A(z) %1 projekt mentése nem sikerült! + + Compressor + - - Import file - Fájl importálása + + Compress the audio + - - MIDI sequences - MIDI szekvenciák + + Limiter + - - Hydrogen projects - Hydrogen projektek + + Set Ratio to infinity (is not guaranteed to limit audio volume) + - - All file types - Minden fájl + + Unlinked + - - - MeterDialog - - - Meter Numerator - Ütemmutató számláló + + Compress each channel separately + - - Meter numerator - Ütemmutató számláló + + Maximum + - - - Meter Denominator - Ütemmutató nevező + + Compress based on the loudest channel + - - Meter denominator - Ütemmutató nevező + + Average + - - TIME SIG + + Compress based on the averaged channel volume - - - MeterModel - - Numerator - Számláló + + Minimum + - - Denominator - Nevező + + Compress based on the quietest channel + - - - MidiCCRackView - - - MIDI CC Rack - %1 - MIDI CC Rack - %1 + + Blend + - - MIDI CC Knobs: - MIDI CC vezérlők: + + Blend between stereo linking modes + - - CC %1 - CC %1 + + Auto Makeup Gain + - - - MidiController - - MIDI Controller - MIDI vezérlő + + Automatically change makeup gain depending on threshold, knee, and ratio settings + - - unnamed_midi_controller - névtelen_midi_vezérlő + + + Soft Clip + - - - MidiImport - - - Setup incomplete + + Play the delta signal - - You have not set up a default soundfont in the settings dialog (Edit->Settings). Therefore no sound will be played back after importing this MIDI file. You should download a General MIDI soundfont, specify it in settings dialog and try again. - Nincs megadva alapértelmezett SoundFont fájl, ezért az importált sávok lejátszásakor semmilyen hang nem lesz hallható. Javasoljuk, hogy tölts le egy General MIDI hangkészletfájlt, add meg a Beállítások ablakban, majd próbálkozz újra. + + Use the compressor's output as the sidechain input + - - You did not compile LMMS with support for SoundFont2 player, which is used to add default sound to imported MIDI files. Therefore no sound will be played back after importing this MIDI file. + + Lookahead Enabled - - MIDI Time Signature Numerator - MIDI ütemmutató számláló + + Enable Lookahead, which introduces 20 milliseconds of latency + + + + lmms::gui::ControllerConnectionDialog - - MIDI Time Signature Denominator - MIDI ütemmutató nevező + + Connection Settings + - - Numerator - Számláló + + MIDI CONTROLLER + - - Denominator - Nevező + + Input channel + - - Track - Sáv + + CHANNEL + - - - MidiJack - - JACK server down - When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (title) - JACK szerver leállt + + Input controller + - - The JACK server seems to be shuted down. - When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (dialog message) - Úgy tűnik, a JACK kiszolgáló leállt. + + CONTROLLER + - - - MidiPatternW - - MIDI Pattern - MIDI Pattern + + + Auto Detect + - - Time Signature: - Ütemjelzés: + + MIDI-devices to receive MIDI-events from + - - - - 1/4 - 1/4 + + USER CONTROLLER + - - 2/4 - 2/4 + + MAPPING FUNCTION + - - 3/4 - 3/4 + + OK + - - 4/4 - 4/4 + + Cancel + - - 5/4 - 5/4 + + LMMS + - - 6/4 - 6/4 + + Cycle Detected. + + + + lmms::gui::ControllerRackView - - Measures: + + Controller Rack - - - - 1 - 1 + + Add + - - 2 - 2 + + Confirm Delete + - - 3 - 3 + + Confirm delete? There are existing connection(s) associated with this controller. There is no way to undo. + + + + lmms::gui::ControllerView - - 4 - 4 + + Controls + - - 5 - 5 + + Rename controller + - - 6 - 6 + + Enter the new name for this controller + - - 7 - 7 + + LFO + - - 8 - 8 + + Move &up + - - 9 - 9 + + Move &down + - - 10 - 10 + + &Remove this controller + - - 11 - 11 + + Re&name this controller + + + + lmms::gui::CrossoverEQControlDialog - - 12 - 12 + + Band 1/2 crossover: + - - 13 - 13 + + Band 2/3 crossover: + - - 14 - 14 + + Band 3/4 crossover: + - - 15 - 15 + + Band 1 gain + - - 16 - 16 + + Band 1 gain: + - - Default Length: - Alapértelmezett hossz: + + Band 2 gain + - - - 1/16 - 1/16 + + Band 2 gain: + - - - 1/15 - 1/15 + + Band 3 gain + - - - 1/12 - 1/12 + + Band 3 gain: + - - - 1/9 - 1/9 + + Band 4 gain + - - - 1/8 - 1/8 + + Band 4 gain: + - - - 1/6 - 1/6 + + Band 1 mute + - - - 1/3 - 1/3 + + Mute band 1 + - - - 1/2 - 1/2 + + Band 2 mute + - - Quantize: - Kvantálás: + + Mute band 2 + - - &File - &Fájl + + Band 3 mute + - - &Edit - &Szerkesztés + + Mute band 3 + - - &Quit - &Kilépés + + Band 4 mute + - - &Insert Mode + + Mute band 4 + + + lmms::gui::DelayControlsDialog - - F - F + + DELAY + - - &Velocity Mode + + Delay time - - D - D + + FDBK + - - Select All - Összes kijelölése + + Feedback amount + - - A - A + + RATE + - - - MidiPort - - Input channel - Bemeneti csatorna + + LFO frequency + - - Output channel - Kimeneti csatorna + + AMNT + - - Input controller - Bemeneti eszköz + + LFO amount + - - Output controller - Kimeneti eszköz + + Out gain + - - Fixed input velocity + + Gain + + + lmms::gui::DispersionControlDialog - - Fixed output velocity + + AMOUNT - - Fixed output note + + Number of all-pass filters - - Output MIDI program - Kimenő MIDI program + + FREQ + - - Base velocity + + Frequency: - - Receive MIDI-events - MIDI események fogadása + + RESO + - - Send MIDI-events - MIDI események küldése + + Resonance: + - - - MidiSetupWidget - - Device - Eszköz + + FEED + - - - MonstroInstrument - - Osc 1 volume - Osc 1 hangerő + + Feedback: + - - Osc 1 panning - Osc 1 panoráma + + DC Offset Removal + - - Osc 1 coarse detune - Osc 1 hangolás + + Remove DC Offset + + + + lmms::gui::DualFilterControlDialog - - Osc 1 fine detune left - Osc 1 finomhangolás bal + + + FREQ + - - Osc 1 fine detune right - Osc 1 finomhangolás jobb + + + Cutoff frequency + - - Osc 1 stereo phase offset - Osc 1 sztereó fáziseltolás + + + RESO + - - Osc 1 pulse width - Osc 1 pulzusszélesség + + + Resonance + - - Osc 1 sync send on rise - Osc 1 szinkron küldése a felfutó élen + + + GAIN + - - Osc 1 sync send on fall - Osc 1 szinkron küldése a lefutó élen + + + Gain + - - Osc 2 volume - Osc 2 hangerő + + MIX + - - Osc 2 panning - Osc 2 panoráma + + Mix + - - Osc 2 coarse detune - Osc 2 hangolás + + Filter 1 enabled + - - Osc 2 fine detune left - Osc 2 finomhangolás bal + + Filter 2 enabled + - - Osc 2 fine detune right - Osc 2 finomhangolás jobb + + Enable/disable filter 1 + - - Osc 2 stereo phase offset - Osc 2 sztereó fáziseltolás + + Enable/disable filter 2 + + + + lmms::gui::DynProcControlDialog - - Osc 2 waveform - Osc 2 hullámforma + + INPUT + - - Osc 2 sync hard + + Input gain: - - Osc 2 sync reverse + + OUTPUT - - Osc 3 volume - Osc 3 hangerő + + Output gain: + - - Osc 3 panning - Osc 3 panoráma + + ATTACK + - - Osc 3 coarse detune - Osc 3 hangolás + + Peak attack time: + - - Osc 3 Stereo phase offset - Osc 3 sztereó fáziseltolás + + RELEASE + - - Osc 3 sub-oscillator mix + + Peak release time: - - Osc 3 waveform 1 - Osc 3, 1. hullámforma + + + Reset wavegraph + - - Osc 3 waveform 2 - Osc 3, 2. hullámforma + + + Smooth wavegraph + - - Osc 3 sync hard + + + Increase wavegraph amplitude by 1 dB - - Osc 3 Sync reverse + + + Decrease wavegraph amplitude by 1 dB - - LFO 1 waveform - LFO 1 hullámforma + + Stereo mode: maximum + - - LFO 1 attack - LFO 1 felfutás + + Process based on the maximum of both stereo channels + - - LFO 1 rate - LFO 1 frekvencia + + Stereo mode: average + - - LFO 1 phase - LFO 1 fázis + + Process based on the average of both stereo channels + - - LFO 2 waveform - LFO 2 hullámforma + + Stereo mode: unlinked + - - LFO 2 attack - LFO 2 felfutás + + Process each stereo channel independently + + + + lmms::gui::Editor - - LFO 2 rate - LFO 2 frekvencia + + Transport controls + - - LFO 2 phase - LFO 2 fázis + + Play (Space) + - - Env 1 pre-delay - Burkológörbe 1 késleltetés + + Stop (Space) + - - Env 1 attack - Burkológörbe 1 felfutás + + Record + - - Env 1 hold - Env 1 hold + + Record while playing + - - Env 1 decay - Env 1 decay + + Toggle Step Recording + + + + lmms::gui::EffectRackView - - Env 1 sustain - Env 1 sustain + + EFFECTS CHAIN + - - Env 1 release - Env 1 release + + Add effect + + + + lmms::gui::EffectSelectDialog - - Env 1 slope - Burkológörbe 1 meredekség + + Add effect + - - Env 2 pre-delay - Env 2 késleltetés + + + Name + - - Env 2 attack - Env 2 attack + + Type + - - Env 2 hold - Env 2 hold + + All + - - Env 2 decay - Env 2 decay + + Search + + + + + Description + - - Env 2 sustain - Env 2 sustain + + Author + + + + lmms::gui::EffectView - - Env 2 release - Env 2 release + + On/Off + - - Env 2 slope - Burkológörbe 2 meredekség + + W/D + - - Osc 2+3 modulation - Osc 2+3 moduláció + + Wet Level: + - - Selected view - Kiválasztott nézet + + DECAY + - - Osc 1 - Vol env 1 - Osc 1 - Vol env 1 + + Time: + - - Osc 1 - Vol env 2 - Osc 1 - Vol env 2 + + GATE + - - Osc 1 - Vol LFO 1 - Osc 1 - Hangerő LFO 1 + + Gate: + - - Osc 1 - Vol LFO 2 - Osc 1 - Hangerő LFO 2 + + Controls + - - Osc 2 - Vol env 1 - Osc 2 - Vol env 1 + + Move &up + - - Osc 2 - Vol env 2 - Osc 2 - Vol env 2 + + Move &down + - - Osc 2 - Vol LFO 1 - Osc 2 - Hangerő LFO 1 + + &Remove this plugin + + + + lmms::gui::EnvelopeAndLfoView - - Osc 2 - Vol LFO 2 - Osc 2 - Hangerő LFO 2 + + + AMT + - - Osc 3 - Vol env 1 - Osc 3 - Vol env 1 + + + Modulation amount: + - - Osc 3 - Vol env 2 - Osc 3 - Vol env 2 + + + DEL + - - Osc 3 - Vol LFO 1 - Osc 3 - Hangerő LFO 1 + + + Pre-delay: + - - Osc 3 - Vol LFO 2 - Osc 3 - Hangerő LFO 2 + + + ATT + - - Osc 1 - Phs env 1 - Osc 1 - Phs env 1 + + + Attack: + - - Osc 1 - Phs env 2 - Osc 1 - Phs env 2 + + HOLD + - - Osc 1 - Phs LFO 1 - Osc 1 - Fázis LFO 1 + + Hold: + - - Osc 1 - Phs LFO 2 - Osc 1 - Fázis LFO 2 + + DEC + - - Osc 2 - Phs env 1 - Osc 2 - Phs env 1 + + Decay: + - - Osc 2 - Phs env 2 - Osc 2 - Phs env 2 + + SUST + - - Osc 2 - Phs LFO 1 - Osc 2 - Fázis LFO 1 + + Sustain: + - - Osc 2 - Phs LFO 2 - Osc 2 - Fázis LFO 2 + + REL + - - Osc 3 - Phs env 1 - Osc 3 - Phs env 1 + + Release: + - - Osc 3 - Phs env 2 - Osc 3 - Phs env 2 + + SPD + - - Osc 3 - Phs LFO 1 - Osc 3 - Fázis LFO 1 + + Frequency: + - - Osc 3 - Phs LFO 2 - Osc 3 - Fázis LFO 2 + + FREQ x 100 + - - Osc 1 - Pit env 1 - Osc 1 - Pit env 1 + + Multiply LFO frequency by 100 + - - Osc 1 - Pit env 2 - Osc 1 - Pit env 2 + + MOD ENV AMOUNT + - - Osc 1 - Pit LFO 1 - Osc 1 - Pit LFO 1 + + Control envelope amount by this LFO + - - Osc 1 - Pit LFO 2 - Osc 1 - Pit LFO 2 + + Hint + - - Osc 2 - Pit env 1 - Osc 2 - Pit env 1 + + Drag and drop a sample into this window. + + + + lmms::gui::EnvelopeGraph - - Osc 2 - Pit env 2 - Osc 2 - Pit env 2 + + Scaling + - - Osc 2 - Pit LFO 1 - Osc 2 - Pit LFO 1 + + Dynamic + - - Osc 2 - Pit LFO 2 - Osc 2 - Pit LFO 2 + + Uses absolute spacings but switches to relative spacing if it's running out of space + - - Osc 3 - Pit env 1 - Osc 3 - Pit env 1 + + Absolute + - - Osc 3 - Pit env 2 - Osc 3 - Pit env 2 + + Provides enough potential space for each segment but does not scale + - - Osc 3 - Pit LFO 1 - Osc 3 - Pit LFO 1 + + Relative + - - Osc 3 - Pit LFO 2 - Osc 3 - Pit LFO 2 + + Always uses all of the available space to display the envelope graph + + + + lmms::gui::EqControlsDialog - - Osc 1 - PW env 1 - Osc 1 - PW env 1 + + HP + - - Osc 1 - PW env 2 - Osc 1 - PW env 2 + + Low-shelf + - - Osc 1 - PW LFO 1 - Osc 1 - PW LFO 1 + + Peak 1 + - - Osc 1 - PW LFO 2 - Osc 1 - PW LFO 2 + + Peak 2 + - - Osc 3 - Sub env 1 - Osc 3 - Sub env 1 + + Peak 3 + - - Osc 3 - Sub env 2 - Osc 3 - Sub env 2 + + Peak 4 + - - Osc 3 - Sub LFO 1 - Osc 3 - Sub LFO 1 + + High-shelf + - - Osc 3 - Sub LFO 2 - Osc 3 - Sub LFO 2 + + LP + - - - Sine wave - Szinuszhullám + + Input gain + - - Bandlimited Triangle wave - Sávlimitált háromszög + + + + Gain + - - Bandlimited Saw wave - Sávlimitált fűrészfog + + Output gain + - - Bandlimited Ramp wave - Sávlimitált rámpa + + Bandwidth: + - - Bandlimited Square wave - Sávlimitált négyszög + + Octave + - - Bandlimited Moog saw wave - Sávlimitált Moog fűrészfog + + Resonance: + - - - Soft square wave - Lekerekített négyszög + + Frequency: + - - Absolute sine wave - Egyenirányított szinusz + + LP group + - - - Exponential wave - Exponenciális + + HP group + + + + lmms::gui::EqHandle - - White noise - Fehér zaj + + Reso: + - - Digital Triangle wave - Digitális háromszög + + BW: + - - Digital Saw wave - Digitális fűrészfog + + + Freq: + + + + lmms::gui::ExportProjectDialog - - Digital Ramp wave - Digitális rámpa + + Could not open file + - - Digital Square wave - Digitális négyszög + + Could not open file %1 for writing. +Please make sure you have write permission to the file and the directory containing the file and try again! + - - Digital Moog saw wave - Digitális Moog fűrészfog + + Export project to %1 + - - Triangle wave - Háromszöghullám + + ( Fastest - biggest ) + - - Saw wave - Fűrészfoghullám + + ( Slowest - smallest ) + - - Ramp wave - Rámpa + + Error + - - Square wave - Négyszöghullám + + Error while determining file-encoder device. Please try to choose a different output format. + - - Moog saw wave - Moog fűrészfog + + Rendering: %1% + + + + lmms::gui::Fader - - Abs. sine wave - Egyenirányított szinusz + + Set value + - - Random - Véletlenszerű + + Please enter a new value between %1 and %2: + - - Random smooth - Véletlenszerű folyamatos + + Volume: %1 dBFS + - MonstroView + lmms::gui::FileBrowser - - Operators view - Operátor nézet - - - - Matrix view - Mátrix nézet + + Browser + - - - - Volume - Hangerő + + Search + - - - - Panning - Panoráma + + Refresh list + - - - - Coarse detune - Elhangolás + + User content + - - - - semitones - félhang + + Factory content + - - - Fine tune left - Finomhangolás bal + + Hidden content + + + + lmms::gui::FileBrowserTreeWidget - - - - - cents - cent + + Send to active instrument-track + - - - Fine tune right - Finomhangolás jobb + + Open containing folder + - - - - Stereo phase offset - Sztereó fáziseltolás + + Song Editor + - - - - - - deg - fok + + Pattern Editor + - - Pulse width - Pulzusszélesség + + Send to new AudioFileProcessor instance + - - Send sync on pulse rise - Szinkron küldése a felfutó élen + + Send to new instrument track + - - Send sync on pulse fall - Szinkron küldése a lefutó élen + + (%2Enter) + - - Hard sync oscillator 2 + + Send to new sample track (Shift + Enter) - - Reverse sync oscillator 2 + + Loading sample - - Sub-osc mix + + Please wait, loading sample for preview... - - Hard sync oscillator 3 + + Error - - Reverse sync oscillator 3 + + %1 does not appear to be a valid %2 file - - - - - Attack - Attack + + --- Factory files --- + + + + lmms::gui::FileDialog - - - Rate - Ütem: + + %1 files + - - - Phase - Fázis + + All audio files + - - - Pre-delay - Késleltetés + + Other files + + + + lmms::gui::FlangerControlsDialog - - - Hold - Tartás + + DELAY + - - - Decay - Decay + + Delay time: + - - - Sustain - Kitartás + + RATE + - - - Release - Release + + Period: + - - - Slope - Meredekség + + AMNT + - - Mix osc 2 with osc 3 + + Amount: - - Modulate amplitude of osc 3 by osc 2 - 3. oszcillátor amplitúdójának modulációja a 2. oszcillátorral + + PHASE + - - Modulate frequency of osc 3 by osc 2 - 3. oszcillátor frekvenciájának modulációja a 2. oszcillátorral + + Phase: + - - Modulate phase of osc 3 by osc 2 - 3. oszcillátor fázisának modulációja a 2. oszcillátorral + + FDBK + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Modulation amount - Moduláció mértéke + + Feedback amount: + - - - MultitapEchoControlDialog - - Length - Hossz + + NOISE + - - Step length: - Lépéshossz: + + White noise amount: + - - Dry + + Invert + + + lmms::gui::FloatModelEditorBase - - Dry gain: + + Set linear - - Stages - Fokozatok + + Set logarithmic + - - Low-pass stages: - Aluláteresztő fokozatok: + + + Set value + - - Swap inputs - Bemenetek felcserélése + + Please enter a new value between -96.0 dBFS and 6.0 dBFS: + - - Swap left and right input channels for reflections + + Please enter a new value between %1 and %2: - NesInstrument + lmms::gui::FreeBoyInstrumentView - - Channel 1 coarse detune - 1. csatorna hangolás + + Sweep time: + - - Channel 1 volume - 1. csatorna hangerő + + Sweep time + - - Channel 1 envelope length - 1. csatorna burkológörbe hossza + + Sweep rate shift amount: + - - Channel 1 duty cycle - 1. csatorna kitöltési tényező + + Sweep rate shift amount + - - Channel 1 sweep amount + + + Wave pattern duty cycle: - - Channel 1 sweep rate + + + Wave pattern duty cycle - - Channel 2 Coarse detune - 2. csatorna hangolás + + Square channel 1 volume: + - - Channel 2 Volume - 2. csatorna hangerő + + Square channel 1 volume + - - Channel 2 envelope length - 2. csatorna burkológörbe hossza + + + + Length of each step in sweep: + - - Channel 2 duty cycle - 2. csatorna kitöltési tényező + + + + Length of each step in sweep + + + + + Square channel 2 volume: + + + + + Square channel 2 volume + - - Channel 2 sweep amount + + Wave pattern channel volume: - - Channel 2 sweep rate + + Wave pattern channel volume - - Channel 3 coarse detune - 3. csatorna hangolás + + Noise channel volume: + - - Channel 3 volume - 3. csatorna hangerő + + Noise channel volume + - - Channel 4 volume - 4. csatorna hangerő + + SO1 volume (Right): + - - Channel 4 envelope length - 4. csatorna burkológörbe hossza + + SO1 volume (Right) + - - Channel 4 noise frequency - 4. csatorna frekvencia + + SO2 volume (Left): + - - Channel 4 noise frequency sweep + + SO2 volume (Left) - - Master volume - Fő hangerő + + Treble: + - - Vibrato - Vibrato + + Treble + - - - NesInstrumentView - - - - - Volume - Hangerő + + Bass: + - - - - Coarse detune - Elhangolás: + + Bass + - - - - Envelope length - Burkológörbe hossza + + Sweep direction + - - Enable channel 1 - 1. csatorna engedélyezése + + + + + + Volume sweep direction + - - Enable envelope 1 - 1. burkológörbe engedélyezése + + Shift register width + - - Enable envelope 1 loop - 1. burkológörbe ismétlése + + Channel 1 to SO1 (Right) + - - Enable sweep 1 + + Channel 2 to SO1 (Right) - - - Sweep amount + + Channel 3 to SO1 (Right) - - - Sweep rate + + Channel 4 to SO1 (Right) - - - 12.5% Duty cycle - 12.5%-os kitöltés + + Channel 1 to SO2 (Left) + - - - 25% Duty cycle - 25%-os kitöltés + + Channel 2 to SO2 (Left) + - - - 50% Duty cycle - 50%-os kitöltés + + Channel 3 to SO2 (Left) + - - - 75% Duty cycle - 75%-os kitöltés + + Channel 4 to SO2 (Left) + - - Enable channel 2 - 2. csatorna engedélyezése + + Wave pattern graph + + + + lmms::gui::GigInstrumentView - - Enable envelope 2 - 2. burkológörbe engedélyezése + + + Open GIG file + - - Enable envelope 2 loop - 2. burkológörbe ismétlése + + Choose patch + - - Enable sweep 2 + + Gain: - - Enable channel 3 - 3. csatorna engedélyezése + + GIG Files (*.gig) + + + + lmms::gui::GranularPitchShifterControlDialog - - Noise Frequency - Zaj frekvencia: + + Grain Size: + - - Frequency sweep + + Spray: - - Enable channel 4 - 4. csatorna engedélyezése + + Jitter: + - - Enable envelope 4 - 4. burkológörbe engedélyezése + + Twitch: + - - Enable envelope 4 loop - 4. burkológörbe ismétlése + + Spray Stereo Spread: + - - Quantize noise frequency when using note frequency + + Grain Shape: - - Use note frequency for noise + + Fade Length: - - Noise mode - Zaj mód + + Feedback: + - - Master volume - Fő hangerő + + Minimum Allowed Latency: + - - Vibrato - Vibrato + + Density: + - - - OpulenzInstrument - - Patch - Patch + + Glide: + - - Op 1 attack - Op 1 felfutás + + + Pitch + - - Op 1 decay - Op 1 csillapítás + + + Pitch Stereo Spread + - - Op 1 sustain - Op 1 kitartás + + Open help window + - - Op 1 release - Op 1 lecsengés + + + Prefilter + + + + lmms::gui::GuiApplication - - Op 1 level - Op 1 jelszint + + Working directory + - - Op 1 level scaling + + The LMMS working directory %1 does not exist. Create it now? You can change the directory later via Edit -> Settings. - - Op 1 frequency multiplier - Op 1 frekvencia szorzó + + Preparing UI + - - Op 1 feedback - Op 1 visszacsatolás + + Preparing song editor + - - Op 1 key scaling rate + + Preparing mixer - - Op 1 percussive envelope - Op 1 perkusszív burkológörbe + + Preparing controller rack + - - Op 1 tremolo - Op 1 tremolo + + Preparing project notes + - - Op 1 vibrato - Op 1 vibrato + + Preparing microtuner + - - Op 1 waveform - Op 1 hullámforma + + Preparing pattern editor + - - Op 2 attack - Op 2 felfutás + + Preparing piano roll + - - Op 2 decay - Op 2 csillapítás + + Preparing automation editor + + + + lmms::gui::InstrumentFunctionArpeggioView - - Op 2 sustain - Op 2 kitartás + + ARPEGGIO + - - Op 2 release - Op 2 lecsengés + + RANGE + - - Op 2 level - Op 2 jelszint + + Arpeggio range: + - - Op 2 level scaling + + octave(s) - - Op 2 frequency multiplier - Op 2 frekvencia szorzó + + REP + - - Op 2 key scaling rate + + Note repeats: - - Op 2 percussive envelope - Op 2 perkusszív burkológörbe + + time(s) + - - Op 2 tremolo - Op 2 tremolo + + CYCLE + - - Op 2 vibrato - Op 2 vibrato + + Cycle notes: + - - Op 2 waveform - Op 2 hullámforma + + note(s) + - - FM - FM + + SKIP + - - Vibrato depth - Vibrato mélység + + Skip rate: + - - Tremolo depth - Tremolo mélység + + + + % + - - - OpulenzInstrumentView - - - Attack - Felfutás + + MISS + - - - Decay - Decay + + Miss rate: + - - - Release - Release + + TIME + - - - Frequency multiplier - Frekvencia szorzó + + Arpeggio time: + - - - OscillatorObject - - Osc %1 waveform - Osc %1 hullámforma + + ms + - - Osc %1 harmonic - Osc %1 harmonikus + + GATE + - - - Osc %1 volume - Osc %1 hangerő + + Arpeggio gate: + - - - Osc %1 panning - Osc %1 panoráma + + Chord: + - - - Osc %1 fine detuning left - Osc %1 finomhangolás bal + + Direction: + - - Osc %1 coarse detuning - Osc %1 hangolás + + Mode: + + + + lmms::gui::InstrumentFunctionNoteStackingView - - Osc %1 fine detuning right - Osc %1 finomhangolás jobb + + STACKING + - - Osc %1 phase-offset - Osc %1 fáziseltolás + + Chord: + - - Osc %1 stereo phase-detuning - Osc %1 sztereó fáziseltolás + + RANGE + - - Osc %1 wave shape - Osc %1 hullámforma + + Chord range: + - - Modulation type %1 - Moduláció típus %1 + + octave(s) + - Oscilloscope + lmms::gui::InstrumentMidiIOView - - Oscilloscope - Oszcilloszkóp + + ENABLE MIDI INPUT + - - Click to enable - Kattints az engedélyezéshez + + + CHAN + This string must be be short, its width must be less than * width of LCD spin-box of two digits + - - - PatchesDialog - - Qsynth: Channel Preset + + + VELOC + This string must be be short, its width must be less than * width of LCD spin-box of three digits - - Bank selector - Bank választó + + ENABLE MIDI OUTPUT + - - Bank - Bank + + PROG + This string must be be short, its width must be less than the * width of LCD spin-box of three digits + - - Program selector - Program választó + + NOTE + This string must be be short, its width must be less than * width of LCD spin-box of three digits + - - Patch - Patch + + MIDI devices to receive MIDI events from + - - Name - Név + + MIDI devices to send MIDI events to + - - OK - OK + + VELOCITY MAPPING + - - Cancel - Mégse + + MIDI VELOCITY + + + + + MIDI notes at this velocity correspond to 100% note velocity. + - PatmanView + lmms::gui::InstrumentSoundShapingView - - Open patch - Patch megnyitása + + TARGET + - - Loop - Ismétlés + + FILTER + - - Loop mode - Ismétlési mód + + FREQ + - - Tune + + Cutoff frequency: - - Tune mode + + Hz - - No file selected - Nincs kiválasztva fájl + + Q/RESO + - - Open patch file - Patch fájl megnyitása + + Q/Resonance: + - - Patch-Files (*.pat) - Patch fájlok (*.pat) + + Envelopes, LFOs and filters are not supported by the current instrument. + - MidiClipView + lmms::gui::InstrumentTrackView - - Open in piano-roll - Megnyitás a Piano Rollban + + Mixer channel + - - Set as ghost in piano-roll + + Volume - - Clear all notes + + Volume: - - Reset name - Név visszaállítása + + VOL + - - Change name - Átnevezés + + Panning + - - Add steps - Lépések hozzáadása + + Panning: + - - Remove steps - Lépések eltávolítása + + PAN + - - Clone Steps - Megduplázás + + MIDI + - - - PeakController - - Peak Controller + + Input - - Peak Controller Bug + + Output - - Due to a bug in older version of LMMS, the peak controllers may not be connect properly. Please ensure that peak controllers are connected properly and re-save this file. Sorry for any inconvenience caused. + + Open/Close MIDI CC Rack + + + + + %1: %2 - PeakControllerDialog + lmms::gui::InstrumentTrackWindow - - PEAK + + Volume - - LFO Controller - LFO vezérlő + + Volume: + - - - PeakControllerEffectControlDialog - - BASE - ALAP + + VOL + - - Base: - Alapérték: + + Panning + - - AMNT - AMNT + + Panning: + - - Modulation amount: - Moduláció mértéke: + + PAN + - - MULT + + Pitch - - Amount multiplicator: + + Pitch: - - ATCK - ATCK + + cents + - - Attack: - Felfutás: + + PITCH + - - DCAY - DCAY + + Pitch range (semitones) + - - Release: - Lecsengés: + + RANGE + - - TRSH + + Mixer channel - - Treshold: - Küszöb: + + CHANNEL + - - Mute output - Kimenet némítása + + Save current instrument track settings in a preset file + - - Absolute value - Abszolútérték + + SAVE + - - - PeakControllerEffectControls - - Base value - Alapérték + + Envelope, filter & LFO + - - Modulation amount - Moduláció mértéke + + Chord stacking & arpeggio + - - Attack - Felfutás + + Effects + - - Release - Release + + MIDI + - - Treshold - Küszöb + + Tuning and transposition + - - Mute output - Kimenet némítása + + Save preset + - - Absolute value - Abszolútérték + + XML preset file (*.xpf) + - - Amount multiplicator + + Plugin - PianoRoll + lmms::gui::InstrumentTuningView - - Note Velocity + + GLOBAL TRANSPOSITION - - Note Panning + + Enables the use of global transposition - - Mark/unmark current semitone + + Microtuner is not available for MIDI-based instruments. + + + + + MICROTUNER + + + + + Active scale: - - Mark/unmark all corresponding octave semitones + + + Edit scales and keymaps - - Mark current scale - Skála megjelölése + + Active keymap: + - - Mark current chord - Akkord megjelölése + + Import note ranges from keymap + - - Unmark all - Minden jelölés törlése + + When enabled, the first, last and base notes of this instrument will be overwritten with values specified by the selected keymap. + + + + lmms::gui::KickerInstrumentView - - Select all notes on this key + + Start frequency: - - Note lock + + End frequency: - - Last note - Legutóbbi + + Frequency slope: + - - No key + + Gain: - - No scale - Nincs skála + + Envelope length: + - - No chord - Nincs akkord + + Envelope slope: + - - Nudge + + Click: - - Snap + + Noise: - - Velocity: %1% + + Start distortion: - - Panning: %1% left - Panoráma: %1% bal + + End distortion: + + + + lmms::gui::LOMMControlDialog - - Panning: %1% right - Panoráma: %1% jobb + + Depth: + - - Panning: center - Panoráma: közép + + Compression amount for all bands + - - Glue notes failed + + Time: - - Please select notes to glue first. + + Attack/release scaling for all bands - - Please open a clip by double-clicking on it! - Nyiss meg egy kilppet dupla kattintással! + + Input Volume: + - - - Please enter a new value between %1 and %2: - Adj meg egy új értéket %1 és %2 között: + + Input volume + - - - PianoRollWindow - - Play/pause current clip (Space) - Klip lejátszása/megállítása (Space) + + Output Volume: + - - Record notes from MIDI-device/channel-piano + + Output volume - - Record notes from MIDI-device/channel-piano while playing song or BB track + + Upward Depth: - - Record notes from MIDI-device/channel-piano, one step at the time + + Upward compression amount for all bands - - Stop playing of current clip (Space) - Lejátszás leállítása (Space) + + Downward Depth: + - - Edit actions - Műveletek szerkesztése + + Downward compression amount for all bands + - - Draw mode (Shift+D) - Beszúrás (Shift+D) + + High/Mid Crossover + - - Erase mode (Shift+E) - Törlés (Shift+E) + + Mid/Low Crossover + - - Select mode (Shift+S) - Kijelölés (Shift+S) + + High/mid band split + - - Pitch Bend mode (Shift+T) - Hajlítás (Shift+T) + + Mid/low band split + - - Quantize - Kvantálás + + Enable High Band + - - Quantize positions - Pozíció kvantálása + + Enable Mid Band + - - Quantize lengths - Hosszúság kvantálása + + Enable Low Band + - - File actions - Fájl műveletek + + High Input Volume: + - - Import clip - Pattern importálása + + Input volume for high band + - - - Export clip - Pattern exportálása + + Mid Input Volume: + - - Copy paste controls + + Input volume for mid band - - Cut (%1+X) - Kivágás (%1+X) + + Low Input Volume: + - - Copy (%1+C) - Másolás (%1+C) + + Input volume for low band + - - Paste (%1+V) - Beillesztés (%1+V) + + High Output Volume: + - - Timeline controls - Idővonal vezérlők + + Output volume for high band + - - Glue - Egyesítés + + Mid Output Volume: + - - Knife - Felosztás + + Output volume for mid band + - - Fill - Kitöltés + + Low Output Volume: + - - Cut overlaps - Átfedések levágása + + Output volume for low band + - - Min length as last + + Above Threshold High - - Max length as last + + Downward compression threshold for high band - - Zoom and note controls + + Above Threshold Mid - - Horizontal zooming - Vízszintes nagyítás + + Downward compression threshold for mid band + - - Vertical zooming - Függőleges nagyítás + + Above Threshold Low + - - Quantization - Kvantálás + + Downward compression threshold for low band + - - Note length + + Above Ratio High - - Key + + Downward compression ratio for high band - - Scale - Skála + + Above Ratio Mid + - - Chord - Akkord + + Downward compression ratio for mid band + - - Snap mode + + Above Ratio Low - - Clear ghost notes + + Downward compression ratio for low band - - - Piano-Roll - %1 - Piano Roll - %1 + + Below Threshold High + - - - Piano-Roll - no clip - Piano Roll + + Upward compression threshold for high band + - - - XML clip file (*.xpt *.xptz) - XML pattern fájl (*.xpt *.xptz) + + Below Threshold Mid + - - Export clip success - Pattern exportálása sikeres + + Upward compression threshold for mid band + - - Clip saved to %1 - Pattern mentve a(z) %1 fájlba. + + Below Threshold Low + - - Import clip. - Pattern importálása + + Upward compression threshold for low band + - - You are about to import a clip, this will overwrite your current clip. Do you want to continue? + + Below Ratio High - - Open clip - Pattern megnyitása + + Upward compression ratio for high band + - - Import clip success - Pattern importálása sikeres + + Below Ratio Mid + - - Imported clip %1! - %1 importálva + + Upward compression ratio for mid band + - - - PianoView - - Base note - Alaphang + + Below Ratio Low + - - First note - Legalsó hang + + Upward compression ratio for low band + - - Last note - Legutóbbi + + Attack High: + - - - Plugin - - Plugin not found - A plugin nem található + + Attack time for high band + - - The plugin "%1" wasn't found or could not be loaded! -Reason: "%2" - A(z) "%1" plugin nem található, vagy nem lehet betölteni. -Ok: "%2" + + Attack Mid: + - - Error while loading plugin - Hiba a plugin betöltésekor + + Attack time for mid band + - - Failed to load plugin "%1"! - A(z) "%1" plugin betöltése nem sikerült. + + Attack Low: + - - - PluginBrowser - - Instrument Plugins - Hangszer Pluginek + + Attack time for low band + - - Instrument browser + + Release High: - - Drag an instrument into either the Song-Editor, the Beat+Bassline Editor or into an existing instrument track. + + Release time for high band - - no description - nincs leírás + + Release Mid: + - - A native amplifier plugin - Natív erősítő + + Release time for mid band + - - Simple sampler with various settings for using samples (e.g. drums) in an instrument-track + + Release Low: - - Boost your bass the fast and simple way - Mélytartomány kiemelése gyors és egyszerű módon + + Release time for low band + - - Customizable wavetable synthesizer - Testreszabható hullámtábla-szintetizátor + + RMS Time: + - - An oversampling bitcrusher + + RMS size for sidechain signal (set to 0 for Peak mode) - - Carla Patchbay Instrument + + Knee: - - Carla Rack Instrument + + Knee size for all compressors - - A dynamic range compressor. - Dinamikakompresszor + + Range: + - - A 4-band Crossover Equalizer - 4 sávos crossover equalizer + + Maximum gain increase for all bands + - - A native delay plugin - Natív késleltetés + + Balance: + - - A Dual filter plugin - Kettős szűrő + + Bias input volume towards one channel + - - plugin for processing dynamics in a flexible way + + Scale output volume with Depth - - A native eq plugin - Natív equalizer + + Scale output volume with Depth parameter + - - A native flanger plugin - Natív flanger + + Stereo Link + - - Emulation of GameBoy (TM) APU - A GameBoy (TM) APU emulációja + + Apply same gain change to both channels + - - Player for GIG files - Lejátszó GIG fájlokhoz + + Auto Time: + - - Filter for importing Hydrogen files into LMMS + + Speed up attack and release times when transients occur - - Versatile drum synthesizer + + Mix: - - List installed LADSPA plugins - Telepített LADSPA bővítmények listája + + Wet/Dry of all bands + - - plugin for using arbitrary LADSPA-effects inside LMMS. + + Feedback - - Incomplete monophonic imitation TB-303 - Félkész monofonikus TB-303 imitáció + + Use output as sidechain signal instead of input + - - plugin for using arbitrary LV2-effects inside LMMS. + + Mid/Side - - plugin for using arbitrary LV2 instruments inside LMMS. + + Compress mid/side channels instead of left/right - - Filter for exporting MIDI-files from LMMS + + + Suppress upward compression for side band - - Filter for importing MIDI-files into LMMS + + + Lookahead - - Monstrous 3-oscillator synth with modulation matrix + + Lookahead length - - A multitap echo delay plugin - Többlépéses késleltetés + + Clear all parameters + + + + lmms::gui::LadspaBrowserView - - A NES-like synthesizer - NES-szerű szintetizátor + + + Available Effects + - - 2-operator FM Synth - 2 operátoros FM szintetizátor + + + Unavailable Effects + - - Additive Synthesizer for organ-like sounds - Additív szintetizátor orgonaszerű hangokhoz + + + Instruments + - - GUS-compatible patch instrument + + + Analysis Tools - - Plugin for controlling knobs with sound peaks - Szabályzók vezérlése a hangjel segítségével + + + Don't know + - - Reverb algorithm by Sean Costello - Sean Costello zengető algoritmusa + + Type: + + + + lmms::gui::LadspaControlDialog - - Player for SoundFont files - Lejátszó a SoundFont fájlokhoz + + Link Channels + - - LMMS port of sfxr + + Channel + + + lmms::gui::LadspaControlView - - Emulation of the MOS6581 and MOS8580 SID. -This chip was used in the Commodore 64 computer. - A Commodore 64-ben használt MOS6581 és MOS8580 SID chip emulációja. + + Link channels + - - A graphical spectrum analyzer. - Grafikus spektrum-analizátor + + Value: + + + + lmms::gui::LadspaDescription - - Plugin for enhancing stereo separation of a stereo input file - Bővítmény a sztereó fájlok sztereó különválasztásának javításához + + Plugins + - - Plugin for freely manipulating stereo output - Bővítmény a sztereó kimenet manipulálásához + + Description + - - Tuneful things to bang on - Hangolt dolgok, amit ütni lehet + + Name: + - - Three powerful oscillators you can modulate in several ways - Három erőteljes oszcillátor számos modulációs móddal + + Maker: + - - A stereo field visualizer. - Sztereó tér megjelenítése + + Copyright: + - - VST-host for using VST(i)-plugins within LMMS - VST host a VSTi pluginek használatához + + Requires Real Time: + - - Vibrating string modeler - Rezgő húrok fizikai modellezése + + + + Yes + - - plugin for using arbitrary VST effects inside LMMS. + + + + No - - 4-oscillator modulatable wavetable synth + + Real Time Capable: - - plugin for waveshaping + + In Place Broken: - - Mathematical expression parser - Matematikai kifejezés értelmező + + Channels In: + - - Embedded ZynAddSubFX - Beágyazott ZynAddSubFX + + Channels Out: + - PluginDatabaseW + lmms::gui::LadspaMatrixControlDialog - - Carla - Add New - Carla - Hozzáadás + + Link Channels + - - Format - Formátum + + Link + - - Internal - Beépített + + Channel %1 + - - LADSPA - LADSPA + + Link channels + + + + lmms::gui::LadspaPortDialog - - DSSI - DSSI + + Ports + - - LV2 - LV2 + + Name + - - VST2 - VST2 + + Rate + - - VST3 - VST3 + + Direction + - - AU - AU + + Type + - - Sound Kits + + Min < Default < Max - - Type - Típus + + Logarithmic + - - Effects - Effektek + + SR Dependent + - - Instruments - Hangszerek + + Audio + - - MIDI Plugins - MIDI pluginek + + Control + - - Other/Misc - Egyéb + + Input + - - Architecture - Architektúra + + Output + - - Native - Natív + + Toggled + - - Bridged + + Integer - - Bridged (Wine) + + Float - - Requirements - Követelmények + + + Yes + + + + lmms::gui::Lb302SynthView - - With Custom GUI + + Cutoff Freq: - - With CV Ports + + Resonance: - - Real-time safe only + + Env Mod: - - Stereo only - Csak sztereó + + Decay: + - - With Inline Display + + 303-es-que, 24dB/octave, 3 pole filter - - Favorites only + + Slide Decay: - - (Number of Plugins go here) + + DIST: - - &Add Plugin - Plugin hozzá&adása + + Saw wave + - - Cancel - Mégse + + Click here for a saw-wave. + - - Refresh - Frissítés + + Triangle wave + - - Reset filters - Szűrők törlése - - - - - - - - - - - - - - - - - - - TextLabel - TextLabel + + Click here for a triangle-wave. + - - Format: - Formátum: + + Square wave + - - Architecture: - Architektúra: + + Click here for a square-wave. + - - Type: - Típus: + + Rounded square wave + - - MIDI Ins: - MIDI bemenetek: + + Click here for a square-wave with a rounded end. + - - Audio Ins: - Audió bemenetek: + + Moog wave + - - CV Outs: - CV kimenetek: + + Click here for a moog-like wave. + - - MIDI Outs: - MIDI kimenetek: + + Sine wave + - - Parameter Ins: - Paraméter bemenetek: + + Click for a sine-wave. + - - Parameter Outs: - Paraméter kimenetek: + + + White noise wave + - - Audio Outs: - Audió kimenetek: + + Click here for an exponential wave. + - - CV Ins: - CV bemenetek: + + Click here for white-noise. + - - UniqueID: - Egyedi azonosító: + + Bandlimited saw wave + - - Has Inline Display: + + Click here for bandlimited saw wave. - - Has Custom GUI: + + Bandlimited square wave - - Is Synth: + + Click here for bandlimited square wave. - - Is Bridged: + + Bandlimited triangle wave - - Information - Információ + + Click here for bandlimited triangle wave. + - - Name - Név + + Bandlimited moog saw wave + - - Label/URI + + Click here for bandlimited moog saw wave. + + + lmms::gui::LcdFloatSpinBox - - Maker - Készítő + + Set value + - - Binary/Filename - Bináris/Fájlnév: + + Please enter a new value between %1 and %2: + + + + lmms::gui::LcdSpinBox - - Focus Text Search + + Set value - - Ctrl+F - Ctrl+F + + Please enter a new value between %1 and %2: + - PluginEdit + lmms::gui::LeftRightNav - - Plugin Editor + + + + Previous - - Edit - Szerkesztés + + + + Next + - - Control - Vezérlő + + Previous (%1) + - - MIDI Control Channel: - MIDI csatorna: + + Next (%1) + + + + lmms::gui::LfoControllerDialog - - N - N + + LFO + - - Output dry/wet (100%) + + BASE - - Output volume (100%) - Kimeneti hangerő (100%) + + Base: + - - Balance Left (0%) + + FREQ - - - Balance Right (0%) + + LFO frequency: - - Use Balance + + AMNT - - Use Panning + + Modulation amount: - - Settings - Beállítások + + PHS + - - Use Chunks + + Phase offset: - - Audio: - Audió: + + degrees + - - Fixed-Size Buffer - Fix méretű puffer + + Sine wave + - - Force Stereo (needs reload) + + Triangle wave - - MIDI: - MIDI: + + Saw wave + - - Map Program Changes + + Square wave - - Send Bank/Program Changes - Bank- és programváltás küldése + + Moog saw wave + - - Send Control Changes + + Exponential wave - - Send Channel Pressure + + White noise - - Send Note Aftertouch - Aftertouch küldése + + User-defined shape. +Double click to pick a file. + - - Send Pitchbend - Hanghajlítás küldése + + Multiply modulation frequency by 1 + - - Send All Sound/Notes Off + + Multiply modulation frequency by 100 - - -Plugin Name - - -Plugin név - + + Divide modulation frequency by 100 + + + + lmms::gui::LfoGraph - - Program: - Program: + + %1 Hz + + + + lmms::gui::MainWindow - - MIDI Program: - MIDI Program: + + Configuration file + - - Save State - Állapot mentése + + Error while parsing configuration file at line %1:%2: %3 + - - Load State - Állapot betöltése + + Could not open file + - - Information - Információ + + Could not open file %1 for writing. +Please make sure you have write permission to the file and the directory containing the file and try again! + - - Label/URI: - Címke/URI: + + Project recovery + - - Name: - Név: + + There is a recovery file present. It looks like the last session did not end properly or another instance of LMMS is already running. Do you want to recover the project of this session? + - - Type: - Típus: + + + Recover + - - Maker: - Készítő: + + Recover the file. Please don't run multiple instances of LMMS when you do this. + - - Copyright: + + + Discard - - Unique ID: - Egyedi azonosító: + + Launch a default session and delete the restored files. This is not reversible. + - - - PluginFactory - - Plugin not found. - A plugin nem található. + + Version %1 + - - LMMS plugin %1 does not have a plugin descriptor named %2! + + Preparing plugin browser - - - PluginParameter - - Form - Form + + Preparing file browsers + - - Parameter Name - Paraméter név + + My Projects + - - ... - ... + + My Samples + - - - PluginRefreshW - - Carla - Refresh - Carla - Frissítés + + My Presets + - - Search for new... - A következők keresése: + + My Home + - - LADSPA - LADSPA + + Root Directory + - - DSSI - DSSI + + Volumes + - - LV2 - LV2 + + My Computer + - - VST2 - VST2 + + Loading background picture + - - VST3 - VST3 + + &File + - - AU - AU + + &New + - - SF2/3 - SF2/3 + + &Open... + - - SFZ - SFZ + + &Save + - - Native - Natív + + Save &As... + - - POSIX 32bit - POSIX 32bit + + Save as New &Version + - - POSIX 64bit - POSIX 64bit + + Save as default template + - - Windows 32bit - Windows 32bit + + Import... + - - Windows 64bit - Windows 64bit + + E&xport... + - - Available tools: - Elérhető eszközök: + + E&xport Tracks... + - - python3-rdflib (LADSPA-RDF support) - python3-rdflib (LADSPA-RDF támogatás) + + Export &MIDI... + - - carla-discovery-win64 - carla-discovery-win64 + + &Quit + - - carla-discovery-native - carla-discovery-native + + &Edit + - - carla-discovery-posix32 - carla-discovery-posix32 + + Undo + - - carla-discovery-posix64 - carla-discovery-posix64 + + Redo + - - carla-discovery-win32 - carla-discovery-win32 + + Scales and keymaps + - - Options: - Opciók: + + Settings + - - Carla will run small processing checks when scanning the plugins (to make sure they won't crash). -You can disable these checks to get a faster scanning time (at your own risk). + + &View - - Run processing checks while scanning + + &Tools - - Press 'Scan' to begin the search + + &Help - - Scan + + Online Help - - >> Skip - >> Kihagyás + + Help + - - Close - Bezárás + + About + - - - PluginWidget - - - - - - Frame + + Create new project - - Enable - Engedélyezés + + Create new project from template + - - On/Off - Be/Ki + + Open existing project + - - - - - PluginName + + Recently opened projects - - MIDI - MIDI + + Save current project + - - AUDIO IN - AUDIÓ BEMENET + + Export current project + - - AUDIO OUT - AUDIÓ KIMENET + + Metronome + - - GUI - GUI + + + Song Editor + - - Edit - Szerkesztés + + + Pattern Editor + - - Remove - Eltávolítás + + + Piano Roll + - - Plugin Name - Plugin név + + + Automation Editor + - - Preset: - Preset: + + + Mixer + - - - ProjectNotes - - Project Notes - Jegyzetek + + Show/hide controller rack + - - Enter project notes here - Ide írd a jegyzeteket! + + Show/hide project notes + - - Edit Actions - Szerkesztés műveletek + + Untitled + - - &Undo - &Visszavonás + + Recover session. Please save your work! + - - %1+Z - %1+Z + + LMMS %1 + - - &Redo - &Ismét + + Recovered project not saved + - - %1+Y - %1+Y + + This project was recovered from the previous session. It is currently unsaved and will be lost if you don't save it. Do you want to save it now? + - - &Copy - &Másolás + + Project not saved + - - %1+C - %1+C + + The current project was modified since last saving. Do you want to save it now? + - - Cu&t - &Kivágás + + Open Project + - - %1+X - %1+X + + LMMS (*.mmp *.mmpz) + - - &Paste - &Beillesztés + + Save Project + - - %1+V - %1+V + + LMMS Project + - - Format Actions - Formázás műveletek + + LMMS Project Template + - - &Bold - &Félkövér + + Save project template + - - %1+B - %1+B + + Overwrite default template? + - - &Italic - &Dőlt + + This will overwrite your current default template. + - - %1+I - %1+I + + Help not available + - - &Underline - Alá&húzott + + Currently there's no help available in LMMS. +Please visit http://lmms.sf.net/wiki for documentation on LMMS. + - - %1+U - %1+U + + Controller Rack + - - &Left - &Balra + + Project Notes + - - %1+L - %1+L + + Fullscreen + - - C&enter - &Középre + + Volume as dBFS + - - %1+E - %1+E + + Smooth scroll + - - &Right - &Jobbra + + Enable note labels in piano roll + - - %1+R - %1+R + + MIDI File (*.mid) + - - &Justify - &Sorkizárás + + + untitled + - - %1+J - %1+J + + + Select file for project-export... + - - &Color... - S&zín + + Select directory for writing exported tracks... + - - - ProjectRenderer - - WAV (*.wav) - WAV (*.wav) + + Save project + - - FLAC (*.flac) - FLAC (*.flac) + + Project saved + - - OGG (*.ogg) - OGG (*.ogg) + + The project %1 is now saved. + - - MP3 (*.mp3) - MP3 (*.mp3) + + Project NOT saved. + - - - QObject - - Reload Plugin - Plugin újratöltése + + The project %1 was not saved! + - - Show GUI - GUI megjelenítése + + Import file + - - Help - Súgó + + MIDI sequences + - - - QWidget - - - - - Name: - Név: + + Hydrogen projects + - - URI: - URI: + + All file types + + + + lmms::gui::MalletsInstrumentView - - - - Maker: - Készítő: + + Instrument + - - - - Copyright: + + Spread - - - Requires Real Time: + + Spread: - - - - - - - Yes - Igen + + Random + - - - - - - - No - Nem + + Random: + - - - Real Time Capable: + + Missing files - - - In Place Broken: + + Your Stk-installation seems to be incomplete. Please make sure the full Stk-package is installed! - - - Channels In: - Bemeneti csatornák: + + Hardness + - - - Channels Out: - Kimeneti csatornák: + + Hardness: + - - File: %1 - Fájl: %1 + + Position + - - File: - Fájl: + + Position: + - - - RecentProjectsMenu - - &Recently Opened Projects - &Legutóbbi projektek + + Vibrato gain + - - - RenameDialog - - Rename... - Átnevezés... + + Vibrato gain: + - - - ReverbSCControlDialog - - Input - Bemenet + + Vibrato frequency + - - Input gain: - Bemeneti erősítés: + + Vibrato frequency: + - - Size - Méret + + Stick mix + - - Size: - Méret: + + Stick mix: + - - Color - Csillapítás + + Modulator + - - Color: - Csillapítás: + + Modulator: + - - Output - Kimenet + + Crossfade + - - Output gain: - Kimeneti erősítés: + + Crossfade: + - - - ReverbSCControls - - Input gain - Bemeneti erősítés + + LFO speed + - - Size - Méret + + LFO speed: + - - Color - Csillapítás + + LFO depth + - - Output gain - Kimeneti erősítés + + LFO depth: + - - - SaControls - - Pause - Megállítás + + ADSR + - - Reference freeze - Referencia fagyasztás + + ADSR: + - - Waterfall - Spektogram + + Pressure + - - Averaging + + Pressure: - - Stereo - Sztereó + + Speed + - - Peak hold - Csúcsérték tartása + + Speed: + + + + lmms::gui::ManageVSTEffectView - - Logarithmic frequency - Logaritmikus frekvencia + + - VST parameter control + - - Logarithmic amplitude - Logaritmikus amplitúdó + + VST sync + - - Frequency range - Frekvenciatartomány + + + Automated + - - Amplitude range - Amplitúdó tartomány + + Close + + + + lmms::gui::ManageVestigeInstrumentView - - FFT block size - FFT blokk méret + + + - VST plugin control + - - FFT window type - FFT ablak típus + + VST Sync + - - Peak envelope resolution + + + Automated - - Spectrum display resolution - Spektrum kijelző felbontás + + Close + + + + lmms::gui::MeterDialog - - Peak decay multiplier + + + Meter Numerator - - Averaging weight + + Meter numerator - - Waterfall history size - Spektogram történet hossza + + + Meter Denominator + - - Waterfall gamma correction - Spektogram gamma korrekció + + Meter denominator + - - FFT window overlap + + TIME SIG + + + lmms::gui::MicrotunerConfig - - FFT zero padding + + Selected scale slot - - - Full (auto) - Teljes + + Selected keymap slot + - - - - Audible - Hallható + + + First key + - - Bass - Mély + + + Last key + - - Mids - Közép + + + Middle key + - - High - Magas + + + Base key + - - Extended - Széles + + + + Base note frequency + - - Loud - Hangos + + Microtuner Configuration + - - Silent - Halk + + Scale slot to edit: + - - (High time res.) - (Magas időbeli felbontás) + + Scale description. Cannot start with "!" and cannot contain a newline character. + - - (High freq. res.) - (Magas frekvencia-felbontás) + + + Load + - - Rectangular (Off) - Négyszög (Ki) + + + Save + - - - Blackman-Harris (Default) - Blackman-Harris (Alapértelmezett) + + Load scale definition from a file. + - - Hamming - Hamming + + Save scale definition to a file. + - - Hanning - Hanning + + Enter intervals on separate lines. Numbers containing a decimal point are treated as cents. +Other inputs are treated as integer ratios and must be in the form of 'a/b' or 'a'. +Unity (0.0 cents or ratio 1/1) is always present as a hidden first value; do not enter it manually. + - - - SaControlsDialog - - Pause - Megállítás + + Apply scale changes + - - Pause data acquisition - Adatgyűjtés megállítása + + Verify and apply changes made to the selected scale. To use the scale, select it in the settings of a supported instrument. + - - Reference freeze - Referencia fagyasztás + + Keymap slot to edit: + - - Freeze current input as a reference / disable falloff in peak-hold mode. + + Keymap description. Cannot start with "!" and cannot contain a newline character. - - Waterfall - Spektogram + + Load key mapping definition from a file. + - - Display real-time spectrogram - Valós idejű spektogram megjelenítése + + Save key mapping definition to a file. + - - Averaging + + Enter key mappings on separate lines. Each line assigns a scale degree to a MIDI key, +starting with the middle key and continuing in sequence. +The pattern repeats for keys outside of the explicit keymap range. +Multiple keys can be mapped to the same scale degree. +Enter 'x' if you wish to leave the key disabled / not mapped. - - Enable exponential moving average + + FIRST - - Stereo - Sztereó + + First MIDI key that will be mapped + - - Display stereo channels separately - Csatormák egymástól független megjelenítése + + LAST + - - Peak hold - Csúcsérték tartása + + Last MIDI key that will be mapped + - - Display envelope of peak values + + MIDDLE - - Logarithmic frequency - Logaritmikus frekvencia + + First line in the keymap refers to this MIDI key + - - Switch between logarithmic and linear frequency scale - Váltás logaritmikus és lineáris frekvenciaskála között + + BASE N. + - - - Frequency range - Frekvenciatartomány + + Base note frequency will be assigned to this MIDI key + - - Logarithmic amplitude - Logaritmikus amplitúdó + + BASE NOTE FREQ + - - Switch between logarithmic and linear amplitude scale - Váltás logaritmikus és lineáris amplitúdóskála között + + Apply keymap changes + - - - Amplitude range - Amplitúdó tartomány + + Verify and apply changes made to the selected key mapping. To use the mapping, select it in the settings of a supported instrument. + - - Envelope res. + + Scale parsing error - - Increase envelope resolution for better details, decrease for better GUI performance. + + Scale name cannot start with an exclamation mark - - - Draw at most + + Scale name cannot contain a new-line character - - envelope points per pixel + + Interval defined in cents cannot be converted to a number - - Spectrum res. - Spektrum felbontás + + Numerator of an interval defined as a ratio cannot be converted to a number + - - Increase spectrum resolution for better details, decrease for better GUI performance. + + Denominator of an interval defined as a ratio cannot be converted to a number - - spectrum points per pixel + + Interval defined as a ratio cannot be negative - - Falloff factor + + Keymap parsing error - - Decrease to make peaks fall faster. + + Keymap name cannot start with an exclamation mark - - Multiply buffered value by + + Keymap name cannot contain a new-line character - - Averaging weight + + Scale degree cannot be converted to a whole number - - Decrease to make averaging slower and smoother. + + Scale degree cannot be negative - - New sample contributes + + Invalid keymap - - Waterfall height - Spektogram magassága + + Base key is not mapped to any scale degree. No sound will be produced as there is no way to assign reference frequency to any note. + - - Increase to get slower scrolling, decrease to see fast transitions better. Warning: medium CPU usage. + + Open scale - - Keep + + + Scala scale definition (*.scl) - - lines + + Scale load failure - - Waterfall gamma - Spektogram gamma + + + Unable to open selected file. + - - Decrease to see very weak signals, increase to get better contrast. - Csökkentve a kisebb jelek is láthatók, növelve nagyobb a kontraszt. + + Open keymap + - - Gamma value: - Gamma érték: + + + Scala keymap definition (*.kbm) + - - Window overlap + + Keymap load failure - - Increase to prevent missing fast transitions arriving near FFT window edges. Warning: high CPU usage. + + Save scale - - Each sample processed + + Scale save failure - - times + + + Unable to open selected file for writing. - - Zero padding + + Save keymap - - Increase to get smoother-looking spectrum. Warning: high CPU usage. + + Keymap save failure + + + lmms::gui::MidiCCRackView - - Processing buffer is + + + MIDI CC Rack - %1 - - steps larger than input block + + MIDI CC Knobs: - - Advanced settings - Haladó beállítások + + CC %1 + + + + lmms::gui::MidiClipView - - Access advanced settings - Haladó beállítások megjelenítése + + + Transpose + - - - FFT block size - FFT blokk méret + + Semitones to transpose by: + - - - FFT window type - FFT ablak típus + + Open in piano-roll + - - - SampleBuffer - - Fail to open file - Nem lehet megnyitni a fájlt + + Set as ghost in piano-roll + - - Audio files are limited to %1 MB in size and %2 minutes of playing time - Az audió fájl maximális mérete %1 MB, maximális hossza %2 perc lehet. + + Set as ghost in automation editor + - - Open audio file - Audiófájl megnyitása + + Clear all notes + - - All Audio-Files (*.wav *.ogg *.ds *.flac *.spx *.voc *.aif *.aiff *.au *.raw) - Minden támogatott audiófájl (*.wav *.ogg *.ds *.flac *.spx *.voc *.aif *.aiff *.au *.raw) + + Reset name + - - Wave-Files (*.wav) - Wave fájlok (*.wav) + + Change name + - - OGG-Files (*.ogg) - OGG Fájlok (*.ogg) + + Add steps + - - DrumSynth-Files (*.ds) - DrumSynth Fájlok (*.ds) + + Remove steps + - - FLAC-Files (*.flac) - FLAC Fájlok (*.flac) + + Clone Steps + + + + lmms::gui::MidiSetupWidget - - SPEEX-Files (*.spx) - SPEEX Fájlok (*.spx) + + Device + + + + lmms::gui::MixerChannelLcdSpinBox - - VOC-Files (*.voc) - VOC Fájlok (*.voc) + + Assign to: + - - AIFF-Files (*.aif *.aiff) - AIFF Fájlok (*.aif *.aiff) + + New Mixer Channel + - - AU-Files (*.au) - AU Fájlok (*.au) + + Please enter a new value between %1 and %2: + - - RAW-Files (*.raw) - RAW Fájlok (*.raw) + + Set value + - SampleClipView + lmms::gui::MixerChannelView - - Double-click to open sample - Kattintson duplán hangfájl betöltéséhez + + Channel send amount + - - Delete (middle mousebutton) - Törlés (középső egérgomb) + + Mute + - - Delete selection (middle mousebutton) - Kijelöltek törlése (középső egérgomb) + + Mute this channel + - - Cut - Kivágás + + Solo + - - Cut selection - Kijelölés kivágása + + Solo this channel + - - Copy - Másolás + + Fader %1 + - - Copy selection - Kijelölés másolása + + Move &left + - - Paste - Beillesztés + + Move &right + - - Mute/unmute (<%1> + middle click) - Némítás (<%1> + középső egérgomb) + + Rename &channel + - - Mute/unmute selection (<%1> + middle click) - Kijelölés némítása (<%1> + középső egérgomb) + + R&emove channel + - - Reverse sample - Minta megfordítása + + Remove &unused channels + - - Set clip color - Szín módosítása + + Color + - - Use track color - Sáv színének használata + + Change + - - - SampleTrack - - Volume - Hangerő + + Reset + - - Panning - Panoráma + + Pick random + - - Mixer channel - Keverő csatorna + + This Mixer Channel is being used. +Are you sure you want to remove this channel? + +Warning: This operation can not be undone. + - - - Sample track - Hangminta sáv + + Confirm removal + + + + + Don't ask again + - SampleTrackView + lmms::gui::MixerView - - Track volume - Sáv hangerő + + Mixer + + + + lmms::gui::MonstroView - - Channel volume: - Csatorna hangerő: + + Operators view + - - VOL - VOL + + Matrix view + - - Panning - Panoráma + + + + Volume + - - Panning: - Panoráma: + + + + Panning + - - PAN - PAN + + + + Coarse detune + - - Channel %1: %2 - FX %1: %2 + + + + semitones + - - - SampleTrackWindow - - GENERAL SETTINGS - ÁLTALÁNOS BEÁLLÍTÁSOK + + + Fine tune left + - - Sample volume + + + + + cents - - Volume: - Hangerő: + + + Fine tune right + - - VOL - VOL + + + + Stereo phase offset + - - Panning - Panoráma + + + + + + deg + - - Panning: - Panoráma: + + Pulse width + - - PAN - PAN + + Send sync on pulse rise + - - Mixer channel - Keverő csatorna + + Send sync on pulse fall + - - CHANNEL - FX + + Hard sync oscillator 2 + - - - SaveOptionsWidget - - Discard MIDI connections - MIDI kapcsolatok elvetése + + Reverse sync oscillator 2 + - - Save As Project Bundle (with resources) + + Sub-osc mix - - - SetupDialog - - Reset to default value - Visszaállítás + + Hard sync oscillator 3 + - - Use built-in NaN handler - Beépített NaN kezelés használata + + Reverse sync oscillator 3 + - - Settings - Beállítások + + + + + Attack + - - - General - Általános + + + Rate + - - Graphical user interface (GUI) - Felhasználói felület (GUI) + + + Phase + - - Display volume as dBFS - Hangerő kijelzése dBFS-ként + + + Pre-delay + - - Enable tooltips - Eszköztippek engedélyezése + + + Hold + - - Enable master oscilloscope by default - Oszcilloszkóp engedélyezése alaphelyzetben + + + Decay + - - Enable all note labels in piano roll + + + Sustain - - Enable compact track buttons - Kompakt sávgombok + + + Release + - - Enable one instrument-track-window mode - Mindig csak egy hangszer-ablak megjelenítése + + + Slope + - - Show sidebar on the right-hand side - Oldalsáv áthelyezése jobb oldalra + + Mix osc 2 with osc 3 + - - Let sample previews continue when mouse is released - Hangminta előnézetek folytatása az egérgomb elengedése után + + Modulate amplitude of osc 3 by osc 2 + - - Mute automation tracks during solo - Automatizációs sávok némítása szóló esetén + + Modulate frequency of osc 3 by osc 2 + - - Show warning when deleting tracks - Figyelmeztetés sávok törlése előtt + + Modulate phase of osc 3 by osc 2 + - - Projects - Projektek + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Modulation amount + + + + lmms::gui::MultitapEchoControlDialog - - Compress project files by default - Projektfájlok tömörítése alapértelmezetten + + Length + - - Create a backup file when saving a project - Biztonsági mentés létrehozása projekt mentésekor + + Step length: + - - Reopen last project on startup - A legutóbbi projekt betöltése indításkor + + Dry + - - Language - Nyelv + + Dry gain: + - - - Performance - Teljesítmény + + Stages + - - Autosave - Automatikus mentés + + Low-pass stages: + - - Enable autosave - Automatikus mentés engedélyezése + + Swap inputs + - - Allow autosave while playing - Automatikus mentés lejátszás közben + + Swap left and right input channels for reflections + + + + lmms::gui::NesInstrumentView - - User interface (UI) effects vs. performance + + + + + Volume - - Smooth scroll in song editor - Sima görgetés a dalszerkesztőben - - - - Display playback cursor in AudioFileProcessor + + + + Coarse detune - - Plugins - Bővítmények + + + + Envelope length + - - VST plugins embedding: - VST plugin beágyazás: + + Enable channel 1 + - - No embedding - Nincs beágyazás + + Enable envelope 1 + - - Embed using Qt API - Beágyazás a Qt API használatával + + Enable envelope 1 loop + - - Embed using native Win32 API - Beágyazás a Win32 API használatával + + Enable sweep 1 + - - Embed using XEmbed protocol - Beágyazás az XEmbed protokoll használatával + + + Sweep amount + - - Keep plugin windows on top when not embedded - Plugin ablak mindig legfelül, ha nincs beágyazva. + + + Sweep rate + - - Sync VST plugins to host playback - VST pluginek szinkronizálása a lejátszáshoz + + + 12.5% Duty cycle + - - Keep effects running even without input - Effektek ébren tartása bemenet hiányában is + + + 25% Duty cycle + - - - Audio - Audió + + + 50% Duty cycle + - - Audio interface - Audió interfész + + + 75% Duty cycle + - - HQ mode for output audio device + + Enable channel 2 - - Buffer size - Buffer méret + + Enable envelope 2 + - - - MIDI - MIDI + + Enable envelope 2 loop + - - MIDI interface - MIDI interfész + + Enable sweep 2 + - - Automatically assign MIDI controller to selected track - MIDI vezérlő automatikus hozzárendelése a kijelölt sávhoz + + Enable channel 3 + - - LMMS working directory - LMMS munkakönyvtár + + Noise Frequency + - - VST plugins directory - VST plugin könyvtár + + Frequency sweep + - - LADSPA plugins directories - LADSPA plugin könyvtárak + + Enable channel 4 + - - SF2 directory - SF2 könyvtár + + Enable envelope 4 + - - Default SF2 - Alapértelmezett SF2 fájl + + Enable envelope 4 loop + - - GIG directory - GIG könyvtár + + Quantize noise frequency when using note frequency + - - Theme directory - Grafikus téma könyvtára: + + Use note frequency for noise + - - Background artwork - Háttérkép + + Noise mode + - - Some changes require restarting. - Egyes beállítások a program újraindítását követően lépnek érvénybe. + + Master volume + - - Autosave interval: %1 - Automatikus mentés gyakorisága: %1 + + Vibrato + + + + lmms::gui::OpulenzInstrumentView - - Choose the LMMS working directory - Adja meg az LMMS mankakönyvtárat + + + Attack + - - Choose your VST plugins directory - Add meg a VST plugin könyvtárat + + + Decay + - - Choose your LADSPA plugins directory - Adja meg a LADSPA plugin könyvtárat + + + Release + - - Choose your default SF2 - Adja meg az alapértelmezett SF2 fájlt + + + Frequency multiplier + + + + lmms::gui::OrganicInstrumentView - - Choose your theme directory - Adja meg a grafikus téma könyvtárát + + Distortion: + - - Choose your background picture - Háttérkép kiválasztása + + Volume: + - - - Paths - Útvonalak + + Randomise + - - OK - OK + + + Osc %1 waveform: + - - Cancel - Mégse + + Osc %1 volume: + - - Frames: %1 -Latency: %2 ms + + Osc %1 panning: - - Choose your GIG directory - Add meg a GIG könyvtárat + + Osc %1 stereo detuning + - - Choose your SF2 directory - Add meg az SF2 könyvtárat + + cents + - - minutes - perc + + Osc %1 harmonic: + + + + lmms::gui::Oscilloscope - - minute - perc + + Oscilloscope + - - Disabled - Letiltva + + Click to enable + - SidInstrument - - - Cutoff frequency - Vágási frekvencia - + lmms::gui::PatmanView - - Resonance - Rezonancia + + Open patch + - - Filter type - Szűrő típus + + Loop + - - Voice 3 off + + Loop mode - - Volume - Hangerő + + Tune + - - Chip model - Chip modell + + Tune mode + - - - SidInstrumentView - - Volume: - Hangerő: + + No file selected + - - Resonance: - Rezonancia: + + Open patch file + - - - Cutoff frequency: - Vágási frekvencia: + + Patch-Files (*.pat) + + + + lmms::gui::PatternClipView - - High-pass filter - Felüláteresztő szűrő + + Open in Pattern Editor + - - Band-pass filter - Sáváteresztő szűrő + + Reset name + - - Low-pass filter - Aluláteresztő szűrő + + Change name + + + + lmms::gui::PatternEditorWindow - - Voice 3 off + + Pattern Editor - - MOS6581 SID - MOS6581 SID + + Play/pause current pattern (Space) + - - MOS8580 SID - MOS8580 SID + + Stop playback of current pattern (Space) + - - - Attack: - Felfutás: + + Pattern selector + - - - Decay: - Decay: + + Track and step actions + - - Sustain: - Kitartás: + + New pattern + - - - Release: - Lecsengés: + + Clone pattern + - - Pulse Width: - Pulzusszélesség: + + Add sample-track + - - Coarse: - Elhangolás: + + Add automation-track + - - Pulse wave - Négyszöghullám + + Remove steps + - - Triangle wave - Háromszöghullám + + Add steps + - - Saw wave - Fűrészfoghullám + + Clone Steps + + + + lmms::gui::PeakControllerDialog - - Noise - Zaj + + PEAK + - - Sync - Szinkron + + LFO Controller + + + + lmms::gui::PeakControllerEffectControlDialog - - Ring modulation - Ring moduláció + + BASE + - - Filtered + + Base: - - Test - Teszt + + AMNT + - - Pulse width: - Pulzusszélesség: - - - - SideBarWidget + + Modulation amount: + + - - Close - Bezárás + + MULT + - - - Song - - Tempo - Tempó + + Amount multiplicator: + - - Master volume - Fő hangerő + + ATCK + - - Master pitch - Transzponálás + + Attack: + - - Aborting project load - Betöltés megszakítása + + DCAY + - - Project file contains local paths to plugins, which could be used to run malicious code. + + Release: - - Can't load project: Project file contains local paths to plugins. + + TRSH - - LMMS Error report - LMMS hibajelentés + + Treshold: + - - (repeated %1 times) + + Mute output - - The following errors occurred while loading: - Az alábbi hibák történtek a betöltés során: + + Absolute value + - SongEditor + lmms::gui::PeakIndicator - - Could not open file - Nem lehet megnyitni a fájlt + + -inf + + + + lmms::gui::PianoRoll - - Could not open file %1. You probably have no permissions to read this file. - Please make sure to have at least read permissions to the file and try again. - A(z) %1 fájl nem nyitható meg. Ellenőrizd, hogy rendelkezel-e olvasási jogosultsággal a fájlhoz, majd próbáld újra. + + Note Velocity + - - Operation denied - Művelet megtagadva + + Note Panning + - - A bundle folder with that name already eists on the selected path. Can't overwrite a project bundle. Please select a different name. + + Mark/unmark current semitone - - - - Error - Hiba + + Mark/unmark all corresponding octave semitones + - - Couldn't create bundle folder. + + Mark current scale - - Couldn't create resources folder. + + Mark current chord - - Failed to copy resources. - Az erőforrások másolása sikertelen. + + Unmark all + - - Could not write file - A fájl nem írható + + Select all notes on this key + - - Could not open %1 for writing. You probably are not permitted towrite to this file. Please make sure you have write-access to the file and try again. - A(z) %1 fájl nem nyitható meg írásra. -Ellenőrizd, hogy rendelkezel-e a szükséges engedélyekkel és próbáld újra! + + Note lock + - - This %1 was created with LMMS %2 - Ez a %1 az LMMS %2 verziójával készült + + Last note + - - Error in file - Hiba a fájlban + + No key + - - The file %1 seems to contain errors and therefore can't be loaded. - A(z) %1 fájl hibát tartalmaz, ezért nem lehet betölteni. + + No scale + - - Version difference - Verzió eltérés + + No chord + - - template - sablon + + Nudge + - - project - projekt + + Snap + - - Tempo - Tempó + + Velocity: %1% + - - TEMPO - TEMPÓ + + Panning: %1% left + - - Tempo in BPM - Tempó BPM-ben + + Panning: %1% right + - - High quality mode - Magas minőségű mód + + Panning: center + - - - - Master volume - Fő hangerő + + Glue notes failed + - - - - Master pitch - Transzponálás + + Please select notes to glue first. + - - Value: %1% - Érték: %1% + + Please open a clip by double-clicking on it! + - - Value: %1 semitones - Érték: %1 félhang + + + Please enter a new value between %1 and %2: + - SongEditorWindow + lmms::gui::PianoRollWindow - - Song-Editor - Dalszerkesztő - - - - Play song (Space) - Lejátszás (Space) + + Play/pause current clip (Space) + - - Record samples from Audio-device + + Record notes from MIDI-device/channel-piano - - Record samples from Audio-device while playing song or BB track + + Record notes from MIDI-device/channel-piano while playing song or pattern track - - Stop song (Space) - Stop (Space) + + Record notes from MIDI-device/channel-piano, one step at the time + - - Track actions - Sáv műveletek + + Stop playing of current clip (Space) + - - Add beat/bassline - Beat/Bassline sáv hozzáadása + + Edit actions + - - Add sample-track - Hangminta sáv hozzáadása + + Draw mode (Shift+D) + - - Add automation-track - Automatizáció sáv hozzáadása + + Erase mode (Shift+E) + - - Edit actions - Műveletek szerkesztése + + Select mode (Shift+S) + - - Draw mode - Beszúrás + + Pitch Bend mode (Shift+T) + - - Knife mode (split sample clips) - Audió klip felosztása + + Quantize + - - Edit mode (select and move) - Kijelölés és mozgatás + + Quantize positions + - - Timeline controls - Idővonal vezérlők + + Quantize lengths + - - Bar insert controls + + File actions - - Insert bar - Ütem beszúrása + + Import clip + - - Remove bar - Ütem eltávolítása + + + Export clip + - - Zoom controls - Nagyítás vezérlők + + Copy paste controls + - - Horizontal zooming - Vízszintes nagyítás + + Cut (%1+X) + - - Snap controls + + Copy (%1+C) - - - Clip snapping size + + Paste (%1+V) - - Toggle proportional snap on/off + + Timeline controls - - Base snapping size + + Glue - - - StepRecorderWidget - - Hint - Tipp + + Knife + - - Move recording curser using <Left/Right> arrows + + Fill - - - SubWindow - - Close - Bezárás + + Cut overlaps + - - Maximize - Teljes méret + + Min length as last + - - Restore - Visszaállítás + + Max length as last + - - - TabWidget - - - Settings for %1 - %1 beállításai + + Zoom and note controls + - - - TemplatesMenu - - New from template - Létrehozás sablonból + + Horizontal zooming + - - - TempoSyncKnob - - - Tempo Sync - Szinkronizálás tempóhoz + + Vertical zooming + - - No Sync - Nincs + + Quantization + - - Eight beats - 8 ütem + + Note length + - - Whole note - 1 ütem + + Key + - - Half note - 1/2 ütem + + Scale + - - Quarter note - 1/4 ütem + + Chord + - - 8th note - 1/8 ütem + + Snap mode + - - 16th note - 1/16 ütem + + Clear ghost notes + - - 32nd note - 1/32 ütem + + + Piano-Roll - %1 + - - Custom... - Egyéni... + + + Piano-Roll - no clip + - - Custom - Egyéni + + + XML clip file (*.xpt *.xptz) + - - Synced to Eight Beats + + Export clip success - - Synced to Whole Note + + Clip saved to %1 - - Synced to Half Note + + Import clip. - - Synced to Quarter Note + + You are about to import a clip, this will overwrite your current clip. Do you want to continue? - - Synced to 8th Note + + Open clip - - Synced to 16th Note + + Import clip success - - Synced to 32nd Note + + Imported clip %1! - TimeDisplayWidget + lmms::gui::PianoView - - Time units - Időegység + + Base note + - - MIN - MIN + + First note + - - SEC + + Last note + + + lmms::gui::PluginBrowser - - MSEC + + Instrument Plugins - - BAR + + Instrument browser - - BEAT + + Drag an instrument into either the Song Editor, the Pattern Editor or an existing instrument track. - - TICK + + Search - TimeLineWidget + lmms::gui::PluginDescWidget - - Auto scrolling - Automatikus görgetés + + Send to new instrument track + + + + lmms::gui::ProjectNotes - - Loop points - Loop pontok + + Project Notes + - - After stopping go back to beginning - Leállításkor vissza az elejére + + Enter project notes here + - - After stopping go back to position at which playing was started - Leállításkor vissza a lejátszás kezdetéhez + + Edit Actions + - - After stopping keep position - Leállításkor a pozíció megtartása + + &Undo + - - Hint - Tipp + + %1+Z + - - Press <%1> to disable magnetic loop points. + + &Redo - - - Track - - Mute - Némítás + + %1+Y + - - Solo - Szóló + + &Copy + - - - TrackContainer - - Couldn't import file - Nem lehet importálni a fájlt + + %1+C + - - Couldn't find a filter for importing file %1. -You should convert this file into a format supported by LMMS using another software. + + Cu&t - - Couldn't open file - Nem lehet megnyitni a fájlt + + %1+X + - - Couldn't open file %1 for reading. -Please make sure you have read-permission to the file and the directory containing the file and try again! - A(z) %1 fájl nem nyitható meg. Ellenőrizd, hogy rendelkezel-e olvasási jogosultsággal a fájlhoz, majd próbáld újra. + + &Paste + - - Loading project... - Projekt betöltése... + + %1+V + - - - Cancel - Mégse + + Format Actions + - - - Please wait... - Kis türelmet... + + &Bold + - - Loading cancelled - Betöltés megszakítva + + %1+B + - - Project loading was cancelled. - A projekt betöltése megszakítva. + + &Italic + - - Loading Track %1 (%2/Total %3) - Sáv betöltése: %1 (%2/Összesen %3) + + %1+I + - - Importing MIDI-file... - MIDI fájl importálása... + + &Underline + - - - Clip - - Mute - Némítás + + %1+U + - - - ClipView - - Current position - Jelenlegi pozíció + + &Left + - - Current length - Jelenlegi hossz + + %1+L + - - - %1:%2 (%3:%4 to %5:%6) - %1:%2 (%3:%4 - %5:%6) + + C&enter + - - Press <%1> and drag to make a copy. + + %1+E - - Press <%1> for free resizing. + + &Right - - Hint - Tipp + + %1+R + - - Delete (middle mousebutton) - Törlés (középső egérgomb) + + &Justify + - - Delete selection (middle mousebutton) - Kijelöltek törlése (középső egérgomb) + + %1+J + - - Cut - Kivágás + + &Color... + + + + lmms::gui::RecentProjectsMenu - - Cut selection - Kijelöltek kivágása + + &Recently Opened Projects + + + + lmms::gui::RenameDialog - - Merge Selection + + Rename... + + + lmms::gui::ReverbSCControlDialog - - Copy - Másolás + + Input + - - Copy selection - Kijelölés másolása + + Input gain: + - - Paste - Beillesztés + + Size + - - Mute/unmute (<%1> + middle click) - Némítás (<%1> + középső egérgomb) + + Size: + - - Mute/unmute selection (<%1> + middle click) - Kijelölés némítása (<%1> + középső egérgomb) + + Color + - - Set clip color - Szín módosítása + + Color: + - - Use track color - Sáv színének használata + + Output + - - - TrackContentWidget - - Paste - Beillesztés + + Output gain: + - TrackOperationsWidget + lmms::gui::SaControlsDialog - - Press <%1> while clicking on move-grip to begin a new drag'n'drop action. + + Pause - - Actions - Műveletek - - - - - Mute - Némítás - - - - - Solo - Szóló + + Pause data acquisition + - - After removing a track, it can not be recovered. Are you sure you want to remove track "%1"? - Egy sáv törlése nem visszavonható. Biztosan törlöd a(z) "%1" sávot? + + Reference freeze + - - Confirm removal - Törlés megerősítése + + Freeze current input as a reference / disable falloff in peak-hold mode. + - - Don't ask again - Ne kérdezd újra + + Waterfall + - - Clone this track - Sáv klónozása + + Display real-time spectrogram + - - Remove this track - Sáv eltávolítása + + Averaging + - - Clear this track - Sáv tartalmának törlése + + Enable exponential moving average + - - Channel %1: %2 - FX %1: %2 + + Stereo + - - Assign to new mixer Channel - Hozzárendelés új csatornához + + Display stereo channels separately + - - Turn all recording on - Minden felvétel bekapcsolása + + Peak hold + - - Turn all recording off - Minden felvétel kikapcsolása + + Display envelope of peak values + - - Change color - Szín módosítása + + Logarithmic frequency + - - Reset color to default - Szín visszaállítása + + Switch between logarithmic and linear frequency scale + - - Set random color - Véletlenszerű szín + + + Frequency range + - - Clear clip colors - Klip színek törlése + + Logarithmic amplitude + - - - TripleOscillatorView - - Modulate phase of oscillator 1 by oscillator 2 - 1. oszcillátor fázisának modulációja a 2. oszcillátorral + + Switch between logarithmic and linear amplitude scale + - - Modulate amplitude of oscillator 1 by oscillator 2 - 1. oszcillátor amplitúdójának modulációja a 2. oszcillátorral + + + Amplitude range + - - Mix output of oscillators 1 & 2 - 1. és 2. oszcillátorok kimenetének keverése + + + FFT block size + - - Synchronize oscillator 1 with oscillator 2 - 1. oszcillátor szinkronizálása a 2. oszcillátorral + + + FFT window type + - - Modulate frequency of oscillator 1 by oscillator 2 - 1. oszcillátor frekvenciájának modulációja a 2. oszcillátorral + + Envelope res. + - - Modulate phase of oscillator 2 by oscillator 3 - 2. oszcillátor fázisának modulációja a 3. oszcillátorral + + Increase envelope resolution for better details, decrease for better GUI performance. + - - Modulate amplitude of oscillator 2 by oscillator 3 - 2. oszcillátor amplitúdójának modulációja a 3. oszcillátorral + + Maximum number of envelope points drawn per pixel: + - - Mix output of oscillators 2 & 3 - 2. és 3. oszcillátorok kimenetének keverése + + Spectrum res. + - - Synchronize oscillator 2 with oscillator 3 - 2. oszcillátor szinkronizálása a 3. oszcillátorral + + Increase spectrum resolution for better details, decrease for better GUI performance. + - - Modulate frequency of oscillator 2 by oscillator 3 - 2. oszcillátor frekvenciájának modulációja a 3. oszcillátorral + + Maximum number of spectrum points drawn per pixel: + - - Osc %1 volume: - Osc %1 hangerő: + + Falloff factor + - - Osc %1 panning: - Osc %1 panoráma: + + Decrease to make peaks fall faster. + - - Osc %1 coarse detuning: - Osc %1 hangolás: + + Multiply buffered value by + - - semitones - félhang + + Averaging weight + - - Osc %1 fine detuning left: - Osc %1 finomhangolás bal: + + Decrease to make averaging slower and smoother. + - - - cents - cent + + New sample contributes + - - Osc %1 fine detuning right: - Osc %1 finomhangolás jobb: + + Waterfall height + - - Osc %1 phase-offset: - Osc %1 fáziseltolás: + + Increase to get slower scrolling, decrease to see fast transitions better. Warning: medium CPU usage. + - - - degrees - fok + + Number of lines to keep: + - - Osc %1 stereo phase-detuning: - Osc %1 sztereó fáziseltolás: + + Waterfall gamma + - - Sine wave - Szinuszhullám + + Decrease to see very weak signals, increase to get better contrast. + - - Triangle wave - Háromszöghullám + + Gamma value: + - - Saw wave - Fűrészfoghullám + + Window overlap + - - Square wave - Négyszöghullám + + Increase to prevent missing fast transitions arriving near FFT window edges. Warning: high CPU usage. + - - Moog-like saw wave - Moog fűrészfog + + Number of times each sample is processed: + - - Exponential wave - Exponenciális + + Zero padding + - - White noise - Fehér zaj + + Increase to get smoother-looking spectrum. Warning: high CPU usage. + - - User-defined wave - Felhasználó által megadott hullám + + Processing buffer is + - - - VecControls - - Display persistence amount + + steps larger than input block - - Logarithmic scale - Logaritmikus skála + + Advanced settings + - - High quality - Magas minőség + + Access advanced settings + - VecControlsDialog + lmms::gui::SampleClipView - - HQ - HQ + + Double-click to open sample + - - Double the resolution and simulate continuous analog-like trace. + + Reverse sample - - Log. scale - Log. skála + + Set as ghost in automation editor + + + + lmms::gui::SampleTrackView - - Display amplitude on logarithmic scale to better see small values. + + Mixer channel - - Persist. + + Track volume - - Trace persistence: higher amount means the trace will stay bright for longer time. + + Channel volume: - - Trace persistence + + VOL - - - VersionedSaveDialog - - Increment version number - Verziószám növelése + + Panning + - - Decrement version number - Verziószám csökkentése + + Panning: + - - Save Options - Mentési beállítások + + PAN + - - already exists. Do you want to replace it? - már létezik. Felülírod? + + %1: %2 + - VestigeInstrumentView + lmms::gui::SampleTrackWindow - - - Open VST plugin - VST plugin megnyitása + + Sample volume + - - Control VST plugin from LMMS host + + Volume: - - Open VST plugin preset - VST plugin preset megnyitása + + VOL + - - Previous (-) - Előző (-) + + Panning + - - Save preset - Preset mentése + + Panning: + - - Next (+) - Következő (+) + + PAN + - - Show/hide GUI - GUI megjelenítése/elrejtése + + Mixer channel + - - Turn off all notes - Minden hang kikapcsolása + + CHANNEL + + + + lmms::gui::SaveOptionsWidget - - DLL-files (*.dll) - DLL fájlok (*.dll) + + Discard MIDI connections + - - EXE-files (*.exe) - EXE fájlok (*.exe) + + Save As Project Bundle (with resources) + + + + lmms::gui::SetupDialog - - No VST plugin loaded - Nincs VST plugin betöltve + + Settings + - - Preset - Preset + + + General + - - by - készítő: + + Graphical user interface (GUI) + - - - VST plugin control - - VST plugin vezérlők + + Display volume as dBFS + - - - VstEffectControlDialog - - Show/hide + + Enable tooltips - - Control VST plugin from LMMS host + + Enable master oscilloscope by default - - Open VST plugin preset - VST plugin preset megnyitása + + Enable all note labels in piano roll + - - Previous (-) - Előző (-) + + Enable compact track buttons + - - Next (+) - Következő (+) + + Enable one instrument-track-window mode + - - Save preset - Preset mentése + + Show sidebar on the right-hand side + - - - Effect by: - Készítő: + + Let sample previews continue when mouse is released + - - &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> - &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> + + Mute automation tracks during solo + - - - VstPlugin - - - The VST plugin %1 could not be loaded. - A(z) %1 VST plugin nem tölthető be. + + Show warning when deleting tracks + - - Open Preset - Preset megnyitása + + Show warning when deleting a mixer channel that is in use + - - - Vst Plugin Preset (*.fxp *.fxb) - VST Plugin Preset (*.fxp *.fxb) + + Dual-button + - - : default - : alapértelmezett + + Grab closest + - - Save Preset - Preset mentése + + Handles + - - .fxp - .fxp + + Loop edit mode + - - .FXP - .FXP + + Projects + - - .FXB - .FXB + + Compress project files by default + - - .fxb - .fxb + + Create a backup file when saving a project + - - Loading plugin - Plugin betöltése + + Reopen last project on startup + - - Please wait while loading VST plugin... - Várj, amíg a VST plugin betöltődik... + + Language + - - - WatsynInstrument - - Volume A1 - A1 Hangerő + + + Performance + - - Volume A2 - A2 Hangerő + + Autosave + - - Volume B1 - B1 Hangerő + + Enable autosave + - - Volume B2 - B2 Hangerő + + Allow autosave while playing + - - Panning A1 - A1 Panoráma + + User interface (UI) effects vs. performance + - - Panning A2 - A2 Panoráma + + Smooth scroll in song editor + - - Panning B1 - B1 Panoráma + + Display playback cursor in AudioFileProcessor + + + + + Plugins + - - Panning B2 - B2 Panoráma + + VST plugins embedding: + - - Freq. multiplier A1 - A1 Frekvencia szorzó + + No embedding + - - Freq. multiplier A2 - A2 Frekvencia szorzó + + Embed using Qt API + - - Freq. multiplier B1 - B1 Frekvencia szorzó + + Embed using native Win32 API + - - Freq. multiplier B2 - B2 Frekvencia szorzó + + Embed using XEmbed protocol + - - Left detune A1 - A1 Bal oldali elhangolás + + Keep plugin windows on top when not embedded + - - Left detune A2 - A2 Bal oldali elhangolás + + Keep effects running even without input + - - Left detune B1 - B1 Bal oldali elhangolás + + + Audio + - - Left detune B2 - B2 Bal oldali elhangolás + + Audio interface + - - Right detune A1 - A1 Jobb oldali elhangolás + + Buffer size + - - Right detune A2 - A2 Jobb oldali elhangolás + + Reset to default value + - - Right detune B1 - B1 Jobb oldali elhangolás + + + MIDI + - - Right detune B2 - B2 Jobb oldali elhangolás + + MIDI interface + - - A-B Mix - A-B arány + + Automatically assign MIDI controller to selected track + - - A-B Mix envelope amount + + Behavior when recording - - A-B Mix envelope attack + + Auto-quantize notes in Piano Roll - - A-B Mix envelope hold + + If enabled, notes will be automatically quantized when recording them from a MIDI controller. If disabled, they are always recorded at the highest possible resolution. - - A-B Mix envelope decay + + + Paths - - A1-B2 Crosstalk - A1-B2 Áthallás + + LMMS working directory + - - A2-A1 modulation - A2-A1 moduláció + + VST plugins directory + - - B2-B1 modulation - B2-B1 moduláció + + LADSPA plugins directories + - - Selected graph + + SF2 directory - - - WatsynView - - - - - Volume - Hangerő + + Default SF2 + - - - - - Panning - Panoráma + + GIG directory + - - - - - Freq. multiplier - Frekvencia szorzó + + Theme directory + - - - - - Left detune - Bal oldali elhangolás + + Background artwork + - - - - - - - - - cents - cent + + Some changes require restarting. + - - - - - Right detune - Jobb oldali elhangolás + + OK + - - A-B Mix - A-B arány + + Cancel + - - Mix envelope amount + + minutes - - Mix envelope attack + + minute - - Mix envelope hold + + Disabled - - Mix envelope decay + + Autosave interval: %1 - - Crosstalk - Áthallás + + The currently selected value is not a power of 2 (32, 64, 128, 256). Some plugins may not be available. + - - Select oscillator A1 - Oszcillátor A1 kiválasztása + + The currently selected value is less than or equal to 32. Some plugins may not be available. + - - Select oscillator A2 - Oszcillátor A2 kiválasztása + + Frames: %1 +Latency: %2 ms + - - Select oscillator B1 - Oszcillátor B1 kiválasztása + + Choose the LMMS working directory + - - Select oscillator B2 - Oszcillátor B2 kiválasztása + + Choose your VST plugins directory + - - Mix output of A2 to A1 - A1 és A2 keverése + + Choose your LADSPA plugins directory + - - Modulate amplitude of A1 by output of A2 - A1 amplitúdójának modulációja A2-vel + + Choose your SF2 directory + - - Ring modulate A1 and A2 + + Choose your default SF2 - - Modulate phase of A1 by output of A2 - A1 fázisának modulációja A2-vel + + Choose your GIG directory + - - Mix output of B2 to B1 - B1 és B2 keverése + + Choose your theme directory + - - Modulate amplitude of B1 by output of B2 - B1 amplitúdójának modulációja B2-vel + + Choose your background picture + + + + lmms::gui::Sf2InstrumentView - - Ring modulate B1 and B2 + + + Open SoundFont file - - Modulate phase of B1 by output of B2 - B1 fázisának modulációja B2-vel + + Choose patch + - - - - - Draw your own waveform here by dragging your mouse on this graph. + + Gain: - - Load waveform - Hullámforma betöltése + + Apply reverb (if supported) + - - Load a waveform from a sample file - Hullámforma betöltése fájlból + + Room size: + - - Phase left - Fázis balra + + Damping: + - - Shift phase by -15 degrees - Fázis eltolása -15 fokkal + + Width: + - - Phase right - Fázis jobbra + + + Level: + - - Shift phase by +15 degrees - Fázis eltolása +15 fokkal + + Apply chorus (if supported) + - - - Normalize - Normalizálás + + Voices: + - - - Invert - Invertálás + + Speed: + - - - Smooth - Simítás + + Depth: + - - - Sine wave - Szinuszhullám + + SoundFont Files (*.sf2 *.sf3) + + + + lmms::gui::SidInstrumentView - - - - Triangle wave - Háromszöghullám + + Volume: + - - Saw wave - Fűrészfoghullám + + Resonance: + - - - Square wave - Négyszöghullám + + + Cutoff frequency: + - - - Xpressive - - Selected graph + + High-pass filter - - A1 - A1 + + Band-pass filter + - - A2 - A2 + + Low-pass filter + - - A3 - A3 + + Voice 3 off + - - W1 smoothing - W1 simítása + + MOS6581 SID + - - W2 smoothing - W2 simítása + + MOS8580 SID + - - W3 smoothing - W3 simítása + + + Attack: + - - Panning 1 - Panoráma 1 + + + Decay: + - - Panning 2 - Panoráma 2 + + Sustain: + - - Rel trans + + + Release: - - - XpressiveView - - Draw your own waveform here by dragging your mouse on this graph. + + Pulse Width: - - Select oscillator W1 - W1 oszcillátor kiválasztása + + Coarse: + - - Select oscillator W2 - W2 oszcillátor kiválasztása + + Pulse wave + - - Select oscillator W3 - W3 oszcillátor kiválasztása + + Triangle wave + - - Select output O1 - O1 kimenet kiválasztása + + Saw wave + - - Select output O2 - O2 kimenet kiválasztása + + Noise + - - Open help window - Súgó megnyitása + + Sync + - - - Sine wave - Szinuszhullám + + Ring modulation + - - - Moog-saw wave - Moog fűrészfog + + Filtered + - - - Exponential wave - Exponenciális + + Test + - - - Saw wave - Fűrészfoghullám + + Pulse width: + + + + lmms::gui::SideBarWidget - - - User-defined wave - Felhasználó által megadott hullám + + Close + + + + lmms::gui::SlicerTView - - - Triangle wave - Háromszöghullám + + Slice snap + - - - Square wave - Négyszöghullám + + Set slice snapping for detection + - - - White noise - Fehér zaj + + Sync sample + - - WaveInterpolate - Interpoláció + + Enable BPM sync + - - ExpressionValid - Érvényes kifejezés + + Original sample BPM + - - General purpose 1: - Általános 1: + + Threshold used for slicing + - - General purpose 2: - Általános 2: + + Fade Out per note in milliseconds + - - General purpose 3: - Általános 3: + + Copy midi pattern to clipboard + - - O1 panning: - O1 panoráma: + + Open sample selector + - - O2 panning: - O2 panoráma: + + Reset slices + - - Release transition: - Elengedési idő: + + Threshold + - - Smoothness - Simítás + + Fade Out + - - - ZynAddSubFxInstrument - - Portamento - Portamento + + Reset + - - Filter frequency - Szűrő frekvencia + + Midi + - - Filter resonance - Szűrő rezonancia + + BPM + - - Bandwidth - Sávszélesség + + Snap + + + + lmms::gui::SlicerTWaveform - - FM gain + + Click to load sample + + + lmms::gui::SongEditor - - Resonance center frequency + + Could not open file - - Resonance bandwidth + + Could not open file %1. You probably have no permissions to read this file. + Please make sure to have at least read permissions to the file and try again. - - Forward MIDI control change events - MIDI CC események továbbítása + + Operation denied + - - - ZynAddSubFxView - - Portamento: - Portamento: + + A bundle folder with that name already eists on the selected path. Can't overwrite a project bundle. Please select a different name. + - - PORT - PORT + + + + Error + - - Filter frequency: - Szűrő frekvencia: + + Couldn't create bundle folder. + - - FREQ - FREKV + + Couldn't create resources folder. + - - Filter resonance: - Szűrő rezonancia: + + Failed to copy resources. + - - RES - RES + + + Could not write file + - - Bandwidth: - Sávszélesség: + + Could not open %1 for writing. You probably are not permitted to write to this file. Please make sure you have write-access to the file and try again. + - - BW - BW + + An unknown error has occurred and the file could not be saved. + - - FM gain: + + Error in file - - FM GAIN + + The file %1 seems to contain errors and therefore can't be loaded. - - Resonance center frequency: + + template - - RES CF + + project - - Resonance bandwidth: + + Version difference - - RES BW - RES BW + + This %1 was created with LMMS %2 + - - Forward MIDI control changes - MIDI CC események továbbítása + + Zoom + - - Show GUI - GUI megjelenítése + + Tempo + - - - AudioFileProcessor - - Amplify - Erősítés + + TEMPO + - - Start of sample - Minta eleje + + Tempo in BPM + - - End of sample - Minta vége + + + + Master volume + - - Loopback point - Visszatérési pont + + + + Global transposition + - - Reverse sample - Minta megfordítása + + 1/%1 Bar + - - Loop mode - Ismétlési mód + + %1 Bars + - - Stutter + + Value: %1% - - Interpolation mode - Interpolációs mód + + Value: %1 keys + + + + lmms::gui::SongEditorWindow - - None - Nincs + + Song-Editor + - - Linear - Lineáris + + Play song (Space) + - - Sinc - Sinc + + Record samples from Audio-device + - - Sample not found: %1 - Hangminta nem található: %1 + + Record samples from Audio-device while playing song or pattern track + - - - BitInvader - - Sample length - Minta hossza + + Stop song (Space) + - - - BitInvaderView - - Sample length - Minta hossza + + Track actions + - - Draw your own waveform here by dragging your mouse on this graph. + + Add pattern-track - - - Sine wave - Szinuszhullám + + Add sample-track + - - - Triangle wave - Háromszöghullám + + Add automation-track + - - - Saw wave - Fűrészfoghullám + + Edit actions + - - - Square wave - Négyszöghullám + + Draw mode + - - - White noise - Fehér zaj + + Knife mode (split sample clips) + - - - User-defined wave - Felhasználó által megadott hullám + + Edit mode (select and move) + - - - Smooth waveform - Hullámforma simítása + + Timeline controls + - - Interpolation - Interpoláció + + Bar insert controls + - - Normalize - Normalizálás + + Insert bar + - - - DynProcControlDialog - - INPUT - BEMENET + + Remove bar + - - Input gain: - Bemeneti erősítés: + + Zoom controls + - - OUTPUT - KIMENET + + + Zoom + - - Output gain: - Kimeneti erősítés: + + Snap controls + - - ATTACK - ATTACK + + + Clip snapping size + - - Peak attack time: + + Toggle proportional snap on/off - - RELEASE - RELEASE + + Base snapping size + + + + lmms::gui::StepRecorderWidget - - Peak release time: + + Hint - - - Reset wavegraph - Visszaállítás + + Move recording curser using <Left/Right> arrows + + + + lmms::gui::StereoEnhancerControlDialog - - - Smooth wavegraph - Lekerekítés + + WIDTH + - - - Increase wavegraph amplitude by 1 dB - Amplitúdó növelése 1 dB-lel + + Width: + + + + lmms::gui::StereoMatrixControlDialog - - - Decrease wavegraph amplitude by 1 dB - Amplitúdó csökkentése 1 dB-lel + + Left to Left Vol: + - - Stereo mode: maximum - Sztereó mód: maximum + + Left to Right Vol: + - - Process based on the maximum of both stereo channels - Feldolgozás a csatonák maximuma alapján + + Right to Left Vol: + - - Stereo mode: average - Sztereó mód: átlag + + Right to Right Vol: + + + + lmms::gui::SubWindow - - Process based on the average of both stereo channels - Feldolgozás a csatonák átlaga alapján + + Close + - - Stereo mode: unlinked - Sztereó mód: független + + Maximize + - - Process each stereo channel independently - A két csatorna egymástól független feldolgozása + + Restore + - DynProcControls - - - Input gain - Bemeneti erősítés - + lmms::gui::TapTempoView - - Output gain - Kimeneti erősítés + + 0 + - - Attack time + + + Precision - - Release time + + Display in high precision - - Stereo mode - Sztereó mód + + 0.0 ms + - - - graphModel - - Graph + + Mute metronome - - - KickerInstrument - - Start frequency - Kezdő frekvencia + + Mute + - - End frequency - Végső frekvencia + + BPM in milliseconds + - - Length - Hossz + + 0 ms + - - Start distortion - Kezdeti torzítás + + Frequency of BPM + - - End distortion - Végső torzítás + + 0.0000 hz + - - Gain - Erősítés + + Reset + - - Envelope slope - Burkológörbe meredekség + + Reset counter and sidebar information + - - Noise - Zaj + + Sync + - - Click - Kattanás + + Sync with project tempo + - - Frequency slope - Frekvenciaváltozás sebessége + + %1 ms + - - Start from note + + %1 hz + + + lmms::gui::TemplatesMenu - - End to note + + New from template - KickerInstrumentView + lmms::gui::TempoSyncBarModelEditor - - Start frequency: - Kezdő frekvencia: + + + Tempo Sync + - - End frequency: - Végső frekvencia: + + No Sync + - - Frequency slope: - Frekvenciaváltozás sebessége: + + Eight beats + - - Gain: - Erősítés: + + Whole note + - - Envelope length: - Burkológörbe hossza: + + Half note + - - Envelope slope: - Burkológörbe meredekség: + + Quarter note + - - Click: - Kattanás: + + 8th note + - - Noise: - Zaj: + + 16th note + - - Start distortion: - Kezdeti torzítás: + + 32nd note + - - End distortion: - Végső torzítás: + + Custom... + - - - LadspaBrowserView - - - Available Effects - Elérhető effektek + + Custom + - - - Unavailable Effects - Nem elérhető effektek + + Synced to Eight Beats + - - - Instruments - Hangszerek + + Synced to Whole Note + - - - Analysis Tools - Analizáló eszközök + + Synced to Half Note + - - - Don't know - Ismeretlen + + Synced to Quarter Note + - - Type: - Típus: + + Synced to 8th Note + - - - LadspaDescription - - Plugins - Bővítmények + + Synced to 16th Note + - - Description - Leírás + + Synced to 32nd Note + - LadspaPortDialog + lmms::gui::TempoSyncKnob - - Ports - Portok + + + Tempo Sync + - - Name - Név + + No Sync + - - Rate - Ütem: + + Eight beats + - - Direction - Irány + + Whole note + - - Type - Típus + + Half note + - - Min < Default < Max - Min < Alapértelmezés < Max + + Quarter note + - - Logarithmic - Logaritmikus + + 8th note + - - SR Dependent + + 16th note - - Audio - Audió + + 32nd note + - - Control - Vezérlő + + Custom... + - - Input - Bemenet + + Custom + - - Output - Kimenet + + Synced to Eight Beats + - - Toggled - Ki/Be + + Synced to Whole Note + - - Integer - Egész + + Synced to Half Note + - - Float - Lebegőpontos + + Synced to Quarter Note + - - - Yes - Igen + + Synced to 8th Note + + + + + Synced to 16th Note + + + + + Synced to 32nd Note + - Lb302Synth + lmms::gui::TimeDisplayWidget - - VCF Cutoff Frequency - VCF vágási frekvencia + + Time units + - - VCF Resonance - VCF rezonancia + + MIN + - - VCF Envelope Mod - VCF burkológörbe moduláció + + SEC + - - VCF Envelope Decay + + MSEC - - Distortion - Torzítás + + BAR + - - Waveform - Hullámforma + + BEAT + + + + + TICK + + + + + lmms::gui::TimeLineWidget + + + Auto scrolling + - - Slide Decay + + Stepped auto scrolling - - Slide + + Continuous auto scrolling - - Accent + + Auto scrolling disabled - - Dead + + Loop points - - 24dB/oct Filter + + After stopping go back to beginning - - - Lb302SynthView - - Cutoff Freq: - Vágási frekvencia: + + After stopping go back to position at which playing was started + - - Resonance: - Rezonancia: + + After stopping keep position + - - Env Mod: - Moduláció: + + Hint + - - Decay: - Decay: + + Press <%1> to disable magnetic loop points. + - - 303-es-que, 24dB/octave, 3 pole filter + + Set loop begin here - - Slide Decay: + + Set loop end here - - DIST: - Torzítás: + + Loop edit mode (hold shift) + - - Saw wave - Fűrészfoghullám + + Dual-button + - - Click here for a saw-wave. - Fűrészfoghullám + + Grab closest + - - Triangle wave - Háromszöghullám + + Handles + + + + lmms::gui::TrackContentWidget - - Click here for a triangle-wave. - Háromszöghullám + + Paste + + + + lmms::gui::TrackOperationsWidget - - Square wave - Négyszöghullám + + Press <%1> while clicking on move-grip to begin a new drag'n'drop action. + - - Click here for a square-wave. - Négyszöghullám + + Actions + - - Rounded square wave - Lekerekített négyszög + + + Mute + - - Click here for a square-wave with a rounded end. - Lekerekített négyszög + + + Solo + - - Moog wave - Moog-szerű hullám + + After removing a track, it can not be recovered. Are you sure you want to remove track "%1"? + - - Click here for a moog-like wave. - Moog-szerű hullám + + Confirm removal + - - Sine wave - Szinuszhullám + + Don't ask again + - - Click for a sine-wave. - Szinusz + + Clone this track + - - - White noise wave - Fehér zaj + + Remove this track + - - Click here for an exponential wave. - Exponenciális hullám + + Clear this track + - - Click here for white-noise. - Fehér zaj + + Channel %1: %2 + - - Bandlimited saw wave - Sávlimitált fűrészfog + + Assign to new Mixer Channel + - - Click here for bandlimited saw wave. - Sávlimitált fűrészfog + + Turn all recording on + - - Bandlimited square wave - Sávlimitált négyszög + + Turn all recording off + - - Click here for bandlimited square wave. - Sávlimitált négyszög + + Track color + - - Bandlimited triangle wave - Sávlimitált háromszög + + Change + - - Click here for bandlimited triangle wave. - Sávlimitált háromszög + + Reset + - - Bandlimited moog saw wave - Sávlimitált Moog fűrészfog + + Pick random + - - Click here for bandlimited moog saw wave. - Sávlimitált Moog fűrészfog + + Reset clip colors + - MalletsInstrument + lmms::gui::TripleOscillatorView - - Hardness - Keménység + + Modulate phase of oscillator 1 by oscillator 2 + - - Position - Pozíció + + Modulate amplitude of oscillator 1 by oscillator 2 + - - Vibrato gain - Vibrato erősség + + Mix output of oscillators 1 & 2 + - - Vibrato frequency - Vibrato frekvencia + + Synchronize oscillator 1 with oscillator 2 + - - Stick mix - Ütő + + Modulate frequency of oscillator 1 by oscillator 2 + - - Modulator - Modulátor + + Modulate phase of oscillator 2 by oscillator 3 + - - Crossfade - Keverési arány + + Modulate amplitude of oscillator 2 by oscillator 3 + - - LFO speed - LFO sebesség + + Mix output of oscillators 2 & 3 + - - LFO depth - LFO erősség + + Synchronize oscillator 2 with oscillator 3 + - - ADSR - ADSR + + Modulate frequency of oscillator 2 by oscillator 3 + - - Pressure - Nyomás + + Osc %1 volume: + - - Motion + + Osc %1 panning: - - Speed - Sebesség + + Osc %1 coarse detuning: + - - Bowed + + semitones - - Spread - Szórás + + Osc %1 fine detuning left: + - - Marimba - Marimba + + + cents + - - Vibraphone - Vibrafon + + Osc %1 fine detuning right: + - - Agogo - Agogo + + Osc %1 phase-offset: + - - Wood 1 - Fa 1 + + + degrees + - - Reso + + Osc %1 stereo phase-detuning: - - Wood 2 - Fa 2 + + Sine wave + - - Beats + + Triangle wave - - Two fixed + + Saw wave - - Clump + + Square wave - - Tubular bells - Csőharang + + Moog-like saw wave + - - Uniform bar + + Exponential wave - - Tuned bar + + White noise - - Glass + + User-defined wave - - Tibetan bowl - Tibeti hangtál + + Use alias-free wavetable oscillators. + - MalletsInstrumentView - - - Instrument - Hangszer - - - - Spread - Szórás - - - - Spread: - Szórás: - + lmms::gui::VecControlsDialog - - Missing files - HIányzó fájlok + + HQ + - - Your Stk-installation seems to be incomplete. Please make sure the full Stk-package is installed! - Az STK telepítése hiányosnak tűnik. Ellenőrizd, hogy a teljes STK csomag telepítve van-e! + + Double the resolution and simulate continuous analog-like trace. + - - Hardness - Keménység + + Log. scale + - - Hardness: - Keménység: + + Display amplitude on logarithmic scale to better see small values. + - - Position - Pozíció + + Persist. + - - Position: - Pozíció: + + Trace persistence: higher amount means the trace will stay bright for longer time. + - - Vibrato gain - Vibrato erősség + + Trace persistence + + + + lmms::gui::VersionedSaveDialog - - Vibrato gain: - Vibrato erősség: + + Increment version number + - - Vibrato frequency - Vibrato frekvencia + + Decrement version number + - - Vibrato frequency: - Vibrato frekvencia: + + Save Options + - - Stick mix - Ütő + + already exists. Do you want to replace it? + + + + lmms::gui::VestigeInstrumentView - - Stick mix: - Ütő: + + + Open VST plugin + - - Modulator - Modulátor + + Control VST plugin from LMMS host + - - Modulator: - Modulátor: + + Open VST plugin preset + - - Crossfade - Keverési arány + + Previous (-) + - - Crossfade: - Keverési arány: + + Save preset + - - LFO speed - LFO sebesség + + Next (+) + - - LFO speed: - LFO sebesség: + + Show/hide GUI + - - LFO depth - LFO erősség + + Turn off all notes + - - LFO depth: - LFO erősség: + + DLL-files (*.dll) + - - ADSR - ADSR + + EXE-files (*.exe) + - - ADSR: - ADSR: + + SO-files (*.so) + - - Pressure - Nyomás + + No VST plugin loaded + - - Pressure: - Nyomás: + + Preset + - - Speed - Sebesség + + by + - - Speed: - Sebesség: + + - VST plugin control + - ManageVSTEffectView + lmms::gui::VibedView - - - VST parameter control - - VST plugin vezérlők + + Enable waveform + - - VST sync - VST Szinkron + + + Smooth waveform + - - - Automated - Automatizált + + + Normalize waveform + - - Close - Bezárás + + + Sine wave + - - - ManageVestigeInstrumentView - - - - VST plugin control - - VST plugin vezérlők + + + Triangle wave + - - VST Sync - VST Szinkron + + + Saw wave + - - - Automated - Automatizált + + + Square wave + - - Close - Bezárás + + + White noise + - - - OrganicInstrument - - Distortion - Torzítás + + + User-defined wave + - - Volume - Hangerő + + String volume: + - - - OrganicInstrumentView - - Distortion: - Torzítás: + + String stiffness: + - - Volume: - Hangerő: + + Pick position: + - - Randomise - Randomizálás + + Pickup position: + - - - Osc %1 waveform: - Osc %1 hullámforma: + + String panning: + - - Osc %1 volume: - Osc %1 hangerő: + + String detune: + - - Osc %1 panning: - Osc %1 panoráma: + + String fuzziness: + - - Osc %1 stereo detuning - Osc %1 sztereó elhangolás + + String length: + - - cents - cent + + Impulse Editor + - - Osc %1 harmonic: - Osc %1 harmonikus: + + Impulse + - - - PatchesDialog - - Qsynth: Channel Preset + + Enable/disable string - - Bank selector - Bank választó + + Octave + - - Bank - Bank + + String + + + + lmms::gui::VstEffectControlDialog - - Program selector - Program választó + + Show/hide + - - Patch - Patch + + Control VST plugin from LMMS host + - - Name - Név + + Open VST plugin preset + - - OK - OK + + Previous (-) + - - Cancel - Mégse + + Next (+) + - - - Sf2Instrument - - Bank - Bank + + Save preset + - - Patch - Patch + + + Effect by: + - - Gain - Erősítés + + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> + + + + lmms::gui::WatsynView - - Reverb - Zengető + + + + + Volume + - - Reverb room size - Terem méret + + + + + Panning + - - Reverb damping - Csillapítás + + + + + Freq. multiplier + - - Reverb width - Szélesség + + + + + Left detune + - - Reverb level - Zengető mennyiség + + + + + + + + + cents + - - Chorus - Kórus + + + + + Right detune + - - Chorus voices - Szólamok száma + + A-B Mix + - - Chorus level - Kórus mennyiség + + Mix envelope amount + - - Chorus speed - Kórus frekvencia + + Mix envelope attack + - - Chorus depth - Kórus mélység + + Mix envelope hold + - - A soundfont %1 could not be loaded. - A(z) %1 SoundFont nem tölthető be. + + Mix envelope decay + - - - Sf2InstrumentView - - - Open SoundFont file - SoundFont fájl megnyitása + + Crosstalk + - - Choose patch - Patch kiválasztása + + Select oscillator A1 + - - Gain: - Erősítés: + + Select oscillator A2 + - - Apply reverb (if supported) - Zengető alkalmazása (ha támogatott) + + Select oscillator B1 + - - Room size: - Terem méret: + + Select oscillator B2 + - - Damping: - Csillapítás: + + Mix output of A2 to A1 + - - Width: - Szélesség: + + Modulate amplitude of A1 by output of A2 + - - - Level: - Mennyiség: + + Ring modulate A1 and A2 + - - Apply chorus (if supported) - Kórus alkalmazása (ha támogatott) + + Modulate phase of A1 by output of A2 + - - Voices: - Szólamok: + + Mix output of B2 to B1 + - - Speed: - Sebesség: + + Modulate amplitude of B1 by output of B2 + - - Depth: - Mélység: + + Ring modulate B1 and B2 + - - SoundFont Files (*.sf2 *.sf3) - SoundFont fájlok (*.sf2 *.sf3) + + Modulate phase of B1 by output of B2 + - - - SfxrInstrument - - Wave - Hullám + + + + + Draw your own waveform here by dragging your mouse on this graph. + - - - StereoEnhancerControlDialog - - WIDTH - SZÉLESSÉG + + Load waveform + - - Width: - Szélesség: + + Load a waveform from a sample file + - - - StereoEnhancerControls - - Width - Szélesség + + Phase left + - - - StereoMatrixControlDialog - - Left to Left Vol: - Bal - Bal jelszint: + + Shift phase by -15 degrees + - - Left to Right Vol: - Bal - Jobb jelszint: + + Phase right + - - Right to Left Vol: - Jobb - Bal jelszint: + + Shift phase by +15 degrees + - - Right to Right Vol: - Jobb - Jobb jelszint + + + Normalize + - - - StereoMatrixControls - - Left to Left - Bal - Bal + + + Invert + - - Left to Right - Bal - Jobb + + + Smooth + - - Right to Left - Jobb - Bal + + + Sine wave + - - Right to Right - Jobb - Jobb + + + + Triangle wave + - - - VestigeInstrument - - Loading plugin - Plugin betöltése + + Saw wave + - - Please wait while loading the VST plugin... - Várj, amíg a VST plugin betöltődik... + + + Square wave + - Vibed + lmms::gui::WaveShaperControlDialog - - String %1 volume - %1. húr hangerő + + INPUT + - - String %1 stiffness - %1. húr feszessége + + Input gain: + - - Pick %1 position - %1. húr pengetés helye + + OUTPUT + - - Pickup %1 position - %1. hangszedő pozíciója + + Output gain: + - - String %1 panning - %1. húr panoráma + + + Reset wavegraph + - - String %1 detune - %1. húr elhangolása + + + Smooth wavegraph + - - String %1 fuzziness + + + Increase wavegraph amplitude by 1 dB - - String %1 length - %1. húr hossza: + + + Decrease wavegraph amplitude by 1 dB + - - Impulse %1 - Impulzus %1 + + Clip input + - - String %1 - %1. húr + + Clip input signal to 0 dB + - VibedView - - - String volume: - Húr hangerő: - - - - String stiffness: - Húr feszessége: - + lmms::gui::XpressiveView - - Pick position: - Pengetés helye: - - - - Pickup position: - Hangszedő pozíciója: + + Draw your own waveform here by dragging your mouse on this graph. + - - String panning: - Húr panoráma: + + Select oscillator W1 + - - String detune: - Húr elhangolása: + + Select oscillator W2 + - - String fuzziness: + + Select oscillator W3 - - String length: - Húr hossza: + + Select output O1 + - - Impulse - Impulzus + + Select output O2 + - - Octave - Oktáv + + Open help window + - - Impulse Editor - Impulzusszerkesztő + + + Sine wave + - - Enable waveform - Húr engedélyezése + + + Moog-saw wave + - - Enable/disable string - Húr engedélyezése/tiltása + + + Exponential wave + - - String - Húr + + + Saw wave + - - - Sine wave - Szinuszhullám + + + User-defined wave + - - + + Triangle wave - Háromszöghullám - - - - - Saw wave - Fűrészfoghullám + - - + + Square wave - Négyszöghullám + - - + + White noise - Fehér zaj - - - - - User-defined wave - Felhasználó által megadott hullám + - - - Smooth waveform - Hullámforma simítása + + WaveInterpolate + - - - Normalize waveform - Hullámforma normalizálása + + ExpressionValid + - - - VoiceObject - - Voice %1 pulse width + + General purpose 1: - - Voice %1 attack + + General purpose 2: - - Voice %1 decay + + General purpose 3: - - Voice %1 sustain + + O1 panning: - - Voice %1 release + + O2 panning: - - Voice %1 coarse detuning + + Release transition: - - Voice %1 wave shape + + Smoothness + + + lmms::gui::ZynAddSubFxView - - Voice %1 sync + + Portamento: - - Voice %1 ring modulate + + PORT - - Voice %1 filtered + + Filter frequency: - - Voice %1 test + + FREQ - - - WaveShaperControlDialog - - INPUT - BEMENET + + Filter resonance: + - - Input gain: - Bemeneti erősítés: + + RES + - - OUTPUT - KIMENET + + Bandwidth: + - - Output gain: - Kimeneti erősítés: + + BW + - - - Reset wavegraph - Visszaállítás + + FM gain: + - - - Smooth wavegraph - Lekerekítés + + FM GAIN + - - - Increase wavegraph amplitude by 1 dB - Amplitúdó növelése 1 dB-lel + + Resonance center frequency: + - - - Decrease wavegraph amplitude by 1 dB - Amplitúdó csökkentése 1 dB-lel + + RES CF + - - Clip input - Bemenet levágása + + Resonance bandwidth: + - - Clip input signal to 0 dB - Bemenet levágása 0dB-re + + RES BW + - - - WaveShaperControls - - Input gain - Bemeneti erősítés + + Forward MIDI control changes + - - Output gain - Kimeneti erősítés + + Show GUI + - + \ No newline at end of file diff --git a/data/locale/id.ts b/data/locale/id.ts index c504740e936..fc7bb422fc4 100644 --- a/data/locale/id.ts +++ b/data/locale/id.ts @@ -1,4 +1,4 @@ - + AboutDialog @@ -70,954 +70,187 @@ Jika Anda tertarik untuk menerjemahkan LMMS dalam bahasa lain atau ingin meningk - AmplifierControlDialog + AboutJuceDialog - - VOL - VOL - - - - Volume: - Volume: - - - - PAN - SEIMBANG - - - - Panning: - Keseimbangan: - - - - LEFT - KIRI - - - - Left gain: - gain kiri: - - - - RIGHT - KANAN - - - - Right gain: - gain kanan: - - - - AmplifierControls - - - Volume - Volume - - - - Panning - Keseimbangan - - - - Left gain - gain Kiri - - - - Right gain - gain Kanan - - - - AudioAlsaSetupWidget - - - DEVICE - PERANGKAT - - - - CHANNELS - SALURAN - - - - AudioFileProcessorView - - - Open sample - Buka sampel - - - - Reverse sample - Balikan sampel - - - - Disable loop - Nonaktifkan pengulangan - - - - Enable loop - Aktifkan pengulangan - - - - Enable ping-pong loop + + About JUCE - - Continue sample playback across notes - Lanjutkan pemutaran sampel di catatan melintasi not - - - - Amplify: - Penguatan: - - - - Start point: - Poin awal: - - - - End point: - Poin akhir: - - - - Loopback point: - Titik pengulangan: - - - - AudioFileProcessorWaveView - - - Sample length: - Panjang sampel: - - - - AudioJack - - - JACK client restarted - klien JACK dimulai ulang - - - - LMMS was kicked by JACK for some reason. Therefore the JACK backend of LMMS has been restarted. You will have to make manual connections again. - LMMS dikeluarkan oleh JACK karena alasan tertentu. Oleh karena itu backend LMMS JACK, telah dimulai ulang. Anda harus membuat koneksi manual lagi. - - - - JACK server down - Server JACK lumpuh - - - - The JACK server seems to have been shutdown and starting a new instance failed. Therefore LMMS is unable to proceed. You should save your project and restart JACK and LMMS. - Server JACK sepertinya telah dimatikan dan pemulaian instansi baru gagal. Oleh karena itu LMMS tidak bisa dilanjutkan. Anda harus menyimpan proyek anda dan memulai ulang JACK dan LMMS. - - - - Client name + + <b>About JUCE</b> - - Channels + + This program uses JUCE version 3.x.x. - - - AudioOss - - Device + + JUCE is an open-source cross-platform C++ application framework for creating high quality desktop and mobile applications. + +The core JUCE modules (juce_audio_basics, juce_audio_devices, juce_core and juce_events) are permissively licensed under the terms of the ISC license. +Other modules are covered by a GNU GPL 3.0 license. + +Copyright (C) 2022 Raw Material Software Limited. - - Channels + + This program uses JUCE version - AudioPortAudio::setupWidget - - - Backend - - + AudioDeviceSetupWidget - - Device + + [System Default] - AudioPulseAudio + CarlaAboutW - - Device + + About Carla - - Channels - + + About + Ihwal - - - AudioSdl::setupWidget - - Device + + About text here - - - AudioSndio - - Device + + Extended licensing here - - Channels + + Artwork - - - AudioSoundIo::setupWidget - - Backend + + Using KDE Oxygen icon set, designed by Oxygen Team. - - Device + + Contains some knobs, backgrounds and other small artwork from Calf Studio Gear, OpenAV and OpenOctave projects. - - - AutomatableModel - - - &Reset (%1%2) - &Mulai ulang (%1%2) - - - - &Copy value (%1%2) - &Salin nilai (%1%2) - - - - &Paste value (%1%2) - &Tempel nilai (%1%2) - - - - &Paste value - &Tempel nilai - - - - Edit song-global automation - Ubah lagu otomasi global - - - - Remove song-global automation - Hapus lagu otomasi global - - - Remove all linked controls - Hapus semua pengendali yang terhubung + + VST is a trademark of Steinberg Media Technologies GmbH. + VST merupakan merk dagang milik Steinberg Media Technologies GmbH. - - Connected to %1 - Terhubung ke %1 + + Special thanks to António Saraiva for a few extra icons and artwork! + - - Connected to controller - Terhubung ke pengendali + + The LV2 logo has been designed by Thorsten Wilms, based on a concept from Peter Shorthose. + - - Edit connection... - Ubah koneksi... + + MIDI Keyboard designed by Thorsten Wilms. + MIDI Keyboard dirancang oleh Thorsten Wilms. - - Remove connection - Hapus koneksi + + Carla, Carla-Control and Patchbay icons designed by DoosC. + Ikon Carla, Carla-Control, dan Patchbay dirancang oleh DoosC. - - Connect to controller... - Hubungkan ke pengendali... + + Features + Fitur - - - AutomationEditor - - Edit Value + + AU/AudioUnit: - - New outValue + + LADSPA: - - New inValue + + + + + + + + + TextLabel - - Please open an automation clip with the context menu of a control! - Silakan buka pola otomasi dengan menu konteks kontrol! - - - - AutomationEditorWindow - - - Play/pause current clip (Space) - Putar/jeda pola saat ini (Spasi) - - - - Stop playing of current clip (Space) - Berhenti memutar pola saat ini (Spasi) - - - - Edit actions - Ubah aksi - - - - Draw mode (Shift+D) - Mode menggambar (Shift+D) - - - - Erase mode (Shift+E) - Mode penghapus (Shift+E) - - - - Draw outValues mode (Shift+C) + + VST2: - - Flip vertically - Balik secara vertikal - - - - Flip horizontally - Balik secara horizontal - - - - Interpolation controls - Kontrol interpolasi - - - - Discrete progression - Perkembangan diskrit - - - - Linear progression - perkembangan linier - - - - Cubic Hermite progression - Perkembangan Hermite Cubic - - - - Tension value for spline - nilai tegangan untuk spline - - - - Tension: - Tegangan: + + DSSI: + - - Zoom controls - Kontrol Zum + + LV2: + - - Horizontal zooming - Pembesaran horizontal + + VST3: + - - Vertical zooming - Pembesaran vertikal + + OSC + - - Quantization controls - Kontrol kuantitasi + + Host URLs: + - - Quantization - Kuantitasi + + Valid commands: + - - - Automation Editor - no clip - Editor Otomasi - tiada pola + + valid osc commands here + - - - Automation Editor - %1 - Editor Otomasi - %1 + + Example: + - - Model is already connected to this clip. - Model sudah terhubung ke pola ini. + + License + Lisensi - - - AutomationClip - - Drag a control while pressing <%1> - Tarik kontrol sambil menekan <%1> - - - - AutomationClipView - - - Open in Automation editor - Buka di editor Otomasi - - - - Clear - Bersih - - - - Reset name - Reset nama - - - - Change name - Ganti nama - - - - Set/clear record - Setel/bersihkan catatan - - - - Flip Vertically (Visible) - Balik secara Vertikal (Terlihat) - - - - Flip Horizontally (Visible) - Balik secara Horizontal (Terlihat) - - - - %1 Connections - %1 Koneksi - - - - Disconnect "%1" - Putuskan "%1" - - - - Model is already connected to this clip. - Model sudah terhubung ke pola ini. - - - - AutomationTrack - - - Automation track - Trek otomasi - - - - PatternEditor - - - Beat+Bassline Editor - Editor Bassline+ketukan - - - - Play/pause current beat/bassline (Space) - Putar/jeda ketukan/bassline saat ini (Spasi) - - - - Stop playback of current beat/bassline (Space) - Hentikan pemutaran ketukan/bassline saat ini (Spasi) - - - - Beat selector - Pemilih Ketukan - - - - Track and step actions - Aksi trek dan langkah - - - - Add beat/bassline - Tambah ketukan/bassline - - - - Clone beat/bassline clip - - - - - Add sample-track - Tambah Trek-sampel - - - - Add automation-track - Tambah trek-otomasi - - - - Remove steps - Hapus langkah - - - - Add steps - Tambah langkah - - - - Clone Steps - Klon langkah - - - - PatternClipView - - - Open in Beat+Bassline-Editor - Buka di Ketukan/Bassline-Editor - - - - Reset name - Reset nama - - - - Change name - Ganti nama - - - - PatternTrack - - - Beat/Bassline %1 - Ketukan/Bassline %1 - - - - Clone of %1 - Klon dari %1 - - - - BassBoosterControlDialog - - - FREQ - FREK - - - - Frequency: - Frekuensi: - - - - GAIN - GAIN - - - - Gain: - Gain: - - - - RATIO - RASIO - - - - Ratio: - Rasio: - - - - BassBoosterControls - - - Frequency - Frekuensi - - - - Gain - Gain - - - - Ratio - Rasio - - - - BitcrushControlDialog - - - IN - MASUK - - - - OUT - KELUAR - - - - - GAIN - GAIN - - - - Input gain: - Gain masukan: - - - - NOISE - RIUH - - - - Input noise: - - - - - Output gain: - Gait keluaran: - - - - CLIP - KLIP - - - - Output clip: - - - - - Rate enabled - - - - - Enable sample-rate crushing - - - - - Depth enabled - - - - - Enable bit-depth crushing - - - - - FREQ - FREK - - - - Sample rate: - Nilai sampel: - - - - STEREO - STEREO - - - - Stereo difference: - Perbedaan stereo: - - - - QUANT - - - - - Levels: - Tingkat: - - - - BitcrushControls - - - Input gain - Gain masukan - - - - Input noise - - - - - Output gain - Gain keluaran - - - - Output clip - - - - - Sample rate - Nilai sampel - - - - Stereo difference - Perbedaan stereo - - - - Levels - Tingkatan - - - - Rate enabled - - - - - Depth enabled - - - - - CarlaAboutW - - - About Carla - - - - - About - Ihwal - - - - About text here - - - - - Extended licensing here - - - - - Artwork - - - - - Using KDE Oxygen icon set, designed by Oxygen Team. - - - - - Contains some knobs, backgrounds and other small artwork from Calf Studio Gear, OpenAV and OpenOctave projects. - - - - - VST is a trademark of Steinberg Media Technologies GmbH. - - - - - Special thanks to António Saraiva for a few extra icons and artwork! - - - - - The LV2 logo has been designed by Thorsten Wilms, based on a concept from Peter Shorthose. - - - - - MIDI Keyboard designed by Thorsten Wilms. - - - - - Carla, Carla-Control and Patchbay icons designed by DoosC. - - - - - Features - - - - - AU/AudioUnit: - - - - - LADSPA: - - - - - - - - - - - - TextLabel - - - - - VST2: - - - - - DSSI: - - - - - LV2: - - - - - VST3: - - - - - OSC - - - - - Host URLs: - - - - - Valid commands: - - - - - valid osc commands here - - - - - Example: - - - - - License - Lisensi - - - + GNU GENERAL PUBLIC LICENSE Version 2, June 1991 @@ -1302,15042 +535,18222 @@ POSSIBILITY OF SUCH DAMAGES. - - OSC Bridge Version + + OSC Bridge Version + + + + + Plugin Version + + + + + <br>Version %1<br>Carla is a fully-featured audio plugin host%2.<br><br>Copyright (C) 2011-2019 falkTX<br> + + + + + + (Engine not running) + + + + + Everything! (Including LRDF) + + + + + Everything! (Including CustomData/Chunks) + + + + + About 110&#37; complete (using custom extensions)<br/>Implemented Feature/Extensions:<ul><li>http://lv2plug.in/ns/ext/atom</li><li>http://lv2plug.in/ns/ext/buf-size</li><li>http://lv2plug.in/ns/ext/data-access</li><li>http://lv2plug.in/ns/ext/event</li><li>http://lv2plug.in/ns/ext/instance-access</li><li>http://lv2plug.in/ns/ext/log</li><li>http://lv2plug.in/ns/ext/midi</li><li>http://lv2plug.in/ns/ext/options</li><li>http://lv2plug.in/ns/ext/parameters</li><li>http://lv2plug.in/ns/ext/port-props</li><li>http://lv2plug.in/ns/ext/presets</li><li>http://lv2plug.in/ns/ext/resize-port</li><li>http://lv2plug.in/ns/ext/state</li><li>http://lv2plug.in/ns/ext/time</li><li>http://lv2plug.in/ns/ext/uri-map</li><li>http://lv2plug.in/ns/ext/urid</li><li>http://lv2plug.in/ns/ext/worker</li><li>http://lv2plug.in/ns/extensions/ui</li><li>http://lv2plug.in/ns/extensions/units</li><li>http://home.gna.org/lv2dynparam/rtmempool/v1</li><li>http://kxstudio.sf.net/ns/lv2ext/external-ui</li><li>http://kxstudio.sf.net/ns/lv2ext/programs</li><li>http://kxstudio.sf.net/ns/lv2ext/props</li><li>http://kxstudio.sf.net/ns/lv2ext/rtmempool</li><li>http://ll-plugins.nongnu.org/lv2/ext/midimap</li><li>http://ll-plugins.nongnu.org/lv2/ext/miditype</li></ul> + + + + + + + Using Juce host + + + + + About 85% complete (missing vst bank/presets and some minor stuff) + + + + + CarlaHostW + + + MainWindow + + + + + Rack + + + + + Patchbay + Patchbay + + + + Logs + + + + + Loading... + + + + + Save + + + + + Clear + + + + + Ctrl+L + + + + + Auto-Scroll + + + + + Buffer Size: + + + + + Sample Rate: + + + + + ? Xruns + + + + + DSP Load: %p% + + + + + &File + &Berkas + + + + &Engine + + + + + &Plugin + + + + + Macros (all plugins) + + + + + &Canvas + + + + + Zoom + + + + + &Settings + + + + + &Help + &Bantuan + + + + Tool Bar + + + + + Disk + + + + + + Home + + + + + Transport + + + + + Playback Controls + + + + + Time Information + + + + + Frame: + + + + + 000'000'000 + + + + + Time: + Waktu: + + + + 00:00:00 + + + + + BBT: + + + + + 000|00|0000 + + + + + Settings + Pengaturan + + + + BPM + + + + + Use JACK Transport + + + + + Use Ableton Link + + + + + &New + &Baru + + + + Ctrl+N + + + + + &Open... + &Buka + + + + + Open... + + + + + Ctrl+O + + + + + &Save + &Simpan + + + + Ctrl+S + + + + + Save &As... + Simpan &Sebagai... + + + + + Save As... + + + + + Ctrl+Shift+S + Ctrl+Shift+S + + + + &Quit + &Keluar + + + + Ctrl+Q + + + + + &Start + + + + + F5 + + + + + St&op + + + + + F6 + + + + + &Add Plugin... + + + + + Ctrl+A + + + + + &Remove All + + + + + Enable + + + + + Disable + + + + + 0% Wet (Bypass) + + + + + 100% Wet + + + + + 0% Volume (Mute) + + + + + 100% Volume + + + + + Center Balance + + + + + &Play + + + + + Ctrl+Shift+P + + + + + &Stop + + + + + Ctrl+Shift+X + + + + + &Backwards + + + + + Ctrl+Shift+B + + + + + &Forwards + + + + + Ctrl+Shift+F + + + + + &Arrange + + + + + Ctrl+G + + + + + + &Refresh + + + + + Ctrl+R + + + + + Save &Image... + + + + + Auto-Fit + + + + + Zoom In + + + + + Ctrl++ + + + + + Zoom Out + + + + + Ctrl+- + + + + + Zoom 100% + + + + + Ctrl+1 + + + + + Show &Toolbar + + + + + &Configure Carla + + + + + &About + + + + + About &JUCE + + + + + About &Qt + + + + + Show Canvas &Meters + + + + + Show Canvas &Keyboard + + + + + Show Internal + + + + + Show External + + + + + Show Time Panel + + + + + Show &Side Panel + + + + + Ctrl+P + + + + + &Connect... + + + + + Compact Slots + + + + + Expand Slots + + + + + Perform secret 1 + + + + + Perform secret 2 + + + + + Perform secret 3 + + + + + Perform secret 4 + + + + + Perform secret 5 + + + + + Add &JACK Application... + + + + + &Configure driver... + + + + + Panic + + + + + Open custom driver panel... + + + + + Save Image... (2x zoom) + + + + + Save Image... (4x zoom) + + + + + Copy as Image to Clipboard + + + + + Ctrl+Shift+C + + + + + CarlaHostWindow + + + Export as... + + + + + + + + Error + Kesalahan + + + + Failed to load project + + + + + Failed to save project + + + + + Quit + + + + + Are you sure you want to quit Carla? + + + + + Could not connect to Audio backend '%1', possible reasons: +%2 + + + + + Could not connect to Audio backend '%1' + + + + + Warning + + + + + There are still some plugins loaded, you need to remove them to stop the engine. +Do you want to do this now? + + + + + CarlaSettingsW + + + Settings + Pengaturan + + + + main + + + + + canvas + + + + + engine + + + + + osc + + + + + file-paths + + + + + plugin-paths + + + + + wine + + + + + experimental + + + + + Widget + + + + + + Main + + + + + + Canvas + + + + + + Engine + + + + + File Paths + + + + + Plugin Paths + + + + + Wine + + + + + + Experimental + + + + + <b>Main</b> + + + + + Paths + + + + + Default project folder: + + + + + Interface + + + + + Use "Classic" as default rack skin + + + + + Interface refresh interval: + + + + + + ms + + + + + Show console output in Logs tab (needs engine restart) + + + + + Show a confirmation dialog before quitting + + + + + + Theme + + + + + Use Carla "PRO" theme (needs restart) + + + + + Color scheme: + + + + + Black + + + + + System + + + + + Enable experimental features + + + + + <b>Canvas</b> + + + + + Bezier Lines + + + + + Theme: + + + + + Size: + Ukuran: + + + + 775x600 + + + + + 1550x1200 + + + + + 3100x2400 + + + + + 4650x3600 + 4650x3600 + + + + 6200x4800 + + + + + 12400x9600 + + + + + Options + + + + + Auto-hide groups with no ports + + + + + Auto-select items on hover + + + + + Basic eye-candy (group shadows) + + + + + Render Hints + Render Bantuan + + + + Anti-Aliasing + + + + + Full canvas repaints (slower, but prevents drawing issues) + + + + + <b>Engine</b> + + + + + + Core + + + + + Single Client + + + + + Multiple Clients + + + + + + Continuous Rack + + + + + + Patchbay + Patchbay + + + + Audio driver: + + + + + Process mode: + + + + + + + + Maximum number of parameters to allow in the built-in 'Edit' dialog + + + + + Max Parameters: + + + + + ... + + + + + Reset Xrun counter after project load + + + + + Plugin UIs + + + + + + How much time to wait for OSC GUIs to ping back the host + + + + + UI Bridge Timeout: + + + + + Use OSC-GUI bridges when possible, this way separating the UI from DSP code + + + + + Use UI bridges instead of direct handling when possible + + + + + Make plugin UIs always-on-top + + + + + Make plugin UIs appear on top of Carla (needs restart) + + + + + NOTE: Plugin-bridge UIs cannot be managed by Carla on macOS + + + + + + Restart the engine to load the new settings + + + + + <b>OSC</b> + + + + + Enable OSC + + + + + Enable TCP port + + + + + + Use specific port: + + + + + Overridden by CARLA_OSC_TCP_PORT env var + + + + + + Use randomly assigned port + + + + + Enable UDP port + + + + + Overridden by CARLA_OSC_UDP_PORT env var + + + + + DSSI UIs require OSC UDP port enabled + + + + + <b>File Paths</b> + + + + + Audio + Audio + + + + MIDI + MIDI + + + + Used for the "audiofile" plugin + + + + + Used for the "midifile" plugin + + + + + + Add... + + + + + + Remove + + + + + + Change... + + + + + <b>Plugin Paths</b> + + + + + LADSPA + + + + + DSSI + + + + + LV2 + + + + + VST2 + + + + + VST3 + + + + + SF2/3 + + + + + SFZ + + + + + JSFX + + + + + CLAP + + + + + Restart Carla to find new plugins + + + + + <b>Wine</b> + + + + + Executable + + + + + Path to 'wine' binary: + + + + + Prefix + + + + + Auto-detect Wine prefix based on plugin filename + + + + + Fallback: + + + + + Note: WINEPREFIX env var is preferred over this fallback + + + + + Realtime Priority + + + + + Base priority: + + + + + WineServer priority: + + + + + These options are not available for Carla as plugin + + + + + <b>Experimental</b> + + + + + Experimental options! Likely to be unstable! + + + + + Enable plugin bridges + + + + + Enable Wine bridges + + + + + Enable jack applications + + + + + Export single plugins to LV2 + + + + + Use system/desktop-theme icons (needs restart) + + + + + Load Carla backend in global namespace (NOT RECOMMENDED) + + + + + Fancy eye-candy (fade-in/out groups, glow connections) + + + + + Use OpenGL for rendering (needs restart) + + + + + High Quality Anti-Aliasing (OpenGL only) + + + + + Render Ardour-style "Inline Displays" + + + + + Force mono plugins as stereo by running 2 instances at the same time. +This mode is not available for VST plugins. + + + + + Force mono plugins as stereo + + + + + When enabled, Carla will try to prevent plugins from doing things that might mess up the audio or cause xruns, such as fork(), gtk_init() and similar. + + + + + Prevent unsafe calls from plugins (needs restart) + + + + + Run plugins in a separate process, so if they crash it does not affect Carla. +Plugins get automatically deactivated in such cases. +Reactvate them to start the process again, with the last saved state applied to it. + + + + + Run plugins in bridge mode when possible + + + + + + + + Add Path + + + + + Dialog + + + Carla Control - Connect + + + + + Remote setup + + + + + UDP Port: + + + + + Remote host: + + + + + TCP Port: + + + + + Set value + + + + + TextLabel + + + + + Scale Points + + + + + DriverSettingsW + + + Driver Settings + + + + + Device: + + + + + Buffer size: + + + + + Sample rate: + Nilai sampel: + + + + Triple buffer + + + + + Show Driver Control Panel + + + + + Restart the engine to load the new settings + + + + + ExportProjectDialog + + + Export project + Ekspor proyek + + + + Export as loop (remove extra bar) + Ekspor sebagai loop (hapus bar tambahan) + + + + Export between loop markers + Ekspor antar titik pengulangan + + + + Render Looped Section: + + + + + time(s) + + + + + File format settings + Pengaturan format berkas + + + + File format: + Format berkas: + + + + Sampling rate: + + + + + 44100 Hz + 44100 Hz + + + + 48000 Hz + 48000 Hz + + + + 88200 Hz + 88200 Hz + + + + 96000 Hz + 96000 Hz + + + + 192000 Hz + 192000 Hz + + + + Bit depth: + + + + + 16 Bit integer + 16 Bit integer + + + + 24 Bit integer + 24 Bit integer + + + + 32 Bit float + 32 Bit float + + + + Stereo mode: + Mode Stereo: + + + + Mono + Mono + + + + Stereo + Stereo + + + + Joint stereo + Stereo Bergabung + + + + Compression level: + Level kompresi: + + + + Bitrate: + Kecepatan Bit: + + + + 64 KBit/s + 64 KBit/dtk + + + + 128 KBit/s + 128 KBit/dtk + + + + 160 KBit/s + 160 KBit/dtk + + + + 192 KBit/s + 192 KBit/dtk + + + + 256 KBit/s + 256 KBit/dtk + + + + 320 KBit/s + 320 KBit/dtk + + + + Use variable bitrate + Gunakan variabel kecepatan bit + + + + Quality settings + Pengaturan kualitas + + + + Interpolation: + Interpolasi: + + + + Zero order hold + + + + + Sinc worst (fastest) + + + + + Sinc medium (recommended) + + + + + Sinc best (slowest) + + + + + Start + Mulai + + + + Cancel + Batal + + + + InstrumentFunctionNoteStacking + + + octave + oktaf + + + + + Major + Mayor + + + + Majb5 + Mayb5 + + + + minor + minor + + + + minb5 + minb5 + + + + sus2 + sus2 + + + + sus4 + sus4 + + + + aug + aug + + + + augsus4 + augsus4 + + + + tri + tri + + + + 6 + 6 + + + + 6sus4 + 6sus4 + + + + 6add9 + 6add9 + + + + m6 + m6 + + + + m6add9 + m6add9 + + + + 7 + 7 + + + + 7sus4 + 7sus4 + + + + 7#5 + 7#5 + + + + 7b5 + 7b5 + + + + 7#9 + 7#9 + + + + 7b9 + 7b9 + + + + 7#5#9 + 7#5#9 + + + + 7#5b9 + 7#5b9 + + + + 7b5b9 + 7b5b9 + + + + 7add11 + 7add11 + + + + 7add13 + 7add13 + + + + 7#11 + 7#11 + + + + Maj7 + May7 + + + + Maj7b5 + May7b5 + + + + Maj7#5 + May7#5 + + + + Maj7#11 + May7#11 + + + + Maj7add13 + May7add13 + + + + m7 + m7 + + + + m7b5 + m7b5 + + + + m7b9 + m7b9 + + + + m7add11 + m7add11 + + + + m7add13 + m7add13 + + + + m-Maj7 + m-May7 + + + + m-Maj7add11 + m-May7add11 + + + + m-Maj7add13 + m-May7add13 + + + + 9 + 9 + + + + 9sus4 + 9sus4 + + + + add9 + add9 + + + + 9#5 + 9#5 + + + + 9b5 + 9b5 + + + + 9#11 + 9#11 + + + + 9b13 + 9b13 + + + + Maj9 + Maj9 + + + + Maj9sus4 + May9sus4 + + + + Maj9#5 + May9#5 + + + + Maj9#11 + May9#11 + + + + m9 + m9 + + + + madd9 + madd9 + + + + m9b5 + m9b5 + + + + m9-Maj7 + m9-Maj7 + + + + 11 + 11 + + + + 11b9 + 11b9 + + + + Maj11 + May11 + + + + m11 + m11 + + + + m-Maj11 + m-May11 + + + + 13 + 13 + + + + 13#9 + 13#9 + + + + 13b9 + 13b9 + + + + 13b5b9 + 13b5b9 + + + + Maj13 + May13 + + + + m13 + m13 + + + + m-Maj13 + m-May13 + + + + Harmonic minor + Harmonic minor + + + + Melodic minor + Melodic minor + + + + Whole tone + Whole tone + + + + Diminished + Diminished + + + + Major pentatonic + Pentatonik mayor + + + + Minor pentatonic + Pentatonik minor + + + + Jap in sen + Jap in sen + + + + Major bebop + Bebop Mayor + + + + Dominant bebop + Dominan bebop + + + + Blues + Blues + + + + Arabic + Arabic + + + + Enigmatic + Enigmatic + + + + Neopolitan + Neopolitan + + + + Neopolitan minor + Neopolitan minor + + + + Hungarian minor + Hungarian minor + + + + Dorian + Dorian + + + + Phrygian + + + + + Lydian + Lydian + + + + Mixolydian + Mixolydian + + + + Aeolian + Aeolian + + + + Locrian + Locrian + + + + Minor + Minor + + + + Chromatic + Chromatic + + + + Half-Whole Diminished + Half-Whole Diminished + + + + 5 + 5 + + + + Phrygian dominant + Dominan frigia + + + + Persian + Persia + + + + InstrumentSoundShaping + + + VOLUME + VOLUME + + + + Volume + Volume + + + + + CUTOFF + + + + + Cutoff frequency + Frekuensi cutoff + + + + RESO + RESO + + + + Resonance + Resonansi + + + + JackAppDialog + + + Add JACK Application + + + + + Note: Features not implemented yet are greyed out + + + + + Application + + + + + Name: + + + + + Application: + + + + + From template + + + + + Custom + + + + + Template: + + + + + Command: + + + + + Setup + + + + + Session Manager: + + + + + None + + + + + Audio inputs: + + + + + MIDI inputs: + + + + + Audio outputs: + + + + + MIDI outputs: + + + + + Take control of main application window + + + + + Workarounds + + + + + Wait for external application start (Advanced, for Debug only) + + + + + Capture only the first X11 Window + + + + + Use previous client output buffer as input for the next client + + + + + Simulate 16 JACK MIDI outputs, with MIDI channel as port index + + + + + Error here + + + + + NSM applications cannot use abstract or absolute paths + + + + + NSM applications cannot use CLI arguments + + + + + You need to save the current Carla project before NSM can be used + + + + + JuceAboutW + + + This program uses JUCE version %1. + + + + + MidiPatternW + + + MIDI Pattern + + + + + Time Signature: + + + + + + + 1/4 + + + + + 2/4 + + + + + 3/4 + + + + + 4/4 + + + + + 5/4 + + + + + 6/4 + + + + + Measures: + + + + + + + 1 + + + + + 2 + + + + + 3 + + + + + 4 + + + + + 5 + 5 + + + + 6 + 6 + + + + 7 + 7 + + + + 8 + + + + + 9 + 9 + + + + 10 + + + + + 11 + 11 + + + + 12 + + + + + 13 + 13 + + + + 14 + + + + + 15 + + + + + 16 + + + + + Default Length: + + + + + + 1/16 + + + + + + 1/15 + + + + + + 1/12 + + + + + + 1/9 + + + + + + 1/8 + + + + + + 1/6 + + + + + + 1/3 + + + + + + 1/2 + + + + + Quantize: + + + + + &File + &Berkas + + + + &Edit + &Edit + + + + &Quit + &Keluar + + + + Esc + + + + + &Insert Mode + + + + + F + + + + + &Velocity Mode + + + + + D + + + + + Select All + + + + + A + + + + + PatchesDialog + + + + Qsynth: Channel Preset + + + + + + Bank selector + Pemilih bank + + + + + Bank + Bank + + + + + Program selector + Pemilih program + + + + + Patch + Patch + + + + + Name + Nama + + + + + OK + OK + + + + + Cancel + Batal + + + + PluginBrowser + + + no description + tanpa deskripsi + + + + A native amplifier plugin + Plugin amplifier native + + + + Simple sampler with various settings for using samples (e.g. drums) in an instrument-track + Sampler sederhana dengan macam-macam pengaturan untuk menggunakan sampel. (cnth. drum) dalam sebuah trek instrumen + + + + Boost your bass the fast and simple way + Tingkatkan bass Anda secara cepat dan sederhana + + + + Customizable wavetable synthesizer + Synthesizer wavetable yang dapat disesuaikan + + + + An oversampling bitcrusher + + + + + Carla Patchbay Instrument + Instrumen Carla Patchbay + + + + Carla Rack Instrument + Rak Instrumen Carla + + + + A dynamic range compressor. + + + + + A 4-band Crossover Equalizer + + + + + A native delay plugin + + + + + A Dual filter plugin + Plugin filter ganda + + + + plugin for processing dynamics in a flexible way + plugin untuk memproses dinamika suara dengan cara yang fleksibel + + + + A native eq plugin + Plugin eq bawaan + + + + A native flanger plugin + Plugin flanger bawaan + + + + Emulation of GameBoy (TM) APU + Emulasi APU GameBoy (TM) + + + + Player for GIG files + Pemutar untuk berkas GIG + + + + Filter for importing Hydrogen files into LMMS + Filter untuk mengimpor berkas Hydrogen ke LMMS + + + + Versatile drum synthesizer + Synthesizer drum serbaguna + + + + List installed LADSPA plugins + Daftar plugin LADSPA yang terpasang + + + + plugin for using arbitrary LADSPA-effects inside LMMS. + Plugin untuk menggunakan efek LADSPA yang sewenang-wenang di dalam LMMS. + + + + Incomplete monophonic imitation TB-303 + + + + + plugin for using arbitrary LV2-effects inside LMMS. + + + + + plugin for using arbitrary LV2 instruments inside LMMS. + + + + + Filter for exporting MIDI-files from LMMS + Filter untuk mengekspor berkas MIDI dari LMMS + + + + Filter for importing MIDI-files into LMMS + Filter untuk mengimpor berkas MIDI ke LMMS + + + + Monstrous 3-oscillator synth with modulation matrix + + + + + A multitap echo delay plugin + + + + + A NES-like synthesizer + Synthesizer seperti NES + + + + 2-operator FM Synth + 2-operator FM Synth + + + + Additive Synthesizer for organ-like sounds + + + + + GUS-compatible patch instrument + Instrumen patch yang kompatibel dengan GUS + + + + Plugin for controlling knobs with sound peaks + Plugin untuk mengendalikan kenop dengan puncak suara + + + + Reverb algorithm by Sean Costello + + + + + Player for SoundFont files + Pemutar untuk berkas SoundFont + + + + LMMS port of sfxr + + + + + Emulation of the MOS6581 and MOS8580 SID. +This chip was used in the Commodore 64 computer. + Emulasi SID MOS6581 dan MOS8580. +Chip yang digunakan pada komputer Commodore 64. + + + + A graphical spectrum analyzer. + + + + + Plugin for enhancing stereo separation of a stereo input file + + + + + Plugin for freely manipulating stereo output + + + + + Tuneful things to bang on + Hal-hal yang menyenangkan untuk ajep-ajep + + + + Three powerful oscillators you can modulate in several ways + + + + + A stereo field visualizer. + + + + + VST-host for using VST(i)-plugins within LMMS + + + + + Vibrating string modeler + Menggetarkan modeler string + + + + plugin for using arbitrary VST effects inside LMMS. + Plugin untuk menggunakan efek VST yang sewenang-wenang di dalam LMMS. + + + + 4-oscillator modulatable wavetable synth + + + + + plugin for waveshaping + plugin untuk pembentukan gelombang + + + + Mathematical expression parser + + + + + Embedded ZynAddSubFX + Tertanam ZynAddSubFX + + + + An all-pass filter allowing for extremely high orders. + + + + + Granular pitch shifter + + + + + Upwards/downwards multiband compression plugin powered by the eldritch elder god LOMMUS. + + + + + Basic Slicer + + + + + Tap to the beat + + + + + PluginEdit + + + Plugin Editor + Editor Plugin + + + + Edit + + + + + Control + Kontrol + + + + MIDI Control Channel: + + + + + N + + + + + Output dry/wet (100%) + + + + + Output volume (100%) + + + + + Balance Left (0%) + + + + + + Balance Right (0%) + + + + + Use Balance + + + + + Use Panning + + + + + Settings + Pengaturan + + + + Use Chunks + + + + + Audio: + Audio: + + + + Fixed-Size Buffer + + + + + Force Stereo (needs reload) + + + + + MIDI: + MIDI: + + + + Map Program Changes + Petakan Perubahan Program + + + + Send Notes + + + + + Send Bank/Program Changes + + + + + Send Control Changes + + + + + Send Channel Pressure + + + + + Send Note Aftertouch + + + + + Send Pitchbend + + + + + Send All Sound/Notes Off + + + + + +Plugin Name + + + + + + Program: + + + + + MIDI Program: + + + + + Save State + + + + + Load State + + + + + Information + + + + + Label/URI: + + + + + Name: + + + + + Type: + Tipe: + + + + Maker: + + + + + Copyright: + Hak Cipta: + + + + Unique ID: + + + + + PluginFactory + + + Plugin not found. + Plugin tidak ditemukan. + + + + LMMS plugin %1 does not have a plugin descriptor named %2! + Plugin LMMS %1 tidak memiliki deskriptor plugin bernama %2! + + + + PluginListDialog + + + Carla - Add New + + + + + Requirements - - Plugin Version + + With Custom GUI - - <br>Version %1<br>Carla is a fully-featured audio plugin host%2.<br><br>Copyright (C) 2011-2019 falkTX<br> + + With CV Ports - - - (Engine not running) + + Real-time safe only - - Everything! (Including LRDF) + + Stereo only - - Everything! (Including CustomData/Chunks) + + With Inline Display - - About 110&#37; complete (using custom extensions)<br/>Implemented Feature/Extensions:<ul><li>http://lv2plug.in/ns/ext/atom</li><li>http://lv2plug.in/ns/ext/buf-size</li><li>http://lv2plug.in/ns/ext/data-access</li><li>http://lv2plug.in/ns/ext/event</li><li>http://lv2plug.in/ns/ext/instance-access</li><li>http://lv2plug.in/ns/ext/log</li><li>http://lv2plug.in/ns/ext/midi</li><li>http://lv2plug.in/ns/ext/options</li><li>http://lv2plug.in/ns/ext/parameters</li><li>http://lv2plug.in/ns/ext/port-props</li><li>http://lv2plug.in/ns/ext/presets</li><li>http://lv2plug.in/ns/ext/resize-port</li><li>http://lv2plug.in/ns/ext/state</li><li>http://lv2plug.in/ns/ext/time</li><li>http://lv2plug.in/ns/ext/uri-map</li><li>http://lv2plug.in/ns/ext/urid</li><li>http://lv2plug.in/ns/ext/worker</li><li>http://lv2plug.in/ns/extensions/ui</li><li>http://lv2plug.in/ns/extensions/units</li><li>http://home.gna.org/lv2dynparam/rtmempool/v1</li><li>http://kxstudio.sf.net/ns/lv2ext/external-ui</li><li>http://kxstudio.sf.net/ns/lv2ext/programs</li><li>http://kxstudio.sf.net/ns/lv2ext/props</li><li>http://kxstudio.sf.net/ns/lv2ext/rtmempool</li><li>http://ll-plugins.nongnu.org/lv2/ext/midimap</li><li>http://ll-plugins.nongnu.org/lv2/ext/miditype</li></ul> + + Favorites only - - - - Using Juce host + + (Number of Plugins go here) - - About 85% complete (missing vst bank/presets and some minor stuff) + + &Add Plugin - - - CarlaHostW - - MainWindow + + Cancel - - Rack + + Refresh - - Patchbay + + Reset filters - - Logs + + + + + + + + + + + + + + + + + TextLabel - - Loading... + + Format: - - Buffer Size: + + Architecture: - - Sample Rate: + + Type: - - ? Xruns + + MIDI Ins: - - DSP Load: %p% + + Audio Ins: - - &File - &Berkas + + CV Outs: + - - &Engine + + MIDI Outs: - - &Plugin + + Parameter Ins: - - Macros (all plugins) + + Parameter Outs: - - &Canvas + + Audio Outs: - - Zoom + + CV Ins: - - &Settings + + UniqueID: - - &Help - &Bantuan + + Has Inline Display: + - - toolBar + + Has Custom GUI: - - Disk + + Is Synth: - - - Home + + Is Bridged: - - Transport + + Information - - Playback Controls + + Name - - Time Information + + Label/Id/URI - - Frame: + + Maker - - 000'000'000 + + Binary/Filename - - Time: - Waktu: + + Format + - - 00:00:00 + + Internal - - BBT: + + LADSPA - - 000|00|0000 + + DSSI - - Settings - Pengaturan + + LV2 + - - BPM + + VST2 - - Use JACK Transport + + VST3 - - Use Ableton Link + + CLAP - - &New - &Baru + + AU + - - Ctrl+N + + JSFX - - &Open... - &Buka + + Sound Kits + + + + + Type + + + + + Effects + + + + + Instruments + + + + + MIDI Plugins + + + + + Other/Misc + + + + + Category + + + + + All + + + + + Delay + + + + + Distortion + + + + + Dynamics + + + + + EQ + + + + + Filter + + + + + Modulator + + + + + Synth + + + + + Utility + + + + + + Other + + + + + Architecture + + + + + + Native + + + + + Bridged + + + + + Bridged (Wine) + + + + + Focus Text Search + + + + + Ctrl+F + + + + + Bridged (32bit) + + + + + Discovering internal plugins... + + + + + Discovering LADSPA plugins... + + + + + Discovering DSSI plugins... + + + + + Discovering LV2 plugins... + + + + + Discovering VST2 plugins... + + + + + Discovering VST3 plugins... + + + + + Discovering CLAP plugins... + + + + + Discovering AU plugins... + + + + + Discovering JSFX plugins... + + + + + Discovering SF2 kits... + + + + + Discovering SFZ kits... + + + + + Unknown + + + + + + + + Yes + + + + + + + + No + + + + + PluginParameter + + + Form + + + + + Parameter Name + - - - Open... + + TextLabel - - Ctrl+O + + ... + + + PluginRefreshDialog - - &Save - &Simpan + + Plugin Refresh + - - Ctrl+S + + Search for: - - Save &As... - Simpan &Sebagai... + + All plugins, ignoring cache + - - - Save As... + + Updated plugins only - - Ctrl+Shift+S + + Check previously invalid plugins - - &Quit - &Keluar + + Press 'Scan' to begin the search + - - Ctrl+Q + + Scan - - &Start + + >> Skip - - F5 + + Close + + + PluginWidget - - St&op + + + + + + Frame - - F6 + + Enable - - &Add Plugin... - + + On/Off + Nyala/Mati - - Ctrl+A + + + + + PluginName - - &Remove All - + + MIDI + MIDI - - Enable + + AUDIO IN - - Disable + + AUDIO OUT - - 0% Wet (Bypass) + + GUI - - 100% Wet + + Edit - - 0% Volume (Mute) + + Remove - - 100% Volume + + Plugin Name - - Center Balance + + Preset: + + + ProjectRenderer - - &Play - + + WAV (*.wav) + WAV (*.wav) - - Ctrl+Shift+P - + + FLAC (*.flac) + FLAC (*.flac) - - &Stop - + + OGG (*.ogg) + OGG (*.ogg) - - Ctrl+Shift+X - + + MP3 (*.mp3) + MP3 (*.mp3) + + + QGroupBox - - &Backwards + + + Settings for %1 + + + QObject - - Ctrl+Shift+B + + Reload Plugin - - &Forwards - + + Show GUI + Tampilkan GUI - - Ctrl+Shift+F - + + Help + Bantuan - - &Arrange + + LADSPA plugins - - Ctrl+G + + The project contains %1 LADSPA plugin(s) which might have not been restored correctly! Please check the project. - - - &Refresh + + URI: - - Ctrl+R + + Project: - - Save &Image... + + Maker: - - Auto-Fit + + Homepage: - - Zoom In + + License: - - Ctrl++ + + File: %1 - - Zoom Out + + failed to load description - - Ctrl+- + + Open audio file - - Zoom 100% + + Error loading sample - - Ctrl+1 + + %1 (unsupported) + + + QWidget - - Show &Toolbar - + + + Name: + Nama: - - &Configure Carla - + + Maker: + Pembuat: - - &About - + + Copyright: + Hak cipta: - - About &JUCE - + + Requires Real Time: + Membutuhkan Real Time: - - About &Qt - + + + + Yes + Ya - - Show Canvas &Meters - + + + + No + Tidak - - Show Canvas &Keyboard - + + Real Time Capable: + Kemampuan Real Time: - - Show Internal + + In Place Broken: - - Show External - + + Channels In: + Saluran Masukan: - - Show Time Panel - + + Channels Out: + Saluran Keluaran: - - Show &Side Panel - + + File: %1 + Berkas: %1 - - &Connect... - + + File: + Berkas: + + + XYControllerW - - Compact Slots + + XY Controller - - Expand Slots + + X Controls: - - Perform secret 1 + + Y Controls: - - Perform secret 2 + + Smooth - - Perform secret 3 + + &Settings - - Perform secret 4 + + Channels - - Perform secret 5 + + &File - - Add &JACK Application... + + Show MIDI &Keyboard - - &Configure driver... + + (All) - - Panic + + 1 - - Open custom driver panel... + + 2 - - - CarlaHostWindow - - Export as... + + 3 - - - - - Error - Kesalahan + + 4 + - - Failed to load project + + 5 - - Failed to save project + + 6 - - Quit + + 7 - - Are you sure you want to quit Carla? + + 8 - - Could not connect to Audio backend '%1', possible reasons: -%2 + + 9 - - Could not connect to Audio backend '%1' + + 10 - - Warning + + 11 - - There are still some plugins loaded, you need to remove them to stop the engine. -Do you want to do this now? + + 12 - - - CarlaInstrumentView - - Show GUI - Tampilkan GUI + + 13 + - - - CarlaSettingsW - - Settings - Pengaturan + + 14 + - - main + + 15 - - canvas + + 16 - - engine + + &Quit - - osc + + Esc - - - file-paths + + + (None) + + + lmms::AmplifierControls - - plugin-paths + + Volume - - wine + + Panning - - experimental + + Left gain - - Widget + + Right gain + + + lmms::AudioFileProcessor - - - Main + + Amplify - - - Canvas + + Start of sample - - - Engine + + End of sample - - File Paths + + Loopback point - - Plugin Paths + + Reverse sample - - Wine + + Loop mode - - - Experimental + + Stutter - - <b>Main</b> + + Interpolation mode - - Paths + + None - - Default project folder: + + Linear - - Interface + + Sinc - - Interface refresh interval: + + Sample not found + + + lmms::AudioJack - - - ms + + JACK client restarted - - Show console output in Logs tab (needs engine restart) + + LMMS was kicked by JACK for some reason. Therefore the JACK backend of LMMS has been restarted. You will have to make manual connections again. - - Show a confirmation dialog before quitting + + JACK server down - - - Theme + + The JACK server seems to have been shutdown and starting a new instance failed. Therefore LMMS is unable to proceed. You should save your project and restart JACK and LMMS. - - Use Carla "PRO" theme (needs restart) + + Client name - - Color scheme: + + Channels + + + lmms::AudioOss - - Black + + Device - - System + + Channels + + + lmms::AudioPortAudio::setupWidget - - Enable experimental features + + Backend - - <b>Canvas</b> + + Device + + + lmms::AudioPulseAudio - - Bezier Lines + + Device - - Theme: + + Channels + + + lmms::AudioSdl::setupWidget - - Size: - Ukuran: + + Playback device + - - 775x600 + + Input device + + + lmms::AudioSndio - - 1550x1200 + + Device - - 3100x2400 + + Channels + + + lmms::AudioSoundIo::setupWidget - - 4650x3600 + + Backend - - 6200x4800 + + Device + + + lmms::AutomatableModel - - Options + + &Reset (%1%2) - - Auto-hide groups with no ports + + &Copy value (%1%2) - - Auto-select items on hover + + &Paste value (%1%2) - - Basic eye-candy (group shadows) + + &Paste value - - Render Hints + + Edit song-global automation - - Anti-Aliasing + + Remove song-global automation - - Full canvas repaints (slower, but prevents drawing issues) + + Remove all linked controls - - <b>Engine</b> + + Connected to %1 - - - Core + + Connected to controller - - Single Client + + Edit connection... - - Multiple Clients + + Remove connection - - - Continuous Rack + + Connect to controller... + + + lmms::AutomationClip - - - Patchbay + + Drag a control while pressing <%1> + + + lmms::AutomationTrack - - Audio driver: + + Automation track + + + lmms::BassBoosterControls - - Process mode: + + Frequency - - - - - Maximum number of parameters to allow in the built-in 'Edit' dialog + + Gain - - Max Parameters: + + Ratio + + + lmms::BitInvader - - ... + + Sample length - - Reset Xrun counter after project load + + Interpolation - - Plugin UIs + + Normalize + + + lmms::BitcrushControls - - - How much time to wait for OSC GUIs to ping back the host + + Input gain - - UI Bridge Timeout: + + Input noise - - Use OSC-GUI bridges when possible, this way separating the UI from DSP code + + Output gain - - Use UI bridges instead of direct handling when possible + + Output clip - - Make plugin UIs always-on-top + + Sample rate - - Make plugin UIs appear on top of Carla (needs restart) + + Stereo difference - - NOTE: Plugin-bridge UIs cannot be managed by Carla on macOS + + Levels - - - Restart the engine to load the new settings + + Rate enabled - - <b>OSC</b> + + Depth enabled + + + lmms::Clip - - Enable OSC + + Mute + + + lmms::CompressorControls - - Enable TCP port + + Threshold - - - Use specific port: + + Ratio - - Overridden by CARLA_OSC_TCP_PORT env var + + Attack - - - Use randomly assigned port + + Release - - Enable UDP port + + Knee - - Overridden by CARLA_OSC_UDP_PORT env var + + Hold - - DSSI UIs require OSC UDP port enabled + + Range - - <b>File Paths</b> + + RMS Size - - Audio - Audio + + Mid/Side + - - MIDI - MIDI + + Peak Mode + - - Used for the "audiofile" plugin + + Lookahead Length - - Used for the "midifile" plugin + + Input Balance - - - Add... + + Output Balance - - - Remove + + Limiter - - - Change... + + Output Gain - - <b>Plugin Paths</b> + + Input Gain - - LADSPA + + Blend - - DSSI + + Stereo Balance - - LV2 + + Auto Makeup Gain - - VST2 + + Audition - - VST3 + + Feedback - - SF2/3 + + Auto Attack - - SFZ + + Auto Release - - Restart Carla to find new plugins + + Lookahead - - <b>Wine</b> + + Tilt - - Executable + + Tilt Frequency - - Path to 'wine' binary: + + Stereo Link - - Prefix + + Mix + + + lmms::Controller - - Auto-detect Wine prefix based on plugin filename + + Controller %1 + + + lmms::DelayControls - - Fallback: + + Delay samples - - Note: WINEPREFIX env var is preferred over this fallback + + Feedback - - Realtime Priority + + LFO frequency - - Base priority: + + LFO amount - - WineServer priority: + + Output gain + + + lmms::DispersionControls - - These options are not available for Carla as plugin + + Amount - - <b>Experimental</b> + + Frequency - - Experimental options! Likely to be unstable! + + Resonance - - Enable plugin bridges + + Feedback - - Enable Wine bridges + + DC Offset Removal + + + lmms::DualFilterControls - - Enable jack applications + + Filter 1 enabled - - Export single plugins to LV2 + + Filter 1 type - - Load Carla backend in global namespace (NOT RECOMMENDED) + + Cutoff frequency 1 - - Fancy eye-candy (fade-in/out groups, glow connections) + + Q/Resonance 1 - - Use OpenGL for rendering (needs restart) + + Gain 1 - - High Quality Anti-Aliasing (OpenGL only) + + Mix - - Render Ardour-style "Inline Displays" + + Filter 2 enabled - - Force mono plugins as stereo by running 2 instances at the same time. -This mode is not available for VST plugins. + + Filter 2 type - - Force mono plugins as stereo + + Cutoff frequency 2 - - Prevent plugins from doing bad stuff (needs restart) + + Q/Resonance 2 - - Whenever possible, run the plugins in bridge mode. + + Gain 2 - - Run plugins in bridge mode when possible + + + Low-pass - - - - - Add Path + + + Hi-pass - - - CompressorControlDialog - - Threshold: + + + Band-pass csg - - Volume at which the compression begins to take place + + + Band-pass czpg - - Ratio: - Rasio: + + + Notch + - - How far the compressor must turn the volume down after crossing the threshold + + + All-pass - - Attack: - Attack: + + + Moog + - - Speed at which the compressor starts to compress the audio + + + 2x Low-pass - - Release: - Release: + + + RC Low-pass 12 dB/oct + - - Speed at which the compressor ceases to compress the audio + + + RC Band-pass 12 dB/oct - - Knee: + + + RC High-pass 12 dB/oct - - Smooth out the gain reduction curve around the threshold + + + RC Low-pass 24 dB/oct - - Range: + + + RC Band-pass 24 dB/oct - - Maximum gain reduction + + + RC High-pass 24 dB/oct - - Lookahead Length: + + + Vocal Formant - - How long the compressor has to react to the sidechain signal ahead of time + + + 2x Moog - - Hold: - Hold: + + + SV Low-pass + - - Delay between attack and release stages + + + SV Band-pass - - RMS Size: + + + SV High-pass - - Size of the RMS buffer + + + SV Notch - - Input Balance: + + + Fast Formant - - Bias the input audio to the left/right or mid/side + + + Tripole + + + lmms::DynProcControls - - Output Balance: + + Input gain - - Bias the output audio to the left/right or mid/side + + Output gain - - Stereo Balance: + + Attack time - - Bias the sidechain signal to the left/right or mid/side + + Release time - - Stereo Link Blend: + + Stereo mode + + + lmms::Effect - - Blend between unlinked/maximum/average/minimum stereo linking modes + + Effect enabled - - Tilt Gain: + + Wet/Dry mix - - Bias the sidechain signal to the low or high frequencies. -6 db is lowpass, 6 db is highpass. + + Gate - - Tilt Frequency: + + Decay + + + lmms::EffectChain - - Center frequency of sidechain tilt filter + + Effects enabled + + + lmms::Engine - - Mix: + + Generating wavetables - - Balance between wet and dry signals + + Initializing data structures - - Auto Attack: + + Opening audio and midi devices - - Automatically control attack value depending on crest factor + + Launching audio engine threads + + + lmms::EnvelopeAndLfoParameters - - Auto Release: + + Env pre-delay - - Automatically control release value depending on crest factor + + Env attack - - Output gain - Gain keluaran + + Env hold + - - - Gain - GainGain + + Env decay + - - Output volume + + Env sustain - - Input gain - Gain masukan + + Env release + - - Input volume + + Env mod amount - - Root Mean Square + + LFO pre-delay - - Use RMS of the input + + LFO attack - - Peak + + LFO frequency - - Use absolute value of the input + + LFO mod amount - - Left/Right + + LFO wave shape - - Compress left and right audio + + LFO frequency x 100 - - Mid/Side + + Modulate env amount - - Compress mid and side audio + + Sample not found + + + lmms::EqControls - - Compressor + + Input gain - - Compress the audio + + Output gain - - Limiter + + Low-shelf gain - - Set Ratio to infinity (is not guaranteed to limit audio volume) + + Peak 1 gain - - Unlinked + + Peak 2 gain - - Compress each channel separately + + Peak 3 gain - - Maximum + + Peak 4 gain - - Compress based on the loudest channel + + High-shelf gain - - Average + + HP res - - Compress based on the averaged channel volume + + Low-shelf res - - Minimum + + Peak 1 BW - - Compress based on the quietest channel + + Peak 2 BW - - Blend + + Peak 3 BW - - Blend between stereo linking modes + + Peak 4 BW - - Auto Makeup Gain + + High-shelf res - - Automatically change makeup gain depending on threshold, knee, and ratio settings + + LP res - - - Soft Clip + + HP freq - - Play the delta signal + + Low-shelf freq - - Use the compressor's output as the sidechain input + + Peak 1 freq - - Lookahead Enabled + + Peak 2 freq - - Enable Lookahead, which introduces 20 milliseconds of latency + + Peak 3 freq - - - CompressorControls - - Threshold + + Peak 4 freq - - Ratio - Rasio + + High-shelf freq + - - Attack - Attack + + LP freq + - - Release - Release + + HP active + - - Knee + + Low-shelf active - - Hold - Tahan + + Peak 1 active + - - Range + + Peak 2 active - - RMS Size + + Peak 3 active - - Mid/Side + + Peak 4 active - - Peak Mode + + High-shelf active - - Lookahead Length + + LP active - - Input Balance + + LP 12 - - Output Balance + + LP 24 - - Limiter + + LP 48 - - Output Gain - Gain Keluaran + + HP 12 + - - Input Gain - Gain Masukan + + HP 24 + - - Blend + + HP 48 - - Stereo Balance + + Low-pass type - - Auto Makeup Gain + + High-pass type - - Audition + + Analyse IN - - Feedback - Umpan balik + + Analyse OUT + + + + lmms::FlangerControls - - Auto Attack + + Delay samples - - Auto Release + + LFO frequency - - Lookahead + + Amount - - Tilt + + Stereo phase - - Tilt Frequency + + Feedback - - Stereo Link + + Noise - - Mix - Mix + + Invert + - Controller + lmms::FreeBoyInstrument - - Controller %1 - Kontroler %1 + + Sweep time + - - - ControllerConnectionDialog - - Connection Settings - Pengaturan Koneksi + + Sweep direction + - - MIDI CONTROLLER - KONTROLER MIDI + + Sweep rate shift amount + - - Input channel - Saluran Masukan + + + Wave pattern duty cycle + - - CHANNEL - SALURAN + + Channel 1 volume + - - Input controller - Kontroler masukan + + + + Volume sweep direction + + + + + + + Length of each step in sweep + - - CONTROLLER - KONTROLER + + Channel 2 volume + - - - Auto Detect - Deteksi Otomatis + + Channel 3 volume + - - MIDI-devices to receive MIDI-events from - Perangkat MIDI untuk menerima aktifitas-MIDI dari + + Channel 4 volume + - - USER CONTROLLER - KONTROLER PENGGUNA + + Shift Register width + - - MAPPING FUNCTION - PEMETAAN FUNGSI + + Right output level + - - OK - OK + + Left output level + - - Cancel - Batal + + Channel 1 to SO2 (Left) + - - LMMS - LMMS + + Channel 2 to SO2 (Left) + - - Cycle Detected. - Siklus terdeteksi. + + Channel 3 to SO2 (Left) + - - - ControllerRackView - - Controller Rack - Kontroler rak + + Channel 4 to SO2 (Left) + - - Add - Tambah + + Channel 1 to SO1 (Right) + - - Confirm Delete - Konfirmasi Hapus + + Channel 2 to SO1 (Right) + - - Confirm delete? There are existing connection(s) associated with this controller. There is no way to undo. - Konfirmasi hapus? Ada (beberapa) koneksi yang terasosiasi dengan kontroler ini. Tidak mungkin untuk melakukan undi. + + Channel 3 to SO1 (Right) + - - - ControllerView - - Controls - Kontrol + + Channel 4 to SO1 (Right) + - - Rename controller - Ganti nama kontroler + + Treble + - - Enter the new name for this controller - Masukan nama baru untuk kontroler ini + + Bass + + + + lmms::GigInstrument - - LFO - LFO + + Bank + - - &Remove this controller - &Hapus kontroler ini + + Patch + - - Re&name this controller - Ganti&Nama kontroler ini + + Gain + - CrossoverEQControlDialog + lmms::GranularPitchShifterControls - - Band 1/2 crossover: + + Pitch - - Band 2/3 crossover: + + Grain Size - - Band 3/4 crossover: + + Spray - - Band 1 gain + + Jitter - - Band 1 gain: + + Twitch - - Band 2 gain + + Pitch Stereo Spread - - Band 2 gain: + + Spray Stereo - - Band 3 gain + + Shape - - Band 3 gain: + + Fade Length - - Band 4 gain + + Feedback - - Band 4 gain: + + Minimum Allowed Latency - - Band 1 mute + + Prefilter - - Mute band 1 + + Density - - Band 2 mute + + Glide - - Mute band 2 + + Ring Buffer Length - - Band 3 mute + + 5 Seconds - - Mute band 3 + + 10 Seconds (Size) - - Band 4 mute + + 40 Seconds (Size and Pitch) - - Mute band 4 + + 40 Seconds (Size and Spray and Jitter) - - - DelayControls - - Delay samples + + 120 Seconds (All of the above) + + + lmms::InstrumentFunctionArpeggio - - Feedback - Umpan balik - - - - LFO frequency - Frekuensi LFO + + Arpeggio + - - LFO amount - Jumlah LFO + + Arpeggio type + - - Output gain - Gain keluaran + + Arpeggio range + - - - DelayControlsDialog - - DELAY - DELAY + + Note repeats + - - Delay time + + Cycle steps - - FDBK - UMPBLK + + Skip rate + - - Feedback amount + + Miss rate - - RATE - NILAI + + Arpeggio time + - - LFO frequency - Frekuensi LFO + + Arpeggio gate + - - AMNT - JMLH + + Arpeggio direction + - - LFO amount - Jumlah LFO + + Arpeggio mode + - - Out gain + + Up - - Gain - GainGain + + Down + - - - Dialog - - Add JACK Application + + Up and down - - Note: Features not implemented yet are greyed out + + Down and up - - Application + + Random - - Name: + + Free - - Application: + + Sort - - From template + + Sync + + + lmms::InstrumentFunctionNoteStacking - - Custom + + Chords - - Template: + + Chord type - - Command: + + Chord range + + + lmms::InstrumentSoundShaping - - Setup + + Envelopes/LFOs - - Session Manager: + + Filter type - - None - Tidak ada + + Cutoff frequency + - - Audio inputs: + + Q/Resonance - - MIDI inputs: + + Low-pass - - Audio outputs: + + Hi-pass - - MIDI outputs: + + Band-pass csg - - Take control of main application window + + Band-pass czpg - - Workarounds + + Notch - - Wait for external application start (Advanced, for Debug only) + + All-pass - - Capture only the first X11 Window + + Moog - - Use previous client output buffer as input for the next client + + 2x Low-pass - - Simulate 16 JACK MIDI outputs, with MIDI channel as port index + + RC Low-pass 12 dB/oct - - Error here + + RC Band-pass 12 dB/oct - - Carla Control - Connect + + RC High-pass 12 dB/oct - - Remote setup + + RC Low-pass 24 dB/oct - - UDP Port: + + RC Band-pass 24 dB/oct - - Remote host: + + RC High-pass 24 dB/oct - - TCP Port: + + Vocal Formant - - Reported host + + 2x Moog - - Automatic + + SV Low-pass - - Custom: + + SV Band-pass - - In some networks (like USB connections), the remote system cannot reach the local network. You can specify here which hostname or IP to make the remote Carla connect to. -If you are unsure, leave it as 'Automatic'. + + SV High-pass - - Set value + + SV Notch - - TextLabel + + Fast Formant - - Scale Points + + Tripole - DriverSettingsW + lmms::InstrumentTrack - - Driver Settings + + + unnamed_track - - Device: + + Base note - - Buffer size: + + First note - - Sample rate: - Nilai sampel: - - - - Triple buffer + + Last note - - Show Driver Control Panel + + Volume - - Restart the engine to load the new settings + + Panning - - - DualFilterControlDialog - - - - FREQ - FREK - - - - - Cutoff frequency - Frekuensi cutoff - - - - - RESO - RESO - - - - - Resonance - Resonansi - - - - GAIN - GAIN + + Pitch + - - - Gain - Gain + + Pitch range + - - MIX - MIX + + Mixer channel + - - Mix - Mix + + Master pitch + - - Filter 1 enabled - Filter 1 diaktifkan + + Enable/Disable MIDI CC + - - Filter 2 enabled - Filter 2 diaktifkan + + CC Controller %1 + - - Enable/disable filter 1 + + + Default preset + + + lmms::Keymap - - Enable/disable filter 2 + + empty - DualFilterControls + lmms::KickerInstrument - - Filter 1 enabled - Filter 1 diaktifkan + + Start frequency + - - Filter 1 type - Tipe Filter 1 + + End frequency + - - Cutoff frequency 1 + + Length - - Q/Resonance 1 - Q/Resonansi 1 + + Start distortion + - - Gain 1 - Gain 1 + + End distortion + - - Mix - Mix + + Gain + - - Filter 2 enabled - Filter 2 diaktifkan + + Envelope slope + - - Filter 2 type - Tipe Filter 2 + + Noise + - - Cutoff frequency 2 + + Click - - Q/Resonance 2 - Q/Resonansi 2 + + Frequency slope + - - Gain 2 - Gain 2 + + Start from note + - - - Low-pass + + End to note + + + lmms::LOMMControls - - - Hi-pass + + Depth - - - Band-pass csg + + Time - - - Band-pass czpg + + Input Volume - - - Notch - Notch + + Output Volume + - - - All-pass + + Upward Depth - - - Moog - Moog + + Downward Depth + - - - 2x Low-pass + + High/Mid Split - - - RC Low-pass 12 dB/oct + + Mid/Low Split - - - RC Band-pass 12 dB/oct + + Enable High/Mid Split - - - RC High-pass 12 dB/oct + + Enable Mid/Low Split - - - RC Low-pass 24 dB/oct + + Enable High Band - - - RC Band-pass 24 dB/oct + + Enable Mid Band - - - RC High-pass 24 dB/oct + + Enable Low Band - - - Vocal Formant + + High Input Volume - - - 2x Moog - 2x Moog + + Mid Input Volume + - - - SV Low-pass + + Low Input Volume - - - SV Band-pass + + High Output Volume - - - SV High-pass + + Mid Output Volume - - - SV Notch - SV Notch + + Low Output Volume + - - - Fast Formant - Formant Cepat + + Above Threshold High + - - - Tripole - Tripol + + Above Threshold Mid + - - - Editor - - Transport controls - Kontrol transport + + Above Threshold Low + - - Play (Space) - Putar (Spasi) + + Above Ratio High + - - Stop (Space) - Hentikan (Spasi) + + Above Ratio Mid + - - Record - Rekam + + Above Ratio Low + - - Record while playing - Rekam ketika memutar + + Below Threshold High + - - Toggle Step Recording + + Below Threshold Mid - - - Effect - - Effect enabled - Efek diaktifkan + + Below Threshold Low + - - Wet/Dry mix + + Below Ratio High - - Gate - Lawang + + Below Ratio Mid + - - Decay - Tahan + + Below Ratio Low + - - - EffectChain - - Effects enabled - Aktifkan efek + + Attack High + - - - EffectRackView - - EFFECTS CHAIN - RANTAI EFEK + + Attack Mid + - - Add effect - Tambah efek + + Attack Low + - - - EffectSelectDialog - - Add effect - Tambah efek + + Release High + - - - Name - Nama + + Release Mid + - - Type - Tipe + + Release Low + - - Description - Deskripsi + + RMS Time + - - Author - Pencipta + + Knee + - - - EffectView - - On/Off - Nyala/Mati + + Range + - - W/D - B/K + + Balance + - - Wet Level: - Tingkat Basah: + + Scale output volume with Depth + - - DECAY - DECAY + + Stereo Link + - - Time: - Waktu: + + Auto Time + - - GATE - LAWANG + + Mix + - - Gate: - Lawang: + + Feedback + - - Controls - Kontrol + + Mid/Side + - - Move &up - Pindah ke &atas + + Lookahead + - - Move &down - Pindah ke &bawah + + Lookahead Length + - - &Remove this plugin - &Hapus plugin ini + + Suppress upward compression for side band + - EnvelopeAndLfoParameters + lmms::LadspaControl - - Env pre-delay + + Link channels + + + lmms::LadspaEffect - - Env attack + + Unknown LADSPA plugin %1 requested. + + + lmms::Lb302Synth - - Env hold + + VCF Cutoff Frequency - - Env decay + + VCF Resonance - - Env sustain + + VCF Envelope Mod - - Env release + + VCF Envelope Decay - - Env mod amount + + Distortion - - LFO pre-delay + + Waveform - - LFO attack + + Slide Decay - - LFO frequency - Frekuensi LFO - - - - LFO mod amount + + Slide - - LFO wave shape + + Accent - - LFO frequency x 100 + + Dead - - Modulate env amount + + 24dB/oct Filter - EnvelopeAndLfoView - - - - DEL - DEL - + lmms::LfoController - - - Pre-delay: + + LFO Controller - - - ATT - ATT + + Base value + - - - Attack: - Attack: + + Oscillator speed + - - HOLD - HOLD + + Oscillator amount + - - Hold: - Hold: + + Oscillator phase + - - DEC - DEC + + Oscillator waveform + - - Decay: - Decay: + + Frequency Multiplier + - - SUST - SUST + + Sample not found + + + + lmms::MalletsInstrument - - Sustain: - Sustain: + + Hardness + - - REL - REL + + Position + - - Release: - Release: + + Vibrato gain + - - - AMT - JMLH + + Vibrato frequency + - - - Modulation amount: - Jumlah modulasi: + + Stick mix + - - SPD - SPD + + Modulator + - - Frequency: - Frekuensi: + + Crossfade + - - FREQ x 100 - FREK x 100 + + LFO speed + - - Multiply LFO frequency by 100 + + LFO depth - - MODULATE ENV AMOUNT + + ADSR - - Control envelope amount by this LFO + + Pressure - - ms/LFO: - md/LFO: + + Motion + - - Hint - Petunjuk + + Speed + - - Drag and drop a sample into this window. + + Bowed - - - EqControls - - Input gain - Gain masukan + + Instrument + - - Output gain - Gain keluaran + + Spread + - - Low-shelf gain + + Randomness - - Peak 1 gain - Gain peak 1 + + Marimba + - - Peak 2 gain - Gain peak 2 + + Vibraphone + - - Peak 3 gain - Gain peak 3 + + Agogo + - - Peak 4 gain - Gain peak 4 + + Wood 1 + - - High-shelf gain + + Reso - - HP res - HP res + + Wood 2 + - - Low-shelf res + + Beats - - Peak 1 BW - Peak 1 BW + + Two fixed + - - Peak 2 BW - Peak 2 BW + + Clump + - - Peak 3 BW + + Tubular bells - - Peak 4 BW + + Uniform bar - - High-shelf res + + Tuned bar - - LP res - LP res + + Glass + - - HP freq - HP freq + + Tibetan bowl + + + + lmms::MeterModel - - Low-shelf freq + + Numerator - - Peak 1 freq - Frek peak 1 + + Denominator + + + + lmms::Microtuner - - Peak 2 freq - Frek peak 2 + + Microtuner + - - Peak 3 freq - Frek peak 3 + + Microtuner on / off + - - Peak 4 freq - Frek peak 4 + + Selected scale + - - High-shelf freq + + Selected keyboard mapping + + + lmms::MidiController - - LP freq - Frek LP + + MIDI Controller + - - HP active - HP aktif + + unnamed_midi_controller + + + + lmms::MidiImport - - Low-shelf active + + + Setup incomplete - - Peak 1 active - Peak 1 aktif + + You have not set up a default soundfont in the settings dialog (Edit->Settings). Therefore no sound will be played back after importing this MIDI file. You should download a General MIDI soundfont, specify it in settings dialog and try again. + - - Peak 2 active - Peak 2 aktif + + You did not compile LMMS with support for SoundFont2 player, which is used to add default sound to imported MIDI files. Therefore no sound will be played back after importing this MIDI file. + - - Peak 3 active - Peak 3 aktif + + MIDI Time Signature Numerator + - - Peak 4 active - Peak 4 aktif + + MIDI Time Signature Denominator + - - High-shelf active + + Numerator - - LP active - LP aktif + + Denominator + - - LP 12 - LP 12 + + + Tempo + - - LP 24 - LP 24 + + Track + + + + lmms::MidiJack - - LP 48 - LP 48 + + JACK server down + When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (title) + - - HP 12 - HP 12 + + The JACK server seems to be shuted down. + When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (dialog message) + + + + lmms::MidiPort - - HP 24 - HP 24 + + Input channel + - - HP 48 - Hp 48 + + Output channel + - - Low-pass type + + Input controller - - High-pass type + + Output controller - - Analyse IN + + Fixed input velocity - - Analyse OUT + + Fixed output velocity - - - EqControlsDialog - - HP - HP + + Fixed output note + - - Low-shelf + + Output MIDI program - - Peak 1 - Peak 1 + + Base velocity + - - Peak 2 - Peak 2 + + Receive MIDI-events + - - Peak 3 - Peak 3 + + Send MIDI-events + + + + lmms::Mixer - - Peak 4 - Peak 4 + + Master + - - High-shelf + + + + Channel %1 - - LP - LP + + Volume + - - Input gain - Gain masukan + + Mute + - - - - Gain - Gain + + Solo + + + + lmms::MixerRoute - - Output gain - Gain keluaran + + + Amount to send from channel %1 to channel %2 + + + + lmms::MonstroInstrument - - Bandwidth: + + Osc 1 volume - - Octave - Oktaf + + Osc 1 panning + - - Resonance : - Resonansi : + + Osc 1 coarse detune + - - Frequency: - Frekuensi: + + Osc 1 fine detune left + - - LP group + + Osc 1 fine detune right - - HP group + + Osc 1 stereo phase offset - - - EqHandle - - Reso: - Reso: + + Osc 1 pulse width + - - BW: - BW: + + Osc 1 sync send on rise + - - - Freq: - Frek: + + Osc 1 sync send on fall + - - - ExportProjectDialog - - Export project - Ekspor proyek + + Osc 2 volume + - - Export as loop (remove extra bar) + + Osc 2 panning - - Export between loop markers - Ekspor antar titik pengulangan + + Osc 2 coarse detune + - - Render Looped Section: + + Osc 2 fine detune left - - time(s) + + Osc 2 fine detune right - - File format settings - Pengaturan format berkas + + Osc 2 stereo phase offset + - - File format: - Format berkas: + + Osc 2 waveform + - - Sampling rate: + + Osc 2 sync hard - - 44100 Hz - 44100 Hz + + Osc 2 sync reverse + - - 48000 Hz - 48000 Hz + + Osc 3 volume + - - 88200 Hz - 88200 Hz + + Osc 3 panning + - - 96000 Hz - 96000 Hz + + Osc 3 coarse detune + - - 192000 Hz - 192000 Hz + + Osc 3 Stereo phase offset + - - Bit depth: + + Osc 3 sub-oscillator mix - - 16 Bit integer - 16 Bit integer + + Osc 3 waveform 1 + - - 24 Bit integer - 24 Bit integer + + Osc 3 waveform 2 + - - 32 Bit float - 32 Bit float + + Osc 3 sync hard + - - Stereo mode: - Mode Stereo: + + Osc 3 Sync reverse + - - Mono - Mono + + LFO 1 waveform + - - Stereo - Stereo + + LFO 1 attack + - - Joint stereo - Stereo Bergabung + + LFO 1 rate + - - Compression level: - Level kompresi: + + LFO 1 phase + - - Bitrate: - Kecepatan Bit: + + LFO 2 waveform + - - 64 KBit/s - 64 KBit/dtk + + LFO 2 attack + - - 128 KBit/s - 128 KBit/dtk + + LFO 2 rate + - - 160 KBit/s - 160 KBit/dtk + + LFO 2 phase + - - 192 KBit/s - 192 KBit/dtk + + Env 1 pre-delay + - - 256 KBit/s - 256 KBit/dtk + + Env 1 attack + - - 320 KBit/s - 320 KBit/dtk + + Env 1 hold + - - Use variable bitrate - Gunakan variabel kecepatan bit + + Env 1 decay + - - Quality settings - Pengaturan kualitas + + Env 1 sustain + - - Interpolation: - Interpolasi: + + Env 1 release + - - Zero order hold + + Env 1 slope - - Sinc worst (fastest) + + Env 2 pre-delay - - Sinc medium (recommended) + + Env 2 attack - - Sinc best (slowest) + + Env 2 hold - - Oversampling: + + Env 2 decay - - 1x (None) - 1x (Tidak ada) + + Env 2 sustain + - - 2x - 2x + + Env 2 release + - - 4x - 4x + + Env 2 slope + - - 8x - 8x + + Osc 2+3 modulation + - - Start - Mulai + + Selected view + - - Cancel - Batal + + Osc 1 - Vol env 1 + - - Could not open file - Tidak bisa membuka berkas + + Osc 1 - Vol env 2 + - - Could not open file %1 for writing. -Please make sure you have write permission to the file and the directory containing the file and try again! - Tidak bisa membuka berkas %1 untuk menulis. -Pastikan Anda memiliki izin menulis ke file dan direktori yang berisi berkas tersebut dan coba lagi! + + Osc 1 - Vol LFO 1 + - - Export project to %1 - Ekspor proyek ke %1 + + Osc 1 - Vol LFO 2 + - - ( Fastest - biggest ) + + Osc 2 - Vol env 1 - - ( Slowest - smallest ) + + Osc 2 - Vol env 2 - - Error - Kesalahan + + Osc 2 - Vol LFO 1 + - - Error while determining file-encoder device. Please try to choose a different output format. - Kesalahan ketika menentukan perangkat encoder-file. Cobalah untuk memilih format keluaran yang berbeda. + + Osc 2 - Vol LFO 2 + - - Rendering: %1% - Merender: %1% + + Osc 3 - Vol env 1 + - - - Fader - - Set value + + Osc 3 - Vol env 2 - - Please enter a new value between %1 and %2: - Silakan masukan nilai baru antara %1 dan %2: + + Osc 3 - Vol LFO 1 + - - - FileBrowser - - User content + + Osc 3 - Vol LFO 2 - - Factory content + + Osc 1 - Phs env 1 - - Browser - Penjelajah + + Osc 1 - Phs env 2 + - - Search - Cari + + Osc 1 - Phs LFO 1 + - - Refresh list - Segarkan daftar + + Osc 1 - Phs LFO 2 + - - - FileBrowserTreeWidget - - Send to active instrument-track - Kirim ke trek-instrumen yang aktif + + Osc 2 - Phs env 1 + - - Open containing folder + + Osc 2 - Phs env 2 - - Song Editor - Editor Lagu + + Osc 2 - Phs LFO 1 + - - BB Editor + + Osc 2 - Phs LFO 2 - - Send to new AudioFileProcessor instance + + Osc 3 - Phs env 1 - - Send to new instrument track + + Osc 3 - Phs env 2 - - (%2Enter) + + Osc 3 - Phs LFO 1 - - Send to new sample track (Shift + Enter) + + Osc 3 - Phs LFO 2 - - Loading sample - Memuat sampel + + Osc 1 - Pit env 1 + - - Please wait, loading sample for preview... - Mohon tunggu, memuat sampel untuk pratinjau... + + Osc 1 - Pit env 2 + - - Error - Kesalahan + + Osc 1 - Pit LFO 1 + - - %1 does not appear to be a valid %2 file + + Osc 1 - Pit LFO 2 - - --- Factory files --- - --- Berkas pabrik --- + + Osc 2 - Pit env 1 + - - - FlangerControls - - Delay samples + + Osc 2 - Pit env 2 - - LFO frequency - Frekuensi LFO + + Osc 2 - Pit LFO 1 + - - Seconds - Detik + + Osc 2 - Pit LFO 2 + - - Stereo phase + + Osc 3 - Pit env 1 - - Regen - Regen + + Osc 3 - Pit env 2 + - - Noise - Derau + + Osc 3 - Pit LFO 1 + - - Invert - Balik + + Osc 3 - Pit LFO 2 + - - - FlangerControlsDialog - - DELAY - DELAY + + Osc 1 - PW env 1 + - - Delay time: + + Osc 1 - PW env 2 - - RATE - NILAI + + Osc 1 - PW LFO 1 + - - Period: - Periode: + + Osc 1 - PW LFO 2 + - - AMNT - JMLH + + Osc 3 - Sub env 1 + - - Amount: - Jumlah: + + Osc 3 - Sub env 2 + - - PHASE + + Osc 3 - Sub LFO 1 - - Phase: + + Osc 3 - Sub LFO 2 - - FDBK - UMPBLK + + + Sine wave + - - Feedback amount: + + Bandlimited Triangle wave - - NOISE - RIUH + + Bandlimited Saw wave + - - White noise amount: + + Bandlimited Ramp wave - - Invert - Balik + + Bandlimited Square wave + - - - FreeBoyInstrument - - Sweep time + + Bandlimited Moog saw wave - - Sweep direction + + + Soft square wave - - Sweep rate shift amount + + Absolute sine wave - - - Wave pattern duty cycle + + + Exponential wave - - Channel 1 volume - Volume Saluran 1 + + White noise + - - - - Volume sweep direction + + Digital Triangle wave - - - - Length of each step in sweep + + Digital Saw wave - - Channel 2 volume - Volume Saluran 2 + + Digital Ramp wave + - - Channel 3 volume - Volume Saluran 3 + + Digital Square wave + - - Channel 4 volume - Volume Saluran 4 + + Digital Moog saw wave + - - Shift Register width + + Triangle wave - - Right output level + + Saw wave - - Left output level + + Ramp wave - - Channel 1 to SO2 (Left) - Saluran 1 ke SO2 (Kiri) + + Square wave + - - Channel 2 to SO2 (Left) - Saluran 2 ke SO2 (Kiri) + + Moog saw wave + - - Channel 3 to SO2 (Left) - Saluran 3 ke SO2 (Kiri) + + Abs. sine wave + - - Channel 4 to SO2 (Left) - Saluran 4 ke SO2 (Kiri) + + Random + - - Channel 1 to SO1 (Right) - Saluran 1 ke SO1 (Kanan) + + Random smooth + + + + lmms::NesInstrument - - Channel 2 to SO1 (Right) - Saluran 2 ke SO1 (Kanan) + + Channel 1 enable + - - Channel 3 to SO1 (Right) - Saluran 3 ke SO1 (Kanan) + + Channel 1 coarse detune + - - Channel 4 to SO1 (Right) - Saluran 4 ke SO1 (Kanan) + + Channel 1 volume + - - Treble - Trebel + + Channel 1 envelope enable + - - Bass - Bass + + Channel 1 envelope loop + - - - FreeBoyInstrumentView - - Sweep time: + + Channel 1 envelope length - - Sweep time + + Channel 1 duty cycle - - Sweep rate shift amount: + + Channel 1 sweep enable - - Sweep rate shift amount + + Channel 1 sweep amount - - - Wave pattern duty cycle: + + Channel 1 sweep rate - - - Wave pattern duty cycle + + Channel 2 enable - - Square channel 1 volume: + + Channel 2 coarse detune - - Square channel 1 volume + + Channel 2 volume - - - - Length of each step in sweep: + + Channel 2 envelope enable - - - - Length of each step in sweep + + Channel 2 envelope loop - - Square channel 2 volume: + + Channel 2 envelope length - - Square channel 2 volume + + Channel 2 duty cycle - - Wave pattern channel volume: + + Channel 2 sweep enable - - Wave pattern channel volume + + Channel 2 sweep amount - - Noise channel volume: + + Channel 2 sweep rate - - Noise channel volume + + Channel 3 enable - - SO1 volume (Right): + + Channel 3 coarse detune - - SO1 volume (Right) + + Channel 3 volume - - SO2 volume (Left): + + Channel 4 enable - - SO2 volume (Left) + + Channel 4 volume - - Treble: - Trebel: + + Channel 4 envelope enable + - - Treble - Trebel + + Channel 4 envelope loop + - - Bass: - Bass: + + Channel 4 envelope length + - - Bass - Bass + + Channel 4 noise mode + - - Sweep direction + + Channel 4 frequency mode - - - - - - Volume sweep direction + + Channel 4 noise frequency - - Shift register width + + Channel 4 noise frequency sweep - - Channel 1 to SO1 (Right) - Saluran 1 ke SO1 (Kanan) + + Channel 4 quantize + - - Channel 2 to SO1 (Right) - Saluran 2 ke SO1 (Kanan) + + Master volume + - - Channel 3 to SO1 (Right) - Saluran 3 ke SO1 (Kanan) + + Vibrato + + + + lmms::OpulenzInstrument - - Channel 4 to SO1 (Right) - Saluran 4 ke SO1 (Kanan) + + Patch + - - Channel 1 to SO2 (Left) - Saluran 1 ke SO2 (Kiri) + + Op 1 attack + - - Channel 2 to SO2 (Left) - Saluran 2 ke SO2 (Kiri) + + Op 1 decay + - - Channel 3 to SO2 (Left) - Saluran 3 ke SO2 (Kiri) + + Op 1 sustain + - - Channel 4 to SO2 (Left) - Saluran 4 ke SO2 (Kiri) + + Op 1 release + - - Wave pattern graph + + Op 1 level - - - MixerLine - - Channel send amount - Jumlah kirim saluran + + Op 1 level scaling + - - Move &left - Pindah ke &kiri + + Op 1 frequency multiplier + - - Move &right - Pindah ke &kanan + + Op 1 feedback + - - Rename &channel - Ganti nama &saluran + + Op 1 key scaling rate + - - R&emove channel - H&apus saluran + + Op 1 percussive envelope + - - Remove &unused channels - Hapus &saluran yang tak terpakai + + Op 1 tremolo + - - Set channel color + + Op 1 vibrato - - Remove channel color + + Op 1 waveform - - Pick random channel color + + Op 2 attack - - - MixerLineLcdSpinBox - - Assign to: + + Op 2 decay - - New mixer Channel - Saluran FX Baru + + Op 2 sustain + - - - Mixer - - Master - Master + + Op 2 release + - - - - Channel %1 - FX %1 + + Op 2 level + - - Volume - Volume + + Op 2 level scaling + - - Mute - Bisu + + Op 2 frequency multiplier + - - Solo - Solo + + Op 2 key scaling rate + - - - MixerView - - Mixer - Mixer + + Op 2 percussive envelope + - - Fader %1 - FX Pemudar %1 + + Op 2 tremolo + - - Mute - Bisu + + Op 2 vibrato + - - Mute this mixer channel - Bisukan saluran FX ini + + Op 2 waveform + - - Solo - Solo + + FM + - - Solo mixer channel - Saluran FX Solo + + Vibrato depth + - - - MixerRoute - - - Amount to send from channel %1 to channel %2 - Jumlah untuk kirim dari saluran %1 ke saluran %2 + + Tremolo depth + - GigInstrument - - - Bank - Bank - + lmms::OrganicInstrument - - Patch - Patch + + Distortion + - - Gain - Gain + + Volume + - GigInstrumentView + lmms::OscillatorObject - - - Open GIG file - Buka berkas GIG + + Osc %1 waveform + - - Choose patch + + Osc %1 harmonic - - Gain: - Gain: + + + Osc %1 volume + - - GIG Files (*.gig) - Berkas GIG (*.gig) + + + Osc %1 panning + - - - GuiApplication - - Working directory - Direktori kerja + + Osc %1 stereo detuning + - - The LMMS working directory %1 does not exist. Create it now? You can change the directory later via Edit -> Settings. - Direktori kerja LMMS %1 tidak ada. Buat sekarang? Anda dapat mengganti direktori nanti via Edit -> Pengaturan + + Osc %1 coarse detuning + - - Preparing UI - Menyiapkan UI + + Osc %1 fine detuning left + - - Preparing song editor - Menyiapkan editor lagu + + Osc %1 fine detuning right + - - Preparing mixer - Menyiapkan mixer + + Osc %1 phase-offset + - - Preparing controller rack - Menyiapkan rak kontroler + + Osc %1 stereo phase-detuning + - - Preparing project notes - Menyiapkan not proyek + + Osc %1 wave shape + - - Preparing beat/bassline editor - Menyiapkan edior ketukan/bassline + + Modulation type %1 + + + + lmms::PatternTrack - - Preparing piano roll - Menyiapkan rol piano + + Pattern %1 + - - Preparing automation editor - Menyiapkan editor otomasi + + Clone of %1 + - InstrumentFunctionArpeggio + lmms::PeakController - - Arpeggio - Arpeggio + + Peak Controller + - - Arpeggio type - Tipe arpeggio + + Peak Controller Bug + - - Arpeggio range - Jarak arpeggio + + Due to a bug in older version of LMMS, the peak controllers may not be connect properly. Please ensure that peak controllers are connected properly and re-save this file. Sorry for any inconvenience caused. + + + + lmms::PeakControllerEffectControls - - Note repeats + + Base value - - Cycle steps - Langkah siklus + + Modulation amount + - - Skip rate - Lewati nilai + + Attack + - - Miss rate - Tingkat miss + + Release + - - Arpeggio time - Waktu arpeggio + + Treshold + - - Arpeggio gate - Gate arpeggio + + Mute output + - - Arpeggio direction - Arah arpeggio + + Absolute value + - - Arpeggio mode - Mode arpeggio + + Amount multiplicator + + + + lmms::Plugin - - Up - Atas + + Plugin not found + - - Down - Bawah + + The plugin "%1" wasn't found or could not be loaded! +Reason: "%2" + - - Up and down - Atas dan bawah + + Error while loading plugin + - - Down and up - Bawah dan atas + + Failed to load plugin "%1"! + + + + lmms::ReverbSCControls - - Random - Acak + + Input gain + - - Free - Bebas + + Size + - - Sort - Sortir + + Color + - - Sync - Selaras + + Output gain + - InstrumentFunctionArpeggioView + lmms::SaControls - - ARPEGGIO - ARPEGGIO + + Pause + - - RANGE - JARAK + + Reference freeze + - - Arpeggio range: - Jarak arpeggio: + + Waterfall + - - octave(s) - Oktaf + + Averaging + - - REP + + Stereo - - Note repeats: + + Peak hold - - time(s) + + Logarithmic frequency - - CYCLE - SIKLUS + + Logarithmic amplitude + - - Cycle notes: - Siklus nada: + + Frequency range + - - note(s) - not + + Amplitude range + - - SKIP - LEWAT + + FFT block size + - - Skip rate: - Lewati nilai: + + FFT window type + - - - - % - % + + Peak envelope resolution + - - MISS + + Spectrum display resolution - - Miss rate: + + Peak decay multiplier - - TIME - WAKTU + + Averaging weight + - - Arpeggio time: - Waktu arpeggio: + + Waterfall history size + + + + + Waterfall gamma correction + + + + + FFT window overlap + - - ms - md + + FFT zero padding + - - GATE - LAWANG + + + Full (auto) + - - Arpeggio gate: + + + + Audible - - Chord: - Chord: + + Bass + - - Direction: - Arah: + + Mids + - - Mode: - Mode: + + High + - - - InstrumentFunctionNoteStacking - - octave - oktaf + + Extended + - - - Major - Mayor + + Loud + - - Majb5 - Mayb5 + + Silent + - - minor - minor + + (High time res.) + - - minb5 - minb5 + + (High freq. res.) + - - sus2 - sus2 + + Rectangular (Off) + - - sus4 - sus4 + + + Blackman-Harris (Default) + - - aug - aug + + Hamming + - - augsus4 - augsus4 + + Hanning + + + + lmms::SampleClip - - tri - tri + + Sample not found + + + + lmms::SampleTrack - - 6 - 6 + + Volume + - - 6sus4 - 6sus4 + + Panning + - - 6add9 - 6add9 + + Mixer channel + - - m6 - m6 + + + Sample track + + + + lmms::Scale - - m6add9 - m6add9 + + empty + + + + lmms::Sf2Instrument - - 7 - 7 + + Bank + - - 7sus4 - 7sus4 + + Patch + - - 7#5 - 7#5 + + Gain + - - 7b5 - 7b5 + + Reverb + - - 7#9 - 7#9 + + Reverb room size + - - 7b9 - 7b9 + + Reverb damping + - - 7#5#9 - 7#5#9 + + Reverb width + - - 7#5b9 - 7#5b9 + + Reverb level + - - 7b5b9 - 7b5b9 + + Chorus + - - 7add11 - 7add11 + + Chorus voices + - - 7add13 - 7add13 + + Chorus level + - - 7#11 - 7#11 + + Chorus speed + - - Maj7 - May7 + + Chorus depth + - - Maj7b5 - May7b5 + + A soundfont %1 could not be loaded. + + + + lmms::SfxrInstrument - - Maj7#5 - May7#5 + + Wave + + + + lmms::SidInstrument - - Maj7#11 - May7#11 + + Cutoff frequency + - - Maj7add13 - May7add13 + + Resonance + - - m7 - m7 + + Filter type + - - m7b5 - m7b5 + + Voice 3 off + - - m7b9 - m7b9 + + Volume + - - m7add11 - m7add11 + + Chip model + + + + lmms::SlicerT - - m7add13 - m7add13 + + Note threshold + - - m-Maj7 - m-May7 + + FadeOut + - - m-Maj7add11 - m-May7add11 + + Original bpm + - - m-Maj7add13 - m-May7add13 + + Slice snap + - - 9 - 9 + + BPM sync + - - 9sus4 - 9sus4 + + + slice_%1 + - - add9 - add9 + + Sample not found: %1 + + + + lmms::Song - - 9#5 - 9#5 + + Tempo + - - 9b5 - 9b5 + + Master volume + - - 9#11 - 9#11 + + Master pitch + - - 9b13 - 9b13 + + Aborting project load + - - Maj9 - Maj9 + + Project file contains local paths to plugins, which could be used to run malicious code. + - - Maj9sus4 - May9sus4 + + Can't load project: Project file contains local paths to plugins. + - - Maj9#5 - May9#5 + + LMMS Error report + - - Maj9#11 - May9#11 + + (repeated %1 times) + - - m9 - m9 + + The following errors occurred while loading: + + + + lmms::StereoEnhancerControls - - madd9 - madd9 + + Width + + + + lmms::StereoMatrixControls - - m9b5 - m9b5 + + Left to Left + - - m9-Maj7 - m9-Maj7 + + Left to Right + - - 11 - 11 + + Right to Left + - - 11b9 - 11b9 + + Right to Right + + + + lmms::Track - - Maj11 - May11 + + Mute + - - m11 - m11 + + Solo + + + + lmms::TrackContainer - - m-Maj11 - m-May11 + + Couldn't import file + - - 13 - 13 + + Couldn't find a filter for importing file %1. +You should convert this file into a format supported by LMMS using another software. + - - 13#9 - 13#9 + + Couldn't open file + - - 13b9 - 13b9 + + Couldn't open file %1 for reading. +Please make sure you have read-permission to the file and the directory containing the file and try again! + - - 13b5b9 - 13b5b9 + + Loading project... + - - Maj13 - May13 + + + Cancel + - - m13 - m13 + + + Please wait... + - - m-Maj13 - m-May13 + + Loading cancelled + - - Harmonic minor - Harmonic minor + + Project loading was cancelled. + - - Melodic minor - Melodic minor + + Loading Track %1 (%2/Total %3) + - - Whole tone - Whole tone + + Importing MIDI-file... + + + + lmms::TripleOscillator - - Diminished - Diminished + + Sample not found + + + + lmms::VecControls - - Major pentatonic - Pentatonik mayor + + Display persistence amount + - - Minor pentatonic - Pentatonik minor + + Logarithmic scale + - - Jap in sen - Jap in sen + + High quality + + + + lmms::VestigeInstrument - - Major bebop - Bebop Mayor + + Loading plugin + - - Dominant bebop - Dominan bebop + + Please wait while loading the VST plugin... + + + + lmms::Vibed - - Blues - Blues + + String %1 volume + - - Arabic - Arabic + + String %1 stiffness + - - Enigmatic - Enigmatic + + Pick %1 position + - - Neopolitan - Neopolitan + + Pickup %1 position + - - Neopolitan minor - Neopolitan minor + + String %1 panning + - - Hungarian minor - Hungarian minor + + String %1 detune + - - Dorian - Dorian + + String %1 fuzziness + - - Phrygian + + String %1 length - - Lydian - Lydian + + Impulse %1 + - - Mixolydian - Mixolydian + + String %1 + + + + lmms::VoiceObject - - Aeolian - Aeolian + + Voice %1 pulse width + - - Locrian - Locrian + + Voice %1 attack + - - Minor - Minor + + Voice %1 decay + - - Chromatic - Chromatic + + Voice %1 sustain + - - Half-Whole Diminished - Half-Whole Diminished + + Voice %1 release + - - 5 - 5 + + Voice %1 coarse detuning + - - Phrygian dominant - Dominan frigia + + Voice %1 wave shape + - - Persian - Persia + + Voice %1 sync + - - Chords - Chord + + Voice %1 ring modulate + - - Chord type - Tipe Chord + + Voice %1 filtered + - - Chord range - Jarak Chord + + Voice %1 test + - InstrumentFunctionNoteStackingView + lmms::VstPlugin - - STACKING + + + The VST plugin %1 could not be loaded. - - Chord: - Chord: + + Open Preset + - - RANGE - JARAK + + + VST Plugin Preset (*.fxp *.fxb) + - - Chord range: - Jarak chord: + + : default + - - octave(s) - Oktaf(beberapa) + + Save Preset + - - - InstrumentMidiIOView - - ENABLE MIDI INPUT - AKTIFKAN MASUKAN MIDI + + .fxp + - - ENABLE MIDI OUTPUT - AKTIFKAN KELUARAN MIDI + + .FXP + - - - CHAN - This string must be be short, its width must be less than * width of LCD spin-box of two digits + + .FXB - - - VELOC - This string must be be short, its width must be less than * width of LCD spin-box of three digits + + .fxb - - PROG - This string must be be short, its width must be less than the * width of LCD spin-box of three digits + + Loading plugin - - NOTE - This string must be be short, its width must be less than * width of LCD spin-box of three digits - CATATAN + + Please wait while loading VST plugin... + + + + lmms::WatsynInstrument - - MIDI devices to receive MIDI events from - Perangkat MIDI untuk menerima event MIDI dari + + Volume A1 + - - MIDI devices to send MIDI events to - Perangkat MIDI untuk kirim event MIDI ke + + Volume A2 + - - CUSTOM BASE VELOCITY + + Volume B1 - - Specify the velocity normalization base for MIDI-based instruments at 100% note velocity. + + Volume B2 - - BASE VELOCITY + + Panning A1 - - - InstrumentTuningView - - MASTER PITCH - MASTER PITCH + + Panning A2 + - - Enables the use of master pitch + + Panning B1 - - - InstrumentSoundShaping - - VOLUME - VOLUME + + Panning B2 + - - Volume - Volume - + + Freq. multiplier A1 + - - CUTOFF + + Freq. multiplier A2 - - - Cutoff frequency - Frekuensi cutoff + + Freq. multiplier B1 + - - RESO - RESO + + Freq. multiplier B2 + - - Resonance - Resonansi + + Left detune A1 + - - Envelopes/LFOs + + Left detune A2 - - Filter type - Tipe filter + + Left detune B1 + - - Q/Resonance + + Left detune B2 - - Low-pass + + Right detune A1 - - Hi-pass + + Right detune A2 - - Band-pass csg + + Right detune B1 - - Band-pass czpg + + Right detune B2 - - Notch - Notch + + A-B Mix + - - All-pass + + A-B Mix envelope amount - - Moog - Moog + + A-B Mix envelope attack + - - 2x Low-pass + + A-B Mix envelope hold - - RC Low-pass 12 dB/oct + + A-B Mix envelope decay - - RC Band-pass 12 dB/oct + + A1-B2 Crosstalk - - RC High-pass 12 dB/oct + + A2-A1 modulation - - RC Low-pass 24 dB/oct + + B2-B1 modulation - - RC Band-pass 24 dB/oct + + Selected graph + + + lmms::WaveShaperControls - - RC High-pass 24 dB/oct + + Input gain - - Vocal Formant + + Output gain + + + lmms::Xpressive - - 2x Moog - 2x Moog + + Selected graph + - - SV Low-pass + + A1 - - SV Band-pass + + A2 - - SV High-pass + + A3 - - SV Notch - SV Notch + + W1 smoothing + - - Fast Formant - Formant Cepat + + W2 smoothing + - - Tripole - Tripol + + W3 smoothing + - - - InstrumentSoundShapingView - - TARGET - SASARAN + + Panning 1 + - - FILTER - FILTER + + Panning 2 + - - FREQ - FREK + + Rel trans + + + + lmms::ZynAddSubFxInstrument - - Cutoff frequency: - Frekuensi cutoff: + + Portamento + - - Hz - Hz + + Filter frequency + - - Q/RESO + + Filter resonance - - Q/Resonance: + + Bandwidth - - Envelopes, LFOs and filters are not supported by the current instrument. + + FM gain - - - InstrumentTrack - - - unnamed_track - trek_tak_bernama + + Resonance center frequency + - - Base note - Not dasar + + Resonance bandwidth + + + + + Forward MIDI control change events + + + + lmms::graphModel - - First note + + Graph + + + lmms::gui::AmplifierControlDialog - - Last note + + VOL - - Volume - Volume - + + Volume: + - - Panning - Keseimbangan + + PAN + - - Pitch - Pitch + + Panning: + - - Pitch range - Jarak pitch + + LEFT + - - Mixer channel - Saluran FX + + Left gain: + - - Master pitch - Master pitch + + RIGHT + - - Enable/Disable MIDI CC + + Right gain: + + + lmms::gui::AudioAlsaSetupWidget - - CC Controller %1 + + Device - - - Default preset - Preset default + + Channels + - InstrumentTrackView + lmms::gui::AudioFileProcessorView - - Volume - Volume - + + Open sample + - - Volume: - Volume: + + Reverse sample + - - VOL - VOL + + Disable loop + - - Panning - Keseimbangan + + Enable loop + - - Panning: - Keseimbangan: + + Enable ping-pong loop + - - PAN - PAN + + Continue sample playback across notes + - - MIDI - MIDI + + Amplify: + - - Input - Masukan + + Start point: + - - Output - Keluaran + + End point: + - - Open/Close MIDI CC Rack + + Loopback point: + + + lmms::gui::AudioFileProcessorWaveView - - Channel %1: %2 - FX %1: %2 + + Sample length: + - InstrumentTrackWindow + lmms::gui::AutomationClipView - - GENERAL SETTINGS - PENGATURAN UMUM + + Open in Automation editor + - - Volume - Volume + + Clear + - - Volume: - Volume: + + Reset name + - - VOL - VOL + + Change name + - - Panning - Keseimbangan + + Set/clear record + - - Panning: - Keseimbangan: + + Flip Vertically (Visible) + - - PAN - PAN + + Flip Horizontally (Visible) + - - Pitch - Pitch + + %1 Connections + - - Pitch: - Pitch: + + Disconnect "%1" + - - cents - sen + + Model is already connected to this clip. + + + + lmms::gui::AutomationEditor - - PITCH + + Edit Value - - Pitch range (semitones) + + New outValue - - RANGE - JARAK + + New inValue + - - Mixer channel - Saluran FX + + Please open an automation clip by double-clicking on it! + + + + lmms::gui::AutomationEditorWindow - - CHANNEL - FX + + Play/pause current clip (Space) + - - Save current instrument track settings in a preset file - Simpan pengaturan trek instrumen saat ini kedalam berkas preset + + Stop playing of current clip (Space) + - - SAVE - SIMPAN + + Edit actions + - - Envelope, filter & LFO + + Draw mode (Shift+D) - - Chord stacking & arpeggio + + Erase mode (Shift+E) - - Effects - Efek + + Draw outValues mode (Shift+C) + - - MIDI - MIDI + + Edit tangents mode (Shift+T) + - - Miscellaneous - Serba aneka + + Flip vertically + - - Save preset - Simpan preset + + Flip horizontally + - - XML preset file (*.xpf) - Berkas preset XML (*.xpf) + + Interpolation controls + - - Plugin - Plugin + + Discrete progression + - - - JackApplicationW - - NSM applications cannot use abstract or absolute paths + + Linear progression - - NSM applications cannot use CLI arguments + + Cubic Hermite progression - - You need to save the current Carla project before NSM can be used + + Tension value for spline - - - JuceAboutW - - About JUCE + + Tension: - - <b>About JUCE</b> + + Zoom controls - - This program uses JUCE version 3.x.x. + + Horizontal zooming - - JUCE (Jules' Utility Class Extensions) is an all-encompassing C++ class library for developing cross-platform software. - -It contains pretty much everything you're likely to need to create most applications, and is particularly well-suited for building highly-customised GUIs, and for handling graphics and sound. - -JUCE is licensed under the GNU Public Licence version 2.0. -One module (juce_core) is permissively licensed under the ISC. - -Copyright (C) 2017 ROLI Ltd. + + Vertical zooming - - This program uses JUCE version %1. + + Quantization controls - - - Knob - - Set linear - Atur linier + + Quantization + - - Set logarithmic - Atur logaritmik + + Clear ghost notes + - - - Set value + + + Automation Editor - no clip - - Please enter a new value between -96.0 dBFS and 6.0 dBFS: - Silakan masukan nilai baru antara -96.0 dBFS dan 6.0 dBFS: + + + Automation Editor - %1 + - - Please enter a new value between %1 and %2: - Silakan masukan nilai baru antara %1 dan %2: + + Model is already connected to this clip. + - LadspaControl + lmms::gui::BassBoosterControlDialog - - Link channels - Hubungkan saluran + + FREQ + - - - LadspaControlDialog - - Link Channels - Hubungkan Saluran + + Frequency: + - - Channel - Saluran + + GAIN + - - - LadspaControlView - - Link channels - Hubungkan saluran + + Gain: + - - Value: - Nilai: + + RATIO + - - - LadspaEffect - - Unknown LADSPA plugin %1 requested. - Plugin LADSPA yang tidak diketahui %1 diminta. + + Ratio: + - LcdFloatSpinBox + lmms::gui::BitInvaderView - - Set value + + Sample length - - Please enter a new value between %1 and %2: - Silakan masukan nilai baru antara %1 dan %2: - - - - LcdSpinBox - - - Set value + + Draw your own waveform here by dragging your mouse on this graph. - - Please enter a new value between %1 and %2: - Silakan masukan nilai baru antara %1 dan %2: + + + Sine wave + - - - LeftRightNav - - - - Previous - Sebelumnya + + + Triangle wave + - - - - Next - Selanjutnya + + + Saw wave + - - Previous (%1) - Sebelumnya (%1) + + + Square wave + - - Next (%1) - Selanjutnya (%1) + + + White noise + - - - LfoController - - LFO Controller - Kontroler LFO + + + User-defined wave + - - Base value - Nilai dasar + + + Smooth waveform + - - Oscillator speed - Kecepatan osilator + + Interpolation + - - Oscillator amount - Jumlah osilator + + Normalize + + + + lmms::gui::BitcrushControlDialog - - Oscillator phase - Tahap osilator + + IN + - - Oscillator waveform - Bentuk gelombang osilator + + OUT + - - Frequency Multiplier + + + GAIN - - - LfoControllerDialog - - LFO - LFO + + Input gain: + - - BASE - DASAR + + NOISE + - - Base: + + Input noise: - - FREQ - FREK + + Output gain: + - - LFO frequency: + + CLIP - - AMNT - JMLH + + Output clip: + - - Modulation amount: - Jumlah modulasi: + + Rate enabled + - - PHS - PHS + + Enable sample-rate crushing + - - Phase offset: + + Depth enabled - - degrees + + Enable bit-depth crushing - - Sine wave - Gelombang sinus + + FREQ + - - Triangle wave - Gelombang segitiga + + Sample rate: + - - Saw wave - Gelombang gergaji + + STEREO + - - Square wave - Gelombang kotak + + Stereo difference: + - - Moog saw wave + + QUANT - - Exponential wave + + Levels: + + + lmms::gui::CPULoadWidget - - White noise - Kebisingan putih + + DSP total: %1% + - - User-defined shape. -Double click to pick a file. + + - Notes and setup: %1% - - Mutliply modulation frequency by 1 + + - Instruments: %1% - - Mutliply modulation frequency by 100 + + - Effects: %1% - - Divide modulation frequency by 100 + + - Mixing: %1% - Engine + lmms::gui::CarlaInstrumentView - - Generating wavetables - Membuat wavetables + + Show GUI + - - Initializing data structures - Inisialisasi struktur data + + Click here to show or hide the graphical user interface (GUI) of Carla. + - - Opening audio and midi devices - Membuka audio dan perangkat midi + + Params + - - Launching mixer threads - Meluncurkan thread mixer + + Available from Carla version 2.1 and up. + - MainWindow + lmms::gui::CarlaParamsView - - Configuration file - Berkas konfigurasi + + Search.. + - - Error while parsing configuration file at line %1:%2: %3 - Kesalahan saat mengurai berkas konfigurasi pada baris %1:%2 %3 + + Clear filter text + - - Could not open file - Tidak bisa membuka berkas + + Only show knobs with a connection. + - - Could not open file %1 for writing. -Please make sure you have write permission to the file and the directory containing the file and try again! - Tidak bisa membuka berkas %1 + + - Parameters + + + + lmms::gui::ClipView - - Project recovery - Pemulihan proyek + + Current position + - - There is a recovery file present. It looks like the last session did not end properly or another instance of LMMS is already running. Do you want to recover the project of this session? + + Current length - - - Recover - Pulihkan + + + %1:%2 (%3:%4 to %5:%6) + - - Recover the file. Please don't run multiple instances of LMMS when you do this. - Memulihkan berkas. Jangan menjalankan beberapa instansi LMMS saat Anda melakukan ini. + + Press <%1> and drag to make a copy. + - - - Discard - Buang + + Press <%1> for free resizing. + - - Launch a default session and delete the restored files. This is not reversible. - Jalankan sesi default dan hapus berkas yang dipulihkan. Ini tidak reversibel. + + Hint + - - Version %1 - Versi %1 + + Delete (middle mousebutton) + - - Preparing plugin browser - Menyiapkan penjelajah plugin + + Delete selection (middle mousebutton) + - - Preparing file browsers - Menyiapkan penjelajah berkas + + Cut + - - My Projects - Proyek Saya + + Cut selection + - - My Samples - Sampel Saya + + Merge Selection + - - My Presets - Preset Saya + + Copy + - - My Home - Rumah Saya + + Copy selection + + + + + Paste + - - Root directory - Direktori root + + Mute/unmute (<%1> + middle click) + - - Volumes - Volume + + Mute/unmute selection (<%1> + middle click) + - - My Computer - Komputer Saya + + Clip color + - - &File - &Berkas + + Change + - - &New - &Baru + + Reset + - - &Open... - &Buka + + Pick random + + + + lmms::gui::CompressorControlDialog - - Loading background picture + + Threshold: - - &Save - &Simpan + + Volume at which the compression begins to take place + - - Save &As... - Simpan &Sebagai... + + Ratio: + - - Save as New &Version - Simpan sebagai &Versi yang baru + + How far the compressor must turn the volume down after crossing the threshold + - - Save as default template - Simpan sebagai template default + + Attack: + - - Import... - Impor... + + Speed at which the compressor starts to compress the audio + - - E&xport... - E&kspor + + Release: + - - E&xport Tracks... - E&kspor trek... + + Speed at which the compressor ceases to compress the audio + - - Export &MIDI... - Ekspor &MIDI... + + Knee: + - - &Quit - &Keluar + + Smooth out the gain reduction curve around the threshold + - - &Edit - &Edit + + Range: + - - Undo - Undo + + Maximum gain reduction + - - Redo - Redo + + Lookahead Length: + - - Settings - Pengaturan + + How long the compressor has to react to the sidechain signal ahead of time + - - &View - &Tampilan + + Hold: + - - &Tools - &Alat + + Delay between attack and release stages + - - &Help - &Bantuan + + RMS Size: + - - Online Help - Bantuan Daring + + Size of the RMS buffer + - - Help - Bantuan + + Input Balance: + - - About - Ihwal + + Bias the input audio to the left/right or mid/side + - - Create new project - Buat proyek baru + + Output Balance: + - - Create new project from template - Buat proyek baru dari template + + Bias the output audio to the left/right or mid/side + - - Open existing project - Buka proyek yang sudah ada + + Stereo Balance: + - - Recently opened projects - Proyek yang Baru Dibuka + + Bias the sidechain signal to the left/right or mid/side + - - Save current project - Simpan proyek saat ini + + Stereo Link Blend: + - - Export current project - Ekspor proyek saat ini + + Blend between unlinked/maximum/average/minimum stereo linking modes + - - Metronome - Metronom + + Tilt Gain: + - - - Song Editor - Editor Lagu + + Bias the sidechain signal to the low or high frequencies. -6 db is lowpass, 6 db is highpass. + - - - Beat+Bassline Editor - Editor Bassline+ketukan + + Tilt Frequency: + - - - Piano Roll - Rol Piano + + Center frequency of sidechain tilt filter + - - - Automation Editor - Editor Otomasi + + Mix: + - - - Mixer - Mixer + + Balance between wet and dry signals + - - Show/hide controller rack - Tampilkan/sembunyikan rak kontroler + + Auto Attack: + - - Show/hide project notes - Tampilkan/sembunyikan not proyek + + Automatically control attack value depending on crest factor + - - Untitled - Tak berjudul + + Auto Release: + - - Recover session. Please save your work! - Sesi pemulihan. Tolong simpan pekerjaanmu! + + Automatically control release value depending on crest factor + - - LMMS %1 - LMMS %1 + + Output gain + - - Recovered project not saved - Proyek yang dipulihkan tidak disimpan + + + Gain + - - This project was recovered from the previous session. It is currently unsaved and will be lost if you don't save it. Do you want to save it now? - Proyek ini dipulihkan dari sesi sebelumnya. Saat ini belum disimpan dan akan hilang jika Anda tidak menyimpannya. Apakah Anda ingin menyimpannya sekarang? + + Output volume + - - Project not saved - Proyek tidak disimpan + + Input gain + - - The current project was modified since last saving. Do you want to save it now? - Proyek saat ini sudah dimodifikasi sejak penyimpanan terakhir. Apakah anda ingin menyimpannya sekarang? + + Input volume + - - Open Project - Buka Proyek + + Root Mean Square + - - LMMS (*.mmp *.mmpz) - LMMS (*.mmp *.mmpz) + + Use RMS of the input + - - Save Project - Simpan Proyek + + Peak + - - LMMS Project - Proyek LMMS + + Use absolute value of the input + - - LMMS Project Template - Proyek Template LMMS + + Left/Right + - - Save project template - Simpan template proyek + + Compress left and right audio + - - Overwrite default template? - Timpa template default? + + Mid/Side + - - This will overwrite your current default template. - Ini akan menimpa template default Anda saat ini. + + Compress mid and side audio + - - Help not available - Bantuan tidak tersedia + + Compressor + - - Currently there's no help available in LMMS. -Please visit http://lmms.sf.net/wiki for documentation on LMMS. - Sasat ini belum ada bantuan tersedia di LMMS. -Silakan kunjungi http://lmms.sf.net/wiki untuk dokumentasi LMMS. + + Compress the audio + - - Controller Rack - Kontroler rak + + Limiter + - - Project Notes - Catatan Proyek + + Set Ratio to infinity (is not guaranteed to limit audio volume) + - - Fullscreen + + Unlinked - - Volume as dBFS - Volume sebagai dBFS + + Compress each channel separately + - - Smooth scroll - Gulung halus + + Maximum + - - Enable note labels in piano roll - Aktifkan label not di rol piano + + Compress based on the loudest channel + - - MIDI File (*.mid) - Berkas MIDI (*.mid) + + Average + - - - untitled - tak berjudul + + Compress based on the averaged channel volume + - - - Select file for project-export... - Pilih berkas untuk ekspor-proyek... + + Minimum + - - Select directory for writing exported tracks... - Pilih direktori untuk menulis trek yang diekspor... + + Compress based on the quietest channel + - - Save project - Simpan proyek + + Blend + - - Project saved - Proyek disimpan + + Blend between stereo linking modes + - - The project %1 is now saved. - Proyek %1 telah disimpan. + + Auto Makeup Gain + - - Project NOT saved. - Proyek TIDAK disimpan. + + Automatically change makeup gain depending on threshold, knee, and ratio settings + - - The project %1 was not saved! - Proyek %1 tidak disimpan! + + + Soft Clip + - - Import file - Impor berkas + + Play the delta signal + - - MIDI sequences - Rangkaian MIDI + + Use the compressor's output as the sidechain input + - - Hydrogen projects - Proyek hidrogen + + Lookahead Enabled + - - All file types - Semua tipe berkas + + Enable Lookahead, which introduces 20 milliseconds of latency + - MeterDialog + lmms::gui::ControllerConnectionDialog - - - Meter Numerator + + Connection Settings - - Meter numerator + + MIDI CONTROLLER - - - Meter Denominator + + Input channel - - Meter denominator + + CHANNEL - - TIME SIG + + Input controller - - - MeterModel - - Numerator + + CONTROLLER - - Denominator + + + Auto Detect - - - MidiCCRackView - - - MIDI CC Rack - %1 + + MIDI-devices to receive MIDI-events from - - MIDI CC Knobs: + + USER CONTROLLER - - CC %1 + + MAPPING FUNCTION - - - MidiController - - - MIDI Controller - Kontroler MIDI - - - unnamed_midi_controller - kontroler_midi_tanpa_nama - - - - MidiImport - - - - Setup incomplete - Pemasangan tidak lengkap + + OK + - - You have not set up a default soundfont in the settings dialog (Edit->Settings). Therefore no sound will be played back after importing this MIDI file. You should download a General MIDI soundfont, specify it in settings dialog and try again. + + Cancel - - You did not compile LMMS with support for SoundFont2 player, which is used to add default sound to imported MIDI files. Therefore no sound will be played back after importing this MIDI file. - Anda tidak mengkompilasi LMMS dengan dukungan pemutar SoundFont2, yang digunakan untuk menambah suara default ke berkas MIDI yang diimpor. Oleh karena itu tidak ada suara yang akan diputer setelah mengimpor berkas MIDI ini. + + LMMS + - - MIDI Time Signature Numerator + + Cycle Detected. + + + lmms::gui::ControllerRackView - - MIDI Time Signature Denominator + + Controller Rack - - Numerator + + Add - - Denominator + + Confirm Delete - - Track - Trek + + Confirm delete? There are existing connection(s) associated with this controller. There is no way to undo. + - MidiJack + lmms::gui::ControllerView - - JACK server down - When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (title) - Server JACK lumpuh + + Controls + - - The JACK server seems to be shuted down. - When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (dialog message) + + Rename controller - - - MidiPatternW - - MIDI Pattern + + Enter the new name for this controller - - Time Signature: + + LFO - - - - 1/4 + + Move &up + + + + + Move &down - - 2/4 + + &Remove this controller - - 3/4 + + Re&name this controller + + + lmms::gui::CrossoverEQControlDialog - - 4/4 + + Band 1/2 crossover: - - 5/4 + + Band 2/3 crossover: - - 6/4 + + Band 3/4 crossover: - - Measures: + + Band 1 gain - - - - 1 + + Band 1 gain: - - 2 + + Band 2 gain - - 3 + + Band 2 gain: - - 4 + + Band 3 gain - - 5 - 5 + + Band 3 gain: + - - 6 - 6 + + Band 4 gain + - - 7 - 7 + + Band 4 gain: + - - 8 + + Band 1 mute - - 9 - 9 + + Mute band 1 + - - 10 + + Band 2 mute - - 11 - 11 + + Mute band 2 + - - 12 + + Band 3 mute - - 13 - 13 + + Mute band 3 + - - 14 + + Band 4 mute - - 15 + + Mute band 4 + + + lmms::gui::DelayControlsDialog - - 16 + + DELAY - - Default Length: + + Delay time - - - 1/16 + + FDBK - - - 1/15 + + Feedback amount - - - 1/12 + + RATE - - - 1/9 + + LFO frequency - - - 1/8 + + AMNT - - - 1/6 + + LFO amount - - - 1/3 + + Out gain - - - 1/2 + + Gain + + + lmms::gui::DispersionControlDialog - - Quantize: + + AMOUNT - - &File - &Berkas + + Number of all-pass filters + - - &Edit - &Edit + + FREQ + - - &Quit - &Keluar + + Frequency: + - - &Insert Mode + + RESO - - F + + Resonance: - - &Velocity Mode + + FEED - - D + + Feedback: - - Select All + + DC Offset Removal - - A + + Remove DC Offset - MidiPort - - - Input channel - Saluran Masukan - - - - Output channel - Saluran keluaran - - - - Input controller - Kontroler masukan - + lmms::gui::DualFilterControlDialog - - Output controller - Kontroler keluaran + + + FREQ + - - Fixed input velocity + + + Cutoff frequency - - Fixed output velocity + + + RESO - - Fixed output note + + + Resonance - - Output MIDI program - Program MIDI keluaran + + + GAIN + - - Base velocity - Kecepatan dasar + + + Gain + - - Receive MIDI-events - Terima aktifitas-MIDI + + MIX + - - Send MIDI-events - Kirim aktifitas-MIDI + + Mix + - - - MidiSetupWidget - - Device + + Filter 1 enabled - - - MonstroInstrument - - Osc 1 volume + + Filter 2 enabled - - Osc 1 panning + + Enable/disable filter 1 - - Osc 1 coarse detune + + Enable/disable filter 2 + + + lmms::gui::DynProcControlDialog - - Osc 1 fine detune left + + INPUT - - Osc 1 fine detune right + + Input gain: - - Osc 1 stereo phase offset + + OUTPUT - - Osc 1 pulse width + + Output gain: - - Osc 1 sync send on rise + + ATTACK - - Osc 1 sync send on fall + + Peak attack time: - - Osc 2 volume + + RELEASE - - Osc 2 panning + + Peak release time: - - Osc 2 coarse detune + + + Reset wavegraph - - Osc 2 fine detune left + + + Smooth wavegraph - - Osc 2 fine detune right + + + Increase wavegraph amplitude by 1 dB - - Osc 2 stereo phase offset + + + Decrease wavegraph amplitude by 1 dB - - Osc 2 waveform + + Stereo mode: maximum - - Osc 2 sync hard + + Process based on the maximum of both stereo channels - - Osc 2 sync reverse + + Stereo mode: average - - Osc 3 volume + + Process based on the average of both stereo channels - - Osc 3 panning + + Stereo mode: unlinked - - Osc 3 coarse detune + + Process each stereo channel independently + + + lmms::gui::Editor - - Osc 3 Stereo phase offset + + Transport controls - - Osc 3 sub-oscillator mix + + Play (Space) - - Osc 3 waveform 1 + + Stop (Space) - - Osc 3 waveform 2 + + Record - - Osc 3 sync hard + + Record while playing - - Osc 3 Sync reverse + + Toggle Step Recording + + + lmms::gui::EffectRackView - - LFO 1 waveform + + EFFECTS CHAIN - - LFO 1 attack + + Add effect + + + lmms::gui::EffectSelectDialog - - LFO 1 rate + + Add effect - - LFO 1 phase + + + Name - - LFO 2 waveform + + Type - - LFO 2 attack + + All - - LFO 2 rate + + Search - - LFO 2 phase + + Description - - Env 1 pre-delay + + Author + + + lmms::gui::EffectView - - Env 1 attack + + On/Off - - Env 1 hold + + W/D - - Env 1 decay + + Wet Level: - - Env 1 sustain + + DECAY - - Env 1 release + + Time: - - Env 1 slope + + GATE - - Env 2 pre-delay + + Gate: - - Env 2 attack + + Controls - - Env 2 hold + + Move &up - - Env 2 decay + + Move &down - - Env 2 sustain + + &Remove this plugin + + + lmms::gui::EnvelopeAndLfoView - - Env 2 release + + + AMT - - Env 2 slope + + + Modulation amount: - - Osc 2+3 modulation + + + DEL - - Selected view - Tampilan yang dipilih + + + Pre-delay: + - - Osc 1 - Vol env 1 + + + ATT - - Osc 1 - Vol env 2 + + + Attack: - - Osc 1 - Vol LFO 1 + + HOLD - - Osc 1 - Vol LFO 2 + + Hold: - - Osc 2 - Vol env 1 + + DEC - - Osc 2 - Vol env 2 + + Decay: - - Osc 2 - Vol LFO 1 + + SUST - - Osc 2 - Vol LFO 2 + + Sustain: - - Osc 3 - Vol env 1 + + REL - - Osc 3 - Vol env 2 + + Release: - - Osc 3 - Vol LFO 1 + + SPD - - Osc 3 - Vol LFO 2 + + Frequency: - - Osc 1 - Phs env 1 + + FREQ x 100 - - Osc 1 - Phs env 2 + + Multiply LFO frequency by 100 - - Osc 1 - Phs LFO 1 + + MOD ENV AMOUNT - - Osc 1 - Phs LFO 2 + + Control envelope amount by this LFO - - Osc 2 - Phs env 1 + + Hint - - Osc 2 - Phs env 2 + + Drag and drop a sample into this window. + + + lmms::gui::EnvelopeGraph - - Osc 2 - Phs LFO 1 + + Scaling - - Osc 2 - Phs LFO 2 + + Dynamic - - Osc 3 - Phs env 1 + + Uses absolute spacings but switches to relative spacing if it's running out of space - - Osc 3 - Phs env 2 + + Absolute - - Osc 3 - Phs LFO 1 + + Provides enough potential space for each segment but does not scale - - Osc 3 - Phs LFO 2 + + Relative - - Osc 1 - Pit env 1 + + Always uses all of the available space to display the envelope graph + + + lmms::gui::EqControlsDialog - - Osc 1 - Pit env 2 + + HP - - Osc 1 - Pit LFO 1 + + Low-shelf - - Osc 1 - Pit LFO 2 + + Peak 1 - - Osc 2 - Pit env 1 + + Peak 2 - - Osc 2 - Pit env 2 + + Peak 3 - - Osc 2 - Pit LFO 1 + + Peak 4 - - Osc 2 - Pit LFO 2 + + High-shelf - - Osc 3 - Pit env 1 + + LP - - Osc 3 - Pit env 2 + + Input gain - - Osc 3 - Pit LFO 1 + + + + Gain - - Osc 3 - Pit LFO 2 + + Output gain - - Osc 1 - PW env 1 + + Bandwidth: - - Osc 1 - PW env 2 + + Octave - - Osc 1 - PW LFO 1 + + Resonance: - - Osc 1 - PW LFO 2 + + Frequency: - - Osc 3 - Sub env 1 + + LP group - - Osc 3 - Sub env 2 + + HP group + + + lmms::gui::EqHandle - - Osc 3 - Sub LFO 1 + + Reso: - - Osc 3 - Sub LFO 2 + + BW: - - - Sine wave - Gelombang sinus + + + Freq: + + + + lmms::gui::ExportProjectDialog - - Bandlimited Triangle wave + + Could not open file - - Bandlimited Saw wave + + Could not open file %1 for writing. +Please make sure you have write permission to the file and the directory containing the file and try again! - - Bandlimited Ramp wave + + Export project to %1 - - Bandlimited Square wave + + ( Fastest - biggest ) - - Bandlimited Moog saw wave + + ( Slowest - smallest ) - - - Soft square wave - Gelombang kotak halus + + Error + - - Absolute sine wave - Gelombang sinus absolut + + Error while determining file-encoder device. Please try to choose a different output format. + - - - Exponential wave + + Rendering: %1% + + + lmms::gui::Fader - - White noise - Kebisingan putih + + Set value + - - Digital Triangle wave - Gelombang Segitiga digital + + Please enter a new value between %1 and %2: + - - Digital Saw wave - Gelombang Gergaji digital + + Volume: %1 dBFS + + + + lmms::gui::FileBrowser - - Digital Ramp wave + + Browser - - Digital Square wave - Gelombang Kotak digital + + Search + - - Digital Moog saw wave + + Refresh list - - Triangle wave - Gelombang segitiga + + User content + - - Saw wave - Gelombang gergaji + + Factory content + - - Ramp wave + + Hidden content + + + lmms::gui::FileBrowserTreeWidget - - Square wave - Gelombang kotak + + Send to active instrument-track + - - Moog saw wave + + Open containing folder - - Abs. sine wave + + Song Editor - - Random - Acak + + Pattern Editor + - - Random smooth - Halus acak + + Send to new AudioFileProcessor instance + - - - MonstroView - - Operators view - Tampilan operator + + Send to new instrument track + - - Matrix view - Tampilan matrix + + (%2Enter) + - - - - Volume - Volume - + + Send to new sample track (Shift + Enter) + - - - - Panning - Keseimbangan + + Loading sample + - - - - Coarse detune - Detune kasar + + Please wait, loading sample for preview... + - - - - semitones + + Error - - - Fine tune left + + %1 does not appear to be a valid %2 file - - - - - cents - sen + + --- Factory files --- + + + + lmms::gui::FileDialog - - - Fine tune right + + %1 files - - - - Stereo phase offset + + All audio files - - - - - - deg + + Other files + + + lmms::gui::FlangerControlsDialog - - Pulse width + + DELAY - - Send sync on pulse rise + + Delay time: - - Send sync on pulse fall + + RATE - - Hard sync oscillator 2 + + Period: - - Reverse sync oscillator 2 + + AMNT - - Sub-osc mix + + Amount: - - Hard sync oscillator 3 + + PHASE - - Reverse sync oscillator 3 + + Phase: - - - - - Attack - Attack + + FDBK + - - - Rate - Nilai + + Feedback amount: + - - - Phase + + NOISE - - - Pre-delay + + White noise amount: - - - Hold - Tahan + + Invert + + + + lmms::gui::FloatModelEditorBase - - - Decay - Tahan + + Set linear + - - - Sustain - Tahan + + Set logarithmic + - - - Release - Release + + + Set value + - - - Slope + + Please enter a new value between -96.0 dBFS and 6.0 dBFS: - - Mix osc 2 with osc 3 + + Please enter a new value between %1 and %2: + + + lmms::gui::FreeBoyInstrumentView - - Modulate amplitude of osc 3 by osc 2 + + Sweep time: - - Modulate frequency of osc 3 by osc 2 + + Sweep time - - Modulate phase of osc 3 by osc 2 + + Sweep rate shift amount: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Modulation amount + + Sweep rate shift amount - - - MultitapEchoControlDialog - - Length - Panjang + + + Wave pattern duty cycle: + - - Step length: + + + Wave pattern duty cycle - - Dry + + Square channel 1 volume: - - Dry gain: + + Square channel 1 volume - - Stages + + + + Length of each step in sweep: - - Low-pass stages: + + + + Length of each step in sweep - - Swap inputs - Tukar masukan + + Square channel 2 volume: + - - Swap left and right input channels for reflections + + Square channel 2 volume - - - NesInstrument - - Channel 1 coarse detune + + Wave pattern channel volume: - - Channel 1 volume - Volume Saluran 1 + + Wave pattern channel volume + - - Channel 1 envelope length + + Noise channel volume: - - Channel 1 duty cycle + + Noise channel volume - - Channel 1 sweep amount + + SO1 volume (Right): - - Channel 1 sweep rate + + SO1 volume (Right) - - Channel 2 Coarse detune + + SO2 volume (Left): - - Channel 2 Volume - Volume Saluran 2 + + SO2 volume (Left) + - - Channel 2 envelope length + + Treble: - - Channel 2 duty cycle + + Treble - - Channel 2 sweep amount + + Bass: - - Channel 2 sweep rate + + Bass - - Channel 3 coarse detune + + Sweep direction - - Channel 3 volume - Volume Saluran 3 + + + + + + Volume sweep direction + - - Channel 4 volume - Volume Saluran 4 + + Shift register width + - - Channel 4 envelope length + + Channel 1 to SO1 (Right) - - Channel 4 noise frequency + + Channel 2 to SO1 (Right) - - Channel 4 noise frequency sweep + + Channel 3 to SO1 (Right) - - Master volume - Volume master + + Channel 4 to SO1 (Right) + - - Vibrato - Getaran + + Channel 1 to SO2 (Left) + - - - NesInstrumentView - - - - - Volume - Volume - + + Channel 2 to SO2 (Left) + - - - - Coarse detune - Detune kasar + + Channel 3 to SO2 (Left) + - - - - Envelope length - Panjang sampul + + Channel 4 to SO2 (Left) + - - Enable channel 1 - Aktifkan saluran 1 + + Wave pattern graph + + + + lmms::gui::GigInstrumentView - - Enable envelope 1 - Aktifkan sampul 1 + + + Open GIG file + - - Enable envelope 1 loop - Akftifkan envelop pengulangan 1 + + Choose patch + - - Enable sweep 1 + + Gain: - - - Sweep amount + + GIG Files (*.gig) + + + lmms::gui::GranularPitchShifterControlDialog - - - Sweep rate + + Grain Size: - - - 12.5% Duty cycle - Siklus tugas 12,5% + + Spray: + - - - 25% Duty cycle - Siklus tugas 25% + + Jitter: + - - - 50% Duty cycle - Siklus tugas 50% + + Twitch: + - - - 75% Duty cycle - Siklus tugas 75% + + Spray Stereo Spread: + - - Enable channel 2 - Aktifkan saluran 2 + + Grain Shape: + - - Enable envelope 2 - Aktifkan sampul 2 + + Fade Length: + - - Enable envelope 2 loop - Akftifkan envelop pengulangan 2 + + Feedback: + - - Enable sweep 2 + + Minimum Allowed Latency: - - Enable channel 3 - Aktifkan saluran 3 + + Density: + - - Noise Frequency - Frekuensi Riuh + + Glide: + - - Frequency sweep + + + Pitch - - Enable channel 4 - Aktifkan saluran 4 + + + Pitch Stereo Spread + - - Enable envelope 4 - Aktifkan sampul 4 + + Open help window + - - Enable envelope 4 loop - Akftifkan envelop pengulangan 4 + + + Prefilter + + + + lmms::gui::GuiApplication - - Quantize noise frequency when using note frequency + + Working directory - - Use note frequency for noise - Gunakan frekuensi not untuk riuh + + The LMMS working directory %1 does not exist. Create it now? You can change the directory later via Edit -> Settings. + - - Noise mode - Mode derau + + Preparing UI + - - Master volume - Volume master + + Preparing song editor + - - Vibrato - Getaran + + Preparing mixer + - - - OpulenzInstrument - - Patch - Patch + + Preparing controller rack + - - Op 1 attack + + Preparing project notes - - Op 1 decay + + Preparing microtuner - - Op 1 sustain + + Preparing pattern editor - - Op 1 release + + Preparing piano roll - - Op 1 level + + Preparing automation editor + + + lmms::gui::InstrumentFunctionArpeggioView - - Op 1 level scaling + + ARPEGGIO - - Op 1 frequency multiplier + + RANGE - - Op 1 feedback + + Arpeggio range: - - Op 1 key scaling rate + + octave(s) - - Op 1 percussive envelope + + REP - - Op 1 tremolo + + Note repeats: - - Op 1 vibrato + + time(s) - - Op 1 waveform + + CYCLE - - Op 2 attack + + Cycle notes: - - Op 2 decay + + note(s) - - Op 2 sustain + + SKIP - - Op 2 release + + Skip rate: - - Op 2 level + + + + % - - Op 2 level scaling + + MISS - - Op 2 frequency multiplier + + Miss rate: - - Op 2 key scaling rate + + TIME - - Op 2 percussive envelope + + Arpeggio time: - - Op 2 tremolo + + ms - - Op 2 vibrato + + GATE - - Op 2 waveform + + Arpeggio gate: - - FM - FM + + Chord: + - - Vibrato depth + + Direction: - - Tremolo depth + + Mode: - OpulenzInstrumentView - - - - Attack - Attack - + lmms::gui::InstrumentFunctionNoteStackingView - - - Decay - Decay + + STACKING + - - - Release - Release + + Chord: + - - - Frequency multiplier + + RANGE - - - OscillatorObject - - Osc %1 waveform - Bentuk gelombang Osc %1 + + Chord range: + - - Osc %1 harmonic + + octave(s) + + + lmms::gui::InstrumentMidiIOView - - - Osc %1 volume - Volume Osc %1 + + ENABLE MIDI INPUT + - - - Osc %1 panning - Keseimbangan Osc %1 + + + CHAN + This string must be be short, its width must be less than * width of LCD spin-box of two digits + - - - Osc %1 fine detuning left + + + VELOC + This string must be be short, its width must be less than * width of LCD spin-box of three digits - - Osc %1 coarse detuning + + ENABLE MIDI OUTPUT - - Osc %1 fine detuning right + + PROG + This string must be be short, its width must be less than the * width of LCD spin-box of three digits - - Osc %1 phase-offset + + NOTE + This string must be be short, its width must be less than * width of LCD spin-box of three digits - - Osc %1 stereo phase-detuning + + MIDI devices to receive MIDI events from - - Osc %1 wave shape - bentuk gelombang Osc %1 + + MIDI devices to send MIDI events to + - - Modulation type %1 - Tipe modulasi %1 + + VELOCITY MAPPING + - - - Oscilloscope - - Oscilloscope + + MIDI VELOCITY - - Click to enable - klik untuk mengaktifkan + + MIDI notes at this velocity correspond to 100% note velocity. + - PatchesDialog + lmms::gui::InstrumentSoundShapingView - - Qsynth: Channel Preset + + TARGET - - Bank selector - Pemilih bank + + FILTER + - - Bank - Bank + + FREQ + - - Program selector - Pemilih program + + Cutoff frequency: + - - Patch - Patch + + Hz + - - Name - Nama + + Q/RESO + - - OK - OK + + Q/Resonance: + - - Cancel - Batal + + Envelopes, LFOs and filters are not supported by the current instrument. + - PatmanView + lmms::gui::InstrumentTrackView - - Open patch + + Mixer channel - - Loop - Pengulangan - - - - Loop mode - Mode pengulangan - - - - Tune - Nada + + Volume + - - Tune mode - Mode nada + + Volume: + - - No file selected - Tidak ada berkas dipilih + + VOL + - - Open patch file - Buka berkas patch + + Panning + - - Patch-Files (*.pat) - Berkas-Patch (*.pat) + + Panning: + - - - MidiClipView - - Open in piano-roll - Buka di rol-piano + + PAN + - - Set as ghost in piano-roll + + MIDI - - Clear all notes - Bersihkan semua not + + Input + - - Reset name - Reset nama + + Output + - - Change name - Ganti nama + + Open/Close MIDI CC Rack + - - Add steps - Tambah langkah + + %1: %2 + + + + lmms::gui::InstrumentTrackWindow - - Remove steps - Hapus langkah + + Volume + - - Clone Steps - Klon langkah + + Volume: + - - - PeakController - - Peak Controller + + VOL - - Peak Controller Bug + + Panning - - Due to a bug in older version of LMMS, the peak controllers may not be connect properly. Please ensure that peak controllers are connected properly and re-save this file. Sorry for any inconvenience caused. - Karena bug pada versi lama LMMS, pengendali puncak mungkin tidak terhubung dengan benar. Pastikan pengendali puncak terhubung dengan benar dan simpan kembali berkas ini. Maaf atas ketidaknyamanan yang terjadi. + + Panning: + - - - PeakControllerDialog - - PEAK + + PAN - - LFO Controller - Kontroler LFO + + Pitch + - - - PeakControllerEffectControlDialog - - BASE - DASAR + + Pitch: + - - Base: + + cents - - AMNT - JMLH + + PITCH + - - Modulation amount: - Jumlah modulasi: + + Pitch range (semitones) + - - MULT + + RANGE - - Amount multiplicator: + + Mixer channel - - ATCK + + CHANNEL - - Attack: - Attack: + + Save current instrument track settings in a preset file + - - DCAY + + SAVE - - Release: - Release: + + Envelope, filter & LFO + - - TRSH + + Chord stacking & arpeggio - - Treshold: + + Effects - - Mute output + + MIDI - - Absolute value + + Tuning and transposition - - - PeakControllerEffectControls - - Base value - Nilai dasar + + Save preset + - - Modulation amount + + XML preset file (*.xpf) - - Attack - Attack + + Plugin + + + + lmms::gui::InstrumentTuningView - - Release - Release + + GLOBAL TRANSPOSITION + - - Treshold + + Enables the use of global transposition - - Mute output + + Microtuner is not available for MIDI-based instruments. - - Absolute value + + MICROTUNER - - Amount multiplicator + + Active scale: - - - PianoRoll - - Note Velocity + + + Edit scales and keymaps - - Note Panning - Keseimbangan Not + + Active keymap: + - - Mark/unmark current semitone + + Import note ranges from keymap - - Mark/unmark all corresponding octave semitones - Tandai / hapus tanda semua semitone oktaf yang sesuai + + When enabled, the first, last and base notes of this instrument will be overwritten with values specified by the selected keymap. + + + + lmms::gui::KickerInstrumentView - - Mark current scale + + Start frequency: - - Mark current chord + + End frequency: - - Unmark all - Hapus tanda semua + + Frequency slope: + - - Select all notes on this key - Pilih semua not pada kunci ini + + Gain: + - - Note lock + + Envelope length: - - Last note + + Envelope slope: - - No key + + Click: - - No scale + + Noise: - - No chord + + Start distortion: - - Nudge + + End distortion: + + + lmms::gui::LOMMControlDialog - - Snap + + Depth: - - Velocity: %1% - Kecepatan: %1% + + Compression amount for all bands + - - Panning: %1% left - Menyeimbangkan: %1% kiri + + Time: + - - Panning: %1% right - Menyeimbangkan: %1% kanan + + Attack/release scaling for all bands + - - Panning: center - Menyeimbangkan: tengah + + Input Volume: + - - Glue notes failed + + Input volume - - Please select notes to glue first. + + Output Volume: - - Please open a clip by double-clicking on it! - Buka pola dengan mengklik dua kali di atasnya! + + Output volume + - - - Please enter a new value between %1 and %2: - Silakan masukan nilai baru antara %1 dan %2: + + Upward Depth: + - - - PianoRollWindow - - Play/pause current clip (Space) - Putar/jeda pola saat ini (Spasi) + + Upward compression amount for all bands + - - Record notes from MIDI-device/channel-piano - Rekam not dari perangkat-MIDI/channel-piano + + Downward Depth: + - - Record notes from MIDI-device/channel-piano while playing song or BB track - Rekam not dari perangkat-MIDI/channel-piano sambil memutar lagu atau trek BB + + Downward compression amount for all bands + - - Record notes from MIDI-device/channel-piano, one step at the time + + High/Mid Crossover - - Stop playing of current clip (Space) - Berhenti memutar pola sekarang (Spasi) + + Mid/Low Crossover + - - Edit actions - Ubah aksi + + High/mid band split + - - Draw mode (Shift+D) - mode Menggambar (Shift+D) + + Mid/low band split + - - Erase mode (Shift+E) - Mode penghapus (Shift+E) + + Enable High Band + - - Select mode (Shift+S) - Mode pilih (Shift+S) + + Enable Mid Band + - - Pitch Bend mode (Shift+T) + + Enable Low Band - - Quantize - Kuantitas + + High Input Volume: + - - Quantize positions + + Input volume for high band - - Quantize lengths + + Mid Input Volume: - - File actions + + Input volume for mid band - - Import clip + + Low Input Volume: - - - Export clip + + Input volume for low band - - Copy paste controls - Kontrol salin tempel + + High Output Volume: + - - Cut (%1+X) + + Output volume for high band - - Copy (%1+C) + + Mid Output Volume: - - Paste (%1+V) + + Output volume for mid band - - Timeline controls - Kontrol linimasa + + Low Output Volume: + - - Glue + + Output volume for low band - - Knife + + Above Threshold High - - Fill + + Downward compression threshold for high band - - Cut overlaps + + Above Threshold Mid - - Min length as last + + Downward compression threshold for mid band - - Max length as last + + Above Threshold Low - - Zoom and note controls - Kontrol not dan zoom + + Downward compression threshold for low band + - - Horizontal zooming - Pembesaran horizontal + + Above Ratio High + - - Vertical zooming - Pembesaran vertikal + + Downward compression ratio for high band + - - Quantization - Kuantitasi + + Above Ratio Mid + - - Note length + + Downward compression ratio for mid band - - Key + + Above Ratio Low - - Scale + + Downward compression ratio for low band - - Chord + + Below Threshold High - - Snap mode + + Upward compression threshold for high band - - Clear ghost notes + + Below Threshold Mid - - - Piano-Roll - %1 - Rol-Piano - %1 + + Upward compression threshold for mid band + - - - Piano-Roll - no clip - Rol-Piano - tiada pola + + Below Threshold Low + - - - XML clip file (*.xpt *.xptz) + + Upward compression threshold for low band - - Export clip success + + Below Ratio High - - Clip saved to %1 + + Upward compression ratio for high band - - Import clip. + + Below Ratio Mid - - You are about to import a clip, this will overwrite your current clip. Do you want to continue? + + Upward compression ratio for mid band - - Open clip + + Below Ratio Low - - Import clip success + + Upward compression ratio for low band - - Imported clip %1! + + Attack High: - - - PianoView - - Base note - Not dasar + + Attack time for high band + - - First note + + Attack Mid: - - Last note + + Attack time for mid band - - - Plugin - - Plugin not found - Plugin tidak ditemukan + + Attack Low: + - - The plugin "%1" wasn't found or could not be loaded! -Reason: "%2" - Plugin "%1" tidak ditemukan atau tidak bisa dimuat! -Alasan: "%2" + + Attack time for low band + - - Error while loading plugin - Gagal ketika memuat plugin + + Release High: + - - Failed to load plugin "%1"! - Gagal untuk memuat plugin "%1"! + + Release time for high band + - - - PluginBrowser - - Instrument Plugins - Plugin Instrumen + + Release Mid: + - - Instrument browser - Penjelajah instrumen + + Release time for mid band + - - Drag an instrument into either the Song-Editor, the Beat+Bassline Editor or into an existing instrument track. - Seret instrumen ke Editor-Lagu,Editor Ketukan+Bassline atau ke trek instrumen yang ada. + + Release Low: + - - no description - tiada deskripsi + + Release time for low band + - - A native amplifier plugin - Plugin amplifier native + + RMS Time: + - - Simple sampler with various settings for using samples (e.g. drums) in an instrument-track - Sampler sederhana dengan macam-macam pengaturan untuk menggunakan sampel. (cnth. drum) dalam sebuah trek instrumen + + RMS size for sidechain signal (set to 0 for Peak mode) + - - Boost your bass the fast and simple way - Tingkatkan bass Anda dengan cara cepat dan sederhana + + Knee: + - - Customizable wavetable synthesizer - Synthesizer wavetable yang dapat disesuaikan + + Knee size for all compressors + - - An oversampling bitcrusher + + Range: - - Carla Patchbay Instrument - Instrumen Carla Patchbay + + Maximum gain increase for all bands + - - Carla Rack Instrument - Rak Instrumen Carla + + Balance: + - - A dynamic range compressor. + + Bias input volume towards one channel - - A 4-band Crossover Equalizer + + Scale output volume with Depth - - A native delay plugin + + Scale output volume with Depth parameter - - A Dual filter plugin + + Stereo Link - - plugin for processing dynamics in a flexible way - plugin untuk memproses dynamics dengan cara yang fleksibel + + Apply same gain change to both channels + - - A native eq plugin - Plugin eq bawaan + + Auto Time: + - - A native flanger plugin + + Speed up attack and release times when transients occur - - Emulation of GameBoy (TM) APU - Emulasi APU GameBoy (TM) + + Mix: + - - Player for GIG files - Pemutar untuk berkas GIG + + Wet/Dry of all bands + - - Filter for importing Hydrogen files into LMMS - Filter untuk mengimpor berkas Hydrogen ke LMMS + + Feedback + - - Versatile drum synthesizer - Synthesizer drum serbaguna + + Use output as sidechain signal instead of input + - - List installed LADSPA plugins - Daftar plugin LADSPA yang terpasang + + Mid/Side + - - plugin for using arbitrary LADSPA-effects inside LMMS. - Plugin untuk menggunakan efek LADSPA yang sewenang-wenang di dalam LMMS. + + Compress mid/side channels instead of left/right + - - Incomplete monophonic imitation TB-303 + + + Suppress upward compression for side band - - plugin for using arbitrary LV2-effects inside LMMS. + + + Lookahead - - plugin for using arbitrary LV2 instruments inside LMMS. + + Lookahead length - - Filter for exporting MIDI-files from LMMS - Filter untuk mengekspor berkas MIDI dari LMMS + + Clear all parameters + + + + lmms::gui::LadspaBrowserView - - Filter for importing MIDI-files into LMMS - Filter untuk mengimpor berkas MIDI ke LMMS + + + Available Effects + - - Monstrous 3-oscillator synth with modulation matrix + + + Unavailable Effects - - A multitap echo delay plugin + + + Instruments - - A NES-like synthesizer - Synthesizer seperti NES + + + Analysis Tools + - - 2-operator FM Synth - 2-operator FM Synth + + + Don't know + - - Additive Synthesizer for organ-like sounds + + Type: + + + lmms::gui::LadspaControlDialog - - GUS-compatible patch instrument + + Link Channels - - Plugin for controlling knobs with sound peaks - Plugin untuk mengendalikan kenop dengan puncak suara + + Channel + + + + lmms::gui::LadspaControlView - - Reverb algorithm by Sean Costello + + Link channels - - Player for SoundFont files - Pemutar untuk berkas SoundFont + + Value: + + + + lmms::gui::LadspaDescription - - LMMS port of sfxr + + Plugins - - Emulation of the MOS6581 and MOS8580 SID. -This chip was used in the Commodore 64 computer. - Emulasi SID MOS6581 dan MOS8580. -Chip yang digunakan pada komputer Commodore 64. + + Description + - - A graphical spectrum analyzer. + + Name: - - Plugin for enhancing stereo separation of a stereo input file + + Maker: - - Plugin for freely manipulating stereo output + + Copyright: - - Tuneful things to bang on - Hal-hal yang menyenangkan untuk ajep-ajep + + Requires Real Time: + - - Three powerful oscillators you can modulate in several ways + + + + Yes - - A stereo field visualizer. + + + + No - - VST-host for using VST(i)-plugins within LMMS + + Real Time Capable: - - Vibrating string modeler - Menggetarkan modeler string + + In Place Broken: + - - plugin for using arbitrary VST effects inside LMMS. - Plugin untuk menggunakan efek VST yang sewenang-wenang di dalam LMMS. + + Channels In: + - - 4-oscillator modulatable wavetable synth + + Channels Out: + + + lmms::gui::LadspaMatrixControlDialog - - plugin for waveshaping - plugin untuk pembentukan gelombang + + Link Channels + - - Mathematical expression parser + + Link - - Embedded ZynAddSubFX - Tertanam ZynAddSubFX + + Channel %1 + - - - PluginDatabaseW - - Carla - Add New + + Link channels + + + lmms::gui::LadspaPortDialog - - Format + + Ports - - Internal + + Name - - LADSPA + + Rate - - DSSI + + Direction - - LV2 + + Type - - VST2 + + Min < Default < Max - - VST3 + + Logarithmic - - AU + + SR Dependent - - Sound Kits + + Audio - - Type - Tipe + + Control + - - Effects - Efek + + Input + - - Instruments - Instrumen + + Output + - - MIDI Plugins + + Toggled - - Other/Misc + + Integer - - Architecture + + Float - - Native + + + Yes + + + lmms::gui::Lb302SynthView - - Bridged + + Cutoff Freq: - - Bridged (Wine) + + Resonance: - - Requirements + + Env Mod: - - With Custom GUI + + Decay: - - With CV Ports + + 303-es-que, 24dB/octave, 3 pole filter - - Real-time safe only + + Slide Decay: - - Stereo only + + DIST: - - With Inline Display + + Saw wave - - Favorites only + + Click here for a saw-wave. - - (Number of Plugins go here) + + Triangle wave - - &Add Plugin + + Click here for a triangle-wave. - - Cancel - Batal + + Square wave + - - Refresh + + Click here for a square-wave. - - Reset filters + + Rounded square wave - - - - - - - - - - - - - - - - - TextLabel + + Click here for a square-wave with a rounded end. - - Format: + + Moog wave - - Architecture: + + Click here for a moog-like wave. - - Type: - Tipe: + + Sine wave + - - MIDI Ins: + + Click for a sine-wave. - - Audio Ins: + + + White noise wave - - CV Outs: + + Click here for an exponential wave. - - MIDI Outs: + + Click here for white-noise. - - Parameter Ins: + + Bandlimited saw wave - - Parameter Outs: + + Click here for bandlimited saw wave. - - Audio Outs: + + Bandlimited square wave - - CV Ins: + + Click here for bandlimited square wave. - - UniqueID: + + Bandlimited triangle wave - - Has Inline Display: + + Click here for bandlimited triangle wave. - - Has Custom GUI: + + Bandlimited moog saw wave - - Is Synth: + + Click here for bandlimited moog saw wave. + + + lmms::gui::LcdFloatSpinBox - - Is Bridged: + + Set value - - Information + + Please enter a new value between %1 and %2: + + + lmms::gui::LcdSpinBox - - Name - Nama + + Set value + - - Label/URI + + Please enter a new value between %1 and %2: + + + lmms::gui::LeftRightNav - - Maker + + + + Previous - - Binary/Filename + + + + Next - - Focus Text Search + + Previous (%1) - - Ctrl+F + + Next (%1) - PluginEdit + lmms::gui::LfoControllerDialog - - Plugin Editor + + LFO - - Edit + + BASE - - Control - Kontrol - - - - MIDI Control Channel: + + Base: - - N + + FREQ - - Output dry/wet (100%) + + LFO frequency: - - Output volume (100%) + + AMNT - - Balance Left (0%) + + Modulation amount: - - - Balance Right (0%) + + PHS - - Use Balance + + Phase offset: - - Use Panning + + degrees - - Settings - Pengaturan - - - - Use Chunks + + Sine wave - - Audio: + + Triangle wave - - Fixed-Size Buffer + + Saw wave - - Force Stereo (needs reload) + + Square wave - - MIDI: + + Moog saw wave - - Map Program Changes + + Exponential wave - - Send Bank/Program Changes + + White noise - - Send Control Changes + + User-defined shape. +Double click to pick a file. - - Send Channel Pressure + + Multiply modulation frequency by 1 - - Send Note Aftertouch + + Multiply modulation frequency by 100 - - Send Pitchbend + + Divide modulation frequency by 100 + + + lmms::gui::LfoGraph - - Send All Sound/Notes Off + + %1 Hz + + + lmms::gui::MainWindow - - -Plugin Name - + + Configuration file - - Program: + + Error while parsing configuration file at line %1:%2: %3 - - MIDI Program: + + Could not open file - - Save State + + Could not open file %1 for writing. +Please make sure you have write permission to the file and the directory containing the file and try again! - - Load State + + Project recovery - - Information + + There is a recovery file present. It looks like the last session did not end properly or another instance of LMMS is already running. Do you want to recover the project of this session? - - Label/URI: + + + Recover - - Name: + + Recover the file. Please don't run multiple instances of LMMS when you do this. - - Type: - Tipe: + + + Discard + - - Maker: + + Launch a default session and delete the restored files. This is not reversible. - - Copyright: + + Version %1 - - Unique ID: + + Preparing plugin browser - - - PluginFactory - - Plugin not found. - Plugin tidak ditemukan. + + Preparing file browsers + - - LMMS plugin %1 does not have a plugin descriptor named %2! - Plugin LMMS %1 tidak memiliki deskriptor plugin bernama %2! + + My Projects + - - - PluginParameter - - Form + + My Samples - - Parameter Name + + My Presets - - ... + + My Home - - - PluginRefreshW - - Carla - Refresh + + Root Directory - - Search for new... + + Volumes - - LADSPA + + My Computer - - DSSI + + Loading background picture - - LV2 + + &File - - VST2 + + &New - - VST3 + + &Open... - - AU + + &Save - - SF2/3 + + Save &As... - - SFZ + + Save as New &Version - - Native + + Save as default template - - POSIX 32bit + + Import... - - POSIX 64bit + + E&xport... - - Windows 32bit + + E&xport Tracks... - - Windows 64bit + + Export &MIDI... - - Available tools: + + &Quit - - python3-rdflib (LADSPA-RDF support) + + &Edit - - carla-discovery-win64 + + Undo - - carla-discovery-native + + Redo - - carla-discovery-posix32 + + Scales and keymaps - - carla-discovery-posix64 + + Settings - - carla-discovery-win32 + + &View - - Options: + + &Tools - - Carla will run small processing checks when scanning the plugins (to make sure they won't crash). -You can disable these checks to get a faster scanning time (at your own risk). + + &Help - - Run processing checks while scanning + + Online Help - - Press 'Scan' to begin the search + + Help - - Scan + + About - - >> Skip + + Create new project - - Close - Tutup + + Create new project from template + - - - PluginWidget - - - - - - Frame + + Open existing project - - Enable + + Recently opened projects - - On/Off - Nyala/Mati + + Save current project + - - - - - PluginName + + Export current project - - MIDI - MIDI + + Metronome + - - AUDIO IN + + + Song Editor - - AUDIO OUT + + + Pattern Editor - - GUI + + + Piano Roll - - Edit + + + Automation Editor - - Remove + + + Mixer - - Plugin Name + + Show/hide controller rack - - Preset: + + Show/hide project notes - - - ProjectNotes - - Project Notes - Catatan Proyek + + Untitled + - - Enter project notes here + + Recover session. Please save your work! - - Edit Actions - Ubah Aksi + + LMMS %1 + - - &Undo - &Undo + + Recovered project not saved + - - %1+Z - %1+Z + + This project was recovered from the previous session. It is currently unsaved and will be lost if you don't save it. Do you want to save it now? + - - &Redo - &Redo + + Project not saved + - - %1+Y - %1+Y + + The current project was modified since last saving. Do you want to save it now? + - - &Copy - &Salin + + Open Project + - - %1+C - %1+C + + LMMS (*.mmp *.mmpz) + - - Cu&t - Po&tong + + Save Project + - - %1+X - %1+X + + LMMS Project + - - &Paste - &Tempel + + LMMS Project Template + - - %1+V - %1+V + + Save project template + - - Format Actions - Aksi Format + + Overwrite default template? + - - &Bold - &Tebal + + This will overwrite your current default template. + - - %1+B - %1+B + + Help not available + - - &Italic - &Miring + + Currently there's no help available in LMMS. +Please visit http://lmms.sf.net/wiki for documentation on LMMS. + - - %1+I - %1+I + + Controller Rack + - - &Underline - &Garis bawah + + Project Notes + - - %1+U - %1+U + + Fullscreen + - - &Left - &Kiri + + Volume as dBFS + - - %1+L - %1+L + + Smooth scroll + - - C&enter - Te&ngah + + Enable note labels in piano roll + - - %1+E - %1+E + + MIDI File (*.mid) + - - &Right - &Kanan + + + untitled + - - %1+R - %1+R + + + Select file for project-export... + - - &Justify - &Ratakan + + Select directory for writing exported tracks... + - - %1+J - %1+J + + Save project + - - &Color... - &Warna + + Project saved + - - - ProjectRenderer - - WAV (*.wav) - WAV (*.wav) + + The project %1 is now saved. + - - FLAC (*.flac) - FLAC (*.flac) + + Project NOT saved. + - - OGG (*.ogg) - OGG (*.ogg) + + The project %1 was not saved! + - - MP3 (*.mp3) - MP3 (*.mp3) + + Import file + - - - QObject - - Reload Plugin + + MIDI sequences - - Show GUI - Tampilkan GUI + + Hydrogen projects + - - Help - Bantuan + + All file types + - QWidget - - - - - - Name: - Nama: - + lmms::gui::MalletsInstrumentView - - URI: + + Instrument - - - - Maker: - Pembuat: - - - - - - Copyright: - Hak cipta: + + Spread + - - - Requires Real Time: - Membutuhkan Real Time: + + Spread: + - - - - - - - Yes - Ya + + Random + - - - - - - - No - Tidak + + Random: + - - - Real Time Capable: - Kemampuan Real Time: + + Missing files + - - - In Place Broken: + + Your Stk-installation seems to be incomplete. Please make sure the full Stk-package is installed! - - - Channels In: - Saluran Masukan: + + Hardness + - - - Channels Out: - Saluran Keluaran: + + Hardness: + - - File: %1 - Berkas: %1 + + Position + - - File: - Berkas: + + Position: + - - - RecentProjectsMenu - - &Recently Opened Projects - &Proyek yang Baru Dibuka + + Vibrato gain + - - - RenameDialog - - Rename... - Ganti nama... + + Vibrato gain: + - - - ReverbSCControlDialog - - Input - Masukan + + Vibrato frequency + - - Input gain: - Gain masukan: + + Vibrato frequency: + - - Size - Ukuran + + Stick mix + - - Size: - Ukuran: + + Stick mix: + - - Color - Warna + + Modulator + - - Color: - Warna: + + Modulator: + - - Output - Keluaran + + Crossfade + - - Output gain: - Gait keluaran: + + Crossfade: + - - - ReverbSCControls - - Input gain - Gain masukan + + LFO speed + - - Size - Ukuran + + LFO speed: + - - Color - Warna + + LFO depth + - - Output gain - Gain keluaran + + LFO depth: + - - - SaControls - - Pause + + ADSR - - Reference freeze + + ADSR: - - Waterfall + + Pressure - - Averaging + + Pressure: - - Stereo - Stereo + + Speed + - - Peak hold + + Speed: + + + lmms::gui::ManageVSTEffectView - - Logarithmic frequency + + - VST parameter control - - Logarithmic amplitude + + VST sync - - Frequency range + + + Automated - - Amplitude range + + Close + + + lmms::gui::ManageVestigeInstrumentView - - FFT block size + + + - VST plugin control - - FFT window type + + VST Sync - - Peak envelope resolution + + + Automated - - Spectrum display resolution + + Close + + + lmms::gui::MeterDialog - - Peak decay multiplier + + + Meter Numerator - - Averaging weight + + Meter numerator - - Waterfall history size + + + Meter Denominator - - Waterfall gamma correction + + Meter denominator - - FFT window overlap + + TIME SIG + + + lmms::gui::MicrotunerConfig - - FFT zero padding + + Selected scale slot - - - Full (auto) + + Selected keymap slot - - - - Audible + + + First key - - Bass - Bass + + + Last key + - - Mids + + + Middle key - - High + + + Base key - - Extended + + + + Base note frequency - - Loud + + Microtuner Configuration - - Silent + + Scale slot to edit: - - (High time res.) + + Scale description. Cannot start with "!" and cannot contain a newline character. - - (High freq. res.) + + + Load - - Rectangular (Off) + + + Save - - - Blackman-Harris (Default) + + Load scale definition from a file. - - Hamming + + Save scale definition to a file. - - Hanning + + Enter intervals on separate lines. Numbers containing a decimal point are treated as cents. +Other inputs are treated as integer ratios and must be in the form of 'a/b' or 'a'. +Unity (0.0 cents or ratio 1/1) is always present as a hidden first value; do not enter it manually. - - - SaControlsDialog - - Pause + + Apply scale changes - - Pause data acquisition + + Verify and apply changes made to the selected scale. To use the scale, select it in the settings of a supported instrument. - - Reference freeze + + Keymap slot to edit: - - Freeze current input as a reference / disable falloff in peak-hold mode. + + Keymap description. Cannot start with "!" and cannot contain a newline character. - - Waterfall + + Load key mapping definition from a file. - - Display real-time spectrogram + + Save key mapping definition to a file. - - Averaging + + Enter key mappings on separate lines. Each line assigns a scale degree to a MIDI key, +starting with the middle key and continuing in sequence. +The pattern repeats for keys outside of the explicit keymap range. +Multiple keys can be mapped to the same scale degree. +Enter 'x' if you wish to leave the key disabled / not mapped. - - Enable exponential moving average + + FIRST - - Stereo - Stereo + + First MIDI key that will be mapped + - - Display stereo channels separately + + LAST - - Peak hold + + Last MIDI key that will be mapped - - Display envelope of peak values + + MIDDLE - - Logarithmic frequency + + First line in the keymap refers to this MIDI key - - Switch between logarithmic and linear frequency scale + + BASE N. - - - Frequency range + + Base note frequency will be assigned to this MIDI key - - Logarithmic amplitude + + BASE NOTE FREQ - - Switch between logarithmic and linear amplitude scale + + Apply keymap changes - - - Amplitude range + + Verify and apply changes made to the selected key mapping. To use the mapping, select it in the settings of a supported instrument. - - Envelope res. + + Scale parsing error - - Increase envelope resolution for better details, decrease for better GUI performance. + + Scale name cannot start with an exclamation mark - - - Draw at most + + Scale name cannot contain a new-line character - - envelope points per pixel + + Interval defined in cents cannot be converted to a number - - Spectrum res. + + Numerator of an interval defined as a ratio cannot be converted to a number - - Increase spectrum resolution for better details, decrease for better GUI performance. + + Denominator of an interval defined as a ratio cannot be converted to a number - - spectrum points per pixel + + Interval defined as a ratio cannot be negative - - Falloff factor + + Keymap parsing error - - Decrease to make peaks fall faster. + + Keymap name cannot start with an exclamation mark - - Multiply buffered value by + + Keymap name cannot contain a new-line character - - Averaging weight + + Scale degree cannot be converted to a whole number - - Decrease to make averaging slower and smoother. + + Scale degree cannot be negative - - New sample contributes + + Invalid keymap - - Waterfall height + + Base key is not mapped to any scale degree. No sound will be produced as there is no way to assign reference frequency to any note. - - Increase to get slower scrolling, decrease to see fast transitions better. Warning: medium CPU usage. + + Open scale - - Keep + + + Scala scale definition (*.scl) - - lines + + Scale load failure - - Waterfall gamma + + + Unable to open selected file. - - Decrease to see very weak signals, increase to get better contrast. + + Open keymap - - Gamma value: + + + Scala keymap definition (*.kbm) - - Window overlap + + Keymap load failure - - Increase to prevent missing fast transitions arriving near FFT window edges. Warning: high CPU usage. + + Save scale - - Each sample processed + + Scale save failure - - times + + + Unable to open selected file for writing. - - Zero padding + + Save keymap - - Increase to get smoother-looking spectrum. Warning: high CPU usage. + + Keymap save failure + + + lmms::gui::MidiCCRackView - - Processing buffer is + + + MIDI CC Rack - %1 - - steps larger than input block + + MIDI CC Knobs: - - Advanced settings + + CC %1 + + + lmms::gui::MidiClipView - - Access advanced settings + + + Transpose - - - FFT block size + + Semitones to transpose by: - - - FFT window type + + Open in piano-roll - - - SampleBuffer - - Fail to open file - Gagal untuk membuka berkas + + Set as ghost in piano-roll + - - Audio files are limited to %1 MB in size and %2 minutes of playing time - Berkas suara dibatasi ukuran hingga %1 MB dan waktu pemutaran %2 menit + + Set as ghost in automation editor + - - Open audio file - Buka berkas suara + + Clear all notes + - - All Audio-Files (*.wav *.ogg *.ds *.flac *.spx *.voc *.aif *.aiff *.au *.raw) - Semua Berkas-Suara (*.wav *.ogg *.ds *.flac *.spx *.voc *.aif *.aiff *.au *.raw) + + Reset name + - - Wave-Files (*.wav) - Berkas-Wave (*.wav) + + Change name + - - OGG-Files (*.ogg) - Berkas-OGG (*.ogg) + + Add steps + - - DrumSynth-Files (*.ds) - Berkas-DrumSynth (*.ds) + + Remove steps + - - FLAC-Files (*.flac) - Berkas-FLAC (*.flac) + + Clone Steps + + + + lmms::gui::MidiSetupWidget - - SPEEX-Files (*.spx) - Berkas-SPEEX (*.spx) + + Device + + + + lmms::gui::MixerChannelLcdSpinBox - - VOC-Files (*.voc) - Berkas-VOC (*.voc) + + Assign to: + - - AIFF-Files (*.aif *.aiff) - Berkas-AIFF (*.aif *.aiff) + + New Mixer Channel + - - AU-Files (*.au) - Berkas-AU (*.au) + + Please enter a new value between %1 and %2: + - - RAW-Files (*.raw) - Berkas-RAW (*.raw) + + Set value + - SampleClipView + lmms::gui::MixerChannelView - - Double-click to open sample + + Channel send amount - - Delete (middle mousebutton) - Hapus (tombol tengah mouse) + + Mute + + + + + Mute this channel + - - Delete selection (middle mousebutton) + + Solo - - Cut - Potong + + Solo this channel + - - Cut selection + + Fader %1 - - Copy - Salin + + Move &left + - - Copy selection + + Move &right - - Paste - Tempel + + Rename &channel + - - Mute/unmute (<%1> + middle click) - Bisukan/suarakan (<%1> + middle click) + + R&emove channel + - - Mute/unmute selection (<%1> + middle click) + + Remove &unused channels - - Reverse sample - Balikan sampel + + Color + - - Set clip color + + Change - - Use track color + + Reset - - - SampleTrack - - Volume - Volume - + + Pick random + - - Panning - Keseimbangan + + This Mixer Channel is being used. +Are you sure you want to remove this channel? + +Warning: This operation can not be undone. + - - Mixer channel - Saluran FX + + Confirm removal + - - - Sample track - Trek sampel + + Don't ask again + - SampleTrackView - - - Track volume - Volume trek - + lmms::gui::MixerView - - Channel volume: - Volume channel: + + Mixer + + + + lmms::gui::MonstroView - - VOL - VOL + + Operators view + - - Panning - Keseimbangan + + Matrix view + - - Panning: - Keseimbangan: + + + + Volume + - - PAN - SEIMBANG + + + + Panning + - - Channel %1: %2 - FX %1: %2 + + + + Coarse detune + - - - SampleTrackWindow - - GENERAL SETTINGS - PENGATURAN UMUM + + + + semitones + - - Sample volume + + + Fine tune left - - Volume: - Volume: + + + + + cents + - - VOL - VOL + + + Fine tune right + - - Panning - Keseimbangan + + + + Stereo phase offset + - - Panning: - Keseimbangan: + + + + + + deg + - - PAN - SEIMBANG + + Pulse width + - - Mixer channel - Saluran FX + + Send sync on pulse rise + - - FX - FX + + Send sync on pulse fall + - - - SaveOptionsWidget - - Discard MIDI connections + + Hard sync oscillator 2 - - Save As Project Bundle (with resources) + + Reverse sync oscillator 2 - - - SetupDialog - - Reset to default value + + Sub-osc mix - - Use built-in NaN handler + + Hard sync oscillator 3 - - Settings - Pengaturan + + Reverse sync oscillator 3 + - - - General + + + + + Attack - - Graphical user interface (GUI) + + + Rate - - Display volume as dBFS - Tampilkan volume sebagai dBFS + + + Phase + - - Enable tooltips - Aktifkan tooltips + + + Pre-delay + - - Enable master oscilloscope by default + + + Hold - - Enable all note labels in piano roll + + + Decay - - Enable compact track buttons + + + Sustain - - Enable one instrument-track-window mode + + + Release - - Show sidebar on the right-hand side + + + Slope - - Let sample previews continue when mouse is released + + Mix osc 2 with osc 3 - - Mute automation tracks during solo + + Modulate amplitude of osc 3 by osc 2 - - Show warning when deleting tracks + + Modulate frequency of osc 3 by osc 2 - - Projects + + Modulate phase of osc 3 by osc 2 - - Compress project files by default + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Modulation amount + + + lmms::gui::MultitapEchoControlDialog - - Create a backup file when saving a project + + Length - - Reopen last project on startup + + Step length: - - Language + + Dry - - - Performance + + Dry gain: - - Autosave + + Stages - - Enable autosave + + Low-pass stages: - - Allow autosave while playing + + Swap inputs - - User interface (UI) effects vs. performance + + Swap left and right input channels for reflections + + + lmms::gui::NesInstrumentView - - Smooth scroll in song editor + + + + + Volume - - Display playback cursor in AudioFileProcessor + + + + Coarse detune - - Plugins - Plugin + + + + Envelope length + - - VST plugins embedding: + + Enable channel 1 - - No embedding - Tidak disematkan + + Enable envelope 1 + - - Embed using Qt API - Disematkan menggunakan API Qt + + Enable envelope 1 loop + - - Embed using native Win32 API - Disematkan menggunakan API Win32 asli + + Enable sweep 1 + - - Embed using XEmbed protocol - Disematkan menggunakan protokol XEmbed + + + Sweep amount + - - Keep plugin windows on top when not embedded + + + Sweep rate - - Sync VST plugins to host playback - Selaraskan plugin VST ke pemutaran host + + + 12.5% Duty cycle + - - Keep effects running even without input - Biarkan efek berjalan walaupun tanpa masukan + + + 25% Duty cycle + - - - Audio - Audio + + + 50% Duty cycle + - - Audio interface + + + 75% Duty cycle - - HQ mode for output audio device + + Enable channel 2 - - Buffer size + + Enable envelope 2 - - - MIDI - MIDI + + Enable envelope 2 loop + - - MIDI interface + + Enable sweep 2 - - Automatically assign MIDI controller to selected track + + Enable channel 3 - - LMMS working directory - Direktori kerja LMMS + + Noise Frequency + - - VST plugins directory + + Frequency sweep - - LADSPA plugins directories + + Enable channel 4 - - SF2 directory - Direktori SF2 + + Enable envelope 4 + - - Default SF2 + + Enable envelope 4 loop - - GIG directory - Direktori GIG + + Quantize noise frequency when using note frequency + - - Theme directory + + Use note frequency for noise - - Background artwork - Latar belakang karya seni + + Noise mode + - - Some changes require restarting. + + Master volume - - Autosave interval: %1 + + Vibrato + + + lmms::gui::OpulenzInstrumentView - - Choose the LMMS working directory + + + Attack - - Choose your VST plugins directory + + + Decay - - Choose your LADSPA plugins directory + + + Release - - Choose your default SF2 + + + Frequency multiplier + + + lmms::gui::OrganicInstrumentView - - Choose your theme directory + + Distortion: - - Choose your background picture + + Volume: - - - Paths + + Randomise - - OK - OK + + + Osc %1 waveform: + - - Cancel - Batal + + Osc %1 volume: + - - Frames: %1 -Latency: %2 ms - Bingkai: %1 -Latensi: %2 md + + Osc %1 panning: + - - Choose your GIG directory - Pilih direktor GIG anda + + Osc %1 stereo detuning + - - Choose your SF2 directory - Pilih direktor SF2 anda + + cents + - - minutes - menit + + Osc %1 harmonic: + + + + lmms::gui::Oscilloscope - - minute - menit + + Oscilloscope + - - Disabled - Dinonaktifkan + + Click to enable + - SidInstrument - - - Cutoff frequency - Frekuensi cutoff - + lmms::gui::PatmanView - - Resonance - Resonansi + + Open patch + - - Filter type - Tipe filter + + Loop + - - Voice 3 off + + Loop mode - - Volume - Volume + + Tune + - - Chip model - Model chip + + Tune mode + - - - SidInstrumentView - - Volume: - Volume: + + No file selected + - - Resonance: - Resonansi: + + Open patch file + - - - Cutoff frequency: - Frekuensi cutoff: + + Patch-Files (*.pat) + + + + lmms::gui::PatternClipView - - High-pass filter + + Open in Pattern Editor - - Band-pass filter + + Reset name - - Low-pass filter + + Change name + + + lmms::gui::PatternEditorWindow - - Voice 3 off + + Pattern Editor - - MOS6581 SID - MOS6581 SID + + Play/pause current pattern (Space) + - - MOS8580 SID - MOS8580 SID + + Stop playback of current pattern (Space) + - - - Attack: - Attack: + + Pattern selector + - - - Decay: - Decay: + + Track and step actions + - - Sustain: - Sustain: + + New pattern + - - - Release: - Release: + + Clone pattern + - - Pulse Width: + + Add sample-track - - Coarse: + + Add automation-track - - Pulse wave + + Remove steps - - Triangle wave - Gelombang segitiga + + Add steps + - - Saw wave - Gelombang gergaji + + Clone Steps + + + + lmms::gui::PeakControllerDialog - - Noise - Derau + + PEAK + - - Sync - Selaras + + LFO Controller + + + + lmms::gui::PeakControllerEffectControlDialog - - Ring modulation + + BASE - - Filtered + + Base: - - Test - Tes + + AMNT + - - Pulse width: + + Modulation amount: - - - SideBarWidget - - Close - Tutup + + MULT + - - - Song - - Tempo - Tempo + + Amount multiplicator: + - - Master volume - Volume master + + ATCK + - - Master pitch - Master pitch + + Attack: + - - Aborting project load + + DCAY - - Project file contains local paths to plugins, which could be used to run malicious code. + + Release: - - Can't load project: Project file contains local paths to plugins. + + TRSH - - LMMS Error report - Laporan kesalahan LMMS + + Treshold: + - - (repeated %1 times) + + Mute output - - The following errors occurred while loading: + + Absolute value - SongEditor + lmms::gui::PeakIndicator - - Could not open file - Tidak bisa membuka berkas + + -inf + + + + lmms::gui::PianoRoll - - Could not open file %1. You probably have no permissions to read this file. - Please make sure to have at least read permissions to the file and try again. - Tidak bisa membuka berkas %1. Anda mungkin tidak memiliki izin untuk membaca berkas ini. -Setidaknya pastikan Anda memiliki izini baca kepada berkas tersebut lalu coba lagi. + + Note Velocity + - - Operation denied + + Note Panning - - A bundle folder with that name already eists on the selected path. Can't overwrite a project bundle. Please select a different name. + + Mark/unmark current semitone - - - - Error - Kesalahan + + Mark/unmark all corresponding octave semitones + - - Couldn't create bundle folder. + + Mark current scale - - Couldn't create resources folder. + + Mark current chord - - Failed to copy resources. + + Unmark all - - Could not write file - Tidak bisa menulis berkas + + Select all notes on this key + - - Could not open %1 for writing. You probably are not permitted towrite to this file. Please make sure you have write-access to the file and try again. + + Note lock - - This %1 was created with LMMS %2 + + Last note - - Error in file - Kesalahan dalam berkas + + No key + - - The file %1 seems to contain errors and therefore can't be loaded. - Berkas %1 sepertinya menganduh kesalahan dan oleh karena itu tidak bisa dimuat. + + No scale + - - Version difference - Perbedaan Versi + + No chord + - - template - template + + Nudge + - - project - proyek + + Snap + - - Tempo - Tempo + + Velocity: %1% + - - TEMPO + + Panning: %1% left - - Tempo in BPM + + Panning: %1% right - - High quality mode - Mode kualitas tinggi + + Panning: center + - - - - Master volume - Volume master + + Glue notes failed + - - - - Master pitch - Master pitch + + Please select notes to glue first. + - - Value: %1% - Nilai: %1% + + Please open a clip by double-clicking on it! + - - Value: %1 semitones - Nilai: %1 semitone + + + Please enter a new value between %1 and %2: + - SongEditorWindow - - - Song-Editor - Editor-Lagu - + lmms::gui::PianoRollWindow - - Play song (Space) - Putar lagu (Spasi) + + Play/pause current clip (Space) + - - Record samples from Audio-device - Rekam sampel dari perangkat-Audio + + Record notes from MIDI-device/channel-piano + - - Record samples from Audio-device while playing song or BB track - Rekam sampel dari perangkat-Audio saat memutar lagu atau trek BB + + Record notes from MIDI-device/channel-piano while playing song or pattern track + - - Stop song (Space) - Hentikan lagu (Spasi) + + Record notes from MIDI-device/channel-piano, one step at the time + - - Track actions - Aksi trek + + Stop playing of current clip (Space) + - - Add beat/bassline - Tambah ketukan/bassline + + Edit actions + - - Add sample-track - Tambah Trek-sampel + + Draw mode (Shift+D) + - - Add automation-track - Tambah trek-otomasi + + Erase mode (Shift+E) + - - Edit actions - Ubah aksi + + Select mode (Shift+S) + - - Draw mode - Mode gambar + + Pitch Bend mode (Shift+T) + - - Knife mode (split sample clips) + + Quantize - - Edit mode (select and move) - Mode Edit (pilih dan pindah) + + Quantize positions + - - Timeline controls - Kontrol timeline + + Quantize lengths + - - Bar insert controls + + File actions - - Insert bar + + Import clip - - Remove bar + + + Export clip - - Zoom controls - Kontrol Zum + + Copy paste controls + - - Horizontal zooming - Pembesaran horizontal + + Cut (%1+X) + - - Snap controls + + Copy (%1+C) - - - Clip snapping size + + Paste (%1+V) - - Toggle proportional snap on/off + + Timeline controls - - Base snapping size + + Glue - - - StepRecorderWidget - - Hint - Petunjuk + + Knife + - - Move recording curser using <Left/Right> arrows + + Fill - - - SubWindow - - Close - Tutup + + Cut overlaps + - - Maximize - Maksimalkan + + Min length as last + - - Restore - Kembalikan + + Max length as last + - - - TabWidget - - - Settings for %1 - Pengaturan untuk %1 + + Zoom and note controls + - - - TemplatesMenu - - New from template - Baru dari template + + Horizontal zooming + - - - TempoSyncKnob - - - Tempo Sync - Selaraskan Tempo + + Vertical zooming + - - No Sync + + Quantization - - Eight beats - Delapan ketukan + + Note length + - - Whole note - Seluruh not + + Key + - - Half note - Setengah not + + Scale + - - Quarter note - Seperempat not + + Chord + - - 8th note - not 8 + + Snap mode + - - 16th note - not 16 + + Clear ghost notes + - - 32nd note - not 32 + + + Piano-Roll - %1 + - - Custom... - Kustom... + + + Piano-Roll - no clip + - - Custom - Kustom + + + XML clip file (*.xpt *.xptz) + - - Synced to Eight Beats + + Export clip success - - Synced to Whole Note + + Clip saved to %1 - - Synced to Half Note + + Import clip. - - Synced to Quarter Note + + You are about to import a clip, this will overwrite your current clip. Do you want to continue? - - Synced to 8th Note + + Open clip - - Synced to 16th Note + + Import clip success - - Synced to 32nd Note + + Imported clip %1! - TimeDisplayWidget + lmms::gui::PianoView - - Time units + + Base note - - MIN - MIN + + First note + - - SEC - DTK + + Last note + + + + lmms::gui::PluginBrowser - - MSEC - MDTK + + Instrument Plugins + - - BAR - BAR + + Instrument browser + - - BEAT - KETUKAN + + Drag an instrument into either the Song Editor, the Pattern Editor or an existing instrument track. + - - TICK - TIK + + Search + - TimeLineWidget + lmms::gui::PluginDescWidget - - Auto scrolling + + Send to new instrument track + + + lmms::gui::ProjectNotes - - Loop points + + Project Notes - - After stopping go back to beginning + + Enter project notes here - - After stopping go back to position at which playing was started - Setelah berhenti kembali ke posisi dimana pemutaran dimulai - - - - After stopping keep position - Jaga posisi setelah berhenti - - - - Hint - Petunjuk + + Edit Actions + - - Press <%1> to disable magnetic loop points. - Tekan <%1> untuk menonaktifkan titik pengulangan magnetik. + + &Undo + - - - Track - - Mute - Bisu + + %1+Z + - - Solo - Solo + + &Redo + - - - TrackContainer - - Couldn't import file - Tidak bisa mengimpor berkas + + %1+Y + - - Couldn't find a filter for importing file %1. -You should convert this file into a format supported by LMMS using another software. - Tidak bisa mencari filter untuk mengimpor berkas %1. -Anda seharusnya mengubah berkas ini menjadi format yang didukung oleh LMMS menggunakan perangkat lunak lain. + + &Copy + - - Couldn't open file - Tidak bisa membuka berkas + + %1+C + - - Couldn't open file %1 for reading. -Please make sure you have read-permission to the file and the directory containing the file and try again! - Tidak bisa membuka berkas %1 untuk dibaca. -Pastikan anda memiliki izin baca untuk berkas ini dan direktori yang mengandung berkas ini dan coba lagi! + + Cu&t + - - Loading project... - Memuat proyek... + + %1+X + - - - Cancel - Batal + + &Paste + - - - Please wait... - Mohon tunggu... + + %1+V + - - Loading cancelled + + Format Actions - - Project loading was cancelled. + + &Bold - - Loading Track %1 (%2/Total %3) - Memuat Trek %1 (%2/Total %3) + + %1+B + - - Importing MIDI-file... - Mengimpor berkas-MIDI... + + &Italic + - - - Clip - - Mute - Bisu + + %1+I + - - - ClipView - - Current position - Posisi saat ini + + &Underline + - - Current length - Panjang saat ini + + %1+U + - - - %1:%2 (%3:%4 to %5:%6) - %1:%2 (%3:%4 to %5:%6) + + &Left + - - Press <%1> and drag to make a copy. - Tekan <%1> dan seret untuk membuat salinan. + + %1+L + - - Press <%1> for free resizing. - Tekan <%1> untuk merubah ukuran secara bebas. + + C&enter + - - Hint - Petunjuk + + %1+E + - - Delete (middle mousebutton) - Hapus (tombol tengah mouse) + + &Right + - - Delete selection (middle mousebutton) + + %1+R - - Cut - Potong + + &Justify + - - Cut selection + + %1+J - - Merge Selection + + &Color... + + + lmms::gui::RecentProjectsMenu - - Copy - Salin + + &Recently Opened Projects + + + + lmms::gui::RenameDialog - - Copy selection + + Rename... + + + lmms::gui::ReverbSCControlDialog - - Paste - Tempel + + Input + - - Mute/unmute (<%1> + middle click) - Bisukan/suarakan (<%1> + middle click) + + Input gain: + - - Mute/unmute selection (<%1> + middle click) + + Size - - Set clip color + + Size: - - Use track color + + Color - - - TrackContentWidget - - Paste - Tempel + + Color: + - - - TrackOperationsWidget - - Press <%1> while clicking on move-grip to begin a new drag'n'drop action. + + Output - - Actions + + Output gain: + + + lmms::gui::SaControlsDialog - - - Mute - Bisu + + Pause + - - - Solo - Solo + + Pause data acquisition + - - After removing a track, it can not be recovered. Are you sure you want to remove track "%1"? + + Reference freeze - - Confirm removal + + Freeze current input as a reference / disable falloff in peak-hold mode. - - Don't ask again + + Waterfall - - Clone this track - Klon trek ini + + Display real-time spectrogram + - - Remove this track - Hapus trek ini + + Averaging + - - Clear this track - Bersihkan trek ini + + Enable exponential moving average + - - Channel %1: %2 - FX %1: %2 + + Stereo + - - Assign to new mixer Channel - Tetapkan ke Saluran FX baru + + Display stereo channels separately + - - Turn all recording on - Hidupkan semua rekaman + + Peak hold + - - Turn all recording off - Matikan semua rekaman + + Display envelope of peak values + - - Change color - Ganti warna + + Logarithmic frequency + - - Reset color to default - Reset warna ke default + + Switch between logarithmic and linear frequency scale + - - Set random color + + + Frequency range - - Clear clip colors + + Logarithmic amplitude - - - TripleOscillatorView - - Modulate phase of oscillator 1 by oscillator 2 + + Switch between logarithmic and linear amplitude scale - - Modulate amplitude of oscillator 1 by oscillator 2 + + + Amplitude range - - Mix output of oscillators 1 & 2 + + + FFT block size - - Synchronize oscillator 1 with oscillator 2 + + + FFT window type - - Modulate frequency of oscillator 1 by oscillator 2 + + Envelope res. - - Modulate phase of oscillator 2 by oscillator 3 + + Increase envelope resolution for better details, decrease for better GUI performance. - - Modulate amplitude of oscillator 2 by oscillator 3 + + Maximum number of envelope points drawn per pixel: - - Mix output of oscillators 2 & 3 + + Spectrum res. - - Synchronize oscillator 2 with oscillator 3 - Selaraskan osilator 2 dengan osilator 3 + + Increase spectrum resolution for better details, decrease for better GUI performance. + - - Modulate frequency of oscillator 2 by oscillator 3 + + Maximum number of spectrum points drawn per pixel: - - Osc %1 volume: - Volume Osc %1: + + Falloff factor + - - Osc %1 panning: - Keseimbangan Osc %1: + + Decrease to make peaks fall faster. + - - Osc %1 coarse detuning: + + Multiply buffered value by - - semitones - semitone + + Averaging weight + - - Osc %1 fine detuning left: + + Decrease to make averaging slower and smoother. - - - cents - sen + + New sample contributes + - - Osc %1 fine detuning right: + + Waterfall height - - Osc %1 phase-offset: + + Increase to get slower scrolling, decrease to see fast transitions better. Warning: medium CPU usage. - - - degrees - derajat + + Number of lines to keep: + - - Osc %1 stereo phase-detuning: + + Waterfall gamma - - Sine wave - Gelombang sinus + + Decrease to see very weak signals, increase to get better contrast. + - - Triangle wave - Gelombang segitiga + + Gamma value: + - - Saw wave - Gelombang gergaji + + Window overlap + - - Square wave - Gelombang kotak + + Increase to prevent missing fast transitions arriving near FFT window edges. Warning: high CPU usage. + - - Moog-like saw wave + + Number of times each sample is processed: - - Exponential wave + + Zero padding - - White noise - Kebisingan putih + + Increase to get smoother-looking spectrum. Warning: high CPU usage. + - - User-defined wave + + Processing buffer is - - - VecControls - - Display persistence amount + + steps larger than input block - - Logarithmic scale + + Advanced settings - - High quality + + Access advanced settings - VecControlsDialog + lmms::gui::SampleClipView - - HQ + + Double-click to open sample - - Double the resolution and simulate continuous analog-like trace. + + Reverse sample - - Log. scale + + Set as ghost in automation editor + + + lmms::gui::SampleTrackView - - Display amplitude on logarithmic scale to better see small values. + + Mixer channel - - Persist. + + Track volume - - Trace persistence: higher amount means the trace will stay bright for longer time. + + Channel volume: - - Trace persistence + + VOL - - - VersionedSaveDialog - - Increment version number - Tingkatkan versi nomor + + Panning + - - - Decrement version number - Turunkan versi nomor + + + Panning: + - - Save Options + + PAN - - already exists. Do you want to replace it? - sudah ada. Apakah anda ingin menimpanya? + + %1: %2 + - VestigeInstrumentView + lmms::gui::SampleTrackWindow - - - Open VST plugin + + Sample volume - - Control VST plugin from LMMS host + + Volume: - - Open VST plugin preset + + VOL - - Previous (-) - Sebelumnya (-) - - - - Save preset - Simpan preset + + Panning + - - Next (+) - Selanjutnya (+) + + Panning: + - - Show/hide GUI - Tampilkan/sembunyikan GUI + + PAN + - - Turn off all notes - Matikan semua not + + Mixer channel + - - DLL-files (*.dll) - Berkas-DLL (*.dll) + + CHANNEL + + + + lmms::gui::SaveOptionsWidget - - EXE-files (*.exe) - berkas-EXE (*.exe) + + Discard MIDI connections + - - No VST plugin loaded + + Save As Project Bundle (with resources) + + + lmms::gui::SetupDialog - - Preset - Preset + + Settings + - - by - oleh + + + General + - - - VST plugin control - - kontrol VST plugin + + Graphical user interface (GUI) + - - - VstEffectControlDialog - - Show/hide - Tampilkan/sembunyikan + + Display volume as dBFS + - - Control VST plugin from LMMS host + + Enable tooltips - - Open VST plugin preset + + Enable master oscilloscope by default - - Previous (-) - Sebelumnya (-) + + Enable all note labels in piano roll + - - Next (+) - Selanjutnya (+) + + Enable compact track buttons + - - Save preset - Simpan preset + + Enable one instrument-track-window mode + - - - Effect by: - Efek oleh: + + Show sidebar on the right-hand side + - - &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> - &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> + + Let sample previews continue when mouse is released + - - - VstPlugin - - - The VST plugin %1 could not be loaded. - VST plugin %1 tidak dapat dimuat. + + Mute automation tracks during solo + - - Open Preset - Buka Preset + + Show warning when deleting tracks + - - - Vst Plugin Preset (*.fxp *.fxb) - Preset Vst Plugin (*.fxp *.fxb) + + Show warning when deleting a mixer channel that is in use + - - : default - : default + + Dual-button + - - Save Preset - Simpan Preset + + Grab closest + - - .fxp - .fxp + + Handles + - - .FXP - .FXP + + Loop edit mode + - - .FXB - .FXB + + Projects + - - .fxb - .fxb + + Compress project files by default + - - Loading plugin - Memuat plugin + + Create a backup file when saving a project + - - Please wait while loading VST plugin... - Mohon tunggu, sedang memuat VST plugin... + + Reopen last project on startup + - - - WatsynInstrument - - Volume A1 - Volume A1 + + Language + - - Volume A2 - Volume A2 + + + Performance + - - Volume B1 - Volume B1 + + Autosave + - - Volume B2 - Volume B2 + + Enable autosave + - - Panning A1 - Keseimbangan A1 + + Allow autosave while playing + - - Panning A2 - Keseimbangan A2 + + User interface (UI) effects vs. performance + - - Panning B1 - Keseimbangan B1 + + Smooth scroll in song editor + - - Panning B2 - Keseimbangan B2 + + Display playback cursor in AudioFileProcessor + - - Freq. multiplier A1 + + Plugins - - Freq. multiplier A2 + + VST plugins embedding: - - Freq. multiplier B1 + + No embedding - - Freq. multiplier B2 + + Embed using Qt API - - Left detune A1 + + Embed using native Win32 API - - Left detune A2 + + Embed using XEmbed protocol - - Left detune B1 + + Keep plugin windows on top when not embedded - - Left detune B2 + + Keep effects running even without input - - Right detune A1 + + + Audio - - Right detune A2 - Detune A2 kanan + + Audio interface + - - Right detune B1 - Detune B1 Kanan + + Buffer size + - - Right detune B2 - Detune B2 kanan + + Reset to default value + - - A-B Mix - A-B Mix + + + MIDI + - - A-B Mix envelope amount + + MIDI interface - - A-B Mix envelope attack + + Automatically assign MIDI controller to selected track - - A-B Mix envelope hold + + Behavior when recording - - A-B Mix envelope decay + + Auto-quantize notes in Piano Roll - - A1-B2 Crosstalk + + If enabled, notes will be automatically quantized when recording them from a MIDI controller. If disabled, they are always recorded at the highest possible resolution. - - A2-A1 modulation - Modulasi A2-A1 + + + Paths + - - B2-B1 modulation - Modulasi B2-B1 + + LMMS working directory + - - Selected graph - Grafik yang dipilih + + VST plugins directory + - - - WatsynView - - - - - Volume - Volume - + + LADSPA plugins directories + - - - - - Panning - Keseimbangan + + SF2 directory + - - - - - Freq. multiplier + + Default SF2 - - - - - Left detune + + GIG directory - - - - - - - - - cents - sen + + Theme directory + - - - - - Right detune + + Background artwork - - A-B Mix - A-B Mix + + Some changes require restarting. + - - Mix envelope amount + + OK - - Mix envelope attack + + Cancel - - Mix envelope hold + + minutes - - Mix envelope decay + + minute - - Crosstalk + + Disabled - - Select oscillator A1 - Pilih osilator A1 - - - - Select oscillator A2 - Pilih osilator A2 + + Autosave interval: %1 + - - Select oscillator B1 - Pilih osilator B1 + + The currently selected value is not a power of 2 (32, 64, 128, 256). Some plugins may not be available. + - - Select oscillator B2 - Pilih osilator B2 + + The currently selected value is less than or equal to 32. Some plugins may not be available. + - - Mix output of A2 to A1 - Campurkan keluaran dari A2 ke A1 + + Frames: %1 +Latency: %2 ms + - - Modulate amplitude of A1 by output of A2 + + Choose the LMMS working directory - - Ring modulate A1 and A2 + + Choose your VST plugins directory - - Modulate phase of A1 by output of A2 + + Choose your LADSPA plugins directory - - Mix output of B2 to B1 - Gabung keluaran dari B2 ke B1 + + Choose your SF2 directory + - - Modulate amplitude of B1 by output of B2 + + Choose your default SF2 - - Ring modulate B1 and B2 + + Choose your GIG directory - - Modulate phase of B1 by output of B2 + + Choose your theme directory - - - - - Draw your own waveform here by dragging your mouse on this graph. - Gambar bentuk gelombang kamu sendiri dengan menyeret tetikus kamu di grafik ini. + + Choose your background picture + + + + lmms::gui::Sf2InstrumentView - - Load waveform - Muat gelombang grafik + + + Open SoundFont file + - - Load a waveform from a sample file + + Choose patch - - Phase left + + Gain: - - Shift phase by -15 degrees + + Apply reverb (if supported) - - Phase right + + Room size: - - Shift phase by +15 degrees + + Damping: - - - Normalize - Normalisasi + + Width: + - - - Invert - Balik + + + Level: + - - - Smooth - Halus + + Apply chorus (if supported) + - - - Sine wave - Gelombang sinus + + Voices: + - - - - Triangle wave - Gelombang segitiga + + Speed: + - - Saw wave - Gelombang gergaji + + Depth: + - - - Square wave - Gelombang kotak + + SoundFont Files (*.sf2 *.sf3) + - Xpressive + lmms::gui::SidInstrumentView - - Selected graph - Grafik yang dipilih + + Volume: + - - A1 - A1 + + Resonance: + - - A2 - A2 + + + Cutoff frequency: + - - A3 - A3 + + High-pass filter + - - W1 smoothing + + Band-pass filter - - W2 smoothing + + Low-pass filter - - W3 smoothing + + Voice 3 off - - Panning 1 + + MOS6581 SID - - Panning 2 + + MOS8580 SID - - Rel trans + + + Attack: - - - XpressiveView - - Draw your own waveform here by dragging your mouse on this graph. - Gambar bentuk gelombang kamu sendiri dengan menyeret tetikus kamu di grafik ini. + + + Decay: + - - Select oscillator W1 + + Sustain: - - Select oscillator W2 + + + Release: - - Select oscillator W3 + + Pulse Width: - - Select output O1 + + Coarse: - - Select output O2 + + Pulse wave - - Open help window + + Triangle wave - - - Sine wave - Gelombang sinus + + Saw wave + - - - Moog-saw wave + + Noise - - - Exponential wave + + Sync - - - Saw wave - Gelombang gergaji + + Ring modulation + - - - User-defined wave + + Filtered - - - Triangle wave - Gelombang segitiga + + Test + - - - Square wave - Gelombang kotak + + Pulse width: + + + + lmms::gui::SideBarWidget - - - White noise - Kebisingan putih + + Close + + + + lmms::gui::SlicerTView - - WaveInterpolate + + Slice snap - - ExpressionValid + + Set slice snapping for detection - - General purpose 1: + + Sync sample - - General purpose 2: + + Enable BPM sync - - General purpose 3: + + Original sample BPM - - O1 panning: + + Threshold used for slicing - - O2 panning: + + Fade Out per note in milliseconds - - Release transition: + + Copy midi pattern to clipboard - - Smoothness + + Open sample selector - - - ZynAddSubFxInstrument - - Portamento + + Reset slices - - Filter frequency + + Threshold - - Filter resonance + + Fade Out - - Bandwidth - Lebar pita + + Reset + - - FM gain + + Midi - - Resonance center frequency + + BPM - - Resonance bandwidth + + Snap + + + lmms::gui::SlicerTWaveform - - Forward MIDI control change events + + Click to load sample - ZynAddSubFxView + lmms::gui::SongEditor - - Portamento: - Portamento: + + Could not open file + - - PORT - PORT + + Could not open file %1. You probably have no permissions to read this file. + Please make sure to have at least read permissions to the file and try again. + - - Filter frequency: + + Operation denied - - FREQ - FREK + + A bundle folder with that name already eists on the selected path. Can't overwrite a project bundle. Please select a different name. + - - Filter resonance: + + + + Error - - RES - RES + + Couldn't create bundle folder. + - - Bandwidth: - Lebar pita: + + Couldn't create resources folder. + - - BW - LP + + Failed to copy resources. + - - FM gain: + + + Could not write file - - FM GAIN - FM GAIN + + Could not open %1 for writing. You probably are not permitted to write to this file. Please make sure you have write-access to the file and try again. + - - Resonance center frequency: - Frekuensi resonansi tengah: + + An unknown error has occurred and the file could not be saved. + - - RES CF + + Error in file - - Resonance bandwidth: + + The file %1 seems to contain errors and therefore can't be loaded. - - RES BW + + template - - Forward MIDI control changes + + project - - Show GUI - Tampilkan GUI + + Version difference + - - - AudioFileProcessor - - Amplify + + This %1 was created with LMMS %2 - - Start of sample - Awal dari sampel + + Zoom + + + + + Tempo + + + + + TEMPO + + + + + Tempo in BPM + - - End of sample - Akhir dar sampel + + + + Master volume + - - Loopback point - Titik loopback + + + + Global transposition + - - Reverse sample - Balikan sampel + + 1/%1 Bar + - - Loop mode - Mode pengulangan + + %1 Bars + - - Stutter + + Value: %1% - - Interpolation mode + + Value: %1 keys + + + lmms::gui::SongEditorWindow - - None - Tidak ada + + Song-Editor + - - Linear + + Play song (Space) - - Sinc + + Record samples from Audio-device - - Sample not found: %1 - Sampel tidak ditemukan: %1 + + Record samples from Audio-device while playing song or pattern track + - - - BitInvader - - Sample length + + Stop song (Space) - - - BitInvaderView - - Sample length + + Track actions - - Draw your own waveform here by dragging your mouse on this graph. - Gambar bentuk gelombang kamu sendiri dengan menyeret tetikus kamu di grafik ini. + + Add pattern-track + - - - Sine wave - Gelombang sinus + + Add sample-track + - - - Triangle wave - Gelombang segitiga + + Add automation-track + - - - Saw wave - Gelombang gergaji + + Edit actions + - - - Square wave - Gelombang kotak + + Draw mode + - - - White noise - Kebisingan putih + + Knife mode (split sample clips) + - - - User-defined wave + + Edit mode (select and move) - - - Smooth waveform - Gelombang halus + + Timeline controls + - - Interpolation - Interpolasi + + Bar insert controls + - - Normalize - Normalisasi + + Insert bar + - - - DynProcControlDialog - - INPUT - MASUKAN + + Remove bar + - - Input gain: - Gain masukan: + + Zoom controls + - - OUTPUT - KELUARAN + + + Zoom + - - Output gain: - Gait keluaran: + + Snap controls + - - ATTACK + + + Clip snapping size - - Peak attack time: + + Toggle proportional snap on/off - - RELEASE + + Base snapping size + + + lmms::gui::StepRecorderWidget - - Peak release time: + + Hint - - - Reset wavegraph + + Move recording curser using <Left/Right> arrows + + + lmms::gui::StereoEnhancerControlDialog - - - Smooth wavegraph + + WIDTH - - - Increase wavegraph amplitude by 1 dB + + Width: + + + lmms::gui::StereoMatrixControlDialog - - - Decrease wavegraph amplitude by 1 dB + + Left to Left Vol: - - Stereo mode: maximum + + Left to Right Vol: - - Process based on the maximum of both stereo channels + + Right to Left Vol: - - Stereo mode: average + + Right to Right Vol: + + + lmms::gui::SubWindow - - Process based on the average of both stereo channels + + Close - - Stereo mode: unlinked + + Maximize - - Process each stereo channel independently + + Restore - DynProcControls - - - Input gain - Gain masukan - + lmms::gui::TapTempoView - - Output gain - Gain keluaran + + 0 + - - Attack time + + + Precision - - Release time + + Display in high precision - - Stereo mode - Mode stereo + + 0.0 ms + - - - graphModel - - Graph - Grafik + + Mute metronome + - - - KickerInstrument - - Start frequency - Frekuensi mulai + + Mute + - - End frequency - Frekuensi akhir + + BPM in milliseconds + - - Length - Panjang + + 0 ms + - - Start distortion + + Frequency of BPM - - End distortion + + 0.0000 hz - - Gain - Gain + + Reset + - - Envelope slope + + Reset counter and sidebar information - - Noise - Derau + + Sync + - - Click - Klik + + Sync with project tempo + - - Frequency slope + + %1 ms - - Start from note - Mulai dari not + + %1 hz + + + + lmms::gui::TemplatesMenu - - End to note - Berakhir ke not + + New from template + - KickerInstrumentView + lmms::gui::TempoSyncBarModelEditor - - Start frequency: - Frekuensi mulai: + + + Tempo Sync + - - End frequency: - Frekuensi akhir: + + No Sync + - - Frequency slope: + + Eight beats - - Gain: - Gain: + + Whole note + - - Envelope length: + + Half note - - Envelope slope: + + Quarter note - - Click: - Klik: + + 8th note + - - Noise: - Derau: + + 16th note + - - Start distortion: + + 32nd note - - End distortion: + + Custom... - - - LadspaBrowserView - - - Available Effects - Efek tersedia + + Custom + - - - Unavailable Effects - Efek tak tersedia + + Synced to Eight Beats + - - - Instruments - Instrumen + + Synced to Whole Note + - - - Analysis Tools - Alat Analisis + + Synced to Half Note + - - - Don't know - Tidak tahu + + Synced to Quarter Note + - - Type: - Tipe: + + Synced to 8th Note + - - - LadspaDescription - - Plugins - Plugin + + Synced to 16th Note + - - Description - Deskripsi + + Synced to 32nd Note + - LadspaPortDialog + lmms::gui::TempoSyncKnob - - Ports + + + Tempo Sync - - Name - Nama + + No Sync + - - Rate - Nilai + + Eight beats + - - Direction - Arah + + Whole note + - - Type - Tipe + + Half note + - - Min < Default < Max - Min < Default < Maks + + Quarter note + + + + + 8th note + + + + + 16th note + - - Logarithmic - Logaritmik + + 32nd note + - - SR Dependent + + Custom... - - Audio - Audio + + Custom + - - Control - Kontrol + + Synced to Eight Beats + - - Input - Masukan + + Synced to Whole Note + - - Output - Keluaran + + Synced to Half Note + - - Toggled + + Synced to Quarter Note - - Integer - Integer + + Synced to 8th Note + - - Float - Float + + Synced to 16th Note + - - - Yes - Ya + + Synced to 32nd Note + - Lb302Synth + lmms::gui::TimeDisplayWidget - - VCF Cutoff Frequency + + Time units - - VCF Resonance - Resonansi VCF + + MIN + - - VCF Envelope Mod + + SEC - - VCF Envelope Decay + + MSEC - - Distortion - Distorsi + + BAR + - - Waveform - Grafik gelombang + + BEAT + - - Slide Decay + + TICK + + + lmms::gui::TimeLineWidget - - Slide + + Auto scrolling - - Accent - Aksen + + Stepped auto scrolling + - - Dead - Mati + + Continuous auto scrolling + - - 24dB/oct Filter - Filter 24dB/oct + + Auto scrolling disabled + - - - Lb302SynthView - - Cutoff Freq: - Frek Cutoff: + + Loop points + - - Resonance: - Resonansi: + + After stopping go back to beginning + - - Env Mod: - Env Mod: + + After stopping go back to position at which playing was started + - - Decay: - Decay: + + After stopping keep position + - - 303-es-que, 24dB/octave, 3 pole filter + + Hint - - Slide Decay: + + Press <%1> to disable magnetic loop points. - - DIST: + + Set loop begin here - - Saw wave - Gelombang gergaji + + Set loop end here + - - Click here for a saw-wave. - Klik disini untuk gelombang gergaji. + + Loop edit mode (hold shift) + - - Triangle wave - Gelombang segitiga + + Dual-button + - - Click here for a triangle-wave. - Klik disini untuk gelombang-segitiga. + + Grab closest + - - Square wave - Gelombang kotak + + Handles + + + + lmms::gui::TrackContentWidget - - Click here for a square-wave. - Klik disini untuk gelombang-kotak. + + Paste + + + + lmms::gui::TrackOperationsWidget - - Rounded square wave - Gelombang persegi bulat + + Press <%1> while clicking on move-grip to begin a new drag'n'drop action. + - - Click here for a square-wave with a rounded end. + + Actions - - Moog wave + + + Mute - - Click here for a moog-like wave. + + + Solo - - Sine wave - Gelombang sinus + + After removing a track, it can not be recovered. Are you sure you want to remove track "%1"? + - - Click for a sine-wave. + + Confirm removal - - - White noise wave - Gelombang riuh + + Don't ask again + - - Click here for an exponential wave. - Klik disini untuk gelombang eksponensial. + + Clone this track + - - Click here for white-noise. - Klik disini untuk kebisingan-putih. + + Remove this track + - - Bandlimited saw wave + + Clear this track - - Click here for bandlimited saw wave. + + Channel %1: %2 - - Bandlimited square wave + + Assign to new Mixer Channel - - Click here for bandlimited square wave. + + Turn all recording on - - Bandlimited triangle wave + + Turn all recording off - - Click here for bandlimited triangle wave. + + Track color - - Bandlimited moog saw wave + + Change - - Click here for bandlimited moog saw wave. + + Reset + + + + + Pick random + + + + + Reset clip colors - MalletsInstrument + lmms::gui::TripleOscillatorView - - Hardness - Kekerasan + + Modulate phase of oscillator 1 by oscillator 2 + - - Position - Posisi + + Modulate amplitude of oscillator 1 by oscillator 2 + - - Vibrato gain + + Mix output of oscillators 1 & 2 - - Vibrato frequency + + Synchronize oscillator 1 with oscillator 2 - - Stick mix + + Modulate frequency of oscillator 1 by oscillator 2 - - Modulator - Modulator + + Modulate phase of oscillator 2 by oscillator 3 + - - Crossfade + + Modulate amplitude of oscillator 2 by oscillator 3 - - LFO speed - Kecepatan LFO + + Mix output of oscillators 2 & 3 + - - LFO depth + + Synchronize oscillator 2 with oscillator 3 - - ADSR - ADSR + + Modulate frequency of oscillator 2 by oscillator 3 + - - Pressure - Tekanan + + Osc %1 volume: + - - Motion + + Osc %1 panning: - - Speed - Kecepatan + + Osc %1 coarse detuning: + - - Bowed + + semitones - - Spread + + Osc %1 fine detuning left: - - Marimba - Marimba + + + cents + - - Vibraphone - Vibraphone + + Osc %1 fine detuning right: + - - Agogo + + Osc %1 phase-offset: - - Wood 1 + + + degrees - - Reso - Reso + + Osc %1 stereo phase-detuning: + - - Wood 2 + + Sine wave - - Beats - Ketukan + + Triangle wave + - - Two fixed + + Saw wave - - Clump + + Square wave - - Tubular bells + + Moog-like saw wave - - Uniform bar + + Exponential wave - - Tuned bar + + White noise - - Glass + + User-defined wave - - Tibetan bowl + + Use alias-free wavetable oscillators. - MalletsInstrumentView + lmms::gui::VecControlsDialog - - Instrument - Instrumen + + HQ + - - Spread + + Double the resolution and simulate continuous analog-like trace. - - Spread: + + Log. scale - - Missing files - Berkas yang hilang + + Display amplitude on logarithmic scale to better see small values. + - - Your Stk-installation seems to be incomplete. Please make sure the full Stk-package is installed! + + Persist. - - Hardness - Kekerasan + + Trace persistence: higher amount means the trace will stay bright for longer time. + - - Hardness: + + Trace persistence + + + lmms::gui::VersionedSaveDialog - - Position - Posisi + + Increment version number + - - Position: - Posisi: + + Decrement version number + - - Vibrato gain + + Save Options - - Vibrato gain: + + already exists. Do you want to replace it? + + + lmms::gui::VestigeInstrumentView - - Vibrato frequency + + + Open VST plugin - - Vibrato frequency: + + Control VST plugin from LMMS host - - Stick mix + + Open VST plugin preset - - Stick mix: + + Previous (-) - - Modulator - Modulator + + Save preset + - - Modulator: + + Next (+) - - Crossfade + + Show/hide GUI - - Crossfade: + + Turn off all notes - - LFO speed - Kecepatan LFO + + DLL-files (*.dll) + - - LFO speed: - kecepatan LFO: + + EXE-files (*.exe) + - - LFO depth + + SO-files (*.so) - - LFO depth: + + No VST plugin loaded - - ADSR - ADSR + + Preset + - - ADSR: - ADSR: + + by + - - Pressure - Tekanan + + - VST plugin control + + + + lmms::gui::VibedView - - Pressure: - Tekanan: + + Enable waveform + - - Speed - Kecepatan + + + Smooth waveform + - - Speed: - Kecepatan: + + + Normalize waveform + - - - ManageVSTEffectView - - - VST parameter control - - VST kontrol parameter + + + Sine wave + - - VST sync + + + Triangle wave - - - Automated - Diotomasi + + + Saw wave + - - Close - Tutup + + + Square wave + - - - ManageVestigeInstrumentView - - - - VST plugin control - - kontrol VST plugin + + + White noise + - - VST Sync + + + User-defined wave - - - Automated - Diotomasi + + String volume: + - - Close - Tutup + + String stiffness: + - - - OrganicInstrument - - Distortion - Distorsi + + Pick position: + - - Volume - Volume - + + Pickup position: + - - - OrganicInstrumentView - - Distortion: - Distorsi: + + String panning: + - - Volume: - Volume: + + String detune: + - - Randomise + + String fuzziness: - - - Osc %1 waveform: - Bentuk Gelombang Osc %1: + + String length: + - - Osc %1 volume: - Volume Osc %1: + + Impulse Editor + - - Osc %1 panning: - Keseimbangan Osc %1: + + Impulse + - - Osc %1 stereo detuning + + Enable/disable string - - cents - sen + + Octave + - - Osc %1 harmonic: + + String - PatchesDialog + lmms::gui::VstEffectControlDialog - - Qsynth: Channel Preset + + Show/hide - - Bank selector - Pemilih bank + + Control VST plugin from LMMS host + - - Bank - Bank + + Open VST plugin preset + - - Program selector - Pemilih program + + Previous (-) + - - Patch - Patch + + Next (+) + - - Name - Nama + + Save preset + - - OK - OK + + + Effect by: + - - Cancel - Batal + + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> + - Sf2Instrument - - - Bank - Bank - - - - Patch - Patch - - - - Gain - Gain - + lmms::gui::WatsynView - - Reverb + + + + + Volume - - Reverb room size + + + + + Panning - - Reverb damping + + + + + Freq. multiplier - - Reverb width + + + + + Left detune - - Reverb level + + + + + + + + + cents - - Chorus + + + + + Right detune - - Chorus voices + + A-B Mix - - Chorus level + + Mix envelope amount - - Chorus speed + + Mix envelope attack - - Chorus depth + + Mix envelope hold - - A soundfont %1 could not be loaded. - Soundfont %1 tidak dapat dimuat. + + Mix envelope decay + - - - Sf2InstrumentView - - - Open SoundFont file - Buka berkas SoundFont + + Crosstalk + - - Choose patch + + Select oscillator A1 - - Gain: - Gain: + + Select oscillator A2 + - - Apply reverb (if supported) - Aktifkan gema (jika didukung) + + Select oscillator B1 + - - Room size: - Ukuran ruangan: + + Select oscillator B2 + - - Damping: + + Mix output of A2 to A1 - - Width: - Lebar: + + Modulate amplitude of A1 by output of A2 + - - - Level: - Tingkat: + + Ring modulate A1 and A2 + - - Apply chorus (if supported) + + Modulate phase of A1 by output of A2 - - Voices: + + Mix output of B2 to B1 - - Speed: - Kecepatan: + + Modulate amplitude of B1 by output of B2 + - - Depth: - Kedalaman: + + Ring modulate B1 and B2 + - - SoundFont Files (*.sf2 *.sf3) + + Modulate phase of B1 by output of B2 - - - SfxrInstrument - - Wave + + + + + Draw your own waveform here by dragging your mouse on this graph. - - - StereoEnhancerControlDialog - - WIDTH + + Load waveform - - Width: - Lebar: + + Load a waveform from a sample file + - - - StereoEnhancerControls - - Width - Lebar + + Phase left + - - - StereoMatrixControlDialog - - Left to Left Vol: - Vol Kiri ke Kiri: + + Shift phase by -15 degrees + - - Left to Right Vol: - Vol Kiri ke Kanan: + + Phase right + - - Right to Left Vol: - Vol Kanan ke Kiri: + + Shift phase by +15 degrees + - - Right to Right Vol: - Vol Kanan ke Kanan: + + + Normalize + - - - StereoMatrixControls - - Left to Left - Kiri ke Kiri + + + Invert + - - Left to Right - Kiri ke Kanan + + + Smooth + - - Right to Left - Kanan ke Kiri + + + Sine wave + - - Right to Right - Kanan ke Kanan + + + + Triangle wave + - - - VestigeInstrument - - Loading plugin - Memuat plugin + + Saw wave + - - Please wait while loading the VST plugin... + + + Square wave - Vibed + lmms::gui::WaveShaperControlDialog - - String %1 volume - Volume string %1 + + INPUT + - - String %1 stiffness + + Input gain: - - Pick %1 position + + OUTPUT - - Pickup %1 position + + Output gain: - - String %1 panning + + + Reset wavegraph - - String %1 detune + + + Smooth wavegraph - - String %1 fuzziness + + + Increase wavegraph amplitude by 1 dB - - String %1 length + + + Decrease wavegraph amplitude by 1 dB - - Impulse %1 - Impuls %1 + + Clip input + - - String %1 + + Clip input signal to 0 dB - VibedView + lmms::gui::XpressiveView - - String volume: + + Draw your own waveform here by dragging your mouse on this graph. - - String stiffness: + + Select oscillator W1 - - Pick position: - Posisi petik: - - - - Pickup position: - Posisi pickup: - - - - String panning: + + Select oscillator W2 - - String detune: + + Select oscillator W3 - - String fuzziness: + + Select output O1 - - String length: + + Select output O2 - - Impulse + + Open help window - - Octave - Oktaf - - - - Impulse Editor - Editor Impuls + + + Sine wave + - - Enable waveform - Aktifkan gelombang grafik + + + Moog-saw wave + - - Enable/disable string + + + Exponential wave - - String - Deretan + + + Saw wave + - - - Sine wave - Gelombang sinus + + + User-defined wave + - - + + Triangle wave - Gelombang segitiga - - - - - Saw wave - Gelombang gergaji + - - + + Square wave - Gelombang kotak + - - + + White noise - Kebisingan putih - - - - - User-defined wave - - - Smooth waveform - Gelombang halus + + WaveInterpolate + - - - Normalize waveform + + ExpressionValid - - - VoiceObject - - Voice %1 pulse width - Lebar nadi Suara %1 + + General purpose 1: + - - Voice %1 attack - Serangan suara %1 + + General purpose 2: + - - Voice %1 decay - Kerusakan suara %1 + + General purpose 3: + - - Voice %1 sustain - Penopang suara %1 + + O1 panning: + - - Voice %1 release - Pelepasan suara %1 + + O2 panning: + - - Voice %1 coarse detuning - Detuning kasar suara %1 + + Release transition: + - - Voice %1 wave shape - Bentuk gelombang suara %1 + + Smoothness + + + + lmms::gui::ZynAddSubFxView - - Voice %1 sync - Sinkron suara %1 + + Portamento: + - - Voice %1 ring modulate - Modulasi nada suara %1 + + PORT + - - Voice %1 filtered - Suara %1 difilter + + Filter frequency: + - - Voice %1 test - Tes suara %1 + + FREQ + - - - WaveShaperControlDialog - - INPUT - MASUKAN + + Filter resonance: + - - Input gain: - Gain masukan: + + RES + - - OUTPUT - KELUARAN + + Bandwidth: + - - Output gain: - Gait keluaran: + + BW + - - - Reset wavegraph + + FM gain: - - - Smooth wavegraph + + FM GAIN - - - Increase wavegraph amplitude by 1 dB + + Resonance center frequency: - - - Decrease wavegraph amplitude by 1 dB + + RES CF - - Clip input - Klip masukan + + Resonance bandwidth: + - - Clip input signal to 0 dB + + RES BW - - - WaveShaperControls - - Input gain - Gain masukan + + Forward MIDI control changes + - - Output gain - Gain keluaran + + Show GUI + - + \ No newline at end of file diff --git a/data/locale/it.ts b/data/locale/it.ts index d5a68e6e7c3..db7f5c7bc3d 100644 --- a/data/locale/it.ts +++ b/data/locale/it.ts @@ -1,4 +1,4 @@ - + AboutDialog @@ -69,954 +69,187 @@ If you're interested in translating LMMS in another language or want to imp - AmplifierControlDialog + AboutJuceDialog - - VOL - VOL - - - - Volume: - Volume: - - - - PAN - PAN - - - - Panning: - Panoramica: - - - - LEFT - SX - - - - Left gain: - Guadagno a sinistra: - - - - RIGHT - DX - - - - Right gain: - Guadagno a destra: - - - - AmplifierControls - - - Volume - Volume - - - - Panning - Panoramica - - - - Left gain - Guadagno a sinistra - - - - Right gain - Guadagno a destra - - - - AudioAlsaSetupWidget - - - DEVICE - PERIFERICA - - - - CHANNELS - CANALI - - - - AudioFileProcessorView - - - Open sample - Apri campione - - - - Reverse sample - Inverti campione - - - - Disable loop - Disabilità ripetizione ciclica - - - - Enable loop - Abilita ripetizione ciclica - - - - Enable ping-pong loop - Abilita ripetizione ciclica ping-pong - - - - Continue sample playback across notes - Continua riproduzione campione attraverso le note - - - - Amplify: - Amplifica: - - - - Start point: - Punto iniziale: - - - - End point: - Punto finale: - - - - Loopback point: - Punto di ripresa: - - - - AudioFileProcessorWaveView - - - Sample length: - Lunghezza campione: - - - - AudioJack - - - JACK client restarted - Client JACK riavviato - - - - LMMS was kicked by JACK for some reason. Therefore the JACK backend of LMMS has been restarted. You will have to make manual connections again. - LMMS è stato respinto da JACK per qualche motivo. Pertanto il backend JACK di LMMS è stato riavviato. Sarà necessario effettuare nuovamente le connessioni manuali. - - - - JACK server down - Server JACK fuori uso - - - - The JACK server seems to have been shutdown and starting a new instance failed. Therefore LMMS is unable to proceed. You should save your project and restart JACK and LMMS. - Sembra che il server JACK sia stato arrestato e l'avvio di una nuova istanza non è riuscito. Pertanto LMMS non è in grado di procedere. È necessario salvare il progetto e riavviare JACK e LMMS. - - - - Client name - Nome Client - - - - Channels - Canali - - - - AudioOss - - - Device - Dispositivo - - - - Channels - Canali - - - - AudioPortAudio::setupWidget - - - Backend - Backend + + About JUCE + Informazioni su JUCE - - Device - Dispositivo + + <b>About JUCE</b> + <b>Informazioni su JUCE</b> - - - AudioPulseAudio - - Device - Dispositivo + + This program uses JUCE version 3.x.x. + Questo programma utilizza JUCE versione 3.x.x. - - Channels - Canali + + JUCE is an open-source cross-platform C++ application framework for creating high quality desktop and mobile applications. + +The core JUCE modules (juce_audio_basics, juce_audio_devices, juce_core and juce_events) are permissively licensed under the terms of the ISC license. +Other modules are covered by a GNU GPL 3.0 license. + +Copyright (C) 2022 Raw Material Software Limited. + - - - AudioSdl::setupWidget - - Device - Dispositivo + + This program uses JUCE version + Questo programma utilizza una versione di JUCE - AudioSndio - - - Device - Dispositivo - + AudioDeviceSetupWidget - - Channels - Canali + + [System Default] + [Sistema predefinito] - AudioSoundIo::setupWidget + CarlaAboutW - - Backend - Backend + + About Carla + Informazioni su Carla - - Device - Dispositivo + + About + Informazioni su - - - AutomatableModel - - &Reset (%1%2) - &Reimposta (%1%2) + + About text here + Informazioni sul testo qui - - &Copy value (%1%2) - &Copia valore (%1%2) + + Extended licensing here + Licenza estesa qui - - &Paste value (%1%2) - &Incolla valore (%1%2) + + Artwork + Materiale grafico - - &Paste value - &Incolla valore + + Using KDE Oxygen icon set, designed by Oxygen Team. + Uso del set di icone di KDE Oxygen, progettato da Oxygen Team. - - Edit song-global automation - Modifica automazione globale della canzone + + Contains some knobs, backgrounds and other small artwork from Calf Studio Gear, OpenAV and OpenOctave projects. + Contiene alcune manopole, sfondi e altri piccoli disegni dei progetti Calf Studio Gear, OpenAV e OpenOctave. - - Remove song-global automation - Rimuovi automazione globale della canzone + + VST is a trademark of Steinberg Media Technologies GmbH. + VST è un marchio registrato di Steinberg Media Technologies GmbH. - - Remove all linked controls - Rimuovi tutti i controlli collegati + + Special thanks to António Saraiva for a few extra icons and artwork! + Un ringraziamento speciale ad Antonio Saraiva per qualche icona e lavori grafici in più! - - Connected to %1 - Connesso a %1 + + The LV2 logo has been designed by Thorsten Wilms, based on a concept from Peter Shorthose. + Il logo LV2 è stato disegnato da Thorsten Wilms, basato su un concetto di Peter Shorthose. - - Connected to controller - Connesso al controller + + MIDI Keyboard designed by Thorsten Wilms. + Tastiera MIDI disegnata da Thorsten Wilms. - - Edit connection... - Modifica connessione... + + Carla, Carla-Control and Patchbay icons designed by DoosC. + Icone Carla, Carla-Control e Patchbay disegnate da DoosC. - - Remove connection - Rimuovi connessione + + Features + Caratteristiche - - Connect to controller... - Connetti al controller... + + AU/AudioUnit: + AU/AudioUnit: - - - AutomationEditor - - Edit Value - + + LADSPA: + LADSPA: - - New outValue - + + + + + + + + + TextLabel + TextLabel - - New inValue - + + VST2: + VST2: - - Please open an automation clip with the context menu of a control! - È necessario aprire uno schema di automazione con il menu contestuale di un controllo! + + DSSI: + DSSI: - - - AutomationEditorWindow - - Play/pause current clip (Space) - Riproduce/sospende lo schema corrente (Spazio) + + LV2: + LV2: - - Stop playing of current clip (Space) - Arresta la riproduzione dello schema corrente (Spazio) + + VST3: + VST3: - - Edit actions - Modifica attività + + OSC + OSC - - Draw mode (Shift+D) - Modalità disegno (Shift+D) + + Host URLs: + URLs host: - - Erase mode (Shift+E) - Modalità cancellazione (Shift+E) + + Valid commands: + Comandi validi: - - Draw outValues mode (Shift+C) - + + valid osc commands here + comandi osc validi qui - - Flip vertically - Capovolgi verticalmente + + Example: + Esempio: - - Flip horizontally - Capovolgi orizzontalmente + + License + Licenza - - Interpolation controls - Controlli interpolazione - - - - Discrete progression - Progressione discontinua - - - - Linear progression - Progressione lineare - - - - Cubic Hermite progression - Progressione cubica di Hermite - - - - Tension value for spline - Valore tensione delle curve - - - - Tension: - Tensione: - - - - Zoom controls - Opzioni ingrandimento - - - - Horizontal zooming - Ingrandimento orizzontale - - - - Vertical zooming - Ingrandimento verticale - - - - Quantization controls - Controlli quantizzazione - - - - Quantization - Quantizzazione - - - - - Automation Editor - no clip - Editor automazione - nessuno schema - - - - - Automation Editor - %1 - Editor automazione - %1 - - - - Model is already connected to this clip. - Modello già collegato a questo schema. - - - - AutomationClip - - - Drag a control while pressing <%1> - Trascina un controllo tenendo premuto <%1> - - - - AutomationClipView - - - Open in Automation editor - Apri nell'editor Automazione - - - - Clear - Libera area - - - - Reset name - Reimposta nome - - - - Change name - Rinomina - - - - Set/clear record - Imposta/cancella registrazione - - - - Flip Vertically (Visible) - Capovolgi verticalmente (visibile) - - - - Flip Horizontally (Visible) - Capovolgi orizzontalmente (visibile) - - - - %1 Connections - %1 connessioni - - - - Disconnect "%1" - Disconnetti "%1" - - - - Model is already connected to this clip. - Modello già collegato a questo schema. - - - - AutomationTrack - - - Automation track - Traccia automazione - - - - PatternEditor - - - Beat+Bassline Editor - Editor Beat+Bassline - - - - Play/pause current beat/bassline (Space) - Riproduce/sospende il beat/bassline corrente (Spazio) - - - - Stop playback of current beat/bassline (Space) - Arresta il beat/bassline corrente (Spazio) - - - - Beat selector - Selettore Beat - - - - Track and step actions - Attività tracce e passaggi - - - - Add beat/bassline - Aggiungi beat/bassline - - - - Clone beat/bassline clip - - - - - Add sample-track - Aggiungi traccia campione - - - - Add automation-track - Aggiungi una traccia automazione - - - - Remove steps - Rimuovi passaggi - - - - Add steps - Aggiungi passaggi - - - - Clone Steps - Clona passaggi - - - - PatternClipView - - - Open in Beat+Bassline-Editor - Apri nell'editor Beat+Bassline - - - - Reset name - Reimposta nome - - - - Change name - Rinomina - - - - PatternTrack - - - Beat/Bassline %1 - Beat/Bassline %1 - - - - Clone of %1 - Clone di %1 - - - - BassBoosterControlDialog - - - FREQ - FREQ - - - - Frequency: - Frequenza: - - - - GAIN - GUAD - - - - Gain: - Guadagno: - - - - RATIO - RAPP - - - - Ratio: - Rapporto: - - - - BassBoosterControls - - - Frequency - Frequenza - - - - Gain - Guadagno - - - - Ratio - Rapporto dinamico - - - - BitcrushControlDialog - - - IN - IN - - - - OUT - OUT - - - - - GAIN - GUAD - - - - Input gain: - Guadagno in ingresso: - - - - NOISE - RUMORE - - - - Input noise: - Rumore in ingresso: - - - - Output gain: - Guadagno in uscita: - - - - CLIP - CLIP - - - - Output clip: - Clip in uscita:: - - - - Rate enabled - Valore abilitato - - - - Enable sample-rate crushing - Abilità riduzione frequenza di campionamento - - - - Depth enabled - Risoluzione abilitata - - - - Enable bit-depth crushing - Abilità riduzione bit di quantizzazione - - - - FREQ - FREQ - - - - Sample rate: - Frequenza di campionamento: - - - - STEREO - STEREO - - - - Stereo difference: - Differenza stereo: - - - - QUANT - QUANT - - - - Levels: - Livelli di quantizzazione: - - - - BitcrushControls - - - Input gain - Guadagno in ingresso - - - - Input noise - Rumore in ingresso - - - - Output gain - Guadagno in uscita - - - - Output clip - Clip in uscita - - - - Sample rate - Frequenza di campionamento - - - - Stereo difference - Differenza stereo - - - - Levels - Livelli - - - - Rate enabled - Valore abilitato - - - - Depth enabled - Risoluzione abilitata - - - - CarlaAboutW - - - About Carla - Informazioni su Carla - - - - About - Informazioni su - - - - About text here - Informazioni sul testo qui - - - - Extended licensing here - Licenza estesa qui - - - - Artwork - Materiale grafico - - - - Using KDE Oxygen icon set, designed by Oxygen Team. - Uso del set di icone di KDE Oxygen, progettato da Oxygen Team. - - - - Contains some knobs, backgrounds and other small artwork from Calf Studio Gear, OpenAV and OpenOctave projects. - Contiene alcune manopole, sfondi e altri piccoli disegni dei progetti Calf Studio Gear, OpenAV e OpenOctave. - - - - VST is a trademark of Steinberg Media Technologies GmbH. - VST è un marchio registrato di Steinberg Media Technologies GmbH. - - - - Special thanks to António Saraiva for a few extra icons and artwork! - Un ringraziamento speciale ad Antonio Saraiva per qualche icona e lavori grafici in più! - - - - The LV2 logo has been designed by Thorsten Wilms, based on a concept from Peter Shorthose. - Il logo LV2 è stato disegnato da Thorsten Wilms, basato su un concetto di Peter Shorthose. - - - - MIDI Keyboard designed by Thorsten Wilms. - Tastiera MIDI disegnata da Thorsten Wilms. - - - - Carla, Carla-Control and Patchbay icons designed by DoosC. - Icone Carla, Carla-Control e Patchbay disegnate da DoosC. - - - - Features - Caratteristiche - - - - AU/AudioUnit: - AU/AudioUnit: - - - - LADSPA: - LADSPA: - - - - - - - - - - - TextLabel - TextLabel - - - - VST2: - VST2: - - - - DSSI: - DSSI: - - - - LV2: - LV2: - - - - VST3: - VST3: - - - - OSC - OSC - - - - Host URLs: - URLs host: - - - - Valid commands: - Comandi validi: - - - - valid osc commands here - comandi osc validi qui - - - - Example: - Esempio: - - - - License - Licenza - - - + GNU GENERAL PUBLIC LICENSE Version 2, June 1991 @@ -1301,15051 +534,18227 @@ POSSIBILITY OF SUCH DAMAGES. - - OSC Bridge Version - Versione ponte OSC + + OSC Bridge Version + Versione ponte OSC + + + + Plugin Version + Versione plugin + + + + <br>Version %1<br>Carla is a fully-featured audio plugin host%2.<br><br>Copyright (C) 2011-2019 falkTX<br> + <br>Versione %1<br>Carla è un plugin audio host completo%2.<br><br>Copyright (C) 2011-2019 falkTX<br> + + + + + (Engine not running) + (Motore non in funzione) + + + + Everything! (Including LRDF) + Tutto! (Incluso LRDF) + + + + Everything! (Including CustomData/Chunks) + Tutto! (Compresi dati personalizzati/blocchi) + + + + About 110&#37; complete (using custom extensions)<br/>Implemented Feature/Extensions:<ul><li>http://lv2plug.in/ns/ext/atom</li><li>http://lv2plug.in/ns/ext/buf-size</li><li>http://lv2plug.in/ns/ext/data-access</li><li>http://lv2plug.in/ns/ext/event</li><li>http://lv2plug.in/ns/ext/instance-access</li><li>http://lv2plug.in/ns/ext/log</li><li>http://lv2plug.in/ns/ext/midi</li><li>http://lv2plug.in/ns/ext/options</li><li>http://lv2plug.in/ns/ext/parameters</li><li>http://lv2plug.in/ns/ext/port-props</li><li>http://lv2plug.in/ns/ext/presets</li><li>http://lv2plug.in/ns/ext/resize-port</li><li>http://lv2plug.in/ns/ext/state</li><li>http://lv2plug.in/ns/ext/time</li><li>http://lv2plug.in/ns/ext/uri-map</li><li>http://lv2plug.in/ns/ext/urid</li><li>http://lv2plug.in/ns/ext/worker</li><li>http://lv2plug.in/ns/extensions/ui</li><li>http://lv2plug.in/ns/extensions/units</li><li>http://home.gna.org/lv2dynparam/rtmempool/v1</li><li>http://kxstudio.sf.net/ns/lv2ext/external-ui</li><li>http://kxstudio.sf.net/ns/lv2ext/programs</li><li>http://kxstudio.sf.net/ns/lv2ext/props</li><li>http://kxstudio.sf.net/ns/lv2ext/rtmempool</li><li>http://ll-plugins.nongnu.org/lv2/ext/midimap</li><li>http://ll-plugins.nongnu.org/lv2/ext/miditype</li></ul> + Circa 110&#37; completo (usando estensioni personalizzate)<br/>Funzionalità/estensioni implementate:<ul><li>http://lv2plug.in/ns/ext/atom</li><li>http://lv2plug.in/ns/ext/buf-size</li><li>http://lv2plug.in/ns/ext/data-access</li><li>http://lv2plug.in/ns/ext/event</li><li>http://lv2plug.in/ns/ext/instance-access</li><li>http://lv2plug.in/ns/ext/log</li><li>http://lv2plug.in/ns/ext/midi</li><li>http://lv2plug.in/ns/ext/options</li><li>http://lv2plug.in/ns/ext/parameters</li><li>http://lv2plug.in/ns/ext/port-props</li><li>http://lv2plug.in/ns/ext/presets</li><li>http://lv2plug.in/ns/ext/resize-port</li><li>http://lv2plug.in/ns/ext/state</li><li>http://lv2plug.in/ns/ext/time</li><li>http://lv2plug.in/ns/ext/uri-map</li><li>http://lv2plug.in/ns/ext/urid</li><li>http://lv2plug.in/ns/ext/worker</li><li>http://lv2plug.in/ns/extensions/ui</li><li>http://lv2plug.in/ns/extensions/units</li><li>http://home.gna.org/lv2dynparam/rtmempool/v1</li><li>http://kxstudio.sf.net/ns/lv2ext/external-ui</li><li>http://kxstudio.sf.net/ns/lv2ext/programs</li><li>http://kxstudio.sf.net/ns/lv2ext/props</li><li>http://kxstudio.sf.net/ns/lv2ext/rtmempool</li><li>http://ll-plugins.nongnu.org/lv2/ext/midimap</li><li>http://ll-plugins.nongnu.org/lv2/ext/miditype</li></ul> + + + + + + + Using Juce host + Tramite l'host Juce + + + + About 85% complete (missing vst bank/presets and some minor stuff) + Completo a circa 85% (banco vst mancante/preselezioni e alcune cose minori) + + + + CarlaHostW + + + MainWindow + MainWindow + + + + Rack + Rack + + + + Patchbay + Patchbay + + + + Logs + Rapporti + + + + Loading... + Caricamento... + + + + Save + Salva + + + + Clear + Rimuovi + + + + Ctrl+L + Ctrl+L + + + + Auto-Scroll + Scorrimento automatico + + + + Buffer Size: + Dimensione buffer: + + + + Sample Rate: + Frequenza campionamento: + + + + ? Xruns + ? Xruns + + + + DSP Load: %p% + Carico DSP: %p% + + + + &File + &File + + + + &Engine + &Motore + + + + &Plugin + &Plugin + + + + Macros (all plugins) + Macro (tutti i plugin) + + + + &Canvas + &Canvas + + + + Zoom + Ingrandimento + + + + &Settings + &Impostazioni + + + + &Help + &Aiuto + + + + Tool Bar + Barra degli strumenti + + + + Disk + Disco + + + + + Home + Principale + + + + Transport + Trasporto + + + + Playback Controls + Controlli riproduzione + + + + Time Information + Informazioni tempo + + + + Frame: + Periodo + + + + 000'000'000 + 000'000'000 + + + + Time: + Tempo: + + + + 00:00:00 + 00:00:00 + + + + BBT: + BBT: + + + + 000|00|0000 + 000|00|0000 + + + + Settings + Impostazioni + + + + BPM + BPM + + + + Use JACK Transport + Usa trasporto JACK + + + + Use Ableton Link + Usa collegamento Ableton + + + + &New + &Nuovo + + + + Ctrl+N + Ctrl+N + + + + &Open... + &Apri... + + + + + Open... + Apri... + + + + Ctrl+O + Ctrl+O + + + + &Save + &Salva + + + + Ctrl+S + Ctrl+S + + + + Save &As... + Salva &come... + + + + + Save As... + Salva come... + + + + Ctrl+Shift+S + Ctrl+Shift+S + + + + &Quit + &Esci + + + + Ctrl+Q + Ctrl+Q + + + + &Start + &Partenza + + + + F5 + F5 + + + + St&op + Arrest&a + + + + F6 + F6 + + + + &Add Plugin... + &Aggiungi plug-in... + + + + Ctrl+A + Ctrl+A + + + + &Remove All + &Rimuovi tutto + + + + Enable + Abilita + + + + Disable + Disabilita + + + + 0% Wet (Bypass) + 0% bagnato (bypass) + + + + 100% Wet + 100% bagnato + + + + 0% Volume (Mute) + 0% Volume (silenziato) + + + + 100% Volume + 100% Volume + + + + Center Balance + Bilanciamento al centro + + + + &Play + &Riproduci + + + + Ctrl+Shift+P + Ctrl+Shift+P + + + + &Stop + &Arresta + + + + Ctrl+Shift+X + Ctrl+Shift+X + + + + &Backwards + &Indietro + + + + Ctrl+Shift+B + Ctrl+Shift+B + + + + &Forwards + &Avanti + + + + Ctrl+Shift+F + Ctrl+Shift+F + + + + &Arrange + &Organizza + + + + Ctrl+G + Ctrl+G + + + + + &Refresh + &Aggiorna + + + + Ctrl+R + Ctrl+R + + + + Save &Image... + Salva &immagine... + + + + Auto-Fit + Adatta-automatico + + + + Zoom In + Ingrandisci + + + + Ctrl++ + Ctrl++ + + + + Zoom Out + Riduci + + + + Ctrl+- + Ctrl+- + + + + Zoom 100% + Ingrandimento 100% + + + + Ctrl+1 + Ctrl+1 + + + + Show &Toolbar + Mostra &barra strumenti + + + + &Configure Carla + &Configura Carla + + + + &About + &A riguardo + + + + About &JUCE + Riguardo a &JUCE + + + + About &Qt + Riguardo a &Qt + + + + Show Canvas &Meters + Mostra Canvas &Misuratori + + + + Show Canvas &Keyboard + Mostra Canvas &Tastiera + + + + Show Internal + Mostra interno + + + + Show External + Mostra esterno + + + + Show Time Panel + Mostra pannello temporale + + + + Show &Side Panel + Mostra &pannello laterale + + + + Ctrl+P + Ctrl+P + + + + &Connect... + &Connetti... + + + + Compact Slots + Comprimi alloggiamenti + + + + Expand Slots + Espandi alloggiamenti + + + + Perform secret 1 + Esegui segreto 1 + + + + Perform secret 2 + Esegui segreto 2 + + + + Perform secret 3 + Esegui segreto 3 + + + + Perform secret 4 + Esegui segreto 4 + + + + Perform secret 5 + Esegui segreto 5 + + + + Add &JACK Application... + Aggiungi applicazione &JACK... + + + + &Configure driver... + &Configura driver... + + + + Panic + Panico + + + + Open custom driver panel... + Apri pannello driver personalizzato... + + + + Save Image... (2x zoom) + Salva immagine... (2x zoom) + + + + Save Image... (4x zoom) + Salva immagine... (4x zoom) + + + + Copy as Image to Clipboard + Copia come immagine su Appunti + + + + Ctrl+Shift+C + Ctrl+Shift+C + + + + CarlaHostWindow + + + Export as... + Esporta come... + + + + + + + Error + Errore + + + + Failed to load project + Impossibile caricare il progetto + + + + Failed to save project + Impossibile salvare il progetto + + + + Quit + Esci + + + + Are you sure you want to quit Carla? + Sei sicuro di voler uscire da Carla? + + + + Could not connect to Audio backend '%1', possible reasons: +%2 + Impossibile connettersi al back-end Audio '%1', possibili motivi: +2% + + + + Could not connect to Audio backend '%1' + Impossibile connettersi al backend audio '%1' + + + + Warning + Avviso + + + + There are still some plugins loaded, you need to remove them to stop the engine. +Do you want to do this now? + Ci sono ancora alcuni plugin caricati, è necessario rimuoverli per arrestare il motore. +Vuoi farlo adesso? + + + + CarlaSettingsW + + + Settings + Impostazioni + + + + main + principale + + + + canvas + canvas + + + + engine + motore + + + + osc + osc + + + + file-paths + Percorsi dei file + + + + plugin-paths + Percorsi plugin + + + + wine + wine + + + + experimental + Sperimentale + + + + Widget + Widget + + + + + Main + Principale + + + + + Canvas + Canvas + + + + + Engine + Motore + + + + File Paths + Percorsi dei file + + + + Plugin Paths + Percorsi plugins + + + + Wine + Wine + + + + + Experimental + Sperimentale + + + + <b>Main</b> + <b>Principale</b> + + + + Paths + Percorsi + + + + Default project folder: + Cartella progetto predefinita: + + + + Interface + Interfaccia + + + + Use "Classic" as default rack skin + + + + + Interface refresh interval: + Intervallo di aggiornamento interfaccia: + + + + + ms + ms + + + + Show console output in Logs tab (needs engine restart) + Mostra l'uscita della console nella scheda Log (necessita di riavvio del motore) + + + + Show a confirmation dialog before quitting + Visualizza messaggio di conferma prima di uscire + + + + + Theme + Tema + + + + Use Carla "PRO" theme (needs restart) + Usa il tema "PRO" di Carla (necessita di riavvio) + + + + Color scheme: + Combinazione colori: + + + + Black + Nero + + + + System + Sistema + + + + Enable experimental features + Abilita funzionalità sperimentali + + + + <b>Canvas</b> + <b>Canvas</b> + + + + Bezier Lines + Linee di Bezier + + + + Theme: + Tema: + + + + Size: + Grandezza: + + + + 775x600 + 775x600 + + + + 1550x1200 + 1550x1200 + + + + 3100x2400 + 3100x2400 + + + + 4650x3600 + 4650x3600 + + + + 6200x4800 + 6200x4800 + + + + 12400x9600 + 12400x9600 + + + + Options + Opzioni + + + + Auto-hide groups with no ports + Nascondi automaticamente i gruppi senza porte + + + + Auto-select items on hover + Selezione automatica elementi al passaggio del mouse + + + + Basic eye-candy (group shadows) + Attraente-base (ombre di gruppo) + + + + Render Hints + Suggerimenti rendering + + + + Anti-Aliasing + Anti-Aliasing + + + + Full canvas repaints (slower, but prevents drawing issues) + + + + + <b>Engine</b> + <b>Motore</b> + + + + + Core + Nucleo + + + + Single Client + Client singolo + + + + Multiple Clients + Clients multipli + + + + + Continuous Rack + Rack continuo + + + + + Patchbay + Patchbay + + + + Audio driver: + Driver audio: + + + + Process mode: + Modalità processo: + + + + + + + Maximum number of parameters to allow in the built-in 'Edit' dialog + Numero massimo di parametri da consentire nella finestra di dialogo integrata "Modifica" + + + + Max Parameters: + Parametri massimi: + + + + ... + ... + + + + Reset Xrun counter after project load + Ripristina contatore Xrun dopo il caricamento del progetto + + + + Plugin UIs + UIs plugin + + + + + How much time to wait for OSC GUIs to ping back the host + Tempo di attesa che le GUI OSC eseguano il ping dell'host + + + + UI Bridge Timeout: + Sospensione bridge UI: + + + + Use OSC-GUI bridges when possible, this way separating the UI from DSP code + Usare i bridge OSC-GUI quando possibile, questo modo separa l'interfaccia utente dal codice DSP + + + + Use UI bridges instead of direct handling when possible + Utilizzare le UI bridge anziché la gestione diretta, quando possibile + + + + Make plugin UIs always-on-top + Rendi le UIs dei plugin sempre in primo piano + + + + Make plugin UIs appear on top of Carla (needs restart) + Fai comparire le UIs del plugin sopra Carla (necessita di riavvio) + + + + NOTE: Plugin-bridge UIs cannot be managed by Carla on macOS + NOTA: le UI del plugin-bridge non possono essere gestite da Carla su macOS + + + + + Restart the engine to load the new settings + Riavvia il motore per caricare le nuove impostazioni + + + + <b>OSC</b> + <b>OSC</b> + + + + Enable OSC + Abilita OSC + + + + Enable TCP port + Abilita porta TCP + + + + + Use specific port: + Usa porta specifica: + + + + Overridden by CARLA_OSC_TCP_PORT env var + Sostituito da CARLA_OSC_TCP_PORT env var + + + + + Use randomly assigned port + Usa porta assegnata in modo casuale + + + + Enable UDP port + Abilita porta UDP + + + + Overridden by CARLA_OSC_UDP_PORT env var + Sostituito da CARLA_OSC_UDP_PORT env var + + + + DSSI UIs require OSC UDP port enabled + Le UI DSSI richiedono la porta UDP OSC abilitata + + + + <b>File Paths</b> + <b>Percorsi file</b> + + + + Audio + Audio + + + + MIDI + MIDI + + + + Used for the "audiofile" plugin + Utilizzato per il plugin "fileaudio" + + + + Used for the "midifile" plugin + Utilizzato per il plugin "midifile" + + + + + Add... + Aggiungi... + + + + + Remove + Rimuovi + + + + + Change... + Cambia... + + + + <b>Plugin Paths</b> + <b>Percorsi plugin</b> + + + + LADSPA + LADSPA + + + + DSSI + DSSI + + + + LV2 + LV2 + + + + VST2 + VST2 + + + + VST3 + VST3 + + + + SF2/3 + SF2/3 + + + + SFZ + SFZ + + + + JSFX + JSFX + + + + CLAP + CLAP + + + + Restart Carla to find new plugins + Riavvia Carla per trovare nuovi plugin + + + + <b>Wine</b> + <b>Wine</b> + + + + Executable + Eseguibile + + + + Path to 'wine' binary: + Percorso per binario 'wine': + + + + Prefix + Prefisso + + + + Auto-detect Wine prefix based on plugin filename + Rilevamento automatico del prefisso Wine in base al nome del file del plug-in + + + + Fallback: + Alternativa: + + + + Note: WINEPREFIX env var is preferred over this fallback + Nota: WINEPREFIX env var è preferito rispetto a questa alternativa + + + + Realtime Priority + Priorità in tempo reale + + + + Base priority: + Priorità di base: + + + + WineServer priority: + Priorità WineServer: + + + + These options are not available for Carla as plugin + Queste opzioni non sono disponibili per Carla come plugin + + + + <b>Experimental</b> + <b>Sperimentale</b> + + + + Experimental options! Likely to be unstable! + Opzioni sperimentali! Probabilmente instabile! + + + + Enable plugin bridges + Abilita i bridges plugin + + + + Enable Wine bridges + Abilita i bridges Wine + + + + Enable jack applications + Abilita applicazioni jack + + + + Export single plugins to LV2 + Esporta plugins singoli in LV2 + + + + Use system/desktop-theme icons (needs restart) + + + + + Load Carla backend in global namespace (NOT RECOMMENDED) + Carica il backend di Carla nello spazio globale dei nomi (NON CONSIGLIATO) + + + + Fancy eye-candy (fade-in/out groups, glow connections) + Attraente (gruppi di dissolvenza in apertura/chiusura, connessioni luminose) + + + + Use OpenGL for rendering (needs restart) + Usa OpenGL per il rendering (necessita di riavvio) + + + + High Quality Anti-Aliasing (OpenGL only) + Antialiasing di alta qualità (solo OpenGL) + + + + Render Ardour-style "Inline Displays" + Renderizza in stile-Ardour : "Visualizza in linea" + + + + Force mono plugins as stereo by running 2 instances at the same time. +This mode is not available for VST plugins. + Forza i plugins mono come stereo eseguendo 2 istanze contemporaneamente. +Questa modalità non è disponibile per i plugins VST. + + + + Force mono plugins as stereo + Forza i plugins mono come stereo + + + + When enabled, Carla will try to prevent plugins from doing things that might mess up the audio or cause xruns, such as fork(), gtk_init() and similar. + + + + + Prevent unsafe calls from plugins (needs restart) + Evita chiamate non sicure dai plugin (richiede il riavvio) + + + + Run plugins in a separate process, so if they crash it does not affect Carla. +Plugins get automatically deactivated in such cases. +Reactvate them to start the process again, with the last saved state applied to it. + + + + + Run plugins in bridge mode when possible + Esegui i plugin in modalità bridge quando possibile + + + + + + + Add Path + Aggiungi percorso + + + + Dialog + + + Carla Control - Connect + Carla Control - Connetti + + + + Remote setup + Configurazione remota + + + + UDP Port: + Porta UDP: + + + + Remote host: + Host remoto: + + + + TCP Port: + Porta TCP: + + + + Set value + Imposta valore + + + + TextLabel + TextLabel + + + + Scale Points + Punti di scala + + + + DriverSettingsW + + + Driver Settings + Impostazioni driver + + + + Device: + Dispositivo: + + + + Buffer size: + Dimensione buffer: + + + + Sample rate: + Frequenza di campionamento: + + + + Triple buffer + Buffer triplo + + + + Show Driver Control Panel + Mostra pannello di controllo driver + + + + Restart the engine to load the new settings + Riavvia il motore per caricare le nuove impostazioni + + + + ExportProjectDialog + + + Export project + Esporta il progetto + + + + Export as loop (remove extra bar) + Esporta come loop (rimuove la battuta extra) + + + + Export between loop markers + Esporta solo tra i punti di loop + + + + Render Looped Section: + Rendering sezione ciclica: + + + + time(s) + + + + + File format settings + Impostazioni formato file + + + + File format: + Formato file: + + + + Sampling rate: + Frequenza di campionamento: + + + + 44100 Hz + 44100 Hz + + + + 48000 Hz + 48000 Hz + + + + 88200 Hz + 88200 Hz + + + + 96000 Hz + 96000 Hz + + + + 192000 Hz + 192000 Hz + + + + Bit depth: + Risoluzione Bit: + + + + 16 Bit integer + Interi 16 Bit + + + + 24 Bit integer + Interi 24 Bit + + + + 32 Bit float + Virgola mobile 32 Bit + + + + Stereo mode: + Modalità Stereofonia: + + + + Mono + Monofonico + + + + Stereo + Stereofonico + + + + Joint stereo + Stereofonia compressa (Joint stereo) + + + + Compression level: + Livello compressione: + + + + Bitrate: + Bitrate: + + + + 64 KBit/s + 64 KBit/s + + + + 128 KBit/s + 128 KBit/s + + + + 160 KBit/s + 160 KBit/s + + + + 192 KBit/s + 192 KBit/s + + + + 256 KBit/s + 256 KBit/s + + + + 320 KBit/s + 320 KBit/s + + + + Use variable bitrate + Usa bitrate variabile + + + + Quality settings + Impostazioni qualità + + + + Interpolation: + Interpolazione: + + + + Zero order hold + Basilare (Zero-order hold) + + + + Sinc worst (fastest) + Sinc peggiore (veloce) + + + + Sinc medium (recommended) + Sinc medio (suggerito) + + + + Sinc best (slowest) + Sinc migliore (lento) + + + + Start + Inizia + + + + Cancel + Annulla + + + + InstrumentFunctionNoteStacking + + + octave + ottava + + + + + Major + Maggiore + + + + Majb5 + Majb5 + + + + minor + minore + + + + minb5 + minb5 + + + + sus2 + sus2 + + + + sus4 + sus4 + + + + aug + aug + + + + augsus4 + augsus4 + + + + tri + triade + + + + 6 + 6 + + + + 6sus4 + 6sus4 + + + + 6add9 + 6add9 + + + + m6 + m6 + + + + m6add9 + m6add9 + + + + 7 + 7 + + + + 7sus4 + 7sus4 + + + + 7#5 + 7#5 + + + + 7b5 + 7b5 + + + + 7#9 + 7#9 + + + + 7b9 + 7b9 + + + + 7#5#9 + 7#5#9 + + + + 7#5b9 + 7#5b9 + + + + 7b5b9 + 7b5b9 + + + + 7add11 + 7add11 + + + + 7add13 + 7add13 + + + + 7#11 + 7#11 + + + + Maj7 + Maj7 + + + + Maj7b5 + Maj7b5 + + + + Maj7#5 + Maj7#5 + + + + Maj7#11 + Maj7#11 + + + + Maj7add13 + Maj7add13 + + + + m7 + m7 + + + + m7b5 + m7b5 + + + + m7b9 + m7b9 + + + + m7add11 + m7add11 + + + + m7add13 + m7add13 + + + + m-Maj7 + m-Maj7 + + + + m-Maj7add11 + m-Maj7add11 + + + + m-Maj7add13 + m-Maj7add13 + + + + 9 + 9 + + + + 9sus4 + 9sus4 + + + + add9 + add9 + + + + 9#5 + 9#5 + + + + 9b5 + 9b5 + + + + 9#11 + 9#11 + + + + 9b13 + 9b13 + + + + Maj9 + Maj9 + + + + Maj9sus4 + Maj9sus4 + + + + Maj9#5 + Maj9#5 + + + + Maj9#11 + Maj9#11 + + + + m9 + m9 + + + + madd9 + madd9 + + + + m9b5 + m9b5 + + + + m9-Maj7 + m9-Maj7 + + + + 11 + 11 + + + + 11b9 + 11b9 + + + + Maj11 + Maj11 + + + + m11 + m11 + + + + m-Maj11 + m-Maj11 + + + + 13 + 13 + + + + 13#9 + 13#9 + + + + 13b9 + 13b9 + + + + 13b5b9 + 13b5b9 + + + + Maj13 + Maj13 + + + + m13 + m13 + + + + m-Maj13 + m-Maj13 + + + + Harmonic minor + Minore armonica + + + + Melodic minor + Minore melodica + + + + Whole tone + Toni interi + + + + Diminished + Diminuita + + + + Major pentatonic + Pentatonica maggiore + + + + Minor pentatonic + Pentatonica minore + + + + Jap in sen + Jap in sen + + + + Major bebop + Bebop maggiore + + + + Dominant bebop + Bebop dominante + + + + Blues + Blues + + + + Arabic + Araba + + + + Enigmatic + Enigmatica + + + + Neopolitan + Napoletana + + + + Neopolitan minor + Napoletana minore + + + + Hungarian minor + Ungherese minore + + + + Dorian + Dorica + + + + Phrygian + Frigia + + + + Lydian + Lidia + + + + Mixolydian + Misolidia + + + + Aeolian + Eolia + + + + Locrian + Locria + + + + Minor + Minore + + + + Chromatic + Cromatica + + + + Half-Whole Diminished + Diminuita semitono-tono + + + + 5 + Quinta + + + + Phrygian dominant + Frigia dominante + + + + Persian + Persiana + + + + InstrumentSoundShaping + + + VOLUME + VOLUME + + + + Volume + Volume + + + + CUTOFF + CUTOFF + + + + Cutoff frequency + Frequenza di taglio + + + + RESO + RISO + + + + Resonance + Risonanza + + + + JackAppDialog + + + Add JACK Application + Aggiungi applicazione JACK + + + + Note: Features not implemented yet are greyed out + Nota: le funzionalità non ancora implementate sono disattivate + + + + Application + Applicazione + + + + Name: + Nome: + + + + Application: + Applicazione: + + + + From template + Dal modello + + + + Custom + Personalizza + + + + Template: + Modello: + + + + Command: + Comando: + + + + Setup + + + + + Session Manager: + + + + + None + + + + + Audio inputs: + Audio ingresso: + + + + MIDI inputs: + MIDI ingresso: + + + + Audio outputs: + Audio uscita: + + + + MIDI outputs: + MIDI uscita: + + + + Take control of main application window + Prendi il controllo della principale finestra di applicazione + + + + Workarounds + Soluzioni alternative + + + + Wait for external application start (Advanced, for Debug only) + Attendi l'avvio di un'applicazione esterna (avanzato, solo per debug) + + + + Capture only the first X11 Window + + + + + Use previous client output buffer as input for the next client + + + + + Simulate 16 JACK MIDI outputs, with MIDI channel as port index + Simula 16 MIDI JACK uscite, con canale MIDI come indice di porta + + + + Error here + Errore qui + + + + NSM applications cannot use abstract or absolute paths + Le applicazioni NSM non possono usare percorsi astratti o assoluti + + + + NSM applications cannot use CLI arguments + Le applicazioni NSM non possono usare argomenti CLI + + + + You need to save the current Carla project before NSM can be used + È necessario salvare l'attuale progetto di Carla prima di poter utilizzare NSM + + + + JuceAboutW + + + This program uses JUCE version %1. + Questo programma utilizza la versione JUCE % 1. + + + + MidiPatternW + + + MIDI Pattern + Schema MIDI + + + + Time Signature: + Indicazione di tempo: + + + + + + 1/4 + 1/4 + + + + 2/4 + 2/4 + + + + 3/4 + 3/4 + + + + 4/4 + 4/4 + + + + 5/4 + 5/4 + + + + 6/4 + 6/4 + + + + Measures: + Misure: + + + + + + 1 + 1 + + + + 2 + 2 + + + + 3 + 3 + + + + 4 + 4 + + + + 5 + Quinta + + + + 6 + 6 + + + + 7 + 7 + + + + 8 + 8 + + + + 9 + 9 + + + + 10 + 10 + + + + 11 + 11 + + + + 12 + 12 + + + + 13 + 13 + + + + 14 + 14 + + + + 15 + 15 + + + + 16 + 16 + + + + Default Length: + Lunghezza predefinita: + + + + + 1/16 + 1/16 + + + + + 1/15 + 1/15 + + + + + 1/12 + 1/12 + + + + + 1/9 + 1/9 + + + + + 1/8 + 1/8 + + + + + 1/6 + 1/6 + + + + + 1/3 + 1/3 + + + + + 1/2 + 1/2 + + + + Quantize: + Quantizzazione: + + + + &File + &File + + + + &Edit + &Modifica + + + + &Quit + &Esci + + + + Esc + Esc + + + + &Insert Mode + &Modo Inserimento + + + + F + F + + + + &Velocity Mode + &Modo Velocity + + + + D + Re + + + + Select All + Seleziona tutto + + + + A + La + + + + PatchesDialog + + + + Qsynth: Channel Preset + Qsynth: Preset Canale + + + + + Bank selector + Selezione banco + + + + + Bank + Banco + + + + + Program selector + Selezione programma + + + + + Patch + Programma + + + + + Name + Nome + + + + + OK + OK + + + + + Cancel + Annulla + + + + PluginBrowser + + + no description + nessuna descrizione + + + + A native amplifier plugin + Un plugin di amplificazione nativo + + + + Simple sampler with various settings for using samples (e.g. drums) in an instrument-track + Semplice sampler con varie impostazioni, per usare suoni (come percussioni) in una traccia strumentale + + + + Boost your bass the fast and simple way + Potenzia il tuo basso in modo veloce e semplice + + + + Customizable wavetable synthesizer + Sintetizzatore wavetable configurabile + + + + An oversampling bitcrusher + Un riduttore di bit con oversampling + + + + Carla Patchbay Instrument + Strumento Patchbay Carla + + + + Carla Rack Instrument + Strutmento Rack Carla + + + + A dynamic range compressor. + + + + + A 4-band Crossover Equalizer + Un equalizzatore Crossover a 4 bande + + + + A native delay plugin + Un plugin di ritardi eco nativo + + + + A Dual filter plugin + Un plugin di duplice filtraggio + + + + plugin for processing dynamics in a flexible way + Un versatile processore di dynamic + + + + A native eq plugin + Un plugin di equalizzazione nativo + + + + A native flanger plugin + Un plugin di flager nativo + + + + Emulation of GameBoy (TM) APU + Emulatore di GameBoy™ APU + + + + Player for GIG files + Riproduttore di file GIG + + + + Filter for importing Hydrogen files into LMMS + Strumento per l'importazione di file Hydrogen dentro LMMS + + + + Versatile drum synthesizer + Sintetizzatore di percussioni versatile + + + + List installed LADSPA plugins + Elenca i plugin LADSPA installati + + + + plugin for using arbitrary LADSPA-effects inside LMMS. + Plugin per usare qualsiasi effetto LADSPA in LMMS. + + + + Incomplete monophonic imitation TB-303 + + + + + plugin for using arbitrary LV2-effects inside LMMS. + Plugin per usare qualsiasi effetto LV2 in LMMS. + + + + plugin for using arbitrary LV2 instruments inside LMMS. + Plugin per usare qualsiasi strumento LV2 in LMMS. + + + + Filter for exporting MIDI-files from LMMS + Filtro per esportare file MIDI da LMMS + + + + Filter for importing MIDI-files into LMMS + Filtro per importare file MIDI in LMMS + + + + Monstrous 3-oscillator synth with modulation matrix + Sintetizzatore mostruoso con 3 oscillatori e matrice di modulazione + + + + A multitap echo delay plugin + Un plugin di ritardo eco multitap + + + + A NES-like synthesizer + Un sintetizzatore che imita i suoni del Nintendo Entertainment System + + + + 2-operator FM Synth + Sintetizzatore FM a 2 operatori + + + + Additive Synthesizer for organ-like sounds + Sintetizzatore additivo per suoni tipo organo + + + + GUS-compatible patch instrument + strumento compatibile con GUS + + + + Plugin for controlling knobs with sound peaks + Plugin per controllare le manopole con picchi di suono + + + + Reverb algorithm by Sean Costello + Algoritmo di Riverbero di Sean Costello + + + + Player for SoundFont files + Riproduttore di file SounFont + + + + LMMS port of sfxr + Port di sfxr su LMMS + + + + Emulation of the MOS6581 and MOS8580 SID. +This chip was used in the Commodore 64 computer. + Emulazione di MOS6581 and MOS8580 SID. +Questo chip era utilizzato nel Commode 64. + + + + A graphical spectrum analyzer. + Un analizzatore di spettro grafico. + + + + Plugin for enhancing stereo separation of a stereo input file + Plugin per migliorare la separazione stereo di un file + + + + Plugin for freely manipulating stereo output + Plugin per manipolare liberamente un'uscita stereo + + + + Tuneful things to bang on + Oggetti dotati di intonazione su cui picchiare + + + + Three powerful oscillators you can modulate in several ways + Tre potenti oscillatori modulabili in vari modi + + + + A stereo field visualizer. + Un visualizzatore del campo stereo. + + + + VST-host for using VST(i)-plugins within LMMS + Host VST per usare i plugin VST con LMMS + + + + Vibrating string modeler + Modulatore di corde vibranti + + + + plugin for using arbitrary VST effects inside LMMS. + Plugin per usare qualsiasi effetto VST in LMMS. + + + + 4-oscillator modulatable wavetable synth + Sintetizzatore wavetable con 4 oscillatori modulabili + + + + plugin for waveshaping + Plugin per la modifica della forma d'onda + + + + Mathematical expression parser + Analisi sintattica dell'espressione + + + + Embedded ZynAddSubFX + ZynAddSubFX incorporato + + + + An all-pass filter allowing for extremely high orders. + + + + + Granular pitch shifter + Pitch shifter granulare + + + + Upwards/downwards multiband compression plugin powered by the eldritch elder god LOMMUS. + + + + + Basic Slicer + Basic Slicer + + + + Tap to the beat + Tocca a ritmo + + + + PluginEdit + + + Plugin Editor + Editor plugin + + + + Edit + Modifica + + + + Control + Controllo + + + + MIDI Control Channel: + Canale controllo MIDI: + + + + N + N + + + + Output dry/wet (100%) + Uscita dry/wet (100%) + + + + Output volume (100%) + Volume di uscita (100%) + + + + Balance Left (0%) + Bilanciamento a sinistra (0%) + + + + + Balance Right (0%) + Bilanciamento destro (0%) + + + + Use Balance + Usa bilanciamento + + + + Use Panning + Usa panoramica + + + + Settings + Impostazioni + + + + Use Chunks + Usa blocchi + + + + Audio: + Audio: + + + + Fixed-Size Buffer + Buffer dimensione-fissa + + + + Force Stereo (needs reload) + Forza Stereo (deve essere ricaricato) + + + + MIDI: + MIDI: + + + + Map Program Changes + Mappa modifiche programma + + + + Send Notes + Invia Note + + + + Send Bank/Program Changes + Invia banco/Modifiche programma + + + + Send Control Changes + Invia modifiche al controllo + + + + Send Channel Pressure + Invia pressione canale + + + + Send Note Aftertouch + Invia nota Aftertouch + + + + Send Pitchbend + Invia Pitchbend + + + + Send All Sound/Notes Off + Invia tutti i suoni/Note disattivate + + + + +Plugin Name + + +Nome Plugin + + + + + Program: + Programma: + + + + MIDI Program: + Programma MIDI: + + + + Save State + Salva Stato + + + + Load State + Carica Stato + + + + Information + Informazioni + + + + Label/URI: + Etichetta/URI: + + + + Name: + Nome: + + + + Type: + Tipo: + + + + Maker: + Creatore: + + + + Copyright: + Copyright: + + + + Unique ID: + ID univoco: + + + + PluginFactory + + + Plugin not found. + Plugin non trovato. + + + + LMMS plugin %1 does not have a plugin descriptor named %2! + Il plugin LMMS %1 non ha una descrizione chiamata %2! + + + + PluginListDialog + + + Carla - Add New + Carla - Aggiungi nuovo + + + + Requirements + Requisiti + + + + With Custom GUI + Con GUI personalizzata + + + + With CV Ports + Con CV Porte + + + + Real-time safe only + Solo in tempo reale sicuro - - Plugin Version - Versione plugin + + Stereo only + Solo Stereo - - <br>Version %1<br>Carla is a fully-featured audio plugin host%2.<br><br>Copyright (C) 2011-2019 falkTX<br> - <br>Versione %1<br>Carla è un plugin audio host completo%2.<br><br>Copyright (C) 2011-2019 falkTX<br> + + With Inline Display + Con Display Inline - - - (Engine not running) - (Motore non in funzione) + + Favorites only + Solo Preferiti - - Everything! (Including LRDF) - Tutto! (Incluso LRDF) + + (Number of Plugins go here) + (Numero di Plugin va qui) - - Everything! (Including CustomData/Chunks) - Tutto! (Compresi dati personalizzati/blocchi) + + &Add Plugin + &Aggiungi Plugin - - About 110&#37; complete (using custom extensions)<br/>Implemented Feature/Extensions:<ul><li>http://lv2plug.in/ns/ext/atom</li><li>http://lv2plug.in/ns/ext/buf-size</li><li>http://lv2plug.in/ns/ext/data-access</li><li>http://lv2plug.in/ns/ext/event</li><li>http://lv2plug.in/ns/ext/instance-access</li><li>http://lv2plug.in/ns/ext/log</li><li>http://lv2plug.in/ns/ext/midi</li><li>http://lv2plug.in/ns/ext/options</li><li>http://lv2plug.in/ns/ext/parameters</li><li>http://lv2plug.in/ns/ext/port-props</li><li>http://lv2plug.in/ns/ext/presets</li><li>http://lv2plug.in/ns/ext/resize-port</li><li>http://lv2plug.in/ns/ext/state</li><li>http://lv2plug.in/ns/ext/time</li><li>http://lv2plug.in/ns/ext/uri-map</li><li>http://lv2plug.in/ns/ext/urid</li><li>http://lv2plug.in/ns/ext/worker</li><li>http://lv2plug.in/ns/extensions/ui</li><li>http://lv2plug.in/ns/extensions/units</li><li>http://home.gna.org/lv2dynparam/rtmempool/v1</li><li>http://kxstudio.sf.net/ns/lv2ext/external-ui</li><li>http://kxstudio.sf.net/ns/lv2ext/programs</li><li>http://kxstudio.sf.net/ns/lv2ext/props</li><li>http://kxstudio.sf.net/ns/lv2ext/rtmempool</li><li>http://ll-plugins.nongnu.org/lv2/ext/midimap</li><li>http://ll-plugins.nongnu.org/lv2/ext/miditype</li></ul> - Circa 110&#37; completo (usando estensioni personalizzate)<br/>Funzionalità/estensioni implementate:<ul><li>http://lv2plug.in/ns/ext/atom</li><li>http://lv2plug.in/ns/ext/buf-size</li><li>http://lv2plug.in/ns/ext/data-access</li><li>http://lv2plug.in/ns/ext/event</li><li>http://lv2plug.in/ns/ext/instance-access</li><li>http://lv2plug.in/ns/ext/log</li><li>http://lv2plug.in/ns/ext/midi</li><li>http://lv2plug.in/ns/ext/options</li><li>http://lv2plug.in/ns/ext/parameters</li><li>http://lv2plug.in/ns/ext/port-props</li><li>http://lv2plug.in/ns/ext/presets</li><li>http://lv2plug.in/ns/ext/resize-port</li><li>http://lv2plug.in/ns/ext/state</li><li>http://lv2plug.in/ns/ext/time</li><li>http://lv2plug.in/ns/ext/uri-map</li><li>http://lv2plug.in/ns/ext/urid</li><li>http://lv2plug.in/ns/ext/worker</li><li>http://lv2plug.in/ns/extensions/ui</li><li>http://lv2plug.in/ns/extensions/units</li><li>http://home.gna.org/lv2dynparam/rtmempool/v1</li><li>http://kxstudio.sf.net/ns/lv2ext/external-ui</li><li>http://kxstudio.sf.net/ns/lv2ext/programs</li><li>http://kxstudio.sf.net/ns/lv2ext/props</li><li>http://kxstudio.sf.net/ns/lv2ext/rtmempool</li><li>http://ll-plugins.nongnu.org/lv2/ext/midimap</li><li>http://ll-plugins.nongnu.org/lv2/ext/miditype</li></ul> - + + Cancel + Cancella - - - - Using Juce host - Tramite l'host Juce + + Refresh + Aggiorna - - About 85% complete (missing vst bank/presets and some minor stuff) - Completo a circa 85% (banco vst mancante/preselezioni e alcune cose minori) + + Reset filters + Ripristina i filtri + + + + + + + + + + + + + + + + + + + TextLabel + Etichetta di testo - - - CarlaHostW - - MainWindow - MainWindow + + Format: + Formato: - - Rack - Rack + + Architecture: + Architettura: - - Patchbay - Patchbay + + Type: + Tipo: - - Logs - Rapporti + + MIDI Ins: + MIDI ingresso: - - Loading... - Caricamento... + + Audio Ins: + Audio ingresso: - - Buffer Size: - Dimensione buffer: + + CV Outs: + CV uscita: - - Sample Rate: - Frequenza campionamento: + + MIDI Outs: + MIDI uscita: - - ? Xruns - ? Xruns + + Parameter Ins: + Parametri ingresso: - - DSP Load: %p% - Carico DSP: %p% + + Parameter Outs: + Parametri uscita: - - &File - &File + + Audio Outs: + Audio uscita: - - &Engine - &Motore + + CV Ins: + CV ingresso: - - &Plugin - &Plugin + + UniqueID: + ID univoco: - - Macros (all plugins) - Macro (tutti i plugin) + + Has Inline Display: + Ha Display Inline: - - &Canvas - + + Has Custom GUI: + Ha GUI personalizzata: - - Zoom - Ingrandimento + + Is Synth: + E' Synth: - - &Settings - &Impostazioni + + Is Bridged: + E' Bridged: - - &Help - &Aiuto + + Information + Informazioni - - toolBar - Barra strumenti + + Name + Nome - - Disk - Disco + + Label/Id/URI + Etichetta/Id/URI - - - Home - Principale + + Maker + Creatore - - Transport - Trasporto + + Binary/Filename + Binario/Nome di file - - Playback Controls - Controlli riproduzione + + Format + Formato - - Time Information - Informazioni tempo + + Internal + Interno - - Frame: - Periodo + + LADSPA + LADSPA - - 000'000'000 - 000'000'000 + + DSSI + DSSI - - Time: - Tempo: + + LV2 + LV2 - - 00:00:00 - 00:00:00 + + VST2 + VST2 - - BBT: - BBT: + + VST3 + VST3 - - 000|00|0000 - 000|00|0000 + + CLAP + CLAP - - Settings - Impostazioni + + AU + AU - - BPM - BPM + + JSFX + JSFX - - Use JACK Transport - Usa trasporto JACK + + Sound Kits + Sound Kits - - Use Ableton Link - Usa collegamento Ableton + + Type + Tipo - - &New - &Nuovo + + Effects + Effetti - - Ctrl+N - Ctrl+N + + Instruments + Strumenti - - &Open... - &Apri... + + MIDI Plugins + MIDI Plugins - - - Open... - Apri... + + Other/Misc + Altro/Misc - - Ctrl+O - Ctrl+O + + Category + Categoria - - &Save - &Salva + + All + Tutto - - Ctrl+S - Ctrl+S + + Delay + Delay - - Save &As... - Salva &come... + + Distortion + Distorsione + + + + Dynamics + Dinamica + + + + EQ + EQ + + + + Filter + Filtro + + + + Modulator + Modulatore + + + + Synth + Synth + + + + Utility + Utilità + + + + + Other + Altro + + + + Architecture + Architettura + + + + + Native + Nativo + + + + Bridged + Bridged + + + + Bridged (Wine) + Bridged (Wine) + + + + Focus Text Search + Focalizza la ricerca testuale + + + + Ctrl+F + Ctrl+F + + + + Bridged (32bit) + Bridged (32bit) + + + + Discovering internal plugins... + Scoprendo plugin interni... + + + + Discovering LADSPA plugins... + Scoprendo LADSPA plugin... + + + + Discovering DSSI plugins... + Scoprendo DSSI plugin... + + + + Discovering LV2 plugins... + Scoprendo LV2 plugin... + + + + Discovering VST2 plugins... + Scoprendo VST2 plugin... + + + + Discovering VST3 plugins... + Scoprendo VST3 plugin... + + + + Discovering CLAP plugins... + Scoprendo CLAP plugin... + + + + Discovering AU plugins... + Scoprendo AU plugin... + + + + Discovering JSFX plugins... + Scoprendo JSFX plugin... + + + + Discovering SF2 kits... + Scoprendo SF2 kits... + + + + Discovering SFZ kits... + Scoprendo SFZ kits... + + + + Unknown + Sconosciuto + + + + + + + Yes + + + + + + + + No + No + + + + PluginParameter + + + Form + Modulo - - - Save As... - Salva come... + + Parameter Name + Nome parametro - - Ctrl+Shift+S - Ctrl+Shift+S + + TextLabel + Etichetta di testo - - &Quit - &Esci + + ... + ... + + + PluginRefreshDialog - - Ctrl+Q - Ctrl+Q + + Plugin Refresh + Aggiornamento del plugin - - &Start - &Partenza + + Search for: + Cerca: - - F5 - F5 + + All plugins, ignoring cache + Tutti i plugin, ignorando cache - - St&op - Arrest&a + + Updated plugins only + Solo plugin aggiornati - - F6 - F6 + + Check previously invalid plugins + Controlla i plugin precedentemente non validi - - &Add Plugin... - &Aggiungi plug-in... + + Press 'Scan' to begin the search + Premi 'Scansione' per iniziare la ricerca - - Ctrl+A - Ctrl+A + + Scan + Scansione - - &Remove All - &Rimuovi tutto + + >> Skip + >> Salta - - Enable - Abilita + + Close + Chiudi + + + PluginWidget - - Disable - Disabilita + + + + + + Frame + Frame - - 0% Wet (Bypass) - 0% bagnato (bypass) + + Enable + Abilita - - 100% Wet - 100% bagnato + + On/Off + On/Off - - 0% Volume (Mute) - 0% Volume (silenziato) + + + + + PluginName + Nome del plugin - - 100% Volume - 100% Volume + + MIDI + MIDI - - Center Balance - Bilanciamento al centro + + AUDIO IN + INGRESSO AUDIO - - &Play - &Riproduci + + AUDIO OUT + USCITA AUDIO - - Ctrl+Shift+P - Ctrl+Shift+P + + GUI + GUI - - &Stop - &Arresta + + Edit + Modifica - - Ctrl+Shift+X - Ctrl+Shift+X + + Remove + Rimuovi - - &Backwards - &Indietro + + Plugin Name + Nome Plugin - - Ctrl+Shift+B - Ctrl+Shift+B + + Preset: + Preselezione: + + + ProjectRenderer - - &Forwards - &Avanti + + WAV (*.wav) + WAV (*.wav) - - Ctrl+Shift+F - Ctrl+Shift+F + + FLAC (*.flac) + FLAC (*.flac) - - &Arrange - &Organizza + + OGG (*.ogg) + OGG (*.ogg) - - Ctrl+G - Ctrl+G + + MP3 (*.mp3) + MP3 (*.mp3) + + + QGroupBox - - - &Refresh - &Aggiorna + + + Settings for %1 + Impostazioni per %1 + + + QObject - - Ctrl+R - Ctrl+R + + Reload Plugin + Ricarica Plugin - - Save &Image... - Salva &immagine... + + Show GUI + Mostra GUI - - Auto-Fit - Adatta-automatico + + Help + Aiuto - - Zoom In - Ingrandisci + + LADSPA plugins + LADSPA plugins - - Ctrl++ - Ctrl++ + + The project contains %1 LADSPA plugin(s) which might have not been restored correctly! Please check the project. + Il progetto contiene %1 LADSPA plugin che potrebbero non essere stati ripristinati correttamente! Si prega di controllare il progetto. - - Zoom Out - Riduci + + URI: + URI: - - Ctrl+- - Ctrl+- + + Project: + Progetto: - - Zoom 100% - Ingrandimento 100% + + Maker: + Creatore: - - Ctrl+1 - Ctrl+1 + + Homepage: + Pagina iniziale: - - Show &Toolbar - Mostra &barra strumenti + + License: + Licenza: - - &Configure Carla - &Configura Carla + + File: %1 + File: %1 - - &About - &A riguardo + + failed to load description + Impossibile caricare la descrizione - - About &JUCE - Riguardo a &JUCE + + Open audio file + Apri audio file - - About &Qt - Riguardo a &Qt + + Error loading sample + Errore di caricamento del sample - - Show Canvas &Meters - + + %1 (unsupported) + %1 (non supportato) + + + QWidget - - Show Canvas &Keyboard - + + + Name: + Nome: - - Show Internal - Mostra interno + + Maker: + Autore: - - Show External - Mostra esterno + + Copyright: + Copyright: - - Show Time Panel - Mostra pannello temporale + + Requires Real Time: + Richiede Real Time: - - Show &Side Panel - Mostra &pannello laterale + + + + Yes + - - &Connect... - &Connetti... + + + + No + No - - Compact Slots - Comprimi alloggiamenti + + Real Time Capable: + Abilitato al Real Time: - - Expand Slots - Espandi alloggiamenti + + In Place Broken: + In Place Broken: - - Perform secret 1 - Esegui segreto 1 + + Channels In: + Canali in ingresso: - - Perform secret 2 - Esegui segreto 2 + + Channels Out: + Canali in uscita: - - Perform secret 3 - Esegui segreto 3 + + File: %1 + File: %1 - - Perform secret 4 - Esegui segreto 4 + + File: + File: + + + XYControllerW - - Perform secret 5 - Esegui segreto 5 + + XY Controller + XY Controller - - Add &JACK Application... - Aggiungi applicazione &JACK... + + X Controls: + X Controlli: - - &Configure driver... - &Configura driver... + + Y Controls: + Y Controlli: - - Panic - Panico + + Smooth + Ammorbidire - - Open custom driver panel... - Apri pannello driver personalizzato... + + &Settings + &Impostazioni - - - CarlaHostWindow - - Export as... - Esporta come... + + Channels + Canali - - - - - Error - Errore + + &File + &File - - Failed to load project - Impossibile caricare il progetto + + Show MIDI &Keyboard + Mostra MIDI &Tastiera - - Failed to save project - Impossibile salvare il progetto + + (All) + (Tutto) - - Quit - Esci + + 1 + 1 - - Are you sure you want to quit Carla? - Sei sicuro di voler uscire da Carla? + + 2 + 2 - - Could not connect to Audio backend '%1', possible reasons: -%2 - Impossibile connettersi al back-end Audio '%1', possibili motivi: -2% + + 3 + 3 - - Could not connect to Audio backend '%1' - Impossibile connettersi al backend audio '%1' + + 4 + 4 - - Warning - Avviso + + 5 + 5 - - There are still some plugins loaded, you need to remove them to stop the engine. -Do you want to do this now? - Ci sono ancora alcuni plugin caricati, è necessario rimuoverli per arrestare il motore. -Vuoi farlo adesso? + + 6 + 6 - - - CarlaInstrumentView - - Show GUI - Mostra GUI + + 7 + 7 - - - CarlaSettingsW - - Settings - Impostazioni + + 8 + 8 - - main - principale + + 9 + 9 - - canvas - + + 10 + 10 - - engine - motore + + 11 + 11 - - osc - osc + + 12 + 12 - - file-paths - Percorsi dei file + + 13 + 13 - - plugin-paths - Percorsi plugin + + 14 + 14 - - wine - wine + + 15 + 15 - - experimental - Sperimentale + + 16 + 16 - - Widget - Widget + + &Quit + &Esci - - - Main - Principale + + Esc + Esc - - - Canvas - + + (None) + (Nessuno) + + + lmms::AmplifierControls - - - Engine - Motore + + Volume + Volume - - File Paths - Percorsi dei file + + Panning + Panning - - Plugin Paths - Percorsi plugins + + Left gain + Gain a sinistra - - Wine - Wine + + Right gain + Gain a destra + + + lmms::AudioFileProcessor - - - Experimental - Sperimentale + + Amplify + Amplificare - - <b>Main</b> - <b>Principale</b> + + Start of sample + Inizio del sample - - Paths - Percorsi + + End of sample + Fine del sample - - Default project folder: - Cartella progetto predefinita: + + Loopback point + Punto di loopback - - Interface - Interfaccia + + Reverse sample + Reverse sample - - Interface refresh interval: - Intervallo di aggiornamento interfaccia: + + Loop mode + Modalità loop - - - ms - ms + + Stutter + Stutter - - Show console output in Logs tab (needs engine restart) - Mostra l'uscita della console nella scheda Log (necessita di riavvio del motore) + + Interpolation mode + Modalità di interpolazione - - Show a confirmation dialog before quitting - Visualizza messaggio di conferma prima di uscire + + None + - - - Theme - Tema + + Linear + Lineare - - Use Carla "PRO" theme (needs restart) - Usa il tema "PRO" di Carla (necessita di riavvio) + + Sinc + - - Color scheme: - Combinazione colori: + + Sample not found + Sample non trovato + + + lmms::AudioJack - - Black - Nero + + JACK client restarted + - - System - Sistema + + LMMS was kicked by JACK for some reason. Therefore the JACK backend of LMMS has been restarted. You will have to make manual connections again. + - - Enable experimental features - Abilita funzionalità sperimentali + + JACK server down + - - <b>Canvas</b> + + The JACK server seems to have been shutdown and starting a new instance failed. Therefore LMMS is unable to proceed. You should save your project and restart JACK and LMMS. - - Bezier Lines - Linee di Bezier + + Client name + Nome di client - - Theme: - Tema: + + Channels + Canali + + + lmms::AudioOss - - Size: - Grandezza: + + Device + Dispositivo - - 775x600 - 775x600 + + Channels + Canali + + + lmms::AudioPortAudio::setupWidget - - 1550x1200 - 1550x1200 + + Backend + Backend - - 3100x2400 - 3100x2400 + + Device + Dispositivo + + + lmms::AudioPulseAudio - - 4650x3600 - 4650x3600 + + Device + Dispositivo - - 6200x4800 - 6200x4800 + + Channels + Canali + + + lmms::AudioSdl::setupWidget - - Options - Opzioni + + Playback device + Dispositivo di riproduzione - - Auto-hide groups with no ports - Nascondi automaticamente i gruppi senza porte + + Input device + Dispositivo di input + + + lmms::AudioSndio - - Auto-select items on hover - Selezione automatica elementi al passaggio del mouse + + Device + Dispositivo - - Basic eye-candy (group shadows) - Attraente-base (ombre di gruppo) + + Channels + Canali + + + lmms::AudioSoundIo::setupWidget - - Render Hints - Suggerimenti rendering + + Backend + Backend - - Anti-Aliasing - Anti aliasing + + Device + Dispositivo + + + lmms::AutomatableModel - - Full canvas repaints (slower, but prevents drawing issues) - + + &Reset (%1%2) + &Ripristina (%1%2) - - <b>Engine</b> - <b>Motore</b> + + &Copy value (%1%2) + &Copia valore (%1%2) - - - Core - Nucleo + + &Paste value (%1%2) + &Incolla valore (%1%2) - - Single Client - Client singolo + + &Paste value + &Incolla valore - - Multiple Clients - Clients multipli + + Edit song-global automation + Modifica automazione globale della canzone - - - Continuous Rack - Rack continuo + + Remove song-global automation + Rimuovi automazione globale della canzone - - - Patchbay - Patchbay + + Remove all linked controls + Rimuovi tutti i controlli collegati - - Audio driver: - Driver audio: + + Connected to %1 + Connesso a %1 - - Process mode: - Modalità processo: + + Connected to controller + Connesso al controller - - - - - Maximum number of parameters to allow in the built-in 'Edit' dialog - Numero massimo di parametri da consentire nella finestra di dialogo integrata "Modifica" + + Edit connection... + Modifica connessione... - - Max Parameters: - Parametri massimi: + + Remove connection + Rimuovi connessione - - ... - ... + + Connect to controller... + Connesso al controller... + + + lmms::AutomationClip - - Reset Xrun counter after project load - Ripristina contatore Xrun dopo il caricamento del progetto + + Drag a control while pressing <%1> + Trascina un controllo tenendo premuto <%1> + + + lmms::AutomationTrack - - Plugin UIs - UIs plugin + + Automation track + Traccia di automazione + + + lmms::BassBoosterControls - - - How much time to wait for OSC GUIs to ping back the host - Tempo di attesa che le GUI OSC eseguano il ping dell'host + + Frequency + Frequency - - UI Bridge Timeout: - Sospensione bridge UI: + + Gain + Gain - - Use OSC-GUI bridges when possible, this way separating the UI from DSP code - Usare i bridge OSC-GUI quando possibile, questo modo separa l'interfaccia utente dal codice DSP + + Ratio + Ratio + + + lmms::BitInvader - - Use UI bridges instead of direct handling when possible - Utilizzare le UI bridge anziché la gestione diretta, quando possibile + + Sample length + Lunghezza del sample - - Make plugin UIs always-on-top - Rendi le UIs dei plugin sempre in primo piano + + Interpolation + Interpolazione - - Make plugin UIs appear on top of Carla (needs restart) - Fai comparire le UIs del plugin sopra Carla (necessita di riavvio) + + Normalize + Normalizza + + + lmms::BitcrushControls - - NOTE: Plugin-bridge UIs cannot be managed by Carla on macOS - NOTA: le UI del plugin-bridge non possono essere gestite da Carla su macOS + + Input gain + Input gain - - - Restart the engine to load the new settings - Riavvia il motore per caricare le nuove impostazioni + + Input noise + Input rumore - - <b>OSC</b> - <b>OSC</b> + + Output gain + Output gain - - Enable OSC - Abilita OSC + + Output clip + Output clip - - Enable TCP port - Abilita porta TCP + + Sample rate + Frequenza di campionamento - - - Use specific port: - Usa porta specifica: + + Stereo difference + Differenza di stereo - - Overridden by CARLA_OSC_TCP_PORT env var - Sostituito da CARLA_OSC_TCP_PORT env var + + Levels + Livelli - - - Use randomly assigned port - Usa porta assegnata in modo casuale + + Rate enabled + Frequenza abilitata - - Enable UDP port - Abilita porta UDP + + Depth enabled + Profondità abilitata + + + lmms::Clip - - Overridden by CARLA_OSC_UDP_PORT env var - Sostituito da CARLA_OSC_UDP_PORT env var + + Mute + Muto + + + lmms::CompressorControls - - DSSI UIs require OSC UDP port enabled - Le UI DSSI richiedono la porta UDP OSC abilitata + + Threshold + Threshold - - <b>File Paths</b> - <b>Percorsi file</b> + + Ratio + Ratio - - Audio - Audio + + Attack + Attack - - MIDI - MIDI + + Release + Release - - Used for the "audiofile" plugin - Utilizzato per il plugin "fileaudio" + + Knee + Knee - - Used for the "midifile" plugin - Utilizzato per il plugin "midifile" + + Hold + Hold - - - Add... - Aggiungi... + + Range + Range - - - Remove - Rimuovi + + RMS Size + RMS Size - - - Change... - Cambia... + + Mid/Side + Mid/Side - - <b>Plugin Paths</b> - <b>Percorsi plugin</b> + + Peak Mode + Peak Mode - - LADSPA - LADSPA + + Lookahead Length + Lunghezza di lookahead - - DSSI - DSSI + + Input Balance + Input bilanciamento - - LV2 - LV2 + + Output Balance + Output bilanciamento - - VST2 - VST2 + + Limiter + Limiter - - VST3 - VST3 + + Output Gain + Output Gain - - SF2/3 - SF2/3 + + Input Gain + Input Gain - - SFZ - SFZ + + Blend + Blend - - Restart Carla to find new plugins - Riavvia Carla per trovare nuovi plugin + + Stereo Balance + Stereo bilanciamento - - <b>Wine</b> - <b>Wine</b> + + Auto Makeup Gain + Auto Makeup Gain - - Executable - Eseguibile + + Audition + Audition - - Path to 'wine' binary: - Percorso per binario 'wine': + + Feedback + Feedback - - Prefix - Prefisso + + Auto Attack + Auto Attack - - Auto-detect Wine prefix based on plugin filename - Rilevamento automatico del prefisso Wine in base al nome del file del plug-in + + Auto Release + Auto Release - - Fallback: - Alternativa: + + Lookahead + Lookahead - - Note: WINEPREFIX env var is preferred over this fallback - Nota: WINEPREFIX env var è preferito rispetto a questa alternativa + + Tilt + Tilt - - Realtime Priority - Priorità in tempo reale + + Tilt Frequency + Tilt Frequenza - - Base priority: - Priorità di base: + + Stereo Link + Stereo Link - - WineServer priority: - Priorità WineServer: + + Mix + Mix + + + lmms::Controller - - These options are not available for Carla as plugin - Queste opzioni non sono disponibili per Carla come plugin + + Controller %1 + Controller %1 + + + lmms::DelayControls - - <b>Experimental</b> - <b>Sperimentale</b> + + Delay samples + Delay samples - - Experimental options! Likely to be unstable! - Opzioni sperimentali! Probabilmente instabile! + + Feedback + Feedback - - Enable plugin bridges - Abilita i bridges plugin + + LFO frequency + LFO frequenza - - Enable Wine bridges - Abilita i bridges Wine + + LFO amount + LFO quantità - - Enable jack applications - Abilita applicazioni jack + + Output gain + Output gain + + + lmms::DispersionControls - - Export single plugins to LV2 - Esporta plugins singoli in LV2 + + Amount + Quantità - - Load Carla backend in global namespace (NOT RECOMMENDED) - Carica il backend di Carla nello spazio globale dei nomi (NON CONSIGLIATO) + + Frequency + Frequenza - - Fancy eye-candy (fade-in/out groups, glow connections) - Attraente (gruppi di dissolvenza in apertura/chiusura, connessioni luminose) + + Resonance + Risonanza - - Use OpenGL for rendering (needs restart) - Usa OpenGL per il rendering (necessita di riavvio) + + Feedback + Feedback - - High Quality Anti-Aliasing (OpenGL only) - Antialiasing di alta qualità (solo OpenGL) + + DC Offset Removal + Rimozione di DC Offset + + + lmms::DualFilterControls - - Render Ardour-style "Inline Displays" - Renderizza in stile-Ardour : "Visualizza in linea" + + Filter 1 enabled + Filtro 1 abilitato - - Force mono plugins as stereo by running 2 instances at the same time. -This mode is not available for VST plugins. - Forza i plugins mono come stereo eseguendo 2 istanze contemporaneamente. -Questa modalità non è disponibile per i plugins VST. + + Filter 1 type + Filtro 1 tipo - - Force mono plugins as stereo - Forza i plugins mono come stereo + + Cutoff frequency 1 + Frequenza di cutoff 1 - - Prevent plugins from doing bad stuff (needs restart) - Impedisci ai plugins di causare errori (necessita di riavvio) + + Q/Resonance 1 + Q/Risonanza 1 - - Whenever possible, run the plugins in bridge mode. - Quando possibile, esegui i plugins in modalità bridge. + + Gain 1 + Gain 1 - - Run plugins in bridge mode when possible - Esegui i plugin in modalità bridge quando possibile + + Mix + Mix - - - - - Add Path - Aggiungi percorso + + Filter 2 enabled + Filtro 2 abilitato - - - CompressorControlDialog - - Threshold: - + + Filter 2 type + Filtro 2 tipo - - Volume at which the compression begins to take place - + + Cutoff frequency 2 + Frequenza di cutoff 2 - - Ratio: - Rapporto: + + Q/Resonance 2 + Q/Risonanza 2 - - How far the compressor must turn the volume down after crossing the threshold - + + Gain 2 + Gain 2 - - Attack: - Attacco: + + + Low-pass + Low-pass - - Speed at which the compressor starts to compress the audio - + + + Hi-pass + Hi-pass - - Release: - Rilascio: + + + Band-pass csg + Band-pass csg - - Speed at which the compressor ceases to compress the audio - + + + Band-pass czpg + Band-pass czpg - - Knee: - + + + Notch + Notch - - Smooth out the gain reduction curve around the threshold - + + + All-pass + All-pass - - Range: - + + + Moog + Moog - - Maximum gain reduction - + + + 2x Low-pass + 2x Low-pass - - Lookahead Length: - + + + RC Low-pass 12 dB/oct + RC Low-pass 12 dB/oct - - How long the compressor has to react to the sidechain signal ahead of time - + + + RC Band-pass 12 dB/oct + RC Band-pass 12 dB/oct - - Hold: - Mantenimento: + + + RC High-pass 12 dB/oct + RC High-pass 12 dB/oct - - Delay between attack and release stages - + + + RC Low-pass 24 dB/oct + RC Low-pass 24 dB/oct - - RMS Size: - + + + RC Band-pass 24 dB/oct + RC Band-pass 24 dB/oct - - Size of the RMS buffer - + + + RC High-pass 24 dB/oct + RC High-pass 24 dB/oct - - Input Balance: - + + + Vocal Formant + Formante della voce - - Bias the input audio to the left/right or mid/side - + + + 2x Moog + 2x Moog - - Output Balance: - + + + SV Low-pass + SV Low-pass - - Bias the output audio to the left/right or mid/side - + + + SV Band-pass + SV Band-pass - - Stereo Balance: - + + + SV High-pass + SV High-pass - - Bias the sidechain signal to the left/right or mid/side - + + + SV Notch + SV Notch - - Stereo Link Blend: - + + + Fast Formant + Formante veloce - - Blend between unlinked/maximum/average/minimum stereo linking modes - + + + Tripole + Tripole + + + lmms::DynProcControls - - Tilt Gain: - + + Input gain + Input gain - - Bias the sidechain signal to the low or high frequencies. -6 db is lowpass, 6 db is highpass. - + + Output gain + Output gain - - Tilt Frequency: - + + Attack time + Tempo di attacco - - Center frequency of sidechain tilt filter - + + Release time + Tempo di rilascio - - Mix: - + + Stereo mode + Modalità stereo + + + lmms::Effect - - Balance between wet and dry signals - + + Effect enabled + Effetto abilitato - - Auto Attack: - + + Wet/Dry mix + Wet/Dry mix - - Automatically control attack value depending on crest factor - + + Gate + Gate - - Auto Release: - + + Decay + Decadimento + + + lmms::EffectChain - - Automatically control release value depending on crest factor - + + Effects enabled + Effetti abilitati + + + lmms::Engine - - Output gain - Guadagno in uscita + + Generating wavetables + Generazione di wavetable - - - Gain - Guadagno + + Initializing data structures + Inizializzazione di strutture dati - - Output volume - + + Opening audio and midi devices + Apertura di audio e dispositivi midi - - Input gain - Guadagno in ingresso + + Launching audio engine threads + Avvio dei thread del motore audio + + + lmms::EnvelopeAndLfoParameters - - Input volume - + + Env pre-delay + Env pre-delay - - Root Mean Square - + + Env attack + Env attack - - Use RMS of the input - + + Env hold + Env hold - - Peak - + + Env decay + Env decay - - Use absolute value of the input - + + Env sustain + Env sustain - - Left/Right - + + Env release + Env release - - Compress left and right audio - + + Env mod amount + Env mod amount - - Mid/Side + + LFO pre-delay - - Compress mid and side audio + + LFO attack - - Compressor + + LFO frequency - - Compress the audio + + LFO mod amount - - Limiter + + LFO wave shape - - Set Ratio to infinity (is not guaranteed to limit audio volume) + + LFO frequency x 100 - - Unlinked + + Modulate env amount - - Compress each channel separately + + Sample not found + + + lmms::EqControls - - Maximum + + Input gain - - Compress based on the loudest channel + + Output gain - - Average + + Low-shelf gain - - Compress based on the averaged channel volume + + Peak 1 gain - - Minimum + + Peak 2 gain - - Compress based on the quietest channel + + Peak 3 gain - - Blend + + Peak 4 gain - - Blend between stereo linking modes + + High-shelf gain - - Auto Makeup Gain + + HP res - - Automatically change makeup gain depending on threshold, knee, and ratio settings + + Low-shelf res - - - Soft Clip + + Peak 1 BW - - Play the delta signal + + Peak 2 BW - - Use the compressor's output as the sidechain input + + Peak 3 BW - - Lookahead Enabled + + Peak 4 BW - - Enable Lookahead, which introduces 20 milliseconds of latency + + High-shelf res - - - CompressorControls - - Threshold + + LP res - - Ratio - Rapporto dinamico - - - - Attack - Attacco - - - - Release - Rilascio - - - - Knee + + HP freq - - Hold - Mantenimento - - - - Range + + Low-shelf freq - - RMS Size + + Peak 1 freq - - Mid/Side + + Peak 2 freq - - Peak Mode + + Peak 3 freq - - Lookahead Length + + Peak 4 freq - - Input Balance + + High-shelf freq - - Output Balance + + LP freq - - Limiter + + HP active - - Output Gain - Guadagno output - - - - Input Gain - Guadagno input - - - - Blend + + Low-shelf active - - Stereo Balance + + Peak 1 active - - Auto Makeup Gain + + Peak 2 active - - Audition + + Peak 3 active - - Feedback - Feedback - - - - Auto Attack + + Peak 4 active - - Auto Release + + High-shelf active - - Lookahead + + LP active - - Tilt + + LP 12 - - Tilt Frequency + + LP 24 - - Stereo Link + + LP 48 - - Mix - Mix - - - - Controller - - - Controller %1 - Controller %1 - - - - ControllerConnectionDialog - - - Connection Settings - Impostazioni connessione + + HP 12 + - - MIDI CONTROLLER - CONTROLLER MIDI + + HP 24 + - - Input channel - Canale di ingresso + + HP 48 + - - CHANNEL - CANALE + + Low-pass type + - - Input controller - Controller di ingresso + + High-pass type + - - CONTROLLER - CONTROLLER + + Analyse IN + - - - Auto Detect - Rilevamento automatico + + Analyse OUT + + + + lmms::FlangerControls - - MIDI-devices to receive MIDI-events from - Le periferiche MIDI ricevono eventi MIDI da + + Delay samples + - - USER CONTROLLER - CONTROLLER PERSONALIZZATO + + LFO frequency + - - MAPPING FUNCTION - FUNZIONE DI MAPPATURA + + Amount + - - OK - OK + + Stereo phase + - - Cancel - Annulla + + Feedback + - - LMMS - LMMS + + Noise + - - Cycle Detected. - Ciclo rilevato. + + Invert + - ControllerRackView + lmms::FreeBoyInstrument - - Controller Rack - Rack di Controller + + Sweep time + - - Add - Aggiungi + + Sweep direction + - - Confirm Delete - Conferma eliminazione + + Sweep rate shift amount + - - Confirm delete? There are existing connection(s) associated with this controller. There is no way to undo. - Confermi l'eliminazione? Ci sono collegamenti associati a questo controller: non sarà possibile ripristinarli. + + + Wave pattern duty cycle + - - - ControllerView - - Controls - Controlli + + Channel 1 volume + - - Rename controller - Rinomina controller + + + + Volume sweep direction + - - Enter the new name for this controller - Inserire nuovo nome per questo controller + + + + Length of each step in sweep + - - LFO - LFO + + Channel 2 volume + - - &Remove this controller - &Rimuovi questo controller + + Channel 3 volume + - - Re&name this controller - Ri&nomina questo controller + + Channel 4 volume + - - - CrossoverEQControlDialog - - Band 1/2 crossover: - Punto di separazione 1/2: + + Shift Register width + - - Band 2/3 crossover: - Punto di separazione 2/3: + + Right output level + - - Band 3/4 crossover: - Punto di separazione 3/4: + + Left output level + - - Band 1 gain - Guadagno banda 1 + + Channel 1 to SO2 (Left) + - - Band 1 gain: - Guadagno banda 1: + + Channel 2 to SO2 (Left) + - - Band 2 gain - Guadagno banda 2 + + Channel 3 to SO2 (Left) + - - Band 2 gain: - Guadagno banda 2: + + Channel 4 to SO2 (Left) + - - Band 3 gain - Guadagno banda 3 + + Channel 1 to SO1 (Right) + - - Band 3 gain: - Guadagno banda 3: + + Channel 2 to SO1 (Right) + - - Band 4 gain - Guadagno banda 4 + + Channel 3 to SO1 (Right) + - - Band 4 gain: - Guadagno banda 4: + + Channel 4 to SO1 (Right) + - - Band 1 mute - Muto banda 1 + + Treble + - - Mute band 1 - Muto banda 1 + + Bass + + + + + lmms::GigInstrument + + + Bank + - - Band 2 mute - Muto banda 2 + + Patch + - - Mute band 2 - Muto banda 2 + + Gain + + + + lmms::GranularPitchShifterControls - - Band 3 mute - Muto banda 3 + + Pitch + - - Mute band 3 - Muto banda 3 + + Grain Size + - - Band 4 mute - Muto banda 4 + + Spray + - - Mute band 4 - Muto banda 4 + + Jitter + - - - DelayControls - - Delay samples - Campioni di delay + + Twitch + - - Feedback - Feedback + + Pitch Stereo Spread + - - LFO frequency - Frequenza LFO + + Spray Stereo + - - LFO amount - Ampiezza LFO + + Shape + - - Output gain - Guadagno in uscita + + Fade Length + - - - DelayControlsDialog - - DELAY - TEMPO + + Feedback + - - Delay time - Tempo di ritardo + + Minimum Allowed Latency + - - FDBK - FDBK + + Prefilter + - - Feedback amount - Quantità di feedback + + Density + - - RATE - TEMPO + + Glide + - - LFO frequency - Frequenza LFO + + Ring Buffer Length + - - AMNT - Q.TÀ + + 5 Seconds + - - LFO amount - Ampiezza LFO + + 10 Seconds (Size) + - - Out gain - Guadagno in uscita + + 40 Seconds (Size and Pitch) + - - Gain - Guadagno + + 40 Seconds (Size and Spray and Jitter) + + + + + 120 Seconds (All of the above) + - Dialog + lmms::InstrumentFunctionArpeggio - - Add JACK Application - Aggiungi applicazione JACK + + Arpeggio + - - Note: Features not implemented yet are greyed out - Nota: le funzionalità non ancora implementate sono disattivate + + Arpeggio type + - - Application - Applicazione + + Arpeggio range + - - Name: - Nome: + + Note repeats + - - Application: - Applicazione: + + Cycle steps + - - From template - Dal modello + + Skip rate + - - Custom - Personalizzato + + Miss rate + - - Template: - Modello: + + Arpeggio time + - - Command: - Comando: + + Arpeggio gate + - - Setup - Configurazione + + Arpeggio direction + - - Session Manager: - Gestore sessioni: + + Arpeggio mode + - - None - Nessuna + + Up + - - Audio inputs: - Ingressi audio: + + Down + - - MIDI inputs: - Ingressi MIDI: + + Up and down + - - Audio outputs: - Uscite audio: + + Down and up + - - MIDI outputs: - Uscite MIDI: + + Random + - - Take control of main application window - Prendi il controllo della finestra principale dell'applicazione + + Free + - - Workarounds - Soluzioni alternative + + Sort + - - Wait for external application start (Advanced, for Debug only) - Attendi l'avvio di un'applicazione esterna (avanzato, solo per debug) + + Sync + + + + lmms::InstrumentFunctionNoteStacking - - Capture only the first X11 Window - Cattura solo la prima finestra X11 + + Chords + - - Use previous client output buffer as input for the next client - Usa il buffer di uscita del client precedente come ingresso per il client successivo + + Chord type + - - Simulate 16 JACK MIDI outputs, with MIDI channel as port index - Simula 16 uscite MIDI JACK, con canale MIDI come indice di porta + + Chord range + + + + lmms::InstrumentSoundShaping - - Error here - Errore qui + + Envelopes/LFOs + - - Carla Control - Connect - Carla Control - Connetti + + Filter type + - - Remote setup - Configurazione remota + + Cutoff frequency + - - UDP Port: - Porta UDP: + + Q/Resonance + - - Remote host: - Host remoto: + + Low-pass + - - TCP Port: - Porta TCP: + + Hi-pass + - - Reported host - Host segnalato + + Band-pass csg + - - Automatic - Automatico + + Band-pass czpg + - - Custom: - Personalizzato: + + Notch + - - In some networks (like USB connections), the remote system cannot reach the local network. You can specify here which hostname or IP to make the remote Carla connect to. -If you are unsure, leave it as 'Automatic'. - In alcune reti (come le connessioni USB), il sistema remoto non può raggiungere la rete locale. È possibile specificare qui a quale nome host o IP a cui connettere Carla in remoto. -Se non sei sicuro, lascialo su "Automatico". + + All-pass + - - Set value - Imposta valore + + Moog + - - TextLabel - TextLabel + + 2x Low-pass + - - Scale Points - Punti di scala + + RC Low-pass 12 dB/oct + - - - DriverSettingsW - - Driver Settings - Impostazioni driver + + RC Band-pass 12 dB/oct + - - Device: - Dispositivo: + + RC High-pass 12 dB/oct + - - Buffer size: - Dimensione buffer: + + RC Low-pass 24 dB/oct + - - Sample rate: - Frequenza di campionamento: + + RC Band-pass 24 dB/oct + - - Triple buffer - Buffer triplo + + RC High-pass 24 dB/oct + - - Show Driver Control Panel - Mostra pannello di controllo driver + + Vocal Formant + - - Restart the engine to load the new settings - Riavvia il motore per caricare le nuove impostazioni + + 2x Moog + - - - DualFilterControlDialog - - - FREQ - FREQ + + SV Low-pass + - - - Cutoff frequency - Frequenza di taglio + + SV Band-pass + - - - RESO - RISO + + SV High-pass + - - - Resonance - Risonanza + + SV Notch + - - - GAIN - GUAD + + Fast Formant + - - - Gain - Guadagno + + Tripole + + + + lmms::InstrumentTrack - - MIX - MIX + + + unnamed_track + - - Mix - Mix + + Base note + - - Filter 1 enabled - Filtro 1 abilitato + + First note + - - Filter 2 enabled - Filtro 2 abilitato + + Last note + - - Enable/disable filter 1 - Abilita/disabilita filtro 1 + + Volume + - - Enable/disable filter 2 - Abilita/disabilita filtro 2 + + Panning + - - - DualFilterControls - - Filter 1 enabled - Filtro 1 abilitato + + Pitch + - - Filter 1 type - Filtro di tipo 1 + + Pitch range + - - Cutoff frequency 1 - Frequenza di taglio 1 + + Mixer channel + - - Q/Resonance 1 - Risonanza Filtro 1 + + Master pitch + - - Gain 1 - Guadagno Filtro 1 + + Enable/Disable MIDI CC + - - Mix - Mix + + CC Controller %1 + - - Filter 2 enabled - Abilita Filtro 2 + + + Default preset + Default preset + + + lmms::Keymap - - Filter 2 type - Tipo del Filtro 2 + + empty + + + + lmms::KickerInstrument - - Cutoff frequency 2 - Frequenza di taglio 2 + + Start frequency + - - Q/Resonance 2 - Risonanza Filtro 2 + + End frequency + - - Gain 2 - Guadagno Filtro 2 + + Length + - - - Low-pass - Passa-basso + + Start distortion + - - - Hi-pass - Passa-alto + + End distortion + - - - Band-pass csg - Passa-banda csg + + Gain + - - - Band-pass czpg - Passa-banda czpg + + Envelope slope + - - - Notch - Notch + + Noise + - - - All-pass - Passa-tutto + + Click + - - - Moog - Moog + + Frequency slope + - - - 2x Low-pass - Passa-basso 2x + + Start from note + - - - RC Low-pass 12 dB/oct - Passa-basso RC 12 dB/ott + + End to note + + + + lmms::LOMMControls - - - RC Band-pass 12 dB/oct - Passa-banda RC 12 dB/ott + + Depth + - - - RC High-pass 12 dB/oct - Passa-alto RC 12 dB/ott + + Time + - - - RC Low-pass 24 dB/oct - Passa-basso RC 24 dB/ott + + Input Volume + - - - RC Band-pass 24 dB/oct - Passa-banda RC 24 dB/ott + + Output Volume + - - - RC High-pass 24 dB/oct - Passa-alto RC 24 dB/ott + + Upward Depth + - - - Vocal Formant - Formante Vocale + + Downward Depth + - - - 2x Moog - 2x Moog + + High/Mid Split + - - - SV Low-pass - Passa-basso SV + + Mid/Low Split + - - - SV Band-pass - Passa-banda SV + + Enable High/Mid Split + - - - SV High-pass - Passa-alto SV + + Enable Mid/Low Split + - - - SV Notch - Notch SV + + Enable High Band + - - - Fast Formant - Formante veloce + + Enable Mid Band + - - - Tripole - Tre poli + + Enable Low Band + - - - Editor - - Transport controls - Controlli trasporto + + High Input Volume + - - Play (Space) - Play (Spazio) + + Mid Input Volume + - - Stop (Space) - Fermo (Spazio) + + Low Input Volume + - - Record - Registra + + High Output Volume + - - Record while playing - Registra in play + + Mid Output Volume + - - Toggle Step Recording - Attiva/disattiva registrazione a passi + + Low Output Volume + - - - Effect - - Effect enabled - Effetto attivo + + Above Threshold High + - - Wet/Dry mix - Bilanciamento Wet/Dry + + Above Threshold Mid + - - Gate - Gate + + Above Threshold Low + - - Decay - Decadimento + + Above Ratio High + - - - EffectChain - - Effects enabled - Effetti abilitati + + Above Ratio Mid + - - - EffectRackView - - EFFECTS CHAIN - CATENA DI EFFETTI + + Above Ratio Low + - - Add effect - Aggiungi effetto + + Below Threshold High + - - - EffectSelectDialog - - Add effect - Aggiungi effetto + + Below Threshold Mid + - - - Name - Nome + + Below Threshold Low + - - Type - Tipo + + Below Ratio High + - - Description - Descrizione + + Below Ratio Mid + - - Author - Autore + + Below Ratio Low + - - - EffectView - - On/Off - On/Off + + Attack High + - - W/D - W/D + + Attack Mid + - - Wet Level: - Livello del segnale modificato: + + Attack Low + - - DECAY - DECAY + + Release High + - - Time: - Tempo: + + Release Mid + - - GATE - GATE + + Release Low + - - Gate: - Gate: + + RMS Time + - - Controls - Controlli + + Knee + - - Move &up - Sposta verso l'&alto + + Range + - - Move &down - Sposta verso il &basso + + Balance + - - &Remove this plugin - &Elimina questo plugin + + Scale output volume with Depth + - - - EnvelopeAndLfoParameters - - Env pre-delay - Pre-ritardo inv + + Stereo Link + - - Env attack - Attacco inv + + Auto Time + - - Env hold - Mantenimento inv + + Mix + - - Env decay - Decadimento inv + + Feedback + - - Env sustain - Sostegno inv + + Mid/Side + - - Env release - Rilascio inv + + Lookahead + - - Env mod amount - Quantità mod inv + + Lookahead Length + - - LFO pre-delay - Ritardo iniziale LFO + + Suppress upward compression for side band + + + + lmms::LadspaControl - - LFO attack - Attacco LFO + + Link channels + + + + lmms::LadspaEffect - - LFO frequency - Frequenza LFO + + Unknown LADSPA plugin %1 requested. + + + + lmms::Lb302Synth - - LFO mod amount - Quantità mod LFO + + VCF Cutoff Frequency + - - LFO wave shape - Forma d'onda LFO + + VCF Resonance + - - LFO frequency x 100 - Frequenza LFO x 100 + + VCF Envelope Mod + - - Modulate env amount - Modula quantità inv + + VCF Envelope Decay + - - - EnvelopeAndLfoView - - - DEL - RIT + + Distortion + - - - Pre-delay: - Ritardo iniziale: + + Waveform + - - - ATT - ATT + + Slide Decay + - - - Attack: - Attacco: + + Slide + - - HOLD - MANT + + Accent + - - Hold: - Mantenimento: + + Dead + - - DEC - DEC + + 24dB/oct Filter + + + + lmms::LfoController - - Decay: - Decadimento: + + LFO Controller + - - SUST - SOST + + Base value + - - Sustain: - Sostegno: + + Oscillator speed + - - REL - RIL + + Oscillator amount + - - Release: - Rilascio: + + Oscillator phase + - - - AMT - Q.TÀ + + Oscillator waveform + - - - Modulation amount: - Quantità di modulazione: + + Frequency Multiplier + - - SPD - VEL + + Sample not found + + + + lmms::MalletsInstrument - - Frequency: - Frequenza: + + Hardness + - - FREQ x 100 - FREQ x 100 + + Position + - - Multiply LFO frequency by 100 - moltiplica frequenza dell'LFO per 100 + + Vibrato gain + - - MODULATE ENV AMOUNT - MODULA QUANTITA' INVILUPPO + + Vibrato frequency + - - Control envelope amount by this LFO - controlla la quantità di inviluppo con questo LFO + + Stick mix + - - ms/LFO: - ms/LFO: + + Modulator + - - Hint - Suggerimento + + Crossfade + - - Drag and drop a sample into this window. - Trascina e rilascia un campione in questa finestra. + + LFO speed + - - - EqControls - - Input gain - Guadagno in input + + LFO depth + - - Output gain - Guadagno in output + + ADSR + - - Low-shelf gain - Guadagno basse frequenze + + Pressure + - - Peak 1 gain - Guadagno picco 1 + + Motion + - - Peak 2 gain - Guadagno picco 2 + + Speed + - - Peak 3 gain - Guadagno Picco 3 + + Bowed + - - Peak 4 gain - Guadagno picco 4 + + Instrument + - - High-shelf gain - Guadagno alte frequenze + + Spread + - - HP res - Ris Passa Alto + + Randomness + - - Low-shelf res - Ris basse frequenze + + Marimba + - - Peak 1 BW - LB Picco 1 + + Vibraphone + - - Peak 2 BW - LB Picco 2 + + Agogo + - - Peak 3 BW - LB Picco 3 + + Wood 1 + - - Peak 4 BW - LB Picco 4 + + Reso + - - High-shelf res - Ris alte frequenze + + Wood 2 + - - LP res - Ris Passa Basso + + Beats + - - HP freq - Freq Passa Alto + + Two fixed + - - Low-shelf freq - Freq basse frequenze + + Clump + - - Peak 1 freq - Frequenza picco 1 + + Tubular bells + - - Peak 2 freq - Frequenza picco 2 + + Uniform bar + - - Peak 3 freq - Frequenza picco 3 + + Tuned bar + - - Peak 4 freq - Frequenza picco 4 + + Glass + - - High-shelf freq - Freq alte frequenze + + Tibetan bowl + + + + lmms::MeterModel - - LP freq - Freq Passa Basso + + Numerator + - - HP active - Attiva Passa Alto + + Denominator + + + + lmms::Microtuner - - Low-shelf active - Attiva basse frequenze + + Microtuner + - - Peak 1 active - Attiva picco 1 + + Microtuner on / off + - - Peak 2 active - Attiva picco 2 + + Selected scale + - - Peak 3 active - Attiva picco 3 + + Selected keyboard mapping + + + + lmms::MidiController - - Peak 4 active - Attiva picco 4 + + MIDI Controller + - - High-shelf active - Attiva alte frequenze + + unnamed_midi_controller + + + + lmms::MidiImport - - LP active - Attiva Passa Basso + + + Setup incomplete + - - LP 12 - Passa Basso 12 dB + + You have not set up a default soundfont in the settings dialog (Edit->Settings). Therefore no sound will be played back after importing this MIDI file. You should download a General MIDI soundfont, specify it in settings dialog and try again. + - - LP 24 - Passa Basso 24 dB + + You did not compile LMMS with support for SoundFont2 player, which is used to add default sound to imported MIDI files. Therefore no sound will be played back after importing this MIDI file. + - - LP 48 - Passa Basso 48 dB + + MIDI Time Signature Numerator + - - HP 12 - Passa Alto 12 dB + + MIDI Time Signature Denominator + - - HP 24 - Passa Alto 24 dB + + Numerator + - - HP 48 - Passa Alto 48 dB + + Denominator + - - Low-pass type - Tipo di passa basso + + + Tempo + - - High-pass type - Tipo di passa alto + + Track + + + + lmms::MidiJack - - Analyse IN - Analizza Input + + JACK server down + When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (title) + - - Analyse OUT - Analizza Output + + The JACK server seems to be shuted down. + When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (dialog message) + - EqControlsDialog + lmms::MidiPort - - HP - PA + + Input channel + - - Low-shelf - Basse frequenze (Low-shelf) + + Output channel + - - Peak 1 - Picco 1 + + Input controller + - - Peak 2 - Picco 2 + + Output controller + - - Peak 3 - Picco 3 + + Fixed input velocity + - - Peak 4 - Picco 4 + + Fixed output velocity + - - High-shelf - Alte frequenze (High-shelf) + + Fixed output note + - - LP - PB + + Output MIDI program + - - Input gain - Guadagno in input + + Base velocity + - - - - Gain - Guadagno + + Receive MIDI-events + - - Output gain - Guadagno in output + + Send MIDI-events + + + + lmms::Mixer - - Bandwidth: - Larghezza di banda: + + Master + - - Octave - Ottave + + + + Channel %1 + - - Resonance : - Risonanza: + + Volume + - - Frequency: - Frequenza: + + Mute + - - LP group - Gruppo PB + + Solo + + + + lmms::MixerRoute - - HP group - Gruppo PA + + + Amount to send from channel %1 to channel %2 + - EqHandle + lmms::MonstroInstrument - - Reso: - Risonanza: + + Osc 1 volume + - - BW: - Largh: + + Osc 1 panning + - - - Freq: - Freq: + + Osc 1 coarse detune + - - - ExportProjectDialog - - Export project - Esporta il progetto + + Osc 1 fine detune left + - - Export as loop (remove extra bar) - Esporta come loop (rimuove la battuta extra) + + Osc 1 fine detune right + - - Export between loop markers - Esporta solo tra i punti di loop + + Osc 1 stereo phase offset + - - Render Looped Section: - Rendering sezione ciclica: + + Osc 1 pulse width + - - time(s) + + Osc 1 sync send on rise - - File format settings - Impostazioni formato file + + Osc 1 sync send on fall + - - File format: - Formato file: + + Osc 2 volume + - - Sampling rate: - Frequenza di campionamento: + + Osc 2 panning + - - 44100 Hz - 44100 Hz + + Osc 2 coarse detune + - - 48000 Hz - 48000 Hz + + Osc 2 fine detune left + - - 88200 Hz - 88200 Hz + + Osc 2 fine detune right + - - 96000 Hz - 96000 Hz + + Osc 2 stereo phase offset + - - 192000 Hz - 192000 Hz + + Osc 2 waveform + - - Bit depth: - Risoluzione Bit: + + Osc 2 sync hard + - - 16 Bit integer - Interi 16 Bit + + Osc 2 sync reverse + - - 24 Bit integer - Interi 24 Bit + + Osc 3 volume + - - 32 Bit float - Virgola mobile 32 Bit + + Osc 3 panning + - - Stereo mode: - Modalità Stereofonia: + + Osc 3 coarse detune + - - Mono - Monofonico + + Osc 3 Stereo phase offset + - - Stereo - Stereofonico + + Osc 3 sub-oscillator mix + - - Joint stereo - Stereofonia compressa (Joint stereo) + + Osc 3 waveform 1 + - - Compression level: - Livello compressione: + + Osc 3 waveform 2 + - - Bitrate: - Bitrate: + + Osc 3 sync hard + - - 64 KBit/s - 64 KBit/s + + Osc 3 Sync reverse + - - 128 KBit/s - 128 KBit/s + + LFO 1 waveform + - - 160 KBit/s - 160 KBit/s + + LFO 1 attack + - - 192 KBit/s - 192 KBit/s + + LFO 1 rate + - - 256 KBit/s - 256 KBit/s + + LFO 1 phase + - - 320 KBit/s - 320 KBit/s + + LFO 2 waveform + - - Use variable bitrate - Usa bitrate variabile + + LFO 2 attack + + + + + LFO 2 rate + - - Quality settings - Impostazioni qualità + + LFO 2 phase + - - Interpolation: - Interpolazione: + + Env 1 pre-delay + - - Zero order hold - Basilare (Zero-order hold) + + Env 1 attack + - - Sinc worst (fastest) - Sinc peggiore (veloce) + + Env 1 hold + - - Sinc medium (recommended) - Sinc medio (suggerito) + + Env 1 decay + - - Sinc best (slowest) - Sinc migliore (lento) + + Env 1 sustain + - - Oversampling: - Sovracampionamento: + + Env 1 release + - - 1x (None) - 1x (Nessuna) + + Env 1 slope + - - 2x - 2x + + Env 2 pre-delay + - - 4x - 4x + + Env 2 attack + - - 8x - 8x + + Env 2 hold + - - Start - Inizia + + Env 2 decay + - - Cancel - Annulla + + Env 2 sustain + - - Could not open file - Non è stato possibile aprire il file + + Env 2 release + - - Could not open file %1 for writing. -Please make sure you have write permission to the file and the directory containing the file and try again! - Impossibile scrivere sul file %1. -Si prega di controllare i permessi di scrittura sul file e la cartella che lo contiene, e poi riprovare! + + Env 2 slope + - - Export project to %1 - Esporta il progetto in %1 + + Osc 2+3 modulation + - - ( Fastest - biggest ) - ( Più veloce - più grande ) + + Selected view + - - ( Slowest - smallest ) - ( Più lento - più piccolo ) + + Osc 1 - Vol env 1 + - - Error - Errore + + Osc 1 - Vol env 2 + - - Error while determining file-encoder device. Please try to choose a different output format. - Si è verificato un errore nel tentativo di determinare il dispositivo per la codifica del file. Si prega di selezionare un formato differente. + + Osc 1 - Vol LFO 1 + - - Rendering: %1% - Renderizzazione: %1% + + Osc 1 - Vol LFO 2 + - - - Fader - - Set value - Imposta valore + + Osc 2 - Vol env 1 + - - Please enter a new value between %1 and %2: - Inserire un valore compreso tra %1 e %2: + + Osc 2 - Vol env 2 + - - - FileBrowser - - User content + + Osc 2 - Vol LFO 1 - - Factory content + + Osc 2 - Vol LFO 2 - - Browser - Browser + + Osc 3 - Vol env 1 + - - Search - Cerca + + Osc 3 - Vol env 2 + - - Refresh list - Aggiorna lista + + Osc 3 - Vol LFO 1 + - - - FileBrowserTreeWidget - - Send to active instrument-track - Sostituisci questo strumento alla traccia attiva + + Osc 3 - Vol LFO 2 + - - Open containing folder - Apri cartella contenente + + Osc 1 - Phs env 1 + - - Song Editor - Mostra/nascondi Editor brani + + Osc 1 - Phs env 2 + - - BB Editor + + Osc 1 - Phs LFO 1 - - Send to new AudioFileProcessor instance + + Osc 1 - Phs LFO 2 - - Send to new instrument track + + Osc 2 - Phs env 1 - - (%2Enter) + + Osc 2 - Phs env 2 - - Send to new sample track (Shift + Enter) + + Osc 2 - Phs LFO 1 - - Loading sample - Caricamento campione + + Osc 2 - Phs LFO 2 + - - Please wait, loading sample for preview... - Attendere, stiamo caricando il file per l'anteprima... + + Osc 3 - Phs env 1 + - - Error - Errore + + Osc 3 - Phs env 2 + - - %1 does not appear to be a valid %2 file - %1 non sembra essere un file %2 valido + + Osc 3 - Phs LFO 1 + - - --- Factory files --- - --- File di fabbrica --- + + Osc 3 - Phs LFO 2 + - - - FlangerControls - - Delay samples - Campioni di delay + + Osc 1 - Pit env 1 + - - LFO frequency - Frequenza LFO + + Osc 1 - Pit env 2 + - - Seconds - Secondi + + Osc 1 - Pit LFO 1 + - - Stereo phase + + Osc 1 - Pit LFO 2 - - Regen - Regen + + Osc 2 - Pit env 1 + - - Noise - Rumore + + Osc 2 - Pit env 2 + - - Invert - Inverti + + Osc 2 - Pit LFO 1 + - - - FlangerControlsDialog - - DELAY - RIT. + + Osc 2 - Pit LFO 2 + - - Delay time: - Tempo di ritardo: + + Osc 3 - Pit env 1 + - - RATE - FREQ. + + Osc 3 - Pit env 2 + - - Period: - Periodo: + + Osc 3 - Pit LFO 1 + - - AMNT - Q.TÀ + + Osc 3 - Pit LFO 2 + - - Amount: - Quantità: + + Osc 1 - PW env 1 + - - PHASE + + Osc 1 - PW env 2 - - Phase: + + Osc 1 - PW LFO 1 - - FDBK - FDBK + + Osc 1 - PW LFO 2 + - - Feedback amount: - Quantità di feedback: + + Osc 3 - Sub env 1 + - - NOISE - RUMORE + + Osc 3 - Sub env 2 + - - White noise amount: - Quantità di rumore bianco: + + Osc 3 - Sub LFO 1 + - - Invert - INVERTI + + Osc 3 - Sub LFO 2 + - - - FreeBoyInstrument - - Sweep time - Tempo di sweep + + + Sine wave + - - Sweep direction - Direzione sweep + + Bandlimited Triangle wave + - - Sweep rate shift amount - Durata sweep + + Bandlimited Saw wave + - - - Wave pattern duty cycle - Pattern del duty cycle + + Bandlimited Ramp wave + - - Channel 1 volume - Volume del canale 1 + + Bandlimited Square wave + - - - - Volume sweep direction - Direzione sweep del volume + + Bandlimited Moog saw wave + - - - - Length of each step in sweep - Lunghezza di ogni passo nello sweep + + + Soft square wave + - - Channel 2 volume - Volume del canale 2 + + Absolute sine wave + - - Channel 3 volume - Volume del canale 3 + + + Exponential wave + - - Channel 4 volume - Volume del canale 4 + + White noise + - - Shift Register width - Ampiezza spostamento del registro + + Digital Triangle wave + - - Right output level - Volume uscita destra + + Digital Saw wave + - - Left output level - Volume uscita sinistra + + Digital Ramp wave + - - Channel 1 to SO2 (Left) - Canale 1 a SO2 (sinistra) + + Digital Square wave + - - Channel 2 to SO2 (Left) - Canale 2 a SO2 (sinistra) + + Digital Moog saw wave + - - Channel 3 to SO2 (Left) - Canale 3 a SO2 (sinistra) + + Triangle wave + - - Channel 4 to SO2 (Left) - Canale 4 a SO2 (sinistra) + + Saw wave + - - Channel 1 to SO1 (Right) - Canale 1 a SO1 (destra) + + Ramp wave + - - Channel 2 to SO1 (Right) - Canale 2 a SO1 (destra) + + Square wave + - - Channel 3 to SO1 (Right) - Canale 3 a SO1 (destra) + + Moog saw wave + - - Channel 4 to SO1 (Right) - Canale 4 a SO1 (destra) + + Abs. sine wave + - - Treble - Alti + + Random + - - Bass - Bassi + + Random smooth + - FreeBoyInstrumentView + lmms::NesInstrument - - Sweep time: - Tempo di sweep: - - - - Sweep time - Tempo di sweep + + Channel 1 enable + - - Sweep rate shift amount: - Velocità sweep: + + Channel 1 coarse detune + - - Sweep rate shift amount - Durata sweep + + Channel 1 volume + - - - Wave pattern duty cycle: - Pattern del duty cycle: + + Channel 1 envelope enable + - - - Wave pattern duty cycle - Pattern del duty cycle + + Channel 1 envelope loop + - - Square channel 1 volume: - Volume canale onda quadra 1: + + Channel 1 envelope length + - - Square channel 1 volume - Volume canale onda quadra 1 + + Channel 1 duty cycle + - - - - Length of each step in sweep: - Lunghezza di ogni passo nello sweep: + + Channel 1 sweep enable + - - - - Length of each step in sweep - Lunghezza di ogni passo nello sweep + + Channel 1 sweep amount + - - Square channel 2 volume: - Volume canale onda quadra 2: + + Channel 1 sweep rate + - - Square channel 2 volume - Volume canale onda quadra 2 + + Channel 2 enable + - - Wave pattern channel volume: - Volume canale pattern: + + Channel 2 coarse detune + - - Wave pattern channel volume - Volume canale pattern + + Channel 2 volume + - - Noise channel volume: - Volume canale rumore: + + Channel 2 envelope enable + - - Noise channel volume - Volume canale rumore + + Channel 2 envelope loop + - - SO1 volume (Right): - Volume SO1 (Destra): + + Channel 2 envelope length + - - SO1 volume (Right) - Volume SO1 (Destra) + + Channel 2 duty cycle + - - SO2 volume (Left): - Volume SO2 (Sinistra): + + Channel 2 sweep enable + - - SO2 volume (Left) - Volume SO2 (Sinistra) + + Channel 2 sweep amount + - - Treble: - Alti: + + Channel 2 sweep rate + - - Treble - Alti + + Channel 3 enable + - - Bass: - Bassi: + + Channel 3 coarse detune + - - Bass - Bassi + + Channel 3 volume + - - Sweep direction - Direzione sweep + + Channel 4 enable + - - - - - - Volume sweep direction - Direzione sweep del volume + + Channel 4 volume + - - Shift register width - Sposta la larghezza del registro + + Channel 4 envelope enable + - - Channel 1 to SO1 (Right) - Canale 1 a SO1 (destra) + + Channel 4 envelope loop + - - Channel 2 to SO1 (Right) - Canale 2 a SO1 (destra) + + Channel 4 envelope length + - - Channel 3 to SO1 (Right) - Canale 3 a SO1 (destra) + + Channel 4 noise mode + - - Channel 4 to SO1 (Right) - Canale 4 a SO1 (destra) + + Channel 4 frequency mode + - - Channel 1 to SO2 (Left) - Canale 1 a SO2 (sinistra) + + Channel 4 noise frequency + - - Channel 2 to SO2 (Left) - Canale 2 a SO2 (sinistra) + + Channel 4 noise frequency sweep + - - Channel 3 to SO2 (Left) - Canale 3 a SO2 (sinistra) + + Channel 4 quantize + - - Channel 4 to SO2 (Left) - Canale 4 a SO2 (sinistra) + + Master volume + - - Wave pattern graph - Grafico del modello d'onda + + Vibrato + - MixerLine - - - Channel send amount - Quantità di segnale inviata dal canale - + lmms::OpulenzInstrument - - Move &left - Sposta a &sinistra + + Patch + - - Move &right - Sposta a $destra + + Op 1 attack + - - Rename &channel - Rinomina &canale + + Op 1 decay + - - R&emove channel - R&imuovi canale + + Op 1 sustain + - - Remove &unused channels - Rimuovi canali in&utilizzati + + Op 1 release + - - Set channel color + + Op 1 level - - Remove channel color + + Op 1 level scaling - - Pick random channel color + + Op 1 frequency multiplier - - - MixerLineLcdSpinBox - - Assign to: - Assegna a: + + Op 1 feedback + - - New mixer Channel - Nuovo canale FX + + Op 1 key scaling rate + - - - Mixer - - Master - Principale + + Op 1 percussive envelope + - - - - Channel %1 - FX %1 + + Op 1 tremolo + - - Volume - Volume + + Op 1 vibrato + - - Mute - Silenziato + + Op 1 waveform + - - Solo - Solo + + Op 2 attack + - - - MixerView - - Mixer - Mixer FX + + Op 2 decay + - - Fader %1 - Volume FX %1 + + Op 2 sustain + - - Mute - Silenziato + + Op 2 release + - - Mute this mixer channel - Silenzia questo canale FX + + Op 2 level + - - Solo - Solo + + Op 2 level scaling + - - Solo mixer channel - Canale solo FX + + Op 2 frequency multiplier + - - - MixerRoute - - - Amount to send from channel %1 to channel %2 - Quantità da mandare dal canale %1 al canale %2 + + Op 2 key scaling rate + - - - GigInstrument - - Bank - Banco + + Op 2 percussive envelope + - - Patch - Patch + + Op 2 tremolo + - - Gain - Guadagno + + Op 2 vibrato + - - - GigInstrumentView - - - Open GIG file - Apri file GIG + + Op 2 waveform + - - Choose patch - Scegli patch + + FM + - - Gain: - Guadagno: + + Vibrato depth + - - GIG Files (*.gig) - Files GIG (*.gig) + + Tremolo depth + - GuiApplication - - - Working directory - Cartella di lavoro - - - - The LMMS working directory %1 does not exist. Create it now? You can change the directory later via Edit -> Settings. - La cartella di lavoro di LMMS %1 non esiste: Crearla ora? Questa cartella può essere cambiata in un secondo momento dal menu Modifica -> Impostazioni. - + lmms::OrganicInstrument - - Preparing UI - Caricamento interfaccia + + Distortion + - - Preparing song editor - Caricamento song editor + + Volume + + + + lmms::OscillatorObject - - Preparing mixer - Caricamento mixer + + Osc %1 waveform + - - Preparing controller rack - Caricamento rack controller + + Osc %1 harmonic + - - Preparing project notes - Caricamento note progetto + + + Osc %1 volume + - - Preparing beat/bassline editor - Caricamento editor beat/bassline + + + Osc %1 panning + - - Preparing piano roll - Caricamento Piano Roll + + Osc %1 stereo detuning + - - Preparing automation editor - Caricamento editor di automazione + + Osc %1 coarse detuning + - - - InstrumentFunctionArpeggio - - Arpeggio - Arpeggio + + Osc %1 fine detuning left + - - Arpeggio type - Tipo arpeggio + + Osc %1 fine detuning right + - - Arpeggio range - Estensione arpeggio + + Osc %1 phase-offset + - - Note repeats + + Osc %1 stereo phase-detuning - - Cycle steps - Note cicliche + + Osc %1 wave shape + - - Skip rate - Frequanza salto + + Modulation type %1 + + + + lmms::PatternTrack - - Miss rate - Tasso mancante + + Pattern %1 + - - Arpeggio time - Tempo arpeggio + + Clone of %1 + + + + lmms::PeakController - - Arpeggio gate - Ingresso arpeggio + + Peak Controller + - - Arpeggio direction - Direzione arpeggio + + Peak Controller Bug + - - Arpeggio mode - Modo arpeggio + + Due to a bug in older version of LMMS, the peak controllers may not be connect properly. Please ensure that peak controllers are connected properly and re-save this file. Sorry for any inconvenience caused. + + + + lmms::PeakControllerEffectControls - - Up - Su + + Base value + - - Down - Giù + + Modulation amount + - - Up and down - Su e giù + + Attack + - - Down and up - Giù e su + + Release + - - Random - Casuale + + Treshold + - - Free - Libero + + Mute output + - - Sort - Ordinamento + + Absolute value + - - Sync - Sincronizzato + + Amount multiplicator + - InstrumentFunctionArpeggioView - - - ARPEGGIO - ARPEGGIO - + lmms::Plugin - - RANGE - ESTENSIONE + + Plugin not found + - - Arpeggio range: - Estenzione arpeggio: + + The plugin "%1" wasn't found or could not be loaded! +Reason: "%2" + - - octave(s) - ottava(e) + + Error while loading plugin + - - REP + + Failed to load plugin "%1"! + + + lmms::ReverbSCControls - - Note repeats: + + Input gain - - time(s) + + Size - - CYCLE - CICLO + + Color + - - Cycle notes: - Note cicliche: + + Output gain + + + + lmms::SaControls - - note(s) - nota(e) + + Pause + - - SKIP - SALTA + + Reference freeze + - - Skip rate: - Frequanza salto: + + Waterfall + - - - - % - % + + Averaging + - - MISS - MANCANTE + + Stereo + - - Miss rate: - Tasso mancante: + + Peak hold + - - TIME - TEMPO + + Logarithmic frequency + - - Arpeggio time: - Tempo arpeggio: + + Logarithmic amplitude + - - ms - ms + + Frequency range + - - GATE - INGRESSO + + Amplitude range + - - Arpeggio gate: - Ingresso arpeggio: + + FFT block size + - - Chord: - Tipo di arpeggio: + + FFT window type + - - Direction: - Direzione: + + Peak envelope resolution + - - Mode: - Modo: + + Spectrum display resolution + - - - InstrumentFunctionNoteStacking - - octave - ottava + + Peak decay multiplier + - - - Major - Maggiore + + Averaging weight + - - Majb5 - Majb5 + + Waterfall history size + - - minor - minore + + Waterfall gamma correction + - - minb5 - minb5 + + FFT window overlap + - - sus2 - sus2 + + FFT zero padding + - - sus4 - sus4 + + + Full (auto) + - - aug - aug + + + + Audible + - - augsus4 - augsus4 + + Bass + - - tri - triade + + Mids + - - 6 - 6 + + High + - - 6sus4 - 6sus4 + + Extended + - - 6add9 - 6add9 + + Loud + - - m6 - m6 + + Silent + - - m6add9 - m6add9 + + (High time res.) + - - 7 - 7 + + (High freq. res.) + - - 7sus4 - 7sus4 + + Rectangular (Off) + - - 7#5 - 7#5 + + + Blackman-Harris (Default) + - - 7b5 - 7b5 + + Hamming + - - 7#9 - 7#9 + + Hanning + + + + lmms::SampleClip - - 7b9 - 7b9 + + Sample not found + + + + lmms::SampleTrack - - 7#5#9 - 7#5#9 + + Volume + - - 7#5b9 - 7#5b9 + + Panning + - - 7b5b9 - 7b5b9 + + Mixer channel + - - 7add11 - 7add11 + + + Sample track + + + + lmms::Scale - - 7add13 - 7add13 + + empty + + + + lmms::Sf2Instrument - - 7#11 - 7#11 + + Bank + - - Maj7 - Maj7 + + Patch + - - Maj7b5 - Maj7b5 + + Gain + - - Maj7#5 - Maj7#5 + + Reverb + - - Maj7#11 - Maj7#11 + + Reverb room size + - - Maj7add13 - Maj7add13 + + Reverb damping + - - m7 - m7 + + Reverb width + - - m7b5 - m7b5 + + Reverb level + - - m7b9 - m7b9 + + Chorus + - - m7add11 - m7add11 + + Chorus voices + - - m7add13 - m7add13 + + Chorus level + - - m-Maj7 - m-Maj7 + + Chorus speed + - - m-Maj7add11 - m-Maj7add11 + + Chorus depth + - - m-Maj7add13 - m-Maj7add13 + + A soundfont %1 could not be loaded. + + + + lmms::SfxrInstrument - - 9 - 9 + + Wave + + + + lmms::SidInstrument - - 9sus4 - 9sus4 + + Cutoff frequency + - - add9 - add9 + + Resonance + - - 9#5 - 9#5 + + Filter type + - - 9b5 - 9b5 + + Voice 3 off + - - 9#11 - 9#11 + + Volume + - - 9b13 - 9b13 + + Chip model + + + + lmms::SlicerT - - Maj9 - Maj9 + + Note threshold + - - Maj9sus4 - Maj9sus4 + + FadeOut + - - Maj9#5 - Maj9#5 + + Original bpm + - - Maj9#11 - Maj9#11 + + Slice snap + - - m9 - m9 + + BPM sync + - - madd9 - madd9 + + + slice_%1 + - - m9b5 - m9b5 + + Sample not found: %1 + + + + lmms::Song - - m9-Maj7 - m9-Maj7 + + Tempo + - - 11 - 11 + + Master volume + - - 11b9 - 11b9 + + Master pitch + - - Maj11 - Maj11 + + Aborting project load + - - m11 - m11 + + Project file contains local paths to plugins, which could be used to run malicious code. + - - m-Maj11 - m-Maj11 + + Can't load project: Project file contains local paths to plugins. + - - 13 - 13 + + LMMS Error report + - - 13#9 - 13#9 + + (repeated %1 times) + - - 13b9 - 13b9 + + The following errors occurred while loading: + + + + lmms::StereoEnhancerControls - - 13b5b9 - 13b5b9 + + Width + + + + lmms::StereoMatrixControls - - Maj13 - Maj13 + + Left to Left + - - m13 - m13 + + Left to Right + - - m-Maj13 - m-Maj13 + + Right to Left + - - Harmonic minor - Minore armonica + + Right to Right + + + + lmms::Track - - Melodic minor - Minore melodica + + Mute + - - Whole tone - Toni interi + + Solo + + + + lmms::TrackContainer - - Diminished - Diminuita + + Couldn't import file + - - Major pentatonic - Pentatonica maggiore + + Couldn't find a filter for importing file %1. +You should convert this file into a format supported by LMMS using another software. + - - Minor pentatonic - Pentatonica minore + + Couldn't open file + - - Jap in sen - Jap in sen + + Couldn't open file %1 for reading. +Please make sure you have read-permission to the file and the directory containing the file and try again! + - - Major bebop - Bebop maggiore + + Loading project... + - - Dominant bebop - Bebop dominante + + + Cancel + - - Blues - Blues + + + Please wait... + - - Arabic - Araba + + Loading cancelled + - - Enigmatic - Enigmatica + + Project loading was cancelled. + - - Neopolitan - Napoletana + + Loading Track %1 (%2/Total %3) + - - Neopolitan minor - Napoletana minore + + Importing MIDI-file... + + + + lmms::TripleOscillator - - Hungarian minor - Ungherese minore + + Sample not found + + + + lmms::VecControls - - Dorian - Dorica + + Display persistence amount + - - Phrygian - Frigia + + Logarithmic scale + - - Lydian - Lidia + + High quality + + + + lmms::VestigeInstrument - - Mixolydian - Misolidia + + Loading plugin + - - Aeolian - Eolia + + Please wait while loading the VST plugin... + + + + lmms::Vibed - - Locrian - Locria + + String %1 volume + - - Minor - Minore + + String %1 stiffness + - - Chromatic - Cromatica + + Pick %1 position + - - Half-Whole Diminished - Diminuita semitono-tono + + Pickup %1 position + - - 5 - Quinta + + String %1 panning + - - Phrygian dominant - Frigia dominante + + String %1 detune + - - Persian - Persiana + + String %1 fuzziness + - - Chords - Accordi + + String %1 length + - - Chord type - Tipo di accordo + + Impulse %1 + - - Chord range - Ampiezza dell'accordo + + String %1 + - InstrumentFunctionNoteStackingView + lmms::VoiceObject - - STACKING - ACCORDI + + Voice %1 pulse width + - - Chord: - Tipo di accordo: + + Voice %1 attack + - - RANGE - AMPIEZZA + + Voice %1 decay + - - Chord range: - Ampiezza degli accordi: + + Voice %1 sustain + - - octave(s) - ottava(e) + + Voice %1 release + - - - InstrumentMidiIOView - - ENABLE MIDI INPUT - ABILITA INGRESSO MIDI + + Voice %1 coarse detuning + - - ENABLE MIDI OUTPUT - ABILITA USCITA MIDI + + Voice %1 wave shape + - - - CHAN - This string must be be short, its width must be less than * width of LCD spin-box of two digits + + Voice %1 sync - - - VELOC - This string must be be short, its width must be less than * width of LCD spin-box of three digits + + Voice %1 ring modulate - - PROG - This string must be be short, its width must be less than the * width of LCD spin-box of three digits + + Voice %1 filtered - - NOTE - This string must be be short, its width must be less than * width of LCD spin-box of three digits - NOTA + + Voice %1 test + + + + lmms::VstPlugin - - MIDI devices to receive MIDI events from - Periferica MIDI da cui ricevere segnali MIDi + + + The VST plugin %1 could not be loaded. + - - MIDI devices to send MIDI events to - Periferica MIDI a cui mandare segnali MIDI + + Open Preset + Apri Preset - - CUSTOM BASE VELOCITY - VELOCITY BASE PERSONALIZZATA + + + VST Plugin Preset (*.fxp *.fxb) + VST Plugin Preset (*.fxp *.fxb) - - Specify the velocity normalization base for MIDI-based instruments at 100% note velocity. - Specifica la base di normalizzazione della velocity per strumenti MIDI al 100% della velocity della nota. + + : default + - - BASE VELOCITY - VELOCITY BASE + + Save Preset + Salva Preset - - - InstrumentTuningView - - MASTER PITCH - TRASPORTO + + .fxp + - - Enables the use of master pitch - Abilita l'uso del trasporto principale + + .FXP + - - - InstrumentSoundShaping - - VOLUME - VOLUME + + .FXB + - - Volume - Volume + + .fxb + - - CUTOFF - CUTOFF + + Loading plugin + - - - Cutoff frequency - Frequenza di taglio + + Please wait while loading VST plugin... + + + + lmms::WatsynInstrument - - RESO - RISO + + Volume A1 + - - Resonance - Risonanza + + Volume A2 + - - Envelopes/LFOs - Envelope/LFO + + Volume B1 + - - Filter type - Tipo di filtro + + Volume B2 + - - Q/Resonance - Q/Risonanza + + Panning A1 + - - Low-pass - Passa-basso + + Panning A2 + - - Hi-pass - Passa-alto + + Panning B1 + - - Band-pass csg - Passa-banda csg + + Panning B2 + - - Band-pass czpg - Passa-banda czpg + + Freq. multiplier A1 + - - Notch - Notch + + Freq. multiplier A2 + - - All-pass - Passa-tutto + + Freq. multiplier B1 + - - Moog - Moog + + Freq. multiplier B2 + - - 2x Low-pass - Passa-basso 2x + + Left detune A1 + - - RC Low-pass 12 dB/oct - Passa-basso RC 12 dB/ott + + Left detune A2 + - - RC Band-pass 12 dB/oct - Passa-banda RC 12 dB/ott + + Left detune B1 + - - RC High-pass 12 dB/oct - Passa-alto RC 12 dB/ott + + Left detune B2 + - - RC Low-pass 24 dB/oct - Passa-basso RC 24 dB/ott + + Right detune A1 + - - RC Band-pass 24 dB/oct - Passa-banda RC 24 dB/ott + + Right detune A2 + - - RC High-pass 24 dB/oct - Passa-alto RC 24 dB/ott + + Right detune B1 + - - Vocal Formant - Formante Vocale + + Right detune B2 + - - 2x Moog - 2x Moog + + A-B Mix + - - SV Low-pass - Passa-basso SV + + A-B Mix envelope amount + - - SV Band-pass - Passa-banda SV + + A-B Mix envelope attack + - - SV High-pass - Passa-alto SV + + A-B Mix envelope hold + - - SV Notch - Notch SV + + A-B Mix envelope decay + - - Fast Formant - Formante veloce + + A1-B2 Crosstalk + - - Tripole - Tre poli + + A2-A1 modulation + + + + + B2-B1 modulation + + + + + Selected graph + - InstrumentSoundShapingView + lmms::WaveShaperControls - - TARGET - OBIETTIVO + + Input gain + - - FILTER - FILTRO + + Output gain + + + + lmms::Xpressive - - FREQ - FREQ + + Selected graph + - - Cutoff frequency: - Frequenza di taglio: + + A1 + - - Hz - Hz + + A2 + - - Q/RESO - Q/RISO + + A3 + - - Q/Resonance: - Q/Risonanza: + + W1 smoothing + - - Envelopes, LFOs and filters are not supported by the current instrument. - Gli inviluppi, gli LFO e i filtri non sono supportati dallo strumento corrente. + + W2 smoothing + - - - InstrumentTrack - - - unnamed_track - traccia_senza_nome + + W3 smoothing + - - Base note - Nota base + + Panning 1 + - - First note + + Panning 2 - - Last note - Ultima nota + + Rel trans + + + + lmms::ZynAddSubFxInstrument - - Volume - Volume + + Portamento + - - Panning - Panning + + Filter frequency + - - Pitch - Altezza + + Filter resonance + - - Pitch range - Estenzione dell'altezza + + Bandwidth + - - Mixer channel - Canale FX + + FM gain + - - Master pitch - Altezza principale + + Resonance center frequency + - - Enable/Disable MIDI CC + + Resonance bandwidth - - CC Controller %1 + + Forward MIDI control change events + + + lmms::graphModel - - - Default preset - Impostazioni predefinite + + Graph + - InstrumentTrackView + lmms::gui::AmplifierControlDialog - - Volume - Volume + + VOL + - + Volume: - Volume: - - - - VOL - VOL + - - Panning - Panning + + PAN + - + Panning: - Panning: + - - PAN - PAN + + LEFT + - - MIDI - MIDI + + Left gain: + - - Input - Ingresso + + RIGHT + - - Output - Uscita + + Right gain: + + + + lmms::gui::AudioAlsaSetupWidget - - Open/Close MIDI CC Rack + + Device - - Channel %1: %2 - FX %1: %2 + + Channels + - InstrumentTrackWindow + lmms::gui::AudioFileProcessorView - - GENERAL SETTINGS - IMPOSTAZIONI GENERALI + + Open sample + - - Volume - Volume + + Reverse sample + - - Volume: - Volume: + + Disable loop + - - VOL - VOL + + Enable loop + - - Panning - Panning + + Enable ping-pong loop + - - Panning: - Panning: + + Continue sample playback across notes + - - PAN - PAN + + Amplify: + - - Pitch - Altezza + + Start point: + - - Pitch: - Altezza: + + End point: + - - cents - centesimi + + Loopback point: + + + + lmms::gui::AudioFileProcessorWaveView - - PITCH - ALTEZZA + + Sample length: + + + + lmms::gui::AutomationClipView - - Pitch range (semitones) - Ampiezza dell'altezza (in semitoni) + + Open in Automation editor + - - RANGE - AMPIEZZA + + Clear + - - Mixer channel - Canale FX + + Reset name + Reimposta il nome - - CHANNEL - FX + + Change name + - - Save current instrument track settings in a preset file - Salva le impostazioni di questa traccia in un file preset + + Set/clear record + - - SAVE - SALVA + + Flip Vertically (Visible) + - - Envelope, filter & LFO - Inviluppo, filtro e LFO + + Flip Horizontally (Visible) + - - Chord stacking & arpeggio - Accordi e arpeggi + + %1 Connections + - - Effects - Effetti + + Disconnect "%1" + - - MIDI - MIDI + + Model is already connected to this clip. + + + + lmms::gui::AutomationEditor - - Miscellaneous - Varie + + Edit Value + - - Save preset - Salva il preset + + New outValue + - - XML preset file (*.xpf) - File di preset XML (*.xpf) + + New inValue + - - Plugin - Plugin + + Please open an automation clip by double-clicking on it! + - JackApplicationW + lmms::gui::AutomationEditorWindow - - NSM applications cannot use abstract or absolute paths - Le applicazioni NSM non possono utilizzare percorsi astratti o assoluti + + Play/pause current clip (Space) + - - NSM applications cannot use CLI arguments - Le applicazioni NSM non possono usare argomenti CLI + + Stop playing of current clip (Space) + - - You need to save the current Carla project before NSM can be used - È necessario salvare l'attuale progetto Carla prima di poter utilizzare NSM + + Edit actions + - - - JuceAboutW - - About JUCE - Informazioni su JUCE + + Draw mode (Shift+D) + - - <b>About JUCE</b> - <b>Informazioni su JUCE</b> + + Erase mode (Shift+E) + - - This program uses JUCE version 3.x.x. - Questo programma utilizza JUCE versione 3.x.x. + + Draw outValues mode (Shift+C) + - - JUCE (Jules' Utility Class Extensions) is an all-encompassing C++ class library for developing cross-platform software. - -It contains pretty much everything you're likely to need to create most applications, and is particularly well-suited for building highly-customised GUIs, and for handling graphics and sound. - -JUCE is licensed under the GNU Public Licence version 2.0. -One module (juce_core) is permissively licensed under the ISC. - -Copyright (C) 2017 ROLI Ltd. - JUCE (Jules 'Utility Class Extensions) è una libreria di classi C ++ onnicomprensiva per lo sviluppo di software multipiattaforma. - -Contiene praticamente tutto il necessario per creare la maggior parte delle applicazioni ed è particolarmente adatto per la creazione di GUI altamente personalizzate e per la gestione di grafica e audio. - -JUCE è concesso in licenza con GNU Public License versione 2.0. -Un modulo (juce_core) è autorizzato in base all'ISC. - -Copyright (C) 2017 ROLI Ltd. + + Edit tangents mode (Shift+T) + - - This program uses JUCE version %1. - Questo programma utilizza la versione JUCE % 1. + + Flip vertically + - - - Knob - - Set linear - Modalità lineare + + Flip horizontally + - - Set logarithmic - Modalità logaritmica + + Interpolation controls + - - - Set value - Imposta valore + + Discrete progression + - - Please enter a new value between -96.0 dBFS and 6.0 dBFS: - Inserire un nuovo valore tra -96.0 dBFS e 6.0 dBFS: + + Linear progression + - - Please enter a new value between %1 and %2: - Inserire un valore compreso tra %1 e %2: + + Cubic Hermite progression + - - - LadspaControl - - Link channels - Abbina i canali + + Tension value for spline + - - - LadspaControlDialog - - Link Channels - Canali abbinati + + Tension: + - - Channel - Canale + + Zoom controls + + + + + Horizontal zooming + + + + + Vertical zooming + + + + + Quantization controls + - - - LadspaControlView - - Link channels - Abbina i canali + + Quantization + - - Value: - Valore: + + Clear ghost notes + - - - LadspaEffect - - Unknown LADSPA plugin %1 requested. - Il plugin LADSPA %1 richiesto è sconosciuto. + + + Automation Editor - no clip + - - - LcdFloatSpinBox - - Set value - Imposta valore + + + Automation Editor - %1 + - - Please enter a new value between %1 and %2: - Inserire un valore compreso tra %1 e %2: + + Model is already connected to this clip. + - LcdSpinBox + lmms::gui::BassBoosterControlDialog - - Set value - Imposta valore + + FREQ + - - Please enter a new value between %1 and %2: - Inserire un valore compreso tra %1 e %2: + + Frequency: + - - - LeftRightNav - - - - Previous - Precedente + + GAIN + - - - - Next - Successivo + + Gain: + - - Previous (%1) - Precedente (%1) + + RATIO + - - Next (%1) - Successivo (%1) + + Ratio: + - LfoController - - - LFO Controller - Controller dell'LFO - - - - Base value - Valore di base - + lmms::gui::BitInvaderView - - Oscillator speed - Velocità dell'oscillatore + + Sample length + - - Oscillator amount - Quantità di oscillatore + + Draw your own waveform here by dragging your mouse on this graph. + - - Oscillator phase - Fase dell'oscillatore + + + Sine wave + - - Oscillator waveform - Forma d'onda dell'oscillatore + + + Triangle wave + - - Frequency Multiplier - Moltiplicatore della frequenza + + + Saw wave + - - - LfoControllerDialog - - LFO - LFO + + + Square wave + - - BASE - BASE + + + White noise + - - Base: - Base: + + + User-defined wave + - - FREQ - FREQ + + + Smooth waveform + - - LFO frequency: - Frequenza LFO: + + Interpolation + - - AMNT - Q.TÀ + + Normalize + + + + lmms::gui::BitcrushControlDialog - - Modulation amount: - Quantità di modulazione: + + IN + - - PHS - FASE + + OUT + - - Phase offset: - Scostamento della fase: + + + GAIN + - - degrees - gradi + + Input gain: + - - Sine wave - Onda sinusoidale + + NOISE + - - Triangle wave - Onda triangolare + + Input noise: + - - Saw wave - Onda a dente di sega + + Output gain: + - - Square wave - Onda quadra + + CLIP + - - Moog saw wave - Onda Moog + + Output clip: + - - Exponential wave - Onda esponenziale + + Rate enabled + - - White noise - Rumore bianco + + Enable sample-rate crushing + - - User-defined shape. -Double click to pick a file. - Forma personalizzata. -Fai doppio click per scegliere un file. + + Depth enabled + - - Mutliply modulation frequency by 1 - Moltiplica la frequenza di modulazione per 1 + + Enable bit-depth crushing + - - Mutliply modulation frequency by 100 - Moltiplica la frequenza di modulazione per 100 + + FREQ + - - Divide modulation frequency by 100 - Dividi la frequenza di modulazione per 100 + + Sample rate: + - - - Engine - - Generating wavetables - Generazione di tabelle d'onda + + STEREO + - - Initializing data structures - Inizializzazione strutture dati + + Stereo difference: + - - Opening audio and midi devices - Accesso ai dispositivi audio e midi + + QUANT + - - Launching mixer threads - Avviamento threads del mixer + + Levels: + - MainWindow - - - Configuration file - File di configurazione - - - - Error while parsing configuration file at line %1:%2: %3 - Si è riscontrato un errore nell'analisi del file di configurazione alle linee %1:%2: %3 - + lmms::gui::CPULoadWidget - - Could not open file - Non è stato possibile aprire il file + + DSP total: %1% + - - Could not open file %1 for writing. -Please make sure you have write permission to the file and the directory containing the file and try again! - Impossibile scrivere sul file %1. -Si prega di controllare i permessi di scrittura sul file e la cartella che lo contiene, e poi riprovare! + + - Notes and setup: %1% + - - Project recovery - Recupero del progetto + + - Instruments: %1% + - - There is a recovery file present. It looks like the last session did not end properly or another instance of LMMS is already running. Do you want to recover the project of this session? - E' stato trovato un file di riserva. Questo accade se la sessione precedente non è stata chiusa in modo appropriato o un'altra istanza di LMMS è già in esecuzione. Recuperare il progetto di questa sessione? + + - Effects: %1% + - - - Recover - Recupera + + - Mixing: %1% + + + + lmms::gui::CarlaInstrumentView - - Recover the file. Please don't run multiple instances of LMMS when you do this. - Recupera il file. Non usare instanze multiple di LMMS quando effettui il recupero. + + Show GUI + - - - Discard - Elimina + + Click here to show or hide the graphical user interface (GUI) of Carla. + - - Launch a default session and delete the restored files. This is not reversible. - Avvia una sessione predefinita ed elimina i file ripristinati. Questo azione non è reversibile. + + Params + - - Version %1 - Versione %1 + + Available from Carla version 2.1 and up. + + + + lmms::gui::CarlaParamsView - - Preparing plugin browser - Caricamento plugin del browser + + Search.. + - - Preparing file browsers - Caricamento file del browser + + Clear filter text + - - My Projects - I miei Progetti + + Only show knobs with a connection. + - - My Samples - I miei Campioni + + - Parameters + + + + lmms::gui::ClipView - - My Presets - I miei Modelli + + Current position + - - My Home - Percorsi di Lavoro + + Current length + - - Root directory - Percorso principale + + + %1:%2 (%3:%4 to %5:%6) + - - Volumes - Volumi + + Press <%1> and drag to make a copy. + - - My Computer - Computer + + Press <%1> for free resizing. + - - &File - &File + + Hint + - - &New - &Nuovo + + Delete (middle mousebutton) + - - &Open... - &Apri... + + Delete selection (middle mousebutton) + - - Loading background picture - Caricamento immagine di sfondo + + Cut + - - &Save - &Salva + + Cut selection + - - Save &As... - Salva &come... + + Merge Selection + - - Save as New &Version - Salva come nuova &versione + + Copy + - - Save as default template - Salva come modello predefinito + + Copy selection + - - Import... - Importa... + + Paste + - - E&xport... - E&sporta... + + Mute/unmute (<%1> + middle click) + - - E&xport Tracks... - E&sporta tracce... + + Mute/unmute selection (<%1> + middle click) + - - Export &MIDI... - Esporta &MIDI... + + Clip color + - - &Quit - &Esci + + Change + - - &Edit - &Modifica + + Reset + Ripristina - - Undo - Annulla + + Pick random + + + + lmms::gui::CompressorControlDialog - - Redo - Ripeti + + Threshold: + - - Settings - Impostazioni + + Volume at which the compression begins to take place + - - &View - &Visualizza + + Ratio: + - - &Tools - S&trumenti + + How far the compressor must turn the volume down after crossing the threshold + - - &Help - &Aiuto + + Attack: + - - Online Help - Aiuto Online + + Speed at which the compressor starts to compress the audio + - - Help - Aiuto + + Release: + - - About - Informazioni su + + Speed at which the compressor ceases to compress the audio + - - Create new project - Crea nuovo progetto + + Knee: + - - Create new project from template - Crea nuovo progetto da modello + + Smooth out the gain reduction curve around the threshold + - - Open existing project - Apri progetto esistente + + Range: + - - Recently opened projects - Progetti aperti di recente + + Maximum gain reduction + - - Save current project - Salva questo progetto + + Lookahead Length: + - - Export current project - Esporta questo progetto + + How long the compressor has to react to the sidechain signal ahead of time + - - Metronome - Metronomo + + Hold: + - - - Song Editor - Mostra/nascondi Editor brani + + Delay between attack and release stages + - - - Beat+Bassline Editor - Editor Beat+Bassline + + RMS Size: + - - - Piano Roll - Mostra/nascondi il Piano-Roll + + Size of the RMS buffer + - - - Automation Editor - Mostra/nascondi Editor automazione + + Input Balance: + - - - Mixer - Mostra/nascondi mixer effetti + + Bias the input audio to the left/right or mid/side + - - Show/hide controller rack - Mostra/nascondi il rack di controller + + Output Balance: + - - Show/hide project notes - Mostra/nascondi note del progetto + + Bias the output audio to the left/right or mid/side + - - Untitled - Senza_nome + + Stereo Balance: + - - Recover session. Please save your work! - Sessione di recupero. Salva al più presto! + + Bias the sidechain signal to the left/right or mid/side + - - LMMS %1 - LMMS %1 + + Stereo Link Blend: + - - Recovered project not saved - Progetto recuperato non salvato + + Blend between unlinked/maximum/average/minimum stereo linking modes + - - This project was recovered from the previous session. It is currently unsaved and will be lost if you don't save it. Do you want to save it now? - Il progetto è stato recuperato dalla sessione precedente. Attualmente non è stato salvato. Vuoi salvarlo adesso per evitare di perderlo? + + Tilt Gain: + - - Project not saved - Progetto non salvato + + Bias the sidechain signal to the low or high frequencies. -6 db is lowpass, 6 db is highpass. + - - The current project was modified since last saving. Do you want to save it now? - Questo progetto è stato modificato dopo l'ultimo salvataggio. Vuoi salvarlo adesso? + + Tilt Frequency: + - - Open Project - Apri Progetto + + Center frequency of sidechain tilt filter + - - LMMS (*.mmp *.mmpz) - LMMS (*.mmp *.mmpz) + + Mix: + - - Save Project - Salva Progetto + + Balance between wet and dry signals + - - LMMS Project - Progetto LMMS + + Auto Attack: + - - LMMS Project Template - Modello di Progetto LMMS + + Automatically control attack value depending on crest factor + - - Save project template - Salva come modello di progetto + + Auto Release: + - - Overwrite default template? - Sovrascrivere il progetto default? + + Automatically control release value depending on crest factor + - - This will overwrite your current default template. - In questo modo verrà modificato il tuo progetto di default corrente. + + Output gain + - - Help not available - Aiuto non disponibile + + + Gain + - - Currently there's no help available in LMMS. -Please visit http://lmms.sf.net/wiki for documentation on LMMS. - Al momento non è disponibile alcun aiuto in LMMS. -Visitare http://lmms.sf.net/wiki per la documentazione di LMMS. + + Output volume + - - Controller Rack - Mostra/nascondi il rack di controller + + Input gain + - - Project Notes - Mostra/nascondi le note del progetto + + Input volume + - - Fullscreen + + Root Mean Square - - Volume as dBFS - Volume in dBFS + + Use RMS of the input + - - Smooth scroll - Scorrimento morbido + + Peak + - - Enable note labels in piano roll - Abilita l'etichetta delle note nel piano roll + + Use absolute value of the input + - - MIDI File (*.mid) - File MIDI (*.mid) + + Left/Right + - - - untitled - senza_nome + + Compress left and right audio + - - - Select file for project-export... - Scegliere il file per l'esportazione del progetto... + + Mid/Side + - - Select directory for writing exported tracks... - Seleziona una directory per le tracce esportate... + + Compress mid and side audio + - - Save project - Salva progetto + + Compressor + - - Project saved - Progeto salvato + + Compress the audio + - - The project %1 is now saved. - Il progetto %1 è stato salvato. + + Limiter + - - Project NOT saved. - Il progetto NON è stato salvato. + + Set Ratio to infinity (is not guaranteed to limit audio volume) + - - The project %1 was not saved! - Il progetto %1 non è stato salvato! + + Unlinked + - - Import file - Importa file + + Compress each channel separately + - - MIDI sequences - Sequenze MIDI + + Maximum + - - Hydrogen projects - Progetti Hydrogen + + Compress based on the loudest channel + - - All file types - Tutti i tipi di file + + Average + - - - MeterDialog - - - Meter Numerator - Numeratore della misura + + Compress based on the averaged channel volume + - - Meter numerator - Numeratore misura + + Minimum + - - - Meter Denominator - Denominatore della misura + + Compress based on the quietest channel + - - Meter denominator - Denominatore misura + + Blend + - - TIME SIG - TEMPO + + Blend between stereo linking modes + - - - MeterModel - - Numerator - Numeratore + + Auto Makeup Gain + - - Denominator - Denominatore + + Automatically change makeup gain depending on threshold, knee, and ratio settings + - - - MidiCCRackView - - - MIDI CC Rack - %1 + + + Soft Clip - - MIDI CC Knobs: + + Play the delta signal - - CC %1 + + Use the compressor's output as the sidechain input - - - MidiController - - MIDI Controller - Controller MIDI + + Lookahead Enabled + - - unnamed_midi_controller - controller_midi_senza_nome + + Enable Lookahead, which introduces 20 milliseconds of latency + - MidiImport + lmms::gui::ControllerConnectionDialog - - - Setup incomplete - Impostazioni incomplete - - - - You have not set up a default soundfont in the settings dialog (Edit->Settings). Therefore no sound will be played back after importing this MIDI file. You should download a General MIDI soundfont, specify it in settings dialog and try again. - Non hai impostato un soundfont predefinito nella finestra di dialogo delle impostazioni (Modifica-> Impostazioni). Pertanto, nessun suono verrà riprodotto dopo aver importato questo file MIDI. È necessario scaricare un General MIDI, specificarlo nella finestra di dialogo delle impostazioni e riprovare. - - - - You did not compile LMMS with support for SoundFont2 player, which is used to add default sound to imported MIDI files. Therefore no sound will be played back after importing this MIDI file. - Non hai compilato LMMS con il supporto per SoundFont2 Player, che viene usato per aggiungere suoni predefiniti ai file MIDI importati. Quindi, nessun suono verrà riprodotto dopo aver aperto questo file MIDI. + + Connection Settings + - - MIDI Time Signature Numerator - Numeratore indicazione del tempo MIDI + + MIDI CONTROLLER + - - MIDI Time Signature Denominator - Denominatore indicazione del tempo MIDI + + Input channel + - - Numerator - Numeratore + + CHANNEL + - - Denominator - Denominatore + + Input controller + - - Track - Traccia + + CONTROLLER + - - - MidiJack - - JACK server down - When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (title) - Il server JACK è down + + + Auto Detect + - - The JACK server seems to be shuted down. - When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (dialog message) - Il server JACK sembra spento. + + MIDI-devices to receive MIDI-events from + - - - MidiPatternW - - MIDI Pattern - Schema MIDI + + USER CONTROLLER + - - Time Signature: - Indicazione di tempo: + + MAPPING FUNCTION + - - - - 1/4 - 1/4 + + OK + - - 2/4 - 2/4 + + Cancel + - - 3/4 - 3/4 + + LMMS + - - 4/4 - 4/4 + + Cycle Detected. + + + + lmms::gui::ControllerRackView - - 5/4 - 5/4 + + Controller Rack + - - 6/4 - 6/4 + + Add + - - Measures: - Misure: + + Confirm Delete + - - - - 1 - 1 + + Confirm delete? There are existing connection(s) associated with this controller. There is no way to undo. + + + + lmms::gui::ControllerView - - 2 - 2 + + Controls + - - 3 - 3 + + Rename controller + - - 4 - 4 + + Enter the new name for this controller + - - 5 - Quinta + + LFO + - - 6 - 6 + + Move &up + - - 7 - 7 + + Move &down + - - 8 - 8 + + &Remove this controller + - - 9 - 9 + + Re&name this controller + + + + lmms::gui::CrossoverEQControlDialog - - 10 - 10 + + Band 1/2 crossover: + - - 11 - 11 + + Band 2/3 crossover: + - - 12 - 12 + + Band 3/4 crossover: + - - 13 - 13 + + Band 1 gain + - - 14 - 14 + + Band 1 gain: + - - 15 - 15 + + Band 2 gain + - - 16 - 16 + + Band 2 gain: + - - Default Length: - Lunghezza predefinita: + + Band 3 gain + - - - 1/16 - 1/16 + + Band 3 gain: + - - - 1/15 - 1/15 + + Band 4 gain + - - - 1/12 - 1/12 + + Band 4 gain: + - - - 1/9 - 1/9 + + Band 1 mute + - - - 1/8 - 1/8 + + Mute band 1 + - - - 1/6 - 1/6 + + Band 2 mute + - - - 1/3 - 1/3 + + Mute band 2 + - - - 1/2 - 1/2 + + Band 3 mute + - - Quantize: - Quantizzazione: + + Mute band 3 + - - &File - &File + + Band 4 mute + - - &Edit - &Modifica + + Mute band 4 + + + + lmms::gui::DelayControlsDialog - - &Quit - &Esci + + DELAY + - - &Insert Mode - &Modo Inserimento + + Delay time + - - F - F + + FDBK + - - &Velocity Mode - &Modo Velocity + + Feedback amount + - - D - Re + + RATE + - - Select All - Seleziona tutto + + LFO frequency + - - A - La + + AMNT + - - - MidiPort - - Input channel - Canale di ingresso + + LFO amount + - - Output channel - Canale di uscita + + Out gain + - - Input controller - Controller in entrata + + Gain + + + + + lmms::gui::DispersionControlDialog + + + AMOUNT + - - Output controller - Controller in uscita + + Number of all-pass filters + - - Fixed input velocity - Velocity fissa in ingresso + + FREQ + - - Fixed output velocity - Velocity fissa in uscita + + Frequency: + - - Fixed output note - Nota fissa in uscita + + RESO + - - Output MIDI program - Programma MIDI in uscita + + Resonance: + - - Base velocity - Velocity base + + FEED + - - Receive MIDI-events - Ricevi eventi MIDI + + Feedback: + - - Send MIDI-events - Invia eventi MIDI + + DC Offset Removal + - - - MidiSetupWidget - - Device - Dispositivo + + Remove DC Offset + - MonstroInstrument + lmms::gui::DualFilterControlDialog - - Osc 1 volume - Volume osc 1 + + + FREQ + - - Osc 1 panning - Bilanciamento osc 1 + + + Cutoff frequency + - - Osc 1 coarse detune - Intonazione al semitono osc 1 + + + RESO + - - Osc 1 fine detune left - Intonazione precisa osc 1 sinistro + + + Resonance + - - Osc 1 fine detune right - Intonazione precisa osc 1 destro + + + GAIN + - - Osc 1 stereo phase offset - Spostamento di fase osc 1 + + + Gain + - - Osc 1 pulse width - Larghezza impulso osc 1 + + MIX + - - Osc 1 sync send on rise - Manda sync alla salita osc 1 + + Mix + - - Osc 1 sync send on fall - Manda sync alla discesa osc 1 + + Filter 1 enabled + - - Osc 2 volume - Volume osc 2 + + Filter 2 enabled + - - Osc 2 panning - Bilanciamento osc 2 + + Enable/disable filter 1 + - - Osc 2 coarse detune - Intonazione al semitono osc 2 + + Enable/disable filter 2 + + + + lmms::gui::DynProcControlDialog - - Osc 2 fine detune left - Intonazione precisa osc 2 sinistro + + INPUT + - - Osc 2 fine detune right - Intonazione precisa osc 2 destro + + Input gain: + - - Osc 2 stereo phase offset - Spostamento di fase osc 2 + + OUTPUT + - - Osc 2 waveform - Forma d'onda osc 2 + + Output gain: + - - Osc 2 sync hard - Sync hard osc 2 + + ATTACK + - - Osc 2 sync reverse - Sync inverso osc 2 + + Peak attack time: + - - Osc 3 volume - Volume osc 3 + + RELEASE + - - Osc 3 panning - Bilanciamento osc 3 + + Peak release time: + - - Osc 3 coarse detune - Intonazione al semitono osc 3 + + + Reset wavegraph + Ripristina il grafico d'onda - - Osc 3 Stereo phase offset - Osc 3 Spostamento di fase stereo + + + Smooth wavegraph + - - Osc 3 sub-oscillator mix - Missaggio sub-oscillatori di Osc 3 + + + Increase wavegraph amplitude by 1 dB + - - Osc 3 waveform 1 - Forma d'onda 1 osc 3 + + + Decrease wavegraph amplitude by 1 dB + - - Osc 3 waveform 2 - Forma d'onda 2 osc 3 + + Stereo mode: maximum + - - Osc 3 sync hard - Sync hard osc 3 + + Process based on the maximum of both stereo channels + - - Osc 3 Sync reverse - Sync inverso osc 3 + + Stereo mode: average + - - LFO 1 waveform - Forma d'onda LFO 1 + + Process based on the average of both stereo channels + - - LFO 1 attack - Attacco LFO 1 + + Stereo mode: unlinked + - - LFO 1 rate - Periodo LFO 1 + + Process each stereo channel independently + + + + lmms::gui::Editor - - LFO 1 phase - Fase LFO 1 + + Transport controls + - - LFO 2 waveform - Forma d'onda LFO 2 + + Play (Space) + - - LFO 2 attack - Attacco LFO 2 + + Stop (Space) + - - LFO 2 rate - Periodo LFO 2 + + Record + - - LFO 2 phase - Fase LFO 2 + + Record while playing + - - Env 1 pre-delay - Pre-ritardo inv 1 + + Toggle Step Recording + + + + lmms::gui::EffectRackView - - Env 1 attack - Attacco inv 1 + + EFFECTS CHAIN + - - Env 1 hold - Mantenimento inv 1 + + Add effect + + + + lmms::gui::EffectSelectDialog - - Env 1 decay - Decadimento inv 1 + + Add effect + - - Env 1 sustain - Sostegno inv 1 + + + Name + - - Env 1 release - Rilascio inv 1 + + Type + - - Env 1 slope - Curvatura inv 1 + + All + - - Env 2 pre-delay - Pre-ritardo inv 2 + + Search + - - Env 2 attack - Attacco inv 2 + + Description + - - Env 2 hold - Mantenimento inv 2 + + Author + + + + lmms::gui::EffectView - - Env 2 decay - Decadimento inv 2 + + On/Off + - - Env 2 sustain - Sostegno inv 2 + + W/D + - - Env 2 release - Rilascio inv 2 + + Wet Level: + - - Env 2 slope - Curvatura inv 2 + + DECAY + - - Osc 2+3 modulation - Modulazione osc 2+3 + + Time: + - - Selected view - Seleziona vista + + GATE + - - Osc 1 - Vol env 1 - Osc 1 - Vol inv 1 + + Gate: + - - Osc 1 - Vol env 2 - Osc 1 - Vol inv 2 + + Controls + - - Osc 1 - Vol LFO 1 - Osc 1 - Vol LFO 1 + + Move &up + - - Osc 1 - Vol LFO 2 - Osc 1 - Vol LFO 2 + + Move &down + - - Osc 2 - Vol env 1 - Osc 2 - Vol inv 1 + + &Remove this plugin + + + + lmms::gui::EnvelopeAndLfoView - - Osc 2 - Vol env 2 - Osc 2 - Vol inv 2 + + + AMT + - - Osc 2 - Vol LFO 1 - Osc 2 - Vol LFO 1 + + + Modulation amount: + - - Osc 2 - Vol LFO 2 - Osc 2 - Vol LFO 2 + + + DEL + - - Osc 3 - Vol env 1 - Osc 3 - Vol inv 1 + + + Pre-delay: + - - Osc 3 - Vol env 2 - Osc 3 - Vol inv 2 + + + ATT + - - Osc 3 - Vol LFO 1 - Osc 3 - Vol LFO 1 + + + Attack: + - - Osc 3 - Vol LFO 2 - Osc 3 - Vol LFO 2 + + HOLD + - - Osc 1 - Phs env 1 - Osc 1 - Fas inv 1 + + Hold: + - - Osc 1 - Phs env 2 - Osc 1 - Fas inv 2 + + DEC + - - Osc 1 - Phs LFO 1 - Osc 1 - Fas LFO 1 + + Decay: + - - Osc 1 - Phs LFO 2 - Osc 1 - Fas LFO 2 + + SUST + - - Osc 2 - Phs env 1 - Osc 2 - Fas inv 1 + + Sustain: + - - Osc 2 - Phs env 2 - Osc 2 - Fas inv 2 + + REL + - - Osc 2 - Phs LFO 1 - Osc 2 - Fas LFO 1 + + Release: + - - Osc 2 - Phs LFO 2 - Osc 2 - Fas LFO 2 + + SPD + - - Osc 3 - Phs env 1 - Osc 3 - Fas inv 1 + + Frequency: + - - Osc 3 - Phs env 2 - Osc 3 - Fas inv 2 + + FREQ x 100 + - - Osc 3 - Phs LFO 1 - Osc 3 - Fas LFO 1 + + Multiply LFO frequency by 100 + - - Osc 3 - Phs LFO 2 - Osc 3 - Fas LFO 2 + + MOD ENV AMOUNT + - - Osc 1 - Pit env 1 - Osc 1 - Alt inv 1 + + Control envelope amount by this LFO + - - Osc 1 - Pit env 2 - Osc 1 - Alt inv 2 + + Hint + - - Osc 1 - Pit LFO 1 - Osc 1 - Alt LFO 1 + + Drag and drop a sample into this window. + + + + lmms::gui::EnvelopeGraph - - Osc 1 - Pit LFO 2 - Osc 1 - Alt LFO 2 + + Scaling + - - Osc 2 - Pit env 1 - Osc 2 - Alt inv 1 + + Dynamic + - - Osc 2 - Pit env 2 - Osc 2 - Alt inv 2 + + Uses absolute spacings but switches to relative spacing if it's running out of space + - - Osc 2 - Pit LFO 1 - Osc 2 - Alt LFO 1 + + Absolute + - - Osc 2 - Pit LFO 2 - Osc 2 - Alt LFO 2 + + Provides enough potential space for each segment but does not scale + - - Osc 3 - Pit env 1 - Osc 3 - Alt inv 1 + + Relative + - - Osc 3 - Pit env 2 - Osc 3 - Alt inv 2 + + Always uses all of the available space to display the envelope graph + + + + lmms::gui::EqControlsDialog - - Osc 3 - Pit LFO 1 - Osc 3 - Alt LFO 1 + + HP + - - Osc 3 - Pit LFO 2 - Osc 3 - Alt LFO 2 + + Low-shelf + - - Osc 1 - PW env 1 - Osc 1 - LI inv 1 + + Peak 1 + - - Osc 1 - PW env 2 - Osc 1 - LI inv 2 + + Peak 2 + - - Osc 1 - PW LFO 1 - Osc 1 - LI LFO 1 + + Peak 3 + - - Osc 1 - PW LFO 2 - Osc 1 - LI LFO 2 + + Peak 4 + - - Osc 3 - Sub env 1 - Osc 3 - Sub inv 1 + + High-shelf + - - Osc 3 - Sub env 2 - Osc 3 - Sub inv 2 + + LP + - - Osc 3 - Sub LFO 1 - Osc 3 - Sub LFO 1 + + Input gain + - - Osc 3 - Sub LFO 2 - Osc 3 - Sub LFO 2 + + + + Gain + - - - Sine wave - Onda sinusoidale + + Output gain + - - Bandlimited Triangle wave - Onda triangolare limitata + + Bandwidth: + - - Bandlimited Saw wave - Onda a dente di sega limitata + + Octave + - - Bandlimited Ramp wave - Onda a rampa limitata + + Resonance: + - - Bandlimited Square wave - Onda quadra limitata + + Frequency: + - - Bandlimited Moog saw wave - Onda Moog limitata + + LP group + - - - Soft square wave - Onda quadra morbida + + HP group + + + + lmms::gui::EqHandle - - Absolute sine wave - Onda sinusoidale assoluta + + Reso: + - - - Exponential wave - Onda esponenziale + + BW: + - - White noise - Rumore bianco + + + Freq: + + + + lmms::gui::ExportProjectDialog - - Digital Triangle wave - Onda triangolare digitale + + Could not open file + - - Digital Saw wave - Onda a dente di sega digitale + + Could not open file %1 for writing. +Please make sure you have write permission to the file and the directory containing the file and try again! + - - Digital Ramp wave - Onda a rampa digitale + + Export project to %1 + - - Digital Square wave - Onda quadra digitale + + ( Fastest - biggest ) + - - Digital Moog saw wave - Onda Moog digitale + + ( Slowest - smallest ) + - - Triangle wave - Onda triangolare + + Error + - - Saw wave - Onda a dente di sega + + Error while determining file-encoder device. Please try to choose a different output format. + - - Ramp wave - Onda a rampa + + Rendering: %1% + + + + lmms::gui::Fader - - Square wave - Onda quadra + + Set value + - - Moog saw wave - Onda Moog + + Please enter a new value between %1 and %2: + - - Abs. sine wave - Sinusoide Ass. + + Volume: %1 dBFS + + + + lmms::gui::FileBrowser - - Random - Casuale + + Browser + - - Random smooth - Casuale morbida + + Search + - - - MonstroView - - Operators view - Vista operatori + + Refresh list + - - Matrix view - Vista Matrice + + User content + - - - - Volume - Volume + + Factory content + - - - - Panning - Bilanciamento + + Hidden content + + + + lmms::gui::FileBrowserTreeWidget - - - - Coarse detune - Intonazione grezza + + Send to active instrument-track + - - - - semitones - semitoni + + Open containing folder + - - - Fine tune left - Intonazione precisa sinistra + + Song Editor + - - - - - cents - centesimi + + Pattern Editor + - - - Fine tune right - Intonazione precisa destra + + Send to new AudioFileProcessor instance + - - - - Stereo phase offset - Spostamento di fase stereo + + Send to new instrument track + - - - - - - deg - gradi + + (%2Enter) + - - Pulse width - Larghezza impulso + + Send to new sample track (Shift + Enter) + - - Send sync on pulse rise - Manda sincro alle salite + + Loading sample + - - Send sync on pulse fall - Manda sincro alle discese + + Please wait, loading sample for preview... + - - Hard sync oscillator 2 - Sincro Duro oscillatore 2 + + Error + - - Reverse sync oscillator 2 - Sincro Inverso oscillatore 2 + + %1 does not appear to be a valid %2 file + - - Sub-osc mix - Missaggio Sub-osc + + --- Factory files --- + + + + lmms::gui::FileDialog - - Hard sync oscillator 3 - Sincro Duro oscillatore 3 + + %1 files + - - Reverse sync oscillator 3 - Sincro Inverso oscillatore 3 + + All audio files + - - - - - Attack - Attacco + + Other files + + + + lmms::gui::FlangerControlsDialog - - - Rate - Periodo + + DELAY + - - - Phase - Fase + + Delay time: + - - - Pre-delay - Pre-ritardo + + RATE + - - - Hold - Mantenimento + + Period: + - - - Decay - Decadimento + + AMNT + - - - Sustain - Sostegno + + Amount: + - - - Release - Rilascio + + PHASE + - - - Slope - Curvatura + + Phase: + - - Mix osc 2 with osc 3 - Somma osc 2 e osc 3 + + FDBK + - - Modulate amplitude of osc 3 by osc 2 - Modula ampiezza di osc 3 con osc 2 + + Feedback amount: + - - Modulate frequency of osc 3 by osc 2 - Modula frequenza di osc 3 con osc 2 + + NOISE + - - Modulate phase of osc 3 by osc 2 - Modula fase di osc 3 con osc 2 + + White noise amount: + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Modulation amount - Quantità di modulazione: + + Invert + - MultitapEchoControlDialog - - - Length - Lunghezza - + lmms::gui::FloatModelEditorBase - - Step length: - Durata degli step: + + Set linear + - - Dry - Dry + + Set logarithmic + - - Dry gain: - Guadagno senza effetto: + + + Set value + - - Stages - Fasi + + Please enter a new value between -96.0 dBFS and 6.0 dBFS: + - - Low-pass stages: - Fasi del passa-basso: + + Please enter a new value between %1 and %2: + + + + lmms::gui::FreeBoyInstrumentView - - Swap inputs - Scambia input + + Sweep time: + - - Swap left and right input channels for reflections - Scambia i canali destro e sinistro per le ripetizioni + + Sweep time + - - - NesInstrument - - Channel 1 coarse detune - Intonazione al semitono canale 1 + + Sweep rate shift amount: + - - Channel 1 volume - Volume del canale 1 + + Sweep rate shift amount + - - Channel 1 envelope length - Lunghezza inviluppo canale 1 + + + Wave pattern duty cycle: + - - Channel 1 duty cycle - Duty cycle canale 1 + + + Wave pattern duty cycle + - - Channel 1 sweep amount - Larghezza glissando canale 1 + + Square channel 1 volume: + - - Channel 1 sweep rate - Velocità glissando canale 1 + + Square channel 1 volume + - - Channel 2 Coarse detune - Intonazione grezza Canale 2 + + + + Length of each step in sweep: + - - Channel 2 Volume - Volume Canale 2 + + + + Length of each step in sweep + - - Channel 2 envelope length - Lunghezza inviluppo canale 2 + + Square channel 2 volume: + - - Channel 2 duty cycle - Duty cycle canale 2 + + Square channel 2 volume + - - Channel 2 sweep amount - Larghezza glissando canale 2 + + Wave pattern channel volume: + - - Channel 2 sweep rate - Velocità glissando canale 2 + + Wave pattern channel volume + - - Channel 3 coarse detune - Intonazione al semitono canale 3 + + Noise channel volume: + - - Channel 3 volume - Volume del canale 3 + + Noise channel volume + - - Channel 4 volume - Volume del canale 4 + + SO1 volume (Right): + - - Channel 4 envelope length - Lunghezza inviluppo canale 4 + + SO1 volume (Right) + - - Channel 4 noise frequency - Frequenza rumore canale 4 + + SO2 volume (Left): + - - Channel 4 noise frequency sweep - Glissando rumore canale 4 + + SO2 volume (Left) + - - Master volume - Volume principale + + Treble: + - - Vibrato - Vibrato + + Treble + - - - NesInstrumentView - - - - - Volume - Volume + + Bass: + - - - - Coarse detune - Intonazione grezza + + Bass + - - - - Envelope length - Lunghezza inviluppo + + Sweep direction + - - Enable channel 1 - Abilita canale 1 + + + + + + Volume sweep direction + - - Enable envelope 1 - Abilita inviluppo 1 + + Shift register width + - - Enable envelope 1 loop - Abilita ripetizione inviluppo 1 + + Channel 1 to SO1 (Right) + - - Enable sweep 1 - Abilita glissando 1 + + Channel 2 to SO1 (Right) + - - - Sweep amount - Profondità glissando + + Channel 3 to SO1 (Right) + - - - Sweep rate - Durata glissando + + Channel 4 to SO1 (Right) + - - - 12.5% Duty cycle - 12.5% del periodo + + Channel 1 to SO2 (Left) + - - - 25% Duty cycle - 25% del periodo + + Channel 2 to SO2 (Left) + - - - 50% Duty cycle - 50% del periodo + + Channel 3 to SO2 (Left) + - - - 75% Duty cycle - 75% del periodo + + Channel 4 to SO2 (Left) + - - Enable channel 2 - Abilita canale 2 + + Wave pattern graph + + + + lmms::gui::GigInstrumentView - - Enable envelope 2 - Abilita inviluppo 2 + + + Open GIG file + - - Enable envelope 2 loop - Abilita ripetizione inviluppo 2 + + Choose patch + - - Enable sweep 2 - Abilita glissando 2 + + Gain: + - - Enable channel 3 - Abilita canale 3 + + GIG Files (*.gig) + + + + lmms::gui::GranularPitchShifterControlDialog - - Noise Frequency - Frequenza rumore + + Grain Size: + - - Frequency sweep - Glissando + + Spray: + - - Enable channel 4 - Abilita canale 4 + + Jitter: + - - Enable envelope 4 - Abilita inviluppo 4 + + Twitch: + - - Enable envelope 4 loop - Abilita ripetizione inviluppo 4 + + Spray Stereo Spread: + - - Quantize noise frequency when using note frequency - Quantizza la frequenza del rumore, se relativa alla nota + + Grain Shape: + - - Use note frequency for noise - La frequenza del rumore è relativa alla nota suonata + + Fade Length: + - - Noise mode - Modalità rumore + + Feedback: + - - Master volume - Volume principale + + Minimum Allowed Latency: + - - Vibrato - Vibrato + + Density: + - - - OpulenzInstrument - - Patch - Programma + + Glide: + - - Op 1 attack - Attacco op 1 + + + Pitch + - - Op 1 decay - Decadimento op 1 + + + Pitch Stereo Spread + - - Op 1 sustain - Sostegno op 1 + + Open help window + - - Op 1 release - Rilascio op 1 + + + Prefilter + + + + lmms::gui::GuiApplication - - Op 1 level - Livello op 1 + + Working directory + - - Op 1 level scaling - Scala livello op 1 + + The LMMS working directory %1 does not exist. Create it now? You can change the directory later via Edit -> Settings. + - - Op 1 frequency multiplier - Moltiplicatore frequenza op 1 + + Preparing UI + - - Op 1 feedback - Feedback op 1 + + Preparing song editor + - - Op 1 key scaling rate - Velocità op 1 dipende da nota + + Preparing mixer + - - Op 1 percussive envelope - Inviluppo percussivo op 1 + + Preparing controller rack + - - Op 1 tremolo - Tremolo op 1 + + Preparing project notes + - - Op 1 vibrato - Vibrato op 1 + + Preparing microtuner + - - Op 1 waveform - Forma d'onda op 1 + + Preparing pattern editor + - - Op 2 attack - Attacco op 2 + + Preparing piano roll + - - Op 2 decay - Decadimento op 2 + + Preparing automation editor + + + + lmms::gui::InstrumentFunctionArpeggioView - - Op 2 sustain - Sostegno Op 2 + + ARPEGGIO + - - Op 2 release - Rilascio op 2 + + RANGE + - - Op 2 level - Livello op 2 + + Arpeggio range: + - - Op 2 level scaling - Scala livello op 2 + + octave(s) + - - Op 2 frequency multiplier - Moltiplicatore frequenza op 2 + + REP + - - Op 2 key scaling rate - Velocità op 2 dipende da nota + + Note repeats: + - - Op 2 percussive envelope - Inviluppo percussivo op 2 + + time(s) + - - - Op 2 tremolo - Tremolo op 2 + + + CYCLE + - - Op 2 vibrato - Vibrato op 2 + + Cycle notes: + - - Op 2 waveform - Forma d'onda op 2 + + note(s) + - - FM - FM + + SKIP + - - Vibrato depth - Profondità vibrato + + Skip rate: + - - Tremolo depth - Profondità tremolo + + + + % + - - - OpulenzInstrumentView - - - Attack - Attacco + + MISS + - - - Decay - Decadimento + + Miss rate: + - - - Release - Rilascio + + TIME + - - - Frequency multiplier - Moltiplicatore della frequenza + + Arpeggio time: + - - - OscillatorObject - - Osc %1 waveform - Forma d'onda osc %1 + + ms + - - Osc %1 harmonic - Armoniche Osc %1 + + GATE + - - - Osc %1 volume - Volume osc %1 + + Arpeggio gate: + - - - Osc %1 panning - Panning osc %1 + + Chord: + - - - Osc %1 fine detuning left - Intonazione precisa osc %1 sinistra + + Direction: + - - Osc %1 coarse detuning - Intonazione osc %1 + + Mode: + + + + lmms::gui::InstrumentFunctionNoteStackingView - - Osc %1 fine detuning right - Intonazione precisa osc %1 destra + + STACKING + - - Osc %1 phase-offset - Scostamento fase osc %1 + + Chord: + - - Osc %1 stereo phase-detuning - Intonazione fase stereo osc %1 + + RANGE + - - Osc %1 wave shape - Forma d'onda Osc %1 + + Chord range: + - - Modulation type %1 - Modulazione di tipo %1 + + octave(s) + - Oscilloscope + lmms::gui::InstrumentMidiIOView - - Oscilloscope - Oscilloscopio + + ENABLE MIDI INPUT + - - Click to enable - Clicca per abilitare + + + CHAN + This string must be be short, its width must be less than * width of LCD spin-box of two digits + - - - PatchesDialog - - Qsynth: Channel Preset - Qsynth: Preset Canale + + + VELOC + This string must be be short, its width must be less than * width of LCD spin-box of three digits + - - Bank selector - Selezione banco + + ENABLE MIDI OUTPUT + - - Bank - Banco + + PROG + This string must be be short, its width must be less than the * width of LCD spin-box of three digits + - - Program selector - Selezione programma + + NOTE + This string must be be short, its width must be less than * width of LCD spin-box of three digits + - - Patch - Programma + + MIDI devices to receive MIDI events from + - - Name - Nome + + MIDI devices to send MIDI events to + - - OK - OK + + VELOCITY MAPPING + - - Cancel - Annulla + + MIDI VELOCITY + + + + + MIDI notes at this velocity correspond to 100% note velocity. + - PatmanView + lmms::gui::InstrumentSoundShapingView - - Open patch - Apri patch + + TARGET + - - Loop - Ripetizione + + FILTER + - - Loop mode - Modalità ripetizione + + FREQ + - - Tune - Intonazione + + Cutoff frequency: + - - Tune mode - Modalità intonazione + + Hz + - - No file selected - Nessun file selezionato + + Q/RESO + - - Open patch file - Apri file di patch + + Q/Resonance: + - - Patch-Files (*.pat) - File di patch (*.pat) + + Envelopes, LFOs and filters are not supported by the current instrument. + - MidiClipView - - - Open in piano-roll - Apri nel piano-roll - + lmms::gui::InstrumentTrackView - - Set as ghost in piano-roll - Imposta come fantasma in piano-roll + + Mixer channel + - - Clear all notes - Cancella tutte le note + + Volume + - - Reset name - Reimposta il nome + + Volume: + - - Change name - Cambia nome + + VOL + - - Add steps - Aggiungi note + + Panning + - - Remove steps - Elimina note + + Panning: + - - Clone Steps - Clona gli step + + PAN + - - - PeakController - - Peak Controller - Controller dei picchi + + MIDI + - - Peak Controller Bug - Bug del controller dei picchi + + Input + - - Due to a bug in older version of LMMS, the peak controllers may not be connect properly. Please ensure that peak controllers are connected properly and re-save this file. Sorry for any inconvenience caused. - A causa di un bug nelle versioni precedenti di LMMS, i controller dei picchi potrebbero non essere connessi come dovuto. Assicurati che i controller dei picchi siano connessi e salva questo file di nuovo. Ci scusiamo per gli inconvenienti causati. + + Output + - - - PeakControllerDialog - - PEAK - PICCO + + Open/Close MIDI CC Rack + - - LFO Controller - Controller dell'LFO + + %1: %2 + - PeakControllerEffectControlDialog - - - BASE - BASE - - - - Base: - Base: - + lmms::gui::InstrumentTrackWindow - - AMNT - Q.TÀ + + Volume + - - Modulation amount: - Quantità di modulazione: + + Volume: + - - MULT - MOLT + + VOL + - - Amount multiplicator: - Moltiplicatore di quantità: + + Panning + - - ATCK - ATCC + + Panning: + - - Attack: - Attacco: + + PAN + - - DCAY - DCAD + + Pitch + - - Release: - Rilascio: + + Pitch: + - - TRSH - SOGLIA + + cents + - - Treshold: - Soglia: + + PITCH + - - Mute output - Silenzia l'output + + Pitch range (semitones) + - - Absolute value - Valore assoluto + + RANGE + - - - PeakControllerEffectControls - - Base value - Valore di base + + Mixer channel + - - Modulation amount - Quantità di modulazione + + CHANNEL + - - Attack - Attacco + + Save current instrument track settings in a preset file + Salva le impostazioni della traccia attuale in un file preset - - Release - Rilascio + + SAVE + - - Treshold - Soglia + + Envelope, filter & LFO + - - Mute output - Silenzia l'output + + Chord stacking & arpeggio + - - Absolute value - Valore assoluto + + Effects + - - Amount multiplicator - Moltiplicatore di quantità + + MIDI + - - - PianoRoll - - Note Velocity - Volume Note + + Tuning and transposition + - - Note Panning - Panning Note + + Save preset + Salva il preset - - Mark/unmark current semitone - Evidenza (o togli evidenziazione) questo semitono + + XML preset file (*.xpf) + File di preset XML (*.xpf) - - Mark/unmark all corresponding octave semitones - Evidenza (o togli evidenziazione) i semitoni alle altre ottave + + Plugin + + + + lmms::gui::InstrumentTuningView - - Mark current scale - Evidenza la scala corrente + + GLOBAL TRANSPOSITION + - - Mark current chord - Evidenza l'accordo corrente + + Enables the use of global transposition + - - Unmark all - Togli tutte le evidenziazioni + + Microtuner is not available for MIDI-based instruments. + - - Select all notes on this key - Seleziona tutte le note in questo tasto + + MICROTUNER + - - Note lock - Note lock + + Active scale: + - - Last note - Ultima nota + + + Edit scales and keymaps + - - No key + + Active keymap: - - No scale - - Scale + + Import note ranges from keymap + - - No chord - - Accordi + + When enabled, the first, last and base notes of this instrument will be overwritten with values specified by the selected keymap. + + + + lmms::gui::KickerInstrumentView - - Nudge + + Start frequency: - - Snap + + End frequency: - - Velocity: %1% - Velocity: %1% + + Frequency slope: + - - Panning: %1% left - Bilanciamento: %1% a sinistra + + Gain: + - - Panning: %1% right - Bilanciamento: %1% a destra + + Envelope length: + - - Panning: center - Bilanciamento: centrato + + Envelope slope: + - - Glue notes failed + + Click: - - Please select notes to glue first. + + Noise: - - Please open a clip by double-clicking on it! - Aprire un pattern con un doppio-click sul pattern stesso! + + Start distortion: + - - - Please enter a new value between %1 and %2: - Inserire un valore compreso tra %1 e %2: + + End distortion: + - PianoRollWindow + lmms::gui::LOMMControlDialog - - Play/pause current clip (Space) - Riproduci/metti in pausa il beat/bassline selezionato (Spazio) - - - - Record notes from MIDI-device/channel-piano - Registra note da una periferica/canale piano MIDI + + Depth: + - - Record notes from MIDI-device/channel-piano while playing song or BB track - Registra note da una periferica MIDI/canale piano mentre la traccia o la BB track è in riproduzione + + Compression amount for all bands + - - Record notes from MIDI-device/channel-piano, one step at the time - Registra note da dispositivo-MIDI/canale-piano, un passo alla volta + + Time: + - - Stop playing of current clip (Space) - Riproduci/metti in pausa il beat/bassline selezionato (Spazio) + + Attack/release scaling for all bands + - - Edit actions - Modalità di modifica + + Input Volume: + - - Draw mode (Shift+D) - Modalità disegno (Shift+D) + + Input volume + - - Erase mode (Shift+E) - Modalità cancella (Shift+E) + + Output Volume: + - - Select mode (Shift+S) - Modalità selezione (Shift+S) + + Output volume + - - Pitch Bend mode (Shift+T) - Modalità intonazione (Shift+T) + + Upward Depth: + - - Quantize - Quantizza + + Upward compression amount for all bands + - - Quantize positions + + Downward Depth: - - Quantize lengths + + Downward compression amount for all bands - - File actions + + High/Mid Crossover - - Import clip + + Mid/Low Crossover - - - Export clip + + High/mid band split - - Copy paste controls - Controlli di copia-incolla + + Mid/low band split + - - Cut (%1+X) - Taglia (%1+X) + + Enable High Band + - - Copy (%1+C) - Copia (%1+C) + + Enable Mid Band + - - Paste (%1+V) - Incolla (%1+V) + + Enable Low Band + - - Timeline controls - Controlla griglia + + High Input Volume: + - - Glue + + Input volume for high band - - Knife + + Mid Input Volume: - - Fill + + Input volume for mid band - - Cut overlaps + + Low Input Volume: - - Min length as last + + Input volume for low band - - Max length as last + + High Output Volume: - - Zoom and note controls - Controlli di zoom e note + + Output volume for high band + - - Horizontal zooming - Zoom orizzontale + + Mid Output Volume: + - - Vertical zooming - Zoom verticale + + Output volume for mid band + - - Quantization - Quantizzazione + + Low Output Volume: + - - Note length - Lunghezza nota + + Output volume for low band + - - Key + + Above Threshold High - - Scale - Scala + + Downward compression threshold for high band + - - Chord - Accordo + + Above Threshold Mid + - - Snap mode + + Downward compression threshold for mid band - - Clear ghost notes - Cancella note fantasma + + Above Threshold Low + - - - Piano-Roll - %1 - Piano-Roll - %1 + + Downward compression threshold for low band + - - - Piano-Roll - no clip - Piano-Roll - nessun pattern + + Above Ratio High + - - - XML clip file (*.xpt *.xptz) + + Downward compression ratio for high band - - Export clip success + + Above Ratio Mid - - Clip saved to %1 + + Downward compression ratio for mid band - - Import clip. + + Above Ratio Low - - You are about to import a clip, this will overwrite your current clip. Do you want to continue? + + Downward compression ratio for low band - - Open clip + + Below Threshold High - - Import clip success + + Upward compression threshold for high band - - Imported clip %1! + + Below Threshold Mid - - - PianoView - - Base note - Nota base + + Upward compression threshold for mid band + - - First note + + Below Threshold Low - - Last note - Ultima nota + + Upward compression threshold for low band + - - - Plugin - - Plugin not found - Plugin non trovato + + Below Ratio High + - - The plugin "%1" wasn't found or could not be loaded! -Reason: "%2" - Il plugin "%1" non è stato trovato o non è stato possibile caricarlo! -Motivo: "%2" + + Upward compression ratio for high band + - - Error while loading plugin - Errore nel caricamento del plugin + + Below Ratio Mid + - - Failed to load plugin "%1"! - Non è stato possibile caricare il plugin "%1"! + + Upward compression ratio for mid band + - - - PluginBrowser - - Instrument Plugins - Plugin Strumentali + + Below Ratio Low + - - Instrument browser - Browser strumenti + + Upward compression ratio for low band + - - Drag an instrument into either the Song-Editor, the Beat+Bassline Editor or into an existing instrument track. - È possibile trascinare uno strumento nel Song-Editor, nel Beat+Bassline Editor o direttamente in un canale esistente. + + Attack High: + - - no description - nessuna descrizione + + Attack time for high band + - - A native amplifier plugin - Un plugin di amplificazione nativo + + Attack Mid: + - - Simple sampler with various settings for using samples (e.g. drums) in an instrument-track - Semplice sampler con varie impostazioni, per usare suoni (come percussioni) in una traccia strumentale + + Attack time for mid band + - - Boost your bass the fast and simple way - Potenzia il tuo basso in modo veloce e semplice + + Attack Low: + - - Customizable wavetable synthesizer - Sintetizzatore wavetable configurabile + + Attack time for low band + - - An oversampling bitcrusher - Un riduttore di bit con oversampling + + Release High: + - - Carla Patchbay Instrument - Strumento Patchbay Carla + + Release time for high band + - - Carla Rack Instrument - Strutmento Rack Carla + + Release Mid: + - - A dynamic range compressor. + + Release time for mid band - - A 4-band Crossover Equalizer - Un equalizzatore Crossover a 4 bande + + Release Low: + - - A native delay plugin - Un plugin di ritardi eco nativo + + Release time for low band + - - A Dual filter plugin - Un plugin di duplice filtraggio + + RMS Time: + - - plugin for processing dynamics in a flexible way - Un versatile processore di dynamic + + RMS size for sidechain signal (set to 0 for Peak mode) + - - A native eq plugin - Un plugin di equalizzazione nativo + + Knee: + - - A native flanger plugin - Un plugin di flager nativo + + Knee size for all compressors + - - Emulation of GameBoy (TM) APU - Emulatore di GameBoy™ APU + + Range: + - - Player for GIG files - Riproduttore di file GIG + + Maximum gain increase for all bands + - - Filter for importing Hydrogen files into LMMS - Strumento per l'importazione di file Hydrogen dentro LMMS + + Balance: + - - Versatile drum synthesizer - Sintetizzatore di percussioni versatile + + Bias input volume towards one channel + - - List installed LADSPA plugins - Elenca i plugin LADSPA installati + + Scale output volume with Depth + - - plugin for using arbitrary LADSPA-effects inside LMMS. - Plugin per usare qualsiasi effetto LADSPA in LMMS. + + Scale output volume with Depth parameter + - - Incomplete monophonic imitation TB-303 - Imitazione monofonica del TB-303 incompleta + + Stereo Link + - - plugin for using arbitrary LV2-effects inside LMMS. + + Apply same gain change to both channels - - plugin for using arbitrary LV2 instruments inside LMMS. + + Auto Time: - - Filter for exporting MIDI-files from LMMS - Filtro per esportare file MIDI da LMMS + + Speed up attack and release times when transients occur + - - Filter for importing MIDI-files into LMMS - Filtro per importare file MIDI in LMMS + + Mix: + - - Monstrous 3-oscillator synth with modulation matrix - Sintetizzatore mostruoso con 3 oscillatori e matrice di modulazione + + Wet/Dry of all bands + - - A multitap echo delay plugin - Un plugin di ritardo eco multitap + + Feedback + - - A NES-like synthesizer - Un sintetizzatore che imita i suoni del Nintendo Entertainment System + + Use output as sidechain signal instead of input + - - 2-operator FM Synth - Sintetizzatore FM a 2 operatori + + Mid/Side + - - Additive Synthesizer for organ-like sounds - Sintetizzatore additivo per suoni tipo organo + + Compress mid/side channels instead of left/right + - - GUS-compatible patch instrument - strumento compatibile con GUS + + + Suppress upward compression for side band + - - Plugin for controlling knobs with sound peaks - Plugin per controllare le manopole con picchi di suono + + + Lookahead + - - Reverb algorithm by Sean Costello - Algoritmo di Riverbero di Sean Costello + + Lookahead length + - - Player for SoundFont files - Riproduttore di file SounFont + + Clear all parameters + + + + lmms::gui::LadspaBrowserView - - LMMS port of sfxr - Port di sfxr su LMMS + + + Available Effects + - - Emulation of the MOS6581 and MOS8580 SID. -This chip was used in the Commodore 64 computer. - Emulazione di MOS6581 and MOS8580 SID. -Questo chip era utilizzato nel Commode 64. + + + Unavailable Effects + - - A graphical spectrum analyzer. - Un analizzatore di spettro grafico. + + + Instruments + - - Plugin for enhancing stereo separation of a stereo input file - Plugin per migliorare la separazione stereo di un file + + + Analysis Tools + - - Plugin for freely manipulating stereo output - Plugin per manipolare liberamente un'uscita stereo + + + Don't know + - - Tuneful things to bang on - Oggetti dotati di intonazione su cui picchiare + + Type: + + + + lmms::gui::LadspaControlDialog - - Three powerful oscillators you can modulate in several ways - Tre potenti oscillatori modulabili in vari modi + + Link Channels + - - A stereo field visualizer. - Un visualizzatore del campo stereo. + + Channel + + + + lmms::gui::LadspaControlView - - VST-host for using VST(i)-plugins within LMMS - Host VST per usare i plugin VST con LMMS + + Link channels + - - Vibrating string modeler - Modulatore di corde vibranti + + Value: + + + + lmms::gui::LadspaDescription - - plugin for using arbitrary VST effects inside LMMS. - Plugin per usare effetti VST arbitrari dentro LMMS. + + Plugins + - - 4-oscillator modulatable wavetable synth - Sintetizzatore wavetable con 4 oscillatori modulabili + + Description + - - plugin for waveshaping - Plugin per la modifica della forma d'onda + + Name: + - - Mathematical expression parser - Analisi sintattica dell'espressione + + Maker: + - - Embedded ZynAddSubFX - ZynAddSubFX incorporato + + Copyright: + - - - PluginDatabaseW - - Carla - Add New - Carla - Aggiungi nuovo + + Requires Real Time: + - - Format - Formato + + + + Yes + - - Internal - Interno + + + + No + - - LADSPA - LADSPA + + Real Time Capable: + - - DSSI - DSSI + + In Place Broken: + - - LV2 - LV2 + + Channels In: + - - VST2 - VST2 + + Channels Out: + + + + lmms::gui::LadspaMatrixControlDialog - - VST3 - VST3 + + Link Channels + - - AU - AU + + Link + - - Sound Kits - Kits audio + + Channel %1 + - - Type - Tipo + + Link channels + + + + lmms::gui::LadspaPortDialog - - Effects - Effetti + + Ports + - - Instruments - Strumenti + + Name + - - MIDI Plugins - Plugins MIDI + + Rate + - - Other/Misc - Altro/misc + + Direction + - - Architecture - Architettura + + Type + - - Native - Nativo + + Min < Default < Max + - - Bridged - Collegato + + Logarithmic + - - Bridged (Wine) - Congiunto (Wine) + + SR Dependent + - - Requirements - Requisiti + + Audio + - - With Custom GUI - Con GUI personalizzata + + Control + - - With CV Ports - Con porte CV + + Input + - - Real-time safe only - Solo sicurezza in tempo reale + + Output + - - Stereo only - Solo stereo + + Toggled + - - With Inline Display - Con display in linea + + Integer + - - Favorites only - Solo Preferiti + + Float + - - (Number of Plugins go here) - (Numero di plugin vai qui) + + + Yes + + + + lmms::gui::Lb302SynthView - - &Add Plugin - &Aggiungi plugin + + Cutoff Freq: + - - Cancel - Annulla + + Resonance: + - - - Refresh - Aggiorna + + + Env Mod: + - - Reset filters - Ripristina filtri - - - - - - - - - - - - - - - - - - - TextLabel - Etichetta testo + + Decay: + - - Format: - Formato: + + 303-es-que, 24dB/octave, 3 pole filter + - - Architecture: - Architettura: + + Slide Decay: + - - Type: - Tipo: + + DIST: + - - MIDI Ins: - Ins MIDI: + + Saw wave + - - Audio Ins: - Ins Audio: + + Click here for a saw-wave. + - - CV Outs: - Uscite CV: + + Triangle wave + - - MIDI Outs: - Uscite MIDI: + + Click here for a triangle-wave. + - - Parameter Ins: - Ins Parametri: + + Square wave + - - Parameter Outs: - Uscite parametri: + + Click here for a square-wave. + - - Audio Outs: - Uscite audio: + + Rounded square wave + - - CV Ins: - Ins CV: + + Click here for a square-wave with a rounded end. + - - UniqueID: + + Moog wave - - Has Inline Display: - Ha un Display in linea: + + Click here for a moog-like wave. + - - Has Custom GUI: - Ha una GUI personalizzata: + + Sine wave + - - Is Synth: + + Click for a sine-wave. - - Is Bridged: + + + White noise wave - - Information - Informazioni + + Click here for an exponential wave. + - - Name - Nome + + Click here for white-noise. + - - Label/URI + + Bandlimited saw wave - - Maker - Creatore + + Click here for bandlimited saw wave. + - - Binary/Filename - Binario/Nome file + + Bandlimited square wave + - - Focus Text Search - Ricerca testo mirato + + Click here for bandlimited square wave. + - - Ctrl+F - Ctrl+F + + Bandlimited triangle wave + - - - PluginEdit - - Plugin Editor - Editor plugin + + Click here for bandlimited triangle wave. + - - Edit - Modifica + + Bandlimited moog saw wave + - - Control - Controllo + + Click here for bandlimited moog saw wave. + + + + lmms::gui::LcdFloatSpinBox - - MIDI Control Channel: - Canale controllo MIDI: + + Set value + - - N - N + + Please enter a new value between %1 and %2: + + + + lmms::gui::LcdSpinBox - - Output dry/wet (100%) - Uscita dry/wet (100%) + + Set value + - - Output volume (100%) - Volume di uscita (100%) + + Please enter a new value between %1 and %2: + + + + lmms::gui::LeftRightNav - - Balance Left (0%) - Bilanciamento a sinistra (0%) + + + + Previous + - - - Balance Right (0%) - Bilanciamento destro (0%) + + + + Next + - - Use Balance - Usa bilanciamento + + Previous (%1) + - - Use Panning - Usa panoramica + + Next (%1) + + + + lmms::gui::LfoControllerDialog - - Settings - Impostazioni + + LFO + - - Use Chunks - Usa blocchi + + BASE + - - Audio: - Audio: + + Base: + - - Fixed-Size Buffer - Buffer dimensione-fissa + + FREQ + - - Force Stereo (needs reload) - Forza Stereo (deve essere ricaricato) + + LFO frequency: + - - MIDI: - MIDI: + + AMNT + - - Map Program Changes - Mappa modifiche programma + + Modulation amount: + - - Send Bank/Program Changes - Invia banco/Modifiche programma + + PHS + - - Send Control Changes - Invia modifiche al controllo + + Phase offset: + - - Send Channel Pressure - Invia pressione canale + + degrees + - - Send Note Aftertouch - Invia nota Aftertouch + + Sine wave + - - Send Pitchbend - Invia Pitchbend + + Triangle wave + - - Send All Sound/Notes Off - Invia tutti i suoni/Note disattivate + + Saw wave + - - -Plugin Name - - -Nome Plugin - + + Square wave + - - Program: - Programma: + + Moog saw wave + - - MIDI Program: - Programma MIDI: + + Exponential wave + - - Save State - Salva Stato + + White noise + - - Load State - Carica Stato + + User-defined shape. +Double click to pick a file. + - - Information - Informazioni + + Multiply modulation frequency by 1 + - - Label/URI: - Etichetta/URI: + + Multiply modulation frequency by 100 + - - Name: - Nome: + + Divide modulation frequency by 100 + + + + lmms::gui::LfoGraph - - Type: - Tipo: + + %1 Hz + + + + lmms::gui::MainWindow - - Maker: - Creatore: + + Configuration file + - - Copyright: - Copyright: + + Error while parsing configuration file at line %1:%2: %3 + - - Unique ID: - ID univoco: + + Could not open file + - - - PluginFactory - - Plugin not found. - Plugin non trovato. + + Could not open file %1 for writing. +Please make sure you have write permission to the file and the directory containing the file and try again! + - - LMMS plugin %1 does not have a plugin descriptor named %2! - Il plugin LMMS %1 non ha una descrizione chiamata %2! + + Project recovery + - - - PluginParameter - - Form - Modulo + + There is a recovery file present. It looks like the last session did not end properly or another instance of LMMS is already running. Do you want to recover the project of this session? + - - Parameter Name - Nome parametro + + + Recover + - - ... - ... + + Recover the file. Please don't run multiple instances of LMMS when you do this. + - - - PluginRefreshW - - Carla - Refresh - Carla - Aggiorna + + + Discard + - - Search for new... - Cerca nuovo... + + Launch a default session and delete the restored files. This is not reversible. + - - LADSPA - LADSPA + + Version %1 + - - DSSI - DSSI + + Preparing plugin browser + - - LV2 - LV2 + + Preparing file browsers + - - VST2 - VST2 + + My Projects + - - VST3 - VST3 + + My Samples + - - AU - AU + + My Presets + Miei Preset - - SF2/3 - SF2/3 + + My Home + - - SFZ - SFZ + + Root Directory + - - Native - Nativo + + Volumes + - - POSIX 32bit - POSIX 32bit + + My Computer + - - POSIX 64bit - POSIX 64bit + + Loading background picture + - - Windows 32bit - Windows 32bit + + &File + - - Windows 64bit - Windows 64bit + + &New + - - Available tools: - Strumenti disponibili: + + &Open... + - - python3-rdflib (LADSPA-RDF support) - python3-rdflib (supporto LADSPA-RDF) + + &Save + - - carla-discovery-win64 - carla-discovery-win64 + + Save &As... + - - carla-discovery-native - carla-discovery-nativo + + Save as New &Version + - - carla-discovery-posix32 - carla-discovery-posix32 + + Save as default template + - - carla-discovery-posix64 - carla-discovery-posix64 + + Import... + - - carla-discovery-win32 - carla-discovery-win32 + + E&xport... + - - Options: - Opzioni: + + E&xport Tracks... + - - Carla will run small processing checks when scanning the plugins (to make sure they won't crash). -You can disable these checks to get a faster scanning time (at your own risk). - Carla eseguirà piccoli controlli di elaborazione durante la scansione dei plugin (per assicurarsi che non si arrestino). -È possibile disabilitare questi controlli per ottenere un tempo di scansione più rapido (a proprio rischio). + + Export &MIDI... + - - Run processing checks while scanning - Esegui controlli di elaborazione durante la scansione + + &Quit + - - Press 'Scan' to begin the search - Premere 'Scansiona' per avviare la ricerca + + &Edit + - - Scan - Scansiona + + Undo + - - >> Skip - >> Ignora + + Redo + - - Close - Chiudi + + Scales and keymaps + - - - PluginWidget - - - - - - Frame + + Settings - - Enable - Abilita + + &View + - - On/Off - On/Off + + &Tools + - - - - - PluginName + + &Help - - MIDI - MIDI + + Online Help + - - AUDIO IN - INGRESSO AUDIO + + Help + - - AUDIO OUT - USCITA AUDIO + + About + - - GUI - GUI + + Create new project + - - Edit - Modifica + + Create new project from template + - - Remove - Rimuovi + + Open existing project + - - Plugin Name - Nome Plugin + + Recently opened projects + Progetti aperti di recente - - Preset: - Preselezione: + + Save current project + - - - ProjectNotes - - Project Notes - Mostra/nascondi le note del progetto + + Export current project + - - Enter project notes here - Scrivi gli appunti per il progetto + + Metronome + - - Edit Actions - Modifica azioni + + + Song Editor + - - &Undo - &Annulla operazione + + + Pattern Editor + - - %1+Z - %1+Z + + + Piano Roll + - - &Redo - &Ripeti operazione + + + Automation Editor + - - %1+Y - %1+Y + + + Mixer + - - &Copy - &Copia + + Show/hide controller rack + - - %1+C - %1+C + + Show/hide project notes + - - Cu&t - &Taglia + + Untitled + - - %1+X - %1+X + + Recover session. Please save your work! + - - &Paste - &Incolla + + LMMS %1 + - - %1+V - %1+V + + Recovered project not saved + - - Format Actions - Opzioni di formattazione + + This project was recovered from the previous session. It is currently unsaved and will be lost if you don't save it. Do you want to save it now? + - - &Bold - &Grassetto + + Project not saved + - - %1+B - %1+B + + The current project was modified since last saving. Do you want to save it now? + - - &Italic - Cors&ivo + + Open Project + - - %1+I - %1+I + + LMMS (*.mmp *.mmpz) + - - &Underline - &Sottolineato + + Save Project + - - %1+U - %1+U + + LMMS Project + - - &Left - &Sinistra + + LMMS Project Template + - - %1+L - %1+L + + Save project template + + + + + Overwrite default template? + - - C&enter - C&entro + + This will overwrite your current default template. + - - %1+E - %1+E + + Help not available + - - &Right - Dest&ra + + Currently there's no help available in LMMS. +Please visit http://lmms.sf.net/wiki for documentation on LMMS. + - - %1+R - %1+R + + Controller Rack + - - &Justify - &Giustifica + + Project Notes + - - %1+J - %1+J + + Fullscreen + Schermo intero - - &Color... - &Colore... + + Volume as dBFS + - - - ProjectRenderer - - WAV (*.wav) - WAV (*.wav) + + Smooth scroll + - - FLAC (*.flac) - FLAC (*.flac) + + Enable note labels in piano roll + - - OGG (*.ogg) - OGG (*.ogg) + + MIDI File (*.mid) + - - MP3 (*.mp3) - MP3 (*.mp3) + + + untitled + - - - QObject - - Reload Plugin + + + Select file for project-export... - - Show GUI - Mostra GUI + + Select directory for writing exported tracks... + - - Help - Aiuto + + Save project + - - - QWidget - - - - - Name: - Nome: + + Project saved + - - URI: + + The project %1 is now saved. - - - - Maker: - Autore: + + Project NOT saved. + - - - - Copyright: - Copyright: + + The project %1 was not saved! + - - - Requires Real Time: - Richiede Real Time: + + Import file + - - - - - - - Yes - + + MIDI sequences + - - - - - - - No - No + + Hydrogen projects + - - - Real Time Capable: - Abilitato al Real Time: + + All file types + + + + lmms::gui::MalletsInstrumentView - - - In Place Broken: - In Place Broken: + + Instrument + - - - Channels In: - Canali in ingresso: + + Spread + - - - Channels Out: - Canali in uscita: + + Spread: + - - File: %1 - File: %1 + + Random + - - File: - File: + + Random: + - - - RecentProjectsMenu - - &Recently Opened Projects - Progetti &Recenti + + Missing files + - - - RenameDialog - - Rename... - Rinomina... + + Your Stk-installation seems to be incomplete. Please make sure the full Stk-package is installed! + - - - ReverbSCControlDialog - - Input - Ingresso + + Hardness + - - Input gain: - Guadagno in Input: + + Hardness: + - - Size - Grandezza + + Position + - - Size: - Grandezza: + + Position: + - - Color - Colore + + Vibrato gain + - - Color: - Colore: + + Vibrato gain: + - - Output - Uscita + + Vibrato frequency + - - Output gain: - Guadagno in output: + + Vibrato frequency: + - - - ReverbSCControls - - Input gain - Guadagno in input + + Stick mix + - - Size - Grandezza + + Stick mix: + - - Color - Colore + + Modulator + - - Output gain - Guadagno in output + + Modulator: + - - - SaControls - - Pause - Pausa + + Crossfade + - - Reference freeze - Blocca riferimento + + Crossfade: + - - Waterfall - A cascata + + LFO speed + - - Averaging - Mediamente + + LFO speed: + - - Stereo - Stereofonico + + LFO depth + - - Peak hold - Tenuta del picco + + LFO depth: + - - Logarithmic frequency - Frequenza logaritmica + + ADSR + - - Logarithmic amplitude - Ampiezza logaritmica + + ADSR: + - - Frequency range - Intervallo di frequenza + + Pressure + - - Amplitude range - Gamma di ampiezza + + Pressure: + - - FFT block size - Dimensione blocco FFT + + Speed + - - FFT window type - Tipo di finestra FFT + + Speed: + + + + lmms::gui::ManageVSTEffectView - - Peak envelope resolution - Risoluzione inviluppo di picco + + - VST parameter control + - - Spectrum display resolution - Risoluzione visualizzatore dello spettro + + VST sync + - - Peak decay multiplier - Moltiplicatore decadimento di picco + + + Automated + - - Averaging weight - Peso medio + + Close + + + + lmms::gui::ManageVestigeInstrumentView - - Waterfall history size - Dimensioni cronologia cascata + + + - VST plugin control + - - Waterfall gamma correction - Correzione gamma a cascata + + VST Sync + - - FFT window overlap - Sovrapposizione finestra FFT + + + Automated + - - FFT zero padding + + Close + + + lmms::gui::MeterDialog - - - Full (auto) - Completo (automatico) + + + Meter Numerator + - - - - Audible - Udibile + + Meter numerator + - - Bass - Bassi + + + Meter Denominator + - - Mids - Medi + + Meter denominator + - - High - Alto + + TIME SIG + + + + lmms::gui::MicrotunerConfig - - Extended - Esteso + + Selected scale slot + - - Loud - Forte + + Selected keymap slot + - - Silent - Silenzioso + + + First key + - - (High time res.) - (Alta ris. temporale.) + + + Last key + - - (High freq. res.) - (Ris, alta freq.) + + + Middle key + - - Rectangular (Off) - Rettangolare (disattivato) + + + Base key + - - - Blackman-Harris (Default) - Blackman-Harris (predefinito) + + + + Base note frequency + - - Hamming - Hamming + + Microtuner Configuration + - - Hanning - Hanning + + Scale slot to edit: + - - - SaControlsDialog - - Pause - Pausa + + Scale description. Cannot start with "!" and cannot contain a newline character. + - - Pause data acquisition - Sospendi acquisizione dati + + + Load + - - Reference freeze - Blocca riferimento + + + Save + - - Freeze current input as a reference / disable falloff in peak-hold mode. - Blocca ingresso corrente come un riferimento/disabilita la caduta in modalità Tenuta-Picco. + + Load scale definition from a file. + - - Waterfall - A cascata + + Save scale definition to a file. + - - Display real-time spectrogram - Visualizza spettrogramma in tempo reale + + Enter intervals on separate lines. Numbers containing a decimal point are treated as cents. +Other inputs are treated as integer ratios and must be in the form of 'a/b' or 'a'. +Unity (0.0 cents or ratio 1/1) is always present as a hidden first value; do not enter it manually. + - - Averaging - Mediamente + + Apply scale changes + - - Enable exponential moving average - Abilita movimento medio esponenziale + + Verify and apply changes made to the selected scale. To use the scale, select it in the settings of a supported instrument. + - - Stereo - Stereofonico + + Keymap slot to edit: + - - Display stereo channels separately - Visualizza canali stereo separatamente + + Keymap description. Cannot start with "!" and cannot contain a newline character. + - - Peak hold - Tenuta del picco + + Load key mapping definition from a file. + - - Display envelope of peak values - Visualizza inviluppo dei valori di picco + + Save key mapping definition to a file. + - - Logarithmic frequency - Frequenza logaritmica + + Enter key mappings on separate lines. Each line assigns a scale degree to a MIDI key, +starting with the middle key and continuing in sequence. +The pattern repeats for keys outside of the explicit keymap range. +Multiple keys can be mapped to the same scale degree. +Enter 'x' if you wish to leave the key disabled / not mapped. + - - Switch between logarithmic and linear frequency scale - Passa dalla scala della frequenza logaritmica a quella lineare + + FIRST + - - - Frequency range - Intervallo di frequenza + + First MIDI key that will be mapped + - - Logarithmic amplitude - Ampiezza logaritmica + + LAST + - - Switch between logarithmic and linear amplitude scale - Scambia tra scala logaritmica e ad ampiezza lineare + + Last MIDI key that will be mapped + - - - Amplitude range - Gamma di ampiezza + + MIDDLE + - - Envelope res. - Ris. inviluppo + + First line in the keymap refers to this MIDI key + - - Increase envelope resolution for better details, decrease for better GUI performance. - Aumenta la risoluzione dell'inviluppo per maggiori dettagli, diminuisci per migliori prestazioni della GUI. + + BASE N. + - - - Draw at most - Disegna al massimo + + Base note frequency will be assigned to this MIDI key + - - envelope points per pixel - punti di inviluppo per pixel + + BASE NOTE FREQ + - - Spectrum res. - Ris. spettro + + Apply keymap changes + - - Increase spectrum resolution for better details, decrease for better GUI performance. - Aumenta la risoluzione dello spettro per maggiori dettagli, diminuisci per migliori prestazioni della GUI. + + Verify and apply changes made to the selected key mapping. To use the mapping, select it in the settings of a supported instrument. + - - spectrum points per pixel - punti di spettro per pixel + + Scale parsing error + - - Falloff factor - Fattore di decadimento + + Scale name cannot start with an exclamation mark + - - Decrease to make peaks fall faster. - Diminuisci per far cadere più rapidamente i picchi. + + Scale name cannot contain a new-line character + - - Multiply buffered value by - Moltiplica il valore bufferizzato per + + Interval defined in cents cannot be converted to a number + - - Averaging weight - Peso medio + + Numerator of an interval defined as a ratio cannot be converted to a number + - - Decrease to make averaging slower and smoother. - Riduci per rendere la media più lenta e uniforme. + + Denominator of an interval defined as a ratio cannot be converted to a number + - - New sample contributes - Nuovo campione contribuisce + + Interval defined as a ratio cannot be negative + - - Waterfall height - Altezza cascata + + Keymap parsing error + - - Increase to get slower scrolling, decrease to see fast transitions better. Warning: medium CPU usage. - Aumenta per scorrere più lentamente, diminuisci per vedere meglio le transizioni veloci. Avvertenza: utilizzo medio della CPU. + + Keymap name cannot start with an exclamation mark + - - Keep - Mantieni + + Keymap name cannot contain a new-line character + - - lines - linee + + Scale degree cannot be converted to a whole number + - - Waterfall gamma - Gamma cascata + + Scale degree cannot be negative + - - Decrease to see very weak signals, increase to get better contrast. - Diminuisci per vedere segnali molto deboli, aumenta per ottenere un migliore contrasto. + + Invalid keymap + - - Gamma value: - Valore gamma: + + Base key is not mapped to any scale degree. No sound will be produced as there is no way to assign reference frequency to any note. + - - Window overlap - Sovrapposizione della finestra + + Open scale + - - Increase to prevent missing fast transitions arriving near FFT window edges. Warning: high CPU usage. - Aumenta per evitare che manchino transizioni veloci nei pressi dei bordi delle finestre FFT. Avvertenza: utilizzo elevato della CPU. + + + Scala scale definition (*.scl) + - - Each sample processed - Ogni campione elaborato + + Scale load failure + - - times + + + Unable to open selected file. - - Zero padding + + Open keymap - - Increase to get smoother-looking spectrum. Warning: high CPU usage. - Aumenta per ottenere uno spettro più uniforme. Avvertenza: elevato utilizzo della CPU. + + + Scala keymap definition (*.kbm) + - - Processing buffer is - Il buffer di elaborazione è + + Keymap load failure + - - steps larger than input block - passi più grandi del blocco di entrata + + Save scale + - - Advanced settings - Impostazioni avanzate + + Scale save failure + - - Access advanced settings - Accesso impostazioni avanzate + + + Unable to open selected file for writing. + - - - FFT block size - Dimensione blocco FFT + + Save keymap + - - - FFT window type - Tipo finestra FFT + + Keymap save failure + - SampleBuffer + lmms::gui::MidiCCRackView - - Fail to open file - Impossibile aprire il file + + + MIDI CC Rack - %1 + - - Audio files are limited to %1 MB in size and %2 minutes of playing time - I file audio hanno un limite di %1 MB in grandezza e %2 minuti in durata + + MIDI CC Knobs: + - - Open audio file - Apri file audio + + CC %1 + + + + + lmms::gui::MidiClipView + + + + Transpose + - - All Audio-Files (*.wav *.ogg *.ds *.flac *.spx *.voc *.aif *.aiff *.au *.raw) - Tutti i file audio (*.wav *.ogg *.ds *.flac *.spx *.voc *.aif *.aiff *.au *.raw) + + Semitones to transpose by: + - - Wave-Files (*.wav) - File wave (*.wav) + + Open in piano-roll + - - OGG-Files (*.ogg) - File OGG (*.ogg) + + Set as ghost in piano-roll + - - DrumSynth-Files (*.ds) - File DrumSynth (*.ds) + + Set as ghost in automation editor + - - FLAC-Files (*.flac) - File FLAC (*.flac) + + Clear all notes + - - SPEEX-Files (*.spx) - File SPEEX (*.spx) + + Reset name + Reimposta il nome - - VOC-Files (*.voc) - File VOC (*.voc) + + Change name + - - AIFF-Files (*.aif *.aiff) - File AIFF (*.aif *.aiff) + + Add steps + - - AU-Files (*.au) - File AU (*.au) + + Remove steps + - - RAW-Files (*.raw) - File RAW (*.raw) + + Clone Steps + - SampleClipView + lmms::gui::MidiSetupWidget - - Double-click to open sample - Fare doppio-click per aprire un campione + + Device + + + + lmms::gui::MixerChannelLcdSpinBox - - Delete (middle mousebutton) - Elimina (tasto centrale del mouse) + + Assign to: + - - Delete selection (middle mousebutton) + + New Mixer Channel - - Cut - Taglia + + Please enter a new value between %1 and %2: + - - Cut selection + + Set value + + + lmms::gui::MixerChannelView - - Copy - Copia + + Channel send amount + - - Copy selection + + Mute - - Paste - Incolla + + Mute this channel + - - Mute/unmute (<%1> + middle click) - Attiva/disattiva la modalità muta (<%1> + tasto centrale) + + Solo + - - Mute/unmute selection (<%1> + middle click) + + Solo this channel - - Reverse sample - Inverti campione + + Fader %1 + - - Set clip color + + Move &left - - Use track color + + Move &right - - - SampleTrack - - Volume - Volume + + Rename &channel + - - Panning - Bilanciamento + + R&emove channel + - - Mixer channel - Canale FX + + Remove &unused channels + - - - Sample track - Traccia di campione + + Color + - - - SampleTrackView - - Track volume - Volume della traccia + + Change + - - Channel volume: - Volume del canale: + + Reset + Ripristina - - VOL - VOL + + Pick random + - - Panning - Bilanciamento + + This Mixer Channel is being used. +Are you sure you want to remove this channel? + +Warning: This operation can not be undone. + - - Panning: - Bilanciamento: + + Confirm removal + - - PAN - BIL + + Don't ask again + + + + lmms::gui::MixerView - - Channel %1: %2 - FX %1: %2 + + Mixer + - SampleTrackWindow + lmms::gui::MonstroView - - GENERAL SETTINGS - IMPOSTAZIONI GENERALI - - - - Sample volume - Volume campione + + Operators view + - - Volume: - Volume: + + Matrix view + - - VOL - VOL + + + + Volume + - + + + Panning - Bilanciamento - - - - Panning: - Bilanciamento: - - - - PAN - BIL + - - Mixer channel - Canale FX + + + + Coarse detune + - - CHANNEL - FX + + + + semitones + - - - SaveOptionsWidget - - Discard MIDI connections - Scarta le connessioni MIDI + + + Fine tune left + - - Save As Project Bundle (with resources) + + + + + cents - - - SetupDialog - - Reset to default value - Ritorna alle impostazioni predefinite + + + Fine tune right + - - Use built-in NaN handler - Usa il gestore NaN integrato + + + + Stereo phase offset + - - Settings - Impostazioni + + + + + + deg + - - - General - Generale + + Pulse width + - - Graphical user interface (GUI) - Interfaccia utente grafica (GUI) + + Send sync on pulse rise + - - Display volume as dBFS - Mostra il volume in dBFS + + Send sync on pulse fall + - - Enable tooltips - Abilita i suggerimenti + + Hard sync oscillator 2 + - - Enable master oscilloscope by default + + Reverse sync oscillator 2 - - Enable all note labels in piano roll + + Sub-osc mix - - Enable compact track buttons + + Hard sync oscillator 3 - - Enable one instrument-track-window mode + + Reverse sync oscillator 3 - - Show sidebar on the right-hand side + + + + + Attack - - Let sample previews continue when mouse is released + + + Rate - - Mute automation tracks during solo + + + Phase - - Show warning when deleting tracks + + + Pre-delay - - Projects - Progetti + + + Hold + - - Compress project files by default + + + Decay - - Create a backup file when saving a project + + + Sustain - - Reopen last project on startup + + + Release - - Language - Lingua + + + Slope + - - - Performance - Prestazioni + + Mix osc 2 with osc 3 + - - Autosave - Salvataggio automatico + + Modulate amplitude of osc 3 by osc 2 + - - Enable autosave - Abilita salvataggio automatico + + Modulate frequency of osc 3 by osc 2 + - - Allow autosave while playing - Consenti salvataggio automatico durante la riproduzione + + Modulate phase of osc 3 by osc 2 + - - User interface (UI) effects vs. performance - Effetti dell'interfaccia utente (UI) vs. prestazioni + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Modulation amount + + + + lmms::gui::MultitapEchoControlDialog - - Smooth scroll in song editor + + Length - - Display playback cursor in AudioFileProcessor + + Step length: - - Plugins - Plugin + + Dry + - - VST plugins embedding: - Incorporamento dei plug-in VST: + + Dry gain: + - - No embedding - Nessun incorporamento + + Stages + - - Embed using Qt API - Incorpora utilizzando l'API Qt + + Low-pass stages: + - - Embed using native Win32 API - Incorpora utilizzando l'API Win32 nativa + + Swap inputs + - - Embed using XEmbed protocol - Incorpora utilizzando il protocollo XEmbed + + Swap left and right input channels for reflections + + + + lmms::gui::NesInstrumentView - - Keep plugin windows on top when not embedded - Mantieni le finestre dei plugin in primo piano quando non sono incorporate + + + + + Volume + - - Sync VST plugins to host playback - Sincronizza i plugin VST alla riproduzione del programma + + + + Coarse detune + - - Keep effects running even without input - Lascia gli effetti attivi anche senza input + + + + Envelope length + - - - Audio - Audio + + Enable channel 1 + - - Audio interface - Interfaccia audio + + Enable envelope 1 + - - HQ mode for output audio device - Modalità HQ per il dispositivo audio di uscita + + Enable envelope 1 loop + - - Buffer size - Dimensione buffer + + Enable sweep 1 + - - - MIDI - MIDI + + + Sweep amount + - - MIDI interface - Interfaccia MIDI + + + Sweep rate + - - Automatically assign MIDI controller to selected track + + + 12.5% Duty cycle - - LMMS working directory - Directory di lavoro di LMMS + + + 25% Duty cycle + - - VST plugins directory + + + 50% Duty cycle - - LADSPA plugins directories + + + 75% Duty cycle - - SF2 directory - Directory dei SoundFont + + Enable channel 2 + - - Default SF2 + + Enable envelope 2 - - GIG directory - Directory di GIG + + Enable envelope 2 loop + - - Theme directory + + Enable sweep 2 - - Background artwork - Grafica dello sfondo + + Enable channel 3 + - - Some changes require restarting. - Alcune modifiche richiedono il riavvio. + + Noise Frequency + - - Autosave interval: %1 - Intervallo salvataggio automatico: %1 + + Frequency sweep + - - Choose the LMMS working directory - Scegli la cartella di lavoro di LMMS + + Enable channel 4 + - - Choose your VST plugins directory - Scegli la tua cartella dei plugins VST + + Enable envelope 4 + - - Choose your LADSPA plugins directory - Scegli la tua cartella dei plugins LADSPA + + Enable envelope 4 loop + - - Choose your default SF2 - Scegli il tuo SF2 predefinito + + Quantize noise frequency when using note frequency + - - Choose your theme directory - Scegli la tua cartella dei temi + + Use note frequency for noise + - - Choose your background picture - Scegli la tua immagine di sfondo + + Noise mode + - - - Paths - Percorsi + + Master volume + - - OK - OK + + Vibrato + + + + lmms::gui::OpulenzInstrumentView - - Cancel - Annulla + + + Attack + - - Frames: %1 -Latency: %2 ms - Frames: %1 -Latenza: %2 ms + + + Decay + - - Choose your GIG directory - Selezione la directory di GIG + + + Release + - - Choose your SF2 directory - Seleziona la directory dei SoundFont + + + Frequency multiplier + + + + lmms::gui::OrganicInstrumentView - - minutes - minuti + + Distortion: + - - minute - minuto + + Volume: + - - Disabled - Disabilitato + + Randomise + - - - SidInstrument - - Cutoff frequency - Frequenza di taglio + + + Osc %1 waveform: + - - Resonance - Risonanza + + Osc %1 volume: + - - Filter type - Tipo di filtro + + Osc %1 panning: + - - Voice 3 off - Voce 3 spenta + + Osc %1 stereo detuning + - - Volume - Volume + + cents + - - Chip model - Modello di chip + + Osc %1 harmonic: + - SidInstrumentView + lmms::gui::Oscilloscope - - Volume: - Volume: + + Oscilloscope + - - Resonance: - Risonanza: + + Click to enable + + + + lmms::gui::PatmanView - - - Cutoff frequency: - Frequenza di taglio: + + Open patch + - - High-pass filter - Filtro passa-alto + + Loop + - - Band-pass filter - Filtro passa-banda + + Loop mode + - - Low-pass filter - Filtro passa-basso + + Tune + - - Voice 3 off - Voce 3 disattivata + + Tune mode + - - MOS6581 SID - MOS6581 SID + + No file selected + - - MOS8580 SID - MOS8580 SID + + Open patch file + - - - Attack: - Attacco: + + Patch-Files (*.pat) + + + + lmms::gui::PatternClipView - - - Decay: - Decadimento: + + Open in Pattern Editor + - - Sustain: - Sostegno: + + Reset name + Reimposta il nome - - - Release: - Rilascio: + + Change name + + + + lmms::gui::PatternEditorWindow - - Pulse Width: - Ampiezza pulse: + + Pattern Editor + - - Coarse: - Approssimativo: + + Play/pause current pattern (Space) + - - Pulse wave - Onda a impulso + + Stop playback of current pattern (Space) + - - Triangle wave - Onda triangolare + + Pattern selector + - - Saw wave - Onda a dente di sega + + Track and step actions + - - Noise - Rumore + + New pattern + - - Sync - Sincronizzato + + Clone pattern + - - Ring modulation - Modulazione ad anello + + Add sample-track + - - Filtered - Filtrato + + Add automation-track + - - Test - Test + + Remove steps + - - Pulse width: - Ampiezza impulso: + + Add steps + - - - SideBarWidget - - Close - Chiudi + + Clone Steps + - Song - - - Tempo - Tempo - + lmms::gui::PeakControllerDialog - - Master volume - Volume principale + + PEAK + - - Master pitch - Altezza principale + + LFO Controller + + + + lmms::gui::PeakControllerEffectControlDialog - - Aborting project load + + BASE - - Project file contains local paths to plugins, which could be used to run malicious code. + + Base: - - Can't load project: Project file contains local paths to plugins. + + AMNT - - LMMS Error report - Informazioni sull'errore di LMMS + + Modulation amount: + - - (repeated %1 times) + + MULT - - The following errors occurred while loading: - Si sono verificati i seguenti errori durante il caricamento: + + Amount multiplicator: + - - - SongEditor - - Could not open file - Non è stato possibile aprire il file + + ATCK + - - Could not open file %1. You probably have no permissions to read this file. - Please make sure to have at least read permissions to the file and try again. - Impossibile aprire il file %1. Probabilmente non disponi dei permessi necessari alla sua lettura. -Assicurati di avere almeno i permessi di lettura del file e prova di nuovo. + + Attack: + - - Operation denied + + DCAY - - A bundle folder with that name already eists on the selected path. Can't overwrite a project bundle. Please select a different name. + + Release: - - - - Error - Errore + + TRSH + - - Couldn't create bundle folder. + + Treshold: - - Couldn't create resources folder. + + Mute output - - Failed to copy resources. + + Absolute value + + + lmms::gui::PeakIndicator - - Could not write file - Impossibile scrivere il file + + -inf + + + + lmms::gui::PianoRoll - - Could not open %1 for writing. You probably are not permitted towrite to this file. Please make sure you have write-access to the file and try again. + + Note Velocity - - This %1 was created with LMMS %2 + + Note Panning - - Error in file - Errore nel file + + Mark/unmark current semitone + - - The file %1 seems to contain errors and therefore can't be loaded. - Il file %1 sembra contenere errori, quindi non può essere caricato. + + Mark/unmark all corresponding octave semitones + - - Version difference - Differenza di versione + + Mark current scale + - - template - modello + + Mark current chord + - - project - progetto + + Unmark all + - - Tempo - Tempo + + Select all notes on this key + - - TEMPO - TEMPO + + Note lock + - - Tempo in BPM - Tempo in BPM + + Last note + - - High quality mode - Modalità ad alta qualità + + No key + - - - - Master volume - Volume principale + + No scale + - - - - Master pitch - Altezza principale + + No chord + - - Value: %1% - Valore: %1% + + Nudge + - - Value: %1 semitones - Valore: %1 semitoni + + Snap + - - - SongEditorWindow - - Song-Editor - Song-Editor + + Velocity: %1% + - - Play song (Space) - Riproduci il brano (Spazio) + + Panning: %1% left + - - Record samples from Audio-device - Registra campioni da una periferica audio + + Panning: %1% right + - - Record samples from Audio-device while playing song or BB track - Registra campioni da una periferica audio mentre il brano o una traccia BB sono in riproduzione + + Panning: center + - - Stop song (Space) - Ferma la riproduzione del brano (Spazio) + + Glue notes failed + - - Track actions - Azioni sulle tracce + + Please select notes to glue first. + - - Add beat/bassline - Aggiungi beat/bassline + + Please open a clip by double-clicking on it! + - - Add sample-track - Aggiungi traccia di campione + + + Please enter a new value between %1 and %2: + + + + lmms::gui::PianoRollWindow - - Add automation-track - Aggiungi una traccia di automazione + + Play/pause current clip (Space) + - - Edit actions - Modalità di modifica + + Record notes from MIDI-device/channel-piano + - - Draw mode - Modalità disegno + + Record notes from MIDI-device/channel-piano while playing song or pattern track + - - Knife mode (split sample clips) + + Record notes from MIDI-device/channel-piano, one step at the time - - Edit mode (select and move) - Modalità modifica (seleziona e sposta) + + Stop playing of current clip (Space) + - - Timeline controls - Controlla griglia + + Edit actions + - - Bar insert controls + + Draw mode (Shift+D) - - Insert bar + + Erase mode (Shift+E) - - Remove bar + + Select mode (Shift+S) - - Zoom controls - Opzioni di zoom + + Pitch Bend mode (Shift+T) + - - Horizontal zooming - Zoom orizzontale + + Quantize + - - Snap controls - Controlli aggancio + + Quantize positions + - - - Clip snapping size - Dimensione aggancio della clip + + Quantize lengths + - - Toggle proportional snap on/off - Attiva/disattiva aggancio proporzionale + + File actions + - - Base snapping size - Dimensione aggancio di base + + Import clip + - - - StepRecorderWidget - - Hint - Suggerimento + + + Export clip + - - Move recording curser using <Left/Right> arrows - Sposta cursore di registrazione usando le frecce <Sinistra/Destra> + + Copy paste controls + - - - SubWindow - - Close - Chiudi + + Cut (%1+X) + - - Maximize - Massimizza + + Copy (%1+C) + - - Restore - Apri + + Paste (%1+V) + - - - TabWidget - - - Settings for %1 - Impostazioni per %1 + + Timeline controls + - - - TemplatesMenu - - New from template - Nuovo da modello + + Glue + - - - TempoSyncKnob - - - Tempo Sync - Sync del tempo + + Knife + - - No Sync - Non in Sync + + Fill + - - Eight beats - Otto battiti + + Cut overlaps + - - Whole note - Un intero + + Min length as last + - - Half note - Una metà + + Max length as last + - - Quarter note - Quarto + + Zoom and note controls + - - 8th note - Ottavo + + Horizontal zooming + - - 16th note - Sedicesimo + + Vertical zooming + - - 32nd note - Trentaduesimo + + Quantization + - - Custom... - Personalizzato... + + Note length + - - Custom - Personalizzato + + Key + - - Synced to Eight Beats - In sync con otto battiti + + Scale + - - Synced to Whole Note - In sync con un intero + + Chord + - - Synced to Half Note - In sync con un mezzo + + Snap mode + - - Synced to Quarter Note - In sync con quarti + + Clear ghost notes + - - Synced to 8th Note - In sync con ottavi + + + Piano-Roll - %1 + - - Synced to 16th Note - In sync con 16simi + + + Piano-Roll - no clip + - - Synced to 32nd Note - In sync con 32simi + + + XML clip file (*.xpt *.xptz) + - - - TimeDisplayWidget - - Time units - Unità di tempo + + Export clip success + - - MIN - MIN + + Clip saved to %1 + - - SEC - SEC + + Import clip. + - - MSEC - MSEC + + You are about to import a clip, this will overwrite your current clip. Do you want to continue? + - - BAR - BAR + + Open clip + - - BEAT - BATT + + Import clip success + - - TICK - TICK + + Imported clip %1! + - TimeLineWidget + lmms::gui::PianoView - - Auto scrolling - Scorrimento automatico + + Base note + - - Loop points - Punti di ripetizione ciclica + + First note + - - After stopping go back to beginning + + Last note + + + lmms::gui::PluginBrowser - - After stopping go back to position at which playing was started - Una volta fermata la riproduzione, torna alla posizione da cui si è partiti + + Instrument Plugins + - - After stopping keep position - Una volta fermata la riproduzione, mantieni la posizione + + Instrument browser + - - Hint - Suggerimento + + Drag an instrument into either the Song Editor, the Pattern Editor or an existing instrument track. + - - Press <%1> to disable magnetic loop points. - Premi <%1> per disabilitare i punti di loop magnetici. + + Search + - Track + lmms::gui::PluginDescWidget - - Mute - Muto - - - - Solo - Solo + + Send to new instrument track + - TrackContainer + lmms::gui::ProjectNotes - - Couldn't import file - Non è stato possibile importare il file + + Project Notes + - - Couldn't find a filter for importing file %1. -You should convert this file into a format supported by LMMS using another software. - Non è stato possibile trovare un filtro per importare il file %1. -È necessario convertire questo file in un formato supportato da LMMS usando un altro programma. + + Enter project notes here + - - Couldn't open file - Non è stato possibile aprire il file + + Edit Actions + - - Couldn't open file %1 for reading. -Please make sure you have read-permission to the file and the directory containing the file and try again! - Non è stato possibile aprire il file %1 in lettura. -Assicurarsi di avere i permessi in lettura per il file e per la directory che lo contiene e riprovare! + + &Undo + - - Loading project... - Caricamento del progetto... + + %1+Z + - - - Cancel - Annulla + + &Redo + - - - Please wait... - Attendere... + + %1+Y + - - Loading cancelled - Caricamento annullato + + &Copy + - - Project loading was cancelled. - Il caricamento del progetto è stato annullato. + + %1+C + - - Loading Track %1 (%2/Total %3) - Caricamento Traccia %1 (%2/Totale %3) + + Cu&t + - - Importing MIDI-file... - Importazione del file MIDI... + + %1+X + - - - Clip - - Mute - Muto + + &Paste + - - - ClipView - - Current position - Posizione attuale + + %1+V + - - Current length - Lunghezza attuale + + Format Actions + - - - %1:%2 (%3:%4 to %5:%6) - %1:%2 (da %3:%4 a %5:%6) + + &Bold + - - Press <%1> and drag to make a copy. - Premere <%1>, cliccare e trascinare per copiare. + + %1+B + - - Press <%1> for free resizing. - Premere <%1> per ridimensionare liberamente. + + &Italic + - - Hint - Suggerimento + + %1+I + - - Delete (middle mousebutton) - Elimina (tasto centrale del mouse) + + &Underline + - - Delete selection (middle mousebutton) + + %1+U - - Cut - Taglia + + &Left + - - Cut selection + + %1+L - - Merge Selection + + C&enter - - Copy - Copia + + %1+E + - - Copy selection + + &Right - - Paste - Incolla + + %1+R + - - Mute/unmute (<%1> + middle click) - Attiva/disattiva la modalità muta (<%1> + tasto centrale) + + &Justify + - - Mute/unmute selection (<%1> + middle click) + + %1+J - - Set clip color + + &Color... + + + lmms::gui::RecentProjectsMenu - - Use track color - + + &Recently Opened Projects + &Progetti Aperti di Recente - TrackContentWidget + lmms::gui::RenameDialog - - Paste - Incolla + + Rename... + - TrackOperationsWidget + lmms::gui::ReverbSCControlDialog - - Press <%1> while clicking on move-grip to begin a new drag'n'drop action. - Premi <%1> mentre fai clic sul controllo per iniziare una nuova azione di trascinamento della selezione. + + Input + - - Actions - Azioni + + Input gain: + - - - Mute - Muto + + Size + - - - Solo - Solo + + Size: + - - After removing a track, it can not be recovered. Are you sure you want to remove track "%1"? + + Color - - Confirm removal + + Color: - - Don't ask again + + Output - - Clone this track - Clona questa traccia + + Output gain: + + + + lmms::gui::SaControlsDialog - - Remove this track - Elimina questa traccia + + Pause + - - Clear this track - Pulisci questa traccia + + Pause data acquisition + - - Channel %1: %2 - FX %1: %2 + + Reference freeze + - - Assign to new mixer Channel - Assegna ad un nuovo canale FX + + Freeze current input as a reference / disable falloff in peak-hold mode. + - - Turn all recording on - Accendi tutti i processi di registrazione + + Waterfall + - - Turn all recording off - Spegni tutti i processi di registrazione + + Display real-time spectrogram + - - Change color - Cambia colore + + Averaging + - - Reset color to default - Ripristina colore predefinito + + Enable exponential moving average + - - Set random color + + Stereo - - Clear clip colors + + Display stereo channels separately - - - TripleOscillatorView - - Modulate phase of oscillator 1 by oscillator 2 - Modula la fase dell'oscillatore 1 tramite l'oscillatore 2 + + Peak hold + - - Modulate amplitude of oscillator 1 by oscillator 2 - Modula l'ampiezza dell'oscillatore 1 dall'oscillatore 2 + + Display envelope of peak values + - - Mix output of oscillators 1 & 2 - Miscelare l'uscita degli oscillatori 1 e 2 + + Logarithmic frequency + - - Synchronize oscillator 1 with oscillator 2 - Sincronizzare l'oscillatore 1 con l'oscillatore 2 + + Switch between logarithmic and linear frequency scale + - - Modulate frequency of oscillator 1 by oscillator 2 - Modula la frequenza dell'oscillatore 1 tramite l'oscillatore 2 + + + Frequency range + - - Modulate phase of oscillator 2 by oscillator 3 - Modula la fase dell'oscillatore 2 tramite l'oscillatore 3 + + Logarithmic amplitude + - - Modulate amplitude of oscillator 2 by oscillator 3 - Modula l'ampiezza dell'oscillatore 2 tramite l'oscillatore 3 + + Switch between logarithmic and linear amplitude scale + - - Mix output of oscillators 2 & 3 - Miscela l'uscita degli oscillatori 2 e 3 + + + Amplitude range + - - Synchronize oscillator 2 with oscillator 3 - Sincronizzare l'oscillatore 2 con l'oscillatore 3 + + + FFT block size + - - Modulate frequency of oscillator 2 by oscillator 3 - Modula la frequenza dell'oscillatore 2 tramite l'oscillatore 3 + + + FFT window type + - - Osc %1 volume: - Volume osc %1: + + Envelope res. + - - Osc %1 panning: - Panning osc %1: + + Increase envelope resolution for better details, decrease for better GUI performance. + - - Osc %1 coarse detuning: - Intonazione dell'osc %1: + + Maximum number of envelope points drawn per pixel: + - - semitones - semitoni + + Spectrum res. + - - Osc %1 fine detuning left: - Intonazione precisa osc %1 sinistra: + + Increase spectrum resolution for better details, decrease for better GUI performance. + - - - cents - centesimi + + Maximum number of spectrum points drawn per pixel: + - - Osc %1 fine detuning right: - Intonazione precisa dell'osc %1 - destra: + + Falloff factor + - - Osc %1 phase-offset: - Scostamento fase dell'osc %1: + + Decrease to make peaks fall faster. + - - - degrees - gradi + + Multiply buffered value by + - - Osc %1 stereo phase-detuning: - Intonazione fase stereo dell'osc %1: + + Averaging weight + - - Sine wave - Onda sinusoidale + + Decrease to make averaging slower and smoother. + - - Triangle wave - Onda triangolare + + New sample contributes + - - Saw wave - Onda a dente di sega + + Waterfall height + - - Square wave - Onda quadra + + Increase to get slower scrolling, decrease to see fast transitions better. Warning: medium CPU usage. + - - Moog-like saw wave - Onda a dente di sega tipo Moog + + Number of lines to keep: + - - Exponential wave - Onda esponenziale + + Waterfall gamma + - - White noise - Rumore bianco + + Decrease to see very weak signals, increase to get better contrast. + - - User-defined wave - Onda definita dall'utente + + Gamma value: + - - - VecControls - - Display persistence amount - Visualizza quantità di persistenza + + Window overlap + - - Logarithmic scale - Scala logaritmica + + Increase to prevent missing fast transitions arriving near FFT window edges. Warning: high CPU usage. + - - High quality - Alta qualità + + Number of times each sample is processed: + - - - VecControlsDialog - - HQ - HQ + + Zero padding + + + + + Increase to get smoother-looking spectrum. Warning: high CPU usage. + + + + + Processing buffer is + - - Double the resolution and simulate continuous analog-like trace. - Raddoppia la risoluzione e simula una traccia analogica continua. + + steps larger than input block + - - Log. scale - Scala log. + + Advanced settings + - - Display amplitude on logarithmic scale to better see small values. - Mostra l'ampiezza su scala logaritmica per visualizzare meglio i piccoli valori. + + Access advanced settings + + + + lmms::gui::SampleClipView - - Persist. - Persist. + + Double-click to open sample + - - Trace persistence: higher amount means the trace will stay bright for longer time. - Persistenza della traccia: una quantità maggiore significa che la traccia rimarrà luminosa per un tempo più lungo. + + Reverse sample + - - Trace persistence - Persistenza della traccia + + Set as ghost in automation editor + - VersionedSaveDialog + lmms::gui::SampleTrackView - - Increment version number - Nuova versione + + Mixer channel + - - Decrement version number - Riduci numero versione + + Track volume + - - Save Options - Opzioni di salvataggio + + Channel volume: + - - already exists. Do you want to replace it? - Esiste già. Vuoi sovrascriverlo? + + VOL + - - - VestigeInstrumentView - - - Open VST plugin - Apri plug-in VST + + Panning + - - Control VST plugin from LMMS host - Controlla il plug-in VST dall'host LMMS + + Panning: + - - Open VST plugin preset - Apri lo schema del plug-in VST + + PAN + - - Previous (-) - Precedente (-) + + %1: %2 + + + + lmms::gui::SampleTrackWindow - - Save preset - Salva il preset + + Sample volume + - - Next (+) - Successivo (+) + + Volume: + - - Show/hide GUI - Mostra/nascondi l'interfaccia + + VOL + - - Turn off all notes - Disabilita tutte le note + + Panning + - - DLL-files (*.dll) - File DLL (*.dll) + + Panning: + - - EXE-files (*.exe) - File EXE (*.exe) + + PAN + - - No VST plugin loaded - Nessun plug-in VST caricato + + Mixer channel + - - Preset - Preset + + CHANNEL + + + + lmms::gui::SaveOptionsWidget - - by - da + + Discard MIDI connections + - - - VST plugin control - - Controllo del plugin VST + + Save As Project Bundle (with resources) + - VstEffectControlDialog + lmms::gui::SetupDialog - - Show/hide - Mostra/nascondi + + Settings + - - Control VST plugin from LMMS host - Controlla il plug-in VST dall'ospite LMMS + + + General + - - Open VST plugin preset - Apri lo schema del plug-in VST + + Graphical user interface (GUI) + - - Previous (-) - Precedente (-) + + Display volume as dBFS + - - Next (+) - Successivo (+) + + Enable tooltips + - - Save preset - Salva il preset + + Enable master oscilloscope by default + - - - Effect by: - Effetto da: + + Enable all note labels in piano roll + - - &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> - &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> + + Enable compact track buttons + - - - VstPlugin - - - The VST plugin %1 could not be loaded. - Non è stato possibile caricare il plugin VST %1. + + Enable one instrument-track-window mode + - - Open Preset - Apri preset + + Show sidebar on the right-hand side + - - - Vst Plugin Preset (*.fxp *.fxb) - Preset di plugin VST (*.fxp *.fxb) + + Let sample previews continue when mouse is released + - - : default - : default + + Mute automation tracks during solo + - - Save Preset - Salva Preset + + Show warning when deleting tracks + - - .fxp - .fxp + + Show warning when deleting a mixer channel that is in use + - - .FXP - .FXP + + Dual-button + - - .FXB - .FXB + + Grab closest + - - .fxb - .fxb + + Handles + - - Loading plugin - Caricamento plugin + + Loop edit mode + - - Please wait while loading VST plugin... - Sto caricando il plugin VST... + + Projects + - - - WatsynInstrument - - Volume A1 - Volume A1 + + Compress project files by default + - - Volume A2 - Volume A2 + + Create a backup file when saving a project + - - Volume B1 - Volume B1 + + Reopen last project on startup + - - Volume B2 - Volume B2 + + Language + - - Panning A1 - Bilanciamento A1 + + + Performance + - - Panning A2 - Bilanciamento A2 + + Autosave + - - Panning B1 - Bilanciamento B1 + + Enable autosave + - - Panning B2 - Bilanciamento B2 + + Allow autosave while playing + - - Freq. multiplier A1 - Moltiplicatore di freq. A1 + + User interface (UI) effects vs. performance + - - Freq. multiplier A2 - Moltiplicatore di freq. A2 + + Smooth scroll in song editor + - - Freq. multiplier B1 - Moltiplicatore di freq. B1 + + Display playback cursor in AudioFileProcessor + - - Freq. multiplier B2 - Moltiplicatore di freq. B2 + + Plugins + - - Left detune A1 - Intonazione Sinistra A1 + + VST plugins embedding: + - - Left detune A2 - Intonazione Sinistra A2 + + No embedding + - - Left detune B1 - Intonazione Sinistra B1 + + Embed using Qt API + - - Left detune B2 - Intonazione Sinistra B2 + + Embed using native Win32 API + - - Right detune A1 - Intonazione Destra A1 + + Embed using XEmbed protocol + - - Right detune A2 - Intonazione Destra A2 + + Keep plugin windows on top when not embedded + - - Right detune B1 - Intonazione Destra B1 + + Keep effects running even without input + - - Right detune B2 - Intonazione Destra B2 + + + Audio + - - A-B Mix - Mix A-B + + Audio interface + - - A-B Mix envelope amount - Quantità di inviluppo Mix A-B + + Buffer size + - - A-B Mix envelope attack - Attacco inviluppo Mix A-B + + Reset to default value + Ripristina il valore predefinito - - A-B Mix envelope hold - Mantenimento inviluppo Mix A-B + + + MIDI + + + + + MIDI interface + + + + + Automatically assign MIDI controller to selected track + - - A-B Mix envelope decay - Decadimento inviluppo Mix A-B + + Behavior when recording + - - A1-B2 Crosstalk - Scambio A1-B2 + + Auto-quantize notes in Piano Roll + - - A2-A1 modulation - Modulazione A2-A1 + + If enabled, notes will be automatically quantized when recording them from a MIDI controller. If disabled, they are always recorded at the highest possible resolution. + - - B2-B1 modulation - Modulazione B2-B1 + + + Paths + - - Selected graph - Grafico selezionato + + LMMS working directory + - - - WatsynView - - - - - Volume - Volume + + VST plugins directory + - - - - - Panning - Bilanciamento + + LADSPA plugins directories + - - - - - Freq. multiplier - Moltiplicatore freq. + + SF2 directory + - - - - - Left detune - Intonazione sinistra + + Default SF2 + - - - - - - - - - cents - centesimi + + GIG directory + - - - - - Right detune - Intonazione destra + + Theme directory + - - A-B Mix - Mix A-B + + Background artwork + - - Mix envelope amount - Quantità di inviluppo sul Mix + + Some changes require restarting. + - - Mix envelope attack - Attacco inviluppo sul Mix + + OK + - - Mix envelope hold - Mantenimento inviluppo sul Mix + + Cancel + - - Mix envelope decay - Decadimento inviluppo sul Mix + + minutes + - - Crosstalk - Scambio + + minute + - - Select oscillator A1 - Passa all'oscillatore A1 + + Disabled + - - Select oscillator A2 - Passa all'oscillatore A2 + + Autosave interval: %1 + - - Select oscillator B1 - Passa all'oscillatore B1 + + The currently selected value is not a power of 2 (32, 64, 128, 256). Some plugins may not be available. + - - Select oscillator B2 - Passa all'oscillatore B2 + + The currently selected value is less than or equal to 32. Some plugins may not be available. + - - Mix output of A2 to A1 - Mescola output di A2 a A1 + + Frames: %1 +Latency: %2 ms + - - Modulate amplitude of A1 by output of A2 - Modula l'ampiezza di A1 per l'uscita di A2 + + Choose the LMMS working directory + - - Ring modulate A1 and A2 - Modula anello A1 e A2 + + Choose your VST plugins directory + - - Modulate phase of A1 by output of A2 - Modula fase di A1 per l'uscita di A2 + + Choose your LADSPA plugins directory + - - Mix output of B2 to B1 - Mescola output di B2 a B1 + + Choose your SF2 directory + - - Modulate amplitude of B1 by output of B2 - Modula ampiezza di B1 per l'uscita di B2 + + Choose your default SF2 + - - Ring modulate B1 and B2 - Modula anello B1 e B2 + + Choose your GIG directory + - - Modulate phase of B1 by output of B2 - Modula fase di B1 per l'uscita di B2 + + Choose your theme directory + - - - - - Draw your own waveform here by dragging your mouse on this graph. - Cliccando e trascinando il mouse in questo grafico è possibile disegnare una forma d'onda personalizzata. + + Choose your background picture + + + + lmms::gui::Sf2InstrumentView - - Load waveform - Carica forma d'onda + + + Open SoundFont file + - - Load a waveform from a sample file - Carica una forma d'onda da file di esempio + + Choose patch + - - Phase left - Sposta fase a sinistra + + Gain: + - - Shift phase by -15 degrees - Fase di spostamento di -15 gradi + + Apply reverb (if supported) + - - Phase right - Sposta fase a destra + + Room size: + - - Shift phase by +15 degrees - Fase di spostamento di +15 gradi + + Damping: + - - - Normalize - Normalizza + + Width: + - - - Invert - Inverti + + + Level: + - - - Smooth - Ammorbidisci + + Apply chorus (if supported) + - - - Sine wave - Onda sinusoidale + + Voices: + - - - - Triangle wave - Onda triangolare + + Speed: + - - Saw wave - Onda a dente di sega + + Depth: + - - - Square wave - Onda quadra + + SoundFont Files (*.sf2 *.sf3) + - Xpressive - - - Selected graph - Grafico selezionato - + lmms::gui::SidInstrumentView - - A1 - A1 + + Volume: + - - A2 - A2 + + Resonance: + - - A3 - A3 + + + Cutoff frequency: + - - W1 smoothing - W1 smoothing + + High-pass filter + - - W2 smoothing - W2 smoothing + + Band-pass filter + - - W3 smoothing - W3 smoothing + + Low-pass filter + - - Panning 1 - Panoramica 1 + + Voice 3 off + - - Panning 2 - Panoramica 2 + + MOS6581 SID + - - Rel trans + + MOS8580 SID - - - XpressiveView - - Draw your own waveform here by dragging your mouse on this graph. - Cliccando e trascinando il mouse in questo grafico è possibile disegnare una forma d'onda personalizzata. + + + Attack: + - - Select oscillator W1 - Seleziona Oscillatore W1 + + + Decay: + - - Select oscillator W2 - Seleziona Oscillatore W2 + + Sustain: + - - Select oscillator W3 - Seleziona Oscillatore W3 + + + Release: + - - Select output O1 - Seleziona uscita O1 + + Pulse Width: + - - Select output O2 - Seleziona uscita O2 + + Coarse: + - - Open help window - Apri finestra di aiuto + + Pulse wave + - - - Sine wave - Onda sinusoidale + + Triangle wave + - - - Moog-saw wave - Onda a dente di sega Moog + + Saw wave + - - - Exponential wave - Onda esponenziale + + Noise + - - - Saw wave - Onda a dente di sega + + Sync + - - - User-defined wave - Onda definita dall'utente + + Ring modulation + - - - Triangle wave - Onda triangolare + + Filtered + - - - Square wave - Onda quadra + + Test + - - - White noise - Rumore bianco + + Pulse width: + + + + lmms::gui::SideBarWidget - - WaveInterpolate - InterpolazioneOnda + + Close + + + + lmms::gui::SlicerTView - - ExpressionValid + + Slice snap - - General purpose 1: - Uso Generico 1: + + Set slice snapping for detection + - - General purpose 2: - Uso Generico 2: + + Sync sample + - - General purpose 3: - Uso Generico 3: + + Enable BPM sync + - - O1 panning: - Bilanciamento O1: + + Original sample BPM + - - O2 panning: - Bilanciamento O2: + + Threshold used for slicing + - - Release transition: - Rilascio transizione: + + Fade Out per note in milliseconds + - - Smoothness - Morbidezza + + Copy midi pattern to clipboard + - - - ZynAddSubFxInstrument - - Portamento - Portamento + + Open sample selector + - - Filter frequency - Frequenza filtro + + Reset slices + - - Filter resonance - Risonanza filtro + + Threshold + - - Bandwidth - Larghezza di Banda + + Fade Out + - - FM gain - Guadagno FM + + Reset + Ripristina - - Resonance center frequency - Frequenza centrale di risonanza + + Midi + - - Resonance bandwidth - Larghezza banda di risonanza + + BPM + - - Forward MIDI control change events - Inoltra eventi di modifica controllo MIDI + + Snap + - ZynAddSubFxView + lmms::gui::SlicerTWaveform - - Portamento: - Portamento: + + Click to load sample + + + + lmms::gui::SongEditor - - PORT - PORT + + Could not open file + - - Filter frequency: - Frequenza filtro: + + Could not open file %1. You probably have no permissions to read this file. + Please make sure to have at least read permissions to the file and try again. + - - FREQ - FREQ + + Operation denied + - - Filter resonance: - Risonanza filtro: + + A bundle folder with that name already eists on the selected path. Can't overwrite a project bundle. Please select a different name. + - - RES - RIS + + + + Error + - - Bandwidth: - Larghezza di banda: + + Couldn't create bundle folder. + - - BW - Largh: + + Couldn't create resources folder. + - - FM gain: - Guadagno FM: + + Failed to copy resources. + - - FM GAIN - GUAD FM + + + Could not write file + - - Resonance center frequency: - Frequenza Centrale di Risonanza: + + Could not open %1 for writing. You probably are not permitted to write to this file. Please make sure you have write-access to the file and try again. + - - RES CF - FC RIS + + An unknown error has occurred and the file could not be saved. + - - Resonance bandwidth: - Bandwidth della Risonanza: + + Error in file + - - RES BW - BW RIS + + The file %1 seems to contain errors and therefore can't be loaded. + - - Forward MIDI control changes - Inoltra modifiche controllo MIDI + + template + - - Show GUI - Mostra GUI + + project + - - - AudioFileProcessor - - Amplify - Amplificazione + + Version difference + - - Start of sample - Inizio del campione + + This %1 was created with LMMS %2 + - - End of sample - Fine del campione + + Zoom + - - Loopback point - Punto di LoopBack + + Tempo + - - Reverse sample - Inverti il campione + + TEMPO + - - Loop mode - Modalità ripetizione + + Tempo in BPM + - - Stutter - Passaggio + + + + Master volume + - - Interpolation mode - Modalità Interpolazione + + + + Global transposition + - - None - Nessuna + + 1/%1 Bar + - - Linear - Lineare + + %1 Bars + - - Sinc - Sincronizzata + + Value: %1% + - - Sample not found: %1 - Campione non trovato: %1 + + Value: %1 keys + - BitInvader + lmms::gui::SongEditorWindow - - Sample length - Lunghezza campione + + Song-Editor + - - - BitInvaderView - - Sample length - Lunghezza campione + + Play song (Space) + - - Draw your own waveform here by dragging your mouse on this graph. - Cliccando e trascinando il mouse in questo grafico è possibile disegnare una forma d'onda personalizzata. + + Record samples from Audio-device + - - - Sine wave - Onda sinusoidale + + Record samples from Audio-device while playing song or pattern track + - - - Triangle wave - Onda triangolare + + Stop song (Space) + - - - Saw wave - Onda a dente di sega + + Track actions + - - - Square wave - Onda quadra + + Add pattern-track + - - - White noise - Rumore bianco + + Add sample-track + - - - User-defined wave - Onda definita dall'utente + + Add automation-track + - - - Smooth waveform - Spiana forma d'onda + + Edit actions + - - Interpolation - Interpolazione + + Draw mode + - - Normalize - Normalizza + + Knife mode (split sample clips) + - - - DynProcControlDialog - - INPUT - INPUT + + Edit mode (select and move) + - - Input gain: - Guadagno in Input: + + Timeline controls + - - OUTPUT - OUTPUT + + Bar insert controls + - - Output gain: - Guadagno in Output: + + Insert bar + - - ATTACK - ATTACCO + + Remove bar + - - Peak attack time: - Attacco del picco: + + Zoom controls + - - RELEASE - RILASCIO + + + Zoom + - - Peak release time: - Rilascio del picco: + + Snap controls + - - - Reset wavegraph - Reimposta la forma d'onda + + + Clip snapping size + - - - Smooth wavegraph - Forma d'onda piana + + Toggle proportional snap on/off + - - - Increase wavegraph amplitude by 1 dB - Incrementa l'ampiezza del diagramma d'onda di 1 dB + + Base snapping size + + + + lmms::gui::StepRecorderWidget - - - Decrease wavegraph amplitude by 1 dB - Decrementa l'ampiezza del diagramma d'onda di 1 dB + + Hint + - - Stereo mode: maximum - Modalità stereo: massima + + Move recording curser using <Left/Right> arrows + + + + lmms::gui::StereoEnhancerControlDialog - - Process based on the maximum of both stereo channels - L'effetto si basa sul valore massimo tra i due canali stereo + + WIDTH + - - Stereo mode: average - Modalità stereo: media + + Width: + + + + lmms::gui::StereoMatrixControlDialog - - Process based on the average of both stereo channels - L'effetto si basa sul valore medio tra i due canali stereo + + Left to Left Vol: + + + + + Left to Right Vol: + + + + + Right to Left Vol: + + + + + Right to Right Vol: + + + + + lmms::gui::SubWindow + + + Close + - - Stereo mode: unlinked - Modalità stereo: scollegata + + Maximize + - - Process each stereo channel independently - L'effetto tratta i due canali stereo indipendentemente + + Restore + - DynProcControls - - - Input gain - Guadagno in input - + lmms::gui::TapTempoView - - Output gain - Guadagno in output + + 0 + - - Attack time - Tempo di Attacco + + + Precision + - - Release time - Tempo di Rilascio + + Display in high precision + - - Stereo mode - Modalità stereo + + 0.0 ms + - - - graphModel - - Graph - Grafico + + Mute metronome + - - - KickerInstrument - - Start frequency - Frequenza iniziale + + Mute + - - End frequency - Frequenza finale + + BPM in milliseconds + - - Length - Lunghezza + + 0 ms + - - Start distortion - Inizio distorsione + + Frequency of BPM + - - End distortion - Fine distorsione + + 0.0000 hz + - - Gain - Guadagno + + Reset + Ripristina - - Envelope slope - Pendenza inviluppo + + Reset counter and sidebar information + Reimposta il contatore e le informazioni della barra laterale - - Noise - Rumore + + Sync + - - Click - Click + + Sync with project tempo + - - Frequency slope - Pendenza frequenza + + %1 ms + - - Start from note - Inizia dalla nota + + %1 hz + + + + lmms::gui::TemplatesMenu - - End to note - Finisci sulla nota + + New from template + - KickerInstrumentView + lmms::gui::TempoSyncBarModelEditor - - Start frequency: - Frequenza iniziale: + + + Tempo Sync + - - End frequency: - Frequenza finale: + + No Sync + - - Frequency slope: - Pendenza frequenza: + + Eight beats + - - Gain: - Guadagno: + + Whole note + - - Envelope length: - Lunghezza inviluppo + + Half note + - - Envelope slope: - Pendenza inviluppo + + Quarter note + - - Click: - Click: + + 8th note + - - Noise: - Rumore: + + 16th note + - - Start distortion: - Inizio distorsione: + + 32nd note + - - End distortion: - Fine distorsione: + + Custom... + - - - LadspaBrowserView - - - Available Effects - Effetti disponibili + + Custom + - - - Unavailable Effects - Effetti non disponibili + + Synced to Eight Beats + - - - Instruments - Strumenti + + Synced to Whole Note + - - - Analysis Tools - Strumenti di analisi + + Synced to Half Note + - - - Don't know - Sconosciuto + + Synced to Quarter Note + - - Type: - Tipo: + + Synced to 8th Note + - - - LadspaDescription - - Plugins - Plugin + + Synced to 16th Note + - - Description - Descrizione + + Synced to 32nd Note + - LadspaPortDialog + lmms::gui::TempoSyncKnob - - Ports - Porte + + + Tempo Sync + - - Name - Nome + + No Sync + - - Rate - Frequenza + + Eight beats + - - Direction - Direzione + + Whole note + - - Type - Tipo + + Half note + - - Min < Default < Max - Minimo < Predefinito < Massimo + + Quarter note + - - Logarithmic - Logaritmico + + 8th note + - - SR Dependent - Dipendente da SR + + 16th note + - - Audio - Audio + + 32nd note + - - Control - Controllo + + Custom... + - - Input - Ingresso + + Custom + - - Output - Uscita + + Synced to Eight Beats + - - Toggled - Abilitato + + Synced to Whole Note + - - Integer - Intero + + Synced to Half Note + - - Float - Virgola mobile + + Synced to Quarter Note + - - - Yes - + + Synced to 8th Note + + + + + Synced to 16th Note + + + + + Synced to 32nd Note + - Lb302Synth + lmms::gui::TimeDisplayWidget - - VCF Cutoff Frequency - VCF - frequenza di taglio + + Time units + - - VCF Resonance - VCF - Risonanza + + MIN + - - VCF Envelope Mod - VCF - modulazione dell'envelope + + SEC + - - VCF Envelope Decay - VCF - decadimento dell'envelope + + MSEC + - - Distortion - Distorsione + + BAR + - - Waveform - Forma d'onda + + BEAT + - - Slide Decay - Decadimento slide + + TICK + + + + lmms::gui::TimeLineWidget - - Slide - Slide + + Auto scrolling + - - Accent - Accento + + Stepped auto scrolling + - - Dead - Dead + + Continuous auto scrolling + - - 24dB/oct Filter - Filtro 24dB/ottava + + Auto scrolling disabled + - - - Lb302SynthView - - Cutoff Freq: - Freq. di taglio: + + Loop points + + + + + After stopping go back to beginning + + + + + After stopping go back to position at which playing was started + - - Resonance: - Risonanza: + + After stopping keep position + - - Env Mod: - Env Mod: + + Hint + - - Decay: - Decadimento: + + Press <%1> to disable magnetic loop points. + - - 303-es-que, 24dB/octave, 3 pole filter - filtro tripolare "tipo 303", 24dB/ottava + + Set loop begin here + - - Slide Decay: - Decadimento slide: + + Set loop end here + - - DIST: - DIST: + + Loop edit mode (hold shift) + - - Saw wave - Onda a dente di sega + + Dual-button + - - Click here for a saw-wave. - Cliccando qui si ottiene un'onda a dente di sega. + + Grab closest + - - Triangle wave - Onda triangolare + + Handles + + + + lmms::gui::TrackContentWidget - - Click here for a triangle-wave. - Cliccando qui si ottiene un'onda triangolare. + + Paste + + + + lmms::gui::TrackOperationsWidget - - Square wave - Onda quadra + + Press <%1> while clicking on move-grip to begin a new drag'n'drop action. + - - Click here for a square-wave. - Cliccando qui si ottiene un'onda quadra. + + Actions + - - Rounded square wave - Onda quadra arrotondata + + + Mute + - - Click here for a square-wave with a rounded end. - Cliccando qui si ottiene un'onda quadra arrotondata. + + + Solo + - - Moog wave - Onda moog + + After removing a track, it can not be recovered. Are you sure you want to remove track "%1"? + - - Click here for a moog-like wave. - Cliccando qui si ottieme un'onda moog. + + Confirm removal + - - Sine wave - Onda sinusoidale + + Don't ask again + - - Click for a sine-wave. - Cliccando qui si ottiene una forma d'onda sinusoidale. + + Clone this track + - - - White noise wave - Rumore bianco + + Remove this track + - - Click here for an exponential wave. - Cliccando qui si ha un'onda esponenziale. + + Clear this track + - - Click here for white-noise. - Cliccando qui si ottiene rumore bianco. + + Channel %1: %2 + - - Bandlimited saw wave - Onda a dente di sega limitata + + Assign to new Mixer Channel + - - Click here for bandlimited saw wave. - Clicca per usare un'onda a dente di sega a banda limitata. + + Turn all recording on + - - Bandlimited square wave - Onda quadra limitata + + Turn all recording off + - - Click here for bandlimited square wave. - Clicca per usare un'onda quadra a banda limitata. + + Track color + - - Bandlimited triangle wave - Onda triangolare limitata + + Change + - - Click here for bandlimited triangle wave. - Clicca per usare un'onda triangolare a banda limitata. + + Reset + Ripristina - - Bandlimited moog saw wave - Onda Moog limitata + + Pick random + - - Click here for bandlimited moog saw wave. - Clicca per usare un'onda Moog a banda limitata. + + Reset clip colors + Ripristina i colori della clip - MalletsInstrument + lmms::gui::TripleOscillatorView - - Hardness - Durezza + + Modulate phase of oscillator 1 by oscillator 2 + - - Position - Posizione + + Modulate amplitude of oscillator 1 by oscillator 2 + - - Vibrato gain - Guadagno del Vibrato + + Mix output of oscillators 1 & 2 + - - Vibrato frequency - Frequenza del Vibrato + + Synchronize oscillator 1 with oscillator 2 + - - Stick mix + + Modulate frequency of oscillator 1 by oscillator 2 - - Modulator - Modulatore + + Modulate phase of oscillator 2 by oscillator 3 + - - Crossfade - Crossfade + + Modulate amplitude of oscillator 2 by oscillator 3 + - - LFO speed - Velocità dell'LFO + + Mix output of oscillators 2 & 3 + - - LFO depth - Profondità del LFO + + Synchronize oscillator 2 with oscillator 3 + - - ADSR - ADSR + + Modulate frequency of oscillator 2 by oscillator 3 + - - Pressure - Pressione + + Osc %1 volume: + - - Motion - Moto + + Osc %1 panning: + - - Speed - Velocità + + Osc %1 coarse detuning: + - - Bowed - Bowed + + semitones + - - Spread - Apertura + + Osc %1 fine detuning left: + - - Marimba - Marimba + + + cents + - - Vibraphone - Vibraphone + + Osc %1 fine detuning right: + - - Agogo - Agogo + + Osc %1 phase-offset: + - - Wood 1 - Legno 1 + + + degrees + - - Reso - Reso + + Osc %1 stereo phase-detuning: + - - Wood 2 - Legno 2 + + Sine wave + - - Beats - Beats + + Triangle wave + - - Two fixed - Due fissi + + Saw wave + - - Clump - Clump + + Square wave + - - Tubular bells - Campane tubolari + + Moog-like saw wave + - - Uniform bar - Barra uniforme + + Exponential wave + - - Tuned bar - Barra accordata + + White noise + - - Glass - Glass + + User-defined wave + - - Tibetan bowl - Campana tibetana + + Use alias-free wavetable oscillators. + - MalletsInstrumentView - - - Instrument - Strumento - - - - Spread - Apertura - + lmms::gui::VecControlsDialog - - Spread: - Apertura: - - - - Missing files - File mancanti + + HQ + - - Your Stk-installation seems to be incomplete. Please make sure the full Stk-package is installed! - L'installazione di Stk sembra incompleta. Assicurarsi che sia installato il pacchetto Stk completo! + + Double the resolution and simulate continuous analog-like trace. + - - Hardness - Durezza + + Log. scale + - - Hardness: - Durezza: + + Display amplitude on logarithmic scale to better see small values. + - - Position - Posizione + + Persist. + - - Position: - Posizione: + + Trace persistence: higher amount means the trace will stay bright for longer time. + - - Vibrato gain - Guadagno del Vibrato + + Trace persistence + + + + lmms::gui::VersionedSaveDialog - - Vibrato gain: - Guadagno del Vibrato: + + Increment version number + - - Vibrato frequency - Frequenza del Vibrato + + Decrement version number + - - Vibrato frequency: - Frequenza del Vibrato: + + Save Options + - - Stick mix + + already exists. Do you want to replace it? + + + lmms::gui::VestigeInstrumentView - - Stick mix: + + + Open VST plugin - - Modulator - Modulatore + + Control VST plugin from LMMS host + - - Modulator: - Modulatore: + + Open VST plugin preset + Apri VST plugin preset - - Crossfade - Crossfade + + Previous (-) + - - Crossfade: - Crossfade: + + Save preset + Salva il preset - - LFO speed - Velocità dell'LFO + + Next (+) + - - LFO speed: - Velocità dell'LFO: + + Show/hide GUI + - - LFO depth - Profondità LFO + + Turn off all notes + - - LFO depth: - Profondità LFO: + + DLL-files (*.dll) + - - ADSR - ADSR + + EXE-files (*.exe) + - - ADSR: - ADSR: + + SO-files (*.so) + - - Pressure - Pressione + + No VST plugin loaded + - - Pressure: - Pressione: + + Preset + Preset - - Speed - Velocità + + by + - - Speed: - Velocità: + + - VST plugin control + - ManageVSTEffectView + lmms::gui::VibedView - - - VST parameter control - - Controllo parametri VST + + Enable waveform + - - VST sync - Sincronizzazione VST + + + Smooth waveform + - - - Automated - Automatizzati + + + Normalize waveform + - - Close - Chiudi + + + Sine wave + - - - ManageVestigeInstrumentView - - - - VST plugin control - - Controllo del plugin VST + + + Triangle wave + - - VST Sync - Sync VST + + + Saw wave + - - - Automated - Automatizzati + + + Square wave + - - Close - Chiudi + + + White noise + - - - OrganicInstrument - - Distortion - Distorsione + + + User-defined wave + - - Volume - Volume + + String volume: + - - - OrganicInstrumentView - - Distortion: - Distorsione: + + String stiffness: + - - Volume: - Volume: + + Pick position: + - - Randomise - Rendi casuale + + Pickup position: + - - - Osc %1 waveform: - Onda osc %1: + + String panning: + - - Osc %1 volume: - Volume osc %1: + + String detune: + - - Osc %1 panning: - Panning osc %1: + + String fuzziness: + - - Osc %1 stereo detuning - Osc %1 intonazione stereo + + String length: + - - cents - centesimi + + Impulse Editor + - - Osc %1 harmonic: - Osc %1 armoniche: + + Impulse + - - - PatchesDialog - - Qsynth: Channel Preset - Qsynth: Preset Canale + + Enable/disable string + - - Bank selector - Selezione banca + + Octave + - - Bank - Banco + + String + + + + lmms::gui::VstEffectControlDialog - - Program selector - Selezione programma + + Show/hide + - - Patch - Programma + + Control VST plugin from LMMS host + - - Name - Nome + + Open VST plugin preset + Apri VST plugin preset - - OK - OK + + Previous (-) + - - Cancel - Annulla + + Next (+) + - - - Sf2Instrument - - Bank - Banco + + Save preset + Salva il preset - - Patch - Patch + + + Effect by: + - - Gain - Guadagno + + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> + + + + lmms::gui::WatsynView - - Reverb - Riverbero + + + + + Volume + - - Reverb room size - Dimensioni stanza del riverbero + + + + + Panning + - - Reverb damping - Smorzamento del riverbero + + + + + Freq. multiplier + - - Reverb width - Banda del riverbero + + + + + Left detune + - - Reverb level - Livello di riverbero + + + + + + + + + cents + - - Chorus - Chorus + + + + + Right detune + - - Chorus voices - Voci del Chorus + + A-B Mix + - - Chorus level - Livello del Chorus + + Mix envelope amount + - - Chorus speed - Velocità del Chorus + + Mix envelope attack + - - Chorus depth - Profondità del Chorus + + Mix envelope hold + - - A soundfont %1 could not be loaded. - Non è stato possibile caricare un soundfont %1. + + Mix envelope decay + - - - Sf2InstrumentView - - - Open SoundFont file - Apri un file SoundFont + + Crosstalk + - - Choose patch - Scegli patch + + Select oscillator A1 + - - Gain: - Guadagno: + + Select oscillator A2 + - - Apply reverb (if supported) - Applica il riverbero (se supportato) + + Select oscillator B1 + - - Room size: - Dimensioni della stanza: + + Select oscillator B2 + - - Damping: - Smorzamento: + + Mix output of A2 to A1 + - - Width: - Ampiezza: + + Modulate amplitude of A1 by output of A2 + - - - Level: - Livello: + + Ring modulate A1 and A2 + - - Apply chorus (if supported) - Applica il chorus (se supportato) + + Modulate phase of A1 by output of A2 + - - Voices: - Voci: + + Mix output of B2 to B1 + - - Speed: - Velocità: + + Modulate amplitude of B1 by output of B2 + - - Depth: - Risoluzione Bit: + + Ring modulate B1 and B2 + - - SoundFont Files (*.sf2 *.sf3) - File SoundFont (*.sf2 *.sf3) + + Modulate phase of B1 by output of B2 + - - - SfxrInstrument - - Wave - Onda + + + + + Draw your own waveform here by dragging your mouse on this graph. + - - - StereoEnhancerControlDialog - - WIDTH - AMPIEZZA + + Load waveform + - - Width: - Ampiezza: + + Load a waveform from a sample file + - - - StereoEnhancerControls - - Width - Ampiezza + + Phase left + - - - StereoMatrixControlDialog - - Left to Left Vol: - Volume da Sinistra a Sinistra: + + Shift phase by -15 degrees + - - Left to Right Vol: - Volume da Sinistra a Destra: + + Phase right + - - Right to Left Vol: - Volume da Destra a Sinistra: + + Shift phase by +15 degrees + - - Right to Right Vol: - Volume da Destra a Destra: + + + Normalize + - - - StereoMatrixControls - - Left to Left - Da Sinistra a Sinistra + + + Invert + - - Left to Right - Da Sinistra a Destra + + + Smooth + - - Right to Left - Da Destra a Sinistra + + + Sine wave + - - Right to Right - Da Destra a Destra + + + + Triangle wave + - - - VestigeInstrument - - Loading plugin - Caricamento plugin + + Saw wave + - - Please wait while loading the VST plugin... - Attendere il caricamento del plug-in VST... + + + Square wave + - Vibed + lmms::gui::WaveShaperControlDialog - - String %1 volume - Volume della corda %1 + + INPUT + - - String %1 stiffness - Durezza della corda %1 + + Input gain: + - - Pick %1 position - Posizione del plettro %1 + + OUTPUT + - - Pickup %1 position - Posizione del pickup %1 + + Output gain: + - - String %1 panning - Panning corda %1 + + + Reset wavegraph + Ripristina il grafico d'onda - - String %1 detune - De-intonazione corda %1  + + + Smooth wavegraph + - - String %1 fuzziness + + + Increase wavegraph amplitude by 1 dB - - String %1 length - Lunghezza corda %1 + + + Decrease wavegraph amplitude by 1 dB + - - Impulse %1 - Impulso %1 + + Clip input + - - String %1 - Corda %1 + + Clip input signal to 0 dB + - VibedView - - - String volume: - Volume corda - - - - String stiffness: - Durezza della corda: - - - - Pick position: - Posizione del plettro: - + lmms::gui::XpressiveView - - Pickup position: - Posizione del pickup: + + Draw your own waveform here by dragging your mouse on this graph. + - - String panning: - Panning corda + + Select oscillator W1 + - - String detune: - De-intonazione corda + + Select oscillator W2 + - - String fuzziness: + + Select oscillator W3 - - String length: - Lunghezza corda: + + Select output O1 + - - Impulse - Impulso + + Select output O2 + - - Octave - Ottava + + Open help window + - - Impulse Editor - Editor dell'impulso + + + Sine wave + - - Enable waveform - Abilita forma d'onda + + + Moog-saw wave + - - Enable/disable string - Abilita/disabilita corda + + + Exponential wave + - - String - Corda + + + Saw wave + - - - Sine wave - Onda sinusoidale + + + User-defined wave + - - + + Triangle wave - Onda triangolare - - - - - Saw wave - Onda a dente di sega + - - + + Square wave - Onda quadra + - - + + White noise - Rumore bianco - - - - - User-defined wave - Onda definita dall'utente + - - - Smooth waveform - Spiana forma d'onda + + WaveInterpolate + - - - Normalize waveform - Forma d'onda normale + + ExpressionValid + - - - VoiceObject - - Voice %1 pulse width - Ampiezza pulse voce %1 + + General purpose 1: + - - Voice %1 attack - Attacco voce %1 + + General purpose 2: + - - Voice %1 decay - Decadimento voce %1 + + General purpose 3: + - - Voice %1 sustain - Sostegno voce %1 + + O1 panning: + - - Voice %1 release - Rilascio voce %1 + + O2 panning: + - - Voice %1 coarse detuning - Intonazione voce %1 + + Release transition: + - - Voice %1 wave shape - Forma d'onda voce %1 + + Smoothness + + + + lmms::gui::ZynAddSubFxView - - Voice %1 sync - Sincronizzazione voce %1 + + Portamento: + - - Voice %1 ring modulate - Modulazione ring voce %1 + + PORT + - - Voice %1 filtered - Filtraggio voce %1 + + Filter frequency: + - - Voice %1 test - Test voce %1 + + FREQ + - - - WaveShaperControlDialog - - INPUT - INPUT + + Filter resonance: + - - Input gain: - Guadagno in Input: + + RES + - - OUTPUT - OUTPUT + + Bandwidth: + - - Output gain: - Guadagno in output: + + BW + - - - Reset wavegraph - Reimposta grafico d'onda + + FM gain: + - - - Smooth wavegraph - Grafico d'onda piana + + FM GAIN + - - - Increase wavegraph amplitude by 1 dB - Incrementa ampiezza grafico d'onda di 1 dB + + Resonance center frequency: + - - - Decrease wavegraph amplitude by 1 dB - Decrementa ampiezza grafico d'onda di 1 dB + + RES CF + - - Clip input - Taglia input + + Resonance bandwidth: + - - Clip input signal to 0 dB - Segnale ingresso clip a 0 dB + + RES BW + - - - WaveShaperControls - - Input gain - Guadagno in input + + Forward MIDI control changes + - - Output gain - Guadagno in output + + Show GUI + - + \ No newline at end of file diff --git a/data/locale/ja.ts b/data/locale/ja.ts index 14b38c6984f..fffa83420b9 100644 --- a/data/locale/ja.ts +++ b/data/locale/ja.ts @@ -1,4 +1,4 @@ - + AboutDialog @@ -70,954 +70,187 @@ LMMSを他の言語に翻訳したり、翻訳を改善することに興味が - AmplifierControlDialog + AboutJuceDialog - - VOL - 音量 - - - - Volume: - 音量: - - - - PAN - パン - - - - Panning: - パン: - - - - LEFT - - - - - Left gain: - 左ゲイン: - - - - RIGHT - - - - - Right gain: - 右ゲイン: + + About JUCE + - - - AmplifierControls - - Volume - 音量 + + <b>About JUCE</b> + - - Panning - パン + + This program uses JUCE version 3.x.x. + - - Left gain - 左ゲイン + + JUCE is an open-source cross-platform C++ application framework for creating high quality desktop and mobile applications. + +The core JUCE modules (juce_audio_basics, juce_audio_devices, juce_core and juce_events) are permissively licensed under the terms of the ISC license. +Other modules are covered by a GNU GPL 3.0 license. + +Copyright (C) 2022 Raw Material Software Limited. + - - Right gain - 右ゲイン + + This program uses JUCE version + - AudioAlsaSetupWidget + AudioDeviceSetupWidget - - DEVICE - デバイス - - - - CHANNELS - チャンネル + + [System Default] + - AudioFileProcessorView - - - Open sample - サンプルを開く - - - - Reverse sample - サンプルを反転する - - - - Disable loop - ループを無効にする - - - - Enable loop - ループを有効にする - + CarlaAboutW - - Enable ping-pong loop + + About Carla - - Continue sample playback across notes - 異なるノートへサンプルの再生を引き継ぐ - - - - Amplify: - 増幅: - - - - Start point: - 開始点: - - - - End point: - 終了点: - - - - Loopback point: - ループバック位置: - - - - AudioFileProcessorWaveView - - - Sample length: - サンプルの長さ: + + About + LMMS について - - - AudioJack - - JACK client restarted - JACKクライアントを再起動しました + + About text here + - - LMMS was kicked by JACK for some reason. Therefore the JACK backend of LMMS has been restarted. You will have to make manual connections again. - LMMS は何らかの理由で JACK からキックされました。そのため、LMMS の JACKバックエンドが再起動されています。あなたは、手動で接続しなおす必要があります。 + + Extended licensing here + - - JACK server down - JACK サーバーダウン + + Artwork + アートワーク - - The JACK server seems to have been shutdown and starting a new instance failed. Therefore LMMS is unable to proceed. You should save your project and restart JACK and LMMS. - ごめんなさい…JACK サーバーがシャットダウンして、新しいインスタンスの開始に失敗したようです。そのために、LMMS が続行できません。今すぐプロジェクトを保存してJACK と LMMS を再起動してください。 + + Using KDE Oxygen icon set, designed by Oxygen Team. + OxygenチームがデザインしたKDE Oxygenアイコンセットを使用<br> - - Client name + + Contains some knobs, backgrounds and other small artwork from Calf Studio Gear, OpenAV and OpenOctave projects. - - Channels + + VST is a trademark of Steinberg Media Technologies GmbH. - - - AudioOss - - Device + + Special thanks to António Saraiva for a few extra icons and artwork! - - Channels + + The LV2 logo has been designed by Thorsten Wilms, based on a concept from Peter Shorthose. - - - AudioPortAudio::setupWidget - - Backend + + MIDI Keyboard designed by Thorsten Wilms. - - Device + + Carla, Carla-Control and Patchbay icons designed by DoosC. - - - AudioPulseAudio - - Device + + Features - - Channels + + AU/AudioUnit: - - - AudioSdl::setupWidget - - Device + + LADSPA: - - - AudioSndio - - Device + + + + + + + + + TextLabel - - Channels + + VST2: - - - AudioSoundIo::setupWidget - - Backend + + DSSI: - - Device + + LV2: - - - AutomatableModel - - - &Reset (%1%2) - リセット(&R) (%1%2) - - - - &Copy value (%1%2) - 値をコピー(&C) (%1%2) - - - - &Paste value (%1%2) - 値を貼り付け(&P) (%1%2) - - - - &Paste value - &値を貼り付け - - - - Edit song-global automation - 曲全体のオートメーションを編集 - - - - Remove song-global automation - 曲全体のオートメーションを削除 - - - - Remove all linked controls - リンクされたコントロールを全て削除 - - - Connected to %1 - %1 に接続済み - - - - Connected to controller - コントローラーに接続済み - - - - Edit connection... - 接続を編集... - - - - Remove connection - 接続を削除 - - - - Connect to controller... - コントローラーに接続... - - - - AutomationEditor - - - Edit Value + + VST3: - - New outValue + + OSC - - New inValue + + Host URLs: - - Please open an automation clip with the context menu of a control! - コントロールのコンテキストメニューでオートメーションパターンを開いてください! - - - - AutomationEditorWindow - - - Play/pause current clip (Space) - 現在のパターンの再生/一時停止 (Space) - - - - Stop playing of current clip (Space) - 現在のパターンの再生を停止 (Space) - - - - Edit actions - 編集機能 - - - - Draw mode (Shift+D) - 描画モード (shift+D) - - - - Erase mode (Shift+E) - 消去モード (shift+E) - - - - Draw outValues mode (Shift+C) + + Valid commands: - - Flip vertically - 左右反転 - - - - Flip horizontally - 上下反転 - - - - Interpolation controls - 補間コントロール - - - - Discrete progression - 離散 - - - - Linear progression - 線形補間 - - - - Cubic Hermite progression - エルミート曲線 - - - - Tension value for spline - スプラインのテンション値 - - - - Tension: - テンション: - - - - Zoom controls - ズーム コントロール - - - - Horizontal zooming - 水平方向にズーム - - - - Vertical zooming - 垂直方向にズーム - - - - Quantization controls - クオンタイゼーション コントロール - - - - Quantization - クオンタイズ - - - - - Automation Editor - no clip - オートメーション エディター - パターンなし + + valid osc commands here + - - - Automation Editor - %1 - オートメーション エディター - %1 + + Example: + - - Model is already connected to this clip. - モデルは、すでにこのパターンに接続されています。 + + License + ライセンス - - - AutomationClip - - Drag a control while pressing <%1> - <%1>を押しながらコントロールをドラッグしてください - - - - AutomationClipView - - - Open in Automation editor - オートメーション エディターで開く - - - - Clear - クリア - - - - Reset name - 名前をリセット - - - - Change name - 名前を変更 - - - - Set/clear record - 録音をセット/クリア - - - - Flip Vertically (Visible) - 左右反転 - - - - Flip Horizontally (Visible) - 上下反転 - - - - %1 Connections - %1 個の接続 - - - - Disconnect "%1" - "%1" を切断 - - - - Model is already connected to this clip. - モデルは、すでにこのパターンに接続されています。 - - - - AutomationTrack - - - Automation track - オートメーション トラック - - - - PatternEditor - - - Beat+Bassline Editor - ビート+ベースライン エディター - - - - Play/pause current beat/bassline (Space) - 現在のビート/ベースラインの再生/一時停止 (Space) - - - - Stop playback of current beat/bassline (Space) - 現在のビート/ベースラインの再生を停止 (Space) - - - - Beat selector - ビート セレクター - - - - Track and step actions - トラックとステップアクション - - - - Add beat/bassline - ビート/ベースラインを追加 - - - - Clone beat/bassline clip - - - - - Add sample-track - サンプルトラックを追加 - - - - Add automation-track - オートメーション トラックを追加 - - - - Remove steps - ステップを削除 - - - - Add steps - ステップを追加 - - - - Clone Steps - ステップを複製 - - - - PatternClipView - - - Open in Beat+Bassline-Editor - ビート+ベースライン エディターで開く - - - - Reset name - 名前をリセット - - - - Change name - 名前を変更 - - - - PatternTrack - - - Beat/Bassline %1 - ビート/ベースライン %1 - - - - Clone of %1 - %1の複製 - - - - BassBoosterControlDialog - - - FREQ - 周波数 - - - - Frequency: - 周波数: - - - - GAIN - ゲイン - - - - Gain: - ゲイン: - - - - RATIO - レシオ - - - - Ratio: - レシオ: - - - - BassBoosterControls - - - Frequency - 周波数 - - - - Gain - ゲイン - - - - Ratio - レシオ - - - - BitcrushControlDialog - - - IN - IN - - - - OUT - OUT - - - - - GAIN - ゲイン - - - - Input gain: - 入力ゲイン: - - - - NOISE - ノイズ - - - - Input noise: - 入力ノイズ: - - - - Output gain: - 出力ゲイン: - - - - CLIP - クリップ - - - - Output clip: - 出力クリップ - - - - Rate enabled - Rateが有効です - - - - Enable sample-rate crushing - サンプルレートクラシングを有効にする - - - - Depth enabled - 有効な深度 - - - - Enable bit-depth crushing - ビット深度クラシングを有効にする - - - - FREQ - 周波数 - - - - Sample rate: - サンプルレート: - - - - STEREO - ステレオ - - - - Stereo difference: - 位相 - - - - QUANT - クオンタイズ - - - - Levels: - レベル: - - - - BitcrushControls - - - Input gain - 入力ゲイン - - - - Input noise - 入力ノイズ - - - - Output gain - 出力ゲイン - - - - Output clip - アウトプットクリップ - - - - Sample rate - サンプルレート - - - - Stereo difference - ステレオの相違 - - - - Levels - レベル - - - - Rate enabled - Rateが有効です - - - - Depth enabled - 有効な深度 - - - - CarlaAboutW - - - About Carla - - - - - About - LMMS について - - - - About text here - - - - - Extended licensing here - - - - - Artwork - - - - - Using KDE Oxygen icon set, designed by Oxygen Team. - - - - - Contains some knobs, backgrounds and other small artwork from Calf Studio Gear, OpenAV and OpenOctave projects. - - - - - VST is a trademark of Steinberg Media Technologies GmbH. - - - - - Special thanks to António Saraiva for a few extra icons and artwork! - - - - - The LV2 logo has been designed by Thorsten Wilms, based on a concept from Peter Shorthose. - - - - - MIDI Keyboard designed by Thorsten Wilms. - - - - - Carla, Carla-Control and Patchbay icons designed by DoosC. - - - - - Features - - - - - AU/AudioUnit: - - - - - LADSPA: - - - - - - - - - - - - TextLabel - - - - - VST2: - - - - - DSSI: - - - - - LV2: - - - - - VST3: - - - - - OSC - - - - - Host URLs: - - - - - Valid commands: - - - - - valid osc commands here - - - - - Example: - - - - - License - ライセンス - - - + GNU GENERAL PUBLIC LICENSE Version 2, June 1991 @@ -1302,15034 +535,18220 @@ POSSIBILITY OF SUCH DAMAGES. - - OSC Bridge Version + + OSC Bridge Version + + + + + Plugin Version + + + + + <br>Version %1<br>Carla is a fully-featured audio plugin host%2.<br><br>Copyright (C) 2011-2019 falkTX<br> + + + + + + (Engine not running) + + + + + Everything! (Including LRDF) + + + + + Everything! (Including CustomData/Chunks) + + + + + About 110&#37; complete (using custom extensions)<br/>Implemented Feature/Extensions:<ul><li>http://lv2plug.in/ns/ext/atom</li><li>http://lv2plug.in/ns/ext/buf-size</li><li>http://lv2plug.in/ns/ext/data-access</li><li>http://lv2plug.in/ns/ext/event</li><li>http://lv2plug.in/ns/ext/instance-access</li><li>http://lv2plug.in/ns/ext/log</li><li>http://lv2plug.in/ns/ext/midi</li><li>http://lv2plug.in/ns/ext/options</li><li>http://lv2plug.in/ns/ext/parameters</li><li>http://lv2plug.in/ns/ext/port-props</li><li>http://lv2plug.in/ns/ext/presets</li><li>http://lv2plug.in/ns/ext/resize-port</li><li>http://lv2plug.in/ns/ext/state</li><li>http://lv2plug.in/ns/ext/time</li><li>http://lv2plug.in/ns/ext/uri-map</li><li>http://lv2plug.in/ns/ext/urid</li><li>http://lv2plug.in/ns/ext/worker</li><li>http://lv2plug.in/ns/extensions/ui</li><li>http://lv2plug.in/ns/extensions/units</li><li>http://home.gna.org/lv2dynparam/rtmempool/v1</li><li>http://kxstudio.sf.net/ns/lv2ext/external-ui</li><li>http://kxstudio.sf.net/ns/lv2ext/programs</li><li>http://kxstudio.sf.net/ns/lv2ext/props</li><li>http://kxstudio.sf.net/ns/lv2ext/rtmempool</li><li>http://ll-plugins.nongnu.org/lv2/ext/midimap</li><li>http://ll-plugins.nongnu.org/lv2/ext/miditype</li></ul> + + + + + + + Using Juce host + + + + + About 85% complete (missing vst bank/presets and some minor stuff) + + + + + CarlaHostW + + + MainWindow + + + + + Rack + + + + + Patchbay + + + + + Logs + + + + + Loading... + + + + + Save + + + + + Clear + + + + + Ctrl+L + + + + + Auto-Scroll + + + + + Buffer Size: + + + + + Sample Rate: + + + + + ? Xruns + + + + + DSP Load: %p% + + + + + &File + ファイル(&F) + + + + &Engine + + + + + &Plugin + + + + + Macros (all plugins) + + + + + &Canvas + + + + + Zoom + + + + + &Settings + + + + + &Help + ヘルプ(&H) + + + + Tool Bar + + + + + Disk + + + + + + Home + ホーム + + + + Transport + + + + + Playback Controls + + + + + Time Information + + + + + Frame: + + + + + 000'000'000 + + + + + Time: + 時間: + + + + 00:00:00 + + + + + BBT: + + + + + 000|00|0000 + + + + + Settings + 設定 + + + + BPM + + + + + Use JACK Transport + + + + + Use Ableton Link + + + + + &New + 新規(&N) + + + + Ctrl+N + + + + + &Open... + 開く(&O)... + + + + + Open... + + + + + Ctrl+O + + + + + &Save + 保存(&S) + + + + Ctrl+S + + + + + Save &As... + 名前を付けて保存(&A)... + + + + + Save As... + + + + + Ctrl+Shift+S + + + + + &Quit + 終了(&Q) + + + + Ctrl+Q + + + + + &Start + + + + + F5 + + + + + St&op + + + + + F6 + + + + + &Add Plugin... + + + + + Ctrl+A + + + + + &Remove All + + + + + Enable + + + + + Disable + + + + + 0% Wet (Bypass) + + + + + 100% Wet + + + + + 0% Volume (Mute) + + + + + 100% Volume + + + + + Center Balance + + + + + &Play + + + + + Ctrl+Shift+P + + + + + &Stop + + + + + Ctrl+Shift+X + + + + + &Backwards + + + + + Ctrl+Shift+B + + + + + &Forwards + + + + + Ctrl+Shift+F + + + + + &Arrange + + + + + Ctrl+G + + + + + + &Refresh + + + + + Ctrl+R + + + + + Save &Image... + + + + + Auto-Fit + + + + + Zoom In + + + + + Ctrl++ + + + + + Zoom Out + + + + + Ctrl+- + + + + + Zoom 100% + + + + + Ctrl+1 + + + + + Show &Toolbar + + + + + &Configure Carla + + + + + &About + + + + + About &JUCE + + + + + About &Qt + + + + + Show Canvas &Meters + + + + + Show Canvas &Keyboard + + + + + Show Internal + + + + + Show External + + + + + Show Time Panel + + + + + Show &Side Panel + + + + + Ctrl+P + + + + + &Connect... + + + + + Compact Slots + + + + + Expand Slots + + + + + Perform secret 1 + + + + + Perform secret 2 + + + + + Perform secret 3 + + + + + Perform secret 4 + + + + + Perform secret 5 + + + + + Add &JACK Application... + + + + + &Configure driver... + + + + + Panic + + + + + Open custom driver panel... + + + + + Save Image... (2x zoom) + + + + + Save Image... (4x zoom) + + + + + Copy as Image to Clipboard + + + + + Ctrl+Shift+C + + + + + CarlaHostWindow + + + Export as... + + + + + + + + Error + エラー + + + + Failed to load project + + + + + Failed to save project + + + + + Quit + + + + + Are you sure you want to quit Carla? + + + + + Could not connect to Audio backend '%1', possible reasons: +%2 + + + + + Could not connect to Audio backend '%1' + + + + + Warning + + + + + There are still some plugins loaded, you need to remove them to stop the engine. +Do you want to do this now? + + + + + CarlaSettingsW + + + Settings + 設定 + + + + main + + + + + canvas + + + + + engine + + + + + osc + + + + + file-paths + + + + + plugin-paths + + + + + wine + + + + + experimental + + + + + Widget + + + + + + Main + + + + + + Canvas + + + + + + Engine + + + + + File Paths + + + + + Plugin Paths + + + + + Wine + + + + + + Experimental + + + + + <b>Main</b> + + + + + Paths + パス + + + + Default project folder: + + + + + Interface + + + + + Use "Classic" as default rack skin + + + + + Interface refresh interval: + + + + + + ms + + + + + Show console output in Logs tab (needs engine restart) + + + + + Show a confirmation dialog before quitting + + + + + + Theme + + + + + Use Carla "PRO" theme (needs restart) + + + + + Color scheme: + + + + + Black + + + + + System + + + + + Enable experimental features + + + + + <b>Canvas</b> + + + + + Bezier Lines + + + + + Theme: + + + + + Size: + + + + + 775x600 + + + + + 1550x1200 + + + + + 3100x2400 + + + + + 4650x3600 + + + + + 6200x4800 + + + + + 12400x9600 + + + + + Options + + + + + Auto-hide groups with no ports + + + + + Auto-select items on hover + + + + + Basic eye-candy (group shadows) + + + + + Render Hints + + + + + Anti-Aliasing + + + + + Full canvas repaints (slower, but prevents drawing issues) + + + + + <b>Engine</b> + + + + + + Core + + + + + Single Client + + + + + Multiple Clients + + + + + + Continuous Rack + + + + + + Patchbay + + + + + Audio driver: + + + + + Process mode: + + + + + + + + Maximum number of parameters to allow in the built-in 'Edit' dialog + + + + + Max Parameters: + + + + + ... + + + + + Reset Xrun counter after project load + + + + + Plugin UIs + + + + + + How much time to wait for OSC GUIs to ping back the host + + + + + UI Bridge Timeout: + + + + + Use OSC-GUI bridges when possible, this way separating the UI from DSP code + + + + + Use UI bridges instead of direct handling when possible + + + + + Make plugin UIs always-on-top + + + + + Make plugin UIs appear on top of Carla (needs restart) + + + + + NOTE: Plugin-bridge UIs cannot be managed by Carla on macOS + + + + + + Restart the engine to load the new settings + + + + + <b>OSC</b> + + + + + Enable OSC + + + + + Enable TCP port + + + + + + Use specific port: + + + + + Overridden by CARLA_OSC_TCP_PORT env var + + + + + + Use randomly assigned port + + + + + Enable UDP port + + + + + Overridden by CARLA_OSC_UDP_PORT env var + + + + + DSSI UIs require OSC UDP port enabled + + + + + <b>File Paths</b> + + + + + Audio + オーディオ + + + + MIDI + MIDI + + + + Used for the "audiofile" plugin + + + + + Used for the "midifile" plugin + + + + + + Add... + + + + + + Remove + + + + + + Change... + + + + + <b>Plugin Paths</b> + + + + + LADSPA + + + + + DSSI + + + + + LV2 + + + + + VST2 + + + + + VST3 + + + + + SF2/3 + + + + + SFZ + + + + + JSFX + + + + + CLAP + + + + + Restart Carla to find new plugins + + + + + <b>Wine</b> + + + + + Executable + + + + + Path to 'wine' binary: + + + + + Prefix + + + + + Auto-detect Wine prefix based on plugin filename + + + + + Fallback: + + + + + Note: WINEPREFIX env var is preferred over this fallback + + + + + Realtime Priority + + + + + Base priority: + + + + + WineServer priority: + + + + + These options are not available for Carla as plugin + + + + + <b>Experimental</b> + + + + + Experimental options! Likely to be unstable! + + + + + Enable plugin bridges + + + + + Enable Wine bridges + + + + + Enable jack applications + + + + + Export single plugins to LV2 + + + + + Use system/desktop-theme icons (needs restart) + + + + + Load Carla backend in global namespace (NOT RECOMMENDED) + + + + + Fancy eye-candy (fade-in/out groups, glow connections) + + + + + Use OpenGL for rendering (needs restart) + + + + + High Quality Anti-Aliasing (OpenGL only) + + + + + Render Ardour-style "Inline Displays" + + + + + Force mono plugins as stereo by running 2 instances at the same time. +This mode is not available for VST plugins. + + + + + Force mono plugins as stereo + + + + + When enabled, Carla will try to prevent plugins from doing things that might mess up the audio or cause xruns, such as fork(), gtk_init() and similar. + + + + + Prevent unsafe calls from plugins (needs restart) + + + + + Run plugins in a separate process, so if they crash it does not affect Carla. +Plugins get automatically deactivated in such cases. +Reactvate them to start the process again, with the last saved state applied to it. + + + + + Run plugins in bridge mode when possible + + + + + + + + Add Path + + + + + Dialog + + + Carla Control - Connect + + + + + Remote setup + + + + + UDP Port: + + + + + Remote host: + + + + + TCP Port: + + + + + Set value + 値をセット + + + + TextLabel + + + + + Scale Points + + + + + DriverSettingsW + + + Driver Settings + + + + + Device: + デバイス : + + + + Buffer size: + + + + + Sample rate: + サンプルレート: + + + + Triple buffer + + + + + Show Driver Control Panel + + + + + Restart the engine to load the new settings + + + + + ExportProjectDialog + + + Export project + プロジェクトをエクスポート + + + + Export as loop (remove extra bar) + ループとしてエクスポート (余分なところは除去) + + + + Export between loop markers + ループのマーカー区間をエクスポートする + + + + Render Looped Section: + + + + + time(s) + + + + + File format settings + ファイルフォーマット設定 + + + + File format: + ファイルの形式: + + + + Sampling rate: + サンプルレート : + + + + 44100 Hz + 44100 Hz + + + + 48000 Hz + 48000 Hz + + + + 88200 Hz + 88200 Hz + + + + 96000 Hz + 96000 Hz + + + + 192000 Hz + 192000 Hz + + + + Bit depth: + ビット深度 : + + + + 16 Bit integer + 16 ビット + + + + 24 Bit integer + 24 ビット + + + + 32 Bit float + 32 ビット + + + + Stereo mode: + ステレオモード: + + + + Mono + モノラル + + + + Stereo + ステレオ + + + + Joint stereo + ジョイントステレオ + + + + Compression level: + 圧縮レベル: + + + + Bitrate: + ビットレート: + + + + 64 KBit/s + 64 KBit/s + + + + 128 KBit/s + 128 KBit/s + + + + 160 KBit/s + 160 KBit/s + + + + 192 KBit/s + 192 KBit/s + + + + 256 KBit/s + 256 KBit/s + + + + 320 KBit/s + 320 KBit/s + + + + Use variable bitrate + 可変ビットレートを使用する + + + + Quality settings + 品質設定 + + + + Interpolation: + 補間 : + + + + Zero order hold + ゼロ次ホールド + + + + Sinc worst (fastest) + 低品質 (最速) + + + + Sinc medium (recommended) + 中品質 (おすすめ) + + + + Sinc best (slowest) + 最高品質 (最低速) + + + + Start + 開始 + + + + Cancel + キャンセル + + + + InstrumentFunctionNoteStacking + + + octave + オクターブ + + + + + Major + Major + + + + Majb5 + Majb5 + + + + minor + minor + + + + minb5 + minb5 + + + + sus2 + sus2 + + + + sus4 + sus4 + + + + aug + aug + + + + augsus4 + augsus4 + + + + tri + tri + + + + 6 + 6 + + + + 6sus4 + 6sus4 + + + + 6add9 + 6add9 + + + + m6 + m6 + + + + m6add9 + m6add9 + + + + 7 + 7 + + + + 7sus4 + 7sus4 + + + + 7#5 + 7#5 + + + + 7b5 + 7b5 + + + + 7#9 + 7#9 + + + + 7b9 + 7b9 + + + + 7#5#9 + 7#5#9 + + + + 7#5b9 + 7#5b9 + + + + 7b5b9 + 7b5b9 + + + + 7add11 + 7add11 + + + + 7add13 + 7add13 + + + + 7#11 + 7#11 + + + + Maj7 + Maj7 + + + + Maj7b5 + Maj7b5 + + + + Maj7#5 + Maj7#5 + + + + Maj7#11 + Maj7#11 + + + + Maj7add13 + Maj7add13 + + + + m7 + m7 + + + + m7b5 + m7b5 + + + + m7b9 + m7b9 + + + + m7add11 + m7add11 + + + + m7add13 + m7add13 + + + + m-Maj7 + m-Maj7 + + + + m-Maj7add11 + m-Maj7add11 + + + + m-Maj7add13 + m-Maj7add13 + + + + 9 + 9 + + + + 9sus4 + 9sus4 + + + + add9 + add9 + + + + 9#5 + 9#5 + + + + 9b5 + 9b5 + + + + 9#11 + 9#11 + + + + 9b13 + 9b13 + + + + Maj9 + Maj9 + + + + Maj9sus4 + Maj9sus4 + + + + Maj9#5 + Maj9#5 + + + + Maj9#11 + Maj9#11 + + + + m9 + m9 + + + + madd9 + madd9 + + + + m9b5 + m9b5 + + + + m9-Maj7 + m9-Maj7 + + + + 11 + 11 + + + + 11b9 + 11b9 + + + + Maj11 + Maj11 + + + + m11 + m11 + + + + m-Maj11 + m-Maj11 + + + + 13 + 13 + + + + 13#9 + 13#9 + + + + 13b9 + 13b9 + + + + 13b5b9 + 13b5b9 + + + + Maj13 + Maj13 + + + + m13 + m13 + + + + m-Maj13 + m-Maj13 + + + + Harmonic minor + ハーモニックマイナー + + + + Melodic minor + メロディックマイナー + + + + Whole tone + ホールトーン + + + + Diminished + ディミニッシュ + + + + Major pentatonic + メジャーペンタトニック + + + + Minor pentatonic + マイナーペンタトニック + + + + Jap in sen + Jap in sen + + + + Major bebop + メジャービバップ + + + + Dominant bebop + ドミナントビバップ + + + + Blues + ブルース + + + + Arabic + アラビック + + + + Enigmatic + エニグマティック + + + + Neopolitan + ネオポリタン + + + + Neopolitan minor + ネオポリタンマイナー + + + + Hungarian minor + ハンガリアンマイナー + + + + Dorian + ドリア旋法 + + + + Phrygian + フリギア旋法 + + + + Lydian + 教会旋法 + + + + Mixolydian + ミクソリディア旋法 + + + + Aeolian + エオリア旋法 + + + + Locrian + ロクリアン旋法 + + + + Minor + Minor + + + + Chromatic + クロマティック + + + + Half-Whole Diminished + + + + + 5 + 5 + + + + Phrygian dominant + + + + + Persian + + + + + InstrumentSoundShaping + + + VOLUME + 音量 + + + + Volume + 音量 + + + + CUTOFF + Cutoff + + + + Cutoff frequency + カットオフ周波数 + + + + RESO + レゾナンス + + + + Resonance + レゾナンス + + + + JackAppDialog + + + Add JACK Application + + + + + Note: Features not implemented yet are greyed out + + + + + Application + + + + + Name: + + + + + Application: + + + + + From template + + + + + Custom + + + + + Template: + + + + + Command: + + + + + Setup + + + + + Session Manager: + + + + + None + + + + + Audio inputs: + + + + + MIDI inputs: + + + + + Audio outputs: + + + + + MIDI outputs: + + + + + Take control of main application window + + + + + Workarounds + + + + + Wait for external application start (Advanced, for Debug only) + + + + + Capture only the first X11 Window + + + + + Use previous client output buffer as input for the next client + + + + + Simulate 16 JACK MIDI outputs, with MIDI channel as port index + + + + + Error here + + + + + NSM applications cannot use abstract or absolute paths + + + + + NSM applications cannot use CLI arguments + + + + + You need to save the current Carla project before NSM can be used + + + + + JuceAboutW + + + This program uses JUCE version %1. + + + + + MidiPatternW + + + MIDI Pattern + + + + + Time Signature: + + + + + + + 1/4 + + + + + 2/4 + + + + + 3/4 + + + + + 4/4 + + + + + 5/4 + + + + + 6/4 + + + + + Measures: + + + + + + + 1 + + + + + 2 + + + + + 3 + + + + + 4 + + + + + 5 + 5 + + + + 6 + 6 + + + + 7 + 7 + + + + 8 + + + + + 9 + 9 + + + + 10 + + + + + 11 + 11 + + + + 12 + + + + + 13 + 13 + + + + 14 + + + + + 15 + + + + + 16 + + + + + Default Length: + + + + + + 1/16 + + + + + + 1/15 + + + + + + 1/12 + + + + + + 1/9 + + + + + + 1/8 + + + + + + 1/6 + + + + + + 1/3 + + + + + + 1/2 + + + + + Quantize: + + + + + &File + ファイル(&F) + + + + &Edit + 編集(&E) + + + + &Quit + 終了(&Q) + + + + Esc + + + + + &Insert Mode + + + + + F + + + + + &Velocity Mode + + + + + D + D + + + + Select All + + + + + A + A + + + + PatchesDialog + + + + Qsynth: Channel Preset + + + + + + Bank selector + + + + + + Bank + バンク + + + + + Program selector + + + + + + Patch + パッチ + + + + + Name + 名前 + + + + + OK + OK + + + + + Cancel + キャンセル + + + + PluginBrowser + + + no description + 説明なし + + + + A native amplifier plugin + ネイティブのアンププラグイン + + + + Simple sampler with various settings for using samples (e.g. drums) in an instrument-track + + + + + Boost your bass the fast and simple way + + + + + Customizable wavetable synthesizer + カスタマイズ可能なウェーブテーブルシンセサイザーです + + + + An oversampling bitcrusher + + + + + Carla Patchbay Instrument + + + + + Carla Rack Instrument + + + + + A dynamic range compressor. + + + + + A 4-band Crossover Equalizer + 4バンドのクロスオーバーイコライザー + + + + A native delay plugin + ネイティブのディレイプラグイン + + + + A Dual filter plugin + ネイティブのデュアルフィルタープラグイン + + + + plugin for processing dynamics in a flexible way + + + + + A native eq plugin + ネイティブのEQプラグイン + + + + A native flanger plugin + ネイティブのフランジャープラグイン + + + + Emulation of GameBoy (TM) APU + GameBoy (TM) のAPUを再現します + + + + Player for GIG files + GIG ファイル用プレイヤー + + + + Filter for importing Hydrogen files into LMMS + + + + + Versatile drum synthesizer + 多彩なドラムシンセサイザーです + + + + List installed LADSPA plugins + インストールされている LADSPA プラグインの一覧 + + + + plugin for using arbitrary LADSPA-effects inside LMMS. + 任意の LADSPA エフェクトを LMMS で使用するためのプラグイン。 + + + + Incomplete monophonic imitation TB-303 + + + + + plugin for using arbitrary LV2-effects inside LMMS. + + + + + plugin for using arbitrary LV2 instruments inside LMMS. + + + + + Filter for exporting MIDI-files from LMMS + + + + + Filter for importing MIDI-files into LMMS + + + + + Monstrous 3-oscillator synth with modulation matrix + + + + + A multitap echo delay plugin + + + + + A NES-like synthesizer + ファミコン似のシンセサイザーです + + + + 2-operator FM Synth + + + + + Additive Synthesizer for organ-like sounds + + + + + GUS-compatible patch instrument + + + + + Plugin for controlling knobs with sound peaks + サウンドのピークをつまみでコントロールするプラグイン + + + + Reverb algorithm by Sean Costello + Sean Costello による リバーブのアルゴリズム + + + + Player for SoundFont files + サウンドフォント ファイル用プレイヤー + + + + LMMS port of sfxr + + + + + Emulation of the MOS6581 and MOS8580 SID. +This chip was used in the Commodore 64 computer. + + + + + A graphical spectrum analyzer. + + + + + Plugin for enhancing stereo separation of a stereo input file + ステレオの入力ファイルに対するステレオ感を強化するプラグイン + + + + Plugin for freely manipulating stereo output + ステレオ出力を自由に操作するプラグイン + + + + Tuneful things to bang on + + + + + Three powerful oscillators you can modulate in several ways + + + + + A stereo field visualizer. + + + + + VST-host for using VST(i)-plugins within LMMS + + + + + Vibrating string modeler + + + + + plugin for using arbitrary VST effects inside LMMS. + + + + + 4-oscillator modulatable wavetable synth + + + + + plugin for waveshaping + + + + + Mathematical expression parser + + + + + Embedded ZynAddSubFX + 埋め込みされた ZynAddSubFX です + + + + An all-pass filter allowing for extremely high orders. + + + + + Granular pitch shifter + + + + + Upwards/downwards multiband compression plugin powered by the eldritch elder god LOMMUS. + + + + + Basic Slicer + + + + + Tap to the beat + + + + + PluginEdit + + + Plugin Editor + + + + + Edit + + + + + Control + コントロール + + + + MIDI Control Channel: + + + + + N + + + + + Output dry/wet (100%) + + + + + Output volume (100%) + + + + + Balance Left (0%) + + + + + + Balance Right (0%) + + + + + Use Balance + + + + + Use Panning + + + + + Settings + 設定 + + + + Use Chunks + + + + + Audio: + + + + + Fixed-Size Buffer + + + + + Force Stereo (needs reload) + + + + + MIDI: + + + + + Map Program Changes + + + + + Send Notes + + + + + Send Bank/Program Changes + + + + + Send Control Changes + + + + + Send Channel Pressure + + + + + Send Note Aftertouch + + + + + Send Pitchbend + + + + + Send All Sound/Notes Off + + + + + +Plugin Name + + + + + + Program: + + + + + MIDI Program: + + + + + Save State + + + + + Load State + + + + + Information + + + + + Label/URI: + + + + + Name: + + + + + Type: + 種類: + + + + Maker: + + + + + Copyright: + + + + + Unique ID: + + + + + PluginFactory + + + Plugin not found. + プラグインが見つかりませんでした + + + + LMMS plugin %1 does not have a plugin descriptor named %2! + + + + + PluginListDialog + + + Carla - Add New - - Plugin Version + + Requirements - - <br>Version %1<br>Carla is a fully-featured audio plugin host%2.<br><br>Copyright (C) 2011-2019 falkTX<br> + + With Custom GUI - - - (Engine not running) + + With CV Ports - - Everything! (Including LRDF) + + Real-time safe only - - Everything! (Including CustomData/Chunks) + + Stereo only - - About 110&#37; complete (using custom extensions)<br/>Implemented Feature/Extensions:<ul><li>http://lv2plug.in/ns/ext/atom</li><li>http://lv2plug.in/ns/ext/buf-size</li><li>http://lv2plug.in/ns/ext/data-access</li><li>http://lv2plug.in/ns/ext/event</li><li>http://lv2plug.in/ns/ext/instance-access</li><li>http://lv2plug.in/ns/ext/log</li><li>http://lv2plug.in/ns/ext/midi</li><li>http://lv2plug.in/ns/ext/options</li><li>http://lv2plug.in/ns/ext/parameters</li><li>http://lv2plug.in/ns/ext/port-props</li><li>http://lv2plug.in/ns/ext/presets</li><li>http://lv2plug.in/ns/ext/resize-port</li><li>http://lv2plug.in/ns/ext/state</li><li>http://lv2plug.in/ns/ext/time</li><li>http://lv2plug.in/ns/ext/uri-map</li><li>http://lv2plug.in/ns/ext/urid</li><li>http://lv2plug.in/ns/ext/worker</li><li>http://lv2plug.in/ns/extensions/ui</li><li>http://lv2plug.in/ns/extensions/units</li><li>http://home.gna.org/lv2dynparam/rtmempool/v1</li><li>http://kxstudio.sf.net/ns/lv2ext/external-ui</li><li>http://kxstudio.sf.net/ns/lv2ext/programs</li><li>http://kxstudio.sf.net/ns/lv2ext/props</li><li>http://kxstudio.sf.net/ns/lv2ext/rtmempool</li><li>http://ll-plugins.nongnu.org/lv2/ext/midimap</li><li>http://ll-plugins.nongnu.org/lv2/ext/miditype</li></ul> + + With Inline Display - - - - Using Juce host + + Favorites only - - About 85% complete (missing vst bank/presets and some minor stuff) + + (Number of Plugins go here) - - - CarlaHostW - - MainWindow + + &Add Plugin - - Rack + + Cancel - - Patchbay + + Refresh - - Logs + + Reset filters - - Loading... + + + + + + + + + + + + + + + + + TextLabel - - Buffer Size: + + Format: - - Sample Rate: + + Architecture: - - ? Xruns + + Type: - - DSP Load: %p% + + MIDI Ins: - - &File - ファイル(&F) + + Audio Ins: + - - &Engine + + CV Outs: - - &Plugin + + MIDI Outs: - - Macros (all plugins) + + Parameter Ins: - - &Canvas + + Parameter Outs: - - Zoom + + Audio Outs: - - &Settings + + CV Ins: - - &Help - ヘルプ(&H) + + UniqueID: + - - toolBar + + Has Inline Display: - - Disk + + Has Custom GUI: - - - Home - ホーム + + Is Synth: + - - Transport + + Is Bridged: - - Playback Controls + + Information - - Time Information + + Name - - Frame: + + Label/Id/URI - - 000'000'000 + + Maker - - Time: - 時間: + + Binary/Filename + - - 00:00:00 + + Format - - BBT: + + Internal - - 000|00|0000 + + LADSPA - - Settings - 設定 + + DSSI + - - BPM + + LV2 - - Use JACK Transport + + VST2 - - Use Ableton Link + + VST3 - - &New - 新規(&N) + + CLAP + - - Ctrl+N + + AU - - &Open... - 開く(&O)... + + JSFX + - - - Open... + + Sound Kits - - Ctrl+O + + Type - - &Save - 保存(&S) + + Effects + - - Ctrl+S + + Instruments - - Save &As... - 名前を付けて保存(&A)... + + MIDI Plugins + - - - Save As... + + Other/Misc - - Ctrl+Shift+S + + Category - - &Quit - 終了(&Q) + + All + - - Ctrl+Q + + Delay - - &Start + + Distortion - - F5 + + Dynamics - - St&op + + EQ - - F6 + + Filter - - &Add Plugin... + + Modulator - - Ctrl+A + + Synth - - &Remove All + + Utility - - Enable + + + Other - - Disable + + Architecture - - 0% Wet (Bypass) + + + Native - - 100% Wet + + Bridged - - 0% Volume (Mute) + + Bridged (Wine) + + + + + Focus Text Search + + + + + Ctrl+F + + + + + Bridged (32bit) + + + + + Discovering internal plugins... + + + + + Discovering LADSPA plugins... + + + + + Discovering DSSI plugins... + + + + + Discovering LV2 plugins... + + + + + Discovering VST2 plugins... + + + + + Discovering VST3 plugins... + + + + + Discovering CLAP plugins... + + + + + Discovering AU plugins... + + + + + Discovering JSFX plugins... + + + + + Discovering SF2 kits... + + + + + Discovering SFZ kits... + + + + + Unknown + + + + + + + + Yes + + + + + + + + No + + + + + PluginParameter + + + Form + + + + + Parameter Name + + + + + TextLabel + + + + + ... + + + + + PluginRefreshDialog + + + Plugin Refresh + + + + + Search for: + + + + + All plugins, ignoring cache + + + + + Updated plugins only + + + + + Check previously invalid plugins - - 100% Volume + + Press 'Scan' to begin the search - - Center Balance + + Scan - - &Play + + >> Skip - - Ctrl+Shift+P + + Close + + + PluginWidget - - &Stop + + + + + + Frame - - Ctrl+Shift+X + + Enable - - &Backwards - + + On/Off + オン/オフ - - Ctrl+Shift+B + + + + + PluginName - - &Forwards - + + MIDI + MIDI - - Ctrl+Shift+F + + AUDIO IN - - &Arrange + + AUDIO OUT - - Ctrl+G + + GUI - - - &Refresh + + Edit - - Ctrl+R + + Remove - - Save &Image... + + Plugin Name - - Auto-Fit + + Preset: + + + ProjectRenderer - - Zoom In - + + WAV (*.wav) + WAV (*.wav) - - Ctrl++ - + + FLAC (*.flac) + FLAC (*.flac) - - Zoom Out - + + OGG (*.ogg) + OGG (*.ogg) - - Ctrl+- - + + MP3 (*.mp3) + MP3 (*.mp3) + + + QGroupBox - - Zoom 100% + + + Settings for %1 + + + QObject - - Ctrl+1 + + Reload Plugin - - Show &Toolbar - + + Show GUI + GUI を表示 - - &Configure Carla - + + Help + ヘルプ - - &About + + LADSPA plugins - - About &JUCE + + The project contains %1 LADSPA plugin(s) which might have not been restored correctly! Please check the project. - - About &Qt + + URI: - - Show Canvas &Meters + + Project: - - Show Canvas &Keyboard + + Maker: - - Show Internal + + Homepage: - - Show External + + License: - - Show Time Panel + + File: %1 - - Show &Side Panel + + failed to load description - - &Connect... + + Open audio file - - Compact Slots + + Error loading sample - - Expand Slots + + %1 (unsupported) + + + QWidget - - Perform secret 1 - + + + Name: + 名前: - - Perform secret 2 - + + Maker: + 作成者: - - Perform secret 3 - + + Copyright: + 著作権表示: - - Perform secret 4 + + Requires Real Time: - - Perform secret 5 - + + + + Yes + はい - - Add &JACK Application... - + + + + No + いいえ - - &Configure driver... + + Real Time Capable: - - Panic + + In Place Broken: - - Open custom driver panel... - + + Channels In: + 入力チャンネル: - - - CarlaHostWindow - - Export as... - + + Channels Out: + 出力チャンネル: - - - - - Error - エラー + + File: %1 + ファイル: %1 - - Failed to load project + + File: + ファイル: + + + + XYControllerW + + + XY Controller - - Failed to save project + + X Controls: - - Quit + + Y Controls: - - Are you sure you want to quit Carla? + + Smooth - - Could not connect to Audio backend '%1', possible reasons: -%2 + + &Settings - - Could not connect to Audio backend '%1' + + Channels - - Warning + + &File - - There are still some plugins loaded, you need to remove them to stop the engine. -Do you want to do this now? + + Show MIDI &Keyboard - - - CarlaInstrumentView - - Show GUI - GUI を表示 + + (All) + - - - CarlaSettingsW - - Settings - 設定 + + 1 + - - main + + 2 - - canvas + + 3 - - engine + + 4 - - osc + + 5 - - file-paths + + 6 - - plugin-paths + + 7 - - wine + + 8 - - experimental + + 9 - - Widget + + 10 - - - Main + + 11 - - - Canvas + + 12 - - - Engine + + 13 - - File Paths + + 14 - - Plugin Paths + + 15 - - Wine + + 16 - - - Experimental + + &Quit - - <b>Main</b> + + Esc - - Paths - パス + + (None) + + + + lmms::AmplifierControls - - Default project folder: + + Volume - - Interface + + Panning - - Interface refresh interval: + + Left gain - - - ms + + Right gain + + + lmms::AudioFileProcessor - - Show console output in Logs tab (needs engine restart) + + Amplify - - Show a confirmation dialog before quitting + + Start of sample - - - Theme + + End of sample - - Use Carla "PRO" theme (needs restart) + + Loopback point - - Color scheme: + + Reverse sample - - Black + + Loop mode - - System + + Stutter - - Enable experimental features + + Interpolation mode - - <b>Canvas</b> + + None - - Bezier Lines + + Linear - - Theme: + + Sinc - - Size: + + Sample not found + + + lmms::AudioJack - - 775x600 + + JACK client restarted - - 1550x1200 + + LMMS was kicked by JACK for some reason. Therefore the JACK backend of LMMS has been restarted. You will have to make manual connections again. - - 3100x2400 + + JACK server down - - 4650x3600 + + The JACK server seems to have been shutdown and starting a new instance failed. Therefore LMMS is unable to proceed. You should save your project and restart JACK and LMMS. - - 6200x4800 + + Client name - - Options + + Channels + + + lmms::AudioOss - - Auto-hide groups with no ports + + Device - - Auto-select items on hover + + Channels + + + lmms::AudioPortAudio::setupWidget - - Basic eye-candy (group shadows) + + Backend - - Render Hints + + Device + + + lmms::AudioPulseAudio - - Anti-Aliasing + + Device - - Full canvas repaints (slower, but prevents drawing issues) + + Channels + + + lmms::AudioSdl::setupWidget - - <b>Engine</b> + + Playback device - - - Core + + Input device + + + lmms::AudioSndio - - Single Client + + Device - - Multiple Clients + + Channels + + + lmms::AudioSoundIo::setupWidget - - - Continuous Rack + + Backend - - - Patchbay + + Device + + + lmms::AutomatableModel - - Audio driver: + + &Reset (%1%2) - - Process mode: + + &Copy value (%1%2) - - - - - Maximum number of parameters to allow in the built-in 'Edit' dialog + + &Paste value (%1%2) - - Max Parameters: + + &Paste value - - ... + + Edit song-global automation - - Reset Xrun counter after project load + + Remove song-global automation - - Plugin UIs + + Remove all linked controls - - - How much time to wait for OSC GUIs to ping back the host + + Connected to %1 - - UI Bridge Timeout: + + Connected to controller - - Use OSC-GUI bridges when possible, this way separating the UI from DSP code + + Edit connection... - - Use UI bridges instead of direct handling when possible + + Remove connection - - Make plugin UIs always-on-top + + Connect to controller... + + + lmms::AutomationClip - - Make plugin UIs appear on top of Carla (needs restart) + + Drag a control while pressing <%1> + + + lmms::AutomationTrack - - NOTE: Plugin-bridge UIs cannot be managed by Carla on macOS + + Automation track + + + lmms::BassBoosterControls - - - Restart the engine to load the new settings + + Frequency - - <b>OSC</b> + + Gain - - Enable OSC + + Ratio + + + lmms::BitInvader - - Enable TCP port + + Sample length - - - Use specific port: + + Interpolation - - Overridden by CARLA_OSC_TCP_PORT env var + + Normalize + + + lmms::BitcrushControls - - - Use randomly assigned port + + Input gain - - Enable UDP port + + Input noise - - Overridden by CARLA_OSC_UDP_PORT env var + + Output gain - - DSSI UIs require OSC UDP port enabled + + Output clip - - <b>File Paths</b> + + Sample rate - - Audio - オーディオ + + Stereo difference + - - MIDI - MIDI + + Levels + - - Used for the "audiofile" plugin + + Rate enabled - - Used for the "midifile" plugin + + Depth enabled + + + lmms::Clip - - - Add... + + Mute + + + lmms::CompressorControls - - - Remove + + Threshold - - - Change... + + Ratio - - <b>Plugin Paths</b> + + Attack - - LADSPA + + Release - - DSSI + + Knee - - LV2 + + Hold - - VST2 + + Range - - VST3 + + RMS Size - - SF2/3 + + Mid/Side - - SFZ + + Peak Mode - - Restart Carla to find new plugins + + Lookahead Length - - <b>Wine</b> + + Input Balance - - Executable + + Output Balance - - Path to 'wine' binary: + + Limiter - - Prefix + + Output Gain - - Auto-detect Wine prefix based on plugin filename + + Input Gain - - Fallback: + + Blend - - Note: WINEPREFIX env var is preferred over this fallback + + Stereo Balance - - Realtime Priority + + Auto Makeup Gain - - Base priority: + + Audition - - WineServer priority: + + Feedback - - These options are not available for Carla as plugin + + Auto Attack - - <b>Experimental</b> + + Auto Release - - Experimental options! Likely to be unstable! + + Lookahead - - Enable plugin bridges + + Tilt - - Enable Wine bridges + + Tilt Frequency - - Enable jack applications + + Stereo Link - - Export single plugins to LV2 + + Mix + + + lmms::Controller - - Load Carla backend in global namespace (NOT RECOMMENDED) + + Controller %1 + + + lmms::DelayControls - - Fancy eye-candy (fade-in/out groups, glow connections) + + Delay samples - - Use OpenGL for rendering (needs restart) + + Feedback - - High Quality Anti-Aliasing (OpenGL only) + + LFO frequency - - Render Ardour-style "Inline Displays" + + LFO amount - - Force mono plugins as stereo by running 2 instances at the same time. -This mode is not available for VST plugins. + + Output gain + + + lmms::DispersionControls - - Force mono plugins as stereo + + Amount - - Prevent plugins from doing bad stuff (needs restart) + + Frequency - - Whenever possible, run the plugins in bridge mode. + + Resonance - - Run plugins in bridge mode when possible + + Feedback - - - - - Add Path + + DC Offset Removal - CompressorControlDialog + lmms::DualFilterControls - - Threshold: + + Filter 1 enabled - - Volume at which the compression begins to take place + + Filter 1 type - - Ratio: - レシオ: + + Cutoff frequency 1 + - - How far the compressor must turn the volume down after crossing the threshold + + Q/Resonance 1 - - Attack: - アタック: + + Gain 1 + - - Speed at which the compressor starts to compress the audio + + Mix - - Release: - リリース: + + Filter 2 enabled + - - Speed at which the compressor ceases to compress the audio + + Filter 2 type - - Knee: + + Cutoff frequency 2 - - Smooth out the gain reduction curve around the threshold + + Q/Resonance 2 - - Range: + + Gain 2 - - Maximum gain reduction + + + Low-pass - - Lookahead Length: + + + Hi-pass - - How long the compressor has to react to the sidechain signal ahead of time + + + Band-pass csg - - Hold: - Hold: + + + Band-pass czpg + - - Delay between attack and release stages + + + Notch - - RMS Size: + + + All-pass - - Size of the RMS buffer + + + Moog - - Input Balance: + + + 2x Low-pass - - Bias the input audio to the left/right or mid/side + + + RC Low-pass 12 dB/oct - - Output Balance: + + + RC Band-pass 12 dB/oct - - Bias the output audio to the left/right or mid/side + + + RC High-pass 12 dB/oct - - Stereo Balance: + + + RC Low-pass 24 dB/oct - - Bias the sidechain signal to the left/right or mid/side + + + RC Band-pass 24 dB/oct - - Stereo Link Blend: + + + RC High-pass 24 dB/oct - - Blend between unlinked/maximum/average/minimum stereo linking modes + + + Vocal Formant - - Tilt Gain: + + + 2x Moog - - Bias the sidechain signal to the low or high frequencies. -6 db is lowpass, 6 db is highpass. + + + SV Low-pass - - Tilt Frequency: + + + SV Band-pass - - Center frequency of sidechain tilt filter + + + SV High-pass - - Mix: + + + SV Notch - - Balance between wet and dry signals + + + Fast Formant - - Auto Attack: + + + Tripole + + + lmms::DynProcControls - - Automatically control attack value depending on crest factor + + Input gain - - Auto Release: + + Output gain - - Automatically control release value depending on crest factor + + Attack time - - Output gain - 出力ゲイン + + Release time + - - - Gain - ゲイン + + Stereo mode + + + + lmms::Effect - - Output volume + + Effect enabled - - Input gain - 入力ゲイン + + Wet/Dry mix + - - Input volume + + Gate - - Root Mean Square + + Decay + + + lmms::EffectChain - - Use RMS of the input + + Effects enabled + + + lmms::Engine - - Peak + + Generating wavetables - - Use absolute value of the input + + Initializing data structures - - Left/Right + + Opening audio and midi devices - - Compress left and right audio + + Launching audio engine threads + + + lmms::EnvelopeAndLfoParameters - - Mid/Side + + Env pre-delay - - Compress mid and side audio + + Env attack - - Compressor + + Env hold - - Compress the audio + + Env decay - - Limiter + + Env sustain - - Set Ratio to infinity (is not guaranteed to limit audio volume) + + Env release - - Unlinked + + Env mod amount - - Compress each channel separately + + LFO pre-delay - - Maximum + + LFO attack - - Compress based on the loudest channel + + LFO frequency - - Average + + LFO mod amount - - Compress based on the averaged channel volume + + LFO wave shape - - Minimum + + LFO frequency x 100 - - Compress based on the quietest channel + + Modulate env amount - - Blend + + Sample not found + + + lmms::EqControls - - Blend between stereo linking modes + + Input gain - - Auto Makeup Gain + + Output gain - - Automatically change makeup gain depending on threshold, knee, and ratio settings + + Low-shelf gain - - - Soft Clip + + Peak 1 gain - - Play the delta signal + + Peak 2 gain - - Use the compressor's output as the sidechain input + + Peak 3 gain - - Lookahead Enabled + + Peak 4 gain - - Enable Lookahead, which introduces 20 milliseconds of latency + + High-shelf gain - - - CompressorControls - - Threshold + + HP res - - Ratio - レシオ + + Low-shelf res + - - Attack - アタック + + Peak 1 BW + - - Release - Release + + Peak 2 BW + - - Knee + + Peak 3 BW - - Hold - Hold + + Peak 4 BW + - - Range + + High-shelf res - - RMS Size + + LP res - - Mid/Side + + HP freq - - Peak Mode + + Low-shelf freq - - Lookahead Length + + Peak 1 freq - - Input Balance + + Peak 2 freq - - Output Balance + + Peak 3 freq - - Limiter + + Peak 4 freq - - Output Gain + + High-shelf freq - - Input Gain + + LP freq - - Blend + + HP active - - Stereo Balance + + Low-shelf active - - Auto Makeup Gain + + Peak 1 active - - Audition + + Peak 2 active - - Feedback - フィードバック + + Peak 3 active + - - Auto Attack + + Peak 4 active - - Auto Release + + High-shelf active - - Lookahead + + LP active - - Tilt + + LP 12 - - Tilt Frequency + + LP 24 - - Stereo Link + + LP 48 - - Mix - ミックス + + HP 12 + - - - Controller - - Controller %1 - コントローラー %1 + + HP 24 + - - - ControllerConnectionDialog - - Connection Settings - 接続設定 + + HP 48 + - - MIDI CONTROLLER - MIDI コントローラ + + Low-pass type + - - Input channel - 入力チャンネル + + High-pass type + - - CHANNEL - チャンネル + + Analyse IN + - - Input controller - 入力コントローラー + + Analyse OUT + + + + lmms::FlangerControls - - CONTROLLER - コントローラー + + Delay samples + - - - Auto Detect - 自動検出 + + LFO frequency + - - MIDI-devices to receive MIDI-events from - MIDI イベントを受信するための MIDI デバイス + + Amount + - - USER CONTROLLER - ユーザー コントローラー + + Stereo phase + - - MAPPING FUNCTION - マッピング機能 + + Feedback + - - OK - OK + + Noise + - - Cancel - キャンセル + + Invert + + + + lmms::FreeBoyInstrument - - LMMS - LMMS + + Sweep time + - - Cycle Detected. - 循環が検出されました。 + + Sweep direction + - - - ControllerRackView - - Controller Rack - コントローラー ラック + + Sweep rate shift amount + - - Add - 追加 + + + Wave pattern duty cycle + - - Confirm Delete - 削除の確認 + + Channel 1 volume + - - Confirm delete? There are existing connection(s) associated with this controller. There is no way to undo. - 削除してもよいですか? このコントローラーに関連付けられた接続があります。削除すると元に戻す方法はありません。 + + + + Volume sweep direction + - - - ControllerView - - Controls - コントロール + + + + Length of each step in sweep + - - Rename controller - コントローラー名の変更 + + Channel 2 volume + - - Enter the new name for this controller - コントローラーの新しい名前を入力してください + + Channel 3 volume + - - LFO - LFO + + Channel 4 volume + - - &Remove this controller - このコントローラーを取り外す (&R) + + Shift Register width + - - Re&name this controller - このコントローラー名を変更 (&n) + + Right output level + - - - CrossoverEQControlDialog - - Band 1/2 crossover: - バンド1/2クロスオーバー: + + Left output level + - - Band 2/3 crossover: - バンド 2/3 クロスオーバー: + + Channel 1 to SO2 (Left) + - - Band 3/4 crossover: - バンド 3/4 クロスオーバー: + + Channel 2 to SO2 (Left) + - - Band 1 gain - バンド 1 ゲイン + + Channel 3 to SO2 (Left) + - - Band 1 gain: - バンド 1 ゲイン: + + Channel 4 to SO2 (Left) + - - Band 2 gain - バンド 2 ゲイン + + Channel 1 to SO1 (Right) + - - Band 2 gain: - バンド 2 ゲイン: + + Channel 2 to SO1 (Right) + - - Band 3 gain - バンド 3 ゲイン + + Channel 3 to SO1 (Right) + - - Band 3 gain: - バンド 3 ゲイン: + + Channel 4 to SO1 (Right) + - - Band 4 gain - バンド 4 ゲイン + + Treble + - - Band 4 gain: - バンド 4 ゲイン + + Bass + + + + lmms::GigInstrument - - Band 1 mute - バンド1ミュート + + Bank + - - Mute band 1 - バンド1をミュート + + Patch + - - Band 2 mute - バンド2 ミュート + + Gain + + + + lmms::GranularPitchShifterControls - - Mute band 2 - バンド2をミュート + + Pitch + - - Band 3 mute - バンド3 ミュート + + Grain Size + - - Mute band 3 - バンド3をミュート + + Spray + - - Band 4 mute - バンド4 ミュート + + Jitter + - - Mute band 4 - バンド4をミュート + + Twitch + - - - DelayControls - - Delay samples - ディレイサンプル + + Pitch Stereo Spread + - - Feedback - フィードバック + + Spray Stereo + - - LFO frequency - LFO周波数 + + Shape + - - LFO amount - LFOの量 + + Fade Length + - - Output gain - 出力ゲイン + + Feedback + - - - DelayControlsDialog - - DELAY - ディレイ + + Minimum Allowed Latency + - - Delay time - ディレイ タイム + + Prefilter + - - FDBK - フィードバック + + Density + - - Feedback amount - フィードバック量 + + Glide + - - RATE - モジュレーションスピード + + Ring Buffer Length + - - LFO frequency - LFO周波数 + + 5 Seconds + - - AMNT - AMNT + + 10 Seconds (Size) + - - LFO amount - LFOの量 + + 40 Seconds (Size and Pitch) + - - Out gain - 出力ゲイン + + 40 Seconds (Size and Spray and Jitter) + - - Gain - ゲイン + + 120 Seconds (All of the above) + - Dialog + lmms::InstrumentFunctionArpeggio - - Add JACK Application + + Arpeggio - - Note: Features not implemented yet are greyed out + + Arpeggio type - - Application + + Arpeggio range - - Name: + + Note repeats - - Application: + + Cycle steps - - From template + + Skip rate - - Custom + + Miss rate - - Template: + + Arpeggio time - - Command: + + Arpeggio gate - - Setup + + Arpeggio direction - - Session Manager: + + Arpeggio mode - - None + + Up - - Audio inputs: + + Down - - MIDI inputs: + + Up and down - - Audio outputs: + + Down and up - - MIDI outputs: + + Random - - Take control of main application window + + Free - - Workarounds + + Sort - - Wait for external application start (Advanced, for Debug only) + + Sync + + + lmms::InstrumentFunctionNoteStacking - - Capture only the first X11 Window + + Chords - - Use previous client output buffer as input for the next client + + Chord type - - Simulate 16 JACK MIDI outputs, with MIDI channel as port index + + Chord range + + + lmms::InstrumentSoundShaping - - Error here + + Envelopes/LFOs - - Carla Control - Connect + + Filter type - - Remote setup + + Cutoff frequency - - UDP Port: + + Q/Resonance - - Remote host: + + Low-pass - - TCP Port: + + Hi-pass - - Reported host + + Band-pass csg - - Automatic + + Band-pass czpg - - Custom: + + Notch - - In some networks (like USB connections), the remote system cannot reach the local network. You can specify here which hostname or IP to make the remote Carla connect to. -If you are unsure, leave it as 'Automatic'. + + All-pass - - Set value - 値をセット + + Moog + - - TextLabel + + 2x Low-pass - - Scale Points + + RC Low-pass 12 dB/oct - - - DriverSettingsW - - Driver Settings + + RC Band-pass 12 dB/oct - - Device: + + RC High-pass 12 dB/oct - - Buffer size: + + RC Low-pass 24 dB/oct - - Sample rate: - サンプルレート: + + RC Band-pass 24 dB/oct + - - Triple buffer + + RC High-pass 24 dB/oct - - Show Driver Control Panel + + Vocal Formant + + + + + 2x Moog - - Restart the engine to load the new settings + + SV Low-pass - - - DualFilterControlDialog - - - - FREQ - 周波数 - - - - Cutoff frequency - カットオフ周波数 + + SV Band-pass + - - - RESO - レゾナンス + + SV High-pass + - - - Resonance - レゾナンス + + SV Notch + - - - GAIN - ゲイン + + Fast Formant + - - - Gain - ゲイン + + Tripole + + + + lmms::InstrumentTrack - - MIX - ミックス + + + unnamed_track + - - Mix - ミックス + + Base note + - - Filter 1 enabled - フィルタ1が有効です + + First note + - - Filter 2 enabled - フィルタ2が有効です + + Last note + - - Enable/disable filter 1 - フィルター 1 を有効化 / 無効化 + + Volume + - - Enable/disable filter 2 - フィルター 2 を有効化 / 無効化 + + Panning + - - - DualFilterControls - - Filter 1 enabled - フィルタ1は有効です + + Pitch + - - Filter 1 type - フィルタ1の種類 + + Pitch range + - - Cutoff frequency 1 - カットオフ周波数 1 + + Mixer channel + - - Q/Resonance 1 - Q/Resonance 1 + + Master pitch + - - Gain 1 - ゲイン 1 + + Enable/Disable MIDI CC + - - Mix - ミックス + + CC Controller %1 + - - Filter 2 enabled - フィルタ2は有効 + + + Default preset + + + + lmms::Keymap - - Filter 2 type - フィルタ2の種類 + + empty + + + + lmms::KickerInstrument - - Cutoff frequency 2 - カットオフ周波数 2 + + Start frequency + - - Q/Resonance 2 - Q/Resonance 2 + + End frequency + - - Gain 2 - ゲイン 2 + + Length + - - - Low-pass - ローパス + + Start distortion + - - - Hi-pass - ハイパス + + End distortion + - - - Band-pass csg - バンドパス csg + + Gain + - - - Band-pass czpg - バンドパス czpg + + Envelope slope + - - - Notch - Notch + + Noise + - - - All-pass - オールパス + + Click + - - - Moog - Moog + + Frequency slope + - - - 2x Low-pass - 2x ローパス + + Start from note + - - - RC Low-pass 12 dB/oct - RC ローパス 12dB/オクターブ + + End to note + + + + lmms::LOMMControls - - - RC Band-pass 12 dB/oct - RC バンドパス 12dB/オクターブ + + Depth + - - - RC High-pass 12 dB/oct - RC ハイパス 12dB/オクターブ + + Time + - - - RC Low-pass 24 dB/oct - RC ローパス 24dB/オクターブ + + Input Volume + - - - RC Band-pass 24 dB/oct - RC バンドパス 24dB/オクターブ + + Output Volume + - - - RC High-pass 24 dB/oct - RC ハイパス 24dB/オクターブ + + Upward Depth + - - - Vocal Formant - ボーカル フォルマント + + Downward Depth + - - - 2x Moog - 2x Moog + + High/Mid Split + - - - SV Low-pass - SV ローパス + + Mid/Low Split + - - - SV Band-pass - SV バンドパス + + Enable High/Mid Split + - - - SV High-pass - SV ハイパス + + Enable Mid/Low Split + - - - SV Notch - SV Notch + + Enable High Band + - - - Fast Formant - Fast Formant + + Enable Mid Band + - - - Tripole - Tripole + + Enable Low Band + - - - Editor - - Transport controls - トランスポートコントロール + + High Input Volume + - - Play (Space) - 再生 (Space) + + Mid Input Volume + - - Stop (Space) - 停止 (Space) + + Low Input Volume + - - Record - 録音 + + High Output Volume + - - Record while playing - 再生&録音 + + Mid Output Volume + - - Toggle Step Recording + + Low Output Volume - - - Effect - - Effect enabled - エフェクト有効 + + Above Threshold High + - - Wet/Dry mix - ウェット/ドライミックス + + Above Threshold Mid + - - Gate - ゲート + + Above Threshold Low + - - Decay - ディケイ + + Above Ratio High + - - - EffectChain - - Effects enabled - エフェクト有効 + + Above Ratio Mid + - - - EffectRackView - - EFFECTS CHAIN - エフェクトチェイン + + Above Ratio Low + - - Add effect - エフェクトを追加 + + Below Threshold High + - - - EffectSelectDialog - - Add effect - エフェクトを追加 + + Below Threshold Mid + - - - Name - 名前 + + Below Threshold Low + - - Type - 種類 + + Below Ratio High + - - Description - 説明 + + Below Ratio Mid + - - Author - 製作者 + + Below Ratio Low + - - - EffectView - - On/Off - オン/オフ + + Attack High + - - W/D - W/D + + Attack Mid + - - Wet Level: - ウェット + + Attack Low + - - DECAY - ディケイ + + Release High + - - Time: - 時間: + + Release Mid + - - GATE - ゲート + + Release Low + - - Gate: - ゲート: + + RMS Time + - - Controls - コントロール + + Knee + - - Move &up - 一つ上へ(&u) + + Range + - - Move &down - 一つ下へ(&d) + + Balance + - - &Remove this plugin - このプラグインを削除(&R) + + Scale output volume with Depth + - - - EnvelopeAndLfoParameters - - Env pre-delay - Env プリディレイ + + Stereo Link + - - Env attack - Env アタック + + Auto Time + - - Env hold - Env ホールド + + Mix + - - Env decay - Env ディケイ + + Feedback + - - Env sustain - Env サステイン + + Mid/Side + - - Env release - Env リリース + + Lookahead + - - Env mod amount - エンベロープモッド量 + + Lookahead Length + - - LFO pre-delay - LFOプレディレイ + + Suppress upward compression for side band + + + + lmms::LadspaControl - - LFO attack - LFOアタック + + Link channels + + + + lmms::LadspaEffect - - LFO frequency - LFO周波数 + + Unknown LADSPA plugin %1 requested. + + + + lmms::Lb302Synth - - LFO mod amount - LFOモッド量 + + VCF Cutoff Frequency + - - LFO wave shape - LFO 波形 + + VCF Resonance + - - LFO frequency x 100 - LFO周波数 100倍 + + VCF Envelope Mod + - - Modulate env amount - モデュレート エンベローブ 量 + + VCF Envelope Decay + - - - EnvelopeAndLfoView - - - DEL - ATT + + Distortion + - - - Pre-delay: - プレディレイ: + + Waveform + - - - ATT - ATT + + Slide Decay + - - - Attack: - アタック: + + Slide + - - HOLD - HOLD + + Accent + - - Hold: - Hold: + + Dead + - - DEC - DEC + + 24dB/oct Filter + + + + lmms::LfoController - - Decay: - ディケイ: + + LFO Controller + - - SUST - SUST + + Base value + - - Sustain: - サスティン: + + Oscillator speed + - - REL - REL + + Oscillator amount + - - Release: - リリース: + + Oscillator phase + - - - AMT - Hold: + + Oscillator waveform + - - - Modulation amount: - Modulation amount: + + Frequency Multiplier + - - SPD - SPD + + Sample not found + + + + lmms::MalletsInstrument - - Frequency: - 周波数: + + Hardness + - - FREQ x 100 - FREQ x 100 + + Position + - - Multiply LFO frequency by 100 + + Vibrato gain - - MODULATE ENV AMOUNT - モデュレートエンベロープ 量 + + Vibrato frequency + - - Control envelope amount by this LFO - このLFOによるエンベローブ量を調節 + + Stick mix + - - ms/LFO: - ms/LFO: + + Modulator + - - Hint - ヒント + + Crossfade + - - Drag and drop a sample into this window. - サンプルをこのウィンドウにドラッグ & ドロップしてください。 + + LFO speed + - - - EqControls - - Input gain - 入力ゲイン + + LFO depth + - - Output gain - 出力ゲイン + + ADSR + - - Low-shelf gain - ローシェルフ ゲイン + + Pressure + - - Peak 1 gain - ピーク 1 ゲイン + + Motion + - - Peak 2 gain - ピーク 2 ゲイン + + Speed + - - Peak 3 gain - ピーク 3 ゲイン + + Bowed + - - Peak 4 gain - ピーク 4 ゲイン + + Instrument + - - High-shelf gain - ハイシェルフ ゲイン + + Spread + - - HP res - HP res + + Randomness + - - Low-shelf res - ローシェルフ レゾナンス + + Marimba + - - Peak 1 BW - ピーク 1 BW + + Vibraphone + - - Peak 2 BW - ピーク 2 BW + + Agogo + - - Peak 3 BW - ピーク 3 BW + + Wood 1 + - - Peak 4 BW - ピーク 4 BW + + Reso + - - High-shelf res - ハイシェルフ レゾナンス + + Wood 2 + - - LP res - LP レゾナンス + + Beats + - - HP freq - HP 周波数 + + Two fixed + - - Low-shelf freq - ローシェルフ 周波数 + + Clump + - - Peak 1 freq - ピーク 1 周波数 + + Tubular bells + - - Peak 2 freq - ピーク 2 周波数 + + Uniform bar + - - Peak 3 freq - ピーク 3 周波数 + + Tuned bar + - - Peak 4 freq - ピーク 4 周波数 + + Glass + - - High-shelf freq - ハイシェルフ 周波数 + + Tibetan bowl + + + + lmms::MeterModel - - LP freq - LP 周波数 + + Numerator + - - HP active - HP オン + + Denominator + + + + lmms::Microtuner - - Low-shelf active - ローシェルフ ON + + Microtuner + - - Peak 1 active - ピーク 1 ON + + Microtuner on / off + - - Peak 2 active - ピーク 2 ON + + Selected scale + - - Peak 3 active - ピーク 3 ON + + Selected keyboard mapping + + + + lmms::MidiController - - Peak 4 active - ピーク 4 ON + + MIDI Controller + - - High-shelf active - ハイシェルフ ON + + unnamed_midi_controller + + + + lmms::MidiImport - - LP active - LP ON + + + Setup incomplete + - - LP 12 - LP 12 + + You have not set up a default soundfont in the settings dialog (Edit->Settings). Therefore no sound will be played back after importing this MIDI file. You should download a General MIDI soundfont, specify it in settings dialog and try again. + - - LP 24 - LP 24 + + You did not compile LMMS with support for SoundFont2 player, which is used to add default sound to imported MIDI files. Therefore no sound will be played back after importing this MIDI file. + - - LP 48 - LP 48 + + MIDI Time Signature Numerator + - - HP 12 - HP 12 + + MIDI Time Signature Denominator + - - HP 24 - HP 24 + + Numerator + - - HP 48 - HP 48 + + Denominator + - - Low-pass type - ローパス 種類 + + + Tempo + - - High-pass type - ハイパス 種類 + + Track + + + + lmms::MidiJack - - Analyse IN - 分析 IN + + JACK server down + When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (title) + - - Analyse OUT - 分析 OUT + + The JACK server seems to be shuted down. + When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (dialog message) + - EqControlsDialog + lmms::MidiPort - - HP - HP + + Input channel + - - Low-shelf - ローシェルフ + + Output channel + - - Peak 1 - ピーク 1 + + Input controller + - - Peak 2 - ピーク 2 + + Output controller + - - Peak 3 - ピーク 3 + + Fixed input velocity + - - Peak 4 - ピーク 4 + + Fixed output velocity + - - High-shelf - ハイシェルフ + + Fixed output note + - - LP - LP + + Output MIDI program + - - Input gain - 入力ゲイン + + Base velocity + - - - - Gain - ゲイン + + Receive MIDI-events + - - Output gain - 出力ゲイン + + Send MIDI-events + + + + lmms::Mixer - - Bandwidth: - 帯域幅 + + Master + - - Octave - オクターブ + + + + Channel %1 + - - Resonance : - レゾナンス : + + Volume + - - Frequency: - 周波数: + + Mute + - - LP group - ローパスグループ + + Solo + + + + lmms::MixerRoute - - HP group - ハイパスグループ + + + Amount to send from channel %1 to channel %2 + - EqHandle + lmms::MonstroInstrument - - Reso: - Reso + + Osc 1 volume + - - BW: - BW : + + Osc 1 panning + - - - Freq: - Freq : + + Osc 1 coarse detune + - - - ExportProjectDialog - - Export project - プロジェクトをエクスポート + + Osc 1 fine detune left + - - Export as loop (remove extra bar) - ループとしてエクスポート (余分なところは除去) + + Osc 1 fine detune right + - - Export between loop markers - ループのマーカー区間をエクスポートする + + Osc 1 stereo phase offset + - - Render Looped Section: + + Osc 1 pulse width - - time(s) + + Osc 1 sync send on rise - - File format settings - ファイルフォーマット設定 + + Osc 1 sync send on fall + - - File format: - ファイルの形式: + + Osc 2 volume + - - Sampling rate: - サンプルレート : + + Osc 2 panning + - - 44100 Hz - 44100 Hz + + Osc 2 coarse detune + - - 48000 Hz - 48000 Hz + + Osc 2 fine detune left + - - 88200 Hz - 88200 Hz + + Osc 2 fine detune right + - - 96000 Hz - 96000 Hz + + Osc 2 stereo phase offset + + + + + Osc 2 waveform + - - 192000 Hz - 192000 Hz + + Osc 2 sync hard + - - Bit depth: - ビット深度 : + + Osc 2 sync reverse + - - 16 Bit integer - 16 ビット + + Osc 3 volume + - - 24 Bit integer - 24 ビット + + Osc 3 panning + - - 32 Bit float - 32 ビット + + Osc 3 coarse detune + - - Stereo mode: - ステレオモード: + + Osc 3 Stereo phase offset + - - Mono - モノラル + + Osc 3 sub-oscillator mix + - - Stereo - ステレオ + + Osc 3 waveform 1 + - - Joint stereo - ジョイントステレオ + + Osc 3 waveform 2 + - - Compression level: - 圧縮レベル: + + Osc 3 sync hard + - - Bitrate: - ビットレート: + + Osc 3 Sync reverse + - - 64 KBit/s - 64 KBit/s + + LFO 1 waveform + - - 128 KBit/s - 128 KBit/s + + LFO 1 attack + - - 160 KBit/s - 160 KBit/s + + LFO 1 rate + - - 192 KBit/s - 192 KBit/s + + LFO 1 phase + - - 256 KBit/s - 256 KBit/s + + LFO 2 waveform + - - 320 KBit/s - 320 KBit/s + + LFO 2 attack + - - Use variable bitrate - 可変ビットレートを使用する + + LFO 2 rate + - - Quality settings - 品質設定 + + LFO 2 phase + - - Interpolation: - 補間 : + + Env 1 pre-delay + - - Zero order hold - ゼロ次ホールド + + Env 1 attack + - - Sinc worst (fastest) - 低品質 (最速) + + Env 1 hold + - - Sinc medium (recommended) - 中品質 (おすすめ) + + Env 1 decay + - - Sinc best (slowest) - 最高品質 (最低速) + + Env 1 sustain + - - Oversampling: - オーバーサンプリング : + + Env 1 release + - - 1x (None) - 1x (そのまま) + + Env 1 slope + - - 2x - 2x + + Env 2 pre-delay + - - 4x - 4x + + Env 2 attack + - - 8x - 8x + + Env 2 hold + - - Start - 開始 + + Env 2 decay + - - Cancel - キャンセル + + Env 2 sustain + - - Could not open file - ファイルを開けません + + Env 2 release + - - Could not open file %1 for writing. -Please make sure you have write permission to the file and the directory containing the file and try again! - ファイル %1 を開けません。 -書き込み権限があることを確認してからもう一度試してください。 + + Env 2 slope + - - Export project to %1 - プロジェクトを %1 にエクスポート + + Osc 2+3 modulation + - - ( Fastest - biggest ) - ( 最速 - 最大 ) + + Selected view + - - ( Slowest - smallest ) - ( 最低速 - 最小 ) + + Osc 1 - Vol env 1 + - - Error - エラー + + Osc 1 - Vol env 2 + - - Error while determining file-encoder device. Please try to choose a different output format. - ファイルエンコーダーのデバイスを選択する際にエラーが発生しました。違うフォーマットを選択してください。 + + Osc 1 - Vol LFO 1 + - - Rendering: %1% - レンダリング: %1% + + Osc 1 - Vol LFO 2 + - - - Fader - - Set value - 値をセット + + Osc 2 - Vol env 1 + - - Please enter a new value between %1 and %2: - %1 と %2 の間の新しい値を入力してください: + + Osc 2 - Vol env 2 + - - - FileBrowser - - User content + + Osc 2 - Vol LFO 1 - - Factory content + + Osc 2 - Vol LFO 2 - - Browser - ブラウザ + + Osc 3 - Vol env 1 + - - Search - 検索 + + Osc 3 - Vol env 2 + - - Refresh list - リストの更新 + + Osc 3 - Vol LFO 1 + - - - FileBrowserTreeWidget - - Send to active instrument-track - 現在開いているインストゥルメントトラックに上書きする + + Osc 3 - Vol LFO 2 + - - Open containing folder + + Osc 1 - Phs env 1 - - Song Editor - ソング エディター + + Osc 1 - Phs env 2 + - - BB Editor + + Osc 1 - Phs LFO 1 - - Send to new AudioFileProcessor instance + + Osc 1 - Phs LFO 2 - - Send to new instrument track + + Osc 2 - Phs env 1 - - (%2Enter) + + Osc 2 - Phs env 2 - - Send to new sample track (Shift + Enter) + + Osc 2 - Phs LFO 1 - - Loading sample - サンプルを読み込み中 + + Osc 2 - Phs LFO 2 + - - Please wait, loading sample for preview... - プレビュー用のサンプルを読み込んでいます... + + Osc 3 - Phs env 1 + - - Error - エラー + + Osc 3 - Phs env 2 + - - %1 does not appear to be a valid %2 file + + Osc 3 - Phs LFO 1 - - --- Factory files --- - --- ファクトリーファイル --- + + Osc 3 - Phs LFO 2 + - - - FlangerControls - - Delay samples - ディレイサンプル + + Osc 1 - Pit env 1 + - - LFO frequency - LFO周波数 + + Osc 1 - Pit env 2 + - - Seconds - + + Osc 1 - Pit LFO 1 + - - Stereo phase + + Osc 1 - Pit LFO 2 - - Regen + + Osc 2 - Pit env 1 - - Noise - ノイズ + + Osc 2 - Pit env 2 + - - Invert - 反転 + + Osc 2 - Pit LFO 1 + - - - FlangerControlsDialog - - DELAY - ディレイ + + Osc 2 - Pit LFO 2 + - - Delay time: - ディレイ時間 : + + Osc 3 - Pit env 1 + - - RATE - モジュレーションスピード + + Osc 3 - Pit env 2 + - - Period: - ピリオド: + + Osc 3 - Pit LFO 1 + - - AMNT - AMNT + + Osc 3 - Pit LFO 2 + - - Amount: - アマウント: + + Osc 1 - PW env 1 + - - PHASE + + Osc 1 - PW env 2 - - Phase: + + Osc 1 - PW LFO 1 - - FDBK - フィードバック + + Osc 1 - PW LFO 2 + - - Feedback amount: - フィードバック 量 : + + Osc 3 - Sub env 1 + - - NOISE - ノイズ + + Osc 3 - Sub env 2 + - - White noise amount: - ホワイトノイズ 量 : + + Osc 3 - Sub LFO 1 + - - Invert - 反転 + + Osc 3 - Sub LFO 2 + - - - FreeBoyInstrument - - Sweep time - スイープする時間 + + + Sine wave + - - Sweep direction - スイープする方向 + + Bandlimited Triangle wave + - - Sweep rate shift amount + + Bandlimited Saw wave - - - Wave pattern duty cycle + + Bandlimited Ramp wave - - Channel 1 volume - チャンネル1の音量 + + Bandlimited Square wave + - - - - Volume sweep direction - 音量のスイープ方向 + + Bandlimited Moog saw wave + - - - - Length of each step in sweep + + + Soft square wave - - Channel 2 volume - チャンネル2の音量 + + Absolute sine wave + - - Channel 3 volume - チャンネル3の音量 + + + Exponential wave + - - Channel 4 volume - チャンネル4の音量 + + White noise + - - Shift Register width + + Digital Triangle wave - - Right output level + + Digital Saw wave - - Left output level + + Digital Ramp wave - - Channel 1 to SO2 (Left) - チャンネル 1 を SO2 (左)に + + Digital Square wave + - - Channel 2 to SO2 (Left) - チャンネル 2 を SO2 (左)に + + Digital Moog saw wave + - - Channel 3 to SO2 (Left) - チャンネル 3 を SO2 (左)に + + Triangle wave + - - Channel 4 to SO2 (Left) - チャンネル 4 を SO2 (左)に + + Saw wave + - - Channel 1 to SO1 (Right) - チャンネル 1 を SO1 (右)に + + Ramp wave + - - Channel 2 to SO1 (Right) - チャンネル 2 を SO1 (右)に + + Square wave + - - Channel 3 to SO1 (Right) - チャンネル 3 を SO1 (右)に + + Moog saw wave + - - Channel 4 to SO1 (Right) - チャンネル 4 を SO1 (右)に + + Abs. sine wave + - - Treble - 音域 + + Random + - - Bass - ベース + + Random smooth + - FreeBoyInstrumentView + lmms::NesInstrument - - Sweep time: + + Channel 1 enable - - Sweep time - スイープする時間 - - - - Sweep rate shift amount: + + Channel 1 coarse detune - - Sweep rate shift amount + + Channel 1 volume - - - Wave pattern duty cycle: + + Channel 1 envelope enable - - - Wave pattern duty cycle + + Channel 1 envelope loop - - Square channel 1 volume: + + Channel 1 envelope length - - Square channel 1 volume + + Channel 1 duty cycle - - - - Length of each step in sweep: + + Channel 1 sweep enable - - - - Length of each step in sweep + + Channel 1 sweep amount - - Square channel 2 volume: + + Channel 1 sweep rate - - Square channel 2 volume + + Channel 2 enable - - Wave pattern channel volume: + + Channel 2 coarse detune - - Wave pattern channel volume + + Channel 2 volume - - Noise channel volume: + + Channel 2 envelope enable - - Noise channel volume + + Channel 2 envelope loop - - SO1 volume (Right): + + Channel 2 envelope length - - SO1 volume (Right) + + Channel 2 duty cycle - - SO2 volume (Left): + + Channel 2 sweep enable - - SO2 volume (Left) + + Channel 2 sweep amount - - Treble: - 音域: + + Channel 2 sweep rate + - - Treble - 音域 + + Channel 3 enable + - - Bass: - ベース: + + Channel 3 coarse detune + - - Bass - ベース + + Channel 3 volume + - - Sweep direction - スイープする方向 + + Channel 4 enable + - - - - - - Volume sweep direction - 音量のスイープ方向 + + Channel 4 volume + - - Shift register width + + Channel 4 envelope enable - - Channel 1 to SO1 (Right) - チャンネル 1 を SO1 (右)に + + Channel 4 envelope loop + - - Channel 2 to SO1 (Right) - チャンネル 2 を SO1 (右)に + + Channel 4 envelope length + - - Channel 3 to SO1 (Right) - チャンネル 3 を SO1 (右)に + + Channel 4 noise mode + - - Channel 4 to SO1 (Right) - チャンネル 4 を SO1 (右)に + + Channel 4 frequency mode + - - Channel 1 to SO2 (Left) - チャンネル 1 を SO2 (左)に + + Channel 4 noise frequency + - - Channel 2 to SO2 (Left) - チャンネル 2 を SO2 (左)に + + Channel 4 noise frequency sweep + - - Channel 3 to SO2 (Left) - チャンネル 3 を SO2 (左)に + + Channel 4 quantize + - - Channel 4 to SO2 (Left) - チャンネル 4 を SO2 (左)に + + Master volume + - - Wave pattern graph + + Vibrato - MixerLine + lmms::OpulenzInstrument - - Channel send amount + + Patch - - Move &left - 一つ左へ (&l) - - - - Move &right - 一つ右へ (&r) + + Op 1 attack + - - Rename &channel - チャンネル名を変更 (&c) + + Op 1 decay + - - R&emove channel - チャンネルを削除 (&e) + + Op 1 sustain + - - Remove &unused channels - 使用していないチャンネルを削除 (&u) + + Op 1 release + - - Set channel color + + Op 1 level - - Remove channel color + + Op 1 level scaling - - Pick random channel color + + Op 1 frequency multiplier - - - MixerLineLcdSpinBox - - Assign to: + + Op 1 feedback - - New mixer Channel + + Op 1 key scaling rate - - - Mixer - - Master + + Op 1 percussive envelope - - - - Channel %1 - FX %1 + + Op 1 tremolo + - - Volume - 音量 + + Op 1 vibrato + - - Mute - ミュート + + Op 1 waveform + - - Solo - ソロ + + Op 2 attack + - - - MixerView - - Mixer - エフェクトミキサー + + Op 2 decay + - - Fader %1 + + Op 2 sustain - - Mute - ミュート + + Op 2 release + - - Mute this mixer channel - このFXチャンネルをミュート + + Op 2 level + - - Solo - ソロ + + Op 2 level scaling + - - Solo mixer channel + + Op 2 frequency multiplier - - - MixerRoute - - - Amount to send from channel %1 to channel %2 + + Op 2 key scaling rate - - - GigInstrument - - Bank - バンク + + Op 2 percussive envelope + - - Patch - パッチ + + Op 2 tremolo + - - Gain - ゲイン + + Op 2 vibrato + - - - GigInstrumentView - - - Open GIG file - GIG ファイルを開く + + Op 2 waveform + - - Choose patch - パッチを選択してください + + FM + - - Gain: - ゲイン: + + Vibrato depth + - - GIG Files (*.gig) - GIG ファイル (*.gig) + + Tremolo depth + - GuiApplication - - - Working directory - 作業ディレクトリ - + lmms::OrganicInstrument - - The LMMS working directory %1 does not exist. Create it now? You can change the directory later via Edit -> Settings. - LMMSの作業ディレクトリ %1 は存在しません。作成しますか?編集->セッティング でこのディレクトリを変更できます。 - - - - Preparing UI - UIの準備中 + + Distortion + - - Preparing song editor - ソング エディター の準備中 + + Volume + + + + lmms::OscillatorObject - - Preparing mixer - ミキサーの準備中 + + Osc %1 waveform + - - Preparing controller rack - コントローラー ラック の準備中 + + Osc %1 harmonic + - - Preparing project notes - プロジェクトノートの準備中 + + + Osc %1 volume + - - Preparing beat/bassline editor - ビート/ベースライン エディター の準備中 + + + Osc %1 panning + - - Preparing piano roll - ピアノロールの準備中 + + Osc %1 stereo detuning + - - Preparing automation editor - オートメーション エディター の準備中 + + Osc %1 coarse detuning + - - - InstrumentFunctionArpeggio - - Arpeggio + + Osc %1 fine detuning left - - Arpeggio type + + Osc %1 fine detuning right - - Arpeggio range + + Osc %1 phase-offset - - Note repeats + + Osc %1 stereo phase-detuning - - Cycle steps + + Osc %1 wave shape - - Skip rate - Skip rate + + Modulation type %1 + + + + lmms::PatternTrack - - Miss rate - Miss rate + + Pattern %1 + - - Arpeggio time + + Clone of %1 + + + lmms::PeakController - - Arpeggio gate + + Peak Controller - - Arpeggio direction + + Peak Controller Bug - - Arpeggio mode + + Due to a bug in older version of LMMS, the peak controllers may not be connect properly. Please ensure that peak controllers are connected properly and re-save this file. Sorry for any inconvenience caused. + + + lmms::PeakControllerEffectControls - - Up + + Base value - - Down + + Modulation amount - - Up and down + + Attack - - Down and up + + Release - - Random - ランダム + + Treshold + - - Free + + Mute output - - Sort - ソート + + Absolute value + - - Sync - 同期 + + Amount multiplicator + - InstrumentFunctionArpeggioView + lmms::Plugin - - ARPEGGIO - アルペジオ - - - - RANGE - RANGE + + Plugin not found + - - Arpeggio range: + + The plugin "%1" wasn't found or could not be loaded! +Reason: "%2" - - octave(s) - オクターブ + + Error while loading plugin + - - REP + + Failed to load plugin "%1"! + + + lmms::ReverbSCControls - - Note repeats: + + Input gain - - time(s) + + Size - - CYCLE + + Color - - Cycle notes: + + Output gain + + + lmms::SaControls - - note(s) - ノート + + Pause + - - SKIP - スキップ + + Reference freeze + - - Skip rate: + + Waterfall - - - - % - % + + Averaging + - - MISS + + Stereo - - Miss rate: + + Peak hold - - TIME + + Logarithmic frequency - - Arpeggio time: + + Logarithmic amplitude - - ms - ms + + Frequency range + - - GATE - ゲート + + Amplitude range + - - Arpeggio gate: + + FFT block size - - Chord: - コード: + + FFT window type + - - Direction: - 方向: + + Peak envelope resolution + - - Mode: - モード: + + Spectrum display resolution + - - - InstrumentFunctionNoteStacking - - octave - オクターブ + + Peak decay multiplier + - - - Major - Major + + Averaging weight + - - Majb5 - Majb5 + + Waterfall history size + - - minor - minor + + Waterfall gamma correction + - - minb5 - minb5 + + FFT window overlap + - - sus2 - sus2 + + FFT zero padding + - - sus4 - sus4 + + + Full (auto) + - - aug - aug + + + + Audible + - - augsus4 - augsus4 + + Bass + - - tri - tri + + Mids + - - 6 - 6 + + High + - - 6sus4 - 6sus4 + + Extended + - - 6add9 - 6add9 + + Loud + - - m6 - m6 + + Silent + - - m6add9 - m6add9 + + (High time res.) + - - 7 - 7 + + (High freq. res.) + - - 7sus4 - 7sus4 + + Rectangular (Off) + - - 7#5 - 7#5 + + + Blackman-Harris (Default) + - - 7b5 - 7b5 + + Hamming + - - 7#9 - 7#9 + + Hanning + + + + lmms::SampleClip - - 7b9 - 7b9 + + Sample not found + + + + lmms::SampleTrack - - 7#5#9 - 7#5#9 + + Volume + - - 7#5b9 - 7#5b9 + + Panning + - - 7b5b9 - 7b5b9 + + Mixer channel + - - 7add11 - 7add11 + + + Sample track + + + + lmms::Scale - - 7add13 - 7add13 + + empty + + + + lmms::Sf2Instrument - - 7#11 - 7#11 + + Bank + - - Maj7 - Maj7 + + Patch + - - Maj7b5 - Maj7b5 + + Gain + - - Maj7#5 - Maj7#5 + + Reverb + - - Maj7#11 - Maj7#11 + + Reverb room size + - - Maj7add13 - Maj7add13 + + Reverb damping + - - m7 - m7 + + Reverb width + - - m7b5 - m7b5 + + Reverb level + - - m7b9 - m7b9 + + Chorus + - - m7add11 - m7add11 + + Chorus voices + - - - m7add13 - m7add13 + + + Chorus level + - - m-Maj7 - m-Maj7 + + Chorus speed + - - m-Maj7add11 - m-Maj7add11 + + Chorus depth + - - m-Maj7add13 - m-Maj7add13 + + A soundfont %1 could not be loaded. + + + + lmms::SfxrInstrument - - 9 - 9 + + Wave + + + + lmms::SidInstrument - - 9sus4 - 9sus4 + + Cutoff frequency + - - add9 - add9 + + Resonance + - - 9#5 - 9#5 + + Filter type + - - 9b5 - 9b5 + + Voice 3 off + - - 9#11 - 9#11 + + Volume + - - 9b13 - 9b13 + + Chip model + + + + lmms::SlicerT - - Maj9 - Maj9 + + Note threshold + - - Maj9sus4 - Maj9sus4 + + FadeOut + - - Maj9#5 - Maj9#5 + + Original bpm + - - Maj9#11 - Maj9#11 + + Slice snap + - - m9 - m9 + + BPM sync + - - madd9 - madd9 + + + slice_%1 + - - m9b5 - m9b5 + + Sample not found: %1 + + + + lmms::Song - - m9-Maj7 - m9-Maj7 + + Tempo + - - 11 - 11 + + Master volume + - - 11b9 - 11b9 + + Master pitch + - - Maj11 - Maj11 + + Aborting project load + - - m11 - m11 + + Project file contains local paths to plugins, which could be used to run malicious code. + - - m-Maj11 - m-Maj11 + + Can't load project: Project file contains local paths to plugins. + - - 13 - 13 + + LMMS Error report + - - 13#9 - 13#9 + + (repeated %1 times) + - - 13b9 - 13b9 + + The following errors occurred while loading: + + + + lmms::StereoEnhancerControls - - 13b5b9 - 13b5b9 + + Width + + + + lmms::StereoMatrixControls - - Maj13 - Maj13 + + Left to Left + - - m13 - m13 + + Left to Right + - - m-Maj13 - m-Maj13 + + Right to Left + - - Harmonic minor - ハーモニックマイナー + + Right to Right + + + + lmms::Track - - Melodic minor - メロディックマイナー + + Mute + - - Whole tone - ホールトーン + + Solo + + + + lmms::TrackContainer - - Diminished - ディミニッシュ + + Couldn't import file + - - Major pentatonic - メジャーペンタトニック + + Couldn't find a filter for importing file %1. +You should convert this file into a format supported by LMMS using another software. + - - Minor pentatonic - マイナーペンタトニック + + Couldn't open file + - - Jap in sen - Jap in sen + + Couldn't open file %1 for reading. +Please make sure you have read-permission to the file and the directory containing the file and try again! + - - Major bebop - メジャービバップ + + Loading project... + - - Dominant bebop - ドミナントビバップ + + + Cancel + - - Blues - ブルース + + + Please wait... + - - Arabic - アラビック + + Loading cancelled + - - Enigmatic - エニグマティック + + Project loading was cancelled. + - - Neopolitan - ネオポリタン + + Loading Track %1 (%2/Total %3) + - - Neopolitan minor - ネオポリタンマイナー + + Importing MIDI-file... + + + + lmms::TripleOscillator - - Hungarian minor - ハンガリアンマイナー + + Sample not found + + + + lmms::VecControls - - Dorian - ドリア旋法 + + Display persistence amount + - - Phrygian - フリギア旋法 + + Logarithmic scale + - - Lydian - 教会旋法 + + High quality + + + + lmms::VestigeInstrument - - Mixolydian - ミクソリディア旋法 + + Loading plugin + - - Aeolian - エオリア旋法 + + Please wait while loading the VST plugin... + + + + lmms::Vibed - - Locrian - ロクリアン旋法 + + String %1 volume + - - Minor - Minor + + String %1 stiffness + - - Chromatic - クロマティック + + Pick %1 position + - - Half-Whole Diminished + + Pickup %1 position - - 5 - 5 + + String %1 panning + - - Phrygian dominant + + String %1 detune - - Persian + + String %1 fuzziness - - Chords + + String %1 length - - Chord type + + Impulse %1 - - Chord range + + String %1 - InstrumentFunctionNoteStackingView + lmms::VoiceObject - - STACKING + + Voice %1 pulse width - - Chord: - コード: + + Voice %1 attack + - - RANGE - RANGE + + Voice %1 decay + - - Chord range: + + Voice %1 sustain - - octave(s) - オクターブ + + Voice %1 release + - - - InstrumentMidiIOView - - ENABLE MIDI INPUT - MIDI入力を有効にする + + Voice %1 coarse detuning + - - ENABLE MIDI OUTPUT - MIDI出力を有効にする + + Voice %1 wave shape + - - - CHAN - This string must be be short, its width must be less than * width of LCD spin-box of two digits + + Voice %1 sync - - - VELOC - This string must be be short, its width must be less than * width of LCD spin-box of three digits + + Voice %1 ring modulate - - PROG - This string must be be short, its width must be less than the * width of LCD spin-box of three digits + + Voice %1 filtered - - NOTE - This string must be be short, its width must be less than * width of LCD spin-box of three digits + + Voice %1 test + + + lmms::VstPlugin - - MIDI devices to receive MIDI events from + + + The VST plugin %1 could not be loaded. - - MIDI devices to send MIDI events to + + Open Preset - - CUSTOM BASE VELOCITY + + + VST Plugin Preset (*.fxp *.fxb) - - Specify the velocity normalization base for MIDI-based instruments at 100% note velocity. + + : default - - BASE VELOCITY + + Save Preset - - - InstrumentTuningView - - MASTER PITCH + + .fxp - - Enables the use of master pitch - マスターピッチの使用を有効化 + + .FXP + - - - InstrumentSoundShaping - - VOLUME - 音量 + + .FXB + - - Volume - 音量 + + .fxb + - - CUTOFF - Cutoff + + Loading plugin + - - - Cutoff frequency - カットオフ周波数 + + Please wait while loading VST plugin... + + + + lmms::WatsynInstrument - - RESO - レゾナンス + + Volume A1 + - - Resonance - レゾナンス + + Volume A2 + - - Envelopes/LFOs - エンベロープ/LFO + + Volume B1 + - - Filter type - フィルターの種類 + + Volume B2 + - - Q/Resonance - Q/Resonance + + Panning A1 + - - Low-pass - ローパス + + Panning A2 + - - Hi-pass - ハイパス + + Panning B1 + - - Band-pass csg - バンドパス csg + + Panning B2 + - - Band-pass czpg - バンドパス czpg + + Freq. multiplier A1 + - - Notch - Notch + + Freq. multiplier A2 + - - All-pass - オールパス + + Freq. multiplier B1 + - - Moog - Moog + + Freq. multiplier B2 + - - 2x Low-pass - 2x ローパス + + Left detune A1 + - - RC Low-pass 12 dB/oct - RC ローパス 12dB/オクターブ + + Left detune A2 + - - RC Band-pass 12 dB/oct - RC バンドパス 12dB/オクターブ + + Left detune B1 + - - RC High-pass 12 dB/oct - RC ハイパス 12dB/オクターブ + + Left detune B2 + - - RC Low-pass 24 dB/oct - RC ローパス 24dB/オクターブ + + Right detune A1 + - - RC Band-pass 24 dB/oct - RC バンドパス 24dB/オクターブ + + Right detune A2 + - - RC High-pass 24 dB/oct - RC ハイパス 24dB/オクターブ + + Right detune B1 + - - Vocal Formant - ボーカル フォルマント + + Right detune B2 + - - 2x Moog - 2x Moog + + A-B Mix + - - SV Low-pass - SV ローパス + + A-B Mix envelope amount + - - SV Band-pass - SV バンドパス + + A-B Mix envelope attack + - - SV High-pass - SV ハイパス + + A-B Mix envelope hold + - - SV Notch - SV Notch + + A-B Mix envelope decay + - - Fast Formant - Fast Formant + + A1-B2 Crosstalk + + + + + A2-A1 modulation + + + + + B2-B1 modulation + - - Tripole - Tripole + + Selected graph + - InstrumentSoundShapingView + lmms::WaveShaperControls - - TARGET - 対象 + + Input gain + - - FILTER - フィルタ + + Output gain + + + + lmms::Xpressive - - FREQ - 周波数 + + Selected graph + - - Cutoff frequency: - カットオフ周波数: + + A1 + - - Hz - Hz + + A2 + - - Q/RESO - レゾナンス + + A3 + - - Q/Resonance: - レゾナンス + + W1 smoothing + - - Envelopes, LFOs and filters are not supported by the current instrument. - エンベロープ、LFOやフィルターなどの操作は現在の楽器プラグインではサポートされていません。 + + W2 smoothing + - - - InstrumentTrack - - - unnamed_track - 新規トラック + + W3 smoothing + - - Base note + + Panning 1 - - First note + + Panning 2 - - Last note - 最後に使用したノート + + Rel trans + + + + lmms::ZynAddSubFxInstrument - - Volume - 音量 + + Portamento + - - Panning - パニング + + Filter frequency + - - Pitch - ピッチ + + Filter resonance + - - Pitch range - ピッチ範囲 + + Bandwidth + - - Mixer channel - FXチャンネル + + FM gain + - - Master pitch - 主ピッチ + + Resonance center frequency + - - Enable/Disable MIDI CC + + Resonance bandwidth - - CC Controller %1 + + Forward MIDI control change events + + + lmms::graphModel - - - Default preset - Default preset + + Graph + - InstrumentTrackView + lmms::gui::AmplifierControlDialog - - Volume - 音量 + + VOL + - + Volume: - 音量: - - - - VOL - 音量 + - - Panning - パニング + + PAN + - + Panning: - パニング: + - - PAN - パニング + + LEFT + - - MIDI - MIDI + + Left gain: + - - Input - 入力 + + RIGHT + - - Output - 出力 + + Right gain: + + + + lmms::gui::AudioAlsaSetupWidget - - Open/Close MIDI CC Rack + + Device - - Channel %1: %2 - FX %1: %2 + + Channels + - InstrumentTrackWindow + lmms::gui::AudioFileProcessorView - - GENERAL SETTINGS - 一般設定 + + Open sample + - - Volume - 音量 + + Reverse sample + - - Volume: - 音量: + + Disable loop + - - VOL - 音量 + + Enable loop + - - Panning - パニング + + Enable ping-pong loop + - - Panning: - パニング: + + Continue sample playback across notes + - - PAN - パニング + + Amplify: + - - Pitch - ピッチ + + Start point: + - - Pitch: - ピッチ: + + End point: + - - cents - cent + + Loopback point: + + + + lmms::gui::AudioFileProcessorWaveView - - PITCH - ピッチ + + Sample length: + + + + lmms::gui::AutomationClipView - - Pitch range (semitones) - ピッチ範囲 (半音) + + Open in Automation editor + - - RANGE - RANGE + + Clear + - - Mixer channel - FXチャンネル + + Reset name + - - CHANNEL - FX + + Change name + - - Save current instrument track settings in a preset file + + Set/clear record - - SAVE - 保存 + + Flip Vertically (Visible) + - - Envelope, filter & LFO + + Flip Horizontally (Visible) - - Chord stacking & arpeggio + + %1 Connections - - Effects - エフェクト + + Disconnect "%1" + - - MIDI - MIDI + + Model is already connected to this clip. + + + + lmms::gui::AutomationEditor - - Miscellaneous + + Edit Value - - Save preset - プリセットを保存 + + New outValue + - - XML preset file (*.xpf) - XML プリセット ファイル (*.xpf) + + New inValue + - - Plugin - プラグイン + + Please open an automation clip by double-clicking on it! + - JackApplicationW + lmms::gui::AutomationEditorWindow - - NSM applications cannot use abstract or absolute paths + + Play/pause current clip (Space) - - NSM applications cannot use CLI arguments + + Stop playing of current clip (Space) - - You need to save the current Carla project before NSM can be used + + Edit actions - - - JuceAboutW - - About JUCE + + Draw mode (Shift+D) - - <b>About JUCE</b> + + Erase mode (Shift+E) - - This program uses JUCE version 3.x.x. + + Draw outValues mode (Shift+C) - - JUCE (Jules' Utility Class Extensions) is an all-encompassing C++ class library for developing cross-platform software. - -It contains pretty much everything you're likely to need to create most applications, and is particularly well-suited for building highly-customised GUIs, and for handling graphics and sound. - -JUCE is licensed under the GNU Public Licence version 2.0. -One module (juce_core) is permissively licensed under the ISC. - -Copyright (C) 2017 ROLI Ltd. + + Edit tangents mode (Shift+T) - - This program uses JUCE version %1. + + Flip vertically - - - Knob - - Set linear + + Flip horizontally - - Set logarithmic + + Interpolation controls - - - Set value - 値をセット + + Discrete progression + - - Please enter a new value between -96.0 dBFS and 6.0 dBFS: - -96.0 dBFSから 6.0 dBFSの範囲で新しい値を入力してください: + + Linear progression + - - Please enter a new value between %1 and %2: - %1 と %2 の間の新しい値を入力してください: + + Cubic Hermite progression + - - - LadspaControl - - Link channels - チャンネルをリンクする + + Tension value for spline + - - - LadspaControlDialog - - Link Channels - チャンネルをリンクする + + Tension: + - - Channel - チャンネル + + Zoom controls + - - - LadspaControlView - - Link channels - チャンネルをリンクする + + Horizontal zooming + + + + + Vertical zooming + - - Value: + + Quantization controls - - - LadspaEffect - - Unknown LADSPA plugin %1 requested. - 不明な LADSPA プラグイン %1 が要求されました。 + + Quantization + - - - LcdFloatSpinBox - - Set value - 値をセット + + Clear ghost notes + - - Please enter a new value between %1 and %2: - %1 と %2 の間の新しい値を入力してください: + + + Automation Editor - no clip + - - - LcdSpinBox - - Set value - 値をセット + + + Automation Editor - %1 + - - Please enter a new value between %1 and %2: - %1 と %2 の間の新しい値を入力してください: + + Model is already connected to this clip. + - LeftRightNav + lmms::gui::BassBoosterControlDialog - - - - Previous - + + FREQ + - - - - Next - + + Frequency: + - - Previous (%1) - 前 (%1) + + GAIN + - - Next (%1) - 次 (%1) + + Gain: + - - - LfoController - - LFO Controller - LFOコントローラ + + RATIO + - - Base value + + Ratio: + + + lmms::gui::BitInvaderView - - Oscillator speed + + Sample length - - Oscillator amount + + Draw your own waveform here by dragging your mouse on this graph. - - Oscillator phase + + + Sine wave - - Oscillator waveform - オシレーターの波形 + + + Triangle wave + - - Frequency Multiplier + + + Saw wave - - - LfoControllerDialog - - LFO - LFO + + + Square wave + - - BASE - BASE + + + White noise + - - Base: + + + User-defined wave - - FREQ - 周波数 + + + Smooth waveform + - - LFO frequency: + + Interpolation - - AMNT - AMNT + + Normalize + + + + lmms::gui::BitcrushControlDialog - - Modulation amount: - Modulation amount: + + IN + - - PHS - PHS + + OUT + - - Phase offset: + + + GAIN - - degrees + + Input gain: - - Sine wave - サイン波 + + NOISE + - - Triangle wave - 三角波 + + Input noise: + - - Saw wave - のこぎり波 + + Output gain: + - - Square wave - 矩形波 + + CLIP + - - Moog saw wave + + Output clip: - - Exponential wave + + Rate enabled - - White noise + + Enable sample-rate crushing - - User-defined shape. -Double click to pick a file. + + Depth enabled - - Mutliply modulation frequency by 1 + + Enable bit-depth crushing - - Mutliply modulation frequency by 100 + + FREQ - - Divide modulation frequency by 100 + + Sample rate: - - - Engine - - Generating wavetables + + STEREO - - Initializing data structures + + Stereo difference: - - Opening audio and midi devices - オーディオ・MIDIデバイスを開いています + + QUANT + - - Launching mixer threads + + Levels: - MainWindow - - - Configuration file - 設定ファイル - - - - Error while parsing configuration file at line %1:%2: %3 - 設定ファイルの%1行目%2列目でパースエラー: %3 - + lmms::gui::CPULoadWidget - - Could not open file - ファイルを開くことができませんでした + + DSP total: %1% + - - Could not open file %1 for writing. -Please make sure you have write permission to the file and the directory containing the file and try again! - ファイル %1 を開けません。 -書き込み権限があることを確認してからもう一度試してください。 + + - Notes and setup: %1% + - - Project recovery - プロジェクトの復元 + + - Instruments: %1% + - - There is a recovery file present. It looks like the last session did not end properly or another instance of LMMS is already running. Do you want to recover the project of this session? + + - Effects: %1% - - - Recover - 復元 + + - Mixing: %1% + + + + lmms::gui::CarlaInstrumentView - - Recover the file. Please don't run multiple instances of LMMS when you do this. - ファイルを復元します。 LMMSを複数にわたり実行しないでください。 + + Show GUI + - - - Discard - 変更を破棄 + + Click here to show or hide the graphical user interface (GUI) of Carla. + - - Launch a default session and delete the restored files. This is not reversible. + + Params - - Version %1 - バージョン %1 + + Available from Carla version 2.1 and up. + + + + lmms::gui::CarlaParamsView - - Preparing plugin browser - プラグインブラウザを準備しています + + Search.. + - - Preparing file browsers - ファイルブラウザを準備しています + + Clear filter text + - - My Projects - マイ プロジェクト + + Only show knobs with a connection. + - - My Samples - マイ サンプル + + - Parameters + + + + lmms::gui::ClipView - - My Presets - マイ プリセット + + Current position + - - My Home - マイ ホーム + + Current length + - - Root directory - ルートディレクトリ + + + %1:%2 (%3:%4 to %5:%6) + - - Volumes - 音量 + + Press <%1> and drag to make a copy. + - - My Computer - マイ コンピュータ + + Press <%1> for free resizing. + - - &File - ファイル(&F) + + Hint + - - &New - 新規(&N) + + Delete (middle mousebutton) + - - &Open... - 開く(&O)... + + Delete selection (middle mousebutton) + - - Loading background picture + + Cut - - &Save - 保存(&S) + + Cut selection + - - Save &As... - 名前を付けて保存(&A)... + + Merge Selection + - - Save as New &Version - 新規保存 (&V) + + Copy + - - Save as default template - デフォルトのテンプレートとして保存 + + Copy selection + - - Import... - インポート.... + + Paste + - - E&xport... - エクスポート(&x)... + + Mute/unmute (<%1> + middle click) + - - E&xport Tracks... - トラックをエクスポート (&x)... + + Mute/unmute selection (<%1> + middle click) + - - Export &MIDI... - &MIDI 形式でエクスポート + + Clip color + - - &Quit - 終了(&Q) + + Change + - - &Edit - 編集(&E) + + Reset + - - Undo - 元に戻す + + Pick random + + + + lmms::gui::CompressorControlDialog - - Redo - やり直し + + Threshold: + - - Settings - 設定 + + Volume at which the compression begins to take place + - - &View - &表示 + + Ratio: + - - &Tools - ツール(&T) + + How far the compressor must turn the volume down after crossing the threshold + - - &Help - ヘルプ(&H) + + Attack: + - - Online Help - オンラインヘルプ + + Speed at which the compressor starts to compress the audio + - - Help - ヘルプ + + Release: + - - About - LMMSについて + + Speed at which the compressor ceases to compress the audio + - - Create new project - 新規プロジェクト作成 + + Knee: + - - Create new project from template - テンプレートから新規プロジェクトを作成します + + Smooth out the gain reduction curve around the threshold + - - Open existing project - 既存プロジェクトを開く + + Range: + - - Recently opened projects - 最近開いたプロジェクト + + Maximum gain reduction + - - Save current project - 現在のプロジェクトを保存 + + Lookahead Length: + - - Export current project - 現在のプロジェクトをエクスポート + + How long the compressor has to react to the sidechain signal ahead of time + - - Metronome - メトロノーム + + Hold: + - - - Song Editor - ソング エディター + + Delay between attack and release stages + - - - Beat+Bassline Editor - ビート+ベースライン エディター + + RMS Size: + - - - Piano Roll - ピアノロール + + Size of the RMS buffer + - - - Automation Editor - オートメーション エディター + + Input Balance: + - - - Mixer - エフェクトミキサー + + Bias the input audio to the left/right or mid/side + - - Show/hide controller rack - コントローラー ラック の表示/非表示 + + Output Balance: + - - Show/hide project notes - プロジェクトノートの表示/非表示 + + Bias the output audio to the left/right or mid/side + - - Untitled - 無題 + + Stereo Balance: + - - Recover session. Please save your work! - 復元されたファイルです。今すぐ保存してください! + + Bias the sidechain signal to the left/right or mid/side + - - LMMS %1 - LMMS %1 + + Stereo Link Blend: + - - Recovered project not saved - 復元された未保存のプロジェクト + + Blend between unlinked/maximum/average/minimum stereo linking modes + - - This project was recovered from the previous session. It is currently unsaved and will be lost if you don't save it. Do you want to save it now? - このプロジェクトは以前のセッションから復元されました。このプロジェクトは現在保存されておらず、保存しないと失われます。保存しますか? + + Tilt Gain: + - - Project not saved - プロジェクトは保存されていません + + Bias the sidechain signal to the low or high frequencies. -6 db is lowpass, 6 db is highpass. + - - The current project was modified since last saving. Do you want to save it now? - 現在のプロジェクトは最後に保存してから変更されています。保存しますか? + + Tilt Frequency: + - - Open Project - プロジェクトを開く + + Center frequency of sidechain tilt filter + - - LMMS (*.mmp *.mmpz) - LMMS (*.mmp *.mmpz) + + Mix: + - - Save Project - プロジェクトを保存 + + Balance between wet and dry signals + - - LMMS Project - LMMSのプロジェクト + + Auto Attack: + - - LMMS Project Template - LMMSのプロジェクトのテンプレート + + Automatically control attack value depending on crest factor + - - Save project template - プロジェクトのテンプレートを保存 + + Auto Release: + - - Overwrite default template? - デフォルトのテンプレートに上書きしますか? + + Automatically control release value depending on crest factor + - - This will overwrite your current default template. - 現在のデフォルトのテンプレートに上書きします + + Output gain + - - Help not available - ヘルプはありません + + + Gain + - - Currently there's no help available in LMMS. -Please visit http://lmms.sf.net/wiki for documentation on LMMS. - 今のところ LMMSののヘルプはありません。 - http://lmms.sf.net/wiki にLMMSのドキュメントがあります。 + + Output volume + - - Controller Rack - コントローラー ラック + + Input gain + - - Project Notes - プロジェクトノート + + Input volume + - - Fullscreen + + Root Mean Square - - Volume as dBFS - 音量を dBFS で表示 + + Use RMS of the input + - - Smooth scroll - 滑らかにスクロール + + Peak + - - Enable note labels in piano roll - ピアノロールに音階を表示 + + Use absolute value of the input + - - MIDI File (*.mid) - MIDIファイル (*.mid) + + Left/Right + - - - untitled - 無題 + + Compress left and right audio + - - - Select file for project-export... - プロジェクトをエクスポートするファイルを選択してください... + + Mid/Side + - - Select directory for writing exported tracks... - エクスポートされたトラックの書き込み先のディレクトリを選択... + + Compress mid and side audio + - - Save project - プロジェクトを保存 + + Compressor + - - Project saved - プロジェクトを保存しました + + Compress the audio + - - The project %1 is now saved. - プロジェクト %1 を保存しました。 + + Limiter + - - Project NOT saved. - プロジェクトは保存されていません。 + + Set Ratio to infinity (is not guaranteed to limit audio volume) + - - The project %1 was not saved! - プロジェクト %1 は保存されませんでした! + + Unlinked + - - Import file - ファイルをインポート + + Compress each channel separately + - - MIDI sequences - MIDIシーケンス + + Maximum + - - Hydrogen projects - Hydrogenプロジェクト + + Compress based on the loudest channel + - - All file types - すべてのファイル + + Average + - - - MeterDialog - - - Meter Numerator + + Compress based on the averaged channel volume - - Meter numerator + + Minimum - - - Meter Denominator + + Compress based on the quietest channel - - Meter denominator + + Blend - - TIME SIG - 拍子 + + Blend between stereo linking modes + - - - MeterModel - - Numerator + + Auto Makeup Gain - - Denominator + + Automatically change makeup gain depending on threshold, knee, and ratio settings - - - MidiCCRackView - - - MIDI CC Rack - %1 + + + Soft Clip - - MIDI CC Knobs: + + Play the delta signal - - CC %1 + + Use the compressor's output as the sidechain input - - - MidiController - - MIDI Controller - MIDIコントローラ + + Lookahead Enabled + - - unnamed_midi_controller - 名称未設定_MIDI_コントローラ + + Enable Lookahead, which introduces 20 milliseconds of latency + - MidiImport - - - - Setup incomplete - セットアップの未完了 - + lmms::gui::ControllerConnectionDialog - - You have not set up a default soundfont in the settings dialog (Edit->Settings). Therefore no sound will be played back after importing this MIDI file. You should download a General MIDI soundfont, specify it in settings dialog and try again. + + Connection Settings - - You did not compile LMMS with support for SoundFont2 player, which is used to add default sound to imported MIDI files. Therefore no sound will be played back after importing this MIDI file. + + MIDI CONTROLLER - - MIDI Time Signature Numerator + + Input channel - - MIDI Time Signature Denominator + + CHANNEL - - Numerator + + Input controller - - Denominator + + CONTROLLER - - Track - トラック + + + Auto Detect + - - - MidiJack - - JACK server down - When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (title) - JACK サーバーダウン + + MIDI-devices to receive MIDI-events from + - - The JACK server seems to be shuted down. - When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (dialog message) - JACKサーバーはシャットダウンしたようです。 + + USER CONTROLLER + - - - MidiPatternW - - MIDI Pattern + + MAPPING FUNCTION - - Time Signature: + + OK - - - - 1/4 + + Cancel - - 2/4 + + LMMS - - 3/4 + + Cycle Detected. + + + lmms::gui::ControllerRackView - - 4/4 + + Controller Rack - - 5/4 + + Add - - 6/4 + + Confirm Delete - - Measures: + + Confirm delete? There are existing connection(s) associated with this controller. There is no way to undo. + + + lmms::gui::ControllerView - - - - 1 + + Controls - - 2 + + Rename controller - - 3 + + Enter the new name for this controller - - 4 + + LFO - - 5 - 5 + + Move &up + - - 6 - 6 + + Move &down + - - 7 - 7 + + &Remove this controller + - - 8 + + Re&name this controller + + + lmms::gui::CrossoverEQControlDialog - - 9 - 9 + + Band 1/2 crossover: + - - 10 + + Band 2/3 crossover: - - 11 - 11 + + Band 3/4 crossover: + - - 12 + + Band 1 gain - - 13 - 13 + + Band 1 gain: + - - 14 + + Band 2 gain - - 15 + + Band 2 gain: - - 16 + + Band 3 gain - - Default Length: + + Band 3 gain: - - - 1/16 + + Band 4 gain - - - 1/15 + + Band 4 gain: - - - 1/12 + + Band 1 mute - - - 1/9 + + Mute band 1 - - - 1/8 + + Band 2 mute - - - 1/6 + + Mute band 2 - - - 1/3 + + Band 3 mute - - - 1/2 + + Mute band 3 - - Quantize: + + Band 4 mute - - &File - ファイル(&F) + + Mute band 4 + + + + lmms::gui::DelayControlsDialog - - &Edit - 編集(&E) + + DELAY + - - &Quit - 終了(&Q) + + Delay time + - - &Insert Mode + + FDBK - - F + + Feedback amount - - &Velocity Mode + + RATE - - D - D + + LFO frequency + - - Select All + + AMNT - - A - A + + LFO amount + - - - MidiPort - - Input channel - 入力チャンネル + + Out gain + - - Output channel - 出力チャンネル + + Gain + + + + lmms::gui::DispersionControlDialog - - Input controller - 入力コントローラ + + AMOUNT + - - Output controller - 出力コントローラ + + Number of all-pass filters + - - Fixed input velocity - 固定入力速度 + + FREQ + - - Fixed output velocity - 固定出力速度 + + Frequency: + - - Fixed output note - 出力ノートを固定 + + RESO + - - Output MIDI program - 出力MIDIプログラム + + Resonance: + - - Base velocity - 基のベロシティ + + FEED + - - Receive MIDI-events - MIDIイベントを受信 + + Feedback: + - - Send MIDI-events - MIDIイベントを送信 + + DC Offset Removal + - - - MidiSetupWidget - - Device + + Remove DC Offset - MonstroInstrument + lmms::gui::DualFilterControlDialog - - Osc 1 volume - オシレーター 1 の音量 - - - - Osc 1 panning - オシレーター 1 のパン - - - - Osc 1 coarse detune + + + FREQ - - Osc 1 fine detune left + + + Cutoff frequency - - Osc 1 fine detune right + + + RESO - - Osc 1 stereo phase offset + + + Resonance - - Osc 1 pulse width + + + GAIN - - Osc 1 sync send on rise + + + Gain - - Osc 1 sync send on fall + + MIX - - Osc 2 volume - オシレーター 2 の音量 + + Mix + - - Osc 2 panning - オシレーター 2 のパン + + Filter 1 enabled + - - Osc 2 coarse detune + + Filter 2 enabled - - Osc 2 fine detune left + + Enable/disable filter 1 - - Osc 2 fine detune right + + Enable/disable filter 2 + + + lmms::gui::DynProcControlDialog - - Osc 2 stereo phase offset + + INPUT - - Osc 2 waveform - オシレーター 2 の波形 + + Input gain: + - - Osc 2 sync hard + + OUTPUT - - Osc 2 sync reverse + + Output gain: - - Osc 3 volume - オシレーター 3 の音量 + + ATTACK + - - Osc 3 panning - オシレーター 3 のパン + + Peak attack time: + - - Osc 3 coarse detune + + RELEASE - - Osc 3 Stereo phase offset + + Peak release time: - - Osc 3 sub-oscillator mix + + + Reset wavegraph - - Osc 3 waveform 1 - オシレーター 3 の波形 1 + + + Smooth wavegraph + - - Osc 3 waveform 2 - オシレーター 3 の波形 2 + + + Increase wavegraph amplitude by 1 dB + - - Osc 3 sync hard + + + Decrease wavegraph amplitude by 1 dB - - Osc 3 Sync reverse + + Stereo mode: maximum - - LFO 1 waveform - LFO 1 の波形 + + Process based on the maximum of both stereo channels + - - LFO 1 attack - LFO 1 のアタック + + Stereo mode: average + - - LFO 1 rate + + Process based on the average of both stereo channels - - LFO 1 phase + + Stereo mode: unlinked - - LFO 2 waveform - LFO 2 の波形 + + Process each stereo channel independently + + + + lmms::gui::Editor - - LFO 2 attack - LFO 2 のアタック + + Transport controls + - - LFO 2 rate + + Play (Space) - - LFO 2 phase + + Stop (Space) - - Env 1 pre-delay + + Record - - Env 1 attack + + Record while playing - - Env 1 hold + + Toggle Step Recording + + + lmms::gui::EffectRackView - - Env 1 decay + + EFFECTS CHAIN - - Env 1 sustain + + Add effect + + + lmms::gui::EffectSelectDialog - - Env 1 release + + Add effect - - Env 1 slope + + + Name - - Env 2 pre-delay + + Type - - Env 2 attack + + All - - Env 2 hold + + Search - - Env 2 decay + + Description - - Env 2 sustain + + Author + + + lmms::gui::EffectView - - Env 2 release + + On/Off - - Env 2 slope + + W/D - - Osc 2+3 modulation + + Wet Level: - - Selected view - 選択された表示 + + DECAY + - - Osc 1 - Vol env 1 + + Time: - - Osc 1 - Vol env 2 + + GATE - - Osc 1 - Vol LFO 1 + + Gate: - - Osc 1 - Vol LFO 2 + + Controls - - Osc 2 - Vol env 1 + + Move &up - - Osc 2 - Vol env 2 + + Move &down - - Osc 2 - Vol LFO 1 + + &Remove this plugin + + + lmms::gui::EnvelopeAndLfoView - - Osc 2 - Vol LFO 2 + + + AMT - - Osc 3 - Vol env 1 + + + Modulation amount: - - Osc 3 - Vol env 2 + + + DEL - - Osc 3 - Vol LFO 1 + + + Pre-delay: - - Osc 3 - Vol LFO 2 + + + ATT - - Osc 1 - Phs env 1 + + + Attack: - - Osc 1 - Phs env 2 + + HOLD - - Osc 1 - Phs LFO 1 + + Hold: - - Osc 1 - Phs LFO 2 + + DEC - - Osc 2 - Phs env 1 + + Decay: - - Osc 2 - Phs env 2 + + SUST - - Osc 2 - Phs LFO 1 + + Sustain: - - Osc 2 - Phs LFO 2 + + REL - - Osc 3 - Phs env 1 + + Release: - - Osc 3 - Phs env 2 + + SPD - - Osc 3 - Phs LFO 1 + + Frequency: - - Osc 3 - Phs LFO 2 + + FREQ x 100 - - Osc 1 - Pit env 1 + + Multiply LFO frequency by 100 - - Osc 1 - Pit env 2 + + MOD ENV AMOUNT - - Osc 1 - Pit LFO 1 + + Control envelope amount by this LFO - - Osc 1 - Pit LFO 2 + + Hint - - Osc 2 - Pit env 1 + + Drag and drop a sample into this window. + + + lmms::gui::EnvelopeGraph - - Osc 2 - Pit env 2 + + Scaling - - Osc 2 - Pit LFO 1 + + Dynamic - - Osc 2 - Pit LFO 2 + + Uses absolute spacings but switches to relative spacing if it's running out of space - - Osc 3 - Pit env 1 + + Absolute - - - Osc 3 - Pit env 2 + + + Provides enough potential space for each segment but does not scale - - Osc 3 - Pit LFO 1 + + Relative - - Osc 3 - Pit LFO 2 + + Always uses all of the available space to display the envelope graph + + + lmms::gui::EqControlsDialog - - Osc 1 - PW env 1 + + HP - - Osc 1 - PW env 2 + + Low-shelf - - Osc 1 - PW LFO 1 + + Peak 1 - - Osc 1 - PW LFO 2 + + Peak 2 - - Osc 3 - Sub env 1 + + Peak 3 - - Osc 3 - Sub env 2 + + Peak 4 - - Osc 3 - Sub LFO 1 + + High-shelf - - Osc 3 - Sub LFO 2 + + LP - - - Sine wave - サイン波 + + Input gain + - - Bandlimited Triangle wave + + + + Gain - - Bandlimited Saw wave + + Output gain - - Bandlimited Ramp wave + + Bandwidth: - - Bandlimited Square wave + + Octave - - Bandlimited Moog saw wave + + Resonance: - - - Soft square wave + + Frequency: - - Absolute sine wave + + LP group - - - Exponential wave + + HP group + + + lmms::gui::EqHandle - - White noise + + Reso: - - Digital Triangle wave + + BW: - - Digital Saw wave + + + Freq: + + + lmms::gui::ExportProjectDialog - - Digital Ramp wave + + Could not open file - - Digital Square wave + + Could not open file %1 for writing. +Please make sure you have write permission to the file and the directory containing the file and try again! - - Digital Moog saw wave + + Export project to %1 - - Triangle wave - 三角波 + + ( Fastest - biggest ) + - - Saw wave - のこぎり波 + + ( Slowest - smallest ) + - - Ramp wave + + Error - - Square wave - 矩形波 + + Error while determining file-encoder device. Please try to choose a different output format. + - - Moog saw wave + + Rendering: %1% + + + lmms::gui::Fader - - Abs. sine wave + + Set value - - Random - ランダム + + Please enter a new value between %1 and %2: + - - Random smooth + + Volume: %1 dBFS - MonstroView + lmms::gui::FileBrowser - - Operators view + + Browser - - Matrix view + + Search - - - - Volume - 音量 + + Refresh list + - - - - Panning - パニング + + User content + - - - - Coarse detune - Coarse デチューン + + Factory content + - - - - semitones + + Hidden content + + + lmms::gui::FileBrowserTreeWidget - - - Fine tune left + + Send to active instrument-track - - - - - cents - セント + + Open containing folder + - - - Fine tune right + + Song Editor - - - - Stereo phase offset - ステレオフレーズのオフセット + + Pattern Editor + - - - - - - deg + + Send to new AudioFileProcessor instance - - Pulse width - パルス帯域 + + Send to new instrument track + - - Send sync on pulse rise + + (%2Enter) - - Send sync on pulse fall + + Send to new sample track (Shift + Enter) - - Hard sync oscillator 2 + + Loading sample - - Reverse sync oscillator 2 + + Please wait, loading sample for preview... - - Sub-osc mix + + Error - - Hard sync oscillator 3 + + %1 does not appear to be a valid %2 file - - Reverse sync oscillator 3 + + --- Factory files --- + + + lmms::gui::FileDialog - - - - - Attack - アタック + + %1 files + - - - Rate - レート + + All audio files + - - - Phase - Phase + + Other files + + + + lmms::gui::FlangerControlsDialog - - - Pre-delay - Pre-delay + + DELAY + - - - Hold - Hold + + Delay time: + - - - Decay - Decay + + RATE + - - - Sustain - Decay + + Period: + - - - Release - Release + + AMNT + - - - Slope - Slope + + Amount: + - - Mix osc 2 with osc 3 + + PHASE - - Modulate amplitude of osc 3 by osc 2 + + Phase: - - Modulate frequency of osc 3 by osc 2 + + FDBK - - Modulate phase of osc 3 by osc 2 + + Feedback amount: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Modulation amount - Modulation amount + + NOISE + - - - MultitapEchoControlDialog - - Length - Length + + White noise amount: + - - Step length: - Step length: + + Invert + + + + lmms::gui::FloatModelEditorBase - - Dry - Dry + + Set linear + - - Dry gain: + + Set logarithmic + + + + + + Set value - - Stages - ステージ + + Please enter a new value between -96.0 dBFS and 6.0 dBFS: + - - Low-pass stages: + + Please enter a new value between %1 and %2: + + + lmms::gui::FreeBoyInstrumentView - - Swap inputs + + Sweep time: - - Swap left and right input channels for reflections + + Sweep time - - - NesInstrument - - Channel 1 coarse detune + + Sweep rate shift amount: - - Channel 1 volume - チャンネル1の音量 + + Sweep rate shift amount + - - Channel 1 envelope length + + + Wave pattern duty cycle: - - Channel 1 duty cycle + + + Wave pattern duty cycle - - Channel 1 sweep amount + + Square channel 1 volume: - - Channel 1 sweep rate + + Square channel 1 volume - - Channel 2 Coarse detune + + + + Length of each step in sweep: - - Channel 2 Volume - チャンネル 2 の音量 + + + + Length of each step in sweep + - - Channel 2 envelope length + + Square channel 2 volume: - - Channel 2 duty cycle + + Square channel 2 volume - - Channel 2 sweep amount + + Wave pattern channel volume: - - Channel 2 sweep rate + + Wave pattern channel volume - - Channel 3 coarse detune + + Noise channel volume: - - Channel 3 volume - チャンネル3の音量 + + Noise channel volume + - - Channel 4 volume - チャンネル4の音量 + + SO1 volume (Right): + - - Channel 4 envelope length + + SO1 volume (Right) - - Channel 4 noise frequency + + SO2 volume (Left): - - Channel 4 noise frequency sweep + + SO2 volume (Left) - - Master volume - マスター音量 + + Treble: + - - Vibrato - ビブラート + + Treble + - - - NesInstrumentView - - - - - Volume - 音量 + + Bass: + - - - - Coarse detune - Coarse デチューン + + Bass + - - - - Envelope length - 変化曲線の長さ + + Sweep direction + - - Enable channel 1 - チャンネル1を有効 + + + + + + Volume sweep direction + - - Enable envelope 1 - 変化曲線1を有効にする + + Shift register width + - - Enable envelope 1 loop + + Channel 1 to SO1 (Right) - - Enable sweep 1 + + Channel 2 to SO1 (Right) - - - Sweep amount + + Channel 3 to SO1 (Right) - - - Sweep rate + + Channel 4 to SO1 (Right) - - - 12.5% Duty cycle + + Channel 1 to SO2 (Left) - - - 25% Duty cycle + + Channel 2 to SO2 (Left) - - - 50% Duty cycle + + Channel 3 to SO2 (Left) - - - 75% Duty cycle + + Channel 4 to SO2 (Left) - - Enable channel 2 - チャンネル2を有効にする + + Wave pattern graph + + + + lmms::gui::GigInstrumentView - - Enable envelope 2 + + + Open GIG file - - Enable envelope 2 loop + + Choose patch - - Enable sweep 2 + + Gain: - - Enable channel 3 + + GIG Files (*.gig) + + + lmms::gui::GranularPitchShifterControlDialog - - Noise Frequency + + Grain Size: - - Frequency sweep + + Spray: - - Enable channel 4 + + Jitter: - - Enable envelope 4 + + Twitch: - - Enable envelope 4 loop + + Spray Stereo Spread: - - Quantize noise frequency when using note frequency + + Grain Shape: - - Use note frequency for noise + + Fade Length: - - Noise mode + + Feedback: - - Master volume - マスター音量 + + Minimum Allowed Latency: + - - Vibrato - ビブラート + + Density: + - - - OpulenzInstrument - - Patch - パッチ + + Glide: + - - Op 1 attack + + + Pitch - - Op 1 decay + + + Pitch Stereo Spread - - Op 1 sustain + + Open help window - - Op 1 release + + + Prefilter + + + lmms::gui::GuiApplication - - Op 1 level + + Working directory - - Op 1 level scaling + + The LMMS working directory %1 does not exist. Create it now? You can change the directory later via Edit -> Settings. - - Op 1 frequency multiplier + + Preparing UI - - Op 1 feedback + + Preparing song editor - - Op 1 key scaling rate + + Preparing mixer - - Op 1 percussive envelope + + Preparing controller rack - - Op 1 tremolo + + Preparing project notes - - Op 1 vibrato + + Preparing microtuner - - Op 1 waveform + + Preparing pattern editor - - Op 2 attack + + Preparing piano roll - - Op 2 decay + + Preparing automation editor + + + lmms::gui::InstrumentFunctionArpeggioView - - Op 2 sustain + + ARPEGGIO - - Op 2 release + + RANGE - - Op 2 level + + Arpeggio range: - - Op 2 level scaling + + octave(s) - - Op 2 frequency multiplier + + REP - - Op 2 key scaling rate + + Note repeats: - - Op 2 percussive envelope + + time(s) - - Op 2 tremolo + + CYCLE - - Op 2 vibrato + + Cycle notes: - - Op 2 waveform + + note(s) - - FM + + SKIP - - Vibrato depth + + Skip rate: - - Tremolo depth + + + + % - - - OpulenzInstrumentView - - - Attack - アタック + + MISS + - - - Decay - Decay + + Miss rate: + - - - Release - Release + + TIME + - - - Frequency multiplier + + Arpeggio time: - - - OscillatorObject - - Osc %1 waveform - Osc %1 の波形 + + ms + - - Osc %1 harmonic + + GATE - - - Osc %1 volume - Osc %1 の音量 + + Arpeggio gate: + - - - Osc %1 panning - オシレーター %1 のパン + + Chord: + - - - Osc %1 fine detuning left + + Direction: - - Osc %1 coarse detuning + + Mode: + + + lmms::gui::InstrumentFunctionNoteStackingView - - Osc %1 fine detuning right + + STACKING - - Osc %1 phase-offset + + Chord: - - Osc %1 stereo phase-detuning + + RANGE - - Osc %1 wave shape + + Chord range: - - Modulation type %1 + + octave(s) - Oscilloscope + lmms::gui::InstrumentMidiIOView - - Oscilloscope + + ENABLE MIDI INPUT - - Click to enable - 有効にするにはここをクリック + + + CHAN + This string must be be short, its width must be less than * width of LCD spin-box of two digits + - - - PatchesDialog - - Qsynth: Channel Preset + + + VELOC + This string must be be short, its width must be less than * width of LCD spin-box of three digits - - Bank selector + + ENABLE MIDI OUTPUT - - Bank - バンク + + PROG + This string must be be short, its width must be less than the * width of LCD spin-box of three digits + - - Program selector + + NOTE + This string must be be short, its width must be less than * width of LCD spin-box of three digits - - Patch - パッチ + + MIDI devices to receive MIDI events from + - - Name - 名前 + + MIDI devices to send MIDI events to + - - OK - OK + + VELOCITY MAPPING + - - Cancel - キャンセル + + MIDI VELOCITY + + + + + MIDI notes at this velocity correspond to 100% note velocity. + - PatmanView + lmms::gui::InstrumentSoundShapingView - - Open patch + + TARGET - - Loop + + FILTER - - Loop mode + + FREQ - - Tune + + Cutoff frequency: - - Tune mode + + Hz - - No file selected - ファイルが選択されてません + + Q/RESO + - - Open patch file - パッチファイルを開く + + Q/Resonance: + - - Patch-Files (*.pat) - パッチファイル (*.pat) + + Envelopes, LFOs and filters are not supported by the current instrument. + - MidiClipView + lmms::gui::InstrumentTrackView - - Open in piano-roll - ピアノロールで開く + + Mixer channel + - - Set as ghost in piano-roll + + Volume - - Clear all notes - すべてのノートをクリア + + Volume: + - - Reset name - 名前をリセット + + VOL + - - Change name - 名前を変更 + + Panning + - - Add steps - ステップを追加 + + Panning: + - - Remove steps - ステップを削除 + + PAN + - - Clone Steps - ステップを複製 + + MIDI + - - - PeakController - - Peak Controller - ピークコントローラー + + Input + - - Peak Controller Bug - ピークコントローラーのバグ + + Output + - - Due to a bug in older version of LMMS, the peak controllers may not be connect properly. Please ensure that peak controllers are connected properly and re-save this file. Sorry for any inconvenience caused. + + Open/Close MIDI CC Rack + + + + + %1: %2 - PeakControllerDialog + lmms::gui::InstrumentTrackWindow - - PEAK - PEAK + + Volume + - - LFO Controller - LFOコントローラー + + Volume: + - - - PeakControllerEffectControlDialog - - BASE - BASE + + VOL + - - Base: + + Panning - - AMNT - AMNT + + Panning: + - - Modulation amount: - Modulation amount: + + PAN + - - MULT - MULT + + Pitch + - - Amount multiplicator: + + Pitch: - - ATCK - ATCK + + cents + - - Attack: - アタック: + + PITCH + - - DCAY - ATCK + + Pitch range (semitones) + - - Release: - リリース: + + RANGE + - - TRSH - TRSH + + Mixer channel + - - Treshold: - スレショルド: + + CHANNEL + - - Mute output + + Save current instrument track settings in a preset file - - Absolute value + + SAVE - - - PeakControllerEffectControls - - Base value + + Envelope, filter & LFO - - Modulation amount - Modulation amount + + Chord stacking & arpeggio + - - Attack - アタック + + Effects + - - Release - Release + + MIDI + - - Treshold + + Tuning and transposition - - Mute output + + Save preset - - Absolute value + + XML preset file (*.xpf) - - Amount multiplicator + + Plugin - PianoRoll + lmms::gui::InstrumentTuningView - - Note Velocity - ノートのベロシティー + + GLOBAL TRANSPOSITION + - - Note Panning - ノートのパン + + Enables the use of global transposition + - - Mark/unmark current semitone + + Microtuner is not available for MIDI-based instruments. - - Mark/unmark all corresponding octave semitones + + MICROTUNER - - Mark current scale + + Active scale: - - Mark current chord + + + Edit scales and keymaps - - Unmark all + + Active keymap: - - - Select all notes on this key - このキーのすべてのノートを選択 + + + Import note ranges from keymap + - - Note lock - ノートロック + + When enabled, the first, last and base notes of this instrument will be overwritten with values specified by the selected keymap. + + + + lmms::gui::KickerInstrumentView - - Last note - 最後に使用したノート + + Start frequency: + - - No key + + End frequency: - - No scale + + Frequency slope: - - No chord + + Gain: - - Nudge + + Envelope length: - - Snap + + Envelope slope: - - Velocity: %1% - 音量: %1% + + Click: + - - Panning: %1% left - パニング: %1%左 + + Noise: + - - Panning: %1% right - パニング: %1%右 + + Start distortion: + - - Panning: center - パニング: 中央 + + End distortion: + + + + lmms::gui::LOMMControlDialog - - Glue notes failed + + Depth: - - Please select notes to glue first. + + Compression amount for all bands - - Please open a clip by double-clicking on it! - パターン上でダブルクリックして、パターンを開いてください! + + Time: + - - - Please enter a new value between %1 and %2: - %1 と %2 の間の新しい値を入力してください: + + Attack/release scaling for all bands + - - - PianoRollWindow - - Play/pause current clip (Space) - 現在のパターンの再生/一時停止 (Space) + + Input Volume: + - - Record notes from MIDI-device/channel-piano - MIDIデバイス/チャンネルピアノからノートを録音する + + Input volume + - - Record notes from MIDI-device/channel-piano while playing song or BB track - 再生しながらMIDIデバイス/チャンネルピアノからノートを録音する + + Output Volume: + - - Record notes from MIDI-device/channel-piano, one step at the time + + Output volume - - Stop playing of current clip (Space) - 現在のパターンの再生を停止 (Space) + + Upward Depth: + - - Edit actions - 編集機能 + + Upward compression amount for all bands + - - Draw mode (Shift+D) - 描画モード (shift+D) + + Downward Depth: + - - Erase mode (Shift+E) - 消去モード (shift+E) + + Downward compression amount for all bands + - - Select mode (Shift+S) - 選択モード (Shift+S) + + High/Mid Crossover + - - Pitch Bend mode (Shift+T) + + Mid/Low Crossover - - Quantize - クオンタイズ + + High/mid band split + - - Quantize positions + + Mid/low band split - - Quantize lengths + + Enable High Band - - File actions + + Enable Mid Band - - Import clip + + Enable Low Band - - - Export clip + + High Input Volume: - - Copy paste controls - コントロールを貼り付け + + Input volume for high band + - - Cut (%1+X) + + Mid Input Volume: - - Copy (%1+C) + + Input volume for mid band - - Paste (%1+V) + + Low Input Volume: - - Timeline controls - タイムラインコントロール + + Input volume for low band + - - Glue + + High Output Volume: - - Knife + + Output volume for high band - - Fill + + Mid Output Volume: - - Cut overlaps + + Output volume for mid band - - Min length as last + + Low Output Volume: - - Max length as last + + Output volume for low band - - Zoom and note controls + + Above Threshold High - - Horizontal zooming - 水平方向にズーム + + Downward compression threshold for high band + - - Vertical zooming - 垂直方向にズーム + + Above Threshold Mid + - - Quantization - クオンタイズ + + Downward compression threshold for mid band + - - Note length - ノートの長さ + + Above Threshold Low + - - Key + + Downward compression threshold for low band - - Scale + + Above Ratio High - - Chord + + Downward compression ratio for high band - - Snap mode + + Above Ratio Mid - - Clear ghost notes + + Downward compression ratio for mid band - - - Piano-Roll - %1 - ピアノロール - %1 + + Above Ratio Low + - - - Piano-Roll - no clip - ピアノロール - パターン無し + + Downward compression ratio for low band + - - - XML clip file (*.xpt *.xptz) + + Below Threshold High - - Export clip success + + Upward compression threshold for high band - - Clip saved to %1 + + Below Threshold Mid - - Import clip. + + Upward compression threshold for mid band - - You are about to import a clip, this will overwrite your current clip. Do you want to continue? + + Below Threshold Low - - Open clip + + Upward compression threshold for low band - - Import clip success + + Below Ratio High - - Imported clip %1! + + Upward compression ratio for high band - - - PianoView - - Base note + + Below Ratio Mid - - First note + + Upward compression ratio for mid band - - Last note - 最後に使用したノート + + Below Ratio Low + - - - Plugin - - Plugin not found - プラグインが見つかりません + + Upward compression ratio for low band + - - The plugin "%1" wasn't found or could not be loaded! -Reason: "%2" - プラグイン "%1" は見つからないか読み込みができません! -原因: "%2" + + Attack High: + - - Error while loading plugin - プラグイン読み込み中のエラー + + Attack time for high band + - - Failed to load plugin "%1"! - プラグイン "%1" の読み込みに失敗しました! + + Attack Mid: + - - - PluginBrowser - - Instrument Plugins - 楽器プラグイン + + Attack time for mid band + - - Instrument browser - 楽器ブラウザ + + Attack Low: + - - Drag an instrument into either the Song-Editor, the Beat+Bassline Editor or into an existing instrument track. - 楽器をソング エディターやビート+ベースライン エディターまたは存在する楽器トラックにドラッグしてください。 + + Attack time for low band + - - no description - 説明なし + + Release High: + - - A native amplifier plugin - ネイティブのアンププラグイン + + Release time for high band + - - Simple sampler with various settings for using samples (e.g. drums) in an instrument-track + + Release Mid: - - Boost your bass the fast and simple way + + Release time for mid band - - Customizable wavetable synthesizer - カスタマイズ可能なウェーブテーブルシンセサイザーです + + Release Low: + - - An oversampling bitcrusher + + Release time for low band - - Carla Patchbay Instrument + + RMS Time: - - Carla Rack Instrument + + RMS size for sidechain signal (set to 0 for Peak mode) - - A dynamic range compressor. + + Knee: - - A 4-band Crossover Equalizer - 4バンドのクロスオーバーイコライザー + + Knee size for all compressors + - - A native delay plugin - ネイティブのディレイプラグイン + + Range: + - - A Dual filter plugin - ネイティブのデュアルフィルタープラグイン + + Maximum gain increase for all bands + - - plugin for processing dynamics in a flexible way + + Balance: - - A native eq plugin - ネイティブのEQプラグイン + + Bias input volume towards one channel + - - A native flanger plugin - ネイティブのフランジャープラグイン + + Scale output volume with Depth + - - Emulation of GameBoy (TM) APU - GameBoy (TM) のAPUを再現します + + Scale output volume with Depth parameter + - - Player for GIG files - GIG ファイル用プレイヤー + + Stereo Link + - - Filter for importing Hydrogen files into LMMS + + Apply same gain change to both channels - - Versatile drum synthesizer - 多彩なドラムシンセサイザーです + + Auto Time: + - - List installed LADSPA plugins - インストールされている LADSPA プラグインの一覧 + + Speed up attack and release times when transients occur + - - plugin for using arbitrary LADSPA-effects inside LMMS. - 任意の LADSPA エフェクトを LMMS で使用するためのプラグイン。 + + Mix: + - - Incomplete monophonic imitation TB-303 + + Wet/Dry of all bands - - plugin for using arbitrary LV2-effects inside LMMS. + + Feedback - - plugin for using arbitrary LV2 instruments inside LMMS. + + Use output as sidechain signal instead of input - - Filter for exporting MIDI-files from LMMS + + Mid/Side - - Filter for importing MIDI-files into LMMS + + Compress mid/side channels instead of left/right - - Monstrous 3-oscillator synth with modulation matrix + + + Suppress upward compression for side band - - A multitap echo delay plugin + + + Lookahead - - A NES-like synthesizer - ファミコン似のシンセサイザーです + + Lookahead length + - - 2-operator FM Synth + + Clear all parameters + + + lmms::gui::LadspaBrowserView - - Additive Synthesizer for organ-like sounds + + + Available Effects - - GUS-compatible patch instrument + + + Unavailable Effects - - Plugin for controlling knobs with sound peaks - サウンドのピークをつまみでコントロールするプラグイン + + + Instruments + - - Reverb algorithm by Sean Costello - Sean Costello による リバーブのアルゴリズム + + + Analysis Tools + - - Player for SoundFont files - サウンドフォント ファイル用プレイヤー + + + Don't know + - - LMMS port of sfxr + + Type: + + + lmms::gui::LadspaControlDialog - - Emulation of the MOS6581 and MOS8580 SID. -This chip was used in the Commodore 64 computer. + + Link Channels - - A graphical spectrum analyzer. + + Channel + + + lmms::gui::LadspaControlView - - Plugin for enhancing stereo separation of a stereo input file - ステレオの入力ファイルに対するステレオ感を強化するプラグイン + + Link channels + - - Plugin for freely manipulating stereo output - ステレオ出力を自由に操作するプラグイン + + Value: + + + + lmms::gui::LadspaDescription - - Tuneful things to bang on + + Plugins - - Three powerful oscillators you can modulate in several ways + + Description - - A stereo field visualizer. + + Name: - - VST-host for using VST(i)-plugins within LMMS + + Maker: - - Vibrating string modeler + + Copyright: - - plugin for using arbitrary VST effects inside LMMS. + + Requires Real Time: - - 4-oscillator modulatable wavetable synth + + + + Yes - - plugin for waveshaping + + + + No - - Mathematical expression parser + + Real Time Capable: - - Embedded ZynAddSubFX - 埋め込みされた ZynAddSubFX です + + In Place Broken: + - - - PluginDatabaseW - - Carla - Add New + + Channels In: - - Format + + Channels Out: + + + lmms::gui::LadspaMatrixControlDialog - - Internal + + Link Channels - - LADSPA + + Link - - DSSI + + Channel %1 - - LV2 + + Link channels + + + lmms::gui::LadspaPortDialog - - VST2 + + Ports - - VST3 + + Name - - AU + + Rate - - Sound Kits + + Direction - + Type - 種類 - - - - Effects - エフェクト + - - Instruments - 楽器 + + Min < Default < Max + - - MIDI Plugins + + Logarithmic - - Other/Misc + + SR Dependent - - Architecture + + Audio - - Native + + Control - - Bridged + + Input - - Bridged (Wine) + + Output - - Requirements + + Toggled - - With Custom GUI + + Integer - - With CV Ports + + Float - - Real-time safe only + + + Yes + + + lmms::gui::Lb302SynthView - - Stereo only + + Cutoff Freq: - - With Inline Display + + Resonance: - - Favorites only + + Env Mod: - - (Number of Plugins go here) + + Decay: - - &Add Plugin + + 303-es-que, 24dB/octave, 3 pole filter - - Cancel - キャンセル + + Slide Decay: + - - Refresh + + DIST: - - Reset filters + + Saw wave - - - - - - - - - - - - - - - - - TextLabel + + Click here for a saw-wave. - - Format: + + Triangle wave - - Architecture: + + Click here for a triangle-wave. - - Type: - 種類: + + Square wave + - - MIDI Ins: + + Click here for a square-wave. - - Audio Ins: + + Rounded square wave - - CV Outs: + + Click here for a square-wave with a rounded end. - - MIDI Outs: + + Moog wave - - Parameter Ins: + + Click here for a moog-like wave. - - Parameter Outs: + + Sine wave - - Audio Outs: + + Click for a sine-wave. - - CV Ins: + + + White noise wave - - UniqueID: + + Click here for an exponential wave. - - Has Inline Display: + + Click here for white-noise. - - Has Custom GUI: + + Bandlimited saw wave - - Is Synth: + + Click here for bandlimited saw wave. - - Is Bridged: + + Bandlimited square wave - - Information + + Click here for bandlimited square wave. - - Name - 名前 + + Bandlimited triangle wave + - - Label/URI + + Click here for bandlimited triangle wave. - - Maker + + Bandlimited moog saw wave - - Binary/Filename + + Click here for bandlimited moog saw wave. + + + lmms::gui::LcdFloatSpinBox - - Focus Text Search + + Set value - - Ctrl+F + + Please enter a new value between %1 and %2: - PluginEdit + lmms::gui::LcdSpinBox - - Plugin Editor + + Set value - - Edit + + Please enter a new value between %1 and %2: + + + lmms::gui::LeftRightNav - - Control - コントロール - - - - MIDI Control Channel: + + + + Previous - - N + + + + Next - - Output dry/wet (100%) + + Previous (%1) - - Output volume (100%) + + Next (%1) + + + lmms::gui::LfoControllerDialog - - Balance Left (0%) + + LFO - - - Balance Right (0%) + + BASE - - Use Balance + + Base: - - Use Panning + + FREQ - - Settings - 設定 + + LFO frequency: + - - Use Chunks + + AMNT - - Audio: + + Modulation amount: - - Fixed-Size Buffer + + PHS - - Force Stereo (needs reload) + + Phase offset: - - MIDI: + + degrees - - Map Program Changes + + Sine wave - - Send Bank/Program Changes + + Triangle wave - - Send Control Changes + + Saw wave - - Send Channel Pressure + + Square wave - - Send Note Aftertouch + + Moog saw wave - - Send Pitchbend + + Exponential wave - - Send All Sound/Notes Off + + White noise - - -Plugin Name - + + User-defined shape. +Double click to pick a file. - - Program: + + Multiply modulation frequency by 1 - - MIDI Program: + + Multiply modulation frequency by 100 - - Save State + + Divide modulation frequency by 100 + + + lmms::gui::LfoGraph - - Load State + + %1 Hz + + + lmms::gui::MainWindow - - Information + + Configuration file - - Label/URI: + + Error while parsing configuration file at line %1:%2: %3 - - Name: + + Could not open file - - Type: - 種類: + + Could not open file %1 for writing. +Please make sure you have write permission to the file and the directory containing the file and try again! + - - Maker: + + Project recovery - - Copyright: + + There is a recovery file present. It looks like the last session did not end properly or another instance of LMMS is already running. Do you want to recover the project of this session? - - Unique ID: + + + Recover - - - PluginFactory - - Plugin not found. - プラグインが見つかりませんでした + + Recover the file. Please don't run multiple instances of LMMS when you do this. + - - LMMS plugin %1 does not have a plugin descriptor named %2! + + + Discard - - - PluginParameter - - Form + + Launch a default session and delete the restored files. This is not reversible. - - Parameter Name + + Version %1 - - ... + + Preparing plugin browser - - - PluginRefreshW - - Carla - Refresh + + Preparing file browsers - - Search for new... + + My Projects - - LADSPA + + My Samples - - DSSI + + My Presets - - LV2 + + My Home - - VST2 + + Root Directory - - VST3 + + Volumes - - AU + + My Computer - - SF2/3 + + Loading background picture - - SFZ + + &File - - Native + + &New - - POSIX 32bit + + &Open... - - POSIX 64bit + + &Save - - Windows 32bit + + Save &As... - - Windows 64bit + + Save as New &Version - - Available tools: + + Save as default template - - python3-rdflib (LADSPA-RDF support) + + Import... - - carla-discovery-win64 + + E&xport... - - carla-discovery-native + + E&xport Tracks... - - carla-discovery-posix32 + + Export &MIDI... - - carla-discovery-posix64 + + &Quit - - carla-discovery-win32 + + &Edit - - Options: + + Undo - - Carla will run small processing checks when scanning the plugins (to make sure they won't crash). -You can disable these checks to get a faster scanning time (at your own risk). + + Redo - - Run processing checks while scanning + + Scales and keymaps - - Press 'Scan' to begin the search + + Settings - - Scan + + &View - - >> Skip + + &Tools - - Close - 閉じる + + &Help + - - - PluginWidget - - - - - - Frame + + Online Help - - Enable + + Help - - On/Off - オン/オフ + + About + - - - - - PluginName + + Create new project - - MIDI - MIDI + + Create new project from template + - - AUDIO IN + + Open existing project - - AUDIO OUT + + Recently opened projects - - GUI + + Save current project - - Edit + + Export current project - - Remove + + Metronome - - Plugin Name + + + Song Editor - - Preset: + + + Pattern Editor - - - ProjectNotes - - Project Notes - プロジェクトノート + + + Piano Roll + - - Enter project notes here - ここにプロジェクトノートを入力 + + + Automation Editor + - - Edit Actions - 編集機能 + + + Mixer + - - &Undo - 元に戻す(&U) + + Show/hide controller rack + - - %1+Z - %1+Z + + Show/hide project notes + - - &Redo - やり直し(&R) + + Untitled + - - %1+Y - %1+Y + + Recover session. Please save your work! + - - &Copy - コピー(&C) + + LMMS %1 + - - %1+C - %1+C + + Recovered project not saved + - - Cu&t - 切り取り(&t) + + This project was recovered from the previous session. It is currently unsaved and will be lost if you don't save it. Do you want to save it now? + - - %1+X - %1+X + + Project not saved + - - &Paste - 貼り付け(&P) + + The current project was modified since last saving. Do you want to save it now? + - - %1+V - %1+V + + Open Project + - - Format Actions - フォーマット機能 + + LMMS (*.mmp *.mmpz) + - - &Bold - 太字(&B) + + Save Project + - - %1+B - %1+B + + LMMS Project + - - &Italic - 斜体(&I) + + LMMS Project Template + - - %1+I - %1+I + + Save project template + - - &Underline - 下線(&U) + + Overwrite default template? + - - %1+U - %1+U + + This will overwrite your current default template. + - - &Left - 左揃え(&L) + + Help not available + - - %1+L - %1+L + + Currently there's no help available in LMMS. +Please visit http://lmms.sf.net/wiki for documentation on LMMS. + - - C&enter - 中央揃え(&e) + + Controller Rack + - - %1+E - %1+E + + Project Notes + - - &Right - 右揃え(&R) + + Fullscreen + - - %1+R - %1+R + + Volume as dBFS + - - &Justify - 両端揃え(&J) + + Smooth scroll + - - %1+J - %1+J + + Enable note labels in piano roll + - - &Color... - 文字色(&C)... + + MIDI File (*.mid) + - - - ProjectRenderer - - WAV (*.wav) - WAV (*.wav) + + + untitled + - - FLAC (*.flac) - FLAC (*.flac) + + + Select file for project-export... + - - OGG (*.ogg) - OGG (*.ogg) + + Select directory for writing exported tracks... + - - MP3 (*.mp3) - MP3 (*.mp3) + + Save project + - - - QObject - - Reload Plugin + + Project saved - - Show GUI - GUI を表示 + + The project %1 is now saved. + - - Help - ヘルプ + + Project NOT saved. + - - - QWidget - - - - - Name: - 名前: + + The project %1 was not saved! + - - URI: + + Import file - - - - Maker: - 作成者: + + MIDI sequences + - - - - Copyright: - 著作権表示: + + Hydrogen projects + - - - Requires Real Time: + + All file types + + + lmms::gui::MalletsInstrumentView - - - - - - - Yes - はい + + Instrument + - - - - - - - No - いいえ + + Spread + - - - Real Time Capable: + + Spread: - - - In Place Broken: + + Random - - - Channels In: - 入力チャンネル: + + Random: + - - - Channels Out: - 出力チャンネル: + + Missing files + - - File: %1 - ファイル: %1 + + Your Stk-installation seems to be incomplete. Please make sure the full Stk-package is installed! + - - File: - ファイル: + + Hardness + - - - RecentProjectsMenu - - &Recently Opened Projects - 最近開いたプロジェクト (&R) + + Hardness: + - - - RenameDialog - - Rename... - 名前の変更... + + Position + - - - ReverbSCControlDialog - - Input - 入力 + + Position: + - - Input gain: - 入力ゲイン: + + Vibrato gain + - - Size + + Vibrato gain: - - Size: + + Vibrato frequency - - Color + + Vibrato frequency: - - Color: + + Stick mix - - Output - 出力 + + Stick mix: + - - Output gain: - 出力ゲイン: + + Modulator + - - - ReverbSCControls - - Input gain - 入力ゲイン + + Modulator: + - - Size + + Crossfade - - Color + + Crossfade: - - Output gain - 出力ゲイン + + LFO speed + - - - SaControls - - Pause + + LFO speed: - - Reference freeze + + LFO depth - - Waterfall + + LFO depth: - - Averaging + + ADSR - - Stereo - ステレオ + + ADSR: + - - Peak hold + + Pressure - - Logarithmic frequency + + Pressure: - - Logarithmic amplitude + + Speed - - Frequency range + + Speed: + + + lmms::gui::ManageVSTEffectView - - Amplitude range + + - VST parameter control - - FFT block size + + VST sync - - FFT window type + + + Automated - - Peak envelope resolution + + Close + + + lmms::gui::ManageVestigeInstrumentView - - Spectrum display resolution + + + - VST plugin control - - Peak decay multiplier + + VST Sync - - Averaging weight + + + Automated - - Waterfall history size + + Close + + + lmms::gui::MeterDialog - - Waterfall gamma correction + + + Meter Numerator - - FFT window overlap + + Meter numerator - - FFT zero padding + + + Meter Denominator - - - Full (auto) + + Meter denominator - - - - Audible + + TIME SIG + + + lmms::gui::MicrotunerConfig - - Bass - ベース + + Selected scale slot + - - Mids + + Selected keymap slot - - High + + + First key - - Extended + + + Last key - - Loud + + + Middle key - - Silent + + + Base key - - (High time res.) + + + + Base note frequency - - (High freq. res.) + + Microtuner Configuration - - Rectangular (Off) + + Scale slot to edit: - - - Blackman-Harris (Default) + + Scale description. Cannot start with "!" and cannot contain a newline character. - - Hamming + + + Load - - Hanning + + + Save - - - SaControlsDialog - - Pause + + Load scale definition from a file. - - Pause data acquisition + + Save scale definition to a file. - - Reference freeze + + Enter intervals on separate lines. Numbers containing a decimal point are treated as cents. +Other inputs are treated as integer ratios and must be in the form of 'a/b' or 'a'. +Unity (0.0 cents or ratio 1/1) is always present as a hidden first value; do not enter it manually. - - Freeze current input as a reference / disable falloff in peak-hold mode. + + Apply scale changes - - Waterfall + + Verify and apply changes made to the selected scale. To use the scale, select it in the settings of a supported instrument. - - Display real-time spectrogram + + Keymap slot to edit: - - Averaging + + Keymap description. Cannot start with "!" and cannot contain a newline character. - - Enable exponential moving average + + Load key mapping definition from a file. - - Stereo - ステレオ + + Save key mapping definition to a file. + - - Display stereo channels separately + + Enter key mappings on separate lines. Each line assigns a scale degree to a MIDI key, +starting with the middle key and continuing in sequence. +The pattern repeats for keys outside of the explicit keymap range. +Multiple keys can be mapped to the same scale degree. +Enter 'x' if you wish to leave the key disabled / not mapped. - - Peak hold + + FIRST - - Display envelope of peak values + + First MIDI key that will be mapped - - Logarithmic frequency + + LAST - - Switch between logarithmic and linear frequency scale + + Last MIDI key that will be mapped - - - Frequency range + + MIDDLE - - Logarithmic amplitude + + First line in the keymap refers to this MIDI key - - Switch between logarithmic and linear amplitude scale + + BASE N. - - - Amplitude range + + Base note frequency will be assigned to this MIDI key - - Envelope res. + + BASE NOTE FREQ - - Increase envelope resolution for better details, decrease for better GUI performance. + + Apply keymap changes - - - Draw at most + + Verify and apply changes made to the selected key mapping. To use the mapping, select it in the settings of a supported instrument. - - envelope points per pixel + + Scale parsing error - - Spectrum res. + + Scale name cannot start with an exclamation mark - - Increase spectrum resolution for better details, decrease for better GUI performance. + + Scale name cannot contain a new-line character - - spectrum points per pixel + + Interval defined in cents cannot be converted to a number - - Falloff factor + + Numerator of an interval defined as a ratio cannot be converted to a number - - Decrease to make peaks fall faster. + + Denominator of an interval defined as a ratio cannot be converted to a number - - Multiply buffered value by + + Interval defined as a ratio cannot be negative - - Averaging weight + + Keymap parsing error - - Decrease to make averaging slower and smoother. + + Keymap name cannot start with an exclamation mark - - New sample contributes + + Keymap name cannot contain a new-line character - - Waterfall height + + Scale degree cannot be converted to a whole number - - Increase to get slower scrolling, decrease to see fast transitions better. Warning: medium CPU usage. + + Scale degree cannot be negative - - Keep + + Invalid keymap - - lines + + Base key is not mapped to any scale degree. No sound will be produced as there is no way to assign reference frequency to any note. - - Waterfall gamma + + Open scale - - Decrease to see very weak signals, increase to get better contrast. + + + Scala scale definition (*.scl) - - Gamma value: + + Scale load failure - - Window overlap + + + Unable to open selected file. - - Increase to prevent missing fast transitions arriving near FFT window edges. Warning: high CPU usage. + + Open keymap - - Each sample processed + + + Scala keymap definition (*.kbm) - - times + + Keymap load failure - - Zero padding + + Save scale - - Increase to get smoother-looking spectrum. Warning: high CPU usage. + + Scale save failure - - Processing buffer is + + + Unable to open selected file for writing. - - steps larger than input block + + Save keymap - - Advanced settings + + Keymap save failure + + + lmms::gui::MidiCCRackView - - Access advanced settings + + + MIDI CC Rack - %1 - - - FFT block size + + MIDI CC Knobs: - - - FFT window type + + CC %1 - SampleBuffer + lmms::gui::MidiClipView - - Fail to open file + + + Transpose - - Audio files are limited to %1 MB in size and %2 minutes of playing time - オーディオファイルのサイズは %1 MB、再生時間は %2 分に制限されています - - - - Open audio file - オーディオファイルを開く - - - - All Audio-Files (*.wav *.ogg *.ds *.flac *.spx *.voc *.aif *.aiff *.au *.raw) - すべてのオーディオファイル (*.wav *.ogg *.ds *.flac *.spx *.voc *.aif *.aiff *.au *.raw) + + Semitones to transpose by: + - - Wave-Files (*.wav) - WAV ファイル (*.wav) + + Open in piano-roll + - - OGG-Files (*.ogg) - OGG ファイル (*.ogg) + + Set as ghost in piano-roll + - - DrumSynth-Files (*.ds) - DrumSynth ファイル (*.ds) + + Set as ghost in automation editor + - - FLAC-Files (*.flac) - FLAC ファイル (*.flac) + + Clear all notes + - - SPEEX-Files (*.spx) - SPEEX ファイル (*.spx) + + Reset name + - - VOC-Files (*.voc) - VOC ファイル (*.voc) + + Change name + - - AIFF-Files (*.aif *.aiff) - AIFF ファイル (*.aif *.aiff) + + Add steps + - - AU-Files (*.au) - AU ファイル (*.au) + + Remove steps + - - RAW-Files (*.raw) - RAW ファイル (*.raw) + + Clone Steps + - SampleClipView - - - Double-click to open sample - ダブルクリックしてサンプルを開く - + lmms::gui::MidiSetupWidget - - Delete (middle mousebutton) - 削除 (マウス中ボタン) + + Device + + + + lmms::gui::MixerChannelLcdSpinBox - - Delete selection (middle mousebutton) + + Assign to: - - Cut - 切り取り + + New Mixer Channel + - - Cut selection + + Please enter a new value between %1 and %2: - - Copy - コピー + + Set value + + + + lmms::gui::MixerChannelView - - Copy selection + + Channel send amount - - Paste - 貼り付け + + Mute + - - Mute/unmute (<%1> + middle click) - ミュート/ミュート解除 (<%1> + 中ボタンクリック) + + Mute this channel + - - Mute/unmute selection (<%1> + middle click) + + Solo - - Reverse sample - サンプルを反転する + + Solo this channel + - - Set clip color + + Fader %1 - - Use track color + + Move &left - - - SampleTrack - - Volume - 音量 + + Move &right + - - Panning - パニング + + Rename &channel + - - Mixer channel - FXチャンネル + + R&emove channel + - - - Sample track - サンプルトラック + + Remove &unused channels + - - - SampleTrackView - - Track volume - トラック音量 + + Color + - - Channel volume: - チャンネル音量: + + Change + - - VOL - 音量 + + Reset + - - Panning - パニング + + Pick random + - - Panning: - パニング: + + This Mixer Channel is being used. +Are you sure you want to remove this channel? + +Warning: This operation can not be undone. + - - PAN - パニング + + Confirm removal + - - Channel %1: %2 - FX %1: %2 + + Don't ask again + - SampleTrackWindow + lmms::gui::MixerView - - GENERAL SETTINGS - 一般設定 + + Mixer + + + + lmms::gui::MonstroView - - Sample volume + + Operators view - - Volume: - 音量: + + Matrix view + - - VOL - 音量 + + + + Volume + - + + + Panning - パン - - - - Panning: - パン: - - - - PAN - パン + - - Mixer channel - FXチャンネル + + + + Coarse detune + - - CHANNEL - FX + + + + semitones + - - - SaveOptionsWidget - - Discard MIDI connections + + + Fine tune left - - Save As Project Bundle (with resources) + + + + + cents - - - SetupDialog - - Reset to default value - 規定値にリセット + + + Fine tune right + - - Use built-in NaN handler + + + + Stereo phase offset - - Settings - 設定 + + + + + + deg + - - - General + + Pulse width - - Graphical user interface (GUI) + + Send sync on pulse rise - - Display volume as dBFS - 音量を dBFS で表示する + + Send sync on pulse fall + - - Enable tooltips - ツールチップを有効にする + + Hard sync oscillator 2 + - - Enable master oscilloscope by default + + Reverse sync oscillator 2 - - Enable all note labels in piano roll + + Sub-osc mix - - Enable compact track buttons + + Hard sync oscillator 3 - - Enable one instrument-track-window mode + + Reverse sync oscillator 3 - - Show sidebar on the right-hand side + + + + + Attack - - Let sample previews continue when mouse is released + + + Rate - - Mute automation tracks during solo + + + Phase - - Show warning when deleting tracks + + + Pre-delay - - Projects + + + Hold - - Compress project files by default + + + Decay - - Create a backup file when saving a project + + + Sustain - - Reopen last project on startup + + + Release - - Language + + + Slope - - - Performance + + Mix osc 2 with osc 3 - - Autosave + + Modulate amplitude of osc 3 by osc 2 - - Enable autosave + + Modulate frequency of osc 3 by osc 2 - - Allow autosave while playing + + Modulate phase of osc 3 by osc 2 - - User interface (UI) effects vs. performance + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Modulation amount + + + lmms::gui::MultitapEchoControlDialog - - Smooth scroll in song editor + + Length - - Display playback cursor in AudioFileProcessor + + Step length: - - Plugins - プラグイン + + Dry + - - VST plugins embedding: + + Dry gain: - - No embedding + + Stages - - Embed using Qt API - Qt API を使用した埋め込み + + Low-pass stages: + - - Embed using native Win32 API - ネイティブのWin32 APIを使用した埋め込み + + Swap inputs + - - Embed using XEmbed protocol + + Swap left and right input channels for reflections + + + lmms::gui::NesInstrumentView - - Keep plugin windows on top when not embedded + + + + + Volume - - Sync VST plugins to host playback + + + + Coarse detune - - Keep effects running even without input + + + + Envelope length - - - Audio - オーディオ + + Enable channel 1 + - - Audio interface + + Enable envelope 1 - - HQ mode for output audio device + + Enable envelope 1 loop - - Buffer size + + Enable sweep 1 - - - MIDI - MIDI + + + Sweep amount + - - MIDI interface + + + Sweep rate - - Automatically assign MIDI controller to selected track + + + 12.5% Duty cycle - - LMMS working directory - LMMSの作業ディレクトリ + + + 25% Duty cycle + - - VST plugins directory + + + 50% Duty cycle - - LADSPA plugins directories + + + 75% Duty cycle - - SF2 directory - SF2のディレクトリ + + Enable channel 2 + - - Default SF2 + + Enable envelope 2 - - GIG directory - GIGのディレクトリ + + Enable envelope 2 loop + - - Theme directory + + Enable sweep 2 - - Background artwork - 背景アートワーク + + Enable channel 3 + - - Some changes require restarting. + + Noise Frequency - - Autosave interval: %1 + + Frequency sweep - - Choose the LMMS working directory + + Enable channel 4 - - Choose your VST plugins directory + + Enable envelope 4 - - Choose your LADSPA plugins directory + + Enable envelope 4 loop - - Choose your default SF2 + + Quantize noise frequency when using note frequency - - Choose your theme directory + + Use note frequency for noise - - Choose your background picture + + Noise mode - - - Paths - パス + + Master volume + - - OK - OK + + Vibrato + + + + lmms::gui::OpulenzInstrumentView - - Cancel - キャンセル + + + Attack + - - Frames: %1 -Latency: %2 ms - フレーム: %1 -レイテンシ: %2 ms + + + Decay + - - Choose your GIG directory - GIGのディレクトリを選択してください + + + Release + - - Choose your SF2 directory - SF2のディレクトリを選択してください + + + Frequency multiplier + + + + lmms::gui::OrganicInstrumentView - - minutes - + + Distortion: + - - minute - + + Volume: + - - Disabled - 無効 + + Randomise + - - - SidInstrument - - Cutoff frequency - カットオフ周波数 + + + Osc %1 waveform: + - - Resonance - レゾナンス + + Osc %1 volume: + - - Filter type - フィルターの種類 + + Osc %1 panning: + - - Voice 3 off + + Osc %1 stereo detuning - - Volume - 音量 + + cents + - - Chip model - チップモデル + + Osc %1 harmonic: + - SidInstrumentView + lmms::gui::Oscilloscope - - Volume: - 音量: + + Oscilloscope + - - Resonance: - レゾナンス: + + Click to enable + + + + lmms::gui::PatmanView - - - Cutoff frequency: - カットオフ周波数: + + Open patch + - - High-pass filter + + Loop - - Band-pass filter + + Loop mode - - Low-pass filter + + Tune - - Voice 3 off + + Tune mode - - MOS6581 SID - MOS6581 SID + + No file selected + - - MOS8580 SID - MOS8580 SID + + Open patch file + - - - Attack: - アタック: + + Patch-Files (*.pat) + + + + lmms::gui::PatternClipView - - - Decay: - ディケイ: + + Open in Pattern Editor + - - Sustain: - サスティン: + + Reset name + - - - Release: - リリース: + + Change name + + + + lmms::gui::PatternEditorWindow - - Pulse Width: + + Pattern Editor - - Coarse: + + Play/pause current pattern (Space) - - Pulse wave + + Stop playback of current pattern (Space) - - Triangle wave - 三角波 + + Pattern selector + - - Saw wave - のこぎり波 + + Track and step actions + - - Noise - ノイズ + + New pattern + - - Sync - 同期 + + Clone pattern + - - Ring modulation + + Add sample-track - - Filtered + + Add automation-track - - Test - テスト + + Remove steps + - - Pulse width: + + Add steps - - - SideBarWidget - - Close - 閉じる + + Clone Steps + - Song - - - Tempo - テンポ - + lmms::gui::PeakControllerDialog - - Master volume - マスター音量 + + PEAK + - - Master pitch - 主ピッチ + + LFO Controller + + + + lmms::gui::PeakControllerEffectControlDialog - - Aborting project load + + BASE - - Project file contains local paths to plugins, which could be used to run malicious code. + + Base: - - Can't load project: Project file contains local paths to plugins. + + AMNT - - LMMS Error report - LMMS エラー報告 + + Modulation amount: + - - (repeated %1 times) + + MULT - - The following errors occurred while loading: + + Amount multiplicator: - - - SongEditor - - Could not open file - ファイルを開くことができませんでした + + ATCK + - - Could not open file %1. You probably have no permissions to read this file. - Please make sure to have at least read permissions to the file and try again. - ファイルを読み込む権限がないため %1 を開くことができませんでした。 -ファイルを読み込みむ権限を付与してから再試行して下さい。 + + Attack: + - - Operation denied + + DCAY - - A bundle folder with that name already eists on the selected path. Can't overwrite a project bundle. Please select a different name. + + Release: - - - - Error - エラー + + TRSH + - - Couldn't create bundle folder. + + Treshold: - - Couldn't create resources folder. + + Mute output - - Failed to copy resources. + + Absolute value + + + lmms::gui::PeakIndicator - - Could not write file - ファイルに書き込むことができませんでした + + -inf + + + + lmms::gui::PianoRoll - - Could not open %1 for writing. You probably are not permitted towrite to this file. Please make sure you have write-access to the file and try again. + + Note Velocity - - This %1 was created with LMMS %2 + + Note Panning - - Error in file - ファイルエラー + + Mark/unmark current semitone + - - The file %1 seems to contain errors and therefore can't be loaded. - ファイル %1 はエラーを含んでいるようで、読み込めません。 + + Mark/unmark all corresponding octave semitones + - - Version difference - バージョンの相違 + + Mark current scale + - - template - テンプレート + + Mark current chord + - - project - プロジェクト + + Unmark all + - - Tempo - テンポ + + Select all notes on this key + - - TEMPO - テンポ + + Note lock + - - Tempo in BPM + + Last note - - High quality mode - 高品質モード + + No key + - - - - Master volume - マスター音量 + + No scale + - - - - Master pitch - 主ピッチ + + No chord + - - Value: %1% - 値: %1% + + Nudge + - - Value: %1 semitones + + Snap - - - SongEditorWindow - - Song-Editor - ソング エディター + + Velocity: %1% + - - Play song (Space) - 曲を再生 (Space) + + Panning: %1% left + - - Record samples from Audio-device - オーディオデバイスからサンプルを録音 + + Panning: %1% right + - - Record samples from Audio-device while playing song or BB track + + Panning: center - - Stop song (Space) - 曲を停止 (Space) + + Glue notes failed + - - Track actions + + Please select notes to glue first. - - Add beat/bassline - ビート/ベースラインを追加 + + Please open a clip by double-clicking on it! + - - Add sample-track - サンプルトラックを追加 + + + Please enter a new value between %1 and %2: + + + + lmms::gui::PianoRollWindow - - Add automation-track - オートメーション トラックを追加 + + Play/pause current clip (Space) + - - Edit actions - 編集機能 + + Record notes from MIDI-device/channel-piano + - - Draw mode - 描画モード + + Record notes from MIDI-device/channel-piano while playing song or pattern track + - - Knife mode (split sample clips) + + Record notes from MIDI-device/channel-piano, one step at the time - - Edit mode (select and move) - 編集モード (選択と移動) + + Stop playing of current clip (Space) + - - Timeline controls - タイムラインコントロール + + Edit actions + - - Bar insert controls + + Draw mode (Shift+D) - - Insert bar + + Erase mode (Shift+E) - - Remove bar + + Select mode (Shift+S) - - Zoom controls - ズームコントロール + + Pitch Bend mode (Shift+T) + - - Horizontal zooming - 水平方向にズーム + + Quantize + - - Snap controls + + Quantize positions - - - Clip snapping size + + Quantize lengths - - Toggle proportional snap on/off + + File actions - - Base snapping size + + Import clip - - - StepRecorderWidget - - Hint - ヒント + + + Export clip + - - Move recording curser using <Left/Right> arrows + + Copy paste controls - - - SubWindow - - Close - 閉じる + + Cut (%1+X) + - - Maximize - 最大化 + + Copy (%1+C) + - - Restore - 復元 + + Paste (%1+V) + - - - TabWidget - - - Settings for %1 - %1の設定 + + Timeline controls + - - - TemplatesMenu - - New from template - テンプレートから新規プロジェクト作成 + + Glue + - - - TempoSyncKnob - - - Tempo Sync - テンポの同期 + + Knife + - - No Sync - 非同期 + + Fill + - - Eight beats - 8ビート + + Cut overlaps + - - Whole note - 全音符 + + Min length as last + - - Half note - 2分音符 + + Max length as last + - - Quarter note - 4分音符 + + Zoom and note controls + - - 8th note - 8分音符 + + Horizontal zooming + - - 16th note - 16分音符 + + Vertical zooming + - - 32nd note - 32分音符 + + Quantization + - - Custom... - カスタム... + + Note length + - - Custom - カスタム + + Key + - - Synced to Eight Beats - 8ビートに同期 + + Scale + - - Synced to Whole Note - 全音符に同期 + + Chord + - - Synced to Half Note - 2分音符に同期 + + Snap mode + - - Synced to Quarter Note - 4分音符に同期 + + Clear ghost notes + - - Synced to 8th Note - 8分音符に同期 + + + Piano-Roll - %1 + - - Synced to 16th Note - 16分音符に同期 + + + Piano-Roll - no clip + - - Synced to 32nd Note - 32分音符に同期 + + + XML clip file (*.xpt *.xptz) + - - - TimeDisplayWidget - - Time units + + Export clip success - - MIN - + + Clip saved to %1 + - - SEC - + + Import clip. + - - MSEC - ミリ秒 + + You are about to import a clip, this will overwrite your current clip. Do you want to continue? + - - BAR - 小節 + + Open clip + - - BEAT - + + Import clip success + - - TICK - ティック + + Imported clip %1! + - TimeLineWidget + lmms::gui::PianoView - - Auto scrolling - 自動でスクロール + + Base note + - - Loop points - ループポイント + + First note + - - After stopping go back to beginning + + Last note + + + lmms::gui::PluginBrowser - - After stopping go back to position at which playing was started - 停止後は再生を開始した地点へ戻る + + Instrument Plugins + - - After stopping keep position - 停止後はその地点のままにする + + Instrument browser + - - Hint - ヒント + + Drag an instrument into either the Song Editor, the Pattern Editor or an existing instrument track. + - - Press <%1> to disable magnetic loop points. - <%1> を押してマグネチックループポイントを無効にします。 + + Search + - Track - - - Mute - ミュート - + lmms::gui::PluginDescWidget - - Solo - ソロ + + Send to new instrument track + - TrackContainer + lmms::gui::ProjectNotes - - Couldn't import file - ファイルをインポートすることができませんでした + + Project Notes + - - Couldn't find a filter for importing file %1. -You should convert this file into a format supported by LMMS using another software. - インポート中のファイル %1 のフィルターが見つかりませんでした。 -他のソフトウェアで、このファイルをLMMSがサポートしてる形式に変換してください。 + + Enter project notes here + - - Couldn't open file - ファイルを開くことができませんでした + + Edit Actions + - - Couldn't open file %1 for reading. -Please make sure you have read-permission to the file and the directory containing the file and try again! - ファイル %1 を読み込み用に開くことができませんでした。 -ファイルとファイルのディレクトリが読み込み可能かチェックしてから再度開いてください! + + &Undo + - - Loading project... - プロジェクトを読み込んでいます... + + %1+Z + - - - Cancel - キャンセル + + &Redo + - - - Please wait... - お待ちください... + + %1+Y + - - Loading cancelled - 読み込みがキャンセルされました + + &Copy + - - Project loading was cancelled. - プロジェクトの読み込みはキャンセルされました。 + + %1+C + - - Loading Track %1 (%2/Total %3) - トラックの読み込み中 %1 (%2/Total %3) + + Cu&t + - - Importing MIDI-file... - MIDIファイルをインポートしています... + + %1+X + - - - Clip - - Mute - ミュート + + &Paste + - - - ClipView - - Current position - 現在位置 + + %1+V + - - Current length - 現在の長さ + + Format Actions + - - - %1:%2 (%3:%4 to %5:%6) - %1:%2 (%3:%4 から %5:%6) + + &Bold + - - Press <%1> and drag to make a copy. - コピーするには<%1>を押しながらドラッグしてください。 + + %1+B + - - Press <%1> for free resizing. - フリーズ解除には<%1>を押してください。 + + &Italic + - - Hint - ヒント + + %1+I + - - Delete (middle mousebutton) - 削除 (マウス中ボタン) + + &Underline + - - Delete selection (middle mousebutton) + + %1+U - - Cut - 切り取り + + &Left + - - Cut selection + + %1+L - - Merge Selection + + C&enter - - Copy - コピー + + %1+E + - - Copy selection + + &Right - - Paste - 貼り付け + + %1+R + - - Mute/unmute (<%1> + middle click) - ミュート/ミュート解除 (<%1> + 中ボタンクリック) + + &Justify + - - Mute/unmute selection (<%1> + middle click) + + %1+J - - Set clip color + + &Color... + + + lmms::gui::RecentProjectsMenu - - Use track color + + &Recently Opened Projects - TrackContentWidget + lmms::gui::RenameDialog - - Paste - 貼り付け + + Rename... + - TrackOperationsWidget + lmms::gui::ReverbSCControlDialog - - Press <%1> while clicking on move-grip to begin a new drag'n'drop action. + + Input - - Actions + + Input gain: - - - Mute - ミュート + + Size + - - - Solo - ソロ + + Size: + - - After removing a track, it can not be recovered. Are you sure you want to remove track "%1"? + + Color - - Confirm removal + + Color: - - Don't ask again + + Output - - Clone this track - このトラックを複製 + + Output gain: + + + + lmms::gui::SaControlsDialog - - Remove this track - このトラックを削除 + + Pause + - - Clear this track - このトラックをクリア + + Pause data acquisition + - - Channel %1: %2 - FX %1: %2 + + Reference freeze + - - Assign to new mixer Channel - 新規FXチャンネルにアサインする + + Freeze current input as a reference / disable falloff in peak-hold mode. + - - Turn all recording on - すべての録音をオンにする + + Waterfall + - - Turn all recording off - すべての録音をオフにする + + Display real-time spectrogram + - - Change color - 色を変更 + + Averaging + - - Reset color to default - 色をデフォルトにリセット + + Enable exponential moving average + - - Set random color + + Stereo - - Clear clip colors + + Display stereo channels separately - - - TripleOscillatorView - - Modulate phase of oscillator 1 by oscillator 2 + + Peak hold - - Modulate amplitude of oscillator 1 by oscillator 2 + + Display envelope of peak values - - Mix output of oscillators 1 & 2 + + Logarithmic frequency - - Synchronize oscillator 1 with oscillator 2 - オシレーター 1と2 を同期 + + Switch between logarithmic and linear frequency scale + - - Modulate frequency of oscillator 1 by oscillator 2 + + + Frequency range - - Modulate phase of oscillator 2 by oscillator 3 + + Logarithmic amplitude - - Modulate amplitude of oscillator 2 by oscillator 3 + + Switch between logarithmic and linear amplitude scale - - Mix output of oscillators 2 & 3 + + + Amplitude range - - Synchronize oscillator 2 with oscillator 3 - オシレーター 2と3 を同期 + + + FFT block size + - - Modulate frequency of oscillator 2 by oscillator 3 + + + FFT window type - - Osc %1 volume: - Osc %1 の音量: + + Envelope res. + - - Osc %1 panning: - オシレーター %1 パニング: + + Increase envelope resolution for better details, decrease for better GUI performance. + - - Osc %1 coarse detuning: - オシレータ―の %1 コースデチューン: + + Maximum number of envelope points drawn per pixel: + - - semitones - 半音 + + Spectrum res. + - - Osc %1 fine detuning left: - オシレーター %1 のファインデチューン 左: + + Increase spectrum resolution for better details, decrease for better GUI performance. + - - - cents - cent + + Maximum number of spectrum points drawn per pixel: + - - Osc %1 fine detuning right: - オシレーター %1 のファインデチューン 右: + + Falloff factor + - - Osc %1 phase-offset: - オシレーター %1 のオフセットフェーズ : + + Decrease to make peaks fall faster. + - - - degrees - 度数 + + Multiply buffered value by + - - Osc %1 stereo phase-detuning: - オシレーター %1 のステレオ フェーズデチューン : + + Averaging weight + - - Sine wave - サイン波 + + Decrease to make averaging slower and smoother. + - - Triangle wave - 三角波 + + New sample contributes + - - Saw wave - のこぎり波 + + Waterfall height + - - Square wave - 矩形波 + + Increase to get slower scrolling, decrease to see fast transitions better. Warning: medium CPU usage. + - - Moog-like saw wave + + Number of lines to keep: - - Exponential wave + + Waterfall gamma - - White noise + + Decrease to see very weak signals, increase to get better contrast. - - User-defined wave - ユーザー定義波形 + + Gamma value: + + + + + Window overlap + + + + + Increase to prevent missing fast transitions arriving near FFT window edges. Warning: high CPU usage. + - - - VecControls - - Display persistence amount + + Number of times each sample is processed: - - Logarithmic scale + + Zero padding - - High quality + + Increase to get smoother-looking spectrum. Warning: high CPU usage. - - - VecControlsDialog - - HQ + + Processing buffer is - - Double the resolution and simulate continuous analog-like trace. + + steps larger than input block - - Log. scale + + Advanced settings - - Display amplitude on logarithmic scale to better see small values. + + Access advanced settings + + + lmms::gui::SampleClipView - - Persist. + + Double-click to open sample - - Trace persistence: higher amount means the trace will stay bright for longer time. + + Reverse sample - - Trace persistence + + Set as ghost in automation editor - VersionedSaveDialog + lmms::gui::SampleTrackView - - Increment version number - バージョン番号を大きくする + + Mixer channel + - - Decrement version number - バージョン番号を小さくする + + Track volume + - - Save Options + + Channel volume: - - already exists. Do you want to replace it? - すでに存在しています。置き換えますか? + + VOL + - - - VestigeInstrumentView - - - Open VST plugin - VSTプラグインを開く + + Panning + - - Control VST plugin from LMMS host + + Panning: - - Open VST plugin preset - VSTプラグインのプリセットを開く + + PAN + - - Previous (-) - 前 (-) + + %1: %2 + + + + lmms::gui::SampleTrackWindow - - Save preset - プリセットを保存 + + Sample volume + - - Next (+) - 次 (+) + + Volume: + - - Show/hide GUI - GUIを表示/非表示 + + VOL + - - Turn off all notes - すべてのノートをオフ + + Panning + - - DLL-files (*.dll) - DLL ファイル (*.dll) + + Panning: + - - EXE-files (*.exe) - EXE ファイル (*.exe) + + PAN + - - No VST plugin loaded - VSTプラグインは読み込まれていません + + Mixer channel + - - Preset - プリセット + + CHANNEL + + + + lmms::gui::SaveOptionsWidget - - by + + Discard MIDI connections - - - VST plugin control - - VST プラグイン コントロール + + Save As Project Bundle (with resources) + - VstEffectControlDialog + lmms::gui::SetupDialog - - Show/hide - 表示/非表示 + + Settings + - - Control VST plugin from LMMS host + + + General - - Open VST plugin preset - VSTプラグインのプリセットを開く + + Graphical user interface (GUI) + - - Previous (-) - 前 (-) + + Display volume as dBFS + - - Next (+) - 次 (+) + + Enable tooltips + - - Save preset - プリセットを保存 + + Enable master oscilloscope by default + - - - Effect by: + + Enable all note labels in piano roll - - &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> - &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> + + Enable compact track buttons + - - - VstPlugin - - - The VST plugin %1 could not be loaded. - VSTプラグイン %1 は読み込めません。 + + Enable one instrument-track-window mode + - - Open Preset - プリセットを開く + + Show sidebar on the right-hand side + - - - Vst Plugin Preset (*.fxp *.fxb) - Vstプラグインプリセット (*.fxp *.fxb) + + Let sample previews continue when mouse is released + - - : default - : デフォルト + + Mute automation tracks during solo + - - Save Preset - プリセットを保存 + + Show warning when deleting tracks + - - .fxp - .fxp + + Show warning when deleting a mixer channel that is in use + - - .FXP - .FXP + + Dual-button + - - .FXB - .FXB + + Grab closest + - - .fxb - .fxb + + Handles + - - Loading plugin - プラグインを読み込み中 + + Loop edit mode + - - Please wait while loading VST plugin... - VSTプラグインの読み込みの間お待ちください... + + Projects + - - - WatsynInstrument - - Volume A1 - 音量 A1 + + Compress project files by default + - - Volume A2 - 音量 A2 + + Create a backup file when saving a project + - - Volume B1 - 音量 B1 + + Reopen last project on startup + - - Volume B2 - 音量B2 + + Language + - - Panning A1 - パニングA1 + + + Performance + - - Panning A2 - パニングA2 + + Autosave + - - Panning B1 - パニングB1 + + Enable autosave + - - Panning B2 - パニングB2 + + Allow autosave while playing + - - Freq. multiplier A1 + + User interface (UI) effects vs. performance - - Freq. multiplier A2 + + Smooth scroll in song editor - - Freq. multiplier B1 + + Display playback cursor in AudioFileProcessor - - Freq. multiplier B2 + + Plugins - - Left detune A1 + + VST plugins embedding: - - Left detune A2 + + No embedding - - Left detune B1 + + Embed using Qt API - - Left detune B2 + + Embed using native Win32 API - - Right detune A1 + + Embed using XEmbed protocol - - Right detune A2 + + Keep plugin windows on top when not embedded - - Right detune B1 + + Keep effects running even without input - - Right detune B2 + + + Audio - - A-B Mix + + Audio interface - - A-B Mix envelope amount + + Buffer size - - A-B Mix envelope attack + + Reset to default value - - A-B Mix envelope hold + + + MIDI - - A-B Mix envelope decay + + MIDI interface - - A1-B2 Crosstalk + + Automatically assign MIDI controller to selected track - - A2-A1 modulation + + Behavior when recording - - B2-B1 modulation + + Auto-quantize notes in Piano Roll - - Selected graph - 選択されたグラフ + + If enabled, notes will be automatically quantized when recording them from a MIDI controller. If disabled, they are always recorded at the highest possible resolution. + - - - WatsynView - - - - - Volume - 音量 + + + Paths + + + + + LMMS working directory + - - - - - Panning - パニング + + VST plugins directory + - - - - - Freq. multiplier + + LADSPA plugins directories - - - - - Left detune + + SF2 directory - - - - - - - - - cents - セント + + Default SF2 + - - - - - Right detune + + GIG directory - - A-B Mix + + Theme directory - - Mix envelope amount + + Background artwork - - Mix envelope attack + + Some changes require restarting. - - Mix envelope hold + + OK - - Mix envelope decay + + Cancel - - Crosstalk + + minutes - - Select oscillator A1 + + minute - - Select oscillator A2 + + Disabled - - Select oscillator B1 + + Autosave interval: %1 - - Select oscillator B2 + + The currently selected value is not a power of 2 (32, 64, 128, 256). Some plugins may not be available. - - Mix output of A2 to A1 + + The currently selected value is less than or equal to 32. Some plugins may not be available. - - Modulate amplitude of A1 by output of A2 + + Frames: %1 +Latency: %2 ms - - Ring modulate A1 and A2 + + Choose the LMMS working directory - - Modulate phase of A1 by output of A2 + + Choose your VST plugins directory - - Mix output of B2 to B1 + + Choose your LADSPA plugins directory - - Modulate amplitude of B1 by output of B2 + + Choose your SF2 directory - - Ring modulate B1 and B2 + + Choose your default SF2 - - Modulate phase of B1 by output of B2 + + Choose your GIG directory - - - - - Draw your own waveform here by dragging your mouse on this graph. - グラフの上でマウスをドラッグして波形を描きます。 + + Choose your theme directory + - - Load waveform - 波形の読み込み + + Choose your background picture + + + + lmms::gui::Sf2InstrumentView - - Load a waveform from a sample file - 波形をサンプルファイルから取り込む + + + Open SoundFont file + - - Phase left + + Choose patch - - Shift phase by -15 degrees + + Gain: - - Phase right + + Apply reverb (if supported) - - Shift phase by +15 degrees + + Room size: - - - Normalize - ノーマライズ + + Damping: + - - - Invert - 反転 + + Width: + - - - Smooth + + + Level: - - - Sine wave - サイン波 + + Apply chorus (if supported) + - - - - Triangle wave - 三角波 + + Voices: + - - Saw wave - のこぎり波 + + Speed: + - - - Square wave - 矩形波 + + Depth: + + + + + SoundFont Files (*.sf2 *.sf3) + - Xpressive + lmms::gui::SidInstrumentView - - Selected graph - 選択されたグラフ + + Volume: + - - A1 + + Resonance: - - A2 + + + Cutoff frequency: - - A3 + + High-pass filter - - W1 smoothing + + Band-pass filter - - W2 smoothing + + Low-pass filter - - W3 smoothing + + Voice 3 off - - Panning 1 - パン 1 + + MOS6581 SID + - - Panning 2 - パン 2 + + MOS8580 SID + - - Rel trans + + + Attack: - - - XpressiveView - - Draw your own waveform here by dragging your mouse on this graph. - グラフの上でマウスをドラッグして波形を描きます。 + + + Decay: + - - Select oscillator W1 + + Sustain: - - Select oscillator W2 + + + Release: - - Select oscillator W3 + + Pulse Width: - - Select output O1 + + Coarse: - - Select output O2 + + Pulse wave - - Open help window + + Triangle wave - - - Sine wave - サイン波 + + Saw wave + - - - Moog-saw wave + + Noise - - - Exponential wave + + Sync - - - Saw wave - のこぎり波 + + Ring modulation + - - - User-defined wave - ユーザー定義波形 + + Filtered + - - - Triangle wave - 三角波 + + Test + - - - Square wave - 矩形波 + + Pulse width: + + + + lmms::gui::SideBarWidget - - - White noise + + Close + + + lmms::gui::SlicerTView - - WaveInterpolate + + Slice snap - - ExpressionValid + + Set slice snapping for detection - - General purpose 1: + + Sync sample - - General purpose 2: + + Enable BPM sync - - General purpose 3: + + Original sample BPM - - O1 panning: - オシレーター 1 のパン: + + Threshold used for slicing + - - O2 panning: - オシレーター 2 のパン + + Fade Out per note in milliseconds + - - Release transition: + + Copy midi pattern to clipboard - - Smoothness + + Open sample selector - - - ZynAddSubFxInstrument - - Portamento + + Reset slices - - Filter frequency + + Threshold - - Filter resonance + + Fade Out - - Bandwidth + + Reset - - FM gain + + Midi - - Resonance center frequency + + BPM - - Resonance bandwidth + + Snap + + + lmms::gui::SlicerTWaveform - - Forward MIDI control change events + + Click to load sample - ZynAddSubFxView + lmms::gui::SongEditor - - Portamento: + + Could not open file - - PORT + + Could not open file %1. You probably have no permissions to read this file. + Please make sure to have at least read permissions to the file and try again. - - Filter frequency: + + Operation denied - - FREQ - 周波数 + + A bundle folder with that name already eists on the selected path. Can't overwrite a project bundle. Please select a different name. + - - Filter resonance: + + + + Error - - RES + + Couldn't create bundle folder. - - Bandwidth: + + Couldn't create resources folder. - - BW + + Failed to copy resources. - - FM gain: + + + Could not write file - - FM GAIN + + Could not open %1 for writing. You probably are not permitted to write to this file. Please make sure you have write-access to the file and try again. + + + + + An unknown error has occurred and the file could not be saved. + + + + + Error in file + + + + + The file %1 seems to contain errors and therefore can't be loaded. - - Resonance center frequency: + + template - - RES CF + + project - - Resonance bandwidth: + + Version difference - - RES BW + + This %1 was created with LMMS %2 - - Forward MIDI control changes + + Zoom - - Show GUI - GUI を表示 + + Tempo + - - - AudioFileProcessor - - Amplify + + TEMPO - - Start of sample - サンプルの開始位置 + + Tempo in BPM + - - End of sample - サンプルの終了位置 + + + + Master volume + - - Loopback point + + + + Global transposition - - Reverse sample - サンプルをリバース + + 1/%1 Bar + - - Loop mode + + %1 Bars - - Stutter + + Value: %1% - - Interpolation mode + + Value: %1 keys + + + lmms::gui::SongEditorWindow - - None + + Song-Editor - - Linear + + Play song (Space) - - Sinc + + Record samples from Audio-device - - Sample not found: %1 - サンプルが見つかりませんでした: %1 + + Record samples from Audio-device while playing song or pattern track + - - - BitInvader - - Sample length - サンプルの長さ + + Stop song (Space) + - - - BitInvaderView - - Sample length - サンプルの長さ + + Track actions + - - Draw your own waveform here by dragging your mouse on this graph. - グラフの上でマウスをドラッグして波形を描きます。 + + Add pattern-track + - - - Sine wave - サイン波 + + Add sample-track + - - - Triangle wave - 三角波 + + Add automation-track + - - - Saw wave - のこぎり波 + + Edit actions + - - - Square wave - 矩形波 + + Draw mode + - - - White noise + + Knife mode (split sample clips) - - - User-defined wave - ユーザー定義波形 + + Edit mode (select and move) + - - - Smooth waveform + + Timeline controls - - Interpolation + + Bar insert controls - - Normalize - ノーマライズ + + Insert bar + - - - DynProcControlDialog - - INPUT - 入力 + + Remove bar + - - Input gain: - 入力ゲイン: + + Zoom controls + - - OUTPUT - 出力 + + + Zoom + - - Output gain: - 出力ゲイン: + + Snap controls + - - ATTACK + + + Clip snapping size - - Peak attack time: + + Toggle proportional snap on/off - - RELEASE + + Base snapping size + + + lmms::gui::StepRecorderWidget - - Peak release time: + + Hint - - - Reset wavegraph - 波形をリセット + + Move recording curser using <Left/Right> arrows + + + + lmms::gui::StereoEnhancerControlDialog - - - Smooth wavegraph + + WIDTH - - - Increase wavegraph amplitude by 1 dB + + Width: + + + lmms::gui::StereoMatrixControlDialog - - - Decrease wavegraph amplitude by 1 dB + + Left to Left Vol: - - Stereo mode: maximum + + Left to Right Vol: - - Process based on the maximum of both stereo channels + + Right to Left Vol: - - Stereo mode: average + + Right to Right Vol: + + + lmms::gui::SubWindow - - Process based on the average of both stereo channels + + Close - - Stereo mode: unlinked + + Maximize - - Process each stereo channel independently + + Restore - DynProcControls - - - Input gain - 入力ゲイン - + lmms::gui::TapTempoView - - Output gain - 出力ゲイン + + 0 + - - Attack time + + + Precision - - Release time + + Display in high precision - - Stereo mode - ステレオモード + + 0.0 ms + - - - graphModel - - Graph - グラフ + + Mute metronome + - - - KickerInstrument - - Start frequency + + Mute - - End frequency + + BPM in milliseconds - - Length - 長さ + + 0 ms + - - Start distortion + + Frequency of BPM - - End distortion + + 0.0000 hz - - Gain - ゲイン + + Reset + - - Envelope slope + + Reset counter and sidebar information - - Noise - ノイズ + + Sync + - - Click + + Sync with project tempo - - Frequency slope + + %1 ms - - Start from note + + %1 hz + + + lmms::gui::TemplatesMenu - - End to note + + New from template - KickerInstrumentView + lmms::gui::TempoSyncBarModelEditor - - Start frequency: + + + Tempo Sync - - End frequency: + + No Sync - - Frequency slope: + + Eight beats - - Gain: - ゲイン: + + Whole note + - - Envelope length: + + Half note - - Envelope slope: + + Quarter note - - Click: + + 8th note - - Noise: - ノイズ: + + 16th note + - - Start distortion: + + 32nd note - - End distortion: + + Custom... - - - LadspaBrowserView - - - Available Effects - 利用可能なエフェクト + + Custom + - - - Unavailable Effects - 利用不可なエフェクト + + Synced to Eight Beats + - - - Instruments - 楽器 + + Synced to Whole Note + - - - Analysis Tools - 解析ツール + + Synced to Half Note + - - - Don't know - 不明なツール + + Synced to Quarter Note + - - Type: - 種類: + + Synced to 8th Note + - - - LadspaDescription - - Plugins - プラグイン + + Synced to 16th Note + - - Description - 説明 + + Synced to 32nd Note + - LadspaPortDialog + lmms::gui::TempoSyncKnob - - Ports + + + Tempo Sync + + + + + No Sync + + + + + Eight beats - - Name - 名前 + + Whole note + - - Rate - レート + + Half note + - - Direction - 向き + + Quarter note + - - Type - 種類 + + 8th note + - - Min < Default < Max - 最小 < デフォルト < 最大 + + 16th note + - - Logarithmic + + 32nd note - - SR Dependent + + Custom... - - Audio - オーディオ + + Custom + - - Control - コントロール + + Synced to Eight Beats + - - Input - 入力 + + Synced to Whole Note + - - Output - 出力 + + Synced to Half Note + - - Toggled + + Synced to Quarter Note - - Integer - 整数 + + Synced to 8th Note + - - Float - フロート + + Synced to 16th Note + - - - Yes - はい + + Synced to 32nd Note + - Lb302Synth + lmms::gui::TimeDisplayWidget - - VCF Cutoff Frequency - VCF カットオフ周波数 + + Time units + - - VCF Resonance - VCF レゾナンス + + MIN + - - VCF Envelope Mod + + SEC - - VCF Envelope Decay + + MSEC - - Distortion - ディストーション + + BAR + - - Waveform - 波形 + + BEAT + - - Slide Decay - スライドディケイ + + TICK + + + + lmms::gui::TimeLineWidget - - Slide - スライド + + Auto scrolling + - - Accent - アクセント + + Stepped auto scrolling + - - Dead - デッド + + Continuous auto scrolling + - - 24dB/oct Filter - 24dB/オクターブフィルター + + Auto scrolling disabled + - - - Lb302SynthView - - Cutoff Freq: - カットオフ周波数: + + Loop points + - - Resonance: - レゾナンス: + + After stopping go back to beginning + - - Env Mod: + + After stopping go back to position at which playing was started - - Decay: - ディケイ: + + After stopping keep position + - - 303-es-que, 24dB/octave, 3 pole filter + + Hint - - Slide Decay: + + Press <%1> to disable magnetic loop points. - - DIST: + + Set loop begin here - - Saw wave - のこぎり波 + + Set loop end here + - - Click here for a saw-wave. + + Loop edit mode (hold shift) - - Triangle wave - 三角波 + + Dual-button + - - Click here for a triangle-wave. - クリックして三角波を使用します。 + + Grab closest + - - Square wave - 矩形波 + + Handles + + + + + lmms::gui::TrackContentWidget + + + Paste + + + + lmms::gui::TrackOperationsWidget - - Click here for a square-wave. - クリックして矩形波を使用します。 + + Press <%1> while clicking on move-grip to begin a new drag'n'drop action. + - - Rounded square wave + + Actions - - Click here for a square-wave with a rounded end. + + + Mute - - Moog wave - Moog + + + Solo + - - Click here for a moog-like wave. - クリックしてMoog波を使用します。 + + After removing a track, it can not be recovered. Are you sure you want to remove track "%1"? + - - Sine wave - サイン波 + + Confirm removal + - - Click for a sine-wave. - クリックしてサイン波を使用します。 + + Don't ask again + - - - White noise wave - ホワイトノイズ波 + + Clone this track + - - Click here for an exponential wave. + + Remove this track - - Click here for white-noise. - クリックしてホワイトノイズを使用します。 + + Clear this track + - - Bandlimited saw wave + + Channel %1: %2 - - Click here for bandlimited saw wave. + + Assign to new Mixer Channel - - Bandlimited square wave + + Turn all recording on - - Click here for bandlimited square wave. + + Turn all recording off - - Bandlimited triangle wave + + Track color - - Click here for bandlimited triangle wave. + + Change - - Bandlimited moog saw wave + + Reset - - Click here for bandlimited moog saw wave. + + Pick random + + + + + Reset clip colors - MalletsInstrument + lmms::gui::TripleOscillatorView - - Hardness + + Modulate phase of oscillator 1 by oscillator 2 - - Position - 位置 + + Modulate amplitude of oscillator 1 by oscillator 2 + - - Vibrato gain + + Mix output of oscillators 1 & 2 - - Vibrato frequency + + Synchronize oscillator 1 with oscillator 2 - - Stick mix + + Modulate frequency of oscillator 1 by oscillator 2 - - Modulator + + Modulate phase of oscillator 2 by oscillator 3 - - Crossfade + + Modulate amplitude of oscillator 2 by oscillator 3 - - LFO speed - LFO speed + + Mix output of oscillators 2 & 3 + - - LFO depth + + Synchronize oscillator 2 with oscillator 3 - - ADSR - ADSR + + Modulate frequency of oscillator 2 by oscillator 3 + - - Pressure + + Osc %1 volume: - - Motion + + Osc %1 panning: - - Speed - 速さ + + Osc %1 coarse detuning: + - - Bowed + + semitones - - Spread + + Osc %1 fine detuning left: - - Marimba - マリンバ + + + cents + - - Vibraphone - ビブラフォン + + Osc %1 fine detuning right: + - - Agogo - アゴゴ + + Osc %1 phase-offset: + - - Wood 1 + + + degrees - - Reso + + Osc %1 stereo phase-detuning: - - Wood 2 + + Sine wave - - Beats + + Triangle wave - - Two fixed + + Saw wave - - Clump + + Square wave - - Tubular bells + + Moog-like saw wave - - Uniform bar + + Exponential wave - - Tuned bar + + White noise - - Glass + + User-defined wave - - Tibetan bowl + + Use alias-free wavetable oscillators. - MalletsInstrumentView + lmms::gui::VecControlsDialog - - Instrument - 楽器 + + HQ + - - Spread + + Double the resolution and simulate continuous analog-like trace. - - Spread: + + Log. scale - - Missing files - ファイルがありません + + Display amplitude on logarithmic scale to better see small values. + - - Your Stk-installation seems to be incomplete. Please make sure the full Stk-package is installed! - Stkのインストールが未完了のようです。Stkパッケージがすべてインストールされていることを確認してください! + + Persist. + - - Hardness + + Trace persistence: higher amount means the trace will stay bright for longer time. - - Hardness: + + Trace persistence + + + lmms::gui::VersionedSaveDialog - - Position - 位置 + + Increment version number + - - Position: - 位置: + + Decrement version number + - - Vibrato gain + + Save Options - - Vibrato gain: + + already exists. Do you want to replace it? + + + lmms::gui::VestigeInstrumentView - - Vibrato frequency + + + Open VST plugin - - Vibrato frequency: + + Control VST plugin from LMMS host - - Stick mix + + Open VST plugin preset - - Stick mix: + + Previous (-) - - Modulator + + Save preset - - Modulator: + + Next (+) - - Crossfade + + Show/hide GUI - - Crossfade: + + Turn off all notes - - LFO speed - LFO speed + + DLL-files (*.dll) + - - LFO speed: - LFO speed: + + EXE-files (*.exe) + - - LFO depth + + SO-files (*.so) - - LFO depth: + + No VST plugin loaded - - ADSR - ADSR + + Preset + - - ADSR: - ADSR: + + by + - - Pressure + + - VST plugin control + + + lmms::gui::VibedView - - Pressure: + + Enable waveform - - Speed - 速さ + + + Smooth waveform + - - Speed: - 速さ: + + + Normalize waveform + - - - ManageVSTEffectView - - - VST parameter control - - VST パラメータ コントロール + + + Sine wave + - - VST sync - VSTを同期 + + + Triangle wave + - - - Automated - オートメーション済 + + + Saw wave + - - Close - 閉じる + + + Square wave + - - - ManageVestigeInstrumentView - - - - VST plugin control - - VST プラグイン コントロール + + + White noise + - - VST Sync - VST同期 + + + User-defined wave + - - - Automated - オートメーション済 + + String volume: + - - Close - 閉じる + + String stiffness: + - - - OrganicInstrument - - Distortion - ディストーション + + Pick position: + - - Volume - 音量 + + Pickup position: + - - - OrganicInstrumentView - - Distortion: + + String panning: - - Volume: - 音量: + + String detune: + - - Randomise + + String fuzziness: - - - Osc %1 waveform: - Osc %1 の波形: + + String length: + - - Osc %1 volume: - Osc %1 の音量: + + Impulse Editor + - - Osc %1 panning: - オシレーター %1 パニング: + + Impulse + - - Osc %1 stereo detuning + + Enable/disable string - - cents - cent + + Octave + - - Osc %1 harmonic: + + String - PatchesDialog + lmms::gui::VstEffectControlDialog - - Qsynth: Channel Preset + + Show/hide - - Bank selector + + Control VST plugin from LMMS host - - Bank - バンク + + Open VST plugin preset + - - Program selector + + Previous (-) - - Patch - パッチ + + Next (+) + - - Name - 名前 + + Save preset + - - OK - OK + + + Effect by: + - - Cancel - キャンセル + + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> + - Sf2Instrument - - - Bank - バンク - - - - Patch - パッチ - - - - Gain - ゲイン - + lmms::gui::WatsynView - - Reverb - リバーブ + + + + + Volume + - - Reverb room size - ルームサイズ + + + + + Panning + - - Reverb damping - 残響 + + + + + Freq. multiplier + - - Reverb width + + + + + Left detune - - Reverb level - リバーブのレベル + + + + + + + + + cents + - - Chorus - コーラス + + + + + Right detune + - - Chorus voices + + A-B Mix - - Chorus level + + Mix envelope amount - - Chorus speed + + Mix envelope attack - - Chorus depth + + Mix envelope hold - - A soundfont %1 could not be loaded. - サウンドフォント %1 を読み込めませんでした。 + + Mix envelope decay + - - - Sf2InstrumentView - - - Open SoundFont file - サウンドフォント ファイルを開く + + Crosstalk + - - Choose patch - パッチを選択してください + + Select oscillator A1 + - - Gain: - ゲイン: + + Select oscillator A2 + - - Apply reverb (if supported) - リバーブを適用 (可能であれば) + + Select oscillator B1 + - - Room size: + + Select oscillator B2 - - Damping: + + Mix output of A2 to A1 - - Width: + + Modulate amplitude of A1 by output of A2 - - - Level: + + Ring modulate A1 and A2 - - Apply chorus (if supported) - コーラスを適用 (可能であれば) + + Modulate phase of A1 by output of A2 + - - Voices: + + Mix output of B2 to B1 - - Speed: - 速さ: + + Modulate amplitude of B1 by output of B2 + - - Depth: - ビット深度: + + Ring modulate B1 and B2 + - - SoundFont Files (*.sf2 *.sf3) - サウンドフォントファイル (*.sf2 *.sf3) + + Modulate phase of B1 by output of B2 + - - - SfxrInstrument - - Wave + + + + + Draw your own waveform here by dragging your mouse on this graph. - - - StereoEnhancerControlDialog - - WIDTH + + Load waveform - - Width: + + Load a waveform from a sample file - - - StereoEnhancerControls - - Width + + Phase left - - - StereoMatrixControlDialog - - Left to Left Vol: - 左から左の音量: + + Shift phase by -15 degrees + - - Left to Right Vol: - 左から右の音量: + + Phase right + - - Right to Left Vol: - 右から左の音量: + + Shift phase by +15 degrees + - - Right to Right Vol: - 右から右の音量: + + + Normalize + - - - StereoMatrixControls - - Left to Left - 左から左 + + + Invert + - - Left to Right - 左から右 + + + Smooth + - - Right to Left - 右から左 + + + Sine wave + - - Right to Right - 右から右 + + + + Triangle wave + - - - VestigeInstrument - - Loading plugin - プラグインを読み込んでいます + + Saw wave + - - Please wait while loading the VST plugin... - VSTプラグインの読み込みの間はお待ちください... + + + Square wave + - Vibed + lmms::gui::WaveShaperControlDialog - - String %1 volume - ストリング %1 の音量 + + INPUT + - - String %1 stiffness + + Input gain: - - Pick %1 position + + OUTPUT - - Pickup %1 position + + Output gain: - - String %1 panning + + + Reset wavegraph - - String %1 detune + + + Smooth wavegraph - - String %1 fuzziness + + + Increase wavegraph amplitude by 1 dB - - String %1 length + + + Decrease wavegraph amplitude by 1 dB - - Impulse %1 - インパルス %1 + + Clip input + - - String %1 + + Clip input signal to 0 dB - VibedView + lmms::gui::XpressiveView - - String volume: + + Draw your own waveform here by dragging your mouse on this graph. - - String stiffness: + + Select oscillator W1 - - Pick position: + + Select oscillator W2 - - Pickup position: + + Select oscillator W3 - - String panning: + + Select output O1 - - String detune: + + Select output O2 - - String fuzziness: + + Open help window - - String length: + + + Sine wave - - Impulse + + + Moog-saw wave - - Octave - オクターブ - - - - Impulse Editor + + + Exponential wave - - Enable waveform - 波形を有効 - - - - Enable/disable string + + + Saw wave - - String + + + User-defined wave - - - Sine wave - サイン波 - - - - + + Triangle wave - 三角波 - - - - - Saw wave - のこぎり波 + - - + + Square wave - 矩形波 + - - + + White noise - - - User-defined wave - ユーザー定義波形 - - - - - Smooth waveform + + WaveInterpolate - - - Normalize waveform - 波形をノーマライズ + + ExpressionValid + - - - VoiceObject - - Voice %1 pulse width - ボイス %1 のパルス幅 + + General purpose 1: + - - Voice %1 attack + + General purpose 2: - - Voice %1 decay + + General purpose 3: - - Voice %1 sustain + + O1 panning: - - Voice %1 release + + O2 panning: - - Voice %1 coarse detuning + + Release transition: - - Voice %1 wave shape + + Smoothness + + + lmms::gui::ZynAddSubFxView - - Voice %1 sync - ボイス %1 の同期 + + Portamento: + - - Voice %1 ring modulate + + PORT - - Voice %1 filtered + + Filter frequency: - - Voice %1 test + + FREQ - - - WaveShaperControlDialog - - INPUT - 入力 + + Filter resonance: + - - Input gain: - 入力ゲイン: + + RES + - - OUTPUT - 出力 + + Bandwidth: + - - Output gain: - 出力ゲイン: + + BW + - - - Reset wavegraph - 波形をリセット + + FM gain: + - - - Smooth wavegraph + + FM GAIN - - - Increase wavegraph amplitude by 1 dB + + Resonance center frequency: - - - Decrease wavegraph amplitude by 1 dB + + RES CF - - Clip input - 入力信号をクリップ + + Resonance bandwidth: + - - Clip input signal to 0 dB - 入力信号を0 dBでクリップさせる + + RES BW + - - - WaveShaperControls - - Input gain - 入力ゲイン + + Forward MIDI control changes + - - Output gain - 出力ゲイン + + Show GUI + - + \ No newline at end of file diff --git a/data/locale/ka.ts b/data/locale/ka.ts index 51eededf26b..bd789045749 100644 --- a/data/locale/ka.ts +++ b/data/locale/ka.ts @@ -5333,62 +5333,62 @@ Please make sure you have write permission to the file and the directory contain - MixerLine + MixerChannelView - + Channel send amount - + Move &left - + Move &right - + Rename &channel - + R&emove channel - + Remove &unused channels - + Set channel color - + Remove channel color - + Pick random channel color - MixerLineLcdSpinBox + MixerChannelLcdSpinBox - + Assign to: - + New mixer Channel diff --git a/data/locale/ko.ts b/data/locale/ko.ts index 43b99e7f437..b45bfb769f3 100644 --- a/data/locale/ko.ts +++ b/data/locale/ko.ts @@ -1,4 +1,4 @@ - + AboutDialog @@ -24,12 +24,12 @@ LMMS - easy music production for everyone. - LMMS - 누구나 쉽게 할 수 있는 음악 제작. + LMMS - 누구나 쉽게 음악을 제작할 수 있습니다. Copyright © %1. - Copyright © %1. + 저작권 © %1. @@ -62,8 +62,8 @@ If you're interested in translating LMMS in another language or want to improve existing translations, you're welcome to help us! Simply contact the maintainer! 송현진 (Hyunjin Song) <tteu.ingog@gmail.com> 방성범 (Bang Seongbeom) <bangseongbeom@gmail.com> - -LMMS를 다른 언어로 번역하고 싶다거나 기존 번역을 개선하고 싶다면 저희를 도와주세요! LMMS 관리자와의 연락을 통해 참여하실 수 있습니다. +이정희 (Junghee Lee) <daemul72@gmail.com> +LMMS를 다른 언어로 번역하고 싶다거나 기존 번역을 개선하고 싶다면 저희를 도와주세요! LMMS 관리자에게 연락하기만 하면 됩니다! @@ -72,954 +72,187 @@ LMMS를 다른 언어로 번역하고 싶다거나 기존 번역을 개선하고 - AmplifierControlDialog - - - VOL - 음량 - - - - Volume: - 음량: - - - - PAN - 패닝 - - - - Panning: - 패닝: - - - - LEFT - 왼쪽 - - - - Left gain: - 왼쪽 이득: - - - - RIGHT - 오른쪽 - - - - Right gain: - 오른쪽 이득: - - - - AmplifierControls - - - Volume - 음량 - - - - Panning - 패닝 - - - - Left gain - 왼쪽 이득 - - - - Right gain - 오른쪽 이득 - - - - AudioAlsaSetupWidget - - - DEVICE - 장치 - - - - CHANNELS - 채널 - - - - AudioFileProcessorView - - - Open sample - 샘플 파일 열기 - - - - Reverse sample - 샘플 역으로 - - - - Disable loop - 반복 비활성화 - - - - Enable loop - 반복 활성화 - - - - Enable ping-pong loop - - - - - Continue sample playback across notes - 샘플을 여러 음표에 걸쳐 계속 재생 - - - - Amplify: - 증폭: - - - - Start point: - 시작점: - - - - End point: - 끝점: - - - - Loopback point: - 루프 시작점: - - - - AudioFileProcessorWaveView - - - Sample length: - 샘플 길이: - - - - AudioJack - - - JACK client restarted - JACK 클라이언트 다시 시작됨 - - - - LMMS was kicked by JACK for some reason. Therefore the JACK backend of LMMS has been restarted. You will have to make manual connections again. - 알 수 없는 이유로 인해 LMMS와 JACK과의 연결이 끊겼습니다. LMMS의 JACK 드라이버를 다시 시작합니다. 수동으로 연결을 시도할 수도 있습니다. - - - - JACK server down - JACK 서버 다운됨 - - - - The JACK server seems to have been shutdown and starting a new instance failed. Therefore LMMS is unable to proceed. You should save your project and restart JACK and LMMS. - JACK 서버가 종료된 것 같습니다. 더 이상 작업을 진행할 수 없습니다. 프로젝트를 저장한 뒤 JACK과 LMMS를 다시 시작하세요. - - - - Client name - - - - - Channels - - - - - AudioOss - - - Device - - - - - Channels - - - - - AudioPortAudio::setupWidget - - - Backend - - - - - Device - - - - - AudioPulseAudio + AboutJuceDialog - - Device - + + About JUCE + JUCE 정보 - - Channels - + + <b>About JUCE</b> + <b>JUCE 정보</b> - - - AudioSdl::setupWidget - - Device - + + This program uses JUCE version 3.x.x. + 이 프로그램은 JUCE 버전 3.x.x를 사용합니다. - - - AudioSndio - - Device + + JUCE is an open-source cross-platform C++ application framework for creating high quality desktop and mobile applications. + +The core JUCE modules (juce_audio_basics, juce_audio_devices, juce_core and juce_events) are permissively licensed under the terms of the ISC license. +Other modules are covered by a GNU GPL 3.0 license. + +Copyright (C) 2022 Raw Material Software Limited. - - Channels - + + This program uses JUCE version + 이 프로그램은 JUCE 버전을 사용합니다. - AudioSoundIo::setupWidget - - - Backend - - + AudioDeviceSetupWidget - - Device + + [System Default] - AutomatableModel - - - &Reset (%1%2) - 초기화 (%1%2)(&R) - - - - &Copy value (%1%2) - 값 복사 (%1%2)(&C) - - - - &Paste value (%1%2) - 값 붙여넣기 (%1%2)(&P) - - - - &Paste value - 값 붙여넣기(&P) - - - - Edit song-global automation - 전역 오토메이션 편집 - + CarlaAboutW - - Remove song-global automation - 전역 오토메이션 제거 + + About Carla + Carla 정보 - - Remove all linked controls - 연결 제거 + + About + 정보 - - Connected to %1 - %1에 연결됨 + + About text here + 텍스트에 대한 정보 - - Connected to controller - 컨트롤러에 연결됨 + + Extended licensing here + 여기에서 확장된 라이선싱 - - Edit connection... - 연결 편집... + + Artwork + 아트워크 - - Remove connection - 연결 제거 + + Using KDE Oxygen icon set, designed by Oxygen Team. + Oxygen Team이 디자인한 KDE Oxygen 아이콘 세트를 사용합니다. - - Connect to controller... - 컨트롤러에 연결... + + Contains some knobs, backgrounds and other small artwork from Calf Studio Gear, OpenAV and OpenOctave projects. + Calf Studio Gear, OpenAV 및 OpenOctave 프로젝트의 노브, 배경 및 기타 작은 아트워크가 포함되어 있습니다. - - - AutomationEditor - - Edit Value - + + VST is a trademark of Steinberg Media Technologies GmbH. + VST는 Steinberg Media Technologies GmbH의 상표입니다. - - New outValue - + + Special thanks to António Saraiva for a few extra icons and artwork! + 몇 가지 추가 아이콘과 아트워크를 제공한 António Saraiva에게 특별한 감사를 드립니다! - - New inValue - + + The LV2 logo has been designed by Thorsten Wilms, based on a concept from Peter Shorthose. + LV2 로고는 Peter Shorthose의 컨셉을 바탕으로 Thorsten Wilms가 디자인했습니다. - - Please open an automation clip with the context menu of a control! - 컨트롤의 컨텍스트 메뉴에서 오토메이션 패턴을 여시기 바랍니다! + + MIDI Keyboard designed by Thorsten Wilms. + Thorsten Wilms가 디자인한 MIDI 키보드. - - - AutomationEditorWindow - - Play/pause current clip (Space) - 현재 패턴 재생/일시정지 (Space) + + Carla, Carla-Control and Patchbay icons designed by DoosC. + DoosC에서 디자인한 Carla, Carla-Control 및 Patchbay 아이콘입니다. - - Stop playing of current clip (Space) - 현재 패턴 정지 (Space) + + Features + 기능 - - Edit actions - 편집 동작 + + AU/AudioUnit: + AU/AudioUnit: - - Draw mode (Shift+D) - 그리기 모드 (Shift+D) + + LADSPA: + LADSPA: - - Erase mode (Shift+E) - 지우기 모드 (Shift+E) + + + + + + + + + TextLabel + TextLabel - - Draw outValues mode (Shift+C) - + + VST2: + VST2: - - Flip vertically - 상하 반전 + + DSSI: + DSSI: - - Flip horizontally - 좌우 반전 + + LV2: + LV2: - - Interpolation controls - + + VST3: + VST3: - - Discrete progression - 이산적 진행 + + OSC + OSC - - Linear progression - 선형 진행 + + Host URLs: + 호스트 URL: - - Cubic Hermite progression - 3차 에르미트 진행 + + Valid commands: + 올바른 명령: - - Tension value for spline - + + valid osc commands here + 여기에서 올바른 osc 명령 - - Tension: - + + Example: + 예시: - - Zoom controls - + + License + 라이선스 - - Horizontal zooming - 수평 줌 - - - - Vertical zooming - 수직 줌 - - - - Quantization controls - - - - - Quantization - - - - - - Automation Editor - no clip - 오토메이션 편집기 - 패턴 없음 - - - - - Automation Editor - %1 - 오토메이션 편집기 - %1 - - - - Model is already connected to this clip. - 대상이 이미 패턴에 연결되어 있습니다. - - - - AutomationClip - - - Drag a control while pressing <%1> - <%1> 키를 누른 채로 드래그 - - - - AutomationClipView - - - Open in Automation editor - 오토메이션 편집기에서 열기 - - - - Clear - 지우기 - - - - Reset name - 이름 초기화 - - - - Change name - 이름 바꾸기 - - - - Set/clear record - 녹음 설정/해제 - - - - Flip Vertically (Visible) - 상하 반전 - - - - Flip Horizontally (Visible) - 좌우 반전 - - - - %1 Connections - %1개의 연결 - - - - Disconnect "%1" - "%1" 연결 해제 - - - - Model is already connected to this clip. - 대상이 이미 패턴과 연결되어 있습니다. - - - - AutomationTrack - - - Automation track - 오토메이션 트랙 - - - - PatternEditor - - - Beat+Bassline Editor - 비트/베이스 라인 편집기 - - - - Play/pause current beat/bassline (Space) - 현재 비트/베이스 라인 재생/일시정지 (Space) - - - - Stop playback of current beat/bassline (Space) - 현재 비트/베이스 라인 정지 (Space) - - - - Beat selector - 비트 선택기 - - - - Track and step actions - - - - - Add beat/bassline - 비트/베이스 라인 추가 - - - - Clone beat/bassline clip - - - - - Add sample-track - 샘플 트랙 추가 - - - - Add automation-track - 오토메이션 트랙 추가 - - - - Remove steps - - - - - Add steps - - - - - Clone Steps - - - - - PatternClipView - - - Open in Beat+Bassline-Editor - 비트/베이스 라인 편집기에서 열기 - - - - Reset name - 이름 초기화 - - - - Change name - 이름 바꾸기 - - - - PatternTrack - - - Beat/Bassline %1 - 비트/베이스 라인 %1 - - - - Clone of %1 - %1의 복제 - - - - BassBoosterControlDialog - - - FREQ - 주파수 - - - - Frequency: - 주파수: - - - - GAIN - 이득 - - - - Gain: - 이득: - - - - RATIO - 비율 - - - - Ratio: - 비율: - - - - BassBoosterControls - - - Frequency - 주파수 - - - - Gain - 이득 - - - - Ratio - 비율 - - - - BitcrushControlDialog - - - IN - 입력 - - - - OUT - 출력 - - - - - GAIN - 이득 - - - - Input gain: - 입력 이득: - - - - NOISE - 잡음 - - - - Input noise: - 입력 잡음: - - - - Output gain: - 출력 이득: - - - - CLIP - 클리핑 - - - - Output clip: - 출력 클리핑: - - - - Rate enabled - - - - - Enable sample-rate crushing - - - - - Depth enabled - - - - - Enable bit-depth crushing - - - - - FREQ - 주파수 - - - - Sample rate: - 샘플 레이트: - - - - STEREO - 스테레오 - - - - Stereo difference: - 좌우 차이: - - - - QUANT - - - - - Levels: - - - - - BitcrushControls - - - Input gain - 입력 이득 - - - - Input noise - - - - - Output gain - 출력 이득 - - - - Output clip - 출력 클리핑 - - - - Sample rate - 샘플 레이트 - - - - Stereo difference - 좌우 차이 - - - - Levels - - - - - Rate enabled - - - - - Depth enabled - - - - - CarlaAboutW - - - About Carla - - - - - About - 정보 - - - - About text here - - - - - Extended licensing here - - - - - Artwork - - - - - Using KDE Oxygen icon set, designed by Oxygen Team. - - - - - Contains some knobs, backgrounds and other small artwork from Calf Studio Gear, OpenAV and OpenOctave projects. - - - - - VST is a trademark of Steinberg Media Technologies GmbH. - - - - - Special thanks to António Saraiva for a few extra icons and artwork! - - - - - The LV2 logo has been designed by Thorsten Wilms, based on a concept from Peter Shorthose. - - - - - MIDI Keyboard designed by Thorsten Wilms. - - - - - Carla, Carla-Control and Patchbay icons designed by DoosC. - - - - - Features - - - - - AU/AudioUnit: - - - - - LADSPA: - - - - - - - - - - - - TextLabel - - - - - VST2: - - - - - DSSI: - - - - - LV2: - - - - - VST3: - - - - - OSC - - - - - Host URLs: - - - - - Valid commands: - - - - - valid osc commands here - - - - - Example: - - - - - License - 라이선스 - - - + GNU GENERAL PUBLIC LICENSE Version 2, June 1991 @@ -1035,7 +268,288 @@ freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too. @@ -1062,18 +576,18 @@ rights. (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. - Also, for each author's protection and ours, we want to make certain + Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original -authors' reputations. +authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. +patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. @@ -1098,7 +612,7 @@ is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. - 1. You may copy and distribute verbatim copies of the Program's + 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the @@ -1212,7 +726,7 @@ the Program or works based on it. Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. +restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. @@ -1300,15036 +814,18244 @@ PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS + + + + + OSC Bridge Version + OSC Bridge 버전 + + + + Plugin Version + 플러그인 버전 + + + + <br>Version %1<br>Carla is a fully-featured audio plugin host%2.<br><br>Copyright (C) 2011-2019 falkTX<br> + <br>버전 %1<br>Carla는 모든 기능을 갖춘 오디오 플러그인 호스트%2입니다.<br><br>Copyright (C) 2011-2019 falkTX<br> + + + + + (Engine not running) + (엔진이 실행되지 않음) + + + + Everything! (Including LRDF) + 모든 것! (LRDF 포함) + + + + Everything! (Including CustomData/Chunks) + 모든 것! (사용자지정데이터/청크 포함) + + + + About 110&#37; complete (using custom extensions)<br/>Implemented Feature/Extensions:<ul><li>http://lv2plug.in/ns/ext/atom</li><li>http://lv2plug.in/ns/ext/buf-size</li><li>http://lv2plug.in/ns/ext/data-access</li><li>http://lv2plug.in/ns/ext/event</li><li>http://lv2plug.in/ns/ext/instance-access</li><li>http://lv2plug.in/ns/ext/log</li><li>http://lv2plug.in/ns/ext/midi</li><li>http://lv2plug.in/ns/ext/options</li><li>http://lv2plug.in/ns/ext/parameters</li><li>http://lv2plug.in/ns/ext/port-props</li><li>http://lv2plug.in/ns/ext/presets</li><li>http://lv2plug.in/ns/ext/resize-port</li><li>http://lv2plug.in/ns/ext/state</li><li>http://lv2plug.in/ns/ext/time</li><li>http://lv2plug.in/ns/ext/uri-map</li><li>http://lv2plug.in/ns/ext/urid</li><li>http://lv2plug.in/ns/ext/worker</li><li>http://lv2plug.in/ns/extensions/ui</li><li>http://lv2plug.in/ns/extensions/units</li><li>http://home.gna.org/lv2dynparam/rtmempool/v1</li><li>http://kxstudio.sf.net/ns/lv2ext/external-ui</li><li>http://kxstudio.sf.net/ns/lv2ext/programs</li><li>http://kxstudio.sf.net/ns/lv2ext/props</li><li>http://kxstudio.sf.net/ns/lv2ext/rtmempool</li><li>http://ll-plugins.nongnu.org/lv2/ext/midimap</li><li>http://ll-plugins.nongnu.org/lv2/ext/miditype</li></ul> + 약 110&#37; 완료 (사용자 지정 확장 사용중)<br/>구현된 기능/확장:<ul><li>http://lv2plug.in/ns/ext/atom</li><li>http://lv2plug.in/ns/ext/buf-size</li><li>http://lv2plug.in/ns/ext/data-access</li><li>http://lv2plug.in/ns/ext/event</li><li>http://lv2plug.in/ns/ext/instance-access</li><li>http://lv2plug.in/ns/ext/log</li><li>http://lv2plug.in/ns/ext/midi</li><li>http://lv2plug.in/ns/ext/options</li><li>http://lv2plug.in/ns/ext/parameters</li><li>http://lv2plug.in/ns/ext/port-props</li><li>http://lv2plug.in/ns/ext/presets</li><li>http://lv2plug.in/ns/ext/resize-port</li><li>http://lv2plug.in/ns/ext/state</li><li>http://lv2plug.in/ns/ext/time</li><li>http://lv2plug.in/ns/ext/uri-map</li><li>http://lv2plug.in/ns/ext/urid</li><li>http://lv2plug.in/ns/ext/worker</li><li>http://lv2plug.in/ns/extensions/ui</li><li>http://lv2plug.in/ns/extensions/units</li><li>http://home.gna.org/lv2dynparam/rtmempool/v1</li><li>http://kxstudio.sf.net/ns/lv2ext/external-ui</li><li>http://kxstudio.sf.net/ns/lv2ext/programs</li><li>http://kxstudio.sf.net/ns/lv2ext/props</li><li>http://kxstudio.sf.net/ns/lv2ext/rtmempool</li><li>http://ll-plugins.nongnu.org/lv2/ext/midimap</li><li>http://ll-plugins.nongnu.org/lv2/ext/miditype</li></ul> + + + + + + Using Juce host + Juce 호스트 사용 중 + + + + About 85% complete (missing vst bank/presets and some minor stuff) + 약 85% 완료 (vst 뱅크/프리셋 및 일부 마이너 스터프 누락) + + + + CarlaHostW + + + MainWindow + 기본 창 + + + + Rack + + + + + Patchbay + Patchbay + + + + Logs + 로그 + + + + Loading... + 불러오는 중... + + + + Save + 저장하기 + + + + Clear + 지우기 + + + + Ctrl+L + + + + + Auto-Scroll + + + + + Buffer Size: + 버퍼 크기: + + + + Sample Rate: + 샘플 레이트: + + + + ? Xruns + ? Xruns + + + + DSP Load: %p% + DSP 불러오기: %p% + + + + &File + 파일(&F) + + + + &Engine + 엔진(&E) + + + + &Plugin + 플러그인(&P) + + + + Macros (all plugins) + 매크로 (모든 플러그인) + + + + &Canvas + 캔버스(&C) + + + + Zoom + 확대/축소 + + + + &Settings + 설정(&S) + + + + &Help + 도움말(&H) + + + + Tool Bar + + + + + Disk + 디스크 + + + + + Home + + + + + Transport + 트랜스포트 + + + + Playback Controls + 플레이백 컨트롤 + + + + Time Information + 시간 정보 + + + + Frame: + 프레임: + + + + 000'000'000 + 000'000'000 + + + + Time: + 시간: + + + + 00:00:00 + 00:00:00 + + + + BBT: + BBT: + + + + 000|00|0000 + 000|00|0000 + + + + Settings + 설정 + + + + BPM + BPM + + + + Use JACK Transport + JACK 트랜스포트 사용하기 + + + + Use Ableton Link + Ableton 링크 사용하기 + + + + &New + 새로 만들기(&N) + + + + Ctrl+N + Ctrl+N + + + + &Open... + 열기(&O)... + + + + + Open... + 열기... + + + + Ctrl+O + Ctrl+O + + + + &Save + 저장(&S) + + + + Ctrl+S + Ctrl+S + + + + Save &As... + 다른 이름으로 저장(&A)... + + + + + Save As... + 다른 이름으로 저장하기... + + + + Ctrl+Shift+S + Ctrl+Shift+S + + + + &Quit + 종료(&Q) + + + + Ctrl+Q + Ctrl+Q + + + + &Start + 시작(&S) + + + + F5 + F5 + + + + St&op + 중지(&O) + + + + F6 + F6 + + + + &Add Plugin... + 플러그인 추가(&A)... + + + + Ctrl+A + Ctrl+A + + + + &Remove All + 모두 제거(&R) + + + + Enable + 활성화 + + + + Disable + 비활성화 + + + + 0% Wet (Bypass) + 0% 웨트 (바이패스) + + + + 100% Wet + 100% 웨트 + + + + 0% Volume (Mute) + 0% 볼륨 (음소거) + + + + 100% Volume + 100% 볼륨 + + + + Center Balance + 중앙 밸런스 + + + + &Play + 연주(&P) + + + + Ctrl+Shift+P + Ctrl+Shift+P + + + + &Stop + 중지(&S) + + + + Ctrl+Shift+X + Ctrl+Shift+X + + + + &Backwards + 반대방향(&B) + + + + Ctrl+Shift+B + Ctrl+Shift+B + + + + &Forwards + 정방향(&F) + + + + Ctrl+Shift+F + Ctrl+Shift+F + + + + &Arrange + 편곡(&A) + + + + Ctrl+G + Ctrl+G + + + + + &Refresh + 새로고침(&R) + + + + Ctrl+R + Ctrl+R + + + + Save &Image... + 이미지 저장(&I)... + + + + Auto-Fit + 자동-맞춤 + + + + Zoom In + 확대 + + + + Ctrl++ + Ctrl++ + + + + Zoom Out + 축소 + + + + Ctrl+- + Ctrl+- + + + + Zoom 100% + 100% 확대/축소 + + + + Ctrl+1 + Ctrl+1 + + + + Show &Toolbar + 도구모음 표시(&T) + + + + &Configure Carla + Carla 구성(&C) + + + + &About + 정보(&A) + + + + About &JUCE + JUCE 정보(&J) + + + + About &Qt + Qt 정보(&Q) + + + + Show Canvas &Meters + 캔버스 미터 표시(&M) + + + + Show Canvas &Keyboard + 캔버스 키보드 표시(&K) + + + + Show Internal + 내부 표시하기 + + + + Show External + 외부 표시하기 + + + + Show Time Panel + 시간 패널 표시하기 + + + + Show &Side Panel + 측면 패널 표시(&S) + + + + Ctrl+P + + + + + &Connect... + 연결(&C)... + + + + Compact Slots + 콤팩트 슬롯 + + + + Expand Slots + 슬롯 확장 + + + + Perform secret 1 + 시크릿 1 연주하기 + + + + Perform secret 2 + 시크릿 2 연주하기 + + + + Perform secret 3 + 시크릿 3 연주하기 + + + + Perform secret 4 + 시크릿 4 연주하기 + + + + Perform secret 5 + 시크릿 5 연주하기 + + + + Add &JACK Application... + JACK 응용프로그램 추가(&J)... + + + + &Configure driver... + 드라이버 구성(&C)... + + + + Panic + 패닉 + + + + Open custom driver panel... + 사용자 지정 드라이버 패널 열기... + + + + Save Image... (2x zoom) + + + + + Save Image... (4x zoom) + + + + + Copy as Image to Clipboard + + + + + Ctrl+Shift+C + + + + + CarlaHostWindow + + + Export as... + 다른 이름으로 내보내기... + + + + + + + Error + 오류 + + + + Failed to load project + 프로젝트를 불러오지 못했습니다 + + + + Failed to save project + 프로젝트를 저장하지 못했습니다 + + + + Quit + 종료 + + + + Are you sure you want to quit Carla? + Carla를 종료하시겠습니까? + + + + Could not connect to Audio backend '%1', possible reasons: +%2 + 오디오 백엔드 '%1'에 연결할 수 없습니다. 가능한 이유: +%2 + + + + Could not connect to Audio backend '%1' + 오디오 백엔드 '%1'에 연결할 수 없습니다 + + + + Warning + 경고 + + + + There are still some plugins loaded, you need to remove them to stop the engine. +Do you want to do this now? + 아직 일부 플러그인이 불려와 있으므로, 엔진을 중지하려면 해당 플러그인을 제거해야 합니다. +지금 이 작업을 하시겠습니까? + + + + CarlaSettingsW + + + Settings + 설정 + + + + main + 기본 + + + + canvas + 캔버스 + + + + engine + 엔진 + + + + osc + osc + + + + file-paths + 파일 경로 + + + + plugin-paths + 플러그인 경로 + + + + wine + wine + + + + experimental + 실험적 + + + + Widget + 위젯 + + + + + Main + 기본 + + + + + Canvas + 캔버스 + + + + + Engine + 엔진 + + + + File Paths + 파일 경로 + + + + Plugin Paths + 플러그인 경로 + + + + Wine + Wine + + + + + Experimental + 실험적 + + + + <b>Main</b> + <b>기본</b> + + + + Paths + 경로 + + + + Default project folder: + 기본 프로젝트 폴더: + + + + Interface + 인터페이스 + + + + Use "Classic" as default rack skin + + + + + Interface refresh interval: + 인터페이스 새로고침 간격: + + + + + ms + ms + + + + Show console output in Logs tab (needs engine restart) + 로그 탭에 콘솔 출력 표시하기 (엔진 시작해야 함) + + + + Show a confirmation dialog before quitting + 종료 전에 확인 대화상자 표시하기 + + + + + Theme + 테마 + + + + Use Carla "PRO" theme (needs restart) + Carla "PRO" 테마 사용하기 (다시 시작해야 함) + + + + Color scheme: + 색상 구성표: + + + + Black + 검정 + + + + System + 시스템 + + + + Enable experimental features + 실험적 기능 활성화 + + + + <b>Canvas</b> + <b>캔버스</b> + + + + Bezier Lines + 베지어 라인 + + + + Theme: + 테마: + + + + Size: + 크기: + + + + 775x600 + 775x600 + + + + 1550x1200 + 1550x1200 + + + + 3100x2400 + 3100x2400 + + + + 4650x3600 + 4650x3600 + + + + 6200x4800 + 6200x4800 + + + + 12400x9600 + + + + + Options + 옵션 + + + + Auto-hide groups with no ports + 포트가 없는 그룹 자동 숨김 + + + + Auto-select items on hover + 마우스 오버 시 항목 자동 선택하기 + + + + Basic eye-candy (group shadows) + Basic eye-candy (그룹 섀도우) + + + + Render Hints + 렌더 힌트 + + + + Anti-Aliasing + 앤티앨리어싱 + + + + Full canvas repaints (slower, but prevents drawing issues) + 전체 캔버스 다시 그리기 (느리지만 그리기 문제 방지) + + + + <b>Engine</b> + <b>엔진</b> + + + + + Core + 코어 + + + + Single Client + 단일 클라이언트 + + + + Multiple Clients + 여러 클라이언트 + + + + + Continuous Rack + Continuous Rack + + + + + Patchbay + Patchbay + + + + Audio driver: + 오디오 드라이버: + + + + Process mode: + 프로세스 모드: + + + + + + + Maximum number of parameters to allow in the built-in 'Edit' dialog + 내장된 '편집' 대화상자에서 허용할 매개변수의 최대 개수 + + + + Max Parameters: + 최대 매개변수: + + + + ... + ... + + + + Reset Xrun counter after project load + 프로젝트 불러온 후 Xrun 카운터 재설정 + + + + Plugin UIs + 플러그인 UI + + + + + How much time to wait for OSC GUIs to ping back the host + OSC GUI가 호스트를 ping back할 때까지 기다려야 하는 시간 + + + + UI Bridge Timeout: + UI 브리지 시간초과: + + + + Use OSC-GUI bridges when possible, this way separating the UI from DSP code + 가능한 경우 OSC-GUI 브리지를 사용하여, DSP 코드에서 UI를 분리합니다 + + + + Use UI bridges instead of direct handling when possible + 가능한 경우 직접 취급하지 않고 UI 브리지 사용하기 + + + + Make plugin UIs always-on-top + 플러그인 UI를 항상 위에 표시 + + + + Make plugin UIs appear on top of Carla (needs restart) + Carla 상단에 플러그인 UI 표시 (다시 시작해야 함) + + + + NOTE: Plugin-bridge UIs cannot be managed by Carla on macOS + 참고: 플러그인 브리지 UI는 macOS의 Carla에서 관리할 수 없습니다 + + + + + Restart the engine to load the new settings + 새 설정을 불러오려면 엔진을 다시 시작합니다 + + + + <b>OSC</b> + <b>OSC</b> + + + + Enable OSC + OSC 활성화 + + + + Enable TCP port + TCP 포트 활성화 + + + + + Use specific port: + 특정 포트 사용: + + + + Overridden by CARLA_OSC_TCP_PORT env var + CARLA_OSC_TCP_PORT env var에 의해 재정의됨 + + + + + Use randomly assigned port + 무작위로 할당된 포트 사용하기 + + + + Enable UDP port + UDP 포트 활성화 + + + + Overridden by CARLA_OSC_UDP_PORT env var + CARLA_OSC_UDP_PORT env var에 의해 재정의됨 + + + + DSSI UIs require OSC UDP port enabled + DSSI UI에는 OSC UDP 포트가 활성화되어 있어야 합니다 + + + + <b>File Paths</b> + <b>파일 경로</b> + + + + Audio + 오디오 + + + + MIDI + MIDI + + + + Used for the "audiofile" plugin + "오디오파일" 플러그인에 사용됨 + + + + Used for the "midifile" plugin + "미디파일" 플러그인에 사용됨 + + + + + Add... + 추가하기... + + + + + Remove + 제거하기 + + + + + Change... + 변경하기... + + + + <b>Plugin Paths</b> + <b>플러그인 경로</b> + + + + LADSPA + LADSPA + + + + DSSI + DSSI + + + + LV2 + LV2 + + + + VST2 + VST2 + + + + VST3 + VST3 + + + + SF2/3 + SF2/3 + + + + SFZ + SFZ + + + + JSFX + + + + + CLAP + + + + + Restart Carla to find new plugins + 새 플러그인을 찾기위해 Carla 다시 시작 + + + + <b>Wine</b> + <b>Wine</b> + + + + Executable + 실행 가능 + + + + Path to 'wine' binary: + 'wine' 바이너리 경로: + + + + Prefix + 접두사 + + + + Auto-detect Wine prefix based on plugin filename + 플러그인 파일 이름을 기반으로 Wine 접두사 자동 감지 + + + + Fallback: + 폴백: + + + + Note: WINEPREFIX env var is preferred over this fallback + 참고: WINEPREFIX env var는 이 폴백보다 선호됩니다 + + + + Realtime Priority + 실시간 우선순위 + + + + Base priority: + 기본 우선순위: + + + + WineServer priority: + WineServer 우선순위: + + + + These options are not available for Carla as plugin + 이 옵션은 Carla를 플러그인으로 사용할 수 없습니다 + + + + <b>Experimental</b> + <b>실험적</b> + + + + Experimental options! Likely to be unstable! + 실험적인 옵션입니다! 불안정할 가능성이 있습니다! + + + + Enable plugin bridges + 플러그인 브리지 활성화 + + + + Enable Wine bridges + Wine 브리지 활성화 + + + + Enable jack applications + JACK 응용프로그램 활성화 + + + + Export single plugins to LV2 + 단일 플러그인을 LV2로 내보내기 + + + + Use system/desktop-theme icons (needs restart) + + + + + Load Carla backend in global namespace (NOT RECOMMENDED) + 전역 네임스페이스에 Carla 백엔드 불러오기 (권장하지 않음) + + + + Fancy eye-candy (fade-in/out groups, glow connections) + Fancy eye-candy (페이드-인/아웃 그룹, 글로 연결) + + + + Use OpenGL for rendering (needs restart) + 렌더링에 OpenGL 사용하기 (다시 시작해야 함) + + + + High Quality Anti-Aliasing (OpenGL only) + 고화질 앤티앨리어싱 (OpenGL만 해당) + + + + Render Ardour-style "Inline Displays" + Render Ardour 스타일의 "인라인 디스플레이" + + + + Force mono plugins as stereo by running 2 instances at the same time. +This mode is not available for VST plugins. + 동시에 2개의 인스턴스를 실행하여 모노 플러그인을 스테레오로 강제 실행합니다. +이 모드는 VST 플러그인에 사용할 수 없습니다. + + + + Force mono plugins as stereo + 모노 플러그인을 스테레오로 강제 적용 + + + + When enabled, Carla will try to prevent plugins from doing things that might mess up the audio or cause xruns, such as fork(), gtk_init() and similar. + + + + + Prevent unsafe calls from plugins (needs restart) + + + + + Run plugins in a separate process, so if they crash it does not affect Carla. +Plugins get automatically deactivated in such cases. +Reactvate them to start the process again, with the last saved state applied to it. + + + + + Run plugins in bridge mode when possible + 가능한 경우 브리지 모드에서 플러그인 실행 + + + + + + + Add Path + 경로 추가하기 + + + + Dialog + + + Carla Control - Connect + Carla 컨트롤 - 연결하기 + + + + Remote setup + 원격 셋업 + + + + UDP Port: + UDP 포트: + + + + Remote host: + 원격 호스트: + + + + TCP Port: + TCP 포트: + + + + Set value + 값 지정하기 + + + + TextLabel + TextLabel + + + + Scale Points + 스케일 포인트 + + + + DriverSettingsW + + + Driver Settings + 드라이버 설정 + + + + Device: + 디바이스: + + + + Buffer size: + 버퍼 크기: + + + + Sample rate: + 샘플 레이트: + + + + Triple buffer + 트리플 버퍼 + + + + Show Driver Control Panel + 드라이버 제어판 표시하기 + + + + Restart the engine to load the new settings + 새 설정을 불러오려면 엔진을 다시 시작합니다 + + + + ExportProjectDialog + + + Export project + 프로젝트 내보내기 + + + + Export as loop (remove extra bar) + 루프로 내보내기 (후반부 마디 제거) + + + + Export between loop markers + 루프 마킹도구 사이에서 내보내기 + + + + Render Looped Section: + 렌더 루프된 섹션: + + + + time(s) + 시간 + + + + File format settings + 파일 형식 설정 + + + + File format: + 파일 형식: + + + + Sampling rate: + 샘플링 레이트: + + + + 44100 Hz + 44100 Hz + + + + 48000 Hz + 48000 Hz + + + + 88200 Hz + 88200 Hz + + + + 96000 Hz + 96000 Hz + + + + 192000 Hz + 192000 Hz + + + + Bit depth: + 비트 깊이: + + + + 16 Bit integer + 16비트 정수 + + + + 24 Bit integer + 24비트 정수 + + + + 32 Bit float + 32비트 실수 + + + + Stereo mode: + 스테레오 모드: + + + + Mono + 모노 + + + + Stereo + 스테레오 + + + + Joint stereo + 통합 스테레오 + + + + Compression level: + 압축 수준: + + + + Bitrate: + 비트 레이트: + + + + 64 KBit/s + 64 KBit/s + + + + 128 KBit/s + 128 KBit/s + + + + 160 KBit/s + 160 KBit/s + + + + 192 KBit/s + 192 KBit/s + + + + 256 KBit/s + 256 KBit/s + + + + 320 KBit/s + 320 KBit/s + + + + Use variable bitrate + 가변 비트레이트 사용 + + + + Quality settings + 품질 설정 + + + + Interpolation: + 보간법: + + + + Zero order hold + 0차 홀드 + + + + Sinc worst (fastest) + Sinc 최저 (가장 빠름) + + + + Sinc medium (recommended) + Sinc 중간 (권장됨) + + + + Sinc best (slowest) + Sinc 최고 (가장 느림) + + + + Start + 시작 + + + + Cancel + 취소 + + + + InstrumentFunctionNoteStacking + + + octave + 옥타브 + + + + + Major + 장조 + + + + Majb5 + Majb5 + + + + minor + 단조 + + + + minb5 + minb5 + + + + sus2 + sus2 + + + + sus4 + sus4 + + + + aug + aug + + + + augsus4 + augsus4 + + + + tri + tri + + + + 6 + 6 + + + + 6sus4 + 6sus4 + + + + 6add9 + 6add9 + + + + m6 + m6 + + + + m6add9 + m6add9 + + + + 7 + 7 + + + + 7sus4 + 7sus4 + + + + 7#5 + 7#5 + + + + 7b5 + 7b5 + + + + 7#9 + 7#9 + + + + 7b9 + 7b9 + + + + 7#5#9 + 7#5#9 + + + + 7#5b9 + 7#5b9 + + + + 7b5b9 + 7b5b9 + + + + 7add11 + 7add11 + + + + 7add13 + 7add13 + + + + 7#11 + 7#11 + + + + Maj7 + Maj7 + + + + Maj7b5 + Maj7b5 + + + + Maj7#5 + Maj7#5 + + + + Maj7#11 + Maj7#11 + + + + Maj7add13 + Maj7add13 + + + + m7 + m7 + + + + m7b5 + m7b5 + + + + m7b9 + m7b9 + + + + m7add11 + m7add11 + + + + m7add13 + m7add13 + + + + m-Maj7 + m-Maj7 + + + + m-Maj7add11 + m-Maj7add11 + + + + m-Maj7add13 + m-Maj7add13 + + + + 9 + 9 + + + + 9sus4 + 9sus4 + + + + add9 + add9 + + + + 9#5 + 9#5 + + + + 9b5 + 9b5 + + + + 9#11 + 9#11 + + + + 9b13 + 9b13 + + + + Maj9 + Maj9 + + + + Maj9sus4 + Maj9sus4 + + + + Maj9#5 + Maj9#5 + + + + Maj9#11 + Maj9#11 + + + + m9 + m9 + + + + madd9 + madd9 + + + + m9b5 + m9b5 + + + + m9-Maj7 + m9-Maj7 + + + + 11 + 11 + + + + 11b9 + 11b9 + + + + Maj11 + Maj11 + + + + m11 + m11 + + + + m-Maj11 + m-Maj11 + + + + 13 + 13 + + + + 13#9 + 13#9 + + + + 13b9 + 13b9 + + + + 13b5b9 + 13b5b9 + + + + Maj13 + Maj13 + + + + m13 + m13 + + + + m-Maj13 + m-Maj13 + + + + Harmonic minor + 하모닉 단음계 + + + + Melodic minor + 가락 단조 + + + + Whole tone + 온음 + + + + Diminished + + + + + Major pentatonic + 장조 5음 + + + + Minor pentatonic + 단조 5음 + + + + Jap in sen + 일본 음계 + + + + Major bebop + 장조 비밥 + + + + Dominant bebop + 딸림음 비밥 + + + + Blues + 블루스 + + + + Arabic + 아라비아풍 + + + + Enigmatic + 수수께끼 + + + + Neopolitan + 네오폴리탄 + + + + Neopolitan minor + 네오폴리탄 단조 + + + + Hungarian minor + 헝가리 단조 + + + + Dorian + 도리아 선법 + + + + Phrygian + 프리지안 + + + + Lydian + 리디아 선법 + + + + Mixolydian + 믹솔리디아 선법 + + + + Aeolian + 에올리아 선법 + + + + Locrian + 로크리아 선법 + + + + Minor + 단조 + + + + Chromatic + 반음 + + + + Half-Whole Diminished + 반음 감 + + + + 5 + 5 + + + + Phrygian dominant + 프리지안 딸림음 + + + + Persian + 페르시안 + + + + InstrumentSoundShaping + + + VOLUME + 볼륨 + + + + Volume + 볼륨 + + + + CUTOFF + 컷오프 + + + + Cutoff frequency + 차단 주파수 + + + + RESO + 공명 + + + + Resonance + 공명 + + + + JackAppDialog + + + Add JACK Application + + + + + Note: Features not implemented yet are greyed out + + + + + Application + + + + + Name: + + + + + Application: + + + + + From template + + + + + Custom + + + + + Template: + + + + + Command: + + + + + Setup + 셋업 + + + + Session Manager: + + + + + None + + + + + Audio inputs: + + + + + MIDI inputs: + + + + + Audio outputs: + + + + + MIDI outputs: + + + + + Take control of main application window + + + + + Workarounds + + + + + Wait for external application start (Advanced, for Debug only) + + + + + Capture only the first X11 Window + + + + + Use previous client output buffer as input for the next client + + + + + Simulate 16 JACK MIDI outputs, with MIDI channel as port index + + + + + Error here + + + + + NSM applications cannot use abstract or absolute paths + + + + + NSM applications cannot use CLI arguments + + + + + You need to save the current Carla project before NSM can be used + + + + + JuceAboutW + + + This program uses JUCE version %1. + 이 프로그램은 JUCE 버전 %1을(를) 사용합니다. + + + + MidiPatternW + + + MIDI Pattern + MIDI 패턴 + + + + Time Signature: + 박자표: + + + + + + 1/4 + 1/4 + + + + 2/4 + 2/4 + + + + 3/4 + 3/4 + + + + 4/4 + 4/4 + + + + 5/4 + 5/4 + + + + 6/4 + 6/4 + + + + Measures: + 소절: + + + + + + 1 + 1 + + + + 2 + 2 + + + + 3 + 3 + + + + 4 + 4 + + + + 5 + 5 + + + + 6 + 6 + + + + 7 + 7 + + + + 8 + 8 + + + + 9 + 9 + + + + 10 + 10 + + + + 11 + 11 + + + + 12 + 12 + + + + 13 + 13 + + + + 14 + 14 + + + + 15 + 15 + + + + 16 + 16 + + + + Default Length: + 기본 길이: + + + + + 1/16 + 1/16 + + + + + 1/15 + 1/15 + + + + + 1/12 + 1/12 + + + + + 1/9 + 1/9 + + + + + 1/8 + 1/8 + + + + + 1/6 + 1/6 + + + + + 1/3 + 1/3 + + + + + 1/2 + 1/2 + + + + Quantize: + 퀀타이즈: + + + + &File + 파일(&F) + + + + &Edit + 편집(&E) + + + + &Quit + 종료(&Q) + + + + Esc + + + + + &Insert Mode + 삽입 모드(&I) + + + + F + F + + + + &Velocity Mode + 벨로시티 모드(&V) + + + + D + D + + + + Select All + 모두 선택하기 + + + + A + A + + + + PatchesDialog + + + + Qsynth: Channel Preset + Qsynth: 채널 프리셋 + + + + + Bank selector + 뱅크 선택기 + + + + + Bank + 뱅크 + + + + + Program selector + 프로그램 선택기 + + + + + Patch + 패치 + + + + + Name + 이름 + + + + + OK + 확인 + + + + + Cancel + 취소 + + + + PluginBrowser + + + no description + 설명 없음 + + + + A native amplifier plugin + 기본 내장 앰프 플러그인 + + + + Simple sampler with various settings for using samples (e.g. drums) in an instrument-track + 악기 트랙에서 샘플(예: 드럼)을 사용하기 위한 다양한 설정이 있는 간단한 샘플러 + + + + Boost your bass the fast and simple way + 빠르고 간단한 방법으로 베이스 강화 + + + + Customizable wavetable synthesizer + 사용자 지정 가능한 웨이브테이블 신시사이저 + + + + An oversampling bitcrusher + 오버샘플링 비트크러셔 + + + + Carla Patchbay Instrument + Carla Patchbay 악기 + + + + Carla Rack Instrument + Carla Rack 악기 + + + + A dynamic range compressor. + 동적 범위 컴프레서입니다. + + + + A 4-band Crossover Equalizer + 4밴드 크로스오버 이퀄라이저 + + + + A native delay plugin + 기본 내장 딜레이 플러그인 + + + + A Dual filter plugin + 이원화된 필터 플러그인 + + + + plugin for processing dynamics in a flexible way + 유연한 방식으로 동적 프로세싱을 위한 플러그인 + + + + A native eq plugin + 기본 내장 EQ 플러그인 + + + + A native flanger plugin + 기본 내장 플랜저 플러그인 + + + + Emulation of GameBoy (TM) APU + GameBoy (TM) APU 에뮬레이션 + + + + Player for GIG files + GIG 파일용 재생기 + + + + Filter for importing Hydrogen files into LMMS + Hydrogen 파일을 LMMS로 읽어오기 위한 필터링 + + + + Versatile drum synthesizer + 다용도 드럼 신시사이저 + + + + List installed LADSPA plugins + 설치된 LADSPA 플러그인 목록 + + + + plugin for using arbitrary LADSPA-effects inside LMMS. + LMMS 내에서 임의의 LADSPA 효과를 사용하기 위한 플러그인입니다. + + + + Incomplete monophonic imitation TB-303 + 불완전한 모노포닉 이미테이션 TB-303 + + + + plugin for using arbitrary LV2-effects inside LMMS. + LMMS 내에서 임의의 LV2 효과를 사용하기 위한 플러그인입니다. + + + + plugin for using arbitrary LV2 instruments inside LMMS. + LMMS 내에서 임의의 LV2 기기를 사용하기 위한 플러그인입니다. + + + + Filter for exporting MIDI-files from LMMS + MIDI 파일을 LMMS에서 내보내기 위한 필터링 + + + + Filter for importing MIDI-files into LMMS + MIDI 파일을 LMMS로 읽어오기 위한 필터링 + + + + Monstrous 3-oscillator synth with modulation matrix + 모듈레이션 매트릭스가 있는 엄청난 3-오실레이터 신시사이저 + + + + A multitap echo delay plugin + 멀티탭 에코 딜레이 플러그인 + + + + A NES-like synthesizer + NES와 비슷한 신시사이저 + + + + 2-operator FM Synth + 2-오퍼레이터 FM 신시사이저 + + + + Additive Synthesizer for organ-like sounds + 오르간과 비슷한 소리를 내는 부가적 신시사이저 + + + + GUS-compatible patch instrument + GUS 호환 패치 악기 + + + + Plugin for controlling knobs with sound peaks + 사운드 피크가 있는 노브를 제어하기 위한 플러그인 + + + + Reverb algorithm by Sean Costello + Sean Costello의 리버브 알고리즘 + + + + Player for SoundFont files + 사운드폰트 파일용 재생기 + + + + LMMS port of sfxr + sfxr의 LMMS 포트 + + + + Emulation of the MOS6581 and MOS8580 SID. +This chip was used in the Commodore 64 computer. + MOS6581 및 MOS8580 SID의 에뮬레이션. +이 칩은 Commodore 64 컴퓨터에 사용되었습니다. + + + + A graphical spectrum analyzer. + 그래픽 스펙트럼 분석기. + + + + Plugin for enhancing stereo separation of a stereo input file + 스테레오 입력 파일의 스테레오 분리를 향상시키기 위한 플러그인 + + + + Plugin for freely manipulating stereo output + 스테레오 출력을 자유롭게 조작하기 위한 플러그인 + + + + Tuneful things to bang on + 듣기 좋은 것들 + + + + Three powerful oscillators you can modulate in several ways + 다양한 방식으로 변조할 수 있는 3개의 강력한 오실레이터 + + + + A stereo field visualizer. + 스테레오 필드 시각화 도구. + + + + VST-host for using VST(i)-plugins within LMMS + LMMS 내에서 VST(i) 플러그인을 사용하기 위한 VST 호스트 + + + + Vibrating string modeler + 진동 스트링 모델러 + + + + plugin for using arbitrary VST effects inside LMMS. + LMMS 내에서 임의의 VST 효과를 사용하기 위한 플러그인입니다. + + + + 4-oscillator modulatable wavetable synth + 4-오실레이터 조절 가능한 웨이브테이블 신시사이저 + + + + plugin for waveshaping + 웨이브쉐이핑을 위한 플러그인 + + + + Mathematical expression parser + 수리적인 익스프레션 파서 + + + + Embedded ZynAddSubFX + ZynAddSubFX 포함됨 + + + + An all-pass filter allowing for extremely high orders. + 올패스 필터로 매우 높은 오더를 처리할 수 있습니다. + + + + Granular pitch shifter + + + + + Upwards/downwards multiband compression plugin powered by the eldritch elder god LOMMUS. + + + + + Basic Slicer + + + + + Tap to the beat + + + + + PluginEdit + + + Plugin Editor + 플러그인 편집기 + + + + Edit + 편집하기 + + + + Control + 컨트롤 + + + + MIDI Control Channel: + MIDI 컨트롤 채널: + + + + N + N + + + + Output dry/wet (100%) + 출력 드라이/웨트 (100%) + + + + Output volume (100%) + 출력 볼륨 (100%) + + + + Balance Left (0%) + 밸런스 좌측 (0%) + + + + + Balance Right (0%) + 밸런스 우측 (0%) + + + + Use Balance + 밸런스 사용하기 + + + + Use Panning + 패닝 사용하기 + + + + Settings + 설정 + + + + Use Chunks + 청크 사용하기 + + + + Audio: + 오디오: + + + + Fixed-Size Buffer + 고정 크기 버퍼 + + + + Force Stereo (needs reload) + 스테레오 강제 적용 (다시 불러와야 함) + + + + MIDI: + MIDI: + + + + Map Program Changes + 맵 프로그램 변경 + + + + Send Notes + + + + + Send Bank/Program Changes + 뱅크/프로그램 변경사항 전송하기 + + + + Send Control Changes + 제어 변경사항 전송하기 + + + + Send Channel Pressure + 채널 누름 전송하기 + + + + Send Note Aftertouch + 노트 애프터터치 전송하기 + + + + Send Pitchbend + 피치밴드 전송하기 + + + + Send All Sound/Notes Off + 모든 사운드/노트 끔 전송하기 + + + + +Plugin Name + +플러그인 이름 + + + + + Program: + 프로그램: + + + + MIDI Program: + MIDI 프로그램: + + + + Save State + 상태 저장하기 + + + + Load State + 상태 불러오기 + + + + Information + 정보 + + + + Label/URI: + 레이블/URI: + + + + Name: + 이름: + + + + Type: + 유형: + + + + Maker: + 제작자: + + + + Copyright: + 저작권: + + + + Unique ID: + 고유 ID: + + + + PluginFactory + + + Plugin not found. + 플러그인을 찾을 수 없습니다. + + + + LMMS plugin %1 does not have a plugin descriptor named %2! + LMMS 플러그인 %1은(는) 이름이 %2인 플러그인 디스크립터를 가지고 있지 않습니다! + + + + PluginListDialog + + + Carla - Add New - - OSC Bridge Version + + Requirements - - Plugin Version + + With Custom GUI - - <br>Version %1<br>Carla is a fully-featured audio plugin host%2.<br><br>Copyright (C) 2011-2019 falkTX<br> + + With CV Ports - - - (Engine not running) + + Real-time safe only - - Everything! (Including LRDF) + + Stereo only - - Everything! (Including CustomData/Chunks) + + With Inline Display - - About 110&#37; complete (using custom extensions)<br/>Implemented Feature/Extensions:<ul><li>http://lv2plug.in/ns/ext/atom</li><li>http://lv2plug.in/ns/ext/buf-size</li><li>http://lv2plug.in/ns/ext/data-access</li><li>http://lv2plug.in/ns/ext/event</li><li>http://lv2plug.in/ns/ext/instance-access</li><li>http://lv2plug.in/ns/ext/log</li><li>http://lv2plug.in/ns/ext/midi</li><li>http://lv2plug.in/ns/ext/options</li><li>http://lv2plug.in/ns/ext/parameters</li><li>http://lv2plug.in/ns/ext/port-props</li><li>http://lv2plug.in/ns/ext/presets</li><li>http://lv2plug.in/ns/ext/resize-port</li><li>http://lv2plug.in/ns/ext/state</li><li>http://lv2plug.in/ns/ext/time</li><li>http://lv2plug.in/ns/ext/uri-map</li><li>http://lv2plug.in/ns/ext/urid</li><li>http://lv2plug.in/ns/ext/worker</li><li>http://lv2plug.in/ns/extensions/ui</li><li>http://lv2plug.in/ns/extensions/units</li><li>http://home.gna.org/lv2dynparam/rtmempool/v1</li><li>http://kxstudio.sf.net/ns/lv2ext/external-ui</li><li>http://kxstudio.sf.net/ns/lv2ext/programs</li><li>http://kxstudio.sf.net/ns/lv2ext/props</li><li>http://kxstudio.sf.net/ns/lv2ext/rtmempool</li><li>http://ll-plugins.nongnu.org/lv2/ext/midimap</li><li>http://ll-plugins.nongnu.org/lv2/ext/miditype</li></ul> + + Favorites only - - - - Using Juce host + + (Number of Plugins go here) - - About 85% complete (missing vst bank/presets and some minor stuff) + + &Add Plugin - - - CarlaHostW - - MainWindow + + Cancel - - Rack + + Refresh - - Patchbay + + Reset filters + 필터 재설정 + + + + + + + + + + + + + + + + + + + TextLabel + + + + + Format: + + + + + Architecture: + + + + + Type: + + + + + MIDI Ins: + + + + + Audio Ins: + + + + + CV Outs: + + + + + MIDI Outs: + + + + + Parameter Ins: + + + + + Parameter Outs: + + + + + Audio Outs: + + + + + CV Ins: + + + + + UniqueID: - - Logs + + Has Inline Display: - - Loading... + + Has Custom GUI: - - Buffer Size: + + Is Synth: - - Sample Rate: + + Is Bridged: - - ? Xruns + + Information - - DSP Load: %p% + + Name - - &File - 파일(&F) + + Label/Id/URI + - - &Engine + + Maker - - &Plugin + + Binary/Filename - - Macros (all plugins) + + Format - - &Canvas + + Internal - - Zoom + + LADSPA - - &Settings + + DSSI - - &Help - 도움말(&H) + + LV2 + - - toolBar + + VST2 - - Disk + + VST3 - - - Home + + CLAP - - Transport + + AU - - Playback Controls + + JSFX - - Time Information + + Sound Kits - - Frame: + + Type - - 000'000'000 + + Effects - - Time: + + Instruments - - 00:00:00 + + MIDI Plugins - - BBT: + + Other/Misc - - 000|00|0000 + + Category - - Settings - 설정 + + All + - - BPM + + Delay - - Use JACK Transport + + Distortion - - Use Ableton Link + + Dynamics - - &New - 새로 만들기(&N) + + EQ + - - Ctrl+N + + Filter - - &Open... - 열기(&O)... + + Modulator + - - - Open... + + Synth - - Ctrl+O + + Utility - - &Save - 저장(&S) + + + Other + - - Ctrl+S + + Architecture - - Save &As... - 다른 이름으로 저장(&A)... + + + Native + - - - Save As... + + Bridged - - Ctrl+Shift+S + + Bridged (Wine) - - &Quit - 끝내기(&Q) + + Focus Text Search + - - Ctrl+Q + + Ctrl+F - - &Start + + Bridged (32bit) - - F5 + + Discovering internal plugins... - - St&op + + Discovering LADSPA plugins... - - F6 + + Discovering DSSI plugins... - - &Add Plugin... + + Discovering LV2 plugins... - - Ctrl+A + + Discovering VST2 plugins... - - &Remove All + + Discovering VST3 plugins... - - Enable + + Discovering CLAP plugins... - - Disable + + Discovering AU plugins... - - 0% Wet (Bypass) + + Discovering JSFX plugins... - - 100% Wet + + Discovering SF2 kits... - - 0% Volume (Mute) + + Discovering SFZ kits... - - 100% Volume + + Unknown - - Center Balance + + + + + Yes - - &Play + + + + + No + + + PluginParameter - - Ctrl+Shift+P - + + Form + 형태 - - &Stop - + + Parameter Name + 매개변수 이름 - - Ctrl+Shift+X + + TextLabel - - &Backwards - + + ... + ... + + + PluginRefreshDialog - - Ctrl+Shift+B + + Plugin Refresh - - &Forwards + + Search for: - - Ctrl+Shift+F + + All plugins, ignoring cache - - &Arrange + + Updated plugins only - - Ctrl+G + + Check previously invalid plugins - - - &Refresh + + Press 'Scan' to begin the search - - Ctrl+R + + Scan - - Save &Image... + + >> Skip - - Auto-Fit + + Close + + + PluginWidget - - Zoom In - + + + + + + Frame + 프레임 - - Ctrl++ - + + Enable + 활성화 - - Zoom Out - + + On/Off + 켬/끔 - - Ctrl+- - + + + + + PluginName + 플러그인이름 - - Zoom 100% - + + MIDI + MIDI - - Ctrl+1 - + + AUDIO IN + 오디오 입력 - - Show &Toolbar - + + AUDIO OUT + 오디오 출력 - - &Configure Carla - + + GUI + GUI - - &About - + + Edit + 편집하기 - - About &JUCE - + + Remove + 제거하기 - - About &Qt - + + Plugin Name + 플러그인 이름 - - Show Canvas &Meters - + + Preset: + 프리셋: + + + ProjectRenderer - - Show Canvas &Keyboard - + + WAV (*.wav) + WAV (*.wav) - - Show Internal - + + FLAC (*.flac) + FLAC (*.flac) - - Show External - + + OGG (*.ogg) + OGG (*.ogg) - - Show Time Panel - + + MP3 (*.mp3) + MP3 (*.mp3) + + + QGroupBox - - Show &Side Panel - + + + Settings for %1 + %1의 설정 + + + QObject - - &Connect... - + + Reload Plugin + 플러그인 다시 불러오기 - - Compact Slots - + + Show GUI + GUI 표시하기 - - Expand Slots - + + Help + 도움말 - - Perform secret 1 + + LADSPA plugins - - Perform secret 2 + + The project contains %1 LADSPA plugin(s) which might have not been restored correctly! Please check the project. - - Perform secret 3 + + URI: - - Perform secret 4 + + Project: - - Perform secret 5 + + Maker: - - Add &JACK Application... + + Homepage: - - &Configure driver... + + License: - - Panic + + File: %1 - - Open custom driver panel... + + failed to load description - - - CarlaHostWindow - - Export as... + + Open audio file - - - - - Error - 오류 + + Error loading sample + - - Failed to load project + + %1 (unsupported) + + + QWidget - - Failed to save project - + + + Name: + 이름: - - Quit - + + Maker: + 제작자: - - Are you sure you want to quit Carla? - + + Copyright: + 저작권: - - Could not connect to Audio backend '%1', possible reasons: -%2 - + + Requires Real Time: + 실시간 필요: - - Could not connect to Audio backend '%1' - + + + + Yes + - - Warning - + + + + No + 아니오 - - There are still some plugins loaded, you need to remove them to stop the engine. -Do you want to do this now? - + + Real Time Capable: + 실시간 가능: - - - CarlaInstrumentView - - Show GUI - GUI 표시 + + In Place Broken: + 깨진 곳에 위치: - - - CarlaSettingsW - - Settings - 설정 + + Channels In: + 채널 입력: - - main - + + Channels Out: + 채널 출력: - - canvas - + + File: %1 + 파일: %1 - - engine - + + File: + 파일: + + + XYControllerW - - osc + + XY Controller - - file-paths + + X Controls: - - plugin-paths + + Y Controls: - - wine + + Smooth - - experimental - + + &Settings + 설정(&S) - - Widget + + Channels - - - Main + + &File - - - Canvas + + Show MIDI &Keyboard - - - Engine + + (All) - - File Paths + + 1 - - Plugin Paths + + 2 - - Wine + + 3 - - - Experimental + + 4 - - <b>Main</b> + + 5 - - Paths - 경로 + + 6 + - - Default project folder: + + 7 - - Interface + + 8 - - Interface refresh interval: + + 9 - - - ms + + 10 - - Show console output in Logs tab (needs engine restart) + + 11 - - Show a confirmation dialog before quitting + + 12 - - - Theme + + 13 - - Use Carla "PRO" theme (needs restart) + + 14 - - Color scheme: + + 15 - - Black + + 16 - - System + + &Quit - - Enable experimental features + + Esc - - <b>Canvas</b> + + (None) + + + lmms::AmplifierControls - - Bezier Lines - + + Volume + 볼륨 - - Theme: - + + Panning + 패닝 - - Size: - + + Left gain + 좌측 게인 - - 775x600 - + + Right gain + 우측 게인 + + + lmms::AudioFileProcessor - - 1550x1200 - + + Amplify + 증폭하기 - - 3100x2400 - + + Start of sample + 샘플의 시작 - - 4650x3600 - + + End of sample + 샘플의 끝 - - 6200x4800 - + + Loopback point + 루프백 포인트 - - Options - + + Reverse sample + 리버스 샘플 - - Auto-hide groups with no ports - + + Loop mode + 루프 모드 - - Auto-select items on hover - + + Stutter + Stutter - - Basic eye-candy (group shadows) - + + Interpolation mode + 인터폴레이션 모드 - - Render Hints - + + None + 없음 - - Anti-Aliasing - + + Linear + 리니어 - - Full canvas repaints (slower, but prevents drawing issues) - + + Sinc + Sinc - - <b>Engine</b> + + Sample not found + + + lmms::AudioJack - - - Core - + + JACK client restarted + JACK 클라이언트 다시 시작됨 - - Single Client - + + LMMS was kicked by JACK for some reason. Therefore the JACK backend of LMMS has been restarted. You will have to make manual connections again. + LMMS는 알 수 없는 이유로 JACK에 의해 중지되었습니다. 그 결과 LMMS의 JACK 백엔드가 다시 시작되었습니다. 수동 연결을 다시 설정해야 합니다. - - Multiple Clients - + + JACK server down + JACK 서버 다운 - - - Continuous Rack - + + The JACK server seems to have been shutdown and starting a new instance failed. Therefore LMMS is unable to proceed. You should save your project and restart JACK and LMMS. + JACK 서버가 종료되어 새 인스턴스 시작에 실패한 것 같습니다. 따라서 LMMS를 진행할 수 없습니다. 사용자의 프로젝트를 저장하고 JACK 및 LMMS를 다시 시작해야 합니다. - - - Patchbay - + + Client name + 클라이언트 이름 - - Audio driver: - + + Channels + 채널 + + + lmms::AudioOss - - Process mode: - + + Device + 디바이스 - - - - - Maximum number of parameters to allow in the built-in 'Edit' dialog - + + Channels + 채널 + + + lmms::AudioPortAudio::setupWidget - - Max Parameters: - + + Backend + 백엔드 - - ... - + + Device + 디바이스 + + + lmms::AudioPulseAudio - - Reset Xrun counter after project load - + + Device + 디바이스 - - Plugin UIs - + + Channels + 채널 + + + lmms::AudioSdl::setupWidget - - - How much time to wait for OSC GUIs to ping back the host + + Playback device - - UI Bridge Timeout: + + Input device + + + lmms::AudioSndio - - Use OSC-GUI bridges when possible, this way separating the UI from DSP code - + + Device + 디바이스 - - Use UI bridges instead of direct handling when possible - + + Channels + 채널 + + + lmms::AudioSoundIo::setupWidget - - Make plugin UIs always-on-top - + + Backend + 백엔드 - - Make plugin UIs appear on top of Carla (needs restart) - + + Device + 디바이스 + + + lmms::AutomatableModel - - NOTE: Plugin-bridge UIs cannot be managed by Carla on macOS - + + &Reset (%1%2) + 재설정 (%1%2)(&R) - - - Restart the engine to load the new settings - + + &Copy value (%1%2) + 값 복사하기 (%1%2)(&C) - - <b>OSC</b> - + + &Paste value (%1%2) + 값 붙여넣기 (%1%2)(&P) - - Enable OSC - + + &Paste value + 값 붙여넣기(&P) - - Enable TCP port - + + Edit song-global automation + 노래 전반 오토메이션 편집하기 - - - Use specific port: - + + Remove song-global automation + 노래 전반 오토메이션 제거하기 - - Overridden by CARLA_OSC_TCP_PORT env var - + + Remove all linked controls + 모든 링크된 컨트롤 제거하기 - - - Use randomly assigned port - + + Connected to %1 + %1에 연결됨 - - Enable UDP port - + + Connected to controller + 컨트롤러에 연결됨 - - Overridden by CARLA_OSC_UDP_PORT env var - + + Edit connection... + 연결 편집하기... - - DSSI UIs require OSC UDP port enabled - + + Remove connection + 연결 제거하기 - - <b>File Paths</b> - + + Connect to controller... + 컨트롤러에 연결하기... + + + lmms::AutomationClip - - Audio - 오디오 + + Drag a control while pressing <%1> + <%1> 키를 누른 상태에서 컨트롤 드래그 + + + lmms::AutomationTrack - - MIDI - MIDI + + Automation track + 오토메이션 트랙 + + + lmms::BassBoosterControls - - Used for the "audiofile" plugin - + + Frequency + 주파수 - - Used for the "midifile" plugin - + + Gain + 게인 - - - Add... - + + Ratio + 레시오 + + + lmms::BitInvader - - - Remove - + + Sample length + 샘플 길이 - - - Change... + + Interpolation - - <b>Plugin Paths</b> + + Normalize + + + lmms::BitcrushControls - - LADSPA - + + Input gain + 입력 게인 - - DSSI - + + Input noise + 입력 잡음 - - LV2 - + + Output gain + 출력 게인 - - VST2 - + + Output clip + 출력 클립 - - VST3 - + + Sample rate + 샘플 레이트 - - SF2/3 - + + Stereo difference + 스테레오 차이 - - SFZ - + + Levels + 레벨 - - Restart Carla to find new plugins - + + Rate enabled + 레이트 활성화됨 - - <b>Wine</b> - + + Depth enabled + 깊이 활성화됨 + + + lmms::Clip - - Executable - + + Mute + 음소거 + + + lmms::CompressorControls - - Path to 'wine' binary: - + + Threshold + 스레시홀드 - - Prefix - + + Ratio + 레시오 - - Auto-detect Wine prefix based on plugin filename - + + Attack + 어택 - - Fallback: - + + Release + 릴리즈 - - Note: WINEPREFIX env var is preferred over this fallback - + + Knee + 니(Knee) - - Realtime Priority - + + Hold + 홀드 - - Base priority: - + + Range + 범위 - - WineServer priority: - + + RMS Size + RMS 크기 - - These options are not available for Carla as plugin - + + Mid/Side + 중간/측면 - - <b>Experimental</b> - + + Peak Mode + 피크 모드 - - Experimental options! Likely to be unstable! - + + Lookahead Length + 룩어헤드 길이 - - Enable plugin bridges - + + Input Balance + 입력 밸런스 - - Enable Wine bridges - + + Output Balance + 출력 밸런스 - - Enable jack applications - + + Limiter + 리미터 - - Export single plugins to LV2 - + + Output Gain + 출력 게인 - - Load Carla backend in global namespace (NOT RECOMMENDED) - + + Input Gain + 입력 게인 - - Fancy eye-candy (fade-in/out groups, glow connections) - + + Blend + 섞기 - - Use OpenGL for rendering (needs restart) - + + Stereo Balance + 스테레오 밸런스 - - High Quality Anti-Aliasing (OpenGL only) - + + Auto Makeup Gain + 자동 메이크업 게인 - - Render Ardour-style "Inline Displays" - + + Audition + 오디션 - - Force mono plugins as stereo by running 2 instances at the same time. -This mode is not available for VST plugins. - + + Feedback + 피드백 - - Force mono plugins as stereo - + + Auto Attack + 자동 어택 - - Prevent plugins from doing bad stuff (needs restart) - + + Auto Release + 자동 릴리즈 - - Whenever possible, run the plugins in bridge mode. - + + Lookahead + 룩어헤드 - - Run plugins in bridge mode when possible - + + Tilt + 틸트 - - - - - Add Path - + + Tilt Frequency + 틸트 주파수 - - - CompressorControlDialog - - Threshold: - + + Stereo Link + 스테레오 링크 - - Volume at which the compression begins to take place - + + Mix + 믹스 + + + lmms::Controller - - Ratio: - 비율: + + Controller %1 + 컨트롤러 %1 + + + lmms::DelayControls - - How far the compressor must turn the volume down after crossing the threshold - + + Delay samples + 딜레이 샘플 - - Attack: - + + Feedback + 피드백 - - Speed at which the compressor starts to compress the audio - + + LFO frequency + LFO 주파수 - - Release: - + + LFO amount + LFO 양 - - Speed at which the compressor ceases to compress the audio - + + Output gain + 출력 게인 + + + lmms::DispersionControls - - Knee: - + + Amount + - - Smooth out the gain reduction curve around the threshold - + + Frequency + 주파수 - - Range: - + + Resonance + 공명 - - Maximum gain reduction - + + Feedback + 피드백 - - Lookahead Length: - + + DC Offset Removal + DC 오프셋 제거 + + + lmms::DualFilterControls - - How long the compressor has to react to the sidechain signal ahead of time - + + Filter 1 enabled + 필터 1 활성화됨 - - Hold: - + + Filter 1 type + 필터 1 유형 - - Delay between attack and release stages - + + Cutoff frequency 1 + 컷오프 주파수 1 - - RMS Size: - + + Q/Resonance 1 + Q/공명 1 - - Size of the RMS buffer - + + Gain 1 + 게인 1 - - Input Balance: - + + Mix + 믹스 - - Bias the input audio to the left/right or mid/side - + + Filter 2 enabled + 필터 2 활성화됨 - - Output Balance: - + + Filter 2 type + 필터 2 유형 - - Bias the output audio to the left/right or mid/side - + + Cutoff frequency 2 + 컷오프 주파수 2 - - Stereo Balance: - + + Q/Resonance 2 + Q/공명 2 - - Bias the sidechain signal to the left/right or mid/side - + + Gain 2 + 게인 2 - - Stereo Link Blend: - + + + Low-pass + 로패스 - - Blend between unlinked/maximum/average/minimum stereo linking modes - + + + Hi-pass + 하이패스 - - Tilt Gain: - + + + Band-pass csg + 밴드패스 csg - - Bias the sidechain signal to the low or high frequencies. -6 db is lowpass, 6 db is highpass. - + + + Band-pass czpg + 밴드패스 czpg - - Tilt Frequency: - + + + Notch + 노치 - - Center frequency of sidechain tilt filter - + + + All-pass + 올패스 - - Mix: - + + + Moog + 모그 - - Balance between wet and dry signals - + + + 2x Low-pass + 2x 로패스 - - Auto Attack: - + + + RC Low-pass 12 dB/oct + RC 로패스 12 dB/oct - - Automatically control attack value depending on crest factor - + + + RC Band-pass 12 dB/oct + RC 밴드패스 12 dB/oct - - Auto Release: - + + + RC High-pass 12 dB/oct + RC 하이패스 12 dB/oct - - Automatically control release value depending on crest factor - + + + RC Low-pass 24 dB/oct + RC 로패스 24 dB/oct - - Output gain - 출력 이득 + + + RC Band-pass 24 dB/oct + RC 밴드패스 24 dB/oct - - - Gain - 이득 + + + RC High-pass 24 dB/oct + RC 하이패스 24 dB/oct - - Output volume - + + + Vocal Formant + 보컬 포르만트 - - Input gain - 입력 이득 + + + 2x Moog + 2x 모그 - - Input volume - + + + SV Low-pass + SV 로패스 - - Root Mean Square - + + + SV Band-pass + SV 밴드패스 - - Use RMS of the input - + + + SV High-pass + SV 하이패스 - - Peak - + + + SV Notch + SV 노치 - - Use absolute value of the input - + + + Fast Formant + 패스트 포르만트 - - Left/Right - + + + Tripole + 트리폴 + + + lmms::DynProcControls - - Compress left and right audio - + + Input gain + 입력 게인 - - Mid/Side - + + Output gain + 출력 게인 - - Compress mid and side audio - + + Attack time + 어택 시간 - - Compressor - + + Release time + 릴리즈 시간 - - Compress the audio - + + Stereo mode + 스테레오 모드 + + + lmms::Effect - - Limiter - + + Effect enabled + 이펙트 활성화됨 - - Set Ratio to infinity (is not guaranteed to limit audio volume) - + + Wet/Dry mix + 웨트/드라이 믹스 - - Unlinked - + + Gate + 게이트 - - Compress each channel separately - + + Decay + 디케이 + + + lmms::EffectChain - - Maximum - + + Effects enabled + 이펙트 활성화됨 + + + lmms::Engine - - Compress based on the loudest channel - + + Generating wavetables + 웨이브테이블 생성 중 - - Average - + + Initializing data structures + 데이터 구조 초기화 중 - - Compress based on the averaged channel volume - + + Opening audio and midi devices + 오디오 및 MIDI 디바이스 여는 중 - - Minimum - + + Launching audio engine threads + 오디오 엔진 스레드 실행 중 + + + lmms::EnvelopeAndLfoParameters - - Compress based on the quietest channel - + + Env pre-delay + Env 프리-딜레이 - - Blend - + + Env attack + Env 어택 - - Blend between stereo linking modes - + + Env hold + Env 홀드 - - Auto Makeup Gain - + + Env decay + Env 디케이 - - Automatically change makeup gain depending on threshold, knee, and ratio settings - + + Env sustain + Env 서스테인 - - - Soft Clip - + + Env release + Env 릴리즈 - - Play the delta signal - + + Env mod amount + Env mod 양 - - Use the compressor's output as the sidechain input - + + LFO pre-delay + LFO 프리-딜레이 - - Lookahead Enabled - + + LFO attack + LFO 어택 - - Enable Lookahead, which introduces 20 milliseconds of latency - + + LFO frequency + LFO 주파수 - - - CompressorControls - - Threshold - + + LFO mod amount + LFO mod 양 - - Ratio - 비율 + + LFO wave shape + LFO 웨이브 형태 - - Attack - + + LFO frequency x 100 + LFO 주파수 x 100 - - Release - + + Modulate env amount + Env 양 조절하기 - - Knee + + Sample not found + + + lmms::EqControls - - Hold - + + Input gain + 입력 게인 - - Range - + + Output gain + 출력 게인 - - RMS Size - + + Low-shelf gain + 로셀프 게인 - - Mid/Side - + + Peak 1 gain + 피크 1 게인 - - Peak Mode - + + Peak 2 gain + 피크 2 게인 - - Lookahead Length - + + Peak 3 gain + 피크 3 게인 - - Input Balance - + + Peak 4 gain + 피크 4 게인 - - Output Balance - + + High-shelf gain + 하이-셸프 게인 - - Limiter - + + HP res + HP 공명 - - Output Gain - 출력 이득 + + Low-shelf res + 로셀프 공명 - - Input Gain - 입력 이득 + + Peak 1 BW + 피크 1 대역폭 - - Blend - + + Peak 2 BW + 피크 2 대역폭 - - Stereo Balance - + + Peak 3 BW + 피크 3 대역폭 - - Auto Makeup Gain - + + Peak 4 BW + 피크 4 대역폭 - - Audition - + + High-shelf res + 하이셸프 공명 - - Feedback - 피드백 + + LP res + LP 공명 - - Auto Attack - + + HP freq + HP 주파수 - - Auto Release - + + Low-shelf freq + 로셀프 주파수 - - Lookahead - + + Peak 1 freq + 피크 1 주파수 - - Tilt - + + Peak 2 freq + 피크 2 주파수 - - Tilt Frequency - + + Peak 3 freq + 피크 3 주파수 - - Stereo Link - + + Peak 4 freq + 피크 4 주파수 - - Mix - + + High-shelf freq + 하이셸프 주파수 - - - Controller - - Controller %1 - 컨트롤러 %1 + + LP freq + LP 주파수 - - - ControllerConnectionDialog - - Connection Settings - 연결 설정 + + HP active + HP 활성 - - MIDI CONTROLLER - MIDI 컨트롤러 + + Low-shelf active + 로셀프 활성 - - Input channel - 입력 채널 + + Peak 1 active + 피크 1 활성 - - CHANNEL - 채널 + + Peak 2 active + 피크 2 활성 - - Input controller - 입력 컨트롤러 + + Peak 3 active + 피크 3 활성 - - CONTROLLER - 컨트롤러 + + Peak 4 active + 피크 4 활성 - - - Auto Detect - 자동 감지 + + High-shelf active + 하이셸프 활성 - - MIDI-devices to receive MIDI-events from - + + LP active + LP 활성 - - USER CONTROLLER - 사용자 지정 컨트롤러 + + LP 12 + LP 12 - - MAPPING FUNCTION - 매핑 함수 + + LP 24 + LP 24 - - OK - 확인 + + LP 48 + LP 48 - - Cancel - 취소 + + HP 12 + HP 12 - - LMMS - LMMS + + HP 24 + HP 24 - - Cycle Detected. - 순환 연결이 감지되었습니다. + + HP 48 + HP 48 - - - ControllerRackView - - Controller Rack - 컨트롤러 랙 + + Low-pass type + 로패스 유형 - - Add - 추가 + + High-pass type + 하이패스 유형 - - Confirm Delete - 삭제 확인 + + Analyse IN + 입력 신호 분석 - - Confirm delete? There are existing connection(s) associated with this controller. There is no way to undo. - 정말 삭제하시겠습니까? 이 컨트롤러와의 연결이 존재합니다. 이 동작은 취소할 수 없습니다. + + Analyse OUT + 출력 신호 분석 - ControllerView + lmms::FlangerControls - - Controls - 컨트롤 + + Delay samples + 딜레이 샘플 - - Rename controller - 컨트롤러 이름 바꾸기 + + LFO frequency + LFO 주파수 - - Enter the new name for this controller - 컨트롤러의 새 이름을 입력하세요 + + Amount + - - LFO - LFO + + Stereo phase + 스테레오 페이즈 - - &Remove this controller - 컨트롤러 제거(&R) + + Feedback + - - Re&name this controller - 컨트롤러 이름 바꾸기(&N) + + Noise + 잡음 - - - CrossoverEQControlDialog - - Band 1/2 crossover: - 대역 1/2 분할 주파수: + + Invert + 반전 + + + lmms::FreeBoyInstrument - - Band 2/3 crossover: - 대역 2/3 분할 주파수: + + Sweep time + 스위프 시간 - - Band 3/4 crossover: - 대역 3/4 분할 주파수: + + Sweep direction + 스위프 방향 - - Band 1 gain - 대역 1 이득 + + Sweep rate shift amount + 스위프 레이트 시프트 양 - - Band 1 gain: - 대역 1 이득: + + + Wave pattern duty cycle + 웨이브 패턴 듀티 사이클 - - Band 2 gain - 대역 2 이득 + + Channel 1 volume + 채널 1 볼륨 - - Band 2 gain: - 대역 2 이득: + + + + Volume sweep direction + 볼륨 스위프 방향 - - Band 3 gain - 대역 3 이득 + + + + Length of each step in sweep + 스위프에서 각 스텝의 길이 - - Band 3 gain: - 대역 3 이득: + + Channel 2 volume + 채널 2 볼륨 - - Band 4 gain - 대역 4 이득 + + Channel 3 volume + 채널 3 볼륨 - - Band 4 gain: - 대역 4 이득: + + Channel 4 volume + 채널 4 볼륨 - - Band 1 mute - 대역 1 음소거 + + Shift Register width + 시프트 레지스터 너비 - - Mute band 1 - 대역 1 음소거 + + Right output level + 우측 출력 레벨 - - Band 2 mute - 대역 2 음소거 + + Left output level + 좌측 출력 레벨 - - Mute band 2 - 대역 2 음소거 + + Channel 1 to SO2 (Left) + 채널 1 → SO2 (좌측) - - Band 3 mute - 대역 3 음소거 + + Channel 2 to SO2 (Left) + 채널 2 → SO2 (좌측) - - Mute band 3 - 대역 3 음소거 + + Channel 3 to SO2 (Left) + 채널 3 → SO2 (좌측) - - Band 4 mute - 대역 4 음소거 + + Channel 4 to SO2 (Left) + 채널 4 → SO2 (좌측) - - Mute band 4 - 대역 4 음소거 + + Channel 1 to SO1 (Right) + 채널 1 → SO1 (우측) - - - DelayControls - - Delay samples - + + Channel 2 to SO1 (Right) + 채널 2 → SO1 (우측) - - Feedback - 피드백 + + Channel 3 to SO1 (Right) + 채널 3 → SO1 (우측) - - LFO frequency - LFO 주파수 + + Channel 4 to SO1 (Right) + 채널 4 → SO1 (우측) - - LFO amount - + + Treble + 트레블 - - Output gain - 출력 이득 + + Bass + 베이스 - DelayControlsDialog + lmms::GigInstrument - - DELAY - 지연 + + Bank + 뱅크 - - Delay time - + + Patch + 패치 - - FDBK - 피드백 + + Gain + 게인 + + + lmms::GranularPitchShifterControls - - Feedback amount + + Pitch - - RATE + + Grain Size - - LFO frequency - LFO 주파수 - - - - AMNT + + Spray - - LFO amount + + Jitter - - Out gain - 출력 이득 + + Twitch + - - Gain - 이득 + + Pitch Stereo Spread + - - - Dialog - - Add JACK Application + + Spray Stereo - - Note: Features not implemented yet are greyed out + + Shape - - Application + + Fade Length - - Name: + + Feedback - - Application: + + Minimum Allowed Latency - - From template + + Prefilter - - Custom + + Density - - Template: + + Glide - - Command: + + Ring Buffer Length - - Setup + + 5 Seconds - - Session Manager: + + 10 Seconds (Size) - - None - 없음 + + 40 Seconds (Size and Pitch) + - - Audio inputs: + + 40 Seconds (Size and Spray and Jitter) - - MIDI inputs: + + 120 Seconds (All of the above) + + + lmms::InstrumentFunctionArpeggio - - Audio outputs: - + + Arpeggio + 아르페지오 - - MIDI outputs: - + + Arpeggio type + 아르페지오 유형 - - Take control of main application window - + + Arpeggio range + 아르페지오 범위 - - Workarounds - + + Note repeats + 노트 반복 - - Wait for external application start (Advanced, for Debug only) - + + Cycle steps + 사이클 스탭 - - Capture only the first X11 Window - + + Skip rate + 스킵 비율 - - Use previous client output buffer as input for the next client - + + Miss rate + 누락 비율 - - Simulate 16 JACK MIDI outputs, with MIDI channel as port index - + + Arpeggio time + 아르페지오 시간 - - Error here - + + Arpeggio gate + 아르페지오 게이트 - - Carla Control - Connect - + + Arpeggio direction + 아르페지오 방향 - - Remote setup - + + Arpeggio mode + 아르페지오 모드 - - UDP Port: - + + Up + 위로 - - Remote host: - + + Down + 아래로 - - TCP Port: - + + Up and down + 위 다음 아래 - - Reported host - + + Down and up + 아래 다음 위 - - Automatic - + + Random + 무작위 - - Custom: - + + Free + 자유 - - In some networks (like USB connections), the remote system cannot reach the local network. You can specify here which hostname or IP to make the remote Carla connect to. -If you are unsure, leave it as 'Automatic'. - + + Sort + 정렬 - - Set value - 값 설정 + + Sync + 싱크 + + + lmms::InstrumentFunctionNoteStacking - - TextLabel - + + Chords + 코드 - - Scale Points - + + Chord type + 코드 유형 + + + + Chord range + 코드 범위 - DriverSettingsW + lmms::InstrumentSoundShaping - - Driver Settings - + + Envelopes/LFOs + 엔벨로프/LFO - - Device: - + + Filter type + 필터 유형 - - Buffer size: - + + Cutoff frequency + 컷오프 주파수 - - Sample rate: - 샘플 레이트: + + Q/Resonance + Q/공명 - - Triple buffer - + + Low-pass + 로패스 - - Show Driver Control Panel - + + Hi-pass + 하이패스 - - Restart the engine to load the new settings - + + Band-pass csg + 밴드패스 csg - - - DualFilterControlDialog - - - FREQ - 주파수 + + Band-pass czpg + 밴드패스 czpg - - - Cutoff frequency - 차단 주파수 + + Notch + 노치 - - - RESO - 공명 + + All-pass + 올패스 - - - Resonance - 공명 + + Moog + 모그 - - - GAIN - 이득 + + 2x Low-pass + 2x 로패스 - - - Gain - 이득 + + RC Low-pass 12 dB/oct + RC 로패스 12 dB/oct - - MIX - + + RC Band-pass 12 dB/oct + RC 밴드패스 12 dB/oct - - Mix - + + RC High-pass 12 dB/oct + RC 하이패스 12 dB/oct - - Filter 1 enabled - 필터 1 활성화됨 + + RC Low-pass 24 dB/oct + RC 로패스 24 dB/oct - - Filter 2 enabled - 필터 2 활성화됨 + + RC Band-pass 24 dB/oct + RC 밴드패스 24 dB/oct - - Enable/disable filter 1 - 필터 1 활성화/비활성화 + + RC High-pass 24 dB/oct + RC 하이패스 24 dB/oct - - Enable/disable filter 2 - 필터 2 활성화/비활성화 + + Vocal Formant + 보컬 포르만트 - - - DualFilterControls - - Filter 1 enabled - 필터 1 활성화됨 + + 2x Moog + 2x 모그 - - Filter 1 type - 필터 1 종류 + + SV Low-pass + SV 로패스 - - Cutoff frequency 1 - 필터 1 차단 주파수 + + SV Band-pass + SV 밴드패스 - - Q/Resonance 1 - 필터 1 Q/공명 + + SV High-pass + SV 하이패스 - - Gain 1 - 이득 1 + + SV Notch + SV 노치 - - Mix - + + Fast Formant + 패스트 포르만트 - - Filter 2 enabled - 필터 2 활성화됨 + + Tripole + 트리폴 + + + lmms::InstrumentTrack - - Filter 2 type - 필터 2 종류 + + + unnamed_track + 이름없는_트랙 - - Cutoff frequency 2 - 필터 2 차단 주파수 + + Base note + 기본 노트 - - Q/Resonance 2 - Q/공명 2 + + First note + 처음 노트 - - Gain 2 - 이득 2 + + Last note + 마지막 노트 - - - Low-pass - 저역 통과 + + Volume + 볼륨 - - - Hi-pass - 고역 통과 + + Panning + 패닝 - - - Band-pass csg - 대역 통과 csg + + Pitch + 피치 - - - Band-pass czpg - 대역 통과 czpg + + Pitch range + 피치 범위 - - - Notch - 노치 + + Mixer channel + 믹서 채널 - - - All-pass - 전역 통과 + + Master pitch + 마스터 피치 - - - Moog - Moog + + Enable/Disable MIDI CC + MIDI CC 활성화/비활성화 - - - 2x Low-pass - 2x 저역 통과 + + CC Controller %1 + CC 컨트롤러 %1 - - - RC Low-pass 12 dB/oct - RC 저역 통과 12 dB/oct + + + Default preset + 기본 프리셋 + + + lmms::Keymap - - - RC Band-pass 12 dB/oct - RC 대역 통과 12 dB/oct + + empty + 비어 있음 + + + lmms::KickerInstrument - - - RC High-pass 12 dB/oct - RC 고역 통과 12 dB/oct + + Start frequency + 시작 주파수 - - - RC Low-pass 24 dB/oct - RC 저역 통과 24 dB/oct + + End frequency + 끝 주파수 - - - RC Band-pass 24 dB/oct - RC 대역 통과 24 dB/oct + + Length + 길이 - - - RC High-pass 24 dB/oct - RC 고역 통과 24 dB/oct + + Start distortion + 시작 디스토션 - - - Vocal Formant - + + End distortion + 끝 디스토션 - - - 2x Moog - 2x Moog + + Gain + 게인 + + + + Envelope slope + 엔벨로프 슬로프 - - - SV Low-pass - SV 저역 통과 + + Noise + 잡음 - - - SV Band-pass - SV 대역 통과 + + Click + 클릭 - - - SV High-pass - SV 고역 통과 + + Frequency slope + 주파수 슬로프 - - - SV Notch - SV 노치 + + Start from note + 시작을 노트에서 - - - Fast Formant - + + End to note + 끝을 노트까지 + + + lmms::LOMMControls - - - Tripole + + Depth - - - Editor - - Transport controls + + Time - - Play (Space) - 재생 (Space) + + Input Volume + - - Stop (Space) - 정지 (Space) + + Output Volume + - - Record - 녹음 + + Upward Depth + - - Record while playing - 재생하면서 녹음 + + Downward Depth + - - Toggle Step Recording + + High/Mid Split - - - Effect - - Effect enabled - 효과 활성화됨 + + Mid/Low Split + - - Wet/Dry mix + + Enable High/Mid Split - - Gate - 게이트 + + Enable Mid/Low Split + - - Decay + + Enable High Band - - - EffectChain - - Effects enabled - 효과 활성화됨 + + Enable Mid Band + - - - EffectRackView - - EFFECTS CHAIN - 효과 체인 + + Enable Low Band + - - Add effect - 효과 추가 + + High Input Volume + - - - EffectSelectDialog - - Add effect - 효과 추가 + + Mid Input Volume + - - - Name - 이름 + + Low Input Volume + - - Type - 형태 + + High Output Volume + - - Description - 요약 + + Mid Output Volume + - - Author - 개발자 + + Low Output Volume + - - - EffectView - - On/Off - 켬/끔 + + Above Threshold High + - - W/D + + Above Threshold Mid - - Wet Level: + + Above Threshold Low - - DECAY + + Above Ratio High - - Time: + + Above Ratio Mid - - GATE - 게이트 + + Above Ratio Low + - - Gate: - 게이트: + + Below Threshold High + - - Controls - 컨트롤 + + Below Threshold Mid + - - Move &up - 위로 이동(&U) + + Below Threshold Low + - - Move &down - 아래로 이동(&D) + + Below Ratio High + - - &Remove this plugin - 플러그인 제거(&R) + + Below Ratio Mid + - - - EnvelopeAndLfoParameters - - Env pre-delay + + Below Ratio Low - - Env attack + + Attack High - - Env hold + + Attack Mid - - Env decay + + Attack Low - - Env sustain + + Release High - - Env release + + Release Mid - - Env mod amount + + Release Low - - LFO pre-delay + + RMS Time - - LFO attack + + Knee - - LFO frequency - LFO 주파수 + + Range + - - LFO mod amount + + Balance - - LFO wave shape + + Scale output volume with Depth - - LFO frequency x 100 - LFO 주파수 x 100 + + Stereo Link + - - Modulate env amount + + Auto Time - - - EnvelopeAndLfoView - - - DEL + + Mix - - - Pre-delay: + + Feedback - - - ATT + + Mid/Side - - - Attack: + + Lookahead - - HOLD + + Lookahead Length - - Hold: + + Suppress upward compression for side band + + + lmms::LadspaControl - - DEC - 감쇠 + + Link channels + 링크 채널 + + + lmms::LadspaEffect - - Decay: - 감쇠: + + Unknown LADSPA plugin %1 requested. + 알 수 없는 LADSPA 플러그인 %1이(가) 요청되었습니다. + + + lmms::Lb302Synth - - SUST - + + VCF Cutoff Frequency + VCF 컷오프 주파수 - - Sustain: - + + VCF Resonance + VCF 공명 - - REL - + + VCF Envelope Mod + VCF 엔빌로프 Mod - - Release: - + + VCF Envelope Decay + VCF 엔빌로프 디케이 - - - AMT - + + Distortion + 디스토션 - - - Modulation amount: - + + Waveform + 파형 - - SPD - 속도 + + Slide Decay + 슬라이드 디케이 - - Frequency: - 주파수: + + Slide + 슬라이드 - - FREQ x 100 - 주파수 x 100 + + Accent + 악센트 - - Multiply LFO frequency by 100 - + + Dead + 데드 - - MODULATE ENV AMOUNT - + + 24dB/oct Filter + 24dB/oct 필터 + + + lmms::LfoController - - Control envelope amount by this LFO - + + LFO Controller + LFO 컨트롤러 - - ms/LFO: - ms/LFO: + + Base value + 기본 값 - - Hint - + + Oscillator speed + 오실레이터 속도 - - Drag and drop a sample into this window. - + + Oscillator amount + 오실레이터 량 - - - EqControls - - Input gain - 입력 이득 + + Oscillator phase + 오실레이터 페이즈 - - Output gain - 출력 이득 + + Oscillator waveform + 오실레이터 파형 - - Low-shelf gain + + Frequency Multiplier + 주파수 증폭기 + + + + Sample not found + + + lmms::MalletsInstrument - - Peak 1 gain - 피크 1 이득 + + Hardness + 하드니스 - - Peak 2 gain - 피크 2 이득 + + Position + 포지션 - - Peak 3 gain - 피크 3 이득 + + Vibrato gain + 비브라토 게인 - - Peak 4 gain - 피크 4 이득 + + Vibrato frequency + 비브라토 주파수 - - High-shelf gain - + + Stick mix + 스틱 믹스 - - HP res - 고역 필터 공명 + + Modulator + 모듈레이터 - - Low-shelf res - + + Crossfade + 크로스페이드 - - Peak 1 BW - 피크 1 대역폭 + + LFO speed + LFO 속도 - - Peak 2 BW - 피크 2 대역폭 + + LFO depth + LFO 깊이 - - Peak 3 BW - 피크 3 대역폭 + + ADSR + ADSR - - Peak 4 BW - 피크 4 대역폭 + + Pressure + 누름 - - High-shelf res - + + Motion + 모션 - - LP res - 저역 필터 공명 + + Speed + 속도 - - HP freq - 고역 필터 주파수 + + Bowed + 활켜기 - - Low-shelf freq + + Instrument - - Peak 1 freq - 피크 1 주파수 + + Spread + 스프레드 - - Peak 2 freq - 피크 2 주파수 + + Randomness + - - Peak 3 freq - 피크 3 주파수 + + Marimba + 마림바 - - Peak 4 freq - 피크 4 주파수 + + Vibraphone + 비브라폰 - - High-shelf freq - + + Agogo + 아고고 - - LP freq - 저역 필터 주파수 + + Wood 1 + 우드 1 - - HP active - + + Reso + 레소 - - Low-shelf active - + + Wood 2 + 우드 2 - - Peak 1 active - 피크 1 활성화 + + Beats + 비트 - - Peak 2 active - 피크 2 활성화 + + Two fixed + - - Peak 3 active - 피크 3 활성화 + + Clump + 클럼프 - - Peak 4 active - 피크 4 활성화 + + Tubular bells + 튜블라 벨 - - High-shelf active + + Uniform bar - - LP active + + Tuned bar - - LP 12 - LP 12 + + Glass + 글라스 - - LP 24 - LP 24 + + Tibetan bowl + 티베탄 싱잉볼 + + + lmms::MeterModel - - LP 48 - LP 48 + + Numerator + 분자 - - HP 12 - HP 12 + + Denominator + 분모 + + + lmms::Microtuner - - HP 24 - HP 24 + + Microtuner + 마이크로튜너 - - HP 48 - HP 48 + + Microtuner on / off + 마이크로튜너 켬/끔 - - Low-pass type - 저역 통과 필터 유형 + + Selected scale + 선택된 스케일 - - High-pass type - 고역 통과 필터 유형 + + Selected keyboard mapping + 선택된 키보드 매핑 + + + lmms::MidiController - - Analyse IN - 입력 신호 분석 + + MIDI Controller + MIDI 컨트롤러 - - Analyse OUT - 출력 신호 분석 + + unnamed_midi_controller + 이름없는_MIDI_컨트롤러 - EqControlsDialog - - - HP - - + lmms::MidiImport - - Low-shelf - + + + Setup incomplete + 셋업 미완료 - - Peak 1 - 피크 1 + + You have not set up a default soundfont in the settings dialog (Edit->Settings). Therefore no sound will be played back after importing this MIDI file. You should download a General MIDI soundfont, specify it in settings dialog and try again. + 설정 대화상자(편집->설정)에서 기본 사운드폰트를 설정하지 않았습니다. 그러므로 이 MIDI 파일을 가져오면 사운드가 연주되지 않습니다. 일반 MIDI 사운드폰트를 다운로드하여 설정 대화상자에서 지정한 후 다시 시도해야 합니다. - - Peak 2 - 피크 2 + + You did not compile LMMS with support for SoundFont2 player, which is used to add default sound to imported MIDI files. Therefore no sound will be played back after importing this MIDI file. + 가져온 MIDI 파일에 기본 사운드를 추가하는 데 사용되는 SoundFont2 재생기를 지원하는 LMMS를 컴파일하지 않았습니다. 그러므로 이 MIDI 파일을 가져온 후에는 사운드가 연주되지 않습니다. - - Peak 3 - 피크 3 + + MIDI Time Signature Numerator + MIDI 박자표 분자 - - Peak 4 - 피크 4 + + MIDI Time Signature Denominator + MIDI 박자표 분모 - - High-shelf - + + Numerator + 분자 - - LP - + + Denominator + 분모 - - Input gain - 입력 이득 + + + Tempo + 템포 - - - - Gain - 이득 + + Track + 트랙 + + + lmms::MidiJack - - Output gain - 출력 이득 + + JACK server down + When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (title) + JACK 서버 다운 - - Bandwidth: - 대역폭: + + The JACK server seems to be shuted down. + When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (dialog message) + JACK 서버가 종료된 것 같습니다. + + + lmms::MidiPort - - Octave - 옥타브 + + Input channel + 입력 채널 - - Resonance : - 공명 : + + Output channel + 출력 채널 - - Frequency: - 주파수: + + Input controller + 입력 컨트롤러 - - LP group - + + Output controller + 출력 컨트롤러 - - HP group - + + Fixed input velocity + 고정된 입력 벨로시티 - - - EqHandle - - Reso: - 공명: + + Fixed output velocity + 고정된 출력 벨로시티 - - BW: - 대역폭: + + Fixed output note + 고정된 출력 노트 - - - Freq: - 주파수: + + Output MIDI program + 출력 MIDI 프로그램 - - - ExportProjectDialog - - Export project - 프로젝트 내보내기 + + Base velocity + 기준 벨로시티 - - Export as loop (remove extra bar) - 루프 곡처럼 내보내기 (추가적 마디 제거) + + Receive MIDI-events + MIDI 이벤트 수신하기 - - Export between loop markers - 반복 마커 사이 구간만 내보내기 + + Send MIDI-events + MIDI 이벤트 전송하기 + + + lmms::Mixer - - Render Looped Section: - + + Master + 마스터 - - time(s) - + + + + Channel %1 + 채널 %1 - - File format settings - 파일 형식 설정 + + Volume + 볼륨 - - File format: - 파일 형식: + + Mute + 음소거 - - Sampling rate: - 샘플 레이트: + + Solo + 솔로 연주 + + + lmms::MixerRoute - - 44100 Hz - 44100 Hz + + + Amount to send from channel %1 to channel %2 + %1 채널에서 %2 채널로 전송할 양 + + + lmms::MonstroInstrument - - 48000 Hz - 48000 Hz + + Osc 1 volume + Osc 1 볼륨 - - 88200 Hz - 88200 Hz + + Osc 1 panning + Osc 1 패닝 - - 96000 Hz - 96000 Hz + + Osc 1 coarse detune + Osc 1 코어스 디튠 - - 192000 Hz - 192000 Hz + + Osc 1 fine detune left + Osc 1 파인 디튠 좌측 - - Bit depth: - 비트 깊이: + + Osc 1 fine detune right + Osc 1 파인 디튠 우측 - - 16 Bit integer - 16비트 정수 + + Osc 1 stereo phase offset + Osc 1 스테레오 페이즈 오프셋 - - 24 Bit integer - 24비트 정수 + + Osc 1 pulse width + Osc 1 펄스 폭 - - 32 Bit float - 32비트 실수 + + Osc 1 sync send on rise + 상승 시 Osc 1 싱크 전송하기 - - Stereo mode: - 스테레오 모드: + + Osc 1 sync send on fall + 하강 시 OSC 1 싱크 전송하기 - - Mono - 모노 + + Osc 2 volume + Osc 2 볼륨 - - Stereo - 스테레오 + + Osc 2 panning + Osc 2 패닝 - - Joint stereo - 통합 스테레오 + + Osc 2 coarse detune + Osc 2 코어스 디튠 - - Compression level: - 압축률: + + Osc 2 fine detune left + Osc 2 파인 디튠 좌측 - - Bitrate: - 비트 레이트: + + Osc 2 fine detune right + Osc 2 파인 디튠 우측 - - 64 KBit/s - 64 KBit/s + + Osc 2 stereo phase offset + Osc 2 스테레오 페이즈 오프셋 - - 128 KBit/s - 128 KBit/s + + Osc 2 waveform + Osc 2 파형 - - 160 KBit/s - 160 KBit/s + + Osc 2 sync hard + Osc 2 싱크 하드 - - 192 KBit/s - 192 KBit/s + + Osc 2 sync reverse + Osc 2 싱크 리버스 - - 256 KBit/s - 256 KBit/s + + Osc 3 volume + Osc 3 볼륨 - - 320 KBit/s - 320 KBit/s + + Osc 3 panning + Osc 3 패닝 - - Use variable bitrate - 가변 비트레이트 사용 + + Osc 3 coarse detune + Osc 3 코어스 디튠 - - Quality settings - 품질 설정 + + Osc 3 Stereo phase offset + Osc 3 스테리오 페이즈 오프셋 - - Interpolation: - 보간법: + + Osc 3 sub-oscillator mix + Osc 3 서브 오실레이터 믹스 - - Zero order hold - + + Osc 3 waveform 1 + Osc 3 파형 1 - - Sinc worst (fastest) - 최저 품질 sinc (가장 빠름) + + Osc 3 waveform 2 + Osc 3 파형 2 - - Sinc medium (recommended) - 보통 품질 sinc (추천) + + Osc 3 sync hard + Osc 3 싱크 하드 - - Sinc best (slowest) - 최고 품질 sinc (가장 느림) + + Osc 3 Sync reverse + Osc 3 싱크 리버스 - - Oversampling: - 오버샘플링: + + LFO 1 waveform + LFO 1 파형 - - 1x (None) - 1x (사용하지 않음) + + LFO 1 attack + LFO 1 어택 - - 2x - 2x + + LFO 1 rate + LFO 1 레이트 - - 4x - 4x + + LFO 1 phase + LFO 1 페이즈 - - 8x - 8x + + LFO 2 waveform + LFO 2 파형 - - Start - 시작 + + LFO 2 attack + LFO 2 어택 - - Cancel - 취소 + + LFO 2 rate + LFO 2 레이트 - - Could not open file - 파일을 열 수 없음 + + LFO 2 phase + LFO 2 페이즈 - - Could not open file %1 for writing. -Please make sure you have write permission to the file and the directory containing the file and try again! - 파일 %1을(를) 쓰기 위하여 열 수 없습니다. -경로에 파일이 존재하고 파일에 쓸 수 있는 권한이 있는지 확인 후 다시 시도하시기 바랍니다! + + Env 1 pre-delay + Env 1 프리-딜레이 - - Export project to %1 - %1(으)로 프로젝트 내보내기 + + Env 1 attack + Env 1 어택 - - ( Fastest - biggest ) - ( 가장 빠르게 - 용량 가장 큼 ) + + Env 1 hold + Env 1 홀드 - - ( Slowest - smallest ) - ( 가장 느리게 - 용량 가장 작음 ) + + Env 1 decay + Env 1 디케이 - - Error - 오류 + + Env 1 sustain + Env 1 서스테인 - - Error while determining file-encoder device. Please try to choose a different output format. - 파일 인코더를 결정하는 중 오류가 발생하였습니다. 다른 포맷을 선택하여 다시 시도해 보세요. + + Env 1 release + Env 1 릴리즈 - - Rendering: %1% - 렌더링: %1% + + Env 1 slope + Env 1 슬로프 - - - Fader - - Set value - 값 설정 + + Env 2 pre-delay + Env 2 프리-딜레이 - - Please enter a new value between %1 and %2: - %1부터 %2까지의 값을 입력하세요: + + Env 2 attack + Env 2 어택 - - - FileBrowser - - User content - + + Env 2 hold + Env 2 홀드 - - Factory content - + + Env 2 decay + Env 2 디케이 - - Browser - 탐색기 + + Env 2 sustain + Env 2 서스테인 - - Search - 검색 + + Env 2 release + Env 2 릴리즈 - - Refresh list - 목록 새로고침 + + Env 2 slope + Env 2 슬로프 - - - FileBrowserTreeWidget - - Send to active instrument-track - 활성화된 악기 트랙에서 열기 + + Osc 2+3 modulation + Osc 2+3 모듈레이션 - - Open containing folder - + + Selected view + 선택된 항목 보기 - - Song Editor - 노래 편집기 + + Osc 1 - Vol env 1 + Osc 1 - Vol env 1 - - BB Editor - + + Osc 1 - Vol env 2 + Osc 1 - Vol env 2 - - Send to new AudioFileProcessor instance - + + Osc 1 - Vol LFO 1 + Osc 1 - Vol LFO 1 - - Send to new instrument track - + + Osc 1 - Vol LFO 2 + Osc 1 - Vol LFO 2 - - (%2Enter) - + + Osc 2 - Vol env 1 + Osc 2 - Vol env 1 - - Send to new sample track (Shift + Enter) - + + Osc 2 - Vol env 2 + Osc 2 - Vol env 2 - - Loading sample - 샘플을 로딩하는 중 + + Osc 2 - Vol LFO 1 + Osc 2 - Vol LFO 1 - - Please wait, loading sample for preview... - 미리보기를 위하여 샘플을 로딩하는 중입니다. 잠시 기다려 주세요... + + Osc 2 - Vol LFO 2 + Osc 2 - Vol LFO 2 - - Error - 오류 + + Osc 3 - Vol env 1 + Osc 3 - Vol env 1 - - %1 does not appear to be a valid %2 file - + + Osc 3 - Vol env 2 + Osc 3 - Vol env 2 - - --- Factory files --- - + + Osc 3 - Vol LFO 1 + Osc 3 - Vol LFO 1 - - - FlangerControls - - Delay samples - + + Osc 3 - Vol LFO 2 + Osc 3 - Vol LFO 2 - - LFO frequency - LFO 주파수 + + Osc 1 - Phs env 1 + Osc 1 - Phs env 1 - - Seconds - + + Osc 1 - Phs env 2 + Osc 1 - Phs env 2 - - Stereo phase - + + Osc 1 - Phs LFO 1 + Osc 1 - Phs LFO 1 - - Regen - + + Osc 1 - Phs LFO 2 + Osc 1 - Phs LFO 2 - - Noise - 잡음 + + Osc 2 - Phs env 1 + Osc 2 - Phs env 1 - - Invert - 파형 반전 + + Osc 2 - Phs env 2 + Osc 2 - Phs env 2 - - - FlangerControlsDialog - - DELAY - 지연 + + Osc 2 - Phs LFO 1 + Osc 2 - Phs LFO 1 - - Delay time: - 지연 시간: + + Osc 2 - Phs LFO 2 + Osc 2 - Phs LFO 2 - - RATE - + + Osc 3 - Phs env 1 + Osc 3 - Phs env 1 - - Period: - + + Osc 3 - Phs env 2 + Osc 3 - Phs env 2 - - AMNT - + + Osc 3 - Phs LFO 1 + Osc 3 - Phs LFO 1 - - Amount: - + + Osc 3 - Phs LFO 2 + Osc 3 - Phs LFO 2 - - PHASE - + + Osc 1 - Pit env 1 + Osc 1 - Pit env 1 - - Phase: - + + Osc 1 - Pit env 2 + Osc 1 - Pit env 2 - - FDBK - 피드백 + + Osc 1 - Pit LFO 1 + Osc 1 - Pit LFO 1 - - Feedback amount: - + + Osc 1 - Pit LFO 2 + Osc 1 - Pit LFO 2 - - NOISE - 잡음 + + Osc 2 - Pit env 1 + Osc 2 - Pit env 1 - - White noise amount: - + + Osc 2 - Pit env 2 + Osc 2 - Pit env 2 - - Invert - 파형 반전 + + Osc 2 - Pit LFO 1 + Osc 2 - Pit LFO 1 - - - FreeBoyInstrument - - Sweep time - + + Osc 2 - Pit LFO 2 + Osc 2 - Pit LFO 2 - - Sweep direction - + + Osc 3 - Pit env 1 + Osc 3 - Pit env 1 - - Sweep rate shift amount - + + Osc 3 - Pit env 2 + Osc 3 - Pit env 2 - - - Wave pattern duty cycle - + + Osc 3 - Pit LFO 1 + Osc 3 - Pit LFO 1 - - Channel 1 volume - + + Osc 3 - Pit LFO 2 + Osc 3 - Pit LFO 2 - - - - Volume sweep direction - + + Osc 1 - PW env 1 + Osc 1 - PW env 1 - - - - Length of each step in sweep - + + Osc 1 - PW env 2 + Osc 1 - PW env 2 - - Channel 2 volume - + + Osc 1 - PW LFO 1 + Osc 1 - PW LFO 1 - - Channel 3 volume - + + Osc 1 - PW LFO 2 + Osc 1 - PW LFO 2 - - Channel 4 volume - + + Osc 3 - Sub env 1 + Osc 3 - Sub env 1 - - Shift Register width - + + Osc 3 - Sub env 2 + Osc 3 - Sub env 2 - - Right output level - + + Osc 3 - Sub LFO 1 + Osc 3 - Sub LFO 1 - - Left output level - + + Osc 3 - Sub LFO 2 + Osc 3 - Sub LFO 2 - - Channel 1 to SO2 (Left) - + + + Sine wave + 사인파 - - Channel 2 to SO2 (Left) - + + Bandlimited Triangle wave + 밴드리밋된 삼각파 - - Channel 3 to SO2 (Left) - + + Bandlimited Saw wave + 밴드리밋된 톱니파 - - Channel 4 to SO2 (Left) - + + Bandlimited Ramp wave + 밴드리밋된 램프파 - - Channel 1 to SO1 (Right) - + + Bandlimited Square wave + 밴드리밋된 사각파 - - Channel 2 to SO1 (Right) - + + Bandlimited Moog saw wave + 밴드리밋된 모그 톱니파 - - Channel 3 to SO1 (Right) - + + + Soft square wave + 둥근 모서리 사각파 - - Channel 4 to SO1 (Right) - + + Absolute sine wave + 절대 사인파 - - Treble - + + + Exponential wave + 지수파 - - Bass - + + White noise + 백색 잡음 - - - FreeBoyInstrumentView - - Sweep time: - + + Digital Triangle wave + 디지털 삼각파 - - Sweep time - + + Digital Saw wave + 디지털 톱니파 - - Sweep rate shift amount: - + + Digital Ramp wave + 디지털 램프파 - - Sweep rate shift amount - + + Digital Square wave + 디지털 사각파 - - - Wave pattern duty cycle: - + + Digital Moog saw wave + 디지털 모그 톱니파 - - - Wave pattern duty cycle - + + Triangle wave + 삼각파 - - Square channel 1 volume: - + + Saw wave + 톱니파 - - Square channel 1 volume - + + Ramp wave + 램프파 - - - - Length of each step in sweep: - + + Square wave + 사각파 - - - - Length of each step in sweep - + + Moog saw wave + 모그 톱니파 - - Square channel 2 volume: - + + Abs. sine wave + 절대 사인파 - - Square channel 2 volume - + + Random + 무작위 - - Wave pattern channel volume: - + + Random smooth + 무작위로 부드럽게 + + + lmms::NesInstrument - - Wave pattern channel volume + + Channel 1 enable - - Noise channel volume: - + + Channel 1 coarse detune + 채널 1 코어스 디튠 - - Noise channel volume - + + Channel 1 volume + 채널 1 볼륨 - - SO1 volume (Right): + + Channel 1 envelope enable - - SO1 volume (Right) + + Channel 1 envelope loop - - SO2 volume (Left): - + + Channel 1 envelope length + 채널 1 엔벨로프 길이 - - SO2 volume (Left) - + + Channel 1 duty cycle + 채널 1 듀티 사이클 - - Treble: + + Channel 1 sweep enable - - Treble - + + Channel 1 sweep amount + 채널 1 스위프 양 - - Bass: - + + Channel 1 sweep rate + 채널 1 스위프 레이트 - - Bass + + Channel 2 enable - - Sweep direction + + Channel 2 coarse detune - - - - - - Volume sweep direction + + Channel 2 volume - - Shift register width + + Channel 2 envelope enable - - Channel 1 to SO1 (Right) + + Channel 2 envelope loop - - Channel 2 to SO1 (Right) - + + Channel 2 envelope length + 채널 2 엔벨로프 길이 - - Channel 3 to SO1 (Right) - + + Channel 2 duty cycle + 채널 2 듀티 사이클 - - Channel 4 to SO1 (Right) + + Channel 2 sweep enable - - Channel 1 to SO2 (Left) - + + Channel 2 sweep amount + 채널 2 스위프 양 - - Channel 2 to SO2 (Left) - + + Channel 2 sweep rate + 채널 2 스위프 레이트 - - Channel 3 to SO2 (Left) + + Channel 3 enable - - Channel 4 to SO2 (Left) - + + Channel 3 coarse detune + 채널 3 코어스 디튠 - - Wave pattern graph - + + Channel 3 volume + 채널 3 볼륨 - - - MixerLine - - Channel send amount + + Channel 4 enable - - Move &left - 왼쪽으로 이동(&L) + + Channel 4 volume + 채널 4 볼륨 - - Move &right - 오른쪽으로 이동(&R) + + Channel 4 envelope enable + - - Rename &channel - 채널 이름 바꾸기(&C) + + Channel 4 envelope loop + - - R&emove channel - 채널 제거(&R) + + Channel 4 envelope length + 채널 4 엔벨로프 길이 - - Remove &unused channels - 사용하지 않는 채널 제거(&U) + + Channel 4 noise mode + - - Set channel color + + Channel 4 frequency mode - - Remove channel color - + + Channel 4 noise frequency + 채널 4 잡음 주파수 + + + + Channel 4 noise frequency sweep + 채널 4 잡음 주파수 스위프 - - Pick random channel color + + Channel 4 quantize - - - MixerLineLcdSpinBox - - Assign to: - 채널 할당: + + Master volume + 마스터 볼륨 - - New mixer Channel - 새 FX 채널 + + Vibrato + 비브라토 - Mixer + lmms::OpulenzInstrument - - Master - 마스터 + + Patch + 패치 - - - - Channel %1 - FX %1 + + Op 1 attack + Op 1 어택 - - Volume - 음량 + + Op 1 decay + Op 1 디케이 - - Mute - 음소거 + + Op 1 sustain + Op 1 서스테인 - - Solo - 독주 + + Op 1 release + Op 1 릴리즈 - - - MixerView - - Mixer - FX-믹서 + + Op 1 level + Op 1 레벨 - - Fader %1 - FX 페이더 %1 + + Op 1 level scaling + Op 1 레벨 스케일링 - - Mute - 음소거 + + Op 1 frequency multiplier + Op 1 주파수 증폭기 - - Mute this mixer channel - 이 채널 음소거 + + Op 1 feedback + Op 1 피드백 - - Solo - 독주 + + Op 1 key scaling rate + Op 1 키 스케일링 레이트 - - Solo mixer channel - 이 채널 독주 + + Op 1 percussive envelope + Op 1 퍼커시브 엔벨로프 - - - MixerRoute - - - Amount to send from channel %1 to channel %2 - 채널 %1에서 채널 %2(으)로 보낼 양 + + Op 1 tremolo + Op 1 트레몰로 - - - GigInstrument - - Bank - 뱅크 + + Op 1 vibrato + Op 1 비브라토 - - Patch - 패치 + + Op 1 waveform + Op 1 파형 - - Gain - 이득 + + Op 2 attack + Op 2 어택 - - - GigInstrumentView - - - Open GIG file - GIG 파일 열기 + + Op 2 decay + Op 2 디케이 - - Choose patch - 패치 선택 + + Op 2 sustain + Op 2 서스테인 - - Gain: - 이득: + + Op 2 release + Op 2 릴리즈 - - GIG Files (*.gig) - GIG 파일 (*.gig) + + Op 2 level + Op 2 레벨 - - - GuiApplication - - Working directory - 작업 경로 + + Op 2 level scaling + Op 2 레벨 스케일링 - - The LMMS working directory %1 does not exist. Create it now? You can change the directory later via Edit -> Settings. - LMMS 작업 경로 %1이(가) 존재하지 않습니다. 지금 만드시겠습니까? 나중에 편집 -> 설정에서 변경할 수 있습니다. + + Op 2 frequency multiplier + Op 2 주파수 증폭기 - - Preparing UI - UI 준비 + + Op 2 key scaling rate + Op 2 키 스케일링 레이트 - - Preparing song editor - 노래 편집기 준비 + + Op 2 percussive envelope + Op 2 퍼커시브 엔벨로프 - - Preparing mixer - 믹서 준비 + + Op 2 tremolo + Op 2 트레몰로 - - Preparing controller rack - 컨트롤러 랙 준비 + + Op 2 vibrato + Op 2 비브라토 - - Preparing project notes - 프로젝트 노트 준비 + + Op 2 waveform + Op 2 파형 - - Preparing beat/bassline editor - 비트/베이스 라인 편집기 준비 + + FM + FM - - Preparing piano roll - 피아노 롤 준비 + + Vibrato depth + 비브라토 깊이 - - Preparing automation editor - 오토메이션 편집기 준비 + + Tremolo depth + 트레몰로 깊이 - InstrumentFunctionArpeggio + lmms::OrganicInstrument - - Arpeggio - 아르페지오 + + Distortion + 디스토션 - - Arpeggio type - 아르페지오 형태 + + Volume + 볼륨 + + + lmms::OscillatorObject - - Arpeggio range - 아르페지오 범위 + + Osc %1 waveform + Osc %1 파형 - - Note repeats - + + Osc %1 harmonic + Osc %1 하모닉 - - Cycle steps - + + + Osc %1 volume + Osc %1 볼륨 - - Skip rate - + + + Osc %1 panning + Osc %1 패닝 - - Miss rate + + Osc %1 stereo detuning - - Arpeggio time - 아르페지오 시간 - - - - Arpeggio gate - 아르페지오 게이트 - - - - Arpeggio direction - 아르페지오 방향 - - - - Arpeggio mode - 아르페지오 모드 + + Osc %1 coarse detuning + Osc %1 코어스 디튜닝 - - Up - 위로 + + Osc %1 fine detuning left + Osc %1 파인 디튜닝 좌측 - - Down - 아래로 + + Osc %1 fine detuning right + Osc %1 파인 디튜닝 우측 - - Up and down - 위 다음 아래 + + Osc %1 phase-offset + Osc %1 페이즈-오프셋 - - Down and up - 아래 다음 위 + + Osc %1 stereo phase-detuning + Osc %1 스테레오 페이즈-디튜닝 - - Random - 무작위 + + Osc %1 wave shape + Osc %1 웨이브 형태 - - Free - 자유 + + Modulation type %1 + 모듈레이션 유형 %1 + + + lmms::PatternTrack - - Sort - 정렬 + + Pattern %1 + 패턴 %1 - - Sync - 동기화 + + Clone of %1 + %1의 클론 - InstrumentFunctionArpeggioView + lmms::PeakController - - ARPEGGIO - 아르페지오 + + Peak Controller + 피크 컨트롤러 - - RANGE - 범위 + + Peak Controller Bug + 피크 컨트롤러 버그 - - - Arpeggio range: - 아르페지오 범위: + + + Due to a bug in older version of LMMS, the peak controllers may not be connect properly. Please ensure that peak controllers are connected properly and re-save this file. Sorry for any inconvenience caused. + 이전 버전 LMMS의 버그로 인해 피크 컨트롤러가 제대로 연결되지 않았을 수 있습니다. 피크 컨트롤러가 제대로 연결되었는지 확인 후 이 파일을 다시 저장해 주시기 바랍니다. 불편을 드려 죄송합니다. + + + lmms::PeakControllerEffectControls - - octave(s) - 옥타브 + + Base value + 기준 값 - - REP - + + Modulation amount + 모듈레이션 양 - - Note repeats: - + + Attack + 어택 - - time(s) - + + Release + 릴리즈 - - CYCLE - + + Treshold + 트레스홀드 - - Cycle notes: - + + Mute output + 출력 음소거 - - note(s) - + + Absolute value + 절댓값 - - SKIP - + + Amount multiplicator + 양 배율기 + + + lmms::Plugin - - Skip rate: - + + Plugin not found + 플러그인을 찾을 수 없음 - - - - % - % + + The plugin "%1" wasn't found or could not be loaded! +Reason: "%2" + "%1" 플러그인을 찾을 수 없거나 불러올 수 없습니다. +원인: %2 - - MISS - + + Error while loading plugin + 플러그인 불러오는 중 오류 - - Miss rate: - + + Failed to load plugin "%1"! + "%1" 플러그인을 불러오지 못했습니다! + + + lmms::ReverbSCControls - - TIME - 시간 + + Input gain + 입력 게인 - - Arpeggio time: - 아르페지오 시간: + + Size + 크기 - - ms - ms + + Color + 색상 - - GATE - 게이트 + + Output gain + 출력 게인 + + + lmms::SaControls - - Arpeggio gate: - 아르페지오 게이트: + + Pause + 일시정지 - - Chord: - 코드: + + Reference freeze + 레퍼런스 프리즈 - - Direction: - 방향: + + Waterfall + 워터폴 - - Mode: - 모드: + + Averaging + 애버리징 - - - InstrumentFunctionNoteStacking - - octave - 옥타브 + + Stereo + 스테레오 - - - Major - + + Peak hold + 피크 홀드 - - Majb5 - + + Logarithmic frequency + 로가리듬 주파수 - - minor - + + Logarithmic amplitude + 로가리듬 진폭 - - minb5 - + + Frequency range + 주파수 범위 - - sus2 - + + Amplitude range + 진폭 범위 - - sus4 - + + FFT block size + FFT 블록 크기 - - aug - + + FFT window type + FFT 창 유형 - - augsus4 - + + Peak envelope resolution + 피크 엔벨로프 레졸루션 - - tri - + + Spectrum display resolution + 스펙트럼 디스플레이 레졸루션 - - 6 - 6 + + Peak decay multiplier + 피크 디케이 증폭기 - - 6sus4 - 6sus4 + + Averaging weight + 애버리징 위젯 - - 6add9 - 6add9 + + Waterfall history size + 워터폴 히스토리 크기 - - m6 - + + Waterfall gamma correction + 워터폴 감마 보정 - - m6add9 - + + FFT window overlap + FFT 창 오버랩 - - 7 - 7 + + FFT zero padding + FFT 제로 패딩 - - 7sus4 - 7sus4 + + + Full (auto) + 전체 (자동) - - 7#5 - 7#5 + + + + Audible + 잘 들리게 - - 7b5 - 7b5 + + Bass + 최저음 - - 7#9 - 7#9 + + Mids + 중간음 - - 7b9 - 7b9 + + High + 최고음 - - 7#5#9 - 7#5#9 + + Extended + 늘어지게 - - 7#5b9 - 7#5b9 + + Loud + 크게 - - 7b5b9 - 7b5b9 + + Silent + 조용하게 - - 7add11 - 7add11 + + (High time res.) + (최고음 시간 res.) - - 7add13 - 7add13 + + (High freq. res.) + (최고음 주파수 res.) - - 7#11 - 7#11 + + Rectangular (Off) + 렉탱귤러 (끔) - - Maj7 - + + + Blackman-Harris (Default) + 블랙맨-해리스 (기본값) - - Maj7b5 - + + Hamming + 해밍 - - Maj7#5 - + + Hanning + 해닝 + + + lmms::SampleClip - - Maj7#11 + + Sample not found + + + lmms::SampleTrack - - Maj7add13 - + + Volume + 볼륨 - - m7 - + + Panning + 패닝 - - m7b5 - + + Mixer channel + 믹서 채널 - - m7b9 - + + + Sample track + 샘플 트랙 + + + lmms::Scale - - m7add11 - + + empty + 비어 있음 + + + lmms::Sf2Instrument - - m7add13 - + + Bank + 뱅크 - - m-Maj7 - + + Patch + 패치 - - m-Maj7add11 - + + Gain + 게인 - - m-Maj7add13 - + + Reverb + 리버브 - - 9 - 9 + + Reverb room size + 리버브 공간 크기 - - 9sus4 - 9sus4 + + Reverb damping + 리버브 진폭 감소 - - add9 - add9 + + Reverb width + 리버브 폭 - - 9#5 - 9#5 + + Reverb level + 리버브 레벨 - - 9b5 - 9b5 + + Chorus + 코러스 - - 9#11 - 9#11 + + Chorus voices + 코러스 보이스 - - 9b13 - 9b13 + + Chorus level + 코러스 레벨 - - Maj9 - + + Chorus speed + 코러스 속도 - - Maj9sus4 - + + Chorus depth + 코러스 깊이 - - Maj9#5 - + + A soundfont %1 could not be loaded. + %1 사운드폰트를 불러올 수 없습니다. + + + lmms::SfxrInstrument - - Maj9#11 - + + Wave + 웨이브 + + + lmms::SidInstrument - - m9 - + + Cutoff frequency + 컷오프 주파수 - - madd9 - + + Resonance + 공명 - - m9b5 - + + Filter type + 필터 유형 - - m9-Maj7 - + + Voice 3 off + 보이스 3 끔 - - 11 - 11 + + Volume + 볼륨 - - 11b9 - 11b9 + + Chip model + 칩 모델 + + + lmms::SlicerT - - Maj11 + + Note threshold - - m11 + + FadeOut - - m-Maj11 + + Original bpm - - 13 - 13 - - - - 13#9 - 13#9 + + Slice snap + - - 13b9 - 13b9 + + BPM sync + - - 13b5b9 - 13b5b9 + + + slice_%1 + - - Maj13 + + Sample not found: %1 + + + lmms::Song - - m13 - + + Tempo + 템포 - - m-Maj13 - + + Master volume + 마스터 볼륨 - - Harmonic minor - 화성 단음계 + + Master pitch + 마스터 피치 - - Melodic minor - 가락 단음계 + + Aborting project load + 프로젝트 불러오기 중단하는 중 - - Whole tone - + + Project file contains local paths to plugins, which could be used to run malicious code. + 프로젝트 파일에는 악성 코드를 실행하는 데 사용될 수 있는 플러그인의 로컬 경로가 포함되어 있습니다. - - Diminished - + + Can't load project: Project file contains local paths to plugins. + 프로젝트 불러올 수 없음: 프로젝트 파일에 플러그인에 대한 로컬 경로가 포함되어 있습니다. - - Major pentatonic - + + LMMS Error report + LMMS 오류 보고 - - Minor pentatonic - + + (repeated %1 times) + (%1번 반복됨) - - Jap in sen - + + The following errors occurred while loading: + 불러오는 동안 다음 오류가 발생했습니다: + + + lmms::StereoEnhancerControls - - Major bebop - + + Width + + + + lmms::StereoMatrixControls - - Dominant bebop - + + Left to Left + 좌측 → 좌측 - - Blues - + + Left to Right + 좌측 → 우측 - - Arabic - + + Right to Left + 우측 → 좌측 - - Enigmatic - + + Right to Right + 우측 → 우측 + + + lmms::Track - - Neopolitan - + + Mute + 음소거 - - Neopolitan minor - + + Solo + 솔로 연주 + + + lmms::TrackContainer - - Hungarian minor - + + Couldn't import file + 파일을 가져올 수 없음 - - Dorian - + + Couldn't find a filter for importing file %1. +You should convert this file into a format supported by LMMS using another software. + %1 파일을 가져오기 위한 필터링를 찾을 수 없습니다. +다른 소프트웨어를 사용하여 이 파일을 LMMS에서 지원하는 형식으로 변환해야 합니다. - - Phrygian - + + Couldn't open file + 파일을 열 수 없음 - - Lydian - + + Couldn't open file %1 for reading. +Please make sure you have read-permission to the file and the directory containing the file and try again! + 읽기 위한 %1 파일을 열 수 없습니다. +파일과 파일이 포함된 디렉터리에 대한 읽기 권한이 있는지 확인한 후 다시 시도하세요! - - Mixolydian - + + Loading project... + 프로젝트 불러오는 중... - - Aeolian - + + + Cancel + 취소 - - Locrian - + + + Please wait... + 잠시만 기다려 주세요... - - Minor - + + Loading cancelled + 불러오는 도중 취소됨 - - Chromatic - + + Project loading was cancelled. + 프로젝트가 불러오는 도중에 취소되었습니다. - - Half-Whole Diminished - + + Loading Track %1 (%2/Total %3) + 트랙 %1 불러오는 중 (%2/총 %3) - - 5 - 5 + + Importing MIDI-file... + MIDI 파일 가져오는중... + + + lmms::TripleOscillator - - Phrygian dominant + + Sample not found + + + lmms::VecControls - - Persian - + + Display persistence amount + 지속됨 양 화면표시 - - Chords - 코드 + + Logarithmic scale + 로가리듬 스케일 - - Chord type - 코드 종류 + + High quality + 고음질 + + + + lmms::VestigeInstrument + + + Loading plugin + 플러그인 불러오는 중 - - Chord range - 코드 범위 + + Please wait while loading the VST plugin... + VST 플러그인을 불러오는 동안 잠시 기다려 주세요... - InstrumentFunctionNoteStackingView + lmms::Vibed - - STACKING - 코드 쌓기 + + String %1 volume + 스트링 %1 볼륨 - - Chord: - 코드: + + String %1 stiffness + 스트링 %1 스티프니스 - - RANGE - 범위 + + Pick %1 position + 픽 %1 포지션 - - Chord range: - 코드 범위: + + Pickup %1 position + 픽업 %1 포지션 - - octave(s) - 옥타브 + + String %1 panning + 스트링 %1 패닝 - - - InstrumentMidiIOView - - ENABLE MIDI INPUT - MIDI 입력 활성화 + + String %1 detune + 스트링 %1 디튠 - - ENABLE MIDI OUTPUT - MIDI 출력 활성화 + + String %1 fuzziness + 스트링 %1 퍼지니스 - - - CHAN - This string must be be short, its width must be less than * width of LCD spin-box of two digits - + + String %1 length + 스트링 %1 길이 - - - VELOC - This string must be be short, its width must be less than * width of LCD spin-box of three digits - + + Impulse %1 + 임펄스 %1 - - PROG - This string must be be short, its width must be less than the * width of LCD spin-box of three digits - + + String %1 + 스트링 %1 + + + lmms::VoiceObject - - NOTE - This string must be be short, its width must be less than * width of LCD spin-box of three digits - + + Voice %1 pulse width + 보이스 %1 펄스 폭 - - MIDI devices to receive MIDI events from - + + Voice %1 attack + 보이스 %1 어택 - - MIDI devices to send MIDI events to - + + Voice %1 decay + 보이스 %1 디케이 - - CUSTOM BASE VELOCITY - 사용자 지정 기준 벨로시티 + + Voice %1 sustain + 보이스 %1 서스테인 - - Specify the velocity normalization base for MIDI-based instruments at 100% note velocity. - 100% 음표 벨로시티에 해당하는 MIDI 벨로시티를 지정합니다. + + Voice %1 release + 보이스 %1 릴리즈 - - BASE VELOCITY - 기준 벨로시티 + + Voice %1 coarse detuning + 보이스 %1 코어스 디튜닝 - - - InstrumentTuningView - - MASTER PITCH - 마스터 피치 + + Voice %1 wave shape + 보이스 %1 웨이브 형태 - - Enables the use of master pitch - 마스터 피치 사용 + + Voice %1 sync + 보이스 %1 싱크 - - - InstrumentSoundShaping - - VOLUME - 음량 + + Voice %1 ring modulate + 보이스 %1 링 조절하기 - - Volume - 음량 + + Voice %1 filtered + 보이스 %1 필터링됨 - - CUTOFF - 컷오프 + + Voice %1 test + 보이스 %1 테스트 + + + lmms::VstPlugin - - - Cutoff frequency - 차단 주파수 + + + The VST plugin %1 could not be loaded. + VST 플러그인 %1을 불러올 수 없습니다. - - RESO - 공명 + + Open Preset + 프리셋 열기 - - Resonance - 공명 + + + VST Plugin Preset (*.fxp *.fxb) + VST 플러그인 프리셋 (*.fxp *.fxb) - - Envelopes/LFOs - 엔벨로프/LFO + + : default + : 기본값 - - Filter type - 필터 종류 + + Save Preset + 프리셋 저장하기 - - Q/Resonance - Q/공명 + + .fxp + .fxp - - Low-pass - 저역 통과 + + .FXP + .FXP - - Hi-pass - 고역 통과 + + .FXB + .FXB - - Band-pass csg - 대역 통과 csg + + .fxb + .fxb - - Band-pass czpg - 대역 통과 czpg + + Loading plugin + 플러그인 불러오는 중 - - Notch - 노치 + + Please wait while loading VST plugin... + VST 플러그인을 불러오는 동안 잠시 기다려 주세요... + + + lmms::WatsynInstrument - - All-pass - 전역 통과 + + Volume A1 + 볼륨 A1 - - Moog - Moog + + Volume A2 + 볼륨 A2 - - 2x Low-pass - 2x 저역 통과 + + Volume B1 + 볼륨 B1 - - RC Low-pass 12 dB/oct - RC 저역 통과 12 dB/oct + + Volume B2 + 볼륨 B2 - - RC Band-pass 12 dB/oct - RC 대역 통과 12 dB/oct + + Panning A1 + 패닝 A1 - - RC High-pass 12 dB/oct - RC 고역 통과 12 dB/oct + + Panning A2 + 패닝 A2 - - RC Low-pass 24 dB/oct - RC 저역 통과 24 dB/oct + + Panning B1 + 패닝 B1 - - RC Band-pass 24 dB/oct - RC 대역 통과 24 dB/oct + + Panning B2 + 패닝 B2 - - RC High-pass 24 dB/oct - RC 고역 통과 24 dB/oct + + Freq. multiplier A1 + 주파수 증폭기 A1 - - Vocal Formant - + + Freq. multiplier A2 + 주파수 증폭기 A2 - - 2x Moog - 2x Moog + + Freq. multiplier B1 + 주파수 증폭기 B1 - - SV Low-pass - SV 저역 통과 + + Freq. multiplier B2 + 주파수 증폭기 B2 - - SV Band-pass - SV 대역 통과 + + Left detune A1 + 좌측 디튠 A1 - - SV High-pass - SV 고역 통과 + + Left detune A2 + 좌측 디튠 A2 - - SV Notch - SV 노치 + + Left detune B1 + 좌측 디튠 B1 - - Fast Formant - + + Left detune B2 + 좌측 디튠 B2 - - Tripole - + + Right detune A1 + 우측 디튠 A1 - - - InstrumentSoundShapingView - - TARGET - 대상 + + Right detune A2 + 우측 디튠 A2 - - FILTER - 필터 + + Right detune B1 + 우측 디튠 B1 - - FREQ - 주파수 + + Right detune B2 + 우측 디튠 B2 - - Cutoff frequency: - 차단 주파수: + + A-B Mix + A-B 믹스 - - Hz - Hz + + A-B Mix envelope amount + A-B 믹스 엔벨로프 양 - - Q/RESO - Q/공명 + + A-B Mix envelope attack + A-B 믹스 엔벨로프 어택 - - Q/Resonance: - Q/공명: + + A-B Mix envelope hold + A-B 믹스 엔벨로프 홀드 - - Envelopes, LFOs and filters are not supported by the current instrument. - 이 악기는 엔벨로프, LFO, 필터를 지원하지 않습니다. + + A-B Mix envelope decay + A-B 믹스 엔벨로프 디케이 - - - InstrumentTrack - - - unnamed_track - 이름 없는 트랙 + + A1-B2 Crosstalk + A1-B2 크로스토크 - - Base note - 기준 음 + + A2-A1 modulation + A2-A1 모듈레이션 - - First note - + + B2-B1 modulation + B2-B1 모듈레이션 - - Last note - 마지막 박자 + + Selected graph + 선택된 그래프 + + + lmms::WaveShaperControls - - Volume - 음량 + + Input gain + 입력 게인 - - Panning - 패닝 + + Output gain + 출력 게인 + + + lmms::Xpressive - - Pitch - 피치 + + Selected graph + 선택된 그래프 - - Pitch range - 피치 범위 + + A1 + A1 - - Mixer channel - FX 채널 + + A2 + A2 - - Master pitch - 마스터 피치 + + A3 + A3 - - Enable/Disable MIDI CC - + + W1 smoothing + W1 스무딩 - - CC Controller %1 - + + W2 smoothing + W2 스무딩 - - - Default preset - 기본 프리셋 + + W3 smoothing + W3 스무딩 - - - InstrumentTrackView - - Volume - 음량 + + Panning 1 + 패닝 1 - - Volume: - 음량: + + Panning 2 + 패닝 2 - - VOL - 음량 + + Rel trans + 릴리즈 전환 + + + lmms::ZynAddSubFxInstrument - - Panning - 패닝 + + Portamento + 포르타멘토 - - Panning: - 패닝: + + Filter frequency + 필터 주파수 - - PAN - 패닝 + + Filter resonance + 필터 공명 - - MIDI - MIDI + + Bandwidth + 대역폭 - - Input - 입력 + + FM gain + FM 게인 - - Output - 출력 + + Resonance center frequency + 공명 중심 주파수 - - Open/Close MIDI CC Rack - + + Resonance bandwidth + 공명 대역폭 - - Channel %1: %2 - FX %1: %2 + + Forward MIDI control change events + 정방향 MIDI 컨트롤 변경 이벤트 - InstrumentTrackWindow + lmms::graphModel - - GENERAL SETTINGS - 일반 설정 + + Graph + 그래프 + + + lmms::gui::AmplifierControlDialog - - Volume - 음량 + + VOL + 볼륨 - + Volume: - 음량: - - - - VOL - 음량 + 볼륨: - - Panning + + PAN 패닝 - + Panning: 패닝: - - PAN - 패닝 - - - - Pitch - 피치 - - - - Pitch: - 피치: + + LEFT + - - cents - 센트 + + Left gain: + 좌측 게인: - - PITCH - 피치 + + RIGHT + - - Pitch range (semitones) - 피치 범위(반음) + + Right gain: + 우측 게인: + + + lmms::gui::AudioAlsaSetupWidget - - RANGE - 범위 + + Device + - - Mixer channel - FX 채널 + + Channels + + + + lmms::gui::AudioFileProcessorView - - CHANNEL - FX + + Open sample + 샘플 열기 - - Save current instrument track settings in a preset file - 프리셋 파일에 현재 악기 트랙의 설정 저장 + + Reverse sample + 리버스 샘플 - - SAVE - 저장 + + Disable loop + 루프 비활성화 - - Envelope, filter & LFO - 엔벨로프, 필터 & LFO + + Enable loop + 루프 활성화 - - Chord stacking & arpeggio - 코드 쌓기 & 아르페지오 + + Enable ping-pong loop + 핑-퐁 루프 활성화 - - Effects - 효과 + + Continue sample playback across notes + 노트 전체에 걸쳐 샘플 재생 계속하기 - - MIDI - MIDI + + Amplify: + Amplify: - - Miscellaneous - 기타 + + Start point: + 시작점: - - Save preset - 프리셋 저장 + + End point: + 끝점: - - XML preset file (*.xpf) - XML 프리셋 파일 (*.xpf) + + Loopback point: + 루프백 포인트: + + + lmms::gui::AudioFileProcessorWaveView - - Plugin - 플러그인 + + Sample length: + 샘플 길이: - JackApplicationW + lmms::gui::AutomationClipView - - NSM applications cannot use abstract or absolute paths - + + Open in Automation editor + 오토메이션 편집기에서 열기 - - NSM applications cannot use CLI arguments - + + Clear + 지우기 - - You need to save the current Carla project before NSM can be used - + + Reset name + 이름 재설정 - - - JuceAboutW - - About JUCE - + + Change name + 이름 변경하기 - - <b>About JUCE</b> - + + Set/clear record + 녹음 지정하기/지우기 - - This program uses JUCE version 3.x.x. - + + Flip Vertically (Visible) + 수직으로 뒤집기 (표시됨) - - JUCE (Jules' Utility Class Extensions) is an all-encompassing C++ class library for developing cross-platform software. - -It contains pretty much everything you're likely to need to create most applications, and is particularly well-suited for building highly-customised GUIs, and for handling graphics and sound. - -JUCE is licensed under the GNU Public Licence version 2.0. -One module (juce_core) is permissively licensed under the ISC. - -Copyright (C) 2017 ROLI Ltd. - + + Flip Horizontally (Visible) + 수평으로 뒤집기 (표시됨) - - This program uses JUCE version %1. - + + %1 Connections + %1 연결 - - - Knob - - Set linear - 선형으로 설정 + + Disconnect "%1" + "%1" 연결끊기 - - Set logarithmic - 로그스케일로 설정 + + Model is already connected to this clip. + 모델이 이미 이 클립에 연결되어 있습니다. + + + lmms::gui::AutomationEditor - - - Set value - 값 설정 + + Edit Value + 값 편집하기 - - Please enter a new value between -96.0 dBFS and 6.0 dBFS: - -96.0 dBFS부터 6.0 dBFS까지의 값을 입력하세요: + + New outValue + 새 출력값 - - Please enter a new value between %1 and %2: - %1부터 %2까지의 값을 입력하세요: + + New inValue + 새 입력값 - - - LadspaControl - - Link channels - 채널 링크 + + Please open an automation clip by double-clicking on it! + - LadspaControlDialog + lmms::gui::AutomationEditorWindow - - Link Channels - 채널 링크 + + Play/pause current clip (Space) + 현재 클립 연주하기/일시중지 (Space) - - Channel - 채널 + + Stop playing of current clip (Space) + 현재 클립 연주 중지하기 (Space) - - - LadspaControlView - - Link channels - 채널 링크 + + Edit actions + 편집 작업 - - Value: - 값: + + Draw mode (Shift+D) + 그리기 모드 (Shift+D) - - - LadspaEffect - - Unknown LADSPA plugin %1 requested. - 알 수 없는 LADSPA 플러그인 %1이(가) 요청되었습니다. + + Erase mode (Shift+E) + 지우기 모드 (Shift+E) - - - LcdFloatSpinBox - - Set value - 값 설정 + + Draw outValues mode (Shift+C) + 출력값 그리기 모드 (Shift+C) - - Please enter a new value between %1 and %2: - %1부터 %2까지의 값을 입력하세요: + + Edit tangents mode (Shift+T) + - - - LcdSpinBox - - Set value - 값 설정 + + Flip vertically + 수직으로 뒤집기 - - Please enter a new value between %1 and %2: - %1부터 %2까지의 값을 입력하세요: + + Flip horizontally + 수평으로 뒤집기 - - - LeftRightNav - - - - Previous - 이전 + + Interpolation controls + 인터폴레이션 컨트롤 - - - - Next - 다음 + + Discrete progression + 디스크리트 프로그레션 - - Previous (%1) - 이전 (%1) + + Linear progression + 리니어 프로그레션 - - Next (%1) - 다음 (%1) + + Cubic Hermite progression + 큐빅 에르미트 프로그레션 - - - LfoController - - LFO Controller - LFO 컨트롤러 + + Tension value for spline + 스플라인의 텐션 값 - - Base value - 기준 값 + + Tension: + 텐션: - - Oscillator speed - + + Zoom controls + 컨트롤 확대/축소 - - Oscillator amount - + + Horizontal zooming + 수평 주밍 - - Oscillator phase - 오실레이터 위상 + + Vertical zooming + 수직 주밍 - - Oscillator waveform - 오실레이터 파형 + + Quantization controls + 퀀티제이션 컨트롤 - - Frequency Multiplier + + Quantization + 퀀티제이션 + + + + Clear ghost notes - - - LfoControllerDialog - - LFO - LFO + + + Automation Editor - no clip + 오토메이션 편집기 - 클립 없음 - - BASE - 기준 + + + Automation Editor - %1 + 오토메이션 편집기 - %1 - - Base: - 기준: + + Model is already connected to this clip. + 모델이 이미 이 클립에 연결되어 있습니다. + + + lmms::gui::BassBoosterControlDialog - + FREQ - 주파수 + FREQ - - LFO frequency: - + + Frequency: + 주파수: - - AMNT - + + GAIN + 게인 - - Modulation amount: - + + Gain: + 게인: - - PHS - 위상 + + RATIO + 레시오 - - Phase offset: - 위상: + + Ratio: + 레시오: + + + + lmms::gui::BitInvaderView + + + Sample length + 샘플 길이 - - degrees - + + Draw your own waveform here by dragging your mouse on this graph. + 이 그래프 위에 마우스를 드래그하여 여기에 나만의 파형을 그려보세요. - + + Sine wave 사인파 - + + Triangle wave 삼각파 - + + Saw wave 톱니파 - + + Square wave 사각파 - - Moog saw wave - Moog 톱니파 + + + White noise + 백색 잡음 - - Exponential wave - 지수형 파형 + + + User-defined wave + 사용자 정의된 파형 - - White noise - 화이트 노이즈 + + + Smooth waveform + 부드러운 파형 - - User-defined shape. -Double click to pick a file. - 사용자 지정 파형 -더블클릭하여 파일을 선택하세요. + + Interpolation + 인터폴레이션 - - Mutliply modulation frequency by 1 - 변조 주파수 값을 그대로 사용 + + Normalize + 노멀라이즈 + + + lmms::gui::BitcrushControlDialog - - Mutliply modulation frequency by 100 - + + IN + 입력 - - Divide modulation frequency by 100 - + + OUT + 출력 - - - Engine - - Generating wavetables - + + + GAIN + 게인 - - Initializing data structures - 자료 구조 초기화 중 + + Input gain: + 입력 게인: - - Opening audio and midi devices - 오디오 장치와 MIDI 장치를 여는 중 + + NOISE + 잡음 - - Launching mixer threads - 믹서 스레드를 시작하는 중 + + Input noise: + 입력 잡음: - - - MainWindow - - Configuration file - 설정 파일 + + Output gain: + 출력 게인: - - Error while parsing configuration file at line %1:%2: %3 - 설정 파일 분석 중 오류 발생 (행 %1:%2: %3) + + CLIP + 클립 - - Could not open file - 파일을 열 수 없음 + + Output clip: + 출력 클립: - - Could not open file %1 for writing. -Please make sure you have write permission to the file and the directory containing the file and try again! - 파일 %1을(를) 쓰기 위하여 열 수 없습니다. -경로에 파일이 존재하고 파일에 쓸 수 있는 권한이 있는지 확인 후 다시 시도하시기 바랍니다! + + Rate enabled + 레이트 활성화됨 - - Project recovery - 프로젝트 복구 + + Enable sample-rate crushing + 샘플 레이트 크러싱 활성화 - - There is a recovery file present. It looks like the last session did not end properly or another instance of LMMS is already running. Do you want to recover the project of this session? - 복구 파일이 존재합니다. 이전에 LMMS가 비정상 종료되었거나 여러 개의 LMMS 인스턴스가 동시에 실행 중인 것 같습니다. 복구 파일로부터 프로젝트를 복구하시겠습니까? + + Depth enabled + 깊이 활성화됨 - - - Recover - 복구 + + Enable bit-depth crushing + 비트 깊이 크러싱 활성화 - - Recover the file. Please don't run multiple instances of LMMS when you do this. - 파일을 복구합니다. 다른 LMMS 인스턴스가 실행 중이지 않은 상태에서 선택하시기 바랍니다. + + FREQ + FREQ - - - Discard - 저장하지 않음 + + Sample rate: + 샘플 레이트: - - Launch a default session and delete the restored files. This is not reversible. - 복구 파일을 삭제하고 기본 프로젝트를 불러옵니다. 이 동작은 되돌릴 수 없습니다. + + STEREO + 스테레오 - - Version %1 - 버전 %1 + + Stereo difference: + 스테레오 차이: - - Preparing plugin browser - 플러그인 탐색기 준비 + + QUANT + 퀀타이즈 - - Preparing file browsers - 파일 탐색기 준비 + + Levels: + 레벨: + + + lmms::gui::CPULoadWidget - - My Projects - 내 프로젝트 + + DSP total: %1% + - - My Samples - 내 샘플 + + - Notes and setup: %1% + - 노트 및 셋업: %1% - - My Presets - 내 사전 설정 + + - Instruments: %1% + - - My Home - 내 홈 디렉터리 + + - Effects: %1% + - - Root directory - 최상위 디렉토리 + + - Mixing: %1% + + + + lmms::gui::CarlaInstrumentView - - Volumes - 음량 + + Show GUI + GUI 표시하기 - - My Computer - 내 컴퓨터 + + Click here to show or hide the graphical user interface (GUI) of Carla. + Carla의 그래픽 사용자 인터페이스(GUI)를 표시하거나 숨기려면 여기를 클릭하세요. - - &File - 파일(&F) + + Params + 매개변수 - - &New - 새로 만들기(&N) + + Available from Carla version 2.1 and up. + Carla 버전 2.1 이상부터 사용 가능합니다. + + + lmms::gui::CarlaParamsView - - &Open... - 열기(&O)... + + Search.. + 검색하기.. - - Loading background picture - + + Clear filter text + 필터 텍스트 지우기 - - &Save - 저장(&S) + + Only show knobs with a connection. + 연결된 노브만 표시합니다. - - Save &As... - 다른 이름으로 저장(&A)... + + - Parameters + - 매개변수 + + + lmms::gui::ClipView - - Save as New &Version - 새로운 버전으로 저장(&V) + + Current position + 현재 포지션 - - Save as default template - 기본 템플릿으로 저장 + + Current length + 현재 길이 - - Import... - 가져오기... + + + %1:%2 (%3:%4 to %5:%6) + %1:%2 (%3:%4 ~ %5:%6) - - E&xport... - 내보내기(&X)... + + Press <%1> and drag to make a copy. + <%1>을 누르고 드래그하여 복사합니다. - - E&xport Tracks... - 트랙 내보내기(&X)... + + Press <%1> for free resizing. + 자유롭게 크기를 조정하려면 <%1>을 누르십시오. - - Export &MIDI... - MIDI 내보내기(&M)... + + Hint + 힌트 - - &Quit - 끝내기(&Q) + + Delete (middle mousebutton) + 삭제하기 (마우스 가운데 버튼) - - &Edit - 편집(&E) + + Delete selection (middle mousebutton) + 선택항목 삭제하기 (마우스 가운데 버튼) - - Undo - 실행 취소 + + Cut + 잘라내기 - - Redo - 다시 실행 + + Cut selection + 선택항목 잘라내기 - - Settings - 설정 + + Merge Selection + 선택항목 합치기 - - &View - 보기(&V) + + Copy + 복사하기 - - &Tools - 도구(&T) + + Copy selection + 선택항목 복사하기 - - &Help - 도움말(&H) + + Paste + 붙여넣기 - - Online Help - 온라인 도움말 + + Mute/unmute (<%1> + middle click) + 음소거/음소거 해제 (<%1> + 가운데 버튼 클릭) - - Help - 도움말 + + Mute/unmute selection (<%1> + middle click) + 선택항목 음소거/음소거 해제 (<%1> + 가운데 버튼 클릭) - - About - 정보 + + Clip color + 클립 색상 - - Create new project - 새 프로젝트 생성 + + Change + 변경하기 - - Create new project from template - 템플릿에서 새 프로젝트 생성 + + Reset + 재설정 + + + + Pick random + 무작위 고르기 + + + + lmms::gui::CompressorControlDialog + + + Threshold: + 스레시홀드: + + + + Volume at which the compression begins to take place + 압축이 시작되는 지점의 볼륨 + + + + Ratio: + 레시오: + + + + How far the compressor must turn the volume down after crossing the threshold + 컴프레서가 스레시홀드를 초과한 후 볼륨을 낮춰야 하는 정도 + + + + Attack: + 어택: + + + + Speed at which the compressor starts to compress the audio + 컴프레서가 오디오 압축을 시작하는 속도 - - Open existing project - 기존 프로젝트 열기 + + Release: + 릴리즈: - - Recently opened projects - 최근에 사용한 프로젝트 + + Speed at which the compressor ceases to compress the audio + 컴프레서가 오디오 압축을 중단하는 속도 - - Save current project - 현재 프로젝트 저장 + + Knee: + 니(Knee): - - Export current project - 현재 프로젝트 내보내기 + + Smooth out the gain reduction curve around the threshold + 스레시홀드 주변에서 게인 감소 곡선 부드럽게 펴기 - - Metronome - 메트로놈 + + Range: + 범위: - - - Song Editor - 노래 편집기 + + Maximum gain reduction + 최대 게인 감소 - - - Beat+Bassline Editor - 비트/베이스 라인 편집기 + + Lookahead Length: + 룩어헤드 길이: - - - Piano Roll - 피아노 롤 + + How long the compressor has to react to the sidechain signal ahead of time + 컴프레서가 미리 사이드체인 신호에 반응해야 하는 시간 - - - Automation Editor - 오토메이션 편집기 + + Hold: + 홀드: - - - Mixer - FX 믹서 + + Delay between attack and release stages + 어택과 릴리즈 단계 사이의 딜레이 - - Show/hide controller rack - 컨트롤러 랙 보이기/숨기기 + + RMS Size: + RMS 크기: - - Show/hide project notes - 프로젝트 노트 보이기/숨기기 + + Size of the RMS buffer + RMS 버퍼의 크기 - - Untitled - 제목 없음 + + Input Balance: + 입력 밸런스: - - Recover session. Please save your work! - 복구 세션입니다. 프로젝트 파일을 저장해 주세요! + + Bias the input audio to the left/right or mid/side + 입력 오디오를 좌/우 또는 중간/측면으로 치우치게하기 - - LMMS %1 - LMMS %1 + + Output Balance: + 출력 밸런스: - - Recovered project not saved - 복구된 프로젝트가 저장되지 않음 + + Bias the output audio to the left/right or mid/side + 출력 오디오를 좌/우 또는 중간/측면으로 치우치게하기 - - This project was recovered from the previous session. It is currently unsaved and will be lost if you don't save it. Do you want to save it now? - 이 프로젝트는 이전 세션으로부터 복구되었지만 아직 저장되지 않았습니다. 저장하지 않을 경우 지금까지의 작업을 잃게 될 것입니다. 지금 저장하시겠습니까? + + Stereo Balance: + 스테레오 밸런스: - - Project not saved - 프로젝트 저장되지 않음 + + Bias the sidechain signal to the left/right or mid/side + 사이드 체인 신호를 좌/우 또는 중간/측면으로 치우치게하기 - - The current project was modified since last saving. Do you want to save it now? - 이 프로젝트는 마지막 저장 이후 수정되었습니다. 지금 저장하시겠습니까? + + Stereo Link Blend: + 스테레오 링크 섞기: - - Open Project - 프로젝트 열기 + + Blend between unlinked/maximum/average/minimum stereo linking modes + 림크해제된/최대/평균/최소 스테레오 링킹 모드 간 섞기 - - LMMS (*.mmp *.mmpz) - LMMS (*.mmp *.mmpz) + + Tilt Gain: + 틸트 게인: - - Save Project - 프로젝트 저장 + + Bias the sidechain signal to the low or high frequencies. -6 db is lowpass, 6 db is highpass. + 사이드체인 신호를 저주파 또는 고주파로 치우치게 합니다. -6db는 로패스, 6db는 하이패스입니다. - - LMMS Project - LMMS 프로젝트 + + Tilt Frequency: + 틸트 주파수: - - LMMS Project Template - LMMS 프로젝트 템플릿 + + Center frequency of sidechain tilt filter + 사이드 체인 틸트 필터의 중심 주파수 - - Save project template - 프로젝트 템플릿 저장 + + Mix: + 믹스: - - Overwrite default template? - 기본 템플릿을 덮어쓰시겠습니까? + + Balance between wet and dry signals + 웨트 신호와 드라이 신호 간의 밸런스 - - This will overwrite your current default template. - 이 작업은 현재의 기본 템플릿을 덮어씁니다. + + Auto Attack: + 자동 어택: - - Help not available - 도움말 사용 불가 + + Automatically control attack value depending on crest factor + 파고율에 따른 어택 값 자동적으로 제어 - - Currently there's no help available in LMMS. -Please visit http://lmms.sf.net/wiki for documentation on LMMS. - + + Auto Release: + 자동 릴리즈: - - Controller Rack - 컨트롤러 랙 + + Automatically control release value depending on crest factor + 파고율에 따른 릴리즈 값 자동적으로 제어 - - Project Notes - 프로젝트 노트 + + Output gain + 출력 게인 - - Fullscreen - + + + Gain + 게인 - - Volume as dBFS - 음량을 dBFS 단위로 표시 + + Output volume + 출력 볼륨 - - Smooth scroll - 부드러운 스크롤 + + Input gain + 입력 게인 - - Enable note labels in piano roll - 피아노 롤에 음표 라벨 표시 + + Input volume + 입력 볼륨 - - MIDI File (*.mid) - MIDI 파일(*.mid) + + Root Mean Square + 제곱 평균 제곱근 - - - untitled - 제목 없음 + + Use RMS of the input + 입력의 RMS 사용하기 - - - Select file for project-export... - 프로젝트를 내보낼 파일 선택... + + Peak + 피크 - - Select directory for writing exported tracks... - 내보낼 트랙 파일들을 저장할 경로 선택... + + Use absolute value of the input + 입력의 절대값 사용하기 - - Save project - 프로젝트 저장 + + Left/Right + 좌/우 - - Project saved - 프로젝트 저장됨 + + Compress left and right audio + 좌측 및 우측 오디오 압축하기 - - The project %1 is now saved. - 프로젝트 %1이 저장되었습니다. + + Mid/Side + 중간/측면 - - Project NOT saved. - 프로젝트가 저장되지 않았습니다. + + Compress mid and side audio + 중간 및 측면 오디오 압축하기 - - The project %1 was not saved! - 프로젝트 %1이 저장되지 않았습니다! + + Compressor + 컴프레서 - - Import file - 파일 가져오기 + + Compress the audio + 오디오 압축하기 - - MIDI sequences - MIDI 시퀀스 + + Limiter + 리미터 - - Hydrogen projects - Hydrogen 프로젝트 + + Set Ratio to infinity (is not guaranteed to limit audio volume) + 레시오를 무한대로 지정 (오디오 볼륨 제한이 보장되지 않음) - - All file types - 모든 파일 + + Unlinked + 링크 해제됨 - - - MeterDialog - - - Meter Numerator - 박자표 분자 + + Compress each channel separately + 각 채널 따로따로 압축하기 - - Meter numerator - 박자표 분자 + + Maximum + 최댓값 - - - Meter Denominator - 박자표 분모 + + Compress based on the loudest channel + 가장 소리가 큰 채널을 기준으로 압축하기 - - Meter denominator - 박자표 분모 + + Average + 평균 - - TIME SIG - 박자 + + Compress based on the averaged channel volume + 평균 채널 볼륨을 기준으로 압축 - - - MeterModel - - Numerator - 분자 + + Minimum + 최솟값 - - Denominator - 분모 + + Compress based on the quietest channel + 가장 조용한 채널을 기준으로 압축하기 - - - MidiCCRackView - - - MIDI CC Rack - %1 - + + Blend + 섞기 - - MIDI CC Knobs: - + + Blend between stereo linking modes + 스테레오 링킹 모드 간 섞기 - - CC %1 - + + Auto Makeup Gain + 자동 메이크업 게인 - - - MidiController - - MIDI Controller - MIDI 컨트롤러 + + Automatically change makeup gain depending on threshold, knee, and ratio settings + 스레시홀드, 니(Knee) 및 레시오 설정에 따라 자동으로 메이크업 게인 변경 - - unnamed_midi_controller - 이름 없는 MIDI 컨트롤러 + + + Soft Clip + 소프트 클립 - - - MidiImport - - - Setup incomplete - 설정 불완전 + + Play the delta signal + 델타 신호 연주하기 - - You have not set up a default soundfont in the settings dialog (Edit->Settings). Therefore no sound will be played back after importing this MIDI file. You should download a General MIDI soundfont, specify it in settings dialog and try again. - + + Use the compressor's output as the sidechain input + 컴프레서의 출력을 사이드체인 입력으로 사용하기 - - You did not compile LMMS with support for SoundFont2 player, which is used to add default sound to imported MIDI files. Therefore no sound will be played back after importing this MIDI file. - LMMS가 SoundFont2 플레이어 지원 없이 컴파일되었습니다. MIDI 파일에서 가져온 트랙은 기본적으로 SoundFont2 플레이어로 재생되므로 MIDI 파일을 가져온 뒤 재생하면 아무 소리도 재생되지 않을 것입니다. + + Lookahead Enabled + 룩어헤드 활성화됨 - - MIDI Time Signature Numerator - + + Enable Lookahead, which introduces 20 milliseconds of latency + 20밀리초의 레이턴시를 유발하는 룩어헤드 활성화 + + + lmms::gui::ControllerConnectionDialog - - MIDI Time Signature Denominator - + + Connection Settings + 연결 설정 - - Numerator - 분자 + + MIDI CONTROLLER + MIDI 컨트롤러 - - Denominator - 분모 + + Input channel + 입력 채널 - - Track - 트랙 + + CHANNEL + 채널 - - - MidiJack - - JACK server down - When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (title) - JAK 서버 종료 + + Input controller + 입력 컨트롤러 - - The JACK server seems to be shuted down. - When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (dialog message) - JACK 서버가 종료된 것 같습니다. + + CONTROLLER + 컨트롤러 - - - MidiPatternW - - MIDI Pattern - + + + Auto Detect + 자동 감지 - - Time Signature: - + + MIDI-devices to receive MIDI-events from + MIDI 이벤트를 수신할 MIDI 디바이스 - - - - 1/4 - + + USER CONTROLLER + 사용자 컨트롤러 - - 2/4 - + + MAPPING FUNCTION + 매핑 기능 - - 3/4 - + + OK + 확인 - - 4/4 - + + Cancel + 취소 - - 5/4 - + + LMMS + LMMS - - 6/4 - + + Cycle Detected. + 사이클이 감지되었습니다. + + + lmms::gui::ControllerRackView - - Measures: - + + Controller Rack + 컨트롤러 랙 - - - - 1 - + + Add + 추가하기 - - 2 - + + Confirm Delete + 삭제 확인하기 - - 3 - + + Confirm delete? There are existing connection(s) associated with this controller. There is no way to undo. + 삭제를 확인하시겠습니까? 이 컨트롤러와 연결된 기존 연결이 있습니다. 실행 취소할 방법이 없습니다. + + + lmms::gui::ControllerView - - 4 - + + Controls + 컨트롤 - - 5 - 5 + + Rename controller + 컨트롤러 이름변경 - - 6 - 6 + + Enter the new name for this controller + 이 컨트롤러의 새 이름을 입력하세요 - - 7 - 7 + + LFO + LFO - - 8 + + Move &up - - 9 - 9 - - - - 10 + + Move &down - - 11 - 11 + + &Remove this controller + 이 컨트롤러 제거(&R) - - 12 - + + Re&name this controller + 이 컨트롤러 이름 변경(&N) + + + lmms::gui::CrossoverEQControlDialog - - 13 - 13 + + Band 1/2 crossover: + 밴드 1/2 크로스오버: - - 14 - + + Band 2/3 crossover: + 밴드 2/3 크로스오버: - - 15 - + + Band 3/4 crossover: + 밴드 3/4 크로스오버: - - 16 - + + Band 1 gain + 밴드 1 게인 - - Default Length: - + + Band 1 gain: + 밴드 1 게인: - - - 1/16 - + + Band 2 gain + 밴드 2 게인 - - - 1/15 - + + Band 2 gain: + 밴드 2 게인: - - - 1/12 - + + Band 3 gain + 밴드 3 게인 - - - 1/9 - + + Band 3 gain: + 밴드 3 게인: - - - 1/8 - + + Band 4 gain + 밴드 4 게인 - - - 1/6 - + + Band 4 gain: + 밴드 4 게인: - - - 1/3 - + + Band 1 mute + 밴드 1 음소거 - - - 1/2 - + + Mute band 1 + 음소거 밴드 1 - - Quantize: - + + Band 2 mute + 밴드 2 음소거 - - &File - 파일(&F) + + Mute band 2 + 음소거 밴드 2 - - &Edit - 편집(&E) + + Band 3 mute + 밴드 3 음소거 - - &Quit - 끝내기(&Q) + + Mute band 3 + 음소거 밴드 3 - - &Insert Mode - + + Band 4 mute + 밴드 4 음소거 - - F - + + Mute band 4 + 음소거 밴드 4 + + + lmms::gui::DelayControlsDialog - - &Velocity Mode - + + DELAY + 딜레이 - - D - + + Delay time + 딜레이 시간 - - Select All - + + FDBK + FDBK - - A - + + Feedback amount + 피드백 양 - - - MidiPort - - Input channel - 입력 채널 + + RATE + 레이트 - - Output channel - 출력 채널 + + LFO frequency + LFO 주파수 - - Input controller - 입력 컨트롤러 + + AMNT + AMNT - - Output controller - 출력 컨트롤러 + + LFO amount + LFO 양 - - Fixed input velocity - 입력 벨로시티 고정값 + + Out gain + 출력 게인 - - Fixed output velocity - 출력 벨로시티 고정값 + + Gain + 게인 + + + lmms::gui::DispersionControlDialog - - Fixed output note - 출력 음높이 고정값 + + AMOUNT + AMOUNT - - Output MIDI program - 출력 MIDI 프로그램 + + Number of all-pass filters + 올패스 필터의 수 - - Base velocity - 기준 벨로시티 + + FREQ + FREQ - - Receive MIDI-events - MIDI 이벤트 받기 + + Frequency: + 주파수: - - Send MIDI-events - MIDI 이벤트 보내기 + + RESO + RESO - - - MidiSetupWidget - - Device - + + Resonance: + 공명: - - - MonstroInstrument - - Osc 1 volume - 오실레이터 1 음량 + + FEED + FEED - - Osc 1 panning - 오실레이터 1 패닝 + + Feedback: + 피드백: - - Osc 1 coarse detune - + + DC Offset Removal + DC 오프셋 제거 - - Osc 1 fine detune left - + + Remove DC Offset + DC 오프셋 제거하기 + + + lmms::gui::DualFilterControlDialog - - Osc 1 fine detune right - + + + FREQ + FREQ - - Osc 1 stereo phase offset - + + + Cutoff frequency + 컷오프 주파수 - - Osc 1 pulse width - + + + RESO + RESO - - Osc 1 sync send on rise - + + + Resonance + 공명 - - Osc 1 sync send on fall - + + + GAIN + 게인 - - Osc 2 volume - 오실레이터 2 음량 + + + Gain + 게인 - - Osc 2 panning - 오실레이터 2 패닝 + + MIX + MIX - - Osc 2 coarse detune - + + Mix + 믹스 - - Osc 2 fine detune left - + + Filter 1 enabled + 필터 1 활성화됨 - - Osc 2 fine detune right - + + Filter 2 enabled + 필터 2 활성화됨 - - Osc 2 stereo phase offset - + + Enable/disable filter 1 + 필터 1 활성화/비활성화 - - Osc 2 waveform - + + Enable/disable filter 2 + 필터 2 활성화/비활성화 + + + lmms::gui::DynProcControlDialog - - Osc 2 sync hard - + + INPUT + 입력 - - Osc 2 sync reverse - + + Input gain: + 입력 게인: - - Osc 3 volume - 오실레이터 3 음량 + + OUTPUT + 출력 - - Osc 3 panning - 오실레이터 3 패닝 + + Output gain: + 출력 게인: - - Osc 3 coarse detune - + + ATTACK + 어택 - - Osc 3 Stereo phase offset - + + Peak attack time: + 피크 어택 시간: - - Osc 3 sub-oscillator mix - + + RELEASE + 릴리즈 - - Osc 3 waveform 1 - + + Peak release time: + 피크 릴리즈 시간: - - Osc 3 waveform 2 - + + + Reset wavegraph + 웨이브그래프 재설정 - - Osc 3 sync hard - + + + Smooth wavegraph + 부드러운 웨이브그래프 - - Osc 3 Sync reverse - + + + Increase wavegraph amplitude by 1 dB + 웨이브그래프 진폭 1dB씩 증가하기 - - LFO 1 waveform - LFO 1 파형 + + + Decrease wavegraph amplitude by 1 dB + 웨이브그래프 진폭 1dB씩 감소하기 - - LFO 1 attack - + + Stereo mode: maximum + 스테레오 모드: 최댓값 - - LFO 1 rate - + + Process based on the maximum of both stereo channels + 양쪽 스테레오 채널의 최대값을 기준으로 처리하기 - - LFO 1 phase - LFO 1 위상 + + Stereo mode: average + 스테레오 모드: 평균값 - - LFO 2 waveform - LFO 2 파형 + + Process based on the average of both stereo channels + 양쪽 스테레오 채널의 평균값을 기준으로 처리하기 - - LFO 2 attack - + + Stereo mode: unlinked + 스테레오 모드: 링크 해제됨 - - LFO 2 rate - + + Process each stereo channel independently + 각 스테레오 채널을 독자적으로 처리 + + + lmms::gui::Editor - - LFO 2 phase - LFO 2 위상 + + Transport controls + 트랜스포트 컨트롤 - - Env 1 pre-delay - + + Play (Space) + 연주하기 (Space) - - Env 1 attack - + + Stop (Space) + 중지하기 (Space) - - Env 1 hold - + + Record + 녹음하기 - - Env 1 decay - + + Record while playing + 연주하면서 녹음하기 - - Env 1 sustain - + + Toggle Step Recording + 스탭 녹음 전환하기 + + + lmms::gui::EffectRackView - - Env 1 release - + + EFFECTS CHAIN + 이펙트 체인 - - Env 1 slope - + + Add effect + 이펙트 추가하기 + + + lmms::gui::EffectSelectDialog - - Env 2 pre-delay + + Add effect - - Env 2 attack - + + + Name + 이름 - - Env 2 hold - + + Type + 유형 - - Env 2 decay + + All - - Env 2 sustain + + Search - - Env 2 release - + + Description + 설명 - - Env 2 slope - + + Author + 원작자 + + + lmms::gui::EffectView - - Osc 2+3 modulation - + + On/Off + 켬/끔 - - Selected view - + + W/D + W/D - - Osc 1 - Vol env 1 - + + Wet Level: + 웨트 레벨: - - Osc 1 - Vol env 2 - + + DECAY + 디케이 - - Osc 1 - Vol LFO 1 - + + Time: + 시간: - - Osc 1 - Vol LFO 2 - + + GATE + 게이트 - - Osc 2 - Vol env 1 - + + Gate: + 게이트: - - Osc 2 - Vol env 2 - + + Controls + 컨트롤 - - Osc 2 - Vol LFO 1 - + + Move &up + 위로 이동(&U) - - Osc 2 - Vol LFO 2 - + + Move &down + 아래로 이동(&D) - - Osc 3 - Vol env 1 - + + &Remove this plugin + 이 플러그인 제거(&R) + + + lmms::gui::EnvelopeAndLfoView - - Osc 3 - Vol env 2 - + + + AMT + AMT - - Osc 3 - Vol LFO 1 - + + + Modulation amount: + 모듈레이션 양: - - Osc 3 - Vol LFO 2 - + + + DEL + DEL + + + + + Pre-delay: + 프리-딜레이: - - Osc 1 - Phs env 1 - + + + ATT + ATT - - Osc 1 - Phs env 2 - + + + Attack: + 어택: - - Osc 1 - Phs LFO 1 - + + HOLD + HOLD - - Osc 1 - Phs LFO 2 - + + Hold: + 홀드: - - Osc 2 - Phs env 1 - + + DEC + DEC - - Osc 2 - Phs env 2 - + + Decay: + 디케이: - - Osc 2 - Phs LFO 1 - + + SUST + SUST - - Osc 2 - Phs LFO 2 - + + Sustain: + 서스테인: - - Osc 3 - Phs env 1 - + + REL + REL - - Osc 3 - Phs env 2 - + + Release: + 릴리즈: - - Osc 3 - Phs LFO 1 - + + SPD + SPD - - Osc 3 - Phs LFO 2 - + + Frequency: + 주파수: - - Osc 1 - Pit env 1 - + + FREQ x 100 + FREQ x 100 - - Osc 1 - Pit env 2 - + + Multiply LFO frequency by 100 + LFO 주파수를 100으로 곱합니다 - - Osc 1 - Pit LFO 1 + + MOD ENV AMOUNT - - Osc 1 - Pit LFO 2 - + + Control envelope amount by this LFO + 이 LFO로 엔벨로프 양 제어하기 - - Osc 2 - Pit env 1 - + + Hint + 힌트 - - Osc 2 - Pit env 2 - + + Drag and drop a sample into this window. + 샘플을 이 창으로 끌어다 놓으세요. + + + lmms::gui::EnvelopeGraph - - Osc 2 - Pit LFO 1 + + Scaling - - Osc 2 - Pit LFO 2 + + Dynamic - - Osc 3 - Pit env 1 + + Uses absolute spacings but switches to relative spacing if it's running out of space - - Osc 3 - Pit env 2 + + Absolute - - Osc 3 - Pit LFO 1 + + Provides enough potential space for each segment but does not scale - - Osc 3 - Pit LFO 2 + + Relative - - Osc 1 - PW env 1 + + Always uses all of the available space to display the envelope graph + + + lmms::gui::EqControlsDialog - - Osc 1 - PW env 2 - + + HP + HP - - Osc 1 - PW LFO 1 - + + Low-shelf + 로셀프 - - Osc 1 - PW LFO 2 - + + Peak 1 + 피크 1 - - Osc 3 - Sub env 1 - + + Peak 2 + 피크 2 - - Osc 3 - Sub env 2 - + + Peak 3 + 피크 3 - - Osc 3 - Sub LFO 1 - + + Peak 4 + 피크 4 - - Osc 3 - Sub LFO 2 - + + High-shelf + 하이셸프 - - - Sine wave - 사인파 + + LP + LP - - Bandlimited Triangle wave - 대역 제한 삼각파 + + Input gain + 입력 게인 - - Bandlimited Saw wave - 대역 제한 톱니파 + + + + Gain + 게인 - - Bandlimited Ramp wave - 대역 제한 역톱니파 + + Output gain + 출력 게인 - - Bandlimited Square wave - 대역 제한 사각파 + + Bandwidth: + 대역폭: - - Bandlimited Moog saw wave - 대역 제한 Moog 톱니파 + + Octave + 옥타브 - - - Soft square wave + + Resonance: - - Absolute sine wave - + + Frequency: + 주파수: - - - Exponential wave - 지수형 파형 + + LP group + LP 그룹 - - White noise - 화이트 노이즈 + + HP group + HP 그룹 + + + lmms::gui::EqHandle - - Digital Triangle wave - 삼각파 + + Reso: + 공명: - - Digital Saw wave - 톱니파 + + BW: + 대역폭: - - Digital Ramp wave - 역톱니파 + + + Freq: + 주파수: + + + lmms::gui::ExportProjectDialog - - Digital Square wave - 사각파 + + Could not open file + 파일을 열 수 없음 - - Digital Moog saw wave - Moog 톱니파 + + Could not open file %1 for writing. +Please make sure you have write permission to the file and the directory containing the file and try again! + 쓰기 위한 %1 파일을 열 수 없습니다. +파일 및 파일이 포함된 디렉터리에 대한 쓰기 권한이 있는지 확인한 후 다시 시도하세요! - - Triangle wave - 삼각파 + + Export project to %1 + %1(으)로 프로젝트 내보내기 - - Saw wave - 톱니파 + + ( Fastest - biggest ) + ( 가장 빠름 - 최대 용량 ) - - Ramp wave - 역톱니파 + + ( Slowest - smallest ) + ( 가장 빠름 - 최소 용량 ) - - Square wave - 사각파 + + Error + 오류 - - Moog saw wave - Moog 톱니파 + + Error while determining file-encoder device. Please try to choose a different output format. + 파일 인코더 디바이스를 확인하는 동안 오류가 발생했습니다. 다른 출력 형식을 선택하십시오. - - Abs. sine wave - + + Rendering: %1% + 렌더링: %1% + + + lmms::gui::Fader - - Random - 무작위 + + Set value + 값 지정하기 - - Random smooth + + Please enter a new value between %1 and %2: + %1부터 %2까지의 값을 입력하세요: + + + + Volume: %1 dBFS - MonstroView + lmms::gui::FileBrowser - - Operators view - + + Browser + 탐색기 - - Matrix view - + + Search + 검색 - - - - Volume - 음량 + + Refresh list + 목록 새로고침 - - - - Panning - 패닝 + + User content + 사용자 콘텐츠 - - - - Coarse detune + + Factory content + 팩토리 콘텐츠 + + + + Hidden content + + + lmms::gui::FileBrowserTreeWidget - - - - semitones - 반음 + + Send to active instrument-track + 활성 악기 트랙으로 전송하기 - - - Fine tune left - + + Open containing folder + 포함된 폴더 열기 + + + + Song Editor + 노래 편집기 - - - - - cents - 센트 + + Pattern Editor + 패턴 편집기 - - - Fine tune right - + + Send to new AudioFileProcessor instance + 새 AudioFileProcessor 인스턴스로 전송하기 - - - - Stereo phase offset - + + Send to new instrument track + 새 악기 트랙으로 전송하기 - - - - - - deg - + + (%2Enter) + (%2Enter) - - Pulse width - 펄스 폭 + + Send to new sample track (Shift + Enter) + 새 샘플 트랙으로 전송하기 (Shift + Enter) - - Send sync on pulse rise - + + Loading sample + 샘플 불러오는 중 - - Send sync on pulse fall - + + Please wait, loading sample for preview... + 잠시만 기다려 주세요. 미리보기용 샘플 불러오는 중... - - Hard sync oscillator 2 - + + Error + 오류 - - Reverse sync oscillator 2 - + + %1 does not appear to be a valid %2 file + %1은(는) 올바른 %2 파일이 아닌 것 같습니다 - - Sub-osc mix - + + --- Factory files --- + --- 팩토리 파일 --- + + + lmms::gui::FileDialog - - Hard sync oscillator 3 + + %1 files - - Reverse sync oscillator 3 + + All audio files - - - - - Attack + + Other files + + + lmms::gui::FlangerControlsDialog - - - Rate - + + DELAY + 딜레이 - - - Phase - 위상 + + Delay time: + 딜레이 시간: - - - Pre-delay - + + RATE + 레이트 - - - Hold - + + Period: + 주기: - - - Decay - + + AMNT + AMNT - - - Sustain - + + Amount: + 양: - - - Release - + + PHASE + 페이즈 - - - Slope - + + Phase: + 페이즈: - - Mix osc 2 with osc 3 - + + FDBK + FDBK - - Modulate amplitude of osc 3 by osc 2 - + + Feedback amount: + 피드백 양: - - Modulate frequency of osc 3 by osc 2 - + + NOISE + 잡음 - - Modulate phase of osc 3 by osc 2 - + + White noise amount: + 백색 잡음량: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Modulation amount - + + Invert + 반전 - MultitapEchoControlDialog - - - Length - 길이 - + lmms::gui::FloatModelEditorBase - - Step length: + + Set linear - - Dry + + Set logarithmic - - Dry gain: + + + Set value - - Stages + + Please enter a new value between -96.0 dBFS and 6.0 dBFS: - - Low-pass stages: + + Please enter a new value between %1 and %2: + + + lmms::gui::FreeBoyInstrumentView - - Swap inputs - 좌우 입력 바꾸기 + + Sweep time: + 스위프 시간: - - Swap left and right input channels for reflections - + + Sweep time + 스위프 시간 - - - NesInstrument - - Channel 1 coarse detune - + + Sweep rate shift amount: + 스위프 레이트 시프트 양: - - Channel 1 volume - + + Sweep rate shift amount + 스위프 레이트 시프트 양 - - Channel 1 envelope length - + + + Wave pattern duty cycle: + 웨이브 패턴 듀티 사이클: - - Channel 1 duty cycle - + + + Wave pattern duty cycle + 웨이브 패턴 듀티 사이클 - - Channel 1 sweep amount - + + Square channel 1 volume: + 스퀘어 채널 1 볼륨: - - Channel 1 sweep rate - + + Square channel 1 volume + 스퀘어 채널 1 볼륨 - - Channel 2 Coarse detune - + + + + Length of each step in sweep: + 스위프에서 각 스텝의 길이: - - Channel 2 Volume - + + + + Length of each step in sweep + 스위프에서 각 스텝의 길이 - - Channel 2 envelope length - + + Square channel 2 volume: + 스퀘어 채널 2 볼륨: - - Channel 2 duty cycle - + + Square channel 2 volume + 스퀘어 채널 2 볼륨 - - Channel 2 sweep amount - + + Wave pattern channel volume: + 웨이브 패턴 채널 볼륨: - - Channel 2 sweep rate - + + Wave pattern channel volume + 웨이브 패턴 채널 볼륨 - - Channel 3 coarse detune - + + Noise channel volume: + 잡음 채널 볼륨: - - Channel 3 volume - + + Noise channel volume + 잡음 채널 볼륨 - - Channel 4 volume - + + SO1 volume (Right): + SO1 볼륨 (우측): - - Channel 4 envelope length - + + SO1 volume (Right) + SO1 볼륨 (우측) - - Channel 4 noise frequency - + + SO2 volume (Left): + SO2 볼륨 (좌측): - - Channel 4 noise frequency sweep - + + SO2 volume (Left) + SO2 볼륨 (좌측) - - Master volume - 마스터 음량 + + Treble: + 트레블: - - Vibrato - 비브라토 + + Treble + 트레블 - - - NesInstrumentView - - - - - Volume - 음량 + + Bass: + 베이스: - - - - Coarse detune - + + Bass + 베이스 - - - - Envelope length - + + Sweep direction + 스위프 방향 - - Enable channel 1 - 채널 1 활성화 + + + + + + Volume sweep direction + 볼륨 스위프 방향 - - Enable envelope 1 - 엔벨로프 1 활성화 + + Shift register width + 시프트 레지스터 너비 - - Enable envelope 1 loop - + + Channel 1 to SO1 (Right) + 채널 1 → SO1 (우측) - - Enable sweep 1 - + + Channel 2 to SO1 (Right) + 채널 2 → SO1 (우측) - - - Sweep amount - + + Channel 3 to SO1 (Right) + 채널 3 → SO1 (우측) - - - Sweep rate - + + Channel 4 to SO1 (Right) + 채널 4 → SO1 (우측) - - - 12.5% Duty cycle - + + Channel 1 to SO2 (Left) + 채널 1 → SO2 (좌측) - - - 25% Duty cycle - + + Channel 2 to SO2 (Left) + 채널 2 → SO2 (좌측) - - - 50% Duty cycle - + + Channel 3 to SO2 (Left) + 채널 3 → SO2 (좌측) - - - 75% Duty cycle - + + Channel 4 to SO2 (Left) + 채널 4 → SO2 (좌측) - - Enable channel 2 - 채널 2 활성화 + + Wave pattern graph + 웨이브 패턴 그래프 + + + lmms::gui::GigInstrumentView - - Enable envelope 2 - 엔벨로프 2 활성화 + + + Open GIG file + GIG 파일 열기 - - Enable envelope 2 loop - + + Choose patch + 패치 고르기 - - Enable sweep 2 - + + Gain: + 게인: - - Enable channel 3 - 채널 3 활성화 + + GIG Files (*.gig) + GIG 파일 (*.gig) + + + lmms::gui::GranularPitchShifterControlDialog - - Noise Frequency + + Grain Size: - - Frequency sweep + + Spray: - - Enable channel 4 - 채널 4 활성화 + + Jitter: + - - Enable envelope 4 - 엔벨로프 4 활성화 + + Twitch: + - - Enable envelope 4 loop + + Spray Stereo Spread: - - Quantize noise frequency when using note frequency + + Grain Shape: - - Use note frequency for noise + + Fade Length: - - Noise mode + + Feedback: - - Master volume - 마스터 음량 + + Minimum Allowed Latency: + - - Vibrato - 비브라토 + + Density: + - - - OpulenzInstrument - - Patch - 패치 + + Glide: + - - Op 1 attack + + + Pitch - - Op 1 decay + + + Pitch Stereo Spread - - Op 1 sustain + + Open help window - - Op 1 release + + + Prefilter + + + lmms::gui::GuiApplication - - Op 1 level - + + Working directory + 작업 디렉터리 - - Op 1 level scaling - + + The LMMS working directory %1 does not exist. Create it now? You can change the directory later via Edit -> Settings. + LMMS 작업 디렉터리 %1이(가) 없습니다. 지금 만드시겠습니까? 나중에 편집 -> 설정을 통해 디렉터리를 변경할 수 있습니다. - - Op 1 frequency multiplier - + + Preparing UI + UI 준비하는 중 - - Op 1 feedback - + + Preparing song editor + 노래 편집기 준비하는 중 - - Op 1 key scaling rate - + + Preparing mixer + 믹서 준비하는 중 - - Op 1 percussive envelope - + + Preparing controller rack + 컨트롤러 랙 준비하는 중 - - Op 1 tremolo - + + Preparing project notes + 프로젝트 노트 준비하는 중 - - Op 1 vibrato - + + Preparing microtuner + 마이크로튜너 준비하는 중 - - Op 1 waveform - + + Preparing pattern editor + 패턴 편집기 준비하는 중 - - Op 2 attack - + + Preparing piano roll + 피아노 롤 준비하는 중 - - Op 2 decay - + + Preparing automation editor + 오토메이션 편집기 준비하는 중 + + + lmms::gui::InstrumentFunctionArpeggioView - - Op 2 sustain - + + ARPEGGIO + 아르페지오 - - Op 2 release - + + RANGE + 범위 - - Op 2 level - + + Arpeggio range: + 아르페지오 범위: - - Op 2 level scaling - + + octave(s) + 옥타브 - - Op 2 frequency multiplier - + + REP + 반복 - - Op 2 key scaling rate - + + Note repeats: + 노트 반복: - - Op 2 percussive envelope + + time(s) - - Op 2 tremolo - + + CYCLE + 사이클 - - Op 2 vibrato - + + Cycle notes: + 사이클 노트: - - Op 2 waveform - + + note(s) + 노트 - - FM - FM + + SKIP + 스킵 - - Vibrato depth - 비브라토 깊이 + + Skip rate: + 스킵 비율: - - Tremolo depth - 트레몰로 깊이 + + + + % + % - - - OpulenzInstrumentView - - - Attack - + + MISS + 누락 - - - Decay - + + Miss rate: + 누락 비율: - - - Release - + + TIME + 시간 - - - Frequency multiplier - + + Arpeggio time: + 아르페지오 시간: - - - OscillatorObject - - Osc %1 waveform - 오실레이터 %1 파형 + + ms + ms - - Osc %1 harmonic - + + GATE + 게이트 - - - Osc %1 volume - 오실레이터 %1 음량 + + Arpeggio gate: + 아르페지오 게이트: - - - Osc %1 panning - 오실레이터 %1 패닝 + + Chord: + 코드: - - - Osc %1 fine detuning left - + + Direction: + 방향: - - Osc %1 coarse detuning - + + Mode: + 모드: + + + lmms::gui::InstrumentFunctionNoteStackingView - - Osc %1 fine detuning right - + + STACKING + 스태킹 - - Osc %1 phase-offset - 오실레이터 %1 위상 + + Chord: + 코드: - - Osc %1 stereo phase-detuning - 오실레이터 %1 좌우 위상차 + + RANGE + 범위 - - Osc %1 wave shape - 오실레이터 %1 파형 + + Chord range: + 코드 범위: - - Modulation type %1 - 변조 유형 %1 + + octave(s) + 옥타브 - Oscilloscope + lmms::gui::InstrumentMidiIOView + + + ENABLE MIDI INPUT + MIDI 입력 활성화 + - - Oscilloscope - 오실로스코프 + + + CHAN + This string must be be short, its width must be less than * width of LCD spin-box of two digits + 채널 - - Click to enable - 클릭하여 활성화 + + + VELOC + This string must be be short, its width must be less than * width of LCD spin-box of three digits + 벨로시티 - - - PatchesDialog - - Qsynth: Channel Preset - + + ENABLE MIDI OUTPUT + MIDI 출력 활성화 - - Bank selector - + + PROG + This string must be be short, its width must be less than the * width of LCD spin-box of three digits + 프로그램 - - Bank - 뱅크 + + NOTE + This string must be be short, its width must be less than * width of LCD spin-box of three digits + 노트 - - Program selector - + + MIDI devices to receive MIDI events from + MIDI 이벤트를 수신할 MIDI 디바이스 - - Patch - 패치 + + MIDI devices to send MIDI events to + MIDI 이벤트를 전송할 MIDI 디바이스 - - Name - 이름 + + VELOCITY MAPPING + - - OK - 확인 + + MIDI VELOCITY + - - Cancel - 취소 + + MIDI notes at this velocity correspond to 100% note velocity. + - PatmanView + lmms::gui::InstrumentSoundShapingView - - Open patch - + + TARGET + 대상 - - Loop - 루프 + + FILTER + 필터 - - Loop mode - 루프 모드 + + FREQ + FREQ - - Tune - + + Cutoff frequency: + 컷오프 주파수: - - Tune mode - + + Hz + Hz - - No file selected - 파일이 선택되지 않음 + + Q/RESO + Q/공명 - - Open patch file - 패치 파일 열기 + + Q/Resonance: + Q/공명: - - Patch-Files (*.pat) - 패치 파일 (*.pat) + + Envelopes, LFOs and filters are not supported by the current instrument. + 엔벨로프, LFO 및 필터는 현재 악기에서 지원되지 않습니다. - MidiClipView - - - Open in piano-roll - 피아노-롤에서 열기 - + lmms::gui::InstrumentTrackView - - Set as ghost in piano-roll + + Mixer channel - - Clear all notes - 전체 음표 지우기 + + Volume + 볼륨 - - Reset name - 이름 초기화 + + Volume: + 볼륨: - - Change name - 이름 바꾸기 + + VOL + 볼륨 - - Add steps - + + Panning + 패닝 - - Remove steps - + + Panning: + 패닝: - - Clone Steps - + + PAN + 패닝 - - - PeakController - - Peak Controller - 피크 컨트롤러 + + MIDI + MIDI - - Peak Controller Bug - 피크 컨트롤러 버그 + + Input + 입력 - - Due to a bug in older version of LMMS, the peak controllers may not be connect properly. Please ensure that peak controllers are connected properly and re-save this file. Sorry for any inconvenience caused. - 이전 버전 LMMS의 버그로 인해 피크 컨트롤러가 제대로 연결되지 않았을 수 있습니다. 피크 컨트롤러가 제대로 연결되었는지 확인 후 파일을 다시 저장해 주시기 바랍니다. 불편을 드려 죄송합니다. + + Output + 출력 - - - PeakControllerDialog - - PEAK - + + Open/Close MIDI CC Rack + MIDI CC 랙 열기/닫기 - - LFO Controller - LFO 컨트롤러 + + %1: %2 + %1: %2 - PeakControllerEffectControlDialog + lmms::gui::InstrumentTrackWindow - - BASE - 기준 - - - - Base: - 기준: + + Volume + 볼륨 - - AMNT - + + Volume: + 볼륨: - - Modulation amount: - + + VOL + 볼륨 - - MULT - + + Panning + 패닝 - - Amount multiplicator: - + + Panning: + 패닝: - - ATCK - + + PAN + 패닝 - - Attack: - + + Pitch + 피치 - - DCAY - + + Pitch: + 피치: - - Release: - + + cents + 센트 - - TRSH - + + PITCH + 피치 - - Treshold: - + + Pitch range (semitones) + 피치 범위 (반음) - - Mute output - 출력 음소거 + + RANGE + 범위 - - Absolute value - 절댓값 + + Mixer channel + 믹서 채널 - - - PeakControllerEffectControls - - Base value - 기준 값 + + CHANNEL + 채널 - - Modulation amount - + + Save current instrument track settings in a preset file + 현재 악기 트랙 설정을 프리셋 파일에 저장하기 - - Attack - + + SAVE + 저장하기 - - Release - + + Envelope, filter & LFO + 엔벨로프, 필터 & LFO - - Treshold - + + Chord stacking & arpeggio + 코드 스태킹 & 아르페지오 - - Mute output - 출력 음소거 + + Effects + 이펙트 - - Absolute value - 절댓값 + + MIDI + MIDI - - Amount multiplicator + + Tuning and transposition - - - PianoRoll - - Note Velocity - 음표 벨로시티 + + Save preset + 프리셋 저장하기 - - Note Panning - 음표 패닝 + + XML preset file (*.xpf) + XML 프리셋 파일 (*.xpf) - - Mark/unmark current semitone - 현재 반음 표시 + + Plugin + 플러그인 + + + lmms::gui::InstrumentTuningView - - Mark/unmark all corresponding octave semitones + + GLOBAL TRANSPOSITION - - Mark current scale + + Enables the use of global transposition - - Mark current chord + + Microtuner is not available for MIDI-based instruments. - - Unmark all - 모두 표시 해제 - - - - Select all notes on this key - 이 음의 음표 모두 선택 - - - - Note lock - 박자 잠금 + + MICROTUNER + - - Last note - 마지막 박자 + + Active scale: + - - No key + + + Edit scales and keymaps - - No scale - 음계 없음 + + Active keymap: + - - No chord - 코드 없음 + + Import note ranges from keymap + - - Nudge + + When enabled, the first, last and base notes of this instrument will be overwritten with values specified by the selected keymap. + + + lmms::gui::KickerInstrumentView - - Snap - + + Start frequency: + 시작 주파수: + + + + End frequency: + 끝 주파수: - - Velocity: %1% - 벨로시티: %1% + + Frequency slope: + 주파수 슬로프: - - Panning: %1% left - 패닝: %1% 왼쪽 + + Gain: + 게인: - - Panning: %1% right - 패닝: %1% 오른쪽 + + Envelope length: + 엔벨로프 길이: - - Panning: center - 패닝: 가운데 + + Envelope slope: + 엔벨로프 슬로프: - - Glue notes failed - + + Click: + 클릭: - - Please select notes to glue first. - + + Noise: + 잡음: - - Please open a clip by double-clicking on it! - 더블클릭하여 패턴을 열어주세요! + + Start distortion: + 시작 디스토션: - - - Please enter a new value between %1 and %2: - %1부터 %2까지의 값을 입력하세요: + + End distortion: + 끝 디스토션: - PianoRollWindow + lmms::gui::LOMMControlDialog - - Play/pause current clip (Space) - 현재 패턴 재생/일시정지 (Space) + + Depth: + - - Record notes from MIDI-device/channel-piano + + Compression amount for all bands - - Record notes from MIDI-device/channel-piano while playing song or BB track + + Time: - - Record notes from MIDI-device/channel-piano, one step at the time + + Attack/release scaling for all bands - - Stop playing of current clip (Space) - 현재 패턴 정지 (Space) + + Input Volume: + - - Edit actions - 편집 동작 + + Input volume + - - Draw mode (Shift+D) - 그리기 모드 (Shift+D) + + Output Volume: + - - Erase mode (Shift+E) - 지우기 모드 (Shift+E) + + Output volume + - - Select mode (Shift+S) - 선택 모드 (Shift+S) + + Upward Depth: + - - Pitch Bend mode (Shift+T) + + Upward compression amount for all bands - - Quantize + + Downward Depth: - - Quantize positions + + Downward compression amount for all bands - - Quantize lengths + + High/Mid Crossover - - File actions + + Mid/Low Crossover - - Import clip + + High/mid band split - - - Export clip + + Mid/low band split - - Copy paste controls - 복사/붙여넣기 컨트롤 + + Enable High Band + - - Cut (%1+X) - 잘라내기 (%1+X) + + Enable Mid Band + - - Copy (%1+C) - 복사 (%1+C) + + Enable Low Band + - - Paste (%1+V) - 붙여넣기 (%1+V) + + High Input Volume: + - - Timeline controls + + Input volume for high band - - Glue + + Mid Input Volume: - - Knife + + Input volume for mid band - - Fill + + Low Input Volume: - - Cut overlaps + + Input volume for low band - - Min length as last + + High Output Volume: - - Max length as last + + Output volume for high band - - Zoom and note controls + + Mid Output Volume: - - Horizontal zooming - 수평 줌 + + Output volume for mid band + - - Vertical zooming - 수직 줌 + + Low Output Volume: + - - Quantization + + Output volume for low band - - Note length - 음표 길이 + + Above Threshold High + - - Key + + Downward compression threshold for high band - - Scale - 음계 + + Above Threshold Mid + - - Chord - 코드 + + Downward compression threshold for mid band + - - Snap mode + + Above Threshold Low - - Clear ghost notes + + Downward compression threshold for low band - - - Piano-Roll - %1 - 피아노-롤 - %1 + + Above Ratio High + - - - Piano-Roll - no clip - 피아노-롤 - 패턴 없음 + + Downward compression ratio for high band + - - - XML clip file (*.xpt *.xptz) + + Above Ratio Mid - - Export clip success + + Downward compression ratio for mid band - - Clip saved to %1 + + Above Ratio Low - - Import clip. + + Downward compression ratio for low band - - You are about to import a clip, this will overwrite your current clip. Do you want to continue? + + Below Threshold High - - Open clip + + Upward compression threshold for high band - - Import clip success + + Below Threshold Mid - - Imported clip %1! + + Upward compression threshold for mid band - - - PianoView - - Base note - 기준 음 + + Below Threshold Low + - - First note + + Upward compression threshold for low band - - Last note - 마지막 박자 + + Below Ratio High + - - - Plugin - - Plugin not found - 플러그인을 찾을 수 없음 + + Upward compression ratio for high band + - - The plugin "%1" wasn't found or could not be loaded! -Reason: "%2" - 플러그인 "%1"을(를) 찾을 수 없거나 읽어올 수 없습니다. -이유: %2 + + Below Ratio Mid + - - Error while loading plugin - 플러그인 로딩 오류 + + Upward compression ratio for mid band + - - Failed to load plugin "%1"! - 플러그인 "%1"을(를) 로딩할 수 없습니다! + + Below Ratio Low + - - - PluginBrowser - - Instrument Plugins - 악기 플러그인 + + Upward compression ratio for low band + - - Instrument browser - 악기 탐색기 + + Attack High: + - - Drag an instrument into either the Song-Editor, the Beat+Bassline Editor or into an existing instrument track. - 플러그인을 노래 편집기, 비트/베이스 라인 편집기, 이미 존재하는 악기 트랙 중 하나로 드래그하세요. + + Attack time for high band + - - no description - 설명 없음 + + Attack Mid: + - - A native amplifier plugin - 내장 증폭기 플러그인 + + Attack time for mid band + - - Simple sampler with various settings for using samples (e.g. drums) in an instrument-track + + Attack Low: - - Boost your bass the fast and simple way + + Attack time for low band - - Customizable wavetable synthesizer + + Release High: - - An oversampling bitcrusher + + Release time for high band - - Carla Patchbay Instrument + + Release Mid: - - Carla Rack Instrument + + Release time for mid band - - A dynamic range compressor. + + Release Low: - - A 4-band Crossover Equalizer + + Release time for low band - - A native delay plugin - 내장 딜레이 플러그인 + + RMS Time: + - - A Dual filter plugin + + RMS size for sidechain signal (set to 0 for Peak mode) - - plugin for processing dynamics in a flexible way + + Knee: - - A native eq plugin - 내장 EQ 플러그인 + + Knee size for all compressors + - - A native flanger plugin - 내장 플랜저 플러그인 + + Range: + - - Emulation of GameBoy (TM) APU - GameBoy (TM) APU 에뮬레이션 + + Maximum gain increase for all bands + - - Player for GIG files - GIG 파일 플레이어 + + Balance: + - - Filter for importing Hydrogen files into LMMS - Hydrogen 파일을 LMMS로 읽어오기 위한 필터 + + Bias input volume towards one channel + - - Versatile drum synthesizer + + Scale output volume with Depth - - List installed LADSPA plugins - 설치된 LADSPA 플러그인 목록 + + Scale output volume with Depth parameter + - - plugin for using arbitrary LADSPA-effects inside LMMS. - LMMS에서 LADSPA 이펙트를 이용하기 위한 플러그인. + + Stereo Link + - - Incomplete monophonic imitation TB-303 + + Apply same gain change to both channels - - plugin for using arbitrary LV2-effects inside LMMS. + + Auto Time: - - plugin for using arbitrary LV2 instruments inside LMMS. + + Speed up attack and release times when transients occur - - Filter for exporting MIDI-files from LMMS - MIDI 파일을 LMMS에서 내보내기 위한 필터 + + Mix: + - - Filter for importing MIDI-files into LMMS - MIDI 파일을 LMMS로 읽어오기 위한 필터 + + Wet/Dry of all bands + - - Monstrous 3-oscillator synth with modulation matrix + + Feedback - - A multitap echo delay plugin + + Use output as sidechain signal instead of input - - A NES-like synthesizer + + Mid/Side - - 2-operator FM Synth + + Compress mid/side channels instead of left/right - - Additive Synthesizer for organ-like sounds + + + Suppress upward compression for side band - - GUS-compatible patch instrument + + + Lookahead - - Plugin for controlling knobs with sound peaks + + Lookahead length - - Reverb algorithm by Sean Costello - Sean Costello의 리버브 알고리즘 + + Clear all parameters + + + + lmms::gui::LadspaBrowserView - - Player for SoundFont files - 사운드폰트 파일 플레이어 + + + Available Effects + 사용 가능한 이펙트 - - LMMS port of sfxr - + + + Unavailable Effects + 사용할 수 없는 이펙트 - - Emulation of the MOS6581 and MOS8580 SID. -This chip was used in the Commodore 64 computer. - + + + Instruments + 악기 - - A graphical spectrum analyzer. - + + + Analysis Tools + 분석 도구 - - Plugin for enhancing stereo separation of a stereo input file - + + + Don't know + 알 수 없음 - - Plugin for freely manipulating stereo output - + + Type: + 유형: + + + lmms::gui::LadspaControlDialog - - Tuneful things to bang on - + + Link Channels + 링크 채널 - - Three powerful oscillators you can modulate in several ways - + + Channel + 채널 + + + lmms::gui::LadspaControlView - - A stereo field visualizer. - + + Link channels + 링크 채널 - - VST-host for using VST(i)-plugins within LMMS - LMMS의 VST(i) 플러그인 호스트 + + Value: + 값: + + + lmms::gui::LadspaDescription - - Vibrating string modeler - + + Plugins + 플러그인 - - plugin for using arbitrary VST effects inside LMMS. - LMMS에서 VST 이펙트를 이용하기 위한 플러그인. + + Description + 설명 - - 4-oscillator modulatable wavetable synth + + Name: - - plugin for waveshaping + + Maker: - - Mathematical expression parser - 수식 해석기 - - - - Embedded ZynAddSubFX - 내장 ZynAddSubFX 플러그인 + + Copyright: + - - - PluginDatabaseW - - Carla - Add New + + Requires Real Time: - - Format + + + + Yes - - Internal + + + + No - - LADSPA + + Real Time Capable: - - DSSI + + In Place Broken: - - LV2 + + Channels In: - - VST2 + + Channels Out: + + + lmms::gui::LadspaMatrixControlDialog - - VST3 + + Link Channels - - AU + + Link - - Sound Kits + + Channel %1 - - Type - 형태 + + Link channels + + + + lmms::gui::LadspaPortDialog - - Effects - 효과 + + Ports + 포트 - - Instruments - 악기 + + Name + 이름 - - MIDI Plugins - + + Rate + 레이트 - - Other/Misc - + + Direction + 방향 - - Architecture - + + Type + 유형 - - Native - + + Min < Default < Max + 최소 < 기본 < 최대 - - Bridged - + + Logarithmic + 로가리듬 - - Bridged (Wine) - + + SR Dependent + SR 종속성 - - Requirements - + + Audio + 오디오 - - With Custom GUI - + + Control + 컨트롤 - - With CV Ports - + + Input + 입력 - - Real-time safe only - + + Output + 출력 - - Stereo only - + + Toggled + 전환됨 - - With Inline Display - + + Integer + 정수 - - Favorites only - + + Float + 실수 - - (Number of Plugins go here) - + + + Yes + + + + lmms::gui::Lb302SynthView - - &Add Plugin - + + Cutoff Freq: + 컷오프 주파수: - - Cancel - 취소 + + Resonance: + 공명: - - Refresh - + + Env Mod: + Env Mod: - - Reset filters - + + Decay: + 디케이: - - - - - - - - - - - - - - - - - TextLabel - + + 303-es-que, 24dB/octave, 3 pole filter + 303-es-que, 24dB/옥타브, 3 폴 필터 - - Format: - + + Slide Decay: + 슬라이드 디케이: - - Architecture: - + + DIST: + 디스토션: - - Type: - 형태: + + Saw wave + 톱니파 - - MIDI Ins: - + + Click here for a saw-wave. + 톱니파를 얻으려면 여기를 클릭하세요. - - Audio Ins: - + + Triangle wave + 삼각파 - - CV Outs: - + + Click here for a triangle-wave. + 삼각파를 얻으려면 여기를 클릭하세요. - - MIDI Outs: - + + Square wave + 사각파 - - Parameter Ins: - + + Click here for a square-wave. + 사각파를 얻으려면 여기를 클릭하세요. - - Parameter Outs: - + + Rounded square wave + 둥근 사각파 - - Audio Outs: - + + Click here for a square-wave with a rounded end. + 끝이 둥근 사각파를 얻으려면 여기를 클릭하세요. - - CV Ins: - + + Moog wave + 모그파 - - UniqueID: - + + Click here for a moog-like wave. + 모그와 비슷한 파형을 얻으려면 여기를 클릭하세요. - - Has Inline Display: - + + Sine wave + 사인파 - - Has Custom GUI: - + + Click for a sine-wave. + 사인파를 얻으려면 클릭하세요. - - Is Synth: - + + + White noise wave + 백색 잡음 파형 - - Is Bridged: - + + Click here for an exponential wave. + 지수파를 얻으려면 여기를 클릭하세요. - - Information - + + Click here for white-noise. + 백색 잡음을 얻으려면 여기를 클릭하세요. - - Name - 이름 + + Bandlimited saw wave + 밴드리밋된 톱니파 - - Label/URI - + + Click here for bandlimited saw wave. + 밴드리밋된 톱니파를 얻으려면 여기를 클릭하세요. - - Maker - + + Bandlimited square wave + 밴드리밋된 사각파 - - Binary/Filename - + + Click here for bandlimited square wave. + 밴드리밋된 사각파를 얻으려면 여기를 클릭하세요. - - Focus Text Search - + + Bandlimited triangle wave + 밴드리밋된 삼각파 - - Ctrl+F - + + Click here for bandlimited triangle wave. + 밴드리밋된 삼각파를 얻으려면 여기를 클릭하세요. - - - PluginEdit - - Plugin Editor - + + Bandlimited moog saw wave + 밴드리밋된 모그 톱니파 - - Edit - + + Click here for bandlimited moog saw wave. + 밴드리밋된 모그 톱니파를 얻으려면 여기를 클릭하세요. + + + lmms::gui::LcdFloatSpinBox - - Control - 컨트롤 + + Set value + 값 지정하기 - - MIDI Control Channel: - + + Please enter a new value between %1 and %2: + %1부터 %2까지의 값을 입력하세요: + + + lmms::gui::LcdSpinBox - - N - + + Set value + 값 지정하기 - - Output dry/wet (100%) - + + Please enter a new value between %1 and %2: + %1부터 %2까지의 값을 입력하세요: + + + lmms::gui::LeftRightNav - - Output volume (100%) - + + + + Previous + 이전 - - Balance Left (0%) - + + + + Next + 다음 - - - Balance Right (0%) - + + Previous (%1) + 이전 (%1) - - Use Balance - + + Next (%1) + 다음 (%1) + + + lmms::gui::LfoControllerDialog - - Use Panning - + + LFO + LFO - - Settings - 설정 + + BASE + BASE - - - Use Chunks - + + + Base: + 기준: - - Audio: - + + FREQ + FREQ - - Fixed-Size Buffer - + + LFO frequency: + LFO 주파수: - - Force Stereo (needs reload) - + + AMNT + AMNT - - MIDI: - + + Modulation amount: + 모듈레이션 양: - - Map Program Changes - + + PHS + PHS - - Send Bank/Program Changes - + + Phase offset: + 페이즈 오프셋: - - Send Control Changes - + + degrees + - - Send Channel Pressure - + + Sine wave + 사인파 - - Send Note Aftertouch - + + Triangle wave + 삼각파 - - Send Pitchbend - + + Saw wave + 톱니파 - - Send All Sound/Notes Off - + + Square wave + 사각파 - - -Plugin Name - - + + Moog saw wave + 모그 톱니파 - - Program: - + + Exponential wave + 지수파 - - MIDI Program: - + + White noise + 백색 잡음 - - Save State - + + User-defined shape. +Double click to pick a file. + 사용자 정의된 형태입니다. +파일을 선택하려면 두 번 클릭하세요. - - Load State - + + Multiply modulation frequency by 1 + 모듈레이션 주파수를 1로 곱합니다 - - Information - + + Multiply modulation frequency by 100 + 모듈레이션 주파수를 100으로 곱합니다 - - Label/URI: - + + Divide modulation frequency by 100 + 모듈레이션 주파수를 100으로 나눕니다 + + + lmms::gui::LfoGraph - - Name: + + %1 Hz + + + lmms::gui::MainWindow - - Type: - 형태: + + Configuration file + 구성 파일 - - Maker: - + + Error while parsing configuration file at line %1:%2: %3 + %1:%2 줄에서 구성 파일을 분석하는 동안 오류: %3 - - Copyright: - + + Could not open file + 파일을 열 수 없음 - - Unique ID: - + + Could not open file %1 for writing. +Please make sure you have write permission to the file and the directory containing the file and try again! + 쓰기 위한 %1 파일을 열 수 없습니다. +파일 및 파일이 포함된 디렉터리에 대한 쓰기 권한이 있는지 확인한 후 다시 시도하세요! - - - PluginFactory - - Plugin not found. - 플러그인을 찾을 수 없습니다. + + Project recovery + 프로젝트 복구 - - LMMS plugin %1 does not have a plugin descriptor named %2! - LMMS 플러그인 %1은(는) 이름이 %2인 플러그인 디스크립터를 가지고 있지 않습니다! + + There is a recovery file present. It looks like the last session did not end properly or another instance of LMMS is already running. Do you want to recover the project of this session? + 복구 파일이 존재합니다. 이전에 LMMS가 비정상 종료되었거나 여러 개의 LMMS 인스턴스가 동시에 실행 중인 것 같습니다. 복구 파일로부터 프로젝트를 복구하시겠습니까? - - - PluginParameter - - Form - + + + Recover + 복구하기 - - Parameter Name - + + Recover the file. Please don't run multiple instances of LMMS when you do this. + 파일을 복구합니다. 이 작업을 수행할 때 LMMS의 여러 인스턴스를 실행하지 마세요. - - ... - + + + Discard + 폐기하기 - - - PluginRefreshW - - Carla - Refresh - + + Launch a default session and delete the restored files. This is not reversible. + 기본 세션을 시작하고 복원된 파일을 삭제합니다. 이 작업은 되돌릴 수 없습니다. - - Search for new... - + + Version %1 + 버전 %1 - - LADSPA - + + Preparing plugin browser + 플러그인 탐색기 준비하는 중 - - DSSI - + + Preparing file browsers + 파일 탐색기 준비하는 중 - - LV2 - + + My Projects + 내 프로젝트 - - VST2 - + + My Samples + 내 샘플 - - VST3 - + + My Presets + 내 프리셋 - - AU - + + My Home + 내 홈 - - SF2/3 + + Root Directory - - SFZ - + + Volumes + 볼륨 - - Native - + + My Computer + 내 컴퓨터 - - POSIX 32bit - + + Loading background picture + 배경 사진 불러오는 중 - - POSIX 64bit - + + &File + 파일(&F) - - Windows 32bit - + + &New + 새로 만들기(&N) - - Windows 64bit - + + &Open... + 열기(&O)... - - Available tools: - + + &Save + 저장(&S) - - python3-rdflib (LADSPA-RDF support) - + + Save &As... + 다른 이름으로 저장(&A)... - - carla-discovery-win64 - + + Save as New &Version + 새 버전으로 저장(&V) - - carla-discovery-native - + + Save as default template + 기본 템플릿으로 저장하기 - - carla-discovery-posix32 - + + Import... + 가져오기... - - carla-discovery-posix64 - + + E&xport... + 내보내기(&X)... - - carla-discovery-win32 - + + E&xport Tracks... + 트랙 내보내기(&X)... - - Options: - + + Export &MIDI... + MIDI 내보내기(&M)... - - Carla will run small processing checks when scanning the plugins (to make sure they won't crash). -You can disable these checks to get a faster scanning time (at your own risk). - + + &Quit + 종료(&Q) - - Run processing checks while scanning - + + &Edit + 편집(&E) - - Press 'Scan' to begin the search - + + Undo + 실행 취소 - - Scan - + + Redo + 다시 실행 - - >> Skip + + Scales and keymaps - - Close - 닫기 + + Settings + 설정 - - - PluginWidget - - - - - - Frame - + + &View + 보기(&V) - - Enable - + + &Tools + 도구(&T) - - On/Off - 켬/끔 + + &Help + 도움말(&H) - - - - - PluginName - + + Online Help + 온라인 도움말 - - MIDI - MIDI + + Help + 도움말 - - AUDIO IN - + + About + 정보 - - AUDIO OUT - + + Create new project + 새 프로젝트 만들기 - - GUI - + + Create new project from template + 템플릿에서 새 프로젝트 만들기 - - Edit - + + Open existing project + 기존 프로젝트 열기 - - Remove - + + Recently opened projects + 최근에 열린 프로젝트 - - - Plugin Name - + + + Save current project + 현재 프로젝트 저장하기 - - Preset: - + + Export current project + 현재 프로젝트 내보내기 - - - ProjectNotes - - Project Notes - 프로젝트 노트 + + Metronome + 메트로놈 - - Enter project notes here - 여기에 프로젝트 노트를 입력하세요 + + + Song Editor + 노래 편집기 - - Edit Actions - 편집 동작 + + + Pattern Editor + 패턴 편집기 - - &Undo - 실행 취소(&U) + + + Piano Roll + 피아노 롤 - - %1+Z - %1+Z + + + Automation Editor + 오토메이션 편집기 - - &Redo - 다시 실행(&R) + + + Mixer + 믹서 - - %1+Y - %1+Y + + Show/hide controller rack + 컨트롤러 랙 표시하기/숨기기 - - &Copy - 복사(&C) + + Show/hide project notes + 프로젝트 노트 표시하기/숨기기 - - %1+C - %1+C + + Untitled + 제목 없음 - - Cu&t - 잘라내기(&T) + + Recover session. Please save your work! + 복구 세션입니다. 프로젝트 파일을 저장해 주세요! - - %1+X - %1+X + + LMMS %1 + LMMS %1 - - &Paste - 붙여넣기(&P) + + Recovered project not saved + 복구된 프로젝트가 저장되지 않음 - - %1+V - %1+V + + This project was recovered from the previous session. It is currently unsaved and will be lost if you don't save it. Do you want to save it now? + 이 프로젝트는 이전 세션에서 복구되었습니다. 현재 저장되지 않은 상태이며 저장하지 않으면 손실됩니다. 지금 저장하시겠습니까? - - Format Actions - 서식 동작 + + Project not saved + 프로젝트 저장되지 않음 - - &Bold - 굵게(&B) + + The current project was modified since last saving. Do you want to save it now? + 현재 프로젝트는 마지막 저장 이후 수정되었습니다. 지금 저장하시겠습니까? - - %1+B - %1+B + + Open Project + 프로젝트 열기 - - &Italic - 기울임꼴(&I) + + LMMS (*.mmp *.mmpz) + LMMS (*.mmp *.mmpz) - - %1+I - %1+I + + Save Project + 프로젝트 저장하기 - - &Underline - 밑줄(&U) + + LMMS Project + LMMS 프로젝트 - - %1+U - %1+U + + LMMS Project Template + LMMS 프로젝트 템플릿 - - &Left - 왼쪽 정렬(&L) + + Save project template + 프로젝트 템플릿 저장하기 - - %1+L - %1+L + + Overwrite default template? + 기본 템플릿을 덮어쓰시겠습니까? - - C&enter - 가운데 정렬(&E) + + This will overwrite your current default template. + 이 작업은 현재의 기본 템플릿을 덮어씁니다. - - %1+E - %1+E + + Help not available + 도움말 사용할 수 없음 - - &Right - 오른쪽 정렬(&R) + + Currently there's no help available in LMMS. +Please visit http://lmms.sf.net/wiki for documentation on LMMS. + 현재 LMMS에서 사용할 수 있는 도움말이 없습니다. +LMMS에 대한 문서는 http://lmms.sf.net/wiki를 방문하세요. - - %1+R - %1+R + + Controller Rack + 컨트롤러 랙 - - &Justify - 양쪽 정렬(&J) + + Project Notes + 프로젝트 노트 - - %1+J - %1+J + + Fullscreen + 전체화면 - - &Color... - 색(&C)... + + Volume as dBFS + 볼륨을 dBFS 단위로 - - - ProjectRenderer - - WAV (*.wav) - WAV (*.wav) + + Smooth scroll + 부드러운 스크롤 - - FLAC (*.flac) - FLAC (*.flac) + + Enable note labels in piano roll + 피아노 롤에서 노트 레이블 활성화 - - OGG (*.ogg) - OGG (*.ogg) + + MIDI File (*.mid) + MIDI 파일 (*.mid) - - MP3 (*.mp3) - MP3 (*.mp3) + + + untitled + 제목 없음 - - - QObject - - Reload Plugin - + + + Select file for project-export... + 프로젝트를 내보낼 파일 선택하기... - - Show GUI - GUI 표시 + + Select directory for writing exported tracks... + 내보낸 트랙을 저장할 디렉터리 선택하기... - - Help - 도움말 + + Save project + 프로젝트 저장하기 - - - QWidget - - - - - Name: - 이름: + + Project saved + 프로젝트 저장됨 - - URI: - + + The project %1 is now saved. + %1 프로젝트가 저장되었습니다. - - - - Maker: - 제작자: + + Project NOT saved. + 프로젝트가 저장되지 않았습니다. - - - - Copyright: - 저작권: + + The project %1 was not saved! + %1 프로젝트가 저장되지 않았습니다! - - - Requires Real Time: - + + Import file + 파일 가져오기 - - - - - - - Yes - + + MIDI sequences + MIDI 시퀀스 - - - - - - - No - 아니오 + + Hydrogen projects + Hydrogen 프로젝트 - - - Real Time Capable: - 실제 시간 가능: + + All file types + 모든 파일 유형 + + + lmms::gui::MalletsInstrumentView - - - In Place Broken: - 깨진 곳에 위치: + + Instrument + 악기 - - - Channels In: - 입력 채널: + + Spread + 스프레드 - - - Channels Out: - 출력 채널: + + Spread: + 스프레드: - - File: %1 - 파일: %1 + + Random + - - File: - 파일: + + Random: + - - - RecentProjectsMenu - - &Recently Opened Projects - 최근에 사용한 프로젝트(&R) + + Missing files + 누락된 파일 - - - RenameDialog - - Rename... - 이름 바꾸기... + + Your Stk-installation seems to be incomplete. Please make sure the full Stk-package is installed! + 시스템의 Stk 설치가 불완전한 것 같습니다. 전체 Stk 패키지가 설치되었는지 확인하십시오! - - - ReverbSCControlDialog - - Input - 입력 + + Hardness + 하드니스 - - Input gain: - 입력 이득: + + Hardness: + 하드니스: - - Size - 크기 + + Position + 포지션 - - Size: - + + Position: + 포지션: - - Color - 음색 + + Vibrato gain + 비브라토 게인 - - Color: - + + Vibrato gain: + 비브라토 게인: - - Output - 출력 + + Vibrato frequency + 비브라토 주파수 - - Output gain: - 출력 이득: + + Vibrato frequency: + 비브라토 주파수: - - - ReverbSCControls - - Input gain - 입력 이득 + + Stick mix + 스틱 믹스 - - Size - 크기 + + Stick mix: + 스틱 믹스: - - Color - 음색 + + Modulator + 모듈레이터 - - Output gain - 출력 이득 + + Modulator: + 모듈레이터: - - - SaControls - - Pause - + + Crossfade + 크로스페이드 - - Reference freeze - + + Crossfade: + 크로스페이드: - - Waterfall - + + LFO speed + LFO 속도 - - Averaging - + + LFO speed: + LFO 속도: - - Stereo - 스테레오 + + LFO depth + LFO 깊이 - - Peak hold - + + LFO depth: + LFO 깊이: - - Logarithmic frequency - + + ADSR + ADSR - - Logarithmic amplitude - + + ADSR: + ADSR: - - Frequency range - + + Pressure + 누름 - - Amplitude range - + + Pressure: + 누름: - - FFT block size - + + Speed + 속도 - - FFT window type - + + Speed: + 속도: + + + lmms::gui::ManageVSTEffectView - - Peak envelope resolution - + + - VST parameter control + - VST 매개변수 컨트롤 - - Spectrum display resolution - + + VST sync + VST 싱크 - - Peak decay multiplier - + + + Automated + 자동화됨 - - Averaging weight - + + Close + 닫기 + + + lmms::gui::ManageVestigeInstrumentView - - Waterfall history size - + + + - VST plugin control + - VST 플러그인 컨트롤 - - Waterfall gamma correction - + + VST Sync + VST 싱크 - - FFT window overlap - + + + Automated + 자동화됨 - - FFT zero padding - + + Close + 닫기 + + + lmms::gui::MeterDialog - - - Full (auto) - + + + Meter Numerator + 미터 분자 - - - - Audible - + + Meter numerator + 미터 분자 - - Bass - + + + Meter Denominator + 미터 분모 - - Mids - + + Meter denominator + 미터 분모 - - High - + + TIME SIG + 박자표 + + + lmms::gui::MicrotunerConfig - - Extended + + Selected scale slot - - Loud + + Selected keymap slot - - Silent - + + + First key + 처음 노트 - - (High time res.) - + + + Last key + 처음 노트 - - (High freq. res.) - + + + Middle key + 중간 키 - - Rectangular (Off) - + + + Base key + 기준 키 - - - Blackman-Harris (Default) - + + + + Base note frequency + 기본 노트 주파수 - - Hamming + + Microtuner Configuration - - Hanning + + Scale slot to edit: - - - SaControlsDialog - - Pause - + + Scale description. Cannot start with "!" and cannot contain a newline character. + 스케일 설명입니다. "!"로 시작할 수 없고 개행 문자를 포함할 수 없습니다. - - Pause data acquisition - + + + Load + 불러오기 - - Reference freeze - + + + Save + 저장하기 - - Freeze current input as a reference / disable falloff in peak-hold mode. + + Load scale definition from a file. - - Waterfall + + Save scale definition to a file. - - Display real-time spectrogram - + + Enter intervals on separate lines. Numbers containing a decimal point are treated as cents. +Other inputs are treated as integer ratios and must be in the form of 'a/b' or 'a'. +Unity (0.0 cents or ratio 1/1) is always present as a hidden first value; do not enter it manually. + 간격을 별도의 줄에 입력합니다. 소수점이 포함된 숫자는 센트로 처리됩니다. +다른 입력은 정수의 레시오(ratios)로 취급되며 'a/b' 또는 'a' 형식이어야 합니다. +단수(0.0 센트 또는 레시오 1/1)는 항상 숨겨진 첫 번째 값으로 표시되므로 수동으로 입력하지 마세요. - - Averaging + + Apply scale changes - - Enable exponential moving average + + Verify and apply changes made to the selected scale. To use the scale, select it in the settings of a supported instrument. - - Stereo - 스테레오 + + Keymap slot to edit: + - - Display stereo channels separately - + + Keymap description. Cannot start with "!" and cannot contain a newline character. + 키맵 설명입니다. "!"로 시작할 수 없고 개행 문자를 포함할 수 없습니다. - - Peak hold + + Load key mapping definition from a file. - - Display envelope of peak values + + Save key mapping definition to a file. - - Logarithmic frequency - + + Enter key mappings on separate lines. Each line assigns a scale degree to a MIDI key, +starting with the middle key and continuing in sequence. +The pattern repeats for keys outside of the explicit keymap range. +Multiple keys can be mapped to the same scale degree. +Enter 'x' if you wish to leave the key disabled / not mapped. + 별도의 줄에 키 매핑을 입력합니다. +각 줄은 가운데 키부터 시작하여 순서대로 MIDI 키에 스케일 정도를 할당합니다. +이 패턴은 명시적인 키맵 범위를 벗어난 키에 대해서도 반복됩니다. +여러 개의 키를 동일한 스케일도에 매핑할 수 있습니다. +키를 비활성화/매핑하지 않으려면 'X'를 입력합니다. - - Switch between logarithmic and linear frequency scale - + + FIRST + FIRST - - - Frequency range - + + First MIDI key that will be mapped + 매핑될 첫 번째 미디 키 - - Logarithmic amplitude - + + LAST + LAST - - Switch between logarithmic and linear amplitude scale - + + Last MIDI key that will be mapped + 매핑될 마지막 MIDI 키 - - - Amplitude range - + + MIDDLE + MIDDLE - - Envelope res. - + + First line in the keymap refers to this MIDI key + 키맵의 첫 번째 줄은 이 미디 키를 나타냅니다 - - Increase envelope resolution for better details, decrease for better GUI performance. - + + BASE N. + BASE N. - - - Draw at most - + + Base note frequency will be assigned to this MIDI key + 기본 노트 주파수가 이 MIDI 키에 할당됩니다 - - envelope points per pixel - + + BASE NOTE FREQ + 기본 노트 주파수 - - Spectrum res. + + Apply keymap changes - - Increase spectrum resolution for better details, decrease for better GUI performance. + + Verify and apply changes made to the selected key mapping. To use the mapping, select it in the settings of a supported instrument. - - spectrum points per pixel - + + Scale parsing error + 스케일 분석중 오류 - - Falloff factor - + + Scale name cannot start with an exclamation mark + 스케일 이름은 느낌표로 시작할 수 없습니다 - - Decrease to make peaks fall faster. - + + Scale name cannot contain a new-line character + 스케일 이름은 개행 문자를 포함할 수 없습니다 - - Multiply buffered value by - + + Interval defined in cents cannot be converted to a number + 센트 단위로 정의된 간격은 숫자로 변환할 수 없습니다 - - Averaging weight - + + Numerator of an interval defined as a ratio cannot be converted to a number + 레시오로 정의된 간격의 분자는 숫자로 변환할 수 없습니다 - - Decrease to make averaging slower and smoother. - + + Denominator of an interval defined as a ratio cannot be converted to a number + 레시오로 정의된 간격의 분모는 숫자로 변환할 수 없습니다 - - New sample contributes - + + Interval defined as a ratio cannot be negative + 레시오로 정의된 간격은 음수가 될 수 없습니다 - - Waterfall height - + + Keymap parsing error + 키맵 분석중 오류 - - Increase to get slower scrolling, decrease to see fast transitions better. Warning: medium CPU usage. - + + Keymap name cannot start with an exclamation mark + 키맵 이름은 느낌표로 시작할 수 없습니다 - - Keep - + + Keymap name cannot contain a new-line character + 키맵 이름은 개행 문자를 포함할 수 없습니다 - - lines - + + Scale degree cannot be converted to a whole number + 스케일 디그리는 정수로 변환할 수 없습니다 - - Waterfall gamma - + + Scale degree cannot be negative + 스케일 디그리는 음수일 수 없습니다 - - Decrease to see very weak signals, increase to get better contrast. - + + Invalid keymap + 잘못된 키맵 - - Gamma value: - + + Base key is not mapped to any scale degree. No sound will be produced as there is no way to assign reference frequency to any note. + 기본 키는 스케일 디그리에 매핑되지 않습니다. 노트에 레퍼런스 주파수를 할당할 방법이 없으므로 소리가 나지 않습니다. - - Window overlap - + + Open scale + 스케일 열기 - - Increase to prevent missing fast transitions arriving near FFT window edges. Warning: high CPU usage. - + + + Scala scale definition (*.scl) + Scala 스케일 정의 (*.scl) - - Each sample processed - + + Scale load failure + 스케일 불러오기 실패 - - times - + + + Unable to open selected file. + 선택한 파일을 열 수 없습니다. - - Zero padding - + + Open keymap + 키맵 열기 - - Increase to get smoother-looking spectrum. Warning: high CPU usage. - + + + Scala keymap definition (*.kbm) + Scala 키맵 정의 (*.kbm) - - Processing buffer is - + + Keymap load failure + 키맵 불러오기 실패 - - steps larger than input block - + + Save scale + 스케일 저장하기 - - Advanced settings - + + Scale save failure + 스케일 저장 실패 - - Access advanced settings - + + + Unable to open selected file for writing. + 쓰기 위해 선택한 파일을 열 수 없습니다. - - - FFT block size - + + Save keymap + 키맵 저장하기 - - - FFT window type - + + Keymap save failure + 키맵 저장 실패 - SampleBuffer + lmms::gui::MidiCCRackView - - Fail to open file - 파일을 열 수 없음 + + + MIDI CC Rack - %1 + MIDI CC 랙 - %1 - - Audio files are limited to %1 MB in size and %2 minutes of playing time - 오디오 파일은 %1MB보다 작고 %2분보다 짧아야 합니다 + + MIDI CC Knobs: + MIDI CC 노브: - - Open audio file - 오디오 파일 열기 + + CC %1 + CC %1 + + + + lmms::gui::MidiClipView + + + + Transpose + 트랜스포즈 - - All Audio-Files (*.wav *.ogg *.ds *.flac *.spx *.voc *.aif *.aiff *.au *.raw) - 모든 오디오 파일 (*.wav *.ogg *.ds *.flac *.spx *.voc *.aif *.aiff *.au *.raw) + + Semitones to transpose by: + 조옮김할 반음: - - Wave-Files (*.wav) - Wave 파일(*.wav) + + Open in piano-roll + 피아노-롤에서 열기 - - OGG-Files (*.ogg) - OGG 파일(*.ogg) + + Set as ghost in piano-roll + 피아노-롤에서 고스트로 지정하기 - - DrumSynth-Files (*.ds) - DrumSynth 파일(*.ds) + + Set as ghost in automation editor + - - FLAC-Files (*.flac) - FLAC 파일(*.flac) + + Clear all notes + 모든 노트 지우기 - - SPEEX-Files (*.spx) - SPEEX 파일(*.spx) + + Reset name + 이름 재설정 - - VOC-Files (*.voc) - VOC 파일(*.voc) + + Change name + 이름 변경하기 - - AIFF-Files (*.aif *.aiff) - AIFF 파일 (*.aif *.aiff) + + Add steps + 스탭 추가하기 - - AU-Files (*.au) - AU 파일 (*.au) + + Remove steps + 스탭 제거하기 - - RAW-Files (*.raw) - RAW 파일 (*.raw) + + Clone Steps + 스탭 복제하기 - SampleClipView - - - Double-click to open sample - 더블클릭하여 샘플 열기 - + lmms::gui::MidiSetupWidget - - Delete (middle mousebutton) - 삭제(마우스 가운데 버튼) + + Device + 디바이스 + + + lmms::gui::MixerChannelLcdSpinBox - - Delete selection (middle mousebutton) + + Assign to: - - Cut - 잘라내기 + + New Mixer Channel + - - Cut selection + + Please enter a new value between %1 and %2: - - Copy - 복사 + + Set value + + + + lmms::gui::MixerChannelView - - Copy selection + + Channel send amount - - Paste - 붙여넣기 + + Mute + - - Mute/unmute (<%1> + middle click) - 음소거/해제 (<%1> + 마우스 가운데 버튼) + + Mute this channel + - - Mute/unmute selection (<%1> + middle click) + + Solo - - Reverse sample - 샘플 역으로 + + Solo this channel + - - Set clip color + + Fader %1 - - Use track color + + Move &left - - - SampleTrack - - Volume - 음량 + + Move &right + - - Panning - 패닝 + + Rename &channel + - - Mixer channel - FX 채널 + + R&emove channel + - - - Sample track - 샘플 트랙 + + Remove &unused channels + - - - SampleTrackView - - Track volume - 트랙 음량 + + Color + - - Channel volume: - 채널 음량: + + Change + - - VOL - 음량 + + Reset + - - Panning - 패닝 + + Pick random + - - Panning: - 패닝: + + This Mixer Channel is being used. +Are you sure you want to remove this channel? + +Warning: This operation can not be undone. + - - PAN - 패닝 + + Confirm removal + - - Channel %1: %2 - FX %1: %2 + + Don't ask again + - SampleTrackWindow + lmms::gui::MixerView - - GENERAL SETTINGS - 일반 설정 + + Mixer + 믹서 + + + lmms::gui::MonstroView - - Sample volume - + + Operators view + 오퍼레이터 보기 - - Volume: - 음량: + + Matrix view + 매트릭스 보기 - - VOL - 음량 + + + + Volume + 볼륨 - + + + Panning 패닝 - - Panning: - 패닝: - - - - PAN - 패닝 - - - - Mixer channel - FX 채널 + + + + Coarse detune + 코어스 디튠 - - CHANNEL - FX + + + + semitones + 반음 - - - SaveOptionsWidget - - Discard MIDI connections - + + + Fine tune left + 파인 튠 좌측 - - Save As Project Bundle (with resources) - + + + + + cents + 센트 - - - SetupDialog - - Reset to default value - 기본값으로 초기화 + + + Fine tune right + 파인 튠 우측 - - Use built-in NaN handler - + + + + Stereo phase offset + 스테레오 페이즈 오프셋 - - Settings - 설정 + + + + + + deg + - - - General - + + Pulse width + 펄스 폭 - - Graphical user interface (GUI) - + + Send sync on pulse rise + 펄스 상승 시 싱크 전송하기 - - Display volume as dBFS - 음량을 dBFS 단위로 표시 + + Send sync on pulse fall + 펄스 하강 시 싱크 전송하기 - - Enable tooltips - 툴팁 활성화 + + Hard sync oscillator 2 + 하드 싱크 오실레이터 2 - - Enable master oscilloscope by default - + + Reverse sync oscillator 2 + 리버스 싱크 오실레이터 2 - - Enable all note labels in piano roll - + + Sub-osc mix + 서브-osc 믹스 - - Enable compact track buttons - + + Hard sync oscillator 3 + 하드 싱크 오실레이터 3 - - Enable one instrument-track-window mode - + + Reverse sync oscillator 3 + 리버스 싱크 오실레이터 3 - - Show sidebar on the right-hand side - + + + + + Attack + 어택 - - Let sample previews continue when mouse is released - + + + Rate + 레이트 - - Mute automation tracks during solo - + + + Phase + 페이즈 - - Show warning when deleting tracks - + + + Pre-delay + 프리-딜레이 - - Projects - + + + Hold + 홀드 - - Compress project files by default - + + + Decay + 디케이 - - Create a backup file when saving a project - + + + Sustain + 서스테인 - - Reopen last project on startup - + + + Release + 릴리즈 - - Language - + + + Slope + 슬로프 - - - Performance - + + Mix osc 2 with osc 3 + osc 2를 osc 3로 믹스 - - Autosave - + + Modulate amplitude of osc 3 by osc 2 + osc 2로 osc 3의 진폭 조절하기 - - Enable autosave - + + Modulate frequency of osc 3 by osc 2 + osc 2로 osc 3의 주파수 조절하기 - - Allow autosave while playing - + + Modulate phase of osc 3 by osc 2 + osc 2로 osc 3의 페이즈 조절하기 - - User interface (UI) effects vs. performance - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Modulation amount + 모듈레이션 양 + + + lmms::gui::MultitapEchoControlDialog - - Smooth scroll in song editor - + + Length + 길이 - - Display playback cursor in AudioFileProcessor - + + Step length: + 스탭 길이: - - Plugins - 플러그인 + + Dry + 드라이 - - VST plugins embedding: - + + Dry gain: + 드라이 게인: - - No embedding - + + Stages + 단계 - - Embed using Qt API - + + Low-pass stages: + 로패스 단계: - - Embed using native Win32 API - + + Swap inputs + 좌우 입력 바꾸기 - - Embed using XEmbed protocol - + + Swap left and right input channels for reflections + 반사율을 위해 좌측 및 우측 입력 채널 바꾸기 + + + lmms::gui::NesInstrumentView - - Keep plugin windows on top when not embedded - + + + + + Volume + 볼륨 - - Sync VST plugins to host playback - VST 플러그인을 LMMS 재생과 동기화 + + + + Coarse detune + 코어스 디튠 - - Keep effects running even without input - 입력이 없을 때에도 효과 작동 유지 + + + + Envelope length + 엔벨로프 길이 - - - Audio - 오디오 + + Enable channel 1 + 채널 1 활성화 - - Audio interface - + + Enable envelope 1 + 엔벨로프 1 활성화 - - HQ mode for output audio device - + + Enable envelope 1 loop + 엔벨로프 1 루프 활성화 - - Buffer size - + + Enable sweep 1 + 스위프 1 활성화 - - - MIDI - MIDI + + + Sweep amount + 스위프 양 - - MIDI interface - + + + Sweep rate + 스위프 레이트 - - Automatically assign MIDI controller to selected track - + + + 12.5% Duty cycle + 12.5% 듀티 사이클 - - LMMS working directory - LMMS 작업 경로 + + + 25% Duty cycle + 25% 듀티 사이클 - - VST plugins directory - + + + 50% Duty cycle + 50% 듀티 사이클 - - LADSPA plugins directories - + + + 75% Duty cycle + 75% 듀티 사이클 - - SF2 directory - SF2 경로 + + Enable channel 2 + 채널 2 활성화 - - Default SF2 - + + Enable envelope 2 + 엔벨로프 2 활성화 - - GIG directory - GIG 경로 + + Enable envelope 2 loop + 엔벨로프 2 루프 활성화 - - Theme directory - + + Enable sweep 2 + 스위프 2 활성화 - - Background artwork - 배경 아트워크 + + Enable channel 3 + 채널 3 활성화 - - Some changes require restarting. - + + Noise Frequency + 잡음 주파수 - - Autosave interval: %1 - + + Frequency sweep + 주파수 스위프 - - Choose the LMMS working directory - + + Enable channel 4 + 채널 4 활성화 - - Choose your VST plugins directory - + + Enable envelope 4 + 엔벨로프 4 활성화 - - Choose your LADSPA plugins directory - + + Enable envelope 4 loop + 엔벨로프 4 루프 활성화 - - Choose your default SF2 - + + Quantize noise frequency when using note frequency + 노트 주파수를 사용할 때 잡음 주파수 퀸타이즈 - - Choose your theme directory - + + Use note frequency for noise + 잡음에 노트 주파수 사용하기 - - Choose your background picture - + + Noise mode + 잡음 모드 - - - Paths - 경로 + + Master volume + 마스터 볼륨 - - OK - 확인 + + Vibrato + 비브라토 + + + lmms::gui::OpulenzInstrumentView - - Cancel - 취소 + + + Attack + 어택 - - Frames: %1 -Latency: %2 ms - 프레임: %1 -시간 지연: %2 ms + + + Decay + 디케이 - - Choose your GIG directory - GIG 경로 선택 + + + Release + 릴리즈 - - Choose your SF2 directory - SF2 경로 선택 + + + Frequency multiplier + 주파수 증폭기 + + + lmms::gui::OrganicInstrumentView - - minutes - + + Distortion: + 디스토션: - - minute - + + Volume: + 볼륨: - - Disabled - 비활성화됨 + + Randomise + 무작위화 - - - SidInstrument - - Cutoff frequency - 차단 주파수 + + + Osc %1 waveform: + Osc %1 파형: - - Resonance - 공명 + + Osc %1 volume: + Osc %1 볼륨: - - Filter type - 필터 종류 + + Osc %1 panning: + Osc %1 패닝: - - Voice 3 off - + + Osc %1 stereo detuning + Osc %1 스테레오 디튜닝 - - Volume - 음량 + + cents + 센트 - - Chip model - 칩 모델 + + Osc %1 harmonic: + Osc %1 하모닉: - SidInstrumentView + lmms::gui::Oscilloscope - - Volume: - 음량: + + Oscilloscope + 오실로스코프 - - Resonance: - 공명: + + Click to enable + 클릭하여 활성화 + + + lmms::gui::PatmanView - - - Cutoff frequency: - 차단 주파수: + + Open patch + 패치 열기 - - High-pass filter - 고역 통과 필터 + + Loop + 루프 - - Band-pass filter - 대역 통과 필터 + + Loop mode + 루프 모드 - - Low-pass filter - 저역 통과 필터 + + Tune + - - Voice 3 off - 소리 3 끄기 + + Tune mode + 튠 모드 - - MOS6581 SID - MOS6581 SID + + No file selected + 선택된 파일 없음 - - MOS8580 SID - MOS8580 SID + + Open patch file + 패치 파일 열기 - - - Attack: - + + Patch-Files (*.pat) + 패치 파일 (*.pat) + + + lmms::gui::PatternClipView - - - Decay: - 감쇠: + + Open in Pattern Editor + 패턴 편집기에서 열기 - - Sustain: - + + Reset name + 이름 재설정 - - - Release: - + + Change name + 이름 변경하기 + + + lmms::gui::PatternEditorWindow - - Pulse Width: - 펄스 폭: + + Pattern Editor + 패턴 편집기 - - Coarse: - + + Play/pause current pattern (Space) + 현재 패턴 연주하기/일시중지 (Space) - - Pulse wave - 펄스파 + + Stop playback of current pattern (Space) + 현재 패턴의 플레이백 중지하기 (Space) - - Triangle wave - 삼각파 + + Pattern selector + 패턴 선택기 - - Saw wave - 톱니파 + + Track and step actions + 트랙 및 스탭 작업 - - Noise - 잡음 + + New pattern + 새 패턴 - - Sync - 동기화 + + Clone pattern + 패턴 복제하기 - - Ring modulation - 링 모듈레이션 + + Add sample-track + 샘플-트랙 추가하기 - - Filtered - 필터 + + Add automation-track + 오토메이션-트랙 추가하기 - - Test - 테스트 + + Remove steps + 스탭 제거하기 - - Pulse width: - 펄스 폭: + + Add steps + 스탭 추가하기 - - - SideBarWidget - - Close - 닫기 + + Clone Steps + 스탭 복제하기 - Song - - - Tempo - 템포 - + lmms::gui::PeakControllerDialog - - Master volume - 마스터 음량 - - - - Master pitch - 마스터 피치 + + PEAK + 피크 - - Aborting project load - + + LFO Controller + LFO 컨트롤러 + + + lmms::gui::PeakControllerEffectControlDialog - - Project file contains local paths to plugins, which could be used to run malicious code. - + + BASE + BASE - - Can't load project: Project file contains local paths to plugins. - + + Base: + 기준: - - LMMS Error report - LMMS 오류 보고 + + AMNT + AMNT - - (repeated %1 times) - + + Modulation amount: + 모듈레이션 양: - - The following errors occurred while loading: - + + MULT + MULT - - - SongEditor - - Could not open file - 파일을 열 수 없음 + + Amount multiplicator: + 양 배율기: - - Could not open file %1. You probably have no permissions to read this file. - Please make sure to have at least read permissions to the file and try again. - 파일 %1을(를) 열 수 없습니다. 파일을 읽을 수 있는 권한이 없기 때문일 수 있습니다. 파일을 읽을 수 있는 권한이 있는지 확인 후 다시 시도하시기 바랍니다. + + ATCK + ATCK - - Operation denied - + + Attack: + 어택: - - A bundle folder with that name already eists on the selected path. Can't overwrite a project bundle. Please select a different name. - + + DCAY + DCAY - - - - Error - 오류 + + Release: + 릴리즈: - - Couldn't create bundle folder. - + + TRSH + TRSH - - Couldn't create resources folder. - + + Treshold: + 트레스홀드: - - Failed to copy resources. - + + Mute output + 출력 음소거 - - Could not write file - 파일을 쓸 수 없음 + + Absolute value + 절댓값 + + + lmms::gui::PeakIndicator - - Could not open %1 for writing. You probably are not permitted towrite to this file. Please make sure you have write-access to the file and try again. + + -inf + + + lmms::gui::PianoRoll - - This %1 was created with LMMS %2 - + + Note Velocity + 노트 벨로시티 - - Error in file - 파일 오류 + + Note Panning + 노트 패닝 - - The file %1 seems to contain errors and therefore can't be loaded. - 파일 %1에 오류가 있어 로딩에 실패하였습니다. + + Mark/unmark current semitone + 현재 반음 마킹하기/마킹해제 - - Version difference - 버전 차이 + + Mark/unmark all corresponding octave semitones + 해당하는 모든 옥타브 반음 마킹하기/마킹해제 - - template - 템플릿 + + Mark current scale + 현재 스케일 마킹하기 - - project - 프로젝트 + + Mark current chord + 현재 코드 마킹하기 - - Tempo - 템포 + + Unmark all + 모두 마킹해제 - - TEMPO - 템포 + + Select all notes on this key + 이 키의 노트 모두 선택하기 - - Tempo in BPM - 템포 (BPM 단위) + + Note lock + 노트 잠금 - - High quality mode - 고음질 모드 + + Last note + 마지막 노트 - - - - Master volume - 마스터 음량 + + No key + 키 없음 - - - - Master pitch - 마스터 피치 + + No scale + 스케일 없음 - - Value: %1% - 값: %1% + + No chord + 코드 없음 - - Value: %1 semitones - 값: %1반음 + + Nudge + 넛지 - - - SongEditorWindow - - Song-Editor - 노래 편집기 + + Snap + 스냅 - - Play song (Space) - 노래 재생 (Space) + + Velocity: %1% + 벨로시티: %1% - - Record samples from Audio-device - 오디오 장치로부터 샘플 녹음 + + Panning: %1% left + 패닝: %1% 좌측 - - Record samples from Audio-device while playing song or BB track - 노래 또는 비트/베이스 라인 트랙을 재생하는 동안 오디오 장치로부터 샘플 녹음 + + Panning: %1% right + 패닝: %1% 우측 - - Stop song (Space) - 노래 정지 (Space) + + Panning: center + 패닝: 중앙 - - Track actions - + + Glue notes failed + 노트 붙이기 실패 - - Add beat/bassline - 비트/베이스 라인 추가 + + Please select notes to glue first. + 먼저 붙여넣을 노트를 선택하세요. - - Add sample-track - 샘플 트랙 추가 + + Please open a clip by double-clicking on it! + 클립을 두 번 클릭하여 열어주세요! - - Add automation-track - 오토메이션 트랙 추가 + + + Please enter a new value between %1 and %2: + %1부터 %2까지의 값을 입력하세요: + + + lmms::gui::PianoRollWindow - - Edit actions - 편집 동작 + + Play/pause current clip (Space) + 현재 클립 연주하기/일시중지 (Space) - - Draw mode - 그리기 모드 + + Record notes from MIDI-device/channel-piano + MIDI 디바이스/채널 피아노에서 노트 녹음하기 - - Knife mode (split sample clips) - + + Record notes from MIDI-device/channel-piano while playing song or pattern track + 노래 또는 패턴 트랙을 연주하는 동안 MIDI 디바이스/채널 피아노에서 노트 녹음하기 - - Edit mode (select and move) - 편집 모드 (선택 및 이동) + + Record notes from MIDI-device/channel-piano, one step at the time + MIDI 디바이스/채널 피아노에서 한 번에 한 스탭씩 노트 녹음하기 - - Timeline controls - + + Stop playing of current clip (Space) + 현재 클립 연주 중지하기 (Space) - - Bar insert controls - + + Edit actions + 편집 작업 - - Insert bar - + + Draw mode (Shift+D) + 그리기 모드 (Shift+D) - - Remove bar - + + Erase mode (Shift+E) + 지우기 모드 (Shift+E) - - Zoom controls - + + Select mode (Shift+S) + 선택하기 모드 (Shift+S) - - Horizontal zooming - 수평 줌 + + Pitch Bend mode (Shift+T) + 피치 밴드 모드 (Shift+T) - - Snap controls - + + Quantize + 퀀타이즈 - - - Clip snapping size - + + Quantize positions + 퀀타이즈 포지션 - - Toggle proportional snap on/off - + + Quantize lengths + 퀀타이즈 길이 - - Base snapping size - + + File actions + 파일 작업 - - - StepRecorderWidget - - Hint - + + Import clip + 클립 가져오기 - - Move recording curser using <Left/Right> arrows - + + + Export clip + 클립 내보내기 - - - SubWindow - - Close - 닫기 + + Copy paste controls + 복사 붙여넣기 컨트롤 - - Maximize - 최대화 + + Cut (%1+X) + 잘라내기 (%1+X) - - Restore - 복원 + + Copy (%1+C) + 복사하기 (%1+C) - - - TabWidget - - - Settings for %1 - %1에 대한 설정 + + Paste (%1+V) + 붙여넣기 (%1+V) - - - TemplatesMenu - - New from template - 템플릿에서 새 프로젝트 생성 + + Timeline controls + 타임라인 컨트롤 - - - TempoSyncKnob - - - Tempo Sync - 템포 동기화 + + Glue + 붙이기 - - No Sync - 동기화 없음 + + Knife + 자르기 - - Eight beats - 여덟 박자 + + Fill + 채우기 - - Whole note - 온음표 + + Cut overlaps + 오버랩 잘라내기 - - Half note - 2분음표 + + Min length as last + 마지막 최소 길이 - - Quarter note - 4분음표 + + Max length as last + 마지막 최대 길이 - - 8th note - 8분음표 + + Zoom and note controls + 확대/축소 및 노트 컨트롤 - - 16th note - 16분음표 + + Horizontal zooming + 수평 주밍 - - 32nd note - 32분음표 + + Vertical zooming + 수직 주밍 - - Custom... - 사용자 지정... + + Quantization + 퀀티제이션 - - Custom - 사용자 지정 + + Note length + 노트 길이 - - Synced to Eight Beats - 여덟 박자에 동기화됨 + + Key + - - Synced to Whole Note - 온음표에 동기화됨 + + Scale + 스케일 - - Synced to Half Note - 2분음표에 동기화됨 + + Chord + 코드 - - Synced to Quarter Note - 4분음표에 동기화됨 + + Snap mode + 스냅 모드 - - Synced to 8th Note - 8분음표에 동기화됨 + + Clear ghost notes + 고스트 노트 지우기 - - Synced to 16th Note - 16분음표에 동기화됨 + + + Piano-Roll - %1 + 피아노-롤 - %1 + + + + + Piano-Roll - no clip + 피아노-롤 - 클립 없음 - - Synced to 32nd Note - 32분음표에 동기화됨 + + + XML clip file (*.xpt *.xptz) + XML 클립 파일 (*.xpt *.xptz) - - - TimeDisplayWidget - - Time units - 시간 단위 + + Export clip success + 클립 내보내기 성공 - - MIN - + + Clip saved to %1 + %1에 저장된 클립 - - SEC - + + Import clip. + 클립을 가져옵니다. - - MSEC - 밀리초 + + You are about to import a clip, this will overwrite your current clip. Do you want to continue? + 클립을 가져오려는 중이며, 사용자의 현재 클립을 덮어씁니다. 계속하시겠습니까? - - BAR - 마디 + + Open clip + 클립 열기 - - BEAT - + + Import clip success + 클립 가져오기 성공 - - TICK - + + Imported clip %1! + %1 클립을 가져왔습니다! - TimeLineWidget + lmms::gui::PianoView - - Auto scrolling - 자동 스크롤 + + Base note + 기본 노트 - - Loop points - 반복 지점 + + First note + 처음 노트 - - After stopping go back to beginning - + + Last note + 마지막 노트 + + + lmms::gui::PluginBrowser - - After stopping go back to position at which playing was started - 정지한 뒤 재생을 시작한 점으로 이동 + + Instrument Plugins + 악기 플러그인 - - After stopping keep position - 정지한 후 위치 유지 + + Instrument browser + 악기 탐색기 - - Hint - + + Drag an instrument into either the Song Editor, the Pattern Editor or an existing instrument track. + - - Press <%1> to disable magnetic loop points. - <%1> 키를 눌러 반복 지점을 자유롭게 이동할 수 있습니다. + + Search + - Track - - - Mute - 음소거 - + lmms::gui::PluginDescWidget - - Solo - 독주 + + Send to new instrument track + 새 악기 트랙으로 전송하기 - TrackContainer + lmms::gui::ProjectNotes - - Couldn't import file - 파일을 가져올 수 없음 + + Project Notes + 프로젝트 노트 - - Couldn't find a filter for importing file %1. -You should convert this file into a format supported by LMMS using another software. - 파일 %1을(를) 가져오기 위한 필터를 찾을 수 없습니다. -이 파일을 가져오려면 다른 프로그램을 사용하여 LMMS가 지원하는 포맷으로 변환하시기 바랍니다. + + Enter project notes here + 여기에 프로젝트 노트를 입력하세요 - - Couldn't open file - 파일을 열 수 없음 + + Edit Actions + 편집 작업 - - Couldn't open file %1 for reading. -Please make sure you have read-permission to the file and the directory containing the file and try again! - 파일 %1을(를) 읽기 열 수 없습니다. 파일을 읽을 수 있는 권한이 있는지 확인 후 다시 시도하시기 바랍니다! + + &Undo + 실행 취소(&U) - - Loading project... - 프로젝트 로딩 중... + + %1+Z + %1+Z - - - Cancel - 취소 + + &Redo + 다시 실행(&R) - - - Please wait... - 잠시만 기다려 주세요... + + %1+Y + %1+Y - - Loading cancelled - 로딩 취소됨 + + &Copy + 복사(&C) - - Project loading was cancelled. - 프로젝트 로딩이 취소되었습니다. + + %1+C + %1+C - - Loading Track %1 (%2/Total %3) - 트랙 %1 로딩 중 (%2/총 %3) + + Cu&t + 잘라내기(&T) - - Importing MIDI-file... - MIDI 파일을 가져오는중... + + %1+X + %1+X - - - Clip - - Mute - 음소거 + + &Paste + 붙여넣기(&P) - - - ClipView - - Current position - 현재 위치 + + %1+V + %1+V - - Current length - 현재 길이 + + Format Actions + 포멧 작업 - - - %1:%2 (%3:%4 to %5:%6) - %1:%2 (%3:%4부터 %5:%6까지) + + &Bold + 볼드체(&B) - - Press <%1> and drag to make a copy. - <%1> 키를 누른 채 드래그하여 복사합니다. + + %1+B + %1+B - - Press <%1> for free resizing. - <%1> 키를 눌러 크기를 자유롭게 조절할 수 있습니다. + + &Italic + 기울임꼴(&I) - - Hint - + + %1+I + %1+I - - Delete (middle mousebutton) - 삭제(마우스 가운데 버튼) + + &Underline + 밑줄(&U) - - Delete selection (middle mousebutton) - + + %1+U + %1+U - - Cut - 잘라내기 + + &Left + 왼쪽 정렬(&L) - - Cut selection - + + %1+L + %1+L - - Merge Selection - + + C&enter + 가운데 정렬(&E) - - Copy - 복사 + + %1+E + %1+E - - Copy selection - + + &Right + 오른쪽 정렬(&R) - - Paste - 붙여넣기 + + %1+R + %1+R - - Mute/unmute (<%1> + middle click) - 음소거/해제 (<%1> + 마우스 가운데 버튼) + + &Justify + 양쪽 정렬(&J) - - Mute/unmute selection (<%1> + middle click) - + + %1+J + %1+J - - Set clip color - + + &Color... + 색상(&C)... + + + lmms::gui::RecentProjectsMenu - - Use track color - + + &Recently Opened Projects + 최근에 열린 프로젝트(&R) - TrackContentWidget + lmms::gui::RenameDialog - - Paste - 붙여넣기 + + Rename... + 이름변경... - TrackOperationsWidget + lmms::gui::ReverbSCControlDialog - - Press <%1> while clicking on move-grip to begin a new drag'n'drop action. - + + Input + 입력 - - Actions - 동작 + + Input gain: + 입력 게인: - - - Mute - 음소거 + + Size + 크기 - - - Solo - 독주 + + Size: + 크기: - - After removing a track, it can not be recovered. Are you sure you want to remove track "%1"? - + + Color + 색상 - - Confirm removal - + + Color: + 색상: - - Don't ask again - + + Output + 출력 - - Clone this track - 트랙 복제 + + Output gain: + 출력 게인: + + + lmms::gui::SaControlsDialog - - Remove this track - 트랙 제거 + + Pause + 일시정지 - - Clear this track - 트랙 초기화 + + Pause data acquisition + 데이터 수집 일시정지 - - Channel %1: %2 - FX %1: %2 + + Reference freeze + 레퍼런스 프리즈 - - Assign to new mixer Channel - 새 FX 채널 할당 + + Freeze current input as a reference / disable falloff in peak-hold mode. + 현재 입력을 레퍼런스로 프리즈 / 피크 홀드 모드에서 폴오프를 비활성화합니다. - - Turn all recording on - + + Waterfall + 워터폴 - - Turn all recording off - + + Display real-time spectrogram + 실시간 스펙트로그램 화면표시 - - Change color - 색상 바꾸기 + + Averaging + 애버리징 - - Reset color to default - 색상을 기본값으로 되돌리기 + + Enable exponential moving average + 지수 이동 평균 활성화 - - Set random color - + + Stereo + 스테레오 - - Clear clip colors - + + Display stereo channels separately + 스테레오 채널 따로따로 화면표시 - - - TripleOscillatorView - - Modulate phase of oscillator 1 by oscillator 2 - + + Peak hold + 피크 홀드 - - Modulate amplitude of oscillator 1 by oscillator 2 - + + Display envelope of peak values + 피크 값의 엔벨로프 화면표시 - - Mix output of oscillators 1 & 2 - + + Logarithmic frequency + 로가리듬 주파수 - - Synchronize oscillator 1 with oscillator 2 - + + Switch between logarithmic and linear frequency scale + 로가리듬 및 리니어 주파수 스케일 간 전환하기 - - Modulate frequency of oscillator 1 by oscillator 2 - + + + Frequency range + 주파수 범위 + + + + Logarithmic amplitude + 로가리듬 진폭 + + + + Switch between logarithmic and linear amplitude scale + 로가리듬 및 리니어 진폭 스케일 간 전환하기 - - Modulate phase of oscillator 2 by oscillator 3 - + + + Amplitude range + 진폭 범위 - - Modulate amplitude of oscillator 2 by oscillator 3 - + + + FFT block size + FFT 블록 크기 - - Mix output of oscillators 2 & 3 - + + + FFT window type + FFT 창 유형 - - Synchronize oscillator 2 with oscillator 3 - + + Envelope res. + 엔벨로프 res. - - Modulate frequency of oscillator 2 by oscillator 3 - + + Increase envelope resolution for better details, decrease for better GUI performance. + 더 나은 세부 정보를 위해 엔벨로프 레졸루션을 높이고 더 나은 GUI 퍼포먼스를 위해 감소시킵니다. - - Osc %1 volume: - 오실레이터 %1 음량: + + Maximum number of envelope points drawn per pixel: + 픽셀당 그려지는 엔벨로프 포인트의 최대 개수: - - Osc %1 panning: - 오실레이터 %1 패닝: + + Spectrum res. + 스펙트럼 res. - - Osc %1 coarse detuning: - + + Increase spectrum resolution for better details, decrease for better GUI performance. + 더 나은 세부 사항을 위해 스펙트럼 레졸루션을 높이고 더 나은 GUI 퍼포먼스를 위해 감소시킵니다. - - semitones - 반음 + + Maximum number of spectrum points drawn per pixel: + 픽셀당 그려지는 스펙트럼 포인트의 최대 개수: - - Osc %1 fine detuning left: - + + Falloff factor + 폴오프 인수 - - - cents - 센트 + + Decrease to make peaks fall faster. + 피크가 더 빨리 떨어지도록 하려면 감소시킵니다. - - Osc %1 fine detuning right: - + + Multiply buffered value by + 버퍼링된 값을 곱한 값 - - Osc %1 phase-offset: - + + Averaging weight + 애버리징 위젯 - - - degrees - + + Decrease to make averaging slower and smoother. + 애버리징을 더 느리고 부드럽게 하려면 값을 줄입니다. - - Osc %1 stereo phase-detuning: - + + New sample contributes + 새 샘플 기여하기 - - Sine wave - 사인파 + + Waterfall height + 워터폴 높이 - - Triangle wave - 삼각파 + + Increase to get slower scrolling, decrease to see fast transitions better. Warning: medium CPU usage. + 스크롤 속도를 낮추려면 늘리고, 빠른 트랜지션을 더 잘 보려면 감소시킵니다. 경고: CPU 사용량이 중간입니다. - - Saw wave - 톱니파 + + Number of lines to keep: + 유지할 줄 수: - - Square wave - 사각파 + + Waterfall gamma + 워터폴 감마 - - Moog-like saw wave - Moog 톱니파 + + Decrease to see very weak signals, increase to get better contrast. + 매우 약한 신호를 보려면 줄이고, 더 나은 대비를 얻으려면 늘리세요. - - Exponential wave - 지수형 파형 + + Gamma value: + 감마 값: - - White noise - 화이트 노이즈 + + Window overlap + 창 오버랩 - - User-defined wave - 사용자 정의 파형 + + Increase to prevent missing fast transitions arriving near FFT window edges. Warning: high CPU usage. + FFT 창 모서리 근처에 도착하는 누락된 빠른 트랜지션을 방지하려면 늘립니다. 경고: CPU 사용량이 높습니다. - - - VecControls - - Display persistence amount - + + Number of times each sample is processed: + 각 샘플이 처리된 횟수: - - Logarithmic scale - + + Zero padding + 제로 패딩 - - High quality - + + Increase to get smoother-looking spectrum. Warning: high CPU usage. + 스펙트럼을 더 부드럽게 보이게 하려면 증가시킵니다. 경고: CPU 사용량이 높습니다. - - - VecControlsDialog - - HQ - + + Processing buffer is + 프로세싱 버퍼는 - - Double the resolution and simulate continuous analog-like trace. - + + steps larger than input block + 입력 블록보다 더 큰 스탭 - - Log. scale - + + Advanced settings + 고급 설정 - - Display amplitude on logarithmic scale to better see small values. - + + Access advanced settings + 고급 설정 접근 + + + lmms::gui::SampleClipView - - Persist. - + + Double-click to open sample + 두 번 클릭하여 샘플 열기 - - Trace persistence: higher amount means the trace will stay bright for longer time. - + + Reverse sample + 리버스 샘플 - - Trace persistence + + Set as ghost in automation editor - VersionedSaveDialog + lmms::gui::SampleTrackView - - Increment version number - 버전 증가 + + Mixer channel + - - Decrement version number - 버전 감소 + + Track volume + 트랙 볼륨 - - Save Options - + + Channel volume: + 채널 볼륨: - - already exists. Do you want to replace it? - 이(가) 이미 존재합니다. 덮어쓰시겠습니까? + + VOL + 볼륨 - - - VestigeInstrumentView - - - Open VST plugin - VST 플러그인 열기 + + Panning + 패닝 - - Control VST plugin from LMMS host - LMMS에서 VST 플러그인 제어 + + Panning: + 패닝: - - Open VST plugin preset - VST 플러그인 프리셋 열기 + + PAN + 패닝 - - Previous (-) - 이전 (-) + + %1: %2 + %1: %2 + + + lmms::gui::SampleTrackWindow - - Save preset - 프리셋 저장 + + Sample volume + 샘플 볼륨 - - Next (+) - 다음 (+) + + Volume: + 볼륨: - - Show/hide GUI - GUI 보이기/숨기기 + + VOL + 볼륨 - - Turn off all notes - 모든 음 끄기 + + Panning + 패닝 - - DLL-files (*.dll) - DLL 파일 (*.dll) + + Panning: + 패닝: - - EXE-files (*.exe) - EXE 파일 (*.exe) + + PAN + 패닝 - - No VST plugin loaded - VST 플러그인이 로딩되지 않음 + + Mixer channel + 믹서 채널 - - Preset - 프리셋 + + CHANNEL + 채널 + + + lmms::gui::SaveOptionsWidget - - by - + + Discard MIDI connections + MIDI 연결 끊기 - - - VST plugin control - + + Save As Project Bundle (with resources) + 프로젝트 번들로 저장하기 (리소스 포함) - VstEffectControlDialog + lmms::gui::SetupDialog - - Show/hide - 보이기/숨기기 + + Settings + 설정 - - Control VST plugin from LMMS host - LMMS에서 VST 플러그인 제어 + + + General + 일반 - - Open VST plugin preset - VST-플러그인 프리셋 열기 + + Graphical user interface (GUI) + 그래픽 사용자 인터페이스 (GUI) - - Previous (-) - 이전 (-) + + Display volume as dBFS + 볼륨을 dBFS 단위로 화면표시 - - Next (+) - 다음 (+) + + Enable tooltips + 툴팁 활성화 - - Save preset - 프리셋 저장 + + Enable master oscilloscope by default + 기본적으로 마스터 오실로스코프 활성화 - - - Effect by: - + + Enable all note labels in piano roll + 피아노 롤의 모든 노트 레이블 활성화 - - &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> - &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> + + Enable compact track buttons + 콤팩트 트랙 버튼 활성화 - - - VstPlugin - - - The VST plugin %1 could not be loaded. - VST 플러그인 %1을 불러올 수 없습니다. + + Enable one instrument-track-window mode + 하나의 악기 트랙 창 모드 활성화 - - Open Preset - 프리셋 열기 + + Show sidebar on the right-hand side + 우측면에 사이드바 표시하기 - - - Vst Plugin Preset (*.fxp *.fxb) - VST 플러그인 프리셋 (*.fxp *.fxb) + + Let sample previews continue when mouse is released + 마우스를 놓으면 샘플 미리보기를 계속할 수 있습니다 - - : default + + Mute automation tracks during solo + 솔로 연주 중 오토메이션 트랙 음소거 + + + + Show warning when deleting tracks + 트랙 삭제 시 경고 표시하기 + + + + Show warning when deleting a mixer channel that is in use - - Save Preset - 프리셋 저장 + + Dual-button + - - .fxp - .fxp + + Grab closest + - - .FXP - .FXP + + Handles + - - .FXB - .FXB + + Loop edit mode + - - .fxb - .fxb + + Projects + 프로젝트 - - Loading plugin - 플러그인 읽는 중 + + Compress project files by default + 기본적으로 프로젝트 파일 압축 - - Please wait while loading VST plugin... - VST 플러그인을 읽을 동안 잠시 기다려 주세요... + + Create a backup file when saving a project + 프로젝트를 저장할 때 백업 파일 만들기 - - - WatsynInstrument - - Volume A1 - A1 음량 + + Reopen last project on startup + 시작 시 마지막 프로젝트 다시 열기 - - Volume A2 - A2 음량 + + Language + 언어 - - Volume B1 - B1 음량 + + + Performance + 퍼포먼스 - - Volume B2 - B2 음량 + + Autosave + 자동저장 - - Panning A1 - A1 패닝 + + Enable autosave + 자동저장 활성화 - - Panning A2 - A2 패닝 + + Allow autosave while playing + 연주 중 자동저장 허용하기 - - Panning B1 - B1 패닝 + + User interface (UI) effects vs. performance + 사용자 인터페이스(UI) 이펙트 대 퍼포먼스 - - Panning B2 - B2 패닝 + + Smooth scroll in song editor + 노래 편집기에서 부드러운 스크롤 - - Freq. multiplier A1 - + + Display playback cursor in AudioFileProcessor + AudioFileProcessor에 플레이백 커서 화면표시 - - Freq. multiplier A2 - + + Plugins + 플러그인 - - Freq. multiplier B1 - + + VST plugins embedding: + VST 플러그인 포함됨: - - Freq. multiplier B2 - + + No embedding + 임베딩 없음 - - Left detune A1 - + + Embed using Qt API + Qt API를 사용하여 포함하기 - - Left detune A2 - + + Embed using native Win32 API + 기본 내장 Win32 API를 사용하여 포함하기 - - Left detune B1 - + + Embed using XEmbed protocol + XEMbed 프로토콜을 사용하여 포함하기 - - Left detune B2 - + + Keep plugin windows on top when not embedded + 포함되지 않은 경우 플러그인 창을 맨 위에 유지하기 - - Right detune A1 - + + Keep effects running even without input + 입력 없이도 이펙트 실행 유지하기 - - Right detune A2 - + + + Audio + 오디오 - - Right detune B1 - + + Audio interface + 오디오 인터페이스 - - Right detune B2 - + + Buffer size + 버퍼 크기 - - A-B Mix - + + Reset to default value + 기본 값으로 재설정 - - A-B Mix envelope amount - + + + MIDI + MIDI - - A-B Mix envelope attack - + + MIDI interface + MIDI 인터페이스 - - A-B Mix envelope hold - + + Automatically assign MIDI controller to selected track + 선택한 트랙에 MIDI 컨트롤러 자동적으로 할당 - - A-B Mix envelope decay + + Behavior when recording - - A1-B2 Crosstalk + + Auto-quantize notes in Piano Roll - - A2-A1 modulation + + If enabled, notes will be automatically quantized when recording them from a MIDI controller. If disabled, they are always recorded at the highest possible resolution. - - B2-B1 modulation - + + + Paths + 경로 - - Selected graph - 선택된 그래프 + + LMMS working directory + LMMS 작업 디렉터리 - - - WatsynView - - - - - Volume - 음량 + + VST plugins directory + VST 플러그인 디렉터리 - - - - - Panning - 패닝 + + LADSPA plugins directories + LADSPA 플러그인 디렉터리 - - - - - Freq. multiplier - + + SF2 directory + SF2 디렉터리 - - - - - Left detune - + + Default SF2 + 기본 SF2 - - - - - - - - - cents - 센트 + + GIG directory + GIG 디렉터리 - - - - - Right detune - + + Theme directory + 테마 디렉터리 - - A-B Mix - + + Background artwork + 배경 아트워크 - - Mix envelope amount - + + Some changes require restarting. + 일부 변경사항은 다시 시작해야 합니다. - - Mix envelope attack - + + OK + 확인 - - Mix envelope hold - + + Cancel + 취소 - - Mix envelope decay - + + minutes + - - Crosstalk - + + minute + - - Select oscillator A1 - + + Disabled + 비활성화됨 - - Select oscillator A2 - + + Autosave interval: %1 + 자동저장 간격: %1 - - Select oscillator B1 + + The currently selected value is not a power of 2 (32, 64, 128, 256). Some plugins may not be available. - - Select oscillator B2 + + The currently selected value is less than or equal to 32. Some plugins may not be available. - - Mix output of A2 to A1 - + + Frames: %1 +Latency: %2 ms + 프레임: %1 +레이턴시: %2 ms - - Modulate amplitude of A1 by output of A2 - + + Choose the LMMS working directory + LMMS 작업 디렉터리 고르기 - - Ring modulate A1 and A2 - + + Choose your VST plugins directory + 사용자의 VST 플러그인 디렉터리 고르기 - - Modulate phase of A1 by output of A2 - + + Choose your LADSPA plugins directory + 사용자의 LADSPA 플러그인 디렉터리 고르기 - - Mix output of B2 to B1 - + + Choose your SF2 directory + 사용자의 SF2 디렉터리 고르기 - - Modulate amplitude of B1 by output of B2 - + + Choose your default SF2 + 사용자의 기본 SF2 고르기 - - Ring modulate B1 and B2 - + + Choose your GIG directory + 사용자의 GIG 디렉터리 고르기 - - Modulate phase of B1 by output of B2 - + + Choose your theme directory + 사용자의 테마 디렉터리 고르기 - - - - - Draw your own waveform here by dragging your mouse on this graph. - 드래그하여 원하는 파형을 그리세요. + + Choose your background picture + 사용자의 배경 사진 고르기 + + + lmms::gui::Sf2InstrumentView - - Load waveform - 파형 불러오기 + + + Open SoundFont file + 사운드폰트 파일 열기 - - Load a waveform from a sample file - 샘플 파일에서 파형 가져오기 + + Choose patch + 패치 고르기 - - Phase left - 왼쪽 위상 + + Gain: + 게인: - - Shift phase by -15 degrees - 위상을 -15도만큼 바꾸기 + + Apply reverb (if supported) + 리버브 적용 (지원될 경우) - - Phase right - 오른쪽 위상 + + Room size: + 공간 크기: - - Shift phase by +15 degrees - 위상을 +15도만큼 바꾸기 + + Damping: + 진폭 감소: - - - Normalize - 일반화 + + Width: + 폭: - - - Invert - 파형 반전 + + + Level: + 레벨: - - - Smooth - 부드럽게 + + Apply chorus (if supported) + 코러스 적용 (지원될 경우) - - - Sine wave - 사인파 + + Voices: + 보이스: - - - - Triangle wave - 삼각파 + + Speed: + 속도: - - Saw wave - 톱니파 + + Depth: + 깊이: - - - Square wave - 사각파 + + SoundFont Files (*.sf2 *.sf3) + 사운드폰트 파일 (*.sf2 *.sf3) - Xpressive + lmms::gui::SidInstrumentView - - Selected graph - 선택된 그래프 + + Volume: + 볼륨: - - A1 - A1 + + Resonance: + 공명: - - A2 - A2 + + + Cutoff frequency: + 컷오프 주파수: - - A3 - A3 + + High-pass filter + 하이패스 필터 - - W1 smoothing - + + Band-pass filter + 밴드패스 필터 - - W2 smoothing - + + Low-pass filter + 로패스 필터 - - W3 smoothing - + + Voice 3 off + 보이스 3 끔 - - Panning 1 - 패닝 1 + + MOS6581 SID + MOS6581 SID - - Panning 2 - 패닝 2 + + MOS8580 SID + MOS8580 SID - - Rel trans - + + + Attack: + 어택: - - - XpressiveView - - Draw your own waveform here by dragging your mouse on this graph. - 드래그하여 원하는 파형을 그리세요. + + + Decay: + 디케이: - - Select oscillator W1 - 오실레이터 W1 선택 + + Sustain: + 서스테인: - - Select oscillator W2 - 오실레이터 W2 선택 + + + Release: + 릴리즈: - - Select oscillator W3 - 오실레이터 W3 선택 + + Pulse Width: + 펄스 폭: - - Select output O1 - 출력 O1 선택 + + Coarse: + 코어스: - - Select output O2 - 출력 O2 선택 + + Pulse wave + 펄스파 - - Open help window - 도움말 창 열기 + + Triangle wave + 삼각파 - - - Sine wave - 사인파 + + Saw wave + 톱니파 - - - Moog-saw wave - Moog 톱니파 + + Noise + 잡음 - - - Exponential wave - 지수형 파형 + + Sync + 싱크 - - - Saw wave - 톱니파 + + Ring modulation + 종소리 모듈레이션 - - - User-defined wave - 사용자 정의 파형 + + Filtered + 필터링됨 - - - Triangle wave - 삼각파 + + Test + 테스트 - - - Square wave - 사각파 + + Pulse width: + 펄스 폭: + + + lmms::gui::SideBarWidget - - - White noise - 화이트 노이즈 + + Close + 닫기 + + + lmms::gui::SlicerTView - - WaveInterpolate + + Slice snap - - ExpressionValid + + Set slice snapping for detection - - General purpose 1: + + Sync sample - - General purpose 2: + + Enable BPM sync - - General purpose 3: + + Original sample BPM - - O1 panning: + + Threshold used for slicing - - O2 panning: + + Fade Out per note in milliseconds - - Release transition: + + Copy midi pattern to clipboard - - Smoothness + + Open sample selector - - - ZynAddSubFxInstrument - - - Portamento - 포르타멘토 - - - Filter frequency - 필터 주파수 + + Reset slices + - - Filter resonance - 필터 공명 + + Threshold + - - Bandwidth - 대역폭 + + Fade Out + - - FM gain - FM 이득 + + Reset + - - Resonance center frequency - 공명 중심 주파수 + + Midi + - - Resonance bandwidth - 공명 대역폭 + + BPM + - - Forward MIDI control change events - MIDI CC 이벤트 전달 + + Snap + - ZynAddSubFxView + lmms::gui::SlicerTWaveform - - Portamento: - 포르타멘토: + + Click to load sample + + + + lmms::gui::SongEditor - - PORT - 포르타멘토 + + Could not open file + 파일을 열 수 없음 - - Filter frequency: - 필터 주파수: + + Could not open file %1. You probably have no permissions to read this file. + Please make sure to have at least read permissions to the file and try again. + %1 파일을 열 수 없습니다. 이 파일을 읽을 수 있는 권한이 없는 것 같습니다. +최소한 파일에 대한 읽기 권한이 있는지 확인하고 다시 시도하십시오. - - FREQ - 주파수 + + Operation denied + 오퍼레이션 거부됨 - - Filter resonance: - 필터 공명: + + A bundle folder with that name already eists on the selected path. Can't overwrite a project bundle. Please select a different name. + 선택한 경로에 해당 이름의 번들 폴더가 이미 존재합니다. 프로젝트 번들을 덮어쓸 수 없습니다. 다른 이름을 선택하세요. - - RES - 공명 + + + + Error + 오류 - - Bandwidth: - 대역폭: + + Couldn't create bundle folder. + 번들 폴더를 만들 수 없습니다. - - BW - 대역폭 + + Couldn't create resources folder. + 리소스 폴더를 만들 수 없습니다. - - FM gain: - FM 이득: + + Failed to copy resources. + 리소스를 복사하지 못했습니다. - - FM GAIN - FM 이득 + + + Could not write file + 파일을 쓸 수 없음 - - Resonance center frequency: - 공명 중심 주파수: + + Could not open %1 for writing. You probably are not permitted to write to this file. Please make sure you have write-access to the file and try again. + - - RES CF + + An unknown error has occurred and the file could not be saved. - - Resonance bandwidth: - 공명 대역폭: + + Error in file + 파일에서 오류 발생 - - RES BW - + + The file %1 seems to contain errors and therefore can't be loaded. + %1 파일에 오류가 있는 것 같으므로 불러올 수 없습니다. - - Forward MIDI control changes - MIDI CC 이벤트 전달 + + template + 템플릿 - - Show GUI - GUI 표시 + + project + 프로젝트 - - - AudioFileProcessor - - Amplify - 증폭 + + Version difference + 버전 차이 - - Start of sample - 샘플 시작 + + This %1 was created with LMMS %2 + 이 %1은(는) LMMS %2(으)로 만들어졌습니다 - - End of sample - 샘플 끝 + + Zoom + 확대/축소 - - Loopback point - 루프 시작점 + + Tempo + 템포 - - Reverse sample - 샘플 역으로 + + TEMPO + 템포 - - Loop mode - 루프 모드 + + Tempo in BPM + 템포 (BPM 단위) - - Stutter - + + + + Master volume + 마스터 볼륨 - - Interpolation mode - 보간법 + + + + Global transposition + 전역 트랜스포지션 - - None - 없음 + + 1/%1 Bar + 1/%1 마디 - - Linear - 선형 + + %1 Bars + %1 마디 - - Sinc - Sinc + + Value: %1% + 값: %1% - - Sample not found: %1 - 샘플 %1을 찾을 수 없음 + + Value: %1 keys + 값: %1% 키 - BitInvader + lmms::gui::SongEditorWindow - - Sample length - 샘플 길이 + + Song-Editor + 노래 편집기 - - - BitInvaderView - - Sample length - 샘플 길이 + + Play song (Space) + 노래 연주하기 (Space) - - Draw your own waveform here by dragging your mouse on this graph. - 드래그하여 원하는 파형을 그리세요. + + Record samples from Audio-device + 오디오 디바이스에서 샘플 녹음하기 - - - Sine wave - 사인파 + + Record samples from Audio-device while playing song or pattern track + 노래 또는 패턴 트랙을 연주하는 동안 오디오 디바이스에서 샘플 녹음하기 - - - Triangle wave - 삼각파 + + Stop song (Space) + 노래 중지하기 (Space) - - - Saw wave - 톱니파 + + Track actions + 트랙 작업 - - - Square wave - 사각파 + + Add pattern-track + 패턴-트랙 추가하기 - - - White noise - 화이트 노이즈 + + Add sample-track + 샘플-트랙 추가하기 - - - User-defined wave - 사용자 정의 파형 + + Add automation-track + 오토메이션-트랙 추가하기 - - - Smooth waveform - 파형을 부드럽게 + + Edit actions + 편집 작업 - - Interpolation - 보간 + + Draw mode + 그리기 모드 - - Normalize - 규격화 + + Knife mode (split sample clips) + 자르기 모드 (샘플 클립 분할) - - - DynProcControlDialog - - INPUT - 입력 + + Edit mode (select and move) + 편집 모드 (선택 및 이동) - - Input gain: - 입력 이득: + + Timeline controls + 타임라인 컨트롤 - - OUTPUT - 출력 + + Bar insert controls + 마디 삽입 컨트롤 + + + + Insert bar + 마디 삽입 + + + + Remove bar + 마디 제거하기 + + + + Zoom controls + 확대/축소 컨트롤 + + + + + Zoom + 확대/축소 - - Output gain: - 출력 이득: + + Snap controls + 스냅 컨트롤 - - ATTACK - + + + Clip snapping size + 클립 스내핑 크기 - - Peak attack time: - + + Toggle proportional snap on/off + 비례 스냅 켬/끔 전환하기 - - RELEASE - + + Base snapping size + 베이스 스내핑 크기 + + + lmms::gui::StepRecorderWidget - - Peak release time: - + + Hint + 힌트 - - - Reset wavegraph - 그래프 초기화 + + Move recording curser using <Left/Right> arrows + <좌/우> 방향키를 사용하여 녹음 커서 이동하기 + + + lmms::gui::StereoEnhancerControlDialog - - - Smooth wavegraph - 그래프를 부드럽게 + + WIDTH + - - - Increase wavegraph amplitude by 1 dB - + + Width: + 폭: + + + lmms::gui::StereoMatrixControlDialog - - - Decrease wavegraph amplitude by 1 dB - + + Left to Left Vol: + 좌측 → 좌측 볼륨: - - Stereo mode: maximum - 스테레오 모드: 최댓값 + + Left to Right Vol: + 좌측 → 우측 볼륨: - - Process based on the maximum of both stereo channels - 두 채널의 최댓값을 기준으로 효과 적용 + + Right to Left Vol: + 우측 → 좌측 볼륨: - - Stereo mode: average - 스테레오 모드: 평균 + + Right to Right Vol: + 우측 → 우측 볼륨: + + + lmms::gui::SubWindow - - Process based on the average of both stereo channels - 두 채널의 평균을 기준으로 효과 적용 + + Close + 닫기 - - Stereo mode: unlinked - 스테레오 모드: 독립 + + Maximize + 최대화 - - Process each stereo channel independently - 각각의 채널에 독립적으로 효과 적용 + + Restore + 복원 - DynProcControls - - - Input gain - 입력 이득 - + lmms::gui::TapTempoView - - Output gain - 출력 이득 + + 0 + 0 - - Attack time + + + Precision - - Release time + + Display in high precision - - Stereo mode - 스테레오 모드 + + 0.0 ms + 0.0 ms - - - graphModel - - Graph - 그래프 + + Mute metronome + 메트로놈 음소거 - - - KickerInstrument - - Start frequency - 시작 주파수 + + Mute + 음소거 - - End frequency - 끝 주파수 + + BPM in milliseconds + - - Length - 길이 + + 0 ms + 0 ms - - Start distortion + + Frequency of BPM - - End distortion - + + 0.0000 hz + 0.0000 hz - - Gain - 이득 + + Reset + 재설정 - - Envelope slope + + Reset counter and sidebar information - - Noise - 잡음 + + Sync + - - Click + + Sync with project tempo - - Frequency slope - + + %1 ms + %1 ms - - Start from note - 음표 주파수에서 시작 + + %1 hz + %1 hz + + + lmms::gui::TemplatesMenu - - End to note - 음표 주파수에서 마침 + + New from template + 템플릿에서 새 프로젝트 생성 - KickerInstrumentView + lmms::gui::TempoSyncBarModelEditor - - Start frequency: - 시작 주파수: + + + Tempo Sync + - - End frequency: - 끝 주파수: + + No Sync + - - Frequency slope: + + Eight beats - - Gain: - 이득: + + Whole note + - - Envelope length: + + Half note - - Envelope slope: + + Quarter note - - Click: + + 8th note - - Noise: - 잡음: + + 16th note + - - Start distortion: + + 32nd note - - End distortion: + + Custom... - - - LadspaBrowserView - - - Available Effects - 사용 가능한 효과 + + Custom + - - - Unavailable Effects - 사용 불가능한 효과 + + Synced to Eight Beats + - - - Instruments - 악기 + + Synced to Whole Note + - - - Analysis Tools - 분석 도구 + + Synced to Half Note + - - - Don't know - 알 수 없음 + + Synced to Quarter Note + - - Type: - 형태: + + Synced to 8th Note + - - - LadspaDescription - - Plugins - 플러그인 + + Synced to 16th Note + - - Description - 요약 + + Synced to 32nd Note + - LadspaPortDialog + lmms::gui::TempoSyncKnob - - Ports - 포트 + + + Tempo Sync + 템포 싱크 - - Name - 이름 + + No Sync + 싱크 없음 - - Rate - 종류 + + Eight beats + 8비트 - - Direction - 방향 + + Whole note + 온음표 - - Type - 형태 + + Half note + 2분음표 - - Min < Default < Max - 최소 < 기본 < 최대 + + Quarter note + 4분음표 - - Logarithmic - 로그 + + 8th note + 8분음표 - - SR Dependent - SR 의존 + + 16th note + 16분음표 - - Audio - 오디오 + + 32nd note + 32분음표 - - Control - 컨트롤 + + Custom... + 사용자 지정... - - Input - 입력 + + Custom + 사용자 지정 - - Output - 출력 + + Synced to Eight Beats + 8비트와 싱크됨 - - Toggled - 토글 + + Synced to Whole Note + 온음표에 싱크됨 - - Integer - 정수 + + Synced to Half Note + 2분음표에 싱크됨 - - Float - 실수 + + Synced to Quarter Note + 4분음표에 싱크됨 - - - Yes - + + Synced to 8th Note + 8분음표에 싱크됨 + + + + Synced to 16th Note + 16분음표에 싱크됨 + + + + Synced to 32nd Note + 32분음표에 싱크됨 - Lb302Synth + lmms::gui::TimeDisplayWidget - - VCF Cutoff Frequency - VCF 차단 주파수 + + Time units + 시간 구성 단위 - - VCF Resonance - VCF 공명 + + MIN + - - VCF Envelope Mod - VCF 엔벨로프 모드 + + SEC + + + + + MSEC + 밀리초 + + + + BAR + 마디 - - VCF Envelope Decay - VCF 엔벨로프 감쇠 + + BEAT + 비트 - - Distortion - 디스토션 + + TICK + + + + lmms::gui::TimeLineWidget - - Waveform - 파형 + + Auto scrolling + 자동 스크롤링 - - Slide Decay - 슬라이드 감소 + + Stepped auto scrolling + - - Slide - 슬라이드 + + Continuous auto scrolling + - - Accent + + Auto scrolling disabled - - Dead - + + Loop points + 루프 포인트 - - 24dB/oct Filter - 24dB/oct 필터 + + After stopping go back to beginning + 중지한 후 처음으로 돌아가기 - - - Lb302SynthView - - Cutoff Freq: - 차단 주파수: + + After stopping go back to position at which playing was started + 중지한 후 연주가 시작된 위치로 돌아가기 - - Resonance: - 공명: + + After stopping keep position + 중지한 후 위치 유지하기 - - Env Mod: - 엔벨로프 변조: + + Hint + 힌트 - - Decay: - 감쇠: + + Press <%1> to disable magnetic loop points. + 마그네틱 루프 포인트를 비활성화하려면 <%1> 키를 누릅니다. - - 303-es-que, 24dB/octave, 3 pole filter + + Set loop begin here - - Slide Decay: - 슬라이드 감쇠: + + Set loop end here + - - DIST: - 디스토션: + + Loop edit mode (hold shift) + - - Saw wave - 톱니파 + + Dual-button + - - Click here for a saw-wave. - 클릭하여 톱니파를 선택합니다. + + Grab closest + - - Triangle wave - 삼각파 + + Handles + + + + lmms::gui::TrackContentWidget - - Click here for a triangle-wave. - 클릭하여 삼각파를 선택합니다. + + Paste + 붙여넣기 + + + lmms::gui::TrackOperationsWidget - - Square wave - 사각파 + + Press <%1> while clicking on move-grip to begin a new drag'n'drop action. + 이동 그립을 클릭한 상태에서 <%1> 키를 누르면 새 드래그 앤 드롭 동작이 시작됩니다. - - Click here for a square-wave. - 클릭하여 사각파를 선택합니다. + + Actions + 작업 - - Rounded square wave - 둥근 사각파 + + + Mute + 음소거 - - Click here for a square-wave with a rounded end. - 클릭하여 둥근 사각파를 선택합니다. + + + Solo + 솔로 연주 - - Moog wave - Moog 톱니파 + + After removing a track, it can not be recovered. Are you sure you want to remove track "%1"? + 트랙을 삭제하면 되돌릴 수 없습니다. 정말 "%1" 트랙을 삭제하시겠습니까? - - Click here for a moog-like wave. - 클릭하여 Moog 톱니파를 선택합니다. + + Confirm removal + 제거 확인 - - Sine wave - 사인파 + + Don't ask again + 다시 묻지 않음 - - Click for a sine-wave. - 클릭하여 사인파를 선택합니다. + + Clone this track + 이 트랙 복제하기 - - - White noise wave - 화이트 노이즈 + + Remove this track + 이 트랙 제거하기 - - Click here for an exponential wave. - 클릭하여 지수형 파형을 선택합니다. + + Clear this track + 이 트랙 지우기 - - Click here for white-noise. - 클릭하여 화이트 노이즈를 선택합니다. + + Channel %1: %2 + 채널 %1: %2 - - Bandlimited saw wave - 대역 제한 톱니파 + + Assign to new Mixer Channel + 새 믹서 채널에 할당하기 - - Click here for bandlimited saw wave. - 클릭하여 대역 제한 톱니파를 선택합니다. + + Turn all recording on + 모든 녹음 켜기 - - Bandlimited square wave - 대역 제한 사각파 + + Turn all recording off + 모든 녹음 끄기 - - Click here for bandlimited square wave. - 클릭하여 대역 제한 사각파를 선택합니다. + + Track color + 트랙 색상 - - Bandlimited triangle wave - 대역 제한 삼각파 + + Change + 변경하기 - - Click here for bandlimited triangle wave. - 클릭하여 대역 제한 삼각파를 선택합니다. + + Reset + 재설정 - - Bandlimited moog saw wave - 대역 제한 Moog 톱니파 + + Pick random + 무작위 고르기 - - Click here for bandlimited moog saw wave. - 클릭하여 대역 제한 Moog 톱니파를 선택합니다. + + Reset clip colors + 클립 색상 재설정 - MalletsInstrument + lmms::gui::TripleOscillatorView - - Hardness - + + Modulate phase of oscillator 1 by oscillator 2 + 오실레이터 2로 오실레이터 1의 페이즈 조절하기 - - Position - 위치 + + Modulate amplitude of oscillator 1 by oscillator 2 + 오실레이터 2로 오실레이터 1의 진폭 조절하기 - - Vibrato gain - 비브라토 이득 + + Mix output of oscillators 1 & 2 + 오실레이터 1 & 2의 출력 믹스 - - Vibrato frequency - 비브라토 주파수 + + Synchronize oscillator 1 with oscillator 2 + 오실레이터 1을 오실레이터 2와 싱크로나이즈 - - Stick mix - + + Modulate frequency of oscillator 1 by oscillator 2 + 오실레이터 2로 오실레이터 1의 주파수 조절하기 - - Modulator - 모듈레이터 + + Modulate phase of oscillator 2 by oscillator 3 + 오실레이터 3로 오실레이터 2의 페이즈 조절하기 - - Crossfade - 크로스페이드 + + Modulate amplitude of oscillator 2 by oscillator 3 + 오실레이터 3으로 오실레이터 2의 진폭 조절하기 - - LFO speed - LFO 속도 + + Mix output of oscillators 2 & 3 + 오실레이터 2 & 3의 출력 믹스 - - LFO depth - LFO 깊이 + + Synchronize oscillator 2 with oscillator 3 + 오실레이터 2를 오실레이터 3과 싱크로나이즈 - - ADSR - ADSR + + Modulate frequency of oscillator 2 by oscillator 3 + 오실레이터 3으로 오실레이터 2의 주파수 조절하기 - - Pressure - 압력 + + Osc %1 volume: + Osc %1 볼륨: - - Motion - 모션 + + Osc %1 panning: + Osc %1 패닝: - - Speed - 속도 + + Osc %1 coarse detuning: + Osc %1 코어스 디튜닝: - - Bowed - + + semitones + 반음 - - Spread - + + Osc %1 fine detuning left: + Osc %1 파인 디튜닝 왼쪽: - - Marimba - 마림바 + + + cents + 센트 - - Vibraphone - 비브라폰 + + Osc %1 fine detuning right: + Osc %1 파인 디튜닝 우측: - - Agogo - 아고고 + + Osc %1 phase-offset: + Osc %1 페이즈-오프셋: - - Wood 1 - + + + degrees + - - Reso - + + Osc %1 stereo phase-detuning: + Osc %1 스테레오 페이즈-디튜닝: - - Wood 2 - + + Sine wave + 사인파 - - Beats - + + Triangle wave + 삼각파 - - Two fixed - + + Saw wave + 톱니파 - - Clump - + + Square wave + 사각파 - - Tubular bells - + + Moog-like saw wave + 모그와 비슷한 톱니파 - - Uniform bar - + + Exponential wave + 지수파 - - Tuned bar - + + White noise + 백색 잡음 - - Glass - 유리 + + User-defined wave + 사용자 정의된 파형 - - Tibetan bowl - + + Use alias-free wavetable oscillators. + 앨리어스가 없는 웨이브테이블 오실레이터를 사용합니다. - MalletsInstrumentView - - - Instrument - 악기 - - - - Spread - - - - - Spread: - - + lmms::gui::VecControlsDialog - - Missing files - 없는 파일 + + HQ + HQ - - Your Stk-installation seems to be incomplete. Please make sure the full Stk-package is installed! - Stk 설치가 불완전한 것 같습니다. 완전한 Stk 패키지가 설치되었는지 확인하시기 바랍니다! + + Double the resolution and simulate continuous analog-like trace. + 레졸루션을 두 배로 늘리고 연속적인 아날로그 같은 트레이스를 시뮬레이션합니다. - - Hardness - + + Log. scale + Log. 스케일 - - Hardness: - + + Display amplitude on logarithmic scale to better see small values. + 작은 값을 더 잘 볼 수 있도록 로가리듬 스케일로 진폭을 화면표시합니다. - - Position - 위치 + + Persist. + 지속합니다. - - Position: - 위치: + + Trace persistence: higher amount means the trace will stay bright for longer time. + 트레이스 지속됨: 양이 많을수록 트레이스가 더 오랫동안 밝게 유지됩니다. - - Vibrato gain - 비브라토 이득 + + Trace persistence + 트레이스 지속됨 + + + lmms::gui::VersionedSaveDialog - - Vibrato gain: - 비브라토 이득: + + Increment version number + 버전 번호 증가 - - Vibrato frequency - 비브라토 주파수 + + Decrement version number + 버전 번호 감소 - - Vibrato frequency: - 비브라토 주파수: + + Save Options + 저장 옵션 - - Stick mix - + + already exists. Do you want to replace it? + 이(가) 이미 존재합니다. 덮어쓰시겠습니까? + + + lmms::gui::VestigeInstrumentView - - Stick mix: - + + + Open VST plugin + VST 플러그인 열기 - - Modulator - 모듈레이터 + + Control VST plugin from LMMS host + LMMS 호스트에서 VST 플러그인 제어 - - Modulator: - 모듈레이터: + + Open VST plugin preset + VST 플러그인 프리셋 열기 - - Crossfade - 크로스페이드 + + Previous (-) + 이전 (-) - - Crossfade: - 크로스페이드: + + Save preset + 프리셋 저장하기 - - LFO speed - LFO 속도 + + Next (+) + 다음 (+) - - LFO speed: - LFO 속도: + + Show/hide GUI + GUI 표시하기/숨기기 - - LFO depth - LFO 깊이 + + Turn off all notes + 모든 노트 끄기 - - LFO depth: - LFO 깊이: + + DLL-files (*.dll) + DLL 파일 (*.dll) - - ADSR - ADSR + + EXE-files (*.exe) + EXE 파일 (*.exe) - - ADSR: - ADSR: + + SO-files (*.so) + SO 파일 (*.so) - - Pressure - 압력 + + No VST plugin loaded + 불러온 VST 플러그인 없음 - - Pressure: - 압력: + + Preset + 프리셋 - - Speed - 속도 + + by + 만든이 - - Speed: - 속도: + + - VST plugin control + - VST 플러그인 컨트롤 - ManageVSTEffectView + lmms::gui::VibedView - - - VST parameter control - + + Enable waveform + 파형 활성화 - - VST sync - VST와 동기화 + + + Smooth waveform + 부드러운 파형 - - - Automated - + + + Normalize waveform + 노멀라이즈 파형 - - Close - 닫기 + + + Sine wave + 사인파 - - - ManageVestigeInstrumentView - - - - VST plugin control - + + + Triangle wave + 삼각파 - - VST Sync - VST와 동기화 + + + Saw wave + 톱니파 - - - Automated - + + + Square wave + 사각파 - - Close - 닫기 + + + White noise + 백색 잡음 - - - OrganicInstrument - - Distortion - 디스토션 + + + User-defined wave + 사용자 정의된 파형 - - Volume - 음량 + + String volume: + 스트링 볼륨: - - - OrganicInstrumentView - - Distortion: - 디스토션: + + String stiffness: + 스트링 스티프니스: - - Volume: - 음량: + + Pick position: + 픽 포지션: - - Randomise - 무작위 생성 + + Pickup position: + 픽업 포지션: - - - Osc %1 waveform: - 오실레이터 %1 파형: + + String panning: + 스트링 패닝: - - Osc %1 volume: - 오실레이터 %1 음량: + + String detune: + 스트링 디튠: - - Osc %1 panning: - 오실레이터 %1 패닝: + + String fuzziness: + 스트링 퍼지니스: - - Osc %1 stereo detuning - + + String length: + 스트링 길이: - - cents - 센트 + + Impulse Editor + 임펄스 편집기 - - Osc %1 harmonic: - 오실레이터 %1 배음: + + Impulse + 임펄스 - - - PatchesDialog - - Qsynth: Channel Preset - + + Enable/disable string + 스트링 활성화/비활성화 - - Bank selector - + + Octave + 옥타브 - - Bank - 뱅크 + + String + 스트링 + + + lmms::gui::VstEffectControlDialog - - Program selector - + + Show/hide + 표시하기/숨기기 - - Patch - 패치 + + Control VST plugin from LMMS host + LMMS 호스트에서 VST 플러그인 제어 - - Name - 이름 + + Open VST plugin preset + VST 플러그인 프리셋 열기 - - OK - 확인 + + Previous (-) + 이전 (-) - - Cancel - 취소 + + Next (+) + 다음 (+) - - - Sf2Instrument - - Bank - 뱅크 + + Save preset + 프리셋 저장하기 - - Patch - 패치 + + + Effect by: + 이펙트: - - Gain - 이득 + + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> + + + lmms::gui::WatsynView - - Reverb - 리버브 + + + + + Volume + 볼륨 - - Reverb room size - + + + + + Panning + 패닝 - - Reverb damping - 리버브 감쇠 + + + + + Freq. multiplier + 주파수 증폭기 - - Reverb width - + + + + + Left detune + 좌측 디튠 - - Reverb level - + + + + + + + + + cents + 센트 - - Chorus - 코러스 + + + + + Right detune + 우측 디튠 - - Chorus voices - + + A-B Mix + A-B 믹스 - - Chorus level - + + Mix envelope amount + 믹스 엔벨로프 양 - - Chorus speed - + + Mix envelope attack + 믹스 엔벨로프 어택 - - Chorus depth - + + Mix envelope hold + 믹스 엔벨로프 홀드 - - A soundfont %1 could not be loaded. - 사운드폰트 %1을 불러올 수 없습니다. + + Mix envelope decay + 믹스 엔벨로프 디케이 - - - Sf2InstrumentView - - - Open SoundFont file - 사운드폰트 파일 열기 + + Crosstalk + 크로스토크 - - Choose patch - 패치 선택 + + Select oscillator A1 + Osc A1 선택하기 - - Gain: - 이득: + + Select oscillator A2 + Osc A2 선택하기 - - Apply reverb (if supported) - 리버브 적용(지원시) + + Select oscillator B1 + Osc B1 선택하기 - - Room size: - 공간 크기: + + Select oscillator B2 + Osc B2 선택하기 - - Damping: - 감쇠: + + Mix output of A2 to A1 + A2에서 A1로 출력 믹스 - - Width: - 너비: + + Modulate amplitude of A1 by output of A2 + A2의 출력으로 A1의 진폭 조절하기 - - - Level: - + + Ring modulate A1 and A2 + 종소리 변조 A1 및 A2 - - Apply chorus (if supported) - 코러스 적용 (지원될 경우) + + Modulate phase of A1 by output of A2 + A2의 출력으로 A1의 페이즈 조절하기 - - Voices: - + + Mix output of B2 to B1 + B2에서 B1로 출력 믹스 - - Speed: - 속도: + + Modulate amplitude of B1 by output of B2 + B2의 출력으로 B1의 진폭 조절하기 - - Depth: - + + Ring modulate B1 and B2 + 종소리 변조 B1 및 B2 - - SoundFont Files (*.sf2 *.sf3) - 사운드폰트 파일 (*.sf2 *.sf3) + + Modulate phase of B1 by output of B2 + B2의 출력으로 B1의 페이즈 조절하기 - - - SfxrInstrument - - Wave - 파형 + + + + + Draw your own waveform here by dragging your mouse on this graph. + 이 그래프 위에 마우스를 드래그하여 나만의 파형을 그려보세요. - - - StereoEnhancerControlDialog - - WIDTH - 너비 + + Load waveform + 파형 불러오기 - - Width: - 너비: + + Load a waveform from a sample file + 샘플 파일에서 파형 불러오기 - - - StereoEnhancerControls - - Width - 너비 + + Phase left + 페이즈 좌측 - - - StereoMatrixControlDialog - - Left to Left Vol: - 왼쪽에서 왼쪽 음량: + + Shift phase by -15 degrees + 페이즈를 -15도 만큼 옮기기 - - Left to Right Vol: - 왼쪽에서 오른쪽 음량: + + Phase right + 페이즈 우측 - - Right to Left Vol: - 오른쪽에서 왼쪽 음량: + + Shift phase by +15 degrees + 페이즈를 +15도 만큼 옮기기 - - Right to Right Vol: - 오른쪽에서 오른쪽 음량: + + + Normalize + 노멀라이즈 - - - StereoMatrixControls - - Left to Left - 왼쪽에서 왼쪽 + + + Invert + 반전 - - Left to Right - 왼쪽에서 오른쪽 + + + Smooth + 스무드 - - Right to Left - 오른쪽에서 왼쪽 + + + Sine wave + 사인파 - - Right to Right - 오른쪽에서 오른쪽 + + + + Triangle wave + 삼각파 - - - VestigeInstrument - - Loading plugin - 플러그인 읽는 중 + + Saw wave + 톱니파 - - Please wait while loading the VST plugin... - VST 플러그인을 불러올 동안 잠시 기다려 주세요... + + + Square wave + 사각파 - Vibed + lmms::gui::WaveShaperControlDialog - - String %1 volume - %1번 현 음량 + + INPUT + 입력 - - String %1 stiffness - + + Input gain: + 입력 게인: - - Pick %1 position - + + OUTPUT + 출력 - - Pickup %1 position - 픽업 %1 위치 + + Output gain: + 출력 게인: - - String %1 panning - %1번 현 패닝 + + + Reset wavegraph + 웨이브그래프 재설정 - - String %1 detune - + + + Smooth wavegraph + 부드러운 웨이브그래프 - - String %1 fuzziness - + + + Increase wavegraph amplitude by 1 dB + 웨이브그래프 진폭 1dB씩 증가하기 - - String %1 length - + + + Decrease wavegraph amplitude by 1 dB + 웨이브그래프 진폭 1dB씩 감소하기 - - Impulse %1 - + + Clip input + 클립 입력 - - String %1 - %1번 현 + + Clip input signal to 0 dB + 클립 입력 신호 → 0dB - VibedView - - - String volume: - - - - - String stiffness: - - - - - Pick position: - - + lmms::gui::XpressiveView - - Pickup position: - 픽업 위치: + + Draw your own waveform here by dragging your mouse on this graph. + 이 그래프 위에 마우스를 드래그하여 나만의 파형을 그려보세요. - - String panning: - + + Select oscillator W1 + 오실레이터 W1 선택하기 - - String detune: - + + Select oscillator W2 + 오실레이터 W2 선택하기 - - String fuzziness: - + + Select oscillator W3 + 오실레이터 W3 선택하기 - - String length: - + + Select output O1 + 출력 O1 선택하기 - - Impulse - + + Select output O2 + 출력 O2 선택하기 - - Octave - 옥타브 + + Open help window + 도움말 창 열기 - - Impulse Editor - Impulse 편집기 + + + Sine wave + 사인파 - - Enable waveform - 파형 활성화 + + + Moog-saw wave + 모그 톱니파 - - Enable/disable string - 현 활성화/비활성화 + + + Exponential wave + 지수파 - - String - + + + Saw wave + 톱니파 - - - Sine wave - 사인파 + + + User-defined wave + 사용자 정의된 파형 - - + + Triangle wave 삼각파 - - - Saw wave - 톱니파 - - - - + + Square wave 사각파 - - + + White noise - 화이트 노이즈 - - - - - User-defined wave - 사용자 정의 파형 + 백색 잡음 - - - Smooth waveform - 파형을 부드럽게 + + WaveInterpolate + 웨이브인터폴레이트 - - - Normalize waveform - 파형 정규화 + + ExpressionValid + 유효한표현식 - - - VoiceObject - - Voice %1 pulse width - 소리 %1 펄스 폭 + + General purpose 1: + 범용 1: - - Voice %1 attack - + + General purpose 2: + 범용 2: - - Voice %1 decay - + + General purpose 3: + 범용 3: - - Voice %1 sustain - + + O1 panning: + O1 패닝: - - Voice %1 release - + + O2 panning: + O2 패닝: - - Voice %1 coarse detuning - + + Release transition: + 릴리즈 트랜지션: - - Voice %1 wave shape - 소리 %1 파형 + + Smoothness + 스무스니스 + + + lmms::gui::ZynAddSubFxView - - Voice %1 sync - 소리 %1 동기화 + + Portamento: + 포르타멘토: - - Voice %1 ring modulate - 소리 %1 링 모듈레이션 + + PORT + PORT - - Voice %1 filtered - 소리 %1 필터됨 + + Filter frequency: + 필터 주파수: - - Voice %1 test - 소리 %1 테스트 + + FREQ + FREQ - - - WaveShaperControlDialog - - INPUT - 입력 + + Filter resonance: + 필터 공명: - - Input gain: - 입력 이득: + + RES + RES - - OUTPUT - 출력 + + Bandwidth: + 대역폭: - - Output gain: - 출력 이득: + + BW + 대역폭 - - - Reset wavegraph - 그래프 초기화 + + FM gain: + FM 게인: - - - Smooth wavegraph - 그래프를 부드럽게 + + FM GAIN + FM 게인 - - - Increase wavegraph amplitude by 1 dB - + + Resonance center frequency: + 공명 중심 주파수: - - - Decrease wavegraph amplitude by 1 dB - + + RES CF + RES CF - - Clip input - 입력 신호 클리핑 + + Resonance bandwidth: + 공명 대역폭: - - Clip input signal to 0 dB - 0dB에서 입력 신호 클리핑 + + RES BW + RES BW - - - WaveShaperControls - - Input gain - 입력 이득 + + Forward MIDI control changes + 정방향 MIDI 컨트롤 변경 - - Output gain - 출력 이득 + + Show GUI + GUI 표시하기 - + \ No newline at end of file diff --git a/data/locale/ms_MY.ts b/data/locale/ms_MY.ts index ff34784219a..dc3561ea248 100644 --- a/data/locale/ms_MY.ts +++ b/data/locale/ms_MY.ts @@ -5333,62 +5333,62 @@ Please make sure you have write permission to the file and the directory contain - MixerLine + MixerChannelView - + Channel send amount - + Move &left - + Move &right - + Rename &channel - + R&emove channel - + Remove &unused channels - + Set channel color - + Remove channel color - + Pick random channel color - MixerLineLcdSpinBox + MixerChannelLcdSpinBox - + Assign to: - + New mixer Channel diff --git a/data/locale/nb.ts b/data/locale/nb.ts index 659344d64de..adfc6d8566a 100644 --- a/data/locale/nb.ts +++ b/data/locale/nb.ts @@ -5333,62 +5333,62 @@ Please make sure you have write permission to the file and the directory contain - MixerLine + MixerChannelView - + Channel send amount - + Move &left - + Move &right - + Rename &channel - + R&emove channel - + Remove &unused channels - + Set channel color - + Remove channel color - + Pick random channel color - MixerLineLcdSpinBox + MixerChannelLcdSpinBox - + Assign to: - + New mixer Channel diff --git a/data/locale/nl.ts b/data/locale/nl.ts index 7ff3e8735a8..f879c6adf59 100644 --- a/data/locale/nl.ts +++ b/data/locale/nl.ts @@ -1,4 +1,4 @@ - + AboutDialog @@ -70,954 +70,187 @@ Als u interesse heeft om LMMS naar een andere taal te vertalen, of als u de best - AmplifierControlDialog + AboutJuceDialog - - VOL - VOL - - - - Volume: - Volume: - - - - PAN - BAL - - - - Panning: - Balans: - - - - LEFT - LINKS - - - - Left gain: - Linker versterking: - - - - RIGHT - RECHTS - - - - Right gain: - Rechter versterking: - - - - AmplifierControls - - - Volume - Volume - - - - Panning - Balans - - - - Left gain - Linker versterking - - - - Right gain - Rechter versterking - - - - AudioAlsaSetupWidget - - - DEVICE - APPARAAT - - - - CHANNELS - KANALEN - - - - AudioFileProcessorView - - - Open sample - Sample openen - - - - Reverse sample - Sample omdraaien - - - - Disable loop - Herhalen uitschakelen - - - - Enable loop - Herhalen inschakelen - - - - Enable ping-pong loop - Ping-pong herhalen inschakelen - - - - Continue sample playback across notes - Doorgaan met afspelen van sample tussen noten - - - - Amplify: - Versterken: - - - - Start point: - Beginpunt: - - - - End point: - Eindpunt: - - - - Loopback point: - Herhaalpunt: - - - - AudioFileProcessorWaveView - - - Sample length: - Sample-lengte: - - - - AudioJack - - - JACK client restarted - JACK-client opnieuw gestart - - - - LMMS was kicked by JACK for some reason. Therefore the JACK backend of LMMS has been restarted. You will have to make manual connections again. - LMMS werd er om een of andere reden door JACK afgegooid. Daarom werd de JACK-backend van LMMS opnieuw gestart. U zult manueel verbindingen opnieuw moeten maken. - - - - JACK server down - JACK-server is offline - - - - The JACK server seems to have been shutdown and starting a new instance failed. Therefore LMMS is unable to proceed. You should save your project and restart JACK and LMMS. - De JACK-server lijkt afgesloten te zijn en het starten van een nieuwe instantie is mislukt. Daarom kan LMMS niet doorgaan. U slaat best uw project op en herstart JACK en LMMS. - - - - Client name - Naam client - - - - Channels - Kanalen - - - - AudioOss - - - Device - Apparaat - - - - Channels - Kanalen - - - - AudioPortAudio::setupWidget - - - Backend - Backend - - - - Device - Apparaat - - - - AudioPulseAudio - - - Device - Apparaat + + About JUCE + - - Channels - Kanalen + + <b>About JUCE</b> + - - - AudioSdl::setupWidget - - Device - Apparaat + + This program uses JUCE version 3.x.x. + - - - AudioSndio - - Device - Apparaat + + JUCE is an open-source cross-platform C++ application framework for creating high quality desktop and mobile applications. + +The core JUCE modules (juce_audio_basics, juce_audio_devices, juce_core and juce_events) are permissively licensed under the terms of the ISC license. +Other modules are covered by a GNU GPL 3.0 license. + +Copyright (C) 2022 Raw Material Software Limited. + - - Channels - Kanalen + + This program uses JUCE version + - AudioSoundIo::setupWidget - - - Backend - Backend - + AudioDeviceSetupWidget - - Device - Apparaat + + [System Default] + - AutomatableModel - - - &Reset (%1%2) - &Herstellen (%1%2) - - - - &Copy value (%1%2) - Waarde &kopiëren (%1%2) - - - - &Paste value (%1%2) - Waarde &plakken (%1%2) - - - - &Paste value - Waarde &plakken - - - - Edit song-global automation - Song-globale automatisering bewerken - - - - Remove song-global automation - Song-globale automatisering verwijderen - - - - Remove all linked controls - Alle gelinkte controls verwijderen - - - - Connected to %1 - Verbonden met %1 - + CarlaAboutW - - Connected to controller - Verbonden met controller + + About Carla + - - Edit connection... - Verbinding bewerken... + + About + Over - - Remove connection - Verbinding verwijderen + + About text here + - - Connect to controller... - Verbinden met controller... + + Extended licensing here + - - - AutomationEditor - - Edit Value + + Artwork - - New outValue + + Using KDE Oxygen icon set, designed by Oxygen Team. - - New inValue + + Contains some knobs, backgrounds and other small artwork from Calf Studio Gear, OpenAV and OpenOctave projects. - - Please open an automation clip with the context menu of a control! - Open een automatiseringspatroon met het contextmenu van een control! + + VST is a trademark of Steinberg Media Technologies GmbH. + - - - AutomationEditorWindow - - Play/pause current clip (Space) - Huidig patroon afspelen/pauzeren (Spatie) + + Special thanks to António Saraiva for a few extra icons and artwork! + - - Stop playing of current clip (Space) - Stoppen met afspelen van huidig patroon (Spatie) + + The LV2 logo has been designed by Thorsten Wilms, based on a concept from Peter Shorthose. + - - Edit actions - Bewerking-acties + + MIDI Keyboard designed by Thorsten Wilms. + - - Draw mode (Shift+D) - Tekenmodus (Shift+D) + + Carla, Carla-Control and Patchbay icons designed by DoosC. + - - Erase mode (Shift+E) - Wissen-modus (Shift+E) + + Features + - - Draw outValues mode (Shift+C) + + AU/AudioUnit: - - Flip vertically - Verticaal omdraaien + + LADSPA: + - - Flip horizontally - Horizontaal omdraaien + + + + + + + + + TextLabel + - - Interpolation controls - Interpolatiebediening + + VST2: + - - Discrete progression - Discrete progressie + + DSSI: + - - Linear progression - Lineaire progressie + + LV2: + - - Cubic Hermite progression - Kubische Hermite-progressie + + VST3: + - - Tension value for spline - Spanningswaarde voor spline + + OSC + - - Tension: - Spanning: + + Host URLs: + - - Zoom controls - Zoombediening + + Valid commands: + - - Horizontal zooming - Horizontaal zoomen + + valid osc commands here + - - Vertical zooming - Verticaal zoomen + + Example: + - - Quantization controls - Kwantisatiebediening + + License + Licentie - - Quantization - Kwantisatie - - - - - Automation Editor - no clip - Automatisering-editor - geen patroon - - - - - Automation Editor - %1 - Automatisering-editor - %1 - - - - Model is already connected to this clip. - Model is reeds verbonden met dit patroon. - - - - AutomationClip - - - Drag a control while pressing <%1> - Sleep een bediening tijdens indrukken van <%1> - - - - AutomationClipView - - - Open in Automation editor - Openen in automatisering-editor - - - - Clear - Wissen - - - - Reset name - Naam herstellen - - - - Change name - Naam wijzigen - - - - Set/clear record - Opnemen instellen/wissen - - - - Flip Vertically (Visible) - Verticaal omdraaien (zichtbaar) - - - - Flip Horizontally (Visible) - Horizontaal omdraaien (zichtbaar) - - - - %1 Connections - %1 verbindingen - - - - Disconnect "%1" - Verbinding verbreken met "%1" - - - - Model is already connected to this clip. - Model is reeds verbonden met dit patroon. - - - - AutomationTrack - - - Automation track - Automatisering-track - - - - PatternEditor - - - Beat+Bassline Editor - Beat- en baslijn-editor - - - - Play/pause current beat/bassline (Space) - Huidige beat/baslijn afspelen/pauzeren (Spatie) - - - - Stop playback of current beat/bassline (Space) - Afspelen van huidige beat/baslijn stoppen (Spatie) - - - - Beat selector - Beat-selector - - - - Track and step actions - Track- en stap-acties - - - - Add beat/bassline - Beat/baslijn toevoegen - - - - Clone beat/bassline clip - - - - - Add sample-track - Sample-track toevoegen - - - - Add automation-track - Automatisering-track toevoegen - - - - Remove steps - Stappen verwijderen - - - - Add steps - Stappen toevoegen - - - - Clone Steps - Stappen klonen - - - - PatternClipView - - - Open in Beat+Bassline-Editor - In beat- en baslijn-editor openen - - - - Reset name - Naam herstellen - - - - Change name - Naam wijzigen - - - - PatternTrack - - - Beat/Bassline %1 - Beat/baslijn %1 - - - - Clone of %1 - Kloon van %1 - - - - BassBoosterControlDialog - - - FREQ - FREQ - - - - Frequency: - Frequentie: - - - - GAIN - GAIN - - - - Gain: - Gain: - - - - RATIO - RATIO - - - - Ratio: - Ratio: - - - - BassBoosterControls - - - Frequency - Frequentie - - - - Gain - Gain - - - - Ratio - Ratio - - - - BitcrushControlDialog - - - IN - IN - - - - OUT - UIT - - - - - GAIN - GAIN - - - - Input gain: - Invoer-gain: - - - - NOISE - NOISE - - - - Input noise: - Invoer-ruis: - - - - Output gain: - Uitvoer-gain: - - - - CLIP - CLIP - - - - Output clip: - Uitvoer-clip: - - - - Rate enabled - Ratio ingeschakeld - - - - Enable sample-rate crushing - Samplerate-crushing inschakelen - - - - Depth enabled - Diepte ingeschakeld - - - - Enable bit-depth crushing - Bitdiepte-crushing inschakelen - - - - FREQ - FREQ - - - - Sample rate: - Samplerate: - - - - STEREO - STEREO - - - - Stereo difference: - Stereo-verschil: - - - - QUANT - QUANT - - - - Levels: - Niveaus - - - - BitcrushControls - - - Input gain - Invoer-gain - - - - Input noise - Invoer-ruis - - - - Output gain - Uitvoer-gain - - - - Output clip - Uitvoer-clip - - - - Sample rate - Samplerate - - - - Stereo difference - Stereo-verschil - - - - Levels - Niveaus - - - - Rate enabled - Ratio ingeschakeld - - - - Depth enabled - Diepte ingeschakeld - - - - CarlaAboutW - - - About Carla - - - - - About - Over - - - - About text here - - - - - Extended licensing here - - - - - Artwork - - - - - Using KDE Oxygen icon set, designed by Oxygen Team. - - - - - Contains some knobs, backgrounds and other small artwork from Calf Studio Gear, OpenAV and OpenOctave projects. - - - - - VST is a trademark of Steinberg Media Technologies GmbH. - - - - - Special thanks to António Saraiva for a few extra icons and artwork! - - - - - The LV2 logo has been designed by Thorsten Wilms, based on a concept from Peter Shorthose. - - - - - MIDI Keyboard designed by Thorsten Wilms. - - - - - Carla, Carla-Control and Patchbay icons designed by DoosC. - - - - - Features - - - - - AU/AudioUnit: - - - - - LADSPA: - - - - - - - - - - - - TextLabel - - - - - VST2: - - - - - DSSI: - - - - - LV2: - - - - - VST3: - - - - - OSC - - - - - Host URLs: - - - - - Valid commands: - - - - - valid osc commands here - - - - - Example: - - - - - License - Licentie - - - + GNU GENERAL PUBLIC LICENSE Version 2, June 1991 @@ -1302,15036 +535,18221 @@ POSSIBILITY OF SUCH DAMAGES. - - OSC Bridge Version + + OSC Bridge Version + + + + + Plugin Version + + + + + <br>Version %1<br>Carla is a fully-featured audio plugin host%2.<br><br>Copyright (C) 2011-2019 falkTX<br> + + + + + + (Engine not running) + + + + + Everything! (Including LRDF) + + + + + Everything! (Including CustomData/Chunks) + + + + + About 110&#37; complete (using custom extensions)<br/>Implemented Feature/Extensions:<ul><li>http://lv2plug.in/ns/ext/atom</li><li>http://lv2plug.in/ns/ext/buf-size</li><li>http://lv2plug.in/ns/ext/data-access</li><li>http://lv2plug.in/ns/ext/event</li><li>http://lv2plug.in/ns/ext/instance-access</li><li>http://lv2plug.in/ns/ext/log</li><li>http://lv2plug.in/ns/ext/midi</li><li>http://lv2plug.in/ns/ext/options</li><li>http://lv2plug.in/ns/ext/parameters</li><li>http://lv2plug.in/ns/ext/port-props</li><li>http://lv2plug.in/ns/ext/presets</li><li>http://lv2plug.in/ns/ext/resize-port</li><li>http://lv2plug.in/ns/ext/state</li><li>http://lv2plug.in/ns/ext/time</li><li>http://lv2plug.in/ns/ext/uri-map</li><li>http://lv2plug.in/ns/ext/urid</li><li>http://lv2plug.in/ns/ext/worker</li><li>http://lv2plug.in/ns/extensions/ui</li><li>http://lv2plug.in/ns/extensions/units</li><li>http://home.gna.org/lv2dynparam/rtmempool/v1</li><li>http://kxstudio.sf.net/ns/lv2ext/external-ui</li><li>http://kxstudio.sf.net/ns/lv2ext/programs</li><li>http://kxstudio.sf.net/ns/lv2ext/props</li><li>http://kxstudio.sf.net/ns/lv2ext/rtmempool</li><li>http://ll-plugins.nongnu.org/lv2/ext/midimap</li><li>http://ll-plugins.nongnu.org/lv2/ext/miditype</li></ul> + + + + + + + Using Juce host + + + + + About 85% complete (missing vst bank/presets and some minor stuff) + + + + + CarlaHostW + + + MainWindow + + + + + Rack + + + + + Patchbay + + + + + Logs + + + + + Loading... + + + + + Save + + + + + Clear + + + + + Ctrl+L + + + + + Auto-Scroll + + + + + Buffer Size: + + + + + Sample Rate: + + + + + ? Xruns + + + + + DSP Load: %p% + + + + + &File + &Bestand + + + + &Engine + + + + + &Plugin + + + + + Macros (all plugins) + + + + + &Canvas + + + + + Zoom + + + + + &Settings + + + + + &Help + &Help + + + + Tool Bar + + + + + Disk + + + + + + Home + Home + + + + Transport + + + + + Playback Controls + + + + + Time Information + + + + + Frame: + + + + + 000'000'000 + + + + + Time: + Tijd: + + + + 00:00:00 + + + + + BBT: + + + + + 000|00|0000 + + + + + Settings + Instellingen + + + + BPM + + + + + Use JACK Transport + + + + + Use Ableton Link + + + + + &New + &Nieuw + + + + Ctrl+N + + + + + &Open... + &Openen... + + + + + Open... + + + + + Ctrl+O + + + + + &Save + Op&slaan + + + + Ctrl+S + + + + + Save &As... + Opslaan &als... + + + + + Save As... + + + + + Ctrl+Shift+S + + + + + &Quit + &Afsluiten + + + + Ctrl+Q + + + + + &Start + + + + + F5 + + + + + St&op + + + + + F6 + + + + + &Add Plugin... + + + + + Ctrl+A + + + + + &Remove All + + + + + Enable + + + + + Disable + + + + + 0% Wet (Bypass) + + + + + 100% Wet + + + + + 0% Volume (Mute) + + + + + 100% Volume + + + + + Center Balance + + + + + &Play + + + + + Ctrl+Shift+P + + + + + &Stop + + + + + Ctrl+Shift+X + + + + + &Backwards + + + + + Ctrl+Shift+B + + + + + &Forwards + + + + + Ctrl+Shift+F + + + + + &Arrange + + + + + Ctrl+G + + + + + + &Refresh + + + + + Ctrl+R + + + + + Save &Image... + + + + + Auto-Fit + + + + + Zoom In + + + + + Ctrl++ + + + + + Zoom Out + + + + + Ctrl+- + + + + + Zoom 100% + + + + + Ctrl+1 + + + + + Show &Toolbar + + + + + &Configure Carla + + + + + &About + + + + + About &JUCE + + + + + About &Qt + + + + + Show Canvas &Meters + + + + + Show Canvas &Keyboard + + + + + Show Internal + + + + + Show External + + + + + Show Time Panel + + + + + Show &Side Panel + + + + + Ctrl+P + + + + + &Connect... + + + + + Compact Slots + + + + + Expand Slots + + + + + Perform secret 1 + + + + + Perform secret 2 + + + + + Perform secret 3 + + + + + Perform secret 4 + + + + + Perform secret 5 + + + + + Add &JACK Application... + + + + + &Configure driver... + + + + + Panic + + + + + Open custom driver panel... + + + + + Save Image... (2x zoom) + + + + + Save Image... (4x zoom) + + + + + Copy as Image to Clipboard + + + + + Ctrl+Shift+C + + + + + CarlaHostWindow + + + Export as... + + + + + + + + Error + Fout + + + + Failed to load project + + + + + Failed to save project + + + + + Quit + + + + + Are you sure you want to quit Carla? + + + + + Could not connect to Audio backend '%1', possible reasons: +%2 + + + + + Could not connect to Audio backend '%1' + + + + + Warning + + + + + There are still some plugins loaded, you need to remove them to stop the engine. +Do you want to do this now? + + + + + CarlaSettingsW + + + Settings + Instellingen + + + + main + + + + + canvas + + + + + engine + + + + + osc + + + + + file-paths + + + + + plugin-paths + + + + + wine + + + + + experimental + + + + + Widget + + + + + + Main + + + + + + Canvas + + + + + + Engine + + + + + File Paths + + + + + Plugin Paths + + + + + Wine + + + + + + Experimental + + + + + <b>Main</b> + + + + + Paths + Paden + + + + Default project folder: + + + + + Interface + + + + + Use "Classic" as default rack skin + + + + + Interface refresh interval: + + + + + + ms + + + + + Show console output in Logs tab (needs engine restart) + + + + + Show a confirmation dialog before quitting + + + + + + Theme + + + + + Use Carla "PRO" theme (needs restart) + + + + + Color scheme: + + + + + Black + + + + + System + + + + + Enable experimental features + + + + + <b>Canvas</b> + + + + + Bezier Lines + + + + + Theme: + + + + + Size: + Grootte: + + + + 775x600 + + + + + 1550x1200 + + + + + 3100x2400 + + + + + 4650x3600 + + + + + 6200x4800 + + + + + 12400x9600 + + + + + Options + + + + + Auto-hide groups with no ports + + + + + Auto-select items on hover + + + + + Basic eye-candy (group shadows) + + + + + Render Hints + + + + + Anti-Aliasing + + + + + Full canvas repaints (slower, but prevents drawing issues) + + + + + <b>Engine</b> + + + + + + Core + + + + + Single Client + + + + + Multiple Clients + + + + + + Continuous Rack + + + + + + Patchbay + + + + + Audio driver: + + + + + Process mode: + + + + + + + + Maximum number of parameters to allow in the built-in 'Edit' dialog + + + + + Max Parameters: + + + + + ... + + + + + Reset Xrun counter after project load + + + + + Plugin UIs + + + + + + How much time to wait for OSC GUIs to ping back the host + + + + + UI Bridge Timeout: + + + + + Use OSC-GUI bridges when possible, this way separating the UI from DSP code + + + + + Use UI bridges instead of direct handling when possible + + + + + Make plugin UIs always-on-top + + + + + Make plugin UIs appear on top of Carla (needs restart) + + + + + NOTE: Plugin-bridge UIs cannot be managed by Carla on macOS + + + + + + Restart the engine to load the new settings + + + + + <b>OSC</b> + + + + + Enable OSC + + + + + Enable TCP port + + + + + + Use specific port: + + + + + Overridden by CARLA_OSC_TCP_PORT env var + + + + + + Use randomly assigned port + + + + + Enable UDP port + + + + + Overridden by CARLA_OSC_UDP_PORT env var + + + + + DSSI UIs require OSC UDP port enabled + + + + + <b>File Paths</b> + + + + + Audio + Audio + + + + MIDI + MIDI + + + + Used for the "audiofile" plugin + + + + + Used for the "midifile" plugin + + + + + + Add... + + + + + + Remove + + + + + + Change... + + + + + <b>Plugin Paths</b> + + + + + LADSPA + + + + + DSSI + + + + + LV2 + + + + + VST2 + + + + + VST3 + + + + + SF2/3 + + + + + SFZ + + + + + JSFX + + + + + CLAP + + + + + Restart Carla to find new plugins + + + + + <b>Wine</b> + + + + + Executable + + + + + Path to 'wine' binary: + + + + + Prefix + + + + + Auto-detect Wine prefix based on plugin filename + + + + + Fallback: + + + + + Note: WINEPREFIX env var is preferred over this fallback + + + + + Realtime Priority + + + + + Base priority: + + + + + WineServer priority: + + + + + These options are not available for Carla as plugin + + + + + <b>Experimental</b> + + + + + Experimental options! Likely to be unstable! + + + + + Enable plugin bridges + + + + + Enable Wine bridges + + + + + Enable jack applications + + + + + Export single plugins to LV2 + + + + + Use system/desktop-theme icons (needs restart) + + + + + Load Carla backend in global namespace (NOT RECOMMENDED) + + + + + Fancy eye-candy (fade-in/out groups, glow connections) + + + + + Use OpenGL for rendering (needs restart) + + + + + High Quality Anti-Aliasing (OpenGL only) + + + + + Render Ardour-style "Inline Displays" + + + + + Force mono plugins as stereo by running 2 instances at the same time. +This mode is not available for VST plugins. + + + + + Force mono plugins as stereo + + + + + When enabled, Carla will try to prevent plugins from doing things that might mess up the audio or cause xruns, such as fork(), gtk_init() and similar. + + + + + Prevent unsafe calls from plugins (needs restart) + + + + + Run plugins in a separate process, so if they crash it does not affect Carla. +Plugins get automatically deactivated in such cases. +Reactvate them to start the process again, with the last saved state applied to it. + + + + + Run plugins in bridge mode when possible + + + + + + + + Add Path + + + + + Dialog + + + Carla Control - Connect + + + + + Remote setup + + + + + UDP Port: + + + + + Remote host: + + + + + TCP Port: + + + + + Set value + Waarde instellen + + + + TextLabel + + + + + Scale Points + + + + + DriverSettingsW + + + Driver Settings + + + + + Device: + + + + + Buffer size: + + + + + Sample rate: + Samplerate: + + + + Triple buffer + + + + + Show Driver Control Panel + + + + + Restart the engine to load the new settings + + + + + ExportProjectDialog + + + Export project + Project exporteren + + + + Export as loop (remove extra bar) + Exporteren als loop (extra balk verwijderen) + + + + Export between loop markers + Exporteren tussen loopmarkeringen + + + + Render Looped Section: + Herhaalde sectie renderen: + + + + time(s) + keer + + + + File format settings + Bestandsformaat-instellingen + + + + File format: + Bestandsformaat: + + + + Sampling rate: + Samplerate: + + + + 44100 Hz + 44100 Hz + + + + 48000 Hz + 48000 Hz + + + + 88200 Hz + 88200 Hz + + + + 96000 Hz + 96000 Hz + + + + 192000 Hz + 192000 Hz + + + + Bit depth: + Bitdiepte: + + + + 16 Bit integer + 16-bit integer + + + + 24 Bit integer + 24-bit integer + + + + 32 Bit float + 32-bit float + + + + Stereo mode: + Stereomodus: + + + + Mono + Mono + + + + Stereo + Stereo + + + + Joint stereo + Joint stereo + + + + Compression level: + Compressieniveau: + + + + Bitrate: + Bitrate: + + + + 64 KBit/s + 64 kbit/s + + + + 128 KBit/s + 128 kbit/s + + + + 160 KBit/s + 160 kbit/s + + + + 192 KBit/s + 192 kbit/s + + + + 256 KBit/s + 256 kbit/s + + + + 320 KBit/s + 320 kbit/s + + + + Use variable bitrate + Variabele bitrate gebruiken + + + + Quality settings + Kwaliteitsinstellingen + + + + Interpolation: + Interpolatie: + + + + Zero order hold + Zero order hold + + + + Sinc worst (fastest) + Sinc slechtste (snelste) + + + + Sinc medium (recommended) + Sinc medium (aanbevolen) + + + + Sinc best (slowest) + Sinc beste (traagste) + + + + Start + Starten + + + + Cancel + Annuleren + + + + InstrumentFunctionNoteStacking + + + octave + octaaf + + + + + Major + Majeur + + + + Majb5 + Majb5 + + + + minor + mineur + + + + minb5 + minb5 + + + + sus2 + sus2 + + + + sus4 + sus4 + + + + aug + aug + + + + augsus4 + augsus4 + + + + tri + tri + + + + 6 + 6 + + + + 6sus4 + 6sus4 + + + + 6add9 + 6add9 + + + + m6 + m6 + + + + m6add9 + m6add9 + + + + 7 + 7 + + + + 7sus4 + 7sus4 + + + + 7#5 + 7#5 + + + + 7b5 + 7b5 + + + + 7#9 + 7#9 + + + + 7b9 + 7b9 + + + + 7#5#9 + 7#5#9 + + + + 7#5b9 + 7#5b9 + + + + 7b5b9 + 7b5b9 + + + + 7add11 + 7add11 + + + + 7add13 + 7add13 + + + + 7#11 + 7#11 + + + + Maj7 + Maj7 + + + + Maj7b5 + Maj7b5 + + + + Maj7#5 + Maj7#5 + + + + Maj7#11 + Maj7#11 + + + + Maj7add13 + Maj7add13 + + + + m7 + m7 + + + + m7b5 + m7b5 + + + + m7b9 + m7b9 + + + + m7add11 + m7add11 + + + + m7add13 + m7add13 + + + + m-Maj7 + m-Maj7 + + + + m-Maj7add11 + m-Maj7add11 + + + + m-Maj7add13 + m-Maj7add13 + + + + 9 + 9 + + + + 9sus4 + 9sus4 + + + + add9 + add9 + + + + 9#5 + 9#5 + + + + 9b5 + 9b5 + + + + 9#11 + 9#11 + + + + 9b13 + 9b13 + + + + Maj9 + Maj9 + + + + Maj9sus4 + Maj9sus4 + + + + Maj9#5 + Maj9#5 + + + + Maj9#11 + Maj9#11 + + + + m9 + m9 + + + + madd9 + madd9 + + + + m9b5 + m9b5 + + + + m9-Maj7 + m9-Maj7 + + + + 11 + 11 + + + + 11b9 + 11b9 + + + + Maj11 + Maj11 + + + + m11 + m11 + + + + m-Maj11 + m-Maj11 + + + + 13 + 13 + + + + 13#9 + 13#9 + + + + 13b9 + 13b9 + + + + 13b5b9 + 13b5b9 + + + + Maj13 + Maj13 + + + + m13 + m13 + + + + m-Maj13 + m-Maj13 + + + + Harmonic minor + Harmonisch mineur + + + + Melodic minor + Melodisch mineur + + + + Whole tone + Hele toon + + + + Diminished + Verminderd + + + + Major pentatonic + Pentatonisch majeur + + + + Minor pentatonic + Pentatonisch mineur + + + + Jap in sen + Jap in sen + + + + Major bebop + Majeur bebop + + + + Dominant bebop + Dominante bebop + + + + Blues + Blues + + + + Arabic + Arabisch + + + + Enigmatic + Enigmatisch + + + + Neopolitan + Neopolitanisch + + + + Neopolitan minor + Neopolitanisch mineur + + + + Hungarian minor + Hongaarse mineur + + + + Dorian + Dorisch + + + + Phrygian + Frygisch + + + + Lydian + Lydisch + + + + Mixolydian + Mixolydisch + + + + Aeolian + Eolisch + + + + Locrian + Locrisch + + + + Minor + Mineur + + + + Chromatic + Chromatisch + + + + Half-Whole Diminished + Half-heel verminderd + + + + 5 + 5 + + + + Phrygian dominant + Frygisch dominant + + + + Persian + Persisch + + + + InstrumentSoundShaping + + + VOLUME + VOLUME + + + + Volume + Volume + + + + CUTOFF + CUTOFF + + + + Cutoff frequency + Cutoff-frequentie + + + + RESO + RESO + + + + Resonance + Resonantie + + + + JackAppDialog + + + Add JACK Application + + + + + Note: Features not implemented yet are greyed out + + + + + Application + + + + + Name: + + + + + Application: + + + + + From template + + + + + Custom + + + + + Template: + + + + + Command: + + + + + Setup + + + + + Session Manager: + + + + + None + + + + + Audio inputs: + + + + + MIDI inputs: + + + + + Audio outputs: + + + + + MIDI outputs: + + + + + Take control of main application window + + + + + Workarounds + + + + + Wait for external application start (Advanced, for Debug only) + + + + + Capture only the first X11 Window + + + + + Use previous client output buffer as input for the next client + + + + + Simulate 16 JACK MIDI outputs, with MIDI channel as port index + + + + + Error here + + + + + NSM applications cannot use abstract or absolute paths + + + + + NSM applications cannot use CLI arguments + + + + + You need to save the current Carla project before NSM can be used + + + + + JuceAboutW + + + This program uses JUCE version %1. + + + + + MidiPatternW + + + MIDI Pattern + + + + + Time Signature: + + + + + + + 1/4 + + + + + 2/4 + + + + + 3/4 + + + + + 4/4 + + + + + 5/4 + + + + + 6/4 + + + + + Measures: + + + + + + + 1 + + + + + 2 + + + + + 3 + + + + + 4 + + + + + 5 + 5 + + + + 6 + 6 + + + + 7 + 7 + + + + 8 + + + + + 9 + 9 + + + + 10 + + + + + 11 + 11 + + + + 12 + + + + + 13 + 13 + + + + 14 + + + + + 15 + + + + + 16 + + + + + Default Length: + + + + + + 1/16 + + + + + + 1/15 + + + + + + 1/12 + + + + + + 1/9 + + + + + + 1/8 + + + + + + 1/6 + + + + + + 1/3 + + + + + + 1/2 + + + + + Quantize: + + + + + &File + &Bestand + + + + &Edit + &Bewerken + + + + &Quit + &Afsluiten + + + + Esc + + + + + &Insert Mode + + + + + F + + + + + &Velocity Mode + + + + + D + + + + + Select All + + + + + A + + + + + PatchesDialog + + + + Qsynth: Channel Preset + Qsynth: kanaal-preset + + + + + Bank selector + Bank-selector + + + + + Bank + Bank + + + + + Program selector + Programma-selector + + + + + Patch + Patch + + + + + Name + Naam + + + + + OK + Ok + + + + + Cancel + Annuleren + + + + PluginBrowser + + + no description + geen beschrijving + + + + A native amplifier plugin + Een ingebouwde versterker-plugin + + + + Simple sampler with various settings for using samples (e.g. drums) in an instrument-track + Simpele sampler met verschillende instellingen voor het gebruik van samples (bijvoorbeeld drums) in een instrument-track + + + + Boost your bass the fast and simple way + Versterk uw bas snel en eenvoudig + + + + Customizable wavetable synthesizer + Aanpasbare wavetable-synthesizer + + + + An oversampling bitcrusher + Een oversampling-bitcrusher + + + + Carla Patchbay Instrument + Carla Patchbay instrument + + + + Carla Rack Instrument + Carla Rack instrument + + + + A dynamic range compressor. + + + + + A 4-band Crossover Equalizer + Een 4-band crossover-equalizer + + + + A native delay plugin + Een ingebouwde delay-plugin + + + + A Dual filter plugin + Een dual-filter-plugin + + + + plugin for processing dynamics in a flexible way + plugin voor het verwerken van dynamieken op een flexibele manier + + + + A native eq plugin + Een ingebouwde eq-plugin + + + + A native flanger plugin + Een ingebouwde flanger-plugin + + + + Emulation of GameBoy (TM) APU + Emulatie van GameBoy (TM) APU + + + + Player for GIG files + Speler voor GIG-bestanden + + + + Filter for importing Hydrogen files into LMMS + Filter voor importeren van Hydrogen-bestanden in LMMS + + + + Versatile drum synthesizer + Veelzijdige drum-synthesizer + + + + List installed LADSPA plugins + Geïnstalleerde LADSPA-plugins oplijsten + + + + plugin for using arbitrary LADSPA-effects inside LMMS. + plugin voor het gebruik van arbitraire LADSPA-effecten binnen LMMS. + + + + Incomplete monophonic imitation TB-303 + + + + + plugin for using arbitrary LV2-effects inside LMMS. + + + + + plugin for using arbitrary LV2 instruments inside LMMS. + + + + + Filter for exporting MIDI-files from LMMS + Filter voor exporteren van MIDI-bestanden van LMMS + + + + Filter for importing MIDI-files into LMMS + Filter, om MIDI-bestanden in LMMS te importeren + + + + Monstrous 3-oscillator synth with modulation matrix + Monsterlijke 3-oscillator synth met modulatiematrix + + + + A multitap echo delay plugin + Een multitap-echo-delay-plugin + + + + A NES-like synthesizer + Een NES-achtige synthesizer + + + + 2-operator FM Synth + 2-operator FM-synth + + + + Additive Synthesizer for organ-like sounds + Additive Synthesizer voor orgelachtige geluiden + + + + GUS-compatible patch instrument + GUS-compatibel patch-instrument + + + + Plugin for controlling knobs with sound peaks + Plugin voor het bedienen van knoppen met geluidspieken + + + + Reverb algorithm by Sean Costello + Reverb-algoritme door Sean Costello + + + + Player for SoundFont files + Speler voor SoundFont-bestanden + + + + LMMS port of sfxr + LMMS port van sfxr + + + + Emulation of the MOS6581 and MOS8580 SID. +This chip was used in the Commodore 64 computer. + Emulatie van de MOS6581 en MOS8580 SID. +Deze chip werd gebruikt in de Commodore 64 computer. + + + + A graphical spectrum analyzer. + Een grafische spectrum-analyzer. + + + + Plugin for enhancing stereo separation of a stereo input file + Plugin voor het verbeteren van stereo-scheiding van een stereo-invoerbestand. + + + + Plugin for freely manipulating stereo output + Plugin voor het vrij manipuleren voor stereo-uitoer + + + + Tuneful things to bang on + Welluidende zaken om te knallen + + + + Three powerful oscillators you can modulate in several ways + Drie krachtige oscillators die u op verschillende manieren kunt moduleren + + + + A stereo field visualizer. + + + + + VST-host for using VST(i)-plugins within LMMS + VST-Host voor gebruik van VST(i)-plugins binnen LMMS + + + + Vibrating string modeler + Modeler voor trillende snaren + + + + plugin for using arbitrary VST effects inside LMMS. + plugin voor het gebruik van arbitraire VST-effecten binnen LMMS. + + + + 4-oscillator modulatable wavetable synth + 4-oscillator moduleerbare wavetable-synth + + + + plugin for waveshaping + plugin voor golfvorming + + + + Mathematical expression parser + Wiskundige uitdrukking-verwerker + + + + Embedded ZynAddSubFX + Ingebedde ZynAddSubFX + + + + An all-pass filter allowing for extremely high orders. + + + + + Granular pitch shifter + + + + + Upwards/downwards multiband compression plugin powered by the eldritch elder god LOMMUS. + + + + + Basic Slicer + + + + + Tap to the beat + + + + + PluginEdit + + + Plugin Editor + + + + + Edit + + + + + Control + Bediening + + + + MIDI Control Channel: + + + + + N + + + + + Output dry/wet (100%) + + + + + Output volume (100%) + + + + + Balance Left (0%) + + + + + + Balance Right (0%) + + + + + Use Balance + + + + + Use Panning + + + + + Settings + Instellingen + + + + Use Chunks + + + + + Audio: + + + + + Fixed-Size Buffer + + + + + Force Stereo (needs reload) + + + + + MIDI: + + + + + Map Program Changes + + + + + Send Notes + + + + + Send Bank/Program Changes + + + + + Send Control Changes + + + + + Send Channel Pressure + + + + + Send Note Aftertouch + + + + + Send Pitchbend + + + + + Send All Sound/Notes Off + + + + + +Plugin Name + + + + + + Program: + + + + + MIDI Program: + + + + + Save State + + + + + Load State + + + + + Information + + + + + Label/URI: + + + + + Name: + + + + + Type: + Soort: + + + + Maker: + + + + + Copyright: + + + + + Unique ID: + + + + + PluginFactory + + + Plugin not found. + Plug-in niet gevonden. + + + + LMMS plugin %1 does not have a plugin descriptor named %2! + LMMS-plugin %1 heeft geen plugin-descriptor die %2 heet! + + + + PluginListDialog + + + Carla - Add New + + + + + Requirements + + + + + With Custom GUI + + + + + With CV Ports + + + + + Real-time safe only + + + + + Stereo only + + + + + With Inline Display + + + + + Favorites only + + + + + (Number of Plugins go here) + + + + + &Add Plugin + + + + + Cancel + + + + + Refresh + + + + + Reset filters - - Plugin Version + + + + + + + + + + + + + + + + + TextLabel - - <br>Version %1<br>Carla is a fully-featured audio plugin host%2.<br><br>Copyright (C) 2011-2019 falkTX<br> + + Format: - - - (Engine not running) + + Architecture: - - Everything! (Including LRDF) + + Type: - - Everything! (Including CustomData/Chunks) + + MIDI Ins: - - About 110&#37; complete (using custom extensions)<br/>Implemented Feature/Extensions:<ul><li>http://lv2plug.in/ns/ext/atom</li><li>http://lv2plug.in/ns/ext/buf-size</li><li>http://lv2plug.in/ns/ext/data-access</li><li>http://lv2plug.in/ns/ext/event</li><li>http://lv2plug.in/ns/ext/instance-access</li><li>http://lv2plug.in/ns/ext/log</li><li>http://lv2plug.in/ns/ext/midi</li><li>http://lv2plug.in/ns/ext/options</li><li>http://lv2plug.in/ns/ext/parameters</li><li>http://lv2plug.in/ns/ext/port-props</li><li>http://lv2plug.in/ns/ext/presets</li><li>http://lv2plug.in/ns/ext/resize-port</li><li>http://lv2plug.in/ns/ext/state</li><li>http://lv2plug.in/ns/ext/time</li><li>http://lv2plug.in/ns/ext/uri-map</li><li>http://lv2plug.in/ns/ext/urid</li><li>http://lv2plug.in/ns/ext/worker</li><li>http://lv2plug.in/ns/extensions/ui</li><li>http://lv2plug.in/ns/extensions/units</li><li>http://home.gna.org/lv2dynparam/rtmempool/v1</li><li>http://kxstudio.sf.net/ns/lv2ext/external-ui</li><li>http://kxstudio.sf.net/ns/lv2ext/programs</li><li>http://kxstudio.sf.net/ns/lv2ext/props</li><li>http://kxstudio.sf.net/ns/lv2ext/rtmempool</li><li>http://ll-plugins.nongnu.org/lv2/ext/midimap</li><li>http://ll-plugins.nongnu.org/lv2/ext/miditype</li></ul> + + Audio Ins: - - - - Using Juce host + + CV Outs: - - About 85% complete (missing vst bank/presets and some minor stuff) + + MIDI Outs: - - - CarlaHostW - - MainWindow + + Parameter Ins: - - Rack + + Parameter Outs: - - Patchbay + + Audio Outs: - - Logs + + CV Ins: - - Loading... + + UniqueID: - - Buffer Size: + + Has Inline Display: - - Sample Rate: + + Has Custom GUI: - - ? Xruns + + Is Synth: - - DSP Load: %p% + + Is Bridged: - - &File - &Bestand + + Information + - - &Engine + + Name - - &Plugin + + Label/Id/URI - - Macros (all plugins) + + Maker - - &Canvas + + Binary/Filename - - Zoom + + Format - - &Settings + + Internal - - &Help - &Help + + LADSPA + - - toolBar + + DSSI - - Disk + + LV2 - - - Home - Home + + VST2 + - - Transport + + VST3 - - Playback Controls + + CLAP - - Time Information + + AU - - Frame: + + JSFX - - 000'000'000 + + Sound Kits - - Time: - Tijd: + + Type + - - 00:00:00 + + Effects - - BBT: + + Instruments - - 000|00|0000 + + MIDI Plugins - - Settings - Instellingen + + Other/Misc + - - BPM + + Category - - Use JACK Transport + + All - - Use Ableton Link + + Delay - - &New - &Nieuw + + Distortion + - - Ctrl+N + + Dynamics - - &Open... - &Openen... + + EQ + - - - Open... + + Filter - - Ctrl+O + + Modulator - - &Save - Op&slaan + + Synth + - - Ctrl+S + + Utility - - Save &As... - Opslaan &als... + + + Other + - - - Save As... + + Architecture - - Ctrl+Shift+S + + + Native - - &Quit - &Afsluiten + + Bridged + - - Ctrl+Q + + Bridged (Wine) - - &Start + + Focus Text Search - - F5 + + Ctrl+F - - St&op + + Bridged (32bit) - - F6 + + Discovering internal plugins... - - &Add Plugin... + + Discovering LADSPA plugins... - - Ctrl+A + + Discovering DSSI plugins... - - &Remove All + + Discovering LV2 plugins... - - Enable + + Discovering VST2 plugins... - - Disable + + Discovering VST3 plugins... - - 0% Wet (Bypass) + + Discovering CLAP plugins... - - 100% Wet + + Discovering AU plugins... - - 0% Volume (Mute) + + Discovering JSFX plugins... - - 100% Volume + + Discovering SF2 kits... - - Center Balance + + Discovering SFZ kits... - - &Play + + Unknown - - Ctrl+Shift+P + + + + + Yes - - &Stop + + + + + No + + + PluginParameter - - Ctrl+Shift+X + + Form - - &Backwards + + Parameter Name - - Ctrl+Shift+B + + TextLabel - - &Forwards + + ... + + + PluginRefreshDialog - - Ctrl+Shift+F + + Plugin Refresh - - &Arrange + + Search for: - - Ctrl+G + + All plugins, ignoring cache - - - &Refresh + + Updated plugins only - - Ctrl+R + + Check previously invalid plugins - - Save &Image... + + Press 'Scan' to begin the search - - Auto-Fit + + Scan - - Zoom In + + >> Skip + + + + + Close + + + + + PluginWidget + + + + + + + Frame - - Ctrl++ + + Enable + + + + + On/Off + Aan/uit + + + + + + + PluginName + + + + + MIDI + MIDI + + + + AUDIO IN + + + + + AUDIO OUT + + + + + GUI + + + + + Edit + + + + + Remove + + + + + Plugin Name + + + + + Preset: + + + + + ProjectRenderer + + + WAV (*.wav) + WAV (*.wav) + + + + FLAC (*.flac) + FLAC (*.flac) + + + + OGG (*.ogg) + OGG (*.ogg) + + + + MP3 (*.mp3) + MP3 (*.mp3) + + + + QGroupBox + + + + Settings for %1 + + + QObject - - Zoom Out + + Reload Plugin - - Ctrl+- - + + Show GUI + GUI weergeven - - Zoom 100% - + + Help + Help - - Ctrl+1 + + LADSPA plugins - - Show &Toolbar + + The project contains %1 LADSPA plugin(s) which might have not been restored correctly! Please check the project. - - &Configure Carla + + URI: - - &About + + Project: - - About &JUCE + + Maker: - - About &Qt + + Homepage: - - Show Canvas &Meters + + License: - - Show Canvas &Keyboard + + File: %1 - - Show Internal + + failed to load description - - Show External + + Open audio file - - Show Time Panel + + Error loading sample - - Show &Side Panel + + %1 (unsupported) + + + QWidget - - &Connect... - + + + Name: + Naam: - - Compact Slots - + + Maker: + Maker: - - Expand Slots - + + Copyright: + Auteursrecht: - - Perform secret 1 - + + Requires Real Time: + Vereist realtime: - - Perform secret 2 - + + + + Yes + Ja - - Perform secret 3 - + + + + No + Nee - - Perform secret 4 - + + Real Time Capable: + Realtime-capabel: - - Perform secret 5 - + + In Place Broken: + Defect op zijn plaats: - - Add &JACK Application... - + + Channels In: + Invoerkanalen: - - &Configure driver... - + + Channels Out: + Uitvoerkanalen: - - Panic - + + File: %1 + Bestand: %1 - - Open custom driver panel... - + + File: + Bestand: - CarlaHostWindow + XYControllerW - - Export as... + + XY Controller - - - - - Error - Fout - - - - Failed to load project + + X Controls: - - Failed to save project + + Y Controls: - - Quit + + Smooth - - Are you sure you want to quit Carla? + + &Settings - - Could not connect to Audio backend '%1', possible reasons: -%2 + + Channels - - Could not connect to Audio backend '%1' + + &File - - Warning + + Show MIDI &Keyboard - - There are still some plugins loaded, you need to remove them to stop the engine. -Do you want to do this now? + + (All) - - - CarlaInstrumentView - - - Show GUI - GUI weergeven - - - - CarlaSettingsW - - Settings - Instellingen + + 1 + - - main + + 2 - - canvas + + 3 - - engine + + 4 - - osc + + 5 - - file-paths + + 6 - - plugin-paths + + 7 - - wine + + 8 - - experimental + + 9 - - Widget + + 10 - - - Main + + 11 - - - Canvas + + 12 - - - Engine + + 13 - - File Paths + + 14 - - Plugin Paths + + 15 - - Wine + + 16 - - - Experimental + + &Quit - - <b>Main</b> + + Esc - - Paths - Paden + + (None) + + + + lmms::AmplifierControls - - Default project folder: + + Volume - - Interface + + Panning - - Interface refresh interval: + + Left gain - - - ms + + Right gain + + + lmms::AudioFileProcessor - - Show console output in Logs tab (needs engine restart) + + Amplify - - Show a confirmation dialog before quitting + + Start of sample - - - Theme + + End of sample - - Use Carla "PRO" theme (needs restart) + + Loopback point - - Color scheme: + + Reverse sample - - Black + + Loop mode - - System + + Stutter - - Enable experimental features + + Interpolation mode - - <b>Canvas</b> + + None - - Bezier Lines + + Linear - - Theme: + + Sinc - - Size: - Grootte: + + Sample not found + + + + lmms::AudioJack - - 775x600 + + JACK client restarted - - 1550x1200 + + LMMS was kicked by JACK for some reason. Therefore the JACK backend of LMMS has been restarted. You will have to make manual connections again. - - 3100x2400 + + JACK server down - - 4650x3600 + + The JACK server seems to have been shutdown and starting a new instance failed. Therefore LMMS is unable to proceed. You should save your project and restart JACK and LMMS. - - 6200x4800 + + Client name - - Options + + Channels + + + lmms::AudioOss - - Auto-hide groups with no ports + + Device - - Auto-select items on hover + + Channels + + + lmms::AudioPortAudio::setupWidget - - Basic eye-candy (group shadows) + + Backend - - Render Hints + + Device + + + lmms::AudioPulseAudio - - Anti-Aliasing + + Device - - Full canvas repaints (slower, but prevents drawing issues) + + Channels + + + lmms::AudioSdl::setupWidget - - <b>Engine</b> + + Playback device - - - Core + + Input device + + + lmms::AudioSndio - - Single Client + + Device - - Multiple Clients + + Channels + + + lmms::AudioSoundIo::setupWidget - - - Continuous Rack + + Backend - - - Patchbay + + Device + + + lmms::AutomatableModel - - Audio driver: + + &Reset (%1%2) - - Process mode: + + &Copy value (%1%2) - - - - - Maximum number of parameters to allow in the built-in 'Edit' dialog + + &Paste value (%1%2) - - Max Parameters: + + &Paste value - - ... + + Edit song-global automation - - Reset Xrun counter after project load + + Remove song-global automation - - Plugin UIs + + Remove all linked controls - - - How much time to wait for OSC GUIs to ping back the host + + Connected to %1 - - UI Bridge Timeout: + + Connected to controller - - Use OSC-GUI bridges when possible, this way separating the UI from DSP code + + Edit connection... - - Use UI bridges instead of direct handling when possible + + Remove connection - - Make plugin UIs always-on-top + + Connect to controller... + + + lmms::AutomationClip - - Make plugin UIs appear on top of Carla (needs restart) + + Drag a control while pressing <%1> + + + lmms::AutomationTrack - - NOTE: Plugin-bridge UIs cannot be managed by Carla on macOS + + Automation track + + + lmms::BassBoosterControls - - - Restart the engine to load the new settings + + Frequency - - <b>OSC</b> + + Gain - - Enable OSC + + Ratio + + + lmms::BitInvader - - Enable TCP port + + Sample length - - - Use specific port: + + Interpolation - - Overridden by CARLA_OSC_TCP_PORT env var + + Normalize + + + lmms::BitcrushControls - - - Use randomly assigned port + + Input gain - - Enable UDP port + + Input noise - - Overridden by CARLA_OSC_UDP_PORT env var + + Output gain - - DSSI UIs require OSC UDP port enabled + + Output clip - - <b>File Paths</b> + + Sample rate - - Audio - Audio + + Stereo difference + - - MIDI - MIDI + + Levels + - - Used for the "audiofile" plugin + + Rate enabled - - Used for the "midifile" plugin + + Depth enabled + + + lmms::Clip - - - Add... + + Mute + + + lmms::CompressorControls - - - Remove + + Threshold - - - Change... + + Ratio - - <b>Plugin Paths</b> + + Attack - - LADSPA + + Release - - DSSI + + Knee - - LV2 + + Hold - - VST2 + + Range - - VST3 + + RMS Size - - SF2/3 + + Mid/Side - - SFZ + + Peak Mode - - Restart Carla to find new plugins + + Lookahead Length - - <b>Wine</b> + + Input Balance - - Executable + + Output Balance - - Path to 'wine' binary: + + Limiter - - Prefix + + Output Gain - - Auto-detect Wine prefix based on plugin filename + + Input Gain - - Fallback: + + Blend - - Note: WINEPREFIX env var is preferred over this fallback + + Stereo Balance - - Realtime Priority + + Auto Makeup Gain - - Base priority: + + Audition - - WineServer priority: + + Feedback - - These options are not available for Carla as plugin + + Auto Attack - - <b>Experimental</b> + + Auto Release - - Experimental options! Likely to be unstable! + + Lookahead - - Enable plugin bridges + + Tilt - - Enable Wine bridges + + Tilt Frequency - - Enable jack applications + + Stereo Link - - Export single plugins to LV2 + + Mix + + + lmms::Controller - - Load Carla backend in global namespace (NOT RECOMMENDED) + + Controller %1 + + + lmms::DelayControls - - Fancy eye-candy (fade-in/out groups, glow connections) + + Delay samples - - Use OpenGL for rendering (needs restart) + + Feedback - - High Quality Anti-Aliasing (OpenGL only) + + LFO frequency - - Render Ardour-style "Inline Displays" + + LFO amount - - Force mono plugins as stereo by running 2 instances at the same time. -This mode is not available for VST plugins. + + Output gain + + + lmms::DispersionControls - - Force mono plugins as stereo + + Amount - - Prevent plugins from doing bad stuff (needs restart) + + Frequency - - Whenever possible, run the plugins in bridge mode. + + Resonance - - Run plugins in bridge mode when possible + + Feedback - - - - - Add Path + + DC Offset Removal - CompressorControlDialog + lmms::DualFilterControls - - Threshold: + + Filter 1 enabled - - Volume at which the compression begins to take place + + Filter 1 type - - Ratio: - Ratio: - - - - How far the compressor must turn the volume down after crossing the threshold + + Cutoff frequency 1 - - Attack: - Attack: - - - - Speed at which the compressor starts to compress the audio + + Q/Resonance 1 - - Release: - Release: + + Gain 1 + - - Speed at which the compressor ceases to compress the audio + + Mix - - Knee: + + Filter 2 enabled - - Smooth out the gain reduction curve around the threshold + + Filter 2 type - - Range: + + Cutoff frequency 2 - - Maximum gain reduction + + Q/Resonance 2 - - Lookahead Length: + + Gain 2 - - How long the compressor has to react to the sidechain signal ahead of time + + + Low-pass - - Hold: - Hold: + + + Hi-pass + - - Delay between attack and release stages + + + Band-pass csg - - RMS Size: + + + Band-pass czpg - - Size of the RMS buffer + + + Notch - - Input Balance: + + + All-pass - - Bias the input audio to the left/right or mid/side + + + Moog - - Output Balance: + + + 2x Low-pass - - Bias the output audio to the left/right or mid/side + + + RC Low-pass 12 dB/oct - - Stereo Balance: + + + RC Band-pass 12 dB/oct - - Bias the sidechain signal to the left/right or mid/side + + + RC High-pass 12 dB/oct - - Stereo Link Blend: + + + RC Low-pass 24 dB/oct - - Blend between unlinked/maximum/average/minimum stereo linking modes + + + RC Band-pass 24 dB/oct - - Tilt Gain: + + + RC High-pass 24 dB/oct - - Bias the sidechain signal to the low or high frequencies. -6 db is lowpass, 6 db is highpass. + + + Vocal Formant - - Tilt Frequency: + + + 2x Moog - - Center frequency of sidechain tilt filter + + + SV Low-pass - - Mix: + + + SV Band-pass - - Balance between wet and dry signals + + + SV High-pass - - Auto Attack: + + + SV Notch - - Automatically control attack value depending on crest factor + + + Fast Formant - - Auto Release: + + + Tripole + + + lmms::DynProcControls - - Automatically control release value depending on crest factor + + Input gain - + Output gain - Uitvoer-gain + - - - Gain - Gain + + Attack time + - - Output volume + + Release time - - Input gain - Invoer-gain + + Stereo mode + + + + lmms::Effect - - Input volume + + Effect enabled - - Root Mean Square + + Wet/Dry mix - - Use RMS of the input + + Gate - - Peak + + Decay + + + lmms::EffectChain - - Use absolute value of the input + + Effects enabled + + + lmms::Engine - - Left/Right + + Generating wavetables - - Compress left and right audio + + Initializing data structures - - Mid/Side + + Opening audio and midi devices - - Compress mid and side audio + + Launching audio engine threads + + + lmms::EnvelopeAndLfoParameters - - Compressor + + Env pre-delay - - Compress the audio + + Env attack - - Limiter + + Env hold - - Set Ratio to infinity (is not guaranteed to limit audio volume) + + Env decay - - Unlinked + + Env sustain - - Compress each channel separately + + Env release - - Maximum + + Env mod amount - - Compress based on the loudest channel + + LFO pre-delay - - Average + + LFO attack - - Compress based on the averaged channel volume + + LFO frequency - - Minimum + + LFO mod amount - - Compress based on the quietest channel + + LFO wave shape - - Blend + + LFO frequency x 100 - - Blend between stereo linking modes + + Modulate env amount - - Auto Makeup Gain + + Sample not found + + + lmms::EqControls - - Automatically change makeup gain depending on threshold, knee, and ratio settings + + Input gain - - - Soft Clip + + Output gain - - Play the delta signal + + Low-shelf gain - - Use the compressor's output as the sidechain input + + Peak 1 gain - - Lookahead Enabled + + Peak 2 gain - - Enable Lookahead, which introduces 20 milliseconds of latency + + Peak 3 gain - - - CompressorControls - - Threshold + + Peak 4 gain - - Ratio - Ratio + + High-shelf gain + - - Attack - Attack + + HP res + - - Release - Release + + Low-shelf res + - - Knee + + Peak 1 BW - - Hold - Hold + + Peak 2 BW + - - Range + + Peak 3 BW - - RMS Size + + Peak 4 BW - - Mid/Side + + High-shelf res - - Peak Mode + + LP res - - Lookahead Length + + HP freq - - Input Balance + + Low-shelf freq - - Output Balance + + Peak 1 freq - - Limiter + + Peak 2 freq - - Output Gain - Uitvoer-gain + + Peak 3 freq + - - Input Gain - Invoer-gain + + Peak 4 freq + - - Blend + + High-shelf freq - - Stereo Balance + + LP freq - - Auto Makeup Gain + + HP active - - Audition + + Low-shelf active - - Feedback - Feedback + + Peak 1 active + - - Auto Attack + + Peak 2 active - - Auto Release + + Peak 3 active - - Lookahead + + Peak 4 active - - Tilt + + High-shelf active - - Tilt Frequency + + LP active - - Stereo Link + + LP 12 - - Mix - Mix + + LP 24 + - - - Controller - - Controller %1 - Controller %1 + + LP 48 + - - - ControllerConnectionDialog - - Connection Settings - Verbindingsinstellingen + + HP 12 + - - MIDI CONTROLLER - MIDI-CONTROLLER + + HP 24 + - - Input channel - Invoerkanaal + + HP 48 + - - CHANNEL - KANAAL + + Low-pass type + - - Input controller - Invoercontroller + + High-pass type + - - CONTROLLER - CONTROLLER + + Analyse IN + - - - Auto Detect - Automatisch detecteren + + Analyse OUT + + + + lmms::FlangerControls - - MIDI-devices to receive MIDI-events from - MIDI-apparaten om MIDI-events van te ontvangen + + Delay samples + - - USER CONTROLLER - GEBRUIKER CONTROLLER + + LFO frequency + - - MAPPING FUNCTION - MAPPING-FUNCTIE + + Amount + - - OK - Ok + + Stereo phase + - - Cancel - Annuleren + + Feedback + - - LMMS - LMMS + + Noise + - - Cycle Detected. - Cyclus gedetecteerd. + + Invert + - ControllerRackView + lmms::FreeBoyInstrument - - Controller Rack - Controller-rack + + Sweep time + - - Add - Toevoegen + + Sweep direction + - - Confirm Delete - Verwijderen beVestigen + + Sweep rate shift amount + - - Confirm delete? There are existing connection(s) associated with this controller. There is no way to undo. - Verwijderen beVestigen? Er zijn bestaande verbindingen geassocieerd met deze controller. Er is geen manier om dit ongedaan te maken. + + + Wave pattern duty cycle + - - - ControllerView - - Controls - Besturingen + + Channel 1 volume + - - Rename controller - Naam controller wijzigen + + + + Volume sweep direction + - - Enter the new name for this controller - Nieuwe naam voor deze controller opgeven + + + + Length of each step in sweep + - - LFO - LFO + + Channel 2 volume + - - &Remove this controller - Deze controller ve&rwijderen + + Channel 3 volume + - - Re&name this controller - &Naam van deze controller wijzigen + + Channel 4 volume + - - - CrossoverEQControlDialog - - Band 1/2 crossover: - Band 1/2 crossover: + + Shift Register width + - - Band 2/3 crossover: - Band 2/3 crossover: + + Right output level + - - Band 3/4 crossover: - Band 3/4 crossover: + + Left output level + - - Band 1 gain - Band 1 gain + + Channel 1 to SO2 (Left) + - - Band 1 gain: - Band 1 gain + + Channel 2 to SO2 (Left) + - - Band 2 gain - Band 2 gain + + Channel 3 to SO2 (Left) + - - Band 2 gain: - Band 2 gain: + + Channel 4 to SO2 (Left) + - - Band 3 gain - Band 3 gain + + Channel 1 to SO1 (Right) + - - Band 3 gain: - Band 3 gain: + + Channel 2 to SO1 (Right) + - - Band 4 gain - Band 4 gain + + Channel 3 to SO1 (Right) + - - Band 4 gain: - Band 4 gain: + + Channel 4 to SO1 (Right) + + + + + Treble + + + + + Bass + + + + lmms::GigInstrument - - Band 1 mute - Band 1 gedempt + + Bank + - - Mute band 1 - Band 1 dempen + + Patch + - - Band 2 mute - Band 2 gedempt + + Gain + + + + lmms::GranularPitchShifterControls - - Mute band 2 - Band 2 dempen + + Pitch + - - Band 3 mute - Band 3 gedempt + + Grain Size + - - Mute band 3 - Band 3 dempen + + Spray + - - Band 4 mute - Band 4 gedempt + + Jitter + - - Mute band 4 - Band 4 dempen + + Twitch + - - - DelayControls - - Delay samples - Samples vertragen + + Pitch Stereo Spread + - - Feedback - Feedback + + Spray Stereo + - - LFO frequency - LFO frequentie + + Shape + - - LFO amount - LFO-hoeveelheid + + Fade Length + - - Output gain - Uitvoer-gain + + Feedback + - - - DelayControlsDialog - - DELAY - DELAY + + Minimum Allowed Latency + - - Delay time - Delay-tijd + + Prefilter + - - FDBK - FDBK + + Density + - - Feedback amount - Feedback-hoeveelheid + + Glide + - - RATE - RATIO + + Ring Buffer Length + - - LFO frequency - LFO frequentie + + 5 Seconds + - - AMNT - HVHD + + 10 Seconds (Size) + - - LFO amount - LFO-hoeveelheid + + 40 Seconds (Size and Pitch) + - - Out gain - Uitvoer-gain + + 40 Seconds (Size and Spray and Jitter) + - - Gain - Gain + + 120 Seconds (All of the above) + - Dialog + lmms::InstrumentFunctionArpeggio - - Add JACK Application + + Arpeggio - - Note: Features not implemented yet are greyed out + + Arpeggio type - - Application + + Arpeggio range - - Name: + + Note repeats - - Application: + + Cycle steps - - From template + + Skip rate - - Custom + + Miss rate - - Template: + + Arpeggio time - - Command: + + Arpeggio gate - - Setup + + Arpeggio direction - - Session Manager: + + Arpeggio mode - - None - Geen + + Up + - - Audio inputs: + + Down - - MIDI inputs: + + Up and down - - Audio outputs: + + Down and up - - MIDI outputs: + + Random - - Take control of main application window + + Free - - Workarounds + + Sort - - Wait for external application start (Advanced, for Debug only) + + Sync + + + lmms::InstrumentFunctionNoteStacking - - Capture only the first X11 Window + + Chords - - Use previous client output buffer as input for the next client + + Chord type - - Simulate 16 JACK MIDI outputs, with MIDI channel as port index + + Chord range + + + lmms::InstrumentSoundShaping - - Error here + + Envelopes/LFOs - - Carla Control - Connect + + Filter type - - Remote setup + + Cutoff frequency - - UDP Port: + + Q/Resonance - - Remote host: + + Low-pass - - TCP Port: + + Hi-pass - - Reported host + + Band-pass csg - - Automatic + + Band-pass czpg - - Custom: + + Notch - - In some networks (like USB connections), the remote system cannot reach the local network. You can specify here which hostname or IP to make the remote Carla connect to. -If you are unsure, leave it as 'Automatic'. + + All-pass - - Set value - Waarde instellen + + Moog + - - TextLabel + + 2x Low-pass - - Scale Points + + RC Low-pass 12 dB/oct - - - DriverSettingsW - - Driver Settings + + RC Band-pass 12 dB/oct - - Device: + + RC High-pass 12 dB/oct - - Buffer size: + + RC Low-pass 24 dB/oct - - Sample rate: - Samplerate: + + RC Band-pass 24 dB/oct + - - Triple buffer + + RC High-pass 24 dB/oct - - Show Driver Control Panel + + Vocal Formant - - Restart the engine to load the new settings + + 2x Moog - - - DualFilterControlDialog - - - FREQ - FREQ + + SV Low-pass + - - - Cutoff frequency - Cutoff-frequentie + + SV Band-pass + - - - RESO - RESO + + SV High-pass + - - - Resonance - Resonantie + + SV Notch + - - - GAIN - GAIN + + Fast Formant + - - - Gain - Gain + + Tripole + + + + lmms::InstrumentTrack - - MIX - MIX + + + unnamed_track + - - Mix - Mix + + Base note + - - Filter 1 enabled - Filter 1 ingeschakeld + + First note + - - Filter 2 enabled - Filter 2 ingeschakeld + + Last note + - - Enable/disable filter 1 - Filter 1 in/uitschakelen + + Volume + - - Enable/disable filter 2 - Filter 2 in/uitschakelen + + Panning + - - - DualFilterControls - - Filter 1 enabled - Filter 1 ingeschakeld + + Pitch + - - Filter 1 type - Filter 1 type + + Pitch range + - - Cutoff frequency 1 - Cutoff-frequentie 1 + + Mixer channel + - - Q/Resonance 1 - Q/Resonantie 1 + + Master pitch + - - Gain 1 - Gain 1 + + Enable/Disable MIDI CC + - - Mix - Mix + + CC Controller %1 + - - Filter 2 enabled - Filter 2 ingeschakeld + + + Default preset + + + + lmms::Keymap - - Filter 2 type - Filter 2 type + + empty + + + + lmms::KickerInstrument - - Cutoff frequency 2 - Cutoff-frequentie 2 + + Start frequency + - - Q/Resonance 2 - Q/Resonantie 2 + + End frequency + - - Gain 2 - Gain 2 + + Length + - - - Low-pass - Low-pass + + Start distortion + - - - Hi-pass - High-pass + + End distortion + - - - Band-pass csg - BandPass csg + + Gain + - - - Band-pass czpg - Bandpass czpg + + Envelope slope + - - - Notch - Notch + + Noise + - - - All-pass - All-pass + + Click + - - - Moog - Moog + + Frequency slope + - - - 2x Low-pass - 2x Low-pass + + Start from note + - - - RC Low-pass 12 dB/oct - RC low-pass 12 dB/oct + + End to note + + + + lmms::LOMMControls - - - RC Band-pass 12 dB/oct - RC band-pass 12 dB/oct + + Depth + - - - RC High-pass 12 dB/oct - RC high-pass 12 dB/oct + + Time + - - - RC Low-pass 24 dB/oct - RC low-pass 24 dB/oct + + Input Volume + - - - RC Band-pass 24 dB/oct - RC band-pass 24 dB/oct + + Output Volume + - - - RC High-pass 24 dB/oct - RC high-pass 24 dB/oct + + Upward Depth + - - - Vocal Formant - Stemvorming + + Downward Depth + - - - 2x Moog - 2 x Moog + + High/Mid Split + - - - SV Low-pass - SV low-pass + + Mid/Low Split + - - - SV Band-pass - SV band-pass + + Enable High/Mid Split + - - - SV High-pass - SV high-pass + + Enable Mid/Low Split + - - - SV Notch - SV Notch + + Enable High Band + - - - Fast Formant - Snel vormend + + Enable Mid Band + - - - Tripole - Tripole + + Enable Low Band + - - - Editor - - Transport controls - Afspeelbediening + + High Input Volume + - - Play (Space) - Afspelen (spatie) + + Mid Input Volume + - - Stop (Space) - Stoppen (spatie) + + Low Input Volume + - - Record - Opnemen + + High Output Volume + - - Record while playing - Opnemen tijdens afspelen + + Mid Output Volume + - - Toggle Step Recording - Stap-opnemen in-/uitschakelen + + Low Output Volume + - - - Effect - - Effect enabled - Effect ingeschakeld + + Above Threshold High + - - Wet/Dry mix - Wet/dry-mix + + Above Threshold Mid + - - Gate - Gate + + Above Threshold Low + - - Decay - Decay + + Above Ratio High + - - - EffectChain - - Effects enabled - Effecten ingeschakeld + + Above Ratio Mid + - - - EffectRackView - - EFFECTS CHAIN - EFFECT-CHAIN + + Above Ratio Low + - - Add effect - Effect toevoegen + + Below Threshold High + - - - EffectSelectDialog - - Add effect - Effect toevoegen + + Below Threshold Mid + - - - Name - Naam + + Below Threshold Low + - - Type - Type + + Below Ratio High + - - Description - Beschrijving + + Below Ratio Mid + - - Author - Auteur + + Below Ratio Low + - - - EffectView - - On/Off - Aan/uit + + Attack High + - - W/D - W/D + + Attack Mid + - - Wet Level: - Wet-niveau: + + Attack Low + - - DECAY - DECAY + + Release High + - - Time: - Tijd: + + Release Mid + - - GATE - GATE + + Release Low + - - Gate: - Gate: + + RMS Time + - - Controls - Besturingen + + Knee + - - Move &up - Om&hoog verplaatsen + + Range + - - Move &down - Om&laag verplaatsen + + Balance + - - &Remove this plugin - Deze plugin ve&rwijderen + + Scale output volume with Depth + - - - EnvelopeAndLfoParameters - - Env pre-delay - Env pre-delay + + Stereo Link + - - Env attack - Env attack + + Auto Time + - - Env hold - Env hold + + Mix + - - Env decay - Env decay + + Feedback + - - Env sustain - Env sustain + + Mid/Side + - - Env release - Env release + + Lookahead + - - Env mod amount - Env mod-hoeveelheid + + Lookahead Length + - - LFO pre-delay - LFO pre-delay + + Suppress upward compression for side band + + + + lmms::LadspaControl - - LFO attack - LFO-attack + + Link channels + + + + lmms::LadspaEffect - - LFO frequency - LFO frequentie + + Unknown LADSPA plugin %1 requested. + + + + lmms::Lb302Synth - - LFO mod amount - LFO mod-hoeveelheid + + VCF Cutoff Frequency + - - LFO wave shape - LFO golfvorm + + VCF Resonance + - - LFO frequency x 100 - LFO frequentie x 100 + + VCF Envelope Mod + - - Modulate env amount - Env-intensiteit moduleren + + VCF Envelope Decay + - - - EnvelopeAndLfoView - - - DEL - DEL + + Distortion + - - - Pre-delay: - Pre-delay: + + Waveform + - - - ATT - ATT + + Slide Decay + - - - Attack: - Attack: + + Slide + - - HOLD - HOLD + + Accent + - - Hold: - Hold: + + Dead + - - DEC - DEC + + 24dB/oct Filter + + + + lmms::LfoController - - Decay: - Decay: + + LFO Controller + - - SUST - SUST + + Base value + - - Sustain: - Sustain: + + Oscillator speed + - - REL - REL + + Oscillator amount + - - Release: - Release: + + Oscillator phase + - - - AMT - INT + + Oscillator waveform + - - - Modulation amount: - Modulatie-intensiteit: + + Frequency Multiplier + - - SPD - SPD + + Sample not found + + + + lmms::MalletsInstrument - - Frequency: - Frequentie: + + Hardness + - - FREQ x 100 - FREQ x 100 + + Position + - - Multiply LFO frequency by 100 - LFO-frequentie vermenigvuldigen met 100 + + Vibrato gain + - - MODULATE ENV AMOUNT - ENV-INTENSITEIT MODULEREN + + Vibrato frequency + - - Control envelope amount by this LFO - Envelope-hoeveelheid bedienen met deze LFO + + Stick mix + - - ms/LFO: - ms/LFO: + + Modulator + - - Hint - Tip + + Crossfade + - - Drag and drop a sample into this window. - Een sample in dit venster slepen en neerzetten + + LFO speed + - - - EqControls - - Input gain - Invoer-gain + + LFO depth + - - Output gain - Uitvoer-gain + + ADSR + - - Low-shelf gain - Low-shelf gain + + Pressure + - - Peak 1 gain - Piek 1 gain + + Motion + - - Peak 2 gain - Piek 2 gain + + Speed + - - Peak 3 gain - Piek 3 gain + + Bowed + - - Peak 4 gain - Piek 4 gain + + Instrument + - - High-shelf gain - High-shelf gain + + Spread + - - HP res - HP-res + + Randomness + - - Low-shelf res - Low-shelf res + + Marimba + - - Peak 1 BW - Piek 1 BW + + Vibraphone + - - Peak 2 BW - Piek 2 BW + + Agogo + - - Peak 3 BW - Piek 3 BW + + Wood 1 + - - Peak 4 BW - Piek 4 BW + + Reso + - - High-shelf res - High-shelf res + + Wood 2 + - - LP res - LP-res + + Beats + - - HP freq - HP-freq + + Two fixed + - - Low-shelf freq - Low-shelf freq + + Clump + - - Peak 1 freq - Piek 1 freq + + Tubular bells + - - Peak 2 freq - Piek 2 freq + + Uniform bar + - - Peak 3 freq - Piek 3 freq + + Tuned bar + - - Peak 4 freq - Piek 4 freq + + Glass + - - High-shelf freq - High-shelf freq + + Tibetan bowl + + + + lmms::MeterModel - - LP freq - LP-freq + + Numerator + - - HP active - HP actief + + Denominator + + + + lmms::Microtuner - - Low-shelf active - Low-shelf actief + + Microtuner + - - Peak 1 active - Piek 1 actief + + Microtuner on / off + - - Peak 2 active - Piek 2 actief + + Selected scale + - - Peak 3 active - Piek 3 actief + + Selected keyboard mapping + + + + lmms::MidiController - - Peak 4 active - Piek 4 actief + + MIDI Controller + - - High-shelf active - High-shelf actief + + unnamed_midi_controller + + + + lmms::MidiImport - - LP active - LP actief + + + Setup incomplete + - - LP 12 - LP 12 + + You have not set up a default soundfont in the settings dialog (Edit->Settings). Therefore no sound will be played back after importing this MIDI file. You should download a General MIDI soundfont, specify it in settings dialog and try again. + - - LP 24 - LP 24 + + You did not compile LMMS with support for SoundFont2 player, which is used to add default sound to imported MIDI files. Therefore no sound will be played back after importing this MIDI file. + - - LP 48 - LP 48 + + MIDI Time Signature Numerator + - - HP 12 - HP 12 + + MIDI Time Signature Denominator + - - HP 24 - HP 24 + + Numerator + - - HP 48 - HP 48 + + Denominator + - - Low-pass type - Low-pass type + + + Tempo + - - High-pass type - High-pass type + + Track + + + + lmms::MidiJack - - Analyse IN - IN analyseren + + JACK server down + When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (title) + - - Analyse OUT - UIT analyseren + + The JACK server seems to be shuted down. + When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (dialog message) + - EqControlsDialog + lmms::MidiPort - - HP - HP + + Input channel + - - Low-shelf - Low-shelf + + Output channel + - - Peak 1 - Piek 1 + + Input controller + - - Peak 2 - Piek 2 + + Output controller + - - Peak 3 - Piek 3 + + Fixed input velocity + - - Peak 4 - Piek 4 + + Fixed output velocity + - - High-shelf - High-shelf + + Fixed output note + - - LP - LP + + Output MIDI program + - - Input gain - Invoer-gain + + Base velocity + - - - - Gain - Gain + + Receive MIDI-events + - - Output gain - Uitvoer-gain + + Send MIDI-events + + + + lmms::Mixer - - Bandwidth: - Bandbreedte: + + Master + - - Octave - Octaaf + + + + Channel %1 + - - Resonance : - Resonantie: + + Volume + - - Frequency: - Frequentie: + + Mute + - - LP group - LP groep + + Solo + + + + lmms::MixerRoute - - HP group - HP groep + + + Amount to send from channel %1 to channel %2 + - EqHandle + lmms::MonstroInstrument - - Reso: - Reso: + + Osc 1 volume + - - BW: - BW: + + Osc 1 panning + - - - Freq: - Freq: + + Osc 1 coarse detune + - - - ExportProjectDialog - - Export project - Project exporteren + + Osc 1 fine detune left + - - Export as loop (remove extra bar) - Exporteren als loop (extra balk verwijderen) + + Osc 1 fine detune right + - - Export between loop markers - Exporteren tussen loopmarkeringen + + Osc 1 stereo phase offset + - - Render Looped Section: - Herhaalde sectie renderen: + + Osc 1 pulse width + - - time(s) - keer + + Osc 1 sync send on rise + - - File format settings - Bestandsformaat-instellingen + + Osc 1 sync send on fall + - - File format: - Bestandsformaat: + + Osc 2 volume + - - Sampling rate: - Samplerate: + + Osc 2 panning + - - 44100 Hz - 44100 Hz + + Osc 2 coarse detune + - - 48000 Hz - 48000 Hz + + Osc 2 fine detune left + - - 88200 Hz - 88200 Hz + + Osc 2 fine detune right + - - 96000 Hz - 96000 Hz + + Osc 2 stereo phase offset + - - 192000 Hz - 192000 Hz + + Osc 2 waveform + - - Bit depth: - Bitdiepte: + + Osc 2 sync hard + - - 16 Bit integer - 16-bit integer + + Osc 2 sync reverse + - - 24 Bit integer - 24-bit integer + + Osc 3 volume + - - 32 Bit float - 32-bit float + + Osc 3 panning + - - Stereo mode: - Stereomodus: + + Osc 3 coarse detune + - - Mono - Mono + + Osc 3 Stereo phase offset + - - Stereo - Stereo + + Osc 3 sub-oscillator mix + - - Joint stereo - Joint stereo + + Osc 3 waveform 1 + + + + + Osc 3 waveform 2 + - - Compression level: - Compressieniveau: + + Osc 3 sync hard + - - Bitrate: - Bitrate: + + Osc 3 Sync reverse + - - 64 KBit/s - 64 kbit/s + + LFO 1 waveform + - - 128 KBit/s - 128 kbit/s + + LFO 1 attack + - - 160 KBit/s - 160 kbit/s + + LFO 1 rate + - - 192 KBit/s - 192 kbit/s + + LFO 1 phase + - - 256 KBit/s - 256 kbit/s + + LFO 2 waveform + - - 320 KBit/s - 320 kbit/s + + LFO 2 attack + - - Use variable bitrate - Variabele bitrate gebruiken + + LFO 2 rate + - - Quality settings - Kwaliteitsinstellingen + + LFO 2 phase + - - Interpolation: - Interpolatie: + + Env 1 pre-delay + - - Zero order hold - Zero order hold + + Env 1 attack + - - Sinc worst (fastest) - Sinc slechtste (snelste) + + Env 1 hold + - - Sinc medium (recommended) - Sinc medium (aanbevolen) + + Env 1 decay + - - Sinc best (slowest) - Sinc beste (traagste) + + Env 1 sustain + - - Oversampling: - Oversampling: + + Env 1 release + - - 1x (None) - 1x (geen) + + Env 1 slope + - - 2x - 2x + + Env 2 pre-delay + - - 4x - 4x + + Env 2 attack + - - 8x - 8x + + Env 2 hold + - - Start - Starten + + Env 2 decay + - - Cancel - Annuleren + + Env 2 sustain + - - Could not open file - Kan bestand niet openen + + Env 2 release + - - Could not open file %1 for writing. -Please make sure you have write permission to the file and the directory containing the file and try again! - Kon bestand %1 niet openen om te schrijven. -Zorg ervoor dat u schrijfbevoegdheid heeft voor het bestand en voor de map die het bestand bevat en probeer het opnieuw! + + Env 2 slope + - - Export project to %1 - Project exporteren naar %1 + + Osc 2+3 modulation + - - ( Fastest - biggest ) - ( Snelste - grootste ) + + Selected view + - - ( Slowest - smallest ) - ( Traagste - kleinste ) + + Osc 1 - Vol env 1 + - - Error - Fout + + Osc 1 - Vol env 2 + - - Error while determining file-encoder device. Please try to choose a different output format. - Fout bij vaststellen van bestands-encoder-apparaat. Probeer een ander uitvoerformaat te kiezen. + + Osc 1 - Vol LFO 1 + - - Rendering: %1% - Renderen: %1 % + + Osc 1 - Vol LFO 2 + - - - Fader - - Set value - Waarde instellen + + Osc 2 - Vol env 1 + - - Please enter a new value between %1 and %2: - Voer een nieuwe waarde in tussen %1 en %2: + + Osc 2 - Vol env 2 + - - - FileBrowser - - User content + + Osc 2 - Vol LFO 1 - - Factory content + + Osc 2 - Vol LFO 2 - - Browser - Verkenner + + Osc 3 - Vol env 1 + - - Search - Zoeken + + Osc 3 - Vol env 2 + - - Refresh list - Lijst verversen + + Osc 3 - Vol LFO 1 + - - - FileBrowserTreeWidget - - Send to active instrument-track - Naar actieve instrument-track zenden + + Osc 3 - Vol LFO 2 + - - Open containing folder + + Osc 1 - Phs env 1 - - Song Editor - Song-editor + + Osc 1 - Phs env 2 + - - BB Editor + + Osc 1 - Phs LFO 1 - - Send to new AudioFileProcessor instance + + Osc 1 - Phs LFO 2 - - Send to new instrument track + + Osc 2 - Phs env 1 - - (%2Enter) + + Osc 2 - Phs env 2 - - Send to new sample track (Shift + Enter) + + Osc 2 - Phs LFO 1 - - Loading sample - Sample laden + + Osc 2 - Phs LFO 2 + - - Please wait, loading sample for preview... - Even geduld, sample laden voor voorbeeld... + + Osc 3 - Phs env 1 + - - Error - Fout + + Osc 3 - Phs env 2 + - - %1 does not appear to be a valid %2 file - %1 lijkt geen geldig %2-bestand te zijn + + Osc 3 - Phs LFO 1 + - - --- Factory files --- - --- Factory-bestanden --- + + Osc 3 - Phs LFO 2 + - - - FlangerControls - - Delay samples - Samples vertragen + + Osc 1 - Pit env 1 + - - LFO frequency - LFO frequentie + + Osc 1 - Pit env 2 + - - Seconds - Seconden + + Osc 1 - Pit LFO 1 + - - Stereo phase + + Osc 1 - Pit LFO 2 - - Regen - Regen + + Osc 2 - Pit env 1 + - - Noise - Ruis + + Osc 2 - Pit env 2 + - - Invert - Inverteren + + Osc 2 - Pit LFO 1 + - - - FlangerControlsDialog - - DELAY - DELAY + + Osc 2 - Pit LFO 2 + - - Delay time: - Delay-tijd: + + Osc 3 - Pit env 1 + - - RATE - RATIO + + Osc 3 - Pit env 2 + - - Period: - Periode: + + Osc 3 - Pit LFO 1 + - - AMNT - HVHD + + Osc 3 - Pit LFO 2 + - - Amount: - Hoeveelheid: + + Osc 1 - PW env 1 + - - PHASE + + Osc 1 - PW env 2 - - Phase: + + Osc 1 - PW LFO 1 - - FDBK - FDBK + + Osc 1 - PW LFO 2 + - - Feedback amount: - Feedback-hoeveelheid: + + Osc 3 - Sub env 1 + - - NOISE - NOISE + + Osc 3 - Sub env 2 + - - White noise amount: - Hoeveelheid witte ruis: + + Osc 3 - Sub LFO 1 + - - Invert - Inverteren + + Osc 3 - Sub LFO 2 + - - - FreeBoyInstrument - - Sweep time - Sweep-tijd + + + Sine wave + - - Sweep direction - Sweep-richting + + Bandlimited Triangle wave + - - Sweep rate shift amount - Sweep rate shift hoeveelheid + + Bandlimited Saw wave + - - - Wave pattern duty cycle - Golfpatroon-inschakeltijd + + Bandlimited Ramp wave + - - Channel 1 volume - Volume kanaal 1 + + Bandlimited Square wave + - - - - Volume sweep direction - Volume sweep-richting + + Bandlimited Moog saw wave + - - - - Length of each step in sweep - Lengte van elke stap in sweep + + + Soft square wave + - - Channel 2 volume - Volume kanaal 2 + + Absolute sine wave + - - Channel 3 volume - Volume kanaal 3 + + + Exponential wave + - - Channel 4 volume - Volume kanaal 4 + + White noise + - - Shift Register width - Registerbreedte verschuiven + + Digital Triangle wave + - - Right output level - Rechter uitvoerniveau + + Digital Saw wave + - - Left output level - Linker uitvoerniveau + + Digital Ramp wave + - - Channel 1 to SO2 (Left) - Kanaal 1 naar SO2 (links) + + Digital Square wave + - - Channel 2 to SO2 (Left) - Kanaal 2 naar SO2 (links) + + Digital Moog saw wave + - - Channel 3 to SO2 (Left) - Kanaal 3 naar SO2 (links) + + Triangle wave + - - Channel 4 to SO2 (Left) - Kanaal 4 naar SO2 (links) + + Saw wave + - - Channel 1 to SO1 (Right) - Kanaal 1 naar SO1 (rechts) + + Ramp wave + - - Channel 2 to SO1 (Right) - Kanaal 2 naar SO1 (rechts) + + Square wave + - - Channel 3 to SO1 (Right) - Kanaal 3 naar SO1 (rechts) + + Moog saw wave + - - Channel 4 to SO1 (Right) - Kanaal 4 naar SO1 (rechts) + + Abs. sine wave + - - Treble - Treble + + Random + - - Bass - Bass + + Random smooth + - FreeBoyInstrumentView - - - Sweep time: - Sweep-tijd: - + lmms::NesInstrument - - Sweep time - Sweep-tijd + + Channel 1 enable + - - Sweep rate shift amount: - Sweep rate shift hoeveelheid: + + Channel 1 coarse detune + - - Sweep rate shift amount - Sweep rate shift hoeveelheid + + Channel 1 volume + - - - Wave pattern duty cycle: - Golfpatroon-inschakeltijd: + + Channel 1 envelope enable + - - - Wave pattern duty cycle - Golfpatroon-inschakeltijd + + Channel 1 envelope loop + - - Square channel 1 volume: - Blok kanaal 1 volume: + + Channel 1 envelope length + - - Square channel 1 volume - Blok kanaal 1 volume + + Channel 1 duty cycle + - - - - Length of each step in sweep: - Lengte van elke stap in sweep: + + Channel 1 sweep enable + - - - - Length of each step in sweep - Lengte van elke stap in sweep + + Channel 1 sweep amount + - - Square channel 2 volume: - Blok kanaal 2 volume: + + Channel 1 sweep rate + - - Square channel 2 volume - Blok kanaal 2 volume + + Channel 2 enable + - - Wave pattern channel volume: - Golfpatroon kanaalvolume: + + Channel 2 coarse detune + - - Wave pattern channel volume - Golfpatroon kanaalvolume + + Channel 2 volume + - - Noise channel volume: - Ruis kanaal volume: + + Channel 2 envelope enable + - - Noise channel volume - Ruis kanaal volume + + Channel 2 envelope loop + - - SO1 volume (Right): - S01 volume (rechts): + + Channel 2 envelope length + - - SO1 volume (Right) - S01 volume (rechts): + + Channel 2 duty cycle + - - SO2 volume (Left): - S02 volume (links): + + Channel 2 sweep enable + - - SO2 volume (Left) - SO2 volume (links) + + Channel 2 sweep amount + - - Treble: - Treble: + + Channel 2 sweep rate + - - Treble - Treble + + Channel 3 enable + - - Bass: - Bass: + + Channel 3 coarse detune + - - Bass - Bass + + Channel 3 volume + - - Sweep direction - Sweep-richting + + Channel 4 enable + - - - - - - Volume sweep direction - Volume sweep-richting + + Channel 4 volume + - - Shift register width - Registerbreedte verschuiven + + Channel 4 envelope enable + - - Channel 1 to SO1 (Right) - Kanaal 1 naar SO1 (rechts) + + Channel 4 envelope loop + - - Channel 2 to SO1 (Right) - Kanaal 2 naar SO1 (rechts) + + Channel 4 envelope length + - - Channel 3 to SO1 (Right) - Kanaal 3 naar SO1 (rechts) + + Channel 4 noise mode + - - Channel 4 to SO1 (Right) - Kanaal 4 naar SO1 (rechts) + + Channel 4 frequency mode + - - Channel 1 to SO2 (Left) - Kanaal 1 naar SO2 (links) + + Channel 4 noise frequency + - - Channel 2 to SO2 (Left) - Kanaal 2 naar SO2 (links) + + Channel 4 noise frequency sweep + - - Channel 3 to SO2 (Left) - Kanaal 3 naar SO2 (links) + + Channel 4 quantize + - - Channel 4 to SO2 (Left) - Kanaal 4 naar SO2 (links) + + Master volume + - - Wave pattern graph - Golfpatroon-grafiek + + Vibrato + - MixerLine - - - Channel send amount - Hoeveelheid kanaal-send - - - - Move &left - &Links verplaatsen - - - - Move &right - &Rechts verplaatsen - + lmms::OpulenzInstrument - - Rename &channel - &Kanaal hernoemen + + Patch + - - R&emove channel - Kanaal v&erwijderen + + Op 1 attack + - - Remove &unused channels - Ongebr&uikte kanalen verwijderen + + Op 1 decay + - - Set channel color + + Op 1 sustain - - Remove channel color + + Op 1 release - - Pick random channel color + + Op 1 level - - - MixerLineLcdSpinBox - - Assign to: - Toewijzen aan: + + Op 1 level scaling + - - New mixer Channel - Nieuw FX-kanaal + + Op 1 frequency multiplier + - - - Mixer - - Master - Master + + Op 1 feedback + - - - - Channel %1 - FX %1 + + Op 1 key scaling rate + - - Volume - Volume + + Op 1 percussive envelope + - - Mute - Dempen + + Op 1 tremolo + - - Solo - Solo + + Op 1 vibrato + - - - MixerView - - Mixer - mixer + + Op 1 waveform + - - Fader %1 - FX-fader %1 + + Op 2 attack + - - Mute - Dempen + + Op 2 decay + - - Mute this mixer channel - Dit FX-kanaal dempen + + Op 2 sustain + - - Solo - Solo + + Op 2 release + - - Solo mixer channel - Solo FX-kanaal + + Op 2 level + - - - MixerRoute - - - Amount to send from channel %1 to channel %2 - Te zenden hoeveelheid van kanaal %1 naar kanaal %2 + + Op 2 level scaling + - - - GigInstrument - - Bank - Bank + + Op 2 frequency multiplier + - - Patch - Patch + + Op 2 key scaling rate + - - Gain - Gain + + Op 2 percussive envelope + - - - GigInstrumentView - - - Open GIG file - GIG-bestand openen + + Op 2 tremolo + - - Choose patch - Patch kiezen + + Op 2 vibrato + - - Gain: - Gain: + + Op 2 waveform + - - GIG Files (*.gig) - GIG-bestanden (*.gig) + + FM + - - - GuiApplication - - Working directory - Werkmap + + Vibrato depth + - - The LMMS working directory %1 does not exist. Create it now? You can change the directory later via Edit -> Settings. - De LMMS-werkmap %1 bestaat niet. Nu aanmaken? U kunt de map later wijzigen via Bewerken -> Instellingen. + + Tremolo depth + + + + lmms::OrganicInstrument - - Preparing UI - UI voorbereiden + + Distortion + - - Preparing song editor - Song-editor voorbereiden + + Volume + + + + lmms::OscillatorObject - - Preparing mixer - Mixer voorbereiden + + Osc %1 waveform + - - Preparing controller rack - Controller-rack voorbereiden + + Osc %1 harmonic + - - Preparing project notes - Projectnotities voorbereiden + + + Osc %1 volume + - - Preparing beat/bassline editor - Beat- en baslijn-editor voorbereiden + + + Osc %1 panning + - - Preparing piano roll - Piano-roll voorbereiden + + Osc %1 stereo detuning + - - Preparing automation editor - Automatisering-editor voorbereiden + + Osc %1 coarse detuning + - - - InstrumentFunctionArpeggio - - Arpeggio - Arpeggio + + Osc %1 fine detuning left + - - Arpeggio type - Arpeggio type + + Osc %1 fine detuning right + - - Arpeggio range - Arpeggio bereik + + Osc %1 phase-offset + - - Note repeats + + Osc %1 stereo phase-detuning - - Cycle steps - Stappen doorlopen + + Osc %1 wave shape + - - Skip rate - Skip-ratio + + Modulation type %1 + + + + lmms::PatternTrack - - Miss rate - Miss-ratio + + Pattern %1 + - - Arpeggio time - Arpeggio tijd + + Clone of %1 + + + + lmms::PeakController - - Arpeggio gate - Arpeggio gate + + Peak Controller + - - Arpeggio direction - Arpeggio richting + + Peak Controller Bug + - - Arpeggio mode - Arpeggio modus + + Due to a bug in older version of LMMS, the peak controllers may not be connect properly. Please ensure that peak controllers are connected properly and re-save this file. Sorry for any inconvenience caused. + + + + lmms::PeakControllerEffectControls - - Up - Omhoog + + Base value + - - Down - Omlaag + + Modulation amount + - - Up and down - Omhoog en omlaag + + Attack + - - Down and up - Omlaag en omhoog + + Release + - - Random - Willekeurig + + Treshold + - - Free - Vrij + + Mute output + - - Sort - Sorteren + + Absolute value + - - Sync - Sync + + Amount multiplicator + - InstrumentFunctionArpeggioView - - - ARPEGGIO - ARPEGGIO - - - - RANGE - BEREIK - + lmms::Plugin - - Arpeggio range: - Arpeggio bereik: + + Plugin not found + - - octave(s) - octa(af)(ven) + + The plugin "%1" wasn't found or could not be loaded! +Reason: "%2" + - - REP + + Error while loading plugin - - Note repeats: + + Failed to load plugin "%1"! + + + lmms::ReverbSCControls - - time(s) + + Input gain - - CYCLE - DOORL + + Size + - - Cycle notes: - Noten doorlopen: + + Color + - - note(s) - no(o)t(en) + + Output gain + + + + lmms::SaControls - - SKIP - SKIP + + Pause + - - Skip rate: - Skip-ratio: + + Reference freeze + - - - - % - % + + Waterfall + - - MISS - MISS + + Averaging + - - Miss rate: - Miss-ratio: + + Stereo + - - TIME - TIJD + + Peak hold + - - Arpeggio time: - Arpeggio tijd: + + Logarithmic frequency + - - ms - ms + + Logarithmic amplitude + - - GATE - GATE + + Frequency range + - - Arpeggio gate: - Arpeggio gate: + + Amplitude range + - - Chord: - Akkoord: + + FFT block size + - - Direction: - Richting: + + FFT window type + - - Mode: - Modus: + + Peak envelope resolution + - - - InstrumentFunctionNoteStacking - - octave - octaaf + + Spectrum display resolution + - - - Major - Majeur + + Peak decay multiplier + - - Majb5 - Majb5 + + Averaging weight + - - minor - mineur + + Waterfall history size + - - minb5 - minb5 + + Waterfall gamma correction + - - sus2 - sus2 + + FFT window overlap + - - sus4 - sus4 + + FFT zero padding + - - aug - aug + + + Full (auto) + - - augsus4 - augsus4 + + + + Audible + - - tri - tri + + Bass + - - 6 - 6 + + Mids + - - 6sus4 - 6sus4 + + High + - - 6add9 - 6add9 + + Extended + - - m6 - m6 + + Loud + - - m6add9 - m6add9 + + Silent + - - 7 - 7 + + (High time res.) + - - 7sus4 - 7sus4 + + (High freq. res.) + - - 7#5 - 7#5 + + Rectangular (Off) + - - 7b5 - 7b5 + + + Blackman-Harris (Default) + - - 7#9 - 7#9 + + Hamming + - - 7b9 - 7b9 + + Hanning + + + + lmms::SampleClip - - 7#5#9 - 7#5#9 + + Sample not found + + + + lmms::SampleTrack - - 7#5b9 - 7#5b9 + + Volume + - - 7b5b9 - 7b5b9 + + Panning + - - 7add11 - 7add11 + + Mixer channel + - - 7add13 - 7add13 + + + Sample track + + + + lmms::Scale - - 7#11 - 7#11 + + empty + + + + lmms::Sf2Instrument - - Maj7 - Maj7 + + Bank + - - Maj7b5 - Maj7b5 + + Patch + - - Maj7#5 - Maj7#5 + + Gain + - - Maj7#11 - Maj7#11 + + Reverb + - - Maj7add13 - Maj7add13 + + Reverb room size + - - m7 - m7 + + Reverb damping + - - m7b5 - m7b5 + + Reverb width + - - m7b9 - m7b9 + + Reverb level + + + + + Chorus + - - m7add11 - m7add11 + + Chorus voices + - - m7add13 - m7add13 + + Chorus level + - - m-Maj7 - m-Maj7 + + Chorus speed + - - m-Maj7add11 - m-Maj7add11 + + Chorus depth + - - m-Maj7add13 - m-Maj7add13 + + A soundfont %1 could not be loaded. + + + + lmms::SfxrInstrument - - 9 - 9 + + Wave + + + + lmms::SidInstrument - - 9sus4 - 9sus4 + + Cutoff frequency + - - add9 - add9 + + Resonance + - - 9#5 - 9#5 + + Filter type + - - 9b5 - 9b5 + + Voice 3 off + - - 9#11 - 9#11 + + Volume + - - 9b13 - 9b13 + + Chip model + + + + lmms::SlicerT - - Maj9 - Maj9 + + Note threshold + - - Maj9sus4 - Maj9sus4 + + FadeOut + - - Maj9#5 - Maj9#5 + + Original bpm + - - Maj9#11 - Maj9#11 + + Slice snap + - - m9 - m9 + + BPM sync + - - madd9 - madd9 + + + slice_%1 + - - m9b5 - m9b5 + + Sample not found: %1 + + + + lmms::Song - - m9-Maj7 - m9-Maj7 + + Tempo + - - 11 - 11 + + Master volume + - - 11b9 - 11b9 + + Master pitch + - - Maj11 - Maj11 + + Aborting project load + - - m11 - m11 + + Project file contains local paths to plugins, which could be used to run malicious code. + - - m-Maj11 - m-Maj11 + + Can't load project: Project file contains local paths to plugins. + - - 13 - 13 + + LMMS Error report + - - 13#9 - 13#9 + + (repeated %1 times) + - - 13b9 - 13b9 + + The following errors occurred while loading: + + + + lmms::StereoEnhancerControls - - 13b5b9 - 13b5b9 + + Width + + + + lmms::StereoMatrixControls - - Maj13 - Maj13 + + Left to Left + - - m13 - m13 + + Left to Right + - - m-Maj13 - m-Maj13 + + Right to Left + - - Harmonic minor - Harmonisch mineur + + Right to Right + + + + lmms::Track - - Melodic minor - Melodisch mineur + + Mute + - - Whole tone - Hele toon + + Solo + + + + lmms::TrackContainer - - Diminished - Verminderd + + Couldn't import file + - - Major pentatonic - Pentatonisch majeur + + Couldn't find a filter for importing file %1. +You should convert this file into a format supported by LMMS using another software. + - - Minor pentatonic - Pentatonisch mineur + + Couldn't open file + - - Jap in sen - Jap in sen + + Couldn't open file %1 for reading. +Please make sure you have read-permission to the file and the directory containing the file and try again! + - - Major bebop - Majeur bebop + + Loading project... + - - Dominant bebop - Dominante bebop + + + Cancel + - - Blues - Blues + + + Please wait... + - - Arabic - Arabisch + + Loading cancelled + - - Enigmatic - Enigmatisch + + Project loading was cancelled. + - - Neopolitan - Neopolitanisch + + Loading Track %1 (%2/Total %3) + - - Neopolitan minor - Neopolitanisch mineur + + Importing MIDI-file... + + + + lmms::TripleOscillator - - Hungarian minor - Hongaarse mineur + + Sample not found + + + + lmms::VecControls - - Dorian - Dorisch + + Display persistence amount + - - Phrygian - Frygisch + + Logarithmic scale + - - Lydian - Lydisch + + High quality + + + + lmms::VestigeInstrument - - Mixolydian - Mixolydisch + + Loading plugin + - - Aeolian - Eolisch + + Please wait while loading the VST plugin... + + + + lmms::Vibed - - Locrian - Locrisch + + String %1 volume + - - Minor - Mineur + + String %1 stiffness + - - Chromatic - Chromatisch + + Pick %1 position + - - Half-Whole Diminished - Half-heel verminderd + + Pickup %1 position + - - 5 - 5 + + String %1 panning + - - Phrygian dominant - Frygisch dominant + + String %1 detune + - - Persian - Persisch + + String %1 fuzziness + - - Chords - Akkoorden + + String %1 length + - - Chord type - Akkoordsoort + + Impulse %1 + - - Chord range - Akkoordbereik + + String %1 + - InstrumentFunctionNoteStackingView + lmms::VoiceObject - - STACKING - STAPELEN + + Voice %1 pulse width + - - Chord: - Akkoord: + + Voice %1 attack + - - RANGE - BEREIK + + Voice %1 decay + - - Chord range: - Akkoordbereik: + + Voice %1 sustain + - - octave(s) - Octaaf (octaven) + + Voice %1 release + - - - InstrumentMidiIOView - - ENABLE MIDI INPUT - MIDI-INVOER INSCHAKELEN + + Voice %1 coarse detuning + - - ENABLE MIDI OUTPUT - MIDI-UITVOER INSCHAKELEN + + Voice %1 wave shape + - - - CHAN - This string must be be short, its width must be less than * width of LCD spin-box of two digits + + Voice %1 sync - - - VELOC - This string must be be short, its width must be less than * width of LCD spin-box of three digits + + Voice %1 ring modulate - - PROG - This string must be be short, its width must be less than the * width of LCD spin-box of three digits + + Voice %1 filtered - - NOTE - This string must be be short, its width must be less than * width of LCD spin-box of three digits - NOOT + + Voice %1 test + + + + + lmms::VstPlugin + + + + The VST plugin %1 could not be loaded. + - - MIDI devices to receive MIDI events from - MIDI-apparaten om MIDI-events van te ontvangen + + Open Preset + - - MIDI devices to send MIDI events to - MIDI-apparaten om MIDI-events naar te zenden + + + VST Plugin Preset (*.fxp *.fxb) + - - CUSTOM BASE VELOCITY - AANGEPASTE BASISSNELHEID + + : default + - - Specify the velocity normalization base for MIDI-based instruments at 100% note velocity. - Geef de snelheid-normalisatiebasis voor MIDI-gebaseerde instrumenten op bij 100 % nootsnelheid. + + Save Preset + - - BASE VELOCITY - BASISSNELHEID + + .fxp + - - - InstrumentTuningView - - MASTER PITCH - MASTER-TOONHOOGTE + + .FXP + - - Enables the use of master pitch - Schakelt het gebruik van master-toonhoogte in + + .FXB + - - - InstrumentSoundShaping - - VOLUME - VOLUME + + .fxb + - - Volume - Volume + + Loading plugin + - - CUTOFF - CUTOFF + + Please wait while loading VST plugin... + + + + lmms::WatsynInstrument - - - Cutoff frequency - Cutoff-frequentie + + Volume A1 + - - RESO - RESO + + Volume A2 + - - Resonance - Resonantie + + Volume B1 + - - Envelopes/LFOs - Envelopes/LFO's + + Volume B2 + - - Filter type - Filtersoort + + Panning A1 + - - Q/Resonance - Q/Resonantie + + Panning A2 + - - Low-pass - Low-pass + + Panning B1 + - - Hi-pass - High-pass + + Panning B2 + - - Band-pass csg - BandPass csg + + Freq. multiplier A1 + - - Band-pass czpg - Bandpass czpg + + Freq. multiplier A2 + - - Notch - Notch + + Freq. multiplier B1 + - - All-pass - All-pass + + Freq. multiplier B2 + - - Moog - Moog + + Left detune A1 + - - 2x Low-pass - 2x Low-pass + + Left detune A2 + - - RC Low-pass 12 dB/oct - RC low-pass 12 dB/oct + + Left detune B1 + - - RC Band-pass 12 dB/oct - RC band-pass 12 dB/oct + + Left detune B2 + - - RC High-pass 12 dB/oct - RC high-pass 12 dB/oct + + Right detune A1 + - - RC Low-pass 24 dB/oct - RC low-pass 24 dB/oct + + Right detune A2 + - - RC Band-pass 24 dB/oct - RC band-pass 24 dB/oct + + Right detune B1 + - - RC High-pass 24 dB/oct - RC high-pass 24 dB/oct + + Right detune B2 + - - Vocal Formant - Stemvorming + + A-B Mix + + + + + A-B Mix envelope amount + - - 2x Moog - 2 x Moog + + A-B Mix envelope attack + - - SV Low-pass - SV low-pass + + A-B Mix envelope hold + - - SV Band-pass - SV band-pass + + A-B Mix envelope decay + - - SV High-pass - SV high-pass + + A1-B2 Crosstalk + - - SV Notch - SV Notch + + A2-A1 modulation + - - Fast Formant - Snel vormend + + B2-B1 modulation + - - Tripole - Tripole + + Selected graph + - InstrumentSoundShapingView + lmms::WaveShaperControls - - TARGET - DOEL + + Input gain + - - FILTER - FILTER + + Output gain + + + + lmms::Xpressive - - FREQ - FREQ + + Selected graph + - - Cutoff frequency: - Cutoff-frequentie: + + A1 + - - Hz - Hz + + A2 + - - Q/RESO - Q/RESO + + A3 + - - Q/Resonance: - Q/Resonantie: + + W1 smoothing + - - Envelopes, LFOs and filters are not supported by the current instrument. - Envelopes, LFO's en filters worden niet ondersteund door het huidige instrument. + + W2 smoothing + - - - InstrumentTrack - - - unnamed_track - naamloze_track + + W3 smoothing + - - Base note - Grondtoon + + Panning 1 + - - First note + + Panning 2 - - Last note - Laatste noot + + Rel trans + + + + lmms::ZynAddSubFxInstrument - - Volume - Volume + + Portamento + - - Panning - Balans + + Filter frequency + - - Pitch - Toonhoogte + + Filter resonance + - - Pitch range - Toonhoogte-bereik + + Bandwidth + - - Mixer channel - FX-kanaal + + FM gain + - - Master pitch - Master-toonhoogte + + Resonance center frequency + - - Enable/Disable MIDI CC + + Resonance bandwidth - - CC Controller %1 + + Forward MIDI control change events + + + lmms::graphModel - - - Default preset - Standaard preset + + Graph + - InstrumentTrackView + lmms::gui::AmplifierControlDialog - - Volume - Volume + + VOL + - + Volume: - Volume: - - - - VOL - VOL + - - Panning - Balans + + PAN + - + Panning: - Balans: + - - PAN - BAL + + LEFT + - - MIDI - MIDI + + Left gain: + - - Input - Invoer + + RIGHT + - - Output - Uitvoer + + Right gain: + + + + lmms::gui::AudioAlsaSetupWidget - - Open/Close MIDI CC Rack + + Device - - Channel %1: %2 - FX %1: %2 + + Channels + - InstrumentTrackWindow + lmms::gui::AudioFileProcessorView - - GENERAL SETTINGS - ALGEMENE INSTELLINGEN + + Open sample + - - Volume - Volume + + Reverse sample + - - Volume: - Volume: + + Disable loop + - - VOL - VOL + + Enable loop + - - Panning - Balans + + Enable ping-pong loop + - - Panning: - Balans: + + Continue sample playback across notes + - - PAN - BAL + + Amplify: + - - Pitch - Toonhoogte + + Start point: + - - Pitch: - Toonhoogte: + + End point: + - - cents - cents + + Loopback point: + + + + lmms::gui::AudioFileProcessorWaveView - - PITCH - TOONHOOGTE + + Sample length: + + + + lmms::gui::AutomationClipView - - Pitch range (semitones) - Toonhoogte-bereik (semitones) + + Open in Automation editor + - - RANGE - BEREIK + + Clear + - - Mixer channel - FX-kanaal + + Reset name + - - FX - FX + + Change name + - - Save current instrument track settings in a preset file - Huidige instrument-track-instellingen opslaan in een presetbestand + + Set/clear record + - - SAVE - OPSLAAN + + Flip Vertically (Visible) + - - Envelope, filter & LFO - Envelope, filter en LFO + + Flip Horizontally (Visible) + - - Chord stacking & arpeggio - Akkoorden opeenstapelen & arpeggio + + %1 Connections + - - Effects - Effecten + + Disconnect "%1" + - - MIDI - MIDI + + Model is already connected to this clip. + + + + lmms::gui::AutomationEditor - - Miscellaneous - Overige + + Edit Value + - - Save preset - Preset opslaan + + New outValue + - - XML preset file (*.xpf) - XML-presetbestand (*.xpf) + + New inValue + - - Plugin - Plug-in + + Please open an automation clip by double-clicking on it! + - JackApplicationW + lmms::gui::AutomationEditorWindow - - NSM applications cannot use abstract or absolute paths + + Play/pause current clip (Space) - - NSM applications cannot use CLI arguments + + Stop playing of current clip (Space) - - You need to save the current Carla project before NSM can be used + + Edit actions - - - JuceAboutW - - About JUCE + + Draw mode (Shift+D) - - <b>About JUCE</b> + + Erase mode (Shift+E) - - This program uses JUCE version 3.x.x. + + Draw outValues mode (Shift+C) - - JUCE (Jules' Utility Class Extensions) is an all-encompassing C++ class library for developing cross-platform software. - -It contains pretty much everything you're likely to need to create most applications, and is particularly well-suited for building highly-customised GUIs, and for handling graphics and sound. - -JUCE is licensed under the GNU Public Licence version 2.0. -One module (juce_core) is permissively licensed under the ISC. - -Copyright (C) 2017 ROLI Ltd. + + Edit tangents mode (Shift+T) - - This program uses JUCE version %1. + + Flip vertically - - - Knob - - Set linear - Lineair instellen + + Flip horizontally + + + + + Interpolation controls + - - Set logarithmic - Logaritmisch instellen + + Discrete progression + - - - Set value - Waarde instellen + + Linear progression + - - Please enter a new value between -96.0 dBFS and 6.0 dBFS: - Voer een nieuwe waarde in tussen -96,0 dBFS en 6,0 dBFS: + + Cubic Hermite progression + - - Please enter a new value between %1 and %2: - Voer een nieuwe waarde in tussen %1 en %2: + + Tension value for spline + - - - LadspaControl - - Link channels - Kanalen koppelen + + Tension: + - - - LadspaControlDialog - - Link Channels - Kanalen koppelen + + Zoom controls + - - Channel - Kanaal + + Horizontal zooming + - - - LadspaControlView - - Link channels - Kanalen koppelen + + Vertical zooming + - - Value: - Waarde: + + Quantization controls + - - - LadspaEffect - - Unknown LADSPA plugin %1 requested. - Onbekende LADSPA-plugin %1 opgevraagd. + + Quantization + - - - LcdFloatSpinBox - - Set value - Waarde instellen + + Clear ghost notes + - - Please enter a new value between %1 and %2: - Voer een nieuwe waarde in tussen %1 en %2: + + + Automation Editor - no clip + - - - LcdSpinBox - - Set value - Waarde instellen + + + Automation Editor - %1 + - - Please enter a new value between %1 and %2: - Voer een nieuwe waarde in tussen %1 en %2: + + Model is already connected to this clip. + - LeftRightNav + lmms::gui::BassBoosterControlDialog - - - - Previous - Vorige + + FREQ + - - - - Next - Volgende + + Frequency: + - - Previous (%1) - Vorige (%1) + + GAIN + - - Next (%1) - Volgende (%1) + + Gain: + - - - LfoController - - LFO Controller - LFO-controller + + RATIO + - - Base value - Basiswaarde + + Ratio: + + + + lmms::gui::BitInvaderView - - Oscillator speed - Oscillatorsnelheid + + Sample length + - - Oscillator amount - Hoeveelheid oscillator + + Draw your own waveform here by dragging your mouse on this graph. + - - Oscillator phase - Oscillator-fase + + + Sine wave + - - Oscillator waveform - Oscillator-golfvorm + + + Triangle wave + - - Frequency Multiplier - Frequentievermenigvuldiger + + + Saw wave + - - - LfoControllerDialog - - LFO - LFO + + + Square wave + - - BASE - BASIS + + + White noise + - - Base: - Basis: + + + User-defined wave + - - FREQ - FREQ + + + Smooth waveform + - - LFO frequency: - LFO-frequentie: + + Interpolation + - - AMNT - HVHD + + Normalize + + + + lmms::gui::BitcrushControlDialog - - Modulation amount: - Hoeveelheid modulatie: + + IN + - - PHS - PHS + + OUT + - - Phase offset: - Faseverschuiving: + + + GAIN + - - degrees - graden + + Input gain: + - - Sine wave - Sinusgolf + + NOISE + - - Triangle wave - Driehoeksgolf + + Input noise: + - - Saw wave - Zaagtandgolf + + Output gain: + - - Square wave - Blokgolf + + CLIP + - - Moog saw wave - Moog-zaagtandgolf + + Output clip: + - - Exponential wave - Exponentiële golf + + Rate enabled + - - White noise - Witte ruis + + Enable sample-rate crushing + - - User-defined shape. -Double click to pick a file. - Aangepaste vorm. -Dubbelklikken om een bestand te kiezen. + + Depth enabled + - - Mutliply modulation frequency by 1 - Modulatiefrequentie vermenigvuldigen met 1 + + Enable bit-depth crushing + - - Mutliply modulation frequency by 100 - Modulatiefrequentie vermenigvuldigen met 100 + + FREQ + - - Divide modulation frequency by 100 - Modulatiefrequentie delen door 100 + + Sample rate: + - - - Engine - - Generating wavetables - Wavetables genereren + + STEREO + - - Initializing data structures - Datastructuren initialiseren + + Stereo difference: + - - Opening audio and midi devices - Audio- en midi-apparaten openen + + QUANT + - - Launching mixer threads - Mixer-threads starten + + Levels: + - MainWindow - - - Configuration file - Configuratiebestand - - - - Error while parsing configuration file at line %1:%2: %3 - Fout bij verwerken van configuratiebestand op regel %1:%2: %3 - + lmms::gui::CPULoadWidget - - Could not open file - Kan bestand niet openen + + DSP total: %1% + - - Could not open file %1 for writing. -Please make sure you have write permission to the file and the directory containing the file and try again! - Kon bestand %1 niet openen om te schrijven. -Zorg ervoor dat u schrijfbevoegdheid heeft voor het bestand en voor de map die het bestand bevat en probeer het opnieuw! + + - Notes and setup: %1% + - - Project recovery - Projectherstel + + - Instruments: %1% + - - There is a recovery file present. It looks like the last session did not end properly or another instance of LMMS is already running. Do you want to recover the project of this session? - Er is een herstelbestand aanwezig. Het lijkt alsof de laatste sessie niet goed afgesloten is of een andere instantie van LMMS al uitgevoerd wordt. Wilt u het project van deze sessie herstellen? + + - Effects: %1% + - - - Recover - Herstellen + + - Mixing: %1% + + + + lmms::gui::CarlaInstrumentView - - Recover the file. Please don't run multiple instances of LMMS when you do this. - Bestand herstellen. Gelieve niet meerdere instanties van LMMS uit te voeren wanneer u dit doet. + + Show GUI + - - - Discard - Verwerpen + + Click here to show or hide the graphical user interface (GUI) of Carla. + - - Launch a default session and delete the restored files. This is not reversible. - Start een standaard sessie en verwijder de herstelde bestanden. Dit is onomkeerbaar. + + Params + - - Version %1 - Versie %1 + + Available from Carla version 2.1 and up. + + + + lmms::gui::CarlaParamsView - - Preparing plugin browser - Plugin-browser voorbereiden + + Search.. + - - Preparing file browsers - Bestandsbrowsers voorbereiden + + Clear filter text + - - My Projects - Mijn projecten + + Only show knobs with a connection. + - - My Samples - Mijn samples + + - Parameters + + + + lmms::gui::ClipView - - My Presets - Mijn presets + + Current position + - - My Home - Mijn home + + Current length + - - Root directory - Root-map + + + %1:%2 (%3:%4 to %5:%6) + - - Volumes - Volumes + + Press <%1> and drag to make a copy. + - - My Computer - Mijn computer + + Press <%1> for free resizing. + - - &File - &Bestand + + Hint + - - &New - &Nieuw + + Delete (middle mousebutton) + - - &Open... - &Openen... + + Delete selection (middle mousebutton) + - - Loading background picture - Achtergrondafbeelding laden + + Cut + - - - &Save - Op&slaan + + + Cut selection + - - Save &As... - Opslaan &als... + + Merge Selection + - - Save as New &Version - Opslaan als nieuwe &versie + + Copy + - - Save as default template - Opslaan als standaard-sjabloon + + Copy selection + - - Import... - Importeren... + + Paste + - - E&xport... - E&xporteren... + + Mute/unmute (<%1> + middle click) + - - E&xport Tracks... - Tracks e&xporteren... + + Mute/unmute selection (<%1> + middle click) + - - Export &MIDI... - Exporteer &MIDI... + + Clip color + - - &Quit - &Afsluiten + + Change + - - &Edit - &Bewerken + + Reset + - - Undo - Ongedaan maken + + Pick random + + + + lmms::gui::CompressorControlDialog - - Redo - Opnieuw + + Threshold: + - - Settings - Instellingen + + Volume at which the compression begins to take place + - - &View - Weerge&ven + + Ratio: + - - &Tools - &Tools + + How far the compressor must turn the volume down after crossing the threshold + - - &Help - &Help + + Attack: + - - Online Help - Online help + + Speed at which the compressor starts to compress the audio + - - Help - Help + + Release: + - - About - Over + + Speed at which the compressor ceases to compress the audio + - - Create new project - Nieuw project aanmaken + + Knee: + - - Create new project from template - Nieuw project van sjabloon aanmaken + + Smooth out the gain reduction curve around the threshold + - - Open existing project - Bestaand project openen + + Range: + - - Recently opened projects - Recent geopende projecten + + Maximum gain reduction + - - Save current project - Huidig project opslaan + + Lookahead Length: + - - Export current project - Huidig project exporteren + + How long the compressor has to react to the sidechain signal ahead of time + - - Metronome - Metronoom + + Hold: + - - - Song Editor - Song-editor + + Delay between attack and release stages + - - - Beat+Bassline Editor - Beat- en baslijn-editor + + RMS Size: + - - - Piano Roll - Piano-roll + + Size of the RMS buffer + - - - Automation Editor - Automatisering-editor + + Input Balance: + - - - Mixer - mixer + + Bias the input audio to the left/right or mid/side + - - Show/hide controller rack - Controller-rack weergeven/verbergen + + Output Balance: + - - Show/hide project notes - Projectnotities weergeven/verbergen + + Bias the output audio to the left/right or mid/side + - - Untitled - Naamloos + + Stereo Balance: + - - Recover session. Please save your work! - Sessie herstellen. Sla uw werk op! + + Bias the sidechain signal to the left/right or mid/side + - - LMMS %1 - LMMS %1 + + Stereo Link Blend: + - - Recovered project not saved - Hersteld project niet opgeslagen + + Blend between unlinked/maximum/average/minimum stereo linking modes + - - This project was recovered from the previous session. It is currently unsaved and will be lost if you don't save it. Do you want to save it now? - Dit project werd hersteld vanuit de vorige sessie. Het is op dit moment niet opgeslagen en zal verloren gaan als u het niet opslaat. Wilt u het nu opslaan? + + Tilt Gain: + - - Project not saved - Project niet opgeslagen + + Bias the sidechain signal to the low or high frequencies. -6 db is lowpass, 6 db is highpass. + - - The current project was modified since last saving. Do you want to save it now? - Het huidige project werd gewijzigd sinds de laatste keer dat het opgeslagen werd. Wilt u het nu opslaan? + + Tilt Frequency: + - - Open Project - Project openen + + Center frequency of sidechain tilt filter + - - LMMS (*.mmp *.mmpz) - LMMS (*.mmp *.mmpz) + + Mix: + - - Save Project - Project opslaan + + Balance between wet and dry signals + - - LMMS Project - LMMS-project + + Auto Attack: + - - LMMS Project Template - LMMS-projectsjabloon + + Automatically control attack value depending on crest factor + - - Save project template - Projectsjabloon opslaan + + Auto Release: + - - Overwrite default template? - Standaard-sjabloon overschrijven? + + Automatically control release value depending on crest factor + - - This will overwrite your current default template. - Dit zal uw huidig standaard-sjabloon overschrijven. + + Output gain + - - Help not available - Hulp niet beschikbaar + + + Gain + - - Currently there's no help available in LMMS. -Please visit http://lmms.sf.net/wiki for documentation on LMMS. - Er is op dit moment geen hulp beschikbaar in LMMS. -Bezoek http://lmms.sf.net/wiki voor documentatie over LMMS. + + Output volume + - - Controller Rack - Controller-rack + + Input gain + - - Project Notes - Projectnotities + + Input volume + - - Fullscreen + + Root Mean Square - - Volume as dBFS - Volume als dBFS + + Use RMS of the input + - - Smooth scroll - Vloeiend scrollen + + Peak + - - Enable note labels in piano roll - Nootlabels in piano-roll inschakelen + + Use absolute value of the input + - - MIDI File (*.mid) - MIDI-bestand (*.mid) + + Left/Right + - - - untitled - naamloos + + Compress left and right audio + - - - Select file for project-export... - Selecteer bestand voor project-export... + + Mid/Side + - - Select directory for writing exported tracks... - Selecteer map voor schrijven van geëxporteerde tracks... + + Compress mid and side audio + - - Save project - Project opslaan + + Compressor + - - Project saved - Project opgeslagen + + Compress the audio + - - The project %1 is now saved. - Project %1 is nu opgeslagen. + + Limiter + - - Project NOT saved. - Project NIET opgeslagen. + + Set Ratio to infinity (is not guaranteed to limit audio volume) + - - The project %1 was not saved! - Project %1 werd niet opgeslagen! + + Unlinked + - - Import file - Bestand importeren + + Compress each channel separately + - - MIDI sequences - MIDI-sequenties + + Maximum + - - Hydrogen projects - Hydrogen-projecten + + Compress based on the loudest channel + - - All file types - Alle bestandstypes + + Average + - - - MeterDialog - - - Meter Numerator - Meter-noemer + + Compress based on the averaged channel volume + - - Meter numerator - Meter-noemer + + Minimum + - - - Meter Denominator - Meter-teller + + Compress based on the quietest channel + - - Meter denominator - Meter-teller + + Blend + - - TIME SIG - MAATSOORT + + Blend between stereo linking modes + - - - MeterModel - - Numerator - Noemer + + Auto Makeup Gain + - - Denominator - Teller + + Automatically change makeup gain depending on threshold, knee, and ratio settings + - - - MidiCCRackView - - - MIDI CC Rack - %1 + + + Soft Clip - - MIDI CC Knobs: + + Play the delta signal - - CC %1 + + Use the compressor's output as the sidechain input - - - MidiController - - MIDI Controller - MIDI-controller + + Lookahead Enabled + - - unnamed_midi_controller - naamloze_midi_controller + + Enable Lookahead, which introduces 20 milliseconds of latency + - MidiImport - - - - Setup incomplete - Setup niet voltooid - + lmms::gui::ControllerConnectionDialog - - You have not set up a default soundfont in the settings dialog (Edit->Settings). Therefore no sound will be played back after importing this MIDI file. You should download a General MIDI soundfont, specify it in settings dialog and try again. - U heeft geen standaard soundfont ingesteld in de instellingen (Bewerken -> Instellingen). Hierdoor wordt er geen geluid afgespeeld na het importeren van dit MIDI-bestand. Download een General MIDI soundfont, selecteer deze in de instellingen probeer opnieuw. + + Connection Settings + - - You did not compile LMMS with support for SoundFont2 player, which is used to add default sound to imported MIDI files. Therefore no sound will be played back after importing this MIDI file. - U heeft LMMS niet gecompileerd met ondersteuning voor de SoundFont2-speler, die gebruikt wordt om standaardgeluid toe te voegen aan geïmporteerde MIDI-bestanden. Daarom zal er geen geluid afgespeeld worden na het importeren van dit MIDI-bestand. + + MIDI CONTROLLER + - - MIDI Time Signature Numerator - MIDI tijdsaanduiding-teller + + Input channel + - - MIDI Time Signature Denominator - MIDI tijdsaanduiding-noemer + + CHANNEL + - - Numerator - Noemer + + Input controller + - - Denominator - Teller + + CONTROLLER + - - Track - Track + + + Auto Detect + - - - MidiJack - - JACK server down - When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (title) - JACK-server is offline + + MIDI-devices to receive MIDI-events from + - - The JACK server seems to be shuted down. - When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (dialog message) - De JACK-server lijkt afgesloten te zijn. + + USER CONTROLLER + - - - MidiPatternW - - MIDI Pattern + + MAPPING FUNCTION - - Time Signature: + + OK - - - - 1/4 + + Cancel - - 2/4 + + LMMS - - 3/4 + + Cycle Detected. + + + lmms::gui::ControllerRackView - - 4/4 + + Controller Rack - - 5/4 + + Add - - 6/4 + + Confirm Delete - - Measures: + + Confirm delete? There are existing connection(s) associated with this controller. There is no way to undo. + + + lmms::gui::ControllerView - - - - 1 + + Controls - - 2 + + Rename controller - - 3 + + Enter the new name for this controller - - 4 + + LFO - - 5 - 5 + + Move &up + - - 6 - 6 + + Move &down + - - 7 - 7 + + &Remove this controller + - - 8 + + Re&name this controller + + + lmms::gui::CrossoverEQControlDialog - - 9 - 9 + + Band 1/2 crossover: + - - 10 + + Band 2/3 crossover: - - 11 - 11 + + Band 3/4 crossover: + - - 12 + + Band 1 gain - - 13 - 13 + + Band 1 gain: + - - 14 + + Band 2 gain - - 15 + + Band 2 gain: - - 16 + + Band 3 gain - - Default Length: + + Band 3 gain: - - - 1/16 + + Band 4 gain - - - 1/15 + + Band 4 gain: - - - 1/12 + + Band 1 mute - - - 1/9 + + Mute band 1 - - - 1/8 + + Band 2 mute - - - 1/6 + + Mute band 2 - - - 1/3 + + Band 3 mute - - - 1/2 + + Mute band 3 - - Quantize: + + Band 4 mute - - &File - &Bestand + + Mute band 4 + + + + lmms::gui::DelayControlsDialog - - &Edit - &Bewerken + + DELAY + - - &Quit - &Afsluiten + + Delay time + - - &Insert Mode + + FDBK - - F + + Feedback amount - - &Velocity Mode + + RATE - - D + + LFO frequency - - Select All + + AMNT - - A + + LFO amount - - - MidiPort - - Input channel - Invoerkanaal + + Out gain + - - Output channel - Uitvoerkanaal + + Gain + + + + lmms::gui::DispersionControlDialog - - Input controller - Invoer-controller + + AMOUNT + - - Output controller - Uitvoer-controller + + Number of all-pass filters + - - Fixed input velocity - Vaste invoersnelheid + + FREQ + - - Fixed output velocity - Vaste uitvoersnelheid + + Frequency: + - - Fixed output note - Vaste uitvoernoot + + RESO + - - Output MIDI program - MIDI-programma voor uitvoer + + Resonance: + - - Base velocity - Basissnelheid + + FEED + - - Receive MIDI-events - MIDI-events ontvangen + + Feedback: + - - Send MIDI-events - MIDI-events verzenden + + DC Offset Removal + - - - MidiSetupWidget - - Device - Apparaat + + Remove DC Offset + - MonstroInstrument + lmms::gui::DualFilterControlDialog - - Osc 1 volume - Osc 1 volume + + + FREQ + - - Osc 1 panning - Osc 1 balans + + + Cutoff frequency + - - Osc 1 coarse detune - Osc 1 grof ontstemmen + + + RESO + - - Osc 1 fine detune left - Osc 1 fijn ontstemmen links + + + Resonance + - - Osc 1 fine detune right - Osc 1 fijn ontstemmen rechts + + + GAIN + - - Osc 1 stereo phase offset - Osc 1 stereo-faseverschuiving + + + Gain + - - Osc 1 pulse width - Osc 1 pulsbreedte + + MIX + - - Osc 1 sync send on rise - Osc 1 synchronisatie bij stijging + + Mix + - - Osc 1 sync send on fall - Osc 1 synchronisatie bij daling + + Filter 1 enabled + - - Osc 2 volume - Osc 2 volume + + Filter 2 enabled + - - Osc 2 panning - Osc 2 balans + + Enable/disable filter 1 + - - Osc 2 coarse detune - Osc 2 grof ontstemmen + + Enable/disable filter 2 + + + + lmms::gui::DynProcControlDialog - - Osc 2 fine detune left - Osc 2 fijn ontstemmen links + + INPUT + - - Osc 2 fine detune right - Osc 2 fijn ontstemmen rechts + + Input gain: + - - Osc 2 stereo phase offset - Osc 2 stereo-faseverschuiving + + OUTPUT + - - Osc 2 waveform - Osc 2 golfvorm + + Output gain: + - - Osc 2 sync hard - Osc 2 sync hard + + ATTACK + - - Osc 2 sync reverse - Osc 2 sync omgekeerd + + Peak attack time: + - - Osc 3 volume - Osc 3 volume + + RELEASE + - - Osc 3 panning - Osc 3 balans + + Peak release time: + - - Osc 3 coarse detune - Osc 3 grof ontstemmen + + + Reset wavegraph + - - Osc 3 Stereo phase offset - Osc 3 stereo-faseverschuiving + + + Smooth wavegraph + - - Osc 3 sub-oscillator mix - Osc 3 sub-oscillator mix + + + Increase wavegraph amplitude by 1 dB + - - Osc 3 waveform 1 - Osc 3 golfvorm 1 + + + Decrease wavegraph amplitude by 1 dB + - - Osc 3 waveform 2 - Osc 3 golfvorm 2 + + Stereo mode: maximum + - - Osc 3 sync hard - Osc 3 sync hard + + Process based on the maximum of both stereo channels + - - Osc 3 Sync reverse - Osc 3 sync omgekeerd + + Stereo mode: average + - - LFO 1 waveform - LFO 1 golfvorm + + Process based on the average of both stereo channels + - - LFO 1 attack - LFO 1 attack + + Stereo mode: unlinked + - - LFO 1 rate - LFO 1 ratio + + Process each stereo channel independently + + + + lmms::gui::Editor - - LFO 1 phase - LFO 1 fase + + Transport controls + - - LFO 2 waveform - LFO 2 golfvorm + + Play (Space) + - - LFO 2 attack - LFO 2 attack + + Stop (Space) + - - LFO 2 rate - LFO 2 ratio + + Record + - - LFO 2 phase - LFO 2 fase + + Record while playing + - - Env 1 pre-delay - Env 1 pre-delay + + Toggle Step Recording + + + + lmms::gui::EffectRackView - - Env 1 attack - Env 1 attack + + EFFECTS CHAIN + - - Env 1 hold - Env 1 hold + + Add effect + + + + lmms::gui::EffectSelectDialog - - Env 1 decay - Env 1 decay + + Add effect + - - Env 1 sustain - Env 1 sustain + + + Name + - - Env 1 release - Env 1 release + + Type + - - Env 1 slope - Env 1 slope + + All + - - Env 2 pre-delay - Env 2 pre-delay + + Search + - - Env 2 attack - Env 2 attack + + Description + - - Env 2 hold - Env 2 hold + + Author + + + + lmms::gui::EffectView - - Env 2 decay - Env 2 decay + + On/Off + - - Env 2 sustain - Env 2 sustain + + W/D + - - Env 2 release - Env 2 release + + Wet Level: + - - Env 2 slope - Env 2 slope + + DECAY + - - Osc 2+3 modulation - Osc 2+3 modulatie + + Time: + - - Selected view - Geselecteerde weergave + + GATE + - - Osc 1 - Vol env 1 - Osc 1 - Vol env 1 + + Gate: + - - Osc 1 - Vol env 2 - Osc 1 - Vol env 2 + + Controls + - - Osc 1 - Vol LFO 1 - Osc 1 - Vol LFO 1 + + Move &up + - - Osc 1 - Vol LFO 2 - Osc 1 - Vol LFO 2 + + Move &down + - - Osc 2 - Vol env 1 - Osc 2 - Vol env 1 + + &Remove this plugin + + + + lmms::gui::EnvelopeAndLfoView - - Osc 2 - Vol env 2 - Osc 2 - Vol env 2 + + + AMT + - - Osc 2 - Vol LFO 1 - Osc 2 - Vol LFO 1 + + + Modulation amount: + - - Osc 2 - Vol LFO 2 - Osc 2 - Vol LFO 2 + + + DEL + - - Osc 3 - Vol env 1 - Osc 3 - Vol env 1 + + + Pre-delay: + - - Osc 3 - Vol env 2 - Osc 3 - Vol env 2 + + + ATT + - - Osc 3 - Vol LFO 1 - Osc 3 - Vol LFO 1 + + + Attack: + - - Osc 3 - Vol LFO 2 - Osc 3 - Vol LFO 2 + + HOLD + - - Osc 1 - Phs env 1 - Osc 1 - Fase env 1 + + Hold: + - - Osc 1 - Phs env 2 - Osc 1 - Fase env 2 + + DEC + - - Osc 1 - Phs LFO 1 - Osc 1 - Fase LFO 1 + + Decay: + - - Osc 1 - Phs LFO 2 - Osc 1 - Fase LFO 2 + + SUST + - - Osc 2 - Phs env 1 - Osc 2 - Fase env 1 + + Sustain: + - - Osc 2 - Phs env 2 - Osc 2 - Fase env 2 + + REL + - - Osc 2 - Phs LFO 1 - Osc 2 - Fase LFO 1 + + Release: + - - Osc 2 - Phs LFO 2 - Osc 2 - Fase LFO 2 + + SPD + - - Osc 3 - Phs env 1 - Osc 3 - Fase env 1 + + Frequency: + - - Osc 3 - Phs env 2 - Osc 3 - Fase env 2 + + FREQ x 100 + - - Osc 3 - Phs LFO 1 - Osc 3 - Fase LFO 1 + + Multiply LFO frequency by 100 + - - Osc 3 - Phs LFO 2 - Osc 3 - Fase LFO 2 + + MOD ENV AMOUNT + - - Osc 1 - Pit env 1 - Osc 1 - Toonh env 1 + + Control envelope amount by this LFO + - - Osc 1 - Pit env 2 - Osc 1 - Toonh env 2 + + Hint + - - Osc 1 - Pit LFO 1 - Osc 1 - Toonh LFO 1 + + Drag and drop a sample into this window. + + + + lmms::gui::EnvelopeGraph - - Osc 1 - Pit LFO 2 - Osc 1 - Toonh LFO 2 + + Scaling + - - Osc 2 - Pit env 1 - Osc 2 - Toonh env 1 + + Dynamic + - - Osc 2 - Pit env 2 - Osc 2 - Toonh env 2 + + Uses absolute spacings but switches to relative spacing if it's running out of space + - - Osc 2 - Pit LFO 1 - Osc 2 - Toonh LFO 1 + + Absolute + - - Osc 2 - Pit LFO 2 - Osc 2 - Toonh LFO 2 + + Provides enough potential space for each segment but does not scale + - - Osc 3 - Pit env 1 - Osc 3 - Toonh env 1 + + Relative + - - Osc 3 - Pit env 2 - Osc 3 - Toonh env 2 + + Always uses all of the available space to display the envelope graph + + + + lmms::gui::EqControlsDialog - - Osc 3 - Pit LFO 1 - Osc 3 - Toonh LFO 1 + + HP + - - Osc 3 - Pit LFO 2 - Osc 3 - Toonh LFO 2 + + Low-shelf + - - Osc 1 - PW env 1 - Osc 1 - PB env 1 + + Peak 1 + - - Osc 1 - PW env 2 - Osc 1 - PB env 2 + + Peak 2 + - - Osc 1 - PW LFO 1 - Osc 1 - PB LFO 1 + + Peak 3 + - - Osc 1 - PW LFO 2 - Osc 1 - PB LFO 2 + + Peak 4 + - - Osc 3 - Sub env 1 - Osc 3 - Sub env 1 + + High-shelf + - - Osc 3 - Sub env 2 - Osc 3 - Sub env 2 + + LP + - - Osc 3 - Sub LFO 1 - Osc 3 - Sub LFO 1 + + Input gain + - - Osc 3 - Sub LFO 2 - Osc 3 - Sub LFO 2 + + + + Gain + - - - Sine wave - Sinusgolf + + Output gain + - - Bandlimited Triangle wave - Bandgelimiteerde driehoeksgolf + + Bandwidth: + - - Bandlimited Saw wave - Bandgelimiteerde zaagtandgolf + + Octave + - - Bandlimited Ramp wave - Bandgelimiteerde hellingsgolf + + Resonance: + - - Bandlimited Square wave - Bandgelimiteerde blokgolf + + Frequency: + - - Bandlimited Moog saw wave - Bandgelimiteerde moog-zaagtandgolf + + LP group + - - - Soft square wave - Zachte blokgolf + + HP group + + + + lmms::gui::EqHandle - - Absolute sine wave - Absolute sinusgolf + + Reso: + - - - Exponential wave - Exponentiële golf + + BW: + - - White noise - Witte ruis + + + Freq: + + + + lmms::gui::ExportProjectDialog - - Digital Triangle wave - Digitale driehoeksgolf + + Could not open file + - - Digital Saw wave - Digitale zaagtandgolf + + Could not open file %1 for writing. +Please make sure you have write permission to the file and the directory containing the file and try again! + - - Digital Ramp wave - Digitale hellingsgolf + + Export project to %1 + - - Digital Square wave - Digitale blokgolf + + ( Fastest - biggest ) + - - Digital Moog saw wave - Digitale moog-zaagtandgolf + + ( Slowest - smallest ) + - - Triangle wave - Driehoeksgolf + + Error + - - Saw wave - Zaagtandgolf + + Error while determining file-encoder device. Please try to choose a different output format. + - - Ramp wave - Hellingsgolf + + Rendering: %1% + + + + lmms::gui::Fader - - Square wave - Blokgolf + + Set value + - - Moog saw wave - Moog-zaagtandgolf + + Please enter a new value between %1 and %2: + - - Abs. sine wave - Abs. sinusgolf + + Volume: %1 dBFS + + + + lmms::gui::FileBrowser - - Random - Willekeurig + + Browser + - - Random smooth - Willekeurig glad + + Search + - - - MonstroView - - Operators view - Operatorweergave + + Refresh list + - - Matrix view - Matrixweergave + + User content + - - - - Volume - Volume + + Factory content + - - - - Panning - Balans + + Hidden content + + + + lmms::gui::FileBrowserTreeWidget - - - - Coarse detune - Grof ontstemmen + + Send to active instrument-track + - - - - semitones - semitonen + + Open containing folder + - - - Fine tune left - Fijn stemmen links + + Song Editor + - - - - - cents - cents + + Pattern Editor + - - - Fine tune right - Fijn stemmen rechts + + Send to new AudioFileProcessor instance + - - - - Stereo phase offset - Stereo-faseverschuiving + + Send to new instrument track + - - - - - - deg - graden + + (%2Enter) + - - Pulse width - Pulsbreedte + + Send to new sample track (Shift + Enter) + - - Send sync on pulse rise - Sync verzenden bij pulsstijging + + Loading sample + - - Send sync on pulse fall - Sync verzenden bij pulsdaling + + Please wait, loading sample for preview... + - - Hard sync oscillator 2 - Oscillator 2 hard-syncen + + Error + - - Reverse sync oscillator 2 - Oscillator 2 omgekeerd syncen + + %1 does not appear to be a valid %2 file + - - Sub-osc mix - Sub-osc mix + + --- Factory files --- + + + + lmms::gui::FileDialog - - Hard sync oscillator 3 - Oscillator 3 hard-syncen + + %1 files + - - Reverse sync oscillator 3 - Oscillator 3 omgekeerd syncen + + All audio files + - - - - - Attack - Attack + + Other files + + + + lmms::gui::FlangerControlsDialog - - - Rate - Ratio + + DELAY + - - - Phase - Fase + + Delay time: + - - - Pre-delay - Pre-delay + + RATE + - - - Hold - Hold + + Period: + - - - Decay - Decay + + AMNT + - - - Sustain - Sustain + + Amount: + - - - Release - Release + + PHASE + - - - Slope - Slope + + Phase: + - - Mix osc 2 with osc 3 - Osc 2 mengen met osc 3 + + FDBK + - - Modulate amplitude of osc 3 by osc 2 - Amplitude van osc 3 moduleren met osc 2 + + Feedback amount: + - - Modulate frequency of osc 3 by osc 2 - Frequentie van osc 3 moduleren met osc 2 + + NOISE + - - Modulate phase of osc 3 by osc 2 - Fase van osc 3 mengen met osc 2 + + White noise amount: + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Modulation amount - Hoeveelheid modulatie + + Invert + - MultitapEchoControlDialog + lmms::gui::FloatModelEditorBase - - Length - Lengte - - - - Step length: - Stap-lengte: + + Set linear + - - Dry - Droog + + Set logarithmic + - - Dry gain: - Droge gain: + + + Set value + - - Stages - Stappen + + Please enter a new value between -96.0 dBFS and 6.0 dBFS: + - - Low-pass stages: - Lowpass-stappen: + + Please enter a new value between %1 and %2: + + + + lmms::gui::FreeBoyInstrumentView - - Swap inputs - Invoeren wisselen + + Sweep time: + - - Swap left and right input channels for reflections - Linker en rechter invoerkanaal wisselen voor reflecties + + Sweep time + - - - NesInstrument - - Channel 1 coarse detune - Kanaal 1 grof ontstemmen + + Sweep rate shift amount: + - - Channel 1 volume - Volume kanaal 1 + + Sweep rate shift amount + - - Channel 1 envelope length - Kanaal 1 envelope-lengte + + + Wave pattern duty cycle: + - - Channel 1 duty cycle - Kanaal 1 inschakeltijd + + + Wave pattern duty cycle + - - Channel 1 sweep amount - Kanaal 1 hoeveelheid sweep + + Square channel 1 volume: + - - Channel 1 sweep rate - Kanaal 1 sweep-ratio + + Square channel 1 volume + - - Channel 2 Coarse detune - Kanaal 2 grof ontstemmen + + + + Length of each step in sweep: + - - Channel 2 Volume - Volume kanaal 2 + + + + Length of each step in sweep + - - Channel 2 envelope length - Kanaal 2 envelope-lengte + + Square channel 2 volume: + - - Channel 2 duty cycle - Kanaal 2 inschakeltijd + + Square channel 2 volume + - - Channel 2 sweep amount - Kanaal 2 hoeveelheid sweep + + Wave pattern channel volume: + - - Channel 2 sweep rate - Kanaal 2 sweep-ratio + + Wave pattern channel volume + - - Channel 3 coarse detune - Kanaal 3 grof ontstemmen + + Noise channel volume: + - - Channel 3 volume - Volume kanaal 3 + + Noise channel volume + - - Channel 4 volume - Volume kanaal 4 + + SO1 volume (Right): + - - Channel 4 envelope length - Kanaal 4 envelope-lengte + + SO1 volume (Right) + - - Channel 4 noise frequency - Kanaal 4 ruisfrequentie + + SO2 volume (Left): + - - Channel 4 noise frequency sweep - Kanaal 4 ruisfrequentie-sweep + + SO2 volume (Left) + - - Master volume - Master-volume + + Treble: + - - Vibrato - Vibrato + + Treble + - - - NesInstrumentView - - - - - Volume - Volume + + Bass: + - - - - Coarse detune - Grof ontstemmen + + Bass + - - - - Envelope length - Envelope-lengte + + Sweep direction + - - Enable channel 1 - Kanaal 1 inschakelen + + + + + + Volume sweep direction + - - Enable envelope 1 - Envelope 1 inschakelen + + Shift register width + - - Enable envelope 1 loop - Envelope 1 herhalen inschakelen + + Channel 1 to SO1 (Right) + - - Enable sweep 1 - Sweep 1 inschakelen + + Channel 2 to SO1 (Right) + - - - Sweep amount - Hoeveelheid sweep + + Channel 3 to SO1 (Right) + - - - Sweep rate - Sweep-ratio + + Channel 4 to SO1 (Right) + - - - 12.5% Duty cycle - 12.5 % inschakeltijd + + Channel 1 to SO2 (Left) + - - - 25% Duty cycle - 25 % inschakeltijd + + Channel 2 to SO2 (Left) + - - - 50% Duty cycle - 50 % inschakeltijd + + Channel 3 to SO2 (Left) + - - - 75% Duty cycle - 75 % inschakeltijd + + Channel 4 to SO2 (Left) + - - Enable channel 2 - Kanaal 2 inschakelen + + Wave pattern graph + + + + lmms::gui::GigInstrumentView - - Enable envelope 2 - Envelope 2 inschakelen + + + Open GIG file + - - Enable envelope 2 loop - Envelope 2 herhalen inschakelen + + Choose patch + - - Enable sweep 2 - Sweep 2 inschakelen + + Gain: + - - Enable channel 3 - Kanaal 3 inschakelen + + GIG Files (*.gig) + + + + lmms::gui::GranularPitchShifterControlDialog - - Noise Frequency - Ruisfrequentie + + Grain Size: + - - Frequency sweep - Frequentie-sweep + + Spray: + - - Enable channel 4 - Kanaal 4 inschakelen + + Jitter: + - - Enable envelope 4 - Envelope 4 inschakelen + + Twitch: + - - Enable envelope 4 loop - Envelope 4 herhalen inschakelen + + Spray Stereo Spread: + - - Quantize noise frequency when using note frequency - Ruisfrequentie kwantiseren wanneer nootfrequentie gebruikt wordt + + Grain Shape: + - - Use note frequency for noise - Nootfrequentie gebruiken voor ruis + + Fade Length: + - - Noise mode - Ruismodus + + Feedback: + - - Master volume - Master-volume + + Minimum Allowed Latency: + - - Vibrato - Vibrato + + Density: + - - - OpulenzInstrument - - Patch - Patch + + Glide: + - - Op 1 attack - Op 1 attack + + + Pitch + - - Op 1 decay - Op 1 decay + + + Pitch Stereo Spread + - - Op 1 sustain - Op 1 sustain + + Open help window + - - Op 1 release - Op 1 release + + + Prefilter + + + + lmms::gui::GuiApplication - - Op 1 level - Op 1 niveau + + Working directory + - - Op 1 level scaling - Op 1 niveauschaling + + The LMMS working directory %1 does not exist. Create it now? You can change the directory later via Edit -> Settings. + - - Op 1 frequency multiplier - Op 1 frequentievermenigvuldiger + + Preparing UI + - - Op 1 feedback - Op 1 feedback + + Preparing song editor + - - Op 1 key scaling rate - Op 1 sleutel-schalingsratio + + Preparing mixer + - - Op 1 percussive envelope - Op 1 percussieve envelope + + Preparing controller rack + - - Op 1 tremolo - Op 1 tremolo + + Preparing project notes + - - Op 1 vibrato - Op 1 vibrato + + Preparing microtuner + - - Op 1 waveform - Op 1 golfvorm + + Preparing pattern editor + - - Op 2 attack - Op 2 attack + + Preparing piano roll + - - Op 2 decay - Op 2 decay + + Preparing automation editor + + + + lmms::gui::InstrumentFunctionArpeggioView - - Op 2 sustain - Op 2 sustain + + ARPEGGIO + - - Op 2 release - Op 2 release + + RANGE + - - Op 2 level - Op 2 niveau + + Arpeggio range: + - - Op 2 level scaling - Op 2 niveauschaling + + octave(s) + - - Op 2 frequency multiplier - Op 2 frequentievermenigvuldiger + + REP + - - Op 2 key scaling rate - Op 2 sleutel-schalingsratio + + Note repeats: + - - Op 2 percussive envelope - Op 2 percussieve envelope + + time(s) + - - Op 2 tremolo - Op 2 tremolo + + CYCLE + - - Op 2 vibrato - Op 2 vibrato + + Cycle notes: + - - Op 2 waveform - Op 2 golfvorm + + note(s) + - - FM - FM + + SKIP + - - Vibrato depth - Vibrato-diepte + + Skip rate: + - - Tremolo depth - Tremolo-diepte + + + + % + - - - OpulenzInstrumentView - - - Attack - Attack + + MISS + - - - Decay - Decay + + Miss rate: + - - - Release - Release + + TIME + - - - Frequency multiplier - Frequentievermenigvuldiger + + Arpeggio time: + - - - OscillatorObject - - Osc %1 waveform - Osc %1 golfvorm + + ms + - - Osc %1 harmonic - Osc %1 harmonisch + + GATE + - - - Osc %1 volume - Osc %1 volume + + Arpeggio gate: + - - - Osc %1 panning - Balans osc %1 + + Chord: + - - - Osc %1 fine detuning left - Osc %1 fijn ontstemmen links + + Direction: + - - Osc %1 coarse detuning - Osc %1 grof ontstemmen + + Mode: + + + + lmms::gui::InstrumentFunctionNoteStackingView - - Osc %1 fine detuning right - Osc %1 fijn ontstemmen rechts + + STACKING + - - Osc %1 phase-offset - Osc %1 faseverschuiving + + Chord: + - - Osc %1 stereo phase-detuning - Osc %1 stereo-fase-ontstemming + + RANGE + - - Osc %1 wave shape - Osc %1 golfvorm + + Chord range: + - - Modulation type %1 - Modulatietype %1 + + octave(s) + - Oscilloscope + lmms::gui::InstrumentMidiIOView - - Oscilloscope - Oscilloscoop + + ENABLE MIDI INPUT + - - Click to enable - Klikken om in te schakelen + + + CHAN + This string must be be short, its width must be less than * width of LCD spin-box of two digits + - - - PatchesDialog - - Qsynth: Channel Preset - Qsynth: kanaal-preset + + + VELOC + This string must be be short, its width must be less than * width of LCD spin-box of three digits + - - Bank selector - Bank-selector + + ENABLE MIDI OUTPUT + - - Bank - Bank + + PROG + This string must be be short, its width must be less than the * width of LCD spin-box of three digits + - - Program selector - Programma-selector + + NOTE + This string must be be short, its width must be less than * width of LCD spin-box of three digits + - - Patch - Patch + + MIDI devices to receive MIDI events from + - - Name - Naam + + MIDI devices to send MIDI events to + - - OK - Ok + + VELOCITY MAPPING + - - Cancel - Annuleren + + MIDI VELOCITY + + + + + MIDI notes at this velocity correspond to 100% note velocity. + - PatmanView + lmms::gui::InstrumentSoundShapingView - - Open patch - Patch openen + + TARGET + - - Loop - Herhalen + + FILTER + - - Loop mode - Herhaalmodus + + FREQ + - - Tune - Stemmen + + Cutoff frequency: + - - Tune mode - Stem-modus + + Hz + - - No file selected - Geen bestand geselecteerd + + Q/RESO + - - Open patch file - Patchbestand openen + + Q/Resonance: + - - Patch-Files (*.pat) - Patch-bestanden (*.pat) + + Envelopes, LFOs and filters are not supported by the current instrument. + - MidiClipView + lmms::gui::InstrumentTrackView - - Open in piano-roll - In piano-roll openen + + Mixer channel + - - Set as ghost in piano-roll - Als ghost instellen in piano-roll + + Volume + - - Clear all notes - Alle noten leegmaken + + Volume: + - - Reset name - Naam herstellen + + VOL + - - Change name - Naam wijzigen + + Panning + - - Add steps - Stappen toevoegen + + Panning: + - - Remove steps - Stappen verwijderen + + PAN + - - Clone Steps - Stappen klonen + + MIDI + - - - PeakController - - Peak Controller - Piek-controller + + Input + - - Peak Controller Bug - Piek-controller bug + + Output + - - Due to a bug in older version of LMMS, the peak controllers may not be connect properly. Please ensure that peak controllers are connected properly and re-save this file. Sorry for any inconvenience caused. - Door een bug in oudere versies van LMMS is het mogelijk dat piek-controllers niet goed verbonden zijn. Verzeker u ervan dat piek-controllers goed verbonden zijn en sla dit bestand opnieuw op. Sorry voor enig ongemak. + + Open/Close MIDI CC Rack + + + + + %1: %2 + - PeakControllerDialog + lmms::gui::InstrumentTrackWindow - - PEAK - PIEK + + Volume + - - LFO Controller - LFO-controller + + Volume: + - - - PeakControllerEffectControlDialog - - BASE - BASIS + + VOL + - - Base: - Basis: + + Panning + - - AMNT - HVHD + + Panning: + - - Modulation amount: - Hoeveelheid basis: + + PAN + - - MULT - VERM + + Pitch + - - Amount multiplicator: - Hoeveelheid-vermenigvuldiger: + + Pitch: + - - ATCK - ATCK + + cents + - - Attack: - Attack: + + PITCH + - - DCAY - DCAY + + Pitch range (semitones) + - - Release: - Release: + + RANGE + - - TRSH - TRSH + + Mixer channel + - - Treshold: - Treshold: + + CHANNEL + - - Mute output - Uitvoer dempen + + Save current instrument track settings in a preset file + - - Absolute value - Absolute waarde + + SAVE + - - - PeakControllerEffectControls - - Base value - Basiswaarde + + Envelope, filter & LFO + - - Modulation amount - Hoeveelheid modulatie + + Chord stacking & arpeggio + - - Attack - Attack + + Effects + - - Release - Release + + MIDI + - - Treshold - Treshold + + Tuning and transposition + - - Mute output - Uitvoer dempen + + Save preset + - - Absolute value - Absolute waarde + + XML preset file (*.xpf) + - - Amount multiplicator - Hoeveelheid-vermenigvuldiger + + Plugin + - PianoRoll + lmms::gui::InstrumentTuningView - - Note Velocity - Nootsnelheid + + GLOBAL TRANSPOSITION + - - Note Panning - Noot-balans + + Enables the use of global transposition + - - Mark/unmark current semitone - Huidige semitoon markeren/niet markeren + + Microtuner is not available for MIDI-based instruments. + - - Mark/unmark all corresponding octave semitones - Alle corresponderende octaaf-semitonen markeren/niet markeren + + MICROTUNER + - - Mark current scale - Huidige toonladder markeren + + Active scale: + - - Mark current chord - Huidig akkoord markeren + + + Edit scales and keymaps + - - Unmark all - Niets markeren + + Active keymap: + - - Select all notes on this key - Alle noten op deze sleutel selecteren + + Import note ranges from keymap + - - Note lock - Nootvergrendeling + + When enabled, the first, last and base notes of this instrument will be overwritten with values specified by the selected keymap. + + + + lmms::gui::KickerInstrumentView - - Last note - Laatste noot + + Start frequency: + - - No key + + End frequency: - - No scale - Geen toonladder + + Frequency slope: + - - No chord - Geen akkoord + + Gain: + - - Nudge + + Envelope length: - - Snap + + Envelope slope: - - Velocity: %1% - Snelheid: %1% + + Click: + - - Panning: %1% left - Balans: %1 % links + + Noise: + - - Panning: %1% right - Balans: %1 % rechts + + Start distortion: + - - Panning: center - Balans: midden + + End distortion: + + + + lmms::gui::LOMMControlDialog - - Glue notes failed + + Depth: - - Please select notes to glue first. + + Compression amount for all bands - - Please open a clip by double-clicking on it! - Open een patroon door erop te dubbelklikken! + + Time: + - - - Please enter a new value between %1 and %2: - Voer een nieuwe waarde in tussen %1 en %2: + + Attack/release scaling for all bands + - - - PianoRollWindow - - Play/pause current clip (Space) - Huidig patroon afspelen/pauzeren (Spatie) + + Input Volume: + - - Record notes from MIDI-device/channel-piano - Noten van MIDI-apparaat/kanaal-piano opnemen + + Input volume + - - Record notes from MIDI-device/channel-piano while playing song or BB track - Noten van MIDI-apparaat/kanaal-piano opnemen tijdens het afspelen van song of BB-spoor + + Output Volume: + - - Record notes from MIDI-device/channel-piano, one step at the time - Noten van MIDI-apparaat/kanaal-piano opnemen, een stap per keer + + Output volume + - - Stop playing of current clip (Space) - Stoppen met afspelen van huidig patroon (Spatie) + + Upward Depth: + - - Edit actions - Acties bewerken + + Upward compression amount for all bands + - - Draw mode (Shift+D) - Tekenmodus (Shift+D) + + Downward Depth: + - - Erase mode (Shift+E) - Wissen-modus (Shift+E) + + Downward compression amount for all bands + - - Select mode (Shift+S) - Selecteermodus (Shift+S) + + High/Mid Crossover + - - Pitch Bend mode (Shift+T) - Toonhoogte-buigmodus (Shift+T) + + Mid/Low Crossover + - - Quantize - Kwantiseren + + High/mid band split + - - Quantize positions + + Mid/low band split - - Quantize lengths + + Enable High Band - - File actions + + Enable Mid Band - - Import clip + + Enable Low Band - - - Export clip + + High Input Volume: - - Copy paste controls - Bedieningen kopiëren en plakken + + Input volume for high band + - - Cut (%1+X) - Knippen (%1+X) + + Mid Input Volume: + - - Copy (%1+C) - Kopiëren (%1+C) + + Input volume for mid band + - - Paste (%1+V) - Plakken (%1+V) + + Low Input Volume: + - - Timeline controls - Tijdlijnbediening + + Input volume for low band + - - Glue + + High Output Volume: - - Knife + + Output volume for high band - - Fill + + Mid Output Volume: - - Cut overlaps + + Output volume for mid band - - Min length as last + + Low Output Volume: - - Max length as last + + Output volume for low band - - Zoom and note controls - Zoom- en nootbediening + + Above Threshold High + - - Horizontal zooming - Horizontaal zoomen + + Downward compression threshold for high band + - - Vertical zooming - Verticaal zoomen + + Above Threshold Mid + - - Quantization - Kwantisatie + + Downward compression threshold for mid band + - - Note length - Noot-lengte + + Above Threshold Low + - - Key + + Downward compression threshold for low band - - Scale - Toonladder + + Above Ratio High + - - Chord - Akkoord + + Downward compression ratio for high band + - - Snap mode + + Above Ratio Mid - - Clear ghost notes - Ghost-noten leegmaken + + Downward compression ratio for mid band + - - - Piano-Roll - %1 - Piano-roll - %1 + + Above Ratio Low + - - - Piano-Roll - no clip - Piano-roll - geen patroon + + Downward compression ratio for low band + - - - XML clip file (*.xpt *.xptz) + + Below Threshold High - - Export clip success + + Upward compression threshold for high band - - Clip saved to %1 + + Below Threshold Mid - - Import clip. + + Upward compression threshold for mid band - - You are about to import a clip, this will overwrite your current clip. Do you want to continue? + + Below Threshold Low - - Open clip + + Upward compression threshold for low band - - Import clip success + + Below Ratio High - - Imported clip %1! + + Upward compression ratio for high band - - - PianoView - - Base note - Grondtoon + + Below Ratio Mid + - - First note + + Upward compression ratio for mid band - - Last note - Laatste noot + + Below Ratio Low + - - - Plugin - - Plugin not found - Plugin niet gevonden + + Upward compression ratio for low band + - - The plugin "%1" wasn't found or could not be loaded! -Reason: "%2" - De plug-in "%1" werd niet teruggevonden of kon niet geladen worden! -Reden: "%2" + + Attack High: + - - Error while loading plugin - Fout bij laden van plug-in + + Attack time for high band + - - Failed to load plugin "%1"! - Laden van plug-in "%1" mislukt! + + Attack Mid: + - - - PluginBrowser - - Instrument Plugins - Instrument-plugins + + Attack time for mid band + - - Instrument browser - Instrument-browser + + Attack Low: + - - Drag an instrument into either the Song-Editor, the Beat+Bassline Editor or into an existing instrument track. - Sleep een instrument naar de song-editor, de beat- en baslijn-editor of naar een bestaande instrument-track. + + Attack time for low band + - - no description - geen beschrijving + + Release High: + - - A native amplifier plugin - Een ingebouwde versterker-plugin + + Release time for high band + - - Simple sampler with various settings for using samples (e.g. drums) in an instrument-track - Simpele sampler met verschillende instellingen voor het gebruik van samples (bijvoorbeeld drums) in een instrument-track + + Release Mid: + - - Boost your bass the fast and simple way - Versterk uw bas snel en eenvoudig + + Release time for mid band + - - Customizable wavetable synthesizer - Aanpasbare wavetable-synthesizer + + Release Low: + - - An oversampling bitcrusher - Een oversampling-bitcrusher + + Release time for low band + - - Carla Patchbay Instrument - Carla Patchbay instrument + + RMS Time: + - - Carla Rack Instrument - Carla Rack instrument + + RMS size for sidechain signal (set to 0 for Peak mode) + - - A dynamic range compressor. + + Knee: - - A 4-band Crossover Equalizer - Een 4-band crossover-equalizer + + Knee size for all compressors + - - A native delay plugin - Een ingebouwde delay-plugin + + Range: + - - A Dual filter plugin - Een dual-filter-plugin + + Maximum gain increase for all bands + - - plugin for processing dynamics in a flexible way - plugin voor het verwerken van dynamieken op een flexibele manier + + Balance: + - - A native eq plugin - Een ingebouwde eq-plugin + + Bias input volume towards one channel + - - A native flanger plugin - Een ingebouwde flanger-plugin + + Scale output volume with Depth + - - Emulation of GameBoy (TM) APU - Emulatie van GameBoy (TM) APU + + Scale output volume with Depth parameter + - - Player for GIG files - Speler voor GIG-bestanden + + Stereo Link + - - Filter for importing Hydrogen files into LMMS - Filter voor importeren van Hydrogen-bestanden in LMMS + + Apply same gain change to both channels + - - Versatile drum synthesizer - Veelzijdige drum-synthesizer + + Auto Time: + - - List installed LADSPA plugins - Geïnstalleerde LADSPA-plugins oplijsten + + Speed up attack and release times when transients occur + - - plugin for using arbitrary LADSPA-effects inside LMMS. - plugin voor het gebruik van arbitraire LADSPA-effecten binnen LMMS. + + Mix: + - - Incomplete monophonic imitation TB-303 - Onvoltooide monofonische limitering TB-303 + + Wet/Dry of all bands + - - plugin for using arbitrary LV2-effects inside LMMS. + + Feedback - - plugin for using arbitrary LV2 instruments inside LMMS. + + Use output as sidechain signal instead of input - - Filter for exporting MIDI-files from LMMS - Filter voor exporteren van MIDI-bestanden van LMMS + + Mid/Side + - - Filter for importing MIDI-files into LMMS - Filter, om MIDI-bestanden in LMMS te importeren + + Compress mid/side channels instead of left/right + - - Monstrous 3-oscillator synth with modulation matrix - Monsterlijke 3-oscillator synth met modulatiematrix + + + Suppress upward compression for side band + - - A multitap echo delay plugin - Een multitap-echo-delay-plugin + + + Lookahead + + + + + Lookahead length + + + + + Clear all parameters + + + + lmms::gui::LadspaBrowserView - - A NES-like synthesizer - Een NES-achtige synthesizer + + + Available Effects + - - 2-operator FM Synth - 2-operator FM-synth + + + Unavailable Effects + - - Additive Synthesizer for organ-like sounds - Additive Synthesizer voor orgelachtige geluiden + + + Instruments + - - GUS-compatible patch instrument - GUS-compatibel patch-instrument + + + Analysis Tools + - - Plugin for controlling knobs with sound peaks - Plugin voor het bedienen van knoppen met geluidspieken + + + Don't know + - - Reverb algorithm by Sean Costello - Reverb-algoritme door Sean Costello + + Type: + + + + lmms::gui::LadspaControlDialog - - Player for SoundFont files - Speler voor SoundFont-bestanden + + Link Channels + - - LMMS port of sfxr - LMMS port van sfxr + + Channel + + + + lmms::gui::LadspaControlView - - Emulation of the MOS6581 and MOS8580 SID. -This chip was used in the Commodore 64 computer. - Emulatie van de MOS6581 en MOS8580 SID. -Deze chip werd gebruikt in de Commodore 64 computer. + + Link channels + - - A graphical spectrum analyzer. - Een grafische spectrum-analyzer. + + Value: + + + + lmms::gui::LadspaDescription - - Plugin for enhancing stereo separation of a stereo input file - Plugin voor het verbeteren van stereo-scheiding van een stereo-invoerbestand. + + Plugins + - - Plugin for freely manipulating stereo output - Plugin voor het vrij manipuleren voor stereo-uitoer + + Description + - - Tuneful things to bang on - Welluidende zaken om te knallen + + Name: + - - Three powerful oscillators you can modulate in several ways - Drie krachtige oscillators die u op verschillende manieren kunt moduleren + + Maker: + - - A stereo field visualizer. + + Copyright: - - VST-host for using VST(i)-plugins within LMMS - VST-Host voor gebruik van VST(i)-plugins binnen LMMS + + Requires Real Time: + - - Vibrating string modeler - Modeler voor trillende snaren + + + + Yes + - - plugin for using arbitrary VST effects inside LMMS. - plugin voor het gebruik van arbitraire VST-effecten binnen LMMS. + + + + No + - - 4-oscillator modulatable wavetable synth - 4-oscillator moduleerbare wavetable-synth + + Real Time Capable: + - - plugin for waveshaping - plugin voor golfvorming + + In Place Broken: + - - Mathematical expression parser - Wiskundige uitdrukking-verwerker + + Channels In: + - - Embedded ZynAddSubFX - Ingebedde ZynAddSubFX + + Channels Out: + - PluginDatabaseW + lmms::gui::LadspaMatrixControlDialog - - Carla - Add New + + Link Channels - - Format + + Link - - Internal + + Channel %1 - - LADSPA + + Link channels + + + lmms::gui::LadspaPortDialog - - DSSI + + Ports - - LV2 + + Name - - VST2 + + Rate - - VST3 + + Direction - - AU + + Type - - Sound Kits + + Min < Default < Max - - Type - Type - - - - Effects - Effecten + + Logarithmic + - - Instruments - Instrumenten + + SR Dependent + - - MIDI Plugins + + Audio - - Other/Misc + + Control - - Architecture + + Input - - Native + + Output - - Bridged + + Toggled - - Bridged (Wine) + + Integer - - Requirements + + Float - - With Custom GUI + + + Yes + + + lmms::gui::Lb302SynthView - - With CV Ports + + Cutoff Freq: - - Real-time safe only + + Resonance: - - Stereo only + + Env Mod: - - With Inline Display + + Decay: - - Favorites only + + 303-es-que, 24dB/octave, 3 pole filter - - (Number of Plugins go here) + + Slide Decay: - - &Add Plugin + + DIST: - - Cancel - Annuleren + + Saw wave + - - Refresh + + Click here for a saw-wave. - - Reset filters + + Triangle wave - - - - - - - - - - - - - - - - - TextLabel + + Click here for a triangle-wave. - - Format: + + Square wave - - Architecture: + + Click here for a square-wave. - - Type: - Soort: + + Rounded square wave + - - MIDI Ins: + + Click here for a square-wave with a rounded end. - - Audio Ins: + + Moog wave - - CV Outs: + + Click here for a moog-like wave. - - MIDI Outs: + + Sine wave - - Parameter Ins: + + Click for a sine-wave. - - Parameter Outs: + + + White noise wave - - Audio Outs: + + Click here for an exponential wave. - - CV Ins: + + Click here for white-noise. - - UniqueID: + + Bandlimited saw wave - - Has Inline Display: + + Click here for bandlimited saw wave. - - Has Custom GUI: + + Bandlimited square wave - - Is Synth: + + Click here for bandlimited square wave. - - Is Bridged: + + Bandlimited triangle wave - - Information + + Click here for bandlimited triangle wave. - - Name - Naam + + Bandlimited moog saw wave + - - Label/URI + + Click here for bandlimited moog saw wave. + + + lmms::gui::LcdFloatSpinBox - - Maker + + Set value - - Binary/Filename + + Please enter a new value between %1 and %2: + + + lmms::gui::LcdSpinBox - - Focus Text Search + + Set value - - Ctrl+F + + Please enter a new value between %1 and %2: - PluginEdit + lmms::gui::LeftRightNav - - Plugin Editor + + + + Previous - - Edit + + + + Next + + + + + Previous (%1) + + + + + Next (%1) + + + lmms::gui::LfoControllerDialog - - Control - Bediening + + LFO + - - MIDI Control Channel: + + BASE - - N + + Base: - - Output dry/wet (100%) + + FREQ - - Output volume (100%) + + LFO frequency: - - Balance Left (0%) + + AMNT - - - Balance Right (0%) + + Modulation amount: - - Use Balance + + PHS - - Use Panning + + Phase offset: - - Settings - Instellingen + + degrees + - - Use Chunks + + Sine wave - - Audio: + + Triangle wave - - Fixed-Size Buffer + + Saw wave - - Force Stereo (needs reload) + + Square wave - - MIDI: + + Moog saw wave - - Map Program Changes + + Exponential wave - - Send Bank/Program Changes + + White noise - - Send Control Changes + + User-defined shape. +Double click to pick a file. - - Send Channel Pressure + + Multiply modulation frequency by 1 - - Send Note Aftertouch + + Multiply modulation frequency by 100 - - Send Pitchbend + + Divide modulation frequency by 100 + + + lmms::gui::LfoGraph - - Send All Sound/Notes Off + + %1 Hz + + + lmms::gui::MainWindow - - -Plugin Name - + + Configuration file - - Program: + + Error while parsing configuration file at line %1:%2: %3 - - MIDI Program: + + Could not open file - - Save State + + Could not open file %1 for writing. +Please make sure you have write permission to the file and the directory containing the file and try again! - - Load State + + Project recovery - - Information + + There is a recovery file present. It looks like the last session did not end properly or another instance of LMMS is already running. Do you want to recover the project of this session? - - Label/URI: + + + Recover - - Name: + + Recover the file. Please don't run multiple instances of LMMS when you do this. - - Type: - Soort: + + + Discard + - - Maker: + + Launch a default session and delete the restored files. This is not reversible. - - Copyright: + + Version %1 - - Unique ID: + + Preparing plugin browser - - - PluginFactory - - Plugin not found. - Plug-in niet gevonden. + + Preparing file browsers + - - LMMS plugin %1 does not have a plugin descriptor named %2! - LMMS-plugin %1 heeft geen plugin-descriptor die %2 heet! + + My Projects + - - - PluginParameter - - Form + + My Samples - - Parameter Name + + My Presets - - ... + + My Home - - - PluginRefreshW - - Carla - Refresh + + Root Directory - - Search for new... + + Volumes - - LADSPA + + My Computer - - DSSI + + Loading background picture - - LV2 + + &File - - VST2 + + &New - - VST3 + + &Open... - - AU + + &Save - - SF2/3 + + Save &As... - - SFZ + + Save as New &Version - - Native + + Save as default template - - POSIX 32bit + + Import... - - POSIX 64bit + + E&xport... - - Windows 32bit + + E&xport Tracks... - - Windows 64bit + + Export &MIDI... - - Available tools: + + &Quit - - python3-rdflib (LADSPA-RDF support) + + &Edit - - carla-discovery-win64 + + Undo - - carla-discovery-native + + Redo - - carla-discovery-posix32 + + Scales and keymaps - - carla-discovery-posix64 + + Settings - - carla-discovery-win32 + + &View - - Options: + + &Tools - - Carla will run small processing checks when scanning the plugins (to make sure they won't crash). -You can disable these checks to get a faster scanning time (at your own risk). + + &Help - - Run processing checks while scanning + + Online Help - - Press 'Scan' to begin the search + + Help - - Scan + + About - - >> Skip + + Create new project - - Close - Sluiten + + Create new project from template + - - - PluginWidget - - - - - - Frame + + Open existing project - - Enable + + Recently opened projects - - On/Off - Aan/uit + + Save current project + - - - - - PluginName + + Export current project - - MIDI - MIDI + + Metronome + - - AUDIO IN + + + Song Editor - - AUDIO OUT + + + Pattern Editor - - GUI + + + Piano Roll - - Edit + + + Automation Editor - - Remove + + + Mixer - - Plugin Name + + Show/hide controller rack - - Preset: + + Show/hide project notes - - - ProjectNotes - - Project Notes - Projectnotities + + Untitled + - - Enter project notes here - Geef hier uw projectnotities in + + Recover session. Please save your work! + - - Edit Actions - Bewerking-acties + + LMMS %1 + - - &Undo - &Ongedaan maken + + Recovered project not saved + - - %1+Z - %1+Z + + This project was recovered from the previous session. It is currently unsaved and will be lost if you don't save it. Do you want to save it now? + - - &Redo - &Opnieuw + + Project not saved + - - %1+Y - %1+Y + + The current project was modified since last saving. Do you want to save it now? + - - &Copy - &Kopiëren + + Open Project + - - %1+C - %1+C + + LMMS (*.mmp *.mmpz) + - - Cu&t - &Knippen + + Save Project + - - %1+X - %1+X + + LMMS Project + - - &Paste - &Plakken + + LMMS Project Template + - - %1+V - %1+V + + Save project template + - - Format Actions - Formaat-acties + + Overwrite default template? + - - &Bold - &Vet + + This will overwrite your current default template. + - - %1+B - %1+B + + Help not available + - - &Italic - &Cursief + + Currently there's no help available in LMMS. +Please visit http://lmms.sf.net/wiki for documentation on LMMS. + - - %1+I - %1+I + + Controller Rack + - - &Underline - &Onderstrepen + + Project Notes + - - %1+U - %1+U + + Fullscreen + - - &Left - &Links uitlijnen + + Volume as dBFS + - - %1+L - %1+L + + Smooth scroll + - - C&enter - C&entreren + + Enable note labels in piano roll + - - %1+E - %1+E + + MIDI File (*.mid) + - - &Right - &Rechts uitlijnen + + + untitled + - - %1+R - %1+R + + + Select file for project-export... + - - &Justify - &Uitvullen + + Select directory for writing exported tracks... + - - %1+J - %1+J + + Save project + - - &Color... - &Kleur... + + Project saved + - - - ProjectRenderer - - WAV (*.wav) - WAV (*.wav) + + The project %1 is now saved. + - - FLAC (*.flac) - FLAC (*.flac) + + Project NOT saved. + - - OGG (*.ogg) - OGG (*.ogg) + + The project %1 was not saved! + - - MP3 (*.mp3) - MP3 (*.mp3) + + Import file + - - - QObject - - Reload Plugin + + MIDI sequences - - Show GUI - GUI weergeven + + Hydrogen projects + - - Help - Help + + All file types + - QWidget + lmms::gui::MalletsInstrumentView - - - - - Name: - Naam: + + Instrument + - - URI: + + Spread - - - - Maker: - Maker: + + Spread: + - - - - Copyright: - Auteursrecht: + + Random + - - - Requires Real Time: - Vereist realtime: + + Random: + - - - - - - - Yes - Ja + + Missing files + - - - - - - - No - Nee + + Your Stk-installation seems to be incomplete. Please make sure the full Stk-package is installed! + - - - Real Time Capable: - Realtime-capabel: + + Hardness + - - - In Place Broken: - Defect op zijn plaats: + + Hardness: + - - - Channels In: - Invoerkanalen: + + Position + - - - Channels Out: - Uitvoerkanalen: + + Position: + - - File: %1 - Bestand: %1 + + Vibrato gain + - - File: - Bestand: + + Vibrato gain: + - - - RecentProjectsMenu - - &Recently Opened Projects - &Recent geopende projecten + + Vibrato frequency + - - - RenameDialog - - Rename... - Naam wijzigen... + + Vibrato frequency: + - - - ReverbSCControlDialog - - Input - Invoer + + Stick mix + - - Input gain: - Invoer-gain: + + Stick mix: + - - Size - Grootte + + Modulator + - - Size: - Grootte: + + Modulator: + - - Color - Kleur + + Crossfade + - - Color: - Kleur: + + Crossfade: + - - Output - Uitvoer + + LFO speed + - - Output gain: - Uitvoer-gain: + + LFO speed: + - - - ReverbSCControls - - Input gain - Invoer-gain + + LFO depth + - - Size - Grootte + + LFO depth: + - - Color - Kleur + + ADSR + - - Output gain - Uitvoer-gain + + ADSR: + - - - SaControls - - Pause - Pauzeren + + Pressure + - - Reference freeze - Referentie bevriezen + + Pressure: + - - Waterfall - Waterval + + Speed + - - Averaging - Averaging + + Speed: + + + + lmms::gui::ManageVSTEffectView - - Stereo - Stereo + + - VST parameter control + - - Peak hold - Piek vasthouden + + VST sync + - - Logarithmic frequency - Logaritmische frequentie + + + Automated + - - Logarithmic amplitude - Logaritmische amplitude + + Close + + + + lmms::gui::ManageVestigeInstrumentView - - Frequency range - Frequentiebereik + + + - VST plugin control + - - Amplitude range - Amplitudebereik + + VST Sync + - - FFT block size - FFT-blokgrootte + + + Automated + - - FFT window type - FFT-venstertype + + Close + + + + lmms::gui::MeterDialog - - Peak envelope resolution - Piek envelope-resolutie + + + Meter Numerator + - - Spectrum display resolution - Spectrumweergave-resolutie + + Meter numerator + - - Peak decay multiplier - Piek decay vermenigvuldiger + + + Meter Denominator + - - Averaging weight - Averaging-gewicht + + Meter denominator + - - Waterfall history size - Waterval-geschiedenisgrootte + + TIME SIG + + + + lmms::gui::MicrotunerConfig - - Waterfall gamma correction - Waterval-gammacorrectie + + Selected scale slot + - - FFT window overlap - FFT-venster-overlap + + Selected keymap slot + - - FFT zero padding - FFT-voorloopnullen + + + First key + - - - Full (auto) - Volledig (auto) + + + Last key + - - - - Audible - Hoorbaar + + + Middle key + - - Bass - Bass + + + Base key + - - Mids - Middentonen + + + + Base note frequency + - - High - Hoge tonen + + Microtuner Configuration + - - Extended - Uitgebreid + + Scale slot to edit: + - - Loud - Luid + + Scale description. Cannot start with "!" and cannot contain a newline character. + - - Silent - Stil + + + Load + - - (High time res.) - (hoge tijdresolutie) + + + Save + - - (High freq. res.) - (hoge freq.-resolutie) + + Load scale definition from a file. + - - Rectangular (Off) - Rechthoekig (uit) + + Save scale definition to a file. + - - - Blackman-Harris (Default) - Blackman-Harris (standaard) + + Enter intervals on separate lines. Numbers containing a decimal point are treated as cents. +Other inputs are treated as integer ratios and must be in the form of 'a/b' or 'a'. +Unity (0.0 cents or ratio 1/1) is always present as a hidden first value; do not enter it manually. + - - Hamming - Hamming + + Apply scale changes + - - Hanning - Hanning + + Verify and apply changes made to the selected scale. To use the scale, select it in the settings of a supported instrument. + - - - SaControlsDialog - - Pause - Pauzeren + + Keymap slot to edit: + - - Pause data acquisition - Verzamelen van gegevens pauzeren + + Keymap description. Cannot start with "!" and cannot contain a newline character. + - - Reference freeze - Referentie bevriezen + + Load key mapping definition from a file. + - - Freeze current input as a reference / disable falloff in peak-hold mode. - Huidige invoer als referentie bevriezen / uitval in piek-houd-modus uitschakelen + + Save key mapping definition to a file. + - - Waterfall - Waterval + + Enter key mappings on separate lines. Each line assigns a scale degree to a MIDI key, +starting with the middle key and continuing in sequence. +The pattern repeats for keys outside of the explicit keymap range. +Multiple keys can be mapped to the same scale degree. +Enter 'x' if you wish to leave the key disabled / not mapped. + - - Display real-time spectrogram - Realtime-spectrogram weergeven + + FIRST + - - Averaging - Averaging + + First MIDI key that will be mapped + - - Enable exponential moving average - Exponentieel voortschrijdend gemiddelde inschakelen + + LAST + - - Stereo - Stereo + + Last MIDI key that will be mapped + - - Display stereo channels separately - Stereokanalen apart weergeven + + MIDDLE + - - Peak hold - Piek vasthouden + + First line in the keymap refers to this MIDI key + - - Display envelope of peak values - Envelope van piekwaarden weergeven + + BASE N. + - - Logarithmic frequency - Logaritmische frequentie + + Base note frequency will be assigned to this MIDI key + - - Switch between logarithmic and linear frequency scale - Wisselen tussen logaritmische en lineaire frequentieschaal + + BASE NOTE FREQ + - - - Frequency range - Frequentiebereik + + Apply keymap changes + - - Logarithmic amplitude - Logaritmische amplitude + + Verify and apply changes made to the selected key mapping. To use the mapping, select it in the settings of a supported instrument. + - - Switch between logarithmic and linear amplitude scale - Wisselen tussen logaritmische en lineaire amplitudeschaal + + Scale parsing error + - - - Amplitude range - Amplitudebereik + + Scale name cannot start with an exclamation mark + - - Envelope res. - Envelope-resolutie + + Scale name cannot contain a new-line character + - - Increase envelope resolution for better details, decrease for better GUI performance. - Envelope-resolutie vergroten voor betere details, verkleinen voor betere GUI-prestaties. + + Interval defined in cents cannot be converted to a number + - - - Draw at most - Maximaal + + Numerator of an interval defined as a ratio cannot be converted to a number + - - envelope points per pixel - envelope-punten per pixel tekenen + + Denominator of an interval defined as a ratio cannot be converted to a number + - - Spectrum res. - Spectrumresolutie + + Interval defined as a ratio cannot be negative + - - Increase spectrum resolution for better details, decrease for better GUI performance. - Spectrumresolutie vergroten voor betere details, verkleinen voor betere GUI-prestaties. + + Keymap parsing error + - - spectrum points per pixel - spectrum-punten per pixel tekenen + + Keymap name cannot start with an exclamation mark + - - Falloff factor - Afval-factor + + Keymap name cannot contain a new-line character + - - Decrease to make peaks fall faster. - Vergroten om pieken sneller te laten vallen + + Scale degree cannot be converted to a whole number + - - Multiply buffered value by - Gebufferde waarde vermenigvuldigen met + + Scale degree cannot be negative + - - Averaging weight - Averaging-gewicht + + Invalid keymap + - - Decrease to make averaging slower and smoother. - Verkleinen om averaging trager en zachter te maken + + Base key is not mapped to any scale degree. No sound will be produced as there is no way to assign reference frequency to any note. + - - New sample contributes - Nieuw sample draagt bij + + Open scale + - - Waterfall height - Hoogte waterval + + + Scala scale definition (*.scl) + - - Increase to get slower scrolling, decrease to see fast transitions better. Warning: medium CPU usage. - Vergroten om trager scrollen te krijgen, verkleinen om snelle overgangen beter te zien. Waarschuwing: gemiddeld CPU-gebruik. + + Scale load failure + - - Keep - + + + Unable to open selected file. + - - lines - lijnen houden + + Open keymap + - - Waterfall gamma - Waterval-gamma + + + Scala keymap definition (*.kbm) + - - Decrease to see very weak signals, increase to get better contrast. - Verkleinen om zeer zwakke signalen te zien, vergroten om beter contrast te krijgen. + + Keymap load failure + - - Gamma value: - Gammawaarde: + + Save scale + - - Window overlap - Venster-overlap + + Scale save failure + - - Increase to prevent missing fast transitions arriving near FFT window edges. Warning: high CPU usage. - Vergroten om ontbrekende snelle overgangen in de buurt van FFT-vensterranden te voorkomen. Waarschuwing: hoog CPU-gebruik. + + + Unable to open selected file for writing. + - - Each sample processed - Elke sample wordt + + Save keymap + - - times - keer verwerkt + + Keymap save failure + + + + lmms::gui::MidiCCRackView - - Zero padding - Voorloopnullen + + + MIDI CC Rack - %1 + - - Increase to get smoother-looking spectrum. Warning: high CPU usage. - Vergroten om een vloeiender uitziend spectrum te verkrijgen. Waarschuwing: hoog CPU-gebruik. + + MIDI CC Knobs: + - - Processing buffer is - Verwerkingsbuffer is + + CC %1 + + + + lmms::gui::MidiClipView - - steps larger than input block - stappen groter dan invoerblok + + + Transpose + - - Advanced settings - Geavanceerde instellingen + + Semitones to transpose by: + - - Access advanced settings - Geavanceerde instellingen openen + + Open in piano-roll + - - - FFT block size - FFT-blokgrootte + + Set as ghost in piano-roll + - - - FFT window type - FFT-venstertype + + Set as ghost in automation editor + - - - SampleBuffer - - Fail to open file - Bestand openen mislukt + + Clear all notes + - - Audio files are limited to %1 MB in size and %2 minutes of playing time - Audiobestanden zijn beperkt tot %1 MB in grootte en %2 minuten speeltijd + + Reset name + - - Open audio file - Audiobestand openen + + Change name + - - All Audio-Files (*.wav *.ogg *.ds *.flac *.spx *.voc *.aif *.aiff *.au *.raw) - Alle audiobestanden (*.wav *.ogg *.ds *.flac *.spx *.voc *.aif *.aiff *.au *.raw) + + Add steps + - - Wave-Files (*.wav) - Wave-bestanden (*.wav) + + Remove steps + - - OGG-Files (*.ogg) - OGG-bestanden (*.ogg) + + Clone Steps + + + + lmms::gui::MidiSetupWidget - - DrumSynth-Files (*.ds) - DrumSynth-bestanden (*.ds) + + Device + + + + lmms::gui::MixerChannelLcdSpinBox - - FLAC-Files (*.flac) - FLAC-bestanden (*.flac) + + Assign to: + - - SPEEX-Files (*.spx) - SPEEX-bestanden (*.spx) + + New Mixer Channel + - - VOC-Files (*.voc) - VOC-bestanden (*.voc) + + Please enter a new value between %1 and %2: + - - AIFF-Files (*.aif *.aiff) - AIFF-bestanden (*.aif *.aiff) + + Set value + + + + lmms::gui::MixerChannelView - - AU-Files (*.au) - AU-bestanden (*.au) + + Channel send amount + - - RAW-Files (*.raw) - RAW-bestanden (*.raw) + + Mute + - - - SampleClipView - - Double-click to open sample - Dubbelklikken om sample te openen + + Mute this channel + - - Delete (middle mousebutton) - Verwijderen (middelste muisknop) + + Solo + - - Delete selection (middle mousebutton) + + Solo this channel - - Cut - Knippen + + Fader %1 + - - Cut selection + + Move &left - - Copy - Kopiëren + + Move &right + - - Copy selection + + Rename &channel - - Paste - Plakken + + R&emove channel + - - Mute/unmute (<%1> + middle click) - Dempen/geluid aan (<%1> + middelklik) + + Remove &unused channels + - - Mute/unmute selection (<%1> + middle click) + + Color - - Reverse sample - Sample omdraaien + + Change + - - Set clip color + + Reset - - Use track color + + Pick random - - - SampleTrack - - Volume - Volume + + This Mixer Channel is being used. +Are you sure you want to remove this channel? + +Warning: This operation can not be undone. + - - Panning - Balans + + Confirm removal + - - Mixer channel - FX-kanaal + + Don't ask again + + + + lmms::gui::MixerView - - - Sample track - Sample-track + + Mixer + - SampleTrackView + lmms::gui::MonstroView - - Track volume - Track-volume + + Operators view + - - Channel volume: - Volume kanaal: + + Matrix view + - - VOL - VOL + + + + Volume + - + + + Panning - Balans - - - - Panning: - Balans: - - - - PAN - BAL + - - Channel %1: %2 - FX %1: %2 + + + + Coarse detune + - - - SampleTrackWindow - - GENERAL SETTINGS - ALGEMENE INSTELLINGEN + + + + semitones + - - Sample volume - Sample-volume + + + Fine tune left + - - Volume: - Volume: + + + + + cents + - - VOL - VOL + + + Fine tune right + - - Panning - Balans + + + + Stereo phase offset + - - Panning: - Balans: + + + + + + deg + - - PAN - BAL + + Pulse width + - - Mixer channel - FX-kanaal + + Send sync on pulse rise + - - CHANNEL - FX + + Send sync on pulse fall + - - - SaveOptionsWidget - - Discard MIDI connections - MIDI-verbindingen weggooien + + Hard sync oscillator 2 + - - Save As Project Bundle (with resources) + + Reverse sync oscillator 2 - - - SetupDialog - - Reset to default value - Standaardwaarde herstellen + + Sub-osc mix + - - Use built-in NaN handler - Ingebouwde HaN-handler gebruiken + + Hard sync oscillator 3 + - - Settings - Instellingen + + Reverse sync oscillator 3 + - - - General - Algemeen + + + + + Attack + - - Graphical user interface (GUI) - Grafische gebruikersinterface (GUI) + + + Rate + - - Display volume as dBFS - Volume weergeven als dBFS + + + Phase + - - Enable tooltips - Tooltips inschakelen + + + Pre-delay + - - Enable master oscilloscope by default + + + Hold - - Enable all note labels in piano roll + + + Decay - - Enable compact track buttons + + + Sustain - - Enable one instrument-track-window mode + + + Release - - Show sidebar on the right-hand side + + + Slope - - Let sample previews continue when mouse is released + + Mix osc 2 with osc 3 - - Mute automation tracks during solo + + Modulate amplitude of osc 3 by osc 2 - - Show warning when deleting tracks + + Modulate frequency of osc 3 by osc 2 - - Projects - Projecten + + Modulate phase of osc 3 by osc 2 + - - Compress project files by default + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Modulation amount + + + lmms::gui::MultitapEchoControlDialog - - Create a backup file when saving a project + + Length - - Reopen last project on startup + + Step length: - - Language - Taal + + Dry + - - - Performance - Prestaties + + Dry gain: + - - Autosave - Automatisch opslaan + + Stages + - - Enable autosave - Automatisch opslaan inschakelen + + Low-pass stages: + - - Allow autosave while playing - Automatisch opslaan toestaan tijdens afspelen + + Swap inputs + - - User interface (UI) effects vs. performance - Gebruikersinterface-effecten vs. prestaties + + Swap left and right input channels for reflections + + + + lmms::gui::NesInstrumentView - - Smooth scroll in song editor + + + + + Volume - - Display playback cursor in AudioFileProcessor + + + + Coarse detune - - Plugins - Plugins + + + + Envelope length + - - VST plugins embedding: - Inbedden van VST-plugins: + + Enable channel 1 + - - No embedding - Geen embedding + + Enable envelope 1 + - - Embed using Qt API - Embedden met Qt-API + + Enable envelope 1 loop + - - Embed using native Win32 API - Embedden met ingebouwde Win32-API + + Enable sweep 1 + - - Embed using XEmbed protocol - Embedden met XEmbed-protocol + + + Sweep amount + - - Keep plugin windows on top when not embedded - Plugin-vensters bovenaan houden wanneer niet ingebed + + + Sweep rate + - - Sync VST plugins to host playback - Synchroniseer VST plugins met host-playback + + + 12.5% Duty cycle + - - Keep effects running even without input - Effecten actief houden, zelfs zonder invoer + + + 25% Duty cycle + - - - Audio - Audio + + + 50% Duty cycle + - - Audio interface - Audio-interface + + + 75% Duty cycle + - - HQ mode for output audio device - HQ-modus voor audio-apparaat-uitvoer + + Enable channel 2 + - - Buffer size - Buffergrootte + + Enable envelope 2 + - - - MIDI - MIDI + + Enable envelope 2 loop + - - MIDI interface - MIDI-interface + + Enable sweep 2 + - - Automatically assign MIDI controller to selected track + + Enable channel 3 - - LMMS working directory - LMMS-werkmap + + Noise Frequency + - - VST plugins directory + + Frequency sweep - - LADSPA plugins directories + + Enable channel 4 - - SF2 directory - SF2-map + + Enable envelope 4 + - - Default SF2 + + Enable envelope 4 loop - - GIG directory - GIG-map + + Quantize noise frequency when using note frequency + - - Theme directory + + Use note frequency for noise - - Background artwork - Achtergrondafbeelding + + Noise mode + - - Some changes require restarting. - Sommige wijzigingen vereisen een nieuwe start. + + Master volume + - - Autosave interval: %1 - Interval automatisch opslaan: %1 + + Vibrato + + + + lmms::gui::OpulenzInstrumentView - - Choose the LMMS working directory - Kies de LMMS-werkmap + + + Attack + - - Choose your VST plugins directory - Kies uw VST-plugin-map + + + Decay + - - Choose your LADSPA plugins directory - Kies uw LADSPA-pluginmap + + + Release + - - Choose your default SF2 - Kies uw standaard SF2 + + + Frequency multiplier + + + + lmms::gui::OrganicInstrumentView - - Choose your theme directory - Kies uw thema-map + + Distortion: + - - Choose your background picture - Kies uw achtergrondafbeelding + + Volume: + - - - Paths - Paden + + Randomise + - - OK - Ok + + + Osc %1 waveform: + - - Cancel - Annuleren + + Osc %1 volume: + - - Frames: %1 -Latency: %2 ms - Frames: %1 -Latentie: %2 ms + + Osc %1 panning: + - - Choose your GIG directory - Kies uw GIG-map + + Osc %1 stereo detuning + - - Choose your SF2 directory - Kies uw SF2-map + + cents + - - minutes - minuten + + Osc %1 harmonic: + + + + lmms::gui::Oscilloscope - - minute - minuut + + Oscilloscope + - - Disabled - Uitgeschakeld + + Click to enable + - SidInstrument - - - Cutoff frequency - Cutoff-frequentie - + lmms::gui::PatmanView - - Resonance - Resonantie + + Open patch + - - Filter type - Filtersoort + + Loop + - - Voice 3 off - Stem 3 off + + Loop mode + - - Volume - Volume + + Tune + - - Chip model - Chip-model + + Tune mode + - - - SidInstrumentView - - Volume: - Volume: + + No file selected + - - Resonance: - Resonantie: + + Open patch file + - - - Cutoff frequency: - Cutoff-frequentie: + + Patch-Files (*.pat) + + + + lmms::gui::PatternClipView - - High-pass filter - Highpass-filter + + Open in Pattern Editor + - - Band-pass filter - Bandpass-filter + + Reset name + - - Low-pass filter - Lowpass-filter + + Change name + + + + lmms::gui::PatternEditorWindow - - Voice 3 off - Stem 3 uit + + Pattern Editor + - - MOS6581 SID - MOS6581 SID + + Play/pause current pattern (Space) + - - MOS8580 SID - MOS8580 SID + + Stop playback of current pattern (Space) + - - - Attack: - Attack: + + Pattern selector + - - - Decay: - Decay: + + Track and step actions + - - Sustain: - Sustain: + + New pattern + - - - Release: - Release: + + Clone pattern + - - Pulse Width: - Pulsbreedte: + + Add sample-track + - - Coarse: - Grof: + + Add automation-track + - - Pulse wave - Pulsgolf + + Remove steps + - - Triangle wave - Driehoeksgolf + + Add steps + - - Saw wave - Zaagtandgolf + + Clone Steps + + + + lmms::gui::PeakControllerDialog - - Noise - Ruis + + PEAK + - - Sync - Sync + + LFO Controller + + + + lmms::gui::PeakControllerEffectControlDialog - - Ring modulation - Ring-modulatie + + BASE + - - Filtered - Gefilterd + + Base: + - - Test - Test + + AMNT + - - Pulse width: - Pulsbreedte + + Modulation amount: + - - - SideBarWidget - - Close - Sluiten + + MULT + - - - Song - - Tempo - Tempo + + Amount multiplicator: + - - Master volume - Master-volume + + ATCK + - - Master pitch - Master-toonhoogte + + Attack: + - - Aborting project load + + DCAY - - Project file contains local paths to plugins, which could be used to run malicious code. + + Release: - - Can't load project: Project file contains local paths to plugins. + + TRSH - - LMMS Error report - LMMS-foutrapport + + Treshold: + - - (repeated %1 times) + + Mute output - - The following errors occurred while loading: + + Absolute value - SongEditor + lmms::gui::PeakIndicator - - Could not open file - Kan bestand niet openen + + -inf + + + + lmms::gui::PianoRoll - - Could not open file %1. You probably have no permissions to read this file. - Please make sure to have at least read permissions to the file and try again. - Kon bestand %1 niet openen. U heeft waarschijnlijk geen toestemming om dit bestand te lezen. -Verzeker u ervan dat u ten minste leesrechten heeft voor het bestand en probeer het opnieuw. + + Note Velocity + - - Operation denied + + Note Panning - - A bundle folder with that name already eists on the selected path. Can't overwrite a project bundle. Please select a different name. + + Mark/unmark current semitone - - - - Error - Fout + + Mark/unmark all corresponding octave semitones + - - Couldn't create bundle folder. + + Mark current scale - - Couldn't create resources folder. + + Mark current chord - - Failed to copy resources. + + Unmark all - - Could not write file - Kan bestand niet schrijven + + Select all notes on this key + - - Could not open %1 for writing. You probably are not permitted towrite to this file. Please make sure you have write-access to the file and try again. + + Note lock - - This %1 was created with LMMS %2 + + Last note - - Error in file - Fout in bestand + + No key + - - The file %1 seems to contain errors and therefore can't be loaded. - Bestand %1 lijkt fouten te bevatten en kan daardoor niet geladen worden. + + No scale + - - Version difference - Versie-verschil + + No chord + - - template - sjabloon + + Nudge + - - project - project + + Snap + - - Tempo - Tempo + + Velocity: %1% + - - TEMPO - TEMPO + + Panning: %1% left + - - Tempo in BPM - Tempo in BPM + + Panning: %1% right + - - High quality mode - Hogekwaliteitsmodus + + Panning: center + - - - - Master volume - Master-volume + + Glue notes failed + - - - - Master pitch - Master-toonhoogte + + Please select notes to glue first. + - - Value: %1% - Waarde: %1 % + + Please open a clip by double-clicking on it! + - - Value: %1 semitones - Waarde: %1 semitonen + + + Please enter a new value between %1 and %2: + - SongEditorWindow - - - Song-Editor - Song-editor - + lmms::gui::PianoRollWindow - - Play song (Space) - Song afspelen (spatie) + + Play/pause current clip (Space) + - - Record samples from Audio-device - Samples van audio-apparaat opnemen + + Record notes from MIDI-device/channel-piano + - - Record samples from Audio-device while playing song or BB track - Samples van audio-apparaat opnemen tijdens het afspelen van song of bb-track + + Record notes from MIDI-device/channel-piano while playing song or pattern track + - - Stop song (Space) - Song stoppen (spatie) + + Record notes from MIDI-device/channel-piano, one step at the time + - - Track actions - Track-acties + + Stop playing of current clip (Space) + - - Add beat/bassline - Beat-/baslijn toevoegen + + Edit actions + - - Add sample-track - Sample-track toevoegen + + Draw mode (Shift+D) + - - Add automation-track - Automatisering-track toevoegen + + Erase mode (Shift+E) + - - Edit actions - Bewerking-acties + + Select mode (Shift+S) + - - Draw mode - Tekenmodus + + Pitch Bend mode (Shift+T) + - - Knife mode (split sample clips) + + Quantize - - Edit mode (select and move) - Bewerken-modus (selecteren en verplaatsen) + + Quantize positions + - - Timeline controls - Tijdlijnbediening + + Quantize lengths + - - Bar insert controls + + File actions - - Insert bar + + Import clip - - Remove bar + + + Export clip - - Zoom controls - Zoombediening + + Copy paste controls + - - Horizontal zooming - Horizontaal zoomen + + Cut (%1+X) + - - Snap controls - Vastklik-bedieningen + + Copy (%1+C) + - - - Clip snapping size - Vastklikgrootte van clip + + Paste (%1+V) + - - Toggle proportional snap on/off - Proportioneel vastklikken aan/uit + + Timeline controls + - - Base snapping size - Basis-vastklikgrootte + + Glue + - - - StepRecorderWidget - - Hint - Tip + + Knife + - - Move recording curser using <Left/Right> arrows - Opname-cursor verplaatsen met pijl links/rechts + + Fill + - - - SubWindow - - Close - Sluiten + + Cut overlaps + - - Maximize - Maximaliseren + + Min length as last + - - Restore - Herstellen + + Max length as last + - - - TabWidget - - - Settings for %1 - Instellingen voor %1 + + Zoom and note controls + - - - TemplatesMenu - - New from template - Nieuw van sjabloon + + Horizontal zooming + - - - TempoSyncKnob - - - Tempo Sync - Tempo-sync + + Vertical zooming + - - No Sync - Geen sync + + Quantization + - - Eight beats - Acht beats + + Note length + - - Whole note - Hele noot + + Key + - - Half note - Halve noot + + Scale + - - Quarter note - Kwart noot + + Chord + - - 8th note - 8ste noot + + Snap mode + - - 16th note - 16de noot + + Clear ghost notes + - - 32nd note - 32ste noot + + + Piano-Roll - %1 + - - Custom... - Aangepast... + + + Piano-Roll - no clip + - - Custom - Aangepast + + + XML clip file (*.xpt *.xptz) + - - Synced to Eight Beats - Gesynchroniseerd met acht beats + + Export clip success + - - Synced to Whole Note - Gesynchroniseerd met hele noot + + Clip saved to %1 + - - Synced to Half Note - Gesynchroniseerd met halve noot + + Import clip. + - - Synced to Quarter Note - Gesynchroniseerd met kwart noot + + You are about to import a clip, this will overwrite your current clip. Do you want to continue? + - - Synced to 8th Note - Gesynchroniseerd met 8ste noot + + Open clip + - - Synced to 16th Note - Gesynchroniseerd met 16de noot + + Import clip success + - - Synced to 32nd Note - Gesynchroniseerd met 32ste noot + + Imported clip %1! + - TimeDisplayWidget + lmms::gui::PianoView - - Time units - Tijd-eenheden + + Base note + - - MIN - MIN + + First note + - - SEC - S + + Last note + + + + lmms::gui::PluginBrowser - - MSEC - MS + + Instrument Plugins + - - BAR - BAR + + Instrument browser + - - BEAT - BEAT + + Drag an instrument into either the Song Editor, the Pattern Editor or an existing instrument track. + - - TICK - TICK + + Search + - TimeLineWidget - - - Auto scrolling - Automatisch scrollen - + lmms::gui::PluginDescWidget - - Loop points - Herhaalpunten - - - - After stopping go back to beginning + + Send to new instrument track + + + lmms::gui::ProjectNotes - - After stopping go back to position at which playing was started - Na het stoppen terug naar positie gaan waarop afspelen gestart werd + + Project Notes + - - After stopping keep position - Na stoppen positie behouden + + Enter project notes here + - - Hint - Tip + + Edit Actions + - - Press <%1> to disable magnetic loop points. - Druk op <1%> om magnetische herhaalpunten uit te schakelen. + + &Undo + - - - Track - - Mute - Dempen + + %1+Z + - - Solo - Solo + + &Redo + - - - TrackContainer - - Couldn't import file - Kon bestand niet importeren + + %1+Y + - - Couldn't find a filter for importing file %1. -You should convert this file into a format supported by LMMS using another software. - Kon geen filter vinden om bestand %1 te importeren. -U converteert dit bestand best naar een formaat dat ondersteund wordt door LMMS met behulp van andere software. + + &Copy + - - Couldn't open file - Kon bestand niet openen + + %1+C + - - Couldn't open file %1 for reading. -Please make sure you have read-permission to the file and the directory containing the file and try again! - Kon bestand %1 niet openen om te lezen. -Verzeker u ervan dat u leesrechten heeft voor het bestand en zijn bevattende map en probeer het opnieuw! + + Cu&t + - - Loading project... - Project laden... + + %1+X + - - - Cancel - Annuleren + + &Paste + - - - Please wait... - Even geduld... + + %1+V + - - Loading cancelled - Laden gannuleerd + + Format Actions + - - Project loading was cancelled. - Laden van project werd geannuleerd. + + &Bold + - - Loading Track %1 (%2/Total %3) - Track %1 laden (%2/totaal %3) + + %1+B + - - Importing MIDI-file... - MIDI-bestand importeren... + + &Italic + - - - Clip - - Mute - Dempen + + %1+I + - - - ClipView - - Current position - Huidige positie + + &Underline + - - Current length - Huidige lengte + + %1+U + - - - %1:%2 (%3:%4 to %5:%6) - %1:%2 (%3:%4 tot %5:%6) + + &Left + - - Press <%1> and drag to make a copy. - Op <%1> drukken en slepen om een kopie te maken. + + %1+L + - - Press <%1> for free resizing. - Op <%1> drukken voor vrije grootte-aanpassing. + + C&enter + - - Hint - Tip + + %1+E + - - Delete (middle mousebutton) - Verwijderen (middelste muisknop) + + &Right + - - Delete selection (middle mousebutton) + + %1+R - - Cut - Knippen + + &Justify + - - Cut selection + + %1+J - - Merge Selection + + &Color... + + + lmms::gui::RecentProjectsMenu - - Copy - Kopiëren + + &Recently Opened Projects + + + + lmms::gui::RenameDialog - - Copy selection + + Rename... + + + lmms::gui::ReverbSCControlDialog - - Paste - Plakken + + Input + - - Mute/unmute (<%1> + middle click) - Dempen/geluid aan (<%1> + middelklik) + + Input gain: + - - Mute/unmute selection (<%1> + middle click) + + Size - - Set clip color + + Size: - - Use track color + + Color - - - TrackContentWidget - - Paste - Plakken + + Color: + - - - TrackOperationsWidget - - Press <%1> while clicking on move-grip to begin a new drag'n'drop action. - Druk op <%1> tijdens het klikken op het verplaatsingsgedeelte om een nieuwe 'slepen-en-neerzetten'-handeling te starten. + + Output + - - Actions - Acties + + Output gain: + + + + lmms::gui::SaControlsDialog - - - Mute - Dempen + + Pause + - - - Solo - Solo + + Pause data acquisition + - - After removing a track, it can not be recovered. Are you sure you want to remove track "%1"? + + Reference freeze - - Confirm removal + + Freeze current input as a reference / disable falloff in peak-hold mode. - - Don't ask again + + Waterfall - - Clone this track - Deze track klonen + + Display real-time spectrogram + - - Remove this track - Deze track verwijderen + + Averaging + - - Clear this track - Deze track leegmaken + + Enable exponential moving average + - - Channel %1: %2 - FX %1: %2 + + Stereo + - - Assign to new mixer Channel - Aan nieuw FX-kanaal toewijzen + + Display stereo channels separately + - - Turn all recording on - Alle opnames aanzetten + + Peak hold + - - Turn all recording off - Alle opnames uitzetten + + Display envelope of peak values + - - Change color - Kleur veranderen + + Logarithmic frequency + - - Reset color to default - Kleur herstellen naar standaard + + Switch between logarithmic and linear frequency scale + - - Set random color + + + Frequency range - - Clear clip colors + + Logarithmic amplitude - - - TripleOscillatorView - - Modulate phase of oscillator 1 by oscillator 2 - Fase van oscillator 1 moduleren met oscillator 2 + + Switch between logarithmic and linear amplitude scale + - - Modulate amplitude of oscillator 1 by oscillator 2 - Amplitude van oscillator 1 moduleren met oscillator 2 + + + Amplitude range + - - Mix output of oscillators 1 & 2 - Uitvoer van oscillator 1 en 2 mixen + + + FFT block size + - - Synchronize oscillator 1 with oscillator 2 - Oscillator 1 synchroniseren met oscillator 2 + + + FFT window type + - - Modulate frequency of oscillator 1 by oscillator 2 - Frequentie van oscillator 1 moduleren met oscillator 2 + + Envelope res. + - - Modulate phase of oscillator 2 by oscillator 3 - Fase van oscillator 2 moduleren met oscillator 3 + + Increase envelope resolution for better details, decrease for better GUI performance. + - - Modulate amplitude of oscillator 2 by oscillator 3 - Amplitude van oscillator 2 moduleren met oscillator 3 + + Maximum number of envelope points drawn per pixel: + - - Mix output of oscillators 2 & 3 - Uitvoer van oscillator 2 en 3 mixen + + Spectrum res. + - - Synchronize oscillator 2 with oscillator 3 - Oscillator 2 synchroniseren met oscillator 3 + + Increase spectrum resolution for better details, decrease for better GUI performance. + - - Modulate frequency of oscillator 2 by oscillator 3 - Frequentie van oscillator 2 moduleren met oscillator 3 + + Maximum number of spectrum points drawn per pixel: + - - Osc %1 volume: - Osc %1 volume: + + Falloff factor + - - Osc %1 panning: - Balans osc %1: + + Decrease to make peaks fall faster. + - - Osc %1 coarse detuning: - Osc %1 grof ontstemmen: + + Multiply buffered value by + - - semitones - semitonen + + Averaging weight + - - Osc %1 fine detuning left: - Osc %1 fijn ontstemmen links: + + Decrease to make averaging slower and smoother. + - - - cents - cent + + New sample contributes + - - Osc %1 fine detuning right: - Osc %1 fijn ontstemmen rechts: + + Waterfall height + - - Osc %1 phase-offset: - Osc %1 faseverschuiving: + + Increase to get slower scrolling, decrease to see fast transitions better. Warning: medium CPU usage. + - - - degrees - graden + + Number of lines to keep: + - - Osc %1 stereo phase-detuning: - Osc %1 stereo-fase-ontstemming: + + Waterfall gamma + - - Sine wave - Sinusgolf + + Decrease to see very weak signals, increase to get better contrast. + - - Triangle wave - Driehoeksgolf + + Gamma value: + - - Saw wave - Zaagtandgolf + + Window overlap + - - Square wave - Blokgolf + + Increase to prevent missing fast transitions arriving near FFT window edges. Warning: high CPU usage. + - - Moog-like saw wave - Moog-achtige zaagtandgolf + + Number of times each sample is processed: + - - Exponential wave - Exponentiële golf + + Zero padding + - - White noise - Witte ruis + + Increase to get smoother-looking spectrum. Warning: high CPU usage. + - - User-defined wave - Aangepaste golf + + Processing buffer is + - - - VecControls - - Display persistence amount + + steps larger than input block - - Logarithmic scale + + Advanced settings - - High quality + + Access advanced settings - VecControlsDialog + lmms::gui::SampleClipView - - HQ + + Double-click to open sample - - Double the resolution and simulate continuous analog-like trace. + + Reverse sample - - Log. scale + + Set as ghost in automation editor + + + lmms::gui::SampleTrackView - - Display amplitude on logarithmic scale to better see small values. + + Mixer channel - - Persist. + + Track volume - - Trace persistence: higher amount means the trace will stay bright for longer time. + + Channel volume: - - Trace persistence + + VOL - - - VersionedSaveDialog - - Increment version number - Versienummer verhogen + + Panning + - - Decrement version number - Versienummer verlagen + + Panning: + - - Save Options - Opties voor opslaan + + PAN + - - already exists. Do you want to replace it? - bestaat reeds. Wilt u het vervangen? + + %1: %2 + - VestigeInstrumentView + lmms::gui::SampleTrackWindow - - - Open VST plugin - VST-plugin openen - - - - Control VST plugin from LMMS host - VST-plugin vanuit LMMS-host bedienen - - - - Open VST plugin preset - VST-plugin-preset openen + + Sample volume + - - Previous (-) - Vorige (-) + + Volume: + - - Save preset - Preset opslaan + + VOL + - - Next (+) - Volgende (+) + + Panning + - - Show/hide GUI - GUI weergeven/verbergen + + Panning: + - - Turn off all notes - Alle noten uitschakelen + + PAN + - - DLL-files (*.dll) - DLL-bestanden (*.dll) + + Mixer channel + - - EXE-files (*.exe) - EXE-bestanden (*.exe) + + CHANNEL + + + + lmms::gui::SaveOptionsWidget - - No VST plugin loaded - Geen VST-plugin geladen + + Discard MIDI connections + - - Preset - Preset + + Save As Project Bundle (with resources) + + + + lmms::gui::SetupDialog - - by - door + + Settings + - - - VST plugin control - - VST-pluginbediening + + + General + - - - VstEffectControlDialog - - Show/hide - Weergeven/verbergen + + Graphical user interface (GUI) + - - Control VST plugin from LMMS host - VST-plugin vanuit LMMS-host bedienen + + Display volume as dBFS + - - Open VST plugin preset - VST-plugin-preset openen + + Enable tooltips + - - Previous (-) - Vorige (-) + + Enable master oscilloscope by default + - - Next (+) - Volgende (+) + + Enable all note labels in piano roll + - - Save preset - Preset opslaan + + Enable compact track buttons + - - - Effect by: - Effect door: + + Enable one instrument-track-window mode + - - &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> - &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> + + Show sidebar on the right-hand side + - - - VstPlugin - - - The VST plugin %1 could not be loaded. - VST-plugin %1 kon niet geladen worden. + + Let sample previews continue when mouse is released + - - Open Preset - Preset openen + + Mute automation tracks during solo + - - - Vst Plugin Preset (*.fxp *.fxb) - Vst-plugin preset (*.fxp *.fxb) + + Show warning when deleting tracks + - - : default - : standaard + + Show warning when deleting a mixer channel that is in use + - - Save Preset - Preset opslaan + + Dual-button + - - .fxp - .fxp + + Grab closest + - - .FXP - .FXP + + Handles + - - .FXB - .FXB + + Loop edit mode + - - .fxb - .fxb + + Projects + - - Loading plugin - Plugin laden + + Compress project files by default + - - Please wait while loading VST plugin... - Even geduld, VST-plugin wordt geladen... + + Create a backup file when saving a project + - - - WatsynInstrument - - Volume A1 - Volume A1 + + Reopen last project on startup + - - Volume A2 - Volume A2 + + Language + - - Volume B1 - Volume B1 + + + Performance + - - Volume B2 - Volume B2 + + Autosave + - - Panning A1 - Balans A1 + + Enable autosave + - - Panning A2 - Balans A2 + + Allow autosave while playing + - - Panning B1 - Balans B1 + + User interface (UI) effects vs. performance + - - Panning B2 - Balans B2 + + Smooth scroll in song editor + - - Freq. multiplier A1 - Frequentieverm. A1 + + Display playback cursor in AudioFileProcessor + - - Freq. multiplier A2 - Frequentieverm. A2 + + Plugins + - - Freq. multiplier B1 - Frequentieverm. B1 + + VST plugins embedding: + - - Freq. multiplier B2 - Frequentieverm. B2 + + No embedding + - - Left detune A1 - Links ontstemmen A1 + + Embed using Qt API + - - Left detune A2 - Links ontstemmen A2 + + Embed using native Win32 API + - - Left detune B1 - Links ontstemmen B1 + + Embed using XEmbed protocol + - - Left detune B2 - Links ontstemmen B2 + + Keep plugin windows on top when not embedded + - - Right detune A1 - Rechts ontstemmen A1 + + Keep effects running even without input + - - Right detune A2 - Rechts ontstemmen A2 + + + Audio + - - Right detune B1 - Rechts ontstemmen B1 + + Audio interface + - - Right detune B2 - Rechts ontstemmen B2 + + Buffer size + - - A-B Mix - A-B mix + + Reset to default value + - - A-B Mix envelope amount - A-B mix hoeveelheid envelope + + + MIDI + - - A-B Mix envelope attack - A-B mix envelope attack + + MIDI interface + - - A-B Mix envelope hold - A-B mix envelope hold + + Automatically assign MIDI controller to selected track + - - A-B Mix envelope decay - A-B mix envelope decay + + Behavior when recording + - - A1-B2 Crosstalk - A1-B2 overspraak + + Auto-quantize notes in Piano Roll + - - A2-A1 modulation - A2-A1 modulatie + + If enabled, notes will be automatically quantized when recording them from a MIDI controller. If disabled, they are always recorded at the highest possible resolution. + - - B2-B1 modulation - B2-B1 modulatie + + + Paths + - - Selected graph - Geselecteerde grafiek + + LMMS working directory + - - - WatsynView - - - - - Volume - Volume + + VST plugins directory + - - - - - Panning - Balans + + LADSPA plugins directories + - - - - - Freq. multiplier - Freq. vermenigvuldiger + + SF2 directory + - - - - - Left detune - Links ontstemmen + + Default SF2 + - - - - - - - - - cents - cent + + GIG directory + - - - - - Right detune - Rechts ontstemmen + + Theme directory + - - A-B Mix - A-B mix + + Background artwork + - - Mix envelope amount - Mix hoeveelheid envelope + + Some changes require restarting. + - - Mix envelope attack - Mix envelope attack + + OK + - - Mix envelope hold - Mix envelope hold + + Cancel + - - Mix envelope decay - Mix envelope decay + + minutes + - - Crosstalk - Overspraak + + minute + - - Select oscillator A1 - Oscillator A1 selecteren + + Disabled + - - Select oscillator A2 - Oscillator A2 selecteren + + Autosave interval: %1 + - - Select oscillator B1 - Oscillator B1 selecteren + + The currently selected value is not a power of 2 (32, 64, 128, 256). Some plugins may not be available. + - - Select oscillator B2 - Oscillator B2 selecteren + + The currently selected value is less than or equal to 32. Some plugins may not be available. + - - Mix output of A2 to A1 - Uitvoer van A2 naar A1 mixen + + Frames: %1 +Latency: %2 ms + - - Modulate amplitude of A1 by output of A2 - Amplitude van A1 moduleren met uitvoer van A2 + + Choose the LMMS working directory + - - Ring modulate A1 and A2 - A1 en A2 ring-moduleren + + Choose your VST plugins directory + - - Modulate phase of A1 by output of A2 - Fase van A1 moduleren met uitvoer van A2 + + Choose your LADSPA plugins directory + - - Mix output of B2 to B1 - Uitvoer van B2 naar B1 mixen + + Choose your SF2 directory + - - Modulate amplitude of B1 by output of B2 - Amplitude van B1 moduleren met uitvoer van B2 + + Choose your default SF2 + - - Ring modulate B1 and B2 - B1 en B2 ring-moduleren + + Choose your GIG directory + - - Modulate phase of B1 by output of B2 - Fase van B1 moduleren met uitvoer van B2 + + Choose your theme directory + - - - - - Draw your own waveform here by dragging your mouse on this graph. - Teken uw eigen golfvorm hier door uw muis op deze grafiek te slepen. + + Choose your background picture + + + + lmms::gui::Sf2InstrumentView - - Load waveform - Golfvorm laden + + + Open SoundFont file + - - Load a waveform from a sample file - Een golfvorm van een sample-bestand laden + + Choose patch + - - Phase left - Fase links + + Gain: + - - Shift phase by -15 degrees - Fase met -15 graden verschuiven + + Apply reverb (if supported) + - - Phase right - Fase rechts + + Room size: + - - Shift phase by +15 degrees - Fase met +15 graden verschuiven + + Damping: + - - - Normalize - Normaliseren + + Width: + - - - Invert - Inverteren + + + Level: + - - - Smooth - Glad + + Apply chorus (if supported) + - - - Sine wave - Sinusgolf + + Voices: + - - - - Triangle wave - Driehoeksgolf + + Speed: + - - Saw wave - Zaagtandgolf + + Depth: + - - - Square wave - Blokgolf + + SoundFont Files (*.sf2 *.sf3) + - Xpressive - - - Selected graph - Geselecteerde grafiek - + lmms::gui::SidInstrumentView - - A1 - A1 + + Volume: + - - A2 - A2 + + Resonance: + - - A3 - A3 + + + Cutoff frequency: + - - W1 smoothing - W1 afvlakken + + High-pass filter + - - W2 smoothing - W2 afvlakken + + Band-pass filter + - - W3 smoothing - W3 afvlakken + + Low-pass filter + - - Panning 1 - Balans 1 + + Voice 3 off + - - Panning 2 - Balans 2 + + MOS6581 SID + - - Rel trans - Rel overgang + + MOS8580 SID + - - - XpressiveView - - Draw your own waveform here by dragging your mouse on this graph. - Teken uw eigen golfvorm hier door uw muis op deze grafiek te slepen. + + + Attack: + - - Select oscillator W1 - Oscillator W1 selecteren + + + Decay: + - - Select oscillator W2 - Oscillator W2 selecteren + + Sustain: + - - Select oscillator W3 - Oscillator W3 selecteren + + + Release: + - - Select output O1 - Selecteer uitvoer O1 + + Pulse Width: + - - Select output O2 - Selecteer uitvoer O2 + + Coarse: + - - Open help window - Help-venster openen + + Pulse wave + - - - Sine wave - Sinusgolf + + Triangle wave + - - - Moog-saw wave - Moog-zaagtandgolf + + Saw wave + - - - Exponential wave - Exponentiële golf + + Noise + - - - Saw wave - Zaagtandgolf + + Sync + - - - User-defined wave - Aangepaste golf + + Ring modulation + - - - Triangle wave - Driehoeksgolf + + Filtered + - - - Square wave - Blokgolf + + Test + - - - White noise - Witte ruis + + Pulse width: + + + + lmms::gui::SideBarWidget - - WaveInterpolate - GolfInterpoleren + + Close + + + + lmms::gui::SlicerTView - - ExpressionValid - ExpressieGeldig + + Slice snap + - - General purpose 1: - Algemeen doel 1: + + Set slice snapping for detection + - - General purpose 2: - Algemeen doel 2: + + Sync sample + - - General purpose 3: - Algemeen doel 3: + + Enable BPM sync + - - O1 panning: - Balans O1: + + Original sample BPM + - - O2 panning: - Balans O2: + + Threshold used for slicing + - - Release transition: - Release-overgang: + + Fade Out per note in milliseconds + - - Smoothness - Gladheid + + Copy midi pattern to clipboard + - - - ZynAddSubFxInstrument - - Portamento - Portamento + + Open sample selector + - - Filter frequency - Filter-frequentie + + Reset slices + - - Filter resonance - Filter-resonantie + + Threshold + - - Bandwidth - Bandbreedte + + Fade Out + - - FM gain - FM-versterking + + Reset + - - Resonance center frequency - Resonantie centerfrequentie + + Midi + - - Resonance bandwidth - Resonantie bandbreedte + + BPM + - - Forward MIDI control change events - MIDI control change events doorsturen + + Snap + - ZynAddSubFxView + lmms::gui::SlicerTWaveform - - Portamento: - Portamento: + + Click to load sample + + + + lmms::gui::SongEditor - - PORT - POORT + + Could not open file + - - Filter frequency: - Filter-frequentie: + + Could not open file %1. You probably have no permissions to read this file. + Please make sure to have at least read permissions to the file and try again. + - - FREQ - FREQ + + Operation denied + - - Filter resonance: - Filter-resonantie: + + A bundle folder with that name already eists on the selected path. Can't overwrite a project bundle. Please select a different name. + - - RES - RES + + + + Error + - - Bandwidth: - Bandbreedte: + + Couldn't create bundle folder. + - - BW - BW + + Couldn't create resources folder. + - - FM gain: - FM-versterking: + + Failed to copy resources. + - - FM GAIN - FM GAIN + + + Could not write file + - - Resonance center frequency: - Resonantie centerfrequentie: + + Could not open %1 for writing. You probably are not permitted to write to this file. Please make sure you have write-access to the file and try again. + - - RES CF - RES CF + + An unknown error has occurred and the file could not be saved. + - - Resonance bandwidth: - Resonantie bandbreedte: + + Error in file + - - RES BW - RES BW + + The file %1 seems to contain errors and therefore can't be loaded. + - - Forward MIDI control changes - MIDI control changes doorsturen + + template + - - Show GUI - GUI weergeven + + project + - - - AudioFileProcessor - - Amplify - Versterken + + Version difference + - - Start of sample - Begin van sample + + This %1 was created with LMMS %2 + - - End of sample - Einde van sample + + Zoom + - - Loopback point - Herhaalpunt + + Tempo + - - Reverse sample - Sample omdraaien + + TEMPO + - - Loop mode - Herhaalmodus + + Tempo in BPM + - - Stutter - Stutter + + + + Master volume + - - Interpolation mode - Interpolatiemodus + + + + Global transposition + - - None - Geen + + 1/%1 Bar + - - Linear - Lineair + + %1 Bars + - - Sinc - Sinc + + Value: %1% + - - Sample not found: %1 - Sample niet gevonden: %1 + + Value: %1 keys + - BitInvader + lmms::gui::SongEditorWindow - - Sample length - Sample-lengte: + + Song-Editor + - - - BitInvaderView - - Sample length - Sample-lengte: + + Play song (Space) + - - Draw your own waveform here by dragging your mouse on this graph. - Teken uw eigen golfvorm hier door uw muis op deze grafiek te slepen. + + Record samples from Audio-device + - - - Sine wave - Sinusgolf + + Record samples from Audio-device while playing song or pattern track + - - - Triangle wave - Driehoeksgolf + + Stop song (Space) + - - - Saw wave - Zaagtandgolf + + Track actions + - - - Square wave - Blokgolf + + Add pattern-track + - - - White noise - Witte ruis + + Add sample-track + - - - User-defined wave - Aangepaste golf + + Add automation-track + - - - Smooth waveform - Golfvorm zacht maken + + Edit actions + - - Interpolation - Interpolatie + + Draw mode + - - Normalize - Normaliseren + + Knife mode (split sample clips) + - - - DynProcControlDialog - - INPUT - INVOER + + Edit mode (select and move) + - - Input gain: - Invoer-gain: + + Timeline controls + - - OUTPUT - UITVOER + + Bar insert controls + - - Output gain: - Uitvoer-gain: + + Insert bar + - - ATTACK - ATTACK + + Remove bar + - - Peak attack time: - Piek-attack-tijd: + + Zoom controls + - - RELEASE - RELEASE + + + Zoom + - - Peak release time: - Piek-release-tijd: + + Snap controls + - - - Reset wavegraph - Golfvorm herstellen + + + Clip snapping size + - - - Smooth wavegraph - Golfvorm zacht maken + + Toggle proportional snap on/off + - - - Increase wavegraph amplitude by 1 dB - Golfgrafiek-amplitude verhogen met 1 dB + + Base snapping size + + + + lmms::gui::StepRecorderWidget - - - Decrease wavegraph amplitude by 1 dB - Golfgrafiek-amplitude verlagen met 1 dB + + Hint + - - Stereo mode: maximum - Stereomodus: maximum + + Move recording curser using <Left/Right> arrows + + + + + lmms::gui::StereoEnhancerControlDialog + + + WIDTH + - - Process based on the maximum of both stereo channels - Verwerking gebaseerd op het maximum van beide stereokanalen + + Width: + + + + lmms::gui::StereoMatrixControlDialog - - Stereo mode: average - Stereomodus: gemiddeld + + Left to Left Vol: + - - Process based on the average of both stereo channels - Verwerking gebaseerd op het gemiddelde van beide stereokanalen + + Left to Right Vol: + - - Stereo mode: unlinked - Stereomodus: niet-gekoppeld + + Right to Left Vol: + + + + + Right to Right Vol: + + + + + lmms::gui::SubWindow + + + Close + + + + + Maximize + - - Process each stereo channel independently - Elk stereokanaal onafhankelijk verwerken + + Restore + - DynProcControls + lmms::gui::TapTempoView - - Input gain - Invoer-gain - - - - Output gain - Uitvoer-gain + + 0 + - - Attack time - Attack-tijd + + + Precision + - - Release time - Release-tijd + + Display in high precision + - - Stereo mode - Stereomodus + + 0.0 ms + - - - graphModel - - Graph - Grafiek + + Mute metronome + - - - KickerInstrument - - Start frequency - Beginfrequentie + + Mute + - - End frequency - Eindfrequentie + + BPM in milliseconds + - - Length - Lengte + + 0 ms + - - Start distortion - Beginvervorming + + Frequency of BPM + - - End distortion - Eindvervorming + + 0.0000 hz + - - Gain - Gain + + Reset + - - Envelope slope - Envelope-helling + + Reset counter and sidebar information + - - Noise - Ruis + + Sync + - - Click - Klik + + Sync with project tempo + - - Frequency slope - Frequentie-helling + + %1 ms + - - Start from note - Starten vanaf noot + + %1 hz + + + + lmms::gui::TemplatesMenu - - End to note - Stoppen naar noot + + New from template + - KickerInstrumentView + lmms::gui::TempoSyncBarModelEditor - - Start frequency: - Beginfrequentie: + + + Tempo Sync + - - End frequency: - Eindfrequentie: + + No Sync + - - Frequency slope: - Frequentie-helling: + + Eight beats + - - Gain: - Gain: + + Whole note + - - Envelope length: - Envelope-lengte: + + Half note + - - Envelope slope: - Envelope-helling: + + Quarter note + - - Click: - Klik: + + 8th note + - - Noise: - Ruis: + + 16th note + - - Start distortion: - Beginvervorming: + + 32nd note + - - End distortion: - Eindvervorming: + + Custom... + - - - LadspaBrowserView - - - Available Effects - Beschikbare effecten + + Custom + - - - Unavailable Effects - Niet-beschikbare effecten + + Synced to Eight Beats + - - - Instruments - Instrumenten + + Synced to Whole Note + - - - Analysis Tools - Analysegereedschappen + + Synced to Half Note + - - - Don't know - Onbekend + + Synced to Quarter Note + - - Type: - Soort: + + Synced to 8th Note + - - - LadspaDescription - - Plugins - Plugins + + Synced to 16th Note + - - Description - Beschrijving + + Synced to 32nd Note + - LadspaPortDialog + lmms::gui::TempoSyncKnob - - Ports - Poorten + + + Tempo Sync + - - Name - Naam + + No Sync + - - Rate - Ratio + + Eight beats + - - Direction - Richting + + Whole note + - - Type - Type + + Half note + - - Min < Default < Max - Min < standaard < max + + Quarter note + - - Logarithmic - Logaritmisch + + 8th note + - - SR Dependent - SR-afhankelijk + + 16th note + - - Audio - Audio + + 32nd note + - - Control - Bediening + + Custom... + - - Input - Invoer + + Custom + - - Output - Uitvoer + + Synced to Eight Beats + - - Toggled - Gewisseld + + Synced to Whole Note + - - Integer - Integer + + Synced to Half Note + - - Float - Float + + Synced to Quarter Note + - - - Yes - Ja + + Synced to 8th Note + + + + + Synced to 16th Note + + + + + Synced to 32nd Note + - Lb302Synth + lmms::gui::TimeDisplayWidget - - VCF Cutoff Frequency - VCF cutoff-frequentie + + Time units + - - VCF Resonance - VCF resonantie + + MIN + - - VCF Envelope Mod - VCF envelope-mod + + SEC + - - VCF Envelope Decay - VCF envelope-decay + + MSEC + - - Distortion - Vervorming + + BAR + - - Waveform - Golfvorm + + BEAT + - - Slide Decay - Slide-decay + + TICK + + + + + lmms::gui::TimeLineWidget + + + Auto scrolling + - - Slide - Slide + + Stepped auto scrolling + - - Accent - Accent + + Continuous auto scrolling + - - Dead - Dead + + Auto scrolling disabled + - - 24dB/oct Filter - 24dB/oct-filter + + Loop points + - - - Lb302SynthView - - Cutoff Freq: - Cutoff-freq: + + After stopping go back to beginning + - - Resonance: - Resonantie: + + After stopping go back to position at which playing was started + - - Env Mod: - Env-mod: + + After stopping keep position + + + + + Hint + - - Decay: - Decay: + + Press <%1> to disable magnetic loop points. + - - 303-es-que, 24dB/octave, 3 pole filter - 303-es-que, 24dB/octave, 3 pole filter + + Set loop begin here + - - Slide Decay: - Slide-decay: + + Set loop end here + - - DIST: - DIST: + + Loop edit mode (hold shift) + - - Saw wave - Zaagtandgolf + + Dual-button + - - Click here for a saw-wave. - Klik hier voor een zaagtandgolf. + + Grab closest + - - Triangle wave - Driehoeksgolf + + Handles + + + + lmms::gui::TrackContentWidget - - Click here for a triangle-wave. - Klik hier voor een driehoeksgolf. + + Paste + + + + lmms::gui::TrackOperationsWidget - - Square wave - Blokgolf + + Press <%1> while clicking on move-grip to begin a new drag'n'drop action. + - - Click here for a square-wave. - Klik hier voor een blokgolf. + + Actions + - - Rounded square wave - Afgeronde blokgolf + + + Mute + - - Click here for a square-wave with a rounded end. - Klik hier voor een blokgolf met afgerond einde. + + + Solo + - - Moog wave - Moog-golf + + After removing a track, it can not be recovered. Are you sure you want to remove track "%1"? + - - Click here for a moog-like wave. - Klik hier voor een moog-achtige golf. + + Confirm removal + - - Sine wave - Sinusgolf + + Don't ask again + - - Click for a sine-wave. - Klikken voor sinusgolf. + + Clone this track + - - - White noise wave - Witte-ruisgolf + + Remove this track + - - Click here for an exponential wave. - Klik hier voor een exponentiële golf. + + Clear this track + - - Click here for white-noise. - Klik hier voor witte ruis. + + Channel %1: %2 + - - Bandlimited saw wave - Bandgelimiteerde zaagtandgolf + + Assign to new Mixer Channel + - - Click here for bandlimited saw wave. - Klik hier voor een bandgelimiteerde zaagtandgolf. + + Turn all recording on + - - Bandlimited square wave - Bandgelimiteerde blokgolf + + Turn all recording off + - - Click here for bandlimited square wave. - Klik hier voor een bandgelimiteerde blokgolf. + + Track color + - - Bandlimited triangle wave - Bandgelimiteerde driehoeksgolf + + Change + - - Click here for bandlimited triangle wave. - Klik hier voor een bandgelimiteerde driehoeksgolf. + + Reset + - - Bandlimited moog saw wave - Bandgelimiteerde moog-zaagtandgolf + + Pick random + - - Click here for bandlimited moog saw wave. - Klik hier voor een bandgelimiteerde moog-zaagtandgolf. + + Reset clip colors + - MalletsInstrument + lmms::gui::TripleOscillatorView - - Hardness - Hardheid + + Modulate phase of oscillator 1 by oscillator 2 + - - Position - Positie + + Modulate amplitude of oscillator 1 by oscillator 2 + - - Vibrato gain - Vibrato-gain + + Mix output of oscillators 1 & 2 + - - Vibrato frequency - Vibrato-frequentie + + Synchronize oscillator 1 with oscillator 2 + - - Stick mix - Stick-mix + + Modulate frequency of oscillator 1 by oscillator 2 + - - Modulator - Modulator + + Modulate phase of oscillator 2 by oscillator 3 + - - Crossfade - Crossfade + + Modulate amplitude of oscillator 2 by oscillator 3 + - - LFO speed - LFO-snelheid + + Mix output of oscillators 2 & 3 + - - LFO depth - LFO-diepte + + Synchronize oscillator 2 with oscillator 3 + - - ADSR - ADSR + + Modulate frequency of oscillator 2 by oscillator 3 + - - Pressure - Druk + + Osc %1 volume: + - - Motion - Beweging + + Osc %1 panning: + - - Speed - Snelheid + + Osc %1 coarse detuning: + - - Bowed - Gebogen + + semitones + - - Spread - Spreiding + + Osc %1 fine detuning left: + - - Marimba - Marimba + + + cents + - - Vibraphone - Vibraphone + + Osc %1 fine detuning right: + - - Agogo - Agogo + + Osc %1 phase-offset: + - - Wood 1 - Hout 1 + + + degrees + - - Reso - Reso + + Osc %1 stereo phase-detuning: + - - Wood 2 - Hout 2 + + Sine wave + - - Beats - Beats + + Triangle wave + - - Two fixed - Two Fixed + + Saw wave + - - Clump - Clump + + Square wave + - - Tubular bells - Tubular bells + + Moog-like saw wave + - - Uniform bar - Uniforme balk + + Exponential wave + - - Tuned bar - Gestemde balk + + White noise + - - Glass - Glas + + User-defined wave + - - Tibetan bowl - Tibetaanse kom + + Use alias-free wavetable oscillators. + - MalletsInstrumentView - - - Instrument - Instrument - + lmms::gui::VecControlsDialog - - Spread - Spreiding - - - - Spread: - Spreiding: - - - - Missing files - Ontbrekende bestanden + + HQ + - - Your Stk-installation seems to be incomplete. Please make sure the full Stk-package is installed! - Uw Stk-installatie lijkt onvolledig te zijn. Verzeker u ervan dat het volledige Stk-pakket geïnstalleerd is + + Double the resolution and simulate continuous analog-like trace. + - - Hardness - Hardheid + + Log. scale + - - Hardness: - Hardheid: + + Display amplitude on logarithmic scale to better see small values. + - - Position - Positie + + Persist. + - - Position: - Positie: + + Trace persistence: higher amount means the trace will stay bright for longer time. + - - Vibrato gain - Vibrato-gain + + Trace persistence + + + + lmms::gui::VersionedSaveDialog - - Vibrato gain: - Vibrato-gain: + + Increment version number + - - Vibrato frequency - Vibrato-frequentie + + Decrement version number + - - Vibrato frequency: - Vibrato-frequentie: + + Save Options + - - Stick mix - Stick-mix + + already exists. Do you want to replace it? + + + + lmms::gui::VestigeInstrumentView - - Stick mix: - Stick-mix: + + + Open VST plugin + - - Modulator - Modulator + + Control VST plugin from LMMS host + - - Modulator: - Modulator: + + Open VST plugin preset + - - Crossfade - Crossfade + + Previous (-) + - - Crossfade: - Crossfade: + + Save preset + - - LFO speed - LFO-snelheid + + Next (+) + - - LFO speed: - LFO-snelheid: + + Show/hide GUI + - - LFO depth - LFO-diepte + + Turn off all notes + - - LFO depth: - LFO-diepte: + + DLL-files (*.dll) + - - ADSR - ADSR + + EXE-files (*.exe) + - - ADSR: - ADSR: + + SO-files (*.so) + - - Pressure - Druk + + No VST plugin loaded + - - Pressure: - Druk: + + Preset + - - Speed - Snelheid + + by + - - Speed: - Snelheid: + + - VST plugin control + - ManageVSTEffectView + lmms::gui::VibedView - - - VST parameter control - - VST parameterbediening + + Enable waveform + - - VST sync - VST sync + + + Smooth waveform + - - - Automated - Geautomatiseerd + + + Normalize waveform + - - Close - Sluiten + + + Sine wave + - - - ManageVestigeInstrumentView - - - - VST plugin control - - VST-pluginbediening + + + Triangle wave + - - VST Sync - VST sync + + + Saw wave + - - - Automated - Geautomatiseerd + + + Square wave + - - Close - Sluiten + + + White noise + - - - OrganicInstrument - - Distortion - Vervorming + + + User-defined wave + - - Volume - Volume + + String volume: + - - - OrganicInstrumentView - - Distortion: - Vervorming: + + String stiffness: + - - Volume: - Volume: + + Pick position: + - - Randomise - Willekeuring maken + + Pickup position: + - - - Osc %1 waveform: - Osc %1 golfvorm: + + String panning: + - - Osc %1 volume: - Osc %1 volume: + + String detune: + - - Osc %1 panning: - Balans osc %1: + + String fuzziness: + - - Osc %1 stereo detuning - Osc %1 stereo-ontstemming + + String length: + - - cents - cent + + Impulse Editor + - - Osc %1 harmonic: - Osc %1 harmonisch: + + Impulse + - - - PatchesDialog - - Qsynth: Channel Preset - Qsynth: kanaal-preset + + Enable/disable string + - - Bank selector - Bank-selector + + Octave + - - Bank - Bank + + String + + + + lmms::gui::VstEffectControlDialog - - Program selector - Program-selector + + Show/hide + - - Patch - Patch + + Control VST plugin from LMMS host + - - Name - Naam + + Open VST plugin preset + - - OK - Ok + + Previous (-) + - - Cancel - Annuleren + + Next (+) + - - - Sf2Instrument - - Bank - Bank + + Save preset + - - Patch - Patch + + + Effect by: + - - Gain - Gain + + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> + + + + lmms::gui::WatsynView - - Reverb - Reverb + + + + + Volume + - - Reverb room size - Reverb kamergrootte + + + + + Panning + - - Reverb damping - Reverb demping + + + + + Freq. multiplier + - - Reverb width - Reverb-breedte + + + + + Left detune + - - Reverb level - Reverb niveau + + + + + + + + + cents + - - Chorus - Chorus + + + + + Right detune + - - Chorus voices - Chorus stemmen + + A-B Mix + - - Chorus level - Chorus niveau + + Mix envelope amount + - - Chorus speed - Chorus snelheid + + Mix envelope attack + - - Chorus depth - Chorus diepte + + Mix envelope hold + - - A soundfont %1 could not be loaded. - Een soundfont &1 kon niet geladen worden. + + Mix envelope decay + - - - Sf2InstrumentView - - - Open SoundFont file - SoundFont-bestand openen + + Crosstalk + - - Choose patch - Patch kiezen + + Select oscillator A1 + - - Gain: - Gain: + + Select oscillator A2 + - - Apply reverb (if supported) - Reverb toepassen (indien ondersteund) + + Select oscillator B1 + - - Room size: - Kamergrootte: + + Select oscillator B2 + - - Damping: - Demping: + + Mix output of A2 to A1 + - - Width: - Breedte: + + Modulate amplitude of A1 by output of A2 + - - - Level: - Niveau: + + Ring modulate A1 and A2 + - - Apply chorus (if supported) - Chorus toepassen (indien ondersteund) + + Modulate phase of A1 by output of A2 + - - Voices: - Stemmen: + + Mix output of B2 to B1 + - - Speed: - Snelheid: + + Modulate amplitude of B1 by output of B2 + - - Depth: - Diepte: + + Ring modulate B1 and B2 + - - SoundFont Files (*.sf2 *.sf3) - SoundFont-bestanden (*.sf2 *.sf3) + + Modulate phase of B1 by output of B2 + - - - SfxrInstrument - - Wave - Golf + + + + + Draw your own waveform here by dragging your mouse on this graph. + - - - StereoEnhancerControlDialog - - WIDTH - BREEDTE + + Load waveform + - - Width: - Breedte: + + Load a waveform from a sample file + - - - StereoEnhancerControls - - Width - Breedte + + Phase left + - - - StereoMatrixControlDialog - - Left to Left Vol: - Links naar links vol: + + Shift phase by -15 degrees + - - Left to Right Vol: - Links naar rechts vol: + + Phase right + - - Right to Left Vol: - Rechts naar links vol: + + Shift phase by +15 degrees + - - Right to Right Vol: - Rechts naar rechts vol: + + + Normalize + - - - StereoMatrixControls - - Left to Left - Links naar links + + + Invert + - - Left to Right - Links naar rechts + + + Smooth + - - Right to Left - Rechts naar links + + + Sine wave + - - Right to Right - Rechts naar rechts + + + + Triangle wave + - - - VestigeInstrument - - Loading plugin - Plugin laden + + Saw wave + - - Please wait while loading the VST plugin... - Even geduld, de VST-plugin wordt geladen... + + + Square wave + - Vibed + lmms::gui::WaveShaperControlDialog - - String %1 volume - Snaar %1 volume + + INPUT + - - String %1 stiffness - Snaar %1 hardheid + + Input gain: + - - Pick %1 position - Aanslag %1 positie + + OUTPUT + - - Pickup %1 position - Pickup %1 positie + + Output gain: + - - String %1 panning - String %1 balans + + + Reset wavegraph + - - String %1 detune - String %1 ontstemmen + + + Smooth wavegraph + - - String %1 fuzziness - String %1 zachtheid + + + Increase wavegraph amplitude by 1 dB + - - String %1 length - String %1 lengte + + + Decrease wavegraph amplitude by 1 dB + - - Impulse %1 - Impuls %1 + + Clip input + - - String %1 - String %1 + + Clip input signal to 0 dB + - VibedView - - - String volume: - String volume: - - - - String stiffness: - Hardheid snaar: - + lmms::gui::XpressiveView - - Pick position: - Aanslagpositie: - - - - Pickup position: - Pickup-positie: + + Draw your own waveform here by dragging your mouse on this graph. + - - String panning: - String balans: + + Select oscillator W1 + - - String detune: - String ontstemmen: + + Select oscillator W2 + - - String fuzziness: - String zachtheid: + + Select oscillator W3 + - - String length: - String lengte: + + Select output O1 + - - Impulse - Impuls + + Select output O2 + - - Octave - Octaaf + + Open help window + - - Impulse Editor - Impuls-editor + + + Sine wave + - - Enable waveform - Golfvorm activeren + + + Moog-saw wave + - - Enable/disable string - String in-/uitschakelen + + + Exponential wave + - - String - Snaar + + + Saw wave + - - - Sine wave - Sinusgolf + + + User-defined wave + - - + + Triangle wave - Driehoeksgolf - - - - - Saw wave - Zaagtandgolf + - - + + Square wave - Blokgolf + - - + + White noise - Witte ruis - - - - - User-defined wave - Aangepaste golf + - - - Smooth waveform - Golfvorm zacht maken + + WaveInterpolate + - - - Normalize waveform - Golfvorm normaliseren + + ExpressionValid + - - - VoiceObject - - Voice %1 pulse width - Stem %1 pulsbreedte + + General purpose 1: + - - Voice %1 attack - Stem %1 attack + + General purpose 2: + - - Voice %1 decay - Stem %1 decay + + General purpose 3: + - - Voice %1 sustain - Stem %1 sustain + + O1 panning: + - - Voice %1 release - Stem %1 release + + O2 panning: + - - Voice %1 coarse detuning - Stem %1 grof ontstemmen + + Release transition: + - - Voice %1 wave shape - Stem %1 golfvorm + + Smoothness + + + + lmms::gui::ZynAddSubFxView - - Voice %1 sync - Stem %1 sync + + Portamento: + - - Voice %1 ring modulate - Stem %1 ring-modulatie + + PORT + - - Voice %1 filtered - Stem %1 gefilterd + + Filter frequency: + - - Voice %1 test - Stem %1 test + + FREQ + - - - WaveShaperControlDialog - - INPUT - INVOER + + Filter resonance: + - - Input gain: - Invoer-gain: + + RES + - - OUTPUT - UITVOER + + Bandwidth: + - - Output gain: - Uitvoer-gain: + + BW + - - - Reset wavegraph - Golfvorm herstellen + + FM gain: + - - - Smooth wavegraph - Golfvorm zacht maken + + FM GAIN + - - - Increase wavegraph amplitude by 1 dB - Golfgrafiek-amplitude verhogen met 1 dB + + Resonance center frequency: + - - - Decrease wavegraph amplitude by 1 dB - Golfgrafiek-amplitude verlagen met 1 dB + + RES CF + - - Clip input - Invoer clippen + + Resonance bandwidth: + - - Clip input signal to 0 dB - Invoersignaal clippen naar 0 dB + + RES BW + - - - WaveShaperControls - - Input gain - Invoer-gain + + Forward MIDI control changes + - - Output gain - Uitvoer-gain + + Show GUI + - + \ No newline at end of file diff --git a/data/locale/oc.ts b/data/locale/oc.ts index 045eaf3ad69..be804cfca2b 100644 --- a/data/locale/oc.ts +++ b/data/locale/oc.ts @@ -5333,62 +5333,62 @@ Please make sure you have write permission to the file and the directory contain - MixerLine + MixerChannelView - + Channel send amount - + Move &left - + Move &right - + Rename &channel - + R&emove channel - + Remove &unused channels - + Set channel color - + Remove channel color - + Pick random channel color - MixerLineLcdSpinBox + MixerChannelLcdSpinBox - + Assign to: - + New mixer Channel diff --git a/data/locale/pl.ts b/data/locale/pl.ts index ff36a8daca6..e38165424c6 100644 --- a/data/locale/pl.ts +++ b/data/locale/pl.ts @@ -1,10 +1,10 @@ - + AboutDialog About LMMS - O programie LMMS + O LMMS @@ -49,7 +49,7 @@ Contributors ordered by number of commits: - Twórcy programu posortowani podług aktywności: + Twórcy programu posortowani według aktywności: @@ -60,12 +60,14 @@ Current language not translated (or native English). If you're interested in translating LMMS in another language or want to improve existing translations, you're welcome to help us! Simply contact the maintainer! - Autorzy tłumaczenia: + Oryginalne tłumaczenie LMMS: Kacper Pawinski -Lucas Grzesik +Lucas Grzesik Marcin Mikołajczak Outer_Mind -Radek Słowik +Radek Słowik +Nowe tłumaczenie LMMS: +Grzegorz „Gootector” Pruchniakowski @@ -74,954 +76,192 @@ Radek Słowik - AmplifierControlDialog - - - VOL - VOL - - - - Volume: - Głośność: - - - - PAN - PAN - - - - Panning: - Panoramowanie: - - - - LEFT - LEWO - - - - Left gain: - L wzm: - - - - RIGHT - PRAWO - - - - Right gain: - P wzm: - - - - AmplifierControls - - - Volume - Głośność - - - - Panning - Panoramowanie - - - - Left gain - L wzm: - - - - Right gain - P wzm: - - - - AudioAlsaSetupWidget - - - DEVICE - URZĄDZENIE - - - - CHANNELS - KANAŁY - - - - AudioFileProcessorView - - - Open sample - Otwórz próbkę - - - - Reverse sample - Odwróć próbkę - - - - Disable loop - Wyłącz zapętlanie - - - - Enable loop - Włącz zapętlanie - - - - Enable ping-pong loop - Włącz pętlę typu "ping-pong" - - - - Continue sample playback across notes - Kontunuuj odtwarzanie sampla w następnych nutach - - - - Amplify: - Wzmocnienie: - - - - Start point: - Punkt startu: - - - - End point: - Punkt końca: - - - - Loopback point: - Znacznik zapętlenia: - - - - AudioFileProcessorWaveView - - - Sample length: - Długość próbki: - - - - AudioJack - - - JACK client restarted - Klient JACK zrestartowany - - - - LMMS was kicked by JACK for some reason. Therefore the JACK backend of LMMS has been restarted. You will have to make manual connections again. - LMMS został odrzucony przez JACK z jakiegoś powodu. Back-end LMMSa został zrestartowany więc możesz ponownie dokonać ręcznych połączeń. - - - - JACK server down - Serwer JACK wyłączony - - - - The JACK server seems to have been shutdown and starting a new instance failed. Therefore LMMS is unable to proceed. You should save your project and restart JACK and LMMS. - Wydaje się, że serwer JACK został wyłączony i uruchomienie nowej instancji nie powiodło się więc LMMS nie może kontynuować pracy. Należy zapisać projekt i uruchomić serwer JACK i LMMSa ponownie. - - - - Client name - Nazwa klienta - - - - Channels - Kanały - - - - AudioOss - - - Device - Urządzenie - - - - Channels - Kanały - - - - AudioPortAudio::setupWidget + AboutJuceDialog - - Backend - Backend + + About JUCE + O JUCE - - Device - Urządzenie + + <b>About JUCE</b> + <b>O JUCE</b> - - - AudioPulseAudio - - Device - Urządzenie + + This program uses JUCE version 3.x.x. + Ten program używa wersji JUCE 3.x.x. - - Channels - Kanały + + JUCE is an open-source cross-platform C++ application framework for creating high quality desktop and mobile applications. + +The core JUCE modules (juce_audio_basics, juce_audio_devices, juce_core and juce_events) are permissively licensed under the terms of the ISC license. +Other modules are covered by a GNU GPL 3.0 license. + +Copyright (C) 2022 Raw Material Software Limited. + JUCE jest otwartym, wieloplatformowym frameworkiem aplikacji C++ do tworzenia wysokiej jakości aplikacji desktopowych i mobilnych. + +Główne moduły JUCE (juce_audio_basics, juce_audio_devices, juce_core i juce_events) są objęte licencją dopuszczającą na warunkach licencji ISC. +Pozostałe moduły są objęte licencją GNU GPL 3.0. + +Prawa autorskie (C) 2022 Raw Material Software Limited. - - - AudioSdl::setupWidget - - Device - Urządzenie + + This program uses JUCE version + Ten program używa wersji JUCE - AudioSndio - - - Device - Urządzenie - + AudioDeviceSetupWidget - - Channels - Kanały + + [System Default] + [Ustawienia domyślne systemu] - AudioSoundIo::setupWidget + CarlaAboutW - - Backend - Backend + + About Carla + O Carla - - Device - Urządzenie + + About + O LMMS - - - AutomatableModel - - &Reset (%1%2) - &Resetuj (%1%2) + + About text here + Tekst opisowy - - &Copy value (%1%2) - &Kopiuj wartość (%1%2) + + Extended licensing here + Rozszerzona licencja dostępna jest tutaj - - &Paste value (%1%2) - &Wklej wartość (%1%2) + + Artwork + Grafika - - &Paste value - &Wklej wartość + + Using KDE Oxygen icon set, designed by Oxygen Team. + Używa ikon KDE Oxygen stworzonych przez Oxygen Team. - - Edit song-global automation - Edytuj globalną automatykę utworu + + Contains some knobs, backgrounds and other small artwork from Calf Studio Gear, OpenAV and OpenOctave projects. + Zawiera elementy pokręteł, teł i inne małe grafiki z projektów Calf Studio Gear, OpenAV i OpenOctave. - - Remove song-global automation - Usuń globalną automatykę utworu + + VST is a trademark of Steinberg Media Technologies GmbH. + VST jest znakiem towarowym Steinberg Media Technologies GmBH. - - Remove all linked controls - Usuń wszystkie podłączone kontrolery + + Special thanks to António Saraiva for a few extra icons and artwork! + Specialne podziękowania dla António Saraiva za dodatkowe ikony i grafiki. - - Connected to %1 - Podłączony do %1 + + The LV2 logo has been designed by Thorsten Wilms, based on a concept from Peter Shorthose. + Logo LV2 zostało zaprojektowane przez Thorstena Wilmsa na podstawie koncepcji Petera Shorthose. - - Connected to controller - Podłączony do kontrolera + + MIDI Keyboard designed by Thorsten Wilms. + Klawiatura MIDI zaprojektowana przez Thorstena Wilmsa. - - Edit connection... - Edytuj połączenie... + + Carla, Carla-Control and Patchbay icons designed by DoosC. + Ikony Carla, Carla-Control i Patchbay zostały zaprojektowane przez DoosC. - - Remove connection - Usuń połączenie + + Features + Funkcje - - Connect to controller... - Podłącz do kontrolera... + + AU/AudioUnit: + AU/AudioUnit: - - - AutomationEditor - - Edit Value - Edytuj Wartość + + LADSPA: + LADSPA: - - New outValue - + + + + + + + + + TextLabel + EtykietaTekstowa - - New inValue - + + VST2: + VST2: - - Please open an automation clip with the context menu of a control! - Otwórz wzorzec automatyki za pomocą menu kontekstowego regulatora! + + DSSI: + DSSI: - - - AutomationEditorWindow - - Play/pause current clip (Space) - Odtwórz/wstrzymaj obecny wzorzec (spacja) + + LV2: + LV2: - - Stop playing of current clip (Space) - Zatrzymaj odtwarzanie obecnego wzorca (spacja) + + VST3: + VST3: - - Edit actions - Edytuj akcje + + OSC + OSC - - Draw mode (Shift+D) - Tryb rysowania (Shift+D) + + Host URLs: + URL hostów: - - Erase mode (Shift+E) - Tryb wymazywania (Shift+E) + + Valid commands: + Prawidłowe polecenia: - - Draw outValues mode (Shift+C) - + + valid osc commands here + prawidłowe polecenia osc tutaj - - Flip vertically - Przerzuć w pionie + + Example: + Przykład: - - Flip horizontally - Przerzuć w poziomie + + License + Licencja - - Interpolation controls - Regulacja interpolacji - - - - Discrete progression - Progresja oddzielna - - - - Linear progression - Progresja linearna - - - - Cubic Hermite progression - Progresja sześcienna Hermite'a - - - - Tension value for spline - Wartość napięcia dla krzywej składanej - - - - Tension: - Napięcie - - - - Zoom controls - Regulacja powiększenia - - - - Horizontal zooming - Powiększenie poziome - - - - Vertical zooming - Powiększenie pionowe - - - - Quantization controls - Regulacja kwantyzacji - - - - Quantization - Kwantyzacja - - - - - Automation Editor - no clip - Edytor automatyki - brak wzorca - - - - - Automation Editor - %1 - Edytor automatyki - %1 - - - - Model is already connected to this clip. - Model jest już podłączony do tego wzorca. - - - - AutomationClip - - - Drag a control while pressing <%1> - Przeciągnij trzymając wciśnięty klawisz <%1> - - - - AutomationClipView - - - Open in Automation editor - Otwórz w Edytorze Automatyki - - - - Clear - Wyczyść - - - - Reset name - Zresetuj nazwę - - - - Change name - Zmień nazwę - - - - Set/clear record - Ustaw/wyczyść nagranie - - - - Flip Vertically (Visible) - Odwróć w pionie (widoczne) - - - - Flip Horizontally (Visible) - Odwróć w poziomie (widoczne) - - - - %1 Connections - %1 Połączenia - - - - Disconnect "%1" - Rozłącz "%1" - - - - Model is already connected to this clip. - Model jest już podłączony do tego wzorca. - - - - AutomationTrack - - - Automation track - Ścieżka automatyki - - - - PatternEditor - - - Beat+Bassline Editor - Pokaż/ukryj Edytor Perkusji i Basu - - - - Play/pause current beat/bassline (Space) - Odtwórz/Pauzuj bieżącą linię perkusyjną/basową (Spacja) - - - - Stop playback of current beat/bassline (Space) - Zatrzymaj odtwarzanie bieżącej linii perkusyjnej/basowej (Spacja) - - - - Beat selector - Selektor linii perkusyjnej - - - - Track and step actions - Akcje dla ścieżki i kroku - - - - Add beat/bassline - Dodaj linię perkusyjną/basową - - - - Clone beat/bassline clip - Klonuj pattern perkusji/basu - - - - Add sample-track - Dodaj próbkę - - - - Add automation-track - Dodaj ścieżkę automatyki - - - - Remove steps - Usuń kroki - - - - Add steps - Dodaj kroki - - - - Clone Steps - Klonuj kroki - - - - PatternClipView - - - Open in Beat+Bassline-Editor - Otwórz w Edytorze Perkusji i Basu - - - - Reset name - Zresetuj nazwę - - - - Change name - Zmień nazwę - - - - PatternTrack - - - Beat/Bassline %1 - Perkusja/Bas %1 - - - - Clone of %1 - Kopia %1 - - - - BassBoosterControlDialog - - - FREQ - FREQ - - - - Frequency: - Częstotliwość: - - - - GAIN - WZMC - - - - Gain: - Wzmocnienie: - - - - RATIO - WSPÓŁCZYNNIK - - - - Ratio: - Współczynnik: - - - - BassBoosterControls - - - Frequency - Częstotliwość - - - - Gain - Wzmocnienie - - - - Ratio - Współczynnik - - - - BitcrushControlDialog - - - IN - WEJŚCIE - - - - OUT - WYJŚCIE - - - - - GAIN - WZMC - - - - Input gain: - Wzmocnienie wejścia: - - - - NOISE - SZUM - - - - Input noise: - Szum wejściowy: - - - - Output gain: - Wzmocnienie wyjścia: - - - - CLIP - OBCIĘCIE - - - - Output clip: - - - - - Rate enabled - - - - - Enable sample-rate crushing - - - - - Depth enabled - Głębia włączona - - - - Enable bit-depth crushing - - - - - FREQ - FREQ - - - - Sample rate: - Częstotliwość próbkowania - - - - STEREO - STEREO - - - - Stereo difference: - Różnica stereo - - - - QUANT - KWANT - - - - Levels: - Poziomy: - - - - BitcrushControls - - - Input gain - Wzmocnienie wejścia - - - - Input noise - Szum wejściowy - - - - Output gain - Wzmocnienie wyścia - - - - Output clip - - - - - Sample rate - Częstotliwość próbkowania - - - - Stereo difference - - - - - Levels - Poziomy - - - - Rate enabled - - - - - Depth enabled - Głębia włączona - - - - CarlaAboutW - - - About Carla - O Carla - - - - About - O LMMS - - - - About text here - - - - - Extended licensing here - Rozszerzona licencja dostępna jest tu. - - - - Artwork - Grafika - - - - Using KDE Oxygen icon set, designed by Oxygen Team. - Używa ikon KDE Oxygen, stworzonych przez Oxygen Team. - - - - Contains some knobs, backgrounds and other small artwork from Calf Studio Gear, OpenAV and OpenOctave projects. - Zawiera elementy gałek, teł i innych małych rzeczy z Calf Studio Gear, Open AV i projektu OpenOctave. - - - - VST is a trademark of Steinberg Media Technologies GmbH. - VST to znak towarowy Steinberg Media Technologies GmBH. - - - - Special thanks to António Saraiva for a few extra icons and artwork! - Specialne podziękowania dla António Saraiva za dodatkowe ikony i grafiki. - - - - The LV2 logo has been designed by Thorsten Wilms, based on a concept from Peter Shorthose. - Logo LV2 zostało zaprojektowane przez Thorstena Wilmsa, na podstawie koncepcji Petera Shorthose. - - - - MIDI Keyboard designed by Thorsten Wilms. - Klawiatura MIDI zaprojektowana przez Thorstena Wilmsa. - - - - Carla, Carla-Control and Patchbay icons designed by DoosC. - Ikony Carla, Carla-Control i Patchbay zostały zaprojektowane przez DoosC. - - - - Features - Funkcje - - - - AU/AudioUnit: - - - - - LADSPA: - LADSPA: - - - - - - - - - - - TextLabel - - - - - VST2: - VST2: - - - - DSSI: - DSSI: - - - - LV2: - LV2: - - - - VST3: - VST3: - - - - OSC - OSC - - - - Host URLs: - - - - - Valid commands: - - - - - valid osc commands here - - - - - Example: - Przykład: - - - - License - Licencja - - - + GNU GENERAL PUBLIC LICENSE Version 2, June 1991 @@ -1586,15037 +826,18246 @@ POSSIBILITY OF SUCH DAMAGES. - - OSC Bridge Version - + + OSC Bridge Version + Wersja mostka OSC + + + + Plugin Version + Wersja wtyczki + + + + <br>Version %1<br>Carla is a fully-featured audio plugin host%2.<br><br>Copyright (C) 2011-2019 falkTX<br> + <br>Wersja %1<br>Carla jest w pełni funkcjonalnym hostem wtyczek dźwiękowych%2.<br><br>Prawa autorskie (C) 2011-2019 falkTX<br> + + + + + (Engine not running) + (silnik nie jest uruchomiony) + + + + Everything! (Including LRDF) + Wszystko! (razem z LRDF) + + + + Everything! (Including CustomData/Chunks) + Wszystko! (razem z CustomData/Chunks) + + + + About 110&#37; complete (using custom extensions)<br/>Implemented Feature/Extensions:<ul><li>http://lv2plug.in/ns/ext/atom</li><li>http://lv2plug.in/ns/ext/buf-size</li><li>http://lv2plug.in/ns/ext/data-access</li><li>http://lv2plug.in/ns/ext/event</li><li>http://lv2plug.in/ns/ext/instance-access</li><li>http://lv2plug.in/ns/ext/log</li><li>http://lv2plug.in/ns/ext/midi</li><li>http://lv2plug.in/ns/ext/options</li><li>http://lv2plug.in/ns/ext/parameters</li><li>http://lv2plug.in/ns/ext/port-props</li><li>http://lv2plug.in/ns/ext/presets</li><li>http://lv2plug.in/ns/ext/resize-port</li><li>http://lv2plug.in/ns/ext/state</li><li>http://lv2plug.in/ns/ext/time</li><li>http://lv2plug.in/ns/ext/uri-map</li><li>http://lv2plug.in/ns/ext/urid</li><li>http://lv2plug.in/ns/ext/worker</li><li>http://lv2plug.in/ns/extensions/ui</li><li>http://lv2plug.in/ns/extensions/units</li><li>http://home.gna.org/lv2dynparam/rtmempool/v1</li><li>http://kxstudio.sf.net/ns/lv2ext/external-ui</li><li>http://kxstudio.sf.net/ns/lv2ext/programs</li><li>http://kxstudio.sf.net/ns/lv2ext/props</li><li>http://kxstudio.sf.net/ns/lv2ext/rtmempool</li><li>http://ll-plugins.nongnu.org/lv2/ext/midimap</li><li>http://ll-plugins.nongnu.org/lv2/ext/miditype</li></ul> + O 110&#37; kompletny (z wykorzystaniem rozszerzeń niestandardowych)<br/>Zaimplementowane funkcje/rozszerzenia:<ul><li>http://lv2plug.in/ns/ext/atom</li><li>http://lv2plug.in/ns/ext/buf-size</li><li>http://lv2plug.in/ns/ext/data-access</li><li>http://lv2plug.in/ns/ext/event</li><li>http://lv2plug.in/ns/ext/instance-access</li><li>http://lv2plug.in/ns/ext/log</li><li>http://lv2plug.in/ns/ext/midi</li><li>http://lv2plug.in/ns/ext/options</li><li>http://lv2plug.in/ns/ext/parameters</li><li>http://lv2plug.in/ns/ext/port-props</li><li>http://lv2plug.in/ns/ext/presets</li><li>http://lv2plug.in/ns/ext/resize-port</li><li>http://lv2plug.in/ns/ext/state</li><li>http://lv2plug.in/ns/ext/time</li><li>http://lv2plug.in/ns/ext/uri-map</li><li>http://lv2plug.in/ns/ext/urid</li><li>http://lv2plug.in/ns/ext/worker</li><li>http://lv2plug.in/ns/extensions/ui</li><li>http://lv2plug.in/ns/extensions/units</li><li>http://home.gna.org/lv2dynparam/rtmempool/v1</li><li>http://kxstudio.sf.net/ns/lv2ext/external-ui</li><li>http://kxstudio.sf.net/ns/lv2ext/programs</li><li>http://kxstudio.sf.net/ns/lv2ext/props</li><li>http://kxstudio.sf.net/ns/lv2ext/rtmempool</li><li>http://ll-plugins.nongnu.org/lv2/ext/midimap</li><li>http://ll-plugins.nongnu.org/lv2/ext/miditype</li></ul> + + + + + + Using Juce host + Wykorzystując host Juce + + + + About 85% complete (missing vst bank/presets and some minor stuff) + Ukończono w około 85% (brakuje banku wtyczek VST/presetów i kilku drobnych rzeczy) + + + + CarlaHostW + + + MainWindow + OknoGłówne + + + + Rack + Rack + + + + Patchbay + Patchbay + + + + Logs + Dziennik + + + + Loading... + Ładowanie... + + + + Save + Zapisz + + + + Clear + Wyczyść + + + + Ctrl+L + Ctrl+L + + + + Auto-Scroll + Autoprzewijanie + + + + Buffer Size: + Rozmiar bufora: + + + + Sample Rate: + Częstotliwość próbkowania: + + + + ? Xruns + ? Xruns + + + + DSP Load: %p% + Obciążenie DSP: %p% + + + + &File + &Plik + + + + &Engine + &Silnik + + + + &Plugin + &Wtyczka + + + + Macros (all plugins) + Makra (wszystkie wtyczki) + + + + &Canvas + &Płótno + + + + Zoom + Powiększenie + + + + &Settings + U&stawienia + + + + &Help + &Pomoc + + + + Tool Bar + Pasek narzędzi + + + + Disk + Dysk + + + + + Home + Strona główna + + + + Transport + Transport + + + + Playback Controls + Sterowanie odtwarzaniem + + + + Time Information + Informacje o czasie + + + + Frame: + Ramka: + + + + 000'000'000 + 000'000'000 + + + + Time: + Czas: + + + + 00:00:00 + 00:00:00 + + + + BBT: + BBT: + + + + 000|00|0000 + 000|00|0000 + + + + Settings + Ustawienia + + + + BPM + BPM + + + + Use JACK Transport + Użyj JACK transport + + + + Use Ableton Link + Użyj Ableton Link + + + + &New + &Nowy + + + + Ctrl+N + Ctrl+N + + + + &Open... + &Otwórz... + + + + + Open... + Otwórz... + + + + Ctrl+O + Ctrl+O + + + + &Save + Zapi&sz + + + + Ctrl+S + Ctrl+S + + + + Save &As... + Z&apisz jako... + + + + + Save As... + Zapisz jako... + + + + Ctrl+Shift+S + Ctrl+Shift+S + + + + &Quit + Za&kończ + + + + Ctrl+Q + Ctrl+Q + + + + &Start + &Uruchom + + + + F5 + F5 + + + + St&op + &Zatrzymaj + + + + F6 + F6 + + + + &Add Plugin... + Dod&aj wtyczkę... + + + + Ctrl+A + Ctrl+A + + + + &Remove All + &Usuń wszystko + + + + Enable + Włącz + + + + Disable + Wyłącz + + + + 0% Wet (Bypass) + 0% mokry (pomiń) + + + + 100% Wet + 100% mokry + + + + 0% Volume (Mute) + 0% głośności (wyciszone) + + + + 100% Volume + 100% głośności + + + + Center Balance + Równowaga środkowa + + + + &Play + &Odtwarzaj + + + + Ctrl+Shift+P + Ctrl+Shift+P + + + + &Stop + &Zatrzymaj + + + + Ctrl+Shift+X + Ctrl+Shift+X + + + + &Backwards + &Wstecz + + + + Ctrl+Shift+B + Ctrl+Shift+B + + + + &Forwards + &Dalej + + + + Ctrl+Shift+F + Ctrl+Shift+F + + + + &Arrange + &Aranżuj + + + + Ctrl+G + Ctrl+G + + + + + &Refresh + &Odśwież + + + + Ctrl+R + Ctrl+R + + + + Save &Image... + Zap&isz obraz... + + + + Auto-Fit + Autodopasowanie + + + + Zoom In + Powiększ + + + + Ctrl++ + Ctrl++ + + + + Zoom Out + Pomniejsz + + + + Ctrl+- + Ctrl+- + + + + Zoom 100% + 100% powiększenia + + + + Ctrl+1 + Ctrl+1 + + + + Show &Toolbar + &Pokaż pasek narzędzi + + + + &Configure Carla + Konfiguruj &Carla + + + + &About + O progr&amie + + + + About &JUCE + O &JUCE + + + + About &Qt + O &Qt + + + + Show Canvas &Meters + + + + + Show Canvas &Keyboard + + + + + Show Internal + Pokaż wewnętrzne + + + + Show External + Pokaż zewnętrzne + + + + Show Time Panel + Pokaż panel czasu + + + + Show &Side Panel + Pokaż panel &boczny + + + + Ctrl+P + Ctrl+P + + + + &Connect... + Połą&cz... + + + + Compact Slots + Zwiń sloty + + + + Expand Slots + Rozwiń sloty + + + + Perform secret 1 + + + + + Perform secret 2 + + + + + Perform secret 3 + + + + + Perform secret 4 + + + + + Perform secret 5 + + + + + Add &JACK Application... + Doda&j aplikację JACK... + + + + &Configure driver... + &Konfiguruj sterownik... + + + + Panic + Panika + + + + Open custom driver panel... + Otwórz niestandardowy panel sterownika... + + + + Save Image... (2x zoom) + Zapisz obraz... (2x powiększenie) + + + + Save Image... (4x zoom) + Zapisz obraz... (4x powiększenie) + + + + Copy as Image to Clipboard + Kopiuj jako obraz do schowka + + + + Ctrl+Shift+C + Ctrl+Shift+C + + + + CarlaHostWindow + + + Export as... + Eksportuj jako... + + + + + + + Error + Błąd + + + + Failed to load project + Nie udało się załadować projektu + + + + Failed to save project + Nie udało się zapisać projektu + + + + Quit + Zakończ + + + + Are you sure you want to quit Carla? + Na pewno chcesz opuścić Carla? + + + + Could not connect to Audio backend '%1', possible reasons: +%2 + Nie można połączyć się z backendem dźwięku „%1”. Możliwy powód: +%2 + + + + Could not connect to Audio backend '%1' + Nie można połączyć się z backendem dźwięku „%1” + + + + Warning + Ostrzeżenie + + + + There are still some plugins loaded, you need to remove them to stop the engine. +Do you want to do this now? + Niektóre wtyczki są nadal załadowane i należy je usunąć, aby zatrzymać działanie silnika. +Chcesz to zrobić teraz? + + + + CarlaSettingsW + + + Settings + Ustawienia + + + + main + główne + + + + canvas + płótno + + + + engine + silnik + + + + osc + osc + + + + file-paths + ścieżki-plików + + + + plugin-paths + ścieżki-wtyczek + + + + wine + wine + + + + experimental + eksperymentalne + + + + Widget + Widżet + + + + + Main + Główne + + + + + Canvas + Płótno + + + + + Engine + Silnik + + + + File Paths + Ścieżki plików + + + + Plugin Paths + Ścieżki wtyczek + + + + Wine + Wine + + + + + Experimental + Eksperymentalne + + + + <b>Main</b> + <b>Główne</b> + + + + Paths + Ścieżki + + + + Default project folder: + Domyślny folder projektu: + + + + Interface + Interfejs + + + + Use "Classic" as default rack skin + Użyj „Klasycznego” jako domyślnego skina racka + + + + Interface refresh interval: + Interwał odświeżania interfejsu: + + + + + ms + ms + + + + Show console output in Logs tab (needs engine restart) + Pokaż wyjście konsoli w zakładce logów (wymaga ponownego uruchomienia silnika) + + + + Show a confirmation dialog before quitting + Wyświetl okno dialogowe przed opuszczeniem programu + + + + + Theme + Motyw + + + + Use Carla "PRO" theme (needs restart) + Użyj motywu Carla „PRO” (wymaga ponownego uruchomienia) + + + + Color scheme: + Schemat kolorów: + + + + Black + Czarny + + + + System + Systemowy + + + + Enable experimental features + Włącz funkcje eksperymentalne + + + + <b>Canvas</b> + <b>Płótno</b> + + + + Bezier Lines + Linie Beziera + + + + Theme: + Motyw: + + + + Size: + Rozmiar: + + + + 775x600 + 775x600 + + + + 1550x1200 + 1550x1200 + + + + 3100x2400 + 3100x2400 + + + + 4650x3600 + 4650x3600 + + + + 6200x4800 + 6200x4800 + + + + 12400x9600 + 12400x9600 + + + + Options + Opcje + + + + Auto-hide groups with no ports + Autoukrywanie grup bez portów + + + + Auto-select items on hover + Autozaznaczanie elementów po najechaniu kursorem + + + + Basic eye-candy (group shadows) + + + + + Render Hints + Renderuj podpowiedzi + + + + Anti-Aliasing + Antyaliasing + + + + Full canvas repaints (slower, but prevents drawing issues) + Pełne ponowne malowanie płótna (wolniejsze, ale zapobiegające problemom z rysowaniem) + + + + <b>Engine</b> + <b>Silnik</b> + + + + + Core + Rdzeń + + + + Single Client + Pojedynczy klient + + + + Multiple Clients + Wielu klientów + + + + + Continuous Rack + Rack ciągły + + + + + Patchbay + Patchbay + + + + Audio driver: + Sterownik dźwięku: + + + + Process mode: + Tryb przetwarzania: + + + + + + + Maximum number of parameters to allow in the built-in 'Edit' dialog + Maksymalna liczba parametrów dozwolonych w wbudowanym oknie dialogowym „Edycja” + + + + Max Parameters: + Maksymalne parametry: + + + + ... + ... + + + + Reset Xrun counter after project load + Resetuj licznik Xrun po załadowaniu projektu + + + + Plugin UIs + Interfejsy użytkownika wtyczek + + + + + How much time to wait for OSC GUIs to ping back the host + Ile czasu należy czekać, aż graficzne interfejsy użytkownika OSC wyślą polecenie ping do hosta + + + + UI Bridge Timeout: + + + + + Use OSC-GUI bridges when possible, this way separating the UI from DSP code + Użyj mostków OSC graficznego interfejsu użytkownika w miarę możliwości, oddzielając w ten sposób interfejs użytkownika od kodu DSP + + + + Use UI bridges instead of direct handling when possible + Użyj mostków interfejsu użytkownika w marę możliwości zamiast obsługi bezpośredniej + + + + Make plugin UIs always-on-top + Zrób interfejsy użytkownika wtyczek zawsze widocznymi + + + + Make plugin UIs appear on top of Carla (needs restart) + Zrób interfejsy użytkownika wtyczek na górze Carla (wymaga ponownego uruchomienia) + + + + NOTE: Plugin-bridge UIs cannot be managed by Carla on macOS + Uwaga: Interfejsy użytkownika wtyczki-mostka nie mogą być zarządzane przez Carla w systemie macOS + + + + + Restart the engine to load the new settings + Uruchom ponownie silnik, aby załadować nowe ustawienia + + + + <b>OSC</b> + <b>OSC</b> + + + + Enable OSC + Włącz OSC + + + + Enable TCP port + Włącz port TCP + + + + + Use specific port: + Użyj określonego portu: + + + + Overridden by CARLA_OSC_TCP_PORT env var + Nadpisane przez zmienną CARLA_OSC_TCP_PORT + + + + + Use randomly assigned port + Użyj losowo przypisanego portu + + + + Enable UDP port + Włącz port UDP + + + + Overridden by CARLA_OSC_UDP_PORT env var + Nadpisane przez zmienną CARLA_OSC_UDP_PORT + + + + DSSI UIs require OSC UDP port enabled + Interfejsy użytkownika DSSI wymagają włączonego portu OSC UDP + + + + <b>File Paths</b> + <b>Ścieżki plików</b> + + + + Audio + Dźwięk + + + + MIDI + MIDI + + + + Used for the "audiofile" plugin + Używany do wtyczki „audiofile” + + + + Used for the "midifile" plugin + Używany do wtyczki „midifile” + + + + + Add... + Dodaj... + + + + + Remove + Usuń + + + + + Change... + Zmień... + + + + <b>Plugin Paths</b> + <b>Ścieżki wtyczek</b> + + + + LADSPA + LADSPA + + + + DSSI + DSSI + + + + LV2 + LV2 + + + + VST2 + VST2 + + + + VST3 + VST3 + + + + SF2/3 + SF2/3 + + + + SFZ + SFZ + + + + JSFX + JSFX + + + + CLAP + CLAP + + + + Restart Carla to find new plugins + Uruchom ponownie Carla, aby znaleźć nowe wtyczki + + + + <b>Wine</b> + <b>Wine</b> + + + + Executable + Wykonywalne + + + + Path to 'wine' binary: + Ścieżka do pliku binarnego „wine”: + + + + Prefix + Przedrostek + + + + Auto-detect Wine prefix based on plugin filename + Autowykrywanie przedrostka Wine w oparciu o nazwę pliku wtyczki + + + + Fallback: + + + + + Note: WINEPREFIX env var is preferred over this fallback + + + + + Realtime Priority + Priorytet w czasie rzeczywistym + + + + Base priority: + Podstawowy priorytet: + + + + WineServer priority: + Priorytet WineServer: + + + + These options are not available for Carla as plugin + Te opcje nie są dostępne dla Carla jako wtyczki + + + + <b>Experimental</b> + <b>Eksperymentalne</b> + + + + Experimental options! Likely to be unstable! + Opcje eksperymentalne! Mogą być niestabilne! + + + + Enable plugin bridges + Włącz mostki wtyczek + + + + Enable Wine bridges + Włącz mostki Wine + + + + Enable jack applications + Włącz aplikacje JACK + + + + Export single plugins to LV2 + Eksportuj pojedyncze wtyczki do LV2 + + + + Use system/desktop-theme icons (needs restart) + Użyj ikon systemowych/motywu pulpitu (wymaga ponownego uruchomienia) + + + + Load Carla backend in global namespace (NOT RECOMMENDED) + Załaduj zaplecze Carla w ogólnej przestrzeni nazw (NIEZALECANE) + + + + Fancy eye-candy (fade-in/out groups, glow connections) + + + + + Use OpenGL for rendering (needs restart) + Użyj OpenGL do renderowania (wymaga ponownego uruchomienia) + + + + High Quality Anti-Aliasing (OpenGL only) + Antyaliasing wysokiej jakości (tylko OpenGL) + + + + Render Ardour-style "Inline Displays" + Renderuj „Inline Displays” w stylu Ardour + + + + Force mono plugins as stereo by running 2 instances at the same time. +This mode is not available for VST plugins. + Wymuś wtyczki mono jako stereo, uruchamiając 2 instancje jednocześnie. +Ten tryb nie jest dostępny dla wtyczek VST. + + + + Force mono plugins as stereo + Wymuś wtyczki mono jako stereo + + + + When enabled, Carla will try to prevent plugins from doing things that might mess up the audio or cause xruns, such as fork(), gtk_init() and similar. + Po włączeniu tej opcji Carla spróbuje uniemożliwić wtyczkom wykonywanie czynności, które mogą zakłócić dźwięk lub powodować błędy xruns, tj. fork(), gtk_init() i podobne. + + + + Prevent unsafe calls from plugins (needs restart) + Zapobiegaj niebezpiecznym wywołaniom z wtyczek (wymaga ponownego uruchomienia) + + + + Run plugins in a separate process, so if they crash it does not affect Carla. +Plugins get automatically deactivated in such cases. +Reactvate them to start the process again, with the last saved state applied to it. + Uruchom wtyczki w oddzielnym procesie. Jeśli się zawieszą, nie wpłynie to na Carla. +W takich przypadkach wtyczki są automatycznie dezaktywowane. +Reaktywuj je, aby ponownie uruchomić proces, stosując do niego ostatni zapisany stan. + + + + Run plugins in bridge mode when possible + W miarę możliwości uruchamiaj wtyczki w trybie mostka + + + + + + + Add Path + Dodaj ścieżkę + + + + Dialog + + + Carla Control - Connect + Kontrola Carla - Połącz + + + + Remote setup + Konfiguracja zdalna + + + + UDP Port: + Port UDP: + + + + Remote host: + Host zdalny: + + + + TCP Port: + Port TCP: + + + + Set value + Ustaw wartość + + + + TextLabel + EtykietaTekstowa + + + + Scale Points + Punkty skali + + + + DriverSettingsW + + + Driver Settings + Ustawienia sterownika + + + + Device: + Urządzenie: + + + + Buffer size: + Rozmiar bufora: + + + + Sample rate: + Częstotliwość próbkowania: + + + + Triple buffer + Bufor potrójny + + + + Show Driver Control Panel + Pokaż panel sterowania sterownika + + + + Restart the engine to load the new settings + Uruchom ponownie silnik, aby załadować nowe ustawienia + + + + ExportProjectDialog + + + Export project + Eksportuj projekt + + + + Export as loop (remove extra bar) + Eksportuj jako pętlę (usuń dodatkowy takt) + + + + Export between loop markers + Eksportuj między znacznikami pętli + + + + Render Looped Section: + Renderuj zapętloną sekcję: + + + + time(s) + raz(y) + + + + File format settings + Ustawienia formatu pliku + + + + File format: + Format pliku: + + + + Sampling rate: + Częstotliwość próbkowania: + + + + 44100 Hz + 44100 Hz + + + + 48000 Hz + 48000 Hz + + + + 88200 Hz + 88200 Hz + + + + 96000 Hz + 96000 Hz + + + + 192000 Hz + 192000 Hz + + + + Bit depth: + Rozdzielczość bitowa: + + + + 16 Bit integer + 16-bitowa liczba całkowita + + + + 24 Bit integer + 24-bitowa liczba całkowita + + + + 32 Bit float + 32-bitowy float + + + + Stereo mode: + Tryb stereo: + + + + Mono + Mono + + + + Stereo + Stereo + + + + Joint stereo + Połączone stereo + + + + Compression level: + Poziom kompresji: + + + + Bitrate: + Bitrate: + + + + 64 KBit/s + 64 KBit/s + + + + 128 KBit/s + 128 KBit/s + + + + 160 KBit/s + 160 KBit/s + + + + 192 KBit/s + 192 KBit/s + + + + 256 KBit/s + 256 KBit/s + + + + 320 KBit/s + 320 KBit/s + + + + Use variable bitrate + Użyj zmiennego bitrate’u + + + + Quality settings + Ustawienia jakości + + + + Interpolation: + Interpolacja: + + + + Zero order hold + Interpolator rzędu zerowego + + + + Sinc worst (fastest) + Sinc najgorsza (najszybsza) + + + + Sinc medium (recommended) + Sinc średnia (zalecana) + + + + Sinc best (slowest) + Sinc najlepsza (najwolniejsza) + + + + Start + Uruchom + + + + Cancel + Anuluj + + + + InstrumentFunctionNoteStacking + + + octave + oktawa + + + + + Major + Major + + + + Majb5 + Majb5 + + + + minor + minor + + + + minb5 + minb5 + + + + sus2 + sus2 + + + + sus4 + sus4 + + + + aug + aug + + + + augsus4 + augsus4 + + + + tri + tri + + + + 6 + 6 + + + + 6sus4 + 6sus4 + + + + 6add9 + 6add9 + + + + m6 + m6 + + + + m6add9 + m6add9 + + + + 7 + 7 + + + + 7sus4 + 7sus4 + + + + 7#5 + 7#5 + + + + 7b5 + 7b5 + + + + 7#9 + 7#9 + + + + 7b9 + 7b9 + + + + 7#5#9 + 7#5#9 + + + + 7#5b9 + 7#5b9 + + + + 7b5b9 + 7b5b9 + + + + 7add11 + 7add11 + + + + 7add13 + 7add13 + + + + 7#11 + 7#11 + + + + Maj7 + Maj7 + + + + Maj7b5 + Maj7b5 + + + + Maj7#5 + Maj7#5 + + + + Maj7#11 + Maj7#11 + + + + Maj7add13 + Maj7add13 + + + + m7 + m7 + + + + m7b5 + m7b5 + + + + m7b9 + m7b9 + + + + m7add11 + m7add11 + + + + m7add13 + m7add13 + + + + m-Maj7 + m-Maj7 + + + + m-Maj7add11 + m-Maj7add11 + + + + m-Maj7add13 + m-Maj7add13 + + + + 9 + 9 + + + + 9sus4 + 9sus4 + + + + add9 + add9 + + + + 9#5 + 9#5 + + + + 9b5 + 9b5 + + + + 9#11 + 9#11 + + + + 9b13 + 9b13 + + + + Maj9 + Maj9 + + + + Maj9sus4 + Maj9sus4 + + + + Maj9#5 + Maj9#5 + + + + Maj9#11 + Maj9#11 + + + + m9 + m9 + + + + madd9 + madd9 + + + + m9b5 + m9b5 + + + + m9-Maj7 + m9-Maj7 + + + + 11 + 11 + + + + 11b9 + 11b9 + + + + Maj11 + Maj11 + + + + m11 + m11 + + + + m-Maj11 + m-Maj11 + + + + 13 + 13 + + + + 13#9 + 13#9 + + + + 13b9 + 13b9 + + + + 13b5b9 + 13b5b9 + + + + Maj13 + Maj13 + + + + m13 + m13 + + + + m-Maj13 + m-Maj13 + + + + Harmonic minor + Molowa harmoniczna + + + + Melodic minor + Molowa melodyczna + + + + Whole tone + Całotonowa + + + + Diminished + Zmniejszona + + + + Major pentatonic + Pentatonika durowa + + + + Minor pentatonic + Pentatonika molowa + + + + Jap in sen + Jap in sen + + + + Major bebop + Bebopowa durowa + + + + Dominant bebop + Bebopowa dominantowa + + + + Blues + Bluesowa + + + + Arabic + Arabska + + + + Enigmatic + Enigmatyczna + + + + Neopolitan + Neopolitańska + + + + Neopolitan minor + Neapolitańska molowa + + + + Hungarian minor + Węgierska molowa + + + + Dorian + Dorycka + + + + Phrygian + Frygijska + + + + Lydian + Lidyjska + + + + Mixolydian + Miksolidyjska + + + + Aeolian + Eolska + + + + Locrian + Lokrycka + + + + Minor + Molowa + + + + Chromatic + Chromatyczna + + + + Half-Whole Diminished + Półton-cały ton zmniejszona + + + + 5 + 5 + + + + Phrygian dominant + Frygijska dominantowa + + + + Persian + Perska + + + + InstrumentSoundShaping + + + VOLUME + GŁOŚNOŚĆ + + + + Volume + Głośność + + + + CUTOFF + ODETNIJ + + + + Cutoff frequency + Częstotliwość graniczna + + + + RESO + REZO + + + + Resonance + Rezonans + + + + JackAppDialog + + + Add JACK Application + Dodaj aplikację JACK + + + + Note: Features not implemented yet are greyed out + Uwaga: Funkcje, które nie zostały jeszcze zaimplementowane, są wyszarzone + + + + Application + Aplikacja + + + + Name: + Nazwa: + + + + Application: + Aplikacja: + + + + From template + Z szablonu + + + + Custom + Niestandardowy + + + + Template: + Szablon: + + + + Command: + Polecenie: + + + + Setup + Konfiguracja + + + + Session Manager: + Menedżer sesji: + + + + None + Brak + + + + Audio inputs: + Wejścia dźwięku: + + + + MIDI inputs: + Wejścia MIDI: + + + + Audio outputs: + Wyjścia dźwięku: + + + + MIDI outputs: + Wyjścia MIDI: + + + + Take control of main application window + Przejmij kontrolę nad głównym oknem aplikacji + + + + Workarounds + Progi + + + + Wait for external application start (Advanced, for Debug only) + Poczekaj na uruchomienie aplikacji zewnętrznej (zaawansowane, tylko do debugowania) + + + + Capture only the first X11 Window + Przechwyć tylko pierwsze X11 Window + + + + Use previous client output buffer as input for the next client + Użyj poprzedniego bufora wyjściowego klienta jako danych wejściowych dla następnego klienta + + + + Simulate 16 JACK MIDI outputs, with MIDI channel as port index + + + + + Error here + Błąd tutaj + + + + NSM applications cannot use abstract or absolute paths + Aplikacje NSM nie mogą używać ścieżek abstrakcyjnych ani bezwzględnych + + + + NSM applications cannot use CLI arguments + Aplikacje NSM nie mogą używać argumentów CLI + + + + You need to save the current Carla project before NSM can be used + Musisz zapisać bieżący projekt Carla, zanim użyjesz NSM + + + + JuceAboutW + + + This program uses JUCE version %1. + Ten program używa JUCE w wersji %1. + + + + MidiPatternW + + + MIDI Pattern + Szablon MIDI + + + + Time Signature: + Oznaczenie metryczne: + + + + + + 1/4 + 1/4 + + + + 2/4 + 2/4 + + + + 3/4 + 3/4 + + + + 4/4 + 4/4 + + + + 5/4 + 5/4 + + + + 6/4 + 6/4 + + + + Measures: + Takty: + + + + + + 1 + 1 + + + + 2 + 2 + + + + 3 + 3 + + + + 4 + 4 + + + + 5 + 5 + + + + 6 + 6 + + + + 7 + 7 + + + + 8 + 8 + + + + 9 + 9 + + + + 10 + 10 + + + + 11 + 11 + + + + 12 + 12 + + + + 13 + 13 + + + + 14 + 14 + + + + 15 + 15 + + + + 16 + 16 + + + + Default Length: + Długość domyślna: + + + + + 1/16 + 1/16 + + + + + 1/15 + 1/15 + + + + + 1/12 + 1/12 + + + + + 1/9 + 1/9 + + + + + 1/8 + 1/8 + + + + + 1/6 + 1/6 + + + + + 1/3 + 1/3 + + + + + 1/2 + 1/2 + + + + Quantize: + Kwantyzuj: + + + + &File + &Plik + + + + &Edit + &Edycja + + + + &Quit + Za&kończ + + + + Esc + Esc + + + + &Insert Mode + Tryb wstaw&iania + + + + F + F + + + + &Velocity Mode + &Tryb głośności + + + + D + D + + + + Select All + Zaznacz wszystkie + + + + A + A + + + + PatchesDialog + + + + Qsynth: Channel Preset + Qsynth: preset kanału + + + + + Bank selector + Selektor banku + + + + + Bank + Bank + + + + + Program selector + Selektor programu + + + + + Patch + Próbka + + + + + Name + Nazwa + + + + + OK + OK + + + + + Cancel + Anuluj + + + + PluginBrowser + + + no description + brak opisu + + + + A native amplifier plugin + Natywna wtyczka wzmacniacza + + + + Simple sampler with various settings for using samples (e.g. drums) in an instrument-track + Prosty sampler z licznymi ustawieniami dla próbek (np. perkusji) w ścieżce instrumentu + + + + Boost your bass the fast and simple way + Łatwo i szybko podbij bas + + + + Customizable wavetable synthesizer + Konfigurowalny syntezator tablicowy + + + + An oversampling bitcrusher + Nadpróbkowanie bitcrusher + + + + Carla Patchbay Instrument + Instrument Carla Patchbay + + + + Carla Rack Instrument + Instrument Carla Rack + + + + A dynamic range compressor. + Kompresor o dynamicznym zakresie + + + + A 4-band Crossover Equalizer + 4-zakresowy korektor krzyżowy + + + + A native delay plugin + Natywna wtyczka opóźnienia + + + + A Dual filter plugin + Wtyczka podwójnego filtra + + + + plugin for processing dynamics in a flexible way + Wtyczka do przetwarzania dynamiki w elastyczny sposób + + + + A native eq plugin + Natywna wtyczka korektora graficznego + + + + A native flanger plugin + Natywna wtyczka flangera + + + + Emulation of GameBoy (TM) APU + Emulator układu APU GameBoy’a (TM) + + + + Player for GIG files + Odtwarzacz plików GIG + + + + Filter for importing Hydrogen files into LMMS + Filtr importujący pliki Hydrogen do LMMS + + + + Versatile drum synthesizer + Wszechstronny syntezator perkusyjny + + + + List installed LADSPA plugins + Pokaż zainstalowane wtyczki LADSPA + + + + plugin for using arbitrary LADSPA-effects inside LMMS. + Wtyczka umożliwiająca załadowanie dowolnego efektu LADSPA wewnątrz LMMS + + + + Incomplete monophonic imitation TB-303 + Niezupełna monofoniczna emulacja syntezatora TB-303 + + + + plugin for using arbitrary LV2-effects inside LMMS. + Wtyczka pozwalająca na korzystanie z efektów LV2 w LMMS + + + + plugin for using arbitrary LV2 instruments inside LMMS. + Wtyczka pozwalająca na korzystanie z instrumentów LV2 w LMMS + + + + Filter for exporting MIDI-files from LMMS + Filtr do eksportowania plików MIDI z LMMS + + + + Filter for importing MIDI-files into LMMS + Filtr do importowania plików MIDI do LMMS + + + + Monstrous 3-oscillator synth with modulation matrix + Potworny 3-oscylatorowy syntezator z macierzą modulacji + + + + A multitap echo delay plugin + + + + + A NES-like synthesizer + Syntezator odwzorowujący NES-a + + + + 2-operator FM Synth + 2-operatorowy syntezator FM + + + + Additive Synthesizer for organ-like sounds + Syntezator Addytywny umożliwiający tworzenie dźwięków zbliżonych brzmieniem do organów + + + + GUS-compatible patch instrument + + + + + Plugin for controlling knobs with sound peaks + Wtyczka do kontrolowania pokręteł za pośrednictwem szczytów dźwięku - - Plugin Version - Wersja Wtyczki + + Reverb algorithm by Sean Costello + Algorytm pogłosu Seana Costello - - <br>Version %1<br>Carla is a fully-featured audio plugin host%2.<br><br>Copyright (C) 2011-2019 falkTX<br> - <br>Wersja %1<br> Carla jest w pełni funkcjonalnym hostem wtyczek audio%2.<br><br>Copyright (C) 2011-2019 falkTX<br> + + Player for SoundFont files + Odtwarzacz plików SoundFont - - - (Engine not running) - + + LMMS port of sfxr + Port sxfr dla LMMS - - Everything! (Including LRDF) - Wszystko (Razem z LRDF) + + Emulation of the MOS6581 and MOS8580 SID. +This chip was used in the Commodore 64 computer. + Emulator układu dźwiękowego SID MOS6581 i MOS8580 +Te układy scalone były stosowane w komputerach Commodore 64 - - Everything! (Including CustomData/Chunks) - + + A graphical spectrum analyzer. + Graficzny podgląd spektrum - - About 110&#37; complete (using custom extensions)<br/>Implemented Feature/Extensions:<ul><li>http://lv2plug.in/ns/ext/atom</li><li>http://lv2plug.in/ns/ext/buf-size</li><li>http://lv2plug.in/ns/ext/data-access</li><li>http://lv2plug.in/ns/ext/event</li><li>http://lv2plug.in/ns/ext/instance-access</li><li>http://lv2plug.in/ns/ext/log</li><li>http://lv2plug.in/ns/ext/midi</li><li>http://lv2plug.in/ns/ext/options</li><li>http://lv2plug.in/ns/ext/parameters</li><li>http://lv2plug.in/ns/ext/port-props</li><li>http://lv2plug.in/ns/ext/presets</li><li>http://lv2plug.in/ns/ext/resize-port</li><li>http://lv2plug.in/ns/ext/state</li><li>http://lv2plug.in/ns/ext/time</li><li>http://lv2plug.in/ns/ext/uri-map</li><li>http://lv2plug.in/ns/ext/urid</li><li>http://lv2plug.in/ns/ext/worker</li><li>http://lv2plug.in/ns/extensions/ui</li><li>http://lv2plug.in/ns/extensions/units</li><li>http://home.gna.org/lv2dynparam/rtmempool/v1</li><li>http://kxstudio.sf.net/ns/lv2ext/external-ui</li><li>http://kxstudio.sf.net/ns/lv2ext/programs</li><li>http://kxstudio.sf.net/ns/lv2ext/props</li><li>http://kxstudio.sf.net/ns/lv2ext/rtmempool</li><li>http://ll-plugins.nongnu.org/lv2/ext/midimap</li><li>http://ll-plugins.nongnu.org/lv2/ext/miditype</li></ul> - About 110&#37; complete (using custom extensions)<br/>Implemented Feature/Extensions:<ul><li>http://lv2plug.in/ns/ext/atom</li><li>http://lv2plug.in/ns/ext/buf-size</li><li>http://lv2plug.in/ns/ext/data-access</li><li>http://lv2plug.in/ns/ext/event</li><li>http://lv2plug.in/ns/ext/instance-access</li><li>http://lv2plug.in/ns/ext/log</li><li>http://lv2plug.in/ns/ext/midi</li><li>http://lv2plug.in/ns/ext/options</li><li>http://lv2plug.in/ns/ext/parameters</li><li>http://lv2plug.in/ns/ext/port-props</li><li>http://lv2plug.in/ns/ext/presets</li><li>http://lv2plug.in/ns/ext/resize-port</li><li>http://lv2plug.in/ns/ext/state</li><li>http://lv2plug.in/ns/ext/time</li><li>http://lv2plug.in/ns/ext/uri-map</li><li>http://lv2plug.in/ns/ext/urid</li><li>http://lv2plug.in/ns/ext/worker</li><li>http://lv2plug.in/ns/extensions/ui</li><li>http://lv2plug.in/ns/extensions/units</li><li>http://home.gna.org/lv2dynparam/rtmempool/v1</li><li>http://kxstudio.sf.net/ns/lv2ext/external-ui</li><li>http://kxstudio.sf.net/ns/lv2ext/programs</li><li>http://kxstudio.sf.net/ns/lv2ext/props</li><li>http://kxstudio.sf.net/ns/lv2ext/rtmempool</li><li>http://ll-plugins.nongnu.org/lv2/ext/midimap</li><li>http://ll-plugins.nongnu.org/lv2/ext/miditype</li></ul> + + Plugin for enhancing stereo separation of a stereo input file + Wtyczka rozszerzająca bazę stereo - - - - Using Juce host + + Plugin for freely manipulating stereo output + Wtyczka do nieograniczonego manipulowania wyjściami stereo + + + + Tuneful things to bang on + Melodyjny instrument pałeczkowy + + + + Three powerful oscillators you can modulate in several ways + Trzy potężne oscylatory, które możesz modulować na kilka sposobów + + + + A stereo field visualizer. + Wizualizator pola stereo + + + + VST-host for using VST(i)-plugins within LMMS + Host VST pozwalający na użycie wtyczek VST(i) w LMMS + + + + Vibrating string modeler + Symulator drgającej struny + + + + plugin for using arbitrary VST effects inside LMMS. + Wtyczka pozwalająca na korzystanie z efektów VST w LMMS + + + + 4-oscillator modulatable wavetable synth + 4-oscylatorowy modularny syntezator tablicowy + + + + plugin for waveshaping + Wtyczka kształtująca falę + + + + Mathematical expression parser + Instrument przetwarzający wyrażenia matematyczne + + + + Embedded ZynAddSubFX + Wbudowany syntezator ZynAddSubFX + + + + An all-pass filter allowing for extremely high orders. - - About 85% complete (missing vst bank/presets and some minor stuff) + + Granular pitch shifter + + + + + Upwards/downwards multiband compression plugin powered by the eldritch elder god LOMMUS. + Wtyczka kompresji wielopasmowej w górę/w dół oparta na tajemniczym bogu starożytności, LOMMUSIE. + + + + Basic Slicer + + + Tap to the beat + Stukaj w rytm + - CarlaHostW + PluginEdit - - MainWindow - + + Plugin Editor + Edytor wtyczek - - Rack + + Edit + Edycja + + + + Control - - Patchbay - Patchbay + + MIDI Control Channel: + Kanał sterowania MIDI: - - Logs - Logi + + N + N - - Loading... - Ładowanie... + + Output dry/wet (100%) + Głośność sucha/mokra (100%) - - Buffer Size: - Rozmiar Bufora: + + Output volume (100%) + Głośność wyjściowa (100%) - - Sample Rate: - Częstotliwość Próbkowania: + + Balance Left (0%) + Równowaga lewego (0%) - - ? Xruns - ? Xruns + + + Balance Right (0%) + Równowaga prawego (0%) - - DSP Load: %p% + + Use Balance + Użyj równowagi + + + + Use Panning + Użyj panoramowania + + + + Settings + Ustawienia + + + + Use Chunks + Użyj fragmentów + + + + Audio: + Dźwięk: + + + + Fixed-Size Buffer + Bufor o stałym rozmiarze + + + + Force Stereo (needs reload) + Wymuś stereo (wymaga ponownego załadowania) + + + + MIDI: + MIDI: + + + + Map Program Changes + Zmiany programu mapowania + + + + Send Notes + Wyślij nuty + + + + Send Bank/Program Changes + Wyślij zmiany banku/programu + + + + Send Control Changes - - &File - &Plik + + Send Channel Pressure + - - &Engine - &Silnik + + Send Note Aftertouch + - - &Plugin - &Wtyczka + + Send Pitchbend + Wyślij pitchbend - - Macros (all plugins) - Makra (wszystkie etyczki) + + Send All Sound/Notes Off + Wyślij wszystkie dźwięki/nuty wyłączone - - &Canvas - &Canvas + + +Plugin Name + + +Nazwa wtyczki + - - Zoom - Przybliż + + Program: + Program: - - &Settings - &Ustawienia + + MIDI Program: + Program MIDI: - - &Help - &Pomoc + + Save State + Zapisz stan + + + + Load State + Załaduj stan + + + + Information + Informacje + + + + Label/URI: + Etykieta/URI: + + + + Name: + Nazwa: + + + + Type: + Typ: - - toolBar + + Maker: + Twórca: + + + + Copyright: + Prawa autorskie: + + + + Unique ID: + + + PluginFactory + + + Plugin not found. + Nie znaleziono wtyczki. + - - Disk - Dysk + + LMMS plugin %1 does not have a plugin descriptor named %2! + Wtyczka LMMS %1 nie ma deskryptora wtyczki nazwanego %2! + + + + PluginListDialog + + + Carla - Add New + Carla - Dodaj nowy + + + + Requirements + Wymagania + + + + With Custom GUI + Z niestandardowym graficznym interfejsem użytkownika + + + + With CV Ports + Z portami CV + + + + Real-time safe only + Tylko w czasie rzeczywistym + + + + Stereo only + Tylko stereo + + + + With Inline Display + Z wyświetlaczem liniowym + + + + Favorites only + Tylko ulubione + + + + (Number of Plugins go here) + (Tutaj znajdziesz liczbę wtyczek) + + + + &Add Plugin + Dod&aj wtyczkę + + + + Cancel + Anuluj + + + + Refresh + Odśwież - - - Home - Strona domowa + + Reset filters + Resetuj filtry + + + + + + + + + + + + + + + + + + + TextLabel + EtykietaTekstowa - - Transport - + + Format: + Format: - - Playback Controls - + + Architecture: + Architektura: - - Time Information - + + Type: + Typ: - - Frame: - Klatka: + + MIDI Ins: + Wej. MIDI: - - 000'000'000 - 000'000'000 + + Audio Ins: + Wej. dźwięku: - - Time: - Czas: + + CV Outs: + Wyj. CV: - - 00:00:00 - 00:00:00 + + MIDI Outs: + Wyj. MIDI: - - BBT: - BBT: + + Parameter Ins: + Wej. parametru: - - 000|00|0000 - 000|00|0000 + + Parameter Outs: + Wyj. parametru: - - Settings - Ustawienia + + Audio Outs: + Wyj. dźwięku: - - BPM - BPM + + CV Ins: + Wej. CV: - - Use JACK Transport + + UniqueID: - - Use Ableton Link - + + Has Inline Display: + Posiada wyświetlacz liniowy: - - &New - &Nowy + + Has Custom GUI: + Posiada niestandardowy graficzny interfejs użytkownika: - - Ctrl+N - Ctrl+N + + Is Synth: + Jest syntezatorem: - - &Open... - &Otwórz... + + Is Bridged: + Jest mostkowane: - - - Open... - Otwórz... + + Information + Informacje - - Ctrl+O - Ctrl+O + + Name + Nazwa - - &Save - &Zapisz + + Label/Id/URI + - - Ctrl+S - Ctrl+S + + Maker + Twórca - - Save &As... - Zapisz &Jako... + + Binary/Filename + Binarny/nazwa pliku - - - Save As... - Zapisz Jako... + + Format + Format - - Ctrl+Shift+S - Ctrl+Shift+S + + Internal + Wewnętrzne - - &Quit - &Zakończ + + LADSPA + LADSPA - - Ctrl+Q - Ctrl+Q + + DSSI + DSSI - - &Start - &Start + + LV2 + LV2 - - F5 - F5 + + VST2 + VST2 - - St&op - St&op + + VST3 + VST3 - - F6 - F6 + + CLAP + CLAP - - &Add Plugin... - &Dodaj Wtyczkę + + AU + AU - - Ctrl+A - Ctrl+A + + JSFX + JSFX - - &Remove All - &Usuń Wszystko + + Sound Kits + Zestawy dźwięków - - Enable - Włącz + + Type + Typ - - Disable - Wyłącz + + Effects + Efekty - - 0% Wet (Bypass) - + + Instruments + Instrumenty - - 100% Wet - + + MIDI Plugins + Wtyczki MIDI - - 0% Volume (Mute) - 0% Głośności (Wyciszone) + + Other/Misc + Inne/różne - - 100% Volume - 100% Głośności + + Category + Kategoria - - Center Balance - + + All + Wszystko - - &Play - &Odtwórz + + Delay + Opóźnienie - - Ctrl+Shift+P - Ctrl+Shift+P + + Distortion + Zniekształcenie - - &Stop - &Zatrzymaj + + Dynamics + Dynamiki - - Ctrl+Shift+X - Ctrl+Shift+X + + EQ + EQ - - &Backwards - &Wstecz + + Filter + Filtr - - Ctrl+Shift+B - Ctrl+Shift+B + + Modulator + Modulator - - &Forwards - &Na przód + + Synth + Syntezator - - Ctrl+Shift+F - Ctrl+Shift+F + + Utility + - - &Arrange - &Aranżuj + + + Other + Inne - - Ctrl+G - Ctrl+G + + Architecture + Architektura - - - &Refresh - &Odśwież + + + Native + Natywne - - Ctrl+R - Ctrl+R + + Bridged + Mostkowane - - Save &Image... - Zapisz &Obraz + + Bridged (Wine) + Mostkowane (Wine) - - Auto-Fit - + + Focus Text Search + Skup się na wyszukiwaniu tekstu - - Zoom In - Przybliż + + Ctrl+F + Ctrl+F - - Ctrl++ - Ctrl++ + + Bridged (32bit) + Mostkowane (32-bitowe) - - Zoom Out - Oddal + + Discovering internal plugins... + Odkrywanie wtyczek wewnętrznych... - - Ctrl+- - Ctrl+- + + Discovering LADSPA plugins... + Odkrywanie wtyczek LADSPA... - - Zoom 100% - 100% Przybliżenia + + Discovering DSSI plugins... + Odkrywanie wtyczek DSSI... - - Ctrl+1 - Ctrl+1 + + Discovering LV2 plugins... + Odkrywanie wtyczek LV2... - - Show &Toolbar - Pokaż &Pasek Narzędzi + + Discovering VST2 plugins... + Odkrywanie wtyczek VST2... - - &Configure Carla - + + Discovering VST3 plugins... + Odkrywanie wtyczek VST3... - - &About - %O programie + + Discovering CLAP plugins... + Odkrywanie wtyczek CLAP... - - About &JUCE - O &JUCE + + Discovering AU plugins... + Odkrywanie wtyczek AU... - - About &Qt - O &Qt + + Discovering JSFX plugins... + Odkrywanie wtyczek JSFX... - - Show Canvas &Meters - + + Discovering SF2 kits... + Odkrywanie zestawów SF2... - - Show Canvas &Keyboard - + + Discovering SFZ kits... + Odkrywanie zestawów SFZ... - - Show Internal - + + Unknown + Nieznane - - Show External - + + + + + Yes + Tak - - Show Time Panel - + + + + + No + Nie + + + PluginParameter - - Show &Side Panel - + + Form + Z - - &Connect... - %Połącz + + Parameter Name + Nazwa parametru - - Compact Slots - + + TextLabel + EtykietaTekstowa - - Expand Slots - + + ... + ... + + + PluginRefreshDialog - - Perform secret 1 - + + Plugin Refresh + Odświeżanie wtyczek - - Perform secret 2 - + + Search for: + Szukaj: - - Perform secret 3 - + + All plugins, ignoring cache + Wszystkie wtyczki, ignorując pamięć podręczną - - Perform secret 4 - + + Updated plugins only + Tylko zaktualizowane wtyczki - - Perform secret 5 - + + Check previously invalid plugins + Sprawdź wcześniej nieprawidłowe wtyczki - - Add &JACK Application... - Dodaj &Aplikację JACK + + Press 'Scan' to begin the search + Naciśnij „Skanuj”, aby rozpocząć wyszukiwanie - - &Configure driver... - &Konfiguruj sterownik... + + Scan + Skanuj - - Panic - + + >> Skip + >> Pomiń - - Open custom driver panel... - + + Close + Zamknij - CarlaHostWindow + PluginWidget - - Export as... - Eksportuj jako... + + + + + + Frame + Ramka - - - - - Error - BłądBłą + + Enable + Włącz - - Failed to load project - Nie udało się załadować projektu + + On/Off + Wł./wył. + + + + + + + PluginName + NazwaWtyczki - - Failed to save project - Nie udało się zapisać projektu + + MIDI + MIDI - - Quit - Wyjdź + + AUDIO IN + WEJ. DŹW. - - Are you sure you want to quit Carla? - + + AUDIO OUT + WYJ. DŹW. - - Could not connect to Audio backend '%1', possible reasons: -%2 - + + GUI + Graficzny interfejs użytkownika - - Could not connect to Audio backend '%1' - + + Edit + Edycja - - Warning - Ostrzeżenie + + Remove + Usuń - - There are still some plugins loaded, you need to remove them to stop the engine. -Do you want to do this now? - + + Plugin Name + Nazwa wtyczki - - - CarlaInstrumentView - - Show GUI - Pokaż GUI + + Preset: + Preset: - CarlaSettingsW + ProjectRenderer - - Settings - Ustawienia + + WAV (*.wav) + WAV (*.wav) - - main - + + FLAC (*.flac) + FLAC (*.flac) - - canvas - canvas + + OGG (*.ogg) + OGG (*.ogg) - - engine - silnik + + MP3 (*.mp3) + MP3 (*.mp3) + + + QGroupBox - - osc - osc + + + Settings for %1 + Ustawienia %1 + + + QObject - - file-paths - + + Reload Plugin + Przeładuj wtyczkę - - plugin-paths - + + Show GUI + Pokaż graficzny interfejs użytkownika - - wine - wine + + Help + Pomoc - - experimental - + + LADSPA plugins + Wtyczki LADSPA - - Widget - + + The project contains %1 LADSPA plugin(s) which might have not been restored correctly! Please check the project. + Projekt zawiera %1 wtyczek LADSPA, które mogły nie zostać poprawnie przywrócone! Sprawdź projekt. - - - Main - + + URI: + URI: - - - Canvas - Canvas + + Project: + Projekt: - - - Engine - Silnik + + Maker: + Twórca: - - File Paths - + + Homepage: + Strona główna: - - Plugin Paths - Ścieżki Wtyczek + + License: + Licencja: - - Wine - Wine + + File: %1 + Plik: %1 - - - Experimental - Eksperymentalne + + failed to load description + nie można załadować opisu - - <b>Main</b> - <b>Główne</b> + + Open audio file + Otwórz plik dźwiękowy - - Paths - Ścieżki + + Error loading sample + Błąd ładowania próbki - - Default project folder: - Domyślny folder projektu: + + %1 (unsupported) + %1 (nieobsługiwany) + + + QWidget - - Interface - Interfejs + + + Name: + Nazwa: - - Interface refresh interval: - + + Maker: + Twórca: - - - ms - ms + + Copyright: + Prawa autorskie: - - Show console output in Logs tab (needs engine restart) - + + Requires Real Time: + Wymaga czasu rzeczywistego: - - Show a confirmation dialog before quitting - + + + + Yes + Tak - - - Theme - Motyw + + + + No + Nie - - Use Carla "PRO" theme (needs restart) - + + Real Time Capable: + Zdolność do pracy w czasie rzeczywistym: - - Color scheme: - Schemat kolorów: + + In Place Broken: + Na miejscu złamane: - - Black - Czarny + + Channels In: + Kanały wejściowe: - - System - Systemowe + + Channels Out: + Kanały wyjściowe: - - Enable experimental features - Włącz eksperymentalne funkcje + + File: %1 + Plik: %1 - - <b>Canvas</b> - <b>Canvas</b> + + File: + Plik: + + + XYControllerW - - Bezier Lines - Linie Beziera + + XY Controller + Kontroler XY - - Theme: - Motyw: + + X Controls: + Sterowanie X: - - Size: - Rozmiar: + + Y Controls: + Sterowanie Y: - - 775x600 - 775x600 + + Smooth + Wygładź - - 1550x1200 - 1550x1200 + + &Settings + U&stawienia - - 3100x2400 - 3100x2400 + + Channels + Kanały - - 4650x3600 - 4650x3600 + + &File + &Plik - - 6200x4800 - 6200x4800 + + Show MIDI &Keyboard + Po&każ klawiaturę MIDI - - Options - Opcje + + (All) + (Wszystko) - - Auto-hide groups with no ports - + + 1 + 1 - - Auto-select items on hover - + + 2 + 2 - - Basic eye-candy (group shadows) - + + 3 + 3 - - Render Hints - + + 4 + 4 - - Anti-Aliasing - Antyaliasing + + 5 + 5 - - Full canvas repaints (slower, but prevents drawing issues) - + + 6 + 6 - - <b>Engine</b> - <b>Silnik</b> + + 7 + 7 - - - Core - Rdzeń + + 8 + 8 - - Single Client - + + 9 + 9 - - Multiple Clients - + + 10 + 10 - - - Continuous Rack - + + 11 + 11 - - - Patchbay - Patchbay + + 12 + 12 - - Audio driver: - Sterownik audio: + + 13 + 13 - - Process mode: - + + 14 + 14 - - - - - Maximum number of parameters to allow in the built-in 'Edit' dialog - + + 15 + 15 - - Max Parameters: - + + 16 + 16 - - ... - ... + + &Quit + Za&kończ + + + + Esc + Esc - - Reset Xrun counter after project load - + + (None) + (Brak) + + + lmms::AmplifierControls - - Plugin UIs - UI Wtyczek + + Volume + Głośność - - - How much time to wait for OSC GUIs to ping back the host - + + Panning + Panoramowanie - - UI Bridge Timeout: - + + Left gain + Lewe wzmocnienie - - Use OSC-GUI bridges when possible, this way separating the UI from DSP code - + + Right gain + Prawe wzmocnienie + + + lmms::AudioFileProcessor - - Use UI bridges instead of direct handling when possible - + + Amplify + Wzmocnij - - Make plugin UIs always-on-top - + + Start of sample + Początek próbki - - Make plugin UIs appear on top of Carla (needs restart) - + + End of sample + Koniec próbki - - NOTE: Plugin-bridge UIs cannot be managed by Carla on macOS - + + Loopback point + Znacznik zapętlenia - - - Restart the engine to load the new settings - Zresetuj silnik aby załadować nowe ustawienia + + Reverse sample + Odwróć próbkę - - <b>OSC</b> - <b>OSC</b> + + Loop mode + Tryb pętli - - Enable OSC - Włącz OSC + + Stutter + Zacinanie - - Enable TCP port - Włącz port TCP + + Interpolation mode + Tryb interpolacji - - - Use specific port: - + + None + Brak - - Overridden by CARLA_OSC_TCP_PORT env var - + + Linear + Liniowy - - - Use randomly assigned port + + Sinc - - Enable UDP port - Włącz port UDP + + Sample not found + Nie znaleziono próbki + + + lmms::AudioJack - - Overridden by CARLA_OSC_UDP_PORT env var - + + JACK client restarted + Klient JACK zrestartowany - - DSSI UIs require OSC UDP port enabled - + + LMMS was kicked by JACK for some reason. Therefore the JACK backend of LMMS has been restarted. You will have to make manual connections again. + LMMS został odrzucony przez JACK z jakiegoś powodu. Back-end LMMSa został zrestartowany, więc możesz ponownie dokonać ręcznych połączeń. - - <b>File Paths</b> - <b>Ścieżki do Plików</b> + + JACK server down + Serwer JACK wyłączony - - Audio - Audio + + The JACK server seems to have been shutdown and starting a new instance failed. Therefore LMMS is unable to proceed. You should save your project and restart JACK and LMMS. + Wygląda na to, że serwer JACK został wyłączony i uruchomienie nowej instancji nie powiodło się. LMMS nie może kontynuować pracy. Zapisz projekt i uruchom ponownie serwer JACK i LMMS. - - MIDI - MIDI + + Client name + Nazwa klienta - - Used for the "audiofile" plugin - + + Channels + Kanały + + + lmms::AudioOss - - Used for the "midifile" plugin - + + Device + Urządzenie - - - Add... - Dodaj... + + Channels + Kanały + + + lmms::AudioPortAudio::setupWidget - - - Remove - Usuń + + Backend + Backend - - - Change... - Zmień... + + Device + Urządzenie + + + lmms::AudioPulseAudio - - <b>Plugin Paths</b> - <b>Ścieżki do Wtyczek</b> + + Device + Urządzenie - - LADSPA - LADSPA + + Channels + Kanały + + + lmms::AudioSdl::setupWidget - - DSSI - DSSI + + Playback device + Urządzenie odtwarzające - - LV2 - LV2 + + Input device + Urządzenie wejściowe + + + lmms::AudioSndio - - VST2 - VST2 + + Device + Urządzenie - - VST3 - VST3 + + Channels + Kanały + + + lmms::AudioSoundIo::setupWidget - - SF2/3 - SF2/3 + + Backend + Backend - - SFZ - SFZ + + Device + Urządzenie + + + lmms::AutomatableModel - - Restart Carla to find new plugins - + + &Reset (%1%2) + &Resetuj (%1%2) - - <b>Wine</b> - <b>Wine</b> + + &Copy value (%1%2) + &Kopiuj wartość (%1%2) - - Executable - Wykonywalne + + &Paste value (%1%2) + Wklej wa&rtość (%1%2) - - Path to 'wine' binary: - + + &Paste value + Wklej wa&rtość - - Prefix - Prefiks + + Edit song-global automation + Edytuj ogólną automatykę utworu - - Auto-detect Wine prefix based on plugin filename - Automatycznie wykrywaj prefiks Wine na bazie nazwy pliku wtyczki + + Remove song-global automation + Usuń ogólną automatykę utworu - - Fallback: + + Remove all linked controls - - Note: WINEPREFIX env var is preferred over this fallback - + + Connected to %1 + Podłączony do %1 - - Realtime Priority - + + Connected to controller + Podłączony do kontrolera - - Base priority: - + + Edit connection... + Edytuj połączenie... - - WineServer priority: - + + Remove connection + Usuń połączenie - - These options are not available for Carla as plugin - + + Connect to controller... + Podłącz do kontrolera... + + + lmms::AutomationClip - - <b>Experimental</b> - <b>Eksperymentalne</b> + + Drag a control while pressing <%1> + Przeciągnij, trzymając naciśnięty <%1> + + + lmms::AutomationTrack - - Experimental options! Likely to be unstable! - + + Automation track + Ścieżka automatyki + + + + lmms::BassBoosterControls + + + Frequency + Częstotliwość - - Enable plugin bridges - + + Gain + Wzmocnienie - - Enable Wine bridges - + + Ratio + Współczynnik + + + lmms::BitInvader - - Enable jack applications - Włącz aplikacje jack + + Sample length + Długość próbki - - Export single plugins to LV2 - + + Interpolation + Interpolacja - - Load Carla backend in global namespace (NOT RECOMMENDED) - + + Normalize + Normalizacja + + + lmms::BitcrushControls - - Fancy eye-candy (fade-in/out groups, glow connections) - + + Input gain + Wzmocnienie wejścia - - Use OpenGL for rendering (needs restart) - Użyj OpenGL do renderowania (wymaga restartu) + + Input noise + Szum wejścia - - High Quality Anti-Aliasing (OpenGL only) - Antyaliasing Wysokiej Jakości (tylko OpenGL) + + Output gain + Wzmocnienie wyjścia - - Render Ardour-style "Inline Displays" - + + Output clip + Obcięcie wyjścia - - Force mono plugins as stereo by running 2 instances at the same time. -This mode is not available for VST plugins. - + + Sample rate + Częstotliwość próbkowania - - Force mono plugins as stereo - + + Stereo difference + Różnica stereo - - Prevent plugins from doing bad stuff (needs restart) - + + Levels + Poziomy - - Whenever possible, run the plugins in bridge mode. + + Rate enabled - - Run plugins in bridge mode when possible - + + Depth enabled + Głębia włączona + + + lmms::Clip - - - - - Add Path - Dodaj Ścieżkę + + Mute + Cisza - CompressorControlDialog + lmms::CompressorControls - - Threshold: - Próg: + + Threshold + Próg - - Volume at which the compression begins to take place - + + Ratio + Współczynnik - - Ratio: - Współczynnik: + + Attack + Narastanie - - How far the compressor must turn the volume down after crossing the threshold - + + Release + Opadanie - - Attack: - Atak: + + Knee + Czułość - - Speed at which the compressor starts to compress the audio + + Hold - - Release: - Zwolnienie: + + Range + Zakres - - Speed at which the compressor ceases to compress the audio - + + RMS Size + Rozmiar RMS - - Knee: - + + Mid/Side + Śr./b. - - Smooth out the gain reduction curve around the threshold + + Peak Mode + Tryb szczytowy + + + + Lookahead Length - - Range: - Zakres: + + Input Balance + Równowaga wejścia - - Maximum gain reduction - + + Output Balance + Równowaga wyjścia - - Lookahead Length: - + + Limiter + Limiter - - How long the compressor has to react to the sidechain signal ahead of time - + + Output Gain + Wzmocnienie wyjścia - - Hold: - Przetrzymanie: + + Input Gain + Wzmocnienie wejścia - - Delay between attack and release stages + + Blend - - RMS Size: - Rozmiar RMS: + + Stereo Balance + Równowaga stereo - - Size of the RMS buffer - Rozmiar bufora RMS: + + Auto Makeup Gain + Autoupiększanie wzmocnienia - - Input Balance: - + + Audition + Przesłuchanie - - Bias the input audio to the left/right or mid/side - + + Feedback + Sprzężenie zwrotne - - Output Balance: + + Auto Attack - - Bias the output audio to the left/right or mid/side + + Auto Release - - Stereo Balance: + + Lookahead - - Bias the sidechain signal to the left/right or mid/side - + + Tilt + Nachylenie - - Stereo Link Blend: - + + Tilt Frequency + Częstotliwość nachylenia - - Blend between unlinked/maximum/average/minimum stereo linking modes + + Stereo Link - - Tilt Gain: - + + Mix + Miks + + + lmms::Controller - - Bias the sidechain signal to the low or high frequencies. -6 db is lowpass, 6 db is highpass. - + + Controller %1 + Kontroler %1 + + + lmms::DelayControls - - Tilt Frequency: - + + Delay samples + Opóźnij próbki - - Center frequency of sidechain tilt filter - + + Feedback + Sprzężenie zwrotne - - Mix: - + + LFO frequency + Częstotliwość LFO - - Balance between wet and dry signals - + + LFO amount + Wartość LFO - - Auto Attack: - + + Output gain + Wzmocnienie wyjścia + + + lmms::DispersionControls - - Automatically control attack value depending on crest factor - + + Amount + Wartość - - Auto Release: - + + Frequency + Częstotliwość - - Automatically control release value depending on crest factor - + + Resonance + Rezonans - - Output gain - Wzmocnienie wyścia + + Feedback + Sprzężenie zwrotne - - - Gain - Wzmocnienie + + DC Offset Removal + Usuwanie przesunięcia DC + + + + lmms::DualFilterControls + + + Filter 1 enabled + Włączono filtr 1 - - Output volume - + + Filter 1 type + Typ filtra 1 - - Input gain - Wzmocnienie wejścia + + Cutoff frequency 1 + Częstotliwość graniczna 1 - - Input volume - + + Q/Resonance 1 + Q/Rezonans 1 - - Root Mean Square - + + Gain 1 + Wzmocnienie 1 - - Use RMS of the input - + + Mix + Miks - - Peak - Szczyt + + Filter 2 enabled + Włączono filtr 2 - - Use absolute value of the input - + + Filter 2 type + Typ filtra 2 - - Left/Right - Lewy/Prawy + + Cutoff frequency 2 + Częstotliwość graniczna 2 - - Compress left and right audio - + + Q/Resonance 2 + Q/Rezonans 2 - - Mid/Side - + + Gain 2 + Wzmocnienie 2 - - Compress mid and side audio - + + + Low-pass + Niski przebieg - - Compressor - Kompresor + + + Hi-pass + Wysoki przebieg - - Compress the audio - Kompresuj audio + + + Band-pass csg + Pasmowoprzepustowy csg - - Limiter - Limiter + + + Band-pass czpg + Pasmowoprzepustowy czpg - - Set Ratio to infinity (is not guaranteed to limit audio volume) - + + + Notch + Pasmowozaporowy - - Unlinked - + + + All-pass + Wszystkie przebiegi - - Compress each channel separately - + + + Moog + Moog - - Maximum - Maksimum + + + 2x Low-pass + 2x niski przebieg - - Compress based on the loudest channel + + + RC Low-pass 12 dB/oct - - Average - Średnie + + + RC Band-pass 12 dB/oct + - - Compress based on the averaged channel volume + + + RC High-pass 12 dB/oct - - Minimum - Minimum + + + RC Low-pass 24 dB/oct + - - Compress based on the quietest channel + + + RC Band-pass 24 dB/oct - - Blend + + + RC High-pass 24 dB/oct - - Blend between stereo linking modes + + + Vocal Formant - - Auto Makeup Gain - + + + 2x Moog + 2x Moog - - Automatically change makeup gain depending on threshold, knee, and ratio settings + + + SV Low-pass - - - Soft Clip + + + SV Band-pass - - Play the delta signal + + + SV High-pass - - Use the compressor's output as the sidechain input - + + + SV Notch + SV zaporowy - - Lookahead Enabled + + + Fast Formant - - Enable Lookahead, which introduces 20 milliseconds of latency - + + + Tripole + Trójnik - CompressorControls + lmms::DynProcControls - - Threshold - + + Input gain + Wzmocnienie wejścia - - Ratio - Współczynnik + + Output gain + Wzmocnienie wyjścia - - Attack - Atak + + Attack time + Czas narastania - - Release - Wybrzmiewanie + + Release time + Czas opadania - - Knee - + + Stereo mode + Tryb stereo + + + lmms::Effect - - Hold - Przetrzymanie + + Effect enabled + Efekt włączony - - Range - Zakres + + Wet/Dry mix + Miksowanie suchy/mokry - - RMS Size - Rozmiar RMS + + Gate + Bramka - - Mid/Side + + Decay + + + lmms::EffectChain - - Peak Mode - + + Effects enabled + Efekty włączone + + + lmms::Engine - - Lookahead Length - + + Generating wavetables + Generowanie tabel sampli dźwiękowych - - Input Balance - + + Initializing data structures + Inicjalizowanie struktur danych - - Output Balance - + + Opening audio and midi devices + Otwieranie urządzeń dźwiękowych i MIDI - - Limiter - Limiter + + Launching audio engine threads + Uruchamianie wątków silnika dźwięku + + + lmms::EnvelopeAndLfoParameters - - Output Gain - Wzmocnienie wyścia + + Env pre-delay + Opóźnienie wstępne obwiedni - - Input Gain - Wzmocnienie wejścia + + Env attack + Narastanie obw. - - Blend + + Env hold - - Stereo Balance + + Env decay - - Auto Makeup Gain + + Env sustain - - Audition - + + Env release + Opadanie obw. - - Feedback - Feedback + + Env mod amount + Wartość mod. obw. - - Auto Attack - + + LFO pre-delay + Opóźnienie wstępne LFO - - Auto Release - + + LFO attack + Narastanie LFO - - Lookahead - + + LFO frequency + Częstotliwość LFO - - Tilt - Przechylenie + + LFO mod amount + Wartość mod. LFO - - Tilt Frequency - + + LFO wave shape + Kształt fali LFO - - Stereo Link - + + LFO frequency x 100 + Częstotliwość LFO x 100 - - Mix - Miks + + Modulate env amount + Moduluj wartość obw. - - - Controller - - Controller %1 - Kontroler %1 + + Sample not found + Nie znaleziono próbki - ControllerConnectionDialog - - - Connection Settings - Ustawienia Połączenia - + lmms::EqControls - - MIDI CONTROLLER - KONTROLER MIDI - - - - Input channel - Kanał wejściowy + + Input gain + Wzmocnienie wejścia - - CHANNEL - KANAŁ + + Output gain + Wzmocnienie wyjścia - - Input controller - Kontroler wejściowy + + Low-shelf gain + Wzmocnienie dolnopółkowe - - CONTROLLER - KONTROLER + + Peak 1 gain + - - - Auto Detect - Autodetekcja + + Peak 2 gain + - - MIDI-devices to receive MIDI-events from - Urządzenia MIDI odbierające zdarzenia MIDI z + + Peak 3 gain + - - USER CONTROLLER - KONTROLER UŻYTKOWNIKA + + Peak 4 gain + - - MAPPING FUNCTION - FUNKCJA MAPOWANIA + + High-shelf gain + Wzmocnienie górnopółkowe - - OK - OK + + HP res + Rez. HP - - Cancel - Anuluj + + Low-shelf res + Rez. dolnopółkowy - - LMMS - LMMS + + Peak 1 BW + - - Cycle Detected. - Detekcja Cyklu. + + Peak 2 BW + - - - ControllerRackView - - Controller Rack - Rack Kontrolerów + + Peak 3 BW + - - Add - Dodaj + + Peak 4 BW + - - Confirm Delete - Potwierdź usunięcie + + High-shelf res + Rez. górnopółkowy - - Confirm delete? There are existing connection(s) associated with this controller. There is no way to undo. - Czy potwierdzić usunięcie? Występuje(ą) istniejące połączenie(a) związane z tym kontrolerem. Tej operacji nie da się cofnąć. + + LP res + Rez. LP - - - ControllerView - - Controls - Ustaw + + HP freq + Częst. HP - - Rename controller - Zmień nazwę kontrolera + + Low-shelf freq + Częst. dolnopółkowa - - Enter the new name for this controller - Wprowadź nową nazwę dla tego kontrolera + + Peak 1 freq + - - LFO - LFO + + Peak 2 freq + - - &Remove this controller - &Usuń ten kontroler + + Peak 3 freq + - - Re&name this controller - Zmień &nazwę tego kontrolera + + Peak 4 freq + - - - CrossoverEQControlDialog - - Band 1/2 crossover: - + + High-shelf freq + Częst. górnopółkowa - - Band 2/3 crossover: - + + LP freq + Częst. LP - - Band 3/4 crossover: - + + HP active + HP aktywny - - Band 1 gain - + + Low-shelf active + Dolnopółkowy aktywny - - Band 1 gain: - + + Peak 1 active + Szczyt 1 aktywny - - Band 2 gain - + + Peak 2 active + Szczyt 2 aktywny - - Band 2 gain: - + + Peak 3 active + Szczyt 3 aktywny - - Band 3 gain - + + Peak 4 active + Szczyt 4 aktywny - - Band 3 gain: - + + High-shelf active + Górnopółkowy aktywny - - Band 4 gain - + + LP active + LP aktywny - - Band 4 gain: - + + LP 12 + LP 12 - - Band 1 mute - + + LP 24 + LP 24 - - Mute band 1 - + + LP 48 + LP 48 - - Band 2 mute - + + HP 12 + HP 12 - - Mute band 2 - + + HP 24 + HP 24 - - Band 3 mute - + + HP 48 + HP 48 - - Mute band 3 + + Low-pass type - - Band 4 mute + + High-pass type - - Mute band 4 - + + Analyse IN + Analizuj WEJŚCIE + + + + Analyse OUT + Analizuj WYJŚCIE - DelayControls + lmms::FlangerControls - + Delay samples - - - - - Feedback - Feedback + Opóźnij próbki - + LFO frequency Częstotliwość LFO - - LFO amount - + + Amount + Wartość - - Output gain - Wzmocnienie wyścia + + Stereo phase + Faza stereo + + + + Feedback + Sprzężenie zwrotne + + + + Noise + Szum + + + + Invert + Odwróć - DelayControlsDialog + lmms::FreeBoyInstrument - - DELAY - OPÓŹN + + Sweep time + Czas wobulacji - - Delay time - Czas opóźnienia + + Sweep direction + Kierunek wobulacji - - FDBK - REAK + + Sweep rate shift amount + - - Feedback amount - + + + Wave pattern duty cycle + Współczynnik wypełnienia szablonu fali - - RATE - TEMPO + + Channel 1 volume + Głośność kanału 1 - - LFO frequency - Częstotliwość LFO + + + + Volume sweep direction + Kierunek wobulacji głośności - - AMNT - ILOŚĆ + + + + Length of each step in sweep + Długość każdego kroku wobulacji - - LFO amount - + + Channel 2 volume + Głośność kanału 2 - - Out gain - + + Channel 3 volume + Głośność kanału 3 - - Gain - Wzmocnienie + + Channel 4 volume + Głośność kanału 4 - - - Dialog - - Add JACK Application - Dodaj Aplikację JACK + + Shift Register width + - - Note: Features not implemented yet are greyed out - Uwaga: Funkcje, które nie zostały jeszcze zaimplementowane są wyszarzone + + Right output level + Poziom prawego wyjścia - - Application - Aplikacja + + Left output level + Poziom lewego wyjścia - - Name: - Nazwa: + + Channel 1 to SO2 (Left) + Kanał 1 do SO2 (lewy) - - Application: - Aplikacja: + + Channel 2 to SO2 (Left) + Kanał 2 do SO2 (lewy) - - From template - Z szablonu + + Channel 3 to SO2 (Left) + Kanał 3 do SO2 (lewy) - - Custom - Własne + + Channel 4 to SO2 (Left) + Kanał 4 do SO2 (lewy) - - Template: - Szablon: + + Channel 1 to SO1 (Right) + Kanał 1 do SO1 (prawy) - - Command: - Komenda: + + Channel 2 to SO1 (Right) + Kanał 2 do SO1 (prawy) - - Setup - Konfiguracja + + Channel 3 to SO1 (Right) + Kanał 3 do SO1 (prawy) - - Session Manager: - Menedżer Sesji: + + Channel 4 to SO1 (Right) + Kanał 4 do SO1 (prawy) - - None - Brak + + Treble + Soprany - - Audio inputs: - Wejścia audio: + + Bass + Basy + + + lmms::GigInstrument - - MIDI inputs: - Wejścia MIDI: + + Bank + Bank - - Audio outputs: - Wyjścia audio: + + Patch + Próbka - - MIDI outputs: - Wyjścia MIDI: + + Gain + Wzmocnienie + + + lmms::GranularPitchShifterControls - - Take control of main application window - + + Pitch + Odstrojenie - - Workarounds - Progi + + Grain Size + Wielkość ziarna - - Wait for external application start (Advanced, for Debug only) + + Spray - - Capture only the first X11 Window + + Jitter - - Use previous client output buffer as input for the next client + + Twitch - - Simulate 16 JACK MIDI outputs, with MIDI channel as port index + + Pitch Stereo Spread - - Error here + + Spray Stereo - - Carla Control - Connect - + + Shape + Kształt - - Remote setup - + + Fade Length + Długość ściszenia - - UDP Port: - Port UDP: + + Feedback + Sprzężenie zwrotne - - Remote host: - Zdalny host: + + Minimum Allowed Latency + Minimalne dozwolone opóźnienie - - TCP Port: - Port TCP: + + Prefilter + Filtr wstępny - - Reported host - + + Density + Gęstość - - Automatic - Automatycznie + + Glide + Poślizg - - Custom: - Własne: + + Ring Buffer Length + - - In some networks (like USB connections), the remote system cannot reach the local network. You can specify here which hostname or IP to make the remote Carla connect to. -If you are unsure, leave it as 'Automatic'. - + + 5 Seconds + 5 sekund - - Set value - Ustaw wartość + + 10 Seconds (Size) + 10 sekund (rozmiar) - - TextLabel - + + 40 Seconds (Size and Pitch) + 40 sekund (rozmiar i odstrojenie) - - Scale Points + + 40 Seconds (Size and Spray and Jitter) + + + 120 Seconds (All of the above) + 120 sekund (wszystkie powyższe) + - DriverSettingsW + lmms::InstrumentFunctionArpeggio - - Driver Settings - Ustawienia Sterownika + + Arpeggio + Arpeggio - - Device: - Urządzenie: + + Arpeggio type + Typ arpeggio - - Buffer size: - Rozmiar bufora: + + Arpeggio range + Zakres arpeggio - - Sample rate: - Częstotliwość próbkowania + + Note repeats + Powtórzenia nuty - - Triple buffer - Bufor potrójny + + Cycle steps + Kroki cyklu - - Show Driver Control Panel + + Skip rate - - Restart the engine to load the new settings - Zresetuj silnik aby załadować nowe ustawienia + + Miss rate + - - - DualFilterControlDialog - - - FREQ - FREQ + + Arpeggio time + Czas arpeggio - - - Cutoff frequency - Częstotliwość graniczna + + Arpeggio gate + Bramka arpeggio - - - RESO - RESO + + Arpeggio direction + Kierunek arpeggio - - - Resonance - Zafalowanie charakterystyki + + Arpeggio mode + Tryb arpeggio - - - GAIN - WZMC + + Up + W górę - - - Gain - Wzmocnienie + + Down + W dół - - MIX - MIX + + Up and down + W górę i w dół - - Mix - Miks + + Down and up + W dół i w górę - - Filter 1 enabled - Włączono filtr 1 + + Random + Losowe - - Filter 2 enabled - Włączono filtr 2 + + Free + Dowolne - - Enable/disable filter 1 - + + Sort + Posortowane - - Enable/disable filter 2 - + + Sync + Zsynchronizowane - DualFilterControls - - - Filter 1 enabled - Włączono filtr 1 - - - - Filter 1 type - Rodzaj filtru 1 - - - - Cutoff frequency 1 - - - - - Q/Resonance 1 - Q/Rezonans 1 - + lmms::InstrumentFunctionNoteStacking - - Gain 1 - Wzmocnienie 1 + + Chords + Akordy - - Mix - Miks + + Chord type + Typ akordu - - Filter 2 enabled - Włączono filtr 2 + + Chord range + Zakres akordu + + + lmms::InstrumentSoundShaping - - Filter 2 type - Rodzaj filtru 2 + + Envelopes/LFOs + Obwiednie/oscylatory LFO - - Cutoff frequency 2 - + + Filter type + Typ filtra - - Q/Resonance 2 - Q/Rezonans 2 + + Cutoff frequency + Częstotliwość graniczna - - Gain 2 - Wzmocnienie 2 + + Q/Resonance + Q/Rezonans - - + Low-pass - + Niski przebieg - - + Hi-pass - + Wysoki przebieg - - + Band-pass csg - + Pasmowoprzepustowy csg - - + Band-pass czpg - + Pasmowoprzepustowy czpg - - + Notch Pasmowozaporowy - - + All-pass - + Wszystkie przebiegi - - + Moog Moog - - + 2x Low-pass - + 2x niski przebieg - - + RC Low-pass 12 dB/oct - - + RC Band-pass 12 dB/oct - - + RC High-pass 12 dB/oct - - + RC Low-pass 24 dB/oct - - + RC Band-pass 24 dB/oct - - + RC High-pass 24 dB/oct - - + Vocal Formant - - + 2x Moog 2x Moog - - + SV Low-pass - - + SV Band-pass - - + SV High-pass - - + SV Notch - SV Zaporowy + SV zaporowy - - + Fast Formant - Szybki Formant + - - + Tripole - + Trójnik - Editor + lmms::InstrumentTrack - - Transport controls - Ustawienia źródła + + + unnamed_track + nienazwana_ścieżka - - Play (Space) - Odtwarzaj (spacja) + + Base note + Nuta bazowa - - Stop (Space) - Zatrzymaj (spacja) + + First note + Pierwsza nuta - - Record - Nagrywaj + + Last note + Ostatnia nuta - - Record while playing - Nagrywaj podczas odtwarzania + + Volume + Głośność - - Toggle Step Recording - + + Panning + Panoramowanie - - - Effect - - Effect enabled - Efekt włączony + + Pitch + Odstrojenie - - Wet/Dry mix - Miksowanie Suchy/Mokry + + Pitch range + Zakres odstrojenia - - Gate - Bramka + + Mixer channel + Kanał miksera - - Decay - Zanikanie + + Master pitch + Odstrojenie główne + + + + Enable/Disable MIDI CC + Włącz/wyłącz MIDI CC + + + + CC Controller %1 + Kontroler CC %1 + + + + + Default preset + Preset domyślny - EffectChain + lmms::Keymap - - Effects enabled - Efekty włączone + + empty + pusty - EffectRackView + lmms::KickerInstrument - - EFFECTS CHAIN - ŁAŃCUCH EFEKTOWY + + Start frequency + Częstotliwość początkowa - - Add effect - Dodaj efekt + + End frequency + Częstotliwość końcowa - - - EffectSelectDialog - - Add effect - Dodaj efekt + + Length + Długość - - - Name - Nazwa + + Start distortion + Początek zniekształcenia - - Type - Rodzaj + + End distortion + Koniec zniekształcenia - - Description - Opis + + Gain + Wzmocnienie - - Author - Autor + + Envelope slope + Nachylenie obwiedni + + + + Noise + Szum + + + + Click + Kliknięcie + + + + Frequency slope + Nachylenie częstotliwości + + + + Start from note + Rozpocznij od nuty + + + + End to note + Zakończ do nuty - EffectView + lmms::LOMMControls - - On/Off - On/Off + + Depth + Głębia - - W/D - W/D + + Time + Czas - - Wet Level: - Poziom 'Mokrego' (Wet): + + Input Volume + Głośność wejściowa - - DECAY - ZANIK. + + Output Volume + Głośność wyjściowa - - Time: - Czas: + + Upward Depth + Głębia w górę - - GATE - BRAM. + + Downward Depth + Głębia w dół - - Gate: - Bramka: + + High/Mid Split + - - Controls - Ustaw + + Mid/Low Split + - - Move &up - Przemieść w &górę + + Enable High/Mid Split + - - Move &down - Przemieść w &dół + + Enable Mid/Low Split + - - &Remove this plugin - &Usuń tę wtyczkę + + Enable High Band + - - - EnvelopeAndLfoParameters - - Env pre-delay + + Enable Mid Band - - Env attack + + Enable Low Band - - Env hold + + High Input Volume - - Env decay + + Mid Input Volume - - Env sustain + + Low Input Volume - - Env release + + High Output Volume - - Env mod amount + + Mid Output Volume - - LFO pre-delay + + Low Output Volume - - LFO attack + + Above Threshold High - - LFO frequency - Częstotliwość LFO + + Above Threshold Mid + + + + + Above Threshold Low + + + + + Above Ratio High + + + + + Above Ratio Mid + + + + + Above Ratio Low + + + + + Below Threshold High + + + + + Below Threshold Mid + + + + + Below Threshold Low + + + + + Below Ratio High + + + + + Below Ratio Mid + + + + + Below Ratio Low + + + + + Attack High + + + + + Attack Mid + + + + + Attack Low + + + + + Release High + + + + + Release Mid + + + + + Release Low + + + + + RMS Time + Czas RMS + + + + Knee + Czułość + + + + Range + Zakres - - LFO mod amount - + + Balance + Równowaga - - LFO wave shape + + Scale output volume with Depth - - LFO frequency x 100 + + Stereo Link - - Modulate env amount + + Auto Time - - - EnvelopeAndLfoView - - - DEL - DEL + + Mix + Miks - - - Pre-delay: - Opóźnienie wstępne: + + Feedback + Sprzężenie zwrotne - - - ATT - ATT + + Mid/Side + Śr./b. - - - Attack: - Atak: + + Lookahead + - - HOLD - HOLD + + Lookahead Length + - - Hold: - Przetrzymanie: + + Suppress upward compression for side band + Wytłumienie kompresji w górę dla pasma bocznego + + + lmms::LadspaControl - - DEC - DEC + + Link channels + Połącz kanały + + + lmms::LadspaEffect - - Decay: - Zanikanie: + + Unknown LADSPA plugin %1 requested. + Zażądano nieznanej wtyczki LADSPA %1. + + + lmms::Lb302Synth - - SUST - SUST + + VCF Cutoff Frequency + Częstotliwość graniczna VCF - - Sustain: - Podtrzymanie: + + VCF Resonance + Rezonans VCF - - REL - REL + + VCF Envelope Mod + Mod. obwiedni VCF - - Release: - Wybrzmiewanie: + + VCF Envelope Decay + - - - AMT - AMT + + Distortion + Zniekształcenie - - - Modulation amount: - Współczynnik modulacji: + + Waveform + Kształt fali - - SPD - SPD + + Slide Decay + - - Frequency: - Częstotliwość: + + Slide + Ślizg - - FREQ x 100 - FREQ x 100 + + Accent + Akcent - - Multiply LFO frequency by 100 - + + Dead + Martwy - - MODULATE ENV AMOUNT - + + 24dB/oct Filter + Filtr 24 dB/okt + + + lmms::LfoController - - Control envelope amount by this LFO - + + LFO Controller + Kontroler LFO - - ms/LFO: - ms/LFO: + + Base value + Wartość bazowa - - Hint - Wskazówka + + Oscillator speed + Prędkość oscylatora - - Drag and drop a sample into this window. - + + Oscillator amount + Wartość oscylatora - - - EqControls - - Input gain - Wzmocnienie wejścia + + Oscillator phase + Faza oscylatora - - Output gain - Wzmocnienie wyścia + + Oscillator waveform + Kształt fali oscylatora - - Low-shelf gain - + + Frequency Multiplier + Mnożnik częstotliwości - - Peak 1 gain - Wzmocnienie szczytowe 1 + + Sample not found + Nie znaleziono próbki + + + lmms::MalletsInstrument - - Peak 2 gain - Wzmocnienie szczytowe 2 + + Hardness + Twardość - - Peak 3 gain - Wzmocnienie szczytowe 3 + + Position + Pozycja - - Peak 4 gain - Wzmocnienie szczytowe 4 + + Vibrato gain + Wzmocnienie vibrato - - High-shelf gain + + Vibrato frequency + Częstotliwość vibrato + + + + Stick mix - - HP res - Rez HP + + Modulator + Modulator - - Low-shelf res - + + Crossfade + Płynne przechodzenie - - Peak 1 BW - Szczyt 1 pasmo + + LFO speed + Prędkość LFO - - Peak 2 BW - Szczyt 2 pasmo + + LFO depth + Głębia LFO - - Peak 3 BW - Szczyt 3 pasmo + + ADSR + ADSR - - Peak 4 BW - Szczyt 4 pasmo + + Pressure + Ciśnienie - - High-shelf res - + + Motion + Ruch - - LP res - LP rez + + Speed + Prędkość - - HP freq - Częst. HP + + Bowed + Pochylenie - - Low-shelf freq - + + Instrument + Instrument - - Peak 1 freq - Szczyt 1 częst. + + Spread + Rozstrzał - - Peak 2 freq - Szczyt 2 częst. + + Randomness + Losowość - - Peak 3 freq - Szczyt 3 częst. + + Marimba + Marimba - - Peak 4 freq - Szczyt 4 częst. + + Vibraphone + Wibrafon - - High-shelf freq - + + Agogo + Agogo - - LP freq - Częst. LP + + Wood 1 + Drewniane 1 - - HP active - HP aktywny + + Reso + Rez. - - Low-shelf active - + + Wood 2 + Drewniane 2 - - Peak 1 active - Szczyt 1 aktywny + + Beats + Uderzenia - - Peak 2 active - Szczyt 2 aktywny + + Two fixed + Dwa stałe - - Peak 3 active - Szczyt 3 aktywny + + Clump + Stąpanie - - Peak 4 active - Szczyt 4 aktywny + + Tubular bells + Tubular bells - - High-shelf active + + Uniform bar - - LP active - LP aktywny + + Tuned bar + - - LP 12 - LP 12 + + Glass + Harfa szklana - - LP 24 - LP 24 + + Tibetan bowl + Misa dźwiękowa (tybetańska) + + + lmms::MeterModel - - LP 48 - LP 48 + + Numerator + Numerator - - HP 12 - HP 12 + + Denominator + Denominator + + + lmms::Microtuner - - HP 24 - HP 24 + + Microtuner + Mikrotuner - - HP 48 - HP 48 + + Microtuner on / off + Mikrotuner wł./wył. - - Low-pass type - + + Selected scale + Wybrana skala - - High-pass type - + + Selected keyboard mapping + Wybrane mapowanie klawiszy + + + lmms::MidiController - - Analyse IN - Analizuj WEJŚCIE + + MIDI Controller + Kontroler MIDI - - Analyse OUT - Analizuj WYJŚCIE + + unnamed_midi_controller + nienazwany_kontroler_midi - EqControlsDialog + lmms::MidiImport - - HP - HP + + + Setup incomplete + Konfiguracja niekompletna - - Low-shelf - + + You have not set up a default soundfont in the settings dialog (Edit->Settings). Therefore no sound will be played back after importing this MIDI file. You should download a General MIDI soundfont, specify it in settings dialog and try again. + Nie masz ustawionego domyślnego SoundFontu w oknie dialogowym ustawień (Edycja -> Ustawienia). Dlatego żaden dźwięk nie zostanie odtworzony po zaimportowaniu tego pliku MIDI. Powinieneś/aś pobrać SoundFont General MIDI, określić go w oknie dialogowym ustawień i spróbować ponownie. - - Peak 1 - Szczyt 1 + + You did not compile LMMS with support for SoundFont2 player, which is used to add default sound to imported MIDI files. Therefore no sound will be played back after importing this MIDI file. + Nie skompilowałeś/aś LMMS ze wsparciem dla odtwarzacza SoundFont2, który jest używany do dodawania domyślnego dźwięku do importowanych plików MIDI. Dlatego żaden dźwięk nie zostanie odtworzony po zaimportowaniu tego pliku MIDI. - - Peak 2 - Szczyt 2 + + MIDI Time Signature Numerator + Numerator oznaczenia metrycznego MIDI - - Peak 3 - Szczyt 3 + + MIDI Time Signature Denominator + Denominator oznaczenia metrycznego MIDI - - Peak 4 - Szczyt 4 + + Numerator + Numerator - - High-shelf - + + Denominator + Denominator - - LP - LP + + + Tempo + Tempo - - Input gain - Wzmocnienie wejścia + + Track + Ścieżka + + + lmms::MidiJack - - - - Gain - Wzmocnienie + + JACK server down + When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (title) + Serwer JACK wyłączony - - Output gain - Wzmocnienie wyścia + + The JACK server seems to be shuted down. + When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (dialog message) + Wygląda na to, że serwer JACK jest wyłączony. + + + lmms::MidiPort - - Bandwidth: - Pasmo: + + Input channel + Kanał wejściowy - - Octave - Oktawa + + Output channel + Kanał wyjściowy - - Resonance : - Rezonans: + + Input controller + Kontroler wejściowy - - Frequency: - Częstotliwość: + + Output controller + Kontroler wyjściowy - - LP group - + + Fixed input velocity + Stała głośność wejściowa - - HP group - + + Fixed output velocity + Stała głośność wyjściowa - - - EqHandle - - Reso: - Rezo: + + Fixed output note + Stała nuta wyjściowa - - BW: - Pasmo: + + Output MIDI program + Wyjściowy program MIDI - - - Freq: - Częst: + + Base velocity + Głośność bazowa - - - ExportProjectDialog - - Export project - Eksportuj projekt + + Receive MIDI-events + Odbieraj zdarzenia MIDI - - Export as loop (remove extra bar) - + + Send MIDI-events + Wysyłaj zdarzenia MIDI + + + lmms::Mixer - - Export between loop markers - Eksportuj pomiędzy znacznikami pętli + + Master + Master - - Render Looped Section: - + + + + Channel %1 + Kanał %1 - - time(s) - + + Volume + Głośność - - File format settings - Ustawienia formatu pliku + + Mute + Cisza - - File format: - Format pliku: + + Solo + Solo + + + lmms::MixerRoute - - Sampling rate: - Częstotliwość próbkowania: + + + Amount to send from channel %1 to channel %2 + Wartość do wysłania z kanału %1 do kanału %2 + + + lmms::MonstroInstrument - - 44100 Hz - 44100 Hz + + Osc 1 volume + Głośność osc 1 - - 48000 Hz - 48000 Hz + + Osc 1 panning + Panoramowanie osc 1 - - 88200 Hz - 88200 Hz + + Osc 1 coarse detune + - - 96000 Hz - 96000 Hz + + Osc 1 fine detune left + - - 192000 Hz - 192000 Hz + + Osc 1 fine detune right + - - Bit depth: - Rozdzielczość bitowa: + + Osc 1 stereo phase offset + Przesunięcie fazowe stereo osc 1 - - 16 Bit integer - 16-bitowa liczba całkowita + + Osc 1 pulse width + Współczynnik wypełnienia impulsu osc 1 - - 24 Bit integer - 24-bitowa liczba całkowita + + Osc 1 sync send on rise + - - 32 Bit float - 32 Bit float + + Osc 1 sync send on fall + - - Stereo mode: - Tryb stereo: + + Osc 2 volume + Głośność osc 2 - - Mono - Mono + + Osc 2 panning + Panoramowanie osc 2 - - Stereo - Stereo + + Osc 2 coarse detune + - - Joint stereo - Połączone stereo + + Osc 2 fine detune left + - - Compression level: - Poziom kompresji: + + Osc 2 fine detune right + - - Bitrate: - Przepływność: + + Osc 2 stereo phase offset + Przesunięcie fazowe stereo osc 2 - - 64 KBit/s - 64 KBit/s + + Osc 2 waveform + - - 128 KBit/s - 128 KBit/s + + Osc 2 sync hard + + + + + Osc 2 sync reverse + - - 160 KBit/s - 160 KBit/s + + Osc 3 volume + Głośność osc 3 - - 192 KBit/s - 192 KBit/s + + Osc 3 panning + Panoramowanie osc 3 - - 256 KBit/s - 256 KBit/s + + Osc 3 coarse detune + - - 320 KBit/s - 320 KBit/s + + Osc 3 Stereo phase offset + Przesunięcie fazowe stereo osc 3 - - Use variable bitrate - Użyj zmiennej przepływności + + Osc 3 sub-oscillator mix + - - Quality settings - Ustawienia jakości + + Osc 3 waveform 1 + - - Interpolation: - Interpolacja: + + Osc 3 waveform 2 + - - Zero order hold - Interpolator rzędu zerowego + + Osc 3 sync hard + - - Sinc worst (fastest) - Sinc najgorsza (najszybsza) + + Osc 3 Sync reverse + - - Sinc medium (recommended) - Sinc średnia (zalecana) + + LFO 1 waveform + - - Sinc best (slowest) - Sinc najlepsza (najwolniejsza) + + LFO 1 attack + Narastanie LFO 1 - - Oversampling: - Nadpróbkowanie: + + LFO 1 rate + - - 1x (None) - 1x (Brak) + + LFO 1 phase + Faza LFO 1 - - 2x - 2x + + LFO 2 waveform + - - 4x - 4x + + LFO 2 attack + Narastanie LFO 2 - - 8x - 8x + + LFO 2 rate + - - Start - Rozpocznij + + LFO 2 phase + Faza LFO 2 - - Cancel - Anuluj + + Env 1 pre-delay + - - Could not open file - Nie można otworzyć pliku + + Env 1 attack + Narastanie obw. 1 - - Could not open file %1 for writing. -Please make sure you have write permission to the file and the directory containing the file and try again! - Nie udało się otworzyć pliku %1 do zapisu. -Upewnij się, że masz uprawnienia do zapisu do pliku i katalogu zawierającego plik i spróbuj ponownie! + + Env 1 hold + - - Export project to %1 - Eksportuj projekt do %11 + + Env 1 decay + - - ( Fastest - biggest ) - ( Najszybsze - największe ) + + Env 1 sustain + - - ( Slowest - smallest ) - ( Najwolniejsze - najmniejsze ) + + Env 1 release + Opadanie obw. 1 - - Error - Błąd + + Env 1 slope + - - Error while determining file-encoder device. Please try to choose a different output format. - Wystąpił błąd podczas określania urządzenia do kodowania plików. Spróbuj wybrać inny format wyjściowy. + + Env 2 pre-delay + - - Rendering: %1% - Renderowanie: %1% + + Env 2 attack + Narastanie obw. 2 - - - Fader - - Set value - Ustaw wartość + + Env 2 hold + - - Please enter a new value between %1 and %2: - Wprowadź nową wartość pomiędzy %1 a %2: + + Env 2 decay + - - - FileBrowser - - User content + + Env 2 sustain - - Factory content + + Env 2 release + Opadanie obw. 2 + + + + Env 2 slope - - Browser - Przeglądarka + + Osc 2+3 modulation + Modulacja osc 2+3 - - Search - Szukaj + + Selected view + Wybrany widok - - Refresh list - Odśwież listę + + Osc 1 - Vol env 1 + Osc 1 - Gł. obw. 1 - - - FileBrowserTreeWidget - - Send to active instrument-track - Wyślij do aktywnej ścieżki instrumentu + + Osc 1 - Vol env 2 + Osc 1 - Gł. obw. 2 - - Open containing folder - + + Osc 1 - Vol LFO 1 + Osc 1 - Gł. LFO 1 - - Song Editor - Pokaż/ukryj Edytor Kompozycji + + Osc 1 - Vol LFO 2 + Osc 1 - Gł. LFO 2 - - BB Editor - Edytor BB + + Osc 2 - Vol env 1 + Osc 2 - Gł. obw. 1 - - Send to new AudioFileProcessor instance - + + Osc 2 - Vol env 2 + Osc 2 - Gł. obw. 2 - - Send to new instrument track - + + Osc 2 - Vol LFO 1 + Osc 2 - Gł. LFO 1 - - (%2Enter) - (%2Enter) + + Osc 2 - Vol LFO 2 + Osc 2 - Gł. LFO 2 - - Send to new sample track (Shift + Enter) - + + Osc 3 - Vol env 1 + Osc 3 - Gł. obw. 1 - - Loading sample - Ładowanie sampla + + Osc 3 - Vol env 2 + Osc 3 - Gł. obw. 2 - - Please wait, loading sample for preview... - Proszę czekać, ładowanie próbki do podglądu. + + Osc 3 - Vol LFO 1 + Osc 3 - Gł. LFO 1 - - Error - BłądBłą + + Osc 3 - Vol LFO 2 + Osc 3 - Gł. LFO 2 - - %1 does not appear to be a valid %2 file + + Osc 1 - Phs env 1 - - --- Factory files --- - --- Pliki fabryczne --- + + Osc 1 - Phs env 2 + - - - FlangerControls - - Delay samples + + Osc 1 - Phs LFO 1 - - LFO frequency - Częstotliwość LFO + + Osc 1 - Phs LFO 2 + - - Seconds - Sekundy + + Osc 2 - Phs env 1 + - - Stereo phase + + Osc 2 - Phs env 2 - - Regen + + Osc 2 - Phs LFO 1 - - Noise - Szum + + Osc 2 - Phs LFO 2 + - - Invert - Odwróć + + Osc 3 - Phs env 1 + - - - FlangerControlsDialog - - DELAY - OPÓŹN + + Osc 3 - Phs env 2 + - - Delay time: - Czas opóźnienia: + + Osc 3 - Phs LFO 1 + - - RATE - TEMPO + + Osc 3 - Phs LFO 2 + - - Period: - Odstętp: + + Osc 1 - Pit env 1 + - - AMNT - ILOŚĆ + + Osc 1 - Pit env 2 + - - Amount: - Ilość: + + Osc 1 - Pit LFO 1 + - - PHASE - FAZA + + Osc 1 - Pit LFO 2 + - - Phase: - Faza: + + Osc 2 - Pit env 1 + - - FDBK - REAK + + Osc 2 - Pit env 2 + - - Feedback amount: + + Osc 2 - Pit LFO 1 - - NOISE - SZUM + + Osc 2 - Pit LFO 2 + - - White noise amount: - Ilość białego szumu: + + Osc 3 - Pit env 1 + - - Invert - OdwróćOd + + Osc 3 - Pit env 2 + - - - FreeBoyInstrument - - Sweep time - Okres wobulacji + + Osc 3 - Pit LFO 1 + - - Sweep direction - Kierunek wobulacji + + Osc 3 - Pit LFO 2 + - - Sweep rate shift amount + + Osc 1 - PW env 1 - - - Wave pattern duty cycle + + Osc 1 - PW env 2 - - Channel 1 volume - Głośność kanału 1 + + Osc 1 - PW LFO 1 + - - - - Volume sweep direction - Kierunek wobulacji głośności + + Osc 1 - PW LFO 2 + - - - - Length of each step in sweep - Długość każdego kroku wobulacji + + Osc 3 - Sub env 1 + - - Channel 2 volume - Głośność kanału 2 + + Osc 3 - Sub env 2 + - - Channel 3 volume - Głośność kanału 3 + + Osc 3 - Sub LFO 1 + - - Channel 4 volume - Głośność kanału 4 + + Osc 3 - Sub LFO 2 + - - Shift Register width - Szerokość rejestru przesuwnego + + + Sine wave + Fala sinusoidalna - - Right output level - Poziom prawego wyjścia + + Bandlimited Triangle wave + Fala trójkątna pasmowo limitowana - - Left output level - Poziom lewego wyjścia + + Bandlimited Saw wave + Fala piłokształtna pasmowo limitowana - - Channel 1 to SO2 (Left) - Kanał 1 do SO2 (lewy) + + Bandlimited Ramp wave + Fala rampowa pasmowo limitowana - - Channel 2 to SO2 (Left) - Kanał 2 do SO2 (lewy) + + Bandlimited Square wave + Fala kwadratowa pasmowo limitowana - - Channel 3 to SO2 (Left) - Kanał 3 do SO2 (lewy) + + Bandlimited Moog saw wave + Fala piłokształtna Mooga pasmowo limitowana - - Channel 4 to SO2 (Left) - Kanał 4 do SO2 (lewy) + + + Soft square wave + Fala kwadratowa łagodna - - Channel 1 to SO1 (Right) - Kanał 1 do SO1 (prawy) + + Absolute sine wave + Fala sinusoidalna o wartości bezwzględnej - - Channel 2 to SO1 (Right) - Kanał 2 do SO1 (prawy) + + + Exponential wave + Fala wykładnicza - - Channel 3 to SO1 (Right) - Kanał 3 do SO1 (prawy) + + White noise + Szum biały - - Channel 4 to SO1 (Right) - Kanał 4 do SO1 (prawy) + + Digital Triangle wave + Cyfrowa fala trójkątna - - Treble - Soprany + + Digital Saw wave + Cyfrowa fala piłokształtna - - Bass - Basy + + Digital Ramp wave + Cyfrowa fala rampowa - - - FreeBoyInstrumentView - - Sweep time: - Okres wobulacji: + + Digital Square wave + Cyfrowa fala kwadratowa - - Sweep time - Okres wobulacji + + Digital Moog saw wave + Cyfrowa fala piłokształtna Mooga - - Sweep rate shift amount: - + + Triangle wave + Fala trójkątna - - Sweep rate shift amount - + + Saw wave + Fala piłokształtna - - - Wave pattern duty cycle: - + + Ramp wave + Fala rampowa - - - Wave pattern duty cycle - + + Square wave + Fala prostokątna - - Square channel 1 volume: - + + Moog saw wave + Fala piłokształtna Mooga - - Square channel 1 volume - + + Abs. sine wave + Fala sin. o wart. bezwzgl. - - - - Length of each step in sweep: - Długość każdego kroku wobulacji: + + Random + Losowe - - - - Length of each step in sweep - Długość każdego kroku wobulacji + + Random smooth + Losowe gładkie + + + lmms::NesInstrument - - Square channel 2 volume: - + + Channel 1 enable + Włącz kanał 1 - - Square channel 2 volume + + Channel 1 coarse detune - - Wave pattern channel volume: - + + Channel 1 volume + Głośność kanału 1 - - Wave pattern channel volume + + Channel 1 envelope enable - - Noise channel volume: + + Channel 1 envelope loop - - Noise channel volume + + Channel 1 envelope length - - SO1 volume (Right): - Głośność SO1 (Prawy): - - - - SO1 volume (Right) - Głośność SO1 (Prawy) - - - - SO2 volume (Left): - Głośność SO2 (Lewy): + + Channel 1 duty cycle + - - SO2 volume (Left) - Głośność SO2 (Lewy): + + Channel 1 sweep enable + - - Treble: - Soprany: + + Channel 1 sweep amount + - - Treble - Soprany + + Channel 1 sweep rate + - - Bass: - Basy: + + Channel 2 enable + Włącz kanał 2 - - Bass - Basy + + Channel 2 coarse detune + - - Sweep direction - Kierunek wobulacji + + Channel 2 volume + Głośność kanału 2 - - - - - - Volume sweep direction - Kierunek wobulacji głośności + + Channel 2 envelope enable + - - Shift register width + + Channel 2 envelope loop - - Channel 1 to SO1 (Right) - Kanał 1 do SO1 (prawy) + + Channel 2 envelope length + - - Channel 2 to SO1 (Right) - Kanał 2 do SO1 (prawy) + + Channel 2 duty cycle + - - Channel 3 to SO1 (Right) - Kanał 3 do SO1 (prawy) + + Channel 2 sweep enable + - - Channel 4 to SO1 (Right) - Kanał 4 do SO1 (prawy) + + Channel 2 sweep amount + - - Channel 1 to SO2 (Left) - Kanał 1 do SO2 (lewy) + + Channel 2 sweep rate + - - Channel 2 to SO2 (Left) - Kanał 2 do SO2 (lewy) + + Channel 3 enable + Włącz kanał 3 - - Channel 3 to SO2 (Left) - Kanał 3 do SO2 (lewy) + + Channel 3 coarse detune + - - Channel 4 to SO2 (Left) - Kanał 4 do SO2 (lewy) + + Channel 3 volume + Głośność kanału 3 - - Wave pattern graph - + + Channel 4 enable + Włącz kanał 4 - - - MixerLine - - Channel send amount - Ilość wysyłania kanału + + Channel 4 volume + Głośność kanału 4 - - Move &left - Przesuń w &lewo + + Channel 4 envelope enable + - - Move &right - Przesuń w p&rawo + + Channel 4 envelope loop + - - Rename &channel - Zmień nazwę &kanału + + Channel 4 envelope length + - - R&emove channel - Usuń k&anał + + Channel 4 noise mode + - - Remove &unused channels - &Usuń nieużywane kanały + + Channel 4 frequency mode + - - Set channel color - Ustaw kolor kanału + + Channel 4 noise frequency + - - Remove channel color - Usuń kolor kanału + + Channel 4 noise frequency sweep + - - Pick random channel color - Ustaw losowy kolor kanału + + Channel 4 quantize + - - - MixerLineLcdSpinBox - - Assign to: - Przypisz do: + + Master volume + Głośność główna - - New mixer Channel - Nowy kanał efektów + + Vibrato + Vibrato - Mixer + lmms::OpulenzInstrument - - Master - Master + + Patch + Próbka - - - - Channel %1 - FX %1 + + Op 1 attack + Narastanie op 1 - - Volume - Głośność + + Op 1 decay + - - Mute - Wycisz + + Op 1 sustain + - - Solo - Solo + + Op 1 release + Opadanie op 1 - - - MixerView - - Mixer - Mixer + + Op 1 level + Poziom op 1 - - Fader %1 - Fader FX %1 + + Op 1 level scaling + Skalowanie poziomu op 1 - - Mute - Wycisz + + Op 1 frequency multiplier + - - Mute this mixer channel - Wycisz ten kanał FX + + Op 1 feedback + - - Solo - Solo + + Op 1 key scaling rate + - - Solo mixer channel - Kanał FX solo + + Op 1 percussive envelope + - - - MixerRoute - - - Amount to send from channel %1 to channel %2 - Ilość do wysyłania z kanału %1 do kanału %2 + + Op 1 tremolo + Tremolo op 1 - - - GigInstrument - - Bank - Bank + + Op 1 vibrato + Vibrato op 1 - - Patch - Próbka + + Op 1 waveform + - - Gain - Wzmocnienie + + Op 2 attack + Narastanie op 2 - - - GigInstrumentView - - - Open GIG file - Otwórz plik GIG + + Op 2 decay + - - Choose patch - Wybierz próbkę + + Op 2 sustain + - - Gain: - Wzmocnienie: + + Op 2 release + Opadanie op 2 - - GIG Files (*.gig) - Pliki GIG (*.gig) + + Op 2 level + Poziom op 2 - - - GuiApplication - - Working directory - Katalog roboczy + + Op 2 level scaling + Skalowanie poziomu op 2 - - The LMMS working directory %1 does not exist. Create it now? You can change the directory later via Edit -> Settings. - Katalog roboczy LMMS %1 nie istnieje. Czy chcesz go utworzyć? Możesz zmienić katalog później w ustawieniach. + + Op 2 frequency multiplier + - - Preparing UI - Przygotowywanie interfejsu + + Op 2 key scaling rate + - - Preparing song editor - Przygotowywanie edytora utworu + + Op 2 percussive envelope + - - Preparing mixer - Przygotowywanie miksera + + Op 2 tremolo + Tremolo op 2 - - Preparing controller rack - Przygotowanie rack'a kontrolerów + + Op 2 vibrato + Vibrato op 2 - - Preparing project notes - Przygotowanie notatki projektu + + Op 2 waveform + - - Preparing beat/bassline editor - Przygotowanie edytora perkusji/basu + + FM + FM - - Preparing piano roll - Przygotowanie edytora pianolowego + + Vibrato depth + Głębia vibrato - - Preparing automation editor - Przygotowanie edytora automatyki + + Tremolo depth + Głębia tremolo - InstrumentFunctionArpeggio + lmms::OrganicInstrument - - Arpeggio - Arpeggio + + Distortion + Zniekształcenie - - Arpeggio type - Rodzaj arpeggio + + Volume + Głośność + + + lmms::OscillatorObject - - Arpeggio range - Zakres arpeggio + + Osc %1 waveform + - - Note repeats + + Osc %1 harmonic - - Cycle steps - Kroki cyklu + + + Osc %1 volume + - - Skip rate - Częstotliwość pominięcia + + + Osc %1 panning + - - Miss rate - Częstotliwość opuszczania + + Osc %1 stereo detuning + - - Arpeggio time - Okres arpeggio + + Osc %1 coarse detuning + - - Arpeggio gate - Bramkowanie arpeggio + + Osc %1 fine detuning left + - - Arpeggio direction - Kierunek arpeggio + + Osc %1 fine detuning right + - - Arpeggio mode - Tryb arpeggio + + Osc %1 phase-offset + Przesunięcie fazowe osc %1 - - Up - W górę + + Osc %1 stereo phase-detuning + - - Down - W dół + + Osc %1 wave shape + - - Up and down - W górę i w dół + + Modulation type %1 + Typ modulacji %1 + + + lmms::PatternTrack - - Down and up - W dół i w górę + + Pattern %1 + Szablon %1 - - Random - Losowo + + Clone of %1 + Klon %1 + + + lmms::PeakController - - Free - Dowolnie + + Peak Controller + Kontroler szczytu - - Sort - Posortowany + + Peak Controller Bug + Błąd kontrolera szczytu - - Sync - Synchronizacja + + Due to a bug in older version of LMMS, the peak controllers may not be connect properly. Please ensure that peak controllers are connected properly and re-save this file. Sorry for any inconvenience caused. + Z powodu błędu w starszej wersji LMMS kontrolery szczytu mogą nie być prawidłowo podłączone. Upewnij się, że kontrolery szczytu są prawidłowo podłączone i ponownie zapisz ten plik. - InstrumentFunctionArpeggioView + lmms::PeakControllerEffectControls - - ARPEGGIO - ARPEGGIO + + Base value + Wartość bazowa - - RANGE - ZAKRES + + Modulation amount + Wartość modulacji + + + + Attack + Narastanie - - Arpeggio range: - Zakres arpeggio: + + Release + Opadanie - - octave(s) - oktawa(y) + + Treshold + Próg - - REP - + + Mute output + Wycisz wyjście - - Note repeats: - + + Absolute value + Wartość bezwzględna - - time(s) - raz(y) + + Amount multiplicator + Mnożnik wartości + + + lmms::Plugin - - CYCLE - CYKL + + Plugin not found + Nie znaleziono wtyczki - - Cycle notes: - Nuty cyklu: + + The plugin "%1" wasn't found or could not be loaded! +Reason: "%2" + Wtyczka „%1” nie została znaleziona lub nie może zostać załadowana! +Powód: „%2” - - note(s) - nuta(y) + + Error while loading plugin + Wystąpił błąd podczas ładowania wtyczki - - SKIP - POMIŃ + + Failed to load plugin "%1"! + Nie można załadować wtyczki „%1”! + + + lmms::ReverbSCControls - - Skip rate: - Częstotliwość pominięcia: + + Input gain + Wzmocnienie wejścia - - - - % - % + + Size + Rozmiar - - MISS - OPUŚĆ + + Color + Kolor - - Miss rate: - Częstotliwość opuszczania: + + Output gain + Wzmocnienie wyjścia + + + lmms::SaControls - - TIME - OKRES + + Pause + Wstrzymaj - - Arpeggio time: - Okres arpeggio: + + Reference freeze + Zamrożenie odniesienia - - ms - ms + + Waterfall + Wodospad - - GATE - BRAM. + + Averaging + Uśrednianie - - Arpeggio gate: - Bramkowanie arpeggio: + + Stereo + Stereo - - Chord: - Akord: + + Peak hold + - - Direction: - Kierunek: + + Logarithmic frequency + Częstotliwość logarytmiczna - - Mode: - Tryb: + + Logarithmic amplitude + Amplituda logarytmiczna - - - InstrumentFunctionNoteStacking - - octave - oktawa + + Frequency range + Zakres częstotliwości - - - Major - Major + + Amplitude range + Zakres amplitudy - - Majb5 - Majb5 + + FFT block size + Rozmiar bloku FFT - - minor - minor + + FFT window type + Typ okna FFT - - minb5 - minb5 + + Peak envelope resolution + - - sus2 - sus2 + + Spectrum display resolution + Rozdzielczość wyświetlania widma - - sus4 - sus4 + + Peak decay multiplier + - - aug - aug + + Averaging weight + - - augsus4 - augsus4 + + Waterfall history size + - - tri - tri + + Waterfall gamma correction + Korekcja gamma wodospadu - - 6 - 6 + + FFT window overlap + - - 6sus4 - 6sus4 + + FFT zero padding + - - 6add9 - 6add9 + + + Full (auto) + Pełne (automatyczne) - - m6 - m6 + + + + Audible + Słyszalne - - m6add9 - m6add9 + + Bass + Basy - - 7 - 7 + + Mids + Średnie - - 7sus4 - 7sus4 + + High + Wysokie - - 7#5 - 7#5 + + Extended + Rozszerzone - - 7b5 - 7b5 + + Loud + Głośne - - 7#9 - 7#9 + + Silent + Ciche - - 7b9 - 7b9 + + (High time res.) + - - 7#5#9 - 7#5#9 + + (High freq. res.) + - - 7#5b9 - 7#5b9 + + Rectangular (Off) + Prostokątne (wyłączone) - - 7b5b9 - 7b5b9 + + + Blackman-Harris (Default) + Blackman-Harris (domyślne) - - 7add11 - 7add11 + + Hamming + Hamming - - 7add13 - 7add13 + + Hanning + Hanning + + + lmms::SampleClip - - 7#11 - 7#11 + + Sample not found + Nie znaleziono próbki + + + lmms::SampleTrack - - Maj7 - Maj7 + + Volume + Głośność - - Maj7b5 - Maj7b5 + + Panning + Panoramowanie - - Maj7#5 - Maj7#5 + + Mixer channel + Kanał miksera - - Maj7#11 - Maj7#11 + + + Sample track + Ścieżka próbek + + + lmms::Scale - - Maj7add13 - Maj7add13 + + empty + pusty + + + lmms::Sf2Instrument - - m7 - m7 + + Bank + Bank - - m7b5 - m7b5 + + Patch + Próbka - - m7b9 - m7b9 + + Gain + Wzmocnienie - - m7add11 - m7add11 + + Reverb + Pogłos - - m7add13 - m7add13 + + Reverb room size + - - m-Maj7 - m-Maj7 + + Reverb damping + Tłumienie pokoju - - m-Maj7add11 - m-Maj7add11 + + Reverb width + Szerokość pogłosu - - m-Maj7add13 - m-Maj7add13 + + Reverb level + Poziom pogłosu - - 9 - 9 + + Chorus + Chorus - - 9sus4 - 9sus4 + + Chorus voices + Głosy chorusu - - add9 - add9 + + Chorus level + Poziom chorusu - - 9#5 - 9#5 + + Chorus speed + Prędkość chorusu - - 9b5 - 9b5 + + Chorus depth + Głębia chorusu - - 9#11 - 9#11 + + A soundfont %1 could not be loaded. + SoundFont %1 nie może zostać załadowany. + + + lmms::SfxrInstrument - - 9b13 - 9b13 + + Wave + Fala + + + lmms::SidInstrument - - Maj9 - Maj9 + + Cutoff frequency + Częstotliwość graniczna - - Maj9sus4 - Maj9sus4 + + Resonance + Rezonans - - Maj9#5 - Maj9#5 + + Filter type + Typ filtra - - Maj9#11 - Maj9#11 + + Voice 3 off + Wyłącz głos 3 - - m9 - m9 + + Volume + Głośność - - madd9 - madd9 + + Chip model + Model układu scalonego + + + lmms::SlicerT - - m9b5 - m9b5 + + Note threshold + Próg nuty - - m9-Maj7 - m9-Maj7 + + FadeOut + Ściszenie - - 11 - 11 + + Original bpm + Oryginalne BPM - - 11b9 - 11b9 + + Slice snap + - - Maj11 - Maj11 + + BPM sync + Synchronizacja BPM - - m11 - m11 + + + slice_%1 + - - m-Maj11 - m-Maj11 + + Sample not found: %1 + Nie znaleziono próbki: %1 + + + lmms::Song - - 13 - 13 + + Tempo + Tempo - - 13#9 - 13#9 + + Master volume + Głośność główna - - 13b9 - 13b9 + + Master pitch + Odstrojenie główne - - 13b5b9 - 13b5b9 + + Aborting project load + Przerwanie ładowania projektu - - Maj13 - Maj13 + + Project file contains local paths to plugins, which could be used to run malicious code. + Plik projektu zawiera lokalne ścieżki do wtyczek, które mogą zostać wykorzystane do uruchomienia złośliwego kodu. - - m13 - m13 + + Can't load project: Project file contains local paths to plugins. + Nie można załadować projektu. Plik projektu zawiera ścieżki lokalne do wtyczek. - - m-Maj13 - m-Maj13 + + LMMS Error report + Zgłoszenie błędu LMMS - - Harmonic minor - Minorowy harmoniczny + + (repeated %1 times) + (powtórzone %1 razy) - - Melodic minor - Minorowy melodyjny + + The following errors occurred while loading: + Podczas ładowania wystąpiły następujące błędy: + + + lmms::StereoEnhancerControls - - Whole tone - Cały ton + + Width + Szerokość + + + lmms::StereoMatrixControls - - Diminished - Zmniejszony + + Left to Left + - - Major pentatonic - Majorowy pentatoniczny + + Left to Right + - - Minor pentatonic - Minorowy pentatoniczny + + Right to Left + - - Jap in sen - Jap in sen + + Right to Right + + + + lmms::Track - - Major bebop - Majorowy bebop + + Mute + Cisza - - Dominant bebop - Dominujący bebop + + Solo + Solo + + + lmms::TrackContainer - - Blues - Blues + + Couldn't import file + Nie można zaimportować pliku - - Arabic - Arabski + + Couldn't find a filter for importing file %1. +You should convert this file into a format supported by LMMS using another software. + Nie można znaleźć filtra do zaimportowania pliku %1. +Musisz przekonwertować ten plik do formatu obsługiwanego przez LMMS za pomocą zewnętrznego oprogramowania. - - Enigmatic - Enigmatyczny + + Couldn't open file + Nie można otworzyć pliku - - Neopolitan - Neopolitański + + Couldn't open file %1 for reading. +Please make sure you have read-permission to the file and the directory containing the file and try again! + Nie można otworzyć pliku %1 do odczytu. +Upewnij się, że masz uprawnienia do odczytu do pliku i katalogu zawierającego plik i spróbuj ponownie! - - Neopolitan minor - Minorowy neapolitański + + Loading project... + Ładowanie projektu... - - Hungarian minor - Minorowy węgierski + + + Cancel + Anuluj - - Dorian - Dorycki + + + Please wait... + Czekaj... - - Phrygian - Frygijski + + Loading cancelled + Ładowanie anulowane - - Lydian - Lidyjski + + Project loading was cancelled. + Ładowanie projektu zostało anulowane. - - Mixolydian - Miksolidyjski + + Loading Track %1 (%2/Total %3) + Ładowanie ścieżki %1 (%2/Łącznie %3) - - Aeolian - Eolski + + Importing MIDI-file... + Importowanie pliku MIDI... + + + lmms::TripleOscillator - - Locrian - Lokrycki + + Sample not found + Nie znaleziono próbki + + + lmms::VecControls - - Minor - Minor + + Display persistence amount + Wyświetlaj wartość trwałości - - Chromatic - Chromatyczny + + Logarithmic scale + Skala logarytmiczna + + + + High quality + Wysoka jakość + + + lmms::VestigeInstrument - - Half-Whole Diminished - Półton-Cały ton Zmniejszony + + Loading plugin + Ładowanie wtyczki - - 5 - 5 + + Please wait while loading the VST plugin... + Czekaj. Trwa ładowanie wtyczki VST... + + + lmms::Vibed - - Phrygian dominant - Frygijski dominujący + + String %1 volume + Głośność struny %1 - - Persian - Perski + + String %1 stiffness + Sztywność struny %1 - - Chords - Akordy + + Pick %1 position + Wybierz pozycję %1 - - Chord type - Typ akordu + + Pickup %1 position + - - Chord range - Zakres akordu + + String %1 panning + Panoramowanie struny %1 - - - InstrumentFunctionNoteStackingView - - STACKING - UKŁADANIE + + String %1 detune + Odstrojenie struny %1 - - Chord: - Akord: + + String %1 fuzziness + Rozmycie struny %1 - - RANGE - ZAKRES + + String %1 length + Długość struny %1 - - Chord range: - Zakres akordu: + + Impulse %1 + Impuls %1 - - octave(s) - oktawa(y) + + String %1 + Struna %1 - InstrumentMidiIOView + lmms::VoiceObject - - ENABLE MIDI INPUT - WŁĄCZ WEJŚCIE MIDI + + Voice %1 pulse width + Współczynnik wypełnienia impulsu głosu %1 - - ENABLE MIDI OUTPUT - WŁĄCZ WYJŚCIE MIDI + + Voice %1 attack + Narastanie głosu %1 - - - CHAN - This string must be be short, its width must be less than * width of LCD spin-box of two digits - CHAN + + Voice %1 decay + - - - VELOC - This string must be be short, its width must be less than * width of LCD spin-box of three digits - VELOC + + Voice %1 sustain + - - PROG - This string must be be short, its width must be less than the * width of LCD spin-box of three digits - PROG + + Voice %1 release + Opadanie głosu %1 - - NOTE - This string must be be short, its width must be less than * width of LCD spin-box of three digits - NUTA + + Voice %1 coarse detuning + - - MIDI devices to receive MIDI events from - Urządzenia MIDI odbierające zdarzenia z + + Voice %1 wave shape + Kształt fali głosu %1 - - MIDI devices to send MIDI events to - Urządzenia MIDI wysyłające zdarzenia do + + Voice %1 sync + Synchronizacja głosu %1 - - CUSTOM BASE VELOCITY - NIESTANDARDOWA GŁOŚNOŚĆ PODSTAWY + + Voice %1 ring modulate + Modulacja pierścieniowa głosu %1 - - Specify the velocity normalization base for MIDI-based instruments at 100% note velocity. - Określ podstawę normalizacyjną głośności dla instrumentów opartych na MIDI z prędkością zapisu 100%. + + Voice %1 filtered + Filtrowanie głosu %1 - - BASE VELOCITY - GŁOŚNOŚĆ PODSTAWY + + Voice %1 test + Test głosu %1 - InstrumentTuningView + lmms::VstPlugin - - MASTER PITCH - ODSTROJENIE GŁÓWNE + + + The VST plugin %1 could not be loaded. + Wtyczka VST %1 nie może zostać załadowana. - - Enables the use of master pitch - + + Open Preset + Otwórz preset - - - InstrumentSoundShaping - - VOLUME - GŁOŚNOŚĆ + + + VST Plugin Preset (*.fxp *.fxb) + Preset wtyczki VST (*.fxp *.fxb) - - Volume - Głośność + + : default + : domyślne - - CUTOFF - CUTOFF + + Save Preset + Zapisz preset - - - Cutoff frequency - Częstotliwość graniczna + + .fxp + .fxp - - RESO - RESO + + .FXP + .FXP - - Resonance - Zafalowanie charakterystyki + + .FXB + .FXB - - Envelopes/LFOs - Obwiednie/Oscylatory LFO + + .fxb + .fxb - - Filter type - Rodzaj filtru + + Loading plugin + Ładowanie wtyczki - - Q/Resonance - Dobroć/Zafalowanie charakterystyki + + Please wait while loading VST plugin... + Czekaj. Trwa ładowanie wtyczki VST... + + + lmms::WatsynInstrument - - Low-pass - + + Volume A1 + Głośność A1 - - Hi-pass - + + Volume A2 + Głośność A2 - - Band-pass csg - + + Volume B1 + Głośność B1 - - Band-pass czpg - + + Volume B2 + Głośność B2 - - Notch - Pasmowozaporowy + + Panning A1 + Panoramowanie A1 - - All-pass - + + Panning A2 + Panoramowanie A2 - - Moog - Moog + + Panning B1 + Panoramowanie B1 - - 2x Low-pass - + + Panning B2 + Panoramowanie B2 - - RC Low-pass 12 dB/oct + + Freq. multiplier A1 - - RC Band-pass 12 dB/oct + + Freq. multiplier A2 - - RC High-pass 12 dB/oct + + Freq. multiplier B1 - - RC Low-pass 24 dB/oct + + Freq. multiplier B2 - - RC Band-pass 24 dB/oct + + Left detune A1 - - RC High-pass 24 dB/oct + + Left detune A2 - - Vocal Formant + + Left detune B1 - - 2x Moog - 2x Moog - - - - SV Low-pass + + Left detune B2 - - SV Band-pass + + Right detune A1 - - SV High-pass + + Right detune A2 - - SV Notch - SV Zaporowy - - - - Fast Formant - Szybki Formant + + Right detune B1 + - - Tripole + + Right detune B2 - - - InstrumentSoundShapingView - - TARGET - TARGET + + A-B Mix + Miksuj A-B - - FILTER - FILTR + + A-B Mix envelope amount + Miksuj wartość obwiedni A-B - - FREQ - FREQ + + A-B Mix envelope attack + Miksuj narastanie obwiedni A-B - - Cutoff frequency: - Częstotliwość graniczna: + + A-B Mix envelope hold + - - Hz - Hz + + A-B Mix envelope decay + - - Q/RESO - + + A1-B2 Crosstalk + Przesłuch A1-B2 + + + + A2-A1 modulation + Modulacja A2-A1 - - Q/Resonance: - + + B2-B1 modulation + Modulacja B2-B1 - - Envelopes, LFOs and filters are not supported by the current instrument. - Obwiednie, LFO oraz filtry nie są wspierane przez ten instrument. + + Selected graph + Wybrany wykres - InstrumentTrack + lmms::WaveShaperControls - - - unnamed_track - nienazwana ścieżka + + Input gain + Wzmocnienie wejścia - - Base note - Nuta bazowa + + Output gain + Wzmocnienie wyjścia + + + lmms::Xpressive - - First note - Pierwsza nuta + + Selected graph + Wybrany wykres - - Last note - Ostatnia nuta + + A1 + A1 - - Volume - Głośność + + A2 + A2 - - Panning - Panoramowanie + + A3 + A3 - - Pitch - Odstrojenie + + W1 smoothing + Wygładzanie W1 - - Pitch range - Zakres odstrojenia + + W2 smoothing + Wygładzanie W2 - - Mixer channel - Kanał FX + + W3 smoothing + Wygładzanie W3 - - Master pitch - Odstrojenie główne + + Panning 1 + Panoramowanie 1 - - Enable/Disable MIDI CC - + + Panning 2 + Panoramowanie 2 - - CC Controller %1 + + Rel trans - - - - Default preset - Ustawienia domyślne - - InstrumentTrackView - - - Volume - Głośność - + lmms::ZynAddSubFxInstrument - - Volume: - Głośność: - - - - VOL - VOL - - - - Panning - Panoramowanie + + Portamento + Portamento - - Panning: - Panoramowanie: + + Filter frequency + Częstotliwość filtra - - PAN - PAN + + Filter resonance + Rezonans filtra - - MIDI - MIDI + + Bandwidth + Szerokość pasma - - Input - Wejście + + FM gain + Wzmocnienie FM - - Output - Wyjście + + Resonance center frequency + Częstotliwość środkowa rezonansu - - Open/Close MIDI CC Rack - + + Resonance bandwidth + Szerokość pasma rezonansu - - Channel %1: %2 - FX %1: %2 + + Forward MIDI control change events + Przekaż zdarzenia zmiany sterowania MIDI - InstrumentTrackWindow + lmms::graphModel - - GENERAL SETTINGS - GŁÓWNE USTAWIENIA + + Graph + Wykres + + + lmms::gui::AmplifierControlDialog - - Volume - Głośność + + VOL + - + Volume: Głośność: - - VOL - VOL - - - - Panning - Panoramowanie + + PAN + PAN - + Panning: Panoramowanie: - - PAN - PAN + + LEFT + LEWO - - Pitch - Odstrojenie + + Left gain: + Lewe wzmocnienie: - - Pitch: - Odstrojenie: + + RIGHT + PRAWO - - cents - cent(y) + + Right gain: + Prawe wzmocnienie: + + + lmms::gui::AudioAlsaSetupWidget - - PITCH - PITCH + + Device + Urządzenie - - Pitch range (semitones) - Zakres odstrojenia (półtony) + + Channels + Kanały + + + lmms::gui::AudioFileProcessorView - - RANGE - ZAKRES + + Open sample + Otwórz próbkę - - Mixer channel - Kanał FX + + Reverse sample + Odwróć próbkę - - CHANNEL - FX + + Disable loop + Wyłącz pętlę - - Save current instrument track settings in a preset file - Zapisz bieżące ustawienia ścieżki jako preset + + Enable loop + Włącz pętlę - - SAVE - ZAPISZ + + Enable ping-pong loop + Włącz pętlę typu ping-pong - - Envelope, filter & LFO - + + Continue sample playback across notes + Kontunuuj odtwarzanie próbki w następnych nutach - - Chord stacking & arpeggio - + + Amplify: + Wzmocnij: - - Effects - Efekty + + Start point: + Punkt początkowy: - - MIDI - MIDI + + End point: + Punkt końcowy: - - Miscellaneous - Różne + + Loopback point: + Znacznik zapętlenia: + + + lmms::gui::AudioFileProcessorWaveView - - Save preset - Zachowaj ustawienia + + Sample length: + Długość próbki: + + + lmms::gui::AutomationClipView - - XML preset file (*.xpf) - Plik XML presetu (*.xpf) + + Open in Automation editor + Otwórz w edytorze automatyki - - Plugin - Wtyczka + + Clear + Wyczyść - - - JackApplicationW - - NSM applications cannot use abstract or absolute paths - + + Reset name + Resetuj nazwę - - NSM applications cannot use CLI arguments - + + Change name + Zmień nazwę - - You need to save the current Carla project before NSM can be used - + + Set/clear record + Ustaw/wyczyść nagranie - - - JuceAboutW - - About JUCE - O JUCE + + Flip Vertically (Visible) + Odwróć pionowo (widoczne) - - <b>About JUCE</b> - <b>O JUCE</b> + + Flip Horizontally (Visible) + Odwróć poziomo (widoczne) - - This program uses JUCE version 3.x.x. - Ten program używa JUCE w wersji 3.x.x. + + %1 Connections + %1 połączenia - - JUCE (Jules' Utility Class Extensions) is an all-encompassing C++ class library for developing cross-platform software. - -It contains pretty much everything you're likely to need to create most applications, and is particularly well-suited for building highly-customised GUIs, and for handling graphics and sound. - -JUCE is licensed under the GNU Public Licence version 2.0. -One module (juce_core) is permissively licensed under the ISC. - -Copyright (C) 2017 ROLI Ltd. - + + Disconnect "%1" + Rozłącz „%1” - - This program uses JUCE version %1. - + + Model is already connected to this clip. + Model jest już podłączony do tego klipu. - Knob - - - Set linear - Ustaw linearnie - + lmms::gui::AutomationEditor - - Set logarithmic - Ustaw logarytmicznie + + Edit Value + Edytuj wartość - - - Set value - Ustaw wartość + + New outValue + Nowa wartość wyjściowa - - Please enter a new value between -96.0 dBFS and 6.0 dBFS: - Wprowadź nową wartość pomiędzy -96.0 dBFS a 6.0 dBFS: + + New inValue + Nowa wartość wejściowa - - Please enter a new value between %1 and %2: - Wprowadź nową wartość pomiędzy %1 a %2: + + Please open an automation clip by double-clicking on it! + Otwórz klip automatyzacji, klikając na niego dwukrotnie myszką! - LadspaControl + lmms::gui::AutomationEditorWindow - - Link channels - Połącz kanały + + Play/pause current clip (Space) + Odtwarzaj/wstrzymaj bieżący klip (Spacja) - - - LadspaControlDialog - - Link Channels - Połącz kanały + + Stop playing of current clip (Space) + Zatrzymaj odtwarzanie bieżącego klipu (Spacja) - - Channel - Kanał + + Edit actions + Edytuj czynności - - - LadspaControlView - - Link channels - Połącz kanały + + Draw mode (Shift+D) + Tryb rysowania (Shift+D) - - Value: - Wartość: + + Erase mode (Shift+E) + Tryb wymazywania (Shift+E) - - - LadspaEffect - - Unknown LADSPA plugin %1 requested. - Nieznana wtyczka LADSPA %1 żądanie. + + Draw outValues mode (Shift+C) + Tryb rysowania wartości wyjściowych (Shift+C) - - - LcdFloatSpinBox - - - Set value - Ustaw wartość + + + Edit tangents mode (Shift+T) + - - Please enter a new value between %1 and %2: - Wprowadź nową wartość pomiędzy %1 a %2: + + Flip vertically + Odwróć pionowo - - - LcdSpinBox - - Set value - Ustaw wartość + + Flip horizontally + Odwróć poziomo - - Please enter a new value between %1 and %2: - Wprowadź nową wartość pomiędzy %1 a %2: + + Interpolation controls + - - - LeftRightNav - - - - Previous - Poprzedni + + Discrete progression + Progresja oddzielna - - - - Next - Następny + + Linear progression + Progresja liniowa - - Previous (%1) - Poprzedni (%1) + + Cubic Hermite progression + Progresja sześcienna Hermite’a - - Next (%1) - Następny (%1) + + Tension value for spline + Wartość napięcia dla krzywej składanej - - - LfoController - - LFO Controller - Kontroler LFO + + Tension: + Napięcie: - - Base value - Wartość bazowa + + Zoom controls + - - Oscillator speed - Prędkość oscylatora + + Horizontal zooming + Powiększanie poziome - - Oscillator amount - Współczynnik oscylatora + + Vertical zooming + Powiększanie pionowe - - Oscillator phase - Faza oscylatora + + Quantization controls + - - Oscillator waveform - Kształt fali oscylatora + + Quantization + Kwantyzacja - - Frequency Multiplier - Mnożnik częstotliwości + + Clear ghost notes + - - - LfoControllerDialog - - LFO - LFO + + + Automation Editor - no clip + Edytor automatyki - brak klipu - - BASE - BASE + + + Automation Editor - %1 + Edytor automatyki - %1 - - Base: - + + Model is already connected to this clip. + Model jest już podłączony do tego klipu. + + + lmms::gui::BassBoosterControlDialog - + FREQ - FREQ + CZĘST - - LFO frequency: - Częstotliwość LFO: + + Frequency: + Częstotliwość: - - AMNT - ILOŚĆ + + GAIN + WZMOC - - Modulation amount: - Współczynnik modulacji: + + Gain: + Wzmocnienie: - - PHS - PHS + + RATIO + WSPÓŁCZYNNIK - - Phase offset: - Przesunięcie fazowe: + + Ratio: + Współczynnik: + + + lmms::gui::BitInvaderView - - degrees - stopni(e) + + Sample length + Długość próbki - + + Draw your own waveform here by dragging your mouse on this graph. + Narysuj swój własny przebieg fali, przeciągając kursorem po tym wykresie. + + + + Sine wave Fala sinusoidalna - + + Triangle wave Fala trójkątna - + + Saw wave Fala piłokształtna - + + Square wave Fala prostokątna - - Moog saw wave - Fala piłokształtna Mooga - - - - Exponential wave - Fala wykładnicza - - - + + White noise - Biały szum - - - - User-defined shape. -Double click to pick a file. - - - - - Mutliply modulation frequency by 1 - + Szum biały - - Mutliply modulation frequency by 100 - - - - - Divide modulation frequency by 100 - - - - - Engine - - - Generating wavetables - Generowanie tabel próbek dźwiękowych + + + User-defined wave + Fala zdefiniowana przez użytkownika - - Initializing data structures - Inicjalizacja struktur danych + + + Smooth waveform + Gładki kształt fali - - Opening audio and midi devices - Otwieranie urządzeń audio i midi + + Interpolation + Interpolacja - - Launching mixer threads - Uruchamianie wątków miksera + + Normalize + Normalizacja - MainWindow - - - Configuration file - Plik konfiguracyjny - - - - Error while parsing configuration file at line %1:%2: %3 - Błąd podczas parsowania pliku konfiguracyjnego w linii %1:%2: %3 - + lmms::gui::BitcrushControlDialog - - Could not open file - Nie można otworzyć pliku + + IN + WEJŚCIE - - Could not open file %1 for writing. -Please make sure you have write permission to the file and the directory containing the file and try again! - Nie udało się otworzyć pliku %1 do zapisu. -Upewnij się, że masz uprawnienia do zapisu do pliku i katalogu zawierającego plik i spróbuj ponownie! + + OUT + WYJŚCIE - - Project recovery - Odzyskiwanie projektu + + + GAIN + WZMOC - - There is a recovery file present. It looks like the last session did not end properly or another instance of LMMS is already running. Do you want to recover the project of this session? - Plik odzyskiwania jest obecny. Wygląda na to, że ostatnia sesja nie została zakończona poprawnie lub inne okno LMMS już działa. Czy chcesz odzyskać projekt dla tej sesji? + + Input gain: + Wzmocnienie wejścia: - - - Recover - Odzyskaj + + NOISE + SZUM - - Recover the file. Please don't run multiple instances of LMMS when you do this. - Odzyskaj plik. Podczas tego nie uruchamiaj wielu okien LMMS. + + Input noise: + Szum wejściowy: - - - Discard - Odrzuć + + Output gain: + Wzmocnienie wyjścia: - - Launch a default session and delete the restored files. This is not reversible. - Uruchom domyślną sesję oraz usuń odzyskiwane pliki. Tego nie można cofnąć. + + CLIP + KLIP - - Version %1 - Wersja %1 + + Output clip: + Klip wyjściowy: - - Preparing plugin browser - Przygotowanie wyszukiwarki wtyczek + + Rate enabled + - - Preparing file browsers - Przygotowanie wyszukiwarki plików + + Enable sample-rate crushing + - - My Projects - Moje projekty + + Depth enabled + Głębia włączona - - My Samples - Moje próbki + + Enable bit-depth crushing + - - My Presets - Moje presety + + FREQ + CZĘST - - My Home - Mój katalog domowy + + Sample rate: + Częstotliwość próbkowania: - - Root directory - Katalog główny + + STEREO + STEREO - - Volumes - Głośność + + Stereo difference: + Różnica stereo: - - My Computer - Mój komputer + + QUANT + KWANT - - &File - &Plik + + Levels: + Poziomy: + + + lmms::gui::CPULoadWidget - - &New - &Nowy + + DSP total: %1% + - - &Open... - &Otwórz... + + - Notes and setup: %1% + - Nuty i konfiguracja: %1% - - Loading background picture - + + - Instruments: %1% + - Instrumenty: %1% - - &Save - &Zapisz + + - Effects: %1% + - Efekty: %1% - - Save &As... - Zapisz &Jako... + + - Mixing: %1% + - Miksowanie: %1% + + + lmms::gui::CarlaInstrumentView - - Save as New &Version - Zapisz jako Nową &Wersję + + Show GUI + Pokaż graficzny interfejs użytkownika - - Save as default template - Zapisz jako domyślny szablon + + Click here to show or hide the graphical user interface (GUI) of Carla. + Kliknij tutaj, aby pokazać lub ukryć graficzny interfejs użytkownika (GUI) Carla. - - Import... - Import... + + Params + Parametry - - E&xport... - Eksport [&X]... + + Available from Carla version 2.1 and up. + Dostępne dla Carla w wersji 2.1 lub nowszej. + + + lmms::gui::CarlaParamsView - - E&xport Tracks... - Eksportuj Ścieżki... + + Search.. + Szukaj... - - Export &MIDI... - Eksportuj &MIDI… + + Clear filter text + Wyczyść tekst filtra - - &Quit - Zakończ [&Q] + + Only show knobs with a connection. + Pokaż tylko pokrętła z połączeniem. - - &Edit - &Edycja + + - Parameters + - Parametry + + + lmms::gui::ClipView - - Undo - Cofnij + + Current position + Bieżąca pozycja - - Redo - Ponów + + Current length + Bieżąca długość - - Settings - Ustawienia + + + %1:%2 (%3:%4 to %5:%6) + %1:%2 (%3:%4 do %5:%6) - - &View - &Podgląd + + Press <%1> and drag to make a copy. + - - &Tools - &Narzędzia + + Press <%1> for free resizing. + - - &Help - &Pomoc + + Hint + Podpowiedź - - Online Help - Pomoc Online + + Delete (middle mousebutton) + Usuń (środkowy przycisk myszki) - - Help - Pomoc + + Delete selection (middle mousebutton) + Usuń zaznaczone (środkowy przycisk myszki) - - About - O LMMS + + Cut + Wytnij - - Create new project - Stwórz nowy projekt + + Cut selection + Wytnij zaznaczenie - - Create new project from template - Stwórz nowy projekt jako szablon + + Merge Selection + Połącz zaznaczenie - - Open existing project - Otwórz istniejący projekt + + Copy + Kopiuj - - Recently opened projects - Ostatnio otwierane projekty + + Copy selection + Kopiuj zaznaczenie - - Save current project - Zapisz bieżący projekt + + Paste + Wklej - - Export current project - Eksportuj bieżący projekt + + Mute/unmute (<%1> + middle click) + - - Metronome - Metronom + + Mute/unmute selection (<%1> + middle click) + - - - Song Editor - Pokaż/ukryj Edytor Kompozycji + + Clip color + Kolor klipu - - - Beat+Bassline Editor - Pokaż/ukryj Edytor Perkusji i Basu + + Change + Zmień - - - Piano Roll - Pokaż/ukryj Edytor Pianolowy + + Reset + Resetuj - - - Automation Editor - Pokaż/ukryj Edytor Automatyki + + Pick random + Wybierz losowe + + + lmms::gui::CompressorControlDialog - - - Mixer - Pokaż/ukryj Mikser Efektów + + Threshold: + Próg: - - Show/hide controller rack - Pokaż/ukryj rack kontrolerów + + Volume at which the compression begins to take place + Głośność, przy której rozpoczyna się kompresja - - Show/hide project notes - Pokaż/ukryj notatki do projektu + + Ratio: + Współczynnik: - - Untitled - Nienazwane + + How far the compressor must turn the volume down after crossing the threshold + O ile kompresor musi zmniejszyć głośność po przekroczeniu progu - - Recover session. Please save your work! - Odzyskana sesja. Zapisz swoją pracę! + + Attack: + Narastanie: - - LMMS %1 - LMMS %1 + + Speed at which the compressor starts to compress the audio + Prędkość, z jaką kompresor rozpoczyna kompresować dźwięk - - Recovered project not saved - Odzyskany projekt nie zapisany + + Release: + Opadanie: - - This project was recovered from the previous session. It is currently unsaved and will be lost if you don't save it. Do you want to save it now? - Ten projekt został odzyskany z poprzedniej sesji. Jest obecnie niezapisany i zostanie utracony, jeżeli go nie zapiszesz. Czy chcesz teraz zapisać? + + Speed at which the compressor ceases to compress the audio + Prędkość, z jaką kompresor przestaje kompresować dźwięk - - Project not saved - Projekt nie zapisany + + Knee: + Czułość: - - The current project was modified since last saving. Do you want to save it now? - Bieżący projekt został zmodyfikowany od ostatniego zapisu. Czy chcesz go zapisać teraz? + + Smooth out the gain reduction curve around the threshold + Wygładzanie krzywej redukcji wzmocnienia wokół progu - - Open Project - Otwórz Projekt + + Range: + Zakres: - - LMMS (*.mmp *.mmpz) - LMMS (*.mmp *.mmpz) + + Maximum gain reduction + Maksymalna redukcja wzmocnienia - - Save Project - Zapisz Projekt + + Lookahead Length: + - - LMMS Project - Projekt LMMS + + How long the compressor has to react to the sidechain signal ahead of time + Jak długo kompresor musi zareagować na sygnał łańcucha bocznego z wyprzedzeniem - - LMMS Project Template - Szablon projektu LMMS + + Hold: + - - Save project template - Zapisz szablon projektu + + Delay between attack and release stages + Opóźnienie między etapami narastania i opadania - - Overwrite default template? - Czy zastąpić domyślny szablon? + + RMS Size: + Rozmiar RMS: - - This will overwrite your current default template. - Spowoduje to zastąpienie bieżącego domyślnego szablonu. + + Size of the RMS buffer + Rozmiar bufora RMS - - Help not available - Pomoc niedostępna + + Input Balance: + Równowaga wejścia: - - Currently there's no help available in LMMS. -Please visit http://lmms.sf.net/wiki for documentation on LMMS. - Aktualnie pomoc dla LMMS jest niedostępna. -Odwiedź witrynę http://lmms.sf.net/wiki for documentation on LMMS. + + Bias the input audio to the left/right or mid/side + - - Controller Rack - Pokaż/ukryj rack kontrolerów + + Output Balance: + Równowaga wyjścia: - - Project Notes - Pokaż/ukryj notatki projektu + + Bias the output audio to the left/right or mid/side + - - Fullscreen - Pełny ekran + + Stereo Balance: + Równowaga stereo: - - Volume as dBFS - Głośność jako dBFS + + Bias the sidechain signal to the left/right or mid/side + - - Smooth scroll - Płynne przewijanie + + Stereo Link Blend: + - - Enable note labels in piano roll - Włącz etykiety nut w edytorze pianolowym. + + Blend between unlinked/maximum/average/minimum stereo linking modes + - - MIDI File (*.mid) - Plik MIDI (*.mid) + + Tilt Gain: + Wzmocnienie nachylenia: - - - untitled - bez tytułu + + Bias the sidechain signal to the low or high frequencies. -6 db is lowpass, 6 db is highpass. + - - - Select file for project-export... - Wybierz plik do wyeksportowania projektu… + + Tilt Frequency: + Częstotliwość nachylenia: - - Select directory for writing exported tracks... - Wybierz katalog zapisu eksportowanych utworów… + + Center frequency of sidechain tilt filter + - - Save project - Zapisz projekt + + Mix: + Miks: - - Project saved - Zapisano projekt + + Balance between wet and dry signals + Równowaga między sygnałami mokrymi i suchymi - - The project %1 is now saved. - Projekt %1 został zapisany. + + Auto Attack: + - - Project NOT saved. - Nie zapisano projektu. + + Automatically control attack value depending on crest factor + - - The project %1 was not saved! - Projekt %1 nie został zapisany! + + Auto Release: + - - Import file - Importuj plik + + Automatically control release value depending on crest factor + - - MIDI sequences - Sekwencje MIDI + + Output gain + Wzmocnienie wyjścia - - Hydrogen projects - Projekty Hydrogen + + + Gain + Wzmocnienie - - All file types - Wszystkie rodzaje plików + + Output volume + Głośność wyjściowa - - - MeterDialog - - - Meter Numerator - Numerator Metryczny + + Input gain + Wzmocnienie wejścia - - Meter numerator - + + Input volume + Głośność wejściowa - - - Meter Denominator - Denominator Metryczny + + Root Mean Square + Średnia kwadratowa - - Meter denominator - + + Use RMS of the input + Użyj RMS wejścia - - TIME SIG - METRUM + + Peak + Szczyt - - - MeterModel - - Numerator - Numerator + + Use absolute value of the input + Użyj wartości bezwzględnej wejścia - - Denominator - Denominator + + Left/Right + Lewy/prawy - - - MidiCCRackView - - - MIDI CC Rack - %1 - + + Compress left and right audio + Kompresuj lewy i prawy - - MIDI CC Knobs: - + + Mid/Side + Śr./b. - - CC %1 - + + Compress mid and side audio + Kompresuj środkowy i boczny - - - MidiController - - MIDI Controller - Kontroler MIDI + + Compressor + Kompresor - - unnamed_midi_controller - kontroler midi bez nazwy + + Compress the audio + Kompresuj dźwięk - - - MidiImport - - - Setup incomplete - Konfiguracja niekompletna + + Limiter + Limiter - - You have not set up a default soundfont in the settings dialog (Edit->Settings). Therefore no sound will be played back after importing this MIDI file. You should download a General MIDI soundfont, specify it in settings dialog and try again. - Nie masz skonfigurowanego domyślnego soundfonta w oknie dialogowym (Edycja->Ustawienia). Będzie to skutkować brakiem dźwięku po zaimportowaniu pliku MIDI. Powinieneś pobrać soundfonty General MIDI, dokonać zmiany ustawień i spróbować ponownie. + + Set Ratio to infinity (is not guaranteed to limit audio volume) + Ustaw współczynnik na nieskończoność (nie ma gwarancji ograniczenia głośności dźwięku) - - You did not compile LMMS with support for SoundFont2 player, which is used to add default sound to imported MIDI files. Therefore no sound will be played back after importing this MIDI file. - Tego LMMS nie skompilowano ze wsparciem odtwarzacza SoundFont2, który jest wykorzystywany do dodawania domyślnych dźwięków do zaimportowanych plików MIDI. Wskutek tego po zaimportowaniu pliku MIDI nie usłyszysz żadnego dźwięku. + + Unlinked + Niepołączone - - MIDI Time Signature Numerator - + + Compress each channel separately + Kompresuj każdy kanał oddzielnie - - MIDI Time Signature Denominator - + + Maximum + Maksimum - - Numerator - Numerator + + Compress based on the loudest channel + Kompresuj w oparciu o najgłośniejszy kanał - - Denominator - Denominator + + Average + Średnie - - Track - Scieżka + + Compress based on the averaged channel volume + Kompresuj w oparciu o średniej głośności kanał - - - MidiJack - - JACK server down - When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (title) - Serwer JACK wyłączony + + Minimum + Minimum - - The JACK server seems to be shuted down. - When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (dialog message) - Wygląda na to, że serwer JACK jest wyłączony. + + Compress based on the quietest channel + Kompresuj w oparciu o najcichszy kanał - - - MidiPatternW - - MIDI Pattern + + Blend - - Time Signature: + + Blend between stereo linking modes - - - - 1/4 - + + Auto Makeup Gain + Autoupiększanie wzmocnienia - - 2/4 + + Automatically change makeup gain depending on threshold, knee, and ratio settings + Automatyczna zmiana upiększania wzmocnienia w zależności od ustawień progu, czułości i współczynnika + + + + + Soft Clip - - 3/4 - 3/4 + + Play the delta signal + Odtwrzaj sygnał delta - - 4/4 + + Use the compressor's output as the sidechain input + Użyj wyjścia kompresora jako wejścia łańcucha bocznego + + + + Lookahead Enabled - - 5/4 + + Enable Lookahead, which introduces 20 milliseconds of latency + + + lmms::gui::ControllerConnectionDialog - - 6/4 - 6/4 + + Connection Settings + Ustawienia połączenia - - Measures: - Pomiary: + + MIDI CONTROLLER + KONTROLER MIDI - - - - 1 - + + Input channel + Kanał wejściowy - - 2 - 2 + + CHANNEL + KANAŁ - - 3 - + + Input controller + Kontroler wejściowy - - 4 - + + CONTROLLER + KONTROLER - - 5 - 5 + + + Auto Detect + Autodetekcja - - 6 - 6 + + MIDI-devices to receive MIDI-events from + Urządzenia MIDI odbierające zdarzenia MIDI z - - 7 - 7 + + USER CONTROLLER + KONTROLER UŻYTKOWNIKA - - 8 - + + MAPPING FUNCTION + FUNKCJA MAPOWANIA - - 9 - 9 + + OK + OK - - 10 - + + Cancel + Anuluj - - 11 - 11 + + LMMS + LMMS - - 12 + + Cycle Detected. + + + lmms::gui::ControllerRackView - - 13 - 13 + + Controller Rack + Rack kontrolerów - - 14 - + + Add + Dodaj - - 15 - + + Confirm Delete + Potwierdź usunięcie - - 16 - + + Confirm delete? There are existing connection(s) associated with this controller. There is no way to undo. + Potwierdzić usunięcie? Występuje(ą) istniejące połączenie(a) związane z tym kontrolerem. Tego nie można cofnąć. + + + lmms::gui::ControllerView - - Default Length: + + Controls - - - 1/16 - + + Rename controller + Zmień nazwę kontrolera - - - 1/15 - + + Enter the new name for this controller + Wprowadź nową nazwę dla tego kontrolera - - - 1/12 - + + LFO + LFO - - - 1/9 - + + Move &up + Przes&uń w górę - - - 1/8 - + + Move &down + Przesuń w &dół - - - 1/6 - + + &Remove this controller + Usuń ten kont&roler - - - 1/3 - + + Re&name this controller + Zmień &nazwę tego kontrolera + + + lmms::gui::CrossoverEQControlDialog - - - 1/2 + + Band 1/2 crossover: - - Quantize: + + Band 2/3 crossover: - - &File - &Plik + + Band 3/4 crossover: + - - &Edit - &Edycja + + Band 1 gain + - - &Quit - Zakończ [&Q] + + Band 1 gain: + - - &Insert Mode + + Band 2 gain - - F + + Band 2 gain: - - &Velocity Mode + + Band 3 gain - - D + + Band 3 gain: - - Select All + + Band 4 gain - - A + + Band 4 gain: - - - MidiPort - - Input channel - Kanał wejściowy + + Band 1 mute + - - Output channel - Kanał wyjściowy + + Mute band 1 + - - Input controller - Kontroler wejściowy + + Band 2 mute + - - Output controller - Kontroler wyjściowy + + Mute band 2 + - - Fixed input velocity - Stała głośność wejściowa + + Band 3 mute + - - Fixed output velocity - Stała głośność wyjściowa + + Mute band 3 + - - Fixed output note - Stała nuta wyjściowa + + Band 4 mute + - - Output MIDI program - Wyjściowy program MIDI + + Mute band 4 + + + + lmms::gui::DelayControlsDialog - - Base velocity - Głośność podstawy + + DELAY + OPÓŹN - - Receive MIDI-events - Odbieraj komunikaty MIDI + + Delay time + Czas opóźnienia - - Send MIDI-events - Wysyłaj komunikaty MIDI + + FDBK + SPZW - - - MidiSetupWidget - - Device - Urządzenie + + Feedback amount + Wartość sprzężenia zwrotnego - - - MonstroInstrument - - Osc 1 volume + + RATE - - Osc 1 panning - + + LFO frequency + Częstotliwość LFO - - Osc 1 coarse detune - + + AMNT + WART - - Osc 1 fine detune left - + + LFO amount + Wartość LFO - - Osc 1 fine detune right - + + Out gain + Wzm. wyjśc. - - Osc 1 stereo phase offset - + + Gain + Wzmocnienie + + + lmms::gui::DispersionControlDialog - - Osc 1 pulse width - + + AMOUNT + WARTOŚĆ - - Osc 1 sync send on rise + + Number of all-pass filters - - Osc 1 sync send on fall - + + FREQ + CZĘST - - Osc 2 volume - + + Frequency: + Częstotliwość: - - Osc 2 panning - + + RESO + REZO - - Osc 2 coarse detune - + + Resonance: + Rezonans: - - Osc 2 fine detune left - + + FEED + SPRZ - - Osc 2 fine detune right - + + Feedback: + Sprzężenie zwrotne: - - Osc 2 stereo phase offset - + + DC Offset Removal + Usuwanie przesunięcia DC - - Osc 2 waveform - + + Remove DC Offset + Usuń przesunięcie DC + + + lmms::gui::DualFilterControlDialog - - Osc 2 sync hard - + + + FREQ + CZĘST - - Osc 2 sync reverse - + + + Cutoff frequency + Częstotliwość graniczna - - Osc 3 volume - + + + RESO + REZO - - Osc 3 panning - + + + Resonance + Rezonans - - Osc 3 coarse detune - + + + GAIN + WZMOC - - Osc 3 Stereo phase offset - Osc 3 Przesunięcie fazowe stereo + + + Gain + Wzmocnienie - - Osc 3 sub-oscillator mix - + + MIX + MIKS - - Osc 3 waveform 1 - + + Mix + Miks - - Osc 3 waveform 2 - + + Filter 1 enabled + Włączono filtr 1 - - Osc 3 sync hard - + + Filter 2 enabled + Włączono filtr 2 - - Osc 3 Sync reverse - + + Enable/disable filter 1 + Włącz/wyłącz filtr 1 - - LFO 1 waveform - + + Enable/disable filter 2 + Włącz/wyłącz filtr 2 + + + lmms::gui::DynProcControlDialog - - LFO 1 attack - + + INPUT + WEJŚCIE - - LFO 1 rate - + + Input gain: + Wzmocnienie wejścia: - - LFO 1 phase - + + OUTPUT + WYJŚCIE - - LFO 2 waveform - + + Output gain: + Wzmocnienie wyjścia: - - LFO 2 attack - + + ATTACK + NARASTANIE - - LFO 2 rate - + + Peak attack time: + Czas szczytu narastania: - - LFO 2 phase - + + RELEASE + OPADANIE - - Env 1 pre-delay - + + Peak release time: + Czas szczytu opadania: - - Env 1 attack - + + + Reset wavegraph + Resetuj wykres falowy - - Env 1 hold - + + + Smooth wavegraph + Płynny wykres falowy - - Env 1 decay - + + + Increase wavegraph amplitude by 1 dB + Zwiększ amplitudę wykresu falowego o 1 dB - - Env 1 sustain - + + + Decrease wavegraph amplitude by 1 dB + Zmniejsz amplitudę wykresu falowego o 1 dB - - Env 1 release - + + Stereo mode: maximum + Tryb stereo: maksimum - - Env 1 slope - + + Process based on the maximum of both stereo channels + Przetwarzaj w oparciu o maksimum z obu kanałów stereo - - Env 2 pre-delay - + + Stereo mode: average + Tryb stereo: średnia - - Env 2 attack - + + Process based on the average of both stereo channels + Przetwarzaj w oparciu o średnią z obu kanałów stereo - - Env 2 hold - + + Stereo mode: unlinked + Tryb stereo: niepołączone - - Env 2 decay - + + Process each stereo channel independently + Przetwarzaj każdy kanał stereo niezależnie + + + lmms::gui::Editor - - Env 2 sustain + + Transport controls - - Env 2 release - + + Play (Space) + Odtwarzaj (Spacja) - - Env 2 slope - + + Stop (Space) + Zatrzymaj (Spacja) - - Osc 2+3 modulation - + + Record + Nagrywaj - - Selected view - Wybrany widok + + Record while playing + Nagrywaj podczas odtwarzania - - Osc 1 - Vol env 1 - + + Toggle Step Recording + Przełącz nagrywanie kroków + + + lmms::gui::EffectRackView - - Osc 1 - Vol env 2 - + + EFFECTS CHAIN + ŁAŃCUCH EFEKTÓW - - Osc 1 - Vol LFO 1 - + + Add effect + Dodaj efekt + + + lmms::gui::EffectSelectDialog - - Osc 1 - Vol LFO 2 - + + Add effect + Dodaj efekt - - Osc 2 - Vol env 1 - + + + Name + Nazwa - - Osc 2 - Vol env 2 - + + Type + Typ - - Osc 2 - Vol LFO 1 - + + All + Wszystko - - Osc 2 - Vol LFO 2 - + + Search + Szukaj - - Osc 3 - Vol env 1 - + + Description + Opis - - Osc 3 - Vol env 2 - + + Author + Autor + + + lmms::gui::EffectView - - Osc 3 - Vol LFO 1 - + + On/Off + Wł./wył. - - Osc 3 - Vol LFO 2 - + + W/D + M/S - - Osc 1 - Phs env 1 - + + Wet Level: + Poziom mokry: - - Osc 1 - Phs env 2 + + DECAY - - Osc 1 - Phs LFO 1 - + + Time: + Czas: - - Osc 1 - Phs LFO 2 - + + GATE + BRAMKA - - Osc 2 - Phs env 1 - + + Gate: + Bramka: - - Osc 2 - Phs env 2 + + Controls - - Osc 2 - Phs LFO 1 - + + Move &up + Przes&uń w górę - - Osc 2 - Phs LFO 2 - + + Move &down + Przesuń w &dół - - Osc 3 - Phs env 1 - + + &Remove this plugin + &Usuń tę wtyczkę + + + lmms::gui::EnvelopeAndLfoView - - Osc 3 - Phs env 2 - + + + AMT + WAR - - Osc 3 - Phs LFO 1 - + + + Modulation amount: + Wartość modulacji: - - Osc 3 - Phs LFO 2 - + + + DEL + DEL - - Osc 1 - Pit env 1 - + + + Pre-delay: + Opóźnienie wstępne: - - Osc 1 - Pit env 2 - + + + ATT + NAR - - Osc 1 - Pit LFO 1 - + + + Attack: + Narastanie: - - Osc 1 - Pit LFO 2 + + HOLD - - Osc 2 - Pit env 1 + + Hold: - - Osc 2 - Pit env 2 + + DEC - - Osc 2 - Pit LFO 1 + + Decay: - - Osc 2 - Pit LFO 2 + + SUST - - Osc 3 - Pit env 1 + + Sustain: - - Osc 3 - Pit env 2 - + + REL + OPA - - Osc 3 - Pit LFO 1 - + + Release: + Opadanie: - - Osc 3 - Pit LFO 2 - + + SPD + SPD - - Osc 1 - PW env 1 - + + Frequency: + Częstotliwość: - - Osc 1 - PW env 2 - + + FREQ x 100 + CZĘST. x 100 - - Osc 1 - PW LFO 1 - + + Multiply LFO frequency by 100 + Pomnóż częstotliwość LFO przez 100 - - Osc 1 - PW LFO 2 - + + MOD ENV AMOUNT + MODULUJ WARTOŚĆ OBWIEDNI - - Osc 3 - Sub env 1 - + + Control envelope amount by this LFO + Kontroluj wartość obwiedni przez ten LFO - - Osc 3 - Sub env 2 - + + Hint + Podpowiedź - - Osc 3 - Sub LFO 1 - + + Drag and drop a sample into this window. + Przeciągnij i upuść próbkę do tego okna. + + + lmms::gui::EnvelopeGraph - - Osc 3 - Sub LFO 2 - + + Scaling + Skalowanie - - - Sine wave - Fala sinusoidalna + + Dynamic + Dynamika - - Bandlimited Triangle wave - Fala trójkątna pasmowo limitowana + + Uses absolute spacings but switches to relative spacing if it's running out of space + Używa odstępów bezwzględnych, ale przełącza się na odstępy względne, jeśli zabraknie miejsca - - Bandlimited Saw wave - Fala piłokształtna pasmowo limitowana + + Absolute + Bezwzględny - - Bandlimited Ramp wave - Fala rampowa pasmowo limitowana + + Provides enough potential space for each segment but does not scale + Zapewnia wystarczająco dużo potencjalnego miejsca dla każdego segmentu, ale nie jest skalowalny - - Bandlimited Square wave - Fala kwadratowa pasmowo limitowana + + Relative + Względny - - Bandlimited Moog saw wave - Fala piłokształtna Mooga pasmowo limitowana + + Always uses all of the available space to display the envelope graph + Zawsze wykorzystuje całe dostępne miejsce do wyświetlania wykresu obwiedni + + + lmms::gui::EqControlsDialog - - - Soft square wave - Fala kwadratowa łagodna + + HP + HP - - Absolute sine wave - Fala sinusoidalna o wartości bezwzględnej + + Low-shelf + Dolnopółkowy - - - Exponential wave - Fala wykładnicza + + Peak 1 + Szczyt 1 - - White noise - Biały szum + + Peak 2 + Szczyt 2 - - Digital Triangle wave - Cyfrowa fala trójkątna + + Peak 3 + Szczyt 3 - - Digital Saw wave - Cyfrowa fala piłokształtna + + Peak 4 + Szczyt 4 - - Digital Ramp wave - Cyfrowa fala rampowa + + High-shelf + Górnopółkowy - - Digital Square wave - Cyfrowa fala kwadratowa + + LP + LP - - Digital Moog saw wave - Cyfrowa fala piłokształtna Mooga + + Input gain + Wzmocnienie wejścia - - Triangle wave - Fala trójkątna + + + + Gain + Wzmocnienie - - Saw wave - Fala piłokształtna + + Output gain + Wzmocnienie wyjścia - - Ramp wave - Fala rampowa + + Bandwidth: + Szerokość pasma: - - Square wave - Fala prostokątna + + Octave + Oktawa - - Moog saw wave - Fala piłokształtna Mooga + + Resonance: + - - Abs. sine wave - Fala sin. o wart. bezwzgl. + + Frequency: + Częstotliwość: - - Random - Losowe + + LP group + Grupa LP - - Random smooth - Losowe gładkie + + HP group + Grupa HP - MonstroView + lmms::gui::EqHandle - - Operators view - Widok operatorowy + + Reso: + Rez.: - - Matrix view - Widok macierzowy + + BW: + SP: - - - - Volume - Głośność + + + Freq: + Częst.: + + + lmms::gui::ExportProjectDialog - - - - Panning - Panoramowanie + + Could not open file + Nie można otworzyć pliku - - - - Coarse detune - Odstrojenie zgrubne + + Could not open file %1 for writing. +Please make sure you have write permission to the file and the directory containing the file and try again! + Nie można otworzyć pliku %1 do zapisu. +Upewnij się, że masz uprawnienia do zapisu do pliku i katalogu zawierającego plik i spróbuj ponownie! - - - - semitones - półtony + + Export project to %1 + Eksportuj projekt do %1 - - - Fine tune left - + + ( Fastest - biggest ) + ( Najszybsze - największe ) - - - - - cents - centy + + ( Slowest - smallest ) + ( Najwolniejsze - najmniejsze ) - - - Fine tune right - + + Error + Błąd - - - - Stereo phase offset - Przesunięcie fazy stereo + + Error while determining file-encoder device. Please try to choose a different output format. + Wystąpił błąd podczas określania urządzenia kodującego plik. Spróbuj wybrać inny format wyjściowy. - - - - - - deg - st + + Rendering: %1% + Renderowanie: %1% + + + lmms::gui::Fader - - Pulse width - Współczynnik wypełnienia impulsu + + Set value + Ustaw wartość - - Send sync on pulse rise - Wyślij sync przy wzroście pulsu + + Please enter a new value between %1 and %2: + Wprowadź nową wartość między %1 a %2: - - Send sync on pulse fall - Wyślij sync przy spadku pulsu + + Volume: %1 dBFS + Głośność: %1 dBFS + + + lmms::gui::FileBrowser - - Hard sync oscillator 2 - Sync twarde oscylatora 2 + + Browser + Przeglądarka - - Reverse sync oscillator 2 - Sync odwrócone oscylatora 2 + + Search + Szukaj - - Sub-osc mix - + + Refresh list + Odśwież listę - - Hard sync oscillator 3 - Sync twarde oscylatora 3 + + User content + Zawartość użytkownika - - Reverse sync oscillator 3 - Sync odwrócone oscylatora 3 + + Factory content + Zawartość fabryczna - - - - - Attack - Atak + + Hidden content + Zawartość ukryta + + + lmms::gui::FileBrowserTreeWidget - - - Rate - Tempo + + Send to active instrument-track + Wyślij do aktywnej ścieżki instrumentu - - - Phase - Faza + + Open containing folder + Otwórz folder zawierający - - - Pre-delay - Opóźnienie wstępne + + Song Editor + Edytor utworu - - - Hold - Przetrzymanie + + Pattern Editor + Edytor szablonów - - - Decay - Zanikanie + + Send to new AudioFileProcessor instance + Wyślij do nowej instancji AudioFileProcessorze - - - Sustain - Podtrzymanie + + Send to new instrument track + Wyślij do nowej ścieżki instrumentu - - - Release - Wybrzmiewanie + + (%2Enter) + (%2Enter) - - - Slope - Nachylenie + + Send to new sample track (Shift + Enter) + Wyślij do nowej ścieżki próbek (Shift+Enter) - - Mix osc 2 with osc 3 - + + Loading sample + Ładowanie próbki - - Modulate amplitude of osc 3 by osc 2 - + + Please wait, loading sample for preview... + Czekaj. Ładowanie próbki do podglądu... - - Modulate frequency of osc 3 by osc 2 - + + Error + Błąd - - Modulate phase of osc 3 by osc 2 - + + %1 does not appear to be a valid %2 file + %1 nie wydaje się być prawidłowym plikiem %2 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Modulation amount - Współczynnik modulacji + + --- Factory files --- + --- Pliki fabryczne --- - MultitapEchoControlDialog + lmms::gui::FileDialog - - Length - Długość + + %1 files + %1 plików - - Step length: - Długość kroku: + + All audio files + Wszystkie pliki dźwiękowe - - Dry - Suche + + Other files + Inne pliki + + + lmms::gui::FlangerControlsDialog - - Dry gain: - + + DELAY + OPÓŹN - - Stages - Etapy + + Delay time: + Czas opóźnienia: - - Low-pass stages: + + RATE - - Swap inputs - Zamień wejścia + + Period: + Okres: - - Swap left and right input channels for reflections - + + AMNT + WART - - - NesInstrument - - Channel 1 coarse detune - + + Amount: + Wartość: - - Channel 1 volume - Głośność kanału 1 + + PHASE + FAZA - - Channel 1 envelope length - + + Phase: + Faza: - - Channel 1 duty cycle - + + FDBK + SPZW - - Channel 1 sweep amount - + + Feedback amount: + Wartość sprzężenia zwrotnego: - - Channel 1 sweep rate - + + NOISE + SZUM - - Channel 2 Coarse detune - Kanał 2 Zgrubne odstrojenie + + White noise amount: + Wartość szumu białego: - - Channel 2 Volume - Kanał 2 Głośność + + Invert + Odwróć + + + lmms::gui::FloatModelEditorBase - - Channel 2 envelope length - + + Set linear + Ustaw liniowo - - Channel 2 duty cycle - + + Set logarithmic + Ustaw logarytmicznie - - Channel 2 sweep amount - + + + Set value + Ustaw wartość - - Channel 2 sweep rate - + + Please enter a new value between -96.0 dBFS and 6.0 dBFS: + Wprowadź nową wartość między -96.0 dBFS a 6.0 dBFS: - - Channel 3 coarse detune - + + Please enter a new value between %1 and %2: + Wprowadź nową wartość między %1 a %2: + + + lmms::gui::FreeBoyInstrumentView - - Channel 3 volume - Głośność kanału 3 + + Sweep time: + Czas wobulacji: - - Channel 4 volume - Głośność kanału 4 + + Sweep time + Czas wobulacji - - Channel 4 envelope length + + Sweep rate shift amount: - - Channel 4 noise frequency + + Sweep rate shift amount - - Channel 4 noise frequency sweep - + + + Wave pattern duty cycle: + Współczynnik wypełnienia szablonu fali: - - Master volume - Głośność główna + + + Wave pattern duty cycle + Współczynnik wypełnienia szablonu fali - - Vibrato - Vibrato + + Square channel 1 volume: + Głośność kanału kwadratowego 1: - - - NesInstrumentView - - - - - Volume - Głośność + + Square channel 1 volume + Głośność kanału kwadratowego 1 - - - - Coarse detune - Odstrojenie zgrubne + + + + Length of each step in sweep: + Długość każdego kroku wobulacji: - - - - Envelope length - Długość obwiedni + + + + Length of each step in sweep + Długość każdego kroku wobulacji - - Enable channel 1 - Włącz kanał 1 + + Square channel 2 volume: + Głośność kanału kwadratowego 2: - - Enable envelope 1 - Włącz obwiednię 1 + + Square channel 2 volume + Głośność kanału kwadratowego 2 - - Enable envelope 1 loop - Włącz pętlę obwiedni 1 + + Wave pattern channel volume: + Głośność kanału szablonu fali: - - Enable sweep 1 - Włącz wobulację 1 + + Wave pattern channel volume + Głośność kanału szablonu fali - - - Sweep amount - Ilość wobulacji + + Noise channel volume: + Głośność kanału szumu: - - - Sweep rate - Częstotliwość wobulacji + + Noise channel volume + Głośność kanału szumu - - - 12.5% Duty cycle - 12,5% Cykl pracy + + SO1 volume (Right): + Głośność SO1 (prawy): - - - 25% Duty cycle - 25% Cykl pracy + + SO1 volume (Right) + Głośność SO1 (prawy) - - - 50% Duty cycle - 50% Cykl pracy + + SO2 volume (Left): + Głośność SO2 (lewy): - - - 75% Duty cycle - 75% Cykl pracy + + SO2 volume (Left) + Głośność SO2 (lewy) - - Enable channel 2 - Włącz kanał 2 + + Treble: + Soprany: - - Enable envelope 2 - Włącz obwiednię 2 + + Treble + Soprany - - Enable envelope 2 loop - Włącz pętlę obwiedni 2 + + Bass: + Basy: - - Enable sweep 2 - Włącz wobulację 2 + + Bass + Basy - - Enable channel 3 - Włącz kanał 3 + + Sweep direction + Kierunek wobulacji - - Noise Frequency - Częstotliwość szumu + + + + + + Volume sweep direction + Kierunek wobulacji głośności - - Frequency sweep - Wobulacja częstotliwości + + Shift register width + Szerokość rejestru przesuwnego - - Enable channel 4 - Włącz kanał 4 + + Channel 1 to SO1 (Right) + Kanał 1 do SO1 (prawy) - - Enable envelope 4 - Włącz obwiednię 4 + + Channel 2 to SO1 (Right) + Kanał 2 do SO1 (prawy) - - Enable envelope 4 loop - Włącz pętlę obwiedni 4 + + Channel 3 to SO1 (Right) + Kanał 3 do SO1 (prawy) - - Quantize noise frequency when using note frequency - Kwantyzuj częstotliwość szumu przy użyciu częstotliwości nuty. + + Channel 4 to SO1 (Right) + Kanał 4 do SO1 (prawy) - - Use note frequency for noise - Użyj częstotliwości nuty dla szumu + + Channel 1 to SO2 (Left) + Kanał 1 do SO2 (lewy) - - Noise mode - Tryb szumu + + Channel 2 to SO2 (Left) + Kanał 2 do SO2 (lewy) - - Master volume - Głośność główna + + Channel 3 to SO2 (Left) + Kanał 3 do SO2 (lewy) - - Vibrato - Vibrato + + Channel 4 to SO2 (Left) + Kanał 4 do SO2 (lewy) - - - OpulenzInstrument - - Patch - Próbka + + Wave pattern graph + Wykres szablonu fali + + + lmms::gui::GigInstrumentView - - Op 1 attack - + + + Open GIG file + Otwórz plik GIG - - Op 1 decay - + + Choose patch + Wybierz próbkę - - Op 1 sustain - + + Gain: + Wzmocnienie: - - Op 1 release - + + GIG Files (*.gig) + Pliki GIG (*.gig) + + + lmms::gui::GranularPitchShifterControlDialog - - Op 1 level - + + Grain Size: + Wielkość ziarna: - - Op 1 level scaling + + Spray: - - Op 1 frequency multiplier + + Jitter: - - Op 1 feedback + + Twitch: - - Op 1 key scaling rate + + Spray Stereo Spread: - - Op 1 percussive envelope - + + Grain Shape: + Kształt ziarna: - - Op 1 tremolo - + + Fade Length: + Długość ściszenia: - - Op 1 vibrato - + + Feedback: + Sprzężenie zwrotne: - - Op 1 waveform - + + Minimum Allowed Latency: + Minimalne dozwolone opóźnienie: - - Op 2 attack - + + Density: + Gęstość: - - Op 2 decay - + + Glide: + Poślizg: - - Op 2 sustain - + + + Pitch + Odstrojenie - - Op 2 release + + + Pitch Stereo Spread - - Op 2 level - + + Open help window + Otwórz okno pomocy - - Op 2 level scaling - + + + Prefilter + Filtr wstępny + + + lmms::gui::GuiApplication - - Op 2 frequency multiplier - + + Working directory + Katalog roboczy - - Op 2 key scaling rate - + + The LMMS working directory %1 does not exist. Create it now? You can change the directory later via Edit -> Settings. + Katalog roboczy LMMS %1 nie istnieje. Chcesz go utworzyć? Możesz zmienić katalog później w Edycja -> Ustawienia. - - Op 2 percussive envelope - + + Preparing UI + Przygotowywanie interfejsu użytkownika - - Op 2 tremolo - + + Preparing song editor + Przygotowywanie edytora utworu - - Op 2 vibrato - + + Preparing mixer + Przygotowywanie miksera - - Op 2 waveform - + + Preparing controller rack + Przygotowanie racka kontrolerów - - FM - FM + + Preparing project notes + Przygotowanie notek projektu - - Vibrato depth - + + Preparing microtuner + Przygotowywanie mikrotunera - - Tremolo depth - + + Preparing pattern editor + Przygotowanie edytora szablonów - - - OpulenzInstrumentView - - - Attack - Atak + + Preparing piano roll + Przygotowywanie edytora pianolowego - - - Decay - Zanikanie + + Preparing automation editor + Przygotowanie edytora automatyki + + + lmms::gui::InstrumentFunctionArpeggioView - - - Release - Wybrzmiewanie + + ARPEGGIO + ARPEGGIO - - - Frequency multiplier - Mnożnik częstotliwości + + RANGE + ZAKRES - - - OscillatorObject - - Osc %1 waveform - Osc %1 przebieg + + Arpeggio range: + Zakres arpeggio: - - Osc %1 harmonic - Osc %1 harmoniczne + + octave(s) + oktaw(y) - - - Osc %1 volume - Osc %1 głośność + + REP + POW - - - Osc %1 panning - Osc %1 panoramowanie + + Note repeats: + Powtórzenia nuty: - - - Osc %1 fine detuning left - Osc %1 dokładne odstrojenie lewo + + time(s) + raz(y) - - Osc %1 coarse detuning - Osc %1 zgrubne odstrojenie + + CYCLE + CYKL - - Osc %1 fine detuning right - Osc %1 dokładne odstrojenie prawo + + Cycle notes: + Nuty cyklu: - - Osc %1 phase-offset - Osc %1 przesunięcie fazowe + + note(s) + nut(y) - - Osc %1 stereo phase-detuning - Osc %1 odstrojenie fazy stereo + + SKIP + POMIŃ - - Osc %1 wave shape - Osc %1 kształt fali + + Skip rate: + - - Modulation type %1 - Rodzaj modulacji %1 + + + + % + % - - - Oscilloscope - - Oscilloscope - Oscyloskop + + MISS + - - Click to enable - Naciśnij, aby włączyć + + Miss rate: + - - - PatchesDialog - - Qsynth: Channel Preset - Qsynth: Preset kanału + + TIME + CZAS - - Bank selector - Selektor banku + + Arpeggio time: + Czas arpeggio: - - Bank - Bank + + ms + ms - - Program selector - Selektor programu + + GATE + BRAMKA - - Patch - Próbka + + Arpeggio gate: + Bramka arpeggio: - - Name - Nazwa + + Chord: + Akord: - - OK - OK + + Direction: + Kierunek: - - Cancel - Anuluj + + Mode: + Tryb: - PatmanView + lmms::gui::InstrumentFunctionNoteStackingView - - Open patch - + + STACKING + UKŁADANIE - - Loop - Pętla + + Chord: + Akord: - - Loop mode - Tryb zapętlenia + + RANGE + ZAKRES - - Tune - Dostrojenie + + Chord range: + Zakres akordu: - - Tune mode - Tryb dostrojenia + + octave(s) + oktaw(y) + + + lmms::gui::InstrumentMidiIOView - - No file selected - Nie wybrano żadnego pliku + + ENABLE MIDI INPUT + WŁĄCZ WEJŚCIE MIDI - - Open patch file - Otwórz plik Patch + + + CHAN + This string must be be short, its width must be less than * width of LCD spin-box of two digits + KANA - - Patch-Files (*.pat) - Pliki Patch (*.pat) + + + VELOC + This string must be be short, its width must be less than * width of LCD spin-box of three digits + - - - MidiClipView - - Open in piano-roll - Otwórz w Edytorze Pianolowym + + ENABLE MIDI OUTPUT + WŁĄCZ WYJŚCIE MIDI - - Set as ghost in piano-roll + + PROG + This string must be be short, its width must be less than the * width of LCD spin-box of three digits - - Clear all notes - Wyczyść wszystkie nuty + + NOTE + This string must be be short, its width must be less than * width of LCD spin-box of three digits + NUTA - - Reset name - Zresetuj nazwę + + MIDI devices to receive MIDI events from + Urządzenia MIDI odbierające zdarzenia MIDI z - - Change name - Zmień nazwę + + MIDI devices to send MIDI events to + Urządzenia MIDI wysyłające zdarzenia MIDI do - - Add steps - Dodaj kroki + + VELOCITY MAPPING + MAPOWANIE GŁOŚNOŚCI - - Remove steps - Usuń kroki + + MIDI VELOCITY + GŁOŚNOŚĆ MIDI - - Clone Steps - Klonuj kroki + + MIDI notes at this velocity correspond to 100% note velocity. + Nuty MIDI o tej głośności odpowiadają 100% głośności nut. - PeakController + lmms::gui::InstrumentSoundShapingView - - Peak Controller - Kontroler Szczytowy + + TARGET + CEL - - Peak Controller Bug - Błąd Kontrolera Szczytowego + + FILTER + FILTR - - Due to a bug in older version of LMMS, the peak controllers may not be connect properly. Please ensure that peak controllers are connected properly and re-save this file. Sorry for any inconvenience caused. - Ze względu na błąd w starszej wersji LMMS, kontrolery szczytowe mogą nie być prawidłowo podłączone. Upewnij się, że kontrolery szczytowe są podłączone prawidłowo i zapisz ponownie ten plik. Przepraszamy za wszelkie niedogodności. + + FREQ + CZĘST - - - PeakControllerDialog - - PEAK - PEAK + + Cutoff frequency: + Częstotliwość graniczna: - - LFO Controller - Kontroler LFO + + Hz + Hz - - - PeakControllerEffectControlDialog - - BASE - BAZA + + Q/RESO + Q/REZO - - Base: - + + Q/Resonance: + Q/Rezonans: - - AMNT - ILOŚĆ + + Envelopes, LFOs and filters are not supported by the current instrument. + Obwiednie, LFO i filtry nie są obsługiwane przez bieżący instrument. + + + lmms::gui::InstrumentTrackView - - Modulation amount: - Współczynnik modulacji: + + Mixer channel + Kanał miksera - - MULT - MNOŻ + + Volume + Głośność - - Amount multiplicator: - + + Volume: + Głośność: - - ATCK - ATAK + + VOL + - - Attack: - Atak: + + Panning + Panoramowanie - - DCAY - ZANIK + + Panning: + Panoramowanie: - - Release: - Wybrzmiewanie: + + PAN + PAN - - TRSH - PRÓG: + + MIDI + MIDI - - Treshold: - Próg: + + Input + Wejście - - Mute output - Wycisz wyjście + + Output + Wyjście - - Absolute value - + + Open/Close MIDI CC Rack + Otwórz/zamknij Rack MIDI CC + + + + %1: %2 + %1: %2 - PeakControllerEffectControls + lmms::gui::InstrumentTrackWindow - - Base value - Wartość bazowa + + Volume + Głośność - - Modulation amount - Współczynnik modulacji + + Volume: + Głośność: + + + + VOL + + + + + Panning + Panoramowanie - - Attack - Narastanie + + Panning: + Panoramowanie: - - Release - Wybrzmiewanie + + PAN + PAN - - Treshold - Próg + + Pitch + Odstrojenie - - Mute output - Wycisz wyjście + + Pitch: + Odstrojenie: - - Absolute value - + + cents + centów - - Amount multiplicator - + + PITCH + ODSTR - - - PianoRoll - - Note Velocity - Głośność Nuty + + Pitch range (semitones) + Zakres odstrojenia (półtony) - - Note Panning - Panoramowanie Nuty + + RANGE + ZAKRES - - Mark/unmark current semitone - Zaznacz/odznacz bieżący półton + + Mixer channel + Kanał miksera - - Mark/unmark all corresponding octave semitones - Zaznacz/odznacz wszystkie odpowiadające półtony oktawy + + CHANNEL + KANAŁ - - Mark current scale - Zaznacz bieżącą skalę + + Save current instrument track settings in a preset file + Zapisz bieżące ustawienia ścieżki instrumentu w pliku presetów - - Mark current chord - Zaznacz bieżący akord + + SAVE + ZAPISZ - - Unmark all - Odznacz wszystko + + Envelope, filter & LFO + Obwiednia, filtr i LFO - - Select all notes on this key - Wybierz wszystkie nuty dla tego klucza + + Chord stacking & arpeggio + Układanie akordów i arpeggio - - Note lock - Blokada nuty + + Effects + Efekty - - Last note - Ostatnia nuta + + MIDI + MIDI - - No key - Brak klucza + + Tuning and transposition + Strojenie i transpozycja - - No scale - Brak skali + + Save preset + Zapisz preset - - No chord - Brak akordu + + XML preset file (*.xpf) + Plik XML presetu (*.xpf) - - Nudge - + + Plugin + Wtyczka + + + lmms::gui::InstrumentTuningView - - Snap - + + GLOBAL TRANSPOSITION + TRANSPOZYCJA OGÓLNA - - Velocity: %1% - Głośność: %1% + + Enables the use of global transposition + Umożliwia korzystanie z transpozycji ogólnej - - Panning: %1% left - Panoramowanie: %1% w lewo + + Microtuner is not available for MIDI-based instruments. + Mikrotuner nie jest dostępny dla instrumentów opartych na MIDI. - - Panning: %1% right - Panoramowanie: %1% w prawo + + MICROTUNER + MIKROTUNER - - Panning: center - Panoramowanie: centrum + + Active scale: + Aktywna skala: - - Glue notes failed - + + + Edit scales and keymaps + Edytuj skale i mapowania klawiszy - - Please select notes to glue first. - + + Active keymap: + Aktywne mapowanie klawiszy: - - Please open a clip by double-clicking on it! - Otwórz wzorzec podwójnym kliknięciem! + + Import note ranges from keymap + Importuj zakresy nut z mapowania klawiszy - - - Please enter a new value between %1 and %2: - Wprowadź nową wartość pomiędzy %1 a %2: + + When enabled, the first, last and base notes of this instrument will be overwritten with values specified by the selected keymap. + Po włączeniu tej opcji pierwsza, ostatnia i bazowa nuta tego instrumentu zostaną zastąpione wartościami określonymi przez wybrane mapowanie klawiszy. - PianoRollWindow + lmms::gui::KickerInstrumentView - - Play/pause current clip (Space) - Odtwórz/wstrzymaj obecny wzorzec (spacja) + + Start frequency: + Częstotliwość początkowa: - - Record notes from MIDI-device/channel-piano - Nagraj nuty za pomocą urządzenia MIDI/kanału piano + + End frequency: + Częstotliwość końcowa: - - Record notes from MIDI-device/channel-piano while playing song or BB track - Nagraj nuty za pomocą urządzenia MIDI/kanału piano podczas odtwarzania kompozycji lub ścieżki perkusji/basu + + Frequency slope: + Nachylenie częstotliwości: - - Record notes from MIDI-device/channel-piano, one step at the time - + + Gain: + Wzmocnienie: - - Stop playing of current clip (Space) - Zatrzymaj odtwarzanie obecnego wzorca (spacja) + + Envelope length: + Długość obwiedni: - - Edit actions - Edytuj akcje + + Envelope slope: + Nachylenie obwiedni: - - Draw mode (Shift+D) - Tryb rysowania (Shift+D) + + Click: + Kliknięcie: - - Erase mode (Shift+E) - Tryb wymazywania (Shift+E) + + Noise: + Szum: - - Select mode (Shift+S) - Tryb zaznaczania (Shift+S) + + Start distortion: + Początek zniekształcenia: - - Pitch Bend mode (Shift+T) - + + End distortion: + Koniec zniekształcenia: + + + lmms::gui::LOMMControlDialog - - Quantize - Kwantyzuj + + Depth: + Głębia: - - Quantize positions - + + Compression amount for all bands + Stopień kompresji dla wszystkich pasm - - Quantize lengths - + + Time: + Czas: - - File actions - + + Attack/release scaling for all bands + Skalowanie narastania/opadania dla wszystkich pasm - - Import clip - + + Input Volume: + Głośność wejściowa: - - - Export clip - + + Input volume + Głośność wejściowa - - Copy paste controls - Regulacja kopiuj wklej + + Output Volume: + Głośność wyjściowa: - - Cut (%1+X) - + + Output volume + Głośność wyjściowa - - Copy (%1+C) - + + Upward Depth: + Głębia w górę: - - Paste (%1+V) - + + Upward compression amount for all bands + Stopień kompresji w górę dla wszystkich pasm - - Timeline controls - Kontrola osi czasu + + Downward Depth: + Głębia w dół: - - Glue - + + Downward compression amount for all bands + Stopień kompresji w dół dla wszystkich pasm - - Knife + + High/Mid Crossover - - Fill + + Mid/Low Crossover - - Cut overlaps + + High/mid band split - - Min length as last + + Mid/low band split - - Max length as last + + Enable High Band - - Zoom and note controls - Regulacja nut i powiększenia + + Enable Mid Band + - - Horizontal zooming - Powiększenie poziome + + Enable Low Band + - - Vertical zooming - Powiększenie pionowe + + High Input Volume: + - - Quantization - Kwantyzacja + + Input volume for high band + - - Note length - Długość nuty + + Mid Input Volume: + - - Key - Klucz + + Input volume for mid band + - - Scale + + Low Input Volume: - - Chord + + Input volume for low band - - Snap mode + + High Output Volume: - - Clear ghost notes + + Output volume for high band - - - Piano-Roll - %1 - Edytor Pianolowy - %1 + + Mid Output Volume: + - - - Piano-Roll - no clip - Edytor Pianolowy - brak wzorca + + Output volume for mid band + - - - XML clip file (*.xpt *.xptz) + + Low Output Volume: - - Export clip success + + Output volume for low band - - Clip saved to %1 + + Above Threshold High - - Import clip. + + Downward compression threshold for high band - - You are about to import a clip, this will overwrite your current clip. Do you want to continue? + + Above Threshold Mid - - Open clip + + Downward compression threshold for mid band - - Import clip success + + Above Threshold Low - - Imported clip %1! + + Downward compression threshold for low band - - - PianoView - - Base note - Nuta podstawowa + + Above Ratio High + - - First note - Pierwsza nuta + + Downward compression ratio for high band + - - Last note - Ostatnia nuta + + Above Ratio Mid + - - - Plugin - - Plugin not found - Nie znaleziono wtyczki + + Downward compression ratio for mid band + - - The plugin "%1" wasn't found or could not be loaded! -Reason: "%2" - Wtyczka "%1" Nie została odnaleziona albo nie może zostać załadowana! -Powód: "%2" + + Above Ratio Low + - - Error while loading plugin - Wystąpił błąd podczas ładowania wtyczki + + Downward compression ratio for low band + - - Failed to load plugin "%1"! - Nie można załadować wtyczki "%1"! + + Below Threshold High + - - - PluginBrowser - - Instrument Plugins - Wtyczki instrumentów + + Upward compression threshold for high band + - - Instrument browser - Przeglądarka instrumentów + + Below Threshold Mid + - - Drag an instrument into either the Song-Editor, the Beat+Bassline Editor or into an existing instrument track. - Przeciągnij instrument do Edytora utworu, Edytora perkusji i linii basu lub na istniejącą ścieżkę instrumentu. + + Upward compression threshold for mid band + - - no description - brak opisu + + Below Threshold Low + - - A native amplifier plugin - Natywna wtyczka wzmacniacza + + Upward compression threshold for low band + - - Simple sampler with various settings for using samples (e.g. drums) in an instrument-track - Prosty sampler z licznymi ustawieniami dla sampli (np. perkusji) w ścieżce instrumentu + + Below Ratio High + - - Boost your bass the fast and simple way - Łatwo i szybko podbij bas + + Upward compression ratio for high band + - - Customizable wavetable synthesizer - Konfigurowalny syntezator tablicowy (wavetable). + + Below Ratio Mid + - - An oversampling bitcrusher + + Upward compression ratio for mid band - - Carla Patchbay Instrument + + Below Ratio Low - - Carla Rack Instrument + + Upward compression ratio for low band - - A dynamic range compressor. + + Attack High: - - A 4-band Crossover Equalizer - 4-zakresowy korektor krzyżowy + + Attack time for high band + - - A native delay plugin - Natywna wtyczka opóźnienia + + Attack Mid: + - - A Dual filter plugin - Wtyczka podwójnego filtra + + Attack time for mid band + - - plugin for processing dynamics in a flexible way + + Attack Low: - - A native eq plugin - Natywna wtyczka korektora graficznego + + Attack time for low band + - - A native flanger plugin - Natywna wtyczka flangera + + Release High: + - - Emulation of GameBoy (TM) APU - Emulator układu APU GameBoy'a (TM). + + Release time for high band + - - Player for GIG files - Odtwarzacz plików GIG + + Release Mid: + - - Filter for importing Hydrogen files into LMMS - Filtr importujący pliki Hydrogen do LMMS + + Release time for mid band + - - Versatile drum synthesizer - Wszechstronny syntezator perkusyjny + + Release Low: + - - List installed LADSPA plugins - Pokaż zainstalowane wtyczki LADSPA + + Release time for low band + - - plugin for using arbitrary LADSPA-effects inside LMMS. - Wtyczka umożliwiająca załadowanie dowolnego efektu LADSPA wewnątrz LMMS. + + RMS Time: + Czas RMS: - - Incomplete monophonic imitation TB-303 - Niezupełna monofoniczna emulacja syntezatora TB-303. + + RMS size for sidechain signal (set to 0 for Peak mode) + Rozmiar RMS dla sygnału łańcucha bocznego (ustawiony na 0 dla trybu szczytowego) - - plugin for using arbitrary LV2-effects inside LMMS. - + + Knee: + Czułość: - - plugin for using arbitrary LV2 instruments inside LMMS. - + + Knee size for all compressors + Rozmiar czułości dla wszystkich kompresorów - - Filter for exporting MIDI-files from LMMS - Filtr służący do eksportowania plików MIDI z LMMS + + Range: + Zakres: - - Filter for importing MIDI-files into LMMS - Filtr do importowania plików MIDI do LMMS. + + Maximum gain increase for all bands + Maksymalne zwiększenie wzmocnienia dla wszystkich pasm - - Monstrous 3-oscillator synth with modulation matrix - Potworny 3-oscylatorowy syntezator z macierzą modulacji + + Balance: + Równowaga: - - A multitap echo delay plugin + + Bias input volume towards one channel - - A NES-like synthesizer - Syntezator odwzorowujący NES-a + + Scale output volume with Depth + - - 2-operator FM Synth - 2-operatorowy syntezator FM + + Scale output volume with Depth parameter + - - Additive Synthesizer for organ-like sounds - Syntezator Addytywny umożliwiający stworzenie dźwięków zbliżonych brzmieniem do organów. + + Stereo Link + - - GUS-compatible patch instrument - Instrument kompatybilny z standardem sampli GUS. + + Apply same gain change to both channels + - - Plugin for controlling knobs with sound peaks - Wtyczka do kontrolowania regulatorów za pośrednictwem szczytów dźwięku. + + Auto Time: + - - Reverb algorithm by Sean Costello - Algorytm pogłosu Seana Costello + + Speed up attack and release times when transients occur + Przyspiesz czas narastania i opadania w przypadku wystąpienia stanów przejściowych - - Player for SoundFont files - Odtwarzacz plików SoundFont. + + Mix: + Miks: - - LMMS port of sfxr - Port sxfr dla LMMS + + Wet/Dry of all bands + Suchy/mokry dla wszystkich pasm - - Emulation of the MOS6581 and MOS8580 SID. -This chip was used in the Commodore 64 computer. - Emulator układu dźwiękowego SID (MOS6581 i MOS8580) -Te układy scalone były stosowane w komputerach Commodore 64. + + Feedback + Sprzężenie zwrotne - - A graphical spectrum analyzer. - + + Use output as sidechain signal instead of input + Użyj wyjścia jako sygnału łańcucha bocznego zamiast wejścia - - Plugin for enhancing stereo separation of a stereo input file - Wtyczka rozszerzająca bazę stereo. + + Mid/Side + Śr./b. - - Plugin for freely manipulating stereo output - Wtyczka do nieograniczonego manipulowania wyjściami stereofonicznymi. + + Compress mid/side channels instead of left/right + Kompresuj kanały środkowe/boczne zamiast lewego/prawego - - Tuneful things to bang on - Melodyjny instrument pałeczkowy. + + + Suppress upward compression for side band + Wytłumienie kompresji w górę dla pasma bocznego - - Three powerful oscillators you can modulate in several ways - Trzy potężne oscylatory, które możesz modulować na kilka sposobów + + + Lookahead + - - A stereo field visualizer. + + Lookahead length - - VST-host for using VST(i)-plugins within LMMS - Host VST pozwalający na użycie wtyczek VST(i) w LMMS. + + Clear all parameters + Wyczyść wszystkie parametry + + + lmms::gui::LadspaBrowserView - - Vibrating string modeler - Symulator drgającej struny. + + + Available Effects + Dostępne efekty - - plugin for using arbitrary VST effects inside LMMS. - wtyczka pozwalająca na korzystanie z efektów VST w LMMS. + + + Unavailable Effects + Niedostępne efekty - - 4-oscillator modulatable wavetable synth - 4-oscylatorowy modularny syntezator tablicowy (wavetable) + + + Instruments + Instrumenty - - plugin for waveshaping - wtyczka kształtująca falę + + + Analysis Tools + Narzędzia analityczne - - Mathematical expression parser - Instrument przetwarzający wyrażenia matematyczne + + + Don't know + Nieznane - - Embedded ZynAddSubFX - Wbudowany syntezator ZynAddSubFX. + + Type: + Typ: - PluginDatabaseW + lmms::gui::LadspaControlDialog - - Carla - Add New - + + Link Channels + Połącz kanały - - Format - + + Channel + Kanał + + + lmms::gui::LadspaControlView - - Internal - + + Link channels + Połącz kanały - - LADSPA - LADSPA + + Value: + Wartość: + + + lmms::gui::LadspaDescription - - DSSI - DSSI + + Plugins + Wtyczki - - LV2 - LV2 + + Description + Opis - - VST2 - VST2 + + Name: + Nazwa: - - VST3 - VST3 + + Maker: + Twórca: - - AU - + + Copyright: + Prawa autorskie: - - Sound Kits - + + Requires Real Time: + Wymaga czasu rzeczywistego: - - Type - Rodzaj + + + + Yes + Tak - - Effects - Efekty + + + + No + Nie - - Instruments - Instrumenty + + Real Time Capable: + Możliwość pracy w czasie rzeczywistym: - - MIDI Plugins - Wtyczki MIDI + + In Place Broken: + Na miejscu złamane: - - Other/Misc - + + Channels In: + Kanały wejściowe: - - Architecture - + + Channels Out: + Kanały wyjściowe: + + + lmms::gui::LadspaMatrixControlDialog - - Native - + + Link Channels + Połącz kanały - - Bridged - + + Link + Połącz - - Bridged (Wine) - + + Channel %1 + Kanał %1 - - Requirements - + + Link channels + Połącz kanały + + + lmms::gui::LadspaPortDialog - - With Custom GUI - + + Ports + Porty - - With CV Ports - + + Name + Nazwa - - Real-time safe only + + Rate - - Stereo only - + + Direction + Kierunek - - With Inline Display - + + Type + Typ - - Favorites only - + + Min < Default < Max + Min. < Domyślne < Maks. - - (Number of Plugins go here) - + + Logarithmic + Logarytmiczny - - &Add Plugin - &Dodaj Wtyczkę + + SR Dependent + Zależny od SR - - Cancel - Anuluj + + Audio + Dźwięk - - Refresh + + Control - - Reset filters - + + Input + Wejście - - - - - - - - - - - - - - - - - TextLabel - + + Output + Wyjście - - Format: - Format: + + Toggled + Przełączalne - - Architecture: - Architektura: + + Integer + Całkowite - - Type: - Rodzaj: + + Float + Zmiennoprzecinkowe - - MIDI Ins: - Wejścia MIDI: + + + Yes + Tak + + + lmms::gui::Lb302SynthView - - Audio Ins: - Wejścia Audio: + + Cutoff Freq: + Częst. graniczna: - - CV Outs: - + + Resonance: + Rezonans: - - MIDI Outs: - Wyjścia MIDI: + + Env Mod: + Mod. obw.: - - Parameter Ins: + + Decay: - - Parameter Outs: + + 303-es-que, 24dB/octave, 3 pole filter - - Audio Outs: - Wyjścia Audio: - - - - CV Ins: + + Slide Decay: - - UniqueID: + + DIST: - - Has Inline Display: - + + Saw wave + Fala piłokształtna - - Has Custom GUI: - + + Click here for a saw-wave. + Kliknij tutaj, aby przełączyć na falę piłokształtną. - - Is Synth: - + + Triangle wave + Fala trójkątna - - Is Bridged: - + + Click here for a triangle-wave. + Kliknij tutaj, aby przełączyć na falę trójkątną. - - Information - + + Square wave + Fala prostokątna - - Name - Nazwa + + Click here for a square-wave. + Kliknij tutaj, aby przełączyć na falę prostokątną. - - Label/URI - + + Rounded square wave + Fala prostokątna, zaokrąglona - - Maker - + + Click here for a square-wave with a rounded end. + Kliknij tutaj, aby przełączyć na falę prostokątną z zaokrąglonymi narożami. - - Binary/Filename - + + Moog wave + Fala Mooga - - Focus Text Search - + + Click here for a moog-like wave. + Kliknij tutaj, aby przełączyć na falę Mooga. - - Ctrl+F - Ctrl+F + + Sine wave + Fala sinusoidalna - - - PluginEdit - - Plugin Editor - + + Click for a sine-wave. + Kliknij tutaj, aby przełączyć na falę sinusoidalną. - - Edit - Edytuj + + + White noise wave + Fala szumu białego - - Control - Regulator + + Click here for an exponential wave. + Kliknij tutaj, aby przełączyć na falę wykładniczą. - - MIDI Control Channel: - + + Click here for white-noise. + Kliknij tutaj, aby przełączyć na falę szumu białego. - - N - + + Bandlimited saw wave + Fala piłokształtna pasmowo ograniczona - - Output dry/wet (100%) - + + Click here for bandlimited saw wave. + Kliknij tutaj, aby przełączyć na falę piłokształtną pasmowo ograniczoną. - - Output volume (100%) - + + Bandlimited square wave + Fala kwadratowa pasmowo ograniczona - - Balance Left (0%) - + + Click here for bandlimited square wave. + Kliknij tutaj, aby przełączyć na falę kwadratową pasmowo ograniczoną. - - - Balance Right (0%) - + + Bandlimited triangle wave + Fala trójkątna pasmowo ograniczona - - Use Balance - + + Click here for bandlimited triangle wave. + Kliknij tutaj, aby przełączyć na falę trójkątną pasmowo ograniczoną. - - Use Panning - + + Bandlimited moog saw wave + Fala piłokształtna Mooga pasmowo ograniczona - - Settings - Ustawienia + + Click here for bandlimited moog saw wave. + Kliknij tutaj, aby przełączyć na falę piłokształtną Mooga pasmowo ograniczoną. + + + lmms::gui::LcdFloatSpinBox - - Use Chunks - + + Set value + Ustaw wartość - - Audio: - + + Please enter a new value between %1 and %2: + Wprowadź nową wartość między %1 a %2: + + + lmms::gui::LcdSpinBox - - Fixed-Size Buffer - + + Set value + Ustaw wartość - - Force Stereo (needs reload) - + + Please enter a new value between %1 and %2: + Wprowadź nową wartość między %1 a %2: + + + lmms::gui::LeftRightNav - - MIDI: - MIDI: + + + + Previous + Poprzedni - - Map Program Changes - + + + + Next + Następny - - Send Bank/Program Changes - + + Previous (%1) + Poprzedni (%1) - - Send Control Changes - + + Next (%1) + Następny (%1) + + + lmms::gui::LfoControllerDialog - - Send Channel Pressure - + + LFO + LFO - - Send Note Aftertouch - + + BASE + BAZA - - Send Pitchbend - + + Base: + Baza: - - Send All Sound/Notes Off - + + FREQ + CZĘST - - -Plugin Name - - -Nazwa Wtyczki - + + LFO frequency: + Częstotliwość LFO: - - Program: - + + AMNT + WART - - MIDI Program: - + + Modulation amount: + Wartość modulacji: - - Save State - + + PHS + FAZ - - Load State - + + Phase offset: + Przesunięcie fazowe: - - Information - + + degrees + stopni - - Label/URI: - + + Sine wave + Fala sinusoidalna - - Name: - Nazwa: + + Triangle wave + Fala trójkątna - - Type: - Rodzaj: + + Saw wave + Fala piłokształtna - - Maker: - + + Square wave + Fala prostokątna - - Copyright: - + + Moog saw wave + Fala piłokształtna Mooga - - Unique ID: - + + Exponential wave + Fala wykładnicza - - - PluginFactory - - Plugin not found. - Nie odnaleziono wtyczki. + + White noise + Szum biały - - LMMS plugin %1 does not have a plugin descriptor named %2! - Wtyczka LMMS %1 nie ma deskryptora wtyczki nazwanego %2! + + User-defined shape. +Double click to pick a file. + Kształt zdefiniowany przez użytkownika. +Kliknij dwukrotnie myszką, aby wybrać plik. - - - PluginParameter - - Form - + + Multiply modulation frequency by 1 + Pomnóż częstotliwość modulacji przez 1 - - Parameter Name - + + Multiply modulation frequency by 100 + Pomnóż częstotliwość modulacji przez 100 - - ... - ... + + Divide modulation frequency by 100 + Podziel częstotliwość modulacji przez 100 - PluginRefreshW + lmms::gui::LfoGraph - - Carla - Refresh - + + %1 Hz + %1 Hz + + + lmms::gui::MainWindow - - Search for new... - + + Configuration file + Plik konfiguracyjny - - LADSPA - LADSPA + + Error while parsing configuration file at line %1:%2: %3 + Błąd podczas analizowania pliku konfiguracyjnego w wierszu %1:%2: %3 - - DSSI - DSSI + + Could not open file + Nie można otworzyć pliku - - LV2 - LV2 + + Could not open file %1 for writing. +Please make sure you have write permission to the file and the directory containing the file and try again! + Nie można otworzyć pliku %1 do zapisu. +Upewnij się, że masz uprawnienia do zapisu do pliku i katalogu zawierającego plik i spróbuj ponownie! - - VST2 - VST2 + + Project recovery + Odzyskiwanie projektu - - VST3 - VST3 + + There is a recovery file present. It looks like the last session did not end properly or another instance of LMMS is already running. Do you want to recover the project of this session? + Istnieje plik odzyskiwania. Wygląda na to, że ostatnia sesja nie zakończyła się prawidłowo lub inna instancja LMMS jest już uruchomiona. Chcesz odzyskać projekt tej sesji? - - AU - + + + Recover + Odzyskaj - - SF2/3 - SF2/3 + + Recover the file. Please don't run multiple instances of LMMS when you do this. + Odzyskaj plik. Nie uruchamiaj wielu instancji LMMS podczas wykonywania tej czynności. - - SFZ - SFZ + + + Discard + Odrzuć - - Native - + + Launch a default session and delete the restored files. This is not reversible. + Uruchom domyślną sesję i usuń przywrócone pliki. Tego nie można cofnąć. - - POSIX 32bit - + + Version %1 + Wersja %1 - - POSIX 64bit - + + Preparing plugin browser + Przygotowanie przeglądarki wtyczek - - Windows 32bit - + + Preparing file browsers + Przygotowanie przeglądarki plików - - Windows 64bit - + + My Projects + Moje projekty - - Available tools: - + + My Samples + Moje próbki - - python3-rdflib (LADSPA-RDF support) - + + My Presets + Moje presety - - carla-discovery-win64 - + + My Home + Mój katalog główny - - carla-discovery-native - + + Root Directory + Katalog główny - - carla-discovery-posix32 - + + Volumes + Głośność - - carla-discovery-posix64 - + + My Computer + Mój komputer - - carla-discovery-win32 - + + Loading background picture + Ładowanie obrazu tła - - Options: - + + &File + &Plik - - Carla will run small processing checks when scanning the plugins (to make sure they won't crash). -You can disable these checks to get a faster scanning time (at your own risk). - + + &New + &Nowy - - Run processing checks while scanning - + + &Open... + &Otwórz... - - Press 'Scan' to begin the search - + + &Save + Zapi&sz - - Scan - + + Save &As... + Z&apisz jako... - - >> Skip - + + Save as New &Version + Zapisz jako no&wą wersję - - Close - Zamkni + + Save as default template + Zapisz jako szablon domyślny - - - PluginWidget - - - - - - Frame - + + Import... + Importuj... - - Enable - Włącz + + E&xport... + E&ksportuj... - - On/Off - On/Off + + E&xport Tracks... + E&ksportuj ścieżki... - - - - - PluginName - + + Export &MIDI... + Eksportuj &MIDI... - - MIDI - MIDI + + &Quit + Za&kończ - - AUDIO IN - + + &Edit + &Edycja - - AUDIO OUT - + + Undo + Cofnij - - GUI - + + Redo + Ponów - - Edit - Edytuj + + Scales and keymaps + Skale i mapowania klawiszy - - Remove - Usuń + + Settings + Ustawienia - - Plugin Name - Nazwa Wtyczki + + &View + &Widok - - Preset: - + + &Tools + &Narzędzia - - - ProjectNotes - - Project Notes - Pokaż/ukryj notatki projektu + + &Help + &Pomoc - - Enter project notes here - Wprowadź notatki dotyczące projektu + + Online Help + Pomoc online - - Edit Actions - Edytuj akcje + + Help + Pomoc - - &Undo - C&ofnij + + About + O LMMS - - %1+Z - %1+Z + + Create new project + Utwórz nowy projekt - - &Redo - Powtó&rz + + Create new project from template + Utwórz nowy projekt z szablonu - - %1+Y - %1+Y + + Open existing project + Otwórz istniejący projekt - - &Copy - &Kopiuj + + Recently opened projects + Ostatnio otwarte projekty - - %1+C - %1+C + + Save current project + Zapisz bieżący projekt - - Cu&t - Wy&tnij + + Export current project + Eksportuj bieżący projekt - - %1+X - %1+X + + Metronome + Metronom - - &Paste - &Wklej + + + Song Editor + Edytor utworu - - %1+V - %1+V + + + Pattern Editor + Edytor szablonów - - Format Actions - Formatowanie + + + Piano Roll + Edytor pianolowy - - &Bold - Pogru&bienie + + + Automation Editor + Edytor automatyki - - %1+B - %1+B + + + Mixer + Mikser - - &Italic - Pochylen&ie + + Show/hide controller rack + Pokaż/ukryj racka kontrolerów - - %1+I - %1+I + + Show/hide project notes + Pokaż/ukryj notatki projektu - - &Underline - P&odkreślenie + + Untitled + Bez nazwy - - %1+U - %1+U + + Recover session. Please save your work! + Odzyskana sesja. Zapisz swoją pracę! - - &Left - Do &lewej + + LMMS %1 + LMMS %1 - - %1+L - %1+L + + Recovered project not saved + Odzyskany projekt nie został zapisany - - C&enter - &Do środka + + This project was recovered from the previous session. It is currently unsaved and will be lost if you don't save it. Do you want to save it now? + Ten projekt został odzyskany z poprzedniej sesji. Obecnie nie jest zapisany i zostanie utracony, jeśli go nie zapiszesz. Chcesz go teraz zapisać? - - %1+E - %1+E + + Project not saved + Projekt nie został zapisany - - &Right - Do p&rawej + + The current project was modified since last saving. Do you want to save it now? + Bieżący projekt został zmodyfikowany od ostatniego zapisania. Chcesz go teraz zapisać? - - %1+R - %1+R + + Open Project + Otwórz projekt - - &Justify - Wy&justuj + + LMMS (*.mmp *.mmpz) + LMMS (*.mmp *.mmpz) - - %1+J - %1+J + + Save Project + Zapisz projekt - - &Color... - &Kolor… + + LMMS Project + Projekt LMMS - - - ProjectRenderer - - WAV (*.wav) - WAV (*.wav) + + LMMS Project Template + Szablon projektu LMMS - - FLAC (*.flac) - FLAC (*.flac) + + Save project template + Zapisz szablon projektu - - OGG (*.ogg) - OGG (*.ogg) + + Overwrite default template? + Zastąpić szablon domyślny? - - MP3 (*.mp3) - MP3 (*.mp3) + + This will overwrite your current default template. + Spowoduje to zastąpienie bieżącego szablonu domyślnego. - - - QObject - - Reload Plugin - Przeładuj Wtyczkę + + Help not available + Pomoc niedostępna - - Show GUI - Pokaż GUI + + Currently there's no help available in LMMS. +Please visit http://lmms.sf.net/wiki for documentation on LMMS. + Aktualnie pomoc dla LMMS jest niedostępna. +Odwiedź http://lmms.sf.net/wiki w celu uzyskania dokumentacji na temat LMMS. - - Help - Pomoc + + Controller Rack + Rack kontrolerów - - - QWidget - - - - - Name: - Nazwa: + + Project Notes + Notatki do projektu - - URI: - URI: + + Fullscreen + Pełny ekran - - - - Maker: - Twórca: + + Volume as dBFS + Głośność jako dBFS - - - - Copyright: - Prawa autorskie: + + Smooth scroll + Płynne przewijanie + + + + Enable note labels in piano roll + Włącz etykiety nut w edytorze pianolowym - - - Requires Real Time: - Wymaga czasu rzeczywistego: + + MIDI File (*.mid) + Plik MIDI (*.mid) - - - - - - - Yes - Tak + + + untitled + bez nazwy - - - - - - - No - Nie + + + Select file for project-export... + Wybierz plik do eksportu projektu... - - - Real Time Capable: - Zdolność do pracy w czasie rzeczywistym: + + Select directory for writing exported tracks... + Wybierz katalog do zapisu eksportowanych ścieżek... - - - In Place Broken: - + + Save project + Zapisz projekt - - - Channels In: - Kanały wejściowe: + + Project saved + Projekt został zapisany - - - Channels Out: - Kanały wyjściowe: + + The project %1 is now saved. + Projekt %1 został zapisany. - - File: %1 - Plik: %1 + + Project NOT saved. + Projekt NIE został zapisany. - - File: - Plik: + + The project %1 was not saved! + Projekt %1 nie został zapisany! - - - RecentProjectsMenu - - &Recently Opened Projects - &Ostatnio Otwierane Projekty + + Import file + Importuj plik - - - RenameDialog - - Rename... - Zmień nazwę… + + MIDI sequences + Sekwencje MIDI - - - ReverbSCControlDialog - - Input - Wejście + + Hydrogen projects + Projekty Hydrogen - - Input gain: - Wzmocnienie wejścia: + + All file types + Wszystkie typy plików + + + lmms::gui::MalletsInstrumentView - - Size - Rozmiar + + Instrument + Instrument - - Size: - Rozmiar: + + Spread + Rozstrzał - - Color - Kolor + + Spread: + Rozstrzał: - - Color: - Kolor: + + Random + Losowe - - Output - Wyjście + + Random: + Losowe: - - Output gain: - Wzmocnienie wyjścia: + + Missing files + Brakujące pliki - - - ReverbSCControls - - Input gain - Wzmocnienie wejścia + + Your Stk-installation seems to be incomplete. Please make sure the full Stk-package is installed! + Wygląda na to, że instalacja Stk jest niekompletna. Upewnij się, że pełny pakiet Stk jest zainstalowany! - - Size - Rozmiar + + Hardness + Twardość - - Color - Kolor + + Hardness: + Twardość: - - Output gain - Wzmocnienie wyścia + + Position + Pozycja - - - SaControls - - Pause - + + Position: + Pozycja: - - Reference freeze - + + Vibrato gain + Wzmocnienie vibrato - - Waterfall - + + Vibrato gain: + Wzmocnienie vibrato: - - Averaging - + + Vibrato frequency + Częstotliwość vibrato - - Stereo - Stereo + + Vibrato frequency: + Częstotliwość vibrato: - - Peak hold + + Stick mix - - Logarithmic frequency + + Stick mix: - - Logarithmic amplitude - + + Modulator + Modulator - - Frequency range - + + Modulator: + Modulator: - - Amplitude range - + + Crossfade + Płynne przechodzenie - - FFT block size - + + Crossfade: + Płynne przechodzenie: - - FFT window type - + + LFO speed + Prędkość LFO - - Peak envelope resolution - + + LFO speed: + Prędkość LFO: - - Spectrum display resolution - + + LFO depth + Głębia LFO - - Peak decay multiplier - + + LFO depth: + Głębia LFO: - - Averaging weight - + + ADSR + ADSR - - Waterfall history size - + + ADSR: + ADSR: - - Waterfall gamma correction - + + Pressure + Ciśnienie - - FFT window overlap - + + Pressure: + Ciśnienie: - - FFT zero padding - + + Speed + Prędkość - - - Full (auto) - + + Speed: + Prędkość: + + + lmms::gui::ManageVSTEffectView - - - - Audible - + + - VST parameter control + - kontrola parametru VST - - Bass - Basy + + VST sync + Synchronizacja VST - - Mids - + + + Automated + Automatyzowane - - High - + + Close + Zamknij + + + lmms::gui::ManageVestigeInstrumentView - - Extended - + + + - VST plugin control + - kontrola wtyczki VST - - Loud - + + VST Sync + Synchronizacja VST - - Silent - + + + Automated + Automatyzowane - - (High time res.) - + + Close + Zamknij + + + lmms::gui::MeterDialog - - (High freq. res.) - + + + Meter Numerator + Numerator metryczny - - Rectangular (Off) - + + Meter numerator + Numerator metryczny - - - Blackman-Harris (Default) - + + + Meter Denominator + Denominator metryczny - - Hamming - + + Meter denominator + Denominator metryczny - - Hanning - + + TIME SIG + METRUM - SaControlsDialog - - - Pause - - + lmms::gui::MicrotunerConfig - - Pause data acquisition - + + Selected scale slot + Wybrany slot skali - - Reference freeze - + + Selected keymap slot + Wybrany slot mapowania klawiszy - - Freeze current input as a reference / disable falloff in peak-hold mode. - + + + First key + Pierwszy klawisz - - Waterfall - + + + Last key + Ostatni klawisz - - Display real-time spectrogram - + + + Middle key + Środkowy klawisz - - Averaging - + + + Base key + Bazowy klawisz - - Enable exponential moving average - + + + + Base note frequency + Częstotliwość nuty bazowej - - Stereo - Stereo + + Microtuner Configuration + Konfiguracja mikrotunera - - Display stereo channels separately - + + Scale slot to edit: + Slot skali do edycji: - - Peak hold - + + Scale description. Cannot start with "!" and cannot contain a newline character. + Opis skali. Nie może zaczynać się od „!” i nie może zawierać znaku nowej linii. - - Display envelope of peak values - + + + Load + Załaduj - - Logarithmic frequency - + + + Save + Zapisz - - Switch between logarithmic and linear frequency scale - + + Load scale definition from a file. + Załaduj definicję skali z pliku. - - - Frequency range - + + Save scale definition to a file. + Zapisz definicję skali do pliku. - - Logarithmic amplitude - + + Enter intervals on separate lines. Numbers containing a decimal point are treated as cents. +Other inputs are treated as integer ratios and must be in the form of 'a/b' or 'a'. +Unity (0.0 cents or ratio 1/1) is always present as a hidden first value; do not enter it manually. + Wprowadź interwały w oddzielnych wierszach. Liczby zawierające przecinek dziesiętny są traktowane jako centy. +Pozostałe dane wejściowe są traktowane jako stosunki całkowite i muszą mieć formę „a/b” lub „a”. +Jedność (0,0 centów lub stosunek 1/1) jest zawsze obecna jako ukryta pierwsza wartość; nie wprowadzaj jej ręcznie. - - Switch between logarithmic and linear amplitude scale - + + Apply scale changes + Zastosuj zmiany skali - - - Amplitude range - + + Verify and apply changes made to the selected scale. To use the scale, select it in the settings of a supported instrument. + Sprawdź i zastosuj zmiany wprowadzone do wybranej skali. Aby użyć skali, wybierz ją w ustawieniach obsługiwanego instrumentu. - - Envelope res. - + + Keymap slot to edit: + Slot mapowania klawiszy do edycji: - - Increase envelope resolution for better details, decrease for better GUI performance. - + + Keymap description. Cannot start with "!" and cannot contain a newline character. + Opis mapowania klawiszy. Nie może zaczynać się od „!” i nie może zawierać znaku nowej linii. - - - Draw at most - + + Load key mapping definition from a file. + Załaduj definicję mapowania klawiszy z pliku. - - envelope points per pixel - + + Save key mapping definition to a file. + Zapisz definicję mapowania klawiszy do pliku. - - Spectrum res. - + + Enter key mappings on separate lines. Each line assigns a scale degree to a MIDI key, +starting with the middle key and continuing in sequence. +The pattern repeats for keys outside of the explicit keymap range. +Multiple keys can be mapped to the same scale degree. +Enter 'x' if you wish to leave the key disabled / not mapped. + Wprowadź mapowania klawiszy w osobnych wierszach. Każdy wiersz przypisuje stopień skali do klawisza MIDI, +zaczynając od środkowego klawisza i kontynuując sekwencję. +Szablon powtarza się dla klawiszy spoza wyraźnego zakresu mapowania klawiszy. +Wiele klawiszy można mapować do tego samego stopnia skali. +Wprowadź „x”, jeśli chcesz pozostawić klawisz wyłączony/niemapowany. - - Increase spectrum resolution for better details, decrease for better GUI performance. - + + FIRST + PIERWSZY - - spectrum points per pixel - + + First MIDI key that will be mapped + Pierwszy klawisz MIDI, który będzie mapowany - - Falloff factor - + + LAST + OSTATNI - - Decrease to make peaks fall faster. - + + Last MIDI key that will be mapped + Ostatni klawisz MIDI, który będzie mapowany - - Multiply buffered value by - + + MIDDLE + ŚRODKOWY - - Averaging weight - + + First line in the keymap refers to this MIDI key + Pierwszy wiersz w mapowaniu klawiszy odnosi się do tego klawisza MIDI - - Decrease to make averaging slower and smoother. - + + BASE N. + N. BAZO - - New sample contributes - + + Base note frequency will be assigned to this MIDI key + Częstotliwość nuty bazowej zostanie przypisana do tego klawisza MIDI - - Waterfall height - + + BASE NOTE FREQ + CZĘST NUTY BAZO - - Increase to get slower scrolling, decrease to see fast transitions better. Warning: medium CPU usage. - + + Apply keymap changes + Zastosuj zmiany w mapowaniu klawiszy - - Keep - + + Verify and apply changes made to the selected key mapping. To use the mapping, select it in the settings of a supported instrument. + Sprawdź i zastosuj zmiany wprowadzone do wybranego mapowania klawiszy. Aby użyć mapowania, wybierz je w ustawieniach obsługiwanego instrumentu. - - lines - + + Scale parsing error + Błąd analizowania skali - - Waterfall gamma - + + Scale name cannot start with an exclamation mark + Nazwa skali nie może zaczynać się od wykrzyknika - - Decrease to see very weak signals, increase to get better contrast. - + + Scale name cannot contain a new-line character + Nazwa skali nie może zawierać znaku nowej linii - - Gamma value: - + + Interval defined in cents cannot be converted to a number + Interwał zdefiniowany w centach nie może być przekonwertowany na liczbę - - Window overlap + + Numerator of an interval defined as a ratio cannot be converted to a number - - Increase to prevent missing fast transitions arriving near FFT window edges. Warning: high CPU usage. + + Denominator of an interval defined as a ratio cannot be converted to a number - - Each sample processed - + + Interval defined as a ratio cannot be negative + Interwał zdefiniowany jako współczynnik nie może być ujemny - - times - + + Keymap parsing error + Błąd analizowania mapowania klawiszy - - Zero padding - + + Keymap name cannot start with an exclamation mark + Nazwa mapowania klawiszy nie może zaczynać się od wykrzyknika - - Increase to get smoother-looking spectrum. Warning: high CPU usage. - + + Keymap name cannot contain a new-line character + Nazwa mapowania klawiszy nie może zawierać znaku nowej linii - - Processing buffer is - + + Scale degree cannot be converted to a whole number + Stopień skali nie może być przekonwertowany na liczbę całkowitą - - steps larger than input block - + + Scale degree cannot be negative + Stopień skali nie może być ujemny - - Advanced settings - Ustwawienia zaawansowane + + Invalid keymap + Nieprawidłowe mapowanie klawiszy - - Access advanced settings - Dostęp do zaawansowanych ustawień + + Base key is not mapped to any scale degree. No sound will be produced as there is no way to assign reference frequency to any note. + Tonacja bazowa nie jest mapowana do żadnego stopnia skali. Nie zostanie wytworzony żaden dźwięk, ponieważ nie ma możliwości przypisania częstotliwości odniesienia do żadnej nuty. - - - FFT block size - + + Open scale + Otwórz skalę - - - FFT window type - + + + Scala scale definition (*.scl) + Definicja skali Scala (*.scl) - - - SampleBuffer - - Fail to open file - Nie udało się otworzyć pliku + + Scale load failure + Błąd ładowania skali - - Audio files are limited to %1 MB in size and %2 minutes of playing time - Pliki dźwiękowe mogą mieć rozmiar do %1 MB i trwać maks. %2 minut(y) + + + Unable to open selected file. + Nie można otworzyć wybranego pliku. - - Open audio file - Otwórz plik dźwiękowy + + Open keymap + Otwórz mapowanie klawiszy - - All Audio-Files (*.wav *.ogg *.ds *.flac *.spx *.voc *.aif *.aiff *.au *.raw) - Wszystkie pliki dźwiękowe (*.wav *.ogg *.ds *.flac *.spx *.voc *.aif *.aiff *.au *.raw) + + + Scala keymap definition (*.kbm) + Definicja mapowania klawiszy Scala (*.kbm) - - Wave-Files (*.wav) - Pliki Wave (*.wav) + + Keymap load failure + Błąd ładowania mapowania klawiszy - - OGG-Files (*.ogg) - Pliki OGG (*.ogg) + + Save scale + Zapisz skalę - - DrumSynth-Files (*.ds) - Pliki DrumSynth (*.ds) + + Scale save failure + Błąd zapisywania skali - - FLAC-Files (*.flac) - Pliki FLAC (*.flac) + + + Unable to open selected file for writing. + Nie można otworzyć wybranego pliku do zapisu. - - SPEEX-Files (*.spx) - Pliki SPEEX (*.spx) + + Save keymap + Zapisz mapowanie klawiszy - - VOC-Files (*.voc) - Pliki VOC (*.voc) + + Keymap save failure + Błąd zapisywania mapowania klawiszy + + + lmms::gui::MidiCCRackView - - AIFF-Files (*.aif *.aiff) - Pliki AIFF (*.aif *.aiff) + + + MIDI CC Rack - %1 + Rack MIDI CC - %1 - - AU-Files (*.au) - Pliki AU (*.au) + + MIDI CC Knobs: + Pokrętła MIDI CC: - - RAW-Files (*.raw) - Pliki RAW (*.raw) + + CC %1 + CC %1 - SampleClipView - - - Double-click to open sample - - + lmms::gui::MidiClipView - - Delete (middle mousebutton) - Usuń (środkowy przycisk myszy) + + + Transpose + Transponuj - - Delete selection (middle mousebutton) - Usuń zaznaczone (środkowy przycisk myszy) + + Semitones to transpose by: + Półtony do transpozycji o: - - Cut - Wytnij + + Open in piano-roll + Otwórz w edytorze pianolowym - - Cut selection - Wytnij zaznaczone + + Set as ghost in piano-roll + - - Copy - Kopiuj + + Set as ghost in automation editor + - - Copy selection - Kopiuj zaznaczone + + Clear all notes + Wyczyść wszystkie nuty - - Paste - Wklej + + Reset name + Resetuj nazwę - - Mute/unmute (<%1> + middle click) - Wycisz/cofnij wyciszenie (<%1> + środkowy przycisk myszy) + + Change name + Zmień nazwę - - Mute/unmute selection (<%1> + middle click) - + + Add steps + Dodaj kroki - - Reverse sample - Odwróć próbkę + + Remove steps + Usuń kroki - - Set clip color - + + Clone Steps + Klonuj kroki + + + lmms::gui::MidiSetupWidget - - Use track color - Użyj koloru ścieżki + + Device + Urządzenie - SampleTrack + lmms::gui::MixerChannelLcdSpinBox - - Volume - Głośność + + Assign to: + Przypisz do: - - Panning - Panoramowanie + + New Mixer Channel + Nowy kanał miksera - - Mixer channel - Kanał FX + + Please enter a new value between %1 and %2: + Wprowadź nową wartość między %1 a %2: - - - Sample track - Ścieżka audio + + Set value + Ustaw wartość - SampleTrackView + lmms::gui::MixerChannelView - - Track volume - Głośność ścieżki + + Channel send amount + - - Channel volume: - Głośność kanału: + + Mute + Cisza - - VOL - VOL + + Mute this channel + - - Panning - Panoramowanie + + Solo + Solo - - Panning: - Panoramowanie: + + Solo this channel + - - PAN - PAN + + Fader %1 + Ściszanie %1 - - Channel %1: %2 - FX %1: %2 + + Move &left + Przesuń w &lewo - - - SampleTrackWindow - - GENERAL SETTINGS - GŁÓWNE USTAWIENIA + + Move &right + P&rzesuń w prawo - - Sample volume - + + Rename &channel + Zmień nazwę &kanału - - Volume: - Głośność: + + R&emove channel + &Usuń kanał - - VOL - VOL + + Remove &unused channels + &Usuń nieużywane kanały - - Panning - Panoramowanie + + Color + Kolor - - Panning: - Panoramowanie: + + Change + Zmień - - PAN - PAN + + Reset + Resetuj - - Mixer channel - Kanał FX + + Pick random + Wybierz losowe - - CHANNEL - FX + + This Mixer Channel is being used. +Are you sure you want to remove this channel? + +Warning: This operation can not be undone. + Ten kanał miksera jest używany. +Na pewno chcesz usunąć ten kanał? + +Ostrzeżenie: Tej operacji nie można cofnąć. - - - SaveOptionsWidget - - Discard MIDI connections - + + Confirm removal + Potwierdź usunięcie - - Save As Project Bundle (with resources) - + + Don't ask again + Nie pytaj ponownie - SetupDialog + lmms::gui::MixerView - - Reset to default value + + Mixer + Mikser + + + + lmms::gui::MonstroView + + + Operators view + Widok operatora + + + + Matrix view + Widok macierzy + + + + + + Volume + Głośność + + + + + + Panning + Panoramowanie + + + + + + Coarse detune - - Use built-in NaN handler + + + + semitones + półtów + + + + + Fine tune left - - Settings - Ustawienia + + + + + cents + centów - - - General + + + Fine tune right - - Graphical user interface (GUI) - + + + + Stereo phase offset + Przesunięcie fazowe stereo - - Display volume as dBFS - Wyświetlaj głośność jako dBFS + + + + + + deg + st. - - Enable tooltips - Włącz podpowiedzi + + Pulse width + Współczynnik wypełnienia impulsu - - Enable master oscilloscope by default + + Send sync on pulse rise - - Enable all note labels in piano roll - Włącz etykiety wszystkich nut w edytorze pianowym. + + Send sync on pulse fall + - - Enable compact track buttons - Włącz kompaktowe przyciski ścieżek + + Hard sync oscillator 2 + - - Enable one instrument-track-window mode + + Reverse sync oscillator 2 - - Show sidebar on the right-hand side + + Sub-osc mix - - Let sample previews continue when mouse is released + + Hard sync oscillator 3 - - Mute automation tracks during solo + + Reverse sync oscillator 3 - - Show warning when deleting tracks - + + + + + Attack + Narastanie - - Projects + + + Rate - - Compress project files by default - Domyślnie kompresuj pliki projektu + + + Phase + Faza - - Create a backup file when saving a project - + + + Pre-delay + Opóźnienie wstępne - - Reopen last project on startup - Ponownie otwórz ostatni projekt przy uruchomieniu + + + Hold + - - Language + + + Decay - - - Performance + + + Sustain - - Autosave - + + + Release + Opadanie - - Enable autosave - Włącz automatyczny zapis + + + Slope + Nachylenie - - Allow autosave while playing - + + Mix osc 2 with osc 3 + Miksuj osc 2 z osc 3 - - User interface (UI) effects vs. performance - + + Modulate amplitude of osc 3 by osc 2 + Moduluj amplitudę osc 3 z osc 2 - - Smooth scroll in song editor - Płynne przewijanie w edytorze kompozycji + + Modulate frequency of osc 3 by osc 2 + Moduluj częstotliwość osc 3 z osc 2 - - Display playback cursor in AudioFileProcessor - + + Modulate phase of osc 3 by osc 2 + Moduluj fazę osc 3 z osc 2 - - Plugins - Wtyczki + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Modulation amount + Wartość modulacji + + + lmms::gui::MultitapEchoControlDialog - - VST plugins embedding: - + + Length + Długość - - No embedding - Nie osadzaj + + Step length: + Długość kroku: - - Embed using Qt API - Osadź używając API Qt + + Dry + Suchy - - Embed using native Win32 API - Osadź używając natywnego API Win32 + + Dry gain: + Wzmocnienie suchego: - - Embed using XEmbed protocol - Osądź używając protokołu XEmbed + + Stages + Etapy - - Keep plugin windows on top when not embedded + + Low-pass stages: - - Sync VST plugins to host playback - Synchronizuj wtyczki VST z hostem + + Swap inputs + Zamień wyjścia - - Keep effects running even without input - Pozostaw efekty włączone, nawet bez wejścia + + Swap left and right input channels for reflections + Zamień lewy i prawy kanał wejściowy dla odbić + + + lmms::gui::NesInstrumentView - - - Audio - Audio + + + + + Volume + Głośność - - Audio interface + + + + Coarse detune - - HQ mode for output audio device - + + + + Envelope length + Długość obwiedni - - Buffer size - + + Enable channel 1 + Włącz kanał 1 - - - MIDI - MIDI + + Enable envelope 1 + Włącz obwiednię 1 - - MIDI interface + + Enable envelope 1 loop - - Automatically assign MIDI controller to selected track - + + Enable sweep 1 + Włącz wobulację 1 - - LMMS working directory - Katalog roboczy LMMS + + + Sweep amount + Wartość wobulacji - - VST plugins directory - Katalog wtyczek VST + + + Sweep rate + Częstotliwość wobulacji - - LADSPA plugins directories - Katalog wtyczek LADSPA + + + 12.5% Duty cycle + - - SF2 directory - Katalog SF2 + + + 25% Duty cycle + - - Default SF2 - Domyślne SF2 + + + 50% Duty cycle + - - GIG directory - Katalog GIG + + + 75% Duty cycle + - - Theme directory - Katalog motywu + + Enable channel 2 + Włącz kanał 2 - - Background artwork - Grafika w tle + + Enable envelope 2 + Włącz obwiednię 2 - - Some changes require restarting. + + Enable envelope 2 loop - - Autosave interval: %1 - + + Enable sweep 2 + Włącz wobulację 2 - - Choose the LMMS working directory - + + Enable channel 3 + Włącz kanał 3 - - Choose your VST plugins directory - + + Noise Frequency + Częstotliwość szumu - - Choose your LADSPA plugins directory - + + Frequency sweep + Wobulacja częstotliwości - - Choose your default SF2 - + + Enable channel 4 + Włącz kanał 4 - - Choose your theme directory - + + Enable envelope 4 + Włącz obwiednię 4 - - Choose your background picture + + Enable envelope 4 loop - - - Paths - Ścieżki + + Quantize noise frequency when using note frequency + Kwantyzuj częstotliwość szumu przy użyciu częstotliwości nuty + + + + Use note frequency for noise + Użyj częstotliwości nuty dla szumu + + + + Noise mode + Tryb szumu + + + + Master volume + Głośność główna - - OK - OK + + Vibrato + Vibrato + + + lmms::gui::OpulenzInstrumentView - - Cancel - Anuluj + + + Attack + Narastanie - - Frames: %1 -Latency: %2 ms - Ramki: %1 -Opóźnienie: %2 ms + + + Decay + - - Choose your GIG directory - Wybierz katalog GIG + + + Release + Opadanie - - Choose your SF2 directory - Wybierz swój katalog z SF2 + + + Frequency multiplier + Mnożnik częstotliwości + + + lmms::gui::OrganicInstrumentView - - minutes - minuty + + Distortion: + Zniekształcenie: - - minute - minuta + + Volume: + Głośność: - - Disabled - Wyłączono + + Randomise + Losowo - - - SidInstrument - - Cutoff frequency - Częstotliwość graniczna + + + Osc %1 waveform: + - - Resonance - Zafalowanie charakterystyki + + Osc %1 volume: + Głośność osc %1: - - Filter type - Rodzaj filtru + + Osc %1 panning: + Panoramowanie osc %1: - - Voice 3 off - Wyłącz głos 3 + + Osc %1 stereo detuning + Odstrojenie stereo osc %1 - - Volume - Głośność + + cents + centów - - Chip model - Rodzaj scalaka + + Osc %1 harmonic: + - SidInstrumentView + lmms::gui::Oscilloscope - - Volume: - Głośność: + + Oscilloscope + Oscyloskop - - Resonance: - Zafalowanie charakterystyki: + + Click to enable + Kliknij, aby włączyć + + + lmms::gui::PatmanView - - - Cutoff frequency: - Częstotliwość graniczna: + + Open patch + Otwórz próbkę - - High-pass filter - + + Loop + Pętla - - Band-pass filter - + + Loop mode + Tryb pętli - - Low-pass filter - + + Tune + Dostrojenie - - Voice 3 off - + + Tune mode + Tryb dostrojenia - - MOS6581 SID - MOS6581 SID + + No file selected + Nie wybrano pliku - - MOS8580 SID - MOS8580 SID + + Open patch file + Otwórz plik Patch - - - Attack: - Atak: + + Patch-Files (*.pat) + Pliki Patch (*.pat) + + + lmms::gui::PatternClipView - - - Decay: - Zanikanie: + + Open in Pattern Editor + Otwórz w edytorze szablonów - - Sustain: - Podtrzymanie: + + Reset name + Resetuj nazwę - - - Release: - Zwolnienie: + + Change name + Zmień nazwę + + + lmms::gui::PatternEditorWindow - - Pulse Width: - Współczynnik wypełnienia impulsu: + + Pattern Editor + Edytor szablonów - - Coarse: - Zgrubne odstrojenie: + + Play/pause current pattern (Space) + Odtwarzaj/wstrzymaj bieżący szablon (Spacja) - - Pulse wave - + + Stop playback of current pattern (Space) + Zatrzymaj odtwarzanie bieżącego szablonu (Spacja) - - Triangle wave - Fala trójkątna + + Pattern selector + Selektor szablonu - - Saw wave - Fala piłokształtna + + Track and step actions + Czynności ścieżki i kroku - - Noise - Szum + + New pattern + Nowy szablon - - Sync - Synchronizacja + + Clone pattern + Klonuj szablon - - Ring modulation - + + Add sample-track + Dodaj ścieżkę-próbkę - - Filtered - Filtrowany + + Add automation-track + Dodaj ścieżkę-automatyki - - Test - Test + + Remove steps + Usuń kroki - - Pulse width: - + + Add steps + Dodaj kroki - - - SideBarWidget - - Close - Zamkni + + Clone Steps + Klonuj kroki - Song - - - Tempo - Tempo - + lmms::gui::PeakControllerDialog - - Master volume - Głośność główna + + PEAK + SZCZ - - Master pitch - Odstrojenie główne + + LFO Controller + Kontroler LFO + + + lmms::gui::PeakControllerEffectControlDialog - - Aborting project load - + + BASE + BAZA - - Project file contains local paths to plugins, which could be used to run malicious code. - + + Base: + Baza: - - Can't load project: Project file contains local paths to plugins. - + + AMNT + WART - - LMMS Error report - Zgłoszenie błędu LMMS + + Modulation amount: + Wartość modulacji: - - (repeated %1 times) - (powtórzone %1 razy) + + MULT + MNOŻ - - The following errors occurred while loading: - + + Amount multiplicator: + Mnożnik wartości: - - - SongEditor - - Could not open file - Nie można otworzyć pliku + + ATCK + NARA - - Could not open file %1. You probably have no permissions to read this file. - Please make sure to have at least read permissions to the file and try again. - Nie da się otworzyć pliku %1. Prawdopodobnie nie posiadasz uprawnień do odczytu tego pliku. -Upewnij się, że masz przynajmniej uprawnienia odczytu tego pliku a następnie spróbuj ponownie. + + Attack: + Narastanie: - - Operation denied + + DCAY - - A bundle folder with that name already eists on the selected path. Can't overwrite a project bundle. Please select a different name. - + + Release: + Opadanie: - - - - Error - BłądBłą + + TRSH + PRÓG - - Couldn't create bundle folder. - + + Treshold: + Próg: - - Couldn't create resources folder. - + + Mute output + Wycisz wyjście - - Failed to copy resources. - + + Absolute value + Wartość bezwzględna + + + lmms::gui::PeakIndicator - - Could not write file - Nie można zapisać pliku + + -inf + -niesk. + + + lmms::gui::PianoRoll - - Could not open %1 for writing. You probably are not permitted towrite to this file. Please make sure you have write-access to the file and try again. - + + Note Velocity + Głośność nuty - - This %1 was created with LMMS %2 - + + Note Panning + Panoramowanie nuty - - Error in file - Błąd w pliku + + Mark/unmark current semitone + Zaznacz/odznacz bieżący półton - - The file %1 seems to contain errors and therefore can't be loaded. - Wygląda na to, że plik %1 zawiera błędy i nie może zostać załadowany. + + Mark/unmark all corresponding octave semitones + Zaznacz/odznacz wszystkie odpowiadające półtony oktawy - - Version difference - Różnica wersji + + Mark current scale + Zaznacz bieżącą skalę - - template - szablon + + Mark current chord + Zaznacz bieżący akord - - project - projekt + + Unmark all + Odznacz wszystko - - Tempo - Tempo + + Select all notes on this key + Zaznacz wszystkie nuty dla tej tonacji - - TEMPO - + + Note lock + Blokada nuty - - Tempo in BPM - + + Last note + Ostatnia nuta - - High quality mode - Tryb wysokiej jakości + + No key + Brak tonacji - - - - Master volume - Głośność główna + + No scale + Brak skali - - - - Master pitch - Odstrojenie główne + + No chord + Brak akordu - - Value: %1% - Wartość: %1% + + Nudge + Szturchaj - - Value: %1 semitones - Wartość: %1 półtonów + + Snap + Przyciągaj - - - SongEditorWindow - - Song-Editor - Edytor kompozycji + + Velocity: %1% + Głośność: %1% - - Play song (Space) - Odtwórz (Spacja) + + Panning: %1% left + Panoramowanie: %1% w lewo - - Record samples from Audio-device - Nagraj próbki z urządzenia audio + + Panning: %1% right + Panoramowanie: %1% w prawo - - Record samples from Audio-device while playing song or BB track - Nagrywa próbki z urządzenia audio podczas odtwarzania kompozycji lub ścieżki perkusji/basu + + Panning: center + Panoramowanie: środek - - Stop song (Space) - Zatrzymaj odtwarzanie (Spacja) + + Glue notes failed + - - Track actions - Operacje na ścieżce + + Please select notes to glue first. + - - Add beat/bassline - Dodaj linię perkusyjną/basową + + Please open a clip by double-clicking on it! + Otwórz klip, klikając na niego dwukrotnie myszką! - - Add sample-track - Dodaj próbkę + + + Please enter a new value between %1 and %2: + Wprowadź nową wartość między %1 a %2: + + + lmms::gui::PianoRollWindow - - Add automation-track - Dodaj ścieżkę automatyki + + Play/pause current clip (Space) + Odtwarzaj/wstrzymaj bieżący klip (Spacja) - - Edit actions - Edytuj akcje + + Record notes from MIDI-device/channel-piano + - - Draw mode - Tryb rysowania + + Record notes from MIDI-device/channel-piano while playing song or pattern track + - - Knife mode (split sample clips) + + Record notes from MIDI-device/channel-piano, one step at the time - - Edit mode (select and move) - Tryb edycji (zaznacz i przenieś) + + Stop playing of current clip (Space) + Zatrzymaj odtwarzanie bieżącego klipu (Spacja) - - Timeline controls - Kontrola osi czasu + + Edit actions + Edytuj czynności - - Bar insert controls - + + Draw mode (Shift+D) + Tryb rysowania (Shift+D) - - Insert bar - + + Erase mode (Shift+E) + Tryb wymazywania (Shift+E) - - Remove bar - + + Select mode (Shift+S) + Tryb zaznaczania (Shift+S) - - Zoom controls - Kontrola powiększenia + + Pitch Bend mode (Shift+T) + Tryb pitchbend (Shift+T) - - Horizontal zooming - Powiększenie poziome + + Quantize + Kwantyzuj - - Snap controls - + + Quantize positions + Kwantyzuj pozycje - - - Clip snapping size - + + Quantize lengths + Kwantyzuj długości - - Toggle proportional snap on/off - + + File actions + Czynności pliku - - Base snapping size - + + Import clip + Importuj klip - - - StepRecorderWidget - - Hint - Wskazówka + + + Export clip + Eksportuj klip - - Move recording curser using <Left/Right> arrows + + Copy paste controls - - - SubWindow - - Close - Zamkni + + Cut (%1+X) + Wytnij (%1+X) - - Maximize - Minimalizuj + + Copy (%1+C) + Kopiuj (%1+C) - - Restore - Przywróć + + Paste (%1+V) + Wklej (%1+V) - - - TabWidget - - - Settings for %1 - Ustawienia %1 + + Timeline controls + - - - TemplatesMenu - - New from template - Nowy z szablonu + + Glue + Klej - - - TempoSyncKnob - - - Tempo Sync - Synchronizacja tempa + + Knife + Nóż - - No Sync - Brak synchronizacji + + Fill + - - Eight beats - Osiem uderzeń + + Cut overlaps + - - Whole note - Cała nuta + + Min length as last + Minimalna długość jako ostatnia - - Half note - Półnuta + + Max length as last + Maksymalna długość jako ostatnia - - Quarter note - Ćwierćnuta + + Zoom and note controls + - - 8th note - Ósemka + + Horizontal zooming + Powiększanie poziome - - 16th note - Szesnastka + + Vertical zooming + Powiększanie pionowe - - 32nd note - Trzydziestka dwójka + + Quantization + Kwantyzacja - - Custom... - Własne... + + Note length + Długość nuty - - Custom - Własne + + Key + Tonacja - - Synced to Eight Beats - Zsynchronizowane do ośmiu uderzeń + + Scale + Skala - - Synced to Whole Note - Zsynchronizowane do całej nuty + + Chord + Akord - - Synced to Half Note - Zsynchronizowane do półnuty + + Snap mode + Tryb przyciągania - - Synced to Quarter Note - Zsynchronizowane do ćwierćnuty + + Clear ghost notes + - - Synced to 8th Note - Zsynchronizowane do ósemki + + + Piano-Roll - %1 + Edytor pianolowy - %1 - - Synced to 16th Note - Zsynchronizowane do szesnastki + + + Piano-Roll - no clip + Edytor pianolowy - brak klipu - - Synced to 32nd Note - Zsynchronizowane do trzydziestki dwójki + + + XML clip file (*.xpt *.xptz) + Plik XML klipu (*.xpt *.xptz) - - - TimeDisplayWidget - - Time units - + + Export clip success + Eksportowanie klipu zakończone pomyślnie - - MIN - MIN + + Clip saved to %1 + Klip zapisany do %1 - - SEC - SEK + + Import clip. + Importuj klip - - MSEC - MILISEK + + You are about to import a clip, this will overwrite your current clip. Do you want to continue? + Zamierzasz zaimportować klip. To zastąpi Twój bieżący klip. Chcesz kontynuować? - - BAR - TAKT + + Open clip + Otwórz klip - - BEAT - RYTM + + Import clip success + Importowanie klipu zakończone pomyślnie - - TICK - TICK + + Imported clip %1! + Zaimportowano klip %1! - TimeLineWidget + lmms::gui::PianoView - - Auto scrolling - + + Base note + Nuta bazowa - - Loop points - + + First note + Pierwsza nuta - - After stopping go back to beginning - + + Last note + Ostatnia nuta + + + lmms::gui::PluginBrowser - - After stopping go back to position at which playing was started - Po zatrzymaniu powróć do pozycji z której rozpoczęto odtwarzanie + + Instrument Plugins + Wtyczki instrumentów - - After stopping keep position - Po zatrzymaniu zapamiętaj pozycję + + Instrument browser + Przeglądarka instrumentów - - Hint - Wskazówka + + Drag an instrument into either the Song Editor, the Pattern Editor or an existing instrument track. + Przeciągnij instrument do edytora utworu, edytora szablonów lub istniejącej ścieżki instrumentu. - - Press <%1> to disable magnetic loop points. - Naciśnij <%1> aby wyłączyć magnetyczne punkty pętli. + + Search + Szukaj - Track - - - Mute - Wycisz - + lmms::gui::PluginDescWidget - - Solo - Solo + + Send to new instrument track + Wyślij do nowej ścieżki instrumentu - TrackContainer - - - Couldn't import file - Nie udało się zaimportować pliku - + lmms::gui::ProjectNotes - - Couldn't find a filter for importing file %1. -You should convert this file into a format supported by LMMS using another software. - Nie można odnaleźć filtra do zaimportowania pliku %1. -Powinienieś przekonwertować ten plik do formatu wspieranego przez LMMS za pomocą zewnętrznego oprogramowania. + + Project Notes + Notatki projektu - - Couldn't open file - Nie udało się otworzyć pliku + + Enter project notes here + Wprowadź tutaj notatki dotyczące projektu - - Couldn't open file %1 for reading. -Please make sure you have read-permission to the file and the directory containing the file and try again! - Nie da się otworzyć pliku %1 do odczytu. -Upewnij się, że masz uprawnienia do odczytu tego pliku i katalogu zawierającego plik a następnie spróbuj ponownie! + + Edit Actions + Edytuj czynności - - Loading project... - Ładowanie projektu… + + &Undo + &Cofnij - - - Cancel - Anuluj + + %1+Z + %1+Z - - - Please wait... - Proszę czekać… + + &Redo + &Ponów - - Loading cancelled - Anulowano ładowanie + + %1+Y + %1+Y - - Project loading was cancelled. - Ładowanie projektu zostało anulowane + + &Copy + &Kopiuj - - Loading Track %1 (%2/Total %3) - Ładowanie utworu %1 (%2/Łącznie %3) + + %1+C + %1+C - - Importing MIDI-file... - Importowanie pliku MIDI… + + Cu&t + Wy&tnij - - - Clip - - Mute - Wycisz + + %1+X + %1+X - - - ClipView - - Current position - Obecne położenie + + &Paste + &Wklej - - Current length - Obecna dlugość + + %1+V + %1+V - - - %1:%2 (%3:%4 to %5:%6) - %1:%2 (od %3:%4 do 5:%6) + + Format Actions + Czynności formatowania - - Press <%1> and drag to make a copy. - Przytrzymaj <%1> i przeciągnij, aby skopiować. + + &Bold + Pogru&biona - - Press <%1> for free resizing. - Przytrzymaj <%1> aby dowolnie zmieniać rozmiar. + + %1+B + %1+B - - Hint - Wskazówka + + &Italic + &Kursywa - - Delete (middle mousebutton) - Usuń (środkowy przycisk myszy) + + %1+I + %1+I - - Delete selection (middle mousebutton) - Usuń zaznaczone (środkowy przycisk myszy) + + &Underline + &Podkreślona - - Cut - Wytnij + + %1+U + %1+U - - Cut selection - Wytnij zaznaczone + + &Left + Do &lewej - - Merge Selection - + + %1+L + %1+L - - Copy - Kopiuj + + C&enter + &Wyśrodkuj - - Copy selection - Kopiuj zaznaczone + + %1+E + %1+E - - Paste - Wklej + + &Right + Do p&rawej - - Mute/unmute (<%1> + middle click) - Wycisz/cofnij wyciszenie (<%1> + środkowy przycisk myszy) + + %1+R + %1+R - - Mute/unmute selection (<%1> + middle click) - + + &Justify + Wy&justuj - - Set clip color - + + %1+J + %1+J - - Use track color - Użyj koloru ścieżki + + &Color... + &Kolor... - TrackContentWidget + lmms::gui::RecentProjectsMenu - - Paste - Wklej + + &Recently Opened Projects + Ostatnio otwa&rte projekty - TrackOperationsWidget + lmms::gui::RenameDialog - - Press <%1> while clicking on move-grip to begin a new drag'n'drop action. - + + Rename... + Zmień nazwę... + + + lmms::gui::ReverbSCControlDialog - - Actions - + + Input + Wejście - - - Mute - Wycisz + + Input gain: + Wzmocnienie wejścia: - - - Solo - Solo + + Size + Rozmiar - - After removing a track, it can not be recovered. Are you sure you want to remove track "%1"? - + + Size: + Rozmiar: - - Confirm removal - + + Color + Kolor - - Don't ask again - + + Color: + Kolor: - - Clone this track - Sklonuj tą ścieżkę + + Output + Wyjście - - Remove this track - Usuń tą ścieżkę + + Output gain: + Wzmocnienie wyjścia: + + + lmms::gui::SaControlsDialog - - Clear this track - Wyczyść tą ścieżkę + + Pause + Wstrzymaj - - Channel %1: %2 - FX %1: %2 + + Pause data acquisition + Wstrzymaj akwizycję danych - - Assign to new mixer Channel - Przypisz do nowego kanału efektów + + Reference freeze + Zamrożenie odniesienia - - Turn all recording on - + + Freeze current input as a reference / disable falloff in peak-hold mode. + Zamroź bieżące wejście jako odniesienie/wyłącz zanik w trybie utrzymywania wartości szczytowej. - - Turn all recording off - + + Waterfall + Wodospad - - Change color - Zmień kolor + + Display real-time spectrogram + Wyświetlaj spektrogram w czasie rzeczywistym - - Reset color to default - Ustaw kolor domyślny + + Averaging + Uśrednianie - - Set random color - Ustaw losowy kolor + + Enable exponential moving average + Włącz wykładniczą średnią ruchomą - - Clear clip colors - + + Stereo + Stereo - - - TripleOscillatorView - - Modulate phase of oscillator 1 by oscillator 2 - + + Display stereo channels separately + Wyświetlaj kanały stereo oddzielnie - - Modulate amplitude of oscillator 1 by oscillator 2 + + Peak hold - - Mix output of oscillators 1 & 2 - + + Display envelope of peak values + Wyświetlaj obwiednię wartości szczytowych - - Synchronize oscillator 1 with oscillator 2 - Synchronizuj oscylator 1 z oscylatorem 2 + + Logarithmic frequency + Częstotliwość logarytmiczna - - Modulate frequency of oscillator 1 by oscillator 2 - + + Switch between logarithmic and linear frequency scale + Przełącz między skalą częstotliwości logarytmicznej i liniowej - - Modulate phase of oscillator 2 by oscillator 3 - + + + Frequency range + Zakres częstotliwości - - Modulate amplitude of oscillator 2 by oscillator 3 - + + Logarithmic amplitude + Amplituda logarytmiczna - - Mix output of oscillators 2 & 3 - + + Switch between logarithmic and linear amplitude scale + Przełącz między skalą amplitudy logarytmicznej i liniowej - - Synchronize oscillator 2 with oscillator 3 - Synchronizuj oscylator 2 z oscylatorem 3 + + + Amplitude range + Zakres amplitudy - - Modulate frequency of oscillator 2 by oscillator 3 - + + + FFT block size + Rozmiar bloku FFT - - Osc %1 volume: - Osc %1 - głośność: + + + FFT window type + Typ okna FFT - - Osc %1 panning: - Osc %1 - panoramowanie: + + Envelope res. + Rozdz. obwiedni - - Osc %1 coarse detuning: - Osc %1 - zgrubne odstrojenie: + + Increase envelope resolution for better details, decrease for better GUI performance. + Zwiększ rozdzielczość obwiedni, aby uzyskać lepsze szczegóły, zmniejsz ją, aby uzyskać lepszą wydajność graficznego interfejsu użytkownika. - - semitones - półtony + + Maximum number of envelope points drawn per pixel: + Maksymalna liczba punktów obwiedni narysowanych na piksel: - - Osc %1 fine detuning left: - Osc %1 - dokładne odstrojenie w lewo: + + Spectrum res. + Rozdz. widma - - - cents - centy + + Increase spectrum resolution for better details, decrease for better GUI performance. + Zwiększ rozdzielczość widma, aby uzyskać lepsze szczegóły, zmniejsz ją, aby uzyskać lepszą wydajność graficznego interfejsu użytkownika. - - Osc %1 fine detuning right: - Osc %1 - dokładne odstrojenie w prawo: + + Maximum number of spectrum points drawn per pixel: + Maksymalna liczba punktów widma narysowanych na piksel: - - Osc %1 phase-offset: - Osc %1 - przesunięcie fazowe: + + Falloff factor + Współczynnik zaniku - - - degrees - stopni + + Decrease to make peaks fall faster. + Zmniejsz, aby szczyty opadały szybciej. - - Osc %1 stereo phase-detuning: - Osc %1 - odstrojenie fazy stereo: + + Multiply buffered value by + Pomnóż wartość buforowaną przez - - Sine wave - Fala sinusoidalna + + Averaging weight + Uśrednianie wagi - - Triangle wave - Fala trójkątna + + Decrease to make averaging slower and smoother. + Zmniejsz, aby uśrednianie było wolniejsze i płynniejsze. - - Saw wave - Fala piłokształtna + + New sample contributes + Nowa próbka przyczynia się - - Square wave - Fala prostokątna + + Waterfall height + Wysokość wodospadu - - Moog-like saw wave - + + Increase to get slower scrolling, decrease to see fast transitions better. Warning: medium CPU usage. + Zwiększ, aby uzyskać wolniejsze przewijanie, zmniejsz, aby lepiej widzieć szybkie przejścia. Ostrzeżenie: średnie użycie procesora. - - Exponential wave - Fala wykładnicza + + Number of lines to keep: + Liczba linii do zachowania: - - White noise - Biały szum + + Waterfall gamma + Gamma wodospadu - - User-defined wave - + + Decrease to see very weak signals, increase to get better contrast. + Zmniejsz, aby zobaczyć bardzo słabe sygnały, zwiększ, aby uzyskać lepszy kontrast. - - - VecControls - - Display persistence amount - + + Gamma value: + Wartość gamma: - - Logarithmic scale - + + Window overlap + Nakładanie się okien - - High quality - + + Increase to prevent missing fast transitions arriving near FFT window edges. Warning: high CPU usage. + Zwiększ, aby zapobiec pomijaniu szybkich przejść docierających w pobliże krawędzi okna FFT. Ostrzeżenie: wysokie użycie procesora. - - - VecControlsDialog - - HQ - + + Number of times each sample is processed: + Liczba przetworzenia każdego sampla: - - Double the resolution and simulate continuous analog-like trace. + + Zero padding - - Log. scale - + + Increase to get smoother-looking spectrum. Warning: high CPU usage. + Zwiększ, aby uzyskać płynniej wyglądające widmo. Ostrzeżenie: wysokie użycie procesora. - - Display amplitude on logarithmic scale to better see small values. - + + Processing buffer is + Bufor przetwarzania jest - - Persist. - + + steps larger than input block + krokami większymi niż blok wejściowy - - Trace persistence: higher amount means the trace will stay bright for longer time. - + + Advanced settings + Ustwawienia zaawansowane - - Trace persistence - + + Access advanced settings + Dostęp do ustawień zaawansowanych - VersionedSaveDialog + lmms::gui::SampleClipView - - Increment version number - Zwiększ numer wersji o jeden + + Double-click to open sample + Kliknij dwukrotnie myszką, aby otworzyć próbkę - - Decrement version number - Zminiejsz numer wersji o jeden + + Reverse sample + Odwróć próbkę - - Save Options + + Set as ghost in automation editor - - - already exists. Do you want to replace it? - już istnieje. Czy chcesz go zastąpić? - - VestigeInstrumentView + lmms::gui::SampleTrackView - - - Open VST plugin - Otwórz wtyczkę VST + + Mixer channel + Kanał miksera - - Control VST plugin from LMMS host - + + Track volume + Głośność ścieżki - - Open VST plugin preset - + + Channel volume: + Głośność kanału: - - Previous (-) - Poprzedni (-) + + VOL + - - Save preset - Zapisz preset + + Panning + Panoramowanie - - Next (+) - Następny (+) + + Panning: + Panoramowanie: - - Show/hide GUI - Pokaż/ukryj GUI + + PAN + PAN - - Turn off all notes - Wycisz wszystkie nuty + + %1: %2 + %1: %2 + + + lmms::gui::SampleTrackWindow - - DLL-files (*.dll) - Pliki DLL (*.dll) + + Sample volume + Głośność próbki - - EXE-files (*.exe) - Pliki EXE (*.exe) + + Volume: + Głośność: - - No VST plugin loaded - + + VOL + - - Preset - Preset + + Panning + Panoramowanie - - by - autorstwa + + Panning: + Panoramowanie: - - - VST plugin control - - kontrola wtyczki VST + + PAN + PAN - - - VstEffectControlDialog - - Show/hide - Pokaż/ukryj + + Mixer channel + Kanał miksera - - Control VST plugin from LMMS host - + + CHANNEL + KANAŁ + + + lmms::gui::SaveOptionsWidget - - Open VST plugin preset - + + Discard MIDI connections + Odrzuć połączenia MIDI - - Previous (-) - Poprzedni (-) + + Save As Project Bundle (with resources) + Zapisz jako pakiet projektu (z zasobami) + + + lmms::gui::SetupDialog - - Next (+) - Następny (+) + + Settings + Ustawienia - - Save preset - Zapisz preset + + + General + Ogólne - - - Effect by: - Efekt autorstwa: + + Graphical user interface (GUI) + Graficzny interfejs użytkownika (GUI) - - &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> - &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> + + Display volume as dBFS + Wyświetlaj głośność jako dBFS - - - VstPlugin - - - The VST plugin %1 could not be loaded. - Wtyczka VST %1 nie może zostać załadowana. + + Enable tooltips + Włącz podpowiedzi - - Open Preset - Otwórz Preset + + Enable master oscilloscope by default + Włącz domyślnie oscyloskop główny - - - Vst Plugin Preset (*.fxp *.fxb) - Preset wtyczki VST (*.fxp *.fxb) + + Enable all note labels in piano roll + Włącz etykiety wszystkich nut w edytorze pianolowym - - : default - : domyślne + + Enable compact track buttons + Włącz kompaktowe przyciski ścieżek - - Save Preset - Zapisz Preset + + Enable one instrument-track-window mode + Włącz tryb jednego okna ścieżki instrumentu - - .fxp - .fxp + + Show sidebar on the right-hand side + Pokaż pasek boczny po prawej stronie - - .FXP - .FXP + + Let sample previews continue when mouse is released + Pozwól na kontynuowanie podglądu próbki po zwolnieniu myszki - - .FXB - .FXB + + Mute automation tracks during solo + - - .fxb - .fxb + + Show warning when deleting tracks + Pokaż ostrzeżenie podczas usuwania ścieżek - - Loading plugin - Ładowanie wtyczki + + Show warning when deleting a mixer channel that is in use + Pokaż ostrzeżenie podczas usuwania kanału miksera, który jest w użyciu - - Please wait while loading VST plugin... - Poczekaj, trwa ładowanie wtyczki VST… + + Dual-button + Podwójny przycisk - - - WatsynInstrument - - Volume A1 - Głośność A1 + + Grab closest + Złap najbliższy - - Volume A2 - Głośność A2 + + Handles + Uchwyty - - Volume B1 - Głośność B1 + + Loop edit mode + Tryb edycji pętli - - Volume B2 - Głośność B2 + + Projects + Projekty - - Panning A1 - Panoramowanie A1 + + Compress project files by default + Domyślnie kompresuj pliki projektu - - Panning A2 - Panoramowanie A2 + + Create a backup file when saving a project + Utwórz plik kopii zapasowej podczas zapisywania projektu - - Panning B1 - Panoramowanie B1 + + Reopen last project on startup + Otwórz ponownie ostatni projekt podczas uruchamiania - - Panning B2 - Panoramowanie B2 + + Language + Język - - Freq. multiplier A1 - Mnożnik częst. A1 + + + Performance + Wydajność - - Freq. multiplier A2 - Mnożnik częst. A2 + + Autosave + Autozapisywanie - - Freq. multiplier B1 - Mnożnik częst. B1 + + Enable autosave + Włącz autozapisywanie - - Freq. multiplier B2 - Mnożnik częst. B2 + + Allow autosave while playing + Zezwalaj na autozapisywanie podczas odtwarzania - - Left detune A1 - Odstrojenie w lewo A1 + + User interface (UI) effects vs. performance + Efekty interfejsu użytkownika (UI) a wydajność - - Left detune A2 - Odstrojenie w lewo A2 + + Smooth scroll in song editor + Płynne przewijanie w edytorze utworu - - Left detune B1 - Odstrojenie w lewo B1 + + Display playback cursor in AudioFileProcessor + Wyświetlaj wskaźnik odtwarzania w AudioFileProcessorze - - Left detune B2 - Odstrojenie w lewo B2 + + Plugins + Wtyczki - - Right detune A1 - Odstrojenie w prawo A1 + + VST plugins embedding: + Osadzanie wtyczek VST: - - Right detune A2 - Odstrojenie w prawo A2 + + No embedding + Brak osadzania - - Right detune B1 - Odstrojenie w prawo B1 + + Embed using Qt API + Osadź za pomocą API Qt - - Right detune B2 - Odstrojenie w prawo B2 + + Embed using native Win32 API + Osadź za pomocą API Win32 - - A-B Mix - Miks A-B + + Embed using XEmbed protocol + Osadź za pomocą protokołu XEmbed - - A-B Mix envelope amount - A-B Mix ilość obwiedni + + Keep plugin windows on top when not embedded + Trzymaj okna wtyczek na wierzchu, gdy nie są osadzone - - A-B Mix envelope attack - A-B Mix atak obwiedni + + Keep effects running even without input + Trzymaj efekty włączone, nawet bez wyjścia - - A-B Mix envelope hold - A-B Mix przetrzymywanie obwiedni + + + Audio + Dźwięk - - A-B Mix envelope decay - A-B Mix zanikanie obwiedni + + Audio interface + Interfejs dźwięku - - A1-B2 Crosstalk - A1-B2 Przesłuch + + Buffer size + Rozmiar bufora - - A2-A1 modulation - A2-A1 Modulacja + + Reset to default value + Resetuj do wartości domyślnej - - B2-B1 modulation - B2-B1 Modulacja + + + MIDI + MIDI - - Selected graph - Zaznaczony graf + + MIDI interface + Interfejs MIDI - - - WatsynView - - - - - Volume - Głośność + + Automatically assign MIDI controller to selected track + Automatyczne przypisywanie kontrolera MIDI do zaznaczonej ścieżki - - - - - Panning - Panoramowanie + + Behavior when recording + Zachowanie podczas nagrywania + + + + Auto-quantize notes in Piano Roll + Autokwantyzacja nut w edytorze pianolowym - - - - - Freq. multiplier - Mnożnik częst. + + If enabled, notes will be automatically quantized when recording them from a MIDI controller. If disabled, they are always recorded at the highest possible resolution. + Jeśli włączone, nuty będą automatycznie kwantyzowane podczas nagrywania ich z kontrolera MIDI. Jeśli wyłączone, są zawsze nagrywane w najwyższej możliwej rozdzielczości. - - - - - Left detune - Odstrojenie w lewo + + + Paths + Ścieżki - - - - - - - - - cents - centy + + LMMS working directory + Katalog roboczy LMMS - - - - - Right detune - Odstrojenie w prawo + + VST plugins directory + Katalog wtyczek VST - - A-B Mix - Miks A-B + + LADSPA plugins directories + Katalog wtyczek LADSPA - - Mix envelope amount - + + SF2 directory + Katalog SF2 - - Mix envelope attack - + + Default SF2 + Domyślny plik SF2 - - Mix envelope hold - + + GIG directory + Katalog GIG - - Mix envelope decay - + + Theme directory + Katalog motywów - - Crosstalk - + + Background artwork + Grafika w tle - - Select oscillator A1 - Wybierz oscylator A1 + + Some changes require restarting. + Niektóre zmiany wymagają ponownego uruchomienia. - - Select oscillator A2 - Wybierz oscylator A2 + + OK + OK - - Select oscillator B1 - Wybierz oscylator B1 + + Cancel + Anuluj - - Select oscillator B2 - Wybierz oscylator B2 + + minutes + minuty - - Mix output of A2 to A1 - + + minute + minuta - - Modulate amplitude of A1 by output of A2 - + + Disabled + Wyłączono - - Ring modulate A1 and A2 - + + Autosave interval: %1 + Częstotliwość autozpisywnia: %1 - - Modulate phase of A1 by output of A2 - + + The currently selected value is not a power of 2 (32, 64, 128, 256). Some plugins may not be available. + Aktualnie wybrana wartość nie jest potęgą 2 (32, 64, 128, 256). Niektóre wtyczki mogą być niedostępne. - - Mix output of B2 to B1 - + + The currently selected value is less than or equal to 32. Some plugins may not be available. + Aktualnie wybrana wartość jest mniejsza lub równa 32. Niektóre wtyczki mogą być niedostępne. - - Modulate amplitude of B1 by output of B2 - + + Frames: %1 +Latency: %2 ms + Ramki: %1 +Opóźnienie: %2 ms - - Ring modulate B1 and B2 - + + Choose the LMMS working directory + Wybierz katalog roboczy LMMS - - Modulate phase of B1 by output of B2 - + + Choose your VST plugins directory + Wybierz swój katalog wtyczek VST - - - - - Draw your own waveform here by dragging your mouse on this graph. - Narysuj swój własny przebieg przeciągając kursorem po tym wykresie. + + Choose your LADSPA plugins directory + Wybierz swój katalog wtyczek LADSPA - - Load waveform - Załaduj kształt fali + + Choose your SF2 directory + Wybierz swój katalog z SF2 - - Load a waveform from a sample file - + + Choose your default SF2 + Wybierz swój domyślny plik SF2 - - Phase left - + + Choose your GIG directory + Wybierz swój katalog z plikami GIG - - Shift phase by -15 degrees - + + Choose your theme directory + Wybierz swój katalog motywów - - Phase right - + + Choose your background picture + Wybierz swój obraz tła + + + lmms::gui::Sf2InstrumentView - - Shift phase by +15 degrees - + + + Open SoundFont file + Otwórz plik SoundFont - - - Normalize - Normalizacja + + Choose patch + Wybierz próbkę - - - Invert - Odwróć + + Gain: + Wzmocnienie: - - - Smooth - Wygładzanie + + Apply reverb (if supported) + Zastosuj pogłos (jeśli obsługiwany) - - - Sine wave - Fala sinusoidalna + + Room size: + Rozmiar pokoju: - - - - Triangle wave - Fala trójkątna + + Damping: + Tłumienie: - - Saw wave - Fala piłokształtna + + Width: + Szerokość: - - - Square wave - Fala prostokątna + + + Level: + Poziom: - - - Xpressive - - Selected graph - Zaznaczony graf + + Apply chorus (if supported) + Zastosuj chorus (jeśli obsługiwany) - - A1 - A1 + + Voices: + Głosy: - - A2 - A2 + + Speed: + Prędkość: - - A3 - A3 + + Depth: + Głębia: - - W1 smoothing - Wygładzanie W1 + + SoundFont Files (*.sf2 *.sf3) + Pliki SoundFont (*.sf2 *.sf3) + + + lmms::gui::SidInstrumentView - - W2 smoothing - Wygładzanie W2 + + Volume: + Głośność: - - W3 smoothing - Wygładzanie W3 + + Resonance: + Rezonans: - - Panning 1 + + + Cutoff frequency: + Częstotliwość graniczna: + + + + High-pass filter - - Panning 2 + + Band-pass filter - - Rel trans + + Low-pass filter - - - XpressiveView - - Draw your own waveform here by dragging your mouse on this graph. - Narysuj swój własny przebieg przeciągając kursorem po tym wykresie. + + Voice 3 off + Wyłącz głos 3 - - Select oscillator W1 - Wybierz oscylator W1 + + MOS6581 SID + MOS6581 SID - - Select oscillator W2 - Wybierz oscylator W2 + + MOS8580 SID + MOS8580 SID - - Select oscillator W3 - Wybierz oscylator W3 + + + Attack: + Narastanie: - - Select output O1 + + + Decay: - - Select output O2 + + Sustain: - - Open help window - Otwórz okno pomocy + + + Release: + Opadanie: - - - Sine wave - Fala sinusoidalna + + Pulse Width: + Współczynnik wypełnienia impulsu: - - - Moog-saw wave + + Coarse: - - - Exponential wave - Fala wykładnicza + + Pulse wave + Fala pulsująca + + + + Triangle wave + Fala trójkątna - - + Saw wave Fala piłokształtna - - - User-defined wave - + + Noise + Szum - - - Triangle wave - Fala trójkątna + + Sync + Zsynchronizuj - - - Square wave - Fala prostokątna + + Ring modulation + Modulacja pierścieniowa - - - White noise - Biały szum + + Filtered + Filtrowany + + + + Test + Test + + + + Pulse width: + Współczynnik wypełnienia impulsu: + + + + lmms::gui::SideBarWidget + + + Close + Zamknij + + + lmms::gui::SlicerTView - - WaveInterpolate + + Slice snap - - ExpressionValid + + Set slice snapping for detection - - General purpose 1: - Ogólnego zastosowania 1: - - - - General purpose 2: - Ogólnego zastosowania 2: + + Sync sample + - - General purpose 3: - Ogólnego zastosowania 3: + + Enable BPM sync + Włącz synchr. BPM - - O1 panning: - Panoramowanie O1: + + Original sample BPM + Oryginalna próbka BPM - - O2 panning: - Panoramowanie O2: + + Threshold used for slicing + - - Release transition: + + Fade Out per note in milliseconds - - Smoothness + + Copy midi pattern to clipboard - - - ZynAddSubFxInstrument - - Portamento - Portamento + + Open sample selector + - - Filter frequency + + Reset slices - - Filter resonance - + + Threshold + Próg - - Bandwidth - Szerokość Pasma + + Fade Out + Ściszenie - - FM gain - + + Reset + Resetuj - - Resonance center frequency - + + Midi + MIDI - - Resonance bandwidth - + + BPM + BPM - - Forward MIDI control change events - + + Snap + Przyciągaj - ZynAddSubFxView + lmms::gui::SlicerTWaveform - - Portamento: - Portamento: + + Click to load sample + Kliknij, aby załadować próbkę + + + lmms::gui::SongEditor - - PORT - PORT + + Could not open file + Nie można otworzyć pliku - - Filter frequency: - + + Could not open file %1. You probably have no permissions to read this file. + Please make sure to have at least read permissions to the file and try again. + Nie można otworzyć pliku %1. Prawdopodobnie nie masz uprawnień do odczytu tego pliku. +Upewnij się, że masz przynajmniej uprawnienia do odczytu pliku i spróbuj ponownie. - - FREQ - FREQ + + Operation denied + Operacja odrzucona - - Filter resonance: - + + A bundle folder with that name already eists on the selected path. Can't overwrite a project bundle. Please select a different name. + Folder pakietu o tej nazwie już istnieje w wybranej ścieżce. Nie można zastąpić pakietu projektu. Wybierz inną nazwę. - - RES - RES + + + + Error + Błąd - - Bandwidth: - Szerokość Pasma: + + Couldn't create bundle folder. + Nie można utworzyć folderu pakietu. - - BW - BW + + Couldn't create resources folder. + Nie można utworzyć folderu zasobów. - - FM gain: - + + Failed to copy resources. + Nie można skopiować zasobów. - - FM GAIN - FM GAIN + + + Could not write file + Nie można zapisać pliku. - - Resonance center frequency: - Częstotliwość środkowa zafalowania: + + Could not open %1 for writing. You probably are not permitted to write to this file. Please make sure you have write-access to the file and try again. + Nie można otworzyć %1 do zapisu. Prawdopodobnie nie masz uprawnień do zapisu do tego pliku. Upewnij się, że masz uprawnienia do zapisu do pliku i spróbuj ponownie. - - RES CF - RES-CF + + An unknown error has occurred and the file could not be saved. + - - Resonance bandwidth: - Szerokość pasma zafalowania: + + Error in file + Błąd w pliku - - RES BW - RES BW + + The file %1 seems to contain errors and therefore can't be loaded. + Wygląda na to, że plik %1 zawiera błędy i nie może zostać załadowany. - - Forward MIDI control changes - + + template + szablon - - Show GUI - Pokaż GUI + + project + projekt - - - AudioFileProcessor - - Amplify - Wzmacniaj + + Version difference + Różnica wersji - - Start of sample - Początek sampla + + This %1 was created with LMMS %2 + %1 został utworzony w LMMS %2. - - End of sample - Koniec sampla + + Zoom + Powiększenie - - Loopback point - Znacznik zapętlenia: + + Tempo + Tempo - - Reverse sample - Odwróć próbkę + + TEMPO + TEMPO - - Loop mode - Tryb zapętlenia + + Tempo in BPM + Tempo w BPM - - Stutter - + + + + Master volume + Głośność główna - - Interpolation mode - Tryb interpolacji + + + + Global transposition + Transpozycja ogólna - - None - Brak + + 1/%1 Bar + 1/%1 takt - - Linear - Liniowa + + %1 Bars + %1 takty - - Sinc - + + Value: %1% + Wartość: %1% - - Sample not found: %1 - Nie odnaleziono sampla: %1 + + Value: %1 keys + Wartość: %1 keys - BitInvader + lmms::gui::SongEditorWindow - - Sample length - + + Song-Editor + Edytor utworu - - - BitInvaderView - - Sample length - + + Play song (Space) + Odtwarzaj utwór (Spacja) - - Draw your own waveform here by dragging your mouse on this graph. - Narysuj swój własny przebieg przeciągając kursorem po tym wykresie. + + Record samples from Audio-device + Nagrywaj próbki z urządzenia dźwiękowego - - - Sine wave - Fala sinusoidalna + + Record samples from Audio-device while playing song or pattern track + Nagrywaj próbki z urządzenia dźwiękowego podczas odtwarzania utworu lub ścieżki szablonu - - - Triangle wave - Fala trójkątna + + Stop song (Space) + Zatrzymaj utwór (Spacja) - - - Saw wave - Fala piłokształtna + + Track actions + Czynności ścieżki - - - Square wave - Fala prostokątna + + Add pattern-track + Dodaj ścieżkę-szablon - - - White noise - Biały szum + + Add sample-track + Dodaj ścieżkę-próbkę - - - User-defined wave - + + Add automation-track + Dodaj ścieżkę automatyki - - - Smooth waveform - Gładki kształt przebiegu + + Edit actions + Edytuj czynności - - Interpolation - Interpolacja + + Draw mode + Tryb rysowania - - Normalize - Normalizacja + + Knife mode (split sample clips) + Tryb noża (podziel klipy próbek) - - - DynProcControlDialog - - INPUT - WEJŚCIE + + Edit mode (select and move) + Tryb edycji (zaznacz i przesuń) - - Input gain: - Wzmocnienie wejścia: + + Timeline controls + - - OUTPUT - WYJŚCIE + + Bar insert controls + - - Output gain: - Wzmocnienie wyjścia: + + Insert bar + Wstaw takt - - ATTACK - NARASTANIE + + Remove bar + Usuń takt - - Peak attack time: + + Zoom controls - - RELEASE - WYBRZMIEWANIE + + + Zoom + Powiększenie - - Peak release time: + + Snap controls - - - Reset wavegraph + + + Clip snapping size - - - Smooth wavegraph - Płynny wykres falowy + + Toggle proportional snap on/off + - - - Increase wavegraph amplitude by 1 dB + + Base snapping size + + + lmms::gui::StepRecorderWidget - - - Decrease wavegraph amplitude by 1 dB - + + Hint + Podpowiedź - - Stereo mode: maximum - + + Move recording curser using <Left/Right> arrows + Przesuń kursor nagrywania za pomocą strzałek <lewo/prawo> + + + lmms::gui::StereoEnhancerControlDialog - - Process based on the maximum of both stereo channels - + + WIDTH + SZEROKOŚĆ - - Stereo mode: average + + Width: + Szerokość: + + + + lmms::gui::StereoMatrixControlDialog + + + Left to Left Vol: - - Process based on the average of both stereo channels + + Left to Right Vol: - - Stereo mode: unlinked + + Right to Left Vol: - - Process each stereo channel independently + + Right to Right Vol: - DynProcControls - - - Input gain - Wzmocnienie wejścia - + lmms::gui::SubWindow + + + Close + Zamknij + + + + Maximize + Maksymalizuj + + + + Restore + Przywróć + + + + lmms::gui::TapTempoView - - Output gain - Wzmocnienie wyścia + + 0 + 0 - - Attack time - Czas narastania + + + Precision + Precyzja - - Release time - Czas wybrzmiewania + + Display in high precision + Wyświetlaj z wysoką precyzją - - Stereo mode - Tryb stereo + + 0.0 ms + 0,0 ms - - - graphModel - - Graph - Wykres + + Mute metronome + Wycisz metronom - - - KickerInstrument - - Start frequency - Częstotliwość początkowa + + Mute + Cisza - - End frequency - Częstotliwość końcowa + + BPM in milliseconds + BPM w milisekundach - - Length - Długość + + 0 ms + 0 ms - - Start distortion - + + Frequency of BPM + Częstotliwość BPM - - End distortion - + + 0.0000 hz + 0,0000 hz - - Gain - Wzmocnienie + + Reset + Resetuj - - Envelope slope - + + Reset counter and sidebar information + Resetuj licznik i informacje na pasku bocznym - - Noise - Szum + + Sync + Zsynchronizuj - - Click - Kliknięcie + + Sync with project tempo + Zsynchronizuj z tempem projektu - - Frequency slope - + + %1 ms + %1 ms - - Start from note - Zacznij od nuty + + %1 hz + %1 hz + + + lmms::gui::TemplatesMenu - - End to note - Zakończ nutą + + New from template + Nowy z szablonu - KickerInstrumentView + lmms::gui::TempoSyncBarModelEditor - - Start frequency: - Częstotliwość początkowa: + + + Tempo Sync + Synchronizacja tempa - - End frequency: - Częstotliwość końcowa: + + No Sync + Brak synchronizacji - - Frequency slope: - + + Eight beats + Osiem uderzeń - - Gain: - Wzmocnienie: + + Whole note + Cała nuta - - Envelope length: - + + Half note + Półnuta - - Envelope slope: - + + Quarter note + Ćwierćnuta - - Click: - Kliknięcie: + + 8th note + Ósemka - - Noise: - Szum: + + 16th note + Szesnastka - - Start distortion: - + + 32nd note + Trzydziestodwójka - - End distortion: - + + Custom... + Niestandardowy... - - - LadspaBrowserView - - - Available Effects - Dostępne Efekty + + Custom + Niestandardowy - - - Unavailable Effects - Niedostępne Efekty + + Synced to Eight Beats + Zsynchronizowane do ośmiu uderzeń - - - Instruments - Instrumenty + + Synced to Whole Note + Zsynchronizowane do całej nuty - - - Analysis Tools - Narzędzia Analizujące + + Synced to Half Note + Zsynchronizowane do półnuty - - - Don't know - Nieznane + + Synced to Quarter Note + Zsynchronizowane do ćwierćnuty - - Type: - Rodzaj: + + Synced to 8th Note + Zsynchronizowane do ósemki - - - LadspaDescription - - Plugins - Wtyczki + + Synced to 16th Note + Zsynchronizowane do szesnastki - - Description - Opis + + Synced to 32nd Note + Zsynchronizowane do trzydziestodwójki - LadspaPortDialog + lmms::gui::TempoSyncKnob - - Ports - Porty - - - - Name - Nazwa - - - - Rate - Tempo + + + Tempo Sync + Synchronizacja tempa - - Direction - Kierunek + + No Sync + Brak synchronizacji - - Type - Rodzaj + + Eight beats + Osiem uderzeń - - Min < Default < Max - Min < Domyślne < Max + + Whole note + Cała nuta - - Logarithmic - Logarytmiczny + + Half note + Półnuta - - SR Dependent - Zależny od SR + + Quarter note + Ćwierćnuta - - Audio - Audio + + 8th note + Ósemka - - Control - Regulator + + 16th note + Szesnastka - - Input - Wejście + + 32nd note + Trzydziestodwójka - - Output - Wyjście + + Custom... + Niestandardowy... - - Toggled - Przełączalne + + Custom + Niestandardowy - - Integer - Całkowite + + Synced to Eight Beats + Zsynchronizowane do ośmiu uderzeń - - Float - Zmiennoprzecinkowe + + Synced to Whole Note + Zsynchronizowane do całej nuty - - - Yes - Tak + + Synced to Half Note + Zsynchronizowane do półnuty - - - Lb302Synth - - VCF Cutoff Frequency - Częstotliwość Odcięcia VCF + + Synced to Quarter Note + Zsynchronizowane do ćwierćnuty - - VCF Resonance - Rezonans VCF + + Synced to 8th Note + Zsynchronizowane do ósemki - - VCF Envelope Mod - Modyfikacja Obwiedni VCF + + Synced to 16th Note + Zsynchronizowane do szesnastki - - VCF Envelope Decay - Zanikanie Obwiedni VCF + + Synced to 32nd Note + Zsynchronizowane do trzydziestodwójki + + + lmms::gui::TimeDisplayWidget - - Distortion - Zniekształcenie + + Time units + Jednostki czasu - - Waveform - Kształt Przebiegu + + MIN + MIN - - Slide Decay - Ślizgające Zanikanie + + SEC + SEK - - Slide - Ślizganie + + MSEC + MSEK - - Accent - Akcent + + BAR + TAKT - - Dead - Martwy + + BEAT + MIARA - - 24dB/oct Filter - Filtr 24dB/okt + + TICK + TYK - Lb302SynthView - - - Cutoff Freq: - Częst. Odc.: - - - - Resonance: - Rezonans: - + lmms::gui::TimeLineWidget - - Env Mod: - Mod. Obw.: + + Auto scrolling + Autoprzewijanie - - Decay: - Zanikanie: + + Stepped auto scrolling + Autoprzewijanie stopniowe - - 303-es-que, 24dB/octave, 3 pole filter - 303-es-que, 24dB/oktawę, filtr III rzędu + + Continuous auto scrolling + Autoprzewijanie ciągłe - - Slide Decay: - Zanikanie z poślizgiem: + + Auto scrolling disabled + Autoprzewijanie wyłączone - - DIST: - DIST: + + Loop points + Znaczniki zapętlania - - Saw wave - Fala piłokształtna + + After stopping go back to beginning + Po zatrzymaniu wróć do początku - - Click here for a saw-wave. - Kliknij tutaj, aby przełączyć na przebieg piłokształtny. + + After stopping go back to position at which playing was started + Po zatrzymaniu wróć do pozycji, z której rozpoczęto odtwarzanie - - Triangle wave - Fala trójkątna + + After stopping keep position + Po zatrzymaniu zapamiętaj pozycję - - Click here for a triangle-wave. - Kliknij tutaj, aby przełączyć na przebieg trójkątny. + + Hint + Podpowiedź - - Square wave - Fala prostokątna + + Press <%1> to disable magnetic loop points. + Naciśnij <%1>, aby wyłączyć punkty pętli magnetycznej. - - Click here for a square-wave. - Kliknij tutaj, aby przełączyć na przebieg prostokątny. + + Set loop begin here + Ustaw początek pętli tutaj - - Rounded square wave - Fala prostokątna, zaokrąglona + + Set loop end here + Ustaw koniec pętli tutaj - - Click here for a square-wave with a rounded end. - Kliknij tutaj, aby przełączyć na przebieg prostokątny z zaokrąglonymi narożami. + + Loop edit mode (hold shift) + Tryb edycji pętli (przytrzymaj Shift) - - Moog wave - Fala Mooga + + Dual-button + Podwójny przycisk - - Click here for a moog-like wave. - Kliknij tutaj, aby przełączyć na przebieg Mooga. + + Grab closest + Złap najbliższy - - Sine wave - Fala sinusoidalna + + Handles + Uchwyty + + + lmms::gui::TrackContentWidget - - Click for a sine-wave. - Kliknij tutaj, aby przełączyć na przebieg sinusoidalny. + + Paste + Wklej + + + lmms::gui::TrackOperationsWidget - - - White noise wave - Biały szum + + Press <%1> while clicking on move-grip to begin a new drag'n'drop action. + Naciśnij <%1>, klikając jednocześnie na uchwycie przesuwania, aby rozpocząć nową czynność przeciągania i upuszczania. - - Click here for an exponential wave. - Kliknij tutaj, aby przełączyć na przebieg wykładniczy. + + Actions + Czynności - - Click here for white-noise. - Kliknij tutaj, aby przełączyć na przebieg stochastyczny. + + + Mute + Cisza - - Bandlimited saw wave - Fala piłokształtna pasmowo ograniczona + + + Solo + Solo - - Click here for bandlimited saw wave. - Kliknij tutaj, aby przełączyć na pasmowo ograniczoną falę piłokształtną. + + After removing a track, it can not be recovered. Are you sure you want to remove track "%1"? + Ścieżki nie można odzyskać po jej usunięciu. Na pewno chcesz usunąć ścieżkę „%1”? - - Bandlimited square wave - Fala kwadratowa pasmowo ograniczona + + Confirm removal + Potwierdź usunięcie - - Click here for bandlimited square wave. - Kliknij tutaj, aby przełączyć na pasmowo ograniczoną falę kwadratową. + + Don't ask again + Nie pytaj ponownie - - Bandlimited triangle wave - Fala trójkątna pasmowo ograniczona + + Clone this track + Klonuj tę ścieżkę - - Click here for bandlimited triangle wave. - Kliknij tutaj, aby przełączyć na pasmowo ograniczoną falę trójkątną. + + Remove this track + Usuń tę ścieżkę - - Bandlimited moog saw wave - Fala piłokształtna Mooga pasmowo ograniczona + + Clear this track + Wyczyść tę ścieżkę - - Click here for bandlimited moog saw wave. - Kliknij tutaj, aby przełączyć na pasmowo ograniczoną falę piłokształtną Mooga. + + Channel %1: %2 + Kanał %1: %2 - - - MalletsInstrument - - Hardness - Twardość + + Assign to new Mixer Channel + Przypisz do nowego kanału miksera - - Position - Pozycja + + Turn all recording on + Włącz wszystkie nagrania - - Vibrato gain - + + Turn all recording off + Wyłącz wszystkie nagrania - - Vibrato frequency - + + Track color + Kolor ścieżki - - Stick mix - + + Change + Zmień - - Modulator - Modulator + + Reset + Resetuj - - Crossfade - Crossfade + + Pick random + Wybierz losowe - - LFO speed - Szybkość LFO + + Reset clip colors + Resetuj kolory klipu + + + lmms::gui::TripleOscillatorView - - LFO depth - Głębia LFO + + Modulate phase of oscillator 1 by oscillator 2 + Moduluj fazę oscylatora 1 z oscylatorem 2 - - ADSR - ADSR + + Modulate amplitude of oscillator 1 by oscillator 2 + Moduluj amplitudę oscylatora 1 z oscylatorem 2 - - Pressure - Ciśnienie + + Mix output of oscillators 1 & 2 + Miksuj wyjścia oscylatorów 1 i 2 - - Motion - Ruch + + Synchronize oscillator 1 with oscillator 2 + Zsynchronizuj oscylator 1 z oscylatorem 2 - - Speed - Prędkość + + Modulate frequency of oscillator 1 by oscillator 2 + Moduluj częstotliwość oscylatora 1 z oscylatorem 2 - - Bowed - Pochylenie + + Modulate phase of oscillator 2 by oscillator 3 + Moduluj fazę oscylatora 2 z oscylatorem 3 - - Spread - Rozstrzał + + Modulate amplitude of oscillator 2 by oscillator 3 + Moduluj amplitudę oscylatora 2 z oscylatorem 3 - - Marimba - Marimba + + Mix output of oscillators 2 & 3 + Miksuj wyjścia oscylatorów 2 i 3 - - Vibraphone - Wibrafon + + Synchronize oscillator 2 with oscillator 3 + Zsynchronizuj oscylator 2 z oscylatorem 3 - - Agogo - Agogo + + Modulate frequency of oscillator 2 by oscillator 3 + Moduluj częstotliwość oscylatora 2 z oscylatorem 3 - - Wood 1 - + + Osc %1 volume: + Głośność osc %1: - - Reso - Rezonans + + Osc %1 panning: + Panoramowanie osc %1: - - Wood 2 + + Osc %1 coarse detuning: - - Beats - Uderzenia + + semitones + półtonów - - Two fixed + + Osc %1 fine detuning left: - - Clump - Stąpnięcie + + + cents + centów - - Tubular bells + + Osc %1 fine detuning right: - - Uniform bar - + + Osc %1 phase-offset: + Przesunięcie fazowe osc %1: - - Tuned bar - + + + degrees + stopni - - Glass - Harfa Szklana + + Osc %1 stereo phase-detuning: + Odstrojenie fazy stereo osc %1: - - Tibetan bowl - + + Sine wave + Fala sinusoidalna - - - MalletsInstrumentView - - Instrument - Instrument + + Triangle wave + Fala trójkątna - - Spread - Rozstrzał + + Saw wave + Fala piłokształtna - - Spread: - Rozstrzał: + + Square wave + Fala prostokątna - - Missing files - Brakujące pliki + + Moog-like saw wave + Fala piłokształtna Mooga - - Your Stk-installation seems to be incomplete. Please make sure the full Stk-package is installed! - Instalacja STK wygląda na niekompletną. Upewnij się, że pełny pakiet Stk został zainstalowany. + + Exponential wave + Fala wykładnicza - - Hardness - Twardość + + White noise + Szum biały - - Hardness: - Twardość: + + User-defined wave + Fala zdefiniowana przez użytkownika - - Position - Pozycja + + Use alias-free wavetable oscillators. + Użyj oscylatorów tablicowych wolnych od aliasów. + + + lmms::gui::VecControlsDialog - - Position: - Pozycja: + + HQ + HQ - - Vibrato gain + + Double the resolution and simulate continuous analog-like trace. - - Vibrato gain: - + + Log. scale + Skala log. - - Vibrato frequency - + + Display amplitude on logarithmic scale to better see small values. + Wyświetlaj amplitudę w skali logarytmicznej, aby lepiej widzieć małe wartości. - - Vibrato frequency: + + Persist. - - Stick mix + + Trace persistence: higher amount means the trace will stay bright for longer time. - - Stick mix: + + Trace persistence + + + lmms::gui::VersionedSaveDialog - - Modulator - Modulator + + Increment version number + Zwiększ numer wersji o jeden - - Modulator: - Modulator: + + Decrement version number + Zminiejsz numer wersji o jeden - - Crossfade - Crossfade + + Save Options + Zapisz opcje - - Crossfade: - Crossfade: + + already exists. Do you want to replace it? + już istnieje. Chcesz go zastąpić? + + + lmms::gui::VestigeInstrumentView - - LFO speed - Szybkość LFO + + + Open VST plugin + Otwórz wtyczkę VST - - LFO speed: - Szybkość LFO: + + Control VST plugin from LMMS host + Kontroluj wtyczkę VST z hosta LMMS - - LFO depth - Głębia LFO + + Open VST plugin preset + Otwórz preset wtyczki VST - - - LFO depth: - Głębia LFO: + + + Previous (-) + Poprzedni (-) - - ADSR - ADSR + + Save preset + Zapisz preset - - ADSR: - ADSR: + + Next (+) + Następny (+) - - Pressure - Ciśnienie + + Show/hide GUI + Pokaż/ukryj graficzny interfejs użytkownika - - Pressure: - Ciśnienie: + + Turn off all notes + Wycisz wszystkie nuty - - Speed - Prędkość + + DLL-files (*.dll) + Pliki DLL (*.dll) - - Speed: - Prędkość: + + EXE-files (*.exe) + Pliki EXE (*.exe) - - - ManageVSTEffectView - - - VST parameter control - - kontrola parametrów VST + + SO-files (*.so) + Pliki SO (*.so) - - VST sync - Synchronizacja VST + + No VST plugin loaded + Nie załadowano wtyczki VST - - - Automated - Automatyzowane + + Preset + Preset - - Close - Zamknij + + by + autorstwa - - - ManageVestigeInstrumentView - - + - VST plugin control - kontrola wtyczki VST + + + lmms::gui::VibedView - - VST Sync - Synchronizacja VST + + Enable waveform + Włącz kształt fali - - - Automated - Automatyzowane + + + Smooth waveform + Gładki kształt fali - - Close - Zamknij + + + Normalize waveform + Normalizuj kształt fali - - - OrganicInstrument - - Distortion - Zniekształcenie + + + Sine wave + Fala sinusoidalna - - Volume - Głośność + + + Triangle wave + Fala trójkątna - - - OrganicInstrumentView - - Distortion: - Zniekształcenie: + + + Saw wave + Fala piłokształtna - - Volume: - Głośność: + + + Square wave + Fala prostokątna - - Randomise - Randomizuj + + + White noise + Szum biały - - - Osc %1 waveform: - Osc %1 przebieg: + + + User-defined wave + Fala zdefiniowana przez użytkownika - - Osc %1 volume: - Osc %1 głośność: + + String volume: + Głośność struny: - - Osc %1 panning: - Osc %1 panoramowanie: + + String stiffness: + Sztywność struny: - - Osc %1 stereo detuning - Osc %1 odstrojenie stereo + + Pick position: + Wybierz pozycję: - - cents - cent(y) + + Pickup position: + - - Osc %1 harmonic: - Osc %1 harmoniczne: + + String panning: + Panoramowanie struny: - - - PatchesDialog - - Qsynth: Channel Preset - Qsynth: Preset kanału + + String detune: + Odstrojenie struny: - - Bank selector - Selektor banku + + String fuzziness: + Rozmycie struny: - - Bank - Bank + + String length: + Długość struny: - - Program selector - Selektor programu + + Impulse Editor + Edytor impulsów - - Patch - Próbka + + Impulse + Impuls - - Name - Nazwa + + Enable/disable string + Włącz/wyłącz strunę - - OK - OK + + Octave + Oktawa - - Cancel - Anuluj + + String + Struna - Sf2Instrument + lmms::gui::VstEffectControlDialog - - Bank - Bank + + Show/hide + Pokaż/ukryj - - Patch - Próbka + + Control VST plugin from LMMS host + Kontroluj wtyczkę VST z hosta LMMS - - Gain - Wzmocnienie + + Open VST plugin preset + Otwórz preset wtyczki VST - - Reverb - Pogłos + + Previous (-) + Poprzedni (-) - - Reverb room size - Rozmiar pomieszczenia + + Next (+) + Następny (+) - - Reverb damping - Tłumienie pogłosu + + Save preset + Zapisz preset - - Reverb width - Rozpiętość pogłosu + + + Effect by: + Efekt autorstwa: - - Reverb level - Poziom pogłosu + + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> + + + lmms::gui::WatsynView - - Chorus - Chorus + + + + + Volume + Głośność - - Chorus voices - + + + + + Panning + Panoramowanie - - Chorus level - + + + + + Freq. multiplier + Mnożnik częst. - - Chorus speed - + + + + + Left detune + Odstrojenie w lewo - - Chorus depth - + + + + + + + + + cents + centów - - A soundfont %1 could not be loaded. - Soundfont %1 nie może zostać załadowany. + + + + + Right detune + Odstrojenie w prawo - - - Sf2InstrumentView - - - Open SoundFont file - Otwórz plik SoundFont + + A-B Mix + Miksuj A-B - - Choose patch - Wybierz próbkę + + Mix envelope amount + Miksuj wartość obwiedni - - Gain: - Wzmocnienie: + + Mix envelope attack + Miksuj narastanie obwiedni - - Apply reverb (if supported) - Nałóż pogłos (jeśli wspierane) + + Mix envelope hold + - - Room size: - Rozmiar pokoju: + + Mix envelope decay + - - Damping: - Tłumienie + + Crosstalk + Przesłuch - - Width: - Szerokość: + + Select oscillator A1 + Wybierz oscylator A1 - - - Level: - Poziom: + + Select oscillator A2 + Wybierz oscylator A2 - - Apply chorus (if supported) - Nałóż chorus (jeśli wspierane) + + Select oscillator B1 + Wybierz oscylator B1 - - Voices: - Głosy: + + Select oscillator B2 + Wybierz oscylator B2 - - Speed: - Prędkość: + + Mix output of A2 to A1 + Miksuj wyjście A2 do A1 - - Depth: - Rozdzielczość bitowa: + + Modulate amplitude of A1 by output of A2 + Moduluj amplitudę A1 z wyjściem A2 - - SoundFont Files (*.sf2 *.sf3) - Pliki SoundFont (*.sf2 *.sf3) + + Ring modulate A1 and A2 + Modulacja pierścieniowa A1 i A2 - - - SfxrInstrument - - Wave - Fala + + Modulate phase of A1 by output of A2 + Moduluj fazę A1 z wyjściem A2 + + + + Mix output of B2 to B1 + Miksuj wyjście B2 do B1 - - - StereoEnhancerControlDialog - - WIDTH - SZEROKOŚĆ + + Modulate amplitude of B1 by output of B2 + Moduluj amplitudę B1 z wyjściem B2 - - Width: - Szerokość: + + Ring modulate B1 and B2 + Modulacja pierścieniowa B1 i B2 - - - StereoEnhancerControls - - Width - Szerokość + + Modulate phase of B1 by output of B2 + Moduluj fazę B1 z wyjściem B2 - - - StereoMatrixControlDialog - - Left to Left Vol: - Głośność Lewy IN Lewy OUT: + + + + + Draw your own waveform here by dragging your mouse on this graph. + Narysuj swój własny przebieg fali, przeciągając kursorem po tym wykresie. - - Left to Right Vol: - Głośność Lewy IN Prawy OUT: + + Load waveform + Załaduj kształt fali - - Right to Left Vol: - Głośność Prawy IN Lewy OUT: + + Load a waveform from a sample file + Załaduj kształt fali z przykładowego pliku - - Right to Right Vol: - Głośność Prawy IN Prawy OUT: + + Phase left + Faza w lewo - - - StereoMatrixControls - - Left to Left - Lewy IN >> Lewy OUT + + Shift phase by -15 degrees + Przesuń fazę o -15 stopni - - Left to Right - Lewy IN >> Prawy OUT + + Phase right + Faza w prawo - - Right to Left - Prawy IN >> Lewy OUT + + Shift phase by +15 degrees + Przesuń fazę o +15 stopni - - Right to Right - Prawy IN >> Prawy OUT + + + Normalize + Normalizuj - - - VestigeInstrument - - Loading plugin - Ładowanie wtyczki + + + Invert + Odwróć - - Please wait while loading the VST plugin... - Proszę poczekać, trwa ładowanie wtyczki VST… + + + Smooth + Wygładź - - - Vibed - - String %1 volume - String %1 - głośność + + + Sine wave + Fala sinusoidalna - - String %1 stiffness - String %1 - sztywność + + + + Triangle wave + Fala trójkątna - - Pick %1 position - Punkt Wymuszenia %1 + + Saw wave + Fala piłokształtna - - Pickup %1 position - Punkt Monitorowania %1 + + + Square wave + Fala prostokątna + + + lmms::gui::WaveShaperControlDialog - - String %1 panning - + + INPUT + WEJŚCIE - - String %1 detune - + + Input gain: + Wzmocnienie wejścia: - - String %1 fuzziness - + + OUTPUT + WYJŚCIE - - String %1 length - + + Output gain: + Wzmocnienie wyjścia: - - Impulse %1 - Impuls %1 + + + Reset wavegraph + Resetuj wykres falowy - - String %1 - + + + Smooth wavegraph + Płynny wykres falowy - - - VibedView - - String volume: - + + + Increase wavegraph amplitude by 1 dB + Zwiększ amplitudę wykresu falowego o 1 dB - - String stiffness: - Sztywność struny: + + + Decrease wavegraph amplitude by 1 dB + Zmniejsz amplitudę wykresu falowego o 1 dB - - Pick position: - Punkt Wymuszenia: + + Clip input + Przytnij wejście - - Pickup position: - Punkt Monitorowania: + + Clip input signal to 0 dB + Przytnij sygnał wejścia do 0 dB + + + lmms::gui::XpressiveView - - String panning: - + + Draw your own waveform here by dragging your mouse on this graph. + Narysuj swój własny przebieg fali, przeciągając kursorem po tym wykresie. - - String detune: - + + Select oscillator W1 + Wybierz oscylator W1 - - String fuzziness: - + + Select oscillator W2 + Wybierz oscylator W2 - - String length: - + + Select oscillator W3 + Wybierz oscylator W3 - - Impulse - Impuls + + Select output O1 + Wybierz wyjście O1 - - Octave - Oktawa + + Select output O2 + Wybierz wyjście O2 - - Impulse Editor - Edytor Impulsu + + Open help window + Otwórz okno pomocy - - Enable waveform - Włącz przebieg + + + Sine wave + Fala sinusoidalna - - Enable/disable string - + + + Moog-saw wave + Fala piłokształtna Mooga - - String - Struna + + + Exponential wave + Fala wykładnicza - - - Sine wave - Przebieg Sinusoidalny + + + Saw wave + Fala piłokształtna - - - Triangle wave - Przebieg Trójkątny + + + User-defined wave + Fala zdefiniowana przez użytkownika - - - Saw wave - Przebieg Piłokształtny + + + Triangle wave + Fala trójkątna - - + + Square wave - Przebieg Prostokątny + Fala prostokątna - - + + White noise - Biały szum + Szum biały - - - User-defined wave + + WaveInterpolate - - - Smooth waveform - Gładki kształt przebiegu - - - - - Normalize waveform + + ExpressionValid - - - VoiceObject - - Voice %1 pulse width - Współczynnik wypełnienia impulsu głosu %1 + + General purpose 1: + Ogólnego zastosowania 1: - - Voice %1 attack - Atak głosu %1 + + General purpose 2: + Ogólnego zastosowania 2: - - Voice %1 decay - Zanikanie głosu %1 + + General purpose 3: + Ogólnego zastosowania 3: - - Voice %1 sustain - Podtrzymanie głosu %1 + + O1 panning: + Panoramowanie O1: - - Voice %1 release - Wybrzmiewanie głosu %1 + + O2 panning: + Panoramowanie O2: - - Voice %1 coarse detuning - Zgrubne odstrojenie głosu %1 + + Release transition: + Przejście do opadania: - - Voice %1 wave shape - Kształt fali głosu %1 + + Smoothness + Gładkość + + + lmms::gui::ZynAddSubFxView - - Voice %1 sync - Synchronizacja głosu %1 + + Portamento: + Portamento: - - Voice %1 ring modulate - Modulacja pierścieniowa głosu %1 + + PORT + PORT - - Voice %1 filtered - Filtrowanie głosu %1 + + Filter frequency: + Częstotliwość filtra: - - Voice %1 test - Test głosu %1 + + FREQ + CZĘST - - - WaveShaperControlDialog - - INPUT - WEJŚCIE + + Filter resonance: + Rezonans filtra: - - Input gain: - Wzmocnienie wejścia: + + RES + REZ - - OUTPUT - WYJŚCIE + + Bandwidth: + Szerokość pasma: - - Output gain: - Wzmocnienie wyjścia: + + BW + SP - - - Reset wavegraph - + + FM gain: + Wzmocnienie FM: - - - Smooth wavegraph - Płynny wykres falowy + + FM GAIN + WZMOC FM - - - Increase wavegraph amplitude by 1 dB - + + Resonance center frequency: + Częstotliwość środkowa rezonansu: - - - Decrease wavegraph amplitude by 1 dB - + + RES CF + CŚ REZ - - Clip input - Przytnij wejście + + Resonance bandwidth: + Szerokość pasma rezonansu: - - Clip input signal to 0 dB - + + RES BW + SP REZ - - - WaveShaperControls - - Input gain - Wzmocnienie wejścia + + Forward MIDI control changes + Przekaż zmiany sterowania MIDI - - Output gain - Wzmocnienie wyścia + + Show GUI + Pokaż graficzny interfejs użytkownika - + \ No newline at end of file diff --git a/data/locale/pt.ts b/data/locale/pt.ts index f8cfe76181c..fe3c1c192d7 100644 --- a/data/locale/pt.ts +++ b/data/locale/pt.ts @@ -1,4 +1,4 @@ - + AboutDialog @@ -24,12 +24,12 @@ LMMS - easy music production for everyone. - LMMS-produção de música fácil para todos. + LMMS - produção de música fácil para todos. Copyright © %1. - + Copyright © %1. @@ -49,7 +49,7 @@ Contributors ordered by number of commits: - Contribuidores ordenados por número de contribuição: + Contribuidores por número de contribuições: @@ -70,955 +70,192 @@ Se você estiver interessado em traduzir LMMS para outro idioma ou quer melhorar - AmplifierControlDialog - - - VOL - VOL - - - - Volume: - Volume: - - - - PAN - PAN - - - - Panning: - Panorâmico: - - - - LEFT - ESQUERDA - - - - Left gain: - Ganho na esquerda: - + AboutJuceDialog - - RIGHT - DIREITA - - - - Right gain: - Ganho na Direita: + + About JUCE + Sobre o JUCE - - - AmplifierControls - - Volume - Volume + + <b>About JUCE</b> + <b>Sobre o JUCE</b> - - Panning - Panorâmico + + This program uses JUCE version 3.x.x. + Este programa usa o JUCE versão 3.x.x. - - Left gain - Ganho na Esquerda + + JUCE is an open-source cross-platform C++ application framework for creating high quality desktop and mobile applications. + +The core JUCE modules (juce_audio_basics, juce_audio_devices, juce_core and juce_events) are permissively licensed under the terms of the ISC license. +Other modules are covered by a GNU GPL 3.0 license. + +Copyright (C) 2022 Raw Material Software Limited. + JUCE é uma framework de aplicativos C++ multiplataforma de código aberto para a criação de aplicativos desktop e móveis de alta qualidade + +Os módulos principais do JUCE (juce_audio_basics, juce_audio_devices, juce_core e juce_events) são permissivamente licenciados sob os termos da licença ISC. +Outros módulos são cobertos por uma licença GNU GPL 3.0. + +Copyright (C) 2022 Raw Material Software Limited. - - Right gain - Ganho na Direita + + This program uses JUCE version + Este programa usa o JUCE versão - AudioAlsaSetupWidget - - - DEVICE - DISPOSITIVO - + AudioDeviceSetupWidget - - CHANNELS - CANAIS + + [System Default] + - AudioFileProcessorView - - - Open sample - Abrir amostra - - - - Reverse sample - Inverter amostra - - - - Disable loop - Desabilitar loop - - - - Enable loop - Habilitar Loop - - - - Enable ping-pong loop - Habilitar loop ping-pong - + CarlaAboutW - - Continue sample playback across notes - Continua a tocar a amostra entre as notas + + About Carla + Sobre Carla - - Amplify: - Amplificar: + + About + Sobre - - Start point: - Ponto de início: + + About text here + Texto sobre aqui - - End point: - Ponto de fim: + + Extended licensing here + Licença extendida aqui - - Loopback point: - Ponto de auto-retorno: + + Artwork + Arte - - - AudioFileProcessorWaveView - - Sample length: - Tamanho da amostra: + + Using KDE Oxygen icon set, designed by Oxygen Team. + Usando o conjunto de ícones KDE Oxygen, projetado pelo Oxygen Team. - - - AudioJack - - JACK client restarted - Cliente JACK reiniciado + + Contains some knobs, backgrounds and other small artwork from Calf Studio Gear, OpenAV and OpenOctave projects. + Contém alguns botões, fundos e outras pequenas artes dos projetos Calf Studio Gear, OpenAV e OpenOctave. - - LMMS was kicked by JACK for some reason. Therefore the JACK backend of LMMS has been restarted. You will have to make manual connections again. - LMMS foi chutado pelo JACK por alguma razão. Logo que o JACK restaure a comunicação com o LMMS você poderá precisar fazer as conexões manualmente. + + VST is a trademark of Steinberg Media Technologies GmbH. + VST é uma marca comercial de Steinberg Media Technologies GmbH. - - JACK server down - O servidor JACK caiu + + Special thanks to António Saraiva for a few extra icons and artwork! + Agradecimento especial para António Saraiva por alguns ícones e arte extra! - - The JACK server seems to have been shutdown and starting a new instance failed. Therefore LMMS is unable to proceed. You should save your project and restart JACK and LMMS. - O servidor de áudio JACK parece ter caído e ao reiniciar uma nova instância falhou. De qualquer maneira LMMS é capaz de prosseguir. Certifique-se de salvar seu projeto e reiniciar primeiro o JACK depois o LMMS. + + The LV2 logo has been designed by Thorsten Wilms, based on a concept from Peter Shorthose. + O logo de LV2 foi projetado por Thorsten Wilms, baseado no conceito de Peter Shorthose. - - Client name - Nome do cliente + + MIDI Keyboard designed by Thorsten Wilms. + Teclado MIDI projetado por Thorsten Wilms. - - Channels - Canais + + Carla, Carla-Control and Patchbay icons designed by DoosC. + Ícones de Carla, Carla-Control e Patchbay projetados por DoosC. - - - AudioOss - - Device - Dispositivo + + Features + Recursos - - Channels - Canais + + AU/AudioUnit: + AU/UnidadeAudio - - - AudioPortAudio::setupWidget - - Backend + + LADSPA: - - Device - Dispositivo - - - - AudioPulseAudio - - - Device - Dispositivo - - - - Channels - Canais - - - - AudioSdl::setupWidget - - - Device - Dispositivo - - - - AudioSndio - - - Device - Dispositivo - - - - Channels - Canais + + + + + + + + + TextLabel + Texto - - - AudioSoundIo::setupWidget - - Backend + + VST2: - - Device - Dispositivo - - - - AutomatableModel - - - &Reset (%1%2) - &Resetar (%1%2) - - - - &Copy value (%1%2) - &Copiar valor (%1%2) - - - - &Paste value (%1%2) - C&olar valor (%1%2) - - - - &Paste value - &Colar valor - - - - Edit song-global automation - Editar automação global da música - - - - Remove song-global automation - Apagar automação global da música - - - - Remove all linked controls - Apagar todos os controles linkados - - - - Connected to %1 - Conectado a %1 - - - - Connected to controller - Conectado ao controlador - - - - Edit connection... - Editar conexão... - - - - Remove connection - Apagar conexão - - - - Connect to controller... - Conectado ao controlador... - - - - AutomationEditor - - - Edit Value - Editar Valor - - - - New outValue + + DSSI: - - New inValue + + LV2: - - Please open an automation clip with the context menu of a control! - Por favor, abra o sequenciador de automação com o menu de contexto do controle! - - - - AutomationEditorWindow - - - Play/pause current clip (Space) - Tocar/Parar padrão atual (Espaço) - - - - Stop playing of current clip (Space) - Parar de tocar a sequência atual (Espaço) - - - - Edit actions - Editar ações - - - - Draw mode (Shift+D) - Modo desenhar (Shift+D) - - - - Erase mode (Shift+E) - Modo apagar (Shift+E) - - - - Draw outValues mode (Shift+C) + + VST3: - - Flip vertically - Virar verticalmente - - - - Flip horizontally - Virar horizontalmente - - - - Interpolation controls - Controles de interpolação + + OSC + - - Discrete progression - Progressão discreta + + Host URLs: + - - Linear progression - Progressão linear + + Valid commands: + Comandos válidos: - - Cubic Hermite progression - Progressão Cúbica de Hermite + + valid osc commands here + comandos osc válidos aqui - - Tension value for spline - Valor de tensão para a curva + + Example: + Exemplo: - - Tension: - Tensão: + + License + Licença - - Zoom controls - Controles de zoom - - - - Horizontal zooming - Zoom horizontal - - - - Vertical zooming - Zoom vertical - - - - Quantization controls - Controles de quantização - - - - Quantization - Quantização - - - - - Automation Editor - no clip - Editor de Automação - sem padrão - - - - - Automation Editor - %1 - Editor de Automação - %1 - - - - Model is already connected to this clip. - O modelo já está conectado para este padrão. - - - - AutomationClip - - - Drag a control while pressing <%1> - Arraste o controle enquanto pressiona a tecla <%1> - - - - AutomationClipView - - - Open in Automation editor - Abra dentro do Editor de Automação - - - - Clear - Limpar - - - - Reset name - Restaurar nome - - - - Change name - Mudar nome - - - - Set/clear record - Selecionar/limpar gravação - - - - Flip Vertically (Visible) - Virar Verticalmente (Visível) - - - - Flip Horizontally (Visible) - Virar Horizontalmente (Visível) - - - - %1 Connections - %1 Conexões - - - - Disconnect "%1" - Desconectar "%1" - - - - Model is already connected to this clip. - O modelo já está conectado para este padrão. - - - - AutomationTrack - - - Automation track - Pista de Automação - - - - PatternEditor - - - Beat+Bassline Editor - Mostrar/esconder Editor de Bases - - - - Play/pause current beat/bassline (Space) - Tocar/Parar base atual (Espaço) - - - - Stop playback of current beat/bassline (Space) - Parar playback da base atual (Espaço) - - - - Beat selector - Seletor de batida - - - - Track and step actions - Faixa e ações da etapa - - - - Add beat/bassline - Add linha de base - - - - Clone beat/bassline clip - - - - - Add sample-track - Adicionar faixa de amostra - - - - Add automation-track - Add automação de faixa - - - - Remove steps - Remover passo - - - - Add steps - Adicionar passo - - - - Clone Steps - Clonar Etapas - - - - PatternClipView - - - Open in Beat+Bassline-Editor - Abrir Editor de Bases - - - - Reset name - Restaurar nome - - - - Change name - Mudar nome - - - - PatternTrack - - - Beat/Bassline %1 - Batida/Linha de Baixo %1 - - - - Clone of %1 - Clone de %1 - - - - BassBoosterControlDialog - - - FREQ - FREQ - - - - Frequency: - Frequência: - - - - GAIN - GANHO - - - - Gain: - Ganho: - - - - RATIO - RELAÇÃO - - - - Ratio: - Relação: - - - - BassBoosterControls - - - Frequency - Frequência - - - - Gain - Ganho - - - - Ratio - Relação - - - - BitcrushControlDialog - - - IN - DENTRO - - - - OUT - FORA - - - - - GAIN - GANHO - - - - Input gain: - Ganho de entrada: - - - - NOISE - RUÍDO - - - - Input noise: - - - - - Output gain: - Ganho de saída: - - - - CLIP - - - - - Output clip: - - - - - Rate enabled - - - - - Enable sample-rate crushing - - - - - Depth enabled - - - - - Enable bit-depth crushing - - - - - FREQ - FREQ - - - - Sample rate: - Taxa de amostragem: - - - - STEREO - ESTÉREO - - - - Stereo difference: - Diferença de Stereo: - - - - QUANT - - - - - Levels: - Níveis: - - - - BitcrushControls - - - Input gain - Ganho de entrada - - - - Input noise - - - - - Output gain - Ganho de saída - - - - Output clip - clipe de saída - - - - - Sample rate - - - - - Stereo difference - - - - - Levels - Níveis - - - - Rate enabled - - - - - Depth enabled - - - - - CarlaAboutW - - - About Carla - Sobre Carla - - - - About - Sobre - - - - About text here - - - - - Extended licensing here - - - - - Artwork - Arte - - - - Using KDE Oxygen icon set, designed by Oxygen Team. - Usando o conjunto de ícones KDE Oxygen, projetado pelo Oxygen Team. - - - - Contains some knobs, backgrounds and other small artwork from Calf Studio Gear, OpenAV and OpenOctave projects. - Contém alguns botões, fundos e outras pequenas artes dos projetos Calf Studio Gear, OpenAV e OpenOctave. - - - - VST is a trademark of Steinberg Media Technologies GmbH. - VST é uma marca comercial de Steinberg Media Technologies GmbH. - - - - Special thanks to António Saraiva for a few extra icons and artwork! - Agradecimento especial para António Saraiva por alguns ícones e arte extra! - - - - The LV2 logo has been designed by Thorsten Wilms, based on a concept from Peter Shorthose. - O logo de LV2 foi projetado por Thorsten Wilms, baseado no conceito de Peter Shorthose. - - - - MIDI Keyboard designed by Thorsten Wilms. - Teclado MIDI projetado por Thorsten Wilms. - - - - Carla, Carla-Control and Patchbay icons designed by DoosC. - Ícones de Carla, Carla-Control e Patchbay projetados por DoosC. - - - - Features - Recursos - - - - AU/AudioUnit: - - - - - LADSPA: - - - - - - - - - - - - TextLabel - - - - - VST2: - - - - - DSSI: - - - - - LV2: - - - - - VST3: - - - - - OSC - - - - - Host URLs: - - - - - Valid commands: - Comandos válidos: - - - - valid osc commands here - comandos osc válidos aqui - - - - Example: - Exemplo: - - - - License - Licença - - - + GNU GENERAL PUBLIC LICENSE Version 2, June 1991 @@ -1303,15033 +540,18222 @@ POSSIBILITY OF SUCH DAMAGES. - - OSC Bridge Version + + OSC Bridge Version + Versão da Ponte OSC + + + + Plugin Version + Versão do Plugin + + + + <br>Version %1<br>Carla is a fully-featured audio plugin host%2.<br><br>Copyright (C) 2011-2019 falkTX<br> + <br>Versão %1<br>Carla é um servidor de plugin de áudio cheio de funcionalidades%2.<br><br>Copyright (C) 2011-2019 falkTX<br> + + + + + (Engine not running) + (Engine não executada) + + + + Everything! (Including LRDF) + Tudo! (Incluindo LRDF) + + + + Everything! (Including CustomData/Chunks) + + + + + About 110&#37; complete (using custom extensions)<br/>Implemented Feature/Extensions:<ul><li>http://lv2plug.in/ns/ext/atom</li><li>http://lv2plug.in/ns/ext/buf-size</li><li>http://lv2plug.in/ns/ext/data-access</li><li>http://lv2plug.in/ns/ext/event</li><li>http://lv2plug.in/ns/ext/instance-access</li><li>http://lv2plug.in/ns/ext/log</li><li>http://lv2plug.in/ns/ext/midi</li><li>http://lv2plug.in/ns/ext/options</li><li>http://lv2plug.in/ns/ext/parameters</li><li>http://lv2plug.in/ns/ext/port-props</li><li>http://lv2plug.in/ns/ext/presets</li><li>http://lv2plug.in/ns/ext/resize-port</li><li>http://lv2plug.in/ns/ext/state</li><li>http://lv2plug.in/ns/ext/time</li><li>http://lv2plug.in/ns/ext/uri-map</li><li>http://lv2plug.in/ns/ext/urid</li><li>http://lv2plug.in/ns/ext/worker</li><li>http://lv2plug.in/ns/extensions/ui</li><li>http://lv2plug.in/ns/extensions/units</li><li>http://home.gna.org/lv2dynparam/rtmempool/v1</li><li>http://kxstudio.sf.net/ns/lv2ext/external-ui</li><li>http://kxstudio.sf.net/ns/lv2ext/programs</li><li>http://kxstudio.sf.net/ns/lv2ext/props</li><li>http://kxstudio.sf.net/ns/lv2ext/rtmempool</li><li>http://ll-plugins.nongnu.org/lv2/ext/midimap</li><li>http://ll-plugins.nongnu.org/lv2/ext/miditype</li></ul> + + + + + + + Using Juce host + + + + + About 85% complete (missing vst bank/presets and some minor stuff) + + + + + CarlaHostW + + + MainWindow + JanelaPrincipal + + + + Rack + Rack + + + + Patchbay + + + + + Logs + + + + + Loading... + Carregando... + + + + Save + + + + + Clear + + + + + Ctrl+L + + + + + Auto-Scroll + + + + + Buffer Size: + + + + + Sample Rate: + + + + + ? Xruns + + + + + DSP Load: %p% + + + + + &File + &Arquivo + + + + &Engine + + + + + &Plugin + + + + + Macros (all plugins) + + + + + &Canvas + + + + + Zoom + + + + + &Settings + + + + + &Help + Aj&uda + + + + Tool Bar + + + + + Disk + Disco + + + + + Home + Início + + + + Transport + + + + + Playback Controls + + + + + Time Information + + + + + Frame: + + + + + 000'000'000 + + + + + Time: + Tempo: + + + + 00:00:00 + + + + + BBT: + + + + + 000|00|0000 + + + + + Settings + Opções + + + + BPM + + + + + Use JACK Transport + + + + + Use Ableton Link + + + + + &New + &Novo + + + + Ctrl+N + + + + + &Open... + &Abrir... + + + + + Open... + Abrir... + + + + Ctrl+O + + + + + &Save + &Salvar + + + + Ctrl+S + + + + + Save &As... + Salvar &como... + + + + + Save As... + + + + + Ctrl+Shift+S + + + + + &Quit + Sai&r + + + + Ctrl+Q + + + + + &Start + + + + + F5 + + + + + St&op + + + + + F6 + + + + + &Add Plugin... + + + + + Ctrl+A + + + + + &Remove All + + + + + Enable + + + + + Disable + + + + + 0% Wet (Bypass) + + + + + 100% Wet + + + + + 0% Volume (Mute) + + + + + 100% Volume + + + + + Center Balance + Balanço Central + + + + &Play + &Reproduzir + + + + Ctrl+Shift+P + + + + + &Stop + &Parar + + + + Ctrl+Shift+X + + + + + &Backwards + + + + + Ctrl+Shift+B + + + + + &Forwards + + + + + Ctrl+Shift+F + + + + + &Arrange + + + + + Ctrl+G + + + + + + &Refresh + + + + + Ctrl+R + + + + + Save &Image... + + + + + Auto-Fit + + + + + Zoom In + Aumentar Zoom + + + + Ctrl++ + + + + + Zoom Out + Reduzir Zoom + + + + Ctrl+- + + + + + Zoom 100% + + + + + Ctrl+1 + + + + + Show &Toolbar + + + + + &Configure Carla + &Configurar Carla + + + + &About + &Sobre + + + + About &JUCE + Sobre &JUCE + + + + About &Qt + Sobre &QT + + + + Show Canvas &Meters + + + + + Show Canvas &Keyboard + + + + + Show Internal + + + + + Show External + + + + + Show Time Panel + + + + + Show &Side Panel + + + + + Ctrl+P + + + + + &Connect... + + + + + Compact Slots + + + + + Expand Slots + + + + + Perform secret 1 + + + + + Perform secret 2 + + + + + Perform secret 3 + + + + + Perform secret 4 + + + + + Perform secret 5 + + + + + Add &JACK Application... + + + + + &Configure driver... + + + + + Panic + Pânico + + + + Open custom driver panel... + Abrir painel de drivers personalizados... + + + + Save Image... (2x zoom) + + + + + Save Image... (4x zoom) + + + + + Copy as Image to Clipboard + Copiar como Imagem para a Área de Transferência + + + + Ctrl+Shift+C + + + + + CarlaHostWindow + + + Export as... + Exportar como... + + + + + + + Error + Erro + + + + Failed to load project + Falha ao carregar projeto + + + + Failed to save project + Falha ao salvar projeto + + + + Quit + Fechar + + + + Are you sure you want to quit Carla? + + + + + Could not connect to Audio backend '%1', possible reasons: +%2 + + + + + Could not connect to Audio backend '%1' + + + + + Warning + Aviso + + + + There are still some plugins loaded, you need to remove them to stop the engine. +Do you want to do this now? + Ainda existem alguns plugins carregados, você precisa removê-los para interromper o motor. +Você quer fazer isso agora? + + + + CarlaSettingsW + + + Settings + Opções + + + + main + principal + + + + canvas + + + + + engine + motor + + + + osc + + + + + file-paths + + + + + plugin-paths + + + + + wine + + + + + experimental + + + + + Widget + + + + + + Main + + + + + + Canvas + + + + + + Engine + + + + + File Paths + + + + + Plugin Paths + + + + + Wine + + + + + + Experimental + Experimental + + + + <b>Main</b> + <b>Principal</b> + + + + Paths + Caminhos + + + + Default project folder: + Pasta padrão do projeto: + + + + Interface + Interface + + + + Use "Classic" as default rack skin + + + + + Interface refresh interval: + Intervalo de atualização da interface: + + + + + ms + ms + + + + Show console output in Logs tab (needs engine restart) + + + + + Show a confirmation dialog before quitting + + + + + + Theme + Tema + + + + Use Carla "PRO" theme (needs restart) + Usar tema "PRO" da Carla (precisa reiniciar) + + + + Color scheme: + Esquema de cores: + + + + Black + Preto + + + + System + Sistema + + + + Enable experimental features + + + + + <b>Canvas</b> + + + + + Bezier Lines + Linhas de Bezier + + + + Theme: + Tema: + + + + Size: + Tamanho: + + + + 775x600 + 775x600 + + + + 1550x1200 + 1550x1200 + + + + 3100x2400 + 3100x2400 + + + + 4650x3600 + 4650x3600 + + + + 6200x4800 + 6200x4800 + + + + 12400x9600 + + + + + Options + Opções + + + + Auto-hide groups with no ports + + + + + Auto-select items on hover + + + + + Basic eye-candy (group shadows) + + + + + Render Hints + + + + + Anti-Aliasing + + + + + Full canvas repaints (slower, but prevents drawing issues) + + + + + <b>Engine</b> + + + + + + Core + + + + + Single Client + + + + + Multiple Clients + + + + + + Continuous Rack + + + + + + Patchbay + + + + + Audio driver: + + + + + Process mode: + + + + + + + + Maximum number of parameters to allow in the built-in 'Edit' dialog + + + + + Max Parameters: + + + + + ... + + + + + Reset Xrun counter after project load + + + + + Plugin UIs + + + + + + How much time to wait for OSC GUIs to ping back the host + + + + + UI Bridge Timeout: + + + + + Use OSC-GUI bridges when possible, this way separating the UI from DSP code + + + + + Use UI bridges instead of direct handling when possible + + + + + Make plugin UIs always-on-top + + + + + Make plugin UIs appear on top of Carla (needs restart) + + + + + NOTE: Plugin-bridge UIs cannot be managed by Carla on macOS + + + + + + Restart the engine to load the new settings + + + + + <b>OSC</b> + + + + + Enable OSC + + + + + Enable TCP port + + + + + + Use specific port: + + + + + Overridden by CARLA_OSC_TCP_PORT env var + + + + + + Use randomly assigned port + + + + + Enable UDP port + + + + + Overridden by CARLA_OSC_UDP_PORT env var + + + + + DSSI UIs require OSC UDP port enabled + + + + + <b>File Paths</b> + + + + + Audio + Áudio + + + + MIDI + MIDI + + + + Used for the "audiofile" plugin + Usado para o plugin "audiofile" + + + + Used for the "midifile" plugin + Usado para o plugin "midifile" + + + + + Add... + + + + + + Remove + + + + + + Change... + + + + + <b>Plugin Paths</b> + + + + + LADSPA + + + + + DSSI + + + + + LV2 + + + + + VST2 + + + + + VST3 + + + + + SF2/3 + + + + + SFZ + + + + + JSFX + + + + + CLAP + + + + + Restart Carla to find new plugins + + + + + <b>Wine</b> + + + + + Executable + + + + + Path to 'wine' binary: + + + + + Prefix + + + + + Auto-detect Wine prefix based on plugin filename + Detectar automaticamente o prefixo Wine baseado no nome de arquivo do plugin + + + + Fallback: + + + + + Note: WINEPREFIX env var is preferred over this fallback + + + + + Realtime Priority + + + + + Base priority: + + + + + WineServer priority: + + + + + These options are not available for Carla as plugin + + + + + <b>Experimental</b> + + + + + Experimental options! Likely to be unstable! + + + + + Enable plugin bridges + + + + + Enable Wine bridges + + + + + Enable jack applications + + + + + Export single plugins to LV2 + + + + + Use system/desktop-theme icons (needs restart) + + + + + Load Carla backend in global namespace (NOT RECOMMENDED) + + + + + Fancy eye-candy (fade-in/out groups, glow connections) + + + + + Use OpenGL for rendering (needs restart) + Usar OpenGL para renderização (requer reinicialização) + + + + High Quality Anti-Aliasing (OpenGL only) + Antisserrilhamento de Alta Qualidade (apenas OpenGL) + + + + Render Ardour-style "Inline Displays" + + + + + Force mono plugins as stereo by running 2 instances at the same time. +This mode is not available for VST plugins. + + + + + Force mono plugins as stereo + + + + + When enabled, Carla will try to prevent plugins from doing things that might mess up the audio or cause xruns, such as fork(), gtk_init() and similar. + + + + + Prevent unsafe calls from plugins (needs restart) + + + + + Run plugins in a separate process, so if they crash it does not affect Carla. +Plugins get automatically deactivated in such cases. +Reactvate them to start the process again, with the last saved state applied to it. + + + + + Run plugins in bridge mode when possible + + + + + + + + Add Path + + + + + Dialog + + + Carla Control - Connect + + + + + Remote setup + + + + + UDP Port: + + + + + Remote host: + + + + + TCP Port: + + + + + Set value + + + + + TextLabel + + + + + Scale Points + + + + + DriverSettingsW + + + Driver Settings + + + + + Device: + Dispositivo: + + + + Buffer size: + + + + + Sample rate: + Taxa de amostragem: + + + + Triple buffer + + + + + Show Driver Control Panel + + + + + Restart the engine to load the new settings + + + + + ExportProjectDialog + + + Export project + Renderizar projeto + + + + Export as loop (remove extra bar) + Exportar como loop (remove o compasso extra) + + + + Export between loop markers + Exportar entre os marcadores de repetição + + + + Render Looped Section: + Renderizar Sessão de Loop + + + + time(s) + vez(es) + + + + File format settings + Ajuste no formato do arquivo + + + + File format: + Formato do arquivo: + + + + Sampling rate: + Taxa de amostragem + + + + 44100 Hz + 44100 Hz + + + + 48000 Hz + 48000 Hz + + + + 88200 Hz + 88200 Hz + + + + 96000 Hz + 96000 Hz + + + + 192000 Hz + 192000 Hz + + + + Bit depth: + Profundidade de Bits + + + + 16 Bit integer + Inteiro 16 Bits + + + + 24 Bit integer + Inteiro 24 Bits + + + + 32 Bit float + Flutuante 32 Bits + + + + Stereo mode: + Modo estéreo + + + + Mono + Mono + + + + Stereo + Estéreo + + + + Joint stereo + Joint stereo + + + + Compression level: + Nível de compressão + + + + Bitrate: + Velocidade em bits: + + + + 64 KBit/s + 64 KBit/s + + + + 128 KBit/s + 128 KBit/s + + + + 160 KBit/s + 160 KBit/s + + + + 192 KBit/s + 192 KBit/s + + + + 256 KBit/s + 256 KBit/s + + + + 320 KBit/s + 320 KBit/s + + + + Use variable bitrate + Usar taxa de bits variável + + + + Quality settings + Configurações de qualidade + + + + Interpolation: + Interpolação: + + + + Zero order hold + Retentor de Ordem Zero + + + + Sinc worst (fastest) + Sinc pior (mais rápida) + + + + Sinc medium (recommended) + Sinc média (recomendada) + + + + Sinc best (slowest) + Sinc melhor (mais lenta) + + + + Start + Começar + + + + Cancel + Cancelar + + + + InstrumentFunctionNoteStacking + + + octave + oitava + + + + + Major + Maior + + + + Majb5 + Maior b5 + + + + minor + menor + + + + minb5 + menor b5 + + + + sus2 + sus2 + + + + sus4 + sus4 + + + + aug + aum + + + + augsus4 + aum sus4 + + + + tri + tríade + + + + 6 + 6 + + + + 6sus4 + 6sus4 + + + + 6add9 + 6(9) + + + + m6 + m6 + + + + m6add9 + m6(9) + + + + 7 + 7 + + + + 7sus4 + 7 sus4 + + + + 7#5 + 7(#5) + + + + 7b5 + 7(b5) + + + + 7#9 + 7(#9) + + + + 7b9 + 7(b9) + + + + 7#5#9 + 7(#5, #9) + + + + 7#5b9 + 7(#5, b9) + + + + 7b5b9 + 7(b5, b9) + + + + 7add11 + 7(11) + + + + 7add13 + 7(13) + + + + 7#11 + 7(#11) + + + + Maj7 + 7M + + + + Maj7b5 + 7M(b5) + + + + Maj7#5 + 7M(#5) + + + + Maj7#11 + 7M(#11) + + + + Maj7add13 + 7M(13) + + + + m7 + m7 + + + + m7b5 + m7(b5) + + + + m7b9 + m7(b9) + + + + m7add11 + m7(11) + + + + m7add13 + m7(13) + + + + m-Maj7 + m-7M + + + + m-Maj7add11 + m-7M(11) + + + + m-Maj7add13 + m-7M(13) + + + + 9 + 9 + + + + 9sus4 + 9 sus4 + + + + add9 + (9) + + + + 9#5 + (9, #5) + + + + 9b5 + (9, b5) + + + + 9#11 + (9, #11) + + + + 9b13 + (b9, 13) + + + + Maj9 + 9M + + + + Maj9sus4 + 9M sus4 + + + + Maj9#5 + 9M(#5) + + + + Maj9#11 + 9M(#11) + + + + m9 + m9 + + + + madd9 + m(9) + + + + m9b5 + m(9, b5) + + + + m9-Maj7 + m(9,7M) + + + + 11 + 11 + + + + 11b9 + 11(b9) + + + + Maj11 + Acorde de 11 + + + + m11 + m(11) + + + + m-Maj11 + m (11M) + + + + 13 + 13 + + + + 13#9 + 13(#9) + + + + 13b9 + 13(b9) + + + + 13b5b9 + 13(b5, b9) + + + + Maj13 + 13M + + + + m13 + m(13) + + + + m-Maj13 + m (13M) + + + + Harmonic minor + Menor Harmônica + + + + Melodic minor + Menor Melódica + + + + Whole tone + Tons inteiros + + + + Diminished + Diminuta + + + + Major pentatonic + Pentatônica maior + + + + Minor pentatonic + Pentatônica menor + + + + Jap in sen + Insen Japonesa + + + + Major bebop + Bebop maior + + + + Dominant bebop + Bebop dominante + + + + Blues + Blues + + + + Arabic + Árabe + + + + Enigmatic + Enigmática + + + + Neopolitan + Napolitana + + + + Neopolitan minor + Neopolitana menor + + + + Hungarian minor + Húngara menor + + + + Dorian + Dório + + + + Phrygian + Frígio + + + + Lydian + Lídio + + + + Mixolydian + Mixolídio + + + + Aeolian + Eólio + + + + Locrian + Lócrio + + + + Minor + Menor + + + + Chromatic + Cromático + + + + Half-Whole Diminished + Mínima-Diminuída + + + + 5 + 5 + + + + Phrygian dominant + Frígio dominante + + + + Persian + Persa + + + + InstrumentSoundShaping + + + VOLUME + VOLUME + + + + Volume + Volume + + + + CUTOFF + CORTE + + + + Cutoff frequency + Frequência de corte + + + + RESO + RESS + + + + Resonance + Ressonância + + + + JackAppDialog + + + Add JACK Application + + + + + Note: Features not implemented yet are greyed out + + + + + Application + + + + + Name: + + + + + Application: + + + + + From template + + + + + Custom + + + + + Template: + + + + + Command: + + + + + Setup + + + + + Session Manager: + + + + + None + + + + + Audio inputs: + + + + + MIDI inputs: + Entradas MIDI: + + + + Audio outputs: + + + + + MIDI outputs: + Saídas MIDI: + + + + Take control of main application window + + + + + Workarounds + Gambiarras + + + + Wait for external application start (Advanced, for Debug only) + + + + + Capture only the first X11 Window + Capturar apenas a primeira Janela X11 + + + + Use previous client output buffer as input for the next client + + + + + Simulate 16 JACK MIDI outputs, with MIDI channel as port index + + + + + Error here + Erro aqui + + + + NSM applications cannot use abstract or absolute paths + + + + + NSM applications cannot use CLI arguments + + + + + You need to save the current Carla project before NSM can be used + + + + + JuceAboutW + + + This program uses JUCE version %1. + + + + + MidiPatternW + + + MIDI Pattern + Padrão MIDI + + + + Time Signature: + Fórmula de Compasso: + + + + + + 1/4 + + + + + 2/4 + + + + + 3/4 + + + + + 4/4 + + + + + 5/4 + + + + + 6/4 + + + + + Measures: + Medidas: + + + + + + 1 + + + + + 2 + + + + + 3 + + + + + 4 + + + + + 5 + 5 + + + + 6 + 6 + + + + 7 + 7 + + + + 8 + + + + + 9 + 9 + + + + 10 + + + + + 11 + 11 + + + + 12 + + + + + 13 + 13 + + + + 14 + + + + + 15 + + + + + 16 + + + + + Default Length: + Tamanho Padrão: + + + + + 1/16 + + + + + + 1/15 + + + + + + 1/12 + + + + + + 1/9 + + + + + + 1/8 + + + + + + 1/6 + + + + + + 1/3 + + + + + + 1/2 + + + + + Quantize: + Quantizar: + + + + &File + &Arquivo + + + + &Edit + &Editar + + + + &Quit + Sai&r + + + + Esc + + + + + &Insert Mode + &Modo de Inserção + + + + F + + + + + &Velocity Mode + + + + + D + + + + + Select All + + + + + A + + + + + PatchesDialog + + + + Qsynth: Channel Preset + + + + + + Bank selector + Selecionar banco + + + + + Bank + Banco + + + + + Program selector + Selecionar programa + + + + + Patch + Programação + + + + + Name + Nome + + + + + OK + OK + + + + + Cancel + Cancelar + + + + PluginBrowser + + + no description + sem descrição + + + + A native amplifier plugin + Um plugin amplificador nativo + + + + Simple sampler with various settings for using samples (e.g. drums) in an instrument-track + Amostrador simples com várias configurações para usar amostras (ex. Percussão) em uma trilha de instrumento + + + + Boost your bass the fast and simple way + Aumente os graves de forma rápida e simples + + + + Customizable wavetable synthesizer + Sintetizador de formas de onda customizáveis + + + + An oversampling bitcrusher + + + + + Carla Patchbay Instrument + Instrumento do Carla Patchbay + + + + Carla Rack Instrument + Instrumento do Carla Rack + + + + A dynamic range compressor. + + + + + A 4-band Crossover Equalizer + Um Equalizador Crossover de 4 bandas + + + + A native delay plugin + Plugin de delay nativo + + + + A Dual filter plugin + Plugin de filtro duplo + + + + plugin for processing dynamics in a flexible way + plugin para processamento dinâmico de um jeito flexível + + + + A native eq plugin + Um plugin equalizador nativo + + + + A native flanger plugin + + + + + Emulation of GameBoy (TM) APU + Emulação do GameBoy (TM) APU + + + + Player for GIG files + Tocador para arquivos GIG + + + + Filter for importing Hydrogen files into LMMS + Filtro para importação de arquivos do Hydrogen para o LMMS + + + + Versatile drum synthesizer + Sintetizador de Bateria Versátil + + + + List installed LADSPA plugins + Lista dos plugins LADSPA instalados + + + + plugin for using arbitrary LADSPA-effects inside LMMS. + plugin para uso de efeitos LADSPA arbitrários dentro do LMMS. + + + + Incomplete monophonic imitation TB-303 + Imitação monofônica incompleta do TB-303 + + + + plugin for using arbitrary LV2-effects inside LMMS. + plugin para usar efeitos LV2 arbitrários no LMMS + + + + plugin for using arbitrary LV2 instruments inside LMMS. + plugin para usar instrumentos LV2 arbitrários no LMMS + + + + Filter for exporting MIDI-files from LMMS + Filtro para exportar arquivos MIDI do LMMS + + + + Filter for importing MIDI-files into LMMS + Filtro para importação de arquivos MIDI para o LMMS + + + + Monstrous 3-oscillator synth with modulation matrix + Sintetizador monstruoso de 3 osciladores com matriz de modulação + + + + A multitap echo delay plugin + Um plugin de delay multi ecos + + + + A NES-like synthesizer + Um sintetizador como o Nintendinho + + + + 2-operator FM Synth + Dois Operadores de Síntese FM + + + + Additive Synthesizer for organ-like sounds + Síntetizador de Síntese Aditiva para sons tipo de órgão + + + + GUS-compatible patch instrument + Pré definição de instrumento compatível com GUS (Gravis Ultrasound) + + + + Plugin for controlling knobs with sound peaks + Plugin para controlar botões com os picos sonoros + + + + Reverb algorithm by Sean Costello + Algoritmo de reverberação por Sean Costello + + + + Player for SoundFont files + Tocador para arquivos SoundFont + + + + LMMS port of sfxr + sfxr para LMMS + + + + Emulation of the MOS6581 and MOS8580 SID. +This chip was used in the Commodore 64 computer. + Emulação do MOS6581 e do MOS8580 SID. +Este chip foi utilizado no computador Commodore 64. + + + + A graphical spectrum analyzer. + Um analisador gráfico de espectro + + + + Plugin for enhancing stereo separation of a stereo input file + Plugin para melhorar a separação estéreo de um arquivo de entrada estéreo + + + + Plugin for freely manipulating stereo output + Plugin para livre manipulação das saídas estéreo + + + + Tuneful things to bang on + Instrumentos percussivos com afinação para você usar + + + + Three powerful oscillators you can modulate in several ways + Três osciladores poderosos que você pode modular em diversas formas + + + + A stereo field visualizer. + Um visualizador do campo estéreo + + + + VST-host for using VST(i)-plugins within LMMS + Servidor (host) VST para usar plugins VST(i) com o LMMS + + + + Vibrating string modeler + Modelador de Cordas vibrantes + + + + plugin for using arbitrary VST effects inside LMMS. + plugin para uso de efeitos VST arbitrários no LMMS + + + + 4-oscillator modulatable wavetable synth + Sintetizador de tabela ondulatória com 4 osciladores moduláveis + + + + plugin for waveshaping + plugin para formas de ondas + + + + Mathematical expression parser + Analisador de expressões matemáticas + + + + Embedded ZynAddSubFX + Poderoso sintetizador ZynAddSubFx embutido no LMMS + + + + An all-pass filter allowing for extremely high orders. + + + + + Granular pitch shifter + + + + + Upwards/downwards multiband compression plugin powered by the eldritch elder god LOMMUS. + + + + + Basic Slicer + + + + + Tap to the beat + Toque no ritmo + + + + PluginEdit + + + Plugin Editor + Editor de Plugin + + + + Edit + + + + + Control + Controle + + + + MIDI Control Channel: + + + + + N + + + + + Output dry/wet (100%) + + + + + Output volume (100%) + + + + + Balance Left (0%) + + + + + + Balance Right (0%) + + + + + Use Balance + + + + + Use Panning + + + + + Settings + Opções + + + + Use Chunks + + + + + Audio: + + + + + Fixed-Size Buffer + + + + + Force Stereo (needs reload) + + + + + MIDI: + + + + + Map Program Changes + + + + + Send Notes + + + + + Send Bank/Program Changes + + + + + Send Control Changes + + + + + Send Channel Pressure + + + + + Send Note Aftertouch + + + + + Send Pitchbend + + + + + Send All Sound/Notes Off + + + + + +Plugin Name + + + + + + Program: + + + + + MIDI Program: + Programa MIDI: + + + + Save State + + + + + Load State + + + + + Information + + + + + Label/URI: + + + + + Name: + + + + + Type: + Tipo: + + + + Maker: + + + + + Copyright: + + + + + Unique ID: + + + + + PluginFactory + + + Plugin not found. + Plugin não achado. + + + + LMMS plugin %1 does not have a plugin descriptor named %2! + + + + + PluginListDialog + + + Carla - Add New + + + + + Requirements - - Plugin Version + + With Custom GUI - - <br>Version %1<br>Carla is a fully-featured audio plugin host%2.<br><br>Copyright (C) 2011-2019 falkTX<br> + + With CV Ports - - - (Engine not running) + + Real-time safe only - - Everything! (Including LRDF) + + Stereo only + Apenas estéreo + + + + With Inline Display - - Everything! (Including CustomData/Chunks) + + Favorites only - - About 110&#37; complete (using custom extensions)<br/>Implemented Feature/Extensions:<ul><li>http://lv2plug.in/ns/ext/atom</li><li>http://lv2plug.in/ns/ext/buf-size</li><li>http://lv2plug.in/ns/ext/data-access</li><li>http://lv2plug.in/ns/ext/event</li><li>http://lv2plug.in/ns/ext/instance-access</li><li>http://lv2plug.in/ns/ext/log</li><li>http://lv2plug.in/ns/ext/midi</li><li>http://lv2plug.in/ns/ext/options</li><li>http://lv2plug.in/ns/ext/parameters</li><li>http://lv2plug.in/ns/ext/port-props</li><li>http://lv2plug.in/ns/ext/presets</li><li>http://lv2plug.in/ns/ext/resize-port</li><li>http://lv2plug.in/ns/ext/state</li><li>http://lv2plug.in/ns/ext/time</li><li>http://lv2plug.in/ns/ext/uri-map</li><li>http://lv2plug.in/ns/ext/urid</li><li>http://lv2plug.in/ns/ext/worker</li><li>http://lv2plug.in/ns/extensions/ui</li><li>http://lv2plug.in/ns/extensions/units</li><li>http://home.gna.org/lv2dynparam/rtmempool/v1</li><li>http://kxstudio.sf.net/ns/lv2ext/external-ui</li><li>http://kxstudio.sf.net/ns/lv2ext/programs</li><li>http://kxstudio.sf.net/ns/lv2ext/props</li><li>http://kxstudio.sf.net/ns/lv2ext/rtmempool</li><li>http://ll-plugins.nongnu.org/lv2/ext/midimap</li><li>http://ll-plugins.nongnu.org/lv2/ext/miditype</li></ul> + + (Number of Plugins go here) - - - - Using Juce host + + &Add Plugin - - About 85% complete (missing vst bank/presets and some minor stuff) + + Cancel - - - CarlaHostW - - MainWindow + + Refresh + Atualizar + + + + Reset filters - - Rack + + + + + + + + + + + + + + + + + TextLabel - - Patchbay + + Format: - - Logs + + Architecture: - - Loading... + + Type: - - Buffer Size: + + MIDI Ins: - - Sample Rate: + + Audio Ins: - - ? Xruns + + CV Outs: - - DSP Load: %p% + + MIDI Outs: - - &File - &Arquivo + + Parameter Ins: + - - &Engine + + Parameter Outs: - - &Plugin + + Audio Outs: - - Macros (all plugins) + + CV Ins: - - &Canvas + + UniqueID: - - Zoom + + Has Inline Display: - - &Settings + + Has Custom GUI: - - &Help - Aj&uda + + Is Synth: + - - toolBar + + Is Bridged: - - Disk + + Information - - - Home - Início + + Name + - - Transport + + Label/Id/URI - - Playback Controls + + Maker - - Time Information + + Binary/Filename - - Frame: + + Format - - 000'000'000 + + Internal - - Time: - Tempo: + + LADSPA + - - 00:00:00 + + DSSI - - BBT: + + LV2 - - 000|00|0000 + + VST2 - - Settings - Opções + + VST3 + - - BPM + + CLAP - - Use JACK Transport + + AU - - Use Ableton Link + + JSFX - - &New - &Novo + + Sound Kits + - - Ctrl+N + + Type - - &Open... - &Abrir... + + Effects + - - - Open... + + Instruments - - Ctrl+O + + MIDI Plugins + Plugins MIDI + + + + Other/Misc - - &Save - &Salvar + + Category + - - Ctrl+S + + All - - Save &As... - Salvar &como... + + Delay + - - - Save As... + + Distortion - - Ctrl+Shift+S + + Dynamics - - &Quit - Sai&r + + EQ + - - Ctrl+Q + + Filter - - &Start + + Modulator - - F5 + + Synth - - St&op + + Utility - - F6 + + + Other - - &Add Plugin... + + Architecture - - Ctrl+A + + + Native - - &Remove All + + Bridged - - Enable + + Bridged (Wine) - - Disable + + Focus Text Search - - 0% Wet (Bypass) + + Ctrl+F - - 100% Wet + + Bridged (32bit) - - 0% Volume (Mute) + + Discovering internal plugins... - - 100% Volume + + Discovering LADSPA plugins... - - Center Balance + + Discovering DSSI plugins... - - &Play - &Reproduzir + + Discovering LV2 plugins... + - - Ctrl+Shift+P + + Discovering VST2 plugins... - - &Stop - &Parar + + Discovering VST3 plugins... + - - Ctrl+Shift+X + + Discovering CLAP plugins... - - &Backwards + + Discovering AU plugins... - - Ctrl+Shift+B + + Discovering JSFX plugins... - - &Forwards + + Discovering SF2 kits... + Descobrindo kits SF2 + + + + Discovering SFZ kits... - - Ctrl+Shift+F + + Unknown - - &Arrange + + + + + Yes - - Ctrl+G + + + + + No + + + PluginParameter - - - &Refresh + + Form - - Ctrl+R + + Parameter Name - - Save &Image... + + TextLabel - - Auto-Fit + + ... + + + PluginRefreshDialog - - Zoom In - Aumentar Zoom + + Plugin Refresh + - - Ctrl++ + + Search for: + + + + + All plugins, ignoring cache + + + + + Updated plugins only + + + + + Check previously invalid plugins + + + + + Press 'Scan' to begin the search + + + + + Scan + + + + + >> Skip + + + + + Close + + + + + PluginWidget + + + + + + + Frame + + + + + Enable + + + + + On/Off + Liga/Desliga + + + + + + + PluginName - - Zoom Out - Reduzir Zoom + + MIDI + MIDI + + + + AUDIO IN + - - Ctrl+- + + AUDIO OUT - - Zoom 100% + + GUI - - Ctrl+1 + + Edit - - Show &Toolbar + + Remove - - &Configure Carla - &Configurar Carla + + Plugin Name + - - &About - &Sobre + + Preset: + + + + ProjectRenderer - - About &JUCE - Sobre &JUCE + + WAV (*.wav) + - - About &Qt - Sobre &QT + + FLAC (*.flac) + - - Show Canvas &Meters + + OGG (*.ogg) - - Show Canvas &Keyboard + + MP3 (*.mp3) + + + QGroupBox - - Show Internal + + + Settings for %1 + + + QObject - - Show External - + + Reload Plugin + Recarregar Plugin - - Show Time Panel - + + Show GUI + Mostrar GUI - - Show &Side Panel - + + Help + Ajuda - - &Connect... + + LADSPA plugins - - Compact Slots + + The project contains %1 LADSPA plugin(s) which might have not been restored correctly! Please check the project. - - Expand Slots + + URI: - - Perform secret 1 + + Project: - - Perform secret 2 + + Maker: - - Perform secret 3 + + Homepage: - - Perform secret 4 + + License: - - Perform secret 5 + + File: %1 - - Add &JACK Application... + + failed to load description - - &Configure driver... - + + Open audio file + Abrir arquivo de áudio - - Panic + + Error loading sample - - Open custom driver panel... + + %1 (unsupported) - CarlaHostWindow + QWidget - - Export as... - Exportar como... + + + Name: + Nome: - - - - - Error - Erro + + Maker: + Marcador: - - Failed to load project - + + Copyright: + Direitos autorais: - - Failed to save project - + + Requires Real Time: + Requer Processamento em Tempo Real: - - Quit - Fechar + + + + Yes + Sim - - Are you sure you want to quit Carla? - + + + + No + Não - - Could not connect to Audio backend '%1', possible reasons: -%2 - + + Real Time Capable: + Capacitado para Processamento em Tempo Real: - - Could not connect to Audio backend '%1' - + + In Place Broken: + Com Local Quebrado: - - Warning - Aviso + + Channels In: + Canais de Entrada: - - There are still some plugins loaded, you need to remove them to stop the engine. -Do you want to do this now? - Ainda existem alguns plugins carregados, você precisa removê-los para interromper o motor. -Você quer fazer isso agora? + + Channels Out: + Canais de Saída: - - - CarlaInstrumentView - - Show GUI - Mostrar GUI + + File: %1 + Arquivo: %1 + + + + File: + Arquivo: - CarlaSettingsW + XYControllerW - - Settings - Opções + + XY Controller + - - main - principal + + X Controls: + - - canvas + + Y Controls: - - engine - motor + + Smooth + - - osc + + &Settings - - file-paths + + Channels - - plugin-paths + + &File + &Arquivo + + + + Show MIDI &Keyboard - - wine + + (All) - - experimental + + 1 - - Widget + + 2 - - - Main + + 3 - - - Canvas + + 4 - - - Engine + + 5 - - File Paths + + 6 - - Plugin Paths + + 7 - - Wine + + 8 - - - Experimental - Experimental + + 9 + - - <b>Main</b> - <b>Principal</b> + + 10 + - - Paths - Caminhos + + 11 + - - Default project folder: - Pasta padrão do projeto: + + 12 + - - Interface - Interface + + 13 + - - Interface refresh interval: - Intervalo de atualização da interface: + + 14 + - - - ms - ms + + 15 + - - Show console output in Logs tab (needs engine restart) + + 16 - - Show a confirmation dialog before quitting + + &Quit - - - Theme - Tema + + Esc + - - Use Carla "PRO" theme (needs restart) - Usar tema "PRO" da Carla (precisa reiniciar) + + (None) + + + + lmms::AmplifierControls - - Color scheme: - Esquema de cores: + + Volume + Volume + + + + Panning + Panorâmico + + + + Left gain + Ganho esquerdo + + + + Right gain + Ganho direito + + + lmms::AudioFileProcessor - - Black - Preto + + Amplify + Amplificar - - System - Sistema + + Start of sample + Início da amostra - - Enable experimental features - + + End of sample + Fim da amostra - - <b>Canvas</b> - + + Loopback point + Ponto de retorno - - Bezier Lines - Linhas de Bezier + + Reverse sample + Inverter amostra - - Theme: - Tema: + + Loop mode + Modo de loop - - Size: - Tamanho: + + Stutter + - - 775x600 - 775x600 + + Interpolation mode + Modo de interpolação - - 1550x1200 - 1550x1200 + + None + Nenhum - - 3100x2400 - 3100x2400 + + Linear + Linear - - 4650x3600 - 4650x3600 + + Sinc + Sinc - - 6200x4800 - 6200x4800 + + Sample not found + Amostra não encontrada + + + lmms::AudioJack - - Options - Opções + + JACK client restarted + Cliente JACK reiniciou - - Auto-hide groups with no ports + + LMMS was kicked by JACK for some reason. Therefore the JACK backend of LMMS has been restarted. You will have to make manual connections again. - - Auto-select items on hover + + JACK server down - - Basic eye-candy (group shadows) + + The JACK server seems to have been shutdown and starting a new instance failed. Therefore LMMS is unable to proceed. You should save your project and restart JACK and LMMS. - - Render Hints - + + Client name + Nome do cliente - - Anti-Aliasing - + + Channels + Canais + + + lmms::AudioOss - - Full canvas repaints (slower, but prevents drawing issues) - + + Device + Dispositivos - - <b>Engine</b> - + + Channels + Canais + + + lmms::AudioPortAudio::setupWidget - - - Core - + + Backend + Backend - - Single Client + + Device + + + lmms::AudioPulseAudio - - Multiple Clients + + Device - - - Continuous Rack + + Channels + + + lmms::AudioSdl::setupWidget - - - Patchbay + + Playback device - - Audio driver: + + Input device + + + lmms::AudioSndio - - Process mode: + + Device - - - - - Maximum number of parameters to allow in the built-in 'Edit' dialog + + Channels + + + lmms::AudioSoundIo::setupWidget - - Max Parameters: + + Backend - - ... + + Device + + + lmms::AutomatableModel - - Reset Xrun counter after project load + + &Reset (%1%2) - - Plugin UIs + + &Copy value (%1%2) - - - How much time to wait for OSC GUIs to ping back the host + + &Paste value (%1%2) - - UI Bridge Timeout: + + &Paste value - - Use OSC-GUI bridges when possible, this way separating the UI from DSP code - + + Edit song-global automation + Editar automação global da música - - Use UI bridges instead of direct handling when possible - + + Remove song-global automation + Apagar automação global da música - - Make plugin UIs always-on-top + + Remove all linked controls - - Make plugin UIs appear on top of Carla (needs restart) + + Connected to %1 - - NOTE: Plugin-bridge UIs cannot be managed by Carla on macOS + + Connected to controller - - - Restart the engine to load the new settings + + Edit connection... - - <b>OSC</b> + + Remove connection - - Enable OSC + + Connect to controller... + + + lmms::AutomationClip - - Enable TCP port + + Drag a control while pressing <%1> + + + lmms::AutomationTrack - - - Use specific port: - + + Automation track + Trilha de Automação + + + lmms::BassBoosterControls - - Overridden by CARLA_OSC_TCP_PORT env var + + Frequency - - - Use randomly assigned port + + Gain - - Enable UDP port + + Ratio + + + lmms::BitInvader - - Overridden by CARLA_OSC_UDP_PORT env var + + Sample length - - DSSI UIs require OSC UDP port enabled - + + Interpolation + Interpolação - - <b>File Paths</b> - + + Normalize + Normalizar + + + lmms::BitcrushControls - - Audio - Áudio + + Input gain + - - MIDI - MIDI + + Input noise + - - Used for the "audiofile" plugin + + Output gain - - Used for the "midifile" plugin + + Output clip - - - Add... + + Sample rate - - - Remove + + Stereo difference - - - Change... + + Levels - - <b>Plugin Paths</b> + + Rate enabled - - LADSPA + + Depth enabled + + + lmms::Clip - - DSSI + + Mute + + + lmms::CompressorControls - - LV2 + + Threshold - - VST2 + + Ratio - - VST3 + + Attack - - SF2/3 + + Release - - SFZ + + Knee - - Restart Carla to find new plugins + + Hold - - <b>Wine</b> + + Range - - Executable + + RMS Size - - Path to 'wine' binary: + + Mid/Side - - Prefix + + Peak Mode - - Auto-detect Wine prefix based on plugin filename + + Lookahead Length - - Fallback: + + Input Balance - - Note: WINEPREFIX env var is preferred over this fallback + + Output Balance - - Realtime Priority + + Limiter - - Base priority: + + Output Gain - - WineServer priority: + + Input Gain - - These options are not available for Carla as plugin + + Blend - - <b>Experimental</b> + + Stereo Balance - - Experimental options! Likely to be unstable! + + Auto Makeup Gain - - Enable plugin bridges + + Audition - - Enable Wine bridges + + Feedback - - Enable jack applications + + Auto Attack - - Export single plugins to LV2 + + Auto Release - - Load Carla backend in global namespace (NOT RECOMMENDED) + + Lookahead - - Fancy eye-candy (fade-in/out groups, glow connections) + + Tilt - - Use OpenGL for rendering (needs restart) + + Tilt Frequency - - High Quality Anti-Aliasing (OpenGL only) + + Stereo Link - - Render Ardour-style "Inline Displays" + + Mix + + + lmms::Controller - - Force mono plugins as stereo by running 2 instances at the same time. -This mode is not available for VST plugins. + + Controller %1 + + + lmms::DelayControls - - Force mono plugins as stereo + + Delay samples - - Prevent plugins from doing bad stuff (needs restart) + + Feedback - - Whenever possible, run the plugins in bridge mode. + + LFO frequency - - Run plugins in bridge mode when possible + + LFO amount - - - - - Add Path + + Output gain - CompressorControlDialog + lmms::DispersionControls - - Threshold: - + + Amount + Quantidade - - Volume at which the compression begins to take place - + + Frequency + Frequência - - Ratio: - Relação: + + Resonance + Ressonância - - How far the compressor must turn the volume down after crossing the threshold - + + Feedback + Retorno - - Attack: - Ataque: + + DC Offset Removal + + + + lmms::DualFilterControls - - Speed at which the compressor starts to compress the audio + + Filter 1 enabled - - Release: - Relaxamento: + + Filter 1 type + - - Speed at which the compressor ceases to compress the audio + + Cutoff frequency 1 - - Knee: + + Q/Resonance 1 - - Smooth out the gain reduction curve around the threshold + + Gain 1 - - Range: + + Mix - - Maximum gain reduction + + Filter 2 enabled - - Lookahead Length: + + Filter 2 type - - How long the compressor has to react to the sidechain signal ahead of time + + Cutoff frequency 2 - - Hold: - Duração: + + Q/Resonance 2 + - - Delay between attack and release stages + + Gain 2 - - RMS Size: + + + Low-pass - - Size of the RMS buffer + + + Hi-pass - - Input Balance: + + + Band-pass csg - - Bias the input audio to the left/right or mid/side + + + Band-pass czpg - - Output Balance: + + + Notch - - Bias the output audio to the left/right or mid/side + + + All-pass - - Stereo Balance: + + + Moog - - Bias the sidechain signal to the left/right or mid/side + + + 2x Low-pass - - Stereo Link Blend: + + + RC Low-pass 12 dB/oct - - Blend between unlinked/maximum/average/minimum stereo linking modes + + + RC Band-pass 12 dB/oct - - Tilt Gain: + + + RC High-pass 12 dB/oct - - Bias the sidechain signal to the low or high frequencies. -6 db is lowpass, 6 db is highpass. + + + RC Low-pass 24 dB/oct - - Tilt Frequency: + + + RC Band-pass 24 dB/oct - - Center frequency of sidechain tilt filter + + + RC High-pass 24 dB/oct - - Mix: + + + Vocal Formant - - Balance between wet and dry signals + + + 2x Moog - - Auto Attack: + + + SV Low-pass - - Automatically control attack value depending on crest factor + + + SV Band-pass - - Auto Release: + + + SV High-pass - - Automatically control release value depending on crest factor + + + SV Notch - - Output gain - Ganho de saída + + + Fast Formant + - - - Gain - Ganho + + + Tripole + + + + lmms::DynProcControls - - Output volume + + Input gain - - Input gain - Ganho de entrada + + Output gain + - - Input volume + + Attack time - - Root Mean Square + + Release time - - Use RMS of the input + + Stereo mode + + + lmms::Effect - - Peak + + Effect enabled - - Use absolute value of the input + + Wet/Dry mix - - Left/Right + + Gate - - Compress left and right audio + + Decay + + + lmms::EffectChain - - Mid/Side + + Effects enabled + + + lmms::Engine - - Compress mid and side audio + + Generating wavetables - - Compressor + + Initializing data structures - - Compress the audio - + + Opening audio and midi devices + Abrindo áudio e dispositivos midi - - Limiter + + Launching audio engine threads + + + lmms::EnvelopeAndLfoParameters - - Set Ratio to infinity (is not guaranteed to limit audio volume) + + Env pre-delay - - Unlinked + + Env attack - - Compress each channel separately + + Env hold - - Maximum + + Env decay - - Compress based on the loudest channel + + Env sustain - - Average + + Env release - - Compress based on the averaged channel volume + + Env mod amount - - Minimum + + LFO pre-delay - - Compress based on the quietest channel + + LFO attack - - Blend + + LFO frequency - - Blend between stereo linking modes + + LFO mod amount - - Auto Makeup Gain + + LFO wave shape - - Automatically change makeup gain depending on threshold, knee, and ratio settings + + LFO frequency x 100 - - - Soft Clip + + Modulate env amount - - Play the delta signal + + Sample not found + + + lmms::EqControls - - Use the compressor's output as the sidechain input + + Input gain - - Lookahead Enabled + + Output gain - - Enable Lookahead, which introduces 20 milliseconds of latency + + Low-shelf gain - - - CompressorControls - - Threshold + + Peak 1 gain - - Ratio - Relação - - - - Attack - Ataque + + Peak 2 gain + - - Release - Relaxamento + + Peak 3 gain + - - Knee + + Peak 4 gain - - Hold - Espera + + High-shelf gain + - - Range + + HP res - - RMS Size + + Low-shelf res - - Mid/Side + + Peak 1 BW - - Peak Mode - Modo de Pico + + Peak 2 BW + - - Lookahead Length + + Peak 3 BW - - Input Balance + + Peak 4 BW - - Output Balance + + High-shelf res - - Limiter + + LP res - - Output Gain + + HP freq - - Input Gain + + Low-shelf freq - - Blend + + Peak 1 freq - - Stereo Balance + + Peak 2 freq - - Auto Makeup Gain + + Peak 3 freq - - Audition + + Peak 4 freq - - Feedback - Retorno + + High-shelf freq + - - Auto Attack + + LP freq - - Auto Release + + HP active - - Lookahead + + Low-shelf active - - Tilt + + Peak 1 active - - Tilt Frequency + + Peak 2 active - - Stereo Link + + Peak 3 active - - Mix - Misturar + + Peak 4 active + - - - Controller - - Controller %1 - Controlador %1 + + High-shelf active + - - - ControllerConnectionDialog - - Connection Settings - Configuração das Conexões + + LP active + - - MIDI CONTROLLER - CONTROLADOR MIDI + + LP 12 + - - Input channel - Canal de entrada + + LP 24 + - - CHANNEL - CANAL + + LP 48 + - - Input controller - Entrada do controlador + + HP 12 + - - CONTROLLER - CONTROLADOR + + HP 24 + - - - Auto Detect - Auto detectar + + HP 48 + - - MIDI-devices to receive MIDI-events from - Dispositivos MIDI para receber eventos MIDI de + + Low-pass type + - - USER CONTROLLER - CONTROLADOR DO USUÁRIO + + High-pass type + - - MAPPING FUNCTION - MAPEAR FUNÇÃO + + Analyse IN + - - OK - OK + + Analyse OUT + + + + lmms::FlangerControls - - Cancel - Cancelar + + Delay samples + - - LMMS - LMMS + + LFO frequency + - - Cycle Detected. - Ciclo Detectado. + + Amount + - - - ControllerRackView - - Controller Rack - Estante de Controladores + + Stereo phase + - - Add - Adicionar + + Feedback + - - Confirm Delete - Confirmação para Apagar + + Noise + Ruído - - Confirm delete? There are existing connection(s) associated with this controller. There is no way to undo. - Confirmar apagar? Há conexão existente(s) associada a este controlador. Não há maneira de desfazer. + + Invert + Inverter - ControllerView + lmms::FreeBoyInstrument - - Controls - Controles + + Sweep time + - - Rename controller - Renomear controlador + + Sweep direction + - - Enter the new name for this controller - Adicione um novo nome para este controlador + + Sweep rate shift amount + - - LFO - LFO + + + Wave pattern duty cycle + - - &Remove this controller - &Remover este controlador + + Channel 1 volume + - - Re&name this controller - Re&nomear este controlador + + + + Volume sweep direction + - - - CrossoverEQControlDialog - - Band 1/2 crossover: + + + + Length of each step in sweep - - Band 2/3 crossover: + + Channel 2 volume - - Band 3/4 crossover: + + Channel 3 volume - - Band 1 gain + + Channel 4 volume - - Band 1 gain: + + Shift Register width - - Band 2 gain + + Right output level - - Band 2 gain: + + Left output level - - Band 3 gain + + Channel 1 to SO2 (Left) - - Band 3 gain: + + Channel 2 to SO2 (Left) - - Band 4 gain + + Channel 3 to SO2 (Left) - - Band 4 gain: + + Channel 4 to SO2 (Left) - - Band 1 mute + + Channel 1 to SO1 (Right) - - Mute band 1 + + Channel 2 to SO1 (Right) - - Band 2 mute + + Channel 3 to SO1 (Right) - - Mute band 2 + + Channel 4 to SO1 (Right) - - Band 3 mute + + Treble - - Mute band 3 + + Bass + + + lmms::GigInstrument - - Band 4 mute + + Bank - - Mute band 4 + + Patch - - - DelayControls - - Delay samples + + Gain + + + lmms::GranularPitchShifterControls - - Feedback - Retorno + + Pitch + - - LFO frequency + + Grain Size - - LFO amount + + Spray - - Output gain - Ganho de saída + + Jitter + - - - DelayControlsDialog - - DELAY - ATRASO + + Twitch + - - Delay time + + Pitch Stereo Spread - - FDBK - RTRN + + Spray Stereo + - - Feedback amount + + Shape - - RATE - TAXA + + Fade Length + - - LFO frequency + + Feedback - - AMNT - QNTD + + Minimum Allowed Latency + - - LFO amount + + Prefilter - - Out gain + + Density - - Gain - Ganho + + Glide + - - - Dialog - - Add JACK Application + + Ring Buffer Length - - Note: Features not implemented yet are greyed out + + 5 Seconds - - Application + + 10 Seconds (Size) - - Name: + + 40 Seconds (Size and Pitch) - - Application: + + 40 Seconds (Size and Spray and Jitter) - - From template + + 120 Seconds (All of the above) + + + lmms::InstrumentFunctionArpeggio - - Custom + + Arpeggio - - Template: + + Arpeggio type - - Command: + + Arpeggio range - - Setup + + Note repeats - - Session Manager: + + Cycle steps - - None - Nenhum + + Skip rate + - - Audio inputs: + + Miss rate - - MIDI inputs: + + Arpeggio time - - Audio outputs: + + Arpeggio gate - - MIDI outputs: + + Arpeggio direction - - Take control of main application window + + Arpeggio mode - - Workarounds + + Up - - Wait for external application start (Advanced, for Debug only) + + Down - - Capture only the first X11 Window + + Up and down - - Use previous client output buffer as input for the next client + + Down and up - - Simulate 16 JACK MIDI outputs, with MIDI channel as port index + + Random - - Error here + + Free - - Carla Control - Connect + + Sort - - Remote setup + + Sync + + + lmms::InstrumentFunctionNoteStacking - - UDP Port: + + Chords - - Remote host: + + Chord type - - TCP Port: + + Chord range + + + lmms::InstrumentSoundShaping - - Reported host + + Envelopes/LFOs - - Automatic + + Filter type - - Custom: + + Cutoff frequency - - In some networks (like USB connections), the remote system cannot reach the local network. You can specify here which hostname or IP to make the remote Carla connect to. -If you are unsure, leave it as 'Automatic'. + + Q/Resonance - - Set value + + Low-pass - - TextLabel + + Hi-pass - - Scale Points + + Band-pass csg - - - DriverSettingsW - - Driver Settings + + Band-pass czpg - - Device: + + Notch - - Buffer size: + + All-pass - - Sample rate: - Taxa de amostragem: + + Moog + - - Triple buffer + + 2x Low-pass - - Show Driver Control Panel + + RC Low-pass 12 dB/oct - - Restart the engine to load the new settings + + RC Band-pass 12 dB/oct - - - DualFilterControlDialog - - - FREQ - FREQ + + RC High-pass 12 dB/oct + - - - Cutoff frequency - Frequência de corte + + RC Low-pass 24 dB/oct + - - - RESO - RESS + + RC Band-pass 24 dB/oct + - - - Resonance - Ressonância + + RC High-pass 24 dB/oct + - - - GAIN - GANHO + + Vocal Formant + - - - Gain - Ganho + + 2x Moog + - - MIX - MISTURAR + + SV Low-pass + - - Mix - Misturar + + SV Band-pass + - - Filter 1 enabled - Filtro 1 habilitado + + SV High-pass + - - Filter 2 enabled - Filtro 2 habilitado + + SV Notch + - - Enable/disable filter 1 + + Fast Formant - - Enable/disable filter 2 + + Tripole - DualFilterControls + lmms::InstrumentTrack - - Filter 1 enabled - Filtro 1 habilitado + + + unnamed_track + - - Filter 1 type - Filtro 1 Tipo + + Base note + - - Cutoff frequency 1 + + First note - - Q/Resonance 1 - Q/Ressonância 1 + + Last note + - - Gain 1 - Ganho 1 + + Volume + - - Mix - Misturar + + Panning + - - Filter 2 enabled - Filtro 2 habilitado + + Pitch + - - Filter 2 type - Filtro 2 Tipo + + Pitch range + - - Cutoff frequency 2 + + Mixer channel - - Q/Resonance 2 - Q/Ressonância 2 + + Master pitch + - - Gain 2 - Ganho 2 + + Enable/Disable MIDI CC + Ativar/Desativar MIDI CC - - - Low-pass + + CC Controller %1 - - - Hi-pass + + + Default preset + + + lmms::Keymap - - - Band-pass csg + + empty + + + lmms::KickerInstrument - - - Band-pass czpg + + Start frequency - - - Notch - Vale + + End frequency + - - - All-pass + + Length - - - Moog - Moog + + Start distortion + - - - 2x Low-pass + + End distortion - - - RC Low-pass 12 dB/oct + + Gain - - - RC Band-pass 12 dB/oct + + Envelope slope - - - RC High-pass 12 dB/oct + + Noise + Ruído + + + + Click - - - RC Low-pass 24 dB/oct + + Frequency slope - - - RC Band-pass 24 dB/oct + + Start from note - - - RC High-pass 24 dB/oct + + End to note + + + lmms::LOMMControls - - - Vocal Formant + + Depth - - - 2x Moog + + Time - - - SV Low-pass + + Input Volume - - - SV Band-pass + + Output Volume - - - SV High-pass + + Upward Depth - - - SV Notch + + Downward Depth - - - Fast Formant - Formato Rápido + + High/Mid Split + - - - Tripole + + Mid/Low Split - - - Editor - - Transport controls - Controles de transporte + + Enable High/Mid Split + - - Play (Space) - Tocar (Espaço) + + Enable Mid/Low Split + - - Stop (Space) - Parar (Espaço) + + Enable High Band + - - Record - Gravar + + Enable Mid Band + - - Record while playing - Gravar enquanto toca + + Enable Low Band + - - Toggle Step Recording + + High Input Volume - - - Effect - - Effect enabled - Efeito ativado + + Mid Input Volume + - - Wet/Dry mix - Mix Processada/Limpa + + Low Input Volume + - - Gate - Portal + + High Output Volume + - - Decay - Decaimento + + Mid Output Volume + - - - EffectChain - - Effects enabled - Efeitos ativados + + Low Output Volume + - - - EffectRackView - - EFFECTS CHAIN - CADEIA DE EFEITOS + + Above Threshold High + - - Add effect - Adicionar Efeito + + Above Threshold Mid + - - - EffectSelectDialog - - Add effect - Adicionar Efeito + + Above Threshold Low + - - - Name - Nome + + Above Ratio High + - - Type - Tipo + + Above Ratio Mid + - - Description - Descrição + + Above Ratio Low + - - Author - Autor + + Below Threshold High + - - - EffectView - - On/Off - Liga/Desliga + + Below Threshold Mid + - - W/D - P/L + + Below Threshold Low + - - Wet Level: - Nível de Processamento: + + Below Ratio High + + + + + Below Ratio Mid + - - DECAY - DEC + + Below Ratio Low + - - Time: - Tempo: + + Attack High + - - GATE - PORTAL + + Attack Mid + - - Gate: - Portal: + + Attack Low + - - Controls - Controles + + Release High + - - Move &up - Para &Cima + + Release Mid + - - Move &down - Para &Baixo + + Release Low + - - &Remove this plugin - &Remover este plugin + + RMS Time + - - - EnvelopeAndLfoParameters - - Env pre-delay + + Knee - - Env attack + + Range - - Env hold + + Balance - - Env decay + + Scale output volume with Depth - - Env sustain + + Stereo Link - - Env release + + Auto Time - - Env mod amount + + Mix - - LFO pre-delay + + Feedback - - LFO attack + + Mid/Side - - LFO frequency + + Lookahead - - LFO mod amount + + Lookahead Length - - LFO wave shape + + Suppress upward compression for side band + + + lmms::LadspaControl - - LFO frequency x 100 + + Link channels + + + lmms::LadspaEffect - - Modulate env amount + + Unknown LADSPA plugin %1 requested. - EnvelopeAndLfoView + lmms::Lb302Synth - - - DEL - ATRASO + + VCF Cutoff Frequency + - - - Pre-delay: + + VCF Resonance - - - ATT - ATQ + + VCF Envelope Mod + - - - Attack: - Ataque: + + VCF Envelope Decay + - - HOLD - DURAR + + Distortion + - - Hold: - Duração: + + Waveform + - - DEC - DEC + + Slide Decay + - - Decay: - Decaimento: + + Slide + - - SUST - SUST + + Accent + - - Sustain: - Sustentação: + + Dead + - - REL - REL + + 24dB/oct Filter + + + + lmms::LfoController - - Release: - Relaxamento: + + LFO Controller + - - - AMT - QNT + + Base value + - - - Modulation amount: - Quantidade de modulação: + + Oscillator speed + - - SPD - VEL + + Oscillator amount + - - Frequency: - Frequência: + + Oscillator phase + - - FREQ x 100 - FREQ x 100 + + Oscillator waveform + - - Multiply LFO frequency by 100 + + Frequency Multiplier - - MODULATE ENV AMOUNT + + Sample not found + + + lmms::MalletsInstrument - - Control envelope amount by this LFO + + Hardness - - ms/LFO: - ms/LFO: + + Position + - - Hint - Sugestão + + Vibrato gain + - - Drag and drop a sample into this window. + + Vibrato frequency - - - EqControls - - Input gain - Ganho de entrada + + Stick mix + - - Output gain - Ganho de saída + + Modulator + - - Low-shelf gain + + Crossfade - - Peak 1 gain - Ganho 1 pico + + LFO speed + - - Peak 2 gain - Ganho 2 pico + + LFO depth + - - Peak 3 gain - Ganho 3 pico + + ADSR + - - Peak 4 gain - Ganho 4 pico + + Pressure + - - High-shelf gain + + Motion - - HP res + + Speed - - Low-shelf res + + Bowed - - Peak 1 BW + + Instrument - - Peak 2 BW + + Spread - - Peak 3 BW + + Randomness - - Peak 4 BW + + Marimba - - High-shelf res + + Vibraphone - - LP res + + Agogo - - HP freq + + Wood 1 - - Low-shelf freq + + Reso - - Peak 1 freq + + Wood 2 - - Peak 2 freq + + Beats - - Peak 3 freq + + Two fixed - - Peak 4 freq + + Clump - - High-shelf freq + + Tubular bells - - LP freq + + Uniform bar - - HP active + + Tuned bar - - Low-shelf active + + Glass + Vidro + + + + Tibetan bowl + + + lmms::MeterModel + + + Numerator + Numerador + - - Peak 1 active + + Denominator + Denominador + + + + lmms::Microtuner + + + Microtuner - - Peak 2 active + + Microtuner on / off - - Peak 3 active + + Selected scale - - Peak 4 active + + Selected keyboard mapping + + + lmms::MidiController + + + MIDI Controller + Controlador MIDI + - - High-shelf active - + + unnamed_midi_controller + controlador_midi_sem_nome + + + lmms::MidiImport - - LP active - LP ativo + + + Setup incomplete + Configuração incompleta - - LP 12 - LP 12 + + You have not set up a default soundfont in the settings dialog (Edit->Settings). Therefore no sound will be played back after importing this MIDI file. You should download a General MIDI soundfont, specify it in settings dialog and try again. + Você não definiu um soundfont padrão no diálogo de configurações (Editar->Configurações). Portanto nenhum som irá tocar após importar este arquivo MIDI. Você deve baixar um soundfont MIDI Geral, especifique-o no diálogo de configurações e tente novamente. - - LP 24 - LP 24 + + You did not compile LMMS with support for SoundFont2 player, which is used to add default sound to imported MIDI files. Therefore no sound will be played back after importing this MIDI file. + Você não compilou o LMMS com suporte para o tocador SoundFont2, que é usado para adicionar som padrão aos arquivos MIDI importados. Portanto nenhum som irá tocar após importar este arquivo MIDI. - - LP 48 - LP 48 + + MIDI Time Signature Numerator + - - HP 12 - HP 12 + + MIDI Time Signature Denominator + - - HP 24 - HP 24 + + Numerator + - - HP 48 - HP 48 + + Denominator + - - Low-pass type + + + Tempo - - High-pass type + + Track + + + lmms::MidiJack - - Analyse IN + + JACK server down + When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (title) - - Analyse OUT + + The JACK server seems to be shuted down. + When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (dialog message) - EqControlsDialog + lmms::MidiPort - - HP - HP + + Input channel + - - Low-shelf + + Output channel - - Peak 1 + + Input controller - - Peak 2 + + Output controller - - Peak 3 + + Fixed input velocity - - Peak 4 + + Fixed output velocity - - High-shelf + + Fixed output note - - LP - LP + + Output MIDI program + Programa de saída MIDI - - Input gain - Ganho de entrada + + Base velocity + - - - - Gain - Ganho + + Receive MIDI-events + Receber eventos MIDI - - Output gain - Ganho de saída + + Send MIDI-events + Enviar eventos MIDI + + + lmms::Mixer - - Bandwidth: - Largura de Banda: + + Master + - - Octave - Oitava + + + + Channel %1 + - - Resonance : - Ressonância: + + Volume + - - Frequency: - Frequência: + + Mute + - - LP group + + Solo + + + lmms::MixerRoute - - HP group + + + Amount to send from channel %1 to channel %2 - EqHandle + lmms::MonstroInstrument - - Reso: - Reso: + + Osc 1 volume + - - BW: - BW: + + Osc 1 panning + - - - Freq: - Freq: + + Osc 1 coarse detune + - - - ExportProjectDialog - - Export project - Renderizar projeto + + Osc 1 fine detune left + - - Export as loop (remove extra bar) + + Osc 1 fine detune right - - Export between loop markers - Exportar entre os marcadores de repetição + + Osc 1 stereo phase offset + - - Render Looped Section: + + Osc 1 pulse width - - time(s) + + Osc 1 sync send on rise - - File format settings + + Osc 1 sync send on fall - - File format: - Formato do arquivo: + + Osc 2 volume + - - Sampling rate: + + Osc 2 panning - - 44100 Hz - 44100 Hz + + Osc 2 coarse detune + - - 48000 Hz - 48000 Hz + + Osc 2 fine detune left + - - 88200 Hz - 88200 Hz + + Osc 2 fine detune right + - - 96000 Hz - 96000 Hz + + Osc 2 stereo phase offset + - - 192000 Hz - 192000 Hz + + Osc 2 waveform + - - Bit depth: + + Osc 2 sync hard - - 16 Bit integer + + Osc 2 sync reverse - - 24 Bit integer + + Osc 3 volume - - 32 Bit float + + Osc 3 panning - - Stereo mode: - Modo estéreo + + Osc 3 coarse detune + - - Mono - Mono + + Osc 3 Stereo phase offset + - - Stereo - Estéreo + + Osc 3 sub-oscillator mix + - - Joint stereo + + Osc 3 waveform 1 - - Compression level: + + Osc 3 waveform 2 - - Bitrate: - Velocidade em bits: + + Osc 3 sync hard + - - 64 KBit/s - 64 KBit/s + + Osc 3 Sync reverse + - - 128 KBit/s - 128 KBit/s + + LFO 1 waveform + - - 160 KBit/s - 160 KBit/s + + LFO 1 attack + + + + + LFO 1 rate + - - 192 KBit/s - 192 KBit/s + + LFO 1 phase + - - 256 KBit/s - 256 KBit/s + + LFO 2 waveform + - - 320 KBit/s - 320 KBit/s + + LFO 2 attack + - - Use variable bitrate + + LFO 2 rate - - Quality settings - Configurações de qualidade + + LFO 2 phase + - - Interpolation: - Interpolação: + + Env 1 pre-delay + - - Zero order hold + + Env 1 attack - - Sinc worst (fastest) + + Env 1 hold - - Sinc medium (recommended) + + Env 1 decay - - Sinc best (slowest) + + Env 1 sustain - - Oversampling: + + Env 1 release - - 1x (None) - 1x (Nada) + + Env 1 slope + - - 2x - 2x + + Env 2 pre-delay + - - 4x - 4x + + Env 2 attack + - - 8x - 8x + + Env 2 hold + - - Start - Começar + + Env 2 decay + - - Cancel - Cancelar + + Env 2 sustain + - - Could not open file - Não é possível abrir o arquivo + + Env 2 release + - - Could not open file %1 for writing. -Please make sure you have write permission to the file and the directory containing the file and try again! + + Env 2 slope - - Export project to %1 - Exportar projeto para %1 + + Osc 2+3 modulation + - - ( Fastest - biggest ) + + Selected view - - ( Slowest - smallest ) + + Osc 1 - Vol env 1 - - Error - Erro + + Osc 1 - Vol env 2 + - - Error while determining file-encoder device. Please try to choose a different output format. - Erro ao determinar o aparelho codificador de arquivos. Por favor, tente escolher um formato de saída diferente. + + Osc 1 - Vol LFO 1 + - - Rendering: %1% - Renderizando: %1% + + Osc 1 - Vol LFO 2 + - - - Fader - - Set value + + Osc 2 - Vol env 1 - - Please enter a new value between %1 and %2: - Por favor coloque com um novo valor entre %1 e %2: + + Osc 2 - Vol env 2 + - - - FileBrowser - - User content + + Osc 2 - Vol LFO 1 - - Factory content + + Osc 2 - Vol LFO 2 - - Browser - Navegador + + Osc 3 - Vol env 1 + - - Search + + Osc 3 - Vol env 2 - - Refresh list + + Osc 3 - Vol LFO 1 - - - FileBrowserTreeWidget - - Send to active instrument-track - Enviar para a faixa de instrumento ativa + + Osc 3 - Vol LFO 2 + - - Open containing folder + + Osc 1 - Phs env 1 - - Song Editor - Mostrar/esconder Editor de Arranjo + + Osc 1 - Phs env 2 + - - BB Editor + + Osc 1 - Phs LFO 1 - - Send to new AudioFileProcessor instance + + Osc 1 - Phs LFO 2 - - Send to new instrument track + + Osc 2 - Phs env 1 - - (%2Enter) + + Osc 2 - Phs env 2 - - Send to new sample track (Shift + Enter) + + Osc 2 - Phs LFO 1 - - Loading sample - Carregando amostra + + Osc 2 - Phs LFO 2 + - - Please wait, loading sample for preview... - Por favor aguarde, carregando amostra para visualização... + + Osc 3 - Phs env 1 + - - Error - Erro + + Osc 3 - Phs env 2 + - - %1 does not appear to be a valid %2 file + + Osc 3 - Phs LFO 1 - - --- Factory files --- - --- Arquivos de fábrica --- + + Osc 3 - Phs LFO 2 + - - - FlangerControls - - Delay samples + + Osc 1 - Pit env 1 - - LFO frequency + + Osc 1 - Pit env 2 - - Seconds - Segundos + + Osc 1 - Pit LFO 1 + - - Stereo phase + + Osc 1 - Pit LFO 2 - - Regen + + Osc 2 - Pit env 1 - - Noise - Ruído + + Osc 2 - Pit env 2 + - - Invert - Inverter + + Osc 2 - Pit LFO 1 + - - - FlangerControlsDialog - - DELAY - ATRASO + + Osc 2 - Pit LFO 2 + - - Delay time: + + Osc 3 - Pit env 1 - - RATE - TAXA + + Osc 3 - Pit env 2 + - - Period: + + Osc 3 - Pit LFO 1 - - AMNT - QNTD + + Osc 3 - Pit LFO 2 + - - Amount: - Quantidade: + + Osc 1 - PW env 1 + - - PHASE + + Osc 1 - PW env 2 - - Phase: + + Osc 1 - PW LFO 1 - - FDBK - RTRN + + Osc 1 - PW LFO 2 + - - Feedback amount: + + Osc 3 - Sub env 1 - - NOISE - RUÍDO + + Osc 3 - Sub env 2 + - - White noise amount: + + Osc 3 - Sub LFO 1 - - Invert - Inverter + + Osc 3 - Sub LFO 2 + - - - FreeBoyInstrument - - Sweep time - Varredura temporal + + + Sine wave + - - Sweep direction - Direção da varredura + + Bandlimited Triangle wave + - - Sweep rate shift amount + + Bandlimited Saw wave - - - Wave pattern duty cycle + + Bandlimited Ramp wave - - Channel 1 volume - Canal 1 volume + + Bandlimited Square wave + - - - - Volume sweep direction - Direção da varredura de volume + + Bandlimited Moog saw wave + - - - - Length of each step in sweep - Tamanho de cada passo na varredura + + + Soft square wave + - - Channel 2 volume - Canal 2 volume + + Absolute sine wave + - - Channel 3 volume - Canal 3 volume + + + Exponential wave + - - Channel 4 volume - Canal 4 volume + + White noise + Ruído branco - - Shift Register width - Desconsiderar Tamanho do registro + + Digital Triangle wave + - - Right output level + + Digital Saw wave - - Left output level + + Digital Ramp wave - - Channel 1 to SO2 (Left) - Canal 1 para SO2 (Esquerda) + + Digital Square wave + - - Channel 2 to SO2 (Left) - Canal 2 para SO2 (Esquerda) + + Digital Moog saw wave + - - Channel 3 to SO2 (Left) - Canal 3 para SO2 (Esquerda) + + Triangle wave + - - Channel 4 to SO2 (Left) - Canal 4 para SO2 (Esquerda) + + Saw wave + - - Channel 1 to SO1 (Right) - Canal 1 para SO1 (Direita) + + Ramp wave + - - Channel 2 to SO1 (Right) - Canal 2 para SO1 (Direita) + + Square wave + - - Channel 3 to SO1 (Right) - Canal 3 para SO1 (Direita) + + Moog saw wave + - - Channel 4 to SO1 (Right) - Canal 4 para SO1 (Direita) + + Abs. sine wave + - - Treble - Agudo + + Random + - - Bass - Grave + + Random smooth + - FreeBoyInstrumentView + lmms::NesInstrument - - Sweep time: + + Channel 1 enable - - Sweep time - Varredura temporal - - - - Sweep rate shift amount: + + Channel 1 coarse detune - - Sweep rate shift amount + + Channel 1 volume - - - Wave pattern duty cycle: + + Channel 1 envelope enable - - - Wave pattern duty cycle + + Channel 1 envelope loop - - Square channel 1 volume: + + Channel 1 envelope length - - Square channel 1 volume + + Channel 1 duty cycle - - - - Length of each step in sweep: - Tamanho de cada passo na varredura: + + Channel 1 sweep enable + - - - - Length of each step in sweep - Tamanho de cada passo na varredura + + Channel 1 sweep amount + - - Square channel 2 volume: + + Channel 1 sweep rate - - Square channel 2 volume + + Channel 2 enable - - Wave pattern channel volume: + + Channel 2 coarse detune - - Wave pattern channel volume + + Channel 2 volume - - Noise channel volume: + + Channel 2 envelope enable - - Noise channel volume + + Channel 2 envelope loop - - SO1 volume (Right): + + Channel 2 envelope length - - SO1 volume (Right) + + Channel 2 duty cycle - - SO2 volume (Left): + + Channel 2 sweep enable - - SO2 volume (Left) + + Channel 2 sweep amount - - Treble: - Agudo: + + Channel 2 sweep rate + - - Treble - Agudo + + Channel 3 enable + - - Bass: - Grave: + + Channel 3 coarse detune + - - Bass - Grave + + Channel 3 volume + - - Sweep direction - Direção da varredura + + Channel 4 enable + - - - - - - Volume sweep direction - Direção da varredura de volume + + Channel 4 volume + - - Shift register width + + Channel 4 envelope enable - - Channel 1 to SO1 (Right) - Canal 1 para SO1 (Direita) + + Channel 4 envelope loop + - - Channel 2 to SO1 (Right) - Canal 2 para SO1 (Direita) + + Channel 4 envelope length + - - Channel 3 to SO1 (Right) - Canal 3 para SO1 (Direita) + + Channel 4 noise mode + - - Channel 4 to SO1 (Right) - Canal 4 para SO1 (Direita) + + Channel 4 frequency mode + - - Channel 1 to SO2 (Left) - Canal 1 para SO2 (Esquerda) + + Channel 4 noise frequency + - - Channel 2 to SO2 (Left) - Canal 2 para SO2 (Esquerda) + + Channel 4 noise frequency sweep + - - Channel 3 to SO2 (Left) - Canal 3 para SO2 (Esquerda) + + Channel 4 quantize + - - Channel 4 to SO2 (Left) - Canal 4 para SO2 (Esquerda) + + Master volume + - - Wave pattern graph + + Vibrato - MixerLine - - - Channel send amount - Quantidade de envio de canal - + lmms::OpulenzInstrument - - Move &left + + Patch - - Move &right + + Op 1 attack - - Rename &channel - Renomear canal - - - - R&emove channel - Remover canal - - - - Remove &unused channels - Remover canais não utilizados + + Op 1 decay + - - Set channel color + + Op 1 sustain - - Remove channel color + + Op 1 release - - Pick random channel color + + Op 1 level - - - MixerLineLcdSpinBox - - Assign to: - Atribuir a: + + Op 1 level scaling + - - New mixer Channel - Novo Canal FX + + Op 1 frequency multiplier + - - - Mixer - - Master - Mestre + + Op 1 feedback + - - - - Channel %1 - FX %1 + + Op 1 key scaling rate + - - Volume - Volume + + Op 1 percussive envelope + - - Mute - Mudo + + Op 1 tremolo + - - Solo - Solo + + Op 1 vibrato + - - - MixerView - - Mixer - Mixer de Efeitos + + Op 1 waveform + - - Fader %1 - FX Fader %1 + + Op 2 attack + - - Mute - Mudo + + Op 2 decay + - - Mute this mixer channel - Este canal FX mudo + + Op 2 sustain + - - Solo - Solo + + Op 2 release + - - Solo mixer channel - Canal FX solo + + Op 2 level + - - - MixerRoute - - - Amount to send from channel %1 to channel %2 - Quantidade para enviar do canal %1 para o canal %2 + + Op 2 level scaling + - - - GigInstrument - - Bank - Banco + + Op 2 frequency multiplier + - - Patch - Programação + + Op 2 key scaling rate + - - Gain - Ganho + + Op 2 percussive envelope + - - - GigInstrumentView - - - Open GIG file - Abrir arquivo GIG + + Op 2 tremolo + - - Choose patch + + Op 2 vibrato - - Gain: - Ganho: + + Op 2 waveform + - - GIG Files (*.gig) - Arquivos GIG (*.gig) + + FM + - - - GuiApplication - - Working directory - Diretório de trabalho + + Vibrato depth + - - The LMMS working directory %1 does not exist. Create it now? You can change the directory later via Edit -> Settings. + + Tremolo depth + + + lmms::OrganicInstrument - - Preparing UI - Preparando UI + + Distortion + - - Preparing song editor - Preparando o editor de som + + Volume + + + + lmms::OscillatorObject - - Preparing mixer - Preparando o misturador + + Osc %1 waveform + - - Preparing controller rack + + Osc %1 harmonic - - Preparing project notes - Preparando notas do projeto + + + Osc %1 volume + - - Preparing beat/bassline editor - Preparando editor de batida/base + + + Osc %1 panning + - - Preparing piano roll + + Osc %1 stereo detuning - - Preparing automation editor - Preparando editor de automação + + Osc %1 coarse detuning + - - - InstrumentFunctionArpeggio - - Arpeggio - Arpegio + + Osc %1 fine detuning left + - - Arpeggio type - Tipo de Arpegio + + Osc %1 fine detuning right + - - Arpeggio range - Escala de Arpejo + + Osc %1 phase-offset + - - Note repeats + + Osc %1 stereo phase-detuning - - Cycle steps + + Osc %1 wave shape - - Skip rate + + Modulation type %1 + + + lmms::PatternTrack - - Miss rate + + Pattern %1 - - Arpeggio time - Tempo de Arpejo + + Clone of %1 + + + + lmms::PeakController - - Arpeggio gate - Portal de Arpejo + + Peak Controller + - - Arpeggio direction - Direção do Arpejo + + Peak Controller Bug + - - Arpeggio mode - Modo de Arpejo + + Due to a bug in older version of LMMS, the peak controllers may not be connect properly. Please ensure that peak controllers are connected properly and re-save this file. Sorry for any inconvenience caused. + + + + lmms::PeakControllerEffectControls - - Up - Para Cima + + Base value + - - Down - Para Baixo + + Modulation amount + - - Up and down - Para cima e para baixo + + Attack + - - Down and up - Para baixo e para cima + + Release + - - Random - Aleatório + + Treshold + - - Free - Livre + + Mute output + - - Sort - Tipo + + Absolute value + - - Sync - Sincronização + + Amount multiplicator + - InstrumentFunctionArpeggioView - - - ARPEGGIO - ARPEGIO - + lmms::Plugin - - RANGE - EXTENSÃO + + Plugin not found + - - Arpeggio range: - Extensão do arpejo: + + The plugin "%1" wasn't found or could not be loaded! +Reason: "%2" + - - octave(s) - oitava(s) + + Error while loading plugin + - - REP + + Failed to load plugin "%1"! + + + lmms::ReverbSCControls - - Note repeats: + + Input gain - - time(s) + + Size - - CYCLE + + Color - - Cycle notes: + + Output gain + + + lmms::SaControls - - note(s) - nota(s) + + Pause + - - SKIP + + Reference freeze - - Skip rate: + + Waterfall - - - - % - % + + Averaging + - - MISS + + Stereo - - Miss rate: + + Peak hold - - TIME - TEMPO + + Logarithmic frequency + - - Arpeggio time: - Tempo de arpejo: + + Logarithmic amplitude + - - ms - ms + + Frequency range + - - GATE - PORTAL + + Amplitude range + - - Arpeggio gate: - Portal de arpejo: + + FFT block size + - - Chord: - Acorde: + + FFT window type + - - Direction: - Direção: + + Peak envelope resolution + - - Mode: - Modo: + + Spectrum display resolution + - - - InstrumentFunctionNoteStacking - - octave - oitava + + Peak decay multiplier + - - - Major - Maior + + Averaging weight + - - - Majb5 - Maior b5 + + + Waterfall history size + - - minor - menor + + Waterfall gamma correction + - - minb5 - menor b5 + + FFT window overlap + - - sus2 - sus2 + + FFT zero padding + - - sus4 - sus4 + + + Full (auto) + - - aug - aum + + + + Audible + - - augsus4 - aum sus4 + + Bass + - - tri - tríade + + Mids + - - 6 - 6 + + High + - - 6sus4 - 6sus4 + + Extended + - - 6add9 - 6(9) + + Loud + - - m6 - m6 + + Silent + - - m6add9 - m6(9) + + (High time res.) + - - 7 - 7 + + (High freq. res.) + - - 7sus4 - 7 sus4 + + Rectangular (Off) + - - 7#5 - 7(#5) + + + Blackman-Harris (Default) + - - 7b5 - 7(b5) + + Hamming + - - 7#9 - 7(#9) + + Hanning + + + + lmms::SampleClip - - 7b9 - 7(b9) + + Sample not found + + + + lmms::SampleTrack - - 7#5#9 - 7(#5, #9) + + Volume + - - 7#5b9 - 7(#5, b9) + + Panning + - - 7b5b9 - 7(b5, b9) + + Mixer channel + - - 7add11 - 7(11) + + + Sample track + Trilha de Amostras + + + lmms::Scale - - 7add13 - 7(13) + + empty + + + + lmms::Sf2Instrument - - 7#11 - 7(#11) + + Bank + - - Maj7 - 7M + + Patch + - - Maj7b5 - 7M(b5) + + Gain + - - Maj7#5 - 7M(#5) + + Reverb + - - Maj7#11 - 7M(#11) + + Reverb room size + - - Maj7add13 - 7M(13) + + Reverb damping + - - m7 - m7 + + Reverb width + - - m7b5 - m7(b5) + + Reverb level + - - m7b9 - m7(b9) + + Chorus + - - m7add11 - m7(11) + + Chorus voices + - - m7add13 - m7(13) + + Chorus level + - - m-Maj7 - m-7M + + Chorus speed + - - m-Maj7add11 - m-7M(11) + + Chorus depth + - - m-Maj7add13 - m-7M(13) + + A soundfont %1 could not be loaded. + Um soundfont %1 não pôde ser carregado. + + + lmms::SfxrInstrument - - 9 - 9 + + Wave + Onda + + + lmms::SidInstrument - - 9sus4 - 9 sus4 + + Cutoff frequency + Frequência de corte - - add9 - (9) + + Resonance + Ressonância - - 9#5 - (9, #5) + + Filter type + Tipo de filtro - - 9b5 - (9, b5) + + Voice 3 off + - - 9#11 - (9, #11) + + Volume + - - 9b13 - (b9, 13) + + Chip model + + + + lmms::SlicerT - - Maj9 - 9M + + Note threshold + - - Maj9sus4 - 9M sus4 + + FadeOut + - - Maj9#5 - 9M(#5) + + Original bpm + - - Maj9#11 - 9M(#11) + + Slice snap + - - m9 - m9 + + BPM sync + - - madd9 - m(9) + + + slice_%1 + - - m9b5 - m(9, b5) + + Sample not found: %1 + + + + lmms::Song - - m9-Maj7 - m(9,7M) + + Tempo + - - 11 - 11 + + Master volume + - - 11b9 - 11(b9) + + Master pitch + - - Maj11 - Acorde de 11 + + Aborting project load + - - m11 - m(11) + + Project file contains local paths to plugins, which could be used to run malicious code. + - - m-Maj11 - m (11M) + + Can't load project: Project file contains local paths to plugins. + - - 13 - 13 + + LMMS Error report + - - 13#9 - 13(#9) + + (repeated %1 times) + - - 13b9 - 13(b9) + + The following errors occurred while loading: + + + + lmms::StereoEnhancerControls - - 13b5b9 - 13(b5, b9) + + Width + + + + lmms::StereoMatrixControls - - Maj13 - 13M + + Left to Left + - - m13 - m(13) + + Left to Right + - - m-Maj13 - m (13M) + + Right to Left + - - Harmonic minor - Menor Harmônica + + Right to Right + + + + lmms::Track - - Melodic minor - Menor Melódica + + Mute + - - Whole tone - Tons inteiros + + Solo + + + + lmms::TrackContainer - - Diminished - Diminuta + + Couldn't import file + Não foi possível importar o arquivo - - Major pentatonic - Pentatônica maior + + Couldn't find a filter for importing file %1. +You should convert this file into a format supported by LMMS using another software. + - - Minor pentatonic - Pentatônica menor + + Couldn't open file + Não foi possível abrir o arquivo - - Jap in sen - Insen Japonesa + + Couldn't open file %1 for reading. +Please make sure you have read-permission to the file and the directory containing the file and try again! + - - Major bebop - Bebop maior + + Loading project... + Carregando projeto - - Dominant bebop - Bebop dominante + + + Cancel + Cancelar - - Blues - Blues + + + Please wait... + Por favor espere... - - Arabic - Árabe + + Loading cancelled + Carregamento cancelado - - Enigmatic - Enigmática + + Project loading was cancelled. + Carregamento do projeto foi cancelado - - Neopolitan - Napolitana + + Loading Track %1 (%2/Total %3) + - - Neopolitan minor - Neopolitana menor + + Importing MIDI-file... + Importando arquivo MIDI + + + lmms::TripleOscillator - - Hungarian minor - Húngara menor + + Sample not found + + + + lmms::VecControls - - Dorian - Dório + + Display persistence amount + - - Phrygian - + + Logarithmic scale + Escala logarítmica - - Lydian - Lídio + + High quality + + + + lmms::VestigeInstrument - - Mixolydian - Mixolídio + + Loading plugin + Carregando plugin - - Aeolian - Eólio + + Please wait while loading the VST plugin... + Por favor espere enquanto o plugin VST carrega... + + + lmms::Vibed - - Locrian - Lócrio + + String %1 volume + - - Minor - Menor + + String %1 stiffness + - - Chromatic - Cromático + + Pick %1 position + - - Half-Whole Diminished + + Pickup %1 position - - 5 - 5 + + String %1 panning + - - Phrygian dominant + + String %1 detune - - Persian - Persa + + String %1 fuzziness + - - Chords - Acordes + + String %1 length + - - Chord type - Tipo de acorde + + Impulse %1 + - - Chord range - Extensão do acorde + + String %1 + - InstrumentFunctionNoteStackingView + lmms::VoiceObject - - STACKING - EMPILHAMENTO + + Voice %1 pulse width + - - Chord: - Acorde: + + Voice %1 attack + - - RANGE - EXTENSÃO + + Voice %1 decay + - - Chord range: - Extensão do acorde: + + Voice %1 sustain + - - octave(s) - oitava(s) + + Voice %1 release + - - - InstrumentMidiIOView - - ENABLE MIDI INPUT - HABILITAR ENTRADA MIDI + + Voice %1 coarse detuning + + + + + Voice %1 wave shape + - - ENABLE MIDI OUTPUT - HABILITAR SAÍDA MIDI + + Voice %1 sync + - - - CHAN - This string must be be short, its width must be less than * width of LCD spin-box of two digits + + Voice %1 ring modulate - - - VELOC - This string must be be short, its width must be less than * width of LCD spin-box of three digits + + Voice %1 filtered - - PROG - This string must be be short, its width must be less than the * width of LCD spin-box of three digits + + Voice %1 test + + + lmms::VstPlugin - - NOTE - This string must be be short, its width must be less than * width of LCD spin-box of three digits - NOTA + + + The VST plugin %1 could not be loaded. + - - MIDI devices to receive MIDI events from - Dispositivos MIDI para receber eventos MIDI de + + Open Preset + Abrir Predefinição - - MIDI devices to send MIDI events to - Dispositivos MIDI para mandar eventos MIDI para + + + VST Plugin Preset (*.fxp *.fxb) + Predefinição de Plugin VST (*.fxp *.fxb) - - CUSTOM BASE VELOCITY + + : default - - Specify the velocity normalization base for MIDI-based instruments at 100% note velocity. + + Save Preset + Salvar Predefinição + + + + .fxp - - BASE VELOCITY + + .FXP - - - InstrumentTuningView - - MASTER PITCH + + .FXB - - Enables the use of master pitch + + .fxb - - - InstrumentSoundShaping - - VOLUME - VOLUME + + Loading plugin + - - Volume - Volume + + Please wait while loading VST plugin... + Por favor espere enquanto o plugin VST carrega... + + + lmms::WatsynInstrument - - CUTOFF - CORTE + + Volume A1 + - - - Cutoff frequency - Frequência de corte + + Volume A2 + - - RESO - RESS + + Volume B1 + - - Resonance - Ressonância + + Volume B2 + - - Envelopes/LFOs - Envelopes/LFOs + + Panning A1 + - - Filter type - Tipo de filtro + + Panning A2 + - - Q/Resonance - Q/Ressonância + + Panning B1 + - - Low-pass + + Panning B2 - - Hi-pass + + Freq. multiplier A1 - - Band-pass csg + + Freq. multiplier A2 - - Band-pass czpg + + Freq. multiplier B1 - - Notch - Vale + + Freq. multiplier B2 + - - All-pass + + Left detune A1 - - Moog - Moog + + Left detune A2 + - - 2x Low-pass + + Left detune B1 - - RC Low-pass 12 dB/oct + + Left detune B2 - - RC Band-pass 12 dB/oct + + Right detune A1 - - RC High-pass 12 dB/oct + + Right detune A2 - - RC Low-pass 24 dB/oct + + Right detune B1 - - RC Band-pass 24 dB/oct + + Right detune B2 - - RC High-pass 24 dB/oct + + A-B Mix - - Vocal Formant + + A-B Mix envelope amount - - 2x Moog + + A-B Mix envelope attack - - SV Low-pass + + A-B Mix envelope hold - - SV Band-pass + + A-B Mix envelope decay - - SV High-pass + + A1-B2 Crosstalk - - SV Notch + + A2-A1 modulation - - Fast Formant - Formato Rápido + + B2-B1 modulation + - - Tripole + + Selected graph - InstrumentSoundShapingView + lmms::WaveShaperControls - - TARGET - OBJETO + + Input gain + - - FILTER - FILTRO + + Output gain + + + + lmms::Xpressive - - FREQ - FREQ + + Selected graph + - - Cutoff frequency: - Frequência de corte: + + A1 + - - Hz - Hz + + A2 + - - Q/RESO + + A3 - - Q/Resonance: + + W1 smoothing - - Envelopes, LFOs and filters are not supported by the current instrument. + + W2 smoothing - - - InstrumentTrack - - - unnamed_track - pista_sem_nome + + W3 smoothing + - - Base note - Nota base + + Panning 1 + - - First note + + Panning 2 - - Last note - Última nota + + Rel trans + + + + lmms::ZynAddSubFxInstrument - - Volume - Volume + + Portamento + - - Panning - Panorâmico + + Filter frequency + - - Pitch - Altura + + Filter resonance + - - Pitch range - Extensão + + Bandwidth + - - Mixer channel - Canal de Efeitos + + FM gain + - - Master pitch - Altura Final + + Resonance center frequency + - - Enable/Disable MIDI CC + + Resonance bandwidth - - CC Controller %1 + + Forward MIDI control change events + + + lmms::graphModel - - - Default preset - Pré configuração padrão + + Graph + - InstrumentTrackView + lmms::gui::AmplifierControlDialog - - Volume - Volume + + VOL + - + Volume: - Volume: - - - - VOL - VOL + - - Panning - Panorâmico + + PAN + - + Panning: - Panorâmico: + - - PAN - PAN + + LEFT + - - MIDI - MIDI + + Left gain: + - - Input - Entradas + + RIGHT + - - Output - Saídas + + Right gain: + + + + lmms::gui::AudioAlsaSetupWidget - - Open/Close MIDI CC Rack + + Device - - Channel %1: %2 - FX %1: %2 + + Channels + - InstrumentTrackWindow + lmms::gui::AudioFileProcessorView - - GENERAL SETTINGS - AJUSTES GERAIS + + Open sample + Abrir amostra - - Volume - Volume + + Reverse sample + Inverter amostra - - Volume: - Volume: + + Disable loop + - - VOL - VOL + + Enable loop + - - Panning - Panorâmico + + Enable ping-pong loop + - - Panning: - Panorâmico: + + Continue sample playback across notes + - - PAN - PAN + + Amplify: + Amplificar: - - Pitch - Altura + + Start point: + Ponto inicial: - - Pitch: - Altura: + + End point: + Ponto final: - - cents - centésimos + + Loopback point: + Ponto de retorno: + + + lmms::gui::AudioFileProcessorWaveView - - PITCH - ALTURA + + Sample length: + Tamanho da amostra + + + lmms::gui::AutomationClipView - - Pitch range (semitones) - Extensão (semitons) + + Open in Automation editor + Abrir no editor de Automação - - RANGE - EXTENSÃO + + Clear + - - Mixer channel - Canal de Efeitos + + Reset name + Restaurar nome - - CHANNEL - EFEITOS + + Change name + Mudar nome - - Save current instrument track settings in a preset file + + Set/clear record - - SAVE - SALVAR + + Flip Vertically (Visible) + - - Envelope, filter & LFO + + Flip Horizontally (Visible) - - Chord stacking & arpeggio + + %1 Connections - - Effects - Efeitos + + Disconnect "%1" + - - MIDI - MIDI + + Model is already connected to this clip. + + + + lmms::gui::AutomationEditor - - Miscellaneous - Miscelânea + + Edit Value + - - Save preset - Salvar pré definição + + New outValue + - - XML preset file (*.xpf) - Arquivo de pré definições XML (*.xpf) + + New inValue + - - Plugin + + Please open an automation clip by double-clicking on it! - JackApplicationW + lmms::gui::AutomationEditorWindow - - NSM applications cannot use abstract or absolute paths + + Play/pause current clip (Space) - - NSM applications cannot use CLI arguments + + Stop playing of current clip (Space) - - You need to save the current Carla project before NSM can be used + + Edit actions - - - JuceAboutW - - About JUCE - + + Draw mode (Shift+D) + Modo desenho (Shift+D) - - <b>About JUCE</b> - + + Erase mode (Shift+E) + Modo Apagar (Shift+E) - - This program uses JUCE version 3.x.x. + + Draw outValues mode (Shift+C) - - JUCE (Jules' Utility Class Extensions) is an all-encompassing C++ class library for developing cross-platform software. - -It contains pretty much everything you're likely to need to create most applications, and is particularly well-suited for building highly-customised GUIs, and for handling graphics and sound. - -JUCE is licensed under the GNU Public Licence version 2.0. -One module (juce_core) is permissively licensed under the ISC. - -Copyright (C) 2017 ROLI Ltd. + + Edit tangents mode (Shift+T) - - This program uses JUCE version %1. + + Flip vertically - - - Knob - - Set linear - Definir linear + + Flip horizontally + - - Set logarithmic - Definir logarítmico + + Interpolation controls + - - - Set value + + Discrete progression - - Please enter a new value between -96.0 dBFS and 6.0 dBFS: + + Linear progression - - Please enter a new value between %1 and %2: - Por favor coloque um novo valor entre %1 e %2: + + Cubic Hermite progression + - - - LadspaControl - - Link channels - Conectar canais + + Tension value for spline + - - - LadspaControlDialog - - Link Channels - Conectar Canais + + Tension: + - - Channel - Canal + + Zoom controls + - - - LadspaControlView - - Link channels - Conectar canais + + Horizontal zooming + - - Value: - Valor: + + Vertical zooming + - - - LadspaEffect - - Unknown LADSPA plugin %1 requested. - Plugin LADSPA %1 desconhecido requisitado. + + Quantization controls + - - - LcdFloatSpinBox - - Set value + + Quantization - - Please enter a new value between %1 and %2: - Por favor coloque um novo valor entre %1 e %2: + + Clear ghost notes + - - - LcdSpinBox - - Set value + + + Automation Editor - no clip - - Please enter a new value between %1 and %2: - Por favor coloque um novo valor entre %1 e %2: + + + Automation Editor - %1 + Editor de Automação - %1 + + + + Model is already connected to this clip. + - LeftRightNav + lmms::gui::BassBoosterControlDialog - - - - Previous - Anterior + + FREQ + - - - - Next - Próximo + + Frequency: + - - Previous (%1) - Anterior (%1) + + GAIN + - - Next (%1) - Próximo (%1) + + Gain: + - - - LfoController - - LFO Controller - Controlador de LFO + + RATIO + - - Base value - Valor base + + Ratio: + + + + lmms::gui::BitInvaderView - - Oscillator speed - Velocidade do oscilador + + Sample length + - - Oscillator amount - Quantidade do oscilador + + Draw your own waveform here by dragging your mouse on this graph. + - - Oscillator phase - Fase do oscilador + + + Sine wave + - - Oscillator waveform - Forma de onda do oscilador + + + Triangle wave + - - Frequency Multiplier - Multiplicador de frequência + + + Saw wave + - - - LfoControllerDialog - - LFO - LFO + + + Square wave + - - BASE - CENTRO + + + White noise + Ruído branco - - Base: + + + User-defined wave - - FREQ - FREQ + + + Smooth waveform + - - LFO frequency: + + Interpolation - - AMNT - QNTD + + Normalize + + + + lmms::gui::BitcrushControlDialog - - Modulation amount: - Quantidade de modulação: + + IN + - - PHS - DFS + + OUT + - - Phase offset: - Defasamento: + + + GAIN + - - degrees + + Input gain: - - Sine wave - Onda senoidal + + NOISE + RUÍDO - - Triangle wave - Onda triangular + + Input noise: + - - Saw wave - Onda dente de serra + + Output gain: + - - Square wave - Onda quadrada + + CLIP + - - Moog saw wave + + Output clip: - - Exponential wave - Onda exponencial + + Rate enabled + - - White noise + + Enable sample-rate crushing - - User-defined shape. -Double click to pick a file. + + Depth enabled - - Mutliply modulation frequency by 1 + + Enable bit-depth crushing - - Mutliply modulation frequency by 100 + + FREQ - - Divide modulation frequency by 100 + + Sample rate: - - - Engine - - Generating wavetables + + STEREO - - Initializing data structures - Inicializando estruturas de dados + + Stereo difference: + - - Opening audio and midi devices - Abrindo dispositivos áudio e midi + + QUANT + - - Launching mixer threads - Lançando threads do misturador + + Levels: + - MainWindow - - - Configuration file - Arquivo de configuração - - - - Error while parsing configuration file at line %1:%2: %3 - Erro ao analisar arquivo de configuração na linha %1:%2: %3 - + lmms::gui::CPULoadWidget - - Could not open file - Não é possível abrir o arquivo + + DSP total: %1% + - - Could not open file %1 for writing. -Please make sure you have write permission to the file and the directory containing the file and try again! + + - Notes and setup: %1% - - Project recovery - Recuperação de projeto + + - Instruments: %1% + - - There is a recovery file present. It looks like the last session did not end properly or another instance of LMMS is already running. Do you want to recover the project of this session? + + - Effects: %1% - - - Recover - Recuperar + + - Mixing: %1% + + + + lmms::gui::CarlaInstrumentView - - Recover the file. Please don't run multiple instances of LMMS when you do this. + + Show GUI - - - Discard - Descartar + + Click here to show or hide the graphical user interface (GUI) of Carla. + - - Launch a default session and delete the restored files. This is not reversible. + + Params - - Version %1 - Versão %1 + + Available from Carla version 2.1 and up. + + + + lmms::gui::CarlaParamsView - - Preparing plugin browser - Preparando navegador de plugin + + Search.. + - - Preparing file browsers - Preparando navegadores de arquivos + + Clear filter text + - - My Projects - Meus Projetos + + Only show knobs with a connection. + - - My Samples - Minhas Amostras + + - Parameters + + + + lmms::gui::ClipView - - My Presets - Minhas predefinições + + Current position + - - My Home - Meu Início + + Current length + - - Root directory - Diretório raiz + + + %1:%2 (%3:%4 to %5:%6) + - - Volumes - Volumes + + Press <%1> and drag to make a copy. + - - My Computer - Meu Computador + + Press <%1> for free resizing. + - - &File - &Arquivo + + Hint + - - &New - &Novo + + Delete (middle mousebutton) + - - &Open... - &Abrir... + + Delete selection (middle mousebutton) + - - Loading background picture + + Cut - - &Save - &Salvar + + Cut selection + - - Save &As... - Salvar &como... + + Merge Selection + - - Save as New &Version - Salvar como Nova &Versão + + Copy + - - Save as default template - Salvar como modelo padrão + + Copy selection + - - Import... - Importar... + + Paste + - - E&xport... - &Renderizar... + + Mute/unmute (<%1> + middle click) + - - E&xport Tracks... - Exportar Faixas... + + Mute/unmute selection (<%1> + middle click) + - - Export &MIDI... - Exportar &MIDI... + + Clip color + - - &Quit - Sai&r + + Change + - - &Edit - &Editar + + Reset + - - Undo - Desfazer + + Pick random + + + + lmms::gui::CompressorControlDialog - - Redo - Refazer + + Threshold: + - - Settings - Opções + + Volume at which the compression begins to take place + - - &View - &Ver + + Ratio: + - - &Tools - &Ferramentas + + How far the compressor must turn the volume down after crossing the threshold + - - &Help - Aj&uda + + Attack: + - - Online Help - Ajuda Online + + Speed at which the compressor starts to compress the audio + - - Help - Ajuda + + Release: + - - About - Sobre + + Speed at which the compressor ceases to compress the audio + - - Create new project - Criar novo projeto + + Knee: + - - Create new project from template - Criar novo projeto a partir de um modelo + + Smooth out the gain reduction curve around the threshold + - - Open existing project - Abrir projeto existente + + Range: + - - Recently opened projects - Projetos usados recentemente + + Maximum gain reduction + - - Save current project - Salvar projeto atual + + Lookahead Length: + - - Export current project - Exportar projeto atual + + How long the compressor has to react to the sidechain signal ahead of time + - - Metronome - Metrônomo + + Hold: + - - - Song Editor - Mostrar/esconder Editor de Arranjo + + Delay between attack and release stages + - - - Beat+Bassline Editor - Mostrar/esconder Editor de Bases + + RMS Size: + - - - Piano Roll - Mostrar/esconder Editor de Notas MIDI + + Size of the RMS buffer + - - - Automation Editor - Mostrar/esconder Editor de Automação + + Input Balance: + - - - Mixer - Mostrar/esconder Mixer de Efeitos + + Bias the input audio to the left/right or mid/side + - - Show/hide controller rack + + Output Balance: - - Show/hide project notes - Mostrar/ocultar notas do projeto + + Bias the output audio to the left/right or mid/side + - - Untitled - Sem_nome + + Stereo Balance: + - - Recover session. Please save your work! + + Bias the sidechain signal to the left/right or mid/side - - LMMS %1 - LMMS %1 + + Stereo Link Blend: + - - Recovered project not saved + + Blend between unlinked/maximum/average/minimum stereo linking modes - - This project was recovered from the previous session. It is currently unsaved and will be lost if you don't save it. Do you want to save it now? + + Tilt Gain: - - Project not saved - Projeto não salvo + + Bias the sidechain signal to the low or high frequencies. -6 db is lowpass, 6 db is highpass. + - - The current project was modified since last saving. Do you want to save it now? - O projeto atual foi modificado. Quer salvá-lo agora? + + Tilt Frequency: + - - Open Project - Abrir Projeto + + Center frequency of sidechain tilt filter + - - LMMS (*.mmp *.mmpz) - LMMS (*.mmp *.mmpz) + + Mix: + - - Save Project - Salvar Projeto + + Balance between wet and dry signals + - - LMMS Project - Projeto LMMS + + Auto Attack: + - - LMMS Project Template - Modelo de Projeto LMMS + + Automatically control attack value depending on crest factor + - - Save project template - Salvar modelo do projeto + + Auto Release: + - - Overwrite default template? + + Automatically control release value depending on crest factor - - This will overwrite your current default template. + + Output gain - - Help not available - Ajuda não disponível + + + Gain + - - Currently there's no help available in LMMS. -Please visit http://lmms.sf.net/wiki for documentation on LMMS. - Atualmente não há ajuda disponível no LMMS. -Por favor visite http://lmms.sf.net/wiki para ter acesso a mais infromações sobre LMMS. + + Output volume + - - Controller Rack - Mostrar/esconder a Estante de Controladorer + + Input gain + - - Project Notes - Mostrar/esconder comentários do projeto + + Input volume + - - Fullscreen + + Root Mean Square - - Volume as dBFS - Volume como dBFS + + Use RMS of the input + - - Smooth scroll - Rolagem suave + + Peak + - - Enable note labels in piano roll + + Use absolute value of the input - - MIDI File (*.mid) - Arquivo MIDI (*.mid) + + Left/Right + - - - untitled - sem título + + Compress left and right audio + - - - Select file for project-export... + + Mid/Side - - Select directory for writing exported tracks... + + Compress mid and side audio - - Save project - Guardar projeto + + Compressor + - - Project saved - Projeto salvo + + Compress the audio + - - The project %1 is now saved. - O projeto %1 está salvo. + + Limiter + - - Project NOT saved. - Projeto NÃO salvo. + + Set Ratio to infinity (is not guaranteed to limit audio volume) + - - The project %1 was not saved! - O projeto %1 não foi salvo! + + Unlinked + - - Import file - Importar arquivo + + Compress each channel separately + - - MIDI sequences - Sequências MIDI + + Maximum + - - Hydrogen projects - Projetos Hydrogen + + Compress based on the loudest channel + - - All file types - Todos os tipos de arquivos + + Average + - - - MeterDialog - - - Meter Numerator - Numerador Métrico + + Compress based on the averaged channel volume + - - Meter numerator + + Minimum - - - Meter Denominator - Denominador Métrico + + Compress based on the quietest channel + - - Meter denominator + + Blend - - TIME SIG - COMPASSO + + Blend between stereo linking modes + - - - MeterModel - - Numerator - Numerador + + Auto Makeup Gain + - - Denominator - Denominador + + Automatically change makeup gain depending on threshold, knee, and ratio settings + - - - MidiCCRackView - - - MIDI CC Rack - %1 + + + Soft Clip - - MIDI CC Knobs: + + Play the delta signal - - CC %1 + + Use the compressor's output as the sidechain input - - - MidiController - - MIDI Controller - Controlador MIDI + + Lookahead Enabled + - - unnamed_midi_controller - controlador-midi-sem-nome + + Enable Lookahead, which introduces 20 milliseconds of latency + - MidiImport - - - - Setup incomplete - Configuração incompleta - + lmms::gui::ControllerConnectionDialog - - You have not set up a default soundfont in the settings dialog (Edit->Settings). Therefore no sound will be played back after importing this MIDI file. You should download a General MIDI soundfont, specify it in settings dialog and try again. + + Connection Settings - - You did not compile LMMS with support for SoundFont2 player, which is used to add default sound to imported MIDI files. Therefore no sound will be played back after importing this MIDI file. - Você não compilou o LMMS com suporte a SoundFont2 player, que é usado para adicionar sons por padrão a arquivos MIDI importados. Desta maneira nenhum som será executado depois de importar arquivos MIDI. + + MIDI CONTROLLER + CONTROLADOR MIDI - - MIDI Time Signature Numerator + + Input channel - - MIDI Time Signature Denominator + + CHANNEL - - Numerator - Numerador - - - - Denominator - Denominador + + Input controller + - - Track - Faixa + + CONTROLLER + - - - MidiJack - - JACK server down - When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (title) - O servidor JACK caiu + + + Auto Detect + - - The JACK server seems to be shuted down. - When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (dialog message) - O servidor JACK parece estar encerrado. + + MIDI-devices to receive MIDI-events from + Dispositivos MIDI recebem eventos MIDI de - - - MidiPatternW - - MIDI Pattern + + USER CONTROLLER - - Time Signature: + + MAPPING FUNCTION - - - - 1/4 + + OK - - 2/4 + + Cancel - - 3/4 + + LMMS - - 4/4 + + Cycle Detected. + + + lmms::gui::ControllerRackView - - 5/4 + + Controller Rack - - 6/4 + + Add - - Measures: + + Confirm Delete - - - - 1 + + Confirm delete? There are existing connection(s) associated with this controller. There is no way to undo. + + + lmms::gui::ControllerView - - 2 + + Controls - - 3 + + Rename controller - - 4 + + Enter the new name for this controller - - 5 - 5 - - - - 6 - 6 + + LFO + - - 7 - 7 + + Move &up + - - 8 + + Move &down - - 9 - 9 + + &Remove this controller + - - 10 + + Re&name this controller + + + lmms::gui::CrossoverEQControlDialog - - 11 - 11 + + Band 1/2 crossover: + - - 12 + + Band 2/3 crossover: - - 13 - 13 + + Band 3/4 crossover: + - - 14 + + Band 1 gain - - 15 + + Band 1 gain: - - 16 + + Band 2 gain - - Default Length: + + Band 2 gain: - - - 1/16 + + Band 3 gain - - - 1/15 + + Band 3 gain: - - - 1/12 + + Band 4 gain - - - 1/9 + + Band 4 gain: - - - 1/8 + + Band 1 mute - - - 1/6 + + Mute band 1 - - - 1/3 + + Band 2 mute - - - 1/2 + + Mute band 2 - - Quantize: + + Band 3 mute - - &File - &Arquivo + + Mute band 3 + - - &Edit - &Editar + + Band 4 mute + - - &Quit - Sai&r + + Mute band 4 + + + + lmms::gui::DelayControlsDialog - - &Insert Mode + + DELAY - - F + + Delay time - - &Velocity Mode + + FDBK - - D + + Feedback amount - - Select All + + RATE - - A + + LFO frequency - - - MidiPort - - Input channel - Canal de entrada + + AMNT + - - Output channel - Canal de saída + + LFO amount + - - Input controller - Entrada do controlador + + Out gain + - - Output controller - Saída do controlador + + Gain + + + + lmms::gui::DispersionControlDialog - - Fixed input velocity - Intensidade fixa de entrada + + AMOUNT + QNT - - Fixed output velocity - Intensidade fixa de saída + + Number of all-pass filters + Números de filtros all-pass - - Fixed output note - Nota fixa na saída + + FREQ + - - Output MIDI program - Saída do programa MIDI + + Frequency: + Frequência: - - Base velocity - Velocidade base + + RESO + RESS - - Receive MIDI-events - Receber eventos MIDI + + Resonance: + Ressonância: - - Send MIDI-events - Enviar eventos MIDI + + FEED + RTRN - - - MidiSetupWidget - - Device - Dispositivo + + Feedback: + Retorno: - - - MonstroInstrument - - Osc 1 volume + + DC Offset Removal - - Osc 1 panning + + Remove DC Offset + + + lmms::gui::DualFilterControlDialog - - Osc 1 coarse detune + + + FREQ - - Osc 1 fine detune left + + + Cutoff frequency - - Osc 1 fine detune right + + + RESO - - Osc 1 stereo phase offset + + + Resonance - - Osc 1 pulse width + + + GAIN - - Osc 1 sync send on rise + + + Gain - - Osc 1 sync send on fall + + MIX - - Osc 2 volume + + Mix - - Osc 2 panning + + Filter 1 enabled - - Osc 2 coarse detune + + Filter 2 enabled - - Osc 2 fine detune left + + Enable/disable filter 1 - - Osc 2 fine detune right + + Enable/disable filter 2 + + + lmms::gui::DynProcControlDialog - - Osc 2 stereo phase offset + + INPUT - - Osc 2 waveform + + Input gain: - - Osc 2 sync hard + + OUTPUT - - Osc 2 sync reverse + + Output gain: - - Osc 3 volume + + ATTACK - - Osc 3 panning + + Peak attack time: - - Osc 3 coarse detune + + RELEASE - - Osc 3 Stereo phase offset + + Peak release time: - - Osc 3 sub-oscillator mix + + + Reset wavegraph - - Osc 3 waveform 1 + + + Smooth wavegraph - - Osc 3 waveform 2 + + + Increase wavegraph amplitude by 1 dB - - Osc 3 sync hard + + + Decrease wavegraph amplitude by 1 dB - - Osc 3 Sync reverse + + Stereo mode: maximum - - LFO 1 waveform + + Process based on the maximum of both stereo channels - - LFO 1 attack + + Stereo mode: average - - LFO 1 rate + + Process based on the average of both stereo channels - - LFO 1 phase + + Stereo mode: unlinked - - LFO 2 waveform + + Process each stereo channel independently + + + lmms::gui::Editor - - LFO 2 attack + + Transport controls - - LFO 2 rate + + Play (Space) - - LFO 2 phase + + Stop (Space) - - Env 1 pre-delay + + Record - - Env 1 attack + + Record while playing - - Env 1 hold + + Toggle Step Recording + + + lmms::gui::EffectRackView - - Env 1 decay + + EFFECTS CHAIN - - Env 1 sustain + + Add effect + + + lmms::gui::EffectSelectDialog - - Env 1 release + + Add effect - - Env 1 slope + + + Name - - Env 2 pre-delay + + Type - - Env 2 attack + + All - - Env 2 hold + + Search - - Env 2 decay + + Description - - Env 2 sustain + + Author + + + lmms::gui::EffectView - - Env 2 release + + On/Off - - Env 2 slope + + W/D - - Osc 2+3 modulation + + Wet Level: - - Selected view - Vista selecionada + + DECAY + - - Osc 1 - Vol env 1 + + Time: - - Osc 1 - Vol env 2 + + GATE - - Osc 1 - Vol LFO 1 + + Gate: - - Osc 1 - Vol LFO 2 + + Controls - - Osc 2 - Vol env 1 + + Move &up - - Osc 2 - Vol env 2 + + Move &down - - Osc 2 - Vol LFO 1 + + &Remove this plugin + + + lmms::gui::EnvelopeAndLfoView - - Osc 2 - Vol LFO 2 + + + AMT - - Osc 3 - Vol env 1 + + + Modulation amount: - - Osc 3 - Vol env 2 + + + DEL - - Osc 3 - Vol LFO 1 + + + Pre-delay: - - Osc 3 - Vol LFO 2 + + + ATT - - Osc 1 - Phs env 1 + + + Attack: - - Osc 1 - Phs env 2 + + HOLD - - Osc 1 - Phs LFO 1 + + Hold: - - Osc 1 - Phs LFO 2 + + DEC - - Osc 2 - Phs env 1 + + Decay: - - Osc 2 - Phs env 2 + + SUST - - Osc 2 - Phs LFO 1 + + Sustain: - - Osc 2 - Phs LFO 2 + + REL - - Osc 3 - Phs env 1 + + Release: - - Osc 3 - Phs env 2 + + SPD - - Osc 3 - Phs LFO 1 + + Frequency: - - Osc 3 - Phs LFO 2 + + FREQ x 100 - - Osc 1 - Pit env 1 + + Multiply LFO frequency by 100 - - Osc 1 - Pit env 2 + + MOD ENV AMOUNT - - Osc 1 - Pit LFO 1 + + Control envelope amount by this LFO - - Osc 1 - Pit LFO 2 + + Hint - - Osc 2 - Pit env 1 + + Drag and drop a sample into this window. + + + lmms::gui::EnvelopeGraph - - Osc 2 - Pit env 2 + + Scaling - - Osc 2 - Pit LFO 1 + + Dynamic - - Osc 2 - Pit LFO 2 + + Uses absolute spacings but switches to relative spacing if it's running out of space - - Osc 3 - Pit env 1 + + Absolute - - Osc 3 - Pit env 2 + + Provides enough potential space for each segment but does not scale - - Osc 3 - Pit LFO 1 + + Relative - - Osc 3 - Pit LFO 2 + + Always uses all of the available space to display the envelope graph + + + lmms::gui::EqControlsDialog - - Osc 1 - PW env 1 + + HP - - Osc 1 - PW env 2 + + Low-shelf - - Osc 1 - PW LFO 1 + + Peak 1 - - Osc 1 - PW LFO 2 + + Peak 2 - - Osc 3 - Sub env 1 + + Peak 3 - - Osc 3 - Sub env 2 + + Peak 4 - - Osc 3 - Sub LFO 1 + + High-shelf - - Osc 3 - Sub LFO 2 + + LP - - - Sine wave - Onda senoidal + + Input gain + - - Bandlimited Triangle wave + + + + Gain - - Bandlimited Saw wave + + Output gain - - Bandlimited Ramp wave + + Bandwidth: - - Bandlimited Square wave + + Octave - - Bandlimited Moog saw wave + + Resonance: - - - Soft square wave + + Frequency: - - Absolute sine wave + + LP group - - - Exponential wave - Onda exponencial + + HP group + + + + lmms::gui::EqHandle - - White noise + + Reso: - - Digital Triangle wave + + BW: - - Digital Saw wave + + + Freq: + + + lmms::gui::ExportProjectDialog - - Digital Ramp wave - + + Could not open file + Não foi possível abrir o arquivo - - Digital Square wave + + Could not open file %1 for writing. +Please make sure you have write permission to the file and the directory containing the file and try again! - - Digital Moog saw wave + + Export project to %1 - - Triangle wave - Onda triangular + + ( Fastest - biggest ) + - - Saw wave - Onda dente de serra + + ( Slowest - smallest ) + - - Ramp wave - Onda de rampa + + Error + - - Square wave - Onda quadrada + + Error while determining file-encoder device. Please try to choose a different output format. + - - Moog saw wave + + Rendering: %1% + + + lmms::gui::Fader - - Abs. sine wave + + Set value - - Random - Aleatório + + Please enter a new value between %1 and %2: + - - Random smooth + + Volume: %1 dBFS - MonstroView + lmms::gui::FileBrowser - - Operators view - Visão do operador + + Browser + - - Matrix view - Ver matriz + + Search + - - - - Volume - Volume + + Refresh list + - - - - Panning - Panorâmico + + User content + - - - - Coarse detune + + Factory content - - - - semitones - semitons + + Hidden content + + + + lmms::gui::FileBrowserTreeWidget - - - Fine tune left + + Send to active instrument-track - - - - - cents - + + Open containing folder + Abrir pasta contendo - - - Fine tune right + + Song Editor - - - - Stereo phase offset + + Pattern Editor - - - - - - deg + + Send to new AudioFileProcessor instance - - Pulse width + + Send to new instrument track - - Send sync on pulse rise + + (%2Enter) - - Send sync on pulse fall + + Send to new sample track (Shift + Enter) - - Hard sync oscillator 2 + + Loading sample - - Reverse sync oscillator 2 + + Please wait, loading sample for preview... - - Sub-osc mix + + Error - - Hard sync oscillator 3 + + %1 does not appear to be a valid %2 file - - Reverse sync oscillator 3 - + + --- Factory files --- + --- Arquivos de fábrica --- + + + lmms::gui::FileDialog - - - - - Attack - Ataque + + %1 files + %1 arquivos - - - Rate - Taxa + + All audio files + - - - Phase - Fase + + Other files + Outros arquivos + + + lmms::gui::FlangerControlsDialog - - - Pre-delay + + DELAY - - - Hold - Espera + + Delay time: + - - - Decay - Decaimento + + RATE + - - - Sustain - Sustentação + + Period: + - - - Release - Relaxamento + + AMNT + - - - Slope + + Amount: - - Mix osc 2 with osc 3 + + PHASE - - Modulate amplitude of osc 3 by osc 2 + + Phase: - - Modulate frequency of osc 3 by osc 2 + + FDBK - - Modulate phase of osc 3 by osc 2 + + Feedback amount: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Modulation amount - Quantidade de modulação + + NOISE + RUÍDO - - - MultitapEchoControlDialog - - Length - Comprimento + + White noise amount: + Quantidade de ruído branco: - - Step length: + + Invert + + + lmms::gui::FloatModelEditorBase - - Dry - Seco - - - - Dry gain: + + Set linear - - Stages - Estágios + + Set logarithmic + - - Low-pass stages: + + + Set value - - Swap inputs + + Please enter a new value between -96.0 dBFS and 6.0 dBFS: - - Swap left and right input channels for reflections + + Please enter a new value between %1 and %2: - NesInstrument + lmms::gui::FreeBoyInstrumentView - - Channel 1 coarse detune + + Sweep time: - - Channel 1 volume - Canal 1 volume - - - - Channel 1 envelope length + + Sweep time - - Channel 1 duty cycle + + Sweep rate shift amount: - - Channel 1 sweep amount + + Sweep rate shift amount - - Channel 1 sweep rate + + + Wave pattern duty cycle: - - Channel 2 Coarse detune + + + Wave pattern duty cycle - - Channel 2 Volume - Canal 2 Volume - - - - Channel 2 envelope length + + Square channel 1 volume: - - Channel 2 duty cycle + + Square channel 1 volume - - Channel 2 sweep amount + + + + Length of each step in sweep: - - Channel 2 sweep rate + + + + Length of each step in sweep - - Channel 3 coarse detune + + Square channel 2 volume: - - Channel 3 volume - Canal 3 volume - - - - Channel 4 volume - Canal 4 volume - - - - Channel 4 envelope length + + Square channel 2 volume - - Channel 4 noise frequency + + Wave pattern channel volume: - - Channel 4 noise frequency sweep + + Wave pattern channel volume - - Master volume - Volume Final + + Noise channel volume: + - - Vibrato - Vibrato + + Noise channel volume + - - - NesInstrumentView - - - - - Volume - Volume + + SO1 volume (Right): + - - - - Coarse detune + + SO1 volume (Right) - - - - Envelope length + + SO2 volume (Left): - - Enable channel 1 - Ativar canal 1 + + SO2 volume (Left) + - - Enable envelope 1 + + Treble: - - Enable envelope 1 loop + + Treble - - Enable sweep 1 + + Bass: - - - Sweep amount + + Bass - - - Sweep rate + + Sweep direction - - - 12.5% Duty cycle + + + + + + Volume sweep direction - - - 25% Duty cycle + + Shift register width - - - 50% Duty cycle + + Channel 1 to SO1 (Right) - - - 75% Duty cycle + + Channel 2 to SO1 (Right) - - Enable channel 2 - Ativar canal 2 + + Channel 3 to SO1 (Right) + - - Enable envelope 2 + + Channel 4 to SO1 (Right) - - Enable envelope 2 loop + + Channel 1 to SO2 (Left) - - Enable sweep 2 + + Channel 2 to SO2 (Left) - - Enable channel 3 - Ativar canal 3 + + Channel 3 to SO2 (Left) + - - Noise Frequency - Ruído de Frequência + + Channel 4 to SO2 (Left) + - - Frequency sweep + + Wave pattern graph + + + lmms::gui::GigInstrumentView - - Enable channel 4 - Ativar canal 4 + + + Open GIG file + Abrir arquivo GIG - - Enable envelope 4 + + Choose patch - - Enable envelope 4 loop + + Gain: - - Quantize noise frequency when using note frequency + + GIG Files (*.gig) + + + lmms::gui::GranularPitchShifterControlDialog - - Use note frequency for noise - Usar frequência de nota para ruído - - - - Noise mode - Modo de ruído + + Grain Size: + - - Master volume - Volume Final + + Spray: + - - Vibrato - Vibrato + + Jitter: + - - - OpulenzInstrument - - Patch - Programação + + Twitch: + - - Op 1 attack + + Spray Stereo Spread: - - Op 1 decay + + Grain Shape: - - Op 1 sustain + + Fade Length: - - Op 1 release + + Feedback: - - Op 1 level + + Minimum Allowed Latency: - - Op 1 level scaling + + Density: - - Op 1 frequency multiplier + + Glide: - - Op 1 feedback + + + Pitch - - Op 1 key scaling rate + + + Pitch Stereo Spread - - Op 1 percussive envelope + + Open help window - - Op 1 tremolo + + + Prefilter + + + lmms::gui::GuiApplication - - Op 1 vibrato + + Working directory - - Op 1 waveform + + The LMMS working directory %1 does not exist. Create it now? You can change the directory later via Edit -> Settings. - - Op 2 attack + + Preparing UI - - Op 2 decay + + Preparing song editor - - Op 2 sustain + + Preparing mixer - - Op 2 release + + Preparing controller rack - - Op 2 level + + Preparing project notes - - Op 2 level scaling + + Preparing microtuner - - Op 2 frequency multiplier + + Preparing pattern editor - - Op 2 key scaling rate + + Preparing piano roll - - Op 2 percussive envelope - + + Preparing automation editor + Preparando o editor de automação + + + lmms::gui::InstrumentFunctionArpeggioView - - Op 2 tremolo + + ARPEGGIO - - Op 2 vibrato + + RANGE - - Op 2 waveform + + Arpeggio range: - - FM - FM + + octave(s) + - - Vibrato depth + + REP - - Tremolo depth + + Note repeats: - - - OpulenzInstrumentView - - - Attack - Ataque + + time(s) + - - - Decay - Decaimento + + CYCLE + - - - Release - Relaxamento + + Cycle notes: + - - - Frequency multiplier + + note(s) - - - OscillatorObject - - Osc %1 waveform - Forma de Onda Osc %1 + + SKIP + - - Osc %1 harmonic + + Skip rate: - - - Osc %1 volume - Volume Osc %1 + + + + % + - - - Osc %1 panning - Panorâmico Osc %1 + + MISS + - - - Osc %1 fine detuning left - Ajuste fino esquerdo Osc %1 + + Miss rate: + - - Osc %1 coarse detuning - Ajuste bruto Osc %1 + + TIME + - - Osc %1 fine detuning right - Ajuste fino direito %1 + + Arpeggio time: + - - Osc %1 phase-offset - Defasamento Osc %1 + + ms + - - Osc %1 stereo phase-detuning - Ajuste de fase estéreo Osc %1 + + GATE + - - Osc %1 wave shape - Formato de onda Osc %1 + + Arpeggio gate: + - - Modulation type %1 - Tipo de modulação %1 + + Chord: + - - - Oscilloscope - - Oscilloscope + + Direction: - - Click to enable - Clique para habilitar + + Mode: + - PatchesDialog + lmms::gui::InstrumentFunctionNoteStackingView - - Qsynth: Channel Preset + + STACKING - - Bank selector + + Chord: - - Bank - Banco + + RANGE + - - Program selector + + Chord range: - - Patch - Programação + + octave(s) + + + + lmms::gui::InstrumentMidiIOView - - Name - Nome + + ENABLE MIDI INPUT + ATIVAR ENTRADA MIDI - - OK - OK + + + CHAN + This string must be be short, its width must be less than * width of LCD spin-box of two digits + - - Cancel - Cancelar + + + VELOC + This string must be be short, its width must be less than * width of LCD spin-box of three digits + - - - PatmanView - - Open patch - + + ENABLE MIDI OUTPUT + ATIVAR SAÍDA MIDI - - Loop - Loop + + PROG + This string must be be short, its width must be less than the * width of LCD spin-box of three digits + - - Loop mode - Modo de loop + + NOTE + This string must be be short, its width must be less than * width of LCD spin-box of three digits + - - Tune - Afinar + + MIDI devices to receive MIDI events from + Dispositivos MIDI recebem eventos MIDI de - - Tune mode - Modo de afinação + + MIDI devices to send MIDI events to + Dispositivos MIDI enviam eventos MIDI para - - No file selected - Nenhum arquivo selecionado + + VELOCITY MAPPING + - - Open patch file - Abrir arquivo de patch + + MIDI VELOCITY + - - Patch-Files (*.pat) - Arquivos de Patch (*.pat) + + MIDI notes at this velocity correspond to 100% note velocity. + - MidiClipView + lmms::gui::InstrumentSoundShapingView - - Open in piano-roll - Abrir no Editor de Notas MIDI + + TARGET + - - Set as ghost in piano-roll + + FILTER - - Clear all notes - Limpar todas as notas + + FREQ + - - Reset name - Restaurar nome + + Cutoff frequency: + - - Change name - Mudar nome + + Hz + - - Add steps - Adicionar passo + + Q/RESO + - - Remove steps - Remover passo + + Q/Resonance: + - - Clone Steps - Clonar Etapas + + Envelopes, LFOs and filters are not supported by the current instrument. + - PeakController - - - Peak Controller - Controlador de Picos - + lmms::gui::InstrumentTrackView - - Peak Controller Bug - Problema no Controlador de Picos + + Mixer channel + - - Due to a bug in older version of LMMS, the peak controllers may not be connect properly. Please ensure that peak controllers are connected properly and re-save this file. Sorry for any inconvenience caused. - Devido a um problema na versão mais antiga do LMMS, os controladores de pico não pode se conectar corretamente. Certifique-se de que os controladores de pico estão conectados corretamente e volte a salvar este arquivo. Desculpe por qualquer inconveniente causado. + + Volume + - - - PeakControllerDialog - - PEAK - Pico + + Volume: + - - LFO Controller - Controlador de LFO + + VOL + - - - PeakControllerEffectControlDialog - - BASE - BASE + + Panning + - - Base: + + Panning: - - AMNT - QNTD + + PAN + - - Modulation amount: - Quantidade de modulação: + + MIDI + - - MULT - MULT + + Input + - - Amount multiplicator: + + Output - - ATCK - ATQU + + Open/Close MIDI CC Rack + Abrir/Fechar Rack MIDI CC - - Attack: - Ataque: + + %1: %2 + + + + lmms::gui::InstrumentTrackWindow - - DCAY - DCAI + + Volume + - - Release: - Relaxamento: + + Volume: + - - TRSH + + VOL - - Treshold: + + Panning - - Mute output - Deixar saída muda + + Panning: + - - Absolute value + + PAN - - - PeakControllerEffectControls - - Base value - Valor base + + Pitch + - - Modulation amount - Quantidade de modulação + + Pitch: + - - Attack - Ataque + + cents + - - Release - Relaxamento + + PITCH + - - Treshold + + Pitch range (semitones) - - Mute output - Deixar saída muda + + RANGE + - - Absolute value + + Mixer channel - - Amount multiplicator + + CHANNEL - - - PianoRoll - - Note Velocity - Volume da nota + + Save current instrument track settings in a preset file + - - Note Panning - Panorâmico da nota + + SAVE + - - Mark/unmark current semitone - Marcar/desmarcar o semitom atual + + Envelope, filter & LFO + - - Mark/unmark all corresponding octave semitones + + Chord stacking & arpeggio - - Mark current scale - Marcar a escala atual + + Effects + - - Mark current chord - Marcar o acorde atual + + MIDI + - - Unmark all - Desmarcar tudo + + Tuning and transposition + - - Select all notes on this key - Selecionar todas as notas desta chave + + Save preset + - - Note lock - Travar nota + + XML preset file (*.xpf) + Arquivo de predefinição XML (*.xpf) - - Last note - Última nota + + Plugin + + + + lmms::gui::InstrumentTuningView - - No key + + GLOBAL TRANSPOSITION - - No scale - Sem escala + + Enables the use of global transposition + - - No chord - Sem acorde + + Microtuner is not available for MIDI-based instruments. + - - Nudge + + MICROTUNER - - Snap + + Active scale: - - Velocity: %1% - Velocidade: %1% + + + Edit scales and keymaps + - - Panning: %1% left - Panorâmico: %1% Esquerda + + Active keymap: + - - Panning: %1% right - Panorâmico: %1% Direita + + Import note ranges from keymap + - - Panning: center - Panorâmico: Centro + + When enabled, the first, last and base notes of this instrument will be overwritten with values specified by the selected keymap. + + + + lmms::gui::KickerInstrumentView - - Glue notes failed + + Start frequency: - - Please select notes to glue first. + + End frequency: - - Please open a clip by double-clicking on it! - Por favor abra um a sequência com um duplo clique sobre ela! + + Frequency slope: + - - - Please enter a new value between %1 and %2: - Por favor coloque um valor entre %1 e %2: + + Gain: + - - - PianoRollWindow - - Play/pause current clip (Space) - Tocar/Parar padrão atual (Espaço) + + Envelope length: + - - Record notes from MIDI-device/channel-piano - Grave notas do dispositivo MIDI / Canal de piano + + Envelope slope: + - - Record notes from MIDI-device/channel-piano while playing song or BB track - Grave notas do dispositivo MIDI / Canal de piano enquanto toca sons ou faixas de batida da linha de baixo + + Click: + - - Record notes from MIDI-device/channel-piano, one step at the time - + + Noise: + Ruído: - - Stop playing of current clip (Space) - Parar de tocar a sequência atual (Espaço) + + Start distortion: + - - Edit actions - Editar ações + + End distortion: + + + + lmms::gui::LOMMControlDialog - - Draw mode (Shift+D) - Desenhar modo (Shift+D) + + Depth: + - - Erase mode (Shift+E) - Apagar modo (Shift+E) + + Compression amount for all bands + - - Select mode (Shift+S) - Modo de seleção (Shift+S) + + Time: + - - Pitch Bend mode (Shift+T) + + Attack/release scaling for all bands - - Quantize - Quantizar + + Input Volume: + - - Quantize positions + + Input volume - - Quantize lengths + + Output Volume: - - File actions + + Output volume - - Import clip + + Upward Depth: - - - Export clip + + Upward compression amount for all bands - - Copy paste controls + + Downward Depth: - - Cut (%1+X) + + Downward compression amount for all bands - - Copy (%1+C) + + High/Mid Crossover - - Paste (%1+V) + + Mid/Low Crossover - - Timeline controls - Controles de cronograma + + High/mid band split + - - Glue + + Mid/low band split - - Knife + + Enable High Band - - Fill + + Enable Mid Band - - Cut overlaps + + Enable Low Band - - Min length as last + + High Input Volume: - - Max length as last + + Input volume for high band - - Zoom and note controls - Controles de Zoom e nota + + Mid Input Volume: + - - Horizontal zooming - Zoom horizontal + + Input volume for mid band + - - Vertical zooming - Zoom vertical + + Low Input Volume: + - - Quantization - Quantização + + Input volume for low band + - - Note length + + High Output Volume: - - Key + + Output volume for high band - - Scale - Escala + + Mid Output Volume: + - - Chord - Acorde + + Output volume for mid band + - - Snap mode + + Low Output Volume: - - Clear ghost notes + + Output volume for low band - - - Piano-Roll - %1 + + Above Threshold High - - - Piano-Roll - no clip + + Downward compression threshold for high band - - - XML clip file (*.xpt *.xptz) + + Above Threshold Mid - - Export clip success + + Downward compression threshold for mid band - - Clip saved to %1 + + Above Threshold Low - - Import clip. + + Downward compression threshold for low band - - You are about to import a clip, this will overwrite your current clip. Do you want to continue? + + Above Ratio High - - Open clip + + Downward compression ratio for high band - - Import clip success + + Above Ratio Mid - - Imported clip %1! + + Downward compression ratio for mid band - - - PianoView - - Base note - Nota base + + Above Ratio Low + - - First note + + Downward compression ratio for low band - - Last note - Última nota + + Below Threshold High + - - - Plugin - - Plugin not found - Plugin não encontrado + + Upward compression threshold for high band + - - The plugin "%1" wasn't found or could not be loaded! -Reason: "%2" - O plugin "%1" não pode ser carregado! -Motivo: "%2" + + Below Threshold Mid + - - Error while loading plugin - Erro ao carregar plugin + + Upward compression threshold for mid band + - - Failed to load plugin "%1"! - Falha ao carregar o plugin "%1"! + + Below Threshold Low + - - - PluginBrowser - - Instrument Plugins + + Upward compression threshold for low band - - Instrument browser - Navegador de Instrumento + + Below Ratio High + - - Drag an instrument into either the Song-Editor, the Beat+Bassline Editor or into an existing instrument track. + + Upward compression ratio for high band - - no description - sem descrição + + Below Ratio Mid + - - A native amplifier plugin + + Upward compression ratio for mid band - - Simple sampler with various settings for using samples (e.g. drums) in an instrument-track + + Below Ratio Low - - Boost your bass the fast and simple way + + Upward compression ratio for low band - - Customizable wavetable synthesizer - Sintetizador de formas de onda customizáveis + + Attack High: + - - An oversampling bitcrusher + + Attack time for high band - - Carla Patchbay Instrument + + Attack Mid: - - Carla Rack Instrument - Instrumento do Rack Carla + + Attack time for mid band + - - A dynamic range compressor. + + Attack Low: - - A 4-band Crossover Equalizer + + Attack time for low band - - A native delay plugin + + Release High: - - A Dual filter plugin + + Release time for high band - - plugin for processing dynamics in a flexible way + + Release Mid: - - A native eq plugin + + Release time for mid band - - A native flanger plugin + + Release Low: - - Emulation of GameBoy (TM) APU - Emulação do GameBoy (TM) APU + + Release time for low band + - - Player for GIG files - Tocador para arquivos GIG + + RMS Time: + - - Filter for importing Hydrogen files into LMMS - Filtro para importação de arquivos do Hydrogen para o LMMS + + RMS size for sidechain signal (set to 0 for Peak mode) + - - Versatile drum synthesizer + + Knee: - - List installed LADSPA plugins - Lista dos plugins LADSPA instalados + + Knee size for all compressors + - - plugin for using arbitrary LADSPA-effects inside LMMS. - plugin para uso de efeitos LADSPA arbitrários dentro do LMMS. + + Range: + - - Incomplete monophonic imitation TB-303 - Imitação monofônica incompleta de TB-303 + + Maximum gain increase for all bands + - - plugin for using arbitrary LV2-effects inside LMMS. + + Balance: - - plugin for using arbitrary LV2 instruments inside LMMS. + + Bias input volume towards one channel - - Filter for exporting MIDI-files from LMMS + + Scale output volume with Depth - - Filter for importing MIDI-files into LMMS - Filtro para importação de arquivos MIDI para o LMMS + + Scale output volume with Depth parameter + - - Monstrous 3-oscillator synth with modulation matrix + + Stereo Link - - A multitap echo delay plugin + + Apply same gain change to both channels - - A NES-like synthesizer + + Auto Time: - - 2-operator FM Synth - Dois Operadores de Síntese FM + + Speed up attack and release times when transients occur + - - Additive Synthesizer for organ-like sounds - Síntetizador de Síntese Aditiva para sons tipo de órgão + + Mix: + - - GUS-compatible patch instrument - Pré definição de instrumento compatível com GUS (Gravis Ultrasound) + + Wet/Dry of all bands + - - Plugin for controlling knobs with sound peaks - Plugin para controlar botões com os picos sonoros + + Feedback + - - Reverb algorithm by Sean Costello + + Use output as sidechain signal instead of input - - Player for SoundFont files - Tocador de arquivos de SounFont + + Mid/Side + - - LMMS port of sfxr - sfxr para LMMS + + Compress mid/side channels instead of left/right + - - Emulation of the MOS6581 and MOS8580 SID. -This chip was used in the Commodore 64 computer. - Emulação do MOS6581 e do MOS8580 SID. -Este chip foi utilizado no computador Commodore 64. + + + Suppress upward compression for side band + - - A graphical spectrum analyzer. + + + Lookahead - - Plugin for enhancing stereo separation of a stereo input file - Plugin para melhorar a separação estéreo de um arquivo de entrada estéreo + + Lookahead length + - - Plugin for freely manipulating stereo output - Plugin para livre manipulação das saídas estéreo + + Clear all parameters + + + + lmms::gui::LadspaBrowserView - - Tuneful things to bang on - Instrumentos percussivos com afinação para você usar + + + Available Effects + - - Three powerful oscillators you can modulate in several ways + + + Unavailable Effects - - A stereo field visualizer. + + + Instruments - - VST-host for using VST(i)-plugins within LMMS - Servidor (host) VST para usar plugins VST(i) com o LMMS + + + Analysis Tools + - - Vibrating string modeler - Modelador de Cordas vibrantes + + + Don't know + - - plugin for using arbitrary VST effects inside LMMS. + + Type: + + + lmms::gui::LadspaControlDialog - - 4-oscillator modulatable wavetable synth + + Link Channels - - plugin for waveshaping + + Channel + + + lmms::gui::LadspaControlView - - Mathematical expression parser + + Link channels - - Embedded ZynAddSubFX - Poderoso sintetizador ZynAddSubFx embutido no LMMS + + Value: + - PluginDatabaseW + lmms::gui::LadspaDescription - - Carla - Add New + + Plugins - - Format + + Description - - Internal + + Name: - - LADSPA + + Maker: - - DSSI + + Copyright: - - LV2 + + Requires Real Time: - - VST2 + + + + Yes - - VST3 + + + + No - - AU + + Real Time Capable: - - Sound Kits + + In Place Broken: - - Type - Tipo + + Channels In: + - - Effects - Efeitos + + Channels Out: + + + + lmms::gui::LadspaMatrixControlDialog - - Instruments - Instrumentos + + Link Channels + - - MIDI Plugins + + Link - - Other/Misc + + Channel %1 - - Architecture + + Link channels + + + lmms::gui::LadspaPortDialog - - Native + + Ports - - Bridged + + Name - - Bridged (Wine) + + Rate - - Requirements + + Direction - - With Custom GUI + + Type - - With CV Ports + + Min < Default < Max - - Real-time safe only + + Logarithmic - - Stereo only + + SR Dependent - - With Inline Display + + Audio - - Favorites only + + Control - - (Number of Plugins go here) + + Input - - &Add Plugin + + Output - - Cancel - Cancelar + + Toggled + - - Refresh + + Integer - - Reset filters + + Float - - - - - - - - - - - - - - - - - TextLabel + + + Yes + + + lmms::gui::Lb302SynthView - - Format: + + Cutoff Freq: - - Architecture: + + Resonance: - - Type: - Tipo: + + Env Mod: + - - MIDI Ins: + + Decay: - - Audio Ins: + + 303-es-que, 24dB/octave, 3 pole filter - - CV Outs: + + Slide Decay: - - MIDI Outs: + + DIST: - - Parameter Ins: + + Saw wave - - Parameter Outs: + + Click here for a saw-wave. - - Audio Outs: + + Triangle wave - - CV Ins: + + Click here for a triangle-wave. - - UniqueID: + + Square wave - - Has Inline Display: + + Click here for a square-wave. - - Has Custom GUI: + + Rounded square wave - - Is Synth: + + Click here for a square-wave with a rounded end. - - Is Bridged: + + Moog wave - - Information + + Click here for a moog-like wave. - - Name - Nome + + Sine wave + - - Label/URI + + Click for a sine-wave. - - Maker + + + White noise wave - - Binary/Filename + + Click here for an exponential wave. - - Focus Text Search - + + Click here for white-noise. + Clique aqui para ruído-branco - - Ctrl+F + + Bandlimited saw wave - - - PluginEdit - - Plugin Editor + + Click here for bandlimited saw wave. - - Edit + + Bandlimited square wave - - Control - Controle + + Click here for bandlimited square wave. + - - MIDI Control Channel: + + Bandlimited triangle wave - - N + + Click here for bandlimited triangle wave. - - Output dry/wet (100%) + + Bandlimited moog saw wave - - Output volume (100%) + + Click here for bandlimited moog saw wave. + + + lmms::gui::LcdFloatSpinBox - - Balance Left (0%) + + Set value - - - Balance Right (0%) + + Please enter a new value between %1 and %2: + + + lmms::gui::LcdSpinBox - - Use Balance + + Set value - - Use Panning + + Please enter a new value between %1 and %2: + + + lmms::gui::LeftRightNav - - Settings - Opções + + + + Previous + - - Use Chunks + + + + Next - - Audio: + + Previous (%1) - - Fixed-Size Buffer + + Next (%1) + + + lmms::gui::LfoControllerDialog - - Force Stereo (needs reload) + + LFO - - MIDI: + + BASE - - Map Program Changes + + Base: - - Send Bank/Program Changes + + FREQ - - Send Control Changes + + LFO frequency: - - Send Channel Pressure + + AMNT - - Send Note Aftertouch + + Modulation amount: - - Send Pitchbend + + PHS - - Send All Sound/Notes Off + + Phase offset: - - -Plugin Name - + + degrees - - Program: + + Sine wave - - MIDI Program: + + Triangle wave - - Save State + + Saw wave - - Load State + + Square wave - - Information + + Moog saw wave - - Label/URI: + + Exponential wave - - Name: - + + White noise + Ruído branco - - Type: - Tipo: + + User-defined shape. +Double click to pick a file. + - - Maker: + + Multiply modulation frequency by 1 - - Copyright: + + Multiply modulation frequency by 100 - - Unique ID: + + Divide modulation frequency by 100 - PluginFactory - - - Plugin not found. - Plugin não achado. - + lmms::gui::LfoGraph - - LMMS plugin %1 does not have a plugin descriptor named %2! + + %1 Hz - PluginParameter + lmms::gui::MainWindow - - Form - + + Configuration file + Arquivo de configuração - - Parameter Name + + Error while parsing configuration file at line %1:%2: %3 - - ... - + + Could not open file + Não foi possível abrir o arquivo - - - PluginRefreshW - - Carla - Refresh + + Could not open file %1 for writing. +Please make sure you have write permission to the file and the directory containing the file and try again! - - Search for new... + + Project recovery - - LADSPA - + + There is a recovery file present. It looks like the last session did not end properly or another instance of LMMS is already running. Do you want to recover the project of this session? + Há um arquivo de recuperação presente. Parece que a última sessão não terminou devidamente ou outra instância do LMMS está em execução. Você quer recuperar o projeto desta sessão? - - DSSI + + + Recover - - LV2 - + + Recover the file. Please don't run multiple instances of LMMS when you do this. + Recuperar o arquivo. Por favor não execute múltiplas instâncias do LMMS quando fizer isto. - - VST2 + + + Discard - - VST3 - + + Launch a default session and delete the restored files. This is not reversible. + Abrir uma sessão padrão e apagar os arquivos restaurados. Isto não é reversível. - - AU + + Version %1 - - SF2/3 + + Preparing plugin browser - - SFZ - + + Preparing file browsers + Preparando exploradores de arquivo - - Native + + My Projects - - POSIX 32bit + + My Samples - - POSIX 64bit + + My Presets - - Windows 32bit + + My Home - - Windows 64bit + + Root Directory - - Available tools: + + Volumes - - python3-rdflib (LADSPA-RDF support) + + My Computer - - carla-discovery-win64 + + Loading background picture - - carla-discovery-native + + &File + &Arquivo + + + + &New - - carla-discovery-posix32 + + &Open... - - carla-discovery-posix64 + + &Save - - carla-discovery-win32 + + Save &As... - - Options: + + Save as New &Version - - Carla will run small processing checks when scanning the plugins (to make sure they won't crash). -You can disable these checks to get a faster scanning time (at your own risk). + + Save as default template - - Run processing checks while scanning + + Import... - - Press 'Scan' to begin the search + + E&xport... - - Scan + + E&xport Tracks... - - >> Skip + + Export &MIDI... - - Close - Fechar + + &Quit + - - - PluginWidget - - - - - - Frame + + &Edit - - Enable + + Undo - - On/Off - Liga/Desliga + + Redo + - - - - - PluginName + + Scales and keymaps - - MIDI - MIDI + + Settings + - - AUDIO IN + + &View - - AUDIO OUT + + &Tools - - GUI + + &Help - - Edit + + Online Help - - Remove + + Help - - Plugin Name + + About - - Preset: + + Create new project - - - ProjectNotes - - Project Notes - Mostrar/esconder comentários do projeto + + Create new project from template + - - Enter project notes here - + + Open existing project + Abrir projeto existente - - Edit Actions - Editar ações + + Recently opened projects + Projetos abertos recentemente - - &Undo - &Desfazer + + Save current project + - - %1+Z - %1+Z + + Export current project + - - &Redo - &Refazer + + Metronome + - - %1+Y - %1+Y + + + Song Editor + - - &Copy - &Copiar + + + Pattern Editor + - - %1+C - %1+C + + + Piano Roll + - - Cu&t - &Cortar + + + Automation Editor + Editor de Automação - - %1+X - %1+X + + + Mixer + - - &Paste - &Colar + + Show/hide controller rack + - - %1+V - %1+V + + Show/hide project notes + - - Format Actions + + Untitled - - &Bold - &Negrito + + Recover session. Please save your work! + - - %1+B - %1+B + + LMMS %1 + - - &Italic - &Itálico + + Recovered project not saved + - - %1+I - %1+I + + This project was recovered from the previous session. It is currently unsaved and will be lost if you don't save it. Do you want to save it now? + - - &Underline - &Underline + + Project not saved + - - %1+U - %1+U + + The current project was modified since last saving. Do you want to save it now? + O projeto atual foi modificado desde o último salvamento. Gostaria de salvar agora? - - &Left - &Esquerda + + Open Project + Abrir Projeto - - %1+L - %1+L + + LMMS (*.mmp *.mmpz) + - - C&enter - &Centro + + Save Project + - - %1+E - %1+E + + LMMS Project + - - &Right - &Direita + + LMMS Project Template + - - %1+R - %1+R + + Save project template + - - &Justify - &Justificar + + Overwrite default template? + - - %1+J - %1+J + + This will overwrite your current default template. + - - &Color... - &Cor... + + Help not available + - - - ProjectRenderer - - WAV (*.wav) + + Currently there's no help available in LMMS. +Please visit http://lmms.sf.net/wiki for documentation on LMMS. - - FLAC (*.flac) + + Controller Rack - - OGG (*.ogg) + + Project Notes - - MP3 (*.mp3) + + Fullscreen - - - QObject - - Reload Plugin + + Volume as dBFS - - Show GUI - Mostrar GUI + + Smooth scroll + - - Help - Ajuda + + Enable note labels in piano roll + - - - QWidget - - - - - Name: - Nome: + + MIDI File (*.mid) + Arquivo MIDI (*.mid) - - URI: + + + untitled - - - - Maker: - Marcador: + + + Select file for project-export... + - - - - Copyright: - Direitos autorais: + + Select directory for writing exported tracks... + - - - Requires Real Time: - Requer Processamento em Tempo Real: + + Save project + - - - - - - - Yes - Sim + + Project saved + - - - - - - - No - Não + + The project %1 is now saved. + - - - Real Time Capable: - Capacitado para Processamento em Tempo Real: + + Project NOT saved. + - - - In Place Broken: - Com Local Quebrado: + + The project %1 was not saved! + - - - Channels In: - Canais de Entrada: + + Import file + - - - Channels Out: - Canais de Saída: + + MIDI sequences + - - File: %1 - Arquivo: %1 + + Hydrogen projects + - - File: - Arquivo: + + All file types + - RecentProjectsMenu + lmms::gui::MalletsInstrumentView - - &Recently Opened Projects - &Projetos Abertos Recentes + + Instrument + - - - RenameDialog - - Rename... - Renomear... + + Spread + - - - ReverbSCControlDialog - - Input - Entradas + + Spread: + - - Input gain: - Ganho de entrada: + + Random + - - Size - Tamanho + + Random: + - - Size: - Tamanho: + + Missing files + + + + + Your Stk-installation seems to be incomplete. Please make sure the full Stk-package is installed! + + + + + Hardness + + + + + Hardness: + + + + + Position + + + + + Position: + - - Color - Cor + + Vibrato gain + - - Color: - Cor: + + Vibrato gain: + - - Output - Saídas + + Vibrato frequency + - - Output gain: - Ganho de saída: + + Vibrato frequency: + - - - ReverbSCControls - - Input gain - Ganho de entrada + + Stick mix + - - Size - Tamanho + + Stick mix: + - - Color - Cor + + Modulator + - - Output gain - Ganho de saída + + Modulator: + - - - SaControls - - Pause - Pausar + + Crossfade + - - Reference freeze + + Crossfade: - - Waterfall + + LFO speed - - Averaging + + LFO speed: - - Stereo - Estéreo + + LFO depth + - - Peak hold + + LFO depth: - - Logarithmic frequency + + ADSR - - Logarithmic amplitude + + ADSR: - - Frequency range + + Pressure - - Amplitude range + + Pressure: - - FFT block size + + Speed - - FFT window type + + Speed: + + + lmms::gui::ManageVSTEffectView - - Peak envelope resolution + + - VST parameter control - - Spectrum display resolution + + VST sync - - Peak decay multiplier + + + Automated - - Averaging weight + + Close + + + lmms::gui::ManageVestigeInstrumentView - - Waterfall history size + + + - VST plugin control - - Waterfall gamma correction + + VST Sync - - FFT window overlap + + + Automated - - FFT zero padding + + Close + + + lmms::gui::MeterDialog - - - Full (auto) + + + Meter Numerator - - - - Audible + + Meter numerator - - Bass - Grave + + + Meter Denominator + - - Mids + + Meter denominator - - High + + TIME SIG + + + lmms::gui::MicrotunerConfig - - Extended + + Selected scale slot - - Loud + + Selected keymap slot - - Silent + + + First key - - (High time res.) + + + Last key - - (High freq. res.) + + + Middle key - - Rectangular (Off) + + + Base key - - - Blackman-Harris (Default) + + + + Base note frequency - - Hamming + + Microtuner Configuration - - Hanning + + Scale slot to edit: - - - SaControlsDialog - - Pause - Pausar + + Scale description. Cannot start with "!" and cannot contain a newline character. + - - Pause data acquisition - Pausar aquisição de dados + + + Load + - - Reference freeze + + + Save - - Freeze current input as a reference / disable falloff in peak-hold mode. + + Load scale definition from a file. - - Waterfall + + Save scale definition to a file. - - Display real-time spectrogram + + Enter intervals on separate lines. Numbers containing a decimal point are treated as cents. +Other inputs are treated as integer ratios and must be in the form of 'a/b' or 'a'. +Unity (0.0 cents or ratio 1/1) is always present as a hidden first value; do not enter it manually. - - Averaging + + Apply scale changes - - Enable exponential moving average + + Verify and apply changes made to the selected scale. To use the scale, select it in the settings of a supported instrument. - - Stereo - Estéreo + + Keymap slot to edit: + - - Display stereo channels separately + + Keymap description. Cannot start with "!" and cannot contain a newline character. - - Peak hold + + Load key mapping definition from a file. - - Display envelope of peak values + + Save key mapping definition to a file. - - Logarithmic frequency + + Enter key mappings on separate lines. Each line assigns a scale degree to a MIDI key, +starting with the middle key and continuing in sequence. +The pattern repeats for keys outside of the explicit keymap range. +Multiple keys can be mapped to the same scale degree. +Enter 'x' if you wish to leave the key disabled / not mapped. - - Switch between logarithmic and linear frequency scale + + FIRST - - - Frequency range + + First MIDI key that will be mapped - - Logarithmic amplitude + + LAST - - Switch between logarithmic and linear amplitude scale + + Last MIDI key that will be mapped - - - Amplitude range + + MIDDLE - - Envelope res. + + First line in the keymap refers to this MIDI key - - Increase envelope resolution for better details, decrease for better GUI performance. + + BASE N. - - - Draw at most + + Base note frequency will be assigned to this MIDI key - - envelope points per pixel + + BASE NOTE FREQ - - Spectrum res. + + Apply keymap changes - - Increase spectrum resolution for better details, decrease for better GUI performance. + + Verify and apply changes made to the selected key mapping. To use the mapping, select it in the settings of a supported instrument. - - spectrum points per pixel + + Scale parsing error - - Falloff factor + + Scale name cannot start with an exclamation mark - - Decrease to make peaks fall faster. + + Scale name cannot contain a new-line character - - Multiply buffered value by + + Interval defined in cents cannot be converted to a number - - Averaging weight + + Numerator of an interval defined as a ratio cannot be converted to a number - - Decrease to make averaging slower and smoother. + + Denominator of an interval defined as a ratio cannot be converted to a number - - New sample contributes + + Interval defined as a ratio cannot be negative - - Waterfall height + + Keymap parsing error - - Increase to get slower scrolling, decrease to see fast transitions better. Warning: medium CPU usage. + + Keymap name cannot start with an exclamation mark - - Keep - Manter + + Keymap name cannot contain a new-line character + - - lines - linhas + + Scale degree cannot be converted to a whole number + - - Waterfall gamma + + Scale degree cannot be negative - - Decrease to see very weak signals, increase to get better contrast. + + Invalid keymap - - Gamma value: - Valor gama: + + Base key is not mapped to any scale degree. No sound will be produced as there is no way to assign reference frequency to any note. + - - Window overlap + + Open scale - - Increase to prevent missing fast transitions arriving near FFT window edges. Warning: high CPU usage. + + + Scala scale definition (*.scl) - - Each sample processed + + Scale load failure - - times + + + Unable to open selected file. - - Zero padding + + Open keymap - - Increase to get smoother-looking spectrum. Warning: high CPU usage. + + + Scala keymap definition (*.kbm) - - Processing buffer is + + Keymap load failure - - steps larger than input block + + Save scale - - Advanced settings + + Scale save failure - - Access advanced settings + + + Unable to open selected file for writing. - - - FFT block size + + Save keymap - - - FFT window type + + Keymap save failure - SampleBuffer + lmms::gui::MidiCCRackView + + + + MIDI CC Rack - %1 + + - - Fail to open file + + MIDI CC Knobs: - - Audio files are limited to %1 MB in size and %2 minutes of playing time + + CC %1 + + + lmms::gui::MidiClipView - - Open audio file - Abrir arquivo de áudio + + + Transpose + - - All Audio-Files (*.wav *.ogg *.ds *.flac *.spx *.voc *.aif *.aiff *.au *.raw) - Todos Arquivos de Áudio (*.wav *.ogg *.ds *.flac *.spx *.voc *.aif *.aiff *.au *.raw) + + Semitones to transpose by: + - - Wave-Files (*.wav) - Arquivos Wave (*.wav) + + Open in piano-roll + - - OGG-Files (*.ogg) - Arquivos OGG (*.ogg) + + Set as ghost in piano-roll + - - DrumSynth-Files (*.ds) - Arquivos DrumSynth (*.ds) + + Set as ghost in automation editor + - - FLAC-Files (*.flac) - Arquivos FLAC (*.flac) + + Clear all notes + Limpar todas as notas - - SPEEX-Files (*.spx) - Arquivos SPEEX (*.spx) + + Reset name + - - VOC-Files (*.voc) - Arquivos VOC (*.voc) + + Change name + Mudar nome - - AIFF-Files (*.aif *.aiff) - Arquivos AIFF (*.aif *.aiff) + + Add steps + Adicionar passos - - AU-Files (*.au) - Arquivos AU (*.au) + + Remove steps + Remover passos - - RAW-Files (*.raw) - Arquivos RAW (*.raw) + + Clone Steps + Clonar Passos - SampleClipView + lmms::gui::MidiSetupWidget - - Double-click to open sample - - - - - Delete (middle mousebutton) - Excluir (botão do meio do mouse) + + Device + Dispositivo + + + lmms::gui::MixerChannelLcdSpinBox - - Delete selection (middle mousebutton) + + Assign to: - - Cut - Recortar + + New Mixer Channel + - - Cut selection + + Please enter a new value between %1 and %2: - - Copy - Copiar + + Set value + + + + lmms::gui::MixerChannelView - - Copy selection + + Channel send amount - - Paste - Colar + + Mute + - - Mute/unmute (<%1> + middle click) - Mudo/Não Mudo (<%1> + middle click) + + Mute this channel + - - Mute/unmute selection (<%1> + middle click) + + Solo - - Reverse sample - Amostra reversa + + Solo this channel + - - Set clip color + + Fader %1 - - Use track color + + Move &left - - - SampleTrack - - Volume - Volume + + Move &right + - - Panning - Panorâmico + + Rename &channel + - - Mixer channel - Canal de Efeitos + + R&emove channel + - - - Sample track - Áudio Amostras + + Remove &unused channels + - - - SampleTrackView - - Track volume - Volume da pista + + Color + Cor - - Channel volume: - Volume do canal: + + Change + Mudar - - VOL - VOL + + Reset + - - Panning - Panorâmico + + Pick random + - - Panning: - Panorâmico: + + This Mixer Channel is being used. +Are you sure you want to remove this channel? + +Warning: This operation can not be undone. + - - PAN - PAN + + Confirm removal + - - Channel %1: %2 - FX %1: %2 + + Don't ask again + Não perguntar novamente - SampleTrackWindow + lmms::gui::MixerView - - GENERAL SETTINGS - AJUSTES GERAIS + + Mixer + + + + lmms::gui::MonstroView - - Sample volume + + Operators view - - Volume: - Volume: + + Matrix view + - - VOL - VOL + + + + Volume + - + + + Panning - Panorâmico - - - - Panning: - Panorâmico: + - - PAN - PAN + + + + Coarse detune + - - Mixer channel - Canal de Efeitos + + + + semitones + - - CHANNEL - EFEITOS + + + Fine tune left + - - - SaveOptionsWidget - - Discard MIDI connections + + + + + cents - - Save As Project Bundle (with resources) + + + Fine tune right - - - SetupDialog - - Reset to default value + + + + Stereo phase offset - - Use built-in NaN handler + + + + + + deg - - Settings - Opções + + Pulse width + - - - General + + Send sync on pulse rise - - Graphical user interface (GUI) + + Send sync on pulse fall - - Display volume as dBFS + + Hard sync oscillator 2 - - Enable tooltips - Ativar Dicas + + Reverse sync oscillator 2 + - - Enable master oscilloscope by default + + Sub-osc mix - - Enable all note labels in piano roll + + Hard sync oscillator 3 - - Enable compact track buttons + + Reverse sync oscillator 3 - - Enable one instrument-track-window mode + + + + + Attack - - Show sidebar on the right-hand side - + + + Rate + Taxa - - Let sample previews continue when mouse is released + + + Phase - - Mute automation tracks during solo + + + Pre-delay - - Show warning when deleting tracks + + + Hold - - Projects + + + Decay - - Compress project files by default + + + Sustain - - Create a backup file when saving a project + + + Release - - Reopen last project on startup + + + Slope - - Language + + Mix osc 2 with osc 3 - - - Performance + + Modulate amplitude of osc 3 by osc 2 - - Autosave + + Modulate frequency of osc 3 by osc 2 - - Enable autosave + + Modulate phase of osc 3 by osc 2 - - Allow autosave while playing + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Modulation amount + + + lmms::gui::MultitapEchoControlDialog - - User interface (UI) effects vs. performance + + Length - - Smooth scroll in song editor + + Step length: - - Display playback cursor in AudioFileProcessor + + Dry - - Plugins - Plugins + + Dry gain: + - - VST plugins embedding: + + Stages - - No embedding + + Low-pass stages: - - Embed using Qt API + + Swap inputs - - Embed using native Win32 API + + Swap left and right input channels for reflections + + + lmms::gui::NesInstrumentView - - Embed using XEmbed protocol + + + + + Volume - - Keep plugin windows on top when not embedded + + + + Coarse detune - - Sync VST plugins to host playback + + + + Envelope length - - Keep effects running even without input + + Enable channel 1 - - - Audio - Áudio + + Enable envelope 1 + - - Audio interface + + Enable envelope 1 loop - - HQ mode for output audio device + + Enable sweep 1 - - Buffer size + + + Sweep amount - - - MIDI - MIDI + + + Sweep rate + - - MIDI interface + + + 12.5% Duty cycle - - Automatically assign MIDI controller to selected track + + + 25% Duty cycle - - LMMS working directory - Diretório de trabalho LMMS + + + 50% Duty cycle + - - VST plugins directory + + + 75% Duty cycle - - LADSPA plugins directories + + Enable channel 2 - - SF2 directory - Diretório SF2 + + Enable envelope 2 + - - Default SF2 + + Enable envelope 2 loop - - GIG directory - Diretório GIG + + Enable sweep 2 + - - Theme directory + + Enable channel 3 - - Background artwork - + + Noise Frequency + Frequência de Ruído - - Some changes require restarting. + + Frequency sweep - - Autosave interval: %1 + + Enable channel 4 - - Choose the LMMS working directory + + Enable envelope 4 - - Choose your VST plugins directory + + Enable envelope 4 loop - - Choose your LADSPA plugins directory + + Quantize noise frequency when using note frequency - - Choose your default SF2 + + Use note frequency for noise - - Choose your theme directory - + + Noise mode + Modo de ruído - - Choose your background picture + + Master volume - - - Paths - Caminhos - - - - OK - OK + + Vibrato + + + + lmms::gui::OpulenzInstrumentView - - Cancel - Cancelar + + + Attack + - - Frames: %1 -Latency: %2 ms + + + Decay - - Choose your GIG directory - Escolha seu diretório GIG + + + Release + - - Choose your SF2 directory - Escolha seu diretório SF2 + + + Frequency multiplier + + + + lmms::gui::OrganicInstrumentView - - minutes - minutos + + Distortion: + - - minute - minuto + + Volume: + - - Disabled - Desativado + + Randomise + - - - SidInstrument - - Cutoff frequency - Frequência de corte + + + Osc %1 waveform: + - - Resonance - Ressonância + + Osc %1 volume: + - - Filter type - Tipo de filtro + + Osc %1 panning: + - - Voice 3 off - Voz 3 desligada + + Osc %1 stereo detuning + - - Volume - Volume + + cents + - - Chip model - Modelo do chip + + Osc %1 harmonic: + - SidInstrumentView + lmms::gui::Oscilloscope - - Volume: - Volume: + + Oscilloscope + - - Resonance: - Ressonância: + + Click to enable + + + + lmms::gui::PatmanView - - - Cutoff frequency: - Frequência de corte: + + Open patch + - - High-pass filter + + Loop - - Band-pass filter + + Loop mode - - Low-pass filter + + Tune - - Voice 3 off + + Tune mode - - MOS6581 SID - + + No file selected + Nenhum arquivo selecionado - - MOS8580 SID + + Open patch file - - - Attack: - Ataque: + + Patch-Files (*.pat) + Arquivos-Patch (*.pat) + + + lmms::gui::PatternClipView - - - Decay: - Decaimento: + + Open in Pattern Editor + - - Sustain: - Sustentação: + + Reset name + - - - Release: - Relaxamento: + + Change name + + + + lmms::gui::PatternEditorWindow - - Pulse Width: - Tamanho do Pulso: + + Pattern Editor + - - Coarse: - Ajuste Bruto: + + Play/pause current pattern (Space) + - - Pulse wave + + Stop playback of current pattern (Space) - - Triangle wave - Onda triangular + + Pattern selector + - - Saw wave - Onda dente de serra + + Track and step actions + - - Noise - Ruído + + New pattern + - - Sync - Sincronização + + Clone pattern + - - Ring modulation + + Add sample-track - - Filtered - Filtrado + + Add automation-track + Adicionar trilha de automação - - Test - Teste + + Remove steps + - - Pulse width: + + Add steps - - - SideBarWidget - - Close - Fechar + + Clone Steps + - Song - - - Tempo - Andamento - + lmms::gui::PeakControllerDialog - - Master volume - Volume Final + + PEAK + - - Master pitch - Altura Final + + LFO Controller + + + + lmms::gui::PeakControllerEffectControlDialog - - Aborting project load + + BASE - - Project file contains local paths to plugins, which could be used to run malicious code. + + Base: - - Can't load project: Project file contains local paths to plugins. + + AMNT - - LMMS Error report - Reportar erro LMMS + + Modulation amount: + - - (repeated %1 times) + + MULT - - The following errors occurred while loading: + + Amount multiplicator: - - - SongEditor - - Could not open file - Não é possível abrir o arquivo + + ATCK + - - Could not open file %1. You probably have no permissions to read this file. - Please make sure to have at least read permissions to the file and try again. - Não foi possível abrir o arquivo %1. Provavelmente você não tem permissão para ler este arquivo. - Por favor certifique-se que você tenha permissão de leitura para o arquivo e tente novamente. + + Attack: + - - Operation denied + + DCAY - - A bundle folder with that name already eists on the selected path. Can't overwrite a project bundle. Please select a different name. + + Release: - - - - Error - Erro + + TRSH + - - Couldn't create bundle folder. + + Treshold: - - Couldn't create resources folder. + + Mute output - - Failed to copy resources. + + Absolute value + + + lmms::gui::PeakIndicator - - Could not write file - Não é possivel salvar o arquivo + + -inf + + + + lmms::gui::PianoRoll - - Could not open %1 for writing. You probably are not permitted towrite to this file. Please make sure you have write-access to the file and try again. + + Note Velocity - - This %1 was created with LMMS %2 + + Note Panning - - Error in file - Erro no arquivo + + Mark/unmark current semitone + - - The file %1 seems to contain errors and therefore can't be loaded. - O arquivo %1 parece conter erros e por isso não pode ser carregado. + + Mark/unmark all corresponding octave semitones + - - Version difference + + Mark current scale - - template - modelo + + Mark current chord + - - project - projeto + + Unmark all + - - Tempo - Andamento + + Select all notes on this key + - - TEMPO + + Note lock - - Tempo in BPM + + Last note - - High quality mode - Modo de alta qualidade + + No key + - - - - Master volume - Volume Final + + No scale + - - - - Master pitch - Altura Final + + No chord + - - Value: %1% - Valor: %1% + + Nudge + - - Value: %1 semitones - Valor: %1 semitons + + Snap + - - - SongEditorWindow - - Song-Editor - Editor de Som + + Velocity: %1% + - - Play song (Space) - Tocar som (Espaço) + + Panning: %1% left + - - Record samples from Audio-device + + Panning: %1% right - - Record samples from Audio-device while playing song or BB track + + Panning: center - - Stop song (Space) - Parar som (Espaço) + + Glue notes failed + - - Track actions + + Please select notes to glue first. - - Add beat/bassline - Add linha de base + + Please open a clip by double-clicking on it! + - - Add sample-track - Adicionar faixa de amostra + + + Please enter a new value between %1 and %2: + + + + lmms::gui::PianoRollWindow - - Add automation-track - Add automação de faixa + + Play/pause current clip (Space) + - - Edit actions - Editar ações + + Record notes from MIDI-device/channel-piano + Grava notas de um dispositivo MIDI/canal de piano - - Draw mode - Modo de desenho + + Record notes from MIDI-device/channel-piano while playing song or pattern track + Gravar notas de um dispositivo MIDI/canal de piano enquanto toca a música ou Base - - Knife mode (split sample clips) - Modo faca (separar clipes de sample) + + Record notes from MIDI-device/channel-piano, one step at the time + Gravar notas de um dispositivo MIDI/canal de piano um passo por vez - - Edit mode (select and move) - Editar modo (selecionar e mover) + + Stop playing of current clip (Space) + - - Timeline controls - Controles de cronograma + + Edit actions + - - Bar insert controls + + Draw mode (Shift+D) - - Insert bar + + Erase mode (Shift+E) - - Remove bar + + Select mode (Shift+S) - - Zoom controls - Controles de zoom + + Pitch Bend mode (Shift+T) + - - Horizontal zooming - Zoom horizontal + + Quantize + - - Snap controls + + Quantize positions - - - Clip snapping size + + Quantize lengths - - Toggle proportional snap on/off + + File actions - - Base snapping size + + Import clip - - - StepRecorderWidget - - Hint - Sugestão + + + Export clip + - - Move recording curser using <Left/Right> arrows + + Copy paste controls - - - SubWindow - - Close - Fechar + + Cut (%1+X) + - - Maximize - Maximizar + + Copy (%1+C) + - - Restore - Restaurar + + Paste (%1+V) + - - - TabWidget - - - Settings for %1 - Opções para %1 + + Timeline controls + - - - TemplatesMenu - - New from template - Novo modelo + + Glue + - - - TempoSyncKnob - - - Tempo Sync - Sincronia + + Knife + Lâmina - - No Sync - Sem Sincronia + + Fill + - - Eight beats - Oito batidas + + Cut overlaps + - - Whole note - Nota inteira + + Min length as last + - - Half note - Meia nota + + Max length as last + - - Quarter note - 1/4 de nota + + Zoom and note controls + - - 8th note - 8ª nota + + Horizontal zooming + - - 16th note - 16ª nota + + Vertical zooming + - - 32nd note - 32ª nota + + Quantization + - - Custom... - Personalizado... + + Note length + - - Custom - Personalizado + + Key + - - Synced to Eight Beats - Sincronizado com Oito Batidas + + Scale + - - Synced to Whole Note - Sincronizado com a Nota Inteira + + Chord + - - Synced to Half Note - Sincronizado com Meia Nota + + Snap mode + - - Synced to Quarter Note - Sincronizado com 1/4 de Nota + + Clear ghost notes + - - Synced to 8th Note - Sincronizado com a 8ª Nota + + + Piano-Roll - %1 + - - Synced to 16th Note - Sincronizado com a 16ª Nota + + + Piano-Roll - no clip + - - Synced to 32nd Note - Sincronizado com a 32ª Nota + + + XML clip file (*.xpt *.xptz) + - - - TimeDisplayWidget - - Time units + + Export clip success - - MIN - MIN + + Clip saved to %1 + - - SEC - SEC + + Import clip. + - - MSEC + + You are about to import a clip, this will overwrite your current clip. Do you want to continue? - - BAR + + Open clip - - BEAT + + Import clip success - - TICK + + Imported clip %1! - TimeLineWidget + lmms::gui::PianoView - - Auto scrolling + + Base note - - Loop points + + First note - - After stopping go back to beginning + + Last note + + + lmms::gui::PluginBrowser - - After stopping go back to position at which playing was started + + Instrument Plugins - - After stopping keep position + + Instrument browser - - Hint - Sugestão + + Drag an instrument into either the Song Editor, the Pattern Editor or an existing instrument track. + - - Press <%1> to disable magnetic loop points. + + Search - Track - - - Mute - Mudo - + lmms::gui::PluginDescWidget - - Solo - Solo + + Send to new instrument track + Enviar para uma nova trilha de instrumento - TrackContainer - - - Couldn't import file - não foi possivel importar arquivo - + lmms::gui::ProjectNotes - - Couldn't find a filter for importing file %1. -You should convert this file into a format supported by LMMS using another software. - Não foi possível encontrar um filtro para inportar o arquivo %1. -Você poderia converter este arquivo em um formato suportado pelo LMMS usando outro aplicativo. + + Project Notes + - - Couldn't open file - Não é possível abrir o arquivo + + Enter project notes here + - - Couldn't open file %1 for reading. -Please make sure you have read-permission to the file and the directory containing the file and try again! - Não foi possível abrir o arquivo %1 para leitura. -Por favor certifique-se que você tem permissões de leitura para o arquivo e para a pasta e tente novamente! + + Edit Actions + - - Loading project... - Carregando projeto... + + &Undo + - - - Cancel - Cancelar + + %1+Z + - - - Please wait... - Por favor aguarde... + + &Redo + - - Loading cancelled + + %1+Y - - Project loading was cancelled. + + &Copy - - Loading Track %1 (%2/Total %3) + + %1+C - - Importing MIDI-file... - Importando arquivo MIDI... + + Cu&t + - - - Clip - - Mute - Mudo + + %1+X + - - - ClipView - - Current position - Posição atual + + &Paste + - - Current length + + %1+V - - - %1:%2 (%3:%4 to %5:%6) - %1:%2 (%3:%4 to %5:%6) + + Format Actions + - - Press <%1> and drag to make a copy. + + &Bold - - Press <%1> for free resizing. + + %1+B - - Hint - Sugestão + + &Italic + - - Delete (middle mousebutton) - Excluir (botão do meio do mouse) + + %1+I + - - Delete selection (middle mousebutton) + + &Underline - - Cut - Recortar + + %1+U + - - Cut selection + + &Left - - Merge Selection + + %1+L - - Copy - Copiar + + C&enter + - - Copy selection + + %1+E - - Paste - Colar + + &Right + - - Mute/unmute (<%1> + middle click) - Mudo/Não Mudo (<%1> + middle click) + + %1+R + - - Mute/unmute selection (<%1> + middle click) + + &Justify - - Set clip color + + %1+J - - Use track color + + &Color... - TrackContentWidget + lmms::gui::RecentProjectsMenu - - Paste - Colar + + &Recently Opened Projects + &Projetos Abertos Recentemente - TrackOperationsWidget + lmms::gui::RenameDialog - - Press <%1> while clicking on move-grip to begin a new drag'n'drop action. + + Rename... + + + lmms::gui::ReverbSCControlDialog - - Actions + + Input - - - Mute - Mudo + + Input gain: + - - - Solo - Solo + + Size + - - After removing a track, it can not be recovered. Are you sure you want to remove track "%1"? + + Size: - - Confirm removal + + Color - - Don't ask again + + Color: - - Clone this track - Clonar esta faixa + + Output + - - Remove this track - Remover esta faixa + + Output gain: + + + + lmms::gui::SaControlsDialog - - Clear this track - Desmarcar esta faixa + + Pause + - - Channel %1: %2 - FX %1: %2 + + Pause data acquisition + - - Assign to new mixer Channel - Atribuir novo Canal FX + + Reference freeze + - - Turn all recording on + + Freeze current input as a reference / disable falloff in peak-hold mode. - - Turn all recording off + + Waterfall - - Change color - Mudar cor + + Display real-time spectrogram + - - Reset color to default - Reiniciar para a cor padrão + + Averaging + - - Set random color + + Enable exponential moving average - - Clear clip colors + + Stereo - - - TripleOscillatorView - - Modulate phase of oscillator 1 by oscillator 2 + + Display stereo channels separately - - Modulate amplitude of oscillator 1 by oscillator 2 + + Peak hold - - Mix output of oscillators 1 & 2 + + Display envelope of peak values - - Synchronize oscillator 1 with oscillator 2 - Sincronize o oscilador 1 com o oscilador 2 + + Logarithmic frequency + - - Modulate frequency of oscillator 1 by oscillator 2 + + Switch between logarithmic and linear frequency scale - - Modulate phase of oscillator 2 by oscillator 3 + + + Frequency range - - Modulate amplitude of oscillator 2 by oscillator 3 + + Logarithmic amplitude - - Mix output of oscillators 2 & 3 + + Switch between logarithmic and linear amplitude scale - - Synchronize oscillator 2 with oscillator 3 - Sincronize o oscilador 2 com o oscilador 3 + + + Amplitude range + - - Modulate frequency of oscillator 2 by oscillator 3 + + + FFT block size - - Osc %1 volume: - Volume Osc %1: + + + FFT window type + - - Osc %1 panning: - Panorâmico Osc %1: + + Envelope res. + - - Osc %1 coarse detuning: - Ajuste bruto Osc %1: + + Increase envelope resolution for better details, decrease for better GUI performance. + - - semitones - semitons + + Maximum number of envelope points drawn per pixel: + - - Osc %1 fine detuning left: - Ajuste fino esquerdo Osc %1: + + Spectrum res. + - - - cents - centésimos + + Increase spectrum resolution for better details, decrease for better GUI performance. + - - Osc %1 fine detuning right: - Ajuste fino direito %1: + + Maximum number of spectrum points drawn per pixel: + - - Osc %1 phase-offset: - Defasamento Osc %1: + + Falloff factor + - - - degrees - graus + + Decrease to make peaks fall faster. + - - Osc %1 stereo phase-detuning: - Defasamento estéreo Osc %1: + + Multiply buffered value by + - - Sine wave - Onda senoidal + + Averaging weight + - - Triangle wave - Onda triangular + + Decrease to make averaging slower and smoother. + - - Saw wave - Onda dente de serra + + New sample contributes + - - Square wave - Onda quadrada + + Waterfall height + - - Moog-like saw wave + + Increase to get slower scrolling, decrease to see fast transitions better. Warning: medium CPU usage. - - Exponential wave - Onda exponencial + + Number of lines to keep: + - - White noise + + Waterfall gamma - - User-defined wave + + Decrease to see very weak signals, increase to get better contrast. - - - VecControls - - Display persistence amount + + Gamma value: - - Logarithmic scale + + Window overlap - - High quality + + Increase to prevent missing fast transitions arriving near FFT window edges. Warning: high CPU usage. - - - VecControlsDialog - - HQ + + Number of times each sample is processed: - - Double the resolution and simulate continuous analog-like trace. + + Zero padding - - Log. scale + + Increase to get smoother-looking spectrum. Warning: high CPU usage. - - Display amplitude on logarithmic scale to better see small values. + + Processing buffer is - - Persist. + + steps larger than input block - - Trace persistence: higher amount means the trace will stay bright for longer time. + + Advanced settings - - Trace persistence + + Access advanced settings - VersionedSaveDialog - - - Increment version number - Incrementar número da versão - + lmms::gui::SampleClipView - - Decrement version number - Decrementar número da versão + + Double-click to open sample + Duplo clique para abrir amostra - - Save Options + + Reverse sample - - already exists. Do you want to replace it? + + Set as ghost in automation editor - VestigeInstrumentView + lmms::gui::SampleTrackView - - - Open VST plugin + + Mixer channel - - Control VST plugin from LMMS host + + Track volume - - Open VST plugin preset + + Channel volume: - - Previous (-) - Anterior (-) + + VOL + - - Save preset - Salvar pré definição + + Panning + - - Next (+) - Próximo (+) + + Panning: + - - Show/hide GUI - Mostrar/esconder GUI + + PAN + - - Turn off all notes - Desligar todas as notas + + %1: %2 + + + + + lmms::gui::SampleTrackWindow + + + Sample volume + - - DLL-files (*.dll) - Arquivos DLL (*.dll) + + Volume: + - - EXE-files (*.exe) - Arquivos EXE (*.exe) + + VOL + + + + + Panning + - - No VST plugin loaded + + Panning: - - Preset - Pré definição + + PAN + - - by - por + + Mixer channel + - - - VST plugin control - - Controle de plugins VST + + CHANNEL + - VstEffectControlDialog + lmms::gui::SaveOptionsWidget - - Show/hide - Mostrar/esconder + + Discard MIDI connections + - - Control VST plugin from LMMS host + + Save As Project Bundle (with resources) + + + lmms::gui::SetupDialog - - Open VST plugin preset + + Settings - - Previous (-) - Anterior (-) + + + General + - - Next (+) - Próximo (+) + + Graphical user interface (GUI) + - - Save preset - Salvar pré definição + + Display volume as dBFS + - - - Effect by: - Efeito por: + + Enable tooltips + - - &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> - &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> + + Enable master oscilloscope by default + - - - VstPlugin - - - The VST plugin %1 could not be loaded. + + Enable all note labels in piano roll - - Open Preset - Abrir pré definição + + Enable compact track buttons + - - - Vst Plugin Preset (*.fxp *.fxb) - Pré definição de Plugin VST (*.fxp *.fxb) + + Enable one instrument-track-window mode + - - : default - : padrão + + Show sidebar on the right-hand side + - - Save Preset - Salvar pré definição + + Let sample previews continue when mouse is released + - - .fxp - .fxp + + Mute automation tracks during solo + Silenciar trilhas de automação durante solo - - .FXP - .FXP + + Show warning when deleting tracks + - - .FXB - .FXB + + Show warning when deleting a mixer channel that is in use + Mostrar aviso ao deletar um canal mixer que está em uso - - .fxb - .fxb + + Dual-button + - - Loading plugin - Carregando plugin + + Grab closest + - - Please wait while loading VST plugin... - Por favor aguarde enquanto carrega o plugin VST... + + Handles + - - - WatsynInstrument - - Volume A1 - Volume A1 + + Loop edit mode + - - Volume A2 - Volume A2 + + Projects + - - Volume B1 - Volume B1 + + Compress project files by default + - - Volume B2 - Volume B2 + + Create a backup file when saving a project + - - Panning A1 - Panorâmico A1 + + Reopen last project on startup + - - Panning A2 - Panorâmico A2 + + Language + - - Panning B1 - Panorâmico B1 + + + Performance + - - Panning B2 - Panorâmico B2 + + Autosave + - - Freq. multiplier A1 - Multiplicador de freq. A1 + + Enable autosave + - - Freq. multiplier A2 - Multiplicador de freq. A2 + + Allow autosave while playing + - - Freq. multiplier B1 - Multiplicador de freq. B1 + + User interface (UI) effects vs. performance + - - Freq. multiplier B2 - Multiplicador de freq. B2 + + Smooth scroll in song editor + - - Left detune A1 + + Display playback cursor in AudioFileProcessor - - Left detune A2 + + Plugins - - Left detune B1 + + VST plugins embedding: - - Left detune B2 + + No embedding - - Right detune A1 + + Embed using Qt API - - Right detune A2 + + Embed using native Win32 API - - Right detune B1 + + Embed using XEmbed protocol - - Right detune B2 + + Keep plugin windows on top when not embedded - - A-B Mix + + Keep effects running even without input - - A-B Mix envelope amount + + + Audio - - A-B Mix envelope attack + + Audio interface - - A-B Mix envelope hold + + Buffer size - - A-B Mix envelope decay + + Reset to default value - - A1-B2 Crosstalk + + + MIDI - - A2-A1 modulation + + MIDI interface + Interface MIDI + + + + Automatically assign MIDI controller to selected track - - B2-B1 modulation + + Behavior when recording - - Selected graph + + Auto-quantize notes in Piano Roll - - - WatsynView - - - - - Volume - Volume + + If enabled, notes will be automatically quantized when recording them from a MIDI controller. If disabled, they are always recorded at the highest possible resolution. + - - - - - Panning - Panorâmico + + + Paths + - - - - - Freq. multiplier + + LMMS working directory - - - - - Left detune + + VST plugins directory - - - - - - - - - cents + + LADSPA plugins directories - - - - - Right detune + + SF2 directory + Diretório SF2 + + + + Default SF2 + SF2 padrão + + + + GIG directory - - A-B Mix + + Theme directory - - Mix envelope amount + + Background artwork - - Mix envelope attack + + Some changes require restarting. - - Mix envelope hold + + OK - - Mix envelope decay + + Cancel - - Crosstalk + + minutes - - Select oscillator A1 + + minute - - Select oscillator A2 + + Disabled - - Select oscillator B1 + + Autosave interval: %1 - - Select oscillator B2 + + The currently selected value is not a power of 2 (32, 64, 128, 256). Some plugins may not be available. - - Mix output of A2 to A1 + + The currently selected value is less than or equal to 32. Some plugins may not be available. - - Modulate amplitude of A1 by output of A2 + + Frames: %1 +Latency: %2 ms - - Ring modulate A1 and A2 + + Choose the LMMS working directory - - Modulate phase of A1 by output of A2 + + Choose your VST plugins directory - - Mix output of B2 to B1 + + Choose your LADSPA plugins directory - - Modulate amplitude of B1 by output of B2 + + Choose your SF2 directory + Escolha seu diretório SF2 + + + + Choose your default SF2 + Escolha seu SF2 padrão + + + + Choose your GIG directory - - Ring modulate B1 and B2 + + Choose your theme directory - - Modulate phase of B1 by output of B2 + + Choose your background picture + + + lmms::gui::Sf2InstrumentView - - - - - Draw your own waveform here by dragging your mouse on this graph. - Desenhe sua própria forma de onda aqui utilizando seu mouse no gráfico. + + + Open SoundFont file + Abrir arquivo SoundFont - - Load waveform + + Choose patch - - Load a waveform from a sample file + + Gain: - - Phase left - Fase esquerda - - - - Shift phase by -15 degrees + + Apply reverb (if supported) - - Phase right - Fase direita + + Room size: + - - Shift phase by +15 degrees + + Damping: - - - Normalize - Normalização + + Width: + - - - Invert - Inverter + + + Level: + - - - Smooth - Suave + + Apply chorus (if supported) + - - - Sine wave - Onda senoidal + + Voices: + - - - - Triangle wave - Onda triangular + + Speed: + - - Saw wave - Onda dente de serra + + Depth: + - - - Square wave - Onda quadrada + + SoundFont Files (*.sf2 *.sf3) + Arquivos SoundFont (*.sf2 *.sf3) - Xpressive + lmms::gui::SidInstrumentView - - Selected graph + + Volume: - - A1 + + Resonance: - - A2 + + + Cutoff frequency: - - A3 + + High-pass filter - - W1 smoothing + + Band-pass filter - - W2 smoothing + + Low-pass filter - - W3 smoothing + + Voice 3 off - - Panning 1 + + MOS6581 SID - - Panning 2 + + MOS8580 SID - - Rel trans + + + Attack: - - - XpressiveView - - - Draw your own waveform here by dragging your mouse on this graph. - Desenhe sua própria forma de onda aqui utilizando seu mouse no gráfico. - - - Select oscillator W1 + + + Decay: - - Select oscillator W2 + + Sustain: - - Select oscillator W3 + + + Release: - - Select output O1 + + Pulse Width: - - Select output O2 + + Coarse: - - Open help window + + Pulse wave - - - Sine wave - Onda senoidal + + Triangle wave + - - - Moog-saw wave + + Saw wave - - - Exponential wave - Onda exponencial + + Noise + Ruído - - - Saw wave - Onda dente de serra + + Sync + - - - User-defined wave + + Ring modulation - - - Triangle wave - Onda triangular + + Filtered + - - - Square wave - Onda quadrada + + Test + - - - White noise + + Pulse width: + + + lmms::gui::SideBarWidget - - WaveInterpolate + + Close + + + lmms::gui::SlicerTView - - ExpressionValid + + Slice snap - - General purpose 1: + + Set slice snapping for detection - - General purpose 2: + + Sync sample - - General purpose 3: + + Enable BPM sync - - O1 panning: + + Original sample BPM - - O2 panning: + + Threshold used for slicing - - Release transition: + + Fade Out per note in milliseconds - - Smoothness + + Copy midi pattern to clipboard - - - ZynAddSubFxInstrument - - Portamento + + Open sample selector - - Filter frequency + + Reset slices - - Filter resonance + + Threshold - - Bandwidth - Largura da Banda + + Fade Out + - - FM gain + + Reset - - Resonance center frequency + + Midi - - Resonance bandwidth + + BPM - - Forward MIDI control change events + + Snap - ZynAddSubFxView + lmms::gui::SlicerTWaveform - - Portamento: + + Click to load sample + + + lmms::gui::SongEditor - - PORT - + + Could not open file + Não foi possível abrir o arquivo - - Filter frequency: + + Could not open file %1. You probably have no permissions to read this file. + Please make sure to have at least read permissions to the file and try again. - - FREQ - FREQ + + Operation denied + - - Filter resonance: + + A bundle folder with that name already eists on the selected path. Can't overwrite a project bundle. Please select a different name. - - RES + + + + Error - - Bandwidth: - Largura da Banda: + + Couldn't create bundle folder. + - - BW - LBnd + + Couldn't create resources folder. + - - FM gain: + + Failed to copy resources. - - FM GAIN - GANHO FM + + + Could not write file + - - Resonance center frequency: - Frequência Central de Ressonância: + + Could not open %1 for writing. You probably are not permitted to write to this file. Please make sure you have write-access to the file and try again. + - - RES CF - RES FC + + An unknown error has occurred and the file could not be saved. + - - Resonance bandwidth: - Banda de Ressonância: + + Error in file + Erro no arquivo - - RES BW - RES Bnd + + The file %1 seems to contain errors and therefore can't be loaded. + - - Forward MIDI control changes + + template - - Show GUI - Mostrar GUI + + project + - - - AudioFileProcessor - - Amplify - Amplificar + + Version difference + - - Start of sample - Início da amostra + + This %1 was created with LMMS %2 + - - End of sample - Fim da amostra + + Zoom + - - Loopback point + + Tempo - - Reverse sample - Amostra reversa + + TEMPO + - - Loop mode - Modo de loop + + Tempo in BPM + - - Stutter - Gaguejar + + + + Master volume + - - Interpolation mode - Modo de interpolação + + + + Global transposition + - - None - Nenhum + + 1/%1 Bar + - - Linear - Linear + + %1 Bars + - - Sinc + + Value: %1% - - Sample not found: %1 + + Value: %1 keys - BitInvader + lmms::gui::SongEditorWindow - - Sample length + + Song-Editor - - - BitInvaderView - - Sample length + + Play song (Space) - - Draw your own waveform here by dragging your mouse on this graph. - Desenhe sua própria forma de onda aqui utilizando seu mouse no gráfico. + + Record samples from Audio-device + Gravar amostras de um dispositivo de áudio - - - Sine wave - Onda senoidal + + Record samples from Audio-device while playing song or pattern track + Gravar amostras de um dispositivo enquanto toca a música ou uma Base - - - Triangle wave - Onda triangular + + Stop song (Space) + + + + + Track actions + - - - Saw wave - Onda dente de serra + + Add pattern-track + - - - Square wave - Onda quadrada + + Add sample-track + - - - White noise - + + Add automation-track + Adicionar trilha de automação - - - User-defined wave + + Edit actions - - - Smooth waveform + + Draw mode - - Interpolation - Interpolação + + Knife mode (split sample clips) + Modo lâmina (cortar clipes de amostra) - - Normalize - Normalização + + Edit mode (select and move) + - - - DynProcControlDialog - - INPUT - ENTRADA + + Timeline controls + - - Input gain: - Ganho de entrada: + + Bar insert controls + - - OUTPUT - SAÍDA + + Insert bar + - - Output gain: - Ganho de saída: + + Remove bar + - - ATTACK - ATAQUE + + Zoom controls + - - Peak attack time: + + + Zoom - - RELEASE - LANÇAMENTO + + Snap controls + - - Peak release time: + + + Clip snapping size - - - Reset wavegraph + + Toggle proportional snap on/off - - - Smooth wavegraph + + Base snapping size + + + lmms::gui::StepRecorderWidget - - - Increase wavegraph amplitude by 1 dB + + Hint - - - Decrease wavegraph amplitude by 1 dB + + Move recording curser using <Left/Right> arrows + + + lmms::gui::StereoEnhancerControlDialog - - Stereo mode: maximum - Modo estéreo: máximo + + WIDTH + - - Process based on the maximum of both stereo channels - Processo baseado no máximo de ambos canais estéreo + + Width: + + + + lmms::gui::StereoMatrixControlDialog - - Stereo mode: average - Modo estéreo: médio + + Left to Left Vol: + - - Process based on the average of both stereo channels + + Left to Right Vol: - - Stereo mode: unlinked - Modo estéreo: desvinculado + + Right to Left Vol: + - - Process each stereo channel independently - Processo de cada canal estéreo independentemente + + Right to Right Vol: + - DynProcControls + lmms::gui::SubWindow - - Input gain - Ganho de entrada + + Close + - - Output gain - Ganho de saída + + Maximize + - - Attack time - Tempo de ataque + + Restore + + + + lmms::gui::TapTempoView - - Release time - Tempo de lançamento + + 0 + - - Stereo mode - Modo Estéreo + + + Precision + - - - graphModel - - Graph - Gráfico + + Display in high precision + - - - KickerInstrument - - Start frequency - Frequência de partida + + 0.0 ms + - - End frequency - Frequência final + + Mute metronome + Silenciar metrônomo - - Length - Comprimento + + Mute + Silenciar - - Start distortion - + + BPM in milliseconds + BPM em milissegundos - - End distortion + + 0 ms - - Gain - Ganho + + Frequency of BPM + Frequência do BPM - - Envelope slope + + 0.0000 hz - - Noise - Ruído + + Reset + Resetar - - Click - Clique + + Reset counter and sidebar information + Resetar contador e informação da barra lateral - - Frequency slope + + Sync + Sincronizar + + + + Sync with project tempo + Sincronizar com o andamento do projeto + + + + %1 ms - - Start from note + + %1 hz + + + lmms::gui::TemplatesMenu - - End to note + + New from template - KickerInstrumentView + lmms::gui::TempoSyncBarModelEditor - - Start frequency: - Frequência de partida: + + + Tempo Sync + - - End frequency: - Frequência final: + + No Sync + - - Frequency slope: + + Eight beats - - Gain: - Ganho: + + Whole note + - - Envelope length: + + Half note - - Envelope slope: + + Quarter note - - Click: - Clique: + + 8th note + - - Noise: - Ruído: + + 16th note + - - Start distortion: + + 32nd note - - End distortion: + + Custom... - - - LadspaBrowserView - - - Available Effects - Efeitos Disponíveis + + Custom + - - - Unavailable Effects - Efeitos Indisponíveis + + Synced to Eight Beats + - - - Instruments - Instrumentos + + Synced to Whole Note + - - - Analysis Tools - Ferramentas de Análise + + Synced to Half Note + - - - Don't know - Sei lá.. + + Synced to Quarter Note + - - Type: - Tipo: + + Synced to 8th Note + - - - LadspaDescription - - Plugins - Plugins + + Synced to 16th Note + - - Description - Descrição + + Synced to 32nd Note + - LadspaPortDialog + lmms::gui::TempoSyncKnob - - Ports - Portas + + + Tempo Sync + - - Name - Nome + + No Sync + - - Rate - Taxa + + Eight beats + - - Direction - Direção + + Whole note + - - Type - Tipo + + Half note + - - Min < Default < Max - Min < Padrão < Máx + + Quarter note + - - Logarithmic - Logarítmico + + 8th note + - - SR Dependent - Dependente de SR + + 16th note + - - Audio - Áudio + + 32nd note + - - Control - Controle + + Custom... + - - Input - Entradas + + Custom + - - Output - Saídas + + Synced to Eight Beats + - - Toggled - Alternado + + Synced to Whole Note + + + + + Synced to Half Note + + + + + Synced to Quarter Note + - - Integer - Inteiro + + Synced to 8th Note + - - Float - Decimal + + Synced to 16th Note + - - - Yes - Sim + + Synced to 32nd Note + - Lb302Synth - - - VCF Cutoff Frequency - VCF - Frequência de corte - + lmms::gui::TimeDisplayWidget - - VCF Resonance - VCF - Ressonância - - - - VCF Envelope Mod - VCF - Modulação do Envelope + + Time units + - - VCF Envelope Decay - VCF - Decaimento do Envelope + + MIN + - - Distortion - Distorção + + SEC + - - Waveform - Forma de onda + + MSEC + - - Slide Decay - Decaimento gradual + + BAR + - - Slide - Gradual + + BEAT + - - Accent - Realce + + TICK + + + + lmms::gui::TimeLineWidget - - Dead - Morto + + Auto scrolling + - - 24dB/oct Filter - Filtro 24dB/oct + + Stepped auto scrolling + - - - Lb302SynthView - - Cutoff Freq: - Freq Corte: + + Continuous auto scrolling + - - Resonance: - Ressonância: + + Auto scrolling disabled + - - Env Mod: - Mod Env: + + Loop points + - - Decay: - Decaimento: + + After stopping go back to beginning + - - 303-es-que, 24dB/octave, 3 pole filter - 303-es-que, 24dB/octave, filtro 3 pole + + After stopping go back to position at which playing was started + - - Slide Decay: - Decaimento gradual: + + After stopping keep position + - - DIST: + + Hint - - Saw wave - Onda dente de serra + + Press <%1> to disable magnetic loop points. + - - Click here for a saw-wave. - Clique aqui para usar uma onda dente de serra. + + Set loop begin here + - - Triangle wave - Onda triangular + + Set loop end here + - - Click here for a triangle-wave. - Clique aqui para usar uma onda triangular. + + Loop edit mode (hold shift) + - - Square wave - Onda quadrada + + Dual-button + - - Click here for a square-wave. - Clique aqui para usar uma onda quadrada. + + Grab closest + - - Rounded square wave - Onda quadrada arredondada + + Handles + + + + lmms::gui::TrackContentWidget - - Click here for a square-wave with a rounded end. - Clique aqui para usar uma onda quadrada arredondada. + + Paste + + + + lmms::gui::TrackOperationsWidget - - Moog wave - Onda Moog + + Press <%1> while clicking on move-grip to begin a new drag'n'drop action. + - - Click here for a moog-like wave. - Clique aqui para usar uma onda tipo moog. + + Actions + - - Sine wave - Onda senoidal + + + Mute + - - Click for a sine-wave. - Clique aqui para usar uma onda senoidal. + + + Solo + - - - White noise wave - Ruído branco + + After removing a track, it can not be recovered. Are you sure you want to remove track "%1"? + - - Click here for an exponential wave. - Clique aqui para usar uma onda exponencial. + + Confirm removal + - - Click here for white-noise. - Clique aqui para usar um ruído branco. + + Don't ask again + - - Bandlimited saw wave + + Clone this track - - Click here for bandlimited saw wave. + + Remove this track - - Bandlimited square wave + + Clear this track - - Click here for bandlimited square wave. + + Channel %1: %2 - - Bandlimited triangle wave + + Assign to new Mixer Channel - - Click here for bandlimited triangle wave. + + Turn all recording on - - Bandlimited moog saw wave + + Turn all recording off - - Click here for bandlimited moog saw wave. + + Track color - - - MalletsInstrument - - Hardness - Dificuldade + + Change + - - Position - Posição + + Reset + - - Vibrato gain + + Pick random - - Vibrato frequency + + Reset clip colors + + + lmms::gui::TripleOscillatorView - - Stick mix + + Modulate phase of oscillator 1 by oscillator 2 - - Modulator - Modulador + + Modulate amplitude of oscillator 1 by oscillator 2 + - - Crossfade - Transição + + Mix output of oscillators 1 & 2 + - - LFO speed - LFO - Velocidade + + Synchronize oscillator 1 with oscillator 2 + - - LFO depth + + Modulate frequency of oscillator 1 by oscillator 2 - - ADSR - ADSR + + Modulate phase of oscillator 2 by oscillator 3 + - - Pressure - Pressão + + Modulate amplitude of oscillator 2 by oscillator 3 + - - Motion - Movimento + + Mix output of oscillators 2 & 3 + - - Speed - Velocidade + + Synchronize oscillator 2 with oscillator 3 + - - Bowed - De Arco + + Modulate frequency of oscillator 2 by oscillator 3 + - - Spread - Propagação + + Osc %1 volume: + - - Marimba - Marimba + + Osc %1 panning: + - - Vibraphone - Vibrafone + + Osc %1 coarse detuning: + - - Agogo - Agogo + + semitones + - - Wood 1 + + Osc %1 fine detuning left: - - Reso - Resso + + + cents + - - Wood 2 + + Osc %1 fine detuning right: - - Beats - Batidas + + Osc %1 phase-offset: + - - Two fixed + + + degrees - - Clump + + Osc %1 stereo phase-detuning: - - Tubular bells + + Sine wave - - Uniform bar + + Triangle wave - - Tuned bar + + Saw wave - - Glass - Taça + + Square wave + - - Tibetan bowl + + Moog-like saw wave - - - MalletsInstrumentView - - Instrument - Instrumento + + Exponential wave + - - Spread - Propagação + + White noise + Ruído branco - - Spread: - Propagação: + + User-defined wave + - - Missing files - Arquivos ausentes + + Use alias-free wavetable oscillators. + + + + lmms::gui::VecControlsDialog - - Your Stk-installation seems to be incomplete. Please make sure the full Stk-package is installed! + + HQ - - Hardness - Dificuldade + + Double the resolution and simulate continuous analog-like trace. + - - Hardness: - Dificuldade: + + Log. scale + - - Position - Posição + + Display amplitude on logarithmic scale to better see small values. + - - Position: - Posição: + + Persist. + - - Vibrato gain + + Trace persistence: higher amount means the trace will stay bright for longer time. - - Vibrato gain: + + Trace persistence + + + lmms::gui::VersionedSaveDialog - - Vibrato frequency + + Increment version number - - Vibrato frequency: + + Decrement version number - - Stick mix + + Save Options - - Stick mix: + + already exists. Do you want to replace it? + + + lmms::gui::VestigeInstrumentView - - Modulator - Modulador + + + Open VST plugin + Abrir plugin VST - - Modulator: - Modulador: + + Control VST plugin from LMMS host + - - Crossfade - Transição + + Open VST plugin preset + Abrir predefinição de plugin VST - - Crossfade: - Transição: + + Previous (-) + - - LFO speed - LFO - Velocidade + + Save preset + - - LFO speed: - Velocidade do LFO: + + Next (+) + - - LFO depth + + Show/hide GUI - - LFO depth: + + Turn off all notes - - ADSR - ADSR + + DLL-files (*.dll) + - - ADSR: + + EXE-files (*.exe) - - Pressure - Pressão + + SO-files (*.so) + - - Pressure: - Pressão: + + No VST plugin loaded + - - Speed - Velocidade + + Preset + - - Speed: - Velocidade: + + by + + + + + - VST plugin control + - ManageVSTEffectView + lmms::gui::VibedView - - - VST parameter control - - Controle de parâmetros de VST's + + Enable waveform + - - VST sync + + + Smooth waveform - - - Automated - Automatizado + + + Normalize waveform + - - Close - Fechar + + + Sine wave + - - - ManageVestigeInstrumentView - - - - VST plugin control - - Controle de plugins VST + + + Triangle wave + - - VST Sync - Sincronização VST + + + Saw wave + - - - Automated - Automatizado + + + Square wave + - - Close - Fechar + + + White noise + Ruído branco - - - OrganicInstrument - - Distortion - Distorção + + + User-defined wave + - - Volume - Volume + + String volume: + - - - OrganicInstrumentView - - Distortion: - Distorção: + + String stiffness: + - - Volume: - Volume: + + Pick position: + - - Randomise - Aleatorizar + + Pickup position: + - - - Osc %1 waveform: - Forma de Onda Osc %1: + + String panning: + - - Osc %1 volume: - Volume Osc %1: + + String detune: + - - Osc %1 panning: - Panorâmico Osc %1: + + String fuzziness: + - - Osc %1 stereo detuning + + String length: - - cents - centésimos + + Impulse Editor + - - Osc %1 harmonic: + + Impulse - - - PatchesDialog - - Qsynth: Channel Preset + + Enable/disable string - - Bank selector + + Octave - - Bank - Banco + + String + + + + lmms::gui::VstEffectControlDialog - - Program selector + + Show/hide - - Patch - Programação + + Control VST plugin from LMMS host + - - Name - Nome + + Open VST plugin preset + Abrir predefinição de plugin VST - - OK - OK + + Previous (-) + - - Cancel - Cancelar + + Next (+) + - - - Sf2Instrument - - Bank - Banco + + Save preset + - - Patch - Programação + + + Effect by: + - - Gain - Ganho + + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> + + + + lmms::gui::WatsynView - - Reverb - Reverberação + + + + + Volume + - - Reverb room size + + + + + Panning - - Reverb damping + + + + + Freq. multiplier - - Reverb width + + + + + Left detune - - Reverb level + + + + + + + + + cents - - Chorus - Chorus + + + + + Right detune + - - Chorus voices + + A-B Mix - - Chorus level + + Mix envelope amount - - Chorus speed + + Mix envelope attack - - Chorus depth + + Mix envelope hold - - A soundfont %1 could not be loaded. + + Mix envelope decay - - - Sf2InstrumentView - - - Open SoundFont file - Abrir o arquivo SoundFont + + Crosstalk + - - Choose patch + + Select oscillator A1 - - Gain: - Ganho: + + Select oscillator A2 + - - Apply reverb (if supported) - Aplicar reverberação (se suportado) + + Select oscillator B1 + - - Room size: + + Select oscillator B2 - - Damping: + + Mix output of A2 to A1 - - Width: - Largura: + + Modulate amplitude of A1 by output of A2 + - - - Level: + + Ring modulate A1 and A2 - - Apply chorus (if supported) - Aplicar chorus (se suportado) + + Modulate phase of A1 by output of A2 + - - Voices: + + Mix output of B2 to B1 - - Speed: - Velocidade: + + Modulate amplitude of B1 by output of B2 + - - Depth: - Precisão: + + Ring modulate B1 and B2 + - - SoundFont Files (*.sf2 *.sf3) + + Modulate phase of B1 by output of B2 - - - SfxrInstrument - - Wave + + + + + Draw your own waveform here by dragging your mouse on this graph. - - - StereoEnhancerControlDialog - - WIDTH + + Load waveform - - Width: - Largura: + + Load a waveform from a sample file + - - - StereoEnhancerControls - - Width - Largura + + Phase left + - - - StereoMatrixControlDialog - - Left to Left Vol: - Esq para Esq Vol: + + Shift phase by -15 degrees + - - Left to Right Vol: - Esq para Dir Vol: + + Phase right + - - Right to Left Vol: - Dir para Esq Vol: + + Shift phase by +15 degrees + - - Right to Right Vol: - Dir para Dir Vol: + + + Normalize + - - - StereoMatrixControls - - Left to Left - Esq para Esq + + + Invert + - - Left to Right - Esq para Dir + + + Smooth + - - Right to Left - Dir para Esq + + + Sine wave + - - Right to Right - Dir para Dir + + + + Triangle wave + - - - VestigeInstrument - - Loading plugin - Carregando plugin + + Saw wave + - - Please wait while loading the VST plugin... + + + Square wave - Vibed + lmms::gui::WaveShaperControlDialog - - String %1 volume - Cordas %1 volume + + INPUT + - - String %1 stiffness - Cordas %1 dureza + + Input gain: + - - Pick %1 position - Pegada %1 posição + + OUTPUT + - - Pickup %1 position - Super Pegada %1 posição + + Output gain: + - - String %1 panning + + + Reset wavegraph - - String %1 detune + + + Smooth wavegraph - - String %1 fuzziness + + + Increase wavegraph amplitude by 1 dB - - String %1 length + + + Decrease wavegraph amplitude by 1 dB - - Impulse %1 - Impulso %1 + + Clip input + - - String %1 + + Clip input signal to 0 dB - VibedView + lmms::gui::XpressiveView - - String volume: + + Draw your own waveform here by dragging your mouse on this graph. - - String stiffness: - Dureza da corda: - - - - Pick position: - Escolher pinçada: - - - - Pickup position: - Posição do captador: - - - - String panning: + + Select oscillator W1 - - String detune: + + Select oscillator W2 - - String fuzziness: + + Select oscillator W3 - - String length: + + Select output O1 - - Impulse + + Select output O2 - - Octave - Oitava + + Open help window + Abrir janela de ajuda - - Impulse Editor - Editor de Impulso + + + Sine wave + - - Enable waveform - Habilitar forma de onda + + + Moog-saw wave + - - Enable/disable string + + + Exponential wave - - String - Corda + + + Saw wave + - - - Sine wave - Onda senoidal + + + User-defined wave + - - + + Triangle wave - Onda triangular - - - - - Saw wave - Onda dente de serra + - - + + Square wave - Onda quadrada + - - + + White noise - + Ruído branco - - - User-defined wave + + WaveInterpolate - - - Smooth waveform + + ExpressionValid - - - Normalize waveform + + General purpose 1: - - - VoiceObject - - - Voice %1 pulse width - Voz %1 tamanho do pulso - - - Voice %1 attack - Voz %1 ataque + + General purpose 2: + - - Voice %1 decay - Voz %1 decaimento + + General purpose 3: + - - Voice %1 sustain - Voz %1 sustentação + + O1 panning: + - - Voice %1 release - Voz %1 relaxamento + + O2 panning: + - - Voice %1 coarse detuning - Voz %1 ajuste bruto + + Release transition: + - - Voice %1 wave shape - Voz %1 forma da onda + + Smoothness + + + + lmms::gui::ZynAddSubFxView - - Voice %1 sync - Voz %1 sincronizada + + Portamento: + - - Voice %1 ring modulate - Voz %1 modulada em anel + + PORT + - - Voice %1 filtered - Voz %1 filtrada + + Filter frequency: + - - Voice %1 test - Voz %1 teste + + FREQ + - - - WaveShaperControlDialog - - INPUT - ENTRADA + + Filter resonance: + - - Input gain: - Ganho de entrada: + + RES + - - OUTPUT - SAÍDA + + Bandwidth: + - - Output gain: - Ganho de saída: + + BW + - - - Reset wavegraph + + FM gain: - - - Smooth wavegraph + + FM GAIN - - - Increase wavegraph amplitude by 1 dB + + Resonance center frequency: - - - Decrease wavegraph amplitude by 1 dB + + RES CF - - Clip input + + Resonance bandwidth: - - Clip input signal to 0 dB + + RES BW - - - WaveShaperControls - - Input gain - Ganho de entrada + + Forward MIDI control changes + - - Output gain - Ganho de saída + + Show GUI + - + \ No newline at end of file diff --git a/data/locale/ro.ts b/data/locale/ro.ts index 58abbba9959..4823ca57ed4 100644 --- a/data/locale/ro.ts +++ b/data/locale/ro.ts @@ -5334,62 +5334,62 @@ Please make sure you have write permission to the file and the directory contain - MixerLine + MixerChannelView - + Channel send amount - + Move &left - + Move &right - + Rename &channel - + R&emove channel - + Remove &unused channels - + Set channel color - + Remove channel color - + Pick random channel color - MixerLineLcdSpinBox + MixerChannelLcdSpinBox - + Assign to: - + New mixer Channel diff --git a/data/locale/ru.ts b/data/locale/ru.ts index 73b7e06ad2e..5c3af4e83ff 100644 --- a/data/locale/ru.ts +++ b/data/locale/ru.ts @@ -1,4 +1,4 @@ - + AboutDialog @@ -63,8 +63,7 @@ If you're interested in translating LMMS in another language or want to imp Хотите перевести LMMS на другой язык или улучшить существующий перевод — всегда пожалуйста! Свяжитесь с командой переводчиков: https://www.transifex.com/lmms/teams/61632/ru/ https://matrix.to/#/#lmms.ru.team:matrix.org - -На русский язык переводили : +На русский язык переводили: Алексей Кузнецов (2006) Symbiants / OeAi (2014) @@ -82,954 +81,187 @@ Simple88 (2016) - AmplifierControlDialog - - - VOL - ГРОМ - - - - Volume: - Громкость: - - - - PAN - БАЛАНС - - - - Panning: - Баланс: - - - - LEFT - СЛЕВА - - - - Left gain: - Усиление левого канала: - - - - RIGHT - СПРАВА - - - - Right gain: - Усиление правого канала: - - - - AmplifierControls - - - Volume - Громкость - - - - Panning - Баланс - - - - Left gain - Усиление (Л) - - - - Right gain - Усиление (П) - - - - AudioAlsaSetupWidget - - - DEVICE - УСТРОЙСТВО - - - - CHANNELS - КАНАЛЫ - - - - AudioFileProcessorView - - - Open sample - Открыть сэмпл - - - - Reverse sample - Развернуть сэмпл - - - - Disable loop - Отключить петлю - - - - Enable loop - Включить петлю - - - - Enable ping-pong loop - Включить петлю «вперёд-назад» - - - - Continue sample playback across notes - Продолжить воспроизведение сэмпла по нотам - - - - Amplify: - Усиление: - - - - Start point: - Начальная точка: - - - - End point: - Конечная точка: - - - - Loopback point: - Точка возврата петли: - - - - AudioFileProcessorWaveView - - - Sample length: - Длительность сэмпла: - - - - AudioJack - - - JACK client restarted - JACK-клиент перезапущен - - - - LMMS was kicked by JACK for some reason. Therefore the JACK backend of LMMS has been restarted. You will have to make manual connections again. - LMMS не был подключен к JACK по какой-то причине, поэтому подключение LMMS к JACK было перезапущено. Вам придётся заново вручную создать соединения. - - - - JACK server down - JACK-сервер недоступен - - - - The JACK server seems to have been shutdown and starting a new instance failed. Therefore LMMS is unable to proceed. You should save your project and restart JACK and LMMS. - Возможно JACK-сервер был выключен и запуск нового процесса не удался, поэтому LMMS не может продолжить работу. Вам следует сохранить проект и перезапустить JACK и LMMS. - - - - Client name - Имя клиента - - - - Channels - Каналы - - - - AudioOss - - - Device - Устройство - + AboutJuceDialog - - Channels - Каналы + + About JUCE + - - - AudioPortAudio::setupWidget - - Backend - Интерфейс + + <b>About JUCE</b> + - - Device - Устройство + + This program uses JUCE version 3.x.x. + - - - AudioPulseAudio - - Device - Устройство + + JUCE is an open-source cross-platform C++ application framework for creating high quality desktop and mobile applications. + +The core JUCE modules (juce_audio_basics, juce_audio_devices, juce_core and juce_events) are permissively licensed under the terms of the ISC license. +Other modules are covered by a GNU GPL 3.0 license. + +Copyright (C) 2022 Raw Material Software Limited. + - - Channels - Каналы + + This program uses JUCE version + - AudioSdl::setupWidget + AudioDeviceSetupWidget - - Device - Устройство + + [System Default] + - AudioSndio - - - Device - Устройство - + CarlaAboutW - - Channels - Каналы + + About Carla + О Carla - - - AudioSoundIo::setupWidget - - Backend - Интерфейс + + About + О программе - - Device - Устройство + + About text here + О тексте здесь - - - AutomatableModel - - &Reset (%1%2) - &Сбросить (%1%2) + + Extended licensing here + Расширенное лицензирование здесь - - &Copy value (%1%2) - &Копировать значение (%1%2) + + Artwork + Художественное оформление - - &Paste value (%1%2) - &Вставить значение (%1%2) + + Using KDE Oxygen icon set, designed by Oxygen Team. + Использует набор значков KDE Oxygen, созданный Oxygen Team. - - &Paste value - &Вставить значение + + Contains some knobs, backgrounds and other small artwork from Calf Studio Gear, OpenAV and OpenOctave projects. + Содержит некоторые регуляторы, фоны и другие небольшие иллюстрации из проектов Calf Studio Gear, OpenAV и OpenOctave. - - Edit song-global automation - Изменить глобальную автоматизацию + + VST is a trademark of Steinberg Media Technologies GmbH. + VST является торговой маркой Steinberg Media Technologies GmbH. - - Remove song-global automation - Убрать глобальную автоматизацию + + Special thanks to António Saraiva for a few extra icons and artwork! + Отдельное спасибо Антониу Сараиве за несколько дополнительных иконок и иллюстраций! - - Remove all linked controls - Убрать всё присоединенное управление + + The LV2 logo has been designed by Thorsten Wilms, based on a concept from Peter Shorthose. + Логотип LV2 был разработан Торстеном Вильмсом на основе концепта Петера Шортозе. - - Connected to %1 - Соединено с «%1» + + MIDI Keyboard designed by Thorsten Wilms. + MIDI-клавиатура, разработанная Торстеном Уилмсом. - - Connected to controller - Соединено с контроллером + + Carla, Carla-Control and Patchbay icons designed by DoosC. + Иконки Carla, Carla-Control и Patchbay разработаны DoosC. - - Edit connection... - Изменить соединение… + + Features + Возможности - - Remove connection - Удалить соединение + + AU/AudioUnit: + AU/AudioUnit: - - Connect to controller... - Соединить с контроллером... + + LADSPA: + LADSPA: - - - AutomationEditor - - Edit Value - + + + + + + + + + TextLabel + ТекстоваяМетка - - New outValue - + + VST2: + VST2: - - New inValue - + + DSSI: + DSSI: - - Please open an automation clip with the context menu of a control! - Откройте редактор автоматизации через контекстное меню регулятора! + + LV2: + LV2: - - - AutomationEditorWindow - - Play/pause current clip (Space) - Игра/пауза текущей мелодии (Пробел) + + VST3: + VST3: - - Stop playing of current clip (Space) - Остановить воспроизведение текущего паттерна (пробел) + + OSC + OSC - - Edit actions - Панель правки + + Host URLs: + Адреса хостов: - - Draw mode (Shift+D) - Режим рисования (Shift+D) + + Valid commands: + Допустимые команды: - - Erase mode (Shift+E) - Режим стирания (Shift+E) + + valid osc commands here + допустимые команды osc здесь - - Draw outValues mode (Shift+C) - + + Example: + Пример: - - Flip vertically - Перевернуть вертикально + + License + Лицензия - - Flip horizontally - Перевернуть горизонтально - - - - Interpolation controls - Управление интерполяцией - - - - Discrete progression - Дискретная прогрессия - - - - Linear progression - Линейная прогрессия - - - - Cubic Hermite progression - Кубическая Эрмитова прогрессия - - - - Tension value for spline - Жёсткость на изгибе - - - - Tension: - Жёсткость: - - - - Zoom controls - Управление приближением - - - - Horizontal zooming - Горизонтальное приближение - - - - Vertical zooming - Вертикальное приближение - - - - Quantization controls - Управление квантованием - - - - Quantization - Квантование - - - - - Automation Editor - no clip - Редактор автоматизации — без паттерна - - - - - Automation Editor - %1 - Редактор автоматизации — %1 - - - - Model is already connected to this clip. - Модель уже подключена к этому паттерну. - - - - AutomationClip - - - Drag a control while pressing <%1> - Перетащите элемент управления, удерживая <%1> - - - - AutomationClipView - - - Open in Automation editor - Открыть в редакторе автоматизации - - - - Clear - Очистить - - - - Reset name - Сбросить название - - - - Change name - Переименовать - - - - Set/clear record - Установить/очистить запись - - - - Flip Vertically (Visible) - Перевернуть вертикально (Видимое) - - - - Flip Horizontally (Visible) - Перевернуть горизонтально (Видимое) - - - - %1 Connections - Соединения %1 - - - - Disconnect "%1" - Отсоединить «%1» - - - - Model is already connected to this clip. - Модель уже подключена к этому паттерну. - - - - AutomationTrack - - - Automation track - Дорожка автоматизации - - - - PatternEditor - - - Beat+Bassline Editor - Ритм+Бас Композитор - - - - Play/pause current beat/bassline (Space) - Игра/пауза текущей линии ритма/баса (пробел) - - - - Stop playback of current beat/bassline (Space) - Остановить воспроизведение текущей линии ритм-баса (ПРОБЕЛ) - - - - Beat selector - Выбор бита - - - - Track and step actions - Действия для дорожки или такта - - - - Add beat/bassline - Добавить ритм/бас - - - - Clone beat/bassline clip - - - - - Add sample-track - Добавить дорожку записи - - - - Add automation-track - Добавить дорожку автоматизации - - - - Remove steps - Убрать такты - - - - Add steps - Добавить такты - - - - Clone Steps - Клонировать такты - - - - PatternClipView - - - Open in Beat+Bassline-Editor - Открыть в Композиторе-Ритм+Баса - - - - Reset name - Сбросить название - - - - Change name - Переименовать - - - - PatternTrack - - - Beat/Bassline %1 - Ритм/Бас Линия %1 - - - - Clone of %1 - Копия %1 - - - - BassBoosterControlDialog - - - FREQ - ЧАСТ - - - - Frequency: - Частота: - - - - GAIN - УСИЛ - - - - Gain: - Усиление: - - - - RATIO - ОТНОШ - - - - Ratio: - Отношение: - - - - BassBoosterControls - - - Frequency - Частота - - - - Gain - Усиление - - - - Ratio - Отношение - - - - BitcrushControlDialog - - - IN - ВХ - - - - OUT - ВЫХ - - - - - GAIN - УСИЛ - - - - Input gain: - Входная мощность: - - - - NOISE - ШУМ - - - - Input noise: - Входящий шум: - - - - Output gain: - Выходная мощность: - - - - CLIP - СРЕЗ - - - - Output clip: - Выходная обрезка: - - - - Rate enabled - Частота выборки включена - - - - Enable sample-rate crushing - Включить дробление частоты дискретизации - - - - Depth enabled - Глубина включена - - - - Enable bit-depth crushing - Включить дробление битовой глубины - - - - FREQ - ЧАСТ - - - - Sample rate: - Частота сэмплирования: - - - - STEREO - СТЕРЕО - - - - Stereo difference: - Стерео разница: - - - - QUANT - КВАНТ - - - - Levels: - Уровни: - - - - BitcrushControls - - - Input gain - Входная мощность - - - - Input noise - Входной шум - - - - Output gain - Выходная мощность - - - - Output clip - Выходная обрезка - - - - Sample rate - Частота сэмплирования - - - - Stereo difference - Разница стерео - - - - Levels - Уровни - - - - Rate enabled - Частота выборки включена - - - - Depth enabled - Глубина включена - - - - CarlaAboutW - - - About Carla - О Carla - - - - About - О программе - - - - About text here - О тексте здесь - - - - Extended licensing here - - - - - Artwork - Художественное оформление - - - - Using KDE Oxygen icon set, designed by Oxygen Team. - Использует набор значков KDE Oxygen, созданный Oxygen Team. - - - - Contains some knobs, backgrounds and other small artwork from Calf Studio Gear, OpenAV and OpenOctave projects. - - - - - VST is a trademark of Steinberg Media Technologies GmbH. - VST является торговой маркой Steinberg Media Technologies GmbH. - - - - Special thanks to António Saraiva for a few extra icons and artwork! - - - - - The LV2 logo has been designed by Thorsten Wilms, based on a concept from Peter Shorthose. - - - - - MIDI Keyboard designed by Thorsten Wilms. - - - - - Carla, Carla-Control and Patchbay icons designed by DoosC. - - - - - Features - Возможности - - - - AU/AudioUnit: - - - - - LADSPA: - LADSPA: - - - - - - - - - - - TextLabel - - - - - VST2: - VST2: - - - - DSSI: - DSSI: - - - - LV2: - LV2: - - - - VST3: - VST3: - - - - OSC - - - - - Host URLs: - - - - - Valid commands: - - - - - valid osc commands here - - - - - Example: - Пример: - - - - License - Лицензия - - - + GNU GENERAL PUBLIC LICENSE Version 2, June 1991 @@ -1314,15049 +546,18225 @@ POSSIBILITY OF SUCH DAMAGES. - - OSC Bridge Version + + OSC Bridge Version + Версия OSC Bridge + + + + Plugin Version + Версия плагина + + + + <br>Version %1<br>Carla is a fully-featured audio plugin host%2.<br><br>Copyright (C) 2011-2019 falkTX<br> + <br>Версия %1<br>Carla — полнофункциональный хост аудио-плагинов%2.<br><br>Copyright © 2011–2019 falkTX<br> + + + + + (Engine not running) + (Движок не запущен) + + + + Everything! (Including LRDF) + Всё! (Включая LRDF) + + + + Everything! (Including CustomData/Chunks) + Всё! (Включая CustomData/Chunks) + + + + About 110&#37; complete (using custom extensions)<br/>Implemented Feature/Extensions:<ul><li>http://lv2plug.in/ns/ext/atom</li><li>http://lv2plug.in/ns/ext/buf-size</li><li>http://lv2plug.in/ns/ext/data-access</li><li>http://lv2plug.in/ns/ext/event</li><li>http://lv2plug.in/ns/ext/instance-access</li><li>http://lv2plug.in/ns/ext/log</li><li>http://lv2plug.in/ns/ext/midi</li><li>http://lv2plug.in/ns/ext/options</li><li>http://lv2plug.in/ns/ext/parameters</li><li>http://lv2plug.in/ns/ext/port-props</li><li>http://lv2plug.in/ns/ext/presets</li><li>http://lv2plug.in/ns/ext/resize-port</li><li>http://lv2plug.in/ns/ext/state</li><li>http://lv2plug.in/ns/ext/time</li><li>http://lv2plug.in/ns/ext/uri-map</li><li>http://lv2plug.in/ns/ext/urid</li><li>http://lv2plug.in/ns/ext/worker</li><li>http://lv2plug.in/ns/extensions/ui</li><li>http://lv2plug.in/ns/extensions/units</li><li>http://home.gna.org/lv2dynparam/rtmempool/v1</li><li>http://kxstudio.sf.net/ns/lv2ext/external-ui</li><li>http://kxstudio.sf.net/ns/lv2ext/programs</li><li>http://kxstudio.sf.net/ns/lv2ext/props</li><li>http://kxstudio.sf.net/ns/lv2ext/rtmempool</li><li>http://ll-plugins.nongnu.org/lv2/ext/midimap</li><li>http://ll-plugins.nongnu.org/lv2/ext/miditype</li></ul> + Завершено около 110&#37; (с пользовательскими расширениями)<br/>Реализованные функции и расширения:<ul><li>http://lv2plug.in/ns/ext/atom</li><li>http://lv2plug.in/ns/ext/buf-size</li><li>http://lv2plug.in/ns/ext/data-access</li><li>http://lv2plug.in/ns/ext/event</li><li>http://lv2plug.in/ns/ext/instance-access</li><li>http://lv2plug.in/ns/ext/log</li><li>http://lv2plug.in/ns/ext/midi</li><li>http://lv2plug.in/ns/ext/options</li><li>http://lv2plug.in/ns/ext/parameters</li><li>http://lv2plug.in/ns/ext/port-props</li><li>http://lv2plug.in/ns/ext/presets</li><li>http://lv2plug.in/ns/ext/resize-port</li><li>http://lv2plug.in/ns/ext/state</li><li>http://lv2plug.in/ns/ext/time</li><li>http://lv2plug.in/ns/ext/uri-map</li><li>http://lv2plug.in/ns/ext/urid</li><li>http://lv2plug.in/ns/ext/worker</li><li>http://lv2plug.in/ns/extensions/ui</li><li>http://lv2plug.in/ns/extensions/units</li><li>http://home.gna.org/lv2dynparam/rtmempool/v1</li><li>http://kxstudio.sf.net/ns/lv2ext/external-ui</li><li>http://kxstudio.sf.net/ns/lv2ext/programs</li><li>http://kxstudio.sf.net/ns/lv2ext/props</li><li>http://kxstudio.sf.net/ns/lv2ext/rtmempool</li><li>http://ll-plugins.nongnu.org/lv2/ext/midimap</li><li>http://ll-plugins.nongnu.org/lv2/ext/miditype</li></ul> + + + + + + Using Juce host + Использование узла Juce + + + + About 85% complete (missing vst bank/presets and some minor stuff) + Примерно на 85% (не хватает vst банка/пресетов и некоторых мелочей) + + + + CarlaHostW + + + MainWindow + ГлавноеОкно + + + + Rack + Стойка + + + + Patchbay + Патчбэй + + + + Logs + Журналы + + + + Loading... + Загрузка… + + + + Save + + + + + Clear + + + + + Ctrl+L + + + + + Auto-Scroll + + + + + Buffer Size: + Размер буфера: + + + + Sample Rate: + Частота сэмплирования: + + + + ? Xruns + + + + + DSP Load: %p% + Загрузка DSP: %p% + + + + &File + &Файл + + + + &Engine + Движо&к + + + + &Plugin + &Плагин + + + + Macros (all plugins) + Макросы (все плагины) + + + + &Canvas + &Холст + + + + Zoom + Масштаб + + + + &Settings + &Настройки + + + + &Help + &Справка + + + + Tool Bar + + + + + Disk + Диск + + + + + Home + Home + + + + Transport + + + + + Playback Controls + Элементы управления воспроизведением + + + + Time Information + Информации о времени + + + + Frame: + Кадр: + + + + 000'000'000 + 000'000'000 + + + + Time: + Время: + + + + 00:00:00 + 00:00:00 + + + + BBT: + + + + + 000|00|0000 + 000|00|0000 + + + + Settings + Настройки + + + + BPM + BPM + + + + Use JACK Transport + Использовать транспорт JACK + + + + Use Ableton Link + Использовать Ableton Link + + + + &New + &Создать + + + + Ctrl+N + Ctrl+N + + + + &Open... + &Открыть... + + + + + Open... + Открыть… + + + + Ctrl+O + Ctrl+O + + + + &Save + Со&хранить + + + + Ctrl+S + Ctrl+S + + + + Save &As... + Сохранить &как... + + + + + Save As... + Сохранить как… + + + + Ctrl+Shift+S + Ctrl+Shift+S + + + + &Quit + &Выход + + + + Ctrl+Q + Ctrl+Q + + + + &Start + &Начать + + + + F5 + F5 + + + + St&op + Ст&оп + + + + F6 + F6 + + + + &Add Plugin... + &Добавить плагин… + + + + Ctrl+A + Ctrl+A + + + + &Remove All + &Удалить все + + + + Enable + Включить + + + + Disable + Отключить + + + + 0% Wet (Bypass) + + + + + 100% Wet + + + + + 0% Volume (Mute) + 0% громкости (приглушить) + + + + 100% Volume + 100% громкости + + + + Center Balance + Центрировать баланс + + + + &Play + &Играть + + + + Ctrl+Shift+P + Ctrl+Shift+P + + + + &Stop + &Стоп + + + + Ctrl+Shift+X + Ctrl+Shift+X + + + + &Backwards + &Назад + + + + Ctrl+Shift+B + Ctrl+Shift+B + + + + &Forwards + &Вперёд + + + + Ctrl+Shift+F + Ctrl+Shift+F + + + + &Arrange + Ра&сположить + + + + Ctrl+G + Ctrl+G + + + + + &Refresh + &Обновить + + + + Ctrl+R + Ctrl+R + + + + Save &Image... + Сохранить &изображение… + + + + Auto-Fit + Вписать + + + + Zoom In + Увеличить + + + + Ctrl++ + Ctrl++ + + + + Zoom Out + Уменьшить + + + + Ctrl+- + Ctrl+- + + + + Zoom 100% + Исходный размер + + + + Ctrl+1 + Ctrl+1 + + + + Show &Toolbar + Показать панель инструментов + + + + &Configure Carla + &Настроить Carla + + + + &About + &О программе + + + + About &JUCE + О &JUCE + + + + About &Qt + О &Qt + + + + Show Canvas &Meters + + + + + Show Canvas &Keyboard + + + + + Show Internal + Показать внутренний + + + + Show External + Показать внешний + + + + Show Time Panel + Показать панель времени + + + + Show &Side Panel + Показать боковую панель + + + + Ctrl+P + + + + + &Connect... + &Подключить… + + + + Compact Slots + Компактные слоты + + + + Expand Slots + Развернуть слоты + + + + Perform secret 1 + Выполнить секрет 1 + + + + Perform secret 2 + Выполнить секрет 2 + + + + Perform secret 3 + Выполнить секрет 3 + + + + Perform secret 4 + Выполнить секрет 4 + + + + Perform secret 5 + Выполнить секрет 5 + + + + Add &JACK Application... + Добавить приложение JACK + + + + &Configure driver... + &Настроить драйвер... + + + + Panic + Паника + + + + Open custom driver panel... + Открыть панель пользовательского драйвера… + + + + Save Image... (2x zoom) + + + + + Save Image... (4x zoom) + + + + + Copy as Image to Clipboard + + + + + Ctrl+Shift+C + + + + + CarlaHostWindow + + + Export as... + Экспортировать как… + + + + + + + Error + Ошибка + + + + Failed to load project + Не удалось загрузить проект + + + + Failed to save project + Не удалось сохранить проект + + + + Quit + Покинуть + + + + Are you sure you want to quit Carla? + Закрыть Carla? + + + + Could not connect to Audio backend '%1', possible reasons: +%2 + + + + + Could not connect to Audio backend '%1' + + + + + Warning + Предупреждение + + + + There are still some plugins loaded, you need to remove them to stop the engine. +Do you want to do this now? + Имеются загруженные плагины. Нужно удалить их, чтобы остановить движок. +Сделать это сейчас? + + + + CarlaSettingsW + + + Settings + Настройки + + + + main + главное + + + + canvas + холст + + + + engine + движок + + + + osc + + + + + file-paths + пути-файлов + + + + plugin-paths + пути-плагинов + + + + wine + wine + + + + experimental + экспериментально + + + + Widget + Виджет + + + + + Main + Главное + + + + + Canvas + Холсты + + + + + Engine + Движок + + + + File Paths + Пути файлов + + + + Plugin Paths + Пути плагинов + + + + Wine + Wine + + + + + Experimental + Экспериментально + + + + <b>Main</b> + <b>Главное</b> + + + + Paths + Пути + + + + Default project folder: + Стандартная папка проекта: + + + + Interface + Интерфейс + + + + Use "Classic" as default rack skin + + + + + Interface refresh interval: + Интервал обновления интерфейса: + + + + + ms + мс + + + + Show console output in Logs tab (needs engine restart) + Показывать вывод консоли на вкладке "Журналы" (требуется перезапуск движка) + + + + Show a confirmation dialog before quitting + Показать окно подтверждения перед выходом + + + + + Theme + Тема + + + + Use Carla "PRO" theme (needs restart) + Использовать тему Carla “PRO” (требуется перезагрузка) + + + + Color scheme: + Цветовая схема: + + + + Black + Чёрная + + + + System + Системная + + + + Enable experimental features + Включить экспериментальные функции + + + + <b>Canvas</b> + <b>Холст</b> + + + + Bezier Lines + Кривые Безье + + + + Theme: + Тема: + + + + Size: + Размер: + + + + 775x600 + 775×600 + + + + 1550x1200 + 1550×1200 + + + + 3100x2400 + 3100×2400 + + + + 4650x3600 + 4650×3600 + + + + 6200x4800 + 6200×4800 + + + + 12400x9600 + + + + + Options + Опции + + + + Auto-hide groups with no ports + Автоматическое скрытие групп без портов + + + + Auto-select items on hover + Автоматический выбор элементов при наведении + + + + Basic eye-candy (group shadows) + + + + + Render Hints + Подсказки по рендерингу + + + + Anti-Aliasing + Сглаживание + + + + Full canvas repaints (slower, but prevents drawing issues) + Полная перерисовка холста (медленно, но предотвращает проблемы с рисованием) + + + + <b>Engine</b> + <b>Движок</b> + + + + + Core + Ядро + + + + Single Client + Один клиент + + + + Multiple Clients + + + + + + Continuous Rack + + + + + + Patchbay + Патчбэй + + + + Audio driver: + Звуковой драйвер: + + + + Process mode: + Режим обработки: + + + + + + + Maximum number of parameters to allow in the built-in 'Edit' dialog + Максимальное количество параметров, разрешенных во встроенном диалоге 'Редактировать' + + + + Max Parameters: + Макс. параметров: + + + + ... + + + + + Reset Xrun counter after project load + Сбрасывать счётчик Xrun после загрузки проекта + + + + Plugin UIs + Оболочки плагинов + + + + + How much time to wait for OSC GUIs to ping back the host + + + + + UI Bridge Timeout: + + + + + Use OSC-GUI bridges when possible, this way separating the UI from DSP code + + + + + Use UI bridges instead of direct handling when possible + + + + + Make plugin UIs always-on-top + + + + + Make plugin UIs appear on top of Carla (needs restart) + + + + + NOTE: Plugin-bridge UIs cannot be managed by Carla on macOS + + + + + + Restart the engine to load the new settings + Перезапустите движок, чтобы загрузить новые настройки + + + + <b>OSC</b> + + + + + Enable OSC + Включить OSC + + + + Enable TCP port + Включить порт TCP + + + + + Use specific port: + Использовать указанный порт: + + + + Overridden by CARLA_OSC_TCP_PORT env var + + + + + + Use randomly assigned port + + + + + Enable UDP port + Включить порт UDP + + + + Overridden by CARLA_OSC_UDP_PORT env var + + + + + DSSI UIs require OSC UDP port enabled + + + + + <b>File Paths</b> + <b>Пути файлов</b> + + + + Audio + Аудио + + + + MIDI + MIDI + + + + Used for the "audiofile" plugin + + + + + Used for the "midifile" plugin + + + + + + Add... + Добавить… + + + + + Remove + Удалить + + + + + Change... + Изменить… + + + + <b>Plugin Paths</b> + <b>Пути плагинов</b> + + + + LADSPA + LADSPA + + + + DSSI + DSSI + + + + LV2 + LV2 + + + + VST2 + VST2 + + + + VST3 + VST3 + + + + SF2/3 + SF2/3 + + + + SFZ + SFZ + + + + JSFX + + + + + CLAP + + + + + Restart Carla to find new plugins + Перезапустите Carla, чтобы найти новые плагины + + + + <b>Wine</b> + <b>Wine</b> + + + + Executable + Исполняемый + + + + Path to 'wine' binary: + + + + + Prefix + Префикс + + + + Auto-detect Wine prefix based on plugin filename + Автоматически определять префикс Wine на основе имени файла плагина + + + + Fallback: + Запасной: + + + + Note: WINEPREFIX env var is preferred over this fallback + + + + + Realtime Priority + Приоритет в реальном времени + + + + Base priority: + Базовый приоритет: + + + + WineServer priority: + + + + + These options are not available for Carla as plugin + + + + + <b>Experimental</b> + <b>Экспериментально</b> + + + + Experimental options! Likely to be unstable! + Экспериментальные возможности! Скорее всего, будут нестабильными! + + + + Enable plugin bridges + Включить мосты для плагина + + + + Enable Wine bridges + + + + + Enable jack applications + + + + + Export single plugins to LV2 + Экспорт отдельных плагинов в LV2 + + + + Use system/desktop-theme icons (needs restart) + + + + + Load Carla backend in global namespace (NOT RECOMMENDED) + + + + + Fancy eye-candy (fade-in/out groups, glow connections) + Модное (затухания/появления групп, светящиеся подключения) + + + + Use OpenGL for rendering (needs restart) + + + + + High Quality Anti-Aliasing (OpenGL only) + Высококачественное сглаживание (только OpenGL) + + + + Render Ardour-style "Inline Displays" + + + + + Force mono plugins as stereo by running 2 instances at the same time. +This mode is not available for VST plugins. + Принудительное преобразование монофонических плагинов в стереофонические путем одновременного запуска двух экземпляров. +Этот режим недоступен для VST-плагинов. + + + + Force mono plugins as stereo + Принудительное преобразование моно плагинов в стерео + + + + When enabled, Carla will try to prevent plugins from doing things that might mess up the audio or cause xruns, such as fork(), gtk_init() and similar. + + + + + Prevent unsafe calls from plugins (needs restart) + + + + + Run plugins in a separate process, so if they crash it does not affect Carla. +Plugins get automatically deactivated in such cases. +Reactvate them to start the process again, with the last saved state applied to it. + + + + + Run plugins in bridge mode when possible + По возможности запускать плагины в режиме моста + + + + + + + Add Path + Добавить путь + + + + Dialog + + + Carla Control - Connect + + + + + Remote setup + Удалённая настройка + + + + UDP Port: + Порт UDP: + + + + Remote host: + Удалённый хост: + + + + TCP Port: + Порт TCP: + + + + Set value + Установить значение + + + + TextLabel + ТекстоваяМетка + + + + Scale Points + + + + + DriverSettingsW + + + Driver Settings + Параметры драйвера + + + + Device: + Устройство: + + + + Buffer size: + Размер буфера: + + + + Sample rate: + Частота сэмплирования: + + + + Triple buffer + Тройной буфер + + + + Show Driver Control Panel + + + + + Restart the engine to load the new settings + Перезапустите движок, чтобы загрузить новые настройки + + + + ExportProjectDialog + + + Export project + Экспорт проекта + + + + Export as loop (remove extra bar) + Экспортировать как петлю (убрать лишний такт) + + + + Export between loop markers + Экспорт между метками петли + + + + Render Looped Section: + Рендерить закольцованную секцию + + + + time(s) + время(с) + + + + File format settings + Настройки формата файла + + + + File format: + Формат файла: + + + + Sampling rate: + Частота сэмплирования: + + + + 44100 Hz + 44,1 кГц + + + + 48000 Hz + 48 кГц + + + + 88200 Hz + 88,2 кГц + + + + 96000 Hz + 96 кГц + + + + 192000 Hz + 192 кГц + + + + Bit depth: + Глубина бита: + + + + 16 Bit integer + 16-битное целое число + + + + 24 Bit integer + 24-битное целое число + + + + 32 Bit float + 32 Bit с запятой + + + + Stereo mode: + Режим стерео: + + + + Mono + Моно + + + + Stereo + Стерео + + + + Joint stereo + Объединённое стерео + + + + Compression level: + Уровень компрессии: + + + + Bitrate: + Битрейт: + + + + 64 KBit/s + 64 кбит/с + + + + 128 KBit/s + 128 кбит/с + + + + 160 KBit/s + 160 кбит/с + + + + 192 KBit/s + 192 кбит/с + + + + 256 KBit/s + 256 кбит/с + + + + 320 KBit/s + 320 кбит/с + + + + Use variable bitrate + Переменный битрейт + + + + Quality settings + Настройки качества + + + + Interpolation: + Интерполяция: + + + + Zero order hold + Удержание нулевого порядка + + + + Sinc worst (fastest) + Sinc худший (быстрее) + + + + Sinc medium (recommended) + Sinc средний (рекомендовано) + + + + Sinc best (slowest) + Sinc лучший (медленно) + + + + Start + Начать + + + + Cancel + Отмена + + + + InstrumentFunctionNoteStacking + + + octave + Октава + + + + + Major + Мажорный + + + + Majb5 + Majb5 + + + + minor + минорный + + + + minb5 + minb5 + + + + sus2 + sus2 + + + + sus4 + sus4 + + + + aug + aug + + + + augsus4 + augsus4 + + + + tri + tri + + + + 6 + 6 + + + + 6sus4 + 6sus4 + + + + 6add9 + 6add9 + + + + m6 + m6 + + + + m6add9 + m6add9 + + + + 7 + 7 + + + + 7sus4 + 7sus4 + + + + 7#5 + 7#5 + + + + 7b5 + 7b5 + + + + 7#9 + 7#9 + + + + 7b9 + 7b9 + + + + 7#5#9 + 7#5#9 + + + + 7#5b9 + 7#5b9 + + + + 7b5b9 + 7b5b9 + + + + 7add11 + 7add11 + + + + 7add13 + 7add13 + + + + 7#11 + 7#11 + + + + Maj7 + Maj7 + + + + Maj7b5 + Maj7b5 + + + + Maj7#5 + Maj7#5 + + + + Maj7#11 + Maj7#11 + + + + Maj7add13 + Maj7add13 + + + + m7 + m7 + + + + m7b5 + m7b5 + + + + m7b9 + m7b9 + + + + m7add11 + m7add11 + + + + m7add13 + m7add13 + + + + m-Maj7 + m-Maj7 + + + + m-Maj7add11 + m-Maj7add11 + + + + m-Maj7add13 + m-Maj7add13 + + + + 9 + 9 + + + + 9sus4 + 9sus4 + + + + add9 + add9 + + + + 9#5 + 9#5 + + + + 9b5 + 9b5 + + + + 9#11 + 9#11 + + + + 9b13 + 9b13 + + + + Maj9 + Maj9 + + + + Maj9sus4 + Maj9sus4 + + + + Maj9#5 + Maj9#5 + + + + Maj9#11 + Maj9#11 + + + + m9 + m9 + + + + madd9 + madd9 + + + + m9b5 + m9b5 + + + + m9-Maj7 + m9-Maj7 + + + + 11 + 11 + + + + 11b9 + 11b9 + + + + Maj11 + Maj11 + + + + m11 + m11 + + + + m-Maj11 + m-Maj11 + + + + 13 + 13 + + + + 13#9 + 13#9 + + + + 13b9 + 13b9 + + + + 13b5b9 + 13b5b9 + + + + Maj13 + Maj13 + + + + m13 + m13 + + + + m-Maj13 + m-Maj13 + + + + Harmonic minor + Гармонический минор + + + + Melodic minor + Мелодический минор + + + + Whole tone + Целый тон + + + + Diminished + Пониженный + + + + Major pentatonic + Мажорная пентатоника + + + + Minor pentatonic + Минорная пентатоника + + + + Jap in sen + Японский лад Ин Сен + + + + Major bebop + Мажор бибоп + + + + Dominant bebop + Бибоп доминанта + + + + Blues + Блюз + + + + Arabic + Арабский + + + + Enigmatic + Загадочный + + + + Neopolitan + Неополитанский + + + + Neopolitan minor + Неополитанский минор + + + + Hungarian minor + Венгерский минор + + + + Dorian + Дорийский лад + + + + Phrygian + Фригийский лад + + + + Lydian + Лидийский лад + + + + Mixolydian + Миксолидийский лад + + + + Aeolian + Эолийский лад + + + + Locrian + Локрийский лад + + + + Minor + Минор + + + + Chromatic + Хроматический + + + + Half-Whole Diminished + Вполовину уменьшенный + + + + 5 + 5 + + + + Phrygian dominant + Фригийская доминанта + + + + Persian + Персидский + + + + InstrumentSoundShaping + + + VOLUME + ГРОМКОСТЬ + + + + Volume + Громкость + + + + CUTOFF + CUTOFF + + + + Cutoff frequency + Срез частоты + + + + RESO + РЕЗО + + + + Resonance + Резонанс + + + + JackAppDialog + + + Add JACK Application + + + + + Note: Features not implemented yet are greyed out + + + + + Application + + + + + Name: + + + + + Application: + + + + + From template + + + + + Custom + + + + + Template: + + + + + Command: + + + + + Setup + + + + + Session Manager: + + + + + None + + + + + Audio inputs: + + + + + MIDI inputs: + + + + + Audio outputs: + + + + + MIDI outputs: + + + + + Take control of main application window + + + + + Workarounds + + + + + Wait for external application start (Advanced, for Debug only) + + + + + Capture only the first X11 Window + + + + + Use previous client output buffer as input for the next client + + + + + Simulate 16 JACK MIDI outputs, with MIDI channel as port index + + + + + Error here + + + + + NSM applications cannot use abstract or absolute paths + + + + + NSM applications cannot use CLI arguments + + + + + You need to save the current Carla project before NSM can be used + + + + + JuceAboutW + + + This program uses JUCE version %1. + Эта программа использует JUCE версии %1. + + + + MidiPatternW + + + MIDI Pattern + Шаблон MIDI + + + + Time Signature: + Временная сигнатура: + + + + + + 1/4 + 1/4 + + + + 2/4 + 2/4 + + + + 3/4 + 3/4 + + + + 4/4 + 4/4 + + + + 5/4 + 5/4 + + + + 6/4 + 6/4 + + + + Measures: + + + + + + + 1 + 1 + + + + 2 + 2 + + + + 3 + 3 + + + + 4 + 4 + + + + 5 + 5 + + + + 6 + 6 + + + + 7 + 7 + + + + 8 + 8 + + + + 9 + 9 + + + + 10 + 10 + + + + 11 + 11 + + + + 12 + 12 + + + + 13 + 13 + + + + 14 + 14 + + + + 15 + 15 + + + + 16 + 16 + + + + Default Length: + + + + + + 1/16 + 1/16 + + + + + 1/15 + 1/15 + + + + + 1/12 + 1/12 + + + + + 1/9 + 1/9 + + + + + 1/8 + 1/8 + + + + + 1/6 + 1/6 + + + + + 1/3 + 1/3 + + + + + 1/2 + 1/2 + + + + Quantize: + Квантовать: + + + + &File + &Файл + + + + &Edit + &Правка + + + + &Quit + В&ыход + + + + Esc + + + + + &Insert Mode + + + + + F + + + + + &Velocity Mode + + + + + D + Ре-диез D + + + + Select All + Выбрать всё + + + + A + Ля диез A + + + + PatchesDialog + + + + Qsynth: Channel Preset + Qsynth: преднастройка канала + + + + + Bank selector + Выбор банка + + + + + Bank + Банк + + + + + Program selector + Выбор программы + + + + + Patch + Патч + + + + + Name + Имя + + + + + OK + ОК + + + + + Cancel + Отмена + + + + PluginBrowser + + + no description + описание отсутствует + + + + A native amplifier plugin + Родной плагин усилителя + + + + Simple sampler with various settings for using samples (e.g. drums) in an instrument-track + Простой сэмплер с разными установками по использованию сэмплов (как барабаны) в инструментальной дорожке + + + + Boost your bass the fast and simple way + Накачай свой бас быстро и просто + + + + Customizable wavetable synthesizer + Настраиваемый синтезатор звукозаписей (wavetable) + + + + An oversampling bitcrusher + Бит-дробилка с передискретизацией + + + + Carla Patchbay Instrument + Инструмент Carla Patchbay + + + + Carla Rack Instrument + Инструментальная стойка Carla + + + + A dynamic range compressor. + + + + + A 4-band Crossover Equalizer + 4-полосный переходный эквалайзер + + + + A native delay plugin + Встроенный плагин задержки + + + + A Dual filter plugin + Плагин двойного фильтра + + + + plugin for processing dynamics in a flexible way + Плагин для гибкой обработки динамики + + + + A native eq plugin + Встроенный плагин эквалайзера + + + + A native flanger plugin + Встроенный плагин фланжера + + + + Emulation of GameBoy (TM) APU + Эмуляция GameBoy™ APU + + + + Player for GIG files + Проигрыватель GIG-файлов + + + + Filter for importing Hydrogen files into LMMS + Фильтр для импорта файлов Hydrogen в LMMS + + + + Versatile drum synthesizer + Универсальный барабанный синтезатор + + + + List installed LADSPA plugins + Показать установленные модули LADSPA + + + + plugin for using arbitrary LADSPA-effects inside LMMS. + Плагин для использования произвольных LADSPA-эффектов внутри LMMS. + + + + Incomplete monophonic imitation TB-303 + + + + + plugin for using arbitrary LV2-effects inside LMMS. + + + + + plugin for using arbitrary LV2 instruments inside LMMS. + + + + + Filter for exporting MIDI-files from LMMS + Фильтр для экспорта MIDI-файлов из LMMS + + + + Filter for importing MIDI-files into LMMS + Фильтр для импорта MIDI-файлов в LMMS + + + + Monstrous 3-oscillator synth with modulation matrix + Чудовищный 3-осциляторный синт с матрицей модуляции + + + + A multitap echo delay plugin + Плагин многократной задержки эха + + + + A NES-like synthesizer + Синтезатор типа NES + + + + 2-operator FM Synth + 2-параметровый FM-синт + + + + Additive Synthesizer for organ-like sounds + Синтезатор звуков вроде органа + + + + GUS-compatible patch instrument + Патч-инструмент, совместимый с GUS + + + + Plugin for controlling knobs with sound peaks + Модуль для установки значений регуляторов по пикам громкости + + + + Reverb algorithm by Sean Costello + Алгоритм реверберации Шона Костелло + + + + Player for SoundFont files + Проигрыватель файлов SoundFont + + + + LMMS port of sfxr + LMMS-порт SFXR + + + + Emulation of the MOS6581 and MOS8580 SID. +This chip was used in the Commodore 64 computer. + Эмуляция SID MOS6581 и MOS8580. +Этот чип использовался в компьютере Commodore 64. + + + + A graphical spectrum analyzer. + Графический анализатор спектра + + + + Plugin for enhancing stereo separation of a stereo input file + Модуль, усиливающий разницу между каналами стереозаписи + + + + Plugin for freely manipulating stereo output + Модуль для произвольного управления стереовыходом + + + + Tuneful things to bang on + Мелодичные ударные + + + + Three powerful oscillators you can modulate in several ways + Три мощных осциллятора, модулируемые несколькими способами + + + + A stereo field visualizer. + + + + + VST-host for using VST(i)-plugins within LMMS + VST-хост для поддержки модулей VST(i) в LMMS + + + + Vibrating string modeler + Моделирование вибрирующих струн + + + + plugin for using arbitrary VST effects inside LMMS. + Плагин для использования любых VST-эффектов в LMMS + + + + 4-oscillator modulatable wavetable synth + 4-осцилляторный модулируемый волновой синтезатор + + + + plugin for waveshaping + Плагин для сглаживания волн + + + + Mathematical expression parser + Анализатор математических выражений + + + + Embedded ZynAddSubFX + Встроенный ZynAddSubFX + + + + An all-pass filter allowing for extremely high orders. + + + + + Granular pitch shifter + + + + + Upwards/downwards multiband compression plugin powered by the eldritch elder god LOMMUS. + + + + + Basic Slicer + + + + + Tap to the beat + + + + + PluginEdit + + + Plugin Editor + Редактор плагинов + + + + Edit + Правка + + + + Control + Контроль + + + + MIDI Control Channel: + + + + + N + N + + + + Output dry/wet (100%) + + + + + Output volume (100%) + Выходная громкость (100 %) + + + + Balance Left (0%) + + + + + + Balance Right (0%) + + + + + Use Balance + + + + + Use Panning + + + + + Settings + Настройки + + + + Use Chunks + + + + + Audio: + Аудио: + + + + Fixed-Size Buffer + Буфер фиксированного размера + + + + Force Stereo (needs reload) + + + + + MIDI: + MIDI: + + + + Map Program Changes + + + + + Send Notes + + + + + Send Bank/Program Changes + + + + + Send Control Changes + + + + + Send Channel Pressure + + + + + Send Note Aftertouch + + + + + Send Pitchbend + + + + + Send All Sound/Notes Off + + + + + +Plugin Name + + +Название плагина + + + + + Program: + Программа: + + + + MIDI Program: + + + + + Save State + Сохранить состояние + + + + Load State + Загрузить состояние + + + + Information + Информация + + + + Label/URI: + Метка/адрес: + + + + Name: + Название: + + + + Type: + Тип: + + + + Maker: + Автор: + + + + Copyright: + Авторское право: + + + + Unique ID: + Уникальный ИД: + + + + PluginFactory + + + Plugin not found. + Плагин не найден. + + + + LMMS plugin %1 does not have a plugin descriptor named %2! + Плагин LMMS «%1» не имеет дескриптора с именем «%2»! + + + + PluginListDialog + + + Carla - Add New + + + + + Requirements + + + + + With Custom GUI + + + + + With CV Ports + + + + + Real-time safe only + + + + + Stereo only + + + + + With Inline Display + + + + + Favorites only + + + + + (Number of Plugins go here) + + + + + &Add Plugin + + + + + Cancel + + + + + Refresh + + + + + Reset filters + + + + + + + + + + + + + + + + + + + + TextLabel + + + + + Format: - - Plugin Version - Версия плагина + + Architecture: + - - <br>Version %1<br>Carla is a fully-featured audio plugin host%2.<br><br>Copyright (C) 2011-2019 falkTX<br> - <br>Версия %1<br>Carla — полнофункциональный хост аудио-плагинов%2.<br><br>Copyright © 2011–2019 falkTX<br> + + Type: + - - - (Engine not running) - (Движок не запущен) + + MIDI Ins: + - - Everything! (Including LRDF) - Всё! (Включая LRDF) + + Audio Ins: + - - Everything! (Including CustomData/Chunks) - Всё! (Включая CustomData/Chunks) + + CV Outs: + - - About 110&#37; complete (using custom extensions)<br/>Implemented Feature/Extensions:<ul><li>http://lv2plug.in/ns/ext/atom</li><li>http://lv2plug.in/ns/ext/buf-size</li><li>http://lv2plug.in/ns/ext/data-access</li><li>http://lv2plug.in/ns/ext/event</li><li>http://lv2plug.in/ns/ext/instance-access</li><li>http://lv2plug.in/ns/ext/log</li><li>http://lv2plug.in/ns/ext/midi</li><li>http://lv2plug.in/ns/ext/options</li><li>http://lv2plug.in/ns/ext/parameters</li><li>http://lv2plug.in/ns/ext/port-props</li><li>http://lv2plug.in/ns/ext/presets</li><li>http://lv2plug.in/ns/ext/resize-port</li><li>http://lv2plug.in/ns/ext/state</li><li>http://lv2plug.in/ns/ext/time</li><li>http://lv2plug.in/ns/ext/uri-map</li><li>http://lv2plug.in/ns/ext/urid</li><li>http://lv2plug.in/ns/ext/worker</li><li>http://lv2plug.in/ns/extensions/ui</li><li>http://lv2plug.in/ns/extensions/units</li><li>http://home.gna.org/lv2dynparam/rtmempool/v1</li><li>http://kxstudio.sf.net/ns/lv2ext/external-ui</li><li>http://kxstudio.sf.net/ns/lv2ext/programs</li><li>http://kxstudio.sf.net/ns/lv2ext/props</li><li>http://kxstudio.sf.net/ns/lv2ext/rtmempool</li><li>http://ll-plugins.nongnu.org/lv2/ext/midimap</li><li>http://ll-plugins.nongnu.org/lv2/ext/miditype</li></ul> - Завершено около 110&#37; (с пользовательскими расширениями)<br/>Реализованные функции и расширения:<ul><li>http://lv2plug.in/ns/ext/atom</li><li>http://lv2plug.in/ns/ext/buf-size</li><li>http://lv2plug.in/ns/ext/data-access</li><li>http://lv2plug.in/ns/ext/event</li><li>http://lv2plug.in/ns/ext/instance-access</li><li>http://lv2plug.in/ns/ext/log</li><li>http://lv2plug.in/ns/ext/midi</li><li>http://lv2plug.in/ns/ext/options</li><li>http://lv2plug.in/ns/ext/parameters</li><li>http://lv2plug.in/ns/ext/port-props</li><li>http://lv2plug.in/ns/ext/presets</li><li>http://lv2plug.in/ns/ext/resize-port</li><li>http://lv2plug.in/ns/ext/state</li><li>http://lv2plug.in/ns/ext/time</li><li>http://lv2plug.in/ns/ext/uri-map</li><li>http://lv2plug.in/ns/ext/urid</li><li>http://lv2plug.in/ns/ext/worker</li><li>http://lv2plug.in/ns/extensions/ui</li><li>http://lv2plug.in/ns/extensions/units</li><li>http://home.gna.org/lv2dynparam/rtmempool/v1</li><li>http://kxstudio.sf.net/ns/lv2ext/external-ui</li><li>http://kxstudio.sf.net/ns/lv2ext/programs</li><li>http://kxstudio.sf.net/ns/lv2ext/props</li><li>http://kxstudio.sf.net/ns/lv2ext/rtmempool</li><li>http://ll-plugins.nongnu.org/lv2/ext/midimap</li><li>http://ll-plugins.nongnu.org/lv2/ext/miditype</li></ul> + + MIDI Outs: + - - - - Using Juce host + + Parameter Ins: - - About 85% complete (missing vst bank/presets and some minor stuff) + + Parameter Outs: - - - CarlaHostW - - MainWindow + + Audio Outs: - - Rack + + CV Ins: - - Patchbay + + UniqueID: - - Logs + + Has Inline Display: - - Loading... + + Has Custom GUI: - - Buffer Size: - Размер буфера: + + Is Synth: + - - Sample Rate: + + Is Bridged: - - ? Xruns + + Information - - DSP Load: %p% + + Name - - &File - &Файл + + Label/Id/URI + - - &Engine + + Maker - - &Plugin + + Binary/Filename - - Macros (all plugins) + + Format - - &Canvas + + Internal - - Zoom + + LADSPA - - &Settings + + DSSI - - &Help - &Справка + + LV2 + - - toolBar + + VST2 - - Disk + + VST3 - - - Home - Home + + CLAP + - - Transport + + AU - - Playback Controls + + JSFX - - Time Information + + Sound Kits - - Frame: + + Type - - 000'000'000 + + Effects - - Time: - Время: + + Instruments + - - 00:00:00 - 00:00:00 + + MIDI Plugins + - - BBT: + + Other/Misc - - 000|00|0000 - 000|00|0000 + + Category + - - Settings - Настройки + + All + - - BPM + + Delay - - Use JACK Transport + + Distortion - - Use Ableton Link + + Dynamics - - &New - &Создать + + EQ + - - Ctrl+N - Ctrl+N + + Filter + - - &Open... - &Открыть... + + Modulator + - - - Open... - Открыть… + + Synth + - - Ctrl+O - Ctrl+O + + Utility + - - &Save - Со&хранить + + + Other + - - Ctrl+S - Ctrl+S + + Architecture + - - Save &As... - Сохранить &как... + + + Native + - - - Save As... - Сохранить как… + + Bridged + - - Ctrl+Shift+S - Ctrl+Shift+S + + Bridged (Wine) + - - &Quit - &Выход + + Focus Text Search + - - Ctrl+Q - Ctrl+Q + + Ctrl+F + - - &Start + + Bridged (32bit) - - F5 - F5 + + Discovering internal plugins... + - - St&op + + Discovering LADSPA plugins... - - F6 - F6 + + Discovering DSSI plugins... + - - &Add Plugin... + + Discovering LV2 plugins... - - Ctrl+A - Ctrl+A + + Discovering VST2 plugins... + - - &Remove All + + Discovering VST3 plugins... - - Enable - Включить + + Discovering CLAP plugins... + - - Disable - Отключить + + Discovering AU plugins... + - - 0% Wet (Bypass) + + Discovering JSFX plugins... - - 100% Wet + + Discovering SF2 kits... - - 0% Volume (Mute) - 0% громкости (приглушить) + + Discovering SFZ kits... + - - 100% Volume - 100% громкости + + Unknown + - - Center Balance + + + + + Yes - - &Play + + + + + No + + + PluginParameter + + + Form + Форма + - - Ctrl+Shift+P - Ctrl+Shift+P + + Parameter Name + Название параметра - - &Stop + + TextLabel - - Ctrl+Shift+X - Ctrl+Shift+X + + ... + + + + PluginRefreshDialog - - &Backwards + + Plugin Refresh - - Ctrl+Shift+B - Ctrl+Shift+B + + Search for: + - - &Forwards + + All plugins, ignoring cache - - Ctrl+Shift+F - Ctrl+Shift+F + + Updated plugins only + - - &Arrange + + Check previously invalid plugins - - Ctrl+G - Ctrl+G + + Press 'Scan' to begin the search + - - - &Refresh + + Scan - - Ctrl+R - Ctrl+R + + >> Skip + - - Save &Image... + + Close + + + PluginWidget - - Auto-Fit - Вписать + + + + + + Frame + Кадр - - Zoom In - Увеличить + + Enable + Включить + + + + On/Off + Вкл/Выкл + + + + + + + PluginName + ИмяПлагина - - Ctrl++ - Ctrl++ + + MIDI + MIDI - - Zoom Out - Уменьшить + + AUDIO IN + ВХОД ЗВУКА - - Ctrl+- - Ctrl+- + + AUDIO OUT + ВЫХОД ЗВУКА - - Zoom 100% - Исходный размер + + GUI + Графический интерфейс - - Ctrl+1 - Ctrl+1 + + Edit + Правка - - Show &Toolbar - + + Remove + Удалить - - &Configure Carla - + + Plugin Name + Название плагина - - &About - &О программе + + Preset: + Пресет: + + + ProjectRenderer - - About &JUCE - О &JUCE + + WAV (*.wav) + WAV (*.wav) - - About &Qt - О &Qt + + FLAC (*.flac) + FLAC (*.flac) - - Show Canvas &Meters - + + OGG (*.ogg) + OGG (*.ogg) - - Show Canvas &Keyboard - + + MP3 (*.mp3) + MP3 (*.mp3) + + + QGroupBox - - Show Internal + + + Settings for %1 + + + QObject - - Show External + + Reload Plugin - - Show Time Panel - + + Show GUI + Показать интерфейс - - Show &Side Panel - + + Help + Справка - - &Connect... + + LADSPA plugins - - Compact Slots + + The project contains %1 LADSPA plugin(s) which might have not been restored correctly! Please check the project. - - Expand Slots + + URI: - - Perform secret 1 + + Project: - - Perform secret 2 + + Maker: - - Perform secret 3 + + Homepage: - - Perform secret 4 + + License: - - Perform secret 5 + + File: %1 - - Add &JACK Application... + + failed to load description - - &Configure driver... + + Open audio file - - Panic + + Error loading sample - - Open custom driver panel... + + %1 (unsupported) - CarlaHostWindow + QWidget - - Export as... - Экспортировать как… + + + Name: + Название: - - - - - Error - Ошибка + + Maker: + Автор: - - Failed to load project - Не удалось загрузить проект + + Copyright: + Авторское право: - - Failed to save project - Не удалось сохранить проект + + Requires Real Time: + Требует работать в реальном времени: - - Quit - Покинуть + + + + Yes + да - - Are you sure you want to quit Carla? - Закрыть Carla? + + + + No + нет - - Could not connect to Audio backend '%1', possible reasons: -%2 - + + Real Time Capable: + Работа в реальном времени: - - Could not connect to Audio backend '%1' - + + In Place Broken: + Неисправен: - - Warning - Предупреждение + + Channels In: + Каналов на входе: - - There are still some plugins loaded, you need to remove them to stop the engine. -Do you want to do this now? - Имеются загруженные плагины. Нужно удалить их, чтобы остановить движок. -Сделать это сейчас? + + Channels Out: + Каналов на выходе: - - - CarlaInstrumentView - - Show GUI - Показать интерфейс + + File: %1 + Файл: %1 + + + + File: + Файл: - CarlaSettingsW + XYControllerW - - Settings - Настройки + + XY Controller + - - main + + X Controls: - - canvas + + Y Controls: - - engine - движок + + Smooth + - - osc + + &Settings - - file-paths + + Channels - - plugin-paths + + &File - - wine + + Show MIDI &Keyboard - - experimental + + (All) - - Widget + + 1 - - - Main + + 2 - - - Canvas + + 3 - - - Engine - Движок + + 4 + - - File Paths + + 5 - - Plugin Paths + + 6 - - Wine - Wine + + 7 + - - - Experimental + + 8 - - <b>Main</b> + + 9 - - Paths - Пути + + 10 + - - Default project folder: + + 11 - - Interface - Интерфейс + + 12 + - - Interface refresh interval: - Интервал обновления интерфейса: + + 13 + - - - ms - мс + + 14 + - - Show console output in Logs tab (needs engine restart) + + 15 - - Show a confirmation dialog before quitting + + 16 - - - Theme - Тема + + &Quit + - - Use Carla "PRO" theme (needs restart) - Использовать тему Carla “PRO” (требуется перезагрузка) + + Esc + + + + + (None) + + + + + lmms::AmplifierControls + + + Volume + Громкость + + + + Panning + Баланс + + + + Left gain + Усиление (Л) - - Color scheme: - Цветовая схема: + + Right gain + Усиление (П) + + + lmms::AudioFileProcessor - - Black - Чёрная + + Amplify + Усиление - - System - Системная + + Start of sample + Начало сэмпла - - Enable experimental features - Включить экспериментальные функции + + End of sample + Конец сэмпла - - <b>Canvas</b> - + + Loopback point + Точка петли - - Bezier Lines - + + Reverse sample + Перевернуть сэмпл - - Theme: - Тема: + + Loop mode + Режим повтора - - Size: - Размер: + + Stutter + Запинание - - 775x600 - 775×600 + + Interpolation mode + Режим интерполяции - - 1550x1200 - 1550×1200 + + None + Нет - - 3100x2400 - 3100×2400 + + Linear + Линейный - - 4650x3600 - 4650×3600 + + Sinc + Приёмник - - 6200x4800 - 6200×4800 + + Sample not found + + + + lmms::AudioJack - - Options - Опции + + JACK client restarted + Клиент JACK перезапущен - - Auto-hide groups with no ports - + + LMMS was kicked by JACK for some reason. Therefore the JACK backend of LMMS has been restarted. You will have to make manual connections again. + LMMS не был подключен к JACK по какой-то причине, поэтому подключение LMMS к JACK было перезапущено. Вам придётся заново вручную создать соединения. - - Auto-select items on hover - + + JACK server down + Cервер JACK выключен - - Basic eye-candy (group shadows) - + + The JACK server seems to have been shutdown and starting a new instance failed. Therefore LMMS is unable to proceed. You should save your project and restart JACK and LMMS. + Возможно JACK-сервер был выключен и запуск нового процесса не удался, поэтому LMMS не может продолжить работу. Вам следует сохранить проект и перезапустить JACK и LMMS. - - Render Hints - + + Client name + Имя клиента - - Anti-Aliasing - Сглаживание + + Channels + Каналы + + + lmms::AudioOss - - Full canvas repaints (slower, but prevents drawing issues) - + + Device + Устройство - - <b>Engine</b> - <b>Движок</b> + + Channels + Каналы + + + lmms::AudioPortAudio::setupWidget - - - Core - Ядро + + Backend + Интерфейс - - Single Client - + + Device + Устройство + + + lmms::AudioPulseAudio - - Multiple Clients - + + Device + Устройство - - - Continuous Rack - + + Channels + Каналы + + + lmms::AudioSdl::setupWidget - - - Patchbay + + Playback device - - Audio driver: - Звуковой драйвер: + + Input device + + + + lmms::AudioSndio - - Process mode: - Режим обработки: + + Device + Устройство - - - - - Maximum number of parameters to allow in the built-in 'Edit' dialog - + + Channels + Каналы + + + lmms::AudioSoundIo::setupWidget - - Max Parameters: - + + Backend + Интерфейс - - ... - + + Device + Устройство + + + lmms::AutomatableModel - - Reset Xrun counter after project load - + + &Reset (%1%2) + &Сбросить (%1%2) - - Plugin UIs - + + &Copy value (%1%2) + &Копировать значение (%1%2) - - - How much time to wait for OSC GUIs to ping back the host - + + &Paste value (%1%2) + &Вставить значение (%1%2) - - UI Bridge Timeout: - + + &Paste value + &Вставить значение - - Use OSC-GUI bridges when possible, this way separating the UI from DSP code - + + Edit song-global automation + Изменить глобальную автоматизацию - - Use UI bridges instead of direct handling when possible - + + Remove song-global automation + Убрать глобальную автоматизацию - - Make plugin UIs always-on-top - + + Remove all linked controls + Убрать всё присоединенное управление - - Make plugin UIs appear on top of Carla (needs restart) - + + Connected to %1 + Подключено к %1 - - NOTE: Plugin-bridge UIs cannot be managed by Carla on macOS - + + Connected to controller + Соединено с контроллером - - - Restart the engine to load the new settings - Перезапустите движок, чтобы загрузить новые настройки + + Edit connection... + Изменить соединение… - - <b>OSC</b> - + + Remove connection + Удалить соединение - - Enable OSC - + + Connect to controller... + Соединить с контроллером... + + + lmms::AutomationClip - - Enable TCP port - Включить порт TCP + + Drag a control while pressing <%1> + Перетащите элемент управления, удерживая <%1> + + + lmms::AutomationTrack - - - Use specific port: - Использовать указанный порт: + + Automation track + Дорожка автоматизации + + + lmms::BassBoosterControls - - Overridden by CARLA_OSC_TCP_PORT env var - + + Frequency + Частота - - - Use randomly assigned port - + + Gain + Усиление - - Enable UDP port - Включить порт UDP + + Ratio + Соотношение + + + lmms::BitInvader - - Overridden by CARLA_OSC_UDP_PORT env var - + + Sample length + Длина сэмпла - - DSSI UIs require OSC UDP port enabled + + Interpolation - - <b>File Paths</b> + + Normalize + + + lmms::BitcrushControls - - Audio - Аудио + + Input gain + Входное усиление - - MIDI - MIDI + + Input noise + Входной шум - - Used for the "audiofile" plugin - + + Output gain + Выходное усиление - - Used for the "midifile" plugin - + + Output clip + Выходная обрезка - - - Add... - Добавить… + + Sample rate + Частота сэмплирования - - - Remove - Удалить + + Stereo difference + Разница стерео - - - Change... - Изменить… + + Levels + Уровни - - <b>Plugin Paths</b> - + + Rate enabled + Частота выборки включена - - LADSPA - LADSPA + + Depth enabled + Глубина включена + + + lmms::Clip - - DSSI - DSSI + + Mute + Заглушить + + + lmms::CompressorControls - - LV2 - LV2 + + Threshold + Пороговый уровень - - VST2 - VST2 + + Ratio + Соотношение - - VST3 - VST3 + + Attack + Атака - - SF2/3 - SF2/3 + + Release + Затухание - - SFZ - SFZ + + Knee + - - Restart Carla to find new plugins - Перезапустите Carla, чтобы найти новые плагины + + Hold + Удержание - - <b>Wine</b> - + + Range + Диапазон - - Executable + + RMS Size - - Path to 'wine' binary: - + + Mid/Side + Середина/стороны - - Prefix - + + Peak Mode + Держать пик - - Auto-detect Wine prefix based on plugin filename + + Lookahead Length - - Fallback: - + + Input Balance + Входной баланс: - - Note: WINEPREFIX env var is preferred over this fallback - + + Output Balance + Выходной баланс - - Realtime Priority - + + Limiter + Лимитер - - Base priority: - + + Output Gain + Выходная мощность - - WineServer priority: - + + Input Gain + Входная мощность - - These options are not available for Carla as plugin - + + Blend + Смешать - - <b>Experimental</b> - + + Stereo Balance + Баланс стерео - - Experimental options! Likely to be unstable! + + Auto Makeup Gain - - Enable plugin bridges - + + Audition + Прослушивание - - Enable Wine bridges - + + Feedback + Обратная связь - - Enable jack applications - + + Auto Attack + Автоатака - - Export single plugins to LV2 - + + Auto Release + Убывание - - Load Carla backend in global namespace (NOT RECOMMENDED) + + Lookahead - - Fancy eye-candy (fade-in/out groups, glow connections) + + Tilt - - Use OpenGL for rendering (needs restart) - + + Tilt Frequency + Фильтр Частот - - High Quality Anti-Aliasing (OpenGL only) + + Stereo Link - - Render Ardour-style "Inline Displays" - + + Mix + Микс + + + lmms::Controller - - Force mono plugins as stereo by running 2 instances at the same time. -This mode is not available for VST plugins. - + + Controller %1 + Контроллер %1 + + + lmms::DelayControls - - Force mono plugins as stereo - + + Delay samples + Задержка сэмплов - - Prevent plugins from doing bad stuff (needs restart) - + + Feedback + Обратная связь - - Whenever possible, run the plugins in bridge mode. - + + LFO frequency + Частота LFO - - Run plugins in bridge mode when possible - + + LFO amount + Объём LFO - - - - - Add Path - Добавить путь + + Output gain + Выходное усиление - CompressorControlDialog + lmms::DispersionControls - - Threshold: - + + Amount + Величина - - Volume at which the compression begins to take place - + + Frequency + Частота - - Ratio: - Отношение: + + Resonance + Резонанс - - How far the compressor must turn the volume down after crossing the threshold + + Feedback + Обратная связь + + + + DC Offset Removal + + + lmms::DualFilterControls - - Attack: - Атака: + + Filter 1 enabled + Фильтр 1 включен - - Speed at which the compressor starts to compress the audio - + + Filter 1 type + Фильтр 1 тип - - Release: - Затухание: + + Cutoff frequency 1 + Частота среза 1 - - Speed at which the compressor ceases to compress the audio - + + Q/Resonance 1 + Q/Резонанс 1 - - Knee: - + + Gain 1 + Усиление 1 - - Smooth out the gain reduction curve around the threshold - + + Mix + Микс - - Range: - + + Filter 2 enabled + Фильтр 2 включен - - Maximum gain reduction - + + Filter 2 type + Фильтр 2 тип - - Lookahead Length: - + + Cutoff frequency 2 + Частота среза 2 - - How long the compressor has to react to the sidechain signal ahead of time - + + Q/Resonance 2 + Q/Резонанс 2 - - Hold: - Удержание: + + Gain 2 + Усиление 2 - - Delay between attack and release stages - + + + Low-pass + Пропуск низких - - RMS Size: - + + + Hi-pass + Пропуск высоких - - Size of the RMS buffer + + + Band-pass csg - - Input Balance: + + + Band-pass czpg - - Bias the input audio to the left/right or mid/side - + + + Notch + Вырез - - Output Balance: - + + + All-pass + Пропускать все - - Bias the output audio to the left/right or mid/side - + + + Moog + Муг - - Stereo Balance: + + + 2x Low-pass - - Bias the sidechain signal to the left/right or mid/side + + + RC Low-pass 12 dB/oct - - Stereo Link Blend: - + + + RC Band-pass 12 dB/oct + RC полосовой 12 дБ/окт - - Blend between unlinked/maximum/average/minimum stereo linking modes - + + + RC High-pass 12 dB/oct + RC ФВЧ 12 дБ/окт - - Tilt Gain: - + + + RC Low-pass 24 dB/oct + RC ФНЧ 24 дБ/окт - - Bias the sidechain signal to the low or high frequencies. -6 db is lowpass, 6 db is highpass. - + + + RC Band-pass 24 dB/oct + RC полосовой 24 дБ/окт - - Tilt Frequency: - + + + RC High-pass 24 dB/oct + RC ФВЧ 24 дБ/окт - - Center frequency of sidechain tilt filter - + + + Vocal Formant + Формантный - - Mix: + + + 2x Moog - - Balance between wet and dry signals + + + SV Low-pass - - Auto Attack: + + + SV Band-pass - - Automatically control attack value depending on crest factor + + + SV High-pass - - Auto Release: + + + SV Notch - - Automatically control release value depending on crest factor + + + Fast Formant - - Output gain - Выходное усиление + + + Tripole + Трёхполюсный + + + lmms::DynProcControls - - - Gain - Усиление + + Input gain + Входное усиление - - Output volume - + + Output gain + Выходное усиление - - Input gain - Входное усиление + + Attack time + Время атаки - - Input volume - + + Release time + Время затухания - - Root Mean Square - + + Stereo mode + Режим стерео + + + lmms::Effect - - Use RMS of the input - + + Effect enabled + Эффект включён - - Peak + + Wet/Dry mix - - Use absolute value of the input - + + Gate + Порог - - Left/Right - + + Decay + Спад + + + lmms::EffectChain - - Compress left and right audio - + + Effects enabled + Эффекты включены + + + lmms::Engine - - Mid/Side - + + Generating wavetables + Генерация волновых таблиц - - Compress mid and side audio - + + Initializing data structures + Инициализация структуры данных - - Compressor - + + Opening audio and midi devices + Открываем аудио и MIDI-устройства - - Compress the audio - + + Launching audio engine threads + Запускаем потоки микшера + + + lmms::EnvelopeAndLfoParameters - - Limiter - + + Env pre-delay + Огиб предзадержка - - Set Ratio to infinity (is not guaranteed to limit audio volume) + + Env attack - - Unlinked + + Env hold - - Compress each channel separately + + Env decay - - Maximum + + Env sustain - - Compress based on the loudest channel + + Env release - - Average + + Env mod amount - - Compress based on the averaged channel volume - + + LFO pre-delay + LFO предзадержка - - Minimum - + + LFO attack + Атака LFO - - Compress based on the quietest channel - + + LFO frequency + Частота LFO - - Blend - + + LFO mod amount + Глубина мод LFO - - Blend between stereo linking modes - + + LFO wave shape + Форма LFO волны - - Auto Makeup Gain - + + LFO frequency x 100 + Частота x 100 LFO - - Automatically change makeup gain depending on threshold, knee, and ratio settings - + + Modulate env amount + Модулировать уровень огибающей - - - Soft Clip + + Sample not found + + + lmms::EqControls - - Play the delta signal - + + Input gain + Входное усиление - - Use the compressor's output as the sidechain input - + + Output gain + Выходное усиление - - Lookahead Enabled - + + Low-shelf gain + Усиление уровня низких - - Enable Lookahead, which introduces 20 milliseconds of latency - + + Peak 1 gain + Пик 1 усиление - - - CompressorControls - - Threshold - + + Peak 2 gain + Пик 2 усиление - - Ratio - Отношение + + Peak 3 gain + Пик 3 усиление - - Attack - Атака + + Peak 4 gain + Пик 4 усиление - - Release - Затухание + + High-shelf gain + Усиление уровня высоких - - Knee + + HP res - - Hold - Удержание + + Low-shelf res + - - Range + + Peak 1 BW - - RMS Size + + Peak 2 BW - - Mid/Side + + Peak 3 BW - - Peak Mode + + Peak 4 BW - - Lookahead Length + + High-shelf res - - Input Balance + + LP res - - Output Balance + + HP freq - - Limiter + + Low-shelf freq - - Output Gain - Выходная мощность + + Peak 1 freq + - - Input Gain - Входная мощность + + Peak 2 freq + - - Blend + + Peak 3 freq - - Stereo Balance + + Peak 4 freq - - Auto Makeup Gain + + High-shelf freq - - Audition + + LP freq - - Feedback - Возврат + + HP active + - - Auto Attack + + Low-shelf active - - Auto Release + + Peak 1 active - - Lookahead + + Peak 2 active - - Tilt + + Peak 3 active - - Tilt Frequency + + Peak 4 active - - Stereo Link + + High-shelf active - - Mix - Микс + + LP active + НЧ активна - - - Controller - - Controller %1 - Контроллер %1 + + LP 12 + НЧ 12 - - - ControllerConnectionDialog - - Connection Settings - Параметры соединения + + LP 24 + НЧ 24 - - MIDI CONTROLLER - MIDI-КОНТРОЛЛЕР + + LP 48 + НЧ 48 - - Input channel - Канал ввода + + HP 12 + ВЧ 12 - - CHANNEL - КАНАЛ + + HP 24 + ВЧ 24 - - Input controller - Контроллер ввода + + HP 48 + ВЧ 48 - - CONTROLLER - КОНТРОЛЛЕР + + Low-pass type + - - - Auto Detect - Автоопределение + + High-pass type + - - MIDI-devices to receive MIDI-events from - Устройства MIDI для приёма событий + + Analyse IN + - - USER CONTROLLER - ПОЛЬЗ. КОНТРОЛЛЕР + + Analyse OUT + + + + lmms::FlangerControls - - MAPPING FUNCTION - ЗАДАТЬ ФУНКЦИЮ + + Delay samples + - - OK - ОК + + LFO frequency + - - Cancel - Отмена + + Amount + - - LMMS - LMMS + + Stereo phase + Фаза стерео - - Cycle Detected. - Обнаружен цикл. + + Feedback + + + + + Noise + Шум + + + + Invert + Инвертировать - ControllerRackView + lmms::FreeBoyInstrument - - Controller Rack - Стойка контроллеров + + Sweep time + Время колебаний - - Add - Добавить + + Sweep direction + Направление колебаний - - Confirm Delete - Подтвердить удаление + + Sweep rate shift amount + Величина сдвига частоты колебаний - - Confirm delete? There are existing connection(s) associated with this controller. There is no way to undo. - Подтверждаете удаление? Есть возможные соединения с этим контроллером, возврата не будет. + + + Wave pattern duty cycle + Рабочий цикл волны - - - ControllerView - - Controls - Контроль + + Channel 1 volume + Громкость 1 канала - - Rename controller - Переименовать контроллер + + + + Volume sweep direction + + + + + + + Length of each step in sweep + + + + + Channel 2 volume + Громкость 2 канала - - Enter the new name for this controller - Введите новое название для контроллера + + Channel 3 volume + Громкость 3 канала - - LFO - LFO + + Channel 4 volume + Громкость 4 канала - - &Remove this controller - &Убрать этот контроллер + + Shift Register width + - - Re&name this controller - Пере&именовать этот контроллер + + Right output level + - - - CrossoverEQControlDialog - - Band 1/2 crossover: - Пересечение 1/2 Полосы: + + Left output level + - - Band 2/3 crossover: - Пересечение 2/3 Полосы: + + Channel 1 to SO2 (Left) + - - Band 3/4 crossover: - Пересечение 3/4 Полосы: + + Channel 2 to SO2 (Left) + - - Band 1 gain - Полоса 1 усиление + + Channel 3 to SO2 (Left) + - - Band 1 gain: - Полоса 1 усиление: + + Channel 4 to SO2 (Left) + - - Band 2 gain - Полоса 2 усиление + + Channel 1 to SO1 (Right) + - - Band 2 gain: - Полоса 2 усиление: + + Channel 2 to SO1 (Right) + - - Band 3 gain - Полоса 3 усиление + + Channel 3 to SO1 (Right) + - - Band 3 gain: - Полоса 3 усиление: + + Channel 4 to SO1 (Right) + - - Band 4 gain - Полоса 4 усиление + + Treble + Верхние - - Band 4 gain: - Полоса 4 усиление: + + Bass + Басы + + + lmms::GigInstrument - - Band 1 mute - Полоса 1 заглушена + + Bank + Банк - - Mute band 1 - Заглушить полосу 1 + + Patch + Патч - - Band 2 mute - Полоса 2 заглушена + + Gain + Усиление + + + lmms::GranularPitchShifterControls - - Mute band 2 - Заглушить полосу 2 + + Pitch + - - Band 3 mute - Полоса 3 заглушена + + Grain Size + - - Mute band 3 - Заглушить полосу 3 + + Spray + - - Band 4 mute - Полоса 4 заглушена + + Jitter + - - Mute band 4 - Заглушить полосу 4 + + Twitch + - - - DelayControls - - Delay samples - Задержка сэмплов + + Pitch Stereo Spread + - - Feedback - Возврат + + Spray Stereo + - - LFO frequency - Частота LFO + + Shape + - - LFO amount - Объём LFO + + Fade Length + - - Output gain - Выходная мощность + + Feedback + - - - DelayControlsDialog - - DELAY - ЗАДЕРЖ + + Minimum Allowed Latency + - - Delay time - Время задержки + + Prefilter + - - FDBK - ВОЗВ + + Density + - - Feedback amount - Уровень возврата + + Glide + - - RATE - ЧАСТ + + Ring Buffer Length + - - LFO frequency - Частота LFO + + 5 Seconds + - - AMNT - ГЛУБ + + 10 Seconds (Size) + - - LFO amount - Объём LFO + + 40 Seconds (Size and Pitch) + - - Out gain - Усиление на выходе + + 40 Seconds (Size and Spray and Jitter) + - - Gain - Усиление + + 120 Seconds (All of the above) + - Dialog + lmms::InstrumentFunctionArpeggio - - Add JACK Application - + + Arpeggio + Арпеджио - - Note: Features not implemented yet are greyed out - Не реализованные функции отмечены серым цветом + + Arpeggio type + Тип арпеджио - - Application - Приложение + + Arpeggio range + Диапазон арпеджио - - Name: - Название: + + Note repeats + - - Application: - Приложение: + + Cycle steps + Шагов в цикле - - From template - Из шаблона + + Skip rate + Частота пропуска - - Custom - Настраиваемый + + Miss rate + Частость обхода - - Template: - Шаблон: + + Arpeggio time + Период арпеджио - - Command: - Команда: + + Arpeggio gate + Шлюз арпеджио - - Setup - Настройка + + Arpeggio direction + Направление арпеджио - - Session Manager: - + + Arpeggio mode + Режим арпеджио - - None - Нет + + Up + Вверх - - Audio inputs: - Звуковые входы: + + Down + Вниз - - MIDI inputs: - Входы MIDI: + + Up and down + Вверх и вниз - - Audio outputs: - Звуковые выходы: + + Down and up + Вниз и вверх - - MIDI outputs: - Выходы MIDI: + + Random + Случайно - - Take control of main application window - + + Free + Свободно - - Workarounds - + + Sort + Упорядочить - - Wait for external application start (Advanced, for Debug only) - + + Sync + Синхро + + + lmms::InstrumentFunctionNoteStacking - - Capture only the first X11 Window - + + Chords + Аккорды - - Use previous client output buffer as input for the next client - + + Chord type + Тип аккорда - - Simulate 16 JACK MIDI outputs, with MIDI channel as port index - + + Chord range + Диапазон аккорда + + + lmms::InstrumentSoundShaping - - Error here - + + Envelopes/LFOs + Огибание/LFO - - Carla Control - Connect - + + Filter type + Тип фильтра - - Remote setup - + + Cutoff frequency + Частота среза - - UDP Port: - Порт UDP: + + Q/Resonance + Q/Резонанс - - Remote host: - Удалённый хост: + + Low-pass + Пропуск низких - - TCP Port: - Порт TCP: + + Hi-pass + Пропуск высоких - - Reported host - + + Band-pass csg + Полосовой csg - - Automatic - Автоматически + + Band-pass czpg + Полосовой czpg - - Custom: - + + Notch + Вырез - - In some networks (like USB connections), the remote system cannot reach the local network. You can specify here which hostname or IP to make the remote Carla connect to. -If you are unsure, leave it as 'Automatic'. - В некоторых сетях (например, USB-соединения) удалённая система не может связаться с локальной сетью. Здесь можно указать, к какому хосту или IP подключать удалённую Carla. -Если не уверены, оставьте «Автоматически». + + All-pass + Пропускать все - - Set value - Установить значение + + Moog + Муг - - TextLabel - + + 2x Low-pass + 2x ФНЧ - - Scale Points - + + RC Low-pass 12 dB/oct + RC ФНЧ 12дБ/окт - - - DriverSettingsW - - Driver Settings - Параметры драйвера + + RC Band-pass 12 dB/oct + RC полосовой 12 дБ/окт - - Device: - Устройство: + + RC High-pass 12 dB/oct + RC ФВЧ 12 дБ/окт - - Buffer size: - Размер буфера: + + RC Low-pass 24 dB/oct + RC ФНЧ 24 дБ/окт - - Sample rate: - Частота сэмплирования: + + RC Band-pass 24 dB/oct + RC полосовой 24 дБ/окт - - Triple buffer - Тройной буфер + + RC High-pass 24 dB/oct + RC ФВЧ 24 дБ/окт - - Show Driver Control Panel - + + Vocal Formant + Формантный - - Restart the engine to load the new settings - Перезапустите движок, чтобы загрузить новые настройки + + 2x Moog + 2x Муг - - - DualFilterControlDialog - - - FREQ - ЧАСТ + + SV Low-pass + SV нижних частот - - - Cutoff frequency - Частота среза + + SV Band-pass + SV полосовой - - - RESO - RESO + + SV High-pass + SV верхних частот - - - Resonance - Резонанс + + SV Notch + SV Notch (вырез) - - - GAIN - УСИЛ + + Fast Formant + Быстрый формантный - - - Gain - Усиление + + Tripole + Трёхполюсный + + + lmms::InstrumentTrack - - MIX - МИКС + + + unnamed_track + дорожка без имени - - Mix - Микс + + Base note + Опорная нота - - Filter 1 enabled - Фильтр 1 включен + + First note + Первая нота - - Filter 2 enabled - Фильтр 2 включен + + Last note + - - Enable/disable filter 1 - Вкл/Выкл фильтр 1 + + Volume + Громкость - - Enable/disable filter 2 - Вкл/Выкл фильтр 2 + + Panning + Баланс - - - DualFilterControls - - Filter 1 enabled - Фильтр 1 включен + + Pitch + Тональность - - Filter 1 type - Фильтр 1 тип + + Pitch range + Диапазон тональности - - Cutoff frequency 1 - Частота среза 1 + + Mixer channel + Канал микшера - - Q/Resonance 1 - Q/Резонанс 1 + + Master pitch + Основной тон - - Gain 1 - Усиление 1 + + Enable/Disable MIDI CC + - - Mix - Микс + + CC Controller %1 + - - Filter 2 enabled - Фильтр 2 включен + + + Default preset + Основная предустановка + + + lmms::Keymap - - Filter 2 type - Фильтр 2 тип + + empty + пусто + + + lmms::KickerInstrument - - Cutoff frequency 2 - Частота среза 2 + + Start frequency + Начальная частота - - Q/Resonance 2 - Q/Резонанс 2 + + End frequency + Конечная частота - - Gain 2 - Усиление 2 + + Length + Длина - - - Low-pass - Пропуск низких + + Start distortion + Начало перегруза - - - Hi-pass - Пропуск высоких + + End distortion + Конец перегруза - - - Band-pass csg - Полосовой csg + + Gain + Усиление - - - Band-pass czpg - Полосовой czpg + + Envelope slope + Уклон огибающей - - - Notch - Полосно-заграждающий + + Noise + Шум - - - All-pass - Фазовый + + Click + Щелчок - - - Moog - Муг + + Frequency slope + Уклон частоты - - - 2x Low-pass - 2x ФНЧ + + Start from note + Начать с ноты - - - RC Low-pass 12 dB/oct - RC ФНЧ 12дБ/окт + + End to note + Закончить нотой + + + lmms::LOMMControls - - - RC Band-pass 12 dB/oct - RC полосовой 12 дБ/окт + + Depth + - - - RC High-pass 12 dB/oct - RC ФВЧ 12 дБ/окт + + Time + - - - RC Low-pass 24 dB/oct - RC ФНЧ 24 дБ/окт + + Input Volume + - - - RC Band-pass 24 dB/oct - RC полосовой 24 дБ/окт + + Output Volume + - - - RC High-pass 24 dB/oct - RC ФВЧ 24 дБ/окт + + Upward Depth + - - - Vocal Formant - Формантный + + Downward Depth + - - - 2x Moog - 2x Муг + + High/Mid Split + - - - SV Low-pass - SV нижних частот + + Mid/Low Split + - - - SV Band-pass - SV полосовой + + Enable High/Mid Split + - - - SV High-pass - SV верхних частот + + Enable Mid/Low Split + - - - SV Notch - SV режекторный (полосно-заграждающий) + + Enable High Band + - - - Fast Formant - Быстрый формантный + + Enable Mid Band + - - - Tripole - Трёхполюсный + + Enable Low Band + - - - Editor - - Transport controls - Управление транспортом + + High Input Volume + - - Play (Space) - Игра (Пробел) + + Mid Input Volume + - - Stop (Space) - Стоп (Пробел) + + Low Input Volume + - - Record - Запись + + High Output Volume + - - Record while playing - Запись при игре + + Mid Output Volume + - - Toggle Step Recording - Вкл пошаговую запись + + Low Output Volume + - - - Effect - - Effect enabled - Эффект включён + + Above Threshold High + - - Wet/Dry mix - Микс чистый/обраб звук + + Above Threshold Mid + - - Gate - Порог + + Above Threshold Low + - - Decay - Спад + + Above Ratio High + - - - EffectChain - - Effects enabled - Эффекты включены + + Above Ratio Mid + - - - EffectRackView - - EFFECTS CHAIN - ЦЕПЬ ЭФФЕКТОВ + + Above Ratio Low + - - Add effect - Добавить эффект + + Below Threshold High + - - - EffectSelectDialog - - Add effect - Добавить эффект + + Below Threshold Mid + - - - Name - Имя + + Below Threshold Low + - - Type - Тип + + Below Ratio High + - - Description - Описание + + Below Ratio Mid + - - Author - Автор + + Below Ratio Low + - - - EffectView - - On/Off - Вкл/Выкл + + Attack High + - - W/D - МИКС + + Attack Mid + - - Wet Level: - Уровень обработанного звука: + + Attack Low + - - DECAY - СПАД + + Release High + - - Time: - Время: + + Release Mid + - - GATE - ПОРОГ + + Release Low + - - Gate: - Порог: + + RMS Time + - - Controls - Контроль + + Knee + - - Move &up - Переместить &выше + + Range + - - Move &down - Переместить &ниже + + Balance + - - &Remove this plugin - &Убрать фильтр + + Scale output volume with Depth + - - - EnvelopeAndLfoParameters - - Env pre-delay - Огиб предзадержка + + Stereo Link + - - Env attack - Атака огиб. + + Auto Time + - - Env hold - Удержание огиб. + + Mix + - - Env decay - Спад огиб. + + Feedback + - - Env sustain - Выдержка огиб. + + Mid/Side + - - Env release - Затухание огиб. + + Lookahead + - - Env mod amount - Объём мод огиба + + Lookahead Length + - - LFO pre-delay - LFO предзадержка + + Suppress upward compression for side band + + + + lmms::LadspaControl - - LFO attack - Атака LFO + + Link channels + Связать каналы + + + lmms::LadspaEffect - - LFO frequency - Частота LFO + + Unknown LADSPA plugin %1 requested. + Запрошен неизвестный плагин LADSPA %1. + + + lmms::Lb302Synth - - LFO mod amount - Глубина мод LFO + + VCF Cutoff Frequency + Частота среза VCF - - LFO wave shape - Форма LFO волны + + VCF Resonance + Резонанс VCF - - LFO frequency x 100 - Частота x 100 LFO + + VCF Envelope Mod + Мод Огибающей VCF - - Modulate env amount - Модулировать уровень огибающей + + VCF Envelope Decay + Спад огибающей VCF - - - EnvelopeAndLfoView - - - DEL - DEL + + Distortion + Перегруз - - - Pre-delay: - Предзадержка: + + Waveform + Форма волны - - - ATT - ATT + + Slide Decay + Сдвиг спада - - - Attack: - Атака: + + Slide + Сдвиг - - HOLD - УДЕРЖ + + Accent + Акцент - - Hold: - Удержание: + + Dead + Глухо - - DEC - DEC + + 24dB/oct Filter + 24дБ/окт фильтр + + + lmms::LfoController - - Decay: - Спад: + + LFO Controller + Контроллер LFO - - SUST - SUST + + Base value + Опорное значение - - Sustain: - Выдержка: + + Oscillator speed + Скорость волны - - REL - REL + + Oscillator amount + Размер волны - - Release: - Затухание: + + Oscillator phase + Фаза волны - - - AMT - AMT + + Oscillator waveform + Форма волны - - - Modulation amount: - Глубина модуляции: + + Frequency Multiplier + Множитель частоты - - SPD - СКРСТ + + Sample not found + + + + lmms::MalletsInstrument - - Frequency: - Частота: + + Hardness + Жёсткость - - FREQ x 100 - ЧАСТ x 100 + + Position + Позиция - - Multiply LFO frequency by 100 - Умножить частоту LFO на 100 + + Vibrato gain + Усиление вибрато - - MODULATE ENV AMOUNT - МОДУЛИР УР ОГИБАЮЩ + + Vibrato frequency + Частота вибрато - - Control envelope amount by this LFO - Управлять объёмом огибающей через этот LFO + + Stick mix + - - ms/LFO: - мс/LFO: + + Modulator + Модулятор - - Hint - Подсказка + + Crossfade + Переход - - Drag and drop a sample into this window. - Перетащить сэмпл в это окно. + + LFO speed + Скорость LFO - - - EqControls - - Input gain - Входная мощность + + LFO depth + Глубина LFO - - Output gain - Выходная мощность + + ADSR + ADSR - - Low-shelf gain - Усиление уровня низких + + Pressure + Давление - - Peak 1 gain - Пик 1 усиление + + Motion + Движение - - Peak 2 gain - Пик 2 усиление + + Speed + Скорость - - Peak 3 gain - Пик 3 усиление + + Bowed + Наклон - - Peak 4 gain - Пик 4 усиление + + Instrument + - - High-shelf gain - Усиление уровня высоких + + Spread + Разброс - - HP res - ВЧ резон + + Randomness + - - Low-shelf res - Резо уровня низких + + Marimba + Маримба - - Peak 1 BW - Пик 1 ДИАП + + Vibraphone + Вибрафон - - Peak 2 BW - Пик 2 ДИАП + + Agogo + Агого - - Peak 3 BW - Пик 3 ДИАП + + Wood 1 + Дерево 1 - - Peak 4 BW - Пик 4 ДИАП + + Reso + Резо - - High-shelf res - Резо уровня высоких + + Wood 2 + Дерево 2 - - LP res - НЧ резо + + Beats + Удары - - HP freq - ВЧ част + + Two fixed + Два постоянно - - Low-shelf freq - Уровень низких част + + Clump + - - Peak 1 freq - Пик 1 част + + Tubular bells + - - Peak 2 freq - Пик 2 част + + Uniform bar + - - Peak 3 freq - Пик 3 част + + Tuned bar + - - Peak 4 freq - Пик 4 част + + Glass + Стекло - - High-shelf freq - Уровень высоких част + + Tibetan bowl + Тибетская чаша + + + lmms::MeterModel - - LP freq - НЧ част + + Numerator + Число долей - - HP active - ВЧ активна + + Denominator + Длительность доли + + + lmms::Microtuner - - Low-shelf active - Уровень низких активен + + Microtuner + Микротюнер - - Peak 1 active - Пик 1 активен + + Microtuner on / off + Микротюнер вкл/выкл - - Peak 2 active - Пик 2 активен + + Selected scale + Выбранный масштаб - - Peak 3 active - Пик 3 активен + + Selected keyboard mapping + Выбранная раскладка клавиатуры + + + lmms::MidiController - - Peak 4 active - Пик 4 активен + + MIDI Controller + Контроллер MIDI - - High-shelf active - Уровень высоких активен + + unnamed_midi_controller + MIDI-контроллер без имени + + + lmms::MidiImport - - LP active - НЧ активна + + + Setup incomplete + Установка не завершена - - LP 12 - НЧ 12 + + You have not set up a default soundfont in the settings dialog (Edit->Settings). Therefore no sound will be played back after importing this MIDI file. You should download a General MIDI soundfont, specify it in settings dialog and try again. + Вы не установили основной SoundFont в настройках (Правка -> Параметры). Поэтому звук не будет воспроизводиться после импортирования этого MIDI-файла. Вам следует загрузить General MIDI SoundFont, определить его в настройках и попробовать снова. - - LP 24 - НЧ 24 + + You did not compile LMMS with support for SoundFont2 player, which is used to add default sound to imported MIDI files. Therefore no sound will be played back after importing this MIDI file. + Вы не включили поддержку проигрывателя SoundFont2 при компиляции LMMS, он используется для добавления основного звука в импортируемые MIDI-файлы, поэтому звука не будет после импорта этого MIDI-файла. - - LP 48 - НЧ 48 + + MIDI Time Signature Numerator + Число долей времени MIDI - - HP 12 - ВЧ 12 + + MIDI Time Signature Denominator + Длительность доли времени MIDI - - HP 24 - ВЧ 24 + + Numerator + Число долей - - HP 48 - ВЧ 48 + + Denominator + Длительность доли - - Low-pass type - Тип прохождения низких (LP) + + + Tempo + Темп - - High-pass type - Тип прохождения высоких (HP) + + Track + Дорожка + + + lmms::MidiJack - - Analyse IN - Анализировать ВХОД + + JACK server down + When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (title) + Cервер JACK выключен - - Analyse OUT - Анализировать ВЫХОД + + The JACK server seems to be shuted down. + When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (dialog message) + JACK-сервер, похоже, не запущен. - - EqControlsDialog - - - HP - ВЧ + + lmms::MidiPort + + + Input channel + Канал входа - - Low-shelf - Уровень низких + + Output channel + Канал выхода - - Peak 1 - Пик 1 + + Input controller + Контроллер входа - - Peak 2 - Пик 2 + + Output controller + Контроллер выхода - - Peak 3 - Пик 3 + + Fixed input velocity + Постоянная скорость ввода - - Peak 4 - Пик 4 + + Fixed output velocity + Постоянная скорость вывода - - High-shelf - Уровень высоких + + Fixed output note + Постоянный вывод нот - - LP - НЧ + + Output MIDI program + Программа для вывода MIDI - - Input gain - Входная мощность + + Base velocity + Базовая скорость - - - - Gain - Усиление + + Receive MIDI-events + Принимать события MIDI - - Output gain - Выходная мощность + + Send MIDI-events + Отправлять события MIDI + + + lmms::Mixer - - Bandwidth: - Полоса пропускания: + + Master + Главный - - Octave - Октава + + + + Channel %1 + Канал %1 - - Resonance : - Резонанс: + + Volume + Громкость - - Frequency: - Частота: + + Mute + Заглушить - - LP group - Группа НЧ (LoPass) + + Solo + Соло + + + lmms::MixerRoute - - HP group - Группа ВЧ (HiPass) + + + Amount to send from channel %1 to channel %2 + Величина отправки с канала %1 на канал %2 - EqHandle + lmms::MonstroInstrument - - Reso: - Резон: + + Osc 1 volume + - - BW: - ДИАП: + + Osc 1 panning + - - - Freq: - Част: + + Osc 1 coarse detune + - - - ExportProjectDialog - - Export project - Экспорт проекта + + Osc 1 fine detune left + - - Export as loop (remove extra bar) - Экспортировать как петлю (убрать лишний такт) + + Osc 1 fine detune right + - - Export between loop markers - Экспорт между метками петли + + Osc 1 stereo phase offset + - - Render Looped Section: - Рендерить закольцованную секцию + + Osc 1 pulse width + - - time(s) - время(с) + + Osc 1 sync send on rise + - - File format settings - Настройки формата файла + + Osc 1 sync send on fall + - - File format: - Формат файла: + + Osc 2 volume + - - Sampling rate: - Частота сэмплирования: + + Osc 2 panning + - - 44100 Hz - 44,1 кГц + + Osc 2 coarse detune + - - 48000 Hz - 48 кГц + + Osc 2 fine detune left + - - 88200 Hz - 88,2 кГц + + Osc 2 fine detune right + - - 96000 Hz - 96 кГц + + Osc 2 stereo phase offset + - - 192000 Hz - 192 кГц + + Osc 2 waveform + - - Bit depth: - Глубина бита: + + Osc 2 sync hard + - - 16 Bit integer - 16-битное целое число + + Osc 2 sync reverse + - - 24 Bit integer - 24-битное целое число + + Osc 3 volume + - - 32 Bit float - 32 Bit с запятой + + Osc 3 panning + - - Stereo mode: - Режим стерео: + + Osc 3 coarse detune + - - Mono - Моно + + Osc 3 Stereo phase offset + - - Stereo - Стерео + + Osc 3 sub-oscillator mix + - - Joint stereo - Объединённое стерео + + Osc 3 waveform 1 + - - Compression level: - Уровень компрессии: + + Osc 3 waveform 2 + - - Bitrate: - Битрейт: + + Osc 3 sync hard + - - 64 KBit/s - 64 кбит/с + + Osc 3 Sync reverse + - - 128 KBit/s - 128 кбит/с + + LFO 1 waveform + - - 160 KBit/s - 160 кбит/с + + LFO 1 attack + - - 192 KBit/s - 192 кбит/с + + LFO 1 rate + - - 256 KBit/s - 256 кбит/с + + LFO 1 phase + - - 320 KBit/s - 320 кбит/с + + LFO 2 waveform + - - Use variable bitrate - Переменный битрейт + + LFO 2 attack + - - Quality settings - Настройки качества + + LFO 2 rate + - - Interpolation: - Интерполяция: + + LFO 2 phase + - - Zero order hold - Удержание нулевого порядка + + Env 1 pre-delay + - - Sinc worst (fastest) - Sinc худший (быстрее) + + Env 1 attack + - - Sinc medium (recommended) - Sinc средний (рекомендовано) + + Env 1 hold + - - Sinc best (slowest) - Sinc лучший (медленно) + + Env 1 decay + - - Oversampling: - Сверхсэмплирование: + + Env 1 sustain + - - 1x (None) - 1х (Нет) + + Env 1 release + - - 2x - + + Env 1 slope + - - 4x - + + Env 2 pre-delay + - - 8x - + + Env 2 attack + - - Start - Начать + + Env 2 hold + - - Cancel - Отмена + + Env 2 decay + - - Could not open file - Не могу открыть файл + + Env 2 sustain + - - Could not open file %1 for writing. -Please make sure you have write permission to the file and the directory containing the file and try again! - Невозможно открыть файл %1 для записи. Пожалуйста, убедитесь, что у вас есть разрешение на запись в файл и содержащую его директорию, и попробуйте снова. + + Env 2 release + - - Export project to %1 - Экспорт проекта в %1 + + Env 2 slope + - - ( Fastest - biggest ) - (Быстрее - больше) + + Osc 2+3 modulation + - - ( Slowest - smallest ) - (Медленнее - меньше) + + Selected view + - - Error - Ошибка + + Osc 1 - Vol env 1 + - - Error while determining file-encoder device. Please try to choose a different output format. - Ошибка при определении кодека файла. Попробуйте выбрать другой формат вывода. + + Osc 1 - Vol env 2 + - - Rendering: %1% - Обработка: %1% + + Osc 1 - Vol LFO 1 + - - - Fader - - Set value - Установить значение + + Osc 1 - Vol LFO 2 + - - Please enter a new value between %1 and %2: - Введите новое значение от %1 до %2: + + Osc 2 - Vol env 1 + - - - FileBrowser - - User content + + Osc 2 - Vol env 2 - - Factory content + + Osc 2 - Vol LFO 1 - - Browser - Обозреватель файлов + + Osc 2 - Vol LFO 2 + - - Search - Поиск + + Osc 3 - Vol env 1 + - - Refresh list - Обновить список + + Osc 3 - Vol env 2 + - - - FileBrowserTreeWidget - - Send to active instrument-track - Отправить на активную инструментальную-дорожку + + Osc 3 - Vol LFO 1 + - - Open containing folder + + Osc 3 - Vol LFO 2 - - Song Editor - Композитор + + Osc 1 - Phs env 1 + - - BB Editor + + Osc 1 - Phs env 2 - - Send to new AudioFileProcessor instance + + Osc 1 - Phs LFO 1 - - Send to new instrument track + + Osc 1 - Phs LFO 2 - - (%2Enter) + + Osc 2 - Phs env 1 - - Send to new sample track (Shift + Enter) + + Osc 2 - Phs env 2 - - Loading sample - Загрузка сэмпла + + Osc 2 - Phs LFO 1 + - - Please wait, loading sample for preview... - Ждите, сэмпл загружается для просмотра... + + Osc 2 - Phs LFO 2 + - - Error - Ошибка + + Osc 3 - Phs env 1 + - - %1 does not appear to be a valid %2 file - %1 не похож на правильный %2 файл + + Osc 3 - Phs env 2 + - - --- Factory files --- - --- Заводские файлы --- + + Osc 3 - Phs LFO 1 + - - - FlangerControls - - Delay samples - Задержка сэмплов + + Osc 3 - Phs LFO 2 + - - LFO frequency - Частота LFO + + Osc 1 - Pit env 1 + - - Seconds - Секунды + + Osc 1 - Pit env 2 + - - Stereo phase + + Osc 1 - Pit LFO 1 - - Regen - Восстан + + Osc 1 - Pit LFO 2 + - - Noise - Шум + + Osc 2 - Pit env 1 + - - Invert - Инвертировать + + Osc 2 - Pit env 2 + - - - FlangerControlsDialog - - DELAY - Задержка + + Osc 2 - Pit LFO 1 + - - Delay time: - Время дилэя: + + Osc 2 - Pit LFO 2 + - - RATE - ЧАСТ + + Osc 3 - Pit env 1 + - - Period: - Период: + + Osc 3 - Pit env 2 + - - AMNT - ГЛУБ + + Osc 3 - Pit LFO 1 + - - Amount: - Величина: + + Osc 3 - Pit LFO 2 + - - PHASE + + Osc 1 - PW env 1 - - Phase: + + Osc 1 - PW env 2 - - FDBK - ВОЗВ + + Osc 1 - PW LFO 1 + - - Feedback amount: - Уровень возврата: + + Osc 1 - PW LFO 2 + - - NOISE - ШУМ + + Osc 3 - Sub env 1 + - - White noise amount: - Уровень белого шума: + + Osc 3 - Sub env 2 + - - Invert - Инвертировать + + Osc 3 - Sub LFO 1 + + + + + Osc 3 - Sub LFO 2 + - - - FreeBoyInstrument - - Sweep time - Время колебаний + + + Sine wave + Синусоида - - Sweep direction - Направление колебаний + + Bandlimited Triangle wave + Тембр. треугольная волна - - Sweep rate shift amount - Величина сдвига частоты колебаний + + Bandlimited Saw wave + Тембр. пило-волна - - - Wave pattern duty cycle - Рабочий цикл волны + + Bandlimited Ramp wave + Тембр. пологая волна - - Channel 1 volume - Громкость 1 канала + + Bandlimited Square wave + Тембр. квадратная волна - - - - Volume sweep direction - Объём направления колебаний + + Bandlimited Moog saw wave + Тембр. Муг пило-волна - - - - Length of each step in sweep - Длина каждого такта колебаний + + + Soft square wave + Сглаженная квадратная волна - - Channel 2 volume - Громкость 2 канала + + Absolute sine wave + Идеальная синусоида - - Channel 3 volume - Громкость 3 канала + + + Exponential wave + Экспоненциальная волна - - Channel 4 volume - Громкость 4 канала + + White noise + Белый шум - - Shift Register width - Сдвиг ширины регистра + + Digital Triangle wave + Цифровая треугольная волна - - Right output level - Правый выходной уровень + + Digital Saw wave + Цифровая пило-волна - - Left output level - Левый уровень выхода + + Digital Ramp wave + Цифровая пологая волна - - Channel 1 to SO2 (Left) - Канал 1 к SO2 (Слева) + + Digital Square wave + Цифровая квадратная волна - - Channel 2 to SO2 (Left) - Канал 2 к SO2 (Слева) + + Digital Moog saw wave + Цифровая Муг пило-волна - - Channel 3 to SO2 (Left) - Канал 3 к SO2 (Слева) + + Triangle wave + Треугольная волна - - Channel 4 to SO2 (Left) - Канал 4 к SO2 (Слева) + + Saw wave + Пилообразная волна - - Channel 1 to SO1 (Right) - Канал 1 к SO1 (Справа) + + Ramp wave + Пологая волна - - Channel 2 to SO1 (Right) - Канал 2 к SO1 (Справа) + + Square wave + Квадратная волна - - Channel 3 to SO1 (Right) - Канал 3 к SO1 (Справа) + + Moog saw wave + Муг пило-волна - - Channel 4 to SO1 (Right) - Канал 4 к SO1 (Справа) + + Abs. sine wave + Идеальная синусоида - - Treble - Верхние + + Random + Случайно - - Bass - Нижние + + Random smooth + Случайное сглаживание - FreeBoyInstrumentView + lmms::NesInstrument - - Sweep time: - Время колебаний: - - - - Sweep time - Время колебаний + + Channel 1 enable + - - Sweep rate shift amount: - Величина сдвига частоты колебаний: + + Channel 1 coarse detune + Грубая подстройка канала 1 - - Sweep rate shift amount - Величина сдвига частоты колебаний + + Channel 1 volume + Громкость 1 канала - - - Wave pattern duty cycle: - Рабочий цикл волны: + + Channel 1 envelope enable + - - - Wave pattern duty cycle - Рабочий цикл волны + + Channel 1 envelope loop + - - Square channel 1 volume: - Квадрат канал 1 громкость: + + Channel 1 envelope length + Длительность огибающей канала 1 - - Square channel 1 volume - Квадрат канал 1 громкость + + Channel 1 duty cycle + Рабочий цикл канала 1 - - - - Length of each step in sweep: - Длина каждого такта колебаний: + + Channel 1 sweep enable + - - - - Length of each step in sweep - Длина каждого такта колебаний + + Channel 1 sweep amount + Уровень колебаний канала 1 - - Square channel 2 volume: - Квадрат канал 2 громкость: + + Channel 1 sweep rate + Частота колебаний канала 1 - - Square channel 2 volume - Квадрат канал 2 громкость + + Channel 2 enable + - - Wave pattern channel volume: - Громкость канала шаблонной волны: + + Channel 2 coarse detune + - - Wave pattern channel volume - Громкость канала шаблонной волны + + Channel 2 volume + - - Noise channel volume: - Громкость канала помех: + + Channel 2 envelope enable + - - Noise channel volume - Громкость канала помех + + Channel 2 envelope loop + - - SO1 volume (Right): - Громкость SO1 (Справа): + + Channel 2 envelope length + Длительность огибающей канала 2 - - SO1 volume (Right) - Громкость SO1 (Справа) + + Channel 2 duty cycle + Рабочий цикл канала 2 - - SO2 volume (Left): - Громкость SO2 (Слева): + + Channel 2 sweep enable + - - SO2 volume (Left) - Громкость SO2 (Слева): + + Channel 2 sweep amount + Уровень колебаний канала 2 - - Treble: - Верхние: + + Channel 2 sweep rate + Частота колебаний канала 2 - - Treble - Верхние + + Channel 3 enable + - - Bass: - Нижние: + + Channel 3 coarse detune + Грубая подстройка канала 3 - - Bass - Нижние + + Channel 3 volume + Громкость 3 канала - - Sweep direction - Направление колебаний + + Channel 4 enable + - - - - - - Volume sweep direction - Объём направления колебаний + + Channel 4 volume + Громкость 4 канала - - Shift register width - Сместить ширину регистра + + Channel 4 envelope enable + - - Channel 1 to SO1 (Right) - Канал 1 к SO1 (Справа) + + Channel 4 envelope loop + - - Channel 2 to SO1 (Right) - Канал 2 к SO1 (Справа) + + Channel 4 envelope length + Длительность огибающей канала 4 - - Channel 3 to SO1 (Right) - Канал 3 к SO1 (Справа) + + Channel 4 noise mode + - - Channel 4 to SO1 (Right) - Канал 4 к SO1 (Справа) + + Channel 4 frequency mode + - - Channel 1 to SO2 (Left) - Канал 1 к SO2 (Слева) + + Channel 4 noise frequency + Частота шума канала 4 - - Channel 2 to SO2 (Left) - Канал 2 к SO2 (Слева) + + Channel 4 noise frequency sweep + Частота помех колебаний канала 4 - - Channel 3 to SO2 (Left) - Канал 3 к SO2 (Слева) + + Channel 4 quantize + - - Channel 4 to SO2 (Left) - Канал 4 к SO2 (Слева) + + Master volume + Главная громкость - - Wave pattern graph - Рисунок волны + + Vibrato + Вибрато - MixerLine - - - Channel send amount - Величина отправки канала - + lmms::OpulenzInstrument - - Move &left - Подвинуть в&лево + + Patch + Патч - - Move &right - Подвинуть в&право + + Op 1 attack + Оп 1 атака - - Rename &channel - Пере&именовать канал + + Op 1 decay + Оп 1 спад - - R&emove channel - &Удалить канал + + Op 1 sustain + Оп 1 выдержка - - Remove &unused channels - Удалить &неиспользуемые каналы + + Op 1 release + Оп 1 затухание - - Set channel color - Установить цвет канала + + Op 1 level + Оп 1 уровень - - Remove channel color - Удалить цвет канала + + Op 1 level scaling + Оп 1 увеличение уровня - - Pick random channel color - Выбрать случайный цвет канала + + Op 1 frequency multiplier + Оп 1 множитель частоты - - - MixerLineLcdSpinBox - - Assign to: - Назначить на: + + Op 1 feedback + Оп 1 возврат - - New mixer Channel - Новый канал ЭФ + + Op 1 key scaling rate + Оп 1 скорость увеличения нот - - - Mixer - - Master - Главный + + Op 1 percussive envelope + Оп 1 огибающая ударников - - - - Channel %1 - ЭФ %1 + + Op 1 tremolo + Оп 1 тремоло - - Volume - Громкость + + Op 1 vibrato + Оп 1 вибрато - - Mute - Тихо + + Op 1 waveform + Оп 1 форма волны - - Solo - Соло + + Op 2 attack + Оп 2 атака - - - MixerView - - Mixer - Микшер Эффектов + + Op 2 decay + Оп 2 спад - - Fader %1 - Регулятор ЭФ %1 + + Op 2 sustain + Оп 2 выдержка - - Mute - Заглушить + + Op 2 release + Оп 2 затухание - - Mute this mixer channel - Заглушить этот канал ЭФ + + Op 2 level + Оп 2 уровень - - Solo - Соло + + Op 2 level scaling + Оп 2 увеличение уровня - - Solo mixer channel - Соло канал ЭФ + + Op 2 frequency multiplier + Оп 2 множитель частоты - - - MixerRoute - - - Amount to send from channel %1 to channel %2 - Величина отправки с канала %1 на канал %2 + + Op 2 key scaling rate + Оп 2 скорость увеличения нот - - - GigInstrument - - Bank - Банк + + Op 2 percussive envelope + Оп 2 огибающая ударников - - Patch - Патч + + Op 2 tremolo + Оп 2 Тремоло - - Gain - Усиление + + Op 2 vibrato + Оп 2 Вибрато - - - GigInstrumentView - - - Open GIG file - Открыть GIG файл + + Op 2 waveform + Оп 2 Волна - - Choose patch - Выбрать патч + + FM + FM - - Gain: - Усиление: + + Vibrato depth + - - GIG Files (*.gig) - GIG Файлы (*.gig) + + Tremolo depth + - GuiApplication - - - Working directory - Рабочий каталог - + lmms::OrganicInstrument - - The LMMS working directory %1 does not exist. Create it now? You can change the directory later via Edit -> Settings. - Рабочий каталог LMMS (%1) не существует. Создать его? Позже вы сможете сменить его через Правка -> Параметры. - - - - Preparing UI - Подготовка UI + + Distortion + Перегруз - - Preparing song editor - Подготовка композитора + + Volume + Громкость + + + lmms::OscillatorObject - - Preparing mixer - Подготовка микшера + + Osc %1 waveform + - - Preparing controller rack - Подготовка стойки управления + + Osc %1 harmonic + - - Preparing project notes - Подготовка заметок проекта + + + Osc %1 volume + - - Preparing beat/bassline editor - Подготовка Ритм+Бас композитора + + + Osc %1 panning + - - Preparing piano roll - Подготовка редактора нот + + Osc %1 stereo detuning + - - Preparing automation editor - Подготовка редактора автоматизации + + Osc %1 coarse detuning + - - - InstrumentFunctionArpeggio - - Arpeggio - Арпеджио + + Osc %1 fine detuning left + - - Arpeggio type - Тип арпеджио + + Osc %1 fine detuning right + - - Arpeggio range - Диапазон арпеджио + + Osc %1 phase-offset + - - Note repeats + + Osc %1 stereo phase-detuning - - Cycle steps - Шагов в цикле + + Osc %1 wave shape + - - Skip rate - Частота пропуска + + Modulation type %1 + + + + lmms::PatternTrack - - Miss rate - Частость обхода + + Pattern %1 + - - Arpeggio time - Период арпеджио + + Clone of %1 + + + + lmms::PeakController - - Arpeggio gate - Шлюз арпеджио + + Peak Controller + - - Arpeggio direction - Направление арпеджио + + Peak Controller Bug + - - Arpeggio mode - Режим арпеджио + + Due to a bug in older version of LMMS, the peak controllers may not be connect properly. Please ensure that peak controllers are connected properly and re-save this file. Sorry for any inconvenience caused. + + + + lmms::PeakControllerEffectControls - - Up - Вверх + + Base value + - - Down - Вниз + + Modulation amount + - - Up and down - Вверх и вниз + + Attack + Атака - - Down and up - Вниз и вверх + + Release + Затухание - - Random - Случайно + + Treshold + Порог - - Free - Свободно + + Mute output + - - Sort - Упорядочить + + Absolute value + - - Sync - Синхронизировать + + Amount multiplicator + - InstrumentFunctionArpeggioView - - - ARPEGGIO - ARPEGGIO - + lmms::Plugin - - RANGE - RANGE + + Plugin not found + - - Arpeggio range: - Диапазон арпеджио: + + The plugin "%1" wasn't found or could not be loaded! +Reason: "%2" + - - octave(s) - Октав[а/ы] + + Error while loading plugin + - - REP + + Failed to load plugin "%1"! - - - Note repeats: + + + lmms::ReverbSCControls + + + Input gain - - time(s) - + + Size + Размер - - CYCLE - ЦИКЛ + + Color + Цвет - - Cycle notes: - Нот в цикле: + + Output gain + + + + lmms::SaControls - - note(s) - нота(ы) + + Pause + Пауза - - SKIP - ПРОПУСК + + Reference freeze + - - Skip rate: - Частота пропуска: + + Waterfall + Спад - - - - % - % + + Averaging + Усреднение - - MISS - MISS + + Stereo + Стерео - - Miss rate: - Частость обхода: + + Peak hold + - - TIME - ВРЕМЯ + + Logarithmic frequency + - - Arpeggio time: - Период арпеджио: + + Logarithmic amplitude + - - ms - мс + + Frequency range + - - GATE - GATE + + Amplitude range + - - Arpeggio gate: - Шлюз арпеджио: + + FFT block size + - - Chord: - Аккорд: + + FFT window type + - - Direction: - Направление: + + Peak envelope resolution + - - Mode: - Режим: + + Spectrum display resolution + - - - InstrumentFunctionNoteStacking - - octave - Октава + + Peak decay multiplier + - - - Major - Мажорный + + Averaging weight + - - Majb5 - Majb5 + + Waterfall history size + - - minor - минорный + + Waterfall gamma correction + - - minb5 - minb5 + + FFT window overlap + - - sus2 - sus2 + + FFT zero padding + - - sus4 - sus4 + + + Full (auto) + - - aug - aug + + + + Audible + Слышимые - - augsus4 - augsus4 + + Bass + Басы - - tri - tri + + Mids + Средние - - 6 - 6 + + High + Высокие - - 6sus4 - 6sus4 + + Extended + Расширенно - - 6add9 - 6add9 + + Loud + Громкие - - m6 - m6 + + Silent + Тихие - - m6add9 - m6add9 + + (High time res.) + - - 7 - 7 + + (High freq. res.) + - - 7sus4 - 7sus4 + + Rectangular (Off) + - - 7#5 - 7#5 + + + Blackman-Harris (Default) + - - 7b5 - 7b5 + + Hamming + Хэмминг (Сглажив) - - 7#9 - 7#9 + + Hanning + Хэннинга (Сглажив) + + + lmms::SampleClip - - 7b9 - 7b9 + + Sample not found + + + + lmms::SampleTrack - - 7#5#9 - 7#5#9 + + Volume + Громкость - - 7#5b9 - 7#5b9 + + Panning + Баланс - - 7b5b9 - 7b5b9 + + Mixer channel + - - 7add11 - 7add11 + + + Sample track + + + + lmms::Scale - - 7add13 - 7add13 + + empty + пусто + + + lmms::Sf2Instrument - - 7#11 - 7#11 + + Bank + Банк - - Maj7 - Maj7 + + Patch + Патч - - Maj7b5 - Maj7b5 + + Gain + Усиление - - Maj7#5 - Maj7#5 + + Reverb + Реверберация - - Maj7#11 - Maj7#11 + + Reverb room size + - - Maj7add13 - Maj7add13 + + Reverb damping + - - m7 - m7 + + Reverb width + - - m7b5 - m7b5 + + Reverb level + - - m7b9 - m7b9 + + Chorus + Хорус - - m7add11 - m7add11 + + Chorus voices + - - m7add13 - m7add13 + + Chorus level + - - m-Maj7 - m-Maj7 + + Chorus speed + - - m-Maj7add11 - m-Maj7add11 + + Chorus depth + - - m-Maj7add13 - m-Maj7add13 + + A soundfont %1 could not be loaded. + + + + lmms::SfxrInstrument - - 9 - 9 + + Wave + Волна + + + lmms::SidInstrument - - 9sus4 - 9sus4 + + Cutoff frequency + - - add9 - add9 + + Resonance + Резонанс - - 9#5 - 9#5 + + Filter type + - - 9b5 - 9b5 + + Voice 3 off + - - 9#11 - 9#11 + + Volume + Громкость - - 9b13 - 9b13 + + Chip model + + + + lmms::SlicerT - - Maj9 - Maj9 + + Note threshold + - - Maj9sus4 - Maj9sus4 + + FadeOut + - - Maj9#5 - Maj9#5 + + Original bpm + - - Maj9#11 - Maj9#11 + + Slice snap + - - m9 - m9 + + BPM sync + - - madd9 - madd9 + + + slice_%1 + - - m9b5 - m9b5 + + Sample not found: %1 + + + + lmms::Song - - m9-Maj7 - m9-Maj7 + + Tempo + Темп - - 11 - 11 + + Master volume + - - 11b9 - 11b9 + + Master pitch + - - Maj11 - Maj11 + + Aborting project load + - - m11 - m11 + + Project file contains local paths to plugins, which could be used to run malicious code. + - - m-Maj11 - m-Maj11 + + Can't load project: Project file contains local paths to plugins. + - - 13 - 13 + + LMMS Error report + - - 13#9 - 13#9 + + (repeated %1 times) + - - 13b9 - 13b9 + + The following errors occurred while loading: + + + + lmms::StereoEnhancerControls - - 13b5b9 - 13b5b9 + + Width + Ширина + + + lmms::StereoMatrixControls - - Maj13 - Maj13 + + Left to Left + - - m13 - m13 + + Left to Right + - - m-Maj13 - m-Maj13 + + Right to Left + - - Harmonic minor - Гармонический минор + + Right to Right + + + + lmms::Track - - Melodic minor - Мелодический минор + + Mute + Заглушить - - Whole tone - Целый тон + + Solo + Соло + + + lmms::TrackContainer - - Diminished - Пониженный + + Couldn't import file + - - Major pentatonic - Мажорная пентатоника + + Couldn't find a filter for importing file %1. +You should convert this file into a format supported by LMMS using another software. + - - Minor pentatonic - Минорная пентатоника + + Couldn't open file + - - Jap in sen - Японский лад Ин Сен + + Couldn't open file %1 for reading. +Please make sure you have read-permission to the file and the directory containing the file and try again! + - - Major bebop - Мажор бибоп + + Loading project... + - - Dominant bebop - Бибоп доминанта + + + Cancel + Отмена - - Blues - Блюз + + + Please wait... + - - Arabic - Арабский + + Loading cancelled + - - Enigmatic - Загадочный + + Project loading was cancelled. + - - Neopolitan - Неополитанский + + Loading Track %1 (%2/Total %3) + - - Neopolitan minor - Неополитанский минор + + Importing MIDI-file... + + + + lmms::TripleOscillator - - Hungarian minor - Венгерский минор + + Sample not found + + + + lmms::VecControls - - Dorian - Дорийский лад + + Display persistence amount + - - Phrygian - Фригийский лад + + Logarithmic scale + - - Lydian - Лидийский лад + + High quality + + + + lmms::VestigeInstrument - - Mixolydian - Миксолидийский лад + + Loading plugin + - - Aeolian - Эолийский лад + + Please wait while loading the VST plugin... + + + + lmms::Vibed - - Locrian - Локрийский лад + + String %1 volume + - - Minor - Минор + + String %1 stiffness + - - Chromatic - Хроматический + + Pick %1 position + - - Half-Whole Diminished - Вполовину уменьшенный + + Pickup %1 position + - - 5 - 5 + + String %1 panning + - - Phrygian dominant - Фригийская доминанта + + String %1 detune + - - Persian - Персидский + + String %1 fuzziness + - - Chords - Аккорды + + String %1 length + - - Chord type - Тип аккорда + + Impulse %1 + - - Chord range - Диапазон аккорда + + String %1 + - InstrumentFunctionNoteStackingView + lmms::VoiceObject - - STACKING - СКЛАДЫВ. + + Voice %1 pulse width + - - Chord: - Аккорд: + + Voice %1 attack + - - RANGE - ДИАП + + Voice %1 decay + - - Chord range: - Диапазон аккорда: + + Voice %1 sustain + - - octave(s) - Октав[а/ы] + + Voice %1 release + - - - InstrumentMidiIOView - - ENABLE MIDI INPUT - ВКЛ MIDI ВВОД + + Voice %1 coarse detuning + - - ENABLE MIDI OUTPUT - ВКЛ MIDI ВЫВОД + + Voice %1 wave shape + - - - CHAN - This string must be be short, its width must be less than * width of LCD spin-box of two digits + + Voice %1 sync - - - VELOC - This string must be be short, its width must be less than * width of LCD spin-box of three digits + + Voice %1 ring modulate - - PROG - This string must be be short, its width must be less than the * width of LCD spin-box of three digits + + Voice %1 filtered - - NOTE - This string must be be short, its width must be less than * width of LCD spin-box of three digits - НОТА + + Voice %1 test + + + + lmms::VstPlugin - - MIDI devices to receive MIDI events from - MIDI-устройства — источники событий + + + The VST plugin %1 could not be loaded. + - - MIDI devices to send MIDI events to - MIDI-устройства для отправки событий на них + + Open Preset + - - CUSTOM BASE VELOCITY - ПРОИЗВОЛЬНАЯ БАЗОВАЯ СКОРОСТЬ + + + VST Plugin Preset (*.fxp *.fxb) + - - Specify the velocity normalization base for MIDI-based instruments at 100% note velocity. - Указать нормализацию базовой силы нажатия MIDI-инструментов на 100% силы нажатия. + + : default + - - BASE VELOCITY - БАЗОВ. СКОРОСТЬ + + Save Preset + - - - InstrumentTuningView - - MASTER PITCH - ОСНОВНОЙ ТОН + + .fxp + .fxp - - Enables the use of master pitch - Использовать основной тон + + .FXP + .FXP - - - InstrumentSoundShaping - - VOLUME - ГРОМКОСТЬ + + .FXB + .FXB - - Volume - Громкость + + .fxb + .fxb - - CUTOFF - CUTOFF + + Loading plugin + - - - Cutoff frequency - Срез частоты + + Please wait while loading VST plugin... + + + + lmms::WatsynInstrument - - RESO - РЕЗО + + Volume A1 + - - Resonance - Резонанс + + Volume A2 + - - Envelopes/LFOs - Огибание/LFO + + Volume B1 + - - Filter type - Тип фильтра + + Volume B2 + - - Q/Resonance - Ур/Резонанса + + Panning A1 + - - Low-pass - Уровень низких + + Panning A2 + - - Hi-pass - Уровень высоких + + Panning B1 + - - Band-pass csg - Полосовой csg + + Panning B2 + - - Band-pass czpg - Полосовой czpg + + Freq. multiplier A1 + - - Notch - Notch (вырез) + + Freq. multiplier A2 + - - All-pass - Пропускать все + + Freq. multiplier B1 + - - Moog - Муг + + Freq. multiplier B2 + + + + + Left detune A1 + + + + + Left detune A2 + - - 2x Low-pass - 2x ФНЧ + + Left detune B1 + - - RC Low-pass 12 dB/oct - RC ФНЧ 12дБ/окт + + Left detune B2 + - - RC Band-pass 12 dB/oct - RC полосовой 12 дБ/окт + + Right detune A1 + - - RC High-pass 12 dB/oct - RC ФВЧ 12 дБ/окт + + Right detune A2 + - - RC Low-pass 24 dB/oct - RC ФНЧ 24 дБ/окт + + Right detune B1 + - - RC Band-pass 24 dB/oct - RC полосовой 24 дБ/окт + + Right detune B2 + - - RC High-pass 24 dB/oct - RC ФВЧ 24 дБ/окт + + A-B Mix + - - Vocal Formant - Формантный + + A-B Mix envelope amount + - - 2x Moog - 2x Муг + + A-B Mix envelope attack + - - SV Low-pass - SV нижних частот + + A-B Mix envelope hold + - - SV Band-pass - SV полосовой + + A-B Mix envelope decay + - - SV High-pass - SV верхних частот + + A1-B2 Crosstalk + - - SV Notch - SV Notch (вырез) + + A2-A1 modulation + - - Fast Formant - Быстрый формантный + + B2-B1 modulation + - - Tripole - Трёхполюсный + + Selected graph + - InstrumentSoundShapingView + lmms::WaveShaperControls - - TARGET - РАЗМЕТКА + + Input gain + - - FILTER - ФИЛЬТР + + Output gain + + + + lmms::Xpressive - - FREQ - ЧАСТ + + Selected graph + - - Cutoff frequency: - Частота среза: + + A1 + A1 - - Hz - Гц + + A2 + A2 - - Q/RESO - УР/РЕЗО + + A3 + A3 - - Q/Resonance: - УР/Резонанса: + + W1 smoothing + - - Envelopes, LFOs and filters are not supported by the current instrument. - Огибающие, LFO и фильтры не поддерживаются этим инструментом. + + W2 smoothing + - - - InstrumentTrack - - - unnamed_track - дорожка без имени + + W3 smoothing + - - Base note - Опорная нота + + Panning 1 + - - First note + + Panning 2 - - Last note - По посл. ноте + + Rel trans + + + + lmms::ZynAddSubFxInstrument - - Volume - Громкость + + Portamento + Портаменто - - Panning - Стерео + + Filter frequency + - - Pitch - Тональность + + Filter resonance + - - Pitch range - Диапазон тональности + + Bandwidth + Полоса пропускания - - Mixer channel - Канал ЭФ + + FM gain + - - Master pitch - Основной тон + + Resonance center frequency + - - Enable/Disable MIDI CC + + Resonance bandwidth - - CC Controller %1 + + Forward MIDI control change events + + + lmms::graphModel - - - Default preset - Основная предустановка + + Graph + Граф - InstrumentTrackView + lmms::gui::AmplifierControlDialog - - Volume - Громкость + + VOL + ГРОМК - + Volume: - Уровень громкости: - - - - VOL - УР + Громкость: - - Panning - Баланс + + PAN + БАЛ - + Panning: Баланс: - - PAN - БАЛ - - - - MIDI - MIDI + + LEFT + СЛЕВА - - Input - Вход + + Left gain: + - - Output - Выход + + RIGHT + СПРАВА - - Open/Close MIDI CC Rack + + Right gain: - - - Channel %1: %2 - ЭФ %1: %2 - - InstrumentTrackWindow - - - GENERAL SETTINGS - ОСНОВНЫЕ НАСТРОЙКИ - - - - Volume - Громкость - + lmms::gui::AudioAlsaSetupWidget - - Volume: - Громкость: + + Device + - - VOL - ГРОМ + + Channels + + + + lmms::gui::AudioFileProcessorView - - Panning - Баланс + + Open sample + - - Panning: - Баланс: + + Reverse sample + - - PAN - БАЛ + + Disable loop + - - Pitch - Тональность + + Enable loop + - - Pitch: - Тональность: + + Enable ping-pong loop + - - cents - сотые + + Continue sample playback across notes + - - PITCH - ТОН + + Amplify: + Усиление: - - Pitch range (semitones) - Диапазон тональности (полутона) + + Start point: + - - RANGE - ДИАП + + End point: + - - Mixer channel - Канал ЭФ + + Loopback point: + + + + lmms::gui::AudioFileProcessorWaveView - - CHANNEL - ЭФ + + Sample length: + + + + lmms::gui::AutomationClipView - - Save current instrument track settings in a preset file - Сохранить текущую инструментаьную дорожку в файл предустановок + + Open in Automation editor + - - SAVE - Сохранить + + Clear + Очистить - - Envelope, filter & LFO - Огибающ., фильтр и LFO + + Reset name + - - Chord stacking & arpeggio - Аккорды и арпеджио + + Change name + - - Effects - Эффекты + + Set/clear record + - - MIDI - MIDI + + Flip Vertically (Visible) + - - Miscellaneous - Разное + + Flip Horizontally (Visible) + - - Save preset - Сохранить предустановку + + %1 Connections + - - XML preset file (*.xpf) - XML файл настроек (*.xpf) + + Disconnect "%1" + - - Plugin - Модуль + + Model is already connected to this clip. + - JackApplicationW + lmms::gui::AutomationEditor - - NSM applications cannot use abstract or absolute paths + + Edit Value - - NSM applications cannot use CLI arguments + + New outValue - - You need to save the current Carla project before NSM can be used + + New inValue + + + + + Please open an automation clip by double-clicking on it! - JuceAboutW + lmms::gui::AutomationEditorWindow - - About JUCE - О JUCE + + Play/pause current clip (Space) + - - <b>About JUCE</b> - <b>О JUCE</b> + + Stop playing of current clip (Space) + - - This program uses JUCE version 3.x.x. - Эта программа использует JUCE версии 3.*.*. + + Edit actions + - - JUCE (Jules' Utility Class Extensions) is an all-encompassing C++ class library for developing cross-platform software. - -It contains pretty much everything you're likely to need to create most applications, and is particularly well-suited for building highly-customised GUIs, and for handling graphics and sound. - -JUCE is licensed under the GNU Public Licence version 2.0. -One module (juce_core) is permissively licensed under the ISC. - -Copyright (C) 2017 ROLI Ltd. - JUCE (Jules' Utility Class Extensions) — это всеобъемлющая библиотека классов C++ для разработки кроссплатформенного ПО. - -Она содержит практически всё, что может понадобиться для создания большинства приложений, и особенно хорошо подходит для настраиваемых графических интерфейсов, обработки графики и звука. - -JUCE лицензируется в соответствии с GNU Public License версии 2.0. -Один модуль (juce_core) лицензирован в соответствии с ISC. - -Copyright © 2017 ROLI Ltd. + + Draw mode (Shift+D) + - - This program uses JUCE version %1. - Эта программа использует JUCE версии %1. + + Erase mode (Shift+E) + - - - Knob - - Set linear - Установить линейно + + Draw outValues mode (Shift+C) + - - Set logarithmic - Установить логарифмически + + Edit tangents mode (Shift+T) + - - - Set value - Установить величину + + Flip vertically + - - Please enter a new value between -96.0 dBFS and 6.0 dBFS: - Введите новое значение от –96,0 дБВ до 6,0 дБВ: + + Flip horizontally + - - Please enter a new value between %1 and %2: - Введите новое значение от %1 до %2: + + Interpolation controls + - - - LadspaControl - - Link channels - Связать каналы + + Discrete progression + - - - LadspaControlDialog - - Link Channels - Связать каналы + + Linear progression + - - Channel - Канал + + Cubic Hermite progression + - - - LadspaControlView - - Link channels - Связать каналы + + Tension value for spline + - - Value: - Значение: + + Tension: + Жёсткость: - - - LadspaEffect - - Unknown LADSPA plugin %1 requested. - Запрошен неизвестный модуль LADSPA «%1». + + Zoom controls + - - - LcdFloatSpinBox - - Set value - Установить значение + + Horizontal zooming + - - Please enter a new value between %1 and %2: - Новое значение от %1 до %2: + + Vertical zooming + - - - LcdSpinBox - - Set value - Установить величину + + Quantization controls + - - Please enter a new value between %1 and %2: - Введите новое значение от %1 до %2: + + Quantization + Квантование - - - LeftRightNav - - - - Previous - Предыдущий + + Clear ghost notes + - - - - Next - Следующий + + + Automation Editor - no clip + - - Previous (%1) - Предыдущий (%1) + + + Automation Editor - %1 + - - Next (%1) - Следующий (%1) + + Model is already connected to this clip. + - LfoController - - - LFO Controller - Контроллер LFO - + lmms::gui::BassBoosterControlDialog - - Base value - Основное значение + + FREQ + ЧАСТ - - Oscillator speed - Скорость волны + + Frequency: + Частота: - - Oscillator amount - Размер волны + + GAIN + УСИЛ - - Oscillator phase - Фаза волны + + Gain: + Усиление: - - Oscillator waveform - Форма волны + + RATIO + ОТНОШ - - Frequency Multiplier - Множитель частоты + + Ratio: + Отношение: - LfoControllerDialog + lmms::gui::BitInvaderView - - LFO - LFO + + Sample length + - - BASE - BASE + + Draw your own waveform here by dragging your mouse on this graph. + - - Base: - Основа: + + + Sine wave + - - FREQ - FREQ + + + Triangle wave + - - LFO frequency: - Частота LFO: + + + Saw wave + - - AMNT - ГЛУБ + + + Square wave + - - Modulation amount: - Глубина модуляции: + + + White noise + - - PHS - ФАЗА + + + User-defined wave + - - Phase offset: - Сдвиг фазы: + + + Smooth waveform + - - degrees - градусы + + Interpolation + Интерполяция - - Sine wave - Синусоида + + Normalize + Нормализовать + + + lmms::gui::BitcrushControlDialog - - Triangle wave - Треугольная волна + + IN + ВХ - - Saw wave - Пило-волна + + OUT + ВЫХ - - Square wave - Квадрат + + + GAIN + УСИЛ - - Moog saw wave - Муг пило-волна + + Input gain: + - - Exponential wave - Экспоненциальная волна + + NOISE + ШУМ + + + + Input noise: + - - White noise - Белый шум + + Output gain: + - - User-defined shape. -Double click to pick a file. - Пользовательская форма. -Выбрать файл двойным кликом. + + CLIP + СРЕЗ - - Mutliply modulation frequency by 1 - Умножить частоту модуляции на 1 + + Output clip: + - - Mutliply modulation frequency by 100 - Умножить частоту модуляции на 100 + + Rate enabled + - - Divide modulation frequency by 100 - Разделить частоту модуляции на 100 + + Enable sample-rate crushing + - - - Engine - - Generating wavetables - Генерация волновых таблиц + + Depth enabled + - - Initializing data structures - Инициализация структуры данных + + Enable bit-depth crushing + - - Opening audio and midi devices - Открываем аудио и MIDI-устройства + + FREQ + ЧАСТ - - Launching mixer threads - Запускаем потоки микшера + + Sample rate: + - - - MainWindow - - Configuration file - Файл настроек + + STEREO + СТЕРЕО - - Error while parsing configuration file at line %1:%2: %3 - Ошибка во время обработки файла настроек в строке %1:%2: %3 + + Stereo difference: + - - Could not open file - Не могу открыть файл + + QUANT + КВАНТ - - Could not open file %1 for writing. -Please make sure you have write permission to the file and the directory containing the file and try again! - Невозможно открыть файл %1 для записи. Пожалуйста, убедитесь, что у вас есть разрешение на запись в файл и содержащую его директорию, и попробуйте снова. + + Levels: + Уровни: + + + lmms::gui::CPULoadWidget - - Project recovery - Восстановление проекта + + DSP total: %1% + - - There is a recovery file present. It looks like the last session did not end properly or another instance of LMMS is already running. Do you want to recover the project of this session? - Остался файл для восстановления. Похоже последняя сессия не была нормально завершена или запущен ещё один процесс LMMS. -Хотите восстановить проект из этой сессии? + + - Notes and setup: %1% + - - - Recover - Восстановить + + - Instruments: %1% + - - Recover the file. Please don't run multiple instances of LMMS when you do this. - Восстановить файл. Пожалуйства, не запускайте несколько процессов ЛММС во время этого. + + - Effects: %1% + - - - Discard - Отклонить + + - Mixing: %1% + + + + lmms::gui::CarlaInstrumentView - - Launch a default session and delete the restored files. This is not reversible. - Запустить обычную сессию и удалить восстановленные файлы. Это безвозвратно. + + Show GUI + - - Version %1 - Версия %1 + + Click here to show or hide the graphical user interface (GUI) of Carla. + - - Preparing plugin browser - Подготовка обзора плагинов + + Params + - - Preparing file browsers - Подготовка обзора файлов + + Available from Carla version 2.1 and up. + + + + lmms::gui::CarlaParamsView - - My Projects - Мои проекты + + Search.. + Поиск.. - - My Samples - Мои сэмплы + + Clear filter text + - - My Presets - Мои предустановки + + Only show knobs with a connection. + - - My Home - Моя домашняя папка + + - Parameters + + + + lmms::gui::ClipView - - Root directory - Корневая директория + + Current position + - - Volumes - Громкости + + Current length + - - My Computer - Мой компьютер + + + %1:%2 (%3:%4 to %5:%6) + - - &File - &Файл + + Press <%1> and drag to make a copy. + - - &New - &Создать + + Press <%1> for free resizing. + - - &Open... - &Открыть... + + Hint + Подсказка - - Loading background picture - Загружается фоновая картинка + + Delete (middle mousebutton) + - - &Save - Со&хранить + + Delete selection (middle mousebutton) + - - Save &As... - Сохранить &как... + + Cut + Вырезать - - Save as New &Version - Сохранить как новую &версию + + Cut selection + - - Save as default template - Сохранить как начальный шаблон + + Merge Selection + - - Import... - Импорт... + + Copy + Копировать - - E&xport... - &Экспорт... + + Copy selection + - - E&xport Tracks... - Экспорт &дорожек... + + Paste + Вставить - - Export &MIDI... - Экс&порт MIDI... + + Mute/unmute (<%1> + middle click) + - - &Quit - В&ыход + + Mute/unmute selection (<%1> + middle click) + - - &Edit - &Правка + + Clip color + - - Undo - Отменить действие + + Change + Изменить - - Redo - Вернуть действие + + Reset + Сброс - - Settings - Параметры + + Pick random + + + + lmms::gui::CompressorControlDialog - - &View - &Вид + + Threshold: + Пороговый уровень: - - &Tools - С&ервис + + Volume at which the compression begins to take place + - - &Help - &Справка + + Ratio: + Отношение: - - Online Help - Помощь онлайн + + How far the compressor must turn the volume down after crossing the threshold + - - Help - Справка + + Attack: + Атака: - - About - О программе + + Speed at which the compressor starts to compress the audio + - - Create new project - Создать новый проект + + Release: + Затухание: - - Create new project from template - Создать новый проект по шаблону + + Speed at which the compressor ceases to compress the audio + - - Open existing project - Открыть существующий проект + + Knee: + - - Recently opened projects - Недавние проекты + + Smooth out the gain reduction curve around the threshold + - - Save current project - Сохранить текущий проект + + Range: + Диапазон: - - Export current project - Экспорт проекта + + Maximum gain reduction + - - Metronome - Метроном + + Lookahead Length: + - - - Song Editor - Композитор + + How long the compressor has to react to the sidechain signal ahead of time + - - - Beat+Bassline Editor - Ритм+Бас Композитор + + Hold: + Удержание: - - - Piano Roll - Редактор нот + + Delay between attack and release stages + - - - Automation Editor - Редактор автоматизации + + RMS Size: + - - - Mixer - Микшер Эффектов + + Size of the RMS buffer + - - Show/hide controller rack - Показать/скрыть стойку контроллеров + + Input Balance: + - - Show/hide project notes - Показать/скрыть Заметки к проекту + + Bias the input audio to the left/right or mid/side + - - Untitled - Без названия + + Output Balance: + - - Recover session. Please save your work! - Восстановление сессии. Пожалуйста, сохраните свою работу! + + Bias the output audio to the left/right or mid/side + - - LMMS %1 - LMMS %1 + + Stereo Balance: + - - Recovered project not saved - Восстановленный проект не сохранён. + + Bias the sidechain signal to the left/right or mid/side + - - This project was recovered from the previous session. It is currently unsaved and will be lost if you don't save it. Do you want to save it now? - Проект был восстановлен из предыдущей сессии. Сейчас он не сохранён и будет потерян, если его не сохранить. -Хотите сохранить его сейчас? + + Stereo Link Blend: + - - Project not saved - Проект не сохранён + + Blend between unlinked/maximum/average/minimum stereo linking modes + - - The current project was modified since last saving. Do you want to save it now? - Проект был изменён с момента последнего сохранения. Сохранить его сейчас? + + Tilt Gain: + - - Open Project - Открыть проект + + Bias the sidechain signal to the low or high frequencies. -6 db is lowpass, 6 db is highpass. + - - LMMS (*.mmp *.mmpz) - LMMS (*.mmp *.mmpz) + + Tilt Frequency: + - - Save Project - Сохранить проект + + Center frequency of sidechain tilt filter + - - LMMS Project - ЛММС Проект + + Mix: + Микс: - - LMMS Project Template - Шаблон ЛММС Проекта + + Balance between wet and dry signals + - - Save project template - Сохранить шаблон проекта + + Auto Attack: + - - Overwrite default template? - Перезаписать обычный шаблон? + + Automatically control attack value depending on crest factor + - - This will overwrite your current default template. - Это перезапишет текущий обычный шаблон. + + Auto Release: + - - Help not available - Справка недоступна + + Automatically control release value depending on crest factor + - - Currently there's no help available in LMMS. -Please visit http://lmms.sf.net/wiki for documentation on LMMS. - Пока что справка для LMMS не написана. -Вероятно, Вы сможете найти нужные материалы на http://lmms.sf.net/wiki . + + Output gain + - - Controller Rack - Стойка контроллеров + + + Gain + Усиление - - Project Notes - Заметки к проекту + + Output volume + - - Fullscreen - На весь экран + + Input gain + - - Volume as dBFS - Громкость в дБ + + Input volume + - - Smooth scroll - Плавная прокрутка + + Root Mean Square + - - Enable note labels in piano roll - Включить обозначение нот в музыкальном редакторе + + Use RMS of the input + - - MIDI File (*.mid) - MIDI-файл (*.mid) + + Peak + Пик - - - untitled - без названия + + Use absolute value of the input + - - - Select file for project-export... - Выбор файла для экспорта проекта... + + Left/Right + Левый/правый - - Select directory for writing exported tracks... - Выберите папку для записи экспортированных дорожек... + + Compress left and right audio + - - Save project - Сохранить проект + + Mid/Side + Середина/стороны - - Project saved - Проект сохранён + + Compress mid and side audio + - - The project %1 is now saved. - Проект %1 сохранён. + + Compressor + Компрессор - - Project NOT saved. - Проект НЕ СОХРАНЁН. + + Compress the audio + - - The project %1 was not saved! - Проект %1 не был сохранён! + + Limiter + Лимитер - - Import file - Импорт файла + + Set Ratio to infinity (is not guaranteed to limit audio volume) + - - MIDI sequences - MIDI-последовательности + + Unlinked + - - Hydrogen projects - Hydrogen проекты + + Compress each channel separately + - - All file types - Все типы файлов + + Maximum + Максимум - - - MeterDialog - - - Meter Numerator - Доли + + Compress based on the loudest channel + - - Meter numerator - Число долей + + Average + Среднее - - - Meter Denominator - Длительность + + Compress based on the averaged channel volume + - - Meter denominator - Длительность доли + + Minimum + Минимум - - TIME SIG - ТАКТ + + Compress based on the quietest channel + - - - MeterModel - - Numerator - Число долей + + Blend + Смешать - - Denominator - Длительность доли + + Blend between stereo linking modes + - - - MidiCCRackView - - - MIDI CC Rack - %1 + + Auto Makeup Gain - - MIDI CC Knobs: + + Automatically change makeup gain depending on threshold, knee, and ratio settings - - CC %1 + + + Soft Clip - - - MidiController - - MIDI Controller - Контроллер MIDI + + Play the delta signal + - - unnamed_midi_controller - MIDI-контроллер без имени + + Use the compressor's output as the sidechain input + - - - MidiImport - - - Setup incomplete - Установка не завершена + + Lookahead Enabled + - - You have not set up a default soundfont in the settings dialog (Edit->Settings). Therefore no sound will be played back after importing this MIDI file. You should download a General MIDI soundfont, specify it in settings dialog and try again. - Вы не установили основной SoundFont в настройках (Правка -> Параметры). Поэтому звук не будет воспроизводиться после импортирования этого MIDI-файла. Вам следует загрузить General MIDI SoundFont, определить его в настройках и попробовать снова. + + Enable Lookahead, which introduces 20 milliseconds of latency + + + + lmms::gui::ControllerConnectionDialog - - You did not compile LMMS with support for SoundFont2 player, which is used to add default sound to imported MIDI files. Therefore no sound will be played back after importing this MIDI file. - Вы не включили поддержку проигрывателя SoundFont2 при компиляции LMMS, он используется для добавления основного звука в импортируемые MIDI-файлы, поэтому звука не будет после импорта этого MIDI-файла. + + Connection Settings + - - MIDI Time Signature Numerator - Число долей времени MIDI + + MIDI CONTROLLER + - - MIDI Time Signature Denominator - Длительность доли времени MIDI + + Input channel + - - Numerator - Число долей + + CHANNEL + КАНАЛ - - Denominator - Длительность доли + + Input controller + - - Track - Дорожка + + CONTROLLER + КОНТРОЛЛЕР - - - MidiJack - - JACK server down - When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (title) - JACK-сервер не доступен + + + Auto Detect + - - The JACK server seems to be shuted down. - When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (dialog message) - JACK-сервер, похоже, не запущен. + + MIDI-devices to receive MIDI-events from + - - - MidiPatternW - - MIDI Pattern + + USER CONTROLLER - - Time Signature: + + MAPPING FUNCTION - - - - 1/4 - 1/4 + + OK + ОК - - 2/4 - 2/4 + + Cancel + Отмена - - 3/4 - 3/4 + + LMMS + LMMS - - 4/4 - 4/4 + + Cycle Detected. + + + + lmms::gui::ControllerRackView - - 5/4 - 5/4 + + Controller Rack + - - 6/4 - 6/4 + + Add + Добавить - - Measures: + + Confirm Delete - - - - 1 - 1 + + Confirm delete? There are existing connection(s) associated with this controller. There is no way to undo. + + + + lmms::gui::ControllerView - - 2 - 2 + + Controls + Контроль - - 3 - 3 + + Rename controller + - - 4 - 4 + + Enter the new name for this controller + - - 5 - 5 + + LFO + ГНЧ - - 6 - 6 + + Move &up + - - 7 - 7 + + Move &down + - - 8 - 8 + + &Remove this controller + - - 9 - 9 + + Re&name this controller + + + + lmms::gui::CrossoverEQControlDialog - - 10 - 10 + + Band 1/2 crossover: + - - 11 - 11 + + Band 2/3 crossover: + - - 12 - 12 + + Band 3/4 crossover: + - - 13 - 13 + + Band 1 gain + - - 14 - 14 + + Band 1 gain: + - - 15 - 15 + + Band 2 gain + - - 16 - 16 + + Band 2 gain: + - - Default Length: + + Band 3 gain - - - 1/16 - 1/16 + + Band 3 gain: + - - - 1/15 - 1/15 + + Band 4 gain + - - - 1/12 - 1/12 + + Band 4 gain: + - - - 1/9 - 1/9 + + Band 1 mute + - - - 1/8 - 1/8 + + Mute band 1 + - - - 1/6 - 1/6 + + Band 2 mute + - - - 1/3 - 1/3 + + Mute band 2 + - - - 1/2 - 1/2 + + Band 3 mute + - - Quantize: + + Mute band 3 - - &File - &Файл + + Band 4 mute + - - &Edit - &Правка + + Mute band 4 + + + + lmms::gui::DelayControlsDialog - - &Quit - В&ыход + + DELAY + ЗАДЕРЖ - - &Insert Mode + + Delay time - - F + + FDBK - - &Velocity Mode + + Feedback amount - - D - Ре-диез D + + RATE + ЧАСТ - - Select All - Выбрать всё + + LFO frequency + - - A - Ля диез A + + AMNT + ГЛУБ - - - MidiPort - - Input channel - Канал входа + + LFO amount + - - Output channel - Канал выхода + + Out gain + - - Input controller - Контроллер входа + + Gain + Усиление + + + lmms::gui::DispersionControlDialog - - Output controller - Контроллер выхода + + AMOUNT + - - Fixed input velocity - Постоянная скорость ввода + + Number of all-pass filters + - - Fixed output velocity - Постоянная скорость вывода + + FREQ + - - Fixed output note - Постоянный вывод нот + + Frequency: + - - Output MIDI program - Программа для вывода MIDI + + RESO + - - Base velocity - Базовая скорость + + Resonance: + - - Receive MIDI-events - Принимать события MIDI + + FEED + - - Send MIDI-events - Отправлять события MIDI + + Feedback: + - - - MidiSetupWidget - - Device - Устройство + + DC Offset Removal + + + + + Remove DC Offset + - MonstroInstrument + lmms::gui::DualFilterControlDialog - - Osc 1 volume - Ген 1 громкость + + + FREQ + ЧАСТ - - Osc 1 panning - Ген 1 баланс + + + Cutoff frequency + - - Osc 1 coarse detune - Ген 1 грубая подстройка + + + RESO + РЕЗО - - Osc 1 fine detune left - Ген 1 точная подстройка слева + + + Resonance + Резонанс - - Osc 1 fine detune right - Ген 1 точная подстройка справа + + + GAIN + УСИЛ - - Osc 1 stereo phase offset - Ген 1 сдвиг стерео-фазы + + + Gain + Усиление - - Osc 1 pulse width - Осц 1 длина импульса + + MIX + МИКС - - Osc 1 sync send on rise - Осц 1 посыл синхро на подъёме + + Mix + Микс - - Osc 1 sync send on fall - Осц 1 посыл синхро на спаде + + Filter 1 enabled + - - Osc 2 volume - Ген 2 громкость + + Filter 2 enabled + - - Osc 2 panning - Ген 2 баланс + + Enable/disable filter 1 + - - Osc 2 coarse detune - Ген 2 грубая подстройка + + Enable/disable filter 2 + + + + lmms::gui::DynProcControlDialog - - Osc 2 fine detune left - Ген 2 точная подстройка слева + + INPUT + ВХОД - - Osc 2 fine detune right - Ген 2 точная подстройка справа + + Input gain: + - - Osc 2 stereo phase offset - Ген 2 сдвиг стерео-фазы + + OUTPUT + ВЫХОД - - Osc 2 waveform - Осц 2 форма волны + + Output gain: + - - Osc 2 sync hard - Осц 2 синхро сильная + + ATTACK + АТАКА - - Osc 2 sync reverse - Осц 2 синхро обратная + + Peak attack time: + - - Osc 3 volume - Ген 3 громкость + + RELEASE + ЗАТУХАНИЕ - - Osc 3 panning - Ген 3 баланс + + Peak release time: + - - Osc 3 coarse detune - Ген 3 грубая подстройка + + + Reset wavegraph + - - Osc 3 Stereo phase offset - Ген 3 сдвиг стерео-фазы + + + Smooth wavegraph + - - Osc 3 sub-oscillator mix - Осц 3 доп-осциллятор микс + + + Increase wavegraph amplitude by 1 dB + - - Osc 3 waveform 1 - Осц 3 форма волны 1 + + + Decrease wavegraph amplitude by 1 dB + - - Osc 3 waveform 2 - Осц 3 форма волны 2 + + Stereo mode: maximum + - - Osc 3 sync hard - Осц 3 синхр сильная + + Process based on the maximum of both stereo channels + - - Osc 3 Sync reverse - Осц 3 синхр обратная + + Stereo mode: average + - - LFO 1 waveform - Форма 1 LFO волны + + Process based on the average of both stereo channels + - - LFO 1 attack - LFO 1 атака + + Stereo mode: unlinked + - - LFO 1 rate - LFO 1 частота + + Process each stereo channel independently + + + + lmms::gui::Editor - - LFO 1 phase - LFO 1 фаза + + Transport controls + - - LFO 2 waveform - Форма 2 LFO волны + + Play (Space) + - - LFO 2 attack - LFO 2 атака + + Stop (Space) + - - LFO 2 rate - LFO 2 частота + + Record + Запись - - LFO 2 phase - LFO 2 фаза + + Record while playing + - - Env 1 pre-delay - Огиб 1 предзадержка + + Toggle Step Recording + + + + lmms::gui::EffectRackView - - Env 1 attack - Огиб 1 атака + + EFFECTS CHAIN + - - Env 1 hold - Огиб. 1 удержание + + Add effect + + + + lmms::gui::EffectSelectDialog - - Env 1 decay - Огиб. 1 спад + + Add effect + - - Env 1 sustain - Огиб. 1 выдержка + + + Name + Имя - - Env 1 release - Огиб. 1 затухание + + Type + Тип - - Env 1 slope - Огиб 1 уклон + + All + - - Env 2 pre-delay - Огиб 2 предзадержка + + Search + - - Env 2 attack - Огиб 2 атака + + Description + Описание - - Env 2 hold - Огиб. 2 удержание + + Author + Автор + + + lmms::gui::EffectView - - Env 2 decay - Огиб. 2 спад + + On/Off + Вкл/Выкл - - Env 2 sustain - Огиб. 2 выдержка + + W/D + - - Env 2 release - Огиб. 2 затухание + + Wet Level: + - - Env 2 slope - Огиб 2 уклон + + DECAY + СПАД - - Osc 2+3 modulation - Осц 2+3 модуляция + + Time: + Время: - - Selected view - Выбранный вид + + GATE + ПОРОГ - - Osc 1 - Vol env 1 - Ген 1 - Громк. огиб. 1 + + Gate: + Порог: - - Osc 1 - Vol env 2 - Ген 1 - Громк. огиб. 2 + + Controls + Контроль - - Osc 1 - Vol LFO 1 - Ген 1 - Громк. LFO 1 + + Move &up + - - Osc 1 - Vol LFO 2 - Ген 1 - Громк. LFO 2 + + Move &down + - - Osc 2 - Vol env 1 - Ген 2 - Громк. огиб. 1 + + &Remove this plugin + + + + lmms::gui::EnvelopeAndLfoView - - Osc 2 - Vol env 2 - Ген 2 - Громк. огиб. 2 + + + AMT + КОЛ - - Osc 2 - Vol LFO 1 - Ген 2 - Громк. LFO 1 + + + Modulation amount: + - - Osc 2 - Vol LFO 2 - Ген 2 - Громк. LFO 2 + + + DEL + - - Osc 3 - Vol env 1 - Ген 3 - Громк. огиб. 1 + + + Pre-delay: + Предзадержка: - - Osc 3 - Vol env 2 - Ген 3 - Громк. огиб. 2 + + + ATT + АТАК - - Osc 3 - Vol LFO 1 - Ген 3 - Громк. LFO 1 + + + Attack: + Атака: - - Osc 3 - Vol LFO 2 - Ген 3 - Громк. LFO 2 + + HOLD + УДЕРЖ - - Osc 1 - Phs env 1 - Ген 1 - Фаза огиб. 1 + + Hold: + Удержание: - - Osc 1 - Phs env 2 - Ген 1 - Фаза огиб. 2 + + DEC + СПАД - - Osc 1 - Phs LFO 1 - Ген 1 - Фаза LFO 1 + + Decay: + Спад: - - Osc 1 - Phs LFO 2 - Ген 1 - Фаза LFO 2 + + SUST + ВЫДЕРЖ - - Osc 2 - Phs env 1 - Ген 2 - Фаза огиб. 1 + + Sustain: + Выдержка: - - Osc 2 - Phs env 2 - Ген 2 - Фаза огиб. 2 + + REL + ЗАТУХ - - Osc 2 - Phs LFO 1 - Ген 2 - Фаза LFO 1 + + Release: + Затухание: - - Osc 2 - Phs LFO 2 - Ген 2 - Фаза LFO 2 + + SPD + СКРСТ - - Osc 3 - Phs env 1 - Ген 3 - Фаза огиб. 1 + + Frequency: + Частота: - - Osc 3 - Phs env 2 - Ген 3 - Фаза огиб. 2 + + FREQ x 100 + - - Osc 3 - Phs LFO 1 - Ген 3 - Фаза LFO 1 + + Multiply LFO frequency by 100 + - - Osc 3 - Phs LFO 2 - Ген 3 - Фаза LFO 2 + + MOD ENV AMOUNT + - - Osc 1 - Pit env 1 - Осц 1 - Pit огиб 1 + + Control envelope amount by this LFO + - - Osc 1 - Pit env 2 - Осц 1 - Pit огиб 2 + + Hint + Подсказка - - Osc 1 - Pit LFO 1 - Осц 1 - Pit LFO 1 + + Drag and drop a sample into this window. + + + + lmms::gui::EnvelopeGraph - - Osc 1 - Pit LFO 2 - Осц 1 - Pit LFO 2 + + Scaling + - - Osc 2 - Pit env 1 - Осц 2 - Pit огиб 1 + + Dynamic + - - Osc 2 - Pit env 2 - Осц 2 - Pit огиб 2 + + Uses absolute spacings but switches to relative spacing if it's running out of space + - - Osc 2 - Pit LFO 1 - Осц 2 - Pit LFO 1 + + Absolute + - - Osc 2 - Pit LFO 2 - Осц 2 - Pit LFO 2 + + Provides enough potential space for each segment but does not scale + - - Osc 3 - Pit env 1 - Осц 3 - Pit огиб 1 + + Relative + - - Osc 3 - Pit env 2 - Осц 3 - Pit огиб 2 + + Always uses all of the available space to display the envelope graph + + + + lmms::gui::EqControlsDialog - - Osc 3 - Pit LFO 1 - Осц 3 - Pit LFO 1 + + HP + ВЧ - - Osc 3 - Pit LFO 2 - Осц 3 - Pit LFO 2 + + Low-shelf + Уровень низких - - Osc 1 - PW env 1 - Осц 1 - PW Огиб 1 + + Peak 1 + - - Osc 1 - PW env 2 - Осц 1 - PW Огиб 2 + + Peak 2 + - - Osc 1 - PW LFO 1 - Осц 1 - PW LFO 1 + + Peak 3 + - - Osc 1 - PW LFO 2 - Осц 1 - PW LFO 2 + + Peak 4 + - - Osc 3 - Sub env 1 - Осц 3 - Доп огиб 1 + + High-shelf + Уровень высоких - - Osc 3 - Sub env 2 - Осц 3 - Доп огиб 2 + + LP + НЧ - - Osc 3 - Sub LFO 1 - Осц 3 - Доп LFO 1 + + Input gain + - - Osc 3 - Sub LFO 2 - Осц 3 - Доп LFO 2 + + + + Gain + Усиление - - - Sine wave - Синусоида + + Output gain + - - Bandlimited Triangle wave - Тембр. треугольная волна + + Bandwidth: + Полоса пропускания: - - Bandlimited Saw wave - Тембр. пило-волна + + Octave + Октава - - Bandlimited Ramp wave - Тембр. пологая волна + + Resonance: + - - Bandlimited Square wave - Тембр. квадратная волна + + Frequency: + Частота: - - Bandlimited Moog saw wave - Тембр. Муг пило-волна + + LP group + - - - Soft square wave - Сглаженная квадратная волна + + HP group + + + + lmms::gui::EqHandle - - Absolute sine wave - Идеальная синусоида + + Reso: + Резон: - - - Exponential wave - Экспоненциальная волна + + BW: + ДИАП: - - White noise - Белый шум + + + Freq: + Част: + + + lmms::gui::ExportProjectDialog - - Digital Triangle wave - Цифровая треугольная волна + + Could not open file + - - Digital Saw wave - Цифровая пило-волна + + Could not open file %1 for writing. +Please make sure you have write permission to the file and the directory containing the file and try again! + - - Digital Ramp wave - Цифровая пологая волна + + Export project to %1 + - - Digital Square wave - Цифровая квадратная волна + + ( Fastest - biggest ) + - - Digital Moog saw wave - Цифровая Муг пило-волна + + ( Slowest - smallest ) + - - Triangle wave - Треугольная волна + + Error + Ошибка - - Saw wave - Пило-волна + + Error while determining file-encoder device. Please try to choose a different output format. + - - Ramp wave - Пологая волна + + Rendering: %1% + + + + lmms::gui::Fader - - Square wave - Квадрат + + Set value + - - Moog saw wave - Муг пило-волна + + Please enter a new value between %1 and %2: + - - Abs. sine wave - Идеальная синусоида + + Volume: %1 dBFS + + + + lmms::gui::FileBrowser - - Random - Случайно + + Browser + Проводник - - Random smooth - Случайное сглаживание + + Search + Поиск - - - MonstroView - - Operators view - Операторский вид + + Refresh list + - - Matrix view - Матричный вид + + User content + - - - - Volume - Громкость + + Factory content + - - - - Panning - Баланс + + Hidden content + + + + lmms::gui::FileBrowserTreeWidget - - - - Coarse detune - Грубая подстройка + + Send to active instrument-track + - - - - semitones - полутона + + Open containing folder + - - - Fine tune left - Точная настройка слева + + Song Editor + - - - - - cents - Центы + + Pattern Editor + - - - Fine tune right - Точная настройка справа + + Send to new AudioFileProcessor instance + - - - - Stereo phase offset - Сдвиг стерео фазы + + Send to new instrument track + - - - - - - deg - град + + (%2Enter) + - - Pulse width - Длительность импульса + + Send to new sample track (Shift + Enter) + - - Send sync on pulse rise - Выдача синхронизации по нарастанию импульса + + Loading sample + - - Send sync on pulse fall - Выдача синхронизации по спаду импульса + + Please wait, loading sample for preview... + - - Hard sync oscillator 2 - Жёсткая синхр осциллятора 2 + + Error + Ошибка - - Reverse sync oscillator 2 - Обратная синхр осциллятора 2 + + %1 does not appear to be a valid %2 file + - - Sub-osc mix - Микс доп-осц + + --- Factory files --- + + + + lmms::gui::FileDialog - - Hard sync oscillator 3 - Жёсткая синхр генератора 3 + + %1 files + - - Reverse sync oscillator 3 - Обратная синхр генератора 3 + + All audio files + - - - - - Attack - Атака + + Other files + + + + lmms::gui::FlangerControlsDialog - - - Rate - Частота выборки + + DELAY + ЗАДЕРЖ - - - Phase - Фаза + + Delay time: + - - - Pre-delay - Предзадержка + + RATE + ЧАСТ - - - Hold - Удержание + + Period: + Период: - - - Decay - Спад + + AMNT + ВЕЛИЧ - - - Sustain - Выдержка + + Amount: + Величина: - - - Release - Затухание + + PHASE + ФАЗА - - - Slope - Фронт + + Phase: + Фаза: - - Mix osc 2 with osc 3 - Смешать осц. 2 с осц. 3 + + FDBK + - - Modulate amplitude of osc 3 by osc 2 - Модулировать амплитуду осц. 3 сигналом с 2 + + Feedback amount: + - - Modulate frequency of osc 3 by osc 2 - Модулировать частоту осц. 3 сигналом с 2 + + NOISE + ШУМ - - Modulate phase of osc 3 by osc 2 - Модулировать фазу осц. 3 сигналом с 2 + + White noise amount: + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Modulation amount - Глубина модуляции + + Invert + Инвертировать - MultitapEchoControlDialog - - - Length - Длина - + lmms::gui::FloatModelEditorBase - - Step length: - Длина шага: + + Set linear + - - Dry - Чистый + + Set logarithmic + - - Dry gain: - Чистый звук усиление: + + + Set value + - - Stages - Уровни + + Please enter a new value between -96.0 dBFS and 6.0 dBFS: + - - Low-pass stages: - Уровни прохода низких: + + Please enter a new value between %1 and %2: + + + + lmms::gui::FreeBoyInstrumentView - - Swap inputs - Переставить входы местами + + Sweep time: + - - Swap left and right input channels for reflections - Поменять левый и правый каналы входа для отражений + + Sweep time + - - - NesInstrument - - Channel 1 coarse detune - Грубая подстройка канала 1 + + Sweep rate shift amount: + - - Channel 1 volume - Громкость канала 1 + + Sweep rate shift amount + - - Channel 1 envelope length - Длительность огибающей канала 1 + + + Wave pattern duty cycle: + - - Channel 1 duty cycle - Рабочий цикл канала 1 + + + Wave pattern duty cycle + - - Channel 1 sweep amount - Уровень колебаний канала 1 + + Square channel 1 volume: + - - Channel 1 sweep rate - Частота колебаний канала 1 + + Square channel 1 volume + - - Channel 2 Coarse detune - Грубая подстройка канала 2 + + + + Length of each step in sweep: + - - Channel 2 Volume - Громкость канала 2 + + + + Length of each step in sweep + - - Channel 2 envelope length - Длительность огибающей канала 2 + + Square channel 2 volume: + - - Channel 2 duty cycle - Рабочий цикл канала 2 + + Square channel 2 volume + - - Channel 2 sweep amount - Уровень колебаний канала 2 + + Wave pattern channel volume: + - - Channel 2 sweep rate - Частота колебаний канала 2 + + Wave pattern channel volume + - - Channel 3 coarse detune - Грубая подстройка канала 3 + + Noise channel volume: + - - Channel 3 volume - Громкость канала 3 + + Noise channel volume + - - Channel 4 volume - Громкость канала 4 + + SO1 volume (Right): + - - Channel 4 envelope length - Длительность огибающей канала 4 + + SO1 volume (Right) + - - Channel 4 noise frequency - Частота шума канала 4 + + SO2 volume (Left): + - - Channel 4 noise frequency sweep - Частота помех колебаний канала 4 + + SO2 volume (Left) + - - Master volume - Главная громкость + + Treble: + Верхние: - - Vibrato - Вибрато + + Treble + Верхние - - - NesInstrumentView - - - - - - Volume - Громкость + + + Bass: + Нижние: - - - - Coarse detune - Грубая подстройка + + Bass + Нижние - - - - Envelope length - Длина огибающей + + Sweep direction + - - Enable channel 1 - Включить канал 1 + + + + + + Volume sweep direction + - - Enable envelope 1 - Включить огибающую 1 + + Shift register width + - - Enable envelope 1 loop - Включить петлю огибающей 1 + + Channel 1 to SO1 (Right) + - - Enable sweep 1 - Включить колебание 1 + + Channel 2 to SO1 (Right) + - - - Sweep amount - Амплитуда колебаний + + Channel 3 to SO1 (Right) + - - - Sweep rate - Частота колебаний + + Channel 4 to SO1 (Right) + - - - 12.5% Duty cycle - 12.5% Рабочий цикл + + Channel 1 to SO2 (Left) + - - - 25% Duty cycle - 25% Рабочий цикл + + Channel 2 to SO2 (Left) + - - - 50% Duty cycle - 50% Рабочий цикл + + Channel 3 to SO2 (Left) + - - - 75% Duty cycle - 75% Рабочий цикл + + Channel 4 to SO2 (Left) + - - Enable channel 2 - Включить канал 2 + + Wave pattern graph + + + + lmms::gui::GigInstrumentView - - Enable envelope 2 - Включить огибающую 2 + + + Open GIG file + - - Enable envelope 2 loop - Включить петлю огибающей 2 + + Choose patch + - - Enable sweep 2 - Включить колебание 2 + + Gain: + Усиление: - - Enable channel 3 - Включить канал 3 + + GIG Files (*.gig) + + + + lmms::gui::GranularPitchShifterControlDialog - - Noise Frequency - Частота шума + + Grain Size: + - - Frequency sweep - Частота колебаний + + Spray: + - - Enable channel 4 - Включить канал 4 + + Jitter: + - - Enable envelope 4 - Включить огибающую 4 + + Twitch: + - - Enable envelope 4 loop - Включить петлю огибающей 4 + + Spray Stereo Spread: + - - Quantize noise frequency when using note frequency - Квантовать частоту шума при использовании частоты ноты + + Grain Shape: + - - Use note frequency for noise - Использовние частоты ноты для шума + + Fade Length: + - - Noise mode - Режим шума + + Feedback: + - - Master volume - Главная громкость + + Minimum Allowed Latency: + - - Vibrato - Вибрато + + Density: + - - - OpulenzInstrument - - Patch - Патч + + Glide: + - - Op 1 attack - Оп 1 атака + + + Pitch + - - Op 1 decay - Оп 1 спад + + + Pitch Stereo Spread + - - Op 1 sustain - Оп 1 выдержка + + Open help window + - - Op 1 release - Оп 1 затухание + + + Prefilter + + + + lmms::gui::GuiApplication - - Op 1 level - Оп 1 уровень + + Working directory + - - Op 1 level scaling - Оп 1 увеличение уровня + + The LMMS working directory %1 does not exist. Create it now? You can change the directory later via Edit -> Settings. + - - Op 1 frequency multiplier - Оп 1 множитель частоты + + Preparing UI + - - Op 1 feedback - Оп 1 возврат + + Preparing song editor + - - Op 1 key scaling rate - Оп 1 скорость увеличения нот + + Preparing mixer + - - Op 1 percussive envelope - Оп 1 огибающая ударников + + Preparing controller rack + - - Op 1 tremolo - Оп 1 тремоло + + Preparing project notes + - - Op 1 vibrato - Оп 1 вибрато + + Preparing microtuner + - - Op 1 waveform - Оп 1 форма волны + + Preparing pattern editor + - - Op 2 attack - Оп 2 атака + + Preparing piano roll + - - Op 2 decay - Оп 2 спад + + Preparing automation editor + + + + lmms::gui::InstrumentFunctionArpeggioView - - Op 2 sustain - Оп 2 выдержка + + ARPEGGIO + ARPEGGIO - - Op 2 release - Оп 2 затухание + + RANGE + ДИАП - - Op 2 level - Оп 2 уровень + + Arpeggio range: + - - Op 2 level scaling - Оп 2 увеличение уровня + + octave(s) + октав(а/ы) - - Op 2 frequency multiplier - Оп 2 множитель частоты + + REP + - - Op 2 key scaling rate - Оп 2 скорость увеличения нот + + Note repeats: + - - Op 2 percussive envelope - Оп 2 огибающая ударников + + time(s) + время - - Op 2 tremolo - Оп 2 Тремоло + + CYCLE + ЦИКЛ - - Op 2 vibrato - Оп 2 Вибрато + + Cycle notes: + - - Op 2 waveform - Оп 2 Волна + + note(s) + нота(ы) - - FM - FM + + SKIP + ПРОПУСК - - Vibrato depth - Глубина вибрато + + Skip rate: + - - Tremolo depth - Глубина тремоло + + + + % + % - - - OpulenzInstrumentView - - - Attack - Атака + + MISS + - - - Decay - Спад + + Miss rate: + - - - Release - Затухание + + TIME + ВРЕМЯ - - - Frequency multiplier - Множитель частоты + + Arpeggio time: + - - - OscillatorObject - - Osc %1 waveform - Форма сигнала осциллятора %1 + + ms + мс - - Osc %1 harmonic - Осц %1 гармонический + + GATE + ПОРОГ - - - Osc %1 volume - Громкость осциллятора %1 + + Arpeggio gate: + - - - Osc %1 panning - Стереобаланс для осциллятора %1 + + Chord: + Аккорд: - - - Osc %1 fine detuning left - Тонкая подстройка осц %1 слева + + Direction: + Направление: - - Osc %1 coarse detuning - Подстройка осц %1 грубая + + Mode: + Режим: + + + lmms::gui::InstrumentFunctionNoteStackingView - - Osc %1 fine detuning right - Тонкая подстройка осц %1 справа + + STACKING + СКЛАДЫВ. - - Osc %1 phase-offset - Сдвиг фазы для осц %1 + + Chord: + Аккорд: - - Osc %1 stereo phase-detuning - Подстройка стерео-фазы осц %1 + + RANGE + ДИАП - - Osc %1 wave shape - Гладкость сигнала осц %1 + + Chord range: + - - Modulation type %1 - Тип модуляции %1 + + octave(s) + октав(а/ы) - Oscilloscope + lmms::gui::InstrumentMidiIOView - - Oscilloscope - Осциллограф + + ENABLE MIDI INPUT + - - Click to enable - Включить мышью + + + CHAN + This string must be be short, its width must be less than * width of LCD spin-box of two digits + - - - PatchesDialog - - Qsynth: Channel Preset - Qsynth: преднастройка канала + + + VELOC + This string must be be short, its width must be less than * width of LCD spin-box of three digits + УСКОР. - - Bank selector - Выбор банка + + ENABLE MIDI OUTPUT + - - Bank - Банк + + PROG + This string must be be short, its width must be less than the * width of LCD spin-box of three digits + - - Program selector - Выбор программы + + NOTE + This string must be be short, its width must be less than * width of LCD spin-box of three digits + НОТА - - Patch - Патч + + MIDI devices to receive MIDI events from + - - Name - Имя + + MIDI devices to send MIDI events to + - - OK - ОК + + VELOCITY MAPPING + - - Cancel - Отмена + + MIDI VELOCITY + + + + + MIDI notes at this velocity correspond to 100% note velocity. + - PatmanView + lmms::gui::InstrumentSoundShapingView - - Open patch - Открыть патч + + TARGET + РАЗМЕТКА - - Loop - Петля + + FILTER + ФИЛЬТР - - Loop mode - Режим петли + + FREQ + ЧАСТ - - Tune - Подстроить + + Cutoff frequency: + - - Tune mode - Режим подстройки + + Hz + Гц - - No file selected - Не выбран файл + + Q/RESO + УР/РЕЗО - - Open patch file - Открыть патч-файл + + Q/Resonance: + УР/Резонанса: - - Patch-Files (*.pat) - Патч-файлы (*.pat) + + Envelopes, LFOs and filters are not supported by the current instrument. + - MidiClipView - - - Open in piano-roll - Открыть в редакторе нот - + lmms::gui::InstrumentTrackView - - Set as ghost in piano-roll - Установить как призрак в пиано-ролл + + Mixer channel + - - Clear all notes - Очистить все ноты + + Volume + Громкость - - Reset name - Сбросить название + + Volume: + Громкость: - - Change name - Переименовать + + VOL + ГРОМК - - Add steps - Добавить такты + + Panning + Баланс - - Remove steps - Удалить такты + + Panning: + Баланс: - - Clone Steps - Клонировать такты + + PAN + БАЛ - - - PeakController - - Peak Controller - Пиковый контроллер + + MIDI + MIDI - - Peak Controller Bug - Ошибка в пиковом контроллере + + Input + Вход - - Due to a bug in older version of LMMS, the peak controllers may not be connect properly. Please ensure that peak controllers are connected properly and re-save this file. Sorry for any inconvenience caused. - Из-за ошибки в более старой версии LMMS пиковые контроллеры могут быть подключены неправильно. Убедитесь, что пиковые контроллеры подключены правильно, и повторно сохраните этот файл. Извините за причинённые неудобства. + + Output + Выход - - - PeakControllerDialog - - PEAK - ПИК + + Open/Close MIDI CC Rack + - - LFO Controller - Контроллер LFO + + %1: %2 + - PeakControllerEffectControlDialog + lmms::gui::InstrumentTrackWindow - - BASE - БАЗА + + Volume + Громкость - - Base: - Основа: + + Volume: + Громкость: - - AMNT - ГЛУБ. + + VOL + ГРОМК - - Modulation amount: - Глубина модуляции: + + Panning + Баланс - - MULT - МНОЖ. + + Panning: + Баланс: - - Amount multiplicator: - Множитель: + + PAN + БАЛ - - ATCK - АТК + + Pitch + Тональность - - Attack: - Атака: + + Pitch: + Тональность: - - DCAY - СПАД + + cents + цент[а,ов] - - Release: - Затухание: + + PITCH + ТОН - - TRSH - ПОРОГ + + Pitch range (semitones) + - - Treshold: - Порог: + + RANGE + ДИАП - - Mute output - Заглушить вывод + + Mixer channel + - - Absolute value - Абсолютное значение + + CHANNEL + КАНАЛ - - - PeakControllerEffectControls - - Base value - Опорное значение + + Save current instrument track settings in a preset file + - - Modulation amount - Глубина модуляции + + SAVE + СОХРАНИТЬ - - Attack - Атака + + Envelope, filter & LFO + - - Release - Затухание + + Chord stacking & arpeggio + + + + + Effects + Эффекты - - Treshold - Порог + + MIDI + MIDI - - Mute output - Заглушить вывод + + Tuning and transposition + - - Absolute value - Абсолютное значение + + Save preset + - - Amount multiplicator - Множитель + + XML preset file (*.xpf) + + + + + Plugin + Плагин - PianoRoll + lmms::gui::InstrumentTuningView - - Note Velocity - Сила нажатия нот + + GLOBAL TRANSPOSITION + - - Note Panning - Стерео-баланс нот + + Enables the use of global transposition + - - Mark/unmark current semitone - Поставить или снять отметку с этого полутона + + Microtuner is not available for MIDI-based instruments. + - - Mark/unmark all corresponding octave semitones - Поставить или снять отметку с этого полутона во всех октавах + + MICROTUNER + - - Mark current scale - Отметить выбранную гамму + + Active scale: + - - Mark current chord - Отметить выбранный аккорд + + + Edit scales and keymaps + - - Unmark all - Снять всё выделение + + Active keymap: + - - Select all notes on this key - Выбрать все ноты на этой клавише + + Import note ranges from keymap + - - Note lock - Фиксация нот + + When enabled, the first, last and base notes of this instrument will be overwritten with values specified by the selected keymap. + + + + lmms::gui::KickerInstrumentView - - Last note - По посл. ноте + + Start frequency: + - - No key + + End frequency: - - No scale - Без гаммы + + Frequency slope: + - - No chord - Без аккорда + + Gain: + Усиление: - - Nudge + + Envelope length: - - Snap + + Envelope slope: - - Velocity: %1% - Сила нажатия: %1% + + Click: + Щелчок: - - Panning: %1% left - Баланс: %1% слева + + Noise: + Шум: - - Panning: %1% right - Баланс: %1% справа + + Start distortion: + - - Panning: center - Баланс: центр + + End distortion: + + + + lmms::gui::LOMMControlDialog - - Glue notes failed + + Depth: - - Please select notes to glue first. + + Compression amount for all bands - - Please open a clip by double-clicking on it! - Откройте паттерн двойным щелчком! + + Time: + - - - Please enter a new value between %1 and %2: - Новое значение от %1 до %2: + + Attack/release scaling for all bands + - - - PianoRollWindow - - Play/pause current clip (Space) - Игра/пауза текущей мелодии (пробел) + + Input Volume: + - - Record notes from MIDI-device/channel-piano - Записать ноты с MIDI-устройства или с канала фортепиано + + Input volume + - - Record notes from MIDI-device/channel-piano while playing song or BB track - Записать ноты с MIDI-устройства или с канала фортепиано во время воспроизведения композиции или дорожки Ритм-Баса + + Output Volume: + - - Record notes from MIDI-device/channel-piano, one step at the time - Записать ноты с MIDI-устройства или с канала фортепиано, по одному шагу за раз + + Output volume + - - Stop playing of current clip (Space) - Остановить воспроизведение текущей мелодии (пробел) + + Upward Depth: + - - Edit actions - Панель правки + + Upward compression amount for all bands + - - Draw mode (Shift+D) - Режим рисования (Shift+D) + + Downward Depth: + - - Erase mode (Shift+E) - Режим стирания (Shift+E) + + Downward compression amount for all bands + - - Select mode (Shift+S) - Режим выбора нот (Shift+S) + + High/Mid Crossover + - - Pitch Bend mode (Shift+T) - Режим изгиба высоты тона (Shift+T) + + Mid/Low Crossover + - - Quantize - Квантовать + + High/mid band split + - - Quantize positions + + Mid/low band split - - Quantize lengths + + Enable High Band - - File actions + + Enable Mid Band - - Import clip + + Enable Low Band - - - Export clip + + High Input Volume: - - Copy paste controls - Копировать-вставить управление + + Input volume for high band + - - Cut (%1+X) - Вырезать (%1+X) + + Mid Input Volume: + - - Copy (%1+C) - Копировать (%1+C) + + Input volume for mid band + - - Paste (%1+V) - Вставить (%1+V) + + Low Input Volume: + - - Timeline controls - Панель графика + + Input volume for low band + - - Glue + + High Output Volume: - - Knife + + Output volume for high band - - Fill + + Mid Output Volume: - - Cut overlaps + + Output volume for mid band - - Min length as last + + Low Output Volume: - - Max length as last + + Output volume for low band - - Zoom and note controls - Панель масштабирования и нот + + Above Threshold High + - - Horizontal zooming - Горизонтальный масштаб + + Downward compression threshold for high band + - - Vertical zooming - Вертикальное приближение + + Above Threshold Mid + - - Quantization - Квантование + + Downward compression threshold for mid band + - - Note length - Длительность ноты + + Above Threshold Low + - - Key + + Downward compression threshold for low band - - Scale - Гамма + + Above Ratio High + - - Chord - Аккорд + + Downward compression ratio for high band + - - Snap mode + + Above Ratio Mid - - Clear ghost notes - Очистить призрачные ноты + + Downward compression ratio for mid band + - - - Piano-Roll - %1 - Нотный редактор — %1 + + Above Ratio Low + - - - Piano-Roll - no clip - Нотный редактор — нет паттерна + + Downward compression ratio for low band + - - - XML clip file (*.xpt *.xptz) + + Below Threshold High - - Export clip success + + Upward compression threshold for high band - - Clip saved to %1 + + Below Threshold Mid - - Import clip. + + Upward compression threshold for mid band - - You are about to import a clip, this will overwrite your current clip. Do you want to continue? + + Below Threshold Low - - Open clip + + Upward compression threshold for low band - - Import clip success + + Below Ratio High - - Imported clip %1! + + Upward compression ratio for high band - - - PianoView - - Base note - Опорная нота + + Below Ratio Mid + - - First note + + Upward compression ratio for mid band - - Last note - По посл. ноте + + Below Ratio Low + - - - Plugin - - Plugin not found - Модуль не найден + + Upward compression ratio for low band + - - The plugin "%1" wasn't found or could not be loaded! -Reason: "%2" - Модуль «%1» отсутствует либо не может быть загружен! -Причина: «%2» + + Attack High: + - - Error while loading plugin - Ошибка загрузки плагина + + Attack time for high band + - - Failed to load plugin "%1"! - Не удалось загрузить модуль «%1»! + + Attack Mid: + - - - PluginBrowser - - Instrument Plugins - Плагины инструментов + + Attack time for mid band + - - Instrument browser - Инструменты + + Attack Low: + - - Drag an instrument into either the Song-Editor, the Beat+Bassline Editor or into an existing instrument track. - Вы можете переносить нужные вам инструменты из этой панели в Композитор, Ритм+Бас или в существующую дорожку инструмента. + + Attack time for low band + - - no description - описание отсутствует + + Release High: + - - A native amplifier plugin - Родной плагин усилителя + + Release time for high band + - - Simple sampler with various settings for using samples (e.g. drums) in an instrument-track - Простой сэмплер с разными установками по использованию сэмплов (как барабаны) в инструментальной дорожке + + Release Mid: + - - Boost your bass the fast and simple way - Накачай свой бас быстро и просто + + Release time for mid band + - - Customizable wavetable synthesizer - Настраиваемый синтезатор звукозаписей (wavetable) + + Release Low: + - - An oversampling bitcrusher - Бит-дробилка с передискретизацией + + Release time for low band + - - Carla Patchbay Instrument - Инструмент Carla Patchbay + + RMS Time: + - - Carla Rack Instrument - Инструментальная стойка Carla + + RMS size for sidechain signal (set to 0 for Peak mode) + - - A dynamic range compressor. + + Knee: - - A 4-band Crossover Equalizer - 4-полосный переходный эквалайзер + + Knee size for all compressors + - - A native delay plugin - Встроенный плагин задержки + + Range: + - - A Dual filter plugin - Плагин двойного фильтра + + Maximum gain increase for all bands + - - plugin for processing dynamics in a flexible way - Плагин для гибкой обработки динамики + + Balance: + - - A native eq plugin - Встроенный плагин эквалайзера + + Bias input volume towards one channel + - - A native flanger plugin - Встроенный плагин фланжера + + Scale output volume with Depth + - - Emulation of GameBoy (TM) APU - Эмуляция GameBoy™ APU + + Scale output volume with Depth parameter + - - Player for GIG files - Проигрыватель GIG-файлов + + Stereo Link + - - Filter for importing Hydrogen files into LMMS - Фильтр для импорта файлов Hydrogen в LMMS + + Apply same gain change to both channels + - - Versatile drum synthesizer - Универсальный барабанный синтезатор + + Auto Time: + - - List installed LADSPA plugins - Показать установленные модули LADSPA + + Speed up attack and release times when transients occur + + + + + Mix: + + + + + Wet/Dry of all bands + - - plugin for using arbitrary LADSPA-effects inside LMMS. - Модуль, позволяющий использовать в LMMS любые эффекты LADSPA. + + Feedback + - - Incomplete monophonic imitation TB-303 - Незавершённая монофоническая имитация TB-303 + + Use output as sidechain signal instead of input + - - plugin for using arbitrary LV2-effects inside LMMS. + + Mid/Side - - plugin for using arbitrary LV2 instruments inside LMMS. + + Compress mid/side channels instead of left/right - - Filter for exporting MIDI-files from LMMS - Фильтр для экспорта MIDI-файлов из LMMS + + + Suppress upward compression for side band + - - Filter for importing MIDI-files into LMMS - Фильтр для импорта MIDI-файлов в LMMS + + + Lookahead + - - Monstrous 3-oscillator synth with modulation matrix - Чудовищный 3-осциляторный синт с матрицей модуляции + + Lookahead length + - - A multitap echo delay plugin - Плагин многократной задержки эха + + Clear all parameters + + + + lmms::gui::LadspaBrowserView - - A NES-like synthesizer - Синтезатор типа NES + + + Available Effects + - - 2-operator FM Synth - 2-параметровый FM-синт + + + Unavailable Effects + - - Additive Synthesizer for organ-like sounds - Синтезатор звуков вроде органа + + + Instruments + Инструменты - - GUS-compatible patch instrument - Патч-инструмент, совместимый с GUS + + + Analysis Tools + - - Plugin for controlling knobs with sound peaks - Модуль для установки значений регуляторов по пикам громкости + + + Don't know + - - Reverb algorithm by Sean Costello - Алгоритм реверберации Шона Костелло + + Type: + Тип: + + + lmms::gui::LadspaControlDialog - - Player for SoundFont files - Проигрыватель файлов SoundFont + + Link Channels + - - LMMS port of sfxr - LMMS-порт SFXR + + Channel + Канал + + + lmms::gui::LadspaControlView - - Emulation of the MOS6581 and MOS8580 SID. -This chip was used in the Commodore 64 computer. - Эмуляция SID MOS6581 и MOS8580. -Этот чип использовался в компьютере Commodore 64. + + Link channels + - - A graphical spectrum analyzer. - Графический анализатор спектра + + Value: + Значение: + + + lmms::gui::LadspaDescription - - Plugin for enhancing stereo separation of a stereo input file - Модуль, усиливающий разницу между каналами стереозаписи + + Plugins + Плагины - - Plugin for freely manipulating stereo output - Модуль для произвольного управления стереовыходом + + Description + Описание - - Tuneful things to bang on - Мелодичные ударные + + Name: + - - Three powerful oscillators you can modulate in several ways - Три мощных осциллятора, модулируемые несколькими способами + + Maker: + - - A stereo field visualizer. + + Copyright: - - VST-host for using VST(i)-plugins within LMMS - VST-хост для поддержки модулей VST(i) в LMMS + + Requires Real Time: + - - Vibrating string modeler - Моделирование вибрирующих струн + + + + Yes + - - plugin for using arbitrary VST effects inside LMMS. - Плагин для использования любых VST-эффектов в LMMS + + + + No + - - 4-oscillator modulatable wavetable synth - 4-осцилляторный модулируемый волновой синтезатор + + Real Time Capable: + - - plugin for waveshaping - Плагин для сглаживания волн + + In Place Broken: + - - Mathematical expression parser - Анализатор математических выражений + + Channels In: + - - Embedded ZynAddSubFX - Встроенный ZynAddSubFX + + Channels Out: + - PluginDatabaseW + lmms::gui::LadspaMatrixControlDialog - - Carla - Add New + + Link Channels - - Format - Формат + + Link + - - Internal + + Channel %1 - - LADSPA - LADSPA + + Link channels + + + + lmms::gui::LadspaPortDialog - - DSSI - DSSI + + Ports + Порты - - LV2 - LV2 + + Name + Имя - - VST2 - VST2 + + Rate + Частота - - VST3 - VST3 + + Direction + Направление - - AU - AU + + Type + Тип - - Sound Kits + + Min < Default < Max - - Type - Тип + + Logarithmic + Логарифмический - - Effects - Эффекты + + SR Dependent + - - Instruments - Инструменты + + Audio + Аудио - - MIDI Plugins - + + Control + Контроль - - Other/Misc - + + Input + Вход - - Architecture - Архитектура + + Output + Выход - - Native - + + Toggled + Включено - - Bridged - + + Integer + Целое - - Bridged (Wine) - + + Float + Дробное - - Requirements - Требования + + + Yes + Да + + + lmms::gui::Lb302SynthView - - With Custom GUI + + Cutoff Freq: - - With CV Ports - + + Resonance: + Резонанс: - - Real-time safe only + + Env Mod: - - Stereo only - + + Decay: + Спад: - - With Inline Display + + 303-es-que, 24dB/octave, 3 pole filter - - Favorites only + + Slide Decay: - - (Number of Plugins go here) + + DIST: - - &Add Plugin + + Saw wave - - Cancel - Отмена + + Click here for a saw-wave. + - - Refresh - Обновить + + Triangle wave + - - Reset filters - Сбросить фильтры - - - - - - - - - - - - - - - - - - - TextLabel + + Click here for a triangle-wave. - - Format: - Формат: + + Square wave + - - Architecture: - Архитектура: + + Click here for a square-wave. + - - Type: - Тип: + + Rounded square wave + - - MIDI Ins: + + Click here for a square-wave with a rounded end. - - Audio Ins: + + Moog wave - - CV Outs: + + Click here for a moog-like wave. - - MIDI Outs: + + Sine wave - - Parameter Ins: + + Click for a sine-wave. - - Parameter Outs: + + + White noise wave - - Audio Outs: + + Click here for an exponential wave. - - CV Ins: + + Click here for white-noise. - - UniqueID: + + Bandlimited saw wave - - Has Inline Display: + + Click here for bandlimited saw wave. - - Has Custom GUI: + + Bandlimited square wave - - Is Synth: + + Click here for bandlimited square wave. - - Is Bridged: + + Bandlimited triangle wave - - Information - Информация + + Click here for bandlimited triangle wave. + - - Name - Имя + + Bandlimited moog saw wave + - - Label/URI + + Click here for bandlimited moog saw wave. + + + lmms::gui::LcdFloatSpinBox - - Maker + + Set value - - Binary/Filename + + Please enter a new value between %1 and %2: + + + lmms::gui::LcdSpinBox - - Focus Text Search + + Set value - - Ctrl+F - Ctrl+F + + Please enter a new value between %1 and %2: + - PluginEdit + lmms::gui::LeftRightNav - - Plugin Editor - Редактор плагинов + + + + Previous + Предыдущий - - Edit - Правка + + + + Next + Следующий - - Control - Контроль + + Previous (%1) + - - MIDI Control Channel: + + Next (%1) + + + lmms::gui::LfoControllerDialog - - N - N + + LFO + ГНЧ - - Output dry/wet (100%) - + + BASE + БАЗА - - Output volume (100%) - + + Base: + Основа: - - Balance Left (0%) - + + FREQ + ЧАСТ - - - Balance Right (0%) + + LFO frequency: - - Use Balance - + + AMNT + ВЕЛИЧ - - Use Panning + + Modulation amount: - - Settings - Настройки + + PHS + ФАЗА - - Use Chunks + + Phase offset: - - Audio: - + + degrees + градусы - - Fixed-Size Buffer + + Sine wave - - Force Stereo (needs reload) + + Triangle wave - - MIDI: - MIDI: + + Saw wave + - - Map Program Changes + + Square wave - - Send Bank/Program Changes + + Moog saw wave - - Send Control Changes + + Exponential wave - - Send Channel Pressure + + White noise - - Send Note Aftertouch + + User-defined shape. +Double click to pick a file. - - Send Pitchbend + + Multiply modulation frequency by 1 - - Send All Sound/Notes Off + + Multiply modulation frequency by 100 - - -Plugin Name - - -Название плагина - + + Divide modulation frequency by 100 + + + + lmms::gui::LfoGraph - - Program: - Программа: + + %1 Hz + + + + lmms::gui::MainWindow - - MIDI Program: + + Configuration file - - Save State - Сохранить состояние + + Error while parsing configuration file at line %1:%2: %3 + - - Load State - Загрузить состояние + + Could not open file + - - Information - Информация + + Could not open file %1 for writing. +Please make sure you have write permission to the file and the directory containing the file and try again! + - - Label/URI: + + Project recovery - - Name: - Название: + + There is a recovery file present. It looks like the last session did not end properly or another instance of LMMS is already running. Do you want to recover the project of this session? + - - Type: - Тип: + + + Recover + Восстановить - - Maker: + + Recover the file. Please don't run multiple instances of LMMS when you do this. - - Copyright: - + + + Discard + Отклонить - - Unique ID: + + Launch a default session and delete the restored files. This is not reversible. - - - PluginFactory - - Plugin not found. - Плагин не найден. + + Version %1 + - - LMMS plugin %1 does not have a plugin descriptor named %2! - Плагин LMMS «%1» не имеет дескриптора с именем «%2»! + + Preparing plugin browser + - - - PluginParameter - - Form + + Preparing file browsers - - Parameter Name - Название параметра + + My Projects + - - ... - + + My Samples + - - - PluginRefreshW - - Carla - Refresh - Carla — обновление + + My Presets + - - Search for new... + + My Home - - LADSPA - LADSPA + + Root Directory + - - DSSI - DSSI + + Volumes + Громкости - - LV2 - LV2 + + My Computer + - - VST2 - VST2 + + Loading background picture + - - VST3 - VST3 + + &File + &Файл - - AU - AU + + &New + &Создать - - SF2/3 - SF2/3 + + &Open... + &Открыть... - - SFZ - SFZ + + &Save + &Сохранить - - Native + + Save &As... - - POSIX 32bit - POSIX 32-бит - - - - POSIX 64bit - POSIX 64-бит - - - - Windows 32bit - Windows 32-бит - - - - Windows 64bit - Windows 64-бит + + Save as New &Version + - - Available tools: - Доступные инструменты: + + Save as default template + - - python3-rdflib (LADSPA-RDF support) - python3-rdflib (поддержка LADSPA-RDF) + + Import... + Импорт... - - carla-discovery-win64 - carla-discovery-win64 + + E&xport... + &Экспорт... - - carla-discovery-native - carla-discovery-native + + E&xport Tracks... + - - carla-discovery-posix32 - carla-discovery-posix32 + + Export &MIDI... + - - carla-discovery-posix64 - carla-discovery-posix64 + + &Quit + &Выход - - carla-discovery-win32 - carla-discovery-win32 + + &Edit + &Правка - - Options: - Опции: + + Undo + Отменить действие - - Carla will run small processing checks when scanning the plugins (to make sure they won't crash). -You can disable these checks to get a faster scanning time (at your own risk). - Во время сканирования Carla будет проверять плагины (чтобы убедиться, что они не вылетят). -Чтобы ускорить сканирование, эти проверки можно отключить (на свой страх и риск). + + Redo + Вернуть действие - - Run processing checks while scanning - Выполнять проверки во время сканирования + + Scales and keymaps + - - Press 'Scan' to begin the search - Нажмите «Сканировать», чтобы начать поиск + + Settings + Настройки - - Scan - Сканировать + + &View + &Вид - - >> Skip - >> Пропустить + + &Tools + &Инструменты - - Close - Закрыть + + &Help + &Справка - - - PluginWidget - - - - - - Frame + + Online Help - - Enable - Включить + + Help + Справка - - On/Off - Вкл/Выкл + + About + О программе - - - - - PluginName + + Create new project - - MIDI - MIDI - - - - AUDIO IN + + Create new project from template - - AUDIO OUT + + Open existing project - - GUI + + Recently opened projects - - Edit - Правка - - - - Remove - Удалить - - - - Plugin Name - Название плагина + + Save current project + - - Preset: - Пресет: + + Export current project + - - - ProjectNotes - - Project Notes - Заметки к проекту + + Metronome + Метроном - - Enter project notes here - Напишите заметки, касающиеся проекта, здесь + + + Song Editor + - - Edit Actions - Панель правки + + + Pattern Editor + - - &Undo - &Отменить + + + Piano Roll + - - %1+Z - %1+Z + + + Automation Editor + - - &Redo - Ве&рнуть + + + Mixer + - - %1+Y - %1+Y + + Show/hide controller rack + - - &Copy - &Копировать + + Show/hide project notes + - - %1+C - %1+C + + Untitled + - - Cu&t - &Вырезать + + Recover session. Please save your work! + - - %1+X - %1+X + + LMMS %1 + - - &Paste - Вст&авить + + Recovered project not saved + - - %1+V - %1+V + + This project was recovered from the previous session. It is currently unsaved and will be lost if you don't save it. Do you want to save it now? + - - Format Actions - Панель форматирования + + Project not saved + - - &Bold - &Жирный + + The current project was modified since last saving. Do you want to save it now? + - - %1+B - %1+B + + Open Project + - - &Italic - &Курсив + + LMMS (*.mmp *.mmpz) + - - %1+I - %1+I + + Save Project + - - &Underline - Под&чёркнутый + + LMMS Project + - - %1+U - %1+U + + LMMS Project Template + - - &Left - По &левому краю + + Save project template + - - %1+L - %1+L + + Overwrite default template? + - - C&enter - По &центру + + This will overwrite your current default template. + - - %1+E - %1+E + + Help not available + - - &Right - По &правому краю + + Currently there's no help available in LMMS. +Please visit http://lmms.sf.net/wiki for documentation on LMMS. + - - %1+R - %1+R + + Controller Rack + - - &Justify - По &ширине + + Project Notes + - - %1+J - %1+J + + Fullscreen + - - &Color... - Ц&вет... + + Volume as dBFS + Громкость как dBFS - - - ProjectRenderer - - WAV (*.wav) - WAV (*.wav) + + Smooth scroll + - - FLAC (*.flac) - FLAC (*.flac) + + Enable note labels in piano roll + - - OGG (*.ogg) - OGG (*.ogg) + + MIDI File (*.mid) + - - MP3 (*.mp3) - MP3 (*.mp3) + + + untitled + - - - QObject - - Reload Plugin + + + Select file for project-export... - - Show GUI - Показать интерфейс + + Select directory for writing exported tracks... + - - Help - Справка + + Save project + - - - QWidget - - - - - Name: - Название: + + Project saved + - - URI: + + The project %1 is now saved. - - - - Maker: - Автор: + + Project NOT saved. + - - - - Copyright: - Авторское право: + + The project %1 was not saved! + - - - Requires Real Time: - Требует работать в реальном времени: + + Import file + - - - - - - - Yes - да + + MIDI sequences + - - - - - - - No - нет + + Hydrogen projects + - - - Real Time Capable: - Работа в реальном времени: + + All file types + + + + lmms::gui::MalletsInstrumentView - - - In Place Broken: - Неисправен: + + Instrument + - - - - Channels In: - Каналов на входе: + + + Spread + - - - Channels Out: - Каналов на выходе: + + Spread: + - - File: %1 - Файл: %1 + + Random + - - File: - Файл: + + Random: + - - - RecentProjectsMenu - - &Recently Opened Projects - &Недавние проекты + + Missing files + - - - RenameDialog - - Rename... - Переименовать... + + Your Stk-installation seems to be incomplete. Please make sure the full Stk-package is installed! + - - - ReverbSCControlDialog - - Input - Вход + + Hardness + - - Input gain: - Входное усиление: + + Hardness: + - - Size - Размер + + Position + Позиция - - Size: - Размер: + + Position: + Позиция: - - Color - Цвет + + Vibrato gain + - - Color: - Цвет: + + Vibrato gain: + - - Output - Выход + + Vibrato frequency + - - Output gain: - Выходное усиление: + + Vibrato frequency: + - - - ReverbSCControls - - Input gain - Входное усиление + + Stick mix + - - Size - Размер + + Stick mix: + - - Color - Цвет + + Modulator + Модулятор - - Output gain - Выходное усиление + + Modulator: + Модулятор: - - - SaControls - - Pause - Пауза + + Crossfade + - - Reference freeze - Заморозить эталон + + Crossfade: + - - Waterfall - Спад + + LFO speed + - - Averaging - Усреднение + + LFO speed: + - - Stereo - Стерео + + LFO depth + - - Peak hold - Держать пик + + LFO depth: + - - Logarithmic frequency - Логарифмическая частота + + ADSR + - - Logarithmic amplitude - Логарифмическая амплитуда + + ADSR: + - - Frequency range - Диапазон частот + + Pressure + - - Amplitude range - Диапазон амплитуд + + Pressure: + - - FFT block size - Размер блока FFT + + Speed + - - FFT window type - Тип окна FFT + + Speed: + + + + lmms::gui::ManageVSTEffectView - - Peak envelope resolution - Разрешение огибающей пика + + - VST parameter control + - - Spectrum display resolution - Разрешение отображения спектра + + VST sync + - - Peak decay multiplier - Множитель спада пика + + + Automated + - - Averaging weight - Средний вес + + Close + + + + lmms::gui::ManageVestigeInstrumentView - - Waterfall history size - Размер истории спада + + + - VST plugin control + - - Waterfall gamma correction - Гамма-коррекция спада + + VST Sync + - - FFT window overlap - Перекрытие окон FFT + + + Automated + - - FFT zero padding - FFT нулевой отступ + + Close + + + + lmms::gui::MeterDialog - - - Full (auto) - Полностью (авто) + + + Meter Numerator + - - - - Audible - Слышимые + + Meter numerator + - - Bass - Басы + + + Meter Denominator + - - Mids - Средние + + Meter denominator + - - High - Высокие + + TIME SIG + + + + lmms::gui::MicrotunerConfig - - Extended - Расширенно + + Selected scale slot + - - Loud - Громкие + + Selected keymap slot + - - Silent - Тихие + + + First key + - - (High time res.) - (Высокое разрешение по времени) + + + Last key + - - (High freq. res.) - (Высокое разрешение по частоте) + + + Middle key + - - Rectangular (Off) - Прямоугольный (откл.) + + + Base key + - - - Blackman-Harris (Default) - Блэкман-Харрис (по умолчанию) + + + + Base note frequency + - - Hamming - Хэмминг (Сглажив) + + Microtuner Configuration + - - Hanning - Хэннинга (Сглажив) + + Scale slot to edit: + - - - SaControlsDialog - - Pause - Пауза + + Scale description. Cannot start with "!" and cannot contain a newline character. + - - Pause data acquisition - Приостановить сбор данных + + + Load + - - Reference freeze - Заморозить эталон + + + Save + - - Freeze current input as a reference / disable falloff in peak-hold mode. - Заморозить текущий входной сигнал в качестве эталона; отключить спад в режиме удержания пика. + + Load scale definition from a file. + - - Waterfall - Спад + + Save scale definition to a file. + - - Display real-time spectrogram - Показать спектрограмму в реальном времени + + Enter intervals on separate lines. Numbers containing a decimal point are treated as cents. +Other inputs are treated as integer ratios and must be in the form of 'a/b' or 'a'. +Unity (0.0 cents or ratio 1/1) is always present as a hidden first value; do not enter it manually. + - - Averaging - Усреднение + + Apply scale changes + - - Enable exponential moving average - Включить экспоненциальное скользящее среднее + + Verify and apply changes made to the selected scale. To use the scale, select it in the settings of a supported instrument. + - - Stereo - Стерео + + Keymap slot to edit: + - - Display stereo channels separately - Отображать стерео-каналы раздельно + + Keymap description. Cannot start with "!" and cannot contain a newline character. + - - Peak hold - Держать пик + + Load key mapping definition from a file. + - - Display envelope of peak values - Показать огибающую пиковых значений + + Save key mapping definition to a file. + - - Logarithmic frequency - Логарифмическая частота + + Enter key mappings on separate lines. Each line assigns a scale degree to a MIDI key, +starting with the middle key and continuing in sequence. +The pattern repeats for keys outside of the explicit keymap range. +Multiple keys can be mapped to the same scale degree. +Enter 'x' if you wish to leave the key disabled / not mapped. + - - Switch between logarithmic and linear frequency scale - Переключиться между логарифмической и линейной шкалой частоты + + FIRST + - - - Frequency range - Диапазон частот + + First MIDI key that will be mapped + - - Logarithmic amplitude - Логарифмическая амплитуда + + LAST + - - Switch between logarithmic and linear amplitude scale - Переключить между логарифмическим и линейным усилением амплитуды + + Last MIDI key that will be mapped + - - - Amplitude range - Диапазон амплитуд + + MIDDLE + - - Envelope res. - Разрешение огибающей + + First line in the keymap refers to this MIDI key + - - Increase envelope resolution for better details, decrease for better GUI performance. - Увеличьте разрешение огибающей, чтобы улучшить детализацию, или уменьшите, чтобы улучшить производительность графического интерфейса. + + BASE N. + - - - Draw at most - Максимально точек на пиксель в спектре : + + Base note frequency will be assigned to this MIDI key + - - envelope points per pixel - точки огибающей на пиксель + + BASE NOTE FREQ + - - Spectrum res. - Разрешение спектра + + Apply keymap changes + - - Increase spectrum resolution for better details, decrease for better GUI performance. - Увеличьте разрешение спектра, чтобы улучшить детализацию, или уменьшите, чтобы улучшить производительность графического интерфейса. + + Verify and apply changes made to the selected key mapping. To use the mapping, select it in the settings of a supported instrument. + - - spectrum points per pixel - точки спектра на пиксель + + Scale parsing error + - - Falloff factor - Коэффициент спада + + Scale name cannot start with an exclamation mark + - - Decrease to make peaks fall faster. - Снизьте, чтобы пики спадали быстрее + + Scale name cannot contain a new-line character + - - Multiply buffered value by - Умножить значение буфера на + + Interval defined in cents cannot be converted to a number + - - Averaging weight - Средний вес + + Numerator of an interval defined as a ratio cannot be converted to a number + - - Decrease to make averaging slower and smoother. - Уменьшите, чтобы усреднение было медленнее и плавнее. + + Denominator of an interval defined as a ratio cannot be converted to a number + - - New sample contributes - Вхождения нового сэмпла + + Interval defined as a ratio cannot be negative + - - Waterfall height - Высота спада + + Keymap parsing error + - - Increase to get slower scrolling, decrease to see fast transitions better. Warning: medium CPU usage. - Увеличьте, чтобы получить более плавные движения, и уменьшите, чтобы лучше видеть быстрые переходы. Внимание: средняя загрузка ЦП. + + Keymap name cannot start with an exclamation mark + - - Keep - Оставить + + Keymap name cannot contain a new-line character + - - lines - линии + + Scale degree cannot be converted to a whole number + - - Waterfall gamma - Гамма спада + + Scale degree cannot be negative + - - Decrease to see very weak signals, increase to get better contrast. - Снизьте, чтобы увидеть очень слабые сигналы, и увеличьте, чтобы получить лучший контраст. + + Invalid keymap + - - Gamma value: - Гамма значение: + + Base key is not mapped to any scale degree. No sound will be produced as there is no way to assign reference frequency to any note. + - - Window overlap - Перекрытие окна + + Open scale + - - Increase to prevent missing fast transitions arriving near FFT window edges. Warning: high CPU usage. - Увеличьте, чтобы не пропускать быстрые переходы, которые приближаются к краям окна FFT. Внимание: сильно нагружает процессор! + + + Scala scale definition (*.scl) + - - Each sample processed - Количество раз обработки сэмпла: + + Scale load failure + - - times - раз + + + Unable to open selected file. + - - Zero padding - Нулевой отступ + + Open keymap + - - Increase to get smoother-looking spectrum. Warning: high CPU usage. - Увеличьте, чтобы получить более плавный спектр. Внимание: сильно нагружает процессор. + + + Scala keymap definition (*.kbm) + - - Processing buffer is - Буфер обработки + + Keymap load failure + - - steps larger than input block - Шагов больше, чем в блоке ввода + + Save scale + - - Advanced settings - Расширенные настройки + + Scale save failure + - - Access advanced settings - Доступ к расширенным настройкам + + + Unable to open selected file for writing. + - - - FFT block size - Размер блока FFT + + Save keymap + - - - FFT window type - Тип окна FFT + + Keymap save failure + - SampleBuffer + lmms::gui::MidiCCRackView + + + + MIDI CC Rack - %1 + + - - Fail to open file - Не удается открыть файл + + MIDI CC Knobs: + - - Audio files are limited to %1 MB in size and %2 minutes of playing time - Звуковые файлы ограничены размером %1 МБ и длительностью %2 мин. + + CC %1 + + + + lmms::gui::MidiClipView - - Open audio file - Открыть звуковой файл + + + Transpose + - - All Audio-Files (*.wav *.ogg *.ds *.flac *.spx *.voc *.aif *.aiff *.au *.raw) - Все звуковые файлы (*.wav *.ogg *.ds *.flac *.spx *.voc *.aif *.aiff *.au *.raw) + + Semitones to transpose by: + - - Wave-Files (*.wav) - Файлы Wave (*.wav) + + Open in piano-roll + - - OGG-Files (*.ogg) - Файлы OGG (*.ogg) + + Set as ghost in piano-roll + - - DrumSynth-Files (*.ds) - Файлы DrumSynth (*.ds) + + Set as ghost in automation editor + - - FLAC-Files (*.flac) - Файлы FLAC (*.flac) + + Clear all notes + - - SPEEX-Files (*.spx) - Файлы SPEEX (*.spx) + + Reset name + - - VOC-Files (*.voc) - Файлы VOC (*.voc) + + Change name + - - AIFF-Files (*.aif *.aiff) - Файлы AIFF (*.aif *.aiff) + + Add steps + - - AU-Files (*.au) - Файлы AU (*.au) + + Remove steps + - - RAW-Files (*.raw) - Файлы RAW (*.raw) + + Clone Steps + - SampleClipView + lmms::gui::MidiSetupWidget - - Double-click to open sample - Дважды щелкните, чтобы открыть сэмпл - - - - Delete (middle mousebutton) - Удалить (средняя кнопка мыши) + + Device + Устройство + + + lmms::gui::MixerChannelLcdSpinBox - - Delete selection (middle mousebutton) - Удалить выделенное (средняя кнопка мыши) + + Assign to: + - - Cut - Вырезать + + New Mixer Channel + - - Cut selection - Вырезать выделенное + + Please enter a new value between %1 and %2: + - - Copy - Копировать + + Set value + + + + lmms::gui::MixerChannelView - - Copy selection - Копировать выделенное + + Channel send amount + - - Paste - Вставить + + Mute + - - Mute/unmute (<%1> + middle click) - Тихо/громко (<%1> + щелчок средней кнопкой) + + Mute this channel + - - Mute/unmute selection (<%1> + middle click) - Отключить или включить звук для выделенного (<%1> + средняя кнопка мыши) + + Solo + - - Reverse sample - Перевернуть сэмпл + + Solo this channel + - - Set clip color - Установить цвет клипа + + Fader %1 + - - Use track color - Использовать цвет дорожки + + Move &left + - - - SampleTrack - - Volume - Громкость + + Move &right + - - Panning - Баланс + + Rename &channel + - - Mixer channel - Канал ЭФ + + R&emove channel + - - - Sample track - Дорожка записи + + Remove &unused channels + - - - SampleTrackView - - Track volume - Громкость дорожки + + Color + - - Channel volume: - Громкость канала: + + Change + - - VOL - УР + + Reset + - - Panning - Баланс + + Pick random + - - Panning: - Баланс: + + This Mixer Channel is being used. +Are you sure you want to remove this channel? + +Warning: This operation can not be undone. + - - PAN - БАЛ + + Confirm removal + - - Channel %1: %2 - ЭФ %1: %2 + + Don't ask again + - SampleTrackWindow + lmms::gui::MixerView - - GENERAL SETTINGS - ОСНОВНЫЕ НАСТРОЙКИ + + Mixer + + + + lmms::gui::MonstroView - - Sample volume - Громкость сэмпла + + Operators view + - - Volume: - Громкость: + + Matrix view + - - VOL - ГРОМК + + + + Volume + - + + + Panning - Баланс - - - - Panning: - Баланс: - - - - PAN - БАЛ + - - Mixer channel - Канал ЭФ + + + + Coarse detune + - - CHANNEL - ЭФ + + + + semitones + - - - SaveOptionsWidget - - Discard MIDI connections - Отклонить MIDI-соединения + + + Fine tune left + - - Save As Project Bundle (with resources) + + + + + cents - - - SetupDialog - - Reset to default value - Сбросить до настроек по умолчанию + + + Fine tune right + - - Use built-in NaN handler - Использовать встроенный Nan-обработчик + + + + Stereo phase offset + - - Settings - Настройки + + + + + + deg + - - - General - Основные + + Pulse width + - - Graphical user interface (GUI) - Графический интерфейс пользователя (GUI) + + Send sync on pulse rise + - - Display volume as dBFS - Отображать громкость в децибелах + + Send sync on pulse fall + - - Enable tooltips - Включить подсказки + + Hard sync oscillator 2 + - - Enable master oscilloscope by default + + Reverse sync oscillator 2 - - Enable all note labels in piano roll + + Sub-osc mix - - Enable compact track buttons + + Hard sync oscillator 3 - - Enable one instrument-track-window mode + + Reverse sync oscillator 3 - - Show sidebar on the right-hand side - Показывать боковую панель справа + + + + + Attack + - - Let sample previews continue when mouse is released + + + Rate - - Mute automation tracks during solo - Отключать дорожки автоматизации во время соло + + + Phase + - - Show warning when deleting tracks + + + Pre-delay - - Projects - Проекты + + + Hold + - - Compress project files by default - По умолчанию сжимать файлы проекта + + + Decay + - - Create a backup file when saving a project - Создавать резервные копии при сохранении проекта + + + Sustain + - - Reopen last project on startup - Открывать последний проект при запуске + + + Release + - - Language - Язык + + + Slope + - - - Performance - Производительность + + Mix osc 2 with osc 3 + - - Autosave - Автосохранение + + Modulate amplitude of osc 3 by osc 2 + - - Enable autosave - Включить автоматическое сохранение + + Modulate frequency of osc 3 by osc 2 + - - Allow autosave while playing - Разрешить автосохранение во время воспроизведения. + + Modulate phase of osc 3 by osc 2 + - - User interface (UI) effects vs. performance - Эффекты интерфейса и производительность + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Modulation amount + + + + lmms::gui::MultitapEchoControlDialog - - Smooth scroll in song editor - Плавная прокрутка в редакторе композиции + + Length + - - Display playback cursor in AudioFileProcessor - Показывать указатель воспроизведения в процессоре звуковых файлов + + Step length: + - - Plugins - Модули + + Dry + - - VST plugins embedding: - Встраивание VST-плагинов: + + Dry gain: + - - No embedding - Не встраивать + + Stages + - - Embed using Qt API - Встроить с использованием Qt API + + Low-pass stages: + - - Embed using native Win32 API - Встроить с использованием Win32 API + + Swap inputs + - - Embed using XEmbed protocol - Встроить с использованием протокола XEmbed + + Swap left and right input channels for reflections + + + + lmms::gui::NesInstrumentView - - Keep plugin windows on top when not embedded - Держать окна плагинов поверху, если не встроены + + + + + Volume + - - Sync VST plugins to host playback - Синхронизировать VST плагины с хостом воспроизведения + + + + Coarse detune + - - Keep effects running even without input - Продолжать работу эффектов даже без входящего сигнала + + + + Envelope length + - - - Audio - Аудио + + Enable channel 1 + - - Audio interface - Аудио-интерфейс + + Enable envelope 1 + - - HQ mode for output audio device - Высококачественный режим аудио-устройства + + Enable envelope 1 loop + - - Buffer size - Размер буфера + + Enable sweep 1 + - - - MIDI - MIDI + + + Sweep amount + - - MIDI interface - Интерфейс MIDI + + + Sweep rate + - - Automatically assign MIDI controller to selected track - Автоматически назначать MIDI-контроллер на выбранную дорожку + + + 12.5% Duty cycle + - - LMMS working directory - Рабочий каталог LMMS + + + 25% Duty cycle + - - VST plugins directory - Каталог модулей VST + + + 50% Duty cycle + - - LADSPA plugins directories - Каталог модулей LADSPA + + + 75% Duty cycle + - - SF2 directory - Папка SF2 + + Enable channel 2 + - - Default SF2 - Файл SF2 по умолчанию + + Enable envelope 2 + - - GIG directory - Папка GIG + + Enable envelope 2 loop + - - Theme directory - Папка для тем + + Enable sweep 2 + - - Background artwork - Фоновое изображение + + Enable channel 3 + - - Some changes require restarting. - Некоторые изменения требуют перезагрузки программы. + + Noise Frequency + - - Autosave interval: %1 - Интервал автосохранения: %1 + + Frequency sweep + - - Choose the LMMS working directory - Выбрать рабочий каталог LMMS + + Enable channel 4 + - - Choose your VST plugins directory - Выбрать каталог плагинов VST + + Enable envelope 4 + - - Choose your LADSPA plugins directory - Выбрать каталог плагинов LADSPA + + Enable envelope 4 loop + - - Choose your default SF2 - Выберите основной SF2 + + Quantize noise frequency when using note frequency + - - Choose your theme directory - Выберите свою папку для тем + + Use note frequency for noise + - - Choose your background picture - Выберите свою картинку фона + + Noise mode + - - - Paths - Пути + + Master volume + - - OK - ОК + + Vibrato + + + + lmms::gui::OpulenzInstrumentView - - Cancel - Отмена + + + Attack + - - Frames: %1 -Latency: %2 ms - Фрагментов: %1 -Отклик: %2 мс + + + Decay + - - Choose your GIG directory - Выберите вашу папку GIG + + + Release + - - Choose your SF2 directory - Выберите вашу папку SF2 + + + Frequency multiplier + + + + lmms::gui::OrganicInstrumentView - - minutes - Минуты + + Distortion: + - - minute - Минута + + Volume: + - - Disabled - Отключено + + Randomise + - - - SidInstrument - - Cutoff frequency - Частота среза + + + Osc %1 waveform: + - - Resonance - Резонанс + + Osc %1 volume: + - - Filter type - Тип фильтра + + Osc %1 panning: + - - Voice 3 off - Голос 3 откл. + + Osc %1 stereo detuning + - - Volume - Громкость + + cents + - - Chip model - Модель чипа + + Osc %1 harmonic: + - SidInstrumentView + lmms::gui::Oscilloscope - - Volume: - Уровень громкости: + + Oscilloscope + - - Resonance: - Резонанс: + + Click to enable + + + + lmms::gui::PatmanView - - - Cutoff frequency: - Частота среза: + + Open patch + - - High-pass filter - Фильтр верхних частот + + Loop + - - Band-pass filter - Полосовой фильтр + + Loop mode + - - Low-pass filter - Фильтр нижних частот + + Tune + - - Voice 3 off - Голос 3 откл. + + Tune mode + - - MOS6581 SID - MOS6581 SID + + No file selected + - - MOS8580 SID - MOS8580 SID + + Open patch file + - - - Attack: - Атака: + + Patch-Files (*.pat) + + + + lmms::gui::PatternClipView - - - Decay: - Спад: + + Open in Pattern Editor + - - Sustain: - Выдержка: + + Reset name + - - - Release: - Затухание: + + Change name + + + + lmms::gui::PatternEditorWindow - - Pulse Width: - Длина импульса: + + Pattern Editor + - - Coarse: - Грубо: + + Play/pause current pattern (Space) + - - Pulse wave - Пульсирующая волна + + Stop playback of current pattern (Space) + - - Triangle wave - Треугольная волна + + Pattern selector + - - Saw wave - Пило-волна + + Track and step actions + - - Noise - Шум + + New pattern + - - Sync - Синхро + + Clone pattern + - - Ring modulation - Круговая модуляция + + Add sample-track + - - Filtered - Фильтр. + + Add automation-track + - - Test - Тест + + Remove steps + - - Pulse width: - Длина импульса + + Add steps + - - - SideBarWidget - - Close - Закрыть + + Clone Steps + - Song + lmms::gui::PeakControllerDialog - - Tempo - Темп - - - - Master volume - Главная громкость + + PEAK + - - Master pitch - Основной тон + + LFO Controller + + + + lmms::gui::PeakControllerEffectControlDialog - - Aborting project load + + BASE - - Project file contains local paths to plugins, which could be used to run malicious code. + + Base: - - Can't load project: Project file contains local paths to plugins. + + AMNT - - LMMS Error report - Отчет об ошибке LMMS + + Modulation amount: + - - (repeated %1 times) + + MULT - - The following errors occurred while loading: - Во время загрузки произошли следующие ошибки: + + Amount multiplicator: + - - - SongEditor - - Could not open file - Не удалось открыть файл + + ATCK + - - Could not open file %1. You probably have no permissions to read this file. - Please make sure to have at least read permissions to the file and try again. - Не удалось открыть файл %1. Вероятно, у вас нет прав на его чтение. -Проверьте, есть ли у вас права на чтение этого файла и попробуйте снова. + + Attack: + - - Operation denied + + DCAY - - A bundle folder with that name already eists on the selected path. Can't overwrite a project bundle. Please select a different name. + + Release: - - - - Error - Ошибка + + TRSH + - - Couldn't create bundle folder. + + Treshold: - - Couldn't create resources folder. + + Mute output - - Failed to copy resources. + + Absolute value + + + lmms::gui::PeakIndicator - - Could not write file - Не удалось записать файл + + -inf + + + + lmms::gui::PianoRoll - - Could not open %1 for writing. You probably are not permitted towrite to this file. Please make sure you have write-access to the file and try again. + + Note Velocity - - This %1 was created with LMMS %2 + + Note Panning - - Error in file - Ошибка в файле + + Mark/unmark current semitone + - - The file %1 seems to contain errors and therefore can't be loaded. - Файл %1 возможно содержит ошибки, поэтому не может загрузиться. + + Mark/unmark all corresponding octave semitones + - - Version difference - Различия версий + + Mark current scale + - - template - шаблон + + Mark current chord + - - project - проект + + Unmark all + - - Tempo - Темп + + Select all notes on this key + - - TEMPO - ТЕМП + + Note lock + - - Tempo in BPM - Темп в BPM + + Last note + - - High quality mode - Высокое качество + + No key + - - - - Master volume - Главная громкость + + No scale + - - - - Master pitch - Основной тон + + No chord + - - Value: %1% - Значение: %1% + + Nudge + - - Value: %1 semitones - Полутонов: %1 + + Snap + - - - SongEditorWindow - - Song-Editor - Композитор + + Velocity: %1% + - - Play song (Space) - Играть песню (пробел) + + Panning: %1% left + - - Record samples from Audio-device - Записать сэмпл со звукового устройства + + Panning: %1% right + - - Record samples from Audio-device while playing song or BB track - Записать сэмпл с аудио-устройства во время воспроизведения -в музыкальном или ритм/бас редакторе + + Panning: center + - - Stop song (Space) - Остановить песню (пробел) + + Glue notes failed + - - Track actions - Панель трека + + Please select notes to glue first. + - - Add beat/bassline - Добавить ритм/бас + + Please open a clip by double-clicking on it! + - - Add sample-track - Добавить дорожку записи + + + Please enter a new value between %1 and %2: + + + + lmms::gui::PianoRollWindow - - Add automation-track - Добавить дорожку автоматизации + + Play/pause current clip (Space) + - - Edit actions - Панель правки + + Record notes from MIDI-device/channel-piano + - - Draw mode - Режим рисования + + Record notes from MIDI-device/channel-piano while playing song or pattern track + - - Knife mode (split sample clips) + + Record notes from MIDI-device/channel-piano, one step at the time - - Edit mode (select and move) - Режим исправлений (выбирать и двигать) + + Stop playing of current clip (Space) + - - Timeline controls - Контроль таймлайна + + Edit actions + - - Bar insert controls + + Draw mode (Shift+D) - - Insert bar + + Erase mode (Shift+E) - - Remove bar + + Select mode (Shift+S) - - Zoom controls - Управление приближением. + + Pitch Bend mode (Shift+T) + - - Horizontal zooming - Горизонтальное приближение + + Quantize + - - Snap controls - Контроль выравнивания + + Quantize positions + - - - Clip snapping size - Ограничить размер выравнивания + + Quantize lengths + - - Toggle proportional snap on/off - Вкл./выкл. пропорциональное выравнивание + + File actions + - - Base snapping size - Базовый размер выравнивания + + Import clip + - - - StepRecorderWidget - - Hint - Подсказка + + + Export clip + - - Move recording curser using <Left/Right> arrows - Двигать курсор записи стрелками влево-вправо + + Copy paste controls + - - - SubWindow - - Close - Закрыть + + Cut (%1+X) + - - Maximize - Развернуть + + Copy (%1+C) + - - Restore - Восстановить + + Paste (%1+V) + - - - TabWidget - - - Settings for %1 - Настройки для %1 + + Timeline controls + - - - TemplatesMenu - - New from template - Создать на основе шаблона + + Glue + - - - TempoSyncKnob - - - Tempo Sync - Синхронизация темпа + + Knife + - - No Sync - Без синхронизации + + Fill + - - Eight beats - Восемь ударов + + Cut overlaps + - - Whole note - Целая нота + + Min length as last + - - Half note - Половинная нота + + Max length as last + - - Quarter note - Четвертная нота + + Zoom and note controls + - - 8th note - Восьмая нота + + Horizontal zooming + - - 16th note - 1/16 нота + + Vertical zooming + - - 32nd note - 1/32 нота + + Quantization + - - Custom... - Своя... + + Note length + - - Custom - Своя + + Key + - - Synced to Eight Beats - Синхро по 8 ударам + + Scale + - - Synced to Whole Note - Синхро по целой ноте + + Chord + - - Synced to Half Note - Синхро по половинной ноте + + Snap mode + - - Synced to Quarter Note - Синхро по четвертной ноте + + Clear ghost notes + - - Synced to 8th Note - Синхро по 1/8 ноте + + + Piano-Roll - %1 + - - Synced to 16th Note - Синхро по 1/16 ноте + + + Piano-Roll - no clip + - - Synced to 32nd Note - Синхро по 1/32 ноте + + + XML clip file (*.xpt *.xptz) + - - - TimeDisplayWidget - - Time units - Единицы времени + + Export clip success + - - MIN - МИН + + Clip saved to %1 + - - SEC - СЕК + + Import clip. + - - MSEC - мСЕК + + You are about to import a clip, this will overwrite your current clip. Do you want to continue? + - - BAR - ДЕЛЕНИЕ + + Open clip + - - BEAT - БИТ + + Import clip success + - - TICK - ТИК + + Imported clip %1! + - TimeLineWidget + lmms::gui::PianoView - - Auto scrolling - Авто-перемотка + + Base note + - - Loop points - Точки петли + + First note + - - After stopping go back to beginning - После остановки возвращаться в начало + + Last note + + + + lmms::gui::PluginBrowser - - After stopping go back to position at which playing was started - После остановки переходить к месту, с которого началось воспроизведение + + Instrument Plugins + - - After stopping keep position - Оставаться на месте остановки + + Instrument browser + - - Hint - Подсказка + + Drag an instrument into either the Song Editor, the Pattern Editor or an existing instrument track. + - - Press <%1> to disable magnetic loop points. - Нажмите <%1>, чтобы убрать прилипание точек петли. + + Search + - Track - - - Mute - Заглушить - - - - Solo - Соло + lmms::gui::PluginDescWidget + + + Send to new instrument track + Отправить на новую инструментальную дорожку - TrackContainer + lmms::gui::ProjectNotes - - Couldn't import file - Не удалось импортировать файл + + Project Notes + - - Couldn't find a filter for importing file %1. -You should convert this file into a format supported by LMMS using another software. - Не удалось найти фильтр для импорта файла %1. -Преобразуйте его в формат, поддерживаемый LMMS, используя стороннее ПО. + + Enter project notes here + - - Couldn't open file - Не удалось открыть файл + + Edit Actions + - - Couldn't open file %1 for reading. -Please make sure you have read-permission to the file and the directory containing the file and try again! - Не удалось открыть файл %1 для записи. -Проверьте, обладаете ли вы правами на чтение файла и содержащий его каталог и попробуйте снова! + + &Undo + - - Loading project... - Загрузка проекта... + + %1+Z + - - - Cancel - Отмена + + &Redo + - - - Please wait... - Подождите, пожалуйста... + + %1+Y + - - Loading cancelled - Загрузка отменена. + + &Copy + - - Project loading was cancelled. - Загрузка проекта была отменена. + + %1+C + - - Loading Track %1 (%2/Total %3) - Загружается дорожка %1 (%2 из %3) + + Cu&t + - - Importing MIDI-file... - Импортирую файл MIDI... + + %1+X + - - - Clip - - Mute - Заглушить + + &Paste + - - - ClipView - - Current position - Текущая позиция + + %1+V + - - Current length - Текущая длительность + + Format Actions + - - - %1:%2 (%3:%4 to %5:%6) - %1:%2 (от %3:%4 до %5:%6) + + &Bold + - - Press <%1> and drag to make a copy. - Удерживайте <%1> при перетаскивании, чтобы создать копию. + + %1+B + - - Press <%1> for free resizing. - Для свободного изменения размера нажмите <%1>. + + &Italic + - - Hint - Подсказка + + %1+I + - - Delete (middle mousebutton) - Удалить (средняя кнопка мыши) + + &Underline + - - Delete selection (middle mousebutton) - Удалить выделенное (средняя кнопка мыши) + + %1+U + - - Cut - Вырезать + + &Left + - - Cut selection - Вырезать выделенное + + %1+L + - - Merge Selection + + C&enter - - Copy - Копировать + + %1+E + - - Copy selection - Копировать выделенное + + &Right + - - Paste - Вставить + + %1+R + - - Mute/unmute (<%1> + middle click) - Тихо/громко (<%1> + щелчок средней кнопкой) + + &Justify + - - Mute/unmute selection (<%1> + middle click) - Отключить или включить звук для выделенного (<%1> + средняя кнопка мыши) + + %1+J + - - Set clip color - Установить цвет клипа + + &Color... + + + + lmms::gui::RecentProjectsMenu - - Use track color - Использовать цвет дорожки + + &Recently Opened Projects + - TrackContentWidget + lmms::gui::RenameDialog - - Paste - Вставить + + Rename... + - TrackOperationsWidget + lmms::gui::ReverbSCControlDialog - - Press <%1> while clicking on move-grip to begin a new drag'n'drop action. - Удерживайте нажатой клавишу <%1> при щелчке по захвату перемещения, чтобы начать новое перетаскивание. + + Input + - - Actions - Действия + + Input gain: + - - - Mute - Заглушить + + Size + - - - Solo - Соло + + Size: + - - After removing a track, it can not be recovered. Are you sure you want to remove track "%1"? + + Color - - Confirm removal + + Color: - - Don't ask again + + Output - - Clone this track - Клонировать дорожку + + Output gain: + + + + lmms::gui::SaControlsDialog - - Remove this track - Удалить дорожку + + Pause + - - Clear this track - Очистить эту дорожку + + Pause data acquisition + - - Channel %1: %2 - ЭФ %1: %2 + + Reference freeze + - - Assign to new mixer Channel - Назначить на другой канал ЭФфектов + + Freeze current input as a reference / disable falloff in peak-hold mode. + - - Turn all recording on - Включить всё на запись + + Waterfall + - - Turn all recording off - Выключить всю запись + + Display real-time spectrogram + - - Change color - Изменить цвет + + Averaging + - - Reset color to default - Установить цвет по умолчанию + + Enable exponential moving average + - - Set random color - Выбрать случайный цвет + + Stereo + - - Clear clip colors - Очистить цвета клипа + + Display stereo channels separately + - - - TripleOscillatorView - - Modulate phase of oscillator 1 by oscillator 2 - Модулировать фазу осциллятора 1 сигналом с 2 + + Peak hold + - - Modulate amplitude of oscillator 1 by oscillator 2 - Модулировать амплитуду осциллятора 1 сигналом с 2 + + Display envelope of peak values + - - Mix output of oscillators 1 & 2 - Смешать выход осцилляторов 1 и 2 + + Logarithmic frequency + - - Synchronize oscillator 1 with oscillator 2 - Синхронизировать осциллятор 1 с осц 2 + + Switch between logarithmic and linear frequency scale + - - Modulate frequency of oscillator 1 by oscillator 2 - Модулировать частоту осциллятора 1 сигналом с 2 + + + Frequency range + - - Modulate phase of oscillator 2 by oscillator 3 - Модулировать фазу осциллятора 2 сигналом с 3 + + Logarithmic amplitude + - - Modulate amplitude of oscillator 2 by oscillator 3 - Модулировать амплитуду осциллятора 2 сигналом с 3 + + Switch between logarithmic and linear amplitude scale + - - Mix output of oscillators 2 & 3 - Смешать выход осцилляторов 2 и 3 + + + Amplitude range + - - Synchronize oscillator 2 with oscillator 3 - Синхронизировать осциллятор 2 с осц 3 + + + FFT block size + - - Modulate frequency of oscillator 2 by oscillator 3 - Модулировать частоту осциллятора 2 сигналом с 3 + + + FFT window type + - - Osc %1 volume: - Громкость осц %1: + + Envelope res. + - - Osc %1 panning: - Баланс осц %1: + + Increase envelope resolution for better details, decrease for better GUI performance. + - - Osc %1 coarse detuning: - Грубая подстройка осц %1: + + Maximum number of envelope points drawn per pixel: + - - semitones - полутон[а,ов] + + Spectrum res. + - - Osc %1 fine detuning left: - Точная подстройка осц %1 слева: + + Increase spectrum resolution for better details, decrease for better GUI performance. + - - - cents - цент[а,ов] + + Maximum number of spectrum points drawn per pixel: + + + + + Falloff factor + + + + + Decrease to make peaks fall faster. + - - Osc %1 fine detuning right: - Точная подстройка осц %1 справа: + + Multiply buffered value by + - - Osc %1 phase-offset: - Сдвиг фазы осц %1: + + Averaging weight + - - - degrees - ° + + Decrease to make averaging slower and smoother. + - - Osc %1 stereo phase-detuning: - Подстройка стерео-фазы осциллятора %1: + + New sample contributes + - - Sine wave - Синусоида + + Waterfall height + - - Triangle wave - Треугольная волна + + Increase to get slower scrolling, decrease to see fast transitions better. Warning: medium CPU usage. + - - Saw wave - Пило-волна + + Number of lines to keep: + - - Square wave - Квадрат-волна + + Waterfall gamma + - - Moog-like saw wave - Типа муг пило-волна + + Decrease to see very weak signals, increase to get better contrast. + - - Exponential wave - Экспоненциальная волна + + Gamma value: + - - White noise - Белый шум + + Window overlap + - - User-defined wave - Своя волна + + Increase to prevent missing fast transitions arriving near FFT window edges. Warning: high CPU usage. + - - - VecControls - - Display persistence amount + + Number of times each sample is processed: - - Logarithmic scale - Логарифмическая шкала + + Zero padding + - - High quality - Высокое качество + + Increase to get smoother-looking spectrum. Warning: high CPU usage. + - - - VecControlsDialog - - HQ + + Processing buffer is - - Double the resolution and simulate continuous analog-like trace. - Удвоить разрешение и смоделировать непрерывное аналоговое отслеживание. + + steps larger than input block + - - Log. scale - Лог. шкала + + Advanced settings + - - Display amplitude on logarithmic scale to better see small values. - Отображать амплитуду на логарифмической шкале, чтобы лучше видеть маленькие значения. + + Access advanced settings + + + + lmms::gui::SampleClipView - - Persist. + + Double-click to open sample - - Trace persistence: higher amount means the trace will stay bright for longer time. + + Reverse sample - - Trace persistence + + Set as ghost in automation editor - VersionedSaveDialog + lmms::gui::SampleTrackView - - Increment version number - Увеличить номер версии + + Mixer channel + - - Decrement version number - Уменьшить номер версии + + Track volume + - - Save Options - Параметры сохранения + + Channel volume: + - - already exists. Do you want to replace it? - уже существует. Заменить? + + VOL + - - - VestigeInstrumentView - - - Open VST plugin - Открыть VST-плагин + + Panning + - - Control VST plugin from LMMS host - Контроль VST-модуля из хоста LMMS + + Panning: + - - Open VST plugin preset - Открыть пресет VST-плагина + + PAN + - - Previous (-) - Предыдущий (−) + + %1: %2 + + + + lmms::gui::SampleTrackWindow - - Save preset - Сохранить настройку + + Sample volume + - - Next (+) - Следующий (+) + + Volume: + - - Show/hide GUI - Показать/скрыть интерфейс + + VOL + - - Turn off all notes - Выключить все ноты + + Panning + - - DLL-files (*.dll) - Библиотеки DLL (*.dll) + + Panning: + - - EXE-files (*.exe) - Программы EXE (*.exe) + + PAN + - - No VST plugin loaded - Нет загруженного VST-модуля + + Mixer channel + - - Preset - Предустановка + + CHANNEL + КАНАЛ + + + lmms::gui::SaveOptionsWidget - - by - от + + Discard MIDI connections + - - - VST plugin control - - управление VST-плагином + + Save As Project Bundle (with resources) + - VstEffectControlDialog + lmms::gui::SetupDialog - - Show/hide - Показать/скрыть + + Settings + Настройки - - Control VST plugin from LMMS host - Контроль VST-модуля из хоста LMMS + + + General + Главное - - Open VST plugin preset - Открыть пресет VST-плагина + + Graphical user interface (GUI) + Интерфейс - - Previous (-) - Предыдущий (−) + + Display volume as dBFS + Показывать громкость как dBFS - - Next (+) - Следующий (+) + + Enable tooltips + - - Save preset - Сохранить настройку + + Enable master oscilloscope by default + - - - Effect by: - Эффекты по: + + Enable all note labels in piano roll + - - &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> - &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> + + Enable compact track buttons + - - - VstPlugin - - - The VST plugin %1 could not be loaded. - VST-плагин %1 не загружается. + + Enable one instrument-track-window mode + - - Open Preset - Открыть предустановку + + Show sidebar on the right-hand side + - - - Vst Plugin Preset (*.fxp *.fxb) - Предустановка VST-плагина (*.fxp *.fxb) + + Let sample previews continue when mouse is released + - - : default - : основные + + Mute automation tracks during solo + - - Save Preset - Сохранить настройку + + Show warning when deleting tracks + - - .fxp - .fxp + + Show warning when deleting a mixer channel that is in use + Показывать предупреждение при удалении используемого канала микшера - - .FXP - .FXP + + Dual-button + - - .FXB - .FXB + + Grab closest + - - .fxb - .fxb + + Handles + - - Loading plugin - Загрузка плагина + + Loop edit mode + - - Please wait while loading VST plugin... - Пожалуйста, подождите пока грузится VST-плагин... + + Projects + Проекты - - - WatsynInstrument - - Volume A1 - Громкость А1 + + Compress project files by default + Сжимать файлы проекта по умолчанию - - Volume A2 - Громкость А2 + + Create a backup file when saving a project + Создать файл восстановления когда проект сохраняется - - Volume B1 - Громкость B1 + + Reopen last project on startup + + + + + Language + Язык + + + + + Performance + Производительность - - Volume B2 - Громкость B2 + + Autosave + Автосохранение - - Panning A1 - Панорама А1 + + Enable autosave + Включить автосохранение - - Panning A2 - Панорама А2 + + Allow autosave while playing + Разрешить автосохранение при воспроизведении - - Panning B1 - Панорама В1 + + User interface (UI) effects vs. performance + - - Panning B2 - Панорама В2 + + Smooth scroll in song editor + Плавная прокрутка в редакторе музыки - - Freq. multiplier A1 - Множитель частоты А1 + + Display playback cursor in AudioFileProcessor + - - Freq. multiplier A2 - Множитель частоты А2 + + Plugins + Плагины - - Freq. multiplier B1 - Множитель частоты B1 + + VST plugins embedding: + - - Freq. multiplier B2 - Множитель частоты B2 + + No embedding + - - Left detune A1 - Подстройка левого А1 + + Embed using Qt API + - - Left detune A2 - Подстройка левого A2 + + Embed using native Win32 API + - - Left detune B1 - Подстройка левого B1 + + Embed using XEmbed protocol + - - Left detune B2 - Подстройка левого B2 + + Keep plugin windows on top when not embedded + - - Right detune A1 - Подстройка правого A1 + + Keep effects running even without input + - - Right detune A2 - Подстройка правого A2 + + + Audio + Аудио - - Right detune B1 - Подстройка правого B1 + + Audio interface + Аудио-интерфейс - - Right detune B2 - Подстройка правого B2 + + Buffer size + - - A-B Mix - Микс A-B + + Reset to default value + - - A-B Mix envelope amount - Уровень A-B микса огибающей + + + MIDI + - - A-B Mix envelope attack - Атака A-B микса огибающей + + MIDI interface + - - A-B Mix envelope hold - Удержание A-B микса огибающей + + Automatically assign MIDI controller to selected track + - - A-B Mix envelope decay - Спад A-B микса огибающей + + Behavior when recording + - - A1-B2 Crosstalk - Смешивание A1-B2 + + Auto-quantize notes in Piano Roll + - - A2-A1 modulation - A2-A1 Модуляция + + If enabled, notes will be automatically quantized when recording them from a MIDI controller. If disabled, they are always recorded at the highest possible resolution. + - - B2-B1 modulation - B2-B1 Модуляция + + + Paths + - - Selected graph - Выбранный график + + LMMS working directory + - - - WatsynView - - - - - Volume - Громкость + + VST plugins directory + - - - - - Panning - Баланс + + LADSPA plugins directories + Каталоги плагинов LADSPA - - - - - Freq. multiplier - Множитель частоты + + SF2 directory + - - - - - Left detune - Подстройка слева + + Default SF2 + - - - - - - - - - cents - центы + + GIG directory + - - - - - Right detune - Подстройка справа + + Theme directory + - - A-B Mix - Микс A-B + + Background artwork + - - Mix envelope amount - Уровень огибающей микса + + Some changes require restarting. + - - Mix envelope attack - Атака огибающей микса + + OK + ОК - - Mix envelope hold - Удержание огибающей микса + + Cancel + Отмена - - Mix envelope decay - Спад огибающей микса + + minutes + минуты - - Crosstalk - Смешивание + + minute + минута - - Select oscillator A1 - Выбрать генератор А1 + + Disabled + Отключено - - Select oscillator A2 - Выбрать генератор А2 + + Autosave interval: %1 + - - Select oscillator B1 - Выбрать генератор В1 + + The currently selected value is not a power of 2 (32, 64, 128, 256). Some plugins may not be available. + - - Select oscillator B2 - Выбрать генератор В2 + + The currently selected value is less than or equal to 32. Some plugins may not be available. + - - Mix output of A2 to A1 - Смешать выход А2 с А1 + + Frames: %1 +Latency: %2 ms + - - Modulate amplitude of A1 by output of A2 - Модулировать амплитуду A1 выходом с A2 + + Choose the LMMS working directory + - - Ring modulate A1 and A2 - Кольцевая модуляция A1 и A2 + + Choose your VST plugins directory + - - Modulate phase of A1 by output of A2 - Модулировать фазу A1 выходом с A2 + + Choose your LADSPA plugins directory + Выберите каталог плагинов LADSPA - - Mix output of B2 to B1 - Смешать выход из B2 в B1 + + Choose your SF2 directory + - - Modulate amplitude of B1 by output of B2 - Модулировать амплитуду B1 выходом с B2 + + Choose your default SF2 + - - Ring modulate B1 and B2 - Кольцевая модуляция B1 и B2 + + Choose your GIG directory + - - Modulate phase of B1 by output of B2 - Модулировать фазу B1 выходом с B2 + + Choose your theme directory + - - - - - Draw your own waveform here by dragging your mouse on this graph. - Нарисуйте кривую сигнала, двигая зажатую мышь по этому графу. + + Choose your background picture + Выбрать фоновое изображение + + + lmms::gui::Sf2InstrumentView - - Load waveform - Загрузить форму волны + + + Open SoundFont file + - - Load a waveform from a sample file - Загрузить форму волны из сэмпл-файла + + Choose patch + - - Phase left - Фаза слева + + Gain: + Усиление: - - Shift phase by -15 degrees - Сдвинуть фазу на -15° + + Apply reverb (if supported) + Применить реверберацию (если поддерживается) - - Phase right - Фаза справа + + Room size: + Размер комнаты: - - Shift phase by +15 degrees - Сдвинуть фазу на +15° + + Damping: + Приглушение: - - - Normalize - Нормализовать + + Width: + Ширина: - - - Invert - Инвертировать + + + Level: + Уровень: - - - Smooth - Сгладить + + Apply chorus (if supported) + Применить хорус (если поддерживается) - - - Sine wave - Синусоида + + Voices: + Голоса: - - - - Triangle wave - Треугольная волна + + Speed: + Скорость: - - Saw wave - Пило-волна + + Depth: + Глубина: - - - Square wave - Квадрат-волна + + SoundFont Files (*.sf2 *.sf3) + - Xpressive - - - Selected graph - Выбранный график - + lmms::gui::SidInstrumentView - - A1 - A1 + + Volume: + Громкость: - - A2 - A2 + + Resonance: + Резонанс: - - A3 - A3 + + + Cutoff frequency: + Частота среза: - - W1 smoothing - Сглаживание W1 + + High-pass filter + Фильтр верхних частот - - W2 smoothing - Сглаживание W2 + + Band-pass filter + Фильтр средних частот - - W3 smoothing - Сглаживание W3 + + Low-pass filter + Фильтр нижних частот - - Panning 1 - Баланс 1 + + Voice 3 off + Голос 3 откл. - - Panning 2 - Баланс 2 + + MOS6581 SID + - - Rel trans - Реле перехода + + MOS8580 SID + - - - XpressiveView - - Draw your own waveform here by dragging your mouse on this graph. - Нарисуйте свою форму волны двигая зажатой мышью по графу. + + + Attack: + Атака: - - Select oscillator W1 - Выбрать осциллятор W1 + + + Decay: + Спад: - - Select oscillator W2 - Выбрать осциллятор W2 + + Sustain: + Выдержка: - - Select oscillator W3 - Выбрать осциллятор W3 + + + Release: + Затухание: - - Select output O1 - Выбрать выход О1 + + Pulse Width: + Длина импульса: - - Select output O2 - Выбрать выход О2 + + Coarse: + - - Open help window - Открыть окно справки + + Pulse wave + - - - Sine wave - Синусоида + + Triangle wave + - - - Moog-saw wave - Муг пило-волна + + Saw wave + - - - Exponential wave - Экспоненциальная волна + + Noise + Шум - - - Saw wave - Пило-волна + + Sync + - - - User-defined wave - Своя волна + + Ring modulation + - - - Triangle wave - Треугольная волна + + Filtered + - - - Square wave - Квадрат-волна + + Test + Тест - - - White noise - Белый шум + + Pulse width: + + + + lmms::gui::SideBarWidget - - WaveInterpolate - Волн. интерполяция + + Close + Закрыть + + + lmms::gui::SlicerTView - - ExpressionValid - ВыражениеВерно + + Slice snap + - - General purpose 1: - Общего назначения 1: + + Set slice snapping for detection + - - General purpose 2: - Общего назначения 2: + + Sync sample + - - General purpose 3: - Общего назначения 3: + + Enable BPM sync + - - O1 panning: - O1 баланс: + + Original sample BPM + - - O2 panning: - О2 баланс: + + Threshold used for slicing + - - Release transition: - Переход затухания: + + Fade Out per note in milliseconds + - - Smoothness - Гладкость + + Copy midi pattern to clipboard + - - - ZynAddSubFxInstrument - - Portamento - Портаменто + + Open sample selector + - - Filter frequency - Частота фильтра + + Reset slices + - - Filter resonance - Резонанс фильтра + + Threshold + - - Bandwidth - Полоса пропускания + + Fade Out + - - FM gain - FM усиление + + Reset + - - Resonance center frequency - Частота центра резонанса + + Midi + - - Resonance bandwidth - Полоса пропуска резонанса + + BPM + - - Forward MIDI control change events - Передавать события изменений MIDI управления + + Snap + - ZynAddSubFxView + lmms::gui::SlicerTWaveform - - Portamento: - Портаменто: + + Click to load sample + + + + lmms::gui::SongEditor - - PORT - PORT + + Could not open file + - - Filter frequency: - Частота фильтра: + + Could not open file %1. You probably have no permissions to read this file. + Please make sure to have at least read permissions to the file and try again. + - - FREQ - FREQ + + Operation denied + - - Filter resonance: - Резонанс фильтра: + + A bundle folder with that name already eists on the selected path. Can't overwrite a project bundle. Please select a different name. + - - RES - RES + + + + Error + Ошибка - - Bandwidth: - Полоса пропускания: + + Couldn't create bundle folder. + - - BW - BW + + Couldn't create resources folder. + - - FM gain: - FM усиление: + + Failed to copy resources. + - - FM GAIN - FM УСИЛ + + + Could not write file + - - Resonance center frequency: - Частоты центра резонанса: + + Could not open %1 for writing. You probably are not permitted to write to this file. Please make sure you have write-access to the file and try again. + - - RES CF - RES CF + + An unknown error has occurred and the file could not be saved. + - - Resonance bandwidth: - Полоса пропуска резонанса: + + Error in file + Ошибка в файле - - RES BW - RES BW + + The file %1 seems to contain errors and therefore can't be loaded. + - - Forward MIDI control changes - Передавать изменения MIDI управления + + template + - - Show GUI - Показать интерфейс + + project + - - - AudioFileProcessor - - Amplify - Усиление + + Version difference + - - Start of sample - Начало сэмпла + + This %1 was created with LMMS %2 + - - End of sample - Конец сэмпла + + Zoom + - - Loopback point - Точка петли + + Tempo + - - Reverse sample - Перевернуть сэмпл + + TEMPO + - - Loop mode - Режим повтора + + Tempo in BPM + - - Stutter - Запинание + + + + Master volume + - - Interpolation mode - Режим интерполяции + + + + Global transposition + - - None - Нет + + 1/%1 Bar + - - Linear - Линейный + + %1 Bars + - - Sinc - Sinc + + Value: %1% + - - Sample not found: %1 - Сэмпл не найден: %1 + + Value: %1 keys + - BitInvader + lmms::gui::SongEditorWindow - - Sample length - Длина сэмпла + + Song-Editor + - - - BitInvaderView - - Sample length - Длина сэмпла + + Play song (Space) + - - Draw your own waveform here by dragging your mouse on this graph. - Здесь вы можете рисовать собственный сигнал. + + Record samples from Audio-device + - - - Sine wave - Синусоида + + Record samples from Audio-device while playing song or pattern track + - - - Triangle wave - Треугольник + + Stop song (Space) + - - - Saw wave - Пило-волна + + Track actions + - - - Square wave - Квадрат (Меандр) + + Add pattern-track + - - - White noise - Белый шум + + Add sample-track + - - - User-defined wave - Своя волна + + Add automation-track + - - - Smooth waveform - Сгладить волну + + Edit actions + - - Interpolation - Интерполяция + + Draw mode + Режим рисования - - Normalize - Нормализовать + + Knife mode (split sample clips) + - - - DynProcControlDialog - - INPUT - ВХОД + + Edit mode (select and move) + Режим исправлений (выбирать и двигать) - - Input gain: - Входное усиление: + + Timeline controls + Контроль таймлайна - - OUTPUT - ВЫХОД + + Bar insert controls + - - Output gain: - Выходное усиление: + + Insert bar + - - ATTACK - АТАКА + + Remove bar + - - Peak attack time: - Время пиковой атаки: + + Zoom controls + Управление приближением - - RELEASE - ЗАТУХАНИЕ + + + Zoom + Масштаб - - Peak release time: - Время затухания пика: + + Snap controls + Контроль выравнивания - - - Reset wavegraph - Сбросить волновой график + + + Clip snapping size + Ограничить размер выравнивания - - - Smooth wavegraph - Сгладить волновой график + + Toggle proportional snap on/off + Вкл./выкл. пропорциональное выравнивание - - - Increase wavegraph amplitude by 1 dB - Увеличить амплитуду графика волны на 1 дБ + + Base snapping size + Базовый размер выравнивания + + + lmms::gui::StepRecorderWidget - - - Decrease wavegraph amplitude by 1 dB - Уменьшить амплитуду графика волны на 1 дБ + + Hint + Подсказка - - Stereo mode: maximum - Режим стерео: максимум + + Move recording curser using <Left/Right> arrows + Двигать курсор записи стрелками влево-вправо + + + lmms::gui::StereoEnhancerControlDialog - - Process based on the maximum of both stereo channels - Обработка по максимуму обоих стерео каналов + + WIDTH + ШИРИНА - - Stereo mode: average - Режим стерео: средне + + Width: + Ширина: + + + lmms::gui::StereoMatrixControlDialog - - Process based on the average of both stereo channels - Обработка по средней обоих стерео-каналов + + Left to Left Vol: + От левого на левый: - - Stereo mode: unlinked - Режим стерео: раздельно + + Left to Right Vol: + От левого на правый: - - Process each stereo channel independently - Обрабатывает каждый стерео-канал независимо + + Right to Left Vol: + От правого на левый: + + + + Right to Right Vol: + От правого на правый: - DynProcControls + lmms::gui::SubWindow - - Input gain - Входная мощность + + Close + Закрыть - - Output gain - Выходная мощность + + Maximize + Развернуть - - Attack time - Время атаки + + Restore + Восстановить + + + lmms::gui::TapTempoView - - Release time - Время затухания + + 0 + - - Stereo mode - Режим стерео + + + Precision + Точность - - - graphModel - - Graph - Граф + + Display in high precision + Отображение с высокой точностью - - - KickerInstrument - - Start frequency - Начальная частота + + 0.0 ms + - - End frequency - Конечная частота + + Mute metronome + Выключить метроном - - Length - Длина + + Mute + Заглушить - - Start distortion - Начало перегруза + + BPM in milliseconds + BPM в миллисекундах - - End distortion - Конец перегруза + + 0 ms + - - Gain - Усиление + + Frequency of BPM + Частота BPM - - Envelope slope - Уклон огибающей + + 0.0000 hz + - - Noise - Шум + + Reset + Сброс - - Click - Щелчок + + Reset counter and sidebar information + Сбросить счетчик и информацию на боковой панели - - Frequency slope - Уклон частоты + + Sync + - - Start from note - Начать с ноты + + Sync with project tempo + Синхронизация с темпом проекта - - End to note - Закончить нотой + + %1 ms + + + + + %1 hz + - KickerInstrumentView + lmms::gui::TemplatesMenu - - Start frequency: - Начальная частота: + + New from template + + + + lmms::gui::TempoSyncBarModelEditor - - End frequency: - Конечная частота: + + + Tempo Sync + - - Frequency slope: - Уклон частоты + + No Sync + - - Gain: - Усиление: + + Eight beats + - - Envelope length: - Длина огибающей: + + Whole note + - - Envelope slope: - Уклон огибающей: + + Half note + - - Click: - Щелчок: + + Quarter note + + + + + 8th note + + + + + 16th note + + + + + 32nd note + - - Noise: - Шум: + + Custom... + - - Start distortion: - Начало перегруза: + + Custom + - - End distortion: - Конец перегруза: + + Synced to Eight Beats + - - - LadspaBrowserView - - - Available Effects - Доступные эффекты + + Synced to Whole Note + - - - Unavailable Effects - Недоступные эффекты + + Synced to Half Note + - - - Instruments - Инструменты + + Synced to Quarter Note + - - - Analysis Tools - Анализаторы + + Synced to 8th Note + - - - Don't know - Неизвестные + + Synced to 16th Note + - - Type: - Тип: + + Synced to 32nd Note + - LadspaDescription + lmms::gui::TempoSyncKnob - - Plugins - Модули + + + Tempo Sync + - - Description - Описание + + No Sync + - - - LadspaPortDialog - - Ports - Порты + + Eight beats + - - Name - Название + + Whole note + - - Rate - Частота выборки + + Half note + - - Direction - Направление + + Quarter note + - - Type - Тип + + 8th note + - - Min < Default < Max - Меньше < Стандарт < Больше + + 16th note + - - Logarithmic - Логарифмический + + 32nd note + - - SR Dependent - Зависимость от SR + + Custom... + Своя... - - Audio - Аудио + + Custom + Своя - - Control - Контроль + + Synced to Eight Beats + Синхро по 8 ударам - - Input - Ввод + + Synced to Whole Note + Синхро по целой ноте - - Output - Вывод + + Synced to Half Note + Синхро по половинной ноте - - Toggled - Включено + + Synced to Quarter Note + Синхро по четвертной ноте - - Integer - Целое + + Synced to 8th Note + Синхро по 1/8 ноте - - Float - Дробное + + Synced to 16th Note + Синхро по 1/16 ноте - - - Yes - Да + + Synced to 32nd Note + Синхро по 1/32 ноте - Lb302Synth + lmms::gui::TimeDisplayWidget - - VCF Cutoff Frequency - Частота среза VCF + + Time units + Единицы времени - - VCF Resonance - Резонанс VCF + + MIN + МИН - - VCF Envelope Mod - Модуляция огибающей VCF + + SEC + СЕК - - VCF Envelope Decay - Спад огибающей VCF + + MSEC + мСЕК - - Distortion - Перегруз + + BAR + ДЕЛЕНИЕ - - Waveform - Форма сигнала + + BEAT + БИТ - - Slide Decay - Сдвиг спада + + TICK + ТИК + + + lmms::gui::TimeLineWidget - - Slide - Сдвиг + + Auto scrolling + Авто-перемотка - - Accent - Акцент + + Stepped auto scrolling + - - Dead - Глухо + + Continuous auto scrolling + - - 24dB/oct Filter - 24дБ/окт фильтр + + Auto scrolling disabled + - - - Lb302SynthView - - Cutoff Freq: - Частота среза: + + Loop points + Точки петли - - Resonance: - Резонанс: + + After stopping go back to beginning + После остановки возвращаться в начало - - Env Mod: - Мод Огиб: + + After stopping go back to position at which playing was started + После остановки переходить к месту, с которого началось воспроизведение - - Decay: - Спад: + + After stopping keep position + Оставаться на месте остановки - - 303-es-que, 24dB/octave, 3 pole filter - 303-й, 24 дБ/окт., 3-полюсный фильтр + + Hint + Подсказка - - Slide Decay: - Сдвиг спада: + + Press <%1> to disable magnetic loop points. + Нажмите <%1>, чтобы убрать прилипание точек петли. - - DIST: - DIST: + + Set loop begin here + - - Saw wave - Пило-волна + + Set loop end here + - - Click here for a saw-wave. - Клик для пило волны + + Loop edit mode (hold shift) + - - Triangle wave - Треугольная волна + + Dual-button + - - Click here for a triangle-wave. - Нажать здесь для треугольной волны. + + Grab closest + - - Square wave - Квадрат-волна + + Handles + + + + lmms::gui::TrackContentWidget - - Click here for a square-wave. - Жми тут для квадрат волны. + + Paste + Вставить + + + lmms::gui::TrackOperationsWidget - - Rounded square wave - Волна скругленного квадрата + + Press <%1> while clicking on move-grip to begin a new drag'n'drop action. + Удерживайте нажатой клавишу <%1> при щелчке по захвату перемещения, чтобы начать новое перетаскивание. - - Click here for a square-wave with a rounded end. - Жми тут для квадратной волны скруглённой в конце. + + Actions + Действия - - Moog wave - Муг волна + + + Mute + Заглушить - - Click here for a moog-like wave. - Сгенерировать волну похожую на муг. + + + Solo + Соло - - Sine wave - Синусоида + + After removing a track, it can not be recovered. Are you sure you want to remove track "%1"? + Удалённый трек будет невозможно восстановить. Удалить трек «%1»? - - Click for a sine-wave. - Создать синусоиду. + + Confirm removal + Подтвердить удаление - - - White noise wave - Белый шум + + Don't ask again + Больше не спрашивать - - Click here for an exponential wave. - Создать экспоненциальный сигнал. + + Clone this track + Клонировать дорожку + + + + Remove this track + Удалить дорожку + + + + Clear this track + Очистить эту дорожку - - Click here for white-noise. - Создать белый шум. + + Channel %1: %2 + Канал %1: %2 - - Bandlimited saw wave - Тембр. пило-волна + + Assign to new Mixer Channel + Назначить на новый канал микшера - - Click here for bandlimited saw wave. - Нажать здесь для тембр. пило-волны. + + Turn all recording on + Включить всё на запись - - Bandlimited square wave - Тембр. квадратная волна + + Turn all recording off + Выключить всю запись - - Click here for bandlimited square wave. - Нажать здесь для тембр. квадратной волны + + Track color + Цвет дорожки - - Bandlimited triangle wave - Тембр. треугольная волна + + Change + Изменить - - Click here for bandlimited triangle wave. - Нажать здесь для тембр. треугольной волны. + + Reset + Сброс - - Bandlimited moog saw wave - Тембр. пило-волна + + Pick random + Выбрать случайно - - Click here for bandlimited moog saw wave. - Нажать здесь для тембр. пило-муг (moog) волны. + + Reset clip colors + Сбросить цвета клипа - MalletsInstrument + lmms::gui::TripleOscillatorView - - Hardness - Жёсткость + + Modulate phase of oscillator 1 by oscillator 2 + Модулировать фазу осциллятора 1 сигналом с 2 - - Position - Положение + + Modulate amplitude of oscillator 1 by oscillator 2 + Модулировать амплитуду осциллятора 1 сигналом с 2 - - Vibrato gain - Усиление вибрато + + Mix output of oscillators 1 & 2 + Смешать выход осцилляторов 1 и 2 - - Vibrato frequency - Частота вибрато + + Synchronize oscillator 1 with oscillator 2 + Синхронизировать осциллятор 1 с осц 2 - - Stick mix - Уровень барабанных палочек + + Modulate frequency of oscillator 1 by oscillator 2 + Модулировать частоту осциллятора 1 сигналом с 2 - - Modulator - Модулятор + + Modulate phase of oscillator 2 by oscillator 3 + Модулировать фазу осциллятора 2 сигналом с 3 - - Crossfade - Переход + + Modulate amplitude of oscillator 2 by oscillator 3 + Модулировать амплитуду осциллятора 2 сигналом с 3 - - LFO speed - Скорость LFO + + Mix output of oscillators 2 & 3 + Смешать выход осцилляторов 2 и 3 - - LFO depth - Глубина LFO + + Synchronize oscillator 2 with oscillator 3 + Синхронизировать осциллятор 2 с осц 3 - - ADSR - ADSR + + Modulate frequency of oscillator 2 by oscillator 3 + Модулировать частоту осциллятора 2 сигналом с 3 - - Pressure - Давление + + Osc %1 volume: + Громкость осц %1: - - Motion - Движение + + Osc %1 panning: + Баланс осц %1: - - Speed - Скорость + + Osc %1 coarse detuning: + Грубая подстройка осц %1: - - Bowed - Наклон + + semitones + полутона - - Spread - Разброс + + Osc %1 fine detuning left: + Точная подстройка осц %1 слева: - - Marimba - Маримба + + + cents + цент[а,ов] - - Vibraphone - Вибрафон + + Osc %1 fine detuning right: + Точная подстройка осц %1 справа: - - Agogo - Агого + + Osc %1 phase-offset: + Сдвиг фазы осц %1: - - Wood 1 - Дерево 1 + + + degrees + ° - - Reso - Резо + + Osc %1 stereo phase-detuning: + Подстройка стерео-фазы осциллятора %1: - - Wood 2 - Дерево 2 + + Sine wave + Синусоида - - Beats - Удары + + Triangle wave + Треугольная волна - - Two fixed - Два постоянно + + Saw wave + Пилообразная волна - - Clump - Тяжёлая поступь + + Square wave + Квадратная волна - - Tubular bells - Трубчатые колокола + + Moog-like saw wave + Типа муг пило-волна - - Uniform bar - Одинаковый размер + + Exponential wave + Экспоненциальная волна - - Tuned bar - Регулируемый размер + + White noise + Белый шум - - Glass - Стекло + + User-defined wave + Пользовательская волна - - Tibetan bowl - Тибетская чаша + + Use alias-free wavetable oscillators. + - MalletsInstrumentView + lmms::gui::VecControlsDialog - - Instrument - Инструмент - - - - Spread - Разброс - - - - Spread: - Разброс: - - - - Missing files - Файлы отсутствуют + + HQ + HQ - - Your Stk-installation seems to be incomplete. Please make sure the full Stk-package is installed! - Похоже устновка Stk прошла не полностью. Пожалуйста, убедитесь, что пакет Stk полностью установлен! + + Double the resolution and simulate continuous analog-like trace. + Удвоить разрешение и смоделировать непрерывное аналоговое отслеживание. - - Hardness - Жёсткость + + Log. scale + Лог. шкала - - Hardness: - Жёсткость: + + Display amplitude on logarithmic scale to better see small values. + Отображать амплитуду на логарифмической шкале, чтобы лучше видеть маленькие значения. - - Position - Положение + + Persist. + - - Position: - Положение: + + Trace persistence: higher amount means the trace will stay bright for longer time. + - - Vibrato gain - Усиление вибрато + + Trace persistence + + + + lmms::gui::VersionedSaveDialog - - Vibrato gain: - Усиление вибрато: + + Increment version number + Увеличить номер версии - - Vibrato frequency - Частота вибрато + + Decrement version number + Уменьшить номер версии - - Vibrato frequency: - Частота вибрато: + + Save Options + Параметры сохранения - - Stick mix - Уровень барабанных палочек + + already exists. Do you want to replace it? + уже существует. Заменить? + + + lmms::gui::VestigeInstrumentView - - Stick mix: - Уровень палочек: + + + Open VST plugin + Открыть VST-плагин - - Modulator - Модулятор + + Control VST plugin from LMMS host + Контроль VST-модуля из хоста LMMS - - Modulator: - Модулятор: + + Open VST plugin preset + Открыть пресет VST-плагина - - Crossfade - Переход + + Previous (-) + Предыдущий (−) - - Crossfade: - Переход: + + Save preset + Сохранить пресет - - LFO speed - Скорость LFO + + Next (+) + Следующий (+) - - LFO speed: - Скорость LFO: + + Show/hide GUI + Показать/скрыть интерфейс - - LFO depth - Глубина LFO + + Turn off all notes + Выключить все ноты - - LFO depth: - Глубина LFO: + + DLL-files (*.dll) + Библиотеки DLL (*.dll) - - ADSR - ADSR + + EXE-files (*.exe) + Программы EXE (*.exe) - - ADSR: - ADSR: + + SO-files (*.so) + Файлы SO (*.so) - - Pressure - Давление + + No VST plugin loaded + Нет загруженного VST-модуля - - Pressure: - Давление: + + Preset + Предустановка - - Speed - Скорость + + by + от - - Speed: - Скорость: + + - VST plugin control + - управление VST-плагином - ManageVSTEffectView + lmms::gui::VibedView - - - VST parameter control - Управление VST параметрами + + Enable waveform + Включить форму волны - - VST sync - Синхронизация VST + + + Smooth waveform + Сгладить волну - - - Automated - Автоматизировано + + + Normalize waveform + Нормализовать форму волны - - Close - Закрыть + + + Sine wave + Синусоида - - - ManageVestigeInstrumentView - - - - VST plugin control - Управление VST плагином + + + Triangle wave + Треугольная волна - - VST Sync - VST синхронизация + + + Saw wave + Пилообразная волна - - - Automated - Автоматизировано + + + Square wave + Квадратная волна - - Close - Закрыть + + + White noise + Белый шум - - - OrganicInstrument - - Distortion - Перегруз + + + User-defined wave + Пользовательская волна - - Volume - Громкость + + String volume: + Громкость струны: - - - OrganicInstrumentView - - Distortion: - Перегруз: + + String stiffness: + Натяжение струны: - - Volume: - Громкость: + + Pick position: + Выберите позицию: - - Randomise - Случайно + + Pickup position: + Положение звукоснимателя: - - - Osc %1 waveform: - Форма сигнала для осциллятора %1: + + String panning: + Стерео-баланс струны: - - Osc %1 volume: - Громкость осциллятора %1: + + String detune: + Подстройка струны: - - Osc %1 panning: - Баланс для осциллятора %1: + + String fuzziness: + Расплывчатость струны: - - Osc %1 stereo detuning - Осц %1 стерео подстройка + + String length: + Длина струны: - - cents - сотые + + Impulse Editor + Редактор импульса - - Osc %1 harmonic: - Осц %1 гармоника: + + Impulse + Импульс - - - PatchesDialog - - Qsynth: Channel Preset - Qsynth : предустановка канала + + Enable/disable string + Включить/отключить струну - - Bank selector - Выбор банка + + Octave + Октава - - Bank - Банк + + String + Струна + + + lmms::gui::VstEffectControlDialog - - Program selector - Выбор программы + + Show/hide + Показать/скрыть - - Patch - Патч + + Control VST plugin from LMMS host + Контроль VST-модуля из хоста LMMS - - Name - Имя + + Open VST plugin preset + Открыть пресет VST-плагина - - OK - ОК + + Previous (-) + Предыдущий (−) - - Cancel - Отмена + + Next (+) + Следующий (+) - - - Sf2Instrument - - Bank - Банк + + Save preset + Сохранить пресет - - Patch - Патч + + + Effect by: + Эффекты от: - - Gain - Усиление + + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> + + + lmms::gui::WatsynView - - Reverb - Реверберация + + + + + Volume + Громкость - - Reverb room size - Размер помещения реверберации + + + + + Panning + Баланс - - Reverb damping - Затухание реверберации + + + + + Freq. multiplier + Множитель частоты - - Reverb width - Ширина реверберации + + + + + Left detune + Подстройка слева - - Reverb level - Уровень реверберации + + + + + + + + + cents + центы - - Chorus - Хорус + + + + + Right detune + Подстройка справа - - Chorus voices - Голоса хоруса + + A-B Mix + Микс A-B - - Chorus level - Уровень хоруса + + Mix envelope amount + Уровень огибающей микса - - Chorus speed - Скорость хоруса + + Mix envelope attack + Атака огибающей микса - - Chorus depth - Глубина хоруса + + Mix envelope hold + Удержание огибающей микса - - A soundfont %1 could not be loaded. - SoundFont %1 не удаётся загрузить. + + Mix envelope decay + Спад огибающей микса - - - Sf2InstrumentView - - - Open SoundFont file - Открыть файл SoundFront + + Crosstalk + Смешивание - - Choose patch - Выбрать патч + + Select oscillator A1 + Выбрать генератор А1 - - Gain: - Усиление: + + Select oscillator A2 + Выбрать генератор А2 - - Apply reverb (if supported) - Применить эффект реверберации (если поддерживается) + + Select oscillator B1 + Выбрать генератор В1 - - Room size: - Размер помещения: + + Select oscillator B2 + Выбрать генератор В2 - - Damping: - Приглушение: + + Mix output of A2 to A1 + Смешать выход А2 с А1 - - Width: - Ширина: + + Modulate amplitude of A1 by output of A2 + Модулировать амплитуду A1 выходом с A2 - - - Level: - Уровни: + + Ring modulate A1 and A2 + Кольцевая модуляция A1 и A2 - - Apply chorus (if supported) - Применить эффект хорус (если поддерживается) + + Modulate phase of A1 by output of A2 + Модулировать фазу A1 выходом с A2 - - Voices: - Голоса: + + Mix output of B2 to B1 + Смешать выход из B2 в B1 - - Speed: - Скорость: + + Modulate amplitude of B1 by output of B2 + Модулировать амплитуду B1 выходом с B2 - - Depth: - Емкость: + + Ring modulate B1 and B2 + Кольцевая модуляция B1 и B2 - - SoundFont Files (*.sf2 *.sf3) - Файлы SoundFont (*.sf2 *.sf3) + + Modulate phase of B1 by output of B2 + Модулировать фазу B1 выходом с B2 - - - SfxrInstrument - - Wave - Волна + + + + + Draw your own waveform here by dragging your mouse on this graph. + Нарисуйте здесь свою собственную форму волны, перетащив мышь на этот график. - - - StereoEnhancerControlDialog - - WIDTH - ШИРИНА + + Load waveform + Загрузить форму волны - - Width: - Ширина: + + Load a waveform from a sample file + Загрузить форму волны из сэмпл-файла - - - StereoEnhancerControls - - Width - Ширина - - - - StereoMatrixControlDialog + + Phase left + Фаза слева + - - Left to Left Vol: - От левого на левый: + + Shift phase by -15 degrees + Сдвинуть фазу на -15° - - Left to Right Vol: - От левого на правый: + + Phase right + Фаза справа - - Right to Left Vol: - От правого на левый: + + Shift phase by +15 degrees + Сдвинуть фазу на +15° - - Right to Right Vol: - От правого на правый: + + + Normalize + Нормализовать - - - StereoMatrixControls - - Left to Left - От левого на левый + + + Invert + Инвертировать - - Left to Right - От левого на правый + + + Smooth + Сгладить - - Right to Left - От правого на левый + + + Sine wave + Синусоида - - Right to Right - От правого на правый + + + + Triangle wave + Треугольная волна - - - VestigeInstrument - - Loading plugin - Загрузка модуля + + Saw wave + Пилообразная волна - - Please wait while loading the VST plugin... - Подождите, пока грузится VST-плагин… + + + Square wave + Квадратная волна - Vibed + lmms::gui::WaveShaperControlDialog - - String %1 volume - Громкость %1 струны + + INPUT + ВХОД - - String %1 stiffness - Жёсткость %1 струны + + Input gain: + Входное усиление: - - Pick %1 position - Лад %1 + + OUTPUT + ВЫХОД - - Pickup %1 position - Положение %1 звукоснимателя + + Output gain: + Выходное усиление: - - String %1 panning - Стерео-баланс струны %1 + + + Reset wavegraph + Сбросить волновой график - - String %1 detune - Подстройка струны %1 + + + Smooth wavegraph + Сгладить волновой график - - String %1 fuzziness - Плавание струны: + + + Increase wavegraph amplitude by 1 dB + Увеличить амплитуду графика волны на 1 дБ - - String %1 length - Длина струны %1 + + + Decrease wavegraph amplitude by 1 dB + Уменьшить амплитуду графика волны на 1 дБ - - Impulse %1 - Импульс %1 + + Clip input + Срезать входной сигнал - - String %1 - Струна %1 + + Clip input signal to 0 dB + Обрезать входной сигнал на 0 dB - VibedView - - - String volume: - Громкость струны: - - - - String stiffness: - Натяжение струны: - - - - Pick position: - Лад: - + lmms::gui::XpressiveView - - Pickup position: - Положение звукоснимателя: + + Draw your own waveform here by dragging your mouse on this graph. + Нарисуйте здесь свою собственную форму волны, перетащив мышь на этот график. - - String panning: - Стерео-баланс струны: + + Select oscillator W1 + Выбрать осциллятор W1 - - String detune: - Подстройка струны: + + Select oscillator W2 + Выбрать осциллятор W2 - - String fuzziness: - Расплывчатость струны: + + Select oscillator W3 + Выбрать осциллятор W3 - - String length: - Длина струны: + + Select output O1 + Выбрать выход О1 - - Impulse - Импульс + + Select output O2 + Выбрать выход О2 - - Octave - Октава + + Open help window + Открыть окно справки - - Impulse Editor - Редактор сигнала + + + Sine wave + Синусоида - - Enable waveform - Включить + + + Moog-saw wave + Муг пило-волна - - Enable/disable string - Включить/отключить струну + + + Exponential wave + Экспоненциальная волна - - String - Струна + + + Saw wave + Пилообразная волна - - - Sine wave - Синусоида + + + User-defined wave + Пользовательская волна - - + + Triangle wave - Треугольник - - - - - Saw wave - Пило-волна + Треугольная волна - - + + Square wave Квадратная волна - - + + White noise Белый шум - - - User-defined wave - Своя волна - - - - - Smooth waveform - Сгладить волну + + WaveInterpolate + Волн. интерполяция - - - Normalize waveform - Нормализовать форму волны + + ExpressionValid + ВыражениеВерно - - - VoiceObject - - Voice %1 pulse width - Голос %1 длина сигнала + + General purpose 1: + Общего назначения 1: - - Voice %1 attack - Атака %1 голоса + + General purpose 2: + Общего назначения 2: - - Voice %1 decay - Спад %1 голоса + + General purpose 3: + Общего назначения 3: - - Voice %1 sustain - Выдержка %1 голоса + + O1 panning: + O1 баланс: - - Voice %1 release - Затухание голоса %1 + + O2 panning: + О2 баланс: - - Voice %1 coarse detuning - Подстройка %1 голоса (грубо) + + Release transition: + Переход затухания: - - Voice %1 wave shape - Форма сигнала для %1 голоса + + Smoothness + Гладкость + + + lmms::gui::ZynAddSubFxView - - Voice %1 sync - Синхронизация %1 голоса + + Portamento: + Портаменто: - - Voice %1 ring modulate - Голос %1 кольцевой модулятор + + PORT + - - Voice %1 filtered - Фильтрованный %1 голос + + Filter frequency: + Частота фильтра: - - Voice %1 test - Голос %1 тест + + FREQ + ЧАСТ - - - WaveShaperControlDialog - - INPUT - ВХОД + + Filter resonance: + Резонанс фильтра: - - Input gain: - Входная мощность: + + RES + РЕЗ - - OUTPUT - ВЫХОД + + Bandwidth: + Полоса пропускания: - - Output gain: - Выходная мощность: + + BW + - - - Reset wavegraph - Сбросить волновой график + + FM gain: + FM усиление: - - - Smooth wavegraph - Сгладить волновой график + + FM GAIN + FM УСИЛ - - - Increase wavegraph amplitude by 1 dB - Увеличить амплитуду графика волны на 1 дБ + + Resonance center frequency: + Частоты центра резонанса: - - - Decrease wavegraph amplitude by 1 dB - Уменьшить амплитуду графика волны на 1 дБ + + RES CF + - - Clip input - Срезать входной сигнал + + Resonance bandwidth: + Полоса пропуска резонанса: - - Clip input signal to 0 dB - Обрезать входной сигнал на 0 dB + + RES BW + - - - WaveShaperControls - - Input gain - Входная мощность + + Forward MIDI control changes + Передавать изменения MIDI управления - - Output gain - Выходная мощность + + Show GUI + Показать интерфейс - + \ No newline at end of file diff --git a/data/locale/sl.ts b/data/locale/sl.ts index e7bfbc3081c..77586e6e94e 100644 --- a/data/locale/sl.ts +++ b/data/locale/sl.ts @@ -1,10 +1,10 @@ - + AboutDialog About LMMS - Opis LMMS + O programu LMMS @@ -14,27 +14,27 @@ Version %1 (%2/%3, Qt %4, %5). - + Različica %1 (%2/%3, Qt %4, %5). About - Vizitka + O programu LMMS - easy music production for everyone. - + Enostavno produciranje glasbe za vsakogar. Copyright © %1. - + Avtorstvo © %1. <html><head/><body><p><a href="https://lmms.io"><span style=" text-decoration: underline; color:#33cc33;">https://lmms.io</span></a></p></body></html> - + <html><head/><body><p><a href="https://lmms.io"><span style=" text-decoration: underline; color:#33cc33;">https://lmms.io</span></a></p></body></html> @@ -44,12 +44,12 @@ Involved - + Vpleteni Contributors ordered by number of commits: - + Sodelujoči razporejeni po številu prispevkov: @@ -60,7 +60,8 @@ Current language not translated (or native English). If you're interested in translating LMMS in another language or want to improve existing translations, you're welcome to help us! Simply contact the maintainer! - + Trenutni jezik ni preveden (ali izvorna angleščina). +Če vas zanima prevajanje LMMS v nek drug jezik ali če želite izboljšati obstoječe prevode, ste dobrodošli! Zgolj stopite v stik z vzdrževalcem! @@ -69,954 +70,187 @@ If you're interested in translating LMMS in another language or want to imp - AmplifierControlDialog - - - VOL - GLS - - - - Volume: - Glasnost: - - - - PAN - PAN - - - - Panning: - - - - - LEFT - LEVO - - - - Left gain: - Leva glasnost - - - - RIGHT - DESNO - - - - Right gain: - Desna glasnost - - - - AmplifierControls - - - Volume - Glasnost - - - - Panning - - - - - Left gain - Leva glasnost - - - - Right gain - Desan glasnost - - - - AudioAlsaSetupWidget - - - DEVICE - NAPRAVA - - - - CHANNELS - KANALI - - - - AudioFileProcessorView - - - Open sample - - - - - Reverse sample - - - - - Disable loop - - - - - Enable loop - - - - - Enable ping-pong loop - - - - - Continue sample playback across notes - - - - - Amplify: - - - - - Start point: - - - - - End point: - - - - - Loopback point: - - - - - AudioFileProcessorWaveView - - - Sample length: - - - - - AudioJack - - - JACK client restarted - - - - - LMMS was kicked by JACK for some reason. Therefore the JACK backend of LMMS has been restarted. You will have to make manual connections again. - - - - - JACK server down - - - - - The JACK server seems to have been shutdown and starting a new instance failed. Therefore LMMS is unable to proceed. You should save your project and restart JACK and LMMS. - - - - - Client name - - - - - Channels - - - - - AudioOss - - - Device - - + AboutJuceDialog - - Channels + + About JUCE - - - AudioPortAudio::setupWidget - - Backend + + <b>About JUCE</b> - - Device + + This program uses JUCE version 3.x.x. - - - AudioPulseAudio - - Device + + JUCE is an open-source cross-platform C++ application framework for creating high quality desktop and mobile applications. + +The core JUCE modules (juce_audio_basics, juce_audio_devices, juce_core and juce_events) are permissively licensed under the terms of the ISC license. +Other modules are covered by a GNU GPL 3.0 license. + +Copyright (C) 2022 Raw Material Software Limited. - - Channels + + This program uses JUCE version - AudioSdl::setupWidget + AudioDeviceSetupWidget - - Device + + [System Default] - AudioSndio - - - Device - - + CarlaAboutW - - Channels - + + About Carla + O programu Carla - - - AudioSoundIo::setupWidget - - Backend - + + About + O programu - - Device - + + About text here + Tu se zapiše besedilo o programu - - - AutomatableModel - - &Reset (%1%2) - + + Extended licensing here + Sem pride razširjena licenca - - &Copy value (%1%2) - + + Artwork + Grafično oblikovanje - - &Paste value (%1%2) - + + Using KDE Oxygen icon set, designed by Oxygen Team. + Uporablja nabor ikon KDE Oxygen, ki ga je oblikoval Oxygen Team. - - &Paste value - + + Contains some knobs, backgrounds and other small artwork from Calf Studio Gear, OpenAV and OpenOctave projects. + Vsebuje nekatere vrtljive gumbe, ozadja in druge grafične dodatke iz Calf Studio Gear, OpenAV in OpenOctave projektov. - - Edit song-global automation - + + VST is a trademark of Steinberg Media Technologies GmbH. + VST je začitena znamka podjetja Steinberg Media Technologies GmbH. - - Remove song-global automation - + + Special thanks to António Saraiva for a few extra icons and artwork! + Posebna zahvala Antóniu Saraivii za nekaj posebnih ikon in grafičnih elementov! - - Remove all linked controls - + + The LV2 logo has been designed by Thorsten Wilms, based on a concept from Peter Shorthose. + LV2 logo je oblikoval Thorsten Wilms po zasnovi Peter Shorthose-a. - - Connected to %1 - + + MIDI Keyboard designed by Thorsten Wilms. + MIDI tipkovnico je oblikoval Thorsten Wilms. - - Connected to controller - + + Carla, Carla-Control and Patchbay icons designed by DoosC. + Carla, Carla-Control in Patchbay ikone je oblikoval DoosC. - - Edit connection... - + + Features + Zmožnosti - - Remove connection - + + AU/AudioUnit: + AU/AudioUnit: - - Connect to controller... - + + LADSPA: + LADSPA: - - - AutomationEditor - - Edit Value - + + + + + + + + + TextLabel + TekstovnaOznaka - - New outValue - + + VST2: + VST2: - - New inValue - + + DSSI: + DSSI: - - Please open an automation clip with the context menu of a control! - + + LV2: + LV2: - - - AutomationEditorWindow - - Play/pause current clip (Space) - + + VST3: + VST3: - - Stop playing of current clip (Space) - + + OSC + OSC - - Edit actions - + + Host URLs: + URL gostitelja: - - Draw mode (Shift+D) - + + Valid commands: + Veljavni ukazi: - - Erase mode (Shift+E) - + + valid osc commands here + tu je prostor za veljavne osc ukaze - - Draw outValues mode (Shift+C) - + + Example: + Primer: - - Flip vertically - + + License + Licenca - - Flip horizontally - - - - - Interpolation controls - - - - - Discrete progression - - - - - Linear progression - - - - - Cubic Hermite progression - - - - - Tension value for spline - - - - - Tension: - - - - - Zoom controls - - - - - Horizontal zooming - - - - - Vertical zooming - - - - - Quantization controls - - - - - Quantization - - - - - - Automation Editor - no clip - - - - - - Automation Editor - %1 - - - - - Model is already connected to this clip. - - - - - AutomationClip - - - Drag a control while pressing <%1> - - - - - AutomationClipView - - - Open in Automation editor - - - - - Clear - - - - - Reset name - - - - - Change name - - - - - Set/clear record - - - - - Flip Vertically (Visible) - - - - - Flip Horizontally (Visible) - - - - - %1 Connections - - - - - Disconnect "%1" - - - - - Model is already connected to this clip. - - - - - AutomationTrack - - - Automation track - - - - - PatternEditor - - - Beat+Bassline Editor - Ritem+bas urejevalnik - - - - Play/pause current beat/bassline (Space) - - - - - Stop playback of current beat/bassline (Space) - - - - - Beat selector - - - - - Track and step actions - - - - - Add beat/bassline - - - - - Clone beat/bassline clip - - - - - Add sample-track - - - - - Add automation-track - - - - - Remove steps - - - - - Add steps - - - - - Clone Steps - - - - - PatternClipView - - - Open in Beat+Bassline-Editor - - - - - Reset name - - - - - Change name - - - - - PatternTrack - - - Beat/Bassline %1 - - - - - Clone of %1 - - - - - BassBoosterControlDialog - - - FREQ - - - - - Frequency: - - - - - GAIN - - - - - Gain: - - - - - RATIO - - - - - Ratio: - - - - - BassBoosterControls - - - Frequency - Pogostost - - - - Gain - - - - - Ratio - razmerje - - - - BitcrushControlDialog - - - IN - - - - - OUT - - - - - - GAIN - - - - - Input gain: - - - - - NOISE - - - - - Input noise: - - - - - Output gain: - - - - - CLIP - - - - - Output clip: - - - - - Rate enabled - - - - - Enable sample-rate crushing - - - - - Depth enabled - - - - - Enable bit-depth crushing - - - - - FREQ - - - - - Sample rate: - - - - - STEREO - - - - - Stereo difference: - - - - - QUANT - - - - - Levels: - - - - - BitcrushControls - - - Input gain - - - - - Input noise - - - - - Output gain - - - - - Output clip - - - - - Sample rate - - - - - Stereo difference - - - - - Levels - - - - - Rate enabled - - - - - Depth enabled - - - - - CarlaAboutW - - - About Carla - - - - - About - Vizitka - - - - About text here - - - - - Extended licensing here - - - - - Artwork - - - - - Using KDE Oxygen icon set, designed by Oxygen Team. - - - - - Contains some knobs, backgrounds and other small artwork from Calf Studio Gear, OpenAV and OpenOctave projects. - - - - - VST is a trademark of Steinberg Media Technologies GmbH. - - - - - Special thanks to António Saraiva for a few extra icons and artwork! - - - - - The LV2 logo has been designed by Thorsten Wilms, based on a concept from Peter Shorthose. - - - - - MIDI Keyboard designed by Thorsten Wilms. - - - - - Carla, Carla-Control and Patchbay icons designed by DoosC. - - - - - Features - - - - - AU/AudioUnit: - - - - - LADSPA: - - - - - - - - - - - - TextLabel - - - - - VST2: - - - - - DSSI: - - - - - LV2: - - - - - VST3: - - - - - OSC - - - - - Host URLs: - - - - - Valid commands: - - - - - valid osc commands here - - - - - Example: - - - - - License - Licenca - - - + GNU GENERAL PUBLIC LICENSE Version 2, June 1991 @@ -1298,15029 +532,18344 @@ POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS + SPLOŠNO DOVOLJENJE GNU + Različica št. 2, junij 1991 +Pravice razširjanja © 1989, 1991 Free Software Foundation, Inc. +59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +Vsakdo sme razmnoževati in razširjati dobesedne kopije tega licenčnega +dokumenta, ni pa ga dovoljeno spreminjati. +Predgovor +Licenčne pogodbe večine programja so zasnovane tako, da vam preprečujejo njegovo svobodno razdeljevanje in spreminjanje. Za razliko od teh vam namerava Splošno dovoljenje GNU (angl. GNU General Public License, GPL) zajamčiti svobodo pri razdeljevanju in spreminjanju prostega programja ter s tem zagotoviti, da ostane programje prosto za vse njegove uporabnike. Ta GPL se nanaša na večino programske opreme ustanove Free Software Foundation in na vse druge programe, katerih avtorji so se zavezali k njeni uporabi. (Nekatero drugo programje ustanove Free Software Foundation je namesto tega pokrito s Splošnim dovoljenjem GNU za knjižnice, angl. GNU Library General Public License.) Uporabite jo lahko tudi za vaše programe. + +Ko govorimo o prostem programju, imamo s tem v mislih svobodo, ne cene. Naša splošna dovoljenja GNU vam zagotavljajo, da imate pravico razširjati kopije prostega programja (in zaračunavati za to storitev, če tako želite); da dobite izvorno kodo ali jo lahko dobite, če tako želite; da lahko spreminjate programje ali uporabljate njegove dele v novih prostih programih; in da veste, da lahko počnete vse te stvari. + +Zaradi zavarovanja vaših pravic moramo uvesti omejitve, ki prepovedujejo vsakomur, da bi vam te pravice kratil ali od vas zahteval predajo teh pravic. Te omejitve se preslikajo v določene odgovornosti za vas, če razširjate kopije programja ali ga spreminjate. + +Na primer, če razširjate kopije takega programa, bodisi zastonj ali za plačilo, morate dati prejemnikom vse pravice, ki jih imate vi. Prepričati se morate, da bodo tudi oni prejeli ali imeli dostop do izvorne kode. In morate jim pokazati te pogoje (pravzaprav izvirnik, opomba prevajalca), da bodo poznali svoje pravice. + +Vaše pravice varujemo z dvema korakoma: (1) s pravno zaščito programja in (2) ponujamo vam to licenco, ki vam daje pravno dovoljenje za razmnoževanje, razširjanje in/ali spreminjanje programja. + +Zaradi zaščite vsakega avtorja in zaradi naše zaščite želimo zagotoviti, da vsakdo razume, da za to prosto programje ni nobenega jamstva. Če je programje spremenil nekdo drug in ga posredoval naprej, želimo, da njegovi prejemniki vedo, da to, kar imajo, ni izvirnik, zato da se problemi, ki jih povzročijo drugi, ne bodo odražali na ugledu izvornega avtorja. + +Končno, vsakemu prostemu programu nenehno grozijo programski patenti. Želimo se izogniti nevarnosti, da bi razširjevalci prostega programa posamično dobivali patentne licence in s tem naredili program lastniški (angl. proprietary). Za preprečitev tega jasno zahtevamo da mora biti vsak patent licenciran tako, da ga lahko vsakdo prosto uporablja, ali pa sploh ne sme biti licenciran. + +Sledijo natančne določitve in pogoji za razmnoževanje, razširjanje in spreminjanje. + +DOLOČITVE IN POGOJI ZA RAZMNOŽEVANJE, RAZŠIRJANJE IN SPREMINJANJE +0. +Licenca se nanaša na vsak program ali drugo delo, ki vsebuje obvestilo lastnika avtorskih pravic (angl. copyright holder) z izjavo, da se lahko distribuira pod pogoji Splošnega dovoljenja GNU (angl. General Public License). „Program“ se v nadaljevanju nanaša na vsak tak program ali delo, in „delo, ki temelji na programu“ pomeni bodisi program ali pa katerokoli izvedeno delo po zakonu o avtorskih pravicah (angl. copyright law): se pravi delo, ki vsebuje program ali njegov del, bodisi dobesedno ali s spremembami in/ali prevedeno v drug jezik. (Tukaj in povsod v nadaljevanju je prevod vključen brez omejitev v pojem „spremembe“.) Vsaka licenca je naslovljena na „vas“. +Ta licenca ne pokriva nobenih drugih aktivnosti razen razmnoževanja, razširjanja in sprememb; ostale so izven njenega dometa. Dejanje poganjanja programa ni omejeno in izhod programa je zajet le, če njegova vsebina sestavlja delo, iz katerega je izpeljan program (ne glede na to, da je bil narejen s poganjanjem programa). Ali je to res ali ne, je odvisno od tega, kaj počne program. + +1. +Razmnožujete in razširjate lahko dobesedne izvode izvorne kode programa v enaki obliki, kot jo dobite, preko kateregakoli medija, če le na vsakem izvodu razločno in primerno objavite obvestilo o pravicah razširjanja in zanikanje jamstva; vsa obvestila, ki se nanašajo na to licenco in odsotnost vsakršnega jamstva pustite nedotaknjena; in daste vsem drugim prejemnikom programa poleg programa še izvod te licence. +Za fizično dejanje prenosa kopije lahko zaračunavate in po vaši presoji lahko ponudite garancijsko zaščito v zameno za plačilo. + +2. +Spreminjati smete vaš izvod ali izvode programa ali katerikoli njegov del, in tako narediti delo, ki temelji na programu, ter razmnoževati in razširjati takšne spremembe ali dela pod pogoji zgornjega razdelka 1, če zadostite tudi vsem naslednjim pogojem: + +a. +Zagotoviti morate, da spremenjene datoteke nosijo vidna obvestila o tem, da ste jih spremenili in datum vsake spremembe. + +b. +Zagotoviti morate, da je vsako delo, ki ga razširjate ali izdajate in ki v celoti ali deloma vsebuje program ali katerikoli njegov del ali pa je iz njega izpeljano, licencirano pod pogoji te licence kot celota brez plačila katerikoli tretji osebi. + +c. +Če spremenjeni program ob zagonu navadno bere ukaze interaktivno, morate zagotoviti, da se ob najbolj običajnem zagonu za takšno interaktivno uporabo izpiše ali prikaže najava, ki vključuje primerno sporočilo o pravicah razširjanja in sporočilo, da jamstvo ni zagotovljeno (ali pa sporočilo, da ponujate jamstvo) in da lahko uporabniki razširjajo program pod temi pogoji, in pove uporabniku, kako pogledati izvod te licence. (Izjema: če je sam program interaktiven, a navadno ne izpiše takšne najave, tudi za vaše delo, ki temelji na programu, ni nujno, da jo.) +Te zahteve se nanašajo na spremenjeno delo kot celoto. Če kosi tega dela, ki jih je lahko prepoznati, niso izpeljani iz programa in se jih lahko ima za neodvisna in ločena dela sama po sebi, potem ta licenca in njeni pogoji ne veljajo zanje, kadar jih razširjate ločeno. Vendar, kadar te iste kose razširjate kot del celote, ki je delo, ki temelji na programu, mora biti razširjanje celote izvedeno pod pogoji te licence, katere dovoljenja za druge licence se razširjajo na vso celoto in torej na vsak njen del, ne glede na to, kdo ga je napisal. + +Torej, namen tega razdelka ni, da bi zanikal ali spodbijal vaše pravice do dela, ki ste ga v celoti napisali sami; namesto tega je namen razširiti pravico do nadzora razširjanja na izpeljana ali zbrana dela, ki temeljijo na programu. + +Poleg tega, če gre za zgolj kopičenje drugega dela, ki ne temelji na programu, s programom (ali z delom, ki temelji na programu) na mediju za shranjevanje ali distribucijskem mediju, se licenca na to drugo delo ne nanaša. + +3. +Program (ali delo, ki temelji na njem, pod razdelkom 2) lahko razmnožujete in razširjate v objektni kodi ali izvedljivi obliki pod pogoji zgornjih razdelkov 1 in 2, če izpolnite tudi kaj od tega: + +a. +Opremite ga s popolno in ustrezno izvorno kodo v strojno berljivi obliki, ki mora biti razširjana pod pogoji zgornjih razdelkov 1 in 2 na mediju, ki se navadno uporablja za izmenjavo programja; ali, + +b. +Opremite ga z napisano ponudbo, veljavno vsaj tri leta, da boste katerikoli tretji osebi, za plačilo, ki ne bo presegalo vaših stroškov fizičnega izvajanja izvorne distribucije, dali popoln izvod ustrezne izvorne kode v strojno berljivi obliki, ki bo razširjana pod pogoji zgornjih razdelkov 1 in 2 na mediju, ki se običajno uporablja za izmenjavo programja; ali, + +c. +Opremite ga z informacijo, ki ste jo dobili vi, kot ponudbo distribucije ustrezne izvorne kode. (Ta alternativa je dovoljena le za nekomercialne distribucije in le, če ste dobili program v obliki izvorne kode ali izvedljivi obliki s takšno ponudbo, glede na podrazdelek b, zgoraj.) +Izvorna koda pri delih pomeni obliko dela, najprimernejšo za izdelavo sprememb. Pri izvedljivem delu pomeni izvorna koda vso izvorno kodo za vse module, ki jih vsebuje, poleg tega pa še morebitne datoteke z definicijami vmesnika, povezane s tem delom in skripte, uporabljane za nadzor prevajanja in namestitev izvedljive datoteke. Vendar - kot posebna izjema - ni nujno, da razširjana izvorna koda vključuje vse, kar se navadno razširja (v izvorni ali binarni obliki) z večjimi komponentami (prevajalnik, jedro, in tako naprej) operacijskega sistema, na katerem teče izvedljiva datoteka, razen če ta komponenta spremlja izvedljivo datoteko. + +Če se razširjanje izvedljive datoteke ali objektne kode izvede s ponujenim dostopom za prepisovanje z za to namenjenega mesta, potem ponujanje ekvivalentnega dostopa za razmnoževanje izvorne kode z istega mesta šteje kot razširjanje izvorne kode, čeprav tretje osebe niso prisiljene razmnoževati izvorne kode poleg objektne kode. + +4. +Ne smete razmnoževati, spreminjati, podlicencirati ali razširjati programa drugače, kot to izrecno določa pričujoča licenca. Vsak poskus siceršnjega kopiranja, spreminjanja, podlicenciranja ali razširjanja programa je ničen in bo samodejno prekinil vaše pravice pod to licenco. Vendar pa se osebam, ki so svoj izvod ali pravice dobile od vas pod to licenco, licenca ne prekine, dokler se ji popolnoma podrejajo. + +5. +Ni vam treba sprejeti te licence, saj je niste podpisali. Vendar vam razen nje nič ne dovoljuje spreminjanja ali razširjanja programa ali iz njega izpeljanih del. Če ne sprejmete te licence, ta dejanja prepoveduje zakon. Torej, s spremembo ali razširjanjem programa (ali kateregakoli dela, ki temelji na programu), pokažete svoje strinjanje s to licenco in z vsemi njenimi določitvami in pogoji za razmnoževanje, razširjanje ali spreminjanje programa ali del, ki temeljijo na njem. + +6. +Vsakič, ko razširjate program (ali katerokoli delo, ki temelji na programu), prejemnik samodejno prejme licenco od izvornega izdajatelja licence (angl. original licensor) za razmnoževanje, razširjanje ali spreminjanje programa glede na ta določila in pogoje. Ne smete vsiljevati nobenih nadaljnjih omejitev izvajanja prejemnikovih pravic, podeljenih tukaj. Niste odgovorni za vsiljevanje strinjanja tretjih oseb s to licenco. + +7. +Če so vam, kot posledica presoje sodišča ali suma kršitve patenta ali zaradi kateregakoli drugega razloga (ne omejenega zgolj na patentna vprašanja), vsiljeni pogoji (bodisi z odlokom sodišča, sporazumom ali drugače), ki nasprotujejo pogojem te licence, vas ne odvezujejo pogojev te licence. Če programa ne morete razširjati tako, da hkrati zadostite svojim obvezam pod to licenco in katerimkoli drugim pristojnim obvezam, potem posledično sploh ne smete razširjati programa. Na primer, če patentna licenca ne dovoli razširjanja programa brez plačevanja avtorskega honorarja vseh, ki prejmejo kopije neposredno ali posredno od vas, potem je edina možna pot, da zadostite temu pogoju in tej licenci ta, da se v celoti vzdržite razširjanja programa. +Če se za katerikoli del tega razdelka ugotovi, da je neveljaven ali da se ga ne da izvajati pod kateremkoli določenim pogojem, je mišljeno, da velja usmeritev tega razdelka (angl. balance of the section) in razdelek kot celota velja v drugih primerih. + +Namen tega razdelka ni, da bi vas napeljeval h kršitvi patentov ali drugih trditev lastništva pravic ali izpodbijal veljavnost katerihkoli takšnih trditev; edini namen tega razdelka je ščitenje integritete sistema distribucije prostega programja, ki je izveden s prakso javnih licenc. Mnogi ljudje so radodarno prispevali k širokemu naboru programja, razširjanega skozi ta sistem, v upanju na njegovo dosledno izvajanje; od avtorja/dajalca je odvisno, če je pripravljen razširjati programje skozi katerikoli drug sistem, in izdajatelj licence ne more vsiljevati te izbire. + +Ta razdelek namerava temeljito pojasniti, kaj so predvidene posledice nadaljevanja licence. + +8. +Če sta razširjanje in/ali uporaba programa omejena v določenih državah, bodisi zaradi patentov ali vmesnikov s posebno pravico razširjanja (angl. copyrighted interfaces), lahko izvorni lastnik ali lastnica pravic razširjanja, ki postavlja program pod to licenco, doda eksplicitno zemljepisno omejitev razširjanja, ki izključuje te države, tako da je razširjanje dovoljeno le v in med državami, ki niso na tak način izključene. V takem primeru ta licenca vključuje omejitve, kot da so napisane v telesu te licence. + +9. +Ustanova Free Software Foundation lahko od časa do časa izdaja preurejene in/ali nove različice Splošne javne licence (angl. General Public License). Nove različice bodo pisane v duhu trenutne različice, vendar se lahko razlikujejo v podrobnostih, ki bodo obdelovale nove težave ali poglede. +Vsaki različici je prirejena razločevalna številka različice. Če program določa številko različice te licence, ki se nanaša na njo in „na katerekoli poznejše različice“, imate izbiro upoštevanja pogojev in določil bodisi te različice ali katerekoli poznejše različice, ki jo je izdala ustanova Free Software Foundation. Če program ne določa številke različice te licence, lahko izberete katerokoli različico, ki jo je kdajkoli izdala ustanova Free Software Foundation. + +10. +Če želite vključiti dele programa v druge proste programe, katerih pogoji razširjanja so drugačni, pišite avtorju in ga prosite za dovoljenje. Za programje, katerega pravice razširjanja ima Free Software Foundation, pišite na Free Software Foundation; včasih naredimo izjemo pri tem. Našo odločitev bosta vodila dva cilja: ohranitev prostega statusa vseh izvedenih del iz našega prostega programja in spodbujanje razdeljevanja in ponovne uporabe programja na splošno. + +BREZ JAMSTVA + +11. +KER JE PROGRAM LICENCIRAN KOT BREZPLAČEN, NI NOBENEGA JAMSTVA ZA PROGRAM DO MEJE, KI JO DOLOČA PRISTOJNI ZAKON. RAZEN, ČE NI DRUGAČE NAPISANO, IMETNIKI PRAVIC RAZŠIRJANJA IN/ALI DRUGE OSEBE PONUJAJO PROGRAM „TAK, KOT JE“, BREZ ZAGOTOVILA KAKRŠNEKOLI VRSTE, NEPOSREDNEGA ALI POSREDNEGA, KAR VKLJUČUJE, A NI OMEJENO NA POSREDNA JAMSTVA CENOVNE VREDNOSTI IN PRIMERNOSTI ZA DOLOČENO UPORABO. CELOTNO TVEGANJE GLEDE KAKOVOSTI IN DELOVANJA PROGRAMA PREVZAMETE SAMI. ČE SE PROGRAM IZKAŽE ZA OKVARJENEGA, SAMI NOSITE STROŠKE VSEH POTREBNIH STORITEV, POPRAVIL ALI POPRAVKOV. + +12. +V NOBENEM PRIMERU, RAZEN ČE TAKO PRAVI VELJAVNI ZAKON ALI JE PISNO DOGOVORJENO, NE BO LASTNIK PRAVIC RAZŠIRJANJA ALI KATERAKOLI DRUGA OSEBA, KI LAHKO SPREMENI IN/ALI PONOVNO RAZŠIRJA PROGRAM, KOT JE DOVOLJENO ZGORAJ, PREVZEL ODGOVORNOSTI ZARADI ŠKODE, NAJSI GRE ZA SPLOŠNO, POSEBNO, NENAMERNO ŠKODO ALI ŠKODO, IZHAJAJOČO IZ UPORABE ALI NEZMOŽNOSTI UPORABE PROGRAMA (VKLJUČNO Z, A NE OMEJENO NA, IZGUBO PODATKOV ALI NENATANČNO OBDELAVO PODATKOV ALI IZGUBO, POVZROČENO VAM ALI TRETJIM OSEBAM ALI NEZMOŽNOST PROGRAMA, DA BI DELOVAL S KAKIM DRUGIM PROGRAMOM), ČETUDI JE BIL TAK LASTNIK ALI DRUGA OSEBA OBVEŠČEN O MOŽNOSTI NASTANKA TAKŠNE ŠKODE. + +KONEC DOLOČB IN POGOJEV + + + + OSC Bridge Version + Različica OSC Bridge + + + + Plugin Version + Različica vtičnika + + + + <br>Version %1<br>Carla is a fully-featured audio plugin host%2.<br><br>Copyright (C) 2011-2019 falkTX<br> + <br>Različica %1<br>Carla je polno zmogljiv gostitelj zvočnih vtičnikov.<br><br>Avtorstvo (C) 2011-2019 falkTX<br> + + + + + (Engine not running) + (pogon ni zagnan) + + + + Everything! (Including LRDF) + Vse (vključno z LRDF) + + + + Everything! (Including CustomData/Chunks) + Vse! (vključno z lastnimi podatki/kosi) + + + + About 110&#37; complete (using custom extensions)<br/>Implemented Feature/Extensions:<ul><li>http://lv2plug.in/ns/ext/atom</li><li>http://lv2plug.in/ns/ext/buf-size</li><li>http://lv2plug.in/ns/ext/data-access</li><li>http://lv2plug.in/ns/ext/event</li><li>http://lv2plug.in/ns/ext/instance-access</li><li>http://lv2plug.in/ns/ext/log</li><li>http://lv2plug.in/ns/ext/midi</li><li>http://lv2plug.in/ns/ext/options</li><li>http://lv2plug.in/ns/ext/parameters</li><li>http://lv2plug.in/ns/ext/port-props</li><li>http://lv2plug.in/ns/ext/presets</li><li>http://lv2plug.in/ns/ext/resize-port</li><li>http://lv2plug.in/ns/ext/state</li><li>http://lv2plug.in/ns/ext/time</li><li>http://lv2plug.in/ns/ext/uri-map</li><li>http://lv2plug.in/ns/ext/urid</li><li>http://lv2plug.in/ns/ext/worker</li><li>http://lv2plug.in/ns/extensions/ui</li><li>http://lv2plug.in/ns/extensions/units</li><li>http://home.gna.org/lv2dynparam/rtmempool/v1</li><li>http://kxstudio.sf.net/ns/lv2ext/external-ui</li><li>http://kxstudio.sf.net/ns/lv2ext/programs</li><li>http://kxstudio.sf.net/ns/lv2ext/props</li><li>http://kxstudio.sf.net/ns/lv2ext/rtmempool</li><li>http://ll-plugins.nongnu.org/lv2/ext/midimap</li><li>http://ll-plugins.nongnu.org/lv2/ext/miditype</li></ul> + O programu 110&#37; celota (z uporabo lastnih razširitev)<br/>Implementirane funkcije/razširitve:<ul><li>http://lv2plug.in/ns/ext/atom</li><li>http://lv2plug.in/ns/ext/buf-size</li><li>http://lv2plug.in/ns/ext/data-access</li><li>http://lv2plug.in/ns/ext/event</li><li>http://lv2plug.in/ns/ext/instance-access</li><li>http://lv2plug.in/ns/ext/log</li><li>http://lv2plug.in/ns/ext/midi</li><li>http://lv2plug.in/ns/ext/options</li><li>http://lv2plug.in/ns/ext/parameters</li><li>http://lv2plug.in/ns/ext/port-props</li><li>http://lv2plug.in/ns/ext/presets</li><li>http://lv2plug.in/ns/ext/resize-port</li><li>http://lv2plug.in/ns/ext/state</li><li>http://lv2plug.in/ns/ext/time</li><li>http://lv2plug.in/ns/ext/uri-map</li><li>http://lv2plug.in/ns/ext/urid</li><li>http://lv2plug.in/ns/ext/worker</li><li>http://lv2plug.in/ns/extensions/ui</li><li>http://lv2plug.in/ns/extensions/units</li><li>http://home.gna.org/lv2dynparam/rtmempool/v1</li><li>http://kxstudio.sf.net/ns/lv2ext/external-ui</li><li>http://kxstudio.sf.net/ns/lv2ext/programs</li><li>http://kxstudio.sf.net/ns/lv2ext/props</li><li>http://kxstudio.sf.net/ns/lv2ext/rtmempool</li><li>http://ll-plugins.nongnu.org/lv2/ext/midimap</li><li>http://ll-plugins.nongnu.org/lv2/ext/miditype</li></ul> + + + + + + Using Juce host + Uporaba Juce gostitelja + + + + About 85% complete (missing vst bank/presets and some minor stuff) + Približno 85% končano (manjkajo vst tabele/predloge in nekaj manjših zadev) + + + + CarlaHostW + + + MainWindow + GlavnoOkno + + + + Rack + Regal + + + + Patchbay + Patchbay + + + + Logs + Dnevniki + + + + Loading... + Nalagam... + + + + Save + + + + + Clear + + + + + Ctrl+L + + + + + Auto-Scroll + + + + + Buffer Size: + Velikost medpomnilnika: + + + + Sample Rate: + Frekvenca vzorčenja: + + + + ? Xruns + ? Xruns + + + + DSP Load: %p% + DSP obremenitev: %p% + + + + &File + &Datoteka + + + + &Engine + &Pogon + + + + &Plugin + &Vtičnik + + + + Macros (all plugins) + Makroji (ali vtičniki) + + + + &Canvas + &Platno + + + + Zoom + Povečava + + + + &Settings + &Nastavitve + + + + &Help + &Pomoč + + + + Tool Bar + + + + + Disk + Disk + + + + + Home + Domov + + + + Transport + Transport + + + + Playback Controls + Kontrole predvajanja + + + + Time Information + Podatki o času + + + + Frame: + Okvir: + + + + 000'000'000 + 000'000'000 + + + + Time: + Čas: + + + + 00:00:00 + 00:00:00 + + + + BBT: + BBT: + + + + 000|00|0000 + 000|00|0000 + + + + Settings + Nastavitve + + + + BPM + BPM + + + + Use JACK Transport + Uporabi JACK Transport + + + + Use Ableton Link + Uporabi Ableton Link + + + + &New + &Novo + + + + Ctrl+N + Ctrl+N + + + + &Open... + &Odpri... + + + + + Open... + Odpri... + + + + Ctrl+O + Ctrl+O + + + + &Save + &Shrani + + + + Ctrl+S + Ctrl+S + + + + Save &As... + Shr%Ani kot... + + + + + Save As... + Shrani kot... + + + + Ctrl+Shift+S + Ctrl+Shift+S + + + + &Quit + Izhod + + + + Ctrl+Q + Ctrl+Q + + + + &Start + &Zaženi + + + + F5 + F5 + + + + St&op + &Ustavi + + + + F6 + F6 + + + + &Add Plugin... + Dod&aj vtičnik... + + + + Ctrl+A + Ctrl+A + + + + &Remove All + Odst&rani vse + + + + Enable + Vklopi + + + + Disable + Izklopi + + + + 0% Wet (Bypass) + 0% obogateno (obvod) + + + + 100% Wet + 100% obogateno + + + + 0% Volume (Mute) + 0% glasnost (tiho) + + + + 100% Volume + 100% glasnost + + + + Center Balance + Središčno ravnovesje + + + + &Play + &Predvajaj + + + + Ctrl+Shift+P + Ctrl+Shift+P + + + + &Stop + U&stavi + + + + Ctrl+Shift+X + Ctrl+Shift+X + + + + &Backwards + &Nazaj + + + + Ctrl+Shift+B + Ctrl+Shift+B + + + + &Forwards + Na&prej + + + + Ctrl+Shift+F + Ctrl+Shift+F + + + + &Arrange + &Razporedi + + + + Ctrl+G + Ctrl+G + + + + + &Refresh + &Osveži + + + + Ctrl+R + Ctrl+R + + + + Save &Image... + Shrani sl&iko... + + + + Auto-Fit + Samodejno prilagajanje + + + + Zoom In + Približaj + + + + Ctrl++ + Ctrl++ + + + + Zoom Out + Oddalji + + + + Ctrl+- + Ctrl+- + + + + Zoom 100% + 100% velikost + + + + Ctrl+1 + Ctrl+1 + + + + Show &Toolbar + Prikaži &orodno vrstico + + + + &Configure Carla + &Carla nastavitve + + + + &About + O progr&amu + + + + About &JUCE + O &JUCE + + + + About &Qt + O &Qt + + + + Show Canvas &Meters + Prikaži &merila platna + + + + Show Canvas &Keyboard + Prikaži tip&kovnico platna + + + + Show Internal + Prikaži notranje + + + + Show External + Prikaži zunanje + + + + Show Time Panel + Prikaži časovni pano + + + + Show &Side Panel + Prikaži &stranski pano + + + + Ctrl+P + + + + + &Connect... + Po&veži... + + + + Compact Slots + Skrči reže + + + + Expand Slots + Razširi reže + + + + Perform secret 1 + Izvedi skrivnost 1 + + + + Perform secret 2 + Izvedi skrivnost 2 + + + + Perform secret 3 + Izvedi skrivnost 3 + + + + Perform secret 4 + Izvedi skrivnost 4 + + + + Perform secret 5 + Izvedi skrivnost 5 + + + + Add &JACK Application... + Dodaj &JACK aplikacijo + + + + &Configure driver... + &Nastavi gonilnik... + + + + Panic + Panika + + + + Open custom driver panel... + Odpri prilagojeni pano gonilnika... + + + + Save Image... (2x zoom) + + + + + Save Image... (4x zoom) + + + + + Copy as Image to Clipboard + + + + + Ctrl+Shift+C + + + + + CarlaHostWindow + + + Export as... + Izvozi kot... + + + + + + + Error + Napaka + + + + Failed to load project + Napaka pri nalaganju projekta + + + + Failed to save project + Napaka pri shranjevanju projekta + + + + Quit + Končaj + + + + Are you sure you want to quit Carla? + Želite res zapreti Carlo? + + + + Could not connect to Audio backend '%1', possible reasons: +%2 + Povezave z zvočnim zaledjem '%1' ni bilo mogoče vzpostaviti. Možni razlogi: +%2 + + + + Could not connect to Audio backend '%1' + Povezave z zvočnim zaledjem '%1' ni bilo mogoče vzpostaviti. + + + + Warning + Opozorilo + + + + There are still some plugins loaded, you need to remove them to stop the engine. +Do you want to do this now? + Nekateri vtičniki so še naloženi in jih je potrebno odstraniti, da bi zaustavili pogon. +Želite to storiti? + + + + CarlaSettingsW + + + Settings + Nastavitve + + + + main + glavno + + + + canvas + platno + + + + engine + pogon + + + + osc + osc + + + + file-paths + poti-datotek + + + + plugin-paths + poti-vtičnikov + + + + wine + wine + + + + experimental + eksperimentalno + + + + Widget + Gradnik + + + + + Main + Glavno + + + + + Canvas + Platno + + + + + Engine + Pogon + + + + File Paths + Poti do datotek + + + + Plugin Paths + Poti do vtičnikov + + + + Wine + Wine + + + + + Experimental + Eksperimentalno + + + + <b>Main</b> + <b>Glavno</b> + + + + Paths + Poti + + + + Default project folder: + Priveta projektna mapa: + + + + Interface + Vmesnik + + + + Use "Classic" as default rack skin + + + + + Interface refresh interval: + Interval osveževanja vmesnika: + + + + + ms + ms + + + + Show console output in Logs tab (needs engine restart) + Prikaži izpis konzole v zavikhu Dnevniki (zahteva ponovni zagon pogona) + + + + Show a confirmation dialog before quitting + Pred zapiranjem prikaži potrditveno okno + + + + + Theme + Tema + + + + Use Carla "PRO" theme (needs restart) + Uporabi temo Carla "PRO" (zahteva ponovni zagon) + + + + Color scheme: + Barvna shema: + + + + Black + Črna + + + + System + Sistemska + + + + Enable experimental features + Vklopi eksperimentalne funkcije + + + + <b>Canvas</b> + <b>Platno</b> + + + + Bezier Lines + Bezierjeve krivulje + + + + Theme: + Tema: + + + + Size: + Velikost + + + + 775x600 + 775x600 + + + + 1550x1200 + 1550x1200 + + + + 3100x2400 + 3100x2400 + + + + 4650x3600 + 4650x3600 + + + + 6200x4800 + 6200x4800 + + + + 12400x9600 + + + + + Options + Možnosti + + + + Auto-hide groups with no ports + Samodejuno skrij skupine brez vrat + + + + Auto-select items on hover + Samodejno izberi predmete ob prehodu + + + + Basic eye-candy (group shadows) + Osnovna paša za oči (skupinske sence) + + + + Render Hints + Namigi za izrisovanje + + + + Anti-Aliasing + Glajenje robov + + + + Full canvas repaints (slower, but prevents drawing issues) + Izris celotnega okvirja (počasneje, a prepreči težave pri izrisovanju) + + + + <b>Engine</b> + <b>Pogon</b> + + + + + Core + Jedro + + + + Single Client + En odjemalec + + + + Multiple Clients + Več odjemalcev + + + + + Continuous Rack + Neskončni regal + + + + + Patchbay + Patchbay + + + + Audio driver: + Gonilnik za zvok: + + + + Process mode: + Način obdelovanja: + + + + + + + Maximum number of parameters to allow in the built-in 'Edit' dialog + Največje število parametrov, ki so dovoljeni v dialogu 'Uredi' + + + + Max Parameters: + Maks. parametrov: + + + + ... + ... + + + + Reset Xrun counter after project load + Ko je projekt naložen, ponastavi Xrun števec + + + + Plugin UIs + Vmesniki vtičnikov + + + + + How much time to wait for OSC GUIs to ping back the host + Koliko časa naj se čaka na povratni ping OSC GUI gostitelju + + + + UI Bridge Timeout: + Časovna omejitev za mos uporabniškega vmesnika: + + + + Use OSC-GUI bridges when possible, this way separating the UI from DSP code + Kadar je možno, uporabite OSC-GUI premostitve in na ta način ločite vmesnik od DSP kode + + + + Use UI bridges instead of direct handling when possible + Uporabite mostove uporabniškega vmesnika namesto nesporedne rabe, kadar je to mogoče + + + + Make plugin UIs always-on-top + Vmesniki vtičnikov naj bodo vedno na vrhu + + + + Make plugin UIs appear on top of Carla (needs restart) + Vmesniki vtičnikov naj se vedno pojavijo nad Carlo (zahteva ponoven zagon) + + + + NOTE: Plugin-bridge UIs cannot be managed by Carla on macOS + OPOMBA: Mostov grafičnih vmesnikov vtičnikov Carla v macOS ne more urejati + + + + + Restart the engine to load the new settings + Ponovno zaženite pogon, da naložite nove nastavitve + + + + <b>OSC</b> + <b>OSC</b> + + + + Enable OSC + Vklopi OSC + + + + Enable TCP port + Omogoči TCP vrata + + + + + Use specific port: + Uporabi določena vrata + + + + Overridden by CARLA_OSC_TCP_PORT env var + Prepisano s spremenljivko okolja CARLA_OSC_TCP_PORT + + + + + Use randomly assigned port + Uporabi naključno določena vrata + + + + Enable UDP port + Omogoči UDP vrata + + + + Overridden by CARLA_OSC_UDP_PORT env var + Prepisano s spremenljivko okolja CARLA_OSC_UDP_PORT + + + + DSSI UIs require OSC UDP port enabled + DSSI vmesniki morajo imeti omogočena OSC UDP vrata + + + + <b>File Paths</b> + <b>Poti do datotek</b> + + + + Audio + Zvok + + + + MIDI + MIDI + + + + Used for the "audiofile" plugin + Uporabljeno za vtičnik "audiofile" + + + + Used for the "midifile" plugin + Uporabljeno za vtičnik "midifile" + + + + + Add... + Dodaj... + + + + + Remove + Odstrani + + + + + Change... + premeni... + + + + <b>Plugin Paths</b> + <b>Poti do vtičnikov</b> + + + + LADSPA + LADSPA + + + + DSSI + DSSI + + + + LV2 + LV2 + + + + VST2 + VST2 + + + + VST3 + VST3 + + + + SF2/3 + SF2/3 + + + + SFZ + SFZ + + + + JSFX + + + + + CLAP + + + + + Restart Carla to find new plugins + Ponovno zaženi Carlo, da poišče nove vtičnike + + + + <b>Wine</b> + <b>Wine</b> + + + + Executable + Izvedljivo + + + + Path to 'wine' binary: + Pot do 'wine' sistemskih: + + + + Prefix + Predpona + + + + Auto-detect Wine prefix based on plugin filename + Samodejno zaznaj Wine predpono glede na ime datoteke vtičnika + + + + Fallback: + Povratek različice: + + + + Note: WINEPREFIX env var is preferred over this fallback + Opomba: Boljša je raba spremenljivke okolja WINEPREFIX, kot ta povratek različice + + + + Realtime Priority + Prednost v realnem času + + + + Base priority: + Osnovna prednost: + + + + WineServer priority: + Prednost WinServer strežnika: + + + + These options are not available for Carla as plugin + Te možnosti niso na voljo, kadar je Carla vtičnik + + + + <b>Experimental</b> + <b>Eksperimentalno</b> + + + + Experimental options! Likely to be unstable! + Eksperimentalne možnosti! Lahko so nestabilne! + + + + Enable plugin bridges + Omogoči premostitve vtičnikov + + + + Enable Wine bridges + Omogoči Wine mostove + + + + Enable jack applications + Omogoči jack aplikacije + + + + Export single plugins to LV2 + Izvozi posamezne vtičnike v LV2 + + + + Use system/desktop-theme icons (needs restart) + + + + + Load Carla backend in global namespace (NOT RECOMMENDED) + Naloži zaledje Carle v globalnem imenskem prostoru (NI PRIPOROČENO) + + + + Fancy eye-candy (fade-in/out groups, glow connections) + Všečna paša za oči (skupine za pojemanje/večanje, svetleče povezave) + + + + Use OpenGL for rendering (needs restart) + Za izrisovanje uporabi OpenGL (zahteva ponoven zagon) + + + + High Quality Anti-Aliasing (OpenGL only) + Visoko-kakovostno glajenje robov (le OpenGL) + + + + Render Ardour-style "Inline Displays" + Izrisovanje "Vrstnih prikazovalnikov" v Ardour slogu + + + + Force mono plugins as stereo by running 2 instances at the same time. +This mode is not available for VST plugins. + Prisili mono vtičnike v stereo, tako da sta naenkrat zagnani dve instanci. +Ta način za VST vtičnike ni na voljo. + + + + Force mono plugins as stereo + Prisili mono vitičnike v stereo + + + + When enabled, Carla will try to prevent plugins from doing things that might mess up the audio or cause xruns, such as fork(), gtk_init() and similar. + + + + + Prevent unsafe calls from plugins (needs restart) + + + + + Run plugins in a separate process, so if they crash it does not affect Carla. +Plugins get automatically deactivated in such cases. +Reactvate them to start the process again, with the last saved state applied to it. + + + + + Run plugins in bridge mode when possible + Zaženi vtičnike z mostom, če je to mogoče + + + + + + + Add Path + Dodaj pot + + + + Dialog + + + Carla Control - Connect + Carla Control - povezava + + + + Remote setup + Nastavitev oddaljenega dostopa + + + + UDP Port: + UDP vrata: + + + + Remote host: + Oddaljeni gostitelj: + + + + TCP Port: + TCP vrata: + + + + Set value + Določi vrednost + + + + TextLabel + TekstovnaOznaka + + + + Scale Points + Točke povečave + + + + DriverSettingsW + + + Driver Settings + Nastavitve gonilnika + + + + Device: + Naprava: + + + + Buffer size: + Velikost medpomnilnika: + + + + Sample rate: + Frekvenca vzorčenja + + + + Triple buffer + Trojni medpomnilnik + + + + Show Driver Control Panel + Prikaži upravljalno ploščo gonilnika + + + + Restart the engine to load the new settings + Ponovno zaženite pogon, da naložite nove nastavitve + + + + ExportProjectDialog + + + Export project + Izvozi projekt + + + + Export as loop (remove extra bar) + Izvozi kot zanko (odstrani odvečni takt) + + + + Export between loop markers + Izvoz med dvema oznakama + + + + Render Looped Section: + Oblikuj ponavljajoči se razdelek: + + + + time(s) + krat + + + + File format settings + Nastavitve formata datoteke + + + + File format: + Format datoteke: + + + + Sampling rate: + Frekvenca vzorčenja: + + + + 44100 Hz + 44100 Hz + + + + 48000 Hz + 48000 Hz + + + + 88200 Hz + 88200 Hz + + + + 96000 Hz + 96000 Hz + + + + 192000 Hz + 192000 Hz + + + + Bit depth: + Bitna globina + + + + 16 Bit integer + 16 bitni integer + + + + 24 Bit integer + 24 bitni integer + + + + 32 Bit float + 32 bitni float + + + + Stereo mode: + Stero način: + + + + Mono + Mono + + + + Stereo + Stereo + + + + Joint stereo + Združeni stereo + + + + Compression level: + Stopnja stiskanja: + + + + Bitrate: + Bitna hitrost: + + + + 64 KBit/s + 64 kbit/s + + + + 128 KBit/s + 128 kbit/s + + + + 160 KBit/s + 160 kbit/s + + + + 192 KBit/s + 192 kbit/s + + + + 256 KBit/s + 256 kbit/s + + + + 320 KBit/s + 320 kbit/s + + + + Use variable bitrate + Uporabi variabilno bitno hitrost + + + + Quality settings + Nastavitve kakovosti + + + + Interpolation: + Prepletanje: + + + + Zero order hold + Zadrževalnik ničtega reda (ZOH) + + + + Sinc worst (fastest) + Sinh. slabo (hitro) + + + + Sinc medium (recommended) + Sinh srednje (priporočeno) + + + + Sinc best (slowest) + Sinh odlično (počasi) + + + + Start + Zaženi + + + + Cancel + Preklic + + + + InstrumentFunctionNoteStacking + + + octave + oktava + + + + + Major + durova + + + + Majb5 + H5-dur + + + + minor + molova + + + + minb5 + H5-mol + + + + sus2 + sus2 + + + + sus4 + sus4 + + + + aug + aug + + + + augsus4 + augsus4 + + + + tri + tri + + + + 6 + 6 + + + + 6sus4 + 6sus4 + + + + 6add9 + 6add9 + + + + m6 + mol6 + + + + m6add9 + m6add9 + + + + 7 + 7 + + + + 7sus4 + 7sus4 + + + + 7#5 + 7#5 + + + + 7b5 + 7b5 + + + + 7#9 + 7#9 + + + + 7b9 + 7b9 + + + + 7#5#9 + 7#5#9 + + + + 7#5b9 + 7#5b9 + + + + 7b5b9 + 7b5b9 + + + + 7add11 + 7add11 + + + + 7add13 + 7add13 + + + + 7#11 + 7#11 + + + + Maj7 + dur7 + + + + Maj7b5 + dur7h5 + + + + Maj7#5 + dur7#5 + + + + Maj7#11 + dur7#11 + + + + Maj7add13 + dur7add13 + + + + m7 + mol7 + + + + m7b5 + mol7b5 + + + + m7b9 + mol7b9 + + + + m7add11 + mol7add11 + + + + m7add13 + mol7add13 + + + + m-Maj7 + mol-Maj7 + + + + m-Maj7add11 + mol-Maj7add11 + + + + m-Maj7add13 + mol-Maj7add13 + + + + 9 + 9 + + + + 9sus4 + 9sus4 + + + + add9 + add9 + + + + 9#5 + 9#5 + + + + 9b5 + 9b5 + + + + 9#11 + 9#11 + + + + 9b13 + 9b13 + + + + Maj9 + dur9 + + + + Maj9sus4 + dur9sus4 + + + + Maj9#5 + dur9#5 + + + + Maj9#11 + dur9#11 + + + + m9 + mol9 + + + + madd9 + mol-add9 + + + + m9b5 + mol9b5 + + + + m9-Maj7 + mol9-Maj7 + + + + 11 + 11 + + + + 11b9 + 11b9 + + + + Maj11 + dur11 + + + + m11 + mol11 + + + + m-Maj11 + mol-Maj11 + + + + 13 + 13 + + + + 13#9 + 13#9 + + + + 13b9 + 13b9 + + + + 13b5b9 + 13b5b9 + + + + Maj13 + dur13 + + + + m13 + mol13 + + + + m-Maj13 + mol-Maj13 + + + + Harmonic minor + Harmonična molova + + + + Melodic minor + Melodična molova + + + + Whole tone + Cel ton + + + + Diminished + zmanjšan + + + + Major pentatonic + Durova pentatonika + + + + Minor pentatonic + Molova pentatonika + + + + Jap in sen + japonska in sen + + + + Major bebop + Durova bepop + + + + Dominant bebop + Dominantna bepop + + + + Blues + Blues + + + + Arabic + Arabska + + + + Enigmatic + Enigmatična + + + + Neopolitan + Neopolitanska + + + + Neopolitan minor + Neopolitanska molova + + + + Hungarian minor + Madžarska molova + + + + Dorian + Dorijanska + + + + Phrygian + Frigijska + + + + Lydian + Lidijanska + + + + Mixolydian + Miksolidijska + + + + Aeolian + Eolska + + + + Locrian + Lokrijska + + + + Minor + Molovska + + + + Chromatic + Kromatična + + + + Half-Whole Diminished + Pol-cele znižano + + + + 5 + 5 + + + + Phrygian dominant + Frigijska dominantna + + + + Persian + Perzijsko + + + + InstrumentSoundShaping + + + VOLUME + GLASNOST + + + + Volume + Glasnost + + + + CUTOFF + ODREZ + + + + Cutoff frequency + Frekvenca rezanja + + + + RESO + RESO + + + + Resonance + Resnonanca + + + + JackAppDialog + + + Add JACK Application + + + + + Note: Features not implemented yet are greyed out + + + + + Application + + + + + Name: + + + + + Application: + + + + + From template + + + + + Custom + + + + + Template: + + + + + Command: + + + + + Setup + + + + + Session Manager: + + + + + None + + + + + Audio inputs: + + + + + MIDI inputs: + + + + + Audio outputs: + + + + + MIDI outputs: + + + + + Take control of main application window + + + + + Workarounds + + + + + Wait for external application start (Advanced, for Debug only) + + + + + Capture only the first X11 Window + + + + + Use previous client output buffer as input for the next client + + + + + Simulate 16 JACK MIDI outputs, with MIDI channel as port index + + + + + Error here + + + + + NSM applications cannot use abstract or absolute paths + + + + + NSM applications cannot use CLI arguments + + + + + You need to save the current Carla project before NSM can be used + + + + + JuceAboutW + + + This program uses JUCE version %1. + Ta program uporablja JUCE različice %1 + + + + MidiPatternW + + + MIDI Pattern + MIDI matrika + + + + Time Signature: + Časovna oznaka: + + + + + + 1/4 + 1/4 + + + + 2/4 + 2/4 + + + + 3/4 + 3/4 + + + + 4/4 + 4/4 + + + + 5/4 + 5/4 + + + + 6/4 + 6/4 + + + + Measures: + Merila: + + + + + + 1 + 1 + + + + 2 + 2 + + + + 3 + 3 + + + + 4 + 4 + + + + 5 + 5 + + + + 6 + 6 + + + + 7 + 7 + + + + 8 + 8 + + + + 9 + 9 + + + + 10 + 10 + + + + 11 + 11 + + + + 12 + 12 + + + + 13 + 13 + + + + 14 + 14 + + + + 15 + 15 + + + + 16 + 16 + + + + Default Length: + Privzeta dolžina: + + + + + 1/16 + 1/16 + + + + + 1/15 + 1/15 + + + + + 1/12 + 1/12 + + + + + 1/9 + 1/9 + + + + + 1/8 + 1/8 + + + + + 1/6 + 1/6 + + + + + 1/3 + 1/3 + + + + + 1/2 + 1/2 + + + + Quantize: + Kvantizacija: + + + + &File + %Datoteka + + + + &Edit + Ur&Edi + + + + &Quit + Izhod + + + + Esc - - OSC Bridge Version - + + &Insert Mode + Način vstavljanja + + + + F + F + + + + &Velocity Mode + Način &hitrosti + + + + D + D + + + + Select All + Izberi vse + + + + A + A + + + + PatchesDialog + + + + Qsynth: Channel Preset + QSynth: Predloga kanala + + + + + Bank selector + Izbirnik tabele + + + + + Bank + Tabela + + + + + Program selector + Izbirnik programa + + + + + Patch + Program + + + + + Name + Ime + + + + + OK + V redu + + + + + Cancel + Preklic + + + + PluginBrowser + + + no description + ni opisa + + + + A native amplifier plugin + Lastni vtičnik ojačevalca + + + + Simple sampler with various settings for using samples (e.g. drums) in an instrument-track + Prepsot vzorčevalnik z različnimi nastavitvami za rabo vzorcev (npr. bobnov) na instrumentalni stezi + + + + Boost your bass the fast and simple way + Poudarite bas na hiter in enostaven način + + + + Customizable wavetable synthesizer + Prilagodljiv sintetizator s tabelami valovnih oblik + + + + An oversampling bitcrusher + Prevzorčevalni lomilec bitov + + + + Carla Patchbay Instrument + Carla Patchbay Instrument + + + + Carla Rack Instrument + Carla regal instrumenti + + + + A dynamic range compressor. + Kompresor z dinamičnim razponom + + + + A 4-band Crossover Equalizer + 4 pasovni navzkrižni izravnalnik + + + + A native delay plugin + lastni vtičnik za zamik + + + + A Dual filter plugin + Dvojni filter vtičnik + + + + plugin for processing dynamics in a flexible way + vtičnik za procesiranje dinamike na fleksibilen način + + + + A native eq plugin + Lastni eq vtičnik + + + + A native flanger plugin + Lastni flanger vtičnik + + + + Emulation of GameBoy (TM) APU + Emulacija GameBoy (tm) APU + + + + Player for GIG files + Predvajalnik za GIG datoteke + + + + Filter for importing Hydrogen files into LMMS + Sito za uvažanje Hydrogen datotek v LMMS + + + + Versatile drum synthesizer + Vsestranski sintetizator bobnov + + + + List installed LADSPA plugins + Seznam nameščenih LADSPA vtičnikov + + + + plugin for using arbitrary LADSPA-effects inside LMMS. + vtičnik za rabo poljubnih LADSPA instrumentov v LMMS. + + + + Incomplete monophonic imitation TB-303 + Nepopolna monofonična imitacija tv303 + + + + plugin for using arbitrary LV2-effects inside LMMS. + vtičnik za rabo poljubnih LV2 učinkov v LMMS. + + + + plugin for using arbitrary LV2 instruments inside LMMS. + vtičnik za rabo poljubnih LV2 instrumentov v LMMS. + + + + Filter for exporting MIDI-files from LMMS + Sito za izvažanje MIDI datotek iz LMMS + + + + Filter for importing MIDI-files into LMMS + Sito za uvažanje MIDI datotek v LMMS + + + + Monstrous 3-oscillator synth with modulation matrix + Pošasten 3-oscilatorski sintetizator z modulacijsko matriko + + + + A multitap echo delay plugin + Vtičnik za multitap eho zamik + + + + A NES-like synthesizer + NES-u podoben sintetizator + + + + 2-operator FM Synth + Fm sintetizator z dvema operatorjema + + + + Additive Synthesizer for organ-like sounds + Aditivni sintetizator za orglasto zveneče zvoke + + + + GUS-compatible patch instrument + GUS-združljiv programski instrument + + + + Plugin for controlling knobs with sound peaks + Vtičnik za nadzor vrtljivih regulatorjev z vrhovi zvoka + + + + Reverb algorithm by Sean Costello + Algoritem odjeka je ustvaril Sean Costello + + + + Player for SoundFont files + Predvajalnik za SoundFont datoteke + + + + LMMS port of sfxr + LMMS vrata za sfxr - - Plugin Version - + + Emulation of the MOS6581 and MOS8580 SID. +This chip was used in the Commodore 64 computer. + Emulacija za MOS6581 in MOS8580 SID. +Ta čipa sta bila uporabljane v računalniku Commodore 64. - - <br>Version %1<br>Carla is a fully-featured audio plugin host%2.<br><br>Copyright (C) 2011-2019 falkTX<br> - + + A graphical spectrum analyzer. + Grafični spektralni analizator. - - - (Engine not running) - + + Plugin for enhancing stereo separation of a stereo input file + Vtičnik za poudarjanje ločenosti kanalov stereo vhodne datoteke - - Everything! (Including LRDF) - + + Plugin for freely manipulating stereo output + Vtičnik za prosto manipulacijo stereo izhoda - - Everything! (Including CustomData/Chunks) - + + Tuneful things to bang on + Nastavljive zadeve za uporabo - - About 110&#37; complete (using custom extensions)<br/>Implemented Feature/Extensions:<ul><li>http://lv2plug.in/ns/ext/atom</li><li>http://lv2plug.in/ns/ext/buf-size</li><li>http://lv2plug.in/ns/ext/data-access</li><li>http://lv2plug.in/ns/ext/event</li><li>http://lv2plug.in/ns/ext/instance-access</li><li>http://lv2plug.in/ns/ext/log</li><li>http://lv2plug.in/ns/ext/midi</li><li>http://lv2plug.in/ns/ext/options</li><li>http://lv2plug.in/ns/ext/parameters</li><li>http://lv2plug.in/ns/ext/port-props</li><li>http://lv2plug.in/ns/ext/presets</li><li>http://lv2plug.in/ns/ext/resize-port</li><li>http://lv2plug.in/ns/ext/state</li><li>http://lv2plug.in/ns/ext/time</li><li>http://lv2plug.in/ns/ext/uri-map</li><li>http://lv2plug.in/ns/ext/urid</li><li>http://lv2plug.in/ns/ext/worker</li><li>http://lv2plug.in/ns/extensions/ui</li><li>http://lv2plug.in/ns/extensions/units</li><li>http://home.gna.org/lv2dynparam/rtmempool/v1</li><li>http://kxstudio.sf.net/ns/lv2ext/external-ui</li><li>http://kxstudio.sf.net/ns/lv2ext/programs</li><li>http://kxstudio.sf.net/ns/lv2ext/props</li><li>http://kxstudio.sf.net/ns/lv2ext/rtmempool</li><li>http://ll-plugins.nongnu.org/lv2/ext/midimap</li><li>http://ll-plugins.nongnu.org/lv2/ext/miditype</li></ul> + + Three powerful oscillators you can modulate in several ways + Trije zmogljivi oscilatorji, ki jih lahko modulirate na številne načine + + + + A stereo field visualizer. + Vizualizacija stereo polja. + + + + VST-host for using VST(i)-plugins within LMMS + VST-gostitelj za rabo VST(i)-vtičnikov z LMMS + + + + Vibrating string modeler + Oblikovalec vibrirajočih strun + + + + plugin for using arbitrary VST effects inside LMMS. + vtičnik za rabo poljubnih VST učinkov v LMMS. + + + + 4-oscillator modulatable wavetable synth + 4-oscilatorski modulirajoči sintetizator s tabelami valovnih oblik + + + + plugin for waveshaping + vtičnik za oblikovanje valov + + + + Mathematical expression parser + Razčlenjevalnik matematičnih izrazov + + + + Embedded ZynAddSubFX + Vdelan ZynAddSubFX + + + + An all-pass filter allowing for extremely high orders. + Filter vseh pasov za ekstremno visoke rede + + + + Granular pitch shifter - - - - Using Juce host + + Upwards/downwards multiband compression plugin powered by the eldritch elder god LOMMUS. - - About 85% complete (missing vst bank/presets and some minor stuff) + + Basic Slicer + + + Tap to the beat + Tapkajte v ritmu + - CarlaHostW + PluginEdit - - MainWindow - + + Plugin Editor + Urejevalnik vtičnikov - - Rack - + + Edit + Uredi - - Patchbay - + + Control + Kontrola - - Logs - + + MIDI Control Channel: + Kanal MIDI kontrola: - - Loading... - + + N + N - - Buffer Size: + + Output dry/wet (100%) + Izhod surovo/obogateno (100%) + + + + Output volume (100%) + Izhodna glasnost (100%) + + + + Balance Left (0%) + Ravnovesje levo (0%) + + + + + Balance Right (0%) + Ravnovesje desno (0%) + + + + Use Balance + Uporabi ravnovesje + + + + Use Panning + Uporabi panoramo + + + + Settings + Nastavitve + + + + Use Chunks + Uporabi kose + + + + Audio: + Zvok: + + + + Fixed-Size Buffer + Stalna velikost medpomnilnika + + + + Force Stereo (needs reload) + Prisili stereo (zahteva ponovni zagon) + + + + MIDI: + MIDI: + + + + Map Program Changes + Mapiraj spremembe programa + + + + Send Notes - - Sample Rate: + + Send Bank/Program Changes + Pošlji spremembe tabele/programa + + + + Send Control Changes + Pošlji sprembe kontrole + + + + Send Channel Pressure + Pošlji pritisk kanala + + + + Send Note Aftertouch + Pošlji po-dotik note + + + + Send Pitchbend + Pošlji pregib višine + + + + Send All Sound/Notes Off + Pošlji vse note/izklopi note + + + + +Plugin Name + + +Ime vtičnika + + + + + Program: + Program: + + + + MIDI Program: + MIDI Program: + + + + Save State + Shrani stanje + + + + Load State + Naloži stanje + + + + Information + Informacije + + + + Label/URI: + Oznaka/URI: + + + + Name: + Ime: + + + + Type: + Vrsta: + + + + Maker: + Ustvaril: + + + + Copyright: + Avtorstvo: + + + + Unique ID: + Edinstven ID: + + + + PluginFactory + + + Plugin not found. + Vtičnik ni najden. + + + + LMMS plugin %1 does not have a plugin descriptor named %2! + LMMS vtičnik %1 nima označevalca vtičnika z imenom %2! + + + + PluginListDialog + + + Carla - Add New - - ? Xruns + + Requirements - - DSP Load: %p% + + With Custom GUI - - &File + + With CV Ports - - &Engine + + Real-time safe only - - &Plugin + + Stereo only - - Macros (all plugins) + + With Inline Display - - &Canvas + + Favorites only - - Zoom + + (Number of Plugins go here) - - &Settings + + &Add Plugin - - &Help + + Cancel - - toolBar + + Refresh - - Disk + + Reset filters - - - Home + + + + + + + + + + + + + + + + + TextLabel - - Transport + + Format: - - Playback Controls + + Architecture: - - Time Information + + Type: - - Frame: + + MIDI Ins: - - 000'000'000 + + Audio Ins: - - Time: + + CV Outs: - - 00:00:00 + + MIDI Outs: - - BBT: + + Parameter Ins: - - 000|00|0000 + + Parameter Outs: - - Settings - Nastavitve + + Audio Outs: + - - BPM + + CV Ins: - - Use JACK Transport + + UniqueID: - - Use Ableton Link + + Has Inline Display: - - &New - &Novo + + Has Custom GUI: + - - Ctrl+N + + Is Synth: - - &Open... - &Odpri... + + Is Bridged: + - - - Open... + + Information - - Ctrl+O + + Name - - &Save - &Shrani + + Label/Id/URI + - - Ctrl+S + + Maker - - Save &As... - Shr%Ani kot... + + Binary/Filename + - - - Save As... + + Format - - Ctrl+Shift+S + + Internal - - &Quit - Izhod + + LADSPA + - - Ctrl+Q + + DSSI - - &Start + + LV2 - - F5 + + VST2 - - St&op + + VST3 - - F6 + + CLAP - - &Add Plugin... + + AU - - Ctrl+A + + JSFX - - &Remove All + + Sound Kits - - Enable + + Type - - Disable + + Effects - - 0% Wet (Bypass) + + Instruments - - 100% Wet + + MIDI Plugins - - 0% Volume (Mute) + + Other/Misc - - 100% Volume + + Category - - Center Balance + + All - - &Play + + Delay - - Ctrl+Shift+P + + Distortion - - &Stop + + Dynamics - - Ctrl+Shift+X + + EQ - - &Backwards + + Filter - - Ctrl+Shift+B + + Modulator - - &Forwards + + Synth - - Ctrl+Shift+F + + Utility - - &Arrange + + + Other - - Ctrl+G + + Architecture - - - &Refresh + + + Native - - Ctrl+R + + Bridged - - Save &Image... + + Bridged (Wine) - - Auto-Fit + + Focus Text Search - - Zoom In + + Ctrl+F - - Ctrl++ + + Bridged (32bit) - - Zoom Out + + Discovering internal plugins... - - Ctrl+- + + Discovering LADSPA plugins... - - Zoom 100% + + Discovering DSSI plugins... - - Ctrl+1 + + Discovering LV2 plugins... - - Show &Toolbar + + Discovering VST2 plugins... - - &Configure Carla + + Discovering VST3 plugins... - - &About + + Discovering CLAP plugins... - - About &JUCE + + Discovering AU plugins... - - About &Qt + + Discovering JSFX plugins... - - Show Canvas &Meters + + Discovering SF2 kits... - - Show Canvas &Keyboard + + Discovering SFZ kits... - - Show Internal + + Unknown - - Show External + + + + + Yes - - Show Time Panel + + + + + No + + + PluginParameter - - Show &Side Panel - + + Form + Oblika - - &Connect... - + + Parameter Name + Ime parametra - - Compact Slots + + TextLabel - - Expand Slots - + + ... + ... + + + PluginRefreshDialog - - Perform secret 1 + + Plugin Refresh - - Perform secret 2 + + Search for: - - Perform secret 3 + + All plugins, ignoring cache - - Perform secret 4 + + Updated plugins only - - Perform secret 5 + + Check previously invalid plugins - - Add &JACK Application... + + Press 'Scan' to begin the search - - &Configure driver... + + Scan - - Panic + + >> Skip - - Open custom driver panel... + + Close - CarlaHostWindow + PluginWidget - - Export as... - + + + + + + Frame + Okvir - - - - - Error - + + Enable + Vklopi - - Failed to load project - + + On/Off + Vklopi/izklopi - - Failed to save project - + + + + + PluginName + ImeVtičnika - - Quit - + + MIDI + MIDI - - Are you sure you want to quit Carla? - + + AUDIO IN + ZVOČNI VHOD - - Could not connect to Audio backend '%1', possible reasons: -%2 - + + AUDIO OUT + ZVOČNI IZHOD - - Could not connect to Audio backend '%1' - + + GUI + GUI - - Warning - + + Edit + Uredi - - There are still some plugins loaded, you need to remove them to stop the engine. -Do you want to do this now? - + + Remove + Odstrani - - - CarlaInstrumentView - - Show GUI - + + Plugin Name + Ime vtičnika + + + + Preset: + Predloga: - CarlaSettingsW + ProjectRenderer - - Settings - Nastavitve + + WAV (*.wav) + WAV (*.wav) - - main - + + FLAC (*.flac) + FLAC (*.flac) - - canvas - + + OGG (*.ogg) + OGG (*.ogg) - - engine - + + MP3 (*.mp3) + MP3 (*.mp3) + + + QGroupBox - - osc + + + Settings for %1 + + + QObject + + + Reload Plugin + Ponovno naloži vtičnik + - - file-paths - + + Show GUI + Prikaži grafični vmesnik - - plugin-paths - + + Help + Pomoč - - wine + + LADSPA plugins - - experimental + + The project contains %1 LADSPA plugin(s) which might have not been restored correctly! Please check the project. - - Widget + + URI: - - - Main + + Project: - - - Canvas + + Maker: - - - Engine + + Homepage: - - File Paths + + License: - - Plugin Paths + + File: %1 - - Wine + + failed to load description - - - Experimental + + Open audio file - - <b>Main</b> + + Error loading sample - - Paths + + %1 (unsupported) + + + QWidget - - Default project folder: - + + + Name: + Ime: - - Interface - + + Maker: + Ustvaril: - - Interface refresh interval: - + + Copyright: + Avtorstvo: - - - ms - + + Requires Real Time: + Zahteva realni čas: - - Show console output in Logs tab (needs engine restart) - + + + + Yes + Da - - Show a confirmation dialog before quitting - + + + + No + Ne - - - Theme - + + Real Time Capable: + Zmore realni čas: - - Use Carla "PRO" theme (needs restart) - + + In Place Broken: + Namesto okvarjenega: - - Color scheme: - + + Channels In: + Kanali v: - - Black - + + Channels Out: + Kanali iz: - - System - + + File: %1 + Datoteka: %1 - - Enable experimental features - + + File: + Datoteka: + + + XYControllerW - - <b>Canvas</b> + + XY Controller - - Bezier Lines + + X Controls: - - Theme: + + Y Controls: - - Size: + + Smooth - - 775x600 + + &Settings - - 1550x1200 + + Channels - - 3100x2400 + + &File - - 4650x3600 + + Show MIDI &Keyboard - - 6200x4800 + + (All) - - Options + + 1 - - Auto-hide groups with no ports + + 2 - - Auto-select items on hover + + 3 - - Basic eye-candy (group shadows) + + 4 - - Render Hints + + 5 - - Anti-Aliasing + + 6 - - Full canvas repaints (slower, but prevents drawing issues) + + 7 - - <b>Engine</b> + + 8 - - - Core + + 9 - - Single Client + + 10 - - Multiple Clients + + 11 - - - Continuous Rack + + 12 - - - Patchbay + + 13 - - Audio driver: + + 14 - - Process mode: + + 15 - - - - - Maximum number of parameters to allow in the built-in 'Edit' dialog + + 16 - - Max Parameters: + + &Quit - - ... + + Esc - - Reset Xrun counter after project load + + (None) + + + lmms::AmplifierControls - - Plugin UIs - + + Volume + Glasnost - - - How much time to wait for OSC GUIs to ping back the host - + + Panning + Panorama - - UI Bridge Timeout: - + + Left gain + Leva jakost - - Use OSC-GUI bridges when possible, this way separating the UI from DSP code - + + Right gain + Desna jakost + + + lmms::AudioFileProcessor - - Use UI bridges instead of direct handling when possible - + + Amplify + Ojačenje - - Make plugin UIs always-on-top - + + Start of sample + Začetek vzorca - - Make plugin UIs appear on top of Carla (needs restart) - + + End of sample + Konec vzorca - - NOTE: Plugin-bridge UIs cannot be managed by Carla on macOS - + + Loopback point + Točka povratka zanke - - - Restart the engine to load the new settings - + + Reverse sample + Obrni vzorec - - <b>OSC</b> - + + Loop mode + Način zanke - - Enable OSC - + + Stutter + Jecljanje - - Enable TCP port - + + Interpolation mode + Način prepletanja - - - Use specific port: - + + None + brez - - Overridden by CARLA_OSC_TCP_PORT env var - + + Linear + linearno - - - Use randomly assigned port - + + Sinc + Sinhronizacija - - Enable UDP port + + Sample not found + + + lmms::AudioJack - - Overridden by CARLA_OSC_UDP_PORT env var - + + JACK client restarted + JACK odjemalec je bil ponovno zagnan - - DSSI UIs require OSC UDP port enabled - + + LMMS was kicked by JACK for some reason. Therefore the JACK backend of LMMS has been restarted. You will have to make manual connections again. + JACK je iz neznanega razloga odslovil LMMS. Zato je bil potreben ponoven zagon JACK zaledja za LMMS. Povezave je potrebno na novo vzpostaviti ročno. - - <b>File Paths</b> - + + JACK server down + JACK strežnik ne deluje - - Audio - + + The JACK server seems to have been shutdown and starting a new instance failed. Therefore LMMS is unable to proceed. You should save your project and restart JACK and LMMS. + Videti je, da se je JACK strežnik zaprl ter da zagon nove instance ni bil uspešen. Zato LMMS ne more nadaljevati. Shranite projekt ter nato ponovno zaženite JACK in LMMS. - - MIDI - + + Client name + Ime odjemalca - - Used for the "audiofile" plugin - + + Channels + Kanali + + + lmms::AudioOss - - Used for the "midifile" plugin - + + Device + Naprava - - - Add... - + + Channels + Kanali + + + lmms::AudioPortAudio::setupWidget - - - Remove - + + Backend + Zaledje - - - Change... - + + Device + Naprava + + + lmms::AudioPulseAudio - - <b>Plugin Paths</b> - + + Device + Naprava - - LADSPA - + + Channels + Kanali + + + lmms::AudioSdl::setupWidget - - DSSI + + Playback device - - LV2 + + Input device + + + lmms::AudioSndio - - VST2 - + + Device + Naprava - - VST3 - + + Channels + Kanali + + + lmms::AudioSoundIo::setupWidget - - SF2/3 - + + Backend + Zaledje - - SFZ - + + Device + Naprava + + + lmms::AutomatableModel - - Restart Carla to find new plugins - + + &Reset (%1%2) + &Ponastavitev (%1%2) - - <b>Wine</b> - + + &Copy value (%1%2) + &Kopiraj vrednost (%1%2) - - Executable - + + &Paste value (%1%2) + &Prilepi vrednost (%1%2) - - Path to 'wine' binary: - + + &Paste value + &Prilepi vrednost - - Prefix - + + Edit song-global automation + Uredi globalno avtomatizacijo skladbe - - Auto-detect Wine prefix based on plugin filename - + + Remove song-global automation + Odstrani globalno avtomatizacijo skladbe - - Fallback: - + + Remove all linked controls + Odstrani vse povezane kontrole - - Note: WINEPREFIX env var is preferred over this fallback - + + Connected to %1 + Povezan na %1 - - Realtime Priority - + + Connected to controller + Povezan s kontrolerjem + + + + Edit connection... + Uredi povezavo... - - Base priority: - + + Remove connection + Odstrani povezavo - - WineServer priority: - + + Connect to controller... + Poveži se s kontrolerjem... + + + lmms::AutomationClip - - These options are not available for Carla as plugin - + + Drag a control while pressing <%1> + Povlecite kontrolo in zraven držite <%1> + + + lmms::AutomationTrack - - <b>Experimental</b> - + + Automation track + Steza z avtomatizacijo + + + lmms::BassBoosterControls - - Experimental options! Likely to be unstable! - + + Frequency + Frekvenca - - Enable plugin bridges - + + Gain + Jakost - - Enable Wine bridges - + + Ratio + Razmerje + + + lmms::BitInvader - - Enable jack applications - + + Sample length + Dolžina vzorca - - Export single plugins to LV2 + + Interpolation - - Load Carla backend in global namespace (NOT RECOMMENDED) + + Normalize + + + lmms::BitcrushControls - - Fancy eye-candy (fade-in/out groups, glow connections) - + + Input gain + Vhodna jakost - - Use OpenGL for rendering (needs restart) - + + Input noise + Vhodni šum - - High Quality Anti-Aliasing (OpenGL only) - + + Output gain + Izhodna jakost - - Render Ardour-style "Inline Displays" - + + Output clip + Izhodno rezanje - - Force mono plugins as stereo by running 2 instances at the same time. -This mode is not available for VST plugins. - + + Sample rate + Frekvenca vzorčenja - - Force mono plugins as stereo - + + Stereo difference + Stereo razlika - - Prevent plugins from doing bad stuff (needs restart) - + + Levels + Nivoji - - Whenever possible, run the plugins in bridge mode. - + + Rate enabled + Frrekvenca vklopljena - - Run plugins in bridge mode when possible - + + Depth enabled + Globina vklopljena + + + lmms::Clip - - - - - Add Path - + + Mute + Utišaj - CompressorControlDialog + lmms::CompressorControls - - Threshold: - + + Threshold + Prag - - Volume at which the compression begins to take place - + + Ratio + Razmerje - - Ratio: - + + Attack + Napad - - How far the compressor must turn the volume down after crossing the threshold - + + Release + Spust - - Attack: - + + Knee + Koleno - - Speed at which the compressor starts to compress the audio - + + Hold + Zadrži - - Release: - + + Range + Razpon - - Speed at which the compressor ceases to compress the audio - + + RMS Size + RMS velikost - - Knee: - + + Mid/Side + Sredina/Stransko - - Smooth out the gain reduction curve around the threshold - + + Peak Mode + Vrh način - - Range: - + + Lookahead Length + Dolžina pogleda vnaprej - - Maximum gain reduction - + + Input Balance + Vhodno ravnovesje - - Lookahead Length: - + + Output Balance + Izhodno ravnovesje - - How long the compressor has to react to the sidechain signal ahead of time - + + Limiter + Omejevalnik - - Hold: - + + Output Gain + Izhodna jakost - - Delay between attack and release stages - + + Input Gain + Vhodna jakost - - RMS Size: - + + Blend + Zlivanje - - Size of the RMS buffer - + + Stereo Balance + Stereo ravnovesje - - Input Balance: - + + Auto Makeup Gain + Samodejno večanje jakosti - - Bias the input audio to the left/right or mid/side - + + Audition + Avdicija - - Output Balance: - + + Feedback + Povratna zanka - - Bias the output audio to the left/right or mid/side - + + Auto Attack + Samodejni napad - - Stereo Balance: - + + Auto Release + Samodejni spust - - Bias the sidechain signal to the left/right or mid/side - + + Lookahead + Pogled vnaprej - - Stereo Link Blend: - + + Tilt + Nagib - - Blend between unlinked/maximum/average/minimum stereo linking modes - + + Tilt Frequency + Frekvenca nagiba - - Tilt Gain: - + + Stereo Link + Stereo združevanje - - Bias the sidechain signal to the low or high frequencies. -6 db is lowpass, 6 db is highpass. - + + Mix + Miks + + + lmms::Controller - - Tilt Frequency: - + + Controller %1 + Kontoler %1 + + + lmms::DelayControls - - Center frequency of sidechain tilt filter - + + Delay samples + Zamik vzorcev - - Mix: - + + Feedback + Povratna zanka - - Balance between wet and dry signals - + + LFO frequency + NFO frekvenca - - Auto Attack: - + + LFO amount + NFO količina - - Automatically control attack value depending on crest factor - + + Output gain + Izhodna jakost + + + + lmms::DispersionControls + + + Amount + Količina + + + + Frequency + Frekvenca - - Auto Release: - + + Resonance + Resnonanca - - Automatically control release value depending on crest factor - + + Feedback + Povratna zanka - - Output gain - + + DC Offset Removal + DC odmik odstranitve + + + lmms::DualFilterControls - - - Gain - + + Filter 1 enabled + Filter 1 vklopljen - - Output volume - + + Filter 1 type + Filter 1 vrsta - - Input gain - + + Cutoff frequency 1 + Frekvenca za odrez 1 - - Input volume - + + Q/Resonance 1 + Q/resonanca 1 - - Root Mean Square - + + Gain 1 + Jakost 1 - - Use RMS of the input - + + Mix + Miks - - Peak - + + Filter 2 enabled + Filter 2 vklopljen - - Use absolute value of the input - + + Filter 2 type + Filter 2 vrsta - - Left/Right - + + Cutoff frequency 2 + Frekvenca za odrez 2 - - Compress left and right audio - + + Q/Resonance 2 + Q/resonanca 2 - - Mid/Side - + + Gain 2 + Jakost 2 - - Compress mid and side audio - + + + Low-pass + Nizkoprepustni - - Compressor - + + + Hi-pass + Visokoprepustni - - Compress the audio - + + + Band-pass csg + Pasovno-prepustni csg - - Limiter - + + + Band-pass czpg + Pasovno-prepustni czpg - - Set Ratio to infinity (is not guaranteed to limit audio volume) - + + + Notch + Zareza - - Unlinked - + + + All-pass + Vse-prepustni - - Compress each channel separately - + + + Moog + Moog - - Maximum - + + + 2x Low-pass + 2×nizkoprepustni - - Compress based on the loudest channel - + + + RC Low-pass 12 dB/oct + RC nizkoprepustni 12dB/okt - - Average - + + + RC Band-pass 12 dB/oct + RC pasovno-prepustni 12dB/okt - - Compress based on the averaged channel volume - + + + RC High-pass 12 dB/oct + RC visokoprepustni 12dB/okt - - Minimum - + + + RC Low-pass 24 dB/oct + RC nizkoprepustni 24dB/okt - - Compress based on the quietest channel - + + + RC Band-pass 24 dB/oct + RC nizkoprepustni 24dB/okt - - Blend - + + + RC High-pass 24 dB/oct + RC nizkoprepustni 24dB/okt - - Blend between stereo linking modes - + + + Vocal Formant + Formant vokala - - Auto Makeup Gain - + + + 2x Moog + 2x Moog - - Automatically change makeup gain depending on threshold, knee, and ratio settings - + + + SV Low-pass + SV nizkoprepustni - - - Soft Clip - + + + SV Band-pass + SV pasovnoprepustni - - Play the delta signal - + + + SV High-pass + SV visokoprepustni - - Use the compressor's output as the sidechain input - + + + SV Notch + SV zareza - - Lookahead Enabled - + + + Fast Formant + Hitro obrazilo - - Enable Lookahead, which introduces 20 milliseconds of latency - + + + Tripole + Tripolarno - CompressorControls + lmms::DynProcControls - - Threshold - + + Input gain + Vhodna jakost - - Ratio - razmerje + + Output gain + Izhodna jakost - - Attack - + + Attack time + Čas napada - - Release - Prepustitev + + Release time + Čas spusta - - Knee - + + Stereo mode + Stereo način + + + lmms::Effect - - Hold - + + Effect enabled + Učinek vključen - - Range - + + Wet/Dry mix + Surov/obogaten miks - - RMS Size - + + Gate + Vrata - - Mid/Side - + + Decay + Upad + + + lmms::EffectChain - - Peak Mode - + + Effects enabled + Učinki vklopljeni + + + lmms::Engine - - Lookahead Length - + + Generating wavetables + Ustvarjanje tabel valovnih oblik - - Input Balance - + + Initializing data structures + Vzpostavljanje podatkovnih struktur - - Output Balance - + + Opening audio and midi devices + Odpiranje zvočnih in midi naprav - - Limiter - + + Launching audio engine threads + Zagoni niti zvočnega pogona + + + lmms::EnvelopeAndLfoParameters - - Output Gain - + + Env pre-delay + Ovoj pred-zamik - - Input Gain - + + Env attack + Ovoj napad - - Blend - + + Env hold + Ovoj zadrži - - Stereo Balance - + + Env decay + Ovoj upad - - Auto Makeup Gain - + + Env sustain + Ovoj zadrži - - Audition - + + Env release + Ovoj spust - - Feedback - + + Env mod amount + Ovoj mod količina - - Auto Attack - + + LFO pre-delay + NFO - - Auto Release - + + LFO attack + NFO napad - - Lookahead - + + LFO frequency + NFO frekvenca - - Tilt - + + LFO mod amount + NFO mod količina - - Tilt Frequency - + + LFO wave shape + NFO valovna oblika - - Stereo Link - + + LFO frequency x 100 + NFO frekvenca × 100 - - Mix - + + Modulate env amount + Modulacija ovoja količina - - - Controller - - Controller %1 + + Sample not found - ControllerConnectionDialog - - - Connection Settings - - + lmms::EqControls - - MIDI CONTROLLER - + + Input gain + Vhodna jakost - - Input channel - + + Output gain + Izhodna jakost - - CHANNEL - + + Low-shelf gain + Spodnja ojačitev - - Input controller - + + Peak 1 gain + Vrh 1 jakost - - CONTROLLER - + + Peak 2 gain + Vrh 2 jakost - - - Auto Detect - + + Peak 3 gain + Vrh 3 jakost - - MIDI-devices to receive MIDI-events from - + + Peak 4 gain + Vrh 4 jakost - - USER CONTROLLER - + + High-shelf gain + Zgornja ojačitev - - MAPPING FUNCTION - + + HP res + HP loč - - OK - V redu + + Low-shelf res + Spodnja loč - - Cancel - Preklic + + Peak 1 BW + Vrh 1 PŠ - - LMMS - LMMS + + Peak 2 BW + Vrh 2 PŠ - - Cycle Detected. - + + Peak 3 BW + Vrh 3 PŠ - - - ControllerRackView - - Controller Rack - + + Peak 4 BW + Vrh 4 PŠ - - Add - + + High-shelf res + Zgornja loč - - Confirm Delete - + + LP res + NP loč - - Confirm delete? There are existing connection(s) associated with this controller. There is no way to undo. - Naj res izbrišem? Obstaja(-jo) povezava(-e) v zvezi s tem krmilnikom. Razveljavitve ni. + + HP freq + VP frek - - - ControllerView - - Controls - + + Low-shelf freq + Spodnja frek - - Rename controller - + + Peak 1 freq + Vrh 1 frek - - Enter the new name for this controller - + + Peak 2 freq + Vrh 2 frek - - LFO - + + Peak 3 freq + Vrh 3 frek - - &Remove this controller - + + Peak 4 freq + Vrh 4 frek - - Re&name this controller - + + High-shelf freq + Zgornja frek - - - CrossoverEQControlDialog - - Band 1/2 crossover: - + + LP freq + NP frek - - Band 2/3 crossover: - + + HP active + VP aktiven - - Band 3/4 crossover: - + + Low-shelf active + Spodnji aktiven - - Band 1 gain - + + Peak 1 active + Vrh 1 aktiven - - Band 1 gain: - + + Peak 2 active + Vrh 2 aktiven - - Band 2 gain - + + Peak 3 active + Vrh 3 aktiven - - Band 2 gain: - + + Peak 4 active + Vrh 4 aktiven - - Band 3 gain - + + High-shelf active + Zgornji aktiven - - Band 3 gain: - + + LP active + NP aktiven - - Band 4 gain - + + LP 12 + NP 12 - - Band 4 gain: - + + LP 24 + NP 24 - - Band 1 mute - + + LP 48 + NP 48 - - Mute band 1 - + + HP 12 + VP 12 - - Band 2 mute - + + HP 24 + VP 24 - - Mute band 2 - + + HP 48 + VP 48 - - Band 3 mute - + + Low-pass type + Vrsta nizkoprepustnega - - Mute band 3 - + + High-pass type + Vrsta visokoprepustnega - - Band 4 mute - + + Analyse IN + Analiza v - - Mute band 4 - + + Analyse OUT + Analiza iz - DelayControls + lmms::FlangerControls - + Delay samples - - - - - Feedback - + Zamik vzorcev - + LFO frequency - + NFO frekvenca - - LFO amount + + Amount - - Output gain - + + Stereo phase + Stereo faza - - - DelayControlsDialog - - DELAY + + Feedback - - Delay time - + + Noise + Šum - - FDBK - + + Invert + Inverzno + + + lmms::FreeBoyInstrument - - Feedback amount - + + Sweep time + Čas preleta - - RATE - + + Sweep direction + Smer preleta - - LFO frequency - + + Sweep rate shift amount + Stopnja premika preleta - - AMNT - + + + Wave pattern duty cycle + Cikelj izvajanja valovne matrike - - LFO amount - + + Channel 1 volume + Kanal 1 glasnost - - Out gain - + + + + Volume sweep direction + Smer preleta glasnosti - - Gain - + + + + Length of each step in sweep + Dolžina vsakega koraka preleta - - - Dialog - - Add JACK Application - + + Channel 2 volume + Kanal 2 glasnost - - Note: Features not implemented yet are greyed out - + + Channel 3 volume + Kanal 3 glasnost - - Application - + + Channel 4 volume + Kanal 4 glasnost - - Name: - + + Shift Register width + Pomik širine registra - - Application: - + + Right output level + Desni izhodni nivo - - From template - + + Left output level + Levi izhodni nivo - - Custom - + + Channel 1 to SO2 (Left) + Kanal 1 na SO2 (levi) - - Template: - + + Channel 2 to SO2 (Left) + Kanal 2 na SO2 (levi) - - Command: - + + Channel 3 to SO2 (Left) + Kanal 3 na SO2 (levi) - - Setup - + + Channel 4 to SO2 (Left) + Kanal 4 na SO2 (levi) - - Session Manager: - + + Channel 1 to SO1 (Right) + Kanal 1 na SO1 (desni) - - None - + + Channel 2 to SO1 (Right) + Kanal 2 na SO1 (desni) - - Audio inputs: - + + Channel 3 to SO1 (Right) + Kanal 3 na SO1 (desni) - - MIDI inputs: - + + Channel 4 to SO1 (Right) + Kanal 4 na SO1 (desni) - - Audio outputs: - + + Treble + Visoki - - MIDI outputs: - + + Bass + Bas + + + lmms::GigInstrument - - Take control of main application window - + + Bank + Tabela - - Workarounds - + + Patch + Program - - Wait for external application start (Advanced, for Debug only) - + + Gain + Jakost + + + lmms::GranularPitchShifterControls - - Capture only the first X11 Window + + Pitch - - Use previous client output buffer as input for the next client + + Grain Size - - Simulate 16 JACK MIDI outputs, with MIDI channel as port index + + Spray - - Error here + + Jitter - - Carla Control - Connect + + Twitch - - Remote setup + + Pitch Stereo Spread - - UDP Port: + + Spray Stereo - - Remote host: + + Shape - - TCP Port: + + Fade Length - - Reported host + + Feedback - - Automatic + + Minimum Allowed Latency - - Custom: + + Prefilter - - In some networks (like USB connections), the remote system cannot reach the local network. You can specify here which hostname or IP to make the remote Carla connect to. -If you are unsure, leave it as 'Automatic'. + + Density - - Set value + + Glide - - TextLabel + + Ring Buffer Length - - Scale Points + + 5 Seconds - - - DriverSettingsW - - Driver Settings + + 10 Seconds (Size) - - Device: + + 40 Seconds (Size and Pitch) - - Buffer size: + + 40 Seconds (Size and Spray and Jitter) - - Sample rate: + + 120 Seconds (All of the above) + + + lmms::InstrumentFunctionArpeggio - - Triple buffer - + + Arpeggio + Arpeggio - - Show Driver Control Panel - + + Arpeggio type + Vrsta arpeggia - - Restart the engine to load the new settings - + + Arpeggio range + Razpon arpeggia - - - DualFilterControlDialog - - - FREQ - + + Note repeats + Ponavljanja not - - - Cutoff frequency - + + Cycle steps + Krožni koraki - - - RESO - + + Skip rate + Stopnja preskoka - - - Resonance - + + Miss rate + Stopnja zgrešitev - - - GAIN - + + Arpeggio time + Čas arpeggia - - - Gain - + + Arpeggio gate + Vrata arpeggia - - MIX - + + Arpeggio direction + Smer arpeggia - - Mix - + + Arpeggio mode + Način arpeggia - - Filter 1 enabled - + + Up + Gor - - Filter 2 enabled - + + Down + Dol - - Enable/disable filter 1 - + + Up and down + Gor in dol - - Enable/disable filter 2 - + + Down and up + Dol in gor - - - DualFilterControls - - Filter 1 enabled - + + Random + Naključno - - Filter 1 type - + + Free + Prosto - - Cutoff frequency 1 - + + Sort + Razvrsti - - Q/Resonance 1 - + + Sync + Sinhroniziraj + + + lmms::InstrumentFunctionNoteStacking - - Gain 1 - + + Chords + Akordi - - Mix - + + Chord type + Vrsta akorda - - Filter 2 enabled - + + Chord range + Razpon akorda + + + lmms::InstrumentSoundShaping - - Filter 2 type - + + Envelopes/LFOs + Oblika krivulje/NFOji - - Cutoff frequency 2 - + + Filter type + Vrsta filtra - - Q/Resonance 2 - + + Cutoff frequency + Frekvenca rezanja - - Gain 2 - + + Q/Resonance + Q/resonanca - - + Low-pass - + Nizkoprepustni - - + Hi-pass - + Visokoprepustni - - + Band-pass csg - + Pasovno-prepustni csg - - + Band-pass czpg - + Pasovno-prepustni czpg - - + Notch - + Zareza - - + All-pass - + Vse-prepustni - - + Moog - + Moog - - + 2x Low-pass - + 2×nizkoprepustni - - + RC Low-pass 12 dB/oct - + RC nizkoprepustni 12dB/okt - - + RC Band-pass 12 dB/oct - + RC pasovno-prepustni 12dB/okt - - + RC High-pass 12 dB/oct - + RC visokoprepustni 12dB/okt - - + RC Low-pass 24 dB/oct - + RC nizkoprepustni 24dB/okt - - + RC Band-pass 24 dB/oct - + RC nizkoprepustni 24dB/okt - - + RC High-pass 24 dB/oct - + RC nizkoprepustni 24dB/okt - - + Vocal Formant - + Formant vokala - - + 2x Moog - + 2x Moog - - + SV Low-pass - + SV nizkoprepustni - - + SV Band-pass - + SV pasovnoprepustni - - + SV High-pass - + SV visokoprepustni - - + SV Notch - + SV zareza - - + Fast Formant - + Hitro obrazilo - - + Tripole - + Tripolarno - Editor + lmms::InstrumentTrack - - Transport controls - + + + unnamed_track + neimenovana_steza - - Play (Space) - + + Base note + Osnovna nota - - Stop (Space) - + + First note + Prva nota - - Record - + + Last note + Zadnja nota - - Record while playing - + + Volume + Glasnost - - Toggle Step Recording - + + Panning + Panorama - - - Effect - - Effect enabled - + + Pitch + Višina - - Wet/Dry mix - Mokro/Suho + + Pitch range + Razpon višine - - Gate - + + Mixer channel + Mešalni kanal - - Decay - + + Master pitch + Glavna višina - - - EffectChain - - Effects enabled - + + Enable/Disable MIDI CC + Vklopi/Izklopi MIDI CC - - - EffectRackView - - EFFECTS CHAIN - + + CC Controller %1 + CC kontroler %1 - - Add effect - + + + Default preset + Privzeta predloga - EffectSelectDialog - - - Add effect - - - - - - Name - Ime - - - - Type - - - - - Description - - + lmms::Keymap - - Author - + + empty + prazno - EffectView - - - On/Off - - - - - W/D - - + lmms::KickerInstrument - - Wet Level: - - - - - DECAY - - - - - Time: - - - - - GATE - - - - - Gate: - - - - - Controls - + + Start frequency + Začetna frekvenca - - Move &up - + + End frequency + Končna frekvenca - - Move &down - + + Length + Dolžina - - &Remove this plugin - + + Start distortion + Začetno popačenje - - - EnvelopeAndLfoParameters - - Env pre-delay - + + End distortion + Končno popačenje - - Env attack - + + Gain + Jakost - - Env hold - + + Envelope slope + Nagib ovoja - - Env decay - + + Noise + Šum - - Env sustain - + + Click + Klik - - Env release - + + Frequency slope + Nagib frekvence - - Env mod amount - + + Start from note + Začni z note - - LFO pre-delay - + + End to note + Končaj na noti + + + lmms::LOMMControls - - LFO attack + + Depth - - LFO frequency + + Time - - LFO mod amount + + Input Volume - - LFO wave shape + + Output Volume - - LFO frequency x 100 + + Upward Depth - - Modulate env amount + + Downward Depth - - - EnvelopeAndLfoView - - - DEL + + High/Mid Split - - - Pre-delay: + + Mid/Low Split - - - ATT + + Enable High/Mid Split - - - Attack: + + Enable Mid/Low Split - - HOLD + + Enable High Band - - Hold: + + Enable Mid Band - - DEC + + Enable Low Band - - Decay: + + High Input Volume - - SUST + + Mid Input Volume - - Sustain: + + Low Input Volume - - REL + + High Output Volume - - Release: + + Mid Output Volume - - - AMT + + Low Output Volume - - - Modulation amount: + + Above Threshold High - - SPD + + Above Threshold Mid - - Frequency: + + Above Threshold Low - - FREQ x 100 + + Above Ratio High - - Multiply LFO frequency by 100 + + Above Ratio Mid - - MODULATE ENV AMOUNT + + Above Ratio Low - - Control envelope amount by this LFO + + Below Threshold High - - ms/LFO: + + Below Threshold Mid - - Hint + + Below Threshold Low - - Drag and drop a sample into this window. + + Below Ratio High - - - EqControls - - Input gain + + Below Ratio Mid - - Output gain + + Below Ratio Low - - Low-shelf gain + + Attack High - - Peak 1 gain + + Attack Mid - - Peak 2 gain + + Attack Low - - Peak 3 gain + + Release High - - Peak 4 gain + + Release Mid - - High-shelf gain + + Release Low - - HP res + + RMS Time - - Low-shelf res + + Knee - - Peak 1 BW + + Range - - Peak 2 BW + + Balance - - Peak 3 BW + + Scale output volume with Depth - - Peak 4 BW + + Stereo Link - - High-shelf res + + Auto Time - - LP res + + Mix - - HP freq + + Feedback - - Low-shelf freq + + Mid/Side - - Peak 1 freq + + Lookahead - - Peak 2 freq + + Lookahead Length - - Peak 3 freq + + Suppress upward compression for side band + + + lmms::LadspaControl - - Peak 4 freq - + + Link channels + Združi kanale + + + lmms::LadspaEffect - - High-shelf freq - + + Unknown LADSPA plugin %1 requested. + Zahtevan je neznan vtičnik LADSPA %1 + + + lmms::Lb302Synth - - LP freq - + + VCF Cutoff Frequency + VCF frekvenca rezanja - - HP active - + + VCF Resonance + VCF resonanca - - Low-shelf active - + + VCF Envelope Mod + VCF ovoj mod - - Peak 1 active - + + VCF Envelope Decay + VCF ovoj upad - - Peak 2 active - + + Distortion + Popačenje - - Peak 3 active - + + Waveform + Valovna oblika - - Peak 4 active - + + Slide Decay + Drseči upad - - High-shelf active - + + Slide + Drsenje - - LP active - + + Accent + Poudarek - - LP 12 - + + Dead + Mrtvo - - LP 24 - + + 24dB/oct Filter + 24dB/okt filter + + + lmms::LfoController - - LP 48 - + + LFO Controller + NFO kontroler - - HP 12 - + + Base value + Osnovna vrednost - - HP 24 - + + Oscillator speed + Hitrost oscilatorja - - HP 48 - + + Oscillator amount + Količina oscilatorja - - Low-pass type - + + Oscillator phase + Faza oscilatorja - - High-pass type - + + Oscillator waveform + Valovna oblika oscilatorja - - Analyse IN - + + Frequency Multiplier + Množilnik frekvence - - Analyse OUT + + Sample not found - EqControlsDialog + lmms::MalletsInstrument - - HP - + + Hardness + Trdota - - Low-shelf - + + Position + Položaj - - Peak 1 - + + Vibrato gain + Jakost vibrata - - Peak 2 - + + Vibrato frequency + Frekvenca vibrata - - Peak 3 - + + Stick mix + Palični miks - - Peak 4 - + + Modulator + Modulator - - High-shelf - + + Crossfade + Navzkrižno - - LP - + + LFO speed + NFO hitrost - - Input gain - + + LFO depth + NFO globina - - - - Gain - + + ADSR + ADSR - - Output gain - + + Pressure + Pritisk - - Bandwidth: - + + Motion + Gibanje - - Octave - + + Speed + Hitrost - - Resonance : - + + Bowed + Godalo - - Frequency: + + Instrument - - LP group - + + Spread + Razpršeno - - HP group + + Randomness - - - EqHandle - - Reso: - + + Marimba + Marimba - - BW: - + + Vibraphone + Vibrafon - - - Freq: - + + Agogo + Agogo - - - ExportProjectDialog - - Export project - Izvozi projekt + + Wood 1 + Les 1 + + + + Reso + Reso + + + + Wood 2 + Les 2 + + + + Beats + Dobe + + + + Two fixed + Dva fiksirana + + + + Clump + Teptanje - - Export as loop (remove extra bar) - + + Tubular bells + Cevasti zvonovi - - Export between loop markers - + + Uniform bar + Uniformni takt - - Render Looped Section: - + + Tuned bar + Uglašen takt - - time(s) - + + Glass + Steklo - - File format settings - + + Tibetan bowl + Tibetanska skleda + + + lmms::MeterModel - - File format: - + + Numerator + Števec - - Sampling rate: - + + Denominator + Imenovalec + + + lmms::Microtuner - - 44100 Hz - + + Microtuner + Mikro-uglaševalec - - 48000 Hz - + + Microtuner on / off + Mikro-uglaševalec vklop / izklop - - 88200 Hz - + + Selected scale + Izbrana lestvica - - 96000 Hz - + + Selected keyboard mapping + Izbrano mapiranje tipkovnice + + + lmms::MidiController - - 192000 Hz - + + MIDI Controller + MIDI kontroler - - Bit depth: - + + unnamed_midi_controller + neimenovan_midi_kontroler + + + lmms::MidiImport - - 16 Bit integer - + + + Setup incomplete + Namestitev ni končana - - 24 Bit integer - + + You have not set up a default soundfont in the settings dialog (Edit->Settings). Therefore no sound will be played back after importing this MIDI file. You should download a General MIDI soundfont, specify it in settings dialog and try again. + V nastavitvenem dialogu niste nastavili privzetega soundfonta (Uredi->Nastavitve). Zato uvozžene MIDI datoteke ne bodo predvajane. Prenesite General MIDI soundfont in ga izberite v nastavitvah, nato pa znova poskusite. - - 32 Bit float - + + You did not compile LMMS with support for SoundFont2 player, which is used to add default sound to imported MIDI files. Therefore no sound will be played back after importing this MIDI file. + LMMS ni bil preveden s podporo za SoundFont2 predvajalnik, ki je privzet za določanje zvoka uvoženih MIDI datotek. Zato uvožene MIDi datoteke ne bodo imele zvoka ob predvajanju. - - Stereo mode: - + + MIDI Time Signature Numerator + Števec MIDI časovne oznake - - Mono - + + MIDI Time Signature Denominator + Imenovalec MIDI časovne oznake - - Stereo - + + Numerator + Števec - - Joint stereo - + + Denominator + Imenovalec - - Compression level: - + + + Tempo + Tempo - - Bitrate: - + + Track + Steza + + + lmms::MidiJack - - 64 KBit/s - + + JACK server down + When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (title) + JACK strežnik ne deluje - - 128 KBit/s - + + The JACK server seems to be shuted down. + When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (dialog message) + JACK server je izklopljen. + + + lmms::MidiPort - - 160 KBit/s - + + Input channel + Vhodni kanal - - 192 KBit/s - + + Output channel + Izhodni kanal - - 256 KBit/s - + + Input controller + Vhodni kontroler - - 320 KBit/s - + + Output controller + Izhodni kontroler - - Use variable bitrate - + + Fixed input velocity + Stalna vhodna hitrost - - Quality settings - + + Fixed output velocity + Stalna izhodna hitrost - - Interpolation: - + + Fixed output note + Stalna izhodna nota - - Zero order hold - + + Output MIDI program + Izhodni MIDI program - - Sinc worst (fastest) - + + Base velocity + Osnovna hitrost - - Sinc medium (recommended) - + + Receive MIDI-events + Prejemanje MIDI-dogodkov - - Sinc best (slowest) - + + Send MIDI-events + Pošiljanje MIDI-dogodkov + + + lmms::Mixer - - Oversampling: - + + Master + Glavni master - - 1x (None) - + + + + Channel %1 + Kanal %1 - - 2x - + + Volume + Glasnost - - 4x - + + Mute + Utišaj - - 8x - + + Solo + Solo + + + lmms::MixerRoute - - Start - + + + Amount to send from channel %1 to channel %2 + Količina, ki na bo poslana s kanala %1 na kanal %2 + + + lmms::MonstroInstrument - - Cancel - Preklic + + Osc 1 volume + OSC 1 glasnost - - Could not open file - + + Osc 1 panning + Osc 1 panorama - - Could not open file %1 for writing. -Please make sure you have write permission to the file and the directory containing the file and try again! - + + Osc 1 coarse detune + Osc 1 groba razglasitev - - Export project to %1 - Izvozi projekt v %1 + + Osc 1 fine detune left + Osc 1 fina razglasitev levo - - ( Fastest - biggest ) - + + Osc 1 fine detune right + Osc 1 fina razglasitev desno - - ( Slowest - smallest ) - + + Osc 1 stereo phase offset + Osc 1 odmik stereo faze - - Error - + + Osc 1 pulse width + Osc 1 širina pulza - - Error while determining file-encoder device. Please try to choose a different output format. - + + Osc 1 sync send on rise + Osc 1 pošlji sinh ob rasti - - Rendering: %1% - + + Osc 1 sync send on fall + Osc 1 pošlji sinh ob padcu - - - Fader - - Set value - + + Osc 2 volume + OSC 2 glasnost - - Please enter a new value between %1 and %2: - Prosim vpišite novo vrednost med %1 in %2: + + Osc 2 panning + Osc 2 panorama - - - FileBrowser - - User content - + + Osc 2 coarse detune + Osc 2 groba razglasitev - - Factory content - + + Osc 2 fine detune left + Osc 2 fina razglasitev levo - - Browser - Brskalnik + + Osc 2 fine detune right + Osc 2 fina razglasitev desno - - Search - + + Osc 2 stereo phase offset + Osc 2 odmik stereo faze - - Refresh list - + + Osc 2 waveform + OSC 2 valovna oblika + + + + Osc 2 sync hard + Osc 2 trda sinhr - - - FileBrowserTreeWidget - - Send to active instrument-track - + + Osc 2 sync reverse + Osc 2 obratna sinhr - - Open containing folder - + + Osc 3 volume + OSC 3 glasnost - - Song Editor - Urejevalnik skladbe + + Osc 3 panning + Osc 3 panorama - - BB Editor - + + Osc 3 coarse detune + Osc 3 groba razglasitev - - Send to new AudioFileProcessor instance - + + Osc 3 Stereo phase offset + Osc 3 odmik stereo faze - - Send to new instrument track - + + Osc 3 sub-oscillator mix + Osc3 miks sub-oscilatorja - - (%2Enter) - + + Osc 3 waveform 1 + Osc 3 valovna oblika 1 - - Send to new sample track (Shift + Enter) - + + Osc 3 waveform 2 + Osc 3 valovna oblika 2 - - Loading sample - + + Osc 3 sync hard + Osc 3 trda sinhr - - Please wait, loading sample for preview... - + + Osc 3 Sync reverse + Osc 3 obratna sinhr - - Error - + + LFO 1 waveform + NFO 1 valovna oblika - - %1 does not appear to be a valid %2 file - + + LFO 1 attack + NFO 1 napad - - --- Factory files --- - + + LFO 1 rate + LFO 1 stopnja - - - FlangerControls - - Delay samples - + + LFO 1 phase + NFO 1 faza - - LFO frequency - + + LFO 2 waveform + NFO 2 valovna oblika - - Seconds - + + LFO 2 attack + NFO 2 napad - - Stereo phase - + + LFO 2 rate + LFO 2 stopnja - - Regen - + + LFO 2 phase + NFO 2 faza - - Noise - + + Env 1 pre-delay + Ovoj 1 pred-zamik - - Invert - + + Env 1 attack + Ovoj 1 napad - - - FlangerControlsDialog - - DELAY - + + Env 1 hold + Ovoj 1 zadrži - - Delay time: - + + Env 1 decay + Env 1 upad - - RATE - + + Env 1 sustain + Ovoj 1 zadrži - - Period: - + + Env 1 release + Ovoj 1 spust - - AMNT - + + Env 1 slope + Ovoj 1 nagib - - Amount: - + + Env 2 pre-delay + Ovoj 2 pred-zamik - - PHASE - + + Env 2 attack + Ovoj 2 napad - - Phase: - + + Env 2 hold + Ovoj 2 zadrži - - FDBK - + + Env 2 decay + Env 2 upad - - Feedback amount: - + + Env 2 sustain + Ovoj 2 zadrži - - NOISE - + + Env 2 release + Ovoj 2 spust - - White noise amount: - + + Env 2 slope + Ovoj 2 nagib - - Invert - + + Osc 2+3 modulation + Osc 2+3 modulacija - - - FreeBoyInstrument - - Sweep time - + + Selected view + Izbrani prikaz - - Sweep direction - + + Osc 1 - Vol env 1 + Osc 1 - glsn ovoj 1 - - Sweep rate shift amount - + + Osc 1 - Vol env 2 + Osc 1 - glsn ovoj 2 - - - Wave pattern duty cycle - + + Osc 1 - Vol LFO 1 + Osc 1 - glsn NFO 1 - - Channel 1 volume - + + Osc 1 - Vol LFO 2 + Osc 1 - glsn NFO 2 - - - - Volume sweep direction - + + Osc 2 - Vol env 1 + Osc 2 - glsn ovoj 1 - - - - Length of each step in sweep - + + Osc 2 - Vol env 2 + Osc 2 - glsn ovoj 2 - - Channel 2 volume - + + Osc 2 - Vol LFO 1 + Osc 2 - glsn NFO 1 - - Channel 3 volume - + + Osc 2 - Vol LFO 2 + Osc 2 - glsn NFO 2 - - Channel 4 volume - + + Osc 3 - Vol env 1 + Osc 3 - glsn ovoj 1 - - Shift Register width - + + Osc 3 - Vol env 2 + Osc 3 - glsn ovoj 2 - - Right output level - + + Osc 3 - Vol LFO 1 + Osc 3 - glsn NFO 1 - - Left output level - + + Osc 3 - Vol LFO 2 + Osc 3 - glsn NFO 2 - - Channel 1 to SO2 (Left) - + + Osc 1 - Phs env 1 + Osc 1 - faz ovoj 1 - - Channel 2 to SO2 (Left) - + + Osc 1 - Phs env 2 + Osc 1 - faz ovoj 2 - - Channel 3 to SO2 (Left) - + + Osc 1 - Phs LFO 1 + Osc 1 - faz NFO 1 - - Channel 4 to SO2 (Left) - + + Osc 1 - Phs LFO 2 + Osc 1 - faz NFO 2 - - Channel 1 to SO1 (Right) - + + Osc 2 - Phs env 1 + Osc 2 - faz ovoj 1 - - Channel 2 to SO1 (Right) - + + Osc 2 - Phs env 2 + Osc 2 - faz ovoj 2 - - Channel 3 to SO1 (Right) - + + Osc 2 - Phs LFO 1 + Osc 2 - faz LFO 1 - - Channel 4 to SO1 (Right) - + + Osc 2 - Phs LFO 2 + Osc 2 - faz LFO 2 - - Treble - + + Osc 3 - Phs env 1 + Osc 3 - faz ovoj 1 - - Bass - + + Osc 3 - Phs env 2 + Osc 3 - faz ovoj 2 - - - FreeBoyInstrumentView - - Sweep time: - + + Osc 3 - Phs LFO 1 + Osc 3 - faz NFO 1 - - Sweep time - + + Osc 3 - Phs LFO 2 + Osc 3 - faz NFO 2 - - Sweep rate shift amount: - + + Osc 1 - Pit env 1 + Osc 1 - viš ovoj 1 - - Sweep rate shift amount - + + Osc 1 - Pit env 2 + Osc 1 - viš ovoj 2 - - - Wave pattern duty cycle: - + + Osc 1 - Pit LFO 1 + OSC 1 - viš NFO 1 - - - Wave pattern duty cycle - + + Osc 1 - Pit LFO 2 + Osc 1 - viš LFO 2 - - Square channel 1 volume: - + + Osc 2 - Pit env 1 + Osc 2 - viš ovoj 1 - - Square channel 1 volume - + + Osc 2 - Pit env 2 + Osc 2 - viš ovoj 2 - - - - Length of each step in sweep: - + + Osc 2 - Pit LFO 1 + Osc 2 - viš NFO 1 - - - - Length of each step in sweep - + + Osc 2 - Pit LFO 2 + Osc 2 - viš NFO 2 - - Square channel 2 volume: - + + Osc 3 - Pit env 1 + Osc 3 - viš ovoj 1 - - Square channel 2 volume - + + Osc 3 - Pit env 2 + Osc 3 - viš ovoj 2 - - Wave pattern channel volume: - + + Osc 3 - Pit LFO 1 + Osc 3 - viš NFO 1 - - Wave pattern channel volume - + + Osc 3 - Pit LFO 2 + Osc 3 - viš LFO 2 - - Noise channel volume: - + + Osc 1 - PW env 1 + Osc 1 - PW ovoj 1 - - Noise channel volume - + + Osc 1 - PW env 2 + Osc 1 - PW ovoj 2 - - SO1 volume (Right): - + + Osc 1 - PW LFO 1 + Osc 1 - PW NFO 1 - - SO1 volume (Right) - + + Osc 1 - PW LFO 2 + Osc 1 - PW NFO 2 - - SO2 volume (Left): - + + Osc 3 - Sub env 1 + Osc 3 - sub ovoj 1 - - SO2 volume (Left) - + + Osc 3 - Sub env 2 + Osc 3 - sub ovoj 2 - - Treble: - + + Osc 3 - Sub LFO 1 + Osc 3 - sub NFO 1 - - Treble - + + Osc 3 - Sub LFO 2 + Osc 3 - sub NFO 2 - - Bass: - + + + Sine wave + Sinusna oblika - - Bass - + + Bandlimited Triangle wave + Pasovno omejen trikotni val - - Sweep direction - + + Bandlimited Saw wave + Pasovno omejen žagasti val - - - - - - Volume sweep direction - + + Bandlimited Ramp wave + Pasovno omejen rampasti val - - Shift register width - + + Bandlimited Square wave + Pasovno omejen pravokotni val - - Channel 1 to SO1 (Right) - + + Bandlimited Moog saw wave + Pasovno omejen Moog žagasti val - - Channel 2 to SO1 (Right) - + + + Soft square wave + Mehak pravokotni val - - Channel 3 to SO1 (Right) - + + Absolute sine wave + Absolutni sinusni val - - Channel 4 to SO1 (Right) - + + + Exponential wave + Eksponentni val - - Channel 1 to SO2 (Left) - + + White noise + Beli šum - - Channel 2 to SO2 (Left) - + + Digital Triangle wave + Digitalni trikotni val - - Channel 3 to SO2 (Left) - + + Digital Saw wave + Digitalni žagasti val - - Channel 4 to SO2 (Left) - + + Digital Ramp wave + Digitalni rampasti val - - Wave pattern graph - + + Digital Square wave + Digitalni pravokotni val - - - MixerLine - - Channel send amount - + + Digital Moog saw wave + Digitalni Moog žagasti val - - Move &left - + + Triangle wave + Trikotna oblika - - Move &right - + + Saw wave + Žagasta oblika - - Rename &channel - + + Ramp wave + Rampasti val - - R&emove channel - + + Square wave + Pravokotna oblika - - Remove &unused channels - + + Moog saw wave + Moog pravokotni val - - Set channel color - + + Abs. sine wave + Abs. sinusni val - - Remove channel color - + + Random + Naključno - - Pick random channel color - + + Random smooth + Naključno glajenje - MixerLineLcdSpinBox + lmms::NesInstrument - - Assign to: + + Channel 1 enable - - New mixer Channel - + + Channel 1 coarse detune + Kanal 1 groba razglasitev - - - Mixer - - Master - + + Channel 1 volume + Kanal 1 glasnost - - - - Channel %1 + + Channel 1 envelope enable - - Volume - Glasnost + + Channel 1 envelope loop + - - Mute - Mute + + Channel 1 envelope length + Kanal 1 dolžina ovoja - - Solo - Solist + + Channel 1 duty cycle + Kanal 1 cikelj izvajanja - - - MixerView - - Mixer + + Channel 1 sweep enable - - Fader %1 - + + Channel 1 sweep amount + Kanal 1 količina preleta - - Mute - Mute + + Channel 1 sweep rate + Kanal 1 stopnja preleta - - Mute this mixer channel + + Channel 2 enable - - Solo - Solist + + Channel 2 coarse detune + - - Solo mixer channel + + Channel 2 volume - - - MixerRoute - - - Amount to send from channel %1 to channel %2 + + Channel 2 envelope enable - - - GigInstrument - - Bank + + Channel 2 envelope loop - - Patch - + + Channel 2 envelope length + Kanal 2 dolžina ovoja - - Gain - + + Channel 2 duty cycle + Kanal 2 cikelj izvajanja - - - GigInstrumentView - - - Open GIG file + + Channel 2 sweep enable - - Choose patch - + + Channel 2 sweep amount + Kanal 2 količina preleta - - Gain: - + + Channel 2 sweep rate + Kanal 2 stopnja preleta - - GIG Files (*.gig) + + Channel 3 enable - - - GuiApplication - - Working directory - + + Channel 3 coarse detune + Kanal 3 groba razglasitev - - The LMMS working directory %1 does not exist. Create it now? You can change the directory later via Edit -> Settings. - + + Channel 3 volume + Kanal 3 glasnost - - Preparing UI + + Channel 4 enable - - Preparing song editor - Pripravljam Urejevalnik skladbe + + Channel 4 volume + Kanal 4 glasnost - - Preparing mixer + + Channel 4 envelope enable - - Preparing controller rack + + Channel 4 envelope loop - - Preparing project notes + + Channel 4 envelope length + Kanal 4 dolžina ovoja + + + + Channel 4 noise mode - - Preparing beat/bassline editor + + Channel 4 frequency mode - - Preparing piano roll - Pripravljam Klavirčrtovje + + Channel 4 noise frequency + Kanal 4 frekvenca šuma - - Preparing automation editor + + Channel 4 noise frequency sweep + Kanal 4 šum preleta frekvence + + + + Channel 4 quantize + + + Master volume + Glavna glasnost + + + + Vibrato + Vibrato + - InstrumentFunctionArpeggio + lmms::OpulenzInstrument - - Arpeggio - + + Patch + Program - - Arpeggio type - + + Op 1 attack + Op 1 napad - - Arpeggio range - + + Op 1 decay + Op 1 upad - - Note repeats - + + Op 1 sustain + Op 1 zadrži - - Cycle steps - + + Op 1 release + Op 1 spust - - Skip rate - + + Op 1 level + Op 1 nivo + + + + Op 1 level scaling + Op1 povečava nivoja - - Miss rate - + + Op 1 frequency multiplier + Op 2 množilnik frekvence - - Arpeggio time - + + Op 1 feedback + Op 1 povratna zanka - - Arpeggio gate - + + Op 1 key scaling rate + OP 1 stopnja povečanja ključa - - Arpeggio direction - + + Op 1 percussive envelope + Op 1 tolkalski ovoj - - Arpeggio mode - + + Op 1 tremolo + Op 1 tremolo - - Up - + + Op 1 vibrato + Op 1 vibrato - - Down - + + Op 1 waveform + OP1 valovna oblika - - Up and down - + + Op 2 attack + Op 2 napad - - Down and up - + + Op 2 decay + Op 2 upad - - Random - + + Op 2 sustain + Op 2 zadrži - - Free - + + Op 2 release + Op 2 spust - - Sort - + + Op 2 level + Op 2 nivo - - Sync - + + Op 2 level scaling + Op 2 povečava nivoja - - - InstrumentFunctionArpeggioView - - ARPEGGIO - + + Op 2 frequency multiplier + Op 2 množilnik frekvence - - RANGE - + + Op 2 key scaling rate + OP 2 stopnja povečanja ključa - - Arpeggio range: - + + Op 2 percussive envelope + Op 2 tolkalski ovoj - - octave(s) - + + Op 2 tremolo + Op 2 tremolo - - REP - + + Op 2 vibrato + Op 2 vibrato - - Note repeats: - + + Op 2 waveform + Op 2 valovna oblika - - time(s) - + + FM + FM - - CYCLE - + + Vibrato depth + Globina vibrata - - Cycle notes: - + + Tremolo depth + Globina tremola + + + lmms::OrganicInstrument - - note(s) - + + Distortion + Popačenje - - SKIP - + + Volume + Glasnost + + + lmms::OscillatorObject - - Skip rate: - + + Osc %1 waveform + Osc %1 valovna oblika - - - - % - + + Osc %1 harmonic + Osc %1 harmonično - - MISS - + + + Osc %1 volume + Osc %1 glasnost - - Miss rate: - + + + Osc %1 panning + Osc %1 panorama - - TIME + + Osc %1 stereo detuning - - Arpeggio time: - + + Osc %1 coarse detuning + Osc %1 groba razglasitev - - ms - + + Osc %1 fine detuning left + Osc %1 fina razglasitev levo - - GATE - + + Osc %1 fine detuning right + Osc %1 fina razglasitev desno - - Arpeggio gate: - + + Osc %1 phase-offset + Osc %1 fazni zamik - - Chord: - + + Osc %1 stereo phase-detuning + Osc %1 stereo fazna razglasitev - - Direction: - + + Osc %1 wave shape + Osc %1 oblika signala - - Mode: - + + Modulation type %1 + Vrsta modulacije %1 - InstrumentFunctionNoteStacking + lmms::PatternTrack - - octave - + + Pattern %1 + Matrika %1 - - - Major - + + Clone of %1 + Dvojnik od %1 + + + lmms::PeakController - - Majb5 - + + Peak Controller + Kontroler vrha - - minor - + + Peak Controller Bug + Hrošč kontrolerja vrha - - minb5 - + + Due to a bug in older version of LMMS, the peak controllers may not be connect properly. Please ensure that peak controllers are connected properly and re-save this file. Sorry for any inconvenience caused. + Zaradi hrošča v starejši različici LMMS se kontrolerji vrha morda ne bodo pravilno povezali. Prepričajte se, da so kontrolerji vrha pravilno povezani in ponovno shranite datoteko. Opravičujemo se za nevšečnosti. + + + lmms::PeakControllerEffectControls - - sus2 - + + Base value + Osnovna vrednost - - sus4 - + + Modulation amount + Količina modulacije - - aug - + + Attack + Napad - - augsus4 - + + Release + Spust - - tri - + + Treshold + Prag - - 6 - + + Mute output + Uitšaj izhod - - 6sus4 - + + Absolute value + Absolutna vrednost - - 6add9 - + + Amount multiplicator + Množilnik količine + + + lmms::Plugin - - m6 - + + Plugin not found + Vtičnik ni najden - - m6add9 - + + The plugin "%1" wasn't found or could not be loaded! +Reason: "%2" + Vtičnika "%1" ni bilo mogoče najti oziroma naložiti! +Razlog: "%2" - - 7 - + + Error while loading plugin + Napaka pri nalaganju vtičnika - - 7sus4 - + + Failed to load plugin "%1"! + Napaka pri nalaganju vtičnika "%1"! + + + + lmms::ReverbSCControls + + + Input gain + Vhodna jakost - - 7#5 - + + Size + Velikost - - 7b5 - + + Color + Barva - - 7#9 - + + Output gain + Izhodna jakost + + + lmms::SaControls - - 7b9 - + + Pause + Premor - - 7#5#9 - + + Reference freeze + Zamrznitev reference - - 7#5b9 - + + Waterfall + Vodni slap - - 7b5b9 - + + Averaging + Določanje povprečja - - 7add11 - + + Stereo + Stereo - - 7add13 - + + Peak hold + Zadrži vrh - - 7#11 - + + Logarithmic frequency + Logaritmična frekvenca - - Maj7 - + + Logarithmic amplitude + Logaritmična amplituda - - Maj7b5 - + + Frequency range + Frekvenčni razpon - - Maj7#5 - + + Amplitude range + Razpon amplitude - - Maj7#11 - + + FFT block size + FFT velikost bloka - - Maj7add13 - + + FFT window type + FFT vrsta okna - - m7 - + + Peak envelope resolution + Ločljivost ovoja vrha - - m7b5 - + + Spectrum display resolution + Ločljivost prikaza spektra - - m7b9 - + + Peak decay multiplier + Večkratnik upada vrha - - m7add11 - + + Averaging weight + Povprečje teže - - m7add13 - + + Waterfall history size + Velikost zgodovine Vodnega slapa - - m-Maj7 - + + Waterfall gamma correction + Gamma korekcija Vodnega slapa - - m-Maj7add11 - + + FFT window overlap + FFT okno prekrivanje - - m-Maj7add13 - + + FFT zero padding + FFT nič odmika - - 9 - + + + Full (auto) + Polno (samodejno) - - 9sus4 - + + + + Audible + Slišno - - add9 - + + Bass + Bas - - 9#5 - + + Mids + Srednji - - 9b5 - + + High + Visoka - - 9#11 - + + Extended + Razširjeno - - 9b13 - + + Loud + Glasno - - Maj9 - + + Silent + Tiho - - Maj9sus4 - + + (High time res.) + (Visoka loč. časa) - - Maj9#5 - + + (High freq. res.) + (Visoka loč. frekv.) - - Maj9#11 - + + Rectangular (Off) + Pravokotno (izklopljeno) - - m9 - + + + Blackman-Harris (Default) + Blackman-Harris (privzeto) - - madd9 - + + Hamming + Pretiravanje - - m9b5 - + + Hanning + Hanning + + + lmms::SampleClip - - m9-Maj7 + + Sample not found + + + lmms::SampleTrack - - 11 - + + Volume + Glasnost - - 11b9 - + + Panning + Panorama - - Maj11 - + + Mixer channel + Mešalni kanal - - m11 - + + + Sample track + Steza vzorca + + + lmms::Scale - - m-Maj11 - + + empty + prazno + + + lmms::Sf2Instrument - - 13 - + + Bank + Tabela - - 13#9 - + + Patch + Program - - 13b9 - + + Gain + Jakost - - 13b5b9 - + + Reverb + Odjek - - Maj13 - + + Reverb room size + Velikost prostora odjeka - - m13 - + + Reverb damping + Dušenje odjeka - - m-Maj13 - + + Reverb width + Širina odjeka - - Harmonic minor - + + Reverb level + Nivo odjeka - - Melodic minor - + + Chorus + Kor - - Whole tone - + + Chorus voices + Glasovi kora - - Diminished - + + Chorus level + Nivo kora - - Major pentatonic - + + Chorus speed + Hitrost kora - - Minor pentatonic - + + Chorus depth + Globina kora - - Jap in sen - + + A soundfont %1 could not be loaded. + Soundfont %1 ni bilo mogoče naložiti + + + lmms::SfxrInstrument - - Major bebop - + + Wave + Val + + + lmms::SidInstrument - - Dominant bebop - + + Cutoff frequency + Frekvenca rezanja - - Blues - + + Resonance + Resnonanca - - Arabic - + + Filter type + Vrsta filtra - - Enigmatic - + + Voice 3 off + Glas 3 izklop - - Neopolitan - + + Volume + Glasnost - - Neopolitan minor - + + Chip model + Model čipa + + + lmms::SlicerT - - Hungarian minor + + Note threshold - - Dorian + + FadeOut - - Phrygian + + Original bpm - - Lydian + + Slice snap - - Mixolydian + + BPM sync - - Aeolian + + + slice_%1 - - Locrian + + Sample not found: %1 + + + lmms::Song - - Minor - + + Tempo + Tempo - - Chromatic - + + Master volume + Glavna glasnost - - Half-Whole Diminished - + + Master pitch + Glavna višina - - 5 - 5 + + Aborting project load + Prekinjam nalaganje projekta - - Phrygian dominant - + + Project file contains local paths to plugins, which could be used to run malicious code. + Projektna datoteka vsebuje lokalne poti do vtičnkkov, ki bi lahko vsebovale škodljivo kodo. - - Persian - + + Can't load project: Project file contains local paths to plugins. + Projekta ni mogoče naložiti: Projektna datoteka vsebuje lokalne poti do vtičnikov. - - Chords - + + LMMS Error report + Poročilo o LMMS napaki - - Chord type - + + (repeated %1 times) + (ponovljeno %1 krat) - - Chord range - + + The following errors occurred while loading: + Pri nalaganju je prišlo do naslednjih napak: - InstrumentFunctionNoteStackingView + lmms::StereoEnhancerControls - - STACKING - + + Width + Širina + + + lmms::StereoMatrixControls - - Chord: - + + Left to Left + Levo na levo - - RANGE - + + Left to Right + Levo na desno - - Chord range: - + + Right to Left + Desno na levo - - octave(s) - + + Right to Right + Desno na desno - InstrumentMidiIOView + lmms::Track - - ENABLE MIDI INPUT - + + Mute + Utišaj - - ENABLE MIDI OUTPUT - + + Solo + Solo + + + lmms::TrackContainer - - - CHAN - This string must be be short, its width must be less than * width of LCD spin-box of two digits - + + Couldn't import file + Datoeke ni bilo mogoče uvoziti - - - VELOC - This string must be be short, its width must be less than * width of LCD spin-box of three digits - + + Couldn't find a filter for importing file %1. +You should convert this file into a format supported by LMMS using another software. + Filtra za uvoz %1 ni mogoče najti. +Pretvorite to datoteko v format, ki ga podpira LMMS s pomočjo nekega drugega programa. - - PROG - This string must be be short, its width must be less than the * width of LCD spin-box of three digits - + + Couldn't open file + Ne morem odpreti datoteke - - NOTE - This string must be be short, its width must be less than * width of LCD spin-box of three digits - + + Couldn't open file %1 for reading. +Please make sure you have read-permission to the file and the directory containing the file and try again! + Datoteke %1 ni bilo mogoče odpreti za branje. +Prepričajte se, da imate pravico za branje te datoteke in njeno mapo ter poskusite znova! - - MIDI devices to receive MIDI events from - + + Loading project... + Nalagam projekt... - - MIDI devices to send MIDI events to - + + + Cancel + Prekini - - CUSTOM BASE VELOCITY - + + + Please wait... + Počakajte... - - Specify the velocity normalization base for MIDI-based instruments at 100% note velocity. - + + Loading cancelled + Nalaganje prekinjeno - - BASE VELOCITY - + + Project loading was cancelled. + Nalaganje projekta je bilo prekinjeno. - - - InstrumentTuningView - - MASTER PITCH - + + Loading Track %1 (%2/Total %3) + Nalaganje steze %1 (%2/Skupaj %3) - - Enables the use of master pitch - + + Importing MIDI-file... + Uvažam MIDI datoteko... - InstrumentSoundShaping + lmms::TripleOscillator - - VOLUME + + Sample not found + + + lmms::VecControls - - Volume - Obseg - - - - CUTOFF - + + Display persistence amount + Prikaži količino persistence - - - Cutoff frequency - + + Logarithmic scale + Logaritmična skala - - RESO - + + High quality + Visoka kakovost + + + lmms::VestigeInstrument - - Resonance - + + Loading plugin + Nalaganje vtičnika - - Envelopes/LFOs - + + Please wait while loading the VST plugin... + Počakajte, da se naloži VST vtičnik... + + + lmms::Vibed - - Filter type - + + String %1 volume + Struna %1 glasnost - - Q/Resonance - + + String %1 stiffness + Struna %1 togost - - Low-pass - + + Pick %1 position + Odjem %1 položaj - - Hi-pass - + + Pickup %1 position + Odjemalec %1 položaj - - Band-pass csg - + + String %1 panning + Struna %1 panorama - - Band-pass czpg - + + String %1 detune + Struna %1 razglašenost - - Notch - + + String %1 fuzziness + Struna %1 popačenost - - All-pass - + + String %1 length + Struna %1 dolžina - - Moog - + + Impulse %1 + Impulz %1 - - 2x Low-pass - + + String %1 + Struna %1 + + + lmms::VoiceObject - - RC Low-pass 12 dB/oct - + + Voice %1 pulse width + Glas %1 širina utripa - - RC Band-pass 12 dB/oct - + + Voice %1 attack + Glas %1 napad - - RC High-pass 12 dB/oct - + + Voice %1 decay + Glas %1 upad - - RC Low-pass 24 dB/oct - + + Voice %1 sustain + Glas %1 zadrži - - RC Band-pass 24 dB/oct - + + Voice %1 release + Glas %1 spust - - RC High-pass 24 dB/oct - + + Voice %1 coarse detuning + Glas %1 groba razglasitev - - Vocal Formant - + + Voice %1 wave shape + Glas %1 oblika vala - - 2x Moog - + + Voice %1 sync + Glas %1 sinhr - - SV Low-pass - + + Voice %1 ring modulate + Voice %1 modulacija zvonjenja - - SV Band-pass - + + Voice %1 filtered + Glas %1 filtriran - - SV High-pass - + + Voice %1 test + Glas %1 test + + + lmms::VstPlugin - - SV Notch - + + + The VST plugin %1 could not be loaded. + VST vtičnika %1 ni bilo mogoče naložiti - - Fast Formant - + + Open Preset + Odpri predlogo - - Tripole - + + + VST Plugin Preset (*.fxp *.fxb) + Predloga Vst vtičnika (*.fxp *.fxb) - - - InstrumentSoundShapingView - - TARGET - + + : default + : privzeto - - FILTER - + + Save Preset + Shrani predlogo - - FREQ - + + .fxp + .fxp - - Cutoff frequency: - + + .FXP + .FXP - - Hz - + + .FXB + .FXB - - Q/RESO - + + .fxb + .fxb - - Q/Resonance: - + + Loading plugin + Nalaganje vtičnika - - Envelopes, LFOs and filters are not supported by the current instrument. - + + Please wait while loading VST plugin... + Počakajte, da naložim VST vtičnik - InstrumentTrack + lmms::WatsynInstrument - - - unnamed_track - + + Volume A1 + Galsnost A1 - - Base note - + + Volume A2 + Galsnost A2 - - First note - + + Volume B1 + Galsnost B1 - - Last note - + + Volume B2 + Galsnost B2 - - Volume - Obseg + + Panning A1 + Panorama A1 - - Panning - + + Panning A2 + Panorama A2 - - Pitch - + + Panning B1 + Panorama B1 - - Pitch range - + + Panning B2 + Panorama B2 - - Mixer channel - + + Freq. multiplier A1 + Množilnik frekv. A1 - - Master pitch - Poveljnik ladje + + Freq. multiplier A2 + Množilnik frekv. A2 - - Enable/Disable MIDI CC - + + Freq. multiplier B1 + Množilnik frekv. B1 - - CC Controller %1 - + + Freq. multiplier B2 + Množilnik frekv. B2 - - - Default preset - + + Left detune A1 + Razglasi levo A1 - - - InstrumentTrackView - - Volume - Obseg + + Left detune A2 + Razglasi levo A2 - - Volume: - Glasnost: + + Left detune B1 + Razglasi levo B1 - - VOL - GLS + + Left detune B2 + Razglasi levo B2 - - Panning - + + Right detune A1 + Razglasi desno A1 - - Panning: - + + Right detune A2 + Razglasi desno A2 - - PAN - PAN + + Right detune B1 + Razglasi desno B1 - - MIDI - + + Right detune B2 + Razglasi desno B2 - - Input - + + A-B Mix + A-B Miks - - Output - + + A-B Mix envelope amount + A-B miks ovoj količina - - Open/Close MIDI CC Rack - + + A-B Mix envelope attack + A-B miks ovoj napad - - Channel %1: %2 - + + A-B Mix envelope hold + A-B miks ovoj zadrži - - - InstrumentTrackWindow - - GENERAL SETTINGS - + + A-B Mix envelope decay + A-B miks ovoj upad - - Volume - Glasnost + + A1-B2 Crosstalk + A1-B2 navzkrižno - - Volume: - Glasnost: + + A2-A1 modulation + A2-A1 modulacija - - VOL - GLS + + B2-B1 modulation + B2-B1 modulacija - - Panning - + + Selected graph + Izbrani graf + + + lmms::WaveShaperControls - - Panning: - + + Input gain + Vhodna jakost - - PAN - PAN + + Output gain + Izhodna jakost + + + lmms::Xpressive - - Pitch - + + Selected graph + Izbrani graf - - Pitch: - + + A1 + A1 - - cents - + + A2 + A2 - - PITCH - + + A3 + A3 - - Pitch range (semitones) - + + W1 smoothing + W1 glajenje - - RANGE - + + W2 smoothing + W2 glajenje - - Mixer channel - + + W3 smoothing + W3 glajenje - - CHANNEL - + + Panning 1 + Panorama 1 - - Save current instrument track settings in a preset file - + + Panning 2 + Panorama 2 - - SAVE - SHRANI + + Rel trans + Rel trans + + + lmms::ZynAddSubFxInstrument - - Envelope, filter & LFO - + + Portamento + Portamento - - Chord stacking & arpeggio - + + Filter frequency + Frekvenca filtra - - Effects - + + Filter resonance + Filter resonance - - MIDI - + + Bandwidth + Pasovna širina - - Miscellaneous - + + FM gain + FM jakost - - Save preset - Shrani glasbilce + + Resonance center frequency + Središčna frekvenca resonance - - XML preset file (*.xpf) - + + Resonance bandwidth + Pasnovna širina resonance - - Plugin - + + Forward MIDI control change events + Posreduj dogodke za MIDI spremembo kontrole - JackApplicationW + lmms::graphModel - - NSM applications cannot use abstract or absolute paths - + + Graph + graf + + + lmms::gui::AmplifierControlDialog - - NSM applications cannot use CLI arguments - + + VOL + GLASN - - You need to save the current Carla project before NSM can be used - + + Volume: + Glasnost: - - - JuceAboutW - - About JUCE - + + PAN + PAN - - <b>About JUCE</b> - + + Panning: + Panorama: + + + + LEFT + LEVO + + + + Left gain: + Leva jakost: + + + + RIGHT + DESNO - - This program uses JUCE version 3.x.x. - + + Right gain: + Desna jakost: + + + lmms::gui::AudioAlsaSetupWidget - - JUCE (Jules' Utility Class Extensions) is an all-encompassing C++ class library for developing cross-platform software. - -It contains pretty much everything you're likely to need to create most applications, and is particularly well-suited for building highly-customised GUIs, and for handling graphics and sound. - -JUCE is licensed under the GNU Public Licence version 2.0. -One module (juce_core) is permissively licensed under the ISC. - -Copyright (C) 2017 ROLI Ltd. + + Device - - This program uses JUCE version %1. + + Channels - Knob + lmms::gui::AudioFileProcessorView - - Set linear - + + Open sample + Odpri vzorec - - Set logarithmic - + + Reverse sample + Obrni vzorec - - - Set value - + + Disable loop + Izklopi zanko - - Please enter a new value between -96.0 dBFS and 6.0 dBFS: - + + Enable loop + Vklopi zanko - - Please enter a new value between %1 and %2: - Prosim vpišite novo vrednost med %1 in %2: + + Enable ping-pong loop + Vklopi ping-pong zanko - - - LadspaControl - - Link channels - + + Continue sample playback across notes + Nadaljuj s predvajanjem vzorca po notah - - - LadspaControlDialog - - Link Channels - + + Amplify: + Ojačitev: - - Channel - + + Start point: + Začetna točka: - - - LadspaControlView - - Link channels - + + End point: + Končna točka: - - Value: - + + Loopback point: + Povratna točka zanke: - LadspaEffect + lmms::gui::AudioFileProcessorWaveView - - Unknown LADSPA plugin %1 requested. - + + Sample length: + Dolžina vzorca: - LcdFloatSpinBox - - - Set value - - + lmms::gui::AutomationClipView - - Please enter a new value between %1 and %2: - Prosim vpišite novo vrednost med %1 in %2: + + Open in Automation editor + Odpri v urejevalniku avtomatizacije - - - LcdSpinBox - - Set value - + + Clear + Počisti - - Please enter a new value between %1 and %2: - Prosim vpišite novo vrednost med %1 in %2: + + Reset name + Ponastavi ime - - - LeftRightNav - - - - Previous - + + Change name + Spremeni ime - - - - Next - + + Set/clear record + Nastavi/počisti snemanje - - Previous (%1) - + + Flip Vertically (Visible) + Zrcali navpično (vidno) - - Next (%1) - + + Flip Horizontally (Visible) + Zrcali vodoravno (vidno) - - - LfoController - - LFO Controller - + + %1 Connections + %1 povezav - - Base value - + + Disconnect "%1" + Odklopi "%1" - - Oscillator speed - + + Model is already connected to this clip. + Model je že povezan s tem izsekom + + + lmms::gui::AutomationEditor - - Oscillator amount - + + Edit Value + Uredi vrednost - - Oscillator phase - + + New outValue + Nova izhodna outValue vrednost - - Oscillator waveform - + + New inValue + Nova vhodna inValue vrednost - - Frequency Multiplier + + Please open an automation clip by double-clicking on it! - LfoControllerDialog - - - LFO - - + lmms::gui::AutomationEditorWindow - - BASE - + + Play/pause current clip (Space) + Predvajanje/premor trenutnega izseka (preslednica) - - Base: - + + Stop playing of current clip (Space) + Zaustavi predvajanje trenutnega izseka (preslednica) - - FREQ - + + Edit actions + Urejanje dejanj - - LFO frequency: - + + Draw mode (Shift+D) + Način risanja (Sshift+D) - - AMNT - + + Erase mode (Shift+E) + Način brisanja (Shift+E) - - Modulation amount: - + + Draw outValues mode (Shift+C) + Način risanja izhodnih outValues vrednosti (Shift+C) - - PHS + + Edit tangents mode (Shift+T) - - Phase offset: - + + Flip vertically + Zrcali navpično - - degrees - + + Flip horizontally + Zrcali vodoravno - - Sine wave - + + Interpolation controls + Nadzor nad interpolacijo - - Triangle wave - + + Discrete progression + Diskretno napredovanje - - Saw wave - + + Linear progression + Linearno napredovanje - - Square wave - + + Cubic Hermite progression + Kubični Hermit napredovanje - - Moog saw wave - + + Tension value for spline + Vrednost napetosti za zlepek - - Exponential wave - + + Tension: + Napetost: - - White noise - + + Zoom controls + Nadzor povečave - - User-defined shape. -Double click to pick a file. - + + Horizontal zooming + Vodoravna povečava - - Mutliply modulation frequency by 1 - + + Vertical zooming + NAvpična povečava - - Mutliply modulation frequency by 100 - + + Quantization controls + Nadzor nad kvantizacijo - - Divide modulation frequency by 100 - + + Quantization + Kvantizacija - - - Engine - - Generating wavetables + + Clear ghost notes - - Initializing data structures - + + + Automation Editor - no clip + Urejevalnik avtomatizacije - brez izseka - - Opening audio and midi devices - + + + Automation Editor - %1 + Urejevalnik avtomatizacije - %1 - - Launching mixer threads - + + Model is already connected to this clip. + Model je že povezan s tem izsekom - MainWindow - - - Configuration file - - - - - Error while parsing configuration file at line %1:%2: %3 - - + lmms::gui::BassBoosterControlDialog - - Could not open file - + + FREQ + FREKV - - Could not open file %1 for writing. -Please make sure you have write permission to the file and the directory containing the file and try again! - + + Frequency: + Frekvenca: - - Project recovery - + + GAIN + JAK - - There is a recovery file present. It looks like the last session did not end properly or another instance of LMMS is already running. Do you want to recover the project of this session? - + + Gain: + Jakost: - - - Recover - + + RATIO + RAZMR - - Recover the file. Please don't run multiple instances of LMMS when you do this. - + + Ratio: + Razmerje: + + + lmms::gui::BitInvaderView - - - Discard - + + Sample length + Dolžina vzorca - - Launch a default session and delete the restored files. This is not reversible. - + + Draw your own waveform here by dragging your mouse on this graph. + Tu narišite svojo valovno obliko s vlečenjem miške po tem grafu. - - Version %1 - + + + Sine wave + Sinusna oblika - - Preparing plugin browser - + + + Triangle wave + Trikotna oblika - - Preparing file browsers - + + + Saw wave + Žagasta oblika - - My Projects - Moji projekti + + + Square wave + Pravokotna oblika - - My Samples - + + + White noise + Beli šum - - My Presets - + + + User-defined wave + Uporabniško določena oblika - - My Home - + + + Smooth waveform + Glajenje oblike vala - - Root directory - + + Interpolation + Prepletanje - - Volumes - + + Normalize + Normalizacija + + + lmms::gui::BitcrushControlDialog - - My Computer - + + IN + V - - &File - + + OUT + IZ - - &New - &Novo + + + GAIN + JAK - - &Open... - &Odpri... + + Input gain: + Vhodna jakost: - - Loading background picture - + + NOISE + ŠUM - - &Save - &Shrani + + Input noise: + Vhodni šum: - - Save &As... - Shr%Ani kot... + + Output gain: + Izhodna jakost: - - Save as New &Version - Shrani kot no&Vo različico + + CLIP + REZANJE - - Save as default template - Shrani kot privzeto predlogo + + Output clip: + Izhodno rezanje: - - Import... - Uvozi... + + Rate enabled + Frrekvenca vklopljena - - E&xport... - + + Enable sample-rate crushing + Vklopi lomljenje frekvence vzorčenja - - E&xport Tracks... - + + Depth enabled + Globina vklopljena - - Export &MIDI... - Izvoz &MIDI... + + Enable bit-depth crushing + Vklopi lomljenje bitne globine - - &Quit - Izhod + + FREQ + FREKV - - &Edit - Ur&Edi + + Sample rate: + Frekvenca vzorčenja: - - Undo - Razveljavi + + STEREO + STEREO - - Redo - Uveljavi + + Stereo difference: + Stereo razlika: - - Settings - Nastavitve + + QUANT + KVANT - - &View - + + Levels: + Nivoji: + + + lmms::gui::CPULoadWidget - - &Tools + + DSP total: %1% - - &Help + + - Notes and setup: %1% - - Online Help + + - Instruments: %1% - - Help + + - Effects: %1% - - About - Vizitka + + - Mixing: %1% + + + + lmms::gui::CarlaInstrumentView - - Create new project - Ustvari nov projekt + + Show GUI + Prikaži grafični vmesnik - - Create new project from template - Ustvari nov projekt iz predloge + + Click here to show or hide the graphical user interface (GUI) of Carla. + Kliknite, če želite prikazati ali skriti grafični vmesnik (GUI) Carle. - - Open existing project - Odpri obstoječi projekt + + Params + Param - - Recently opened projects - Nedavno odprti projekti + + Available from Carla version 2.1 and up. + Na voljo od Carla različice 2.1 naprej. + + + lmms::gui::CarlaParamsView - - Save current project - Shrani trenutni projekt + + Search.. + Iskanje.. - - Export current project - Izvozi trenutni projekt + + Clear filter text + Počisti besedilo filtra - - Metronome - + + Only show knobs with a connection. + Prikaži le vrtljive gumbe s povezavo. - - - Song Editor - Urejevalnik skladbe + + - Parameters + - Parametri + + + lmms::gui::ClipView - - - Beat+Bassline Editor - Ritem+bas urejevalnik + + Current position + Trenutni položaj - - - Piano Roll - Klavirčrtovje + + Current length + Trenutna dolžina - - - Automation Editor - Samodejnik + + + %1:%2 (%3:%4 to %5:%6) + %1:%2 (%3:%4 do %5:%6) - - - Mixer - + + Press <%1> and drag to make a copy. + Pritisnite <%1> in vlečite, da ustvarite kopijo. - - Show/hide controller rack - + + Press <%1> for free resizing. + Pritisnite <%1> za prosto spreminjanje velikosti - - Show/hide project notes - + + Hint + Namig - - Untitled - + + Delete (middle mousebutton) + Izbriši (srednja tipka miške) - - Recover session. Please save your work! - + + Delete selection (middle mousebutton) + Izbriši označeno (srednja tipka miške) - - LMMS %1 - + + Cut + Izreži - - Recovered project not saved - + + Cut selection + Izreži označeno - - This project was recovered from the previous session. It is currently unsaved and will be lost if you don't save it. Do you want to save it now? - + + Merge Selection + Združi označeno - - Project not saved - Projekt ni shranjen + + Copy + Kopiraj - - The current project was modified since last saving. Do you want to save it now? - + + Copy selection + Kopiraj označeno - - Open Project - Odpri projekt + + Paste + Prilepi - - LMMS (*.mmp *.mmpz) - + + Mute/unmute (<%1> + middle click) + Utišaj/zvok (<%1>+ srednji klik) - - Save Project - Shrani projekt + + Mute/unmute selection (<%1> + middle click) + Utišaj/zvok označeno (<%1>+ srednji klik) - - LMMS Project - LMMS projekt + + Clip color + Barva matrike - - LMMS Project Template - Predloga za LMMS projekt + + Change + Spremeni - - Save project template - + + Reset + Ponastavi - - Overwrite default template? - + + Pick random + Izberi naključno + + + lmms::gui::CompressorControlDialog - - This will overwrite your current default template. - + + Threshold: + Prag: - - Help not available - + + Volume at which the compression begins to take place + Glasnost pri kateri se začne kompresirati - - Currently there's no help available in LMMS. -Please visit http://lmms.sf.net/wiki for documentation on LMMS. - + + Ratio: + Razmerje: - - Controller Rack - + + How far the compressor must turn the volume down after crossing the threshold + Koliko naj kompresor stisne zvok, potem ko ta preseže prag - - Project Notes - Zabeležke o projektu + + Attack: + Napad: - - Fullscreen - + + Speed at which the compressor starts to compress the audio + Hitrost s katero kompresor začne stiskati zvok - - Volume as dBFS - + + Release: + Spust: - - Smooth scroll - + + Speed at which the compressor ceases to compress the audio + Hitrost s katero kompresor preneha stiskati zvok - - Enable note labels in piano roll - + + Knee: + Koleno: - - MIDI File (*.mid) - + + Smooth out the gain reduction curve around the threshold + Zmehčaj krivulje zmanjševanja jakosti v območju praga - - - untitled - Neimenovan + + Range: + Obseg: - - - Select file for project-export... - Izberi datoteko za izvoz projekta... + + Maximum gain reduction + Največje zmanjšanje jakosti - - Select directory for writing exported tracks... - + + Lookahead Length: + Dolžina pogleda naprej: - - Save project - + + How long the compressor has to react to the sidechain signal ahead of time + Koliko vnaprej naj se kompresor odziva na signal stranske verige - - Project saved - Projekt je shranjen + + Hold: + Zadrži: - - The project %1 is now saved. - Projekt %1 je zdaj shranjen + + Delay between attack and release stages + Zamik med stopnjama napad in spust - - Project NOT saved. - Projekt NI shranjen + + RMS Size: + RMS velikost: - - The project %1 was not saved! - Projekt %1 ni bil shranjen + + Size of the RMS buffer + Velikost RMS medpomnilnika - - Import file - Uvozi datoteko + + Input Balance: + Vhodno ravnovesje: - - MIDI sequences - + + Bias the input audio to the left/right or mid/side + Postavi vhodni signal levo/desno ali sredina/stransko - - Hydrogen projects - Hydrogen projekti + + Output Balance: + Izhodno ravnovesje: - - All file types - Dovoljene vrste datotek + + Bias the output audio to the left/right or mid/side + Postavi izhodni signal levo/desno ali sredina/stransko - - - MeterDialog - - - Meter Numerator - + + Stereo Balance: + Stereo ravnovesje: - - Meter numerator - + + Bias the sidechain signal to the left/right or mid/side + Postavi signal stranske verige levo/desno ali sredina/stransko - - - Meter Denominator - + + Stereo Link Blend: + Prehajanje stereo združevanja: - - Meter denominator - + + Blend between unlinked/maximum/average/minimum stereo linking modes + Prehajanje med nepovezanim/maksimalnim/povprečnim/minimalnim načinom stereo združevanja - - TIME SIG - + + Tilt Gain: + Nagib jakost: - - - MeterModel - - Numerator - + + Bias the sidechain signal to the low or high frequencies. -6 db is lowpass, 6 db is highpass. + Izpostavi nizke ali visoke frekvence signal stranske verige. -6dB je nizkoprepustni filter, 6 dB je visokoprepustni filter. - - Denominator - + + Tilt Frequency: + Frekvenca nagiba: - - - MidiCCRackView - - - MIDI CC Rack - %1 - + + Center frequency of sidechain tilt filter + Osrednja frekvenca filtra nagiba stranske verige - - MIDI CC Knobs: - + + Mix: + Miks: - - CC %1 - + + Balance between wet and dry signals + Razmerje med surovim in obogatenim signalom - - - MidiController - - MIDI Controller - + + Auto Attack: + Samodejni napad: - - unnamed_midi_controller - + + Automatically control attack value depending on crest factor + Samodejno nadzoruj vrednost za napad glede na vrhove - - - MidiImport - - - Setup incomplete - + + Auto Release: + Samodejni spust - - You have not set up a default soundfont in the settings dialog (Edit->Settings). Therefore no sound will be played back after importing this MIDI file. You should download a General MIDI soundfont, specify it in settings dialog and try again. - + + Automatically control release value depending on crest factor + Samodejno nadzoruj vrednost spusta glede na vrhove - - You did not compile LMMS with support for SoundFont2 player, which is used to add default sound to imported MIDI files. Therefore no sound will be played back after importing this MIDI file. - + + Output gain + Izhodna jakost - - MIDI Time Signature Numerator - + + + Gain + Jakost - - MIDI Time Signature Denominator - + + Output volume + Izhodna glasnost - - Numerator - + + Input gain + Vhodna jakost - - Denominator - + + Input volume + Vhodna glasnost - - Track - + + Root Mean Square + Efektivna vrednost RMS - - - MidiJack - - JACK server down - When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (title) - + + Use RMS of the input + Uporabi RMS vhoda - - The JACK server seems to be shuted down. - When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (dialog message) - + + Peak + Vrh - - - MidiPatternW - - MIDI Pattern - + + Use absolute value of the input + Uporabi absolutno vrednost vhoda - - Time Signature: - + + Left/Right + Levo/Desno - - - - 1/4 - + + Compress left and right audio + Kompresiraj levi in desni zvok - - 2/4 - + + Mid/Side + Sredina/Stransko - - 3/4 - + + Compress mid and side audio + Kompresiraj sredinski in stranski zvok - - 4/4 - + + Compressor + Kompresor - - 5/4 - + + Compress the audio + Stiskanje zvoka - - 6/4 - + + Limiter + Omejevalnik - - Measures: - + + Set Ratio to infinity (is not guaranteed to limit audio volume) + Nastavi razmerje na neskončno (ne zagotavlja omejevanja glasnosti zvoka) - - - - 1 - + + Unlinked + Nepovezano - - 2 - + + Compress each channel separately + Stiskaj vsak kanal posebej - - 3 - + + Maximum + Maksimum - - 4 - + + Compress based on the loudest channel + Stiskaj glede na glasnejši kanal - - 5 - 5 + + Average + Povprečje - - 6 - + + Compress based on the averaged channel volume + Stiskaj glede na povprečno glasnost kanala - - 7 - + + Minimum + Minimum - - 8 - + + Compress based on the quietest channel + Stiskaj glede na tišji kanal - - 9 - + + Blend + Zlivanje - - 10 - + + Blend between stereo linking modes + Prehajanje med načini združevanja sterea - - 11 - + + Auto Makeup Gain + Samodejno večanje jakosti - - 12 - + + Automatically change makeup gain depending on threshold, knee, and ratio settings + Samodejno veča jakost glede na nastavljen prag, koleno in razmerje - - 13 - + + + Soft Clip + Mehko rezanje - - 14 - + + Play the delta signal + Predvajaj delta signal - - 15 - + + Use the compressor's output as the sidechain input + Uporabi izhod kompresorja kot vhod stranske verige - - 16 - + + Lookahead Enabled + Pogled vnaprej je vklopljen - - Default Length: - + + Enable Lookahead, which introduces 20 milliseconds of latency + Vklopi Pogled vnaprej, ki doda 20 milisekund latence + + + lmms::gui::ControllerConnectionDialog - - - 1/16 - + + Connection Settings + Nastavitve povezave - - - 1/15 - + + MIDI CONTROLLER + MIDI KRMILNIK - - - 1/12 - + + Input channel + Vhodni kanal - - - 1/9 - + + CHANNEL + KANAL - - - 1/8 - + + Input controller + Vhodni krmilnik - - - 1/6 - + + CONTROLLER + KRMILNIK - - - 1/3 - + + + Auto Detect + Samodejno zaznavanje - - - 1/2 - + + MIDI-devices to receive MIDI-events from + MIDI-naprave, ki morajo prejeti MIDI-dogodke od - - Quantize: - + + USER CONTROLLER + UPORABNIŠKI KRMILNIK - - &File - + + MAPPING FUNCTION + FUNKCIJA MAPIRANJA - - &Edit - Ur&Edi + + OK + V redu - - &Quit - Izhod + + Cancel + Prekini - - &Insert Mode - + + LMMS + LMMS - - F - + + Cycle Detected. + Zaznan cikelj. + + + lmms::gui::ControllerRackView - - &Velocity Mode - + + Controller Rack + Regal krmilnikov - - D - + + Add + Dodaj - - Select All - + + Confirm Delete + Potrdi brisanje - - A - + + Confirm delete? There are existing connection(s) associated with this controller. There is no way to undo. + Naj res izbrišem? Obstaja(-jo) povezava(-e), ki se nanašajo na ta krmilnik. Razveljavitev ni mogoča. - MidiPort + lmms::gui::ControllerView - - Input channel - + + Controls + Kontrole - - Output channel - + + Rename controller + Preimenuj krmilnik - - Input controller - + + Enter the new name for this controller + Vnesite novo ime krmilnika - - Output controller - + + LFO + NFO - - Fixed input velocity + + Move &up - - Fixed output velocity + + Move &down - - Fixed output note - + + &Remove this controller + Odst&rani ta krmilnik - - Output MIDI program - + + Re&name this controller + Pr&eimenuj ta krmilnik + + + lmms::gui::CrossoverEQControlDialog - - Base velocity - + + Band 1/2 crossover: + Pas 1/2 prekrižaj: - - Receive MIDI-events - + + Band 2/3 crossover: + Pas 2/3 prekrižaj: - - Send MIDI-events - + + Band 3/4 crossover: + Pas 3/4 prekrižaj: - - - MidiSetupWidget - - Device - + + Band 1 gain + Pas 1 jakost - - - MonstroInstrument - - Osc 1 volume - + + Band 1 gain: + Pas 1 jakost: - - Osc 1 panning - + + Band 2 gain + Pas 2 jakost - - Osc 1 coarse detune - + + Band 2 gain: + Pas 2 jakost: - - Osc 1 fine detune left - + + Band 3 gain + Pas 3 jakost - - Osc 1 fine detune right - + + Band 3 gain: + Pas 3 jakost: - - Osc 1 stereo phase offset - + + Band 4 gain + Pas 4 jakost - - Osc 1 pulse width - + + Band 4 gain: + Pas 4 jakost: - - Osc 1 sync send on rise - + + Band 1 mute + Pas 1 utišaj - - Osc 1 sync send on fall - + + Mute band 1 + Utišaj pas 1 - - Osc 2 volume - + + Band 2 mute + Pas 2 utišaj - - Osc 2 panning - + + Mute band 2 + Utišaj pas 2 - - Osc 2 coarse detune - + + Band 3 mute + Pas 3 utišaj - - Osc 2 fine detune left - + + Mute band 3 + Utišaj pas 3 - - Osc 2 fine detune right - + + Band 4 mute + Pas 4 utišaj - - Osc 2 stereo phase offset - + + Mute band 4 + Utišaj pas 4 + + + lmms::gui::DelayControlsDialog - - Osc 2 waveform - + + DELAY + ZAMIK - - Osc 2 sync hard - + + Delay time + Čas zamika - - Osc 2 sync reverse - + + FDBK + POVR - - Osc 3 volume - + + Feedback amount + Količina v povratno zanko - - Osc 3 panning - + + RATE + STOPN - - Osc 3 coarse detune - + + LFO frequency + NFO frekvenca - - Osc 3 Stereo phase offset - + + AMNT + KOLIČ - - Osc 3 sub-oscillator mix - + + LFO amount + NFO količina - - Osc 3 waveform 1 - + + Out gain + Izhodna jakost - - Osc 3 waveform 2 - + + Gain + Jakost + + + lmms::gui::DispersionControlDialog - - Osc 3 sync hard - + + AMOUNT + KOLIČINA - - Osc 3 Sync reverse - + + Number of all-pass filters + Število filtrov za vse pasove - - LFO 1 waveform - + + FREQ + FREKV - - LFO 1 attack - + + Frequency: + Frekvenca: - - LFO 1 rate - + + RESO + RESO - - LFO 1 phase - + + Resonance: + Resnonanca: - - LFO 2 waveform - + + FEED + POVR - - LFO 2 attack - + + Feedback: + Povratna zanka: - - LFO 2 rate - + + DC Offset Removal + DC odmik odstranitve - - LFO 2 phase - + + Remove DC Offset + Odstrani DC odmik + + + lmms::gui::DualFilterControlDialog - - Env 1 pre-delay - + + + FREQ + FREKV - - Env 1 attack - + + + Cutoff frequency + Frekvenca rezanja - - Env 1 hold - + + + RESO + RESO - - Env 1 decay - + + + Resonance + Resnonanca - - Env 1 sustain - + + + GAIN + JAKOST - - Env 1 release - + + + Gain + Jakost - - Env 1 slope - + + MIX + MIKS - - Env 2 pre-delay - + + Mix + Miks - - Env 2 attack - + + Filter 1 enabled + Filter 1 vklopljen - - Env 2 hold - + + Filter 2 enabled + Filter 2 vklopljen - - Env 2 decay - + + Enable/disable filter 1 + Vklopi/izklopi filter 1 - - Env 2 sustain - + + Enable/disable filter 2 + Vklopi/izklopi filter 2 + + + + lmms::gui::DynProcControlDialog + + + INPUT + VHOD - - Env 2 release - + + Input gain: + Vhodna jakost: - - Env 2 slope - + + OUTPUT + IZHOD - - Osc 2+3 modulation - + + Output gain: + Izhodna jakost: - - Selected view - + + ATTACK + NAPAD - - Osc 1 - Vol env 1 - + + Peak attack time: + Čas do vrha napada: - - Osc 1 - Vol env 2 - + + RELEASE + SPUST - - Osc 1 - Vol LFO 1 - + + Peak release time: + Čas spuščanja od vrha: - - Osc 1 - Vol LFO 2 - + + + Reset wavegraph + Ponastavi valovni graf - - Osc 2 - Vol env 1 - + + + Smooth wavegraph + Glajenje valovnega grafa - - Osc 2 - Vol env 2 - + + + Increase wavegraph amplitude by 1 dB + Povečaj amplitudo valovnega grafa za 1 dB - - Osc 2 - Vol LFO 1 - + + + Decrease wavegraph amplitude by 1 dB + Zmanjšaj amplitudo valovnega grafa za 1 dB - - Osc 2 - Vol LFO 2 - + + Stereo mode: maximum + Streo način: maksimalen - - Osc 3 - Vol env 1 - + + Process based on the maximum of both stereo channels + Obdelava glede na maksimum stereo kanalov - - Osc 3 - Vol env 2 - + + Stereo mode: average + Stereo način: povprečje - - Osc 3 - Vol LFO 1 - + + Process based on the average of both stereo channels + Obdelava glede na povprečje stereo kanalov - - Osc 3 - Vol LFO 2 - + + Stereo mode: unlinked + Stereo način: nepovezano - - Osc 1 - Phs env 1 - + + Process each stereo channel independently + Ločena obdelava stereo kanalov + + + lmms::gui::Editor - - Osc 1 - Phs env 2 - + + Transport controls + Kontrole - - Osc 1 - Phs LFO 1 - + + Play (Space) + Predvajanje (preslednica) - - Osc 1 - Phs LFO 2 - + + Stop (Space) + Ustavi (preslednica) - - Osc 2 - Phs env 1 - + + Record + Snemaj - - Osc 2 - Phs env 2 - + + Record while playing + Snemaj med predvajanjem - - Osc 2 - Phs LFO 1 - + + Toggle Step Recording + Preklopi snemanje v korakih + + + lmms::gui::EffectRackView - - Osc 2 - Phs LFO 2 - + + EFFECTS CHAIN + VERIGA UČINKOV - - Osc 3 - Phs env 1 - + + Add effect + Dodaj učinek + + + lmms::gui::EffectSelectDialog - - Osc 3 - Phs env 2 + + Add effect - - Osc 3 - Phs LFO 1 - + + + Name + Ime - - Osc 3 - Phs LFO 2 - + + Type + Vrsta - - Osc 1 - Pit env 1 + + All - - Osc 1 - Pit env 2 + + Search - - Osc 1 - Pit LFO 1 - + + Description + Opis - - Osc 1 - Pit LFO 2 - + + Author + Avtor + + + + lmms::gui::EffectView + + + On/Off + Vklopi/izklopi - - Osc 2 - Pit env 1 - + + W/D + S/O - - Osc 2 - Pit env 2 - + + Wet Level: + Nivo obogatenosti: - - Osc 2 - Pit LFO 1 - + + DECAY + UPAD - - Osc 2 - Pit LFO 2 - + + Time: + Čas: - - Osc 3 - Pit env 1 - + + GATE + VRATA - - Osc 3 - Pit env 2 - + + Gate: + Vrata: - - Osc 3 - Pit LFO 1 - + + Controls + Kontrole - - Osc 3 - Pit LFO 2 - + + Move &up + Premakni &gor - - Osc 1 - PW env 1 - + + Move &down + Premakni &dol - - Osc 1 - PW env 2 - + + &Remove this plugin + Odst&rani ta vtičnik + + + lmms::gui::EnvelopeAndLfoView - - Osc 1 - PW LFO 1 - + + + AMT + KMD - - Osc 1 - PW LFO 2 - + + + Modulation amount: + Količina modulacije: - - Osc 3 - Sub env 1 - + + + DEL + BRIŠI - - Osc 3 - Sub env 2 - + + + Pre-delay: + Pred-zamik: - - Osc 3 - Sub LFO 1 - + + + ATT + NAPAD - - Osc 3 - Sub LFO 2 - + + + Attack: + Napad: - - - Sine wave - + + HOLD + DRŽI - - Bandlimited Triangle wave - + + Hold: + Drži: - - Bandlimited Saw wave - + + DEC + RAZ - - Bandlimited Ramp wave - + + Decay: + Upad: - - Bandlimited Square wave - + + SUST + VZD - - Bandlimited Moog saw wave - + + Sustain: + Zadrži: - - - Soft square wave - + + REL + SPUST - - Absolute sine wave - + + Release: + Spust: - - - Exponential wave - + + SPD + HIT - - White noise - + + Frequency: + Frekvenca: - - Digital Triangle wave - + + FREQ x 100 + FREKV × 100 - - Digital Saw wave - + + Multiply LFO frequency by 100 + Zmnoži NFO frekvenco s 100 - - Digital Ramp wave + + MOD ENV AMOUNT - - Digital Square wave - + + Control envelope amount by this LFO + Količino ovoja nadzorujte s tem NFO - - Digital Moog saw wave - + + Hint + Namig - - Triangle wave - + + Drag and drop a sample into this window. + Povlecite in spustite vzorec v to okno + + + lmms::gui::EnvelopeGraph - - Saw wave + + Scaling - - Ramp wave + + Dynamic - - Square wave + + Uses absolute spacings but switches to relative spacing if it's running out of space - - Moog saw wave + + Absolute - - Abs. sine wave + + Provides enough potential space for each segment but does not scale - - Random + + Relative - - Random smooth + + Always uses all of the available space to display the envelope graph - MonstroView + lmms::gui::EqControlsDialog - - Operators view - + + HP + VP - - Matrix view - + + Low-shelf + Spodnji - - - - Volume - Obseg + + Peak 1 + Vrh 1 - - - - Panning - + + Peak 2 + Vrh 2 - - - - Coarse detune - + + Peak 3 + Vrh 3 - - - - semitones - + + Peak 4 + Vrh 4 - - - Fine tune left - + + High-shelf + Zgornji - - - - - cents - + + LP + NP - - - Fine tune right - + + Input gain + Vhodna jakost - - - - Stereo phase offset - + + + + Gain + Jakost - - - - - - deg - + + Output gain + Izhodna jakost - - Pulse width - + + Bandwidth: + Pasovna širina: - - Send sync on pulse rise - + + Octave + Oktava - - Send sync on pulse fall + + Resonance: - - Hard sync oscillator 2 - + + Frequency: + Frekvenca: - - Reverse sync oscillator 2 - + + LP group + NP skupina - - Sub-osc mix - + + HP group + VP skupina + + + lmms::gui::EqHandle - - Hard sync oscillator 3 - + + Reso: + Reso: - - Reverse sync oscillator 3 - + + BW: + PŠ: - - - - - Attack - + + + Freq: + Frek: + + + lmms::gui::ExportProjectDialog - - - Rate - + + Could not open file + Ne morem odpreti datoteke - - - Phase - + + Could not open file %1 for writing. +Please make sure you have write permission to the file and the directory containing the file and try again! + Datoteke %1 ni bilo mogoče odpreti za zapisovanje. +Prepričajte se, da imate pravico za zapisovanje v to datoteko in njeno mapo ter poskusite znova! - - - Pre-delay - + + Export project to %1 + Izvozi projekt v %1 - - - Hold - + + ( Fastest - biggest ) + (Hitro - veliko) - - - Decay - + + ( Slowest - smallest ) + (Počasi - majhno) - - - Sustain - + + Error + Napaka - - - Release - Prepustitev + + Error while determining file-encoder device. Please try to choose a different output format. + Napaka pri določanju naprave za kodiranje datoteke. Poskusite izbrati drug izhodni format. - - - Slope - + + Rendering: %1% + Zapisovanje: %1% + + + lmms::gui::Fader - - Mix osc 2 with osc 3 - + + Set value + Določi vrednost - - Modulate amplitude of osc 3 by osc 2 - + + Please enter a new value between %1 and %2: + Prosim vpišite novo vrednost med %1 in %2: - - Modulate frequency of osc 3 by osc 2 + + Volume: %1 dBFS + + + lmms::gui::FileBrowser - - Modulate phase of osc 3 by osc 2 - + + Browser + Brskalnik - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Modulation amount + + Search + iskanje + + + + Refresh list + Osveži seznam + + + + User content + Uporabniška vsebina + + + + Factory content + Priložena vsebina + + + + Hidden content - MultitapEchoControlDialog + lmms::gui::FileBrowserTreeWidget - - Length - + + Send to active instrument-track + Pošlji na aktivno instrumentalno stezo - - Step length: - + + Open containing folder + Odpri mapo datoteke - - Dry - + + Song Editor + Urejevalnik skladbe - - Dry gain: - + + Pattern Editor + Urejevalnik matrik - - Stages - + + Send to new AudioFileProcessor instance + Pošlji kot novo AudioFileProcessor instanco - - Low-pass stages: - + + Send to new instrument track + Pošlji na novo instrumentalno stezo - - Swap inputs - + + (%2Enter) + (%2Enter) - - Swap left and right input channels for reflections - + + Send to new sample track (Shift + Enter) + Pošljii na novo stezo z vzorci (Shift + Enter) + + + + Loading sample + Nalaganje vzorca + + + + Please wait, loading sample for preview... + Počakajte, vzorec za predogled se nalaga... + + + + Error + Napaka + + + + %1 does not appear to be a valid %2 file + %1 niima pravilne oblike za %2 datoteko + + + + --- Factory files --- + --- Tovarniške datoteke --- - NesInstrument + lmms::gui::FileDialog - - Channel 1 coarse detune + + %1 files - - Channel 1 volume + + All audio files - - Channel 1 envelope length + + Other files + + + lmms::gui::FlangerControlsDialog - - Channel 1 duty cycle - + + DELAY + ZAMIK - - Channel 1 sweep amount - + + Delay time: + Čas zamika: + + + + RATE + STOPN + + + + Period: + Perioda: + + + + AMNT + KOLIČ + + + + Amount: + Količina: + + + + PHASE + FAZA - - Channel 1 sweep rate - + + Phase: + Faza: - - Channel 2 Coarse detune - + + FDBK + POVR - - Channel 2 Volume - + + Feedback amount: + Količina povratne zanke: - - Channel 2 envelope length - + + NOISE + ŠUM - - Channel 2 duty cycle - + + White noise amount: + Količina belega šuma: - - Channel 2 sweep amount - + + Invert + Inverzno + + + lmms::gui::FloatModelEditorBase - - Channel 2 sweep rate + + Set linear - - Channel 3 coarse detune + + Set logarithmic - - Channel 3 volume + + + Set value - - Channel 4 volume + + Please enter a new value between -96.0 dBFS and 6.0 dBFS: - - Channel 4 envelope length + + Please enter a new value between %1 and %2: + + + lmms::gui::FreeBoyInstrumentView - - Channel 4 noise frequency - + + Sweep time: + Čas preleta: - - Channel 4 noise frequency sweep - + + Sweep time + Čas preleta - - Master volume - Poveljnik ladje + + Sweep rate shift amount: + Stopnja premika preleta: - - Vibrato - Vibrato + + Sweep rate shift amount + Stopnja premika preleta - - - NesInstrumentView - - - - - Volume - Obseg + + + Wave pattern duty cycle: + Cikelj izvajanja valovne matrike: - - - - Coarse detune - + + + Wave pattern duty cycle + Cikelj izvajanja valovne matrike - - - - Envelope length - + + Square channel 1 volume: + Pravokotni kanal 1 glasnost: - - Enable channel 1 - + + Square channel 1 volume + Pravokotni kanal 1 glasnost - - Enable envelope 1 - + + + + Length of each step in sweep: + Dolžina vsakega koraka v preletu - - Enable envelope 1 loop - + + + + Length of each step in sweep + Dolžina vsakega koraka preleta - - Enable sweep 1 - + + Square channel 2 volume: + Pravokotni kanal 2 glasnost: - - - Sweep amount - + + Square channel 2 volume + Pravokotni kanal 2 glasnost - - - Sweep rate - + + Wave pattern channel volume: + Glasnost kanala valovne matrike: - - - 12.5% Duty cycle - + + Wave pattern channel volume + Glasnost kanala valovne matrike - - - 25% Duty cycle - + + Noise channel volume: + Glasnost kanala s šumom: - - - 50% Duty cycle - + + Noise channel volume + Glasnost kanala s šumom - - - 75% Duty cycle - + + SO1 volume (Right): + SO1 glasnost (desno): - - Enable channel 2 - + + SO1 volume (Right) + SO1 glasnost (desno) - - Enable envelope 2 - + + SO2 volume (Left): + SO2 glasnost (levo) - - Enable envelope 2 loop - + + SO2 volume (Left) + SO2 glasnost (desno) - - Enable sweep 2 - + + Treble: + Visoki: - - Enable channel 3 - + + Treble + Visoki - - Noise Frequency - + + Bass: + Bas: - - Frequency sweep - + + Bass + Bas - - Enable channel 4 - + + Sweep direction + Smer preleta - - Enable envelope 4 - + + + + + + Volume sweep direction + Smer preleta glasnosti - - Enable envelope 4 loop - + + Shift register width + Pomik širine registra - - Quantize noise frequency when using note frequency - + + Channel 1 to SO1 (Right) + Kanal 1 na SO1 (desni) - - Use note frequency for noise - + + Channel 2 to SO1 (Right) + Kanal 2 na SO1 (desni) - - Noise mode - + + Channel 3 to SO1 (Right) + Kanal 3 na SO1 (desni) - - Master volume - Poveljnik ladje + + Channel 4 to SO1 (Right) + Kanal 4 na SO1 (desni) - - Vibrato - Vibrato + + Channel 1 to SO2 (Left) + Kanal 1 na SO2 (levi) - - - OpulenzInstrument - - Patch - + + Channel 2 to SO2 (Left) + Kanal 2 na SO2 (levi) - - Op 1 attack - + + Channel 3 to SO2 (Left) + Kanal 3 na SO2 (levi) - - Op 1 decay - + + Channel 4 to SO2 (Left) + Kanal 4 na SO2 (levi) - - Op 1 sustain - + + Wave pattern graph + Graf valovne matrike + + + lmms::gui::GigInstrumentView - - Op 1 release - + + + Open GIG file + Odpri GIG datoteko - - Op 1 level - + + Choose patch + Izberi program - - Op 1 level scaling - + + Gain: + Jakost: - - Op 1 frequency multiplier - + + GIG Files (*.gig) + GIG datoteke (*.gig) + + + lmms::gui::GranularPitchShifterControlDialog - - Op 1 feedback + + Grain Size: - - Op 1 key scaling rate + + Spray: - - Op 1 percussive envelope + + Jitter: - - Op 1 tremolo + + Twitch: - - Op 1 vibrato + + Spray Stereo Spread: - - Op 1 waveform + + Grain Shape: - - Op 2 attack + + Fade Length: - - Op 2 decay + + Feedback: - - Op 2 sustain + + Minimum Allowed Latency: - - Op 2 release + + Density: - - Op 2 level + + Glide: - - Op 2 level scaling + + + Pitch - - Op 2 frequency multiplier + + + Pitch Stereo Spread - - Op 2 key scaling rate + + Open help window - - Op 2 percussive envelope + + + Prefilter + + + lmms::gui::GuiApplication - - Op 2 tremolo - + + Working directory + Delovna mapa - - Op 2 vibrato - + + The LMMS working directory %1 does not exist. Create it now? You can change the directory later via Edit -> Settings. + LMMS delovna mapa %1 ne obstaja. Jo ustvarim? Mapo lahko spremenite preko Uredi -> Nastavitve. - - Op 2 waveform - + + Preparing UI + Pripravljanje uporabniškega vmesnika - - FM - + + Preparing song editor + Pripravljam Urejevalnik skladbe - - Vibrato depth - + + Preparing mixer + Pripravljanje mešalke - - Tremolo depth - + + Preparing controller rack + Pripravljanje regala kontrolerjev - - - OpulenzInstrumentView - - - Attack - + + Preparing project notes + Pripravljanje zaznamkov projekta - - - Decay - + + Preparing microtuner + Pripravljanje mikoruglaševalnika - - - Release - Prepustitev + + Preparing pattern editor + Pripravljanje urejevalnika matrik - - - Frequency multiplier - + + Preparing piano roll + Pripravljanje klavirskega črtovja + + + + Preparing automation editor + Pripravljanje urejevalnika avtomatizacije - OscillatorObject + lmms::gui::InstrumentFunctionArpeggioView - - Osc %1 waveform - + + ARPEGGIO + ARPEGGIO - - Osc %1 harmonic - + + RANGE + RAZPON - - - Osc %1 volume - + + Arpeggio range: + Razpon arpeggia: - - - Osc %1 panning - + + octave(s) + oktav(a) - - - Osc %1 fine detuning left - + + REP + REP - - Osc %1 coarse detuning - + + Note repeats: + Ponovljanje not: - - Osc %1 fine detuning right - + + time(s) + krat - - Osc %1 phase-offset - + + CYCLE + KROŽI - - Osc %1 stereo phase-detuning - + + Cycle notes: + Kroženje not: - - Osc %1 wave shape - + + note(s) + not(a) - - Modulation type %1 - + + SKIP + SKOK - - - Oscilloscope - - Oscilloscope - + + Skip rate: + Stopnja preskakovanja: - - Click to enable - + + + + % + % - - - PatchesDialog - - Qsynth: Channel Preset - + + MISS + GREŠI - - Bank selector - + + Miss rate: + Stopnja zgrešitve - - Bank - + + TIME + ČAS - - Program selector - + + Arpeggio time: + Čas arpeggia: - - Patch - + + ms + ms - - Name - Ime + + GATE + VRATA - - OK - V redu + + Arpeggio gate: + Vrata arpeggia: - - Cancel - Preklic + + Chord: + Akord: + + + + Direction: + Smer: + + + + Mode: + Način: - PatmanView + lmms::gui::InstrumentFunctionNoteStackingView - - Open patch - + + STACKING + KOPIČENJE - - Loop - + + Chord: + Akord: - - Loop mode - + + RANGE + RAZPON - - Tune - + + Chord range: + Razpon akorda: - - Tune mode - + + octave(s) + oktav(a) + + + lmms::gui::InstrumentMidiIOView - - No file selected - + + ENABLE MIDI INPUT + VKLOPI MIDI VHOD - - Open patch file - + + + CHAN + This string must be be short, its width must be less than * width of LCD spin-box of two digits + KANAL - - Patch-Files (*.pat) - + + + VELOC + This string must be be short, its width must be less than * width of LCD spin-box of three digits + HITR - - - MidiClipView - - Open in piano-roll - Odpri v Klavirčrtovju + + ENABLE MIDI OUTPUT + VKLOPI MIDI IZHOD - - Set as ghost in piano-roll - + + PROG + This string must be be short, its width must be less than the * width of LCD spin-box of three digits + PROG - - Clear all notes - + + NOTE + This string must be be short, its width must be less than * width of LCD spin-box of three digits + NOTA - - Reset name - + + MIDI devices to receive MIDI events from + MIDI-naprave, ki morajo prejeti MIDI-dogodke od - - Change name - + + MIDI devices to send MIDI events to + MIDI-naprave, ki morajo poslati MIDI-dogodke do - - Add steps + + VELOCITY MAPPING - - Remove steps + + MIDI VELOCITY - - Clone Steps + + MIDI notes at this velocity correspond to 100% note velocity. - PeakController + lmms::gui::InstrumentSoundShapingView - - Peak Controller - + + TARGET + CILJ - - Peak Controller Bug - + + FILTER + FILTER - - Due to a bug in older version of LMMS, the peak controllers may not be connect properly. Please ensure that peak controllers are connected properly and re-save this file. Sorry for any inconvenience caused. - + + FREQ + FREKV - - - PeakControllerDialog - - PEAK - + + Cutoff frequency: + Frekvenca rezanja: - - LFO Controller - + + Hz + Hz - - - PeakControllerEffectControlDialog - - BASE - + + Q/RESO + Q/RESO - - Base: - + + Q/Resonance: + Q/resonanca: - - AMNT - + + Envelopes, LFOs and filters are not supported by the current instrument. + Oblike krivulj, LFOji in filtri niso podprti v trenutnem instrumentu. + + + lmms::gui::InstrumentTrackView - - Modulation amount: + + Mixer channel - - MULT - + + Volume + Glasnost - - Amount multiplicator: - + + Volume: + Glasnost: - - ATCK - + + VOL + GLASN - - Attack: - + + Panning + Panorama - - DCAY - + + Panning: + Panorama: - - Release: - + + PAN + PAN - - TRSH - + + MIDI + MIDI - - Treshold: - + + Input + Vhod - - Mute output - + + Output + Izhod - - Absolute value - + + Open/Close MIDI CC Rack + Odpri/Zapri MIDI CC regal + + + + %1: %2 + %1: %2 - PeakControllerEffectControls + lmms::gui::InstrumentTrackWindow - - Base value - + + Volume + Glasnost + + + + Volume: + Glasnost: + + + + VOL + GLASN - - Modulation amount - + + Panning + Panorama - - Attack - + + Panning: + Panorama: - - Release - Prepustitev + + PAN + PAN - - Treshold - Treshold + + Pitch + Višina - - Mute output - + + Pitch: + Višina: - - Absolute value - + + cents + stotinov - - Amount multiplicator - + + PITCH + VIŠINA - - - PianoRoll - - Note Velocity - + + Pitch range (semitones) + Razpon višine (poltoni) - - Note Panning - + + RANGE + RAZPON - - Mark/unmark current semitone - + + Mixer channel + Mešalni kanal - - Mark/unmark all corresponding octave semitones - + + CHANNEL + KANAL - - Mark current scale - + + Save current instrument track settings in a preset file + Shrani nastavitve trenutnega instrumenta v predlogo - - Mark current chord - + + SAVE + SHRANI - - Unmark all - + + Envelope, filter & LFO + Ovoj, filter & NFO - - Select all notes on this key - + + Chord stacking & arpeggio + Nalaganje akordov in arpeggio - - Note lock - + + Effects + Učinki - - Last note - + + MIDI + MIDI - - No key + + Tuning and transposition - - No scale - + + Save preset + Shrani predlogo - - No chord - + + XML preset file (*.xpf) + XML predloga (*.xpf) - - Nudge - + + Plugin + Vtičnik + + + lmms::gui::InstrumentTuningView - - Snap + + GLOBAL TRANSPOSITION - - Velocity: %1% + + Enables the use of global transposition - - Panning: %1% left + + Microtuner is not available for MIDI-based instruments. - - Panning: %1% right + + MICROTUNER - - Panning: center + + Active scale: - - Glue notes failed + + + Edit scales and keymaps - - Please select notes to glue first. + + Active keymap: - - Please open a clip by double-clicking on it! + + Import note ranges from keymap - - - Please enter a new value between %1 and %2: - Prosim vpišite novo vrednost med %1 in %2: + + When enabled, the first, last and base notes of this instrument will be overwritten with values specified by the selected keymap. + - PianoRollWindow + lmms::gui::KickerInstrumentView - - Play/pause current clip (Space) - + + Start frequency: + Začetna frekvenca: - - Record notes from MIDI-device/channel-piano - + + End frequency: + Končna frekvenca: - - Record notes from MIDI-device/channel-piano while playing song or BB track - + + Frequency slope: + Nagib frekvence: - - Record notes from MIDI-device/channel-piano, one step at the time - + + Gain: + Jakost: - - Stop playing of current clip (Space) - + + Envelope length: + Dolžina ovoja: - - Edit actions - + + Envelope slope: + Nagib ovoja: - - Draw mode (Shift+D) - + + Click: + Klik: - - Erase mode (Shift+E) - + + Noise: + Šum: - - Select mode (Shift+S) - + + Start distortion: + Začetno popačenje: - - Pitch Bend mode (Shift+T) - + + End distortion: + Končno popačenje: + + + lmms::gui::LOMMControlDialog - - Quantize + + Depth: - - Quantize positions + + Compression amount for all bands - - Quantize lengths + + Time: - - File actions + + Attack/release scaling for all bands - - Import clip + + Input Volume: - - - Export clip + + Input volume - - Copy paste controls + + Output Volume: - - Cut (%1+X) + + Output volume - - Copy (%1+C) + + Upward Depth: - - Paste (%1+V) + + Upward compression amount for all bands - - Timeline controls + + Downward Depth: - - Glue + + Downward compression amount for all bands - - Knife + + High/Mid Crossover - - Fill + + Mid/Low Crossover - - Cut overlaps + + High/mid band split - - Min length as last + + Mid/low band split - - Max length as last + + Enable High Band - - Zoom and note controls + + Enable Mid Band - - Horizontal zooming + + Enable Low Band - - Vertical zooming + + High Input Volume: - - Quantization + + Input volume for high band - - Note length + + Mid Input Volume: - - Key + + Input volume for mid band - - Scale + + Low Input Volume: - - Chord + + Input volume for low band - - Snap mode + + High Output Volume: - - Clear ghost notes + + Output volume for high band - - - Piano-Roll - %1 - Klavirčrtovje - %1 + + Mid Output Volume: + - - - Piano-Roll - no clip - Klavirčrtovje - ni šablone + + Output volume for mid band + - - - XML clip file (*.xpt *.xptz) + + Low Output Volume: - - Export clip success + + Output volume for low band - - Clip saved to %1 + + Above Threshold High - - Import clip. + + Downward compression threshold for high band - - You are about to import a clip, this will overwrite your current clip. Do you want to continue? + + Above Threshold Mid - - Open clip + + Downward compression threshold for mid band - - Import clip success + + Above Threshold Low - - Imported clip %1! + + Downward compression threshold for low band - - - PianoView - - Base note + + Above Ratio High - - First note + + Downward compression ratio for high band - - Last note + + Above Ratio Mid - - - Plugin - - Plugin not found + + Downward compression ratio for mid band - - The plugin "%1" wasn't found or could not be loaded! -Reason: "%2" + + Above Ratio Low - - Error while loading plugin + + Downward compression ratio for low band - - Failed to load plugin "%1"! + + Below Threshold High - - - PluginBrowser - - Instrument Plugins + + Upward compression threshold for high band - - Instrument browser + + Below Threshold Mid - - Drag an instrument into either the Song-Editor, the Beat+Bassline Editor or into an existing instrument track. + + Upward compression threshold for mid band - - no description + + Below Threshold Low - - A native amplifier plugin + + Upward compression threshold for low band - - Simple sampler with various settings for using samples (e.g. drums) in an instrument-track + + Below Ratio High - - Boost your bass the fast and simple way + + Upward compression ratio for high band - - Customizable wavetable synthesizer + + Below Ratio Mid - - An oversampling bitcrusher + + Upward compression ratio for mid band - - Carla Patchbay Instrument + + Below Ratio Low - - Carla Rack Instrument + + Upward compression ratio for low band - - A dynamic range compressor. + + Attack High: - - A 4-band Crossover Equalizer + + Attack time for high band - - A native delay plugin + + Attack Mid: - - A Dual filter plugin + + Attack time for mid band - - plugin for processing dynamics in a flexible way + + Attack Low: - - A native eq plugin + + Attack time for low band - - A native flanger plugin + + Release High: - - Emulation of GameBoy (TM) APU + + Release time for high band - - Player for GIG files + + Release Mid: - - Filter for importing Hydrogen files into LMMS - Sito za uvažanje Hydrogen datotek v LMMS + + Release time for mid band + - - Versatile drum synthesizer + + Release Low: - - List installed LADSPA plugins + + Release time for low band - - plugin for using arbitrary LADSPA-effects inside LMMS. + + RMS Time: - - Incomplete monophonic imitation TB-303 + + RMS size for sidechain signal (set to 0 for Peak mode) - - plugin for using arbitrary LV2-effects inside LMMS. + + Knee: - - plugin for using arbitrary LV2 instruments inside LMMS. + + Knee size for all compressors - - Filter for exporting MIDI-files from LMMS - Sito za izvažanje MIDI datotek iz LMMS + + Range: + - - Filter for importing MIDI-files into LMMS - Sito za uvažanje MIDI datotek v LMMS + + Maximum gain increase for all bands + - - Monstrous 3-oscillator synth with modulation matrix + + Balance: - - A multitap echo delay plugin + + Bias input volume towards one channel - - A NES-like synthesizer + + Scale output volume with Depth - - 2-operator FM Synth + + Scale output volume with Depth parameter - - Additive Synthesizer for organ-like sounds + + Stereo Link - - GUS-compatible patch instrument + + Apply same gain change to both channels - - Plugin for controlling knobs with sound peaks + + Auto Time: - - Reverb algorithm by Sean Costello + + Speed up attack and release times when transients occur - - Player for SoundFont files + + Mix: - - LMMS port of sfxr + + Wet/Dry of all bands - - Emulation of the MOS6581 and MOS8580 SID. -This chip was used in the Commodore 64 computer. + + Feedback - - A graphical spectrum analyzer. + + Use output as sidechain signal instead of input - - Plugin for enhancing stereo separation of a stereo input file + + Mid/Side - - Plugin for freely manipulating stereo output + + Compress mid/side channels instead of left/right - - Tuneful things to bang on + + + Suppress upward compression for side band - - Three powerful oscillators you can modulate in several ways + + + Lookahead - - A stereo field visualizer. + + Lookahead length - - VST-host for using VST(i)-plugins within LMMS + + Clear all parameters + + + lmms::gui::LadspaBrowserView - - Vibrating string modeler - + + + Available Effects + Učinki, ki so na voljo - - plugin for using arbitrary VST effects inside LMMS. - + + + Unavailable Effects + Učinki, ki niso na voljo + + + + + Instruments + Instrumenti + + + + + Analysis Tools + Analitična orodja - - 4-oscillator modulatable wavetable synth - + + + Don't know + Neznano - - plugin for waveshaping - + + Type: + Vrsta: + + + lmms::gui::LadspaControlDialog - - Mathematical expression parser - + + Link Channels + Združi kanale - - Embedded ZynAddSubFX - + + Channel + Kanal - PluginDatabaseW + lmms::gui::LadspaControlView - - Carla - Add New - + + Link channels + Združi kanale - - Format - + + Value: + Vrednost: + + + lmms::gui::LadspaDescription - - Internal - + + Plugins + Vtičniki - - LADSPA - + + Description + Opis - - DSSI + + Name: - - LV2 + + Maker: - - VST2 + + Copyright: - - VST3 + + Requires Real Time: - - AU + + + + Yes - - Sound Kits + + + + No - - Type + + Real Time Capable: - - Effects + + In Place Broken: - - Instruments + + Channels In: - - MIDI Plugins + + Channels Out: + + + lmms::gui::LadspaMatrixControlDialog - - Other/Misc + + Link Channels - - Architecture + + Link - - Native + + Channel %1 - - Bridged + + Link channels + + + lmms::gui::LadspaPortDialog - - Bridged (Wine) - + + Ports + Vrata - - Requirements - + + Name + Ime - - With Custom GUI - + + Rate + Stopnja - - With CV Ports - + + Direction + Smer - - Real-time safe only - + + Type + Vrsta - - Stereo only - + + Min < Default < Max + Min < privzeto < maks - - With Inline Display - + + Logarithmic + Logaritmično - - Favorites only - + + SR Dependent + SR odvisno - - (Number of Plugins go here) - + + Audio + Zvok - - &Add Plugin - + + Control + Kontrola - - Cancel - Preklic + + Input + Vhod - - Refresh - + + Output + Izhod - - Reset filters - + + Toggled + Preklopljeno - - - - - - - - - - - - - - - - - TextLabel - + + Integer + Celoštevilčno - - Format: - + + Float + Decimalno - - Architecture: - + + + Yes + Da + + + lmms::gui::Lb302SynthView - - Type: - + + Cutoff Freq: + Frekvenca rezanja: - - MIDI Ins: - + + Resonance: + Resnonanca: - - Audio Ins: - + + Env Mod: + Ovoj mod: - - CV Outs: - + + Decay: + Upad: - - MIDI Outs: - + + 303-es-que, 24dB/octave, 3 pole filter + 303-karski, 24dB/oktavo, 3 polni filter - - Parameter Ins: - + + Slide Decay: + Drseči upad: - - Parameter Outs: - + + DIST: + POPAČ: - - Audio Outs: - + + Saw wave + Žagasta oblika - - CV Ins: - + + Click here for a saw-wave. + Kliknite sem za žagasti val. - - UniqueID: - + + Triangle wave + Trikotna oblika - - Has Inline Display: - + + Click here for a triangle-wave. + Kliknite sem za trikotni val. - - Has Custom GUI: - + + Square wave + Pravokotna oblika - - Is Synth: - + + Click here for a square-wave. + Kliknite sem za pravokotni val. - - Is Bridged: - + + Rounded square wave + Zaokrožen pravokotni val - - Information - + + Click here for a square-wave with a rounded end. + Kliknite sem za pravokotni val za zaobljenim koncem. - - Name - Ime + + Moog wave + Moog val - - Label/URI - + + Click here for a moog-like wave. + Kliknite sem za Moogu podoben val. - - Maker - + + Sine wave + Sinusna oblika - - Binary/Filename - + + Click for a sine-wave. + Kliknite sem za sinusni val. - - Focus Text Search - + + + White noise wave + Val belega šuma - - Ctrl+F - + + Click here for an exponential wave. + Kliknite sem za eksponentni val. - - - PluginEdit - - Plugin Editor - + + Click here for white-noise. + Kliknite sem za beli šum. - - Edit - + + Bandlimited saw wave + Pasovno omejen žagasti val - - Control - + + Click here for bandlimited saw wave. + Kliknite sem za pasovno omejen žagasti val. - - MIDI Control Channel: - + + Bandlimited square wave + Pasovno omejen pravokotni val - - N - + + Click here for bandlimited square wave. + Kliknite sem za pasovno omejen pravokotni val. - - Output dry/wet (100%) - + + Bandlimited triangle wave + Pasovno omejen trikotni val. - - Output volume (100%) - + + Click here for bandlimited triangle wave. + Kliknite sem za pasovno omejen trikotni val. - - Balance Left (0%) - + + Bandlimited moog saw wave + Pasovno omejen Moog žagasti val - - - Balance Right (0%) - + + Click here for bandlimited moog saw wave. + Kliknite sem za pasovno omejen Moog žagasti val. + + + lmms::gui::LcdFloatSpinBox - - Use Balance - + + Set value + Določi vrednost - - Use Panning - + + Please enter a new value between %1 and %2: + Vnesite novo vrednost med %1 in %2: + + + lmms::gui::LcdSpinBox - - Settings - Nastavitve + + Set value + Določi vrednost - - Use Chunks - + + Please enter a new value between %1 and %2: + Vnesite novo vrednost med %1 in %2: + + + + lmms::gui::LeftRightNav + + + + + Previous + Nazaj - - Audio: - + + + + Next + Naprej - - Fixed-Size Buffer - + + Previous (%1) + Nazaj (%1) - - Force Stereo (needs reload) - + + Next (%1) + Naprej (%1) + + + lmms::gui::LfoControllerDialog - - MIDI: - + + LFO + NFO - - Map Program Changes - + + BASE + OSNOVA - - Send Bank/Program Changes - + + Base: + Osnova: - - Send Control Changes - + + FREQ + FREKV - - Send Channel Pressure - + + LFO frequency: + NFO frekvenca: - - Send Note Aftertouch - + + AMNT + KOLIČ - - Send Pitchbend - + + Modulation amount: + Količina modulacije: - - Send All Sound/Notes Off - + + PHS + FAZ - - -Plugin Name - - + + Phase offset: + Premik faze: - - Program: - + + degrees + stopinj - - MIDI Program: - + + Sine wave + Sinusna oblika - - Save State - + + Triangle wave + Trikotna oblika - - Load State - + + Saw wave + Žagasta oblika - - Information - + + Square wave + Pravokotna oblika - - Label/URI: - + + Moog saw wave + Moog pravokotni val - - Name: - + + Exponential wave + Eksponentni val - - Type: - + + White noise + Beli šum - - Maker: - + + User-defined shape. +Double click to pick a file. + Uporabniško določena oblika. +Dvojni klik za izbiro datoteke. - - Copyright: - + + Multiply modulation frequency by 1 + Zmnoži frekvenco moduliranja z 1 - - Unique ID: - + + Multiply modulation frequency by 100 + Zmnoži frekvenco moduliranja s 100 - - - PluginFactory - - Plugin not found. - + + Divide modulation frequency by 100 + Deli frekvenco moduliranja s 100 + + + lmms::gui::LfoGraph - - LMMS plugin %1 does not have a plugin descriptor named %2! + + %1 Hz - PluginParameter + lmms::gui::MainWindow - - Form - + + Configuration file + Nastavitvena datoteka - - Parameter Name - + + Error while parsing configuration file at line %1:%2: %3 + Napaka pri razčlenjevanju nastavitvene datoteke v vrstici %1:%2: %3 - - ... - + + Could not open file + Ne morem odpreti datoteke - - - PluginRefreshW - - Carla - Refresh - + + Could not open file %1 for writing. +Please make sure you have write permission to the file and the directory containing the file and try again! + Datoteke %1 ni bilo mogoče odpreti za zapisovanje. +Prepričajte se, da imate pravico za zapisovanje v to datoteko in njeno mapo ter poskusite znova! - - Search for new... - + + Project recovery + Obnova projekta - - LADSPA - + + There is a recovery file present. It looks like the last session did not end properly or another instance of LMMS is already running. Do you want to recover the project of this session? + Na voljo je obnovitvena datoteka. Videti je, da se zadnja seja ni pravilno končala ali da je hkrati zagnana še ena instanca LMMS. Ali želite obvnoviti projekt te seje? - - DSSI - + + + Recover + Obnova - - LV2 - + + Recover the file. Please don't run multiple instances of LMMS when you do this. + Obnova datoteke. Pri tem dejanju je potrebno paziti na to, da ni zagnanih več instanc LMMS. - - VST2 - + + + Discard + Opusti - - VST3 - + + Launch a default session and delete the restored files. This is not reversible. + Zaženi privzeto sejo in pobriši obnovljene datoteke. Tega ni mogoče preklicati. - - AU - + + Version %1 + Različica %1 - - SF2/3 - + + Preparing plugin browser + Pripravljam brskalnik za vtičnike - - SFZ - + + Preparing file browsers + Prirpavljam datotečni brskalnik - - Native - + + My Projects + Moji projekti - - POSIX 32bit - + + My Samples + Moji vzorci - - POSIX 64bit - + + My Presets + Moje predloge - - Windows 32bit - + + My Home + Moj dom - - Windows 64bit + + Root Directory - - Available tools: - + + Volumes + Nosilci - - python3-rdflib (LADSPA-RDF support) - + + My Computer + Moj računalnik - - carla-discovery-win64 - + + Loading background picture + Nalagam sliko ozadja - - carla-discovery-native - + + &File + &Datoteka - - carla-discovery-posix32 - + + &New + &Novo - - carla-discovery-posix64 - + + &Open... + &Odpri... - - carla-discovery-win32 - + + &Save + &Shrani - - Options: - + + Save &As... + Shr&ani kot... - - Carla will run small processing checks when scanning the plugins (to make sure they won't crash). -You can disable these checks to get a faster scanning time (at your own risk). - + + Save as New &Version + Shrani kot no&vo različico - - Run processing checks while scanning - + + Save as default template + Shrani kot privzeto predlogo - - Press 'Scan' to begin the search - + + Import... + Uvozi... - - Scan - + + E&xport... + &Izvozi - - >> Skip - + + E&xport Tracks... + Iz&vozi steze... - - Close - Zapri + + Export &MIDI... + Izvozi &MIDI... - - - PluginWidget - - - - - - Frame - + + &Quit + I&zhod - - Enable - + + &Edit + &Uredi - - On/Off - + + Undo + Razveljavi - - - - - PluginName - + + Redo + Uveljavi - - MIDI + + Scales and keymaps - - AUDIO IN - + + Settings + Nastavitve - - AUDIO OUT - + + &View + &Prikaz - - GUI - + + &Tools + &Orodja - - Edit - + + &Help + &Pomoč - - Remove - + + Online Help + Spletna pomoč - - Plugin Name - + + Help + Pomoč - - Preset: - + + About + O programu - - - ProjectNotes - - Project Notes - Zabeležke o projektu + + Create new project + Ustvari nov projekt - - Enter project notes here - + + Create new project from template + Ustvari nov projekt iz predloge - - Edit Actions - + + Open existing project + Odpri obstoječi projekt - - &Undo - Razveljavi + + Recently opened projects + Nedavno odprti projekti - - %1+Z - + + Save current project + Shrani trenutni projekt + + + + Export current project + Izvozi trenutni projekt - - &Redo - Uveljavi + + Metronome + Metronom - - %1+Y - + + + Song Editor + Urejevalnik skladbe - - &Copy - + + + Pattern Editor + Urejevalnik matrik - - %1+C - + + + Piano Roll + Klavirsko črtovje - - Cu&t - + + + Automation Editor + Urejevalnik avtomatizacije - - %1+X - + + + Mixer + Mešalka - - &Paste - + + Show/hide controller rack + Prikaži/skrij regal krmilnikov - - %1+V - + + Show/hide project notes + Prikaži/skrij beležke projekta - - Format Actions - + + Untitled + neimenovano - - &Bold - + + Recover session. Please save your work! + Obnovitvena seja. Shranite dokumente! - - %1+B - + + LMMS %1 + LMMS %1 - - &Italic - + + Recovered project not saved + Obnovljen projekt ni bil shranjen - - %1+I - + + This project was recovered from the previous session. It is currently unsaved and will be lost if you don't save it. Do you want to save it now? + Ta projekt je bil obnovljen s prejšnje seje. Trenutno ni shranjen in bo izgubljen, če ga ne shranite. Ali ga želite shraniti? - - &Underline - + + Project not saved + Projekt ni shranjen - - %1+U - + + The current project was modified since last saving. Do you want to save it now? + Trenutni projekt je bil po zadnjem shranjevanju spremenjen. Ali ga želite sedaj shraniti? - - &Left - + + Open Project + Odpri projekt - - %1+L - + + LMMS (*.mmp *.mmpz) + LMMS (*.mmp *.mmpz) - - C&enter - + + Save Project + Shrani projekt - - %1+E - + + LMMS Project + LMMS projekt - - &Right - + + LMMS Project Template + Predloga za LMMS projekt - - %1+R - + + Save project template + Shrani predlogo projekta - - &Justify - + + Overwrite default template? + Prepišem privzeto predlogo? - - %1+J - + + This will overwrite your current default template. + To bo prepisalo vašo trenutno privzeto predlogo. - - &Color... - + + Help not available + Pomoč ni na voljo - - - ProjectRenderer - - WAV (*.wav) - + + Currently there's no help available in LMMS. +Please visit http://lmms.sf.net/wiki for documentation on LMMS. + Trenutno LMMS ne ponuja pomoči. +Obiščite http://lmms.sf.net/wiki za ogled LMMS dokumentacije. - - FLAC (*.flac) - + + Controller Rack + Regal krmilnikov - - OGG (*.ogg) - + + Project Notes + Projektne beležke - - MP3 (*.mp3) - + + Fullscreen + Celozaslonsko - - - QObject - - Reload Plugin - + + Volume as dBFS + Glasnost kot dBFS - - Show GUI - + + Smooth scroll + Mehko drsenje - - Help - + + Enable note labels in piano roll + Na klavirskem črtovju prikaži oznake not - - - QWidget - - - - - Name: - + + MIDI File (*.mid) + MIDI datoteka (*.mid) - - URI: - + + + untitled + neimenovano - - - - Maker: - + + + Select file for project-export... + Izberi datoteko za izvoz projekta... - - - - Copyright: - + + Select directory for writing exported tracks... + Izberite mapo za zapisovanje izvoženih datotek... - - - Requires Real Time: - + + Save project + Shrani projekt - - - - - - - Yes - + + Project saved + Projekt je shranjen - - - - - - - No - + + The project %1 is now saved. + Projekt %1 je zdaj shranjen - - - Real Time Capable: - + + Project NOT saved. + Projekt NI shranjen - - - In Place Broken: - + + The project %1 was not saved! + Projekt %1 ni bil shranjen - - - Channels In: - + + Import file + Uvozi datoteko - - - Channels Out: - + + MIDI sequences + MIDI sekvence - - File: %1 - + + Hydrogen projects + Hydrogen projekti - - File: - + + All file types + Vse vrste datotek - RecentProjectsMenu + lmms::gui::MalletsInstrumentView - - &Recently Opened Projects - Nedavno odp&Rti projekti + + Instrument + Instrument - - - RenameDialog - - Rename... - + + Spread + Razpršeno - - - ReverbSCControlDialog - - Input - + + Spread: + Razpršeno: - - Input gain: + + Random - - Size + + Random: - - Size: - + + Missing files + Manjkajoče datoteke - - Color - + + Your Stk-installation seems to be incomplete. Please make sure the full Stk-package is installed! + Stk namestitev je nepopolna. Prepričajte sem da je nameščen celotni Stk paket. - - Color: - + + Hardness + Trdota - - Output - + + Hardness: + Trdota: - - Output gain: - + + Position + Položaj - - - ReverbSCControls - - Input gain - + + Position: + Položaj: - - Size - + + Vibrato gain + Jakost vibrata - - Color - + + Vibrato gain: + Jakost vibrata: - - Output gain - + + Vibrato frequency + Frekvenca vibrata - - - SaControls - - Pause - + + Vibrato frequency: + Frekvenca vibrata: - - Reference freeze - + + Stick mix + Palični miks - - Waterfall - + + Stick mix: + Palični miks: - - Averaging - + + Modulator + Modulator - - Stereo - + + Modulator: + Modulator: - - Peak hold - + + Crossfade + Navzkrižno + + + + Crossfade: + Navzkrižno: + + + + LFO speed + NFO hitrost + + + + LFO speed: + NFO hitrost: - - Logarithmic frequency - + + LFO depth + NFO globina - - Logarithmic amplitude - + + LFO depth: + NFO globina: - - Frequency range - + + ADSR + ADSR - - Amplitude range - + + ADSR: + ADSR: - - FFT block size - + + Pressure + Pritisk - - FFT window type - + + Pressure: + Pritisk: - - Peak envelope resolution - + + Speed + Hitrost - - Spectrum display resolution - + + Speed: + Hitrost: + + + lmms::gui::ManageVSTEffectView - - Peak decay multiplier - + + - VST parameter control + - VST nadzor parametrov - - Averaging weight - + + VST sync + VST sinhr - - Waterfall history size - + + + Automated + Samodejno - - Waterfall gamma correction - + + Close + Zapri + + + lmms::gui::ManageVestigeInstrumentView - - FFT window overlap - + + + - VST plugin control + - nadzor VST vtičnika - - FFT zero padding - + + VST Sync + VST sinhronizacija - - - Full (auto) - + + + Automated + Samodejno - - - - Audible - + + Close + Zapri + + + lmms::gui::MeterDialog - - Bass - + + + Meter Numerator + Števec metruma - - Mids - + + Meter numerator + Števec metruma - - High - + + + Meter Denominator + Imenovalec metruma - - Extended - + + Meter denominator + Imenovalec metruma - - Loud - + + TIME SIG + ČAS OZNAKA + + + lmms::gui::MicrotunerConfig - - Silent + + Selected scale slot - - (High time res.) + + Selected keymap slot - - (High freq. res.) - + + + First key + Prvi ključ - - Rectangular (Off) - + + + Last key + Zadnji ključ - - - Blackman-Harris (Default) - + + + Middle key + Srednji ključ - - Hamming - + + + Base key + Osnovni ključ - - Hanning - + + + + Base note frequency + Frekvenca osnovne note - - - SaControlsDialog - - Pause + + Microtuner Configuration - - Pause data acquisition + + Scale slot to edit: - - Reference freeze - + + Scale description. Cannot start with "!" and cannot contain a newline character. + Opis lestvice. Ne more se začeti s "!" in ne sme vsebovati znaka za novo vrstico. - - Freeze current input as a reference / disable falloff in peak-hold mode. - + + + Load + Naloži - - Waterfall - + + + Save + Shrani - - Display real-time spectrogram + + Load scale definition from a file. - - Averaging + + Save scale definition to a file. - - Enable exponential moving average - + + Enter intervals on separate lines. Numbers containing a decimal point are treated as cents. +Other inputs are treated as integer ratios and must be in the form of 'a/b' or 'a'. +Unity (0.0 cents or ratio 1/1) is always present as a hidden first value; do not enter it manually. + Vnesite intervale v ločene vrstice. Številke, ki vsebujejo decimalke, se obravnavajo kot stotinje. +Ostali vnosi se obravnavajo kot celoštevilska razmerja in morajo biti zapisani v obliki 'a/b' ali 'a'. +Enotnost (0.0 stotinj ali razmerje 1/1) je vedno prikazana koz skrita prva vrednost; ne vnašajte je ročno. - - Stereo + + Apply scale changes - - Display stereo channels separately + + Verify and apply changes made to the selected scale. To use the scale, select it in the settings of a supported instrument. - - Peak hold + + Keymap slot to edit: - - Display envelope of peak values - + + Keymap description. Cannot start with "!" and cannot contain a newline character. + Opis mape tipk. Ne more se začeti s "!" in ne sme vsebovati znaka za novo vrstico. - - Logarithmic frequency + + Load key mapping definition from a file. - - Switch between logarithmic and linear frequency scale + + Save key mapping definition to a file. - - - Frequency range - + + Enter key mappings on separate lines. Each line assigns a scale degree to a MIDI key, +starting with the middle key and continuing in sequence. +The pattern repeats for keys outside of the explicit keymap range. +Multiple keys can be mapped to the same scale degree. +Enter 'x' if you wish to leave the key disabled / not mapped. + Vnesite mapiranja tipkovnice v ločene vrstice. Vsaka vrstica pripiše neki MIDI tipki stopnjo na lestvivi, +začenši s srednjo tipko in nadaljujoč po zaporedju. +Vzorec se ponavlja za tipke, ki so izven navedenega razpona v mapi tipk. +Več tipk je mogoče pripisati isti stopnji lestvice. +Vnesite 'x', če želite pustiti tipko nedodeljeno/ nemapirano. - - Logarithmic amplitude - + + FIRST + PRVA - - Switch between logarithmic and linear amplitude scale - + + First MIDI key that will be mapped + Prva MIDI tipka, ki bo mapirana - - - Amplitude range - + + LAST + ZADNJA - - Envelope res. - + + Last MIDI key that will be mapped + Zadnja MIDI tipka, ki bo mapirana - - Increase envelope resolution for better details, decrease for better GUI performance. - + + MIDDLE + SREDNJA - - - Draw at most - + + First line in the keymap refers to this MIDI key + Prva vrstica mape tipk se nanaša na to MIDI tipko - - envelope points per pixel - + + BASE N. + OSN.NOTA - - Spectrum res. - + + Base note frequency will be assigned to this MIDI key + Frekvenca osnovne note bo pripisana tej MIDI tipki - - Increase spectrum resolution for better details, decrease for better GUI performance. - + + BASE NOTE FREQ + FREKV OSN NOTE - - spectrum points per pixel + + Apply keymap changes - - Falloff factor + + Verify and apply changes made to the selected key mapping. To use the mapping, select it in the settings of a supported instrument. - - Decrease to make peaks fall faster. - + + Scale parsing error + Napaka pri razčlenjevanju lestvice - - Multiply buffered value by - + + Scale name cannot start with an exclamation mark + Ime lestvice se ne more začeti s klicajem - - Averaging weight - + + Scale name cannot contain a new-line character + Ime lestvice ne more vsebovati znaka za novo vrstico - - Decrease to make averaging slower and smoother. - + + Interval defined in cents cannot be converted to a number + Interval definiran v stotnjah ne more biti pretovrjen v številko - - New sample contributes - + + Numerator of an interval defined as a ratio cannot be converted to a number + Števec intervala, ki je definiran kot razmerje, ne more biti pretvorjen v številko - - Waterfall height - + + Denominator of an interval defined as a ratio cannot be converted to a number + Imenovalec intervala, ki je definiran kot razmerje, ne more biti pretvorjen v številko - - Increase to get slower scrolling, decrease to see fast transitions better. Warning: medium CPU usage. - + + Interval defined as a ratio cannot be negative + Interval, ki je definiran kot razmerje, ne more biti negativno - - Keep - + + Keymap parsing error + Napaka pri razčlenjevanju mape tipk - - lines - + + Keymap name cannot start with an exclamation mark + Ime mape tipk se ne more začeti s klicajem - - Waterfall gamma - + + Keymap name cannot contain a new-line character + Ime mape tipk ne more vsebovati znaka za novo vrstico - - Decrease to see very weak signals, increase to get better contrast. - + + Scale degree cannot be converted to a whole number + Stopnja lestvice ne more biti pretovrjena v celo število - - Gamma value: - + + Scale degree cannot be negative + Stopnja lestvice ne more biti negativna - - Window overlap - + + Invalid keymap + Napačna mapa tipk - - Increase to prevent missing fast transitions arriving near FFT window edges. Warning: high CPU usage. - + + Base key is not mapped to any scale degree. No sound will be produced as there is no way to assign reference frequency to any note. + Osnovna tipka ni pripisana stopnji lestvice. Zvok ne bo ustvarjen, ker notam ni možno pripisati referenčne frekvence. - - Each sample processed - + + Open scale + Odpri lestvico - - times - + + + Scala scale definition (*.scl) + Scala definicija lestvice (*.scl) - - Zero padding - + + Scale load failure + Napak pri nalaganju lestvice - - Increase to get smoother-looking spectrum. Warning: high CPU usage. - + + + Unable to open selected file. + Izbrane datoteke ni mogoče odpreti. - - Processing buffer is - + + Open keymap + Odpri mapo tipk - - steps larger than input block - + + + Scala keymap definition (*.kbm) + Scala definicija mape tipk (*.kbm) - - Advanced settings - + + Keymap load failure + Napak pri nalaganju mape tipk - - Access advanced settings - + + Save scale + Shrani lestvico - - - FFT block size - + + Scale save failure + Napaka pri shranjevanju lestvice - - - FFT window type - + + + Unable to open selected file for writing. + Izbrane datoteke ni mogoče odpreti za zapisovanje. - - - SampleBuffer - - Fail to open file - + + Save keymap + Shrani mapo tipk - - Audio files are limited to %1 MB in size and %2 minutes of playing time - + + Keymap save failure + Napaka pri shranjevanju mape tipk + + + lmms::gui::MidiCCRackView - - Open audio file - Odpri avdio datoteko + + + MIDI CC Rack - %1 + MIDI CC regal -%1 - - All Audio-Files (*.wav *.ogg *.ds *.flac *.spx *.voc *.aif *.aiff *.au *.raw) - + + MIDI CC Knobs: + MIDI CC regulatorji: - - Wave-Files (*.wav) - + + CC %1 + CC %1 + + + lmms::gui::MidiClipView - - OGG-Files (*.ogg) - + + + Transpose + Transponiraj - - DrumSynth-Files (*.ds) - + + Semitones to transpose by: + Transponiraj za poltonov: - - FLAC-Files (*.flac) - + + Open in piano-roll + Odpri na klavirskem črtvoju - - SPEEX-Files (*.spx) - + + Set as ghost in piano-roll + Nastavi kot zakrite v klavirskem črtovju - - VOC-Files (*.voc) + + Set as ghost in automation editor - - AIFF-Files (*.aif *.aiff) - + + Clear all notes + Počisti vse note - - AU-Files (*.au) - + + Reset name + Ponastavi ime - - RAW-Files (*.raw) - + + Change name + Spremeni ime - - - SampleClipView - - Double-click to open sample - + + Add steps + Dodaj korake - - Delete (middle mousebutton) - + + Remove steps + Odstrani korake - - Delete selection (middle mousebutton) - + + Clone Steps + Kloniraj korake + + + lmms::gui::MidiSetupWidget - - Cut - + + Device + Naprava + + + lmms::gui::MixerChannelLcdSpinBox - - Cut selection + + Assign to: - - Copy + + New Mixer Channel - - Copy selection + + Please enter a new value between %1 and %2: - - Paste + + Set value + + + lmms::gui::MixerChannelView - - Mute/unmute (<%1> + middle click) + + Channel send amount - - Mute/unmute selection (<%1> + middle click) + + Mute - - Reverse sample + + Mute this channel - - Set clip color + + Solo - - Use track color + + Solo this channel - - - SampleTrack - - Volume - Obseg + + Fader %1 + - - Panning + + Move &left - - Mixer channel + + Move &right - - - Sample track + + Rename &channel - - - SampleTrackView - - Track volume + + R&emove channel - - Channel volume: + + Remove &unused channels - - VOL - GLS + + Color + - - Panning + + Change - - Panning: + + Reset - - PAN - PAN + + Pick random + - - Channel %1: %2 + + This Mixer Channel is being used. +Are you sure you want to remove this channel? + +Warning: This operation can not be undone. - - - SampleTrackWindow - - GENERAL SETTINGS + + Confirm removal - - Sample volume + + Don't ask again + + + lmms::gui::MixerView - - Volume: - Glasnost: + + Mixer + Mešalka + + + lmms::gui::MonstroView - - VOL - GLS + + Operators view + Prikaz operatorjev - - Panning - + + Matrix view + Matrični prikaz - - Panning: - + + + + Volume + Glasnost - - PAN - PAN + + + + Panning + Panorama - - Mixer channel - + + + + Coarse detune + Groba razglasitev - - CHANNEL - + + + + semitones + poltoni - - - SaveOptionsWidget - - Discard MIDI connections - + + + Fine tune left + Fina uglasitev levo - - Save As Project Bundle (with resources) - + + + + + cents + stotini - - - SetupDialog - - Reset to default value - + + + Fine tune right + Fina uglasitev desno - - Use built-in NaN handler - + + + + Stereo phase offset + Odmik stereo faze - - Settings - Nastavitve + + + + + + deg + stopinj - - - General - + + Pulse width + Širina pulza - - Graphical user interface (GUI) - + + Send sync on pulse rise + Pošlji sinh ko pulz narašča - - Display volume as dBFS - + + Send sync on pulse fall + Pošlji sinh ko pulz upada - - Enable tooltips - + + Hard sync oscillator 2 + Trdi sinh oscilator 2 - - Enable master oscilloscope by default - + + Reverse sync oscillator 2 + Obrni sinh oscilator 2 - - Enable all note labels in piano roll - + + Sub-osc mix + Pod-osc miks - - Enable compact track buttons - + + Hard sync oscillator 3 + Trdi sinh oscilator 3 - - Enable one instrument-track-window mode - + + Reverse sync oscillator 3 + Obrni sinh oscilator 3 - - Show sidebar on the right-hand side - + + + + + Attack + Napad - - Let sample previews continue when mouse is released - + + + Rate + Stopnja - - Mute automation tracks during solo - + + + Phase + Faza - - Show warning when deleting tracks - + + + Pre-delay + Pred-zamik - - Projects - + + + Hold + Zadrži - - Compress project files by default - + + + Decay + Upad - - Create a backup file when saving a project - + + + Sustain + Zadrži - - Reopen last project on startup - + + + Release + Spust - - Language - + + + Slope + Klanec - - - Performance - + + Mix osc 2 with osc 3 + Miksaj osc2 z osc 3 - - Autosave - + + Modulate amplitude of osc 3 by osc 2 + Moduliraj amplitudo osc 3 za osc 2 - - Enable autosave - + + Modulate frequency of osc 3 by osc 2 + Moduliraj frekvenco osc 3 za osc 2 - - Allow autosave while playing - + + Modulate phase of osc 3 by osc 2 + Moduliraj fazo osc 3 za osc 2 - - User interface (UI) effects vs. performance - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Modulation amount + Količina modulacije + + + lmms::gui::MultitapEchoControlDialog - - Smooth scroll in song editor - + + Length + Dolžina - - Display playback cursor in AudioFileProcessor - + + Step length: + Dolžina koraka: - - Plugins - + + Dry + Surov - - VST plugins embedding: - + + Dry gain: + Surovo jakost: - - No embedding - + + Stages + Stopnje - - Embed using Qt API - + + Low-pass stages: + Nizkoprepustne stopnje: - - Embed using native Win32 API - + + Swap inputs + Zamenjaj vhode - - Embed using XEmbed protocol - + + Swap left and right input channels for reflections + Zamenjaj levi ibn desni vhodni kanal za odboje + + + lmms::gui::NesInstrumentView - - Keep plugin windows on top when not embedded - + + + + + Volume + Glasnost - - Sync VST plugins to host playback - + + + + Coarse detune + Groba razglasitev - - Keep effects running even without input - + + + + Envelope length + Dolžina ovoja - - - Audio - + + Enable channel 1 + Vklopi kanal 1 - - Audio interface - + + Enable envelope 1 + Vklopi ovoj 1 - - HQ mode for output audio device - + + Enable envelope 1 loop + Vklopi ovoj 1 zanko - - Buffer size - + + Enable sweep 1 + Vklopi prelet 1 - - - MIDI - + + + Sweep amount + Količina preleta - - MIDI interface - + + + Sweep rate + Stopnja preleta - - Automatically assign MIDI controller to selected track - + + + 12.5% Duty cycle + 12,5% cikelj izvajanja - - LMMS working directory - + + + 25% Duty cycle + 25% cikelj izvajanja - - VST plugins directory - + + + 50% Duty cycle + 50% cikelj izvajanja - - LADSPA plugins directories - + + + 75% Duty cycle + 75% cikelj izvajanja - - SF2 directory - + + Enable channel 2 + Vklopi kanal 2 - - Default SF2 - + + Enable envelope 2 + Vklopi ovoj 2 - - GIG directory - + + Enable envelope 2 loop + Vklopi ovoj 2 zanko - - Theme directory - + + Enable sweep 2 + Vklopi prelet 2 - - Background artwork - + + Enable channel 3 + Vklopi kanal 3 - - Some changes require restarting. - + + Noise Frequency + Frekvenca šuma - - Autosave interval: %1 - + + Frequency sweep + Prelet frekvence - - Choose the LMMS working directory - + + Enable channel 4 + Vklopi kanal 4 - - Choose your VST plugins directory - + + Enable envelope 4 + Vklopi ovoj 4 - - Choose your LADSPA plugins directory - + + Enable envelope 4 loop + Vklopi ovoj 4 zanko - - Choose your default SF2 - + + Quantize noise frequency when using note frequency + Kvantizacija frekvence šuma, kadar je uporabljena frekvenca note - - Choose your theme directory - + + Use note frequency for noise + Za šum uporabi frekvenco note - - Choose your background picture - + + Noise mode + Način šuma - - - Paths - + + Master volume + Glavna glasnost - - OK - V redu + + Vibrato + Vibrato + + + lmms::gui::OpulenzInstrumentView - - Cancel - Preklic + + + Attack + Napad - - Frames: %1 -Latency: %2 ms - + + + Decay + Upad - - Choose your GIG directory - + + + Release + Spust - - Choose your SF2 directory - + + + Frequency multiplier + Množilnik frekvence + + + lmms::gui::OrganicInstrumentView - - minutes - minute + + Distortion: + Popačenje: - - minute - minuta + + Volume: + Glasnost: - - Disabled - + + Randomise + Naključno - - - SidInstrument - - Cutoff frequency - + + + Osc %1 waveform: + Osc %1 valovna oblika: - - Resonance - + + Osc %1 volume: + Osc %1 glasnost: - - Filter type - + + Osc %1 panning: + Osc %1 panorama: - - Voice 3 off - + + Osc %1 stereo detuning + Osc %1 stereo razglasitev - - Volume - Glasnost + + cents + stotinov - - Chip model - + + Osc %1 harmonic: + Osc %1 harmonično - SidInstrumentView + lmms::gui::Oscilloscope - - Volume: - Glasnost: + + Oscilloscope + Osciloskop - - Resonance: - + + Click to enable + Klikni za vklop + + + lmms::gui::PatmanView - - - Cutoff frequency: - + + Open patch + Odpri program - - High-pass filter - + + Loop + Zanka - - Band-pass filter - + + Loop mode + Način zanke - - Low-pass filter - + + Tune + Uglasitev - - Voice 3 off - + + Tune mode + Način uglaševanja - - MOS6581 SID - + + No file selected + Nobena datoteka ni izbrana - - MOS8580 SID - + + Open patch file + Odpri programsko datoteko - - - Attack: - + + Patch-Files (*.pat) + Programske datoteke (*.pat) + + + lmms::gui::PatternClipView - - - Decay: - + + Open in Pattern Editor + Odpri v urejevalniku matrik - - Sustain: - + + Reset name + Ponastavi ime - - - Release: - + + Change name + Spremeni ime + + + lmms::gui::PatternEditorWindow - - Pulse Width: - + + Pattern Editor + Urejevalnik matrik - - Coarse: - + + Play/pause current pattern (Space) + Predvajanje/Premor trenutne matrike (presledek) - - Pulse wave - + + Stop playback of current pattern (Space) + Zaustavi predvajanje trenutne matrike (presledek) - - Triangle wave - + + Pattern selector + Izbirnik matrike - - Saw wave - + + Track and step actions + Dejanja za stezo in korak - - Noise - + + New pattern + Nova matrika - - Sync - + + Clone pattern + Kloniraj matriko - - Ring modulation - + + Add sample-track + Dodaj stezo za vzorce - - Filtered - + + Add automation-track + Dodaj stezo z avtomatizacijo - - Test - + + Remove steps + Odstrani korake - - Pulse width: - + + Add steps + Dodaj korake - - - SideBarWidget - - Close - Zapri + + Clone Steps + Kloniraj korake - Song - - - Tempo - Tempo - + lmms::gui::PeakControllerDialog - - Master volume - Poveljnik ladje + + PEAK + VRH - - Master pitch - Poveljnik ladje + + LFO Controller + NFO krmilnik + + + lmms::gui::PeakControllerEffectControlDialog - - Aborting project load - + + BASE + OSNOVA - - Project file contains local paths to plugins, which could be used to run malicious code. - + + Base: + Osnova: - - Can't load project: Project file contains local paths to plugins. - + + AMNT + KOLIČ - - LMMS Error report - + + Modulation amount: + Količina modulacije: - - (repeated %1 times) - + + MULT + MNOŽ - - The following errors occurred while loading: - + + Amount multiplicator: + Množilnik količine: - - - SongEditor - - Could not open file - + + ATCK + NPAD - - Could not open file %1. You probably have no permissions to read this file. - Please make sure to have at least read permissions to the file and try again. - + + Attack: + Napad: - - Operation denied - + + DCAY + UPAD - - A bundle folder with that name already eists on the selected path. Can't overwrite a project bundle. Please select a different name. - + + Release: + Spust: - - - - Error - + + TRSH + PRAG - - Couldn't create bundle folder. - + + Treshold: + Prag: - - Couldn't create resources folder. - + + Mute output + Uitšaj izhod - - Failed to copy resources. - + + Absolute value + Absolutna vrednost + + + lmms::gui::PeakIndicator - - Could not write file + + -inf + + + lmms::gui::PianoRoll - - Could not open %1 for writing. You probably are not permitted towrite to this file. Please make sure you have write-access to the file and try again. - + + Note Velocity + Hitrost note - - This %1 was created with LMMS %2 - + + Note Panning + Panorama note - - Error in file - + + Mark/unmark current semitone + Označi/odznači trenutni polton - - The file %1 seems to contain errors and therefore can't be loaded. - + + Mark/unmark all corresponding octave semitones + Označi/odznači vse pripadajoče poltone oktave - - Version difference - + + Mark current scale + Označi trenutno lestvico - - template - + + Mark current chord + Označi trenutni akord - - project - projekt + + Unmark all + Odznači vse - - Tempo - Tempo + + Select all notes on this key + Izberi vse note tega ključa - - TEMPO - + + Note lock + Zaklep note - - Tempo in BPM - + + Last note + Zadnja nota - - High quality mode - + + No key + Ni ključa - - - - Master volume - Poveljnik ladje + + No scale + Ni lestivce - - - - Master pitch - Poveljnik ladje + + No chord + Ni akorda - - Value: %1% - + + Nudge + Potisni - - Value: %1 semitones - + + Snap + Preskok - - - SongEditorWindow - - Song-Editor - Urejevalnik skladbe + + Velocity: %1% + Hitrost: %1% - - Play song (Space) - + + Panning: %1% left + Panorama: %1% levo - - Record samples from Audio-device - + + Panning: %1% right + Panorama: %1% desno - - Record samples from Audio-device while playing song or BB track - + + Panning: center + Panorama: sredina - - Stop song (Space) - + + Glue notes failed + Lepljenje not ni uspelo - - Track actions - + + Please select notes to glue first. + Najprej izberite note za lepljenje. - - Add beat/bassline - + + Please open a clip by double-clicking on it! + Odprite izsek z dvojnim klikom! - - Add sample-track - + + + Please enter a new value between %1 and %2: + Vnesite novo vrednost med %1 in %2: + + + lmms::gui::PianoRollWindow - - Add automation-track - + + Play/pause current clip (Space) + Predvajanje/premor trenutnega izseka (preslednica) - - Edit actions - + + Record notes from MIDI-device/channel-piano + Snemaj note z MIDI naprave/kanala-pianina - - Draw mode - + + Record notes from MIDI-device/channel-piano while playing song or pattern track + Snema note z MIDI naprave/kanala-pianina medtem ko predvaja skladbo ali stezo z matriko - - Knife mode (split sample clips) - + + Record notes from MIDI-device/channel-piano, one step at the time + Snema note z MIDI naprave/kanala-pianina, korak po koraku - - Edit mode (select and move) - + + Stop playing of current clip (Space) + Zaustavi predvajanje trenutnega izseka (preslednica) - - Timeline controls - + + Edit actions + Uredi dejanja - - Bar insert controls - + + Draw mode (Shift+D) + Način risanja (shift+D) - - Insert bar - + + Erase mode (Shift+E) + Način brisanja (Shift+E) - - Remove bar - + + Select mode (Shift+S) + Način izbire (Shift+S) - - Zoom controls - + + Pitch Bend mode (Shift+T) + Način pregibanja višine (Shift+T) - - Horizontal zooming - + + Quantize + Kvantizacija - - Snap controls - + + Quantize positions + Kvantizacija položajev - - - Clip snapping size - + + Quantize lengths + Kvantizacija dolžin - - Toggle proportional snap on/off - + + File actions + Dejanja datoteke - - Base snapping size - + + Import clip + Uvozi izsek - - - StepRecorderWidget - - Hint - + + + Export clip + Izvozi izsek - - Move recording curser using <Left/Right> arrows - + + Copy paste controls + Nadzor kopiranja/lepljenja - - - SubWindow - - Close - Zapri + + Cut (%1+X) + Izreži (%1+X) - - Maximize - Maksimiraj + + Copy (%1+C) + Kopiraj (%1+C) - - Restore - Obnovi + + Paste (%1+V) + Prilepi (%1+V) - - - TabWidget - - - Settings for %1 - + + Timeline controls + Nadzor časovnice - - - TemplatesMenu - - New from template - + + Glue + Lepljenje - - - TempoSyncKnob - - - Tempo Sync - + + Knife + Nož - - No Sync - + + Fill + Zapolni - - Eight beats - + + Cut overlaps + Izreži prekrito - - Whole note - + + Min length as last + Minimalna dolžina vsaj - - Half note - + + Max length as last + Maksimalna dolžina vsaj - - Quarter note - + + Zoom and note controls + Nadzor povečave in not - - 8th note - + + Horizontal zooming + Vodoravna povečava - - 16th note - + + Vertical zooming + Navpična povečava - - 32nd note - + + Quantization + Kvantizacija - - Custom... - + + Note length + Dolžina note - - Custom - + + Key + Ključ - - Synced to Eight Beats - + + Scale + Skala - - Synced to Whole Note - + + Chord + Akord - - Synced to Half Note - + + Snap mode + Način preskoka - - Synced to Quarter Note - + + Clear ghost notes + Počisti zakrite note - - Synced to 8th Note - + + + Piano-Roll - %1 + Pianino-rolca - %1 - - Synced to 16th Note - + + + Piano-Roll - no clip + Pianino-rolca - brez izseka - - Synced to 32nd Note - + + + XML clip file (*.xpt *.xptz) + XML izsek (*.xpt *.xptz) - - - TimeDisplayWidget - - Time units - + + Export clip success + Uspešno izvožen izsek - - MIN - + + Clip saved to %1 + Izsek shranjen v %1 - - SEC - + + Import clip. + Uvozi izsek. - - MSEC - + + You are about to import a clip, this will overwrite your current clip. Do you want to continue? + Uvozili boste izsek, kar bo prepisalo trenuten izsek. Želite nadaljevati? - - - BAR - + + + Open clip + Odpri izsek - - BEAT - + + Import clip success + Uspešno uvožen izsek - - TICK - + + Imported clip %1! + Uvožen izsek %1! - TimeLineWidget + lmms::gui::PianoView - - Auto scrolling - + + Base note + Osnovna nota - - Loop points - + + First note + Prva nota - - After stopping go back to beginning - + + Last note + Zadnja nota + + + lmms::gui::PluginBrowser - - After stopping go back to position at which playing was started - + + Instrument Plugins + Vtičniki instrumentov - - After stopping keep position - + + Instrument browser + Brskalnik instrumentov - - Hint + + Drag an instrument into either the Song Editor, the Pattern Editor or an existing instrument track. - - Press <%1> to disable magnetic loop points. + + Search - Track - - - Mute - Mute - + lmms::gui::PluginDescWidget - - Solo - Solist + + Send to new instrument track + Pošlji na novo instrumentalno stezo - TrackContainer - - - Couldn't import file - - + lmms::gui::ProjectNotes - - Couldn't find a filter for importing file %1. -You should convert this file into a format supported by LMMS using another software. - + + Project Notes + Projektne beležke - - Couldn't open file - + + Enter project notes here + Sem vnesite zaznamke o projektu - - Couldn't open file %1 for reading. -Please make sure you have read-permission to the file and the directory containing the file and try again! - + + Edit Actions + Uredi dejanja - - Loading project... - Nalagam projekt... + + &Undo + Razveljavi - - - Cancel - Preklic + + %1+Z + %1+Z - - - Please wait... - + + &Redo + Uveljavi - - Loading cancelled - + + %1+Y + %1+Y - - Project loading was cancelled. - + + &Copy + $Kopiraj - - Loading Track %1 (%2/Total %3) - + + %1+C + %1+C - - Importing MIDI-file... - Uvažam MIDI datoteko... + + Cu&t + Iz&reži - - - Clip - - Mute - Mute + + %1+X + %1+X - - - ClipView - - Current position - + + &Paste + $Prilepi - - Current length - + + %1+V + %1+V - - - %1:%2 (%3:%4 to %5:%6) - + + Format Actions + Oblikuj dejanja - - Press <%1> and drag to make a copy. - + + &Bold + &Poudarjeno - - Press <%1> for free resizing. - + + %1+B + %1+B - - Hint - + + &Italic + Po&ševno - - Delete (middle mousebutton) - + + %1+I + %1+I - - Delete selection (middle mousebutton) - + + &Underline + Pod&črtano - - Cut - + + %1+U + %1+U - - Cut selection - + + &Left + &Levo - - Merge Selection - + + %1+L + %1+L - - Copy - + + C&enter + C&enter - - Copy selection - + + %1+E + %1+E - - Paste - + + &Right + &Desno - - Mute/unmute (<%1> + middle click) - + + %1+R + %1+R - - Mute/unmute selection (<%1> + middle click) - + + &Justify + Poravna&j - - Set clip color - + + %1+J + %1+J - - Use track color - + + &Color... + &Barva... - TrackContentWidget + lmms::gui::RecentProjectsMenu - - Paste - + + &Recently Opened Projects + Nedavno odp&Rti projekti - TrackOperationsWidget + lmms::gui::RenameDialog - - Press <%1> while clicking on move-grip to begin a new drag'n'drop action. - + + Rename... + Preimenuj... + + + lmms::gui::ReverbSCControlDialog - - Actions - + + Input + Vhod - - - Mute - Mute + + Input gain: + Vhodna jakost: - - - Solo - Solist + + Size + Velikost - - After removing a track, it can not be recovered. Are you sure you want to remove track "%1"? - + + Size: + Velikost: - - Confirm removal - + + Color + Barva - - Don't ask again - + + Color: + Barva: - - Clone this track - + + Output + Izhod - - Remove this track - + + Output gain: + Izhodna jakost: + + + lmms::gui::SaControlsDialog - - Clear this track - + + Pause + Premor - - Channel %1: %2 - + + Pause data acquisition + Premor pri pridobivanju podatkov - - Assign to new mixer Channel - + + Reference freeze + Zamrznitev reference - - Turn all recording on - + + Freeze current input as a reference / disable falloff in peak-hold mode. + Zamrzni trenutni vhod kot referenco / onemogoči padec v načinu zadrži-vrh - - Turn all recording off - + + Waterfall + Vodni slap - - Change color - + + Display real-time spectrogram + Prikaži ralno-časni spektrogram - - Reset color to default - + + Averaging + Določanje povprečja - - Set random color - + + Enable exponential moving average + Vklopi exponetno povprečje gibanja - - Clear clip colors - + + Stereo + Stereo - - - TripleOscillatorView - - Modulate phase of oscillator 1 by oscillator 2 - + + Display stereo channels separately + Ločeno prikaži stereo kanala - - Modulate amplitude of oscillator 1 by oscillator 2 - + + Peak hold + Zadrži vrh - - Mix output of oscillators 1 & 2 - + + Display envelope of peak values + Prikaži ovoj vrednosti vrhov - - Synchronize oscillator 1 with oscillator 2 - + + Logarithmic frequency + Logaritmična frekvenca - - Modulate frequency of oscillator 1 by oscillator 2 - + + Switch between logarithmic and linear frequency scale + Preklopi med logaritmično in linearno skalo frekvence - - Modulate phase of oscillator 2 by oscillator 3 - + + + Frequency range + Frekvenčni razpon - - Modulate amplitude of oscillator 2 by oscillator 3 - + + Logarithmic amplitude + Logaritmična amplituda - - Mix output of oscillators 2 & 3 - + + Switch between logarithmic and linear amplitude scale + Preklopi med logaritmično in linearno skalo ampllitude - - Synchronize oscillator 2 with oscillator 3 - + + + Amplitude range + Razpon amplitude - - Modulate frequency of oscillator 2 by oscillator 3 - + + + FFT block size + FFT velikost bloka - - Osc %1 volume: - + + + FFT window type + FFT vrsta okna - - Osc %1 panning: - + + Envelope res. + Ločljivost ovoja - - Osc %1 coarse detuning: - + + Increase envelope resolution for better details, decrease for better GUI performance. + Povečajte ločljivost spektra za več podrobnosti, zmanjšajte za boljšo odzivnost grafičnega vmesnika. - - semitones - + + Maximum number of envelope points drawn per pixel: + Največje število izrisanih pik ovoja na piksel: - - - Osc %1 fine detuning left: - + + + Spectrum res. + Loč. spektra - - - cents - + + Increase spectrum resolution for better details, decrease for better GUI performance. + Povečajte ločljivost spektra za več podrobnosti, zmanjšajte za boljšo odzivnost grafičnega vmesnika. - - Osc %1 fine detuning right: - + + Maximum number of spectrum points drawn per pixel: + Največje število izrisanih pik spšektra na piksel: - - Osc %1 phase-offset: - + + Falloff factor + Faktor upada - - - degrees - + + Decrease to make peaks fall faster. + Zmanjšajte za hitrejši upad vrhov. - - Osc %1 stereo phase-detuning: - + + Multiply buffered value by + Zmnoži medpomnjeno vrednost z - - Sine wave - + + Averaging weight + Povprečje teže - - Triangle wave - + + Decrease to make averaging slower and smoother. + Zmanjšajte da upočasnite in zmehčate določanje povprečja. - - Saw wave - + + New sample contributes + Novi prispveki vzorcev - - Square wave - + + Waterfall height + Višina vodnega slapa - - Moog-like saw wave - + + Increase to get slower scrolling, decrease to see fast transitions better. Warning: medium CPU usage. + Povečajte za počasnejše drsenje, zmanjšajte za boljši ogled hitrih prehodov. Opozorilo: srednja obremenitev procesorja. - - Exponential wave - + + Number of lines to keep: + Število ohranjenih vrstic: - - White noise - + + Waterfall gamma + Gamma vodnega slapa - - User-defined wave - + + Decrease to see very weak signals, increase to get better contrast. + Zmanjšajte za ogled zelo šibkih signalov, povečajte za boljši kontrast. - - - VecControls - - Display persistence amount - + + Gamma value: + Vrednost gamma: - - Logarithmic scale - + + Window overlap + Prekrivanje oken - - High quality - + + Increase to prevent missing fast transitions arriving near FFT window edges. Warning: high CPU usage. + Povečajte, da ne prezrete hitrih prehodov blizu robov FFT oken. Opozorilo: velika obremenitev procesorja. - - - VecControlsDialog - - HQ - + + Number of times each sample is processed: + Število obdelav za vsak vzorec: - - Double the resolution and simulate continuous analog-like trace. - + + Zero padding + Nič odmika - - Log. scale - + + Increase to get smoother-looking spectrum. Warning: high CPU usage. + Povečaj za bolj spekter bolj gladkega videza. Pozor: obremenjuje procesor. - - Display amplitude on logarithmic scale to better see small values. - + + Processing buffer is + Medpomnilnik za procesiranje je - - Persist. - + + steps larger than input block + korakov večji od vhodnega bloka - - Trace persistence: higher amount means the trace will stay bright for longer time. - + + Advanced settings + Napredne nastavitve - - Trace persistence - + + Access advanced settings + Dostop do naprednih nastavitev - VersionedSaveDialog - - - Increment version number - - + lmms::gui::SampleClipView - - Decrement version number - + + Double-click to open sample + Dvojni klik za odpiranje vzorca - - Save Options - + + Reverse sample + Obrni vzorec - - already exists. Do you want to replace it? + + Set as ghost in automation editor - VestigeInstrumentView - - - - Open VST plugin - - + lmms::gui::SampleTrackView - - Control VST plugin from LMMS host + + Mixer channel - - Open VST plugin preset - + + Track volume + Glasnost steze - - Previous (-) - + + Channel volume: + Glasnost kanala: - - Save preset - Shrani glasbilce + + VOL + GLASN - - Next (+) - + + Panning + Panorama - - Show/hide GUI - + + Panning: + Panorama: - - Turn off all notes - + + PAN + PAN - - DLL-files (*.dll) - + + %1: %2 + %1: %2 + + + lmms::gui::SampleTrackWindow - - EXE-files (*.exe) - + + Sample volume + Glasnost vzorca - - No VST plugin loaded - + + Volume: + Glasnost: - - Preset - + + VOL + GLASN - - by - + + Panning + Panorama - - - VST plugin control - + + Panning: + Panorama: - - - VstEffectControlDialog - - Show/hide - + + PAN + PAN - - Control VST plugin from LMMS host - + + Mixer channel + Mešalni kanal - - Open VST plugin preset - + + CHANNEL + KANAL + + + lmms::gui::SaveOptionsWidget - - Previous (-) - + + Discard MIDI connections + Opusti MIDI povezave - - Next (+) - + + Save As Project Bundle (with resources) + Shrani kot paketni projekt (z viri) + + + lmms::gui::SetupDialog - - Save preset - Shrani glasbilce + + Settings + Nastavitve - - - Effect by: - + + + General + Splošno - - &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> - + + Graphical user interface (GUI) + Grafični vmesnik (GUI) - - - VstPlugin - - - The VST plugin %1 could not be loaded. - + + Display volume as dBFS + Prikaz glasnosti kot dBFS - - Open Preset - + + Enable tooltips + Vklopi namige za orodja - - - Vst Plugin Preset (*.fxp *.fxb) - + + Enable master oscilloscope by default + Privzeto vklopi glavni osciloskop - - : default - + + Enable all note labels in piano roll + Vklopi vse oznake not v klavirskem črtovju - - Save Preset - Shrani glasbilce + + Enable compact track buttons + Vklopi kompaktne gumbe orodne vrstice - - .fxp - + + Enable one instrument-track-window mode + Vklopi okenski način ena instrumentalna steza - - .FXP - + + Show sidebar on the right-hand side + Prikaži stranski pano na desni strani - - .FXB - + + Let sample previews continue when mouse is released + Predogledi vzorcev naj se nadaljujejo, ko je miška spuščena - - .fxb - + + Mute automation tracks during solo + Utišaj avotmatizacijske steze, ko je izbran solo - - Loading plugin - + + Show warning when deleting tracks + Ob brisanju stez prikaži opozorilo - - Please wait while loading VST plugin... - + + Show warning when deleting a mixer channel that is in use + Prikaži opozorilo ob brisanju mešalnega kanala, ki je v rabi - - - WatsynInstrument - - Volume A1 + + Dual-button - - Volume A2 + + Grab closest - - Volume B1 + + Handles - - Volume B2 + + Loop edit mode - - Panning A1 - + + Projects + Projekti - - Panning A2 - + + Compress project files by default + Privzeto stiskanje projektnih datotek - - Panning B1 - + + Create a backup file when saving a project + Ustvari varnostno kopijo ob shranjevanju projekta - - Panning B2 - + + Reopen last project on startup + Ob zagonu odpri zadnji projekt - - Freq. multiplier A1 - + + Language + Jezik - - Freq. multiplier A2 - + + + Performance + Zmogljivost - - Freq. multiplier B1 - + + Autosave + Samodejno shranjevanje - - Freq. multiplier B2 - + + Enable autosave + Vklopi samodejno shranjevanje - - Left detune A1 - + + Allow autosave while playing + Dovoli samodejno shranjevanje med predvajanjem - - Left detune A2 - + + User interface (UI) effects vs. performance + Učinki uporabniškega vmesnika (UI) vs. zmogljivost - - Left detune B1 - + + Smooth scroll in song editor + Mehko drsenje v urejevalniku skladbe - - Left detune B2 - + + Display playback cursor in AudioFileProcessor + Prikaži predvajalni kurzor v AudioFileProcessor - - Right detune A1 - + + Plugins + Vtičniki - - Right detune A2 - + + VST plugins embedding: + Vdelava VST vtičnikov - - Right detune B1 - + + No embedding + Brez vdelave - - Right detune B2 - + + Embed using Qt API + Vdelaj z uporabo Qt API - - A-B Mix - + + Embed using native Win32 API + Vdelaj z uporabo Win32 API - - A-B Mix envelope amount - + + Embed using XEmbed protocol + Vdelaj z uporabo XEmbed protokola - - A-B Mix envelope attack - + + Keep plugin windows on top when not embedded + Obdrži okna vtičnika na vrhu, kadar niso vgrajena - - A-B Mix envelope hold - + + Keep effects running even without input + Učinki naj se izvajajo, četudi ni vhoda - - A-B Mix envelope decay - + + + Audio + Zvok - - A1-B2 Crosstalk - + + Audio interface + Zvočni vmesnik - - A2-A1 modulation - + + Buffer size + Velikost medpomnilnika - - B2-B1 modulation - + + Reset to default value + Ponastavi na privzeto vrednost - - Selected graph - + + + MIDI + MIDI - - - WatsynView - - - - - Volume - Obseg + + MIDI interface + MIDI vmesnik - - - - - Panning - + + Automatically assign MIDI controller to selected track + Samodejno določi MIDi kontroler izbrani stezi - - - - - Freq. multiplier + + Behavior when recording - - - - - Left detune + + Auto-quantize notes in Piano Roll - - - - - - - - - cents + + If enabled, notes will be automatically quantized when recording them from a MIDI controller. If disabled, they are always recorded at the highest possible resolution. - - - - - Right detune - + + + Paths + Poti - - A-B Mix - + + LMMS working directory + LMMS delovna mapa - - Mix envelope amount - + + VST plugins directory + Mapa z VST vtičniki - - Mix envelope attack - + + LADSPA plugins directories + Mape LADSPA vtičnikov - - Mix envelope hold - + + SF2 directory + SF2 mapa - - Mix envelope decay - + + Default SF2 + Privzeti SF2 - - Crosstalk - + + GIG directory + GIG mapa - - Select oscillator A1 - + + Theme directory + Mapa s temami - - Select oscillator A2 - + + Background artwork + Grafike za ozadje - - Select oscillator B1 - + + Some changes require restarting. + Določene spremembe zahtevajo ponoven zagon. - - Select oscillator B2 - + + OK + V redu - - Mix output of A2 to A1 - + + Cancel + Prekini - - Modulate amplitude of A1 by output of A2 - + + minutes + minut - - Ring modulate A1 and A2 - + + minute + minuta - - Modulate phase of A1 by output of A2 - + + Disabled + Onemogočeno - - Mix output of B2 to B1 - + + Autosave interval: %1 + Interval samodejnega shranjevanja: %1 - - Modulate amplitude of B1 by output of B2 + + The currently selected value is not a power of 2 (32, 64, 128, 256). Some plugins may not be available. - - Ring modulate B1 and B2 + + The currently selected value is less than or equal to 32. Some plugins may not be available. - - Modulate phase of B1 by output of B2 - + + Frames: %1 +Latency: %2 ms + Okvirjev: %1 +Latenca: %2 ms - - - - - Draw your own waveform here by dragging your mouse on this graph. - + + Choose the LMMS working directory + Izberite LMMS delovno mapo - - Load waveform - + + Choose your VST plugins directory + Izberite mapo z VST vtičniki - - Load a waveform from a sample file - + + Choose your LADSPA plugins directory + Izberite mapo z LADSPA vtičniki - - Phase left - + + Choose your SF2 directory + Izberite SF2 mapo - - Shift phase by -15 degrees - + + Choose your default SF2 + Izberite privzeti SF2 - - Phase right - + + Choose your GIG directory + Izberite GIG mapo - - Shift phase by +15 degrees - + + Choose your theme directory + Izberite mapo s temami - - - Normalize - + + Choose your background picture + Izberite sliko za ozadje + + + lmms::gui::Sf2InstrumentView - - - Invert - + + + Open SoundFont file + Odpri SoundFont datoteko - - - Smooth - + + Choose patch + Izberi program - - - Sine wave - + + Gain: + Jakost: - - - - Triangle wave - + + Apply reverb (if supported) + Uporabi odjek (če je podprt) - - Saw wave - + + Room size: + Velikost prostora: - - - Square wave - + + Damping: + Dušenje: - - - Xpressive - - Selected graph - + + Width: + Širina: - - A1 - + + + Level: + Nivo: - - A2 - + + Apply chorus (if supported) + Uporabi zbor (če je podprt) - - A3 - + + Voices: + Glasovi: - - W1 smoothing - + + Speed: + Hitrost: - - W2 smoothing - + + Depth: + Globina - - W3 smoothing - + + SoundFont Files (*.sf2 *.sf3) + SoundFont datoteke (*.sf2 *.sf3) + + + lmms::gui::SidInstrumentView - - Panning 1 - + + Volume: + Glasnost: - - Panning 2 - + + Resonance: + Resnonanca: - - Rel trans - + + + Cutoff frequency: + Frekvenca rezanja: - - - XpressiveView - - Draw your own waveform here by dragging your mouse on this graph. - + + High-pass filter + Visokoprepustni filter - - Select oscillator W1 - + + Band-pass filter + Pasovno-prepustni filter - - Select oscillator W2 - + + Low-pass filter + Nizkoprepustni filter - - Select oscillator W3 - + + Voice 3 off + Glas 3 izklop + + + + MOS6581 SID + MOS6581 SID - - Select output O1 - + + MOS8580 SID + MOS8580 SID - - Select output O2 - + + + Attack: + Napad: - - Open help window - + + + Decay: + Upad: - - - Sine wave - + + Sustain: + Zadrži: - - - Moog-saw wave - + + + Release: + Spust: - - - Exponential wave - + + Pulse Width: + Širina pulza: - - - Saw wave - + + Coarse: + Grobo: - - - User-defined wave - + + Pulse wave + Pulzni val - - + Triangle wave - + Trikotna oblika - - - Square wave - + + Saw wave + Žagasta oblika - - - White noise - + + Noise + Šum - - WaveInterpolate - + + Sync + Sinhroniziraj - - ExpressionValid - + + Ring modulation + Modulacija zvonjenja - - General purpose 1: - + + Filtered + Filtrirano - - General purpose 2: - + + Test + Test - - General purpose 3: - + + Pulse width: + Širina pulza: + + + lmms::gui::SideBarWidget - - O1 panning: - + + Close + Zapri + + + lmms::gui::SlicerTView - - O2 panning: + + Slice snap - - Release transition: + + Set slice snapping for detection - - Smoothness + + Sync sample - - - ZynAddSubFxInstrument - - Portamento - Portamento + + Enable BPM sync + - - Filter frequency + + Original sample BPM - - Filter resonance + + Threshold used for slicing - - Bandwidth - Pasovna širina + + Fade Out per note in milliseconds + - - FM gain + + Copy midi pattern to clipboard - - Resonance center frequency + + Open sample selector - - Resonance bandwidth + + Reset slices - - Forward MIDI control change events + + Threshold - - - ZynAddSubFxView - - Portamento: + + Fade Out - - PORT + + Reset - - Filter frequency: + + Midi - - FREQ + + BPM - - Filter resonance: + + Snap + + + lmms::gui::SlicerTWaveform - - RES + + Click to load sample + + + lmms::gui::SongEditor - - Bandwidth: - + + Could not open file + Ne morem odpreti datoteke - - BW - + + Could not open file %1. You probably have no permissions to read this file. + Please make sure to have at least read permissions to the file and try again. + Datoteke %1 ni mogoče odpreti. Verjetno nimate pravic za branje te datoteke. +Poskrbite, da boste imeli vsaj bralne pravice in poskusite znova. - - FM gain: - + + Operation denied + Operacija zavrnjena - - FM GAIN - + + A bundle folder with that name already eists on the selected path. Can't overwrite a project bundle. Please select a different name. + Paketna mapa z imenom, ki že obstaja v izbrani poti. Paktenega projekta ni mogoče prepisati. Izberite drugo ime. - - Resonance center frequency: - + + + + Error + Napaka - - RES CF - + + Couldn't create bundle folder. + Paketne mape ni bilo mogoče ustvariti. - - Resonance bandwidth: - + + Couldn't create resources folder. + Mape z viri ni bilo mogoče ustvariti. - - RES BW - + + Failed to copy resources. + Neuspešno kopiranje virov - - Forward MIDI control changes - + + + Could not write file + Datoteke ni bilo mogoče zapisati - - Show GUI + + Could not open %1 for writing. You probably are not permitted to write to this file. Please make sure you have write-access to the file and try again. - - - AudioFileProcessor - - Amplify + + An unknown error has occurred and the file could not be saved. - - Start of sample - + + Error in file + Napaka v datoteki - - End of sample - + + The file %1 seems to contain errors and therefore can't be loaded. + Datoteka %1 vsebuje napake in je ni mogoče naložiti. - - Loopback point - + + template + predloga - - Reverse sample - + + project + projekt - - Loop mode - + + Version difference + Razlika različic - - Stutter - + + This %1 was created with LMMS %2 + %1 je ustvarjen z LMMS %2 - - Interpolation mode - + + Zoom + Povečava - - None - + + Tempo + Tempo - - Linear - + + TEMPO + TEMPO - - Sinc - + + Tempo in BPM + Tempo v BPM - - Sample not found: %1 - + + + + Master volume + Glavna glasnost - - - BitInvader - - Sample length - + + + + Global transposition + Globalno transponiranje - - - BitInvaderView - - Sample length - + + 1/%1 Bar + 1/%1 takt - - Draw your own waveform here by dragging your mouse on this graph. - + + %1 Bars + %1 taktov - - - Sine wave - + + Value: %1% + Vrednost: %1% - - - Triangle wave - + + Value: %1 keys + Vrednost: %1% ključev + + + lmms::gui::SongEditorWindow - - - Saw wave - + + Song-Editor + Urejevalnik skladbe - - - Square wave - + + Play song (Space) + Predvajaj skladbo (preslednica) - - - White noise - + + Record samples from Audio-device + Snemaj vzorce iz zvočne naprave - - - User-defined wave - + + Record samples from Audio-device while playing song or pattern track + Snemanje vzorcev iz zvočne naprave med predvajanjem skladbe ali steze z matriko - - - Smooth waveform - + + Stop song (Space) + Zaustavi skladbo (preslednica) - - Interpolation - + + Track actions + Dejanja steze - - Normalize - + + Add pattern-track + Dodaj stezo z matriko - - - DynProcControlDialog - - INPUT - + + Add sample-track + Dodaj stezo za vzorce - - Input gain: - + + Add automation-track + Dodaj stezo za avtomatizacijo - - OUTPUT - + + Edit actions + Uredi dejanja - - Output gain: - + + Draw mode + Način risanja - - ATTACK - + + Knife mode (split sample clips) + Način noža (razdeli izseke vzorcev) - - Peak attack time: - + + Edit mode (select and move) + Način urejanja (izberi in premakni) - - RELEASE - + + Timeline controls + Nadzor časovnice - - Peak release time: - + + Bar insert controls + Kontrole za vstavljanje takta - - - Reset wavegraph - + + Insert bar + Vstavi takt - - - Smooth wavegraph - + + Remove bar + Odstrani takt - - - Increase wavegraph amplitude by 1 dB - + + Zoom controls + Nadzor povečave - - - Decrease wavegraph amplitude by 1 dB - + + + Zoom + Povečava - - Stereo mode: maximum - + + Snap controls + Nadzor preskoka - - Process based on the maximum of both stereo channels - + + + Clip snapping size + Velikost preskoka izseka - - Stereo mode: average - + + Toggle proportional snap on/off + Preklopi proporcionalni preskok - - Process based on the average of both stereo channels - + + Base snapping size + Osnovna velikost preskoka + + + lmms::gui::StepRecorderWidget - - Stereo mode: unlinked - + + Hint + Namig - - Process each stereo channel independently - + + Move recording curser using <Left/Right> arrows + Premikaj snemalni kurzor s pomočjo smernih tipk <levo/desno> - DynProcControls + lmms::gui::StereoEnhancerControlDialog - - Input gain - + + WIDTH + ŠIRINA - - Output gain - + + Width: + Širina: + + + lmms::gui::StereoMatrixControlDialog - - Attack time - + + Left to Left Vol: + Levo na levo glas.: - - Release time - + + Left to Right Vol: + Levo na desno glas.: - - Stereo mode - + + Right to Left Vol: + Desno na levo glas.: - - - graphModel - - Graph - graf + + Right to Right Vol: + Desno na desno glas.: - KickerInstrument + lmms::gui::SubWindow - - Start frequency - + + Close + Zapri - - End frequency - + + Maximize + Najv.povečava - - Length - + + Restore + Obnovi + + + lmms::gui::TapTempoView - - Start distortion - + + 0 + 0 - - End distortion - + + + Precision + Natančnost - - Gain - + + Display in high precision + Prikaži z veliko natančnostjo - - Envelope slope - + + 0.0 ms + 0.0 ms - - Noise - + + Mute metronome + Utišaj metronom - - Click - + + Mute + Utišaj - - Frequency slope - + + BPM in milliseconds + BPM v milisekundah - - Start from note - + + 0 ms + 0 ms - - End to note - + + Frequency of BPM + Frekvenca BPM - - - KickerInstrumentView - - Start frequency: - + + 0.0000 hz + 0.0000 hz - - End frequency: - + + Reset + Ponastavi - - Frequency slope: - + + Reset counter and sidebar information + Ponastavi števec in podatke v stranskem panoju - - Gain: - + + Sync + Sinhroniziraj - - Envelope length: - + + Sync with project tempo + Sinhroniziraj z hitrostjo projekta - - Envelope slope: - + + %1 ms + %1 ms - - Click: - + + %1 hz + %1 hz + + + lmms::gui::TemplatesMenu - - Noise: - + + New from template + Novo iz predloge + + + lmms::gui::TempoSyncBarModelEditor - - Start distortion: + + + Tempo Sync - - End distortion: + + No Sync - - - LadspaBrowserView - - - Available Effects + + Eight beats - - - Unavailable Effects + + Whole note - - - Instruments + + Half note - - - Analysis Tools + + Quarter note - - - Don't know + + 8th note - - Type: + + 16th note - - - LadspaDescription - - Plugins + + 32nd note - - Description + + Custom... - - - LadspaPortDialog - - Ports + + Custom - - Name - Ime - - - - Rate + + Synced to Eight Beats - - Direction + + Synced to Whole Note - - Type + + Synced to Half Note - - Min < Default < Max + + Synced to Quarter Note - - Logarithmic + + Synced to 8th Note - - SR Dependent + + Synced to 16th Note - - Audio + + Synced to 32nd Note + + + lmms::gui::TempoSyncKnob - - Control - + + + Tempo Sync + Sinhronizacija tempa - - Input - + + No Sync + Brez sinhronizacije - - Output - + + Eight beats + Osem dob - - Toggled - + + Whole note + Celinka - - Integer - + + Half note + Polovinka - - Float - + + Quarter note + Četrtinka - - - Yes - + + 8th note + Osminka - - - Lb302Synth - - VCF Cutoff Frequency - + + 16th note + Šestnajstinka - - VCF Resonance - + + 32nd note + 32-inka - - VCF Envelope Mod - + + Custom... + Po meri... - - VCF Envelope Decay - + + Custom + Po meri - - Distortion - izkrivljanje + + Synced to Eight Beats + Sinhronizirano na osem dob - - Waveform - + + Synced to Whole Note + Sinhronizirano na celinko - - Slide Decay - + + Synced to Half Note + Sinhronizirano na polovinko - - Slide - + + Synced to Quarter Note + Sinhronizirano na četrtinko - - Accent - Barva akcentov + + Synced to 8th Note + Sinhronizirano na osminko - - Dead - Odmrlo + + Synced to 16th Note + Sinhronizirano na šestnajstinko - - 24dB/oct Filter - + + Synced to 32nd Note + Sinhronizirano na 32-inko - Lb302SynthView + lmms::gui::TimeDisplayWidget - - Cutoff Freq: - + + Time units + Enote za čas - - Resonance: - + + MIN + MIN - - Env Mod: - + + SEC + SEK - - Decay: - + + MSEC + MSEK + + + + BAR + TAKT + + + + BEAT + DOB - - 303-es-que, 24dB/octave, 3 pole filter - + + TICK + UTRIP + + + lmms::gui::TimeLineWidget - - Slide Decay: - + + Auto scrolling + Samodejno drsenje - - DIST: + + Stepped auto scrolling - - Saw wave + + Continuous auto scrolling - - Click here for a saw-wave. + + Auto scrolling disabled - - Triangle wave - + + Loop points + Točke povratka zanke: - - Click here for a triangle-wave. - + + After stopping go back to beginning + Po zaustavitvi se vrni na začetek - - Square wave - + + After stopping go back to position at which playing was started + Po zaustavitvi se vrni na začetno mesto predvajanja - - Click here for a square-wave. - + + After stopping keep position + Po zaustavitvi ostani na položaju - - Rounded square wave - + + Hint + Namig - - Click here for a square-wave with a rounded end. - + + Press <%1> to disable magnetic loop points. + Pritisni <%1> za izklop magnetnih točk zanke. - - Moog wave + + Set loop begin here - - Click here for a moog-like wave. + + Set loop end here - - Sine wave + + Loop edit mode (hold shift) - - Click for a sine-wave. + + Dual-button - - - White noise wave + + Grab closest - - Click here for an exponential wave. + + Handles + + + lmms::gui::TrackContentWidget - - Click here for white-noise. - + + Paste + Prilepi + + + lmms::gui::TrackOperationsWidget - - Bandlimited saw wave - + + Press <%1> while clicking on move-grip to begin a new drag'n'drop action. + Pritisnite <%1>, ko kliknete na oprijem za premikanje, da začnete postopek vleči in spusti. - - Click here for bandlimited saw wave. - + + Actions + Dejanja - - Bandlimited square wave - + + + Mute + Utišaj - - Click here for bandlimited square wave. - + + + Solo + Solo - - Bandlimited triangle wave - + + After removing a track, it can not be recovered. Are you sure you want to remove track "%1"? + Če stezo odstranite, je ni mogoče povrniti. Ali res želite odstraniti stezo "%1"? - - Click here for bandlimited triangle wave. - + + Confirm removal + Potrdi odstranitev - - Bandlimited moog saw wave - + + Don't ask again + Tega več ne sprašuj - - Click here for bandlimited moog saw wave. - + + Clone this track + Kloniraj to stezo - - - MalletsInstrument - - Hardness - + + Remove this track + Odstrani to stezo - - Position - + + Clear this track + Počisti to stezo - - Vibrato gain - + + Channel %1: %2 + Kanal %1: %2 - - Vibrato frequency - + + Assign to new Mixer Channel + Dodeli novemu mešalnemu kanalu - - Stick mix - + + Turn all recording on + Vklopi snemanje vseh - - Modulator - + + Turn all recording off + Izklopi snemanje vseh - - Crossfade - + + Track color + Barva steze - - LFO speed - + + Change + Spremeni - - LFO depth - + + Reset + Ponastavi - - ADSR - + + Pick random + Izberi naključno - - Pressure - + + Reset clip colors + Ponastavi barve izsekov + + + lmms::gui::TripleOscillatorView - - Motion - + + Modulate phase of oscillator 1 by oscillator 2 + Moduliraj fazo oscilatorja 1 za oscilator 2 - - Speed - + + Modulate amplitude of oscillator 1 by oscillator 2 + Moduliraj amplitudo oscilatorja 1 za oscilator 2 - - Bowed - + + Mix output of oscillators 1 & 2 + Miksaj izhoda oscilatorjev 1 & 2 - - Spread - + + Synchronize oscillator 1 with oscillator 2 + Sinhroniziraj oscilator 1 z oscilatorjem 2 - - Marimba - + + Modulate frequency of oscillator 1 by oscillator 2 + Moduliraj frekvenco oscilatorja 1 za oscilator 2 - - Vibraphone - + + Modulate phase of oscillator 2 by oscillator 3 + Moduliraj fazo oscilatorja 2 za oscilator 3 - - Agogo - + + Modulate amplitude of oscillator 2 by oscillator 3 + Moduliraj amplitudo oscilatorja 2 za oscilator 3 - - Wood 1 - + + Mix output of oscillators 2 & 3 + Miksaj izhoda oscilatorjev 2 & 3 - - Reso - + + Synchronize oscillator 2 with oscillator 3 + Sinhroniziraj oscilator 2 z oscilatorjem 3 - - Wood 2 - + + Modulate frequency of oscillator 2 by oscillator 3 + Moduliraj frekvenco oscilatorja 2 za oscilator 3 - - Beats - + + Osc %1 volume: + Osc %1 glasnost: - - Two fixed - + + Osc %1 panning: + Osc %1 panorama: - - Clump - + + Osc %1 coarse detuning: + Osc %1 groba razglasitev: - - Tubular bells - + + semitones + poltonov - - Uniform bar - + + Osc %1 fine detuning left: + Osc %1 fina razglasitev levo: - - Tuned bar - + + + cents + stotinov - - Glass - + + Osc %1 fine detuning right: + Osc %1 fina razglasitev desno: - - Tibetan bowl - + + Osc %1 phase-offset: + Osc %1 fazni zamik: - - - MalletsInstrumentView - - Instrument - + + + degrees + stopinj - - Spread - + + Osc %1 stereo phase-detuning: + Osc %1 stereo fazna razglasitev: - - Spread: - + + Sine wave + Sinusna oblika - - Missing files - + + Triangle wave + Trikotna oblika - - Your Stk-installation seems to be incomplete. Please make sure the full Stk-package is installed! - + + Saw wave + Žagasta oblika - - Hardness - + + Square wave + Pravokotna oblika - - Hardness: - + + Moog-like saw wave + Moogu podoben žagasti val - - Position - + + Exponential wave + Eksponentni val - - Position: - + + White noise + Beli šum - - Vibrato gain - + + User-defined wave + Uporabniško določena oblika - - Vibrato gain: - + + Use alias-free wavetable oscillators. + Uporabi oscilatorje tabel valovnih oblik brez nadimkov + + + lmms::gui::VecControlsDialog - - Vibrato frequency - + + HQ + HQ - - Vibrato frequency: - + + Double the resolution and simulate continuous analog-like trace. + Podvoji ločljivosti in simulira kontinuirano sledenje podobno analogemu. - - Stick mix - + + Log. scale + Log. skala - - Stick mix: - + + Display amplitude on logarithmic scale to better see small values. + Prikaži amplitudio na logaritmični skali, da se bolje vidijo majhne vrednosti. - - Modulator - + + Persist. + Obstojn. - - Modulator: - + + Trace persistence: higher amount means the trace will stay bright for longer time. + Obstojnost sledi: večja količina pomeni, da bo sled ostala dalj časa vidna - - Crossfade - + + Trace persistence + Obstojnost sledi + + + lmms::gui::VersionedSaveDialog - - Crossfade: - + + Increment version number + Povečanje številke različice - - LFO speed - + + Decrement version number + Zmanjšanje številke različice - - LFO speed: - + + Save Options + Možnosti shranjevanja - - LFO depth - + + already exists. Do you want to replace it? + že obstaja. Želite nadomestiti? + + + lmms::gui::VestigeInstrumentView - - LFO depth: - + + + Open VST plugin + Odpri VST vtičnik - - ADSR - + + Control VST plugin from LMMS host + Nadzor VST vtičnika z LMMS gostitelja - - ADSR: - + + Open VST plugin preset + Oppri predlogo VST vtičnika - - Pressure - + + Previous (-) + Nazaj (-) - - Pressure: - + + Save preset + Shrani predlogo - - Speed - + + Next (+) + Naprej (+) - - Speed: - + + Show/hide GUI + Prikaži/skrij grafični vmesnik - - - ManageVSTEffectView - - - VST parameter control - + + Turn off all notes + Izklopi vse note - - VST sync - + + DLL-files (*.dll) + DLL-datoteke (*.dll) - - - Automated - + + EXE-files (*.exe) + EXE-datoteke (*.exe) - - Close - + + SO-files (*.so) + SO-datoteke (*.so) - - - ManageVestigeInstrumentView - - - - VST plugin control - + + No VST plugin loaded + VS vtičnik ni naložen - - VST Sync - + + Preset + Predloga - - - Automated - + + by + od - - Close - + + - VST plugin control + - nadzor VST vtičnika - OrganicInstrument + lmms::gui::VibedView - - Distortion - izkrivljanje + + Enable waveform + Vklopi valovno obliko - - Volume - Obseg + + + Smooth waveform + Glajenje valovne oblike - - - OrganicInstrumentView - - Distortion: - + + + Normalize waveform + Normalizacija valovne oblike - - Volume: - Glasnost: + + + Sine wave + Sinusna oblika - - Randomise - + + + Triangle wave + Trikotna oblika - - - Osc %1 waveform: - + + + Saw wave + Žagasta oblika - - Osc %1 volume: - + + + Square wave + Pravokotna oblika - - Osc %1 panning: - + + + White noise + Beli šum - - Osc %1 stereo detuning - + + + User-defined wave + Uporabniško določena oblika - - cents - + + String volume: + Glasnost strune: - - Osc %1 harmonic: - + + String stiffness: + Togost strune: - - - PatchesDialog - - Qsynth: Channel Preset - + + Pick position: + Položaj odjema: - - Bank selector - + + Pickup position: + Položaj odjemalca: - - Bank - + + String panning: + Panorama strune: - - Program selector - + + String detune: + Razglašenost strune: - - Patch - + + String fuzziness: + Popačenost strune: - - Name - Ime + + String length: + Dolžina strune: - - OK - V redu + + Impulse Editor + Urejevalnik impulzov - - Cancel - Preklic + + Impulse + Impulz - - - Sf2Instrument - - Bank - + + Enable/disable string + Omogoči/onemogoči struno - - Patch - + + Octave + Oktava - - Gain - + + String + Struna + + + lmms::gui::VstEffectControlDialog - - Reverb - + + Show/hide + Prikaži/Skrij - - Reverb room size - + + Control VST plugin from LMMS host + Nadzor VST vtičnika z LMMS gostitelja - - Reverb damping - + + Open VST plugin preset + Oppri predlogo VST vtičnika - - Reverb width - + + Previous (-) + Nazaj (-) - - Reverb level - + + Next (+) + Naprej (+) - - Chorus - + + Save preset + Shrani predlogo - - Chorus voices - + + + Effect by: + Učinek od: - - Chorus level - + + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> + + + lmms::gui::WatsynView - - Chorus speed - + + + + + Volume + Glasnost - - Chorus depth - + + + + + Panning + Panorama - - A soundfont %1 could not be loaded. - + + + + + Freq. multiplier + Množilnik frekv. - - - Sf2InstrumentView - - - Open SoundFont file - Odpri SoundFont datoteko + + + + + Left detune + Razglasi levo - - Choose patch - + + + + + + + + + cents + stotini - - Gain: - + + + + + Right detune + Razglasi desno - - Apply reverb (if supported) - + + A-B Mix + A-B Miks - - Room size: - + + Mix envelope amount + Miks ovoj količina - - Damping: - + + Mix envelope attack + Miks ovoj napad - - Width: - + + Mix envelope hold + Miks ovoj zadrži - - - Level: - + + Mix envelope decay + Miks ovoj upad - - Apply chorus (if supported) - + + Crosstalk + Navzkrižno - - Voices: - + + Select oscillator A1 + Izberi oscilator A1 - - Speed: - + + Select oscillator A2 + Izberi oscilator A2 - - Depth: - + + Select oscillator B1 + Izberi oscilator B1 - - SoundFont Files (*.sf2 *.sf3) - + + Select oscillator B2 + Izberi oscilator B2 - - - SfxrInstrument - - Wave - + + Mix output of A2 to A1 + Miksaj izhod od A2 k A1 - - - StereoEnhancerControlDialog - - WIDTH - + + Modulate amplitude of A1 by output of A2 + Moduliraj amplitudo za A1 iz izhoda A2 + + + + Ring modulate A1 and A2 + Zvonjenje modulacija A1 in A2 - - Width: - + + Modulate phase of A1 by output of A2 + Moduliraj fazo za A1 iz izhoda A2 - - - StereoEnhancerControls - - Width - + + Mix output of B2 to B1 + Miksaj izhod od B2 k B1 - - - StereoMatrixControlDialog - - Left to Left Vol: - + + Modulate amplitude of B1 by output of B2 + Moduliraj amplitudo za B1 iz izhoda B2 - - Left to Right Vol: - + + Ring modulate B1 and B2 + Zvonjenje modulacija B1 in B2 - - Right to Left Vol: - + + Modulate phase of B1 by output of B2 + Moduliraj fazo za B1 iz izhoda B2 - - Right to Right Vol: - + + + + + Draw your own waveform here by dragging your mouse on this graph. + Tu narišite svojo valovno obliko s vlečenjem miške po tem grafu. - - - StereoMatrixControls - - Left to Left - Od desne proti levi + + Load waveform + Naloži valovno obliko - - Left to Right - Od leve proti desni + + Load a waveform from a sample file + Naloži valovno obliko iz vzorčne datoteke - - Right to Left - Od desne proti levi + + Phase left + Faza levo - - Right to Right - Od desne proti levi + + Shift phase by -15 degrees + Premakni fazo za -15 stopinj - - - VestigeInstrument - - Loading plugin - + + Phase right + Faza desno - - Please wait while loading the VST plugin... - + + Shift phase by +15 degrees + Premakni fazo za +15 stopinj - - - Vibed - - String %1 volume - + + + Normalize + Normalizacija - - String %1 stiffness - + + + Invert + Inverzno - - Pick %1 position - + + + Smooth + Glajenje - - Pickup %1 position - + + + Sine wave + Sinusna oblika - - String %1 panning - + + + + Triangle wave + Trikotna oblika - - String %1 detune - + + Saw wave + Žagasta oblika - - String %1 fuzziness - + + + Square wave + Pravokotna oblika + + + lmms::gui::WaveShaperControlDialog - - String %1 length - + + INPUT + VHOD - - Impulse %1 - + + Input gain: + Vhodna jakost: - - String %1 - + + OUTPUT + IZHOD - - - VibedView - - String volume: - + + Output gain: + Izhodna jakost: - - String stiffness: - + + + Reset wavegraph + Ponastavi valovni graf - - Pick position: - + + + Smooth wavegraph + Glajenje valovnega grafa - - Pickup position: - + + + Increase wavegraph amplitude by 1 dB + Povečaj amplitudo valovnega grafa za 1 dB - - String panning: - + + + Decrease wavegraph amplitude by 1 dB + Zmanjšaj amplitudo valovnega grafa za 1 dB - - String detune: - + + Clip input + Rezanje vhoda - - String fuzziness: - + + Clip input signal to 0 dB + Rezanje vhodnega signala na 0 dB + + + lmms::gui::XpressiveView - - String length: - + + Draw your own waveform here by dragging your mouse on this graph. + Tu narišite svojo valovno obliko s vlečenjem miške po tem grafu. - - Impulse - + + Select oscillator W1 + Izberi oscilator W1 - - Octave - + + Select oscillator W2 + Izberi oscilator W2 - - Impulse Editor - + + Select oscillator W3 + Izberi oscilator W3 - - Enable waveform - + + Select output O1 + Izberi izhod O1 - - Enable/disable string - + + Select output O2 + Izberi izhod O2 - - String - + + Open help window + Odpri okno s pomočjo - - + + Sine wave - + Sinusna oblika - - - Triangle wave - + + + Moog-saw wave + Moog-žagasti val + + + + + Exponential wave + Eksponentni val - - + + Saw wave - + Žagasta oblika - - - Square wave - + + + User-defined wave + Uporabniško oblikovan vala - - - White noise - + + + Triangle wave + Trikotna oblika - - - User-defined wave - + + + Square wave + Pravokotna oblika - - - Smooth waveform - + + + White noise + Beli šum - - - Normalize waveform - + + WaveInterpolate + InterpolacijaVala - - - VoiceObject - - Voice %1 pulse width - + + ExpressionValid + IzrazVeljaven - - Voice %1 attack - + + General purpose 1: + Splošni namen 1: - - Voice %1 decay - + + General purpose 2: + Splošni namen 2: - - Voice %1 sustain - + + General purpose 3: + Splošni namen 3: - - Voice %1 release - + + O1 panning: + O1 panorama: - - Voice %1 coarse detuning - + + O2 panning: + O2 panorama: - - Voice %1 wave shape - + + Release transition: + Tranzicija spusta: - - Voice %1 sync - + + Smoothness + Zglajenost + + + lmms::gui::ZynAddSubFxView - - Voice %1 ring modulate - + + Portamento: + Portamento: - - Voice %1 filtered - + + PORT + PORT - - Voice %1 test - + + Filter frequency: + Frekvenca filtra: - - - WaveShaperControlDialog - - INPUT - + + FREQ + FREKV - - Input gain: - + + Filter resonance: + Resonanca filtra: - - OUTPUT - + + RES + LOČ - - Output gain: - + + Bandwidth: + Pasovna širina: - - - Reset wavegraph - + + BW + - - - Smooth wavegraph - + + FM gain: + FM jakost: - - - Increase wavegraph amplitude by 1 dB - + + FM GAIN + FM JAKOST - - - Decrease wavegraph amplitude by 1 dB - + + Resonance center frequency: + Središčna frekvenca resonance - - Clip input - + + RES CF + LOČ SF - - Clip input signal to 0 dB - + + Resonance bandwidth: + Pasovna širina resonance: - - - WaveShaperControls - - Input gain - + + RES BW + LOČ PŠ - - Output gain - + + Forward MIDI control changes + Posreduj MIDI spremembe kontrole + + + + Show GUI + Prikaži grafični vmesnik - + \ No newline at end of file diff --git a/data/locale/sr.ts b/data/locale/sr.ts index 183936bc74c..557890f3596 100644 --- a/data/locale/sr.ts +++ b/data/locale/sr.ts @@ -2178,7 +2178,7 @@ Please make sure you have write-permission to the file and the directory contain - MixerLine + MixerChannelView Channel send amount @@ -7752,7 +7752,7 @@ Please make sure you have read-permission to the file and the directory containi - MixerLineLcdSpinBox + MixerChannelLcdSpinBox Assign to: diff --git a/data/locale/sv.ts b/data/locale/sv.ts index f5d4e0fb496..ec65769c5f8 100644 --- a/data/locale/sv.ts +++ b/data/locale/sv.ts @@ -1,4 +1,4 @@ - + AboutDialog @@ -29,7 +29,7 @@ Copyright © %1. - Copyright © %1. + Upphovsrätt © %1. @@ -70,954 +70,187 @@ Om du är intresserad av att översätta LMMS till ett annat språk eller vill f - AmplifierControlDialog + AboutJuceDialog - - VOL - VOL - - - - Volume: - Volym: - - - - PAN - PAN - - - - Panning: - Panorering: - - - - LEFT - VÄNSTER - - - - Left gain: - Vänsterförstärkning: - - - - RIGHT - HÖGER - - - - Right gain: - Högerförstärkning: - - - - AmplifierControls - - - Volume - Volym - - - - Panning - Panorering - - - - Left gain - Vänsterförstärkning - - - - Right gain - Högerförstärkning - - - - AudioAlsaSetupWidget - - - DEVICE - ENHET - - - - CHANNELS - KANALER - - - - AudioFileProcessorView - - - Open sample - Öppna ljudfil - - - - Reverse sample - Spela baklänges - - - - Disable loop - Inaktivera slinga - - - - Enable loop - Aktivera slinga - - - - Enable ping-pong loop - Aktivera ping-pong loop - - - - Continue sample playback across notes - Fortsätt spela ljudfil över noter - - - - Amplify: - Förstärkning: - - - - Start point: - Startpunkt: - - - - End point: - Slutpunkt: - - - - Loopback point: - Slinga-tillbaka punkt: - - - - AudioFileProcessorWaveView - - - Sample length: - Ljudfilens längd: - - - - AudioJack - - - JACK client restarted - JACK-klienten omstartad - - - - LMMS was kicked by JACK for some reason. Therefore the JACK backend of LMMS has been restarted. You will have to make manual connections again. - LMMS blev bortkopplat från JACK. LMMS JACK backend omstartades därfor. Du behöver koppla om manuellt. - - - - JACK server down - JACK-server nerstängd - - - - The JACK server seems to have been shutdown and starting a new instance failed. Therefore LMMS is unable to proceed. You should save your project and restart JACK and LMMS. - JACK-servern stängdes ned och det gick inte starta en ny. LMMS kan inte fortsätta. Du bör spara ditt projekt och starta om både JACK och LMMS. - - - - Client name - Klientnamn - - - - Channels - Kanaler - - - - AudioOss - - - Device - Enhet - - - - Channels - Kanaler - - - - AudioPortAudio::setupWidget - - - Backend - Bakände - - - - Device - Enhet - - - - AudioPulseAudio - - - Device - Enhet + + About JUCE + - - Channels - Kanaler + + <b>About JUCE</b> + - - - AudioSdl::setupWidget - - Device - Enhet + + This program uses JUCE version 3.x.x. + - - - AudioSndio - - Device - Enhet + + JUCE is an open-source cross-platform C++ application framework for creating high quality desktop and mobile applications. + +The core JUCE modules (juce_audio_basics, juce_audio_devices, juce_core and juce_events) are permissively licensed under the terms of the ISC license. +Other modules are covered by a GNU GPL 3.0 license. + +Copyright (C) 2022 Raw Material Software Limited. + - - Channels - Kanaler + + This program uses JUCE version + - AudioSoundIo::setupWidget - - - Backend - Bakände - + AudioDeviceSetupWidget - - Device - Enhet + + [System Default] + - AutomatableModel - - - &Reset (%1%2) - &Nollställ (%1%2) - - - - &Copy value (%1%2) - &Kopiera värde (%1%2) - - - - &Paste value (%1%2) - &Klistra in värde (%1%2) - - - - &Paste value - &Klistra in värde - - - - Edit song-global automation - Redigera låt-global automation - - - - Remove song-global automation - Ta bort global automation - + CarlaAboutW - - Remove all linked controls - Ta bort alla kopplade kontroller + + About Carla + Om Carla - - Connected to %1 - Kopplad till %1 + + About + Om - - Connected to controller - Kopplad till controller + + About text here + Om-text här - - Edit connection... - Redigera koppling... + + Extended licensing here + Utökad licensiering här - - Remove connection - Ta bort koppling + + Artwork + Bilder - - Connect to controller... - Koppla till kontroller... + + Using KDE Oxygen icon set, designed by Oxygen Team. + Använder KDE:s Oxygen ikonuppsättning, designad av Oxygen-gruppen. - - - AutomationEditor - - Edit Value - Redigera värde + + Contains some knobs, backgrounds and other small artwork from Calf Studio Gear, OpenAV and OpenOctave projects. + Innehåller vissa rattar, bakgrunder och andra små bilder från Calf Studio Gear-, OpenAV- och OpenOctave-projekten. - - New outValue - Ny outValue + + VST is a trademark of Steinberg Media Technologies GmbH. + VST är ett registrerat varumärke av Steinberg Media Technologies GmbH. - - New inValue - Ny inValue + + Special thanks to António Saraiva for a few extra icons and artwork! + Speciellt tack till António Saraiva för ett antal extra ikoner och bilder! - - Please open an automation clip with the context menu of a control! - Öppna ett automationsmönster från en kontrollers kontextmeny! + + The LV2 logo has been designed by Thorsten Wilms, based on a concept from Peter Shorthose. + LV2-logotypen har designats av Thorsten Wilms, baserat på ett koncept från Peter Shorthose. - - - AutomationEditorWindow - - Play/pause current clip (Space) - Spela/pausa aktuellt mönster (Mellanslag) + + MIDI Keyboard designed by Thorsten Wilms. + MIDI-keyboard designad av Thorsten Wilms. - - Stop playing of current clip (Space) - Sluta spela aktuellt mönster (Mellanslag) + + Carla, Carla-Control and Patchbay icons designed by DoosC. + Ikoner för Carla, Carla-styrning och kopplingsplint designade av DoosC. - - Edit actions - Redigera åtgärder + + Features + Funktioner - - Draw mode (Shift+D) - Ritläge (Skift+D) + + AU/AudioUnit: + AU/AudioUnit: - - Erase mode (Shift+E) - Suddläge (Skift+E) + + LADSPA: + LADSPA: - - Draw outValues mode (Shift+C) - + + + + + + + + + TextLabel + TextLabel - - Flip vertically - Spegla vertikalt + + VST2: + VST2: - - Flip horizontally - Spegla horizontellt + + DSSI: + DSSI: - - Interpolation controls - Interpoleringskontroller + + LV2: + LV2: - - Discrete progression - Diskret talföljd + + VST3: + VST3: - - Linear progression - Linjär talföljd + + OSC + OSC - - Cubic Hermite progression - Cubic Hermite talföljd + + Host URLs: + Värd-URL:er: - - Tension value for spline - Spänning i mönstrets spline + + Valid commands: + Giltiga kommandon: - - Tension: - Spänning: + + valid osc commands here + giltiga osc-kommandon här - - Zoom controls - Zoomningskontroller + + Example: + Exempel: - - Horizontal zooming - Horisontell zoomning + + License + Licens - - Vertical zooming - Vertikal zoomning - - - - Quantization controls - Kvantiseringskontroller - - - - Quantization - Kvantisering - - - - - Automation Editor - no clip - Redigera Automation - inget automationsmönster - - - - - Automation Editor - %1 - Redigera Automation - %1 - - - - Model is already connected to this clip. - Modellen är redan ansluten till det här mönstret. - - - - AutomationClip - - - Drag a control while pressing <%1> - Dra en kontroll samtidigt som du håller <%1> - - - - AutomationClipView - - - Open in Automation editor - Redigera automationsmönster - - - - Clear - Rensa - - - - Reset name - Nollställ namn - - - - Change name - Byt namn - - - - Set/clear record - Ställ in/rensa inspelning - - - - Flip Vertically (Visible) - Spegla Vertikalt (Synligt) - - - - Flip Horizontally (Visible) - Spegla Horizontellt (Synligt) - - - - %1 Connections - %1 Kopplingar - - - - Disconnect "%1" - Koppla bort "%1" - - - - Model is already connected to this clip. - Modellen är redan ansluten till det här mönstret. - - - - AutomationTrack - - - Automation track - Automationsspår - - - - PatternEditor - - - Beat+Bassline Editor - Takt+Basgång-redigerare - - - - Play/pause current beat/bassline (Space) - Spela/pausa nuvarande takt/basgång (Mellanslag) - - - - Stop playback of current beat/bassline (Space) - Stoppa uppspelning av nuvarande takt/basgång (Mellanslag) - - - - Beat selector - Taktväljare - - - - Track and step actions - Spår och stegåtgärder - - - - Add beat/bassline - Lägg till takt/basgång - - - - Clone beat/bassline clip - Klona rytm-/basgångsmönster - - - - Add sample-track - Lägg till ljudspår - - - - Add automation-track - Lägg till automationsspår - - - - Remove steps - Ta bort steg - - - - Add steps - Lägg till steg - - - - Clone Steps - Klona steg - - - - PatternClipView - - - Open in Beat+Bassline-Editor - Öppna i Takt+Basgång-redigeraren - - - - Reset name - Nollställ namn - - - - Change name - Byt namn - - - - PatternTrack - - - Beat/Bassline %1 - Takt/Basgång %1 - - - - Clone of %1 - Kopia av %1 - - - - BassBoosterControlDialog - - - FREQ - FREQ - - - - Frequency: - Frekvens: - - - - GAIN - FÖRSTÄRKNING - - - - Gain: - Förstärkning: - - - - RATIO - FÖRHÅLLANDE - - - - Ratio: - Förhållande: - - - - BassBoosterControls - - - Frequency - Frekvens - - - - Gain - Förstärkning - - - - Ratio - Förhållande - - - - BitcrushControlDialog - - - IN - IN - - - - OUT - UT - - - - - GAIN - FÖRSTÄRKNING - - - - Input gain: - Ingångsförstärkning: - - - - NOISE - BRUS - - - - Input noise: - Ingångsbrus: - - - - Output gain: - Utgångsförstärkning: - - - - CLIP - KLIPP - - - - Output clip: - Utmatningsklipp: - - - - Rate enabled - Hastighet aktiverad - - - - Enable sample-rate crushing - Aktivera sampelhastighetskrossare - - - - Depth enabled - Djup aktiverat - - - - Enable bit-depth crushing - Aktivera bitdjupskrossare - - - - FREQ - FREKV. - - - - Sample rate: - Samplingsfrekvens: - - - - STEREO - STEREO - - - - Stereo difference: - Stereo skillnad: - - - - QUANT - KVANT - - - - Levels: - Nivåer: - - - - BitcrushControls - - - Input gain - Ingångsförstärkning - - - - Input noise - Ingångsbrus - - - - Output gain - Utgångsförstärkning - - - - Output clip - Utmatningsklipp - - - - Sample rate - Samplingsfrekvens - - - - Stereo difference - Stereo skillnad - - - - Levels - Nivåer - - - - Rate enabled - Hastighet aktiverad - - - - Depth enabled - Djup aktiverat - - - - CarlaAboutW - - - About Carla - Om Carla - - - - About - Om - - - - About text here - Om-text här - - - - Extended licensing here - Utökad licensiering här - - - - Artwork - Bilder - - - - Using KDE Oxygen icon set, designed by Oxygen Team. - Använder KDE:s Oxygen ikonuppsättning, designad av Oxygen-gruppen. - - - - Contains some knobs, backgrounds and other small artwork from Calf Studio Gear, OpenAV and OpenOctave projects. - Innehåller vissa rattar, bakgrunder och andra små bilder från Calf Studio Gear-, OpenAV- och OpenOctave-projekten. - - - - VST is a trademark of Steinberg Media Technologies GmbH. - VST är ett registrerat varumärke av Steinberg Media Technologies GmbH. - - - - Special thanks to António Saraiva for a few extra icons and artwork! - Speciellt tack till António Saraiva för ett antal extra ikoner och bilder! - - - - The LV2 logo has been designed by Thorsten Wilms, based on a concept from Peter Shorthose. - LV2-logotypen har designats av Thorsten Wilms, baserat på ett koncept från Peter Shorthose. - - - - MIDI Keyboard designed by Thorsten Wilms. - MIDI-keyboard designad av Thorsten Wilms. - - - - Carla, Carla-Control and Patchbay icons designed by DoosC. - Ikoner för Carla, Carla-styrning och kopplingsplint designade av DoosC. - - - - Features - Funktioner - - - - AU/AudioUnit: - AU/AudioUnit: - - - - LADSPA: - LADSPA: - - - - - - - - - - - TextLabel - TextLabel - - - - VST2: - VST2: - - - - DSSI: - DSSI: - - - - LV2: - LV2: - - - - VST3: - VST3: - - - - OSC - OSC - - - - Host URLs: - Värd-URL:er: - - - - Valid commands: - Giltiga kommandon: - - - - valid osc commands here - giltiga osc-kommandon här - - - - Example: - Exempel: - - - - License - Licens - - - + GNU GENERAL PUBLIC LICENSE Version 2, June 1991 @@ -1580,15050 +813,18226 @@ SLUT PÅ LICENSVILLKOR - - OSC Bridge Version - OSC-bryggversion + + OSC Bridge Version + OSC-bryggversion + + + + Plugin Version + Tilläggsversion + + + + <br>Version %1<br>Carla is a fully-featured audio plugin host%2.<br><br>Copyright (C) 2011-2019 falkTX<br> + <br>Version %1<br>Carla är en fullt utrustad ljudtilläggsvärd%2.<br><br>Upphovsrätt (C) 2011-2019 falkTX<br> + + + + + (Engine not running) + (Motorn inte igång) + + + + Everything! (Including LRDF) + Allt! (Inklusive LRDF) + + + + Everything! (Including CustomData/Chunks) + Allting! (Inklusive CustomData/Chunks) + + + + About 110&#37; complete (using custom extensions)<br/>Implemented Feature/Extensions:<ul><li>http://lv2plug.in/ns/ext/atom</li><li>http://lv2plug.in/ns/ext/buf-size</li><li>http://lv2plug.in/ns/ext/data-access</li><li>http://lv2plug.in/ns/ext/event</li><li>http://lv2plug.in/ns/ext/instance-access</li><li>http://lv2plug.in/ns/ext/log</li><li>http://lv2plug.in/ns/ext/midi</li><li>http://lv2plug.in/ns/ext/options</li><li>http://lv2plug.in/ns/ext/parameters</li><li>http://lv2plug.in/ns/ext/port-props</li><li>http://lv2plug.in/ns/ext/presets</li><li>http://lv2plug.in/ns/ext/resize-port</li><li>http://lv2plug.in/ns/ext/state</li><li>http://lv2plug.in/ns/ext/time</li><li>http://lv2plug.in/ns/ext/uri-map</li><li>http://lv2plug.in/ns/ext/urid</li><li>http://lv2plug.in/ns/ext/worker</li><li>http://lv2plug.in/ns/extensions/ui</li><li>http://lv2plug.in/ns/extensions/units</li><li>http://home.gna.org/lv2dynparam/rtmempool/v1</li><li>http://kxstudio.sf.net/ns/lv2ext/external-ui</li><li>http://kxstudio.sf.net/ns/lv2ext/programs</li><li>http://kxstudio.sf.net/ns/lv2ext/props</li><li>http://kxstudio.sf.net/ns/lv2ext/rtmempool</li><li>http://ll-plugins.nongnu.org/lv2/ext/midimap</li><li>http://ll-plugins.nongnu.org/lv2/ext/miditype</li></ul> + Om 110&#37; komplett (med anpassade tillägg)<br/>Implementerad funktion/tillägg:<ul><li>http://lv2plug.in/ns/ext/atom</li><li>http://lv2plug.in/ns/ext/buf-size</li><li>http://lv2plug.in/ns/ext/data-access</li><li>http://lv2plug.in/ns/ext/event</li><li>http://lv2plug.in/ns/ext/instance-access</li><li>http://lv2plug.in/ns/ext/log</li><li>http://lv2plug.in/ns/ext/midi</li><li>http://lv2plug.in/ns/ext/options</li><li>http://lv2plug.in/ns/ext/parameters</li><li>http://lv2plug.in/ns/ext/port-props</li><li>http://lv2plug.in/ns/ext/presets</li><li>http://lv2plug.in/ns/ext/resize-port</li><li>http://lv2plug.in/ns/ext/state</li><li>http://lv2plug.in/ns/ext/time</li><li>http://lv2plug.in/ns/ext/uri-map</li><li>http://lv2plug.in/ns/ext/urid</li><li>http://lv2plug.in/ns/ext/worker</li><li>http://lv2plug.in/ns/extensions/ui</li><li>http://lv2plug.in/ns/extensions/units</li><li>http://home.gna.org/lv2dynparam/rtmempool/v1</li><li>http://kxstudio.sf.net/ns/lv2ext/external-ui</li><li>http://kxstudio.sf.net/ns/lv2ext/programs</li><li>http://kxstudio.sf.net/ns/lv2ext/props</li><li>http://kxstudio.sf.net/ns/lv2ext/rtmempool</li><li>http://ll-plugins.nongnu.org/lv2/ext/midimap</li><li>http://ll-plugins.nongnu.org/lv2/ext/miditype</li></ul> + + + + + + Using Juce host + Använder Juce-värd + + + + About 85% complete (missing vst bank/presets and some minor stuff) + Omkring 85% färdigställt (saknar vst-bank/förinställningar och vissa mindre grejor) + + + + CarlaHostW + + + MainWindow + HuvudFönster + + + + Rack + Rack + + + + Patchbay + Kopplingsplint + + + + Logs + Loggar + + + + Loading... + Läser in... + + + + Save + + + + + Clear + + + + + Ctrl+L + + + + + Auto-Scroll + + + + + Buffer Size: + Buffertstorlek: + + + + Sample Rate: + Samplingsfrekvens: + + + + ? Xruns + ? Överskridanden + + + + DSP Load: %p% + DSP-belastning: %p% + + + + &File + &Arkiv + + + + &Engine + &Motor + + + + &Plugin + &Tillägg + + + + Macros (all plugins) + Makron (alla tillägg) + + + + &Canvas + &Duk + + + + Zoom + Zooma + + + + &Settings + &Inställningar + + + + &Help + &Hjälp + + + + Tool Bar + + + + + Disk + Disk + + + + + Home + Hem + + + + Transport + Transport + + + + Playback Controls + Uppspelningskontroller + + + + Time Information + Tidinformation + + + + Frame: + Bild: + + + + 000'000'000 + 000'000'000 + + + + Time: + Tid: + + + + 00:00:00 + 00:00:00 + + + + BBT: + BBT: + + + + 000|00|0000 + 000|00|0000 + + + + Settings + Inställningar + + + + BPM + BPM + + + + Use JACK Transport + Använd JACK-transport + + + + Use Ableton Link + Använd Ableton Link + + + + &New + &Ny + + + + Ctrl+N + Ctrl+N + + + + &Open... + &Öppna... + + + + + Open... + Öppna... + + + + Ctrl+O + Ctrl+O + + + + &Save + &Spara + + + + Ctrl+S + Ctrl+S + + + + Save &As... + Spara &som... + + + + + Save As... + Spara som... + + + + Ctrl+Shift+S + Ctrl+Shift+S + + + + &Quit + &Avsluta + + + + Ctrl+Q + Ctrl+Q + + + + &Start + &Starta + + + + F5 + F5 + + + + St&op + St&opp + + + + F6 + F6 + + + + &Add Plugin... + &Lägg till tillägg... + + + + Ctrl+A + Ctrl+A + + + + &Remove All + &Ta bort alla + + + + Enable + Aktivera + + + + Disable + Inaktivera + + + + 0% Wet (Bypass) + 0% effekt (förbikoppla) + + + + 100% Wet + 100% effekt + + + + 0% Volume (Mute) + 0% volym (tyst) + + + + 100% Volume + 100% volym + + + + Center Balance + Centrumbalans + + + + &Play + &Spela + + + + Ctrl+Shift+P + Ctrl+Shift+P + + + + &Stop + &Stopp + + + + Ctrl+Shift+X + Ctrl+Shift+X + + + + &Backwards + &Bakåt + + + + Ctrl+Shift+B + Ctrl+Shift+B + + + + &Forwards + &Framåt + + + + Ctrl+Shift+F + Ctrl+Shift+F + + + + &Arrange + &Arrangera + + + + Ctrl+G + Ctrl+G + + + + + &Refresh + &Uppdatera + + + + Ctrl+R + Ctrl+R + + + + Save &Image... + Spara &bild... + + + + Auto-Fit + Autoanpassa + + + + Zoom In + Zooma in + + + + Ctrl++ + Ctrl++ + + + + Zoom Out + Zooma ut + + + + Ctrl+- + Ctrl+- + + + + Zoom 100% + Zooma 100% + + + + Ctrl+1 + Ctrl+1 + + + + Show &Toolbar + Visa &verktygsfält + + + + &Configure Carla + &Konfigurera Carla + + + + &About + &Om + + + + About &JUCE + Om &JUCE + + + + About &Qt + Om &Qt + + + + Show Canvas &Meters + Visa Duk&mätare + + + + Show Canvas &Keyboard + Visa Duk&tangentbord + + + + Show Internal + Visa intern + + + + Show External + Visa extern + + + + Show Time Panel + Visa tidspanel + + + + Show &Side Panel + Visa &sidopanel + + + + Ctrl+P + + + + + &Connect... + &Anslut... + + + + Compact Slots + Komprimera fack + + + + Expand Slots + Expandera fack + + + + Perform secret 1 + Utför hemlighet 1 + + + + Perform secret 2 + Utför hemlighet 2 + + + + Perform secret 3 + Utför hemlighet 3 + + + + Perform secret 4 + Utför hemlighet 4 + + + + Perform secret 5 + Utför hemlighet 5 + + + + Add &JACK Application... + Lägg till &JACK-program… + + + + &Configure driver... + &Konfigurera drivrutin... + + + + Panic + Panik + + + + Open custom driver panel... + Öppna anpassad drivrutinspanel… + + + + Save Image... (2x zoom) + + + + + Save Image... (4x zoom) + + + + + Copy as Image to Clipboard + + + + + Ctrl+Shift+C + + + + + CarlaHostWindow + + + Export as... + Exportera som... + + + + + + + Error + Fel + + + + Failed to load project + Det gick inte att läsa in projektet + + + + Failed to save project + Det gick inte att spara projektet + + + + Quit + Avsluta + + + + Are you sure you want to quit Carla? + Är du säker på att du vill stänga Carla? + + + + Could not connect to Audio backend '%1', possible reasons: +%2 + Kunde inte ansluta till Ljudbakände ”%1”, möjliga skäl: +%2 + + + + Could not connect to Audio backend '%1' + Kunde inte ansluta till Ljudbakände ”%1” + + + + Warning + Varning + + + + There are still some plugins loaded, you need to remove them to stop the engine. +Do you want to do this now? + Det finns fortfarande några tillägg inlästa, du måste ta bort dem för att stoppa motorn. +Vill du göra det nu? + + + + CarlaSettingsW + + + Settings + Inställningar + + + + main + huvud + + + + canvas + duk + + + + engine + motor + + + + osc + osc + + + + file-paths + filsökvägar + + + + plugin-paths + tilläggssökvägar + + + + wine + wine + + + + experimental + experimentell + + + + Widget + Kontroll + + + + + Main + Huvud + + + + + Canvas + Duk + + + + + Engine + Motor + + + + File Paths + Filsökvägar + + + + Plugin Paths + Tilläggssökvägar + + + + Wine + Wine + + + + + Experimental + Experimentell + + + + <b>Main</b> + <b>Huvud</b> + + + + Paths + Sökvägar + + + + Default project folder: + Standardprojektmapp: + + + + Interface + Gränssnitt + + + + Use "Classic" as default rack skin + + + + + Interface refresh interval: + Gränssnittets uppdateringsintervall: + + + + + ms + ms + + + + Show console output in Logs tab (needs engine restart) + Visa konsolutmatning i Loggflik (kräver motoromstart) + + + + Show a confirmation dialog before quitting + Visa en bekräftelsedialog innan avslut + + + + + Theme + Tema + + + + Use Carla "PRO" theme (needs restart) + Använd Carla ”PRO”-tema (kräver omstart) + + + + Color scheme: + Färgschema: + + + + Black + Svart + + + + System + System + + + + Enable experimental features + Aktivera experimentella funktioner + + + + <b>Canvas</b> + <b>Duk</b> + + + + Bezier Lines + Bézierlinjer + + + + Theme: + Tema: + + + + Size: + Storlek: + + + + 775x600 + 775x600 + + + + 1550x1200 + 1550x1200 + + + + 3100x2400 + 3100x2400 + + + + 4650x3600 + 4650x3600 + + + + 6200x4800 + 6200x4800 + + + + 12400x9600 + + + + + Options + Alternativ + + + + Auto-hide groups with no ports + Dölj grupper utan portar automatiskt + + + + Auto-select items on hover + Automarkera objekt vid hovring + + + + Basic eye-candy (group shadows) + Grundläggande ögongodis (gruppskuggor) + + + + Render Hints + Renderingstips + + + + Anti-Aliasing + Kantutjämning + + + + Full canvas repaints (slower, but prevents drawing issues) + Fullständiga dukomritningar (långsammare, men förhindrar uppritningsproblem) + + + + <b>Engine</b> + <b>Motor</b> + + + + + Core + Kärna + + + + Single Client + Enkel klient + + + + Multiple Clients + Flera klienter + + + + + Continuous Rack + Kontinuerligt rack + + + + + Patchbay + Kopplingsplint + + + + Audio driver: + Ljuddrivrutin: + + + + Process mode: + Hanteringsläge: + + + + + + + Maximum number of parameters to allow in the built-in 'Edit' dialog + Maximalt antal parametrar att tillåta i den inbyggda ”Redigera”-dialogen + + + + Max Parameters: + Max parametrar: + + + + ... + ... + + + + Reset Xrun counter after project load + Återställ Överskridsräknaren efter projektinläsning + + + + Plugin UIs + Tilläggsgränssnitt + + + + + How much time to wait for OSC GUIs to ping back the host + Hur lång tid att vänta för OSC-användargränssnitt att pinga tillbaka till värden + + + + UI Bridge Timeout: + Tidsgräns för användargränssnittsbryggor: + + + + Use OSC-GUI bridges when possible, this way separating the UI from DSP code + Använd OSC-GUI-bryggor när möjligt, för att på detta sätt separera användargränssnittet från DSP-koden. + + + + Use UI bridges instead of direct handling when possible + Använd gränssnittsbryggor istället för direkthantering när möjligt + + + + Make plugin UIs always-on-top + Placera alltid tilläggsgränssnitt överst + + + + Make plugin UIs appear on top of Carla (needs restart) + Placera tilläggsgränssnitt ovanpå Carla (kräver omstart) + + + + NOTE: Plugin-bridge UIs cannot be managed by Carla on macOS + OBSERVERA: Tilläggsgränssnitt över bryggor kan inte hanteras av Carla på macOS + + + + + Restart the engine to load the new settings + Starta om motorn för att läsa in de nya inställningarna + + + + <b>OSC</b> + <b>OSC</b> + + + + Enable OSC + Aktivera OSC + + + + Enable TCP port + Aktivera TCP-port + + + + + Use specific port: + Använd specifik port: + + + + Overridden by CARLA_OSC_TCP_PORT env var + Åsidosatt av miljövariabeln CARLA_OSC_TCP_PORT + + + + + Use randomly assigned port + Använd slumpmässigt tilldelad port + + + + Enable UDP port + Aktivera UDP-port + + + + Overridden by CARLA_OSC_UDP_PORT env var + Åsidosatt av miljövariabeln CARLA_OSC_UDP_PORT + + + + DSSI UIs require OSC UDP port enabled + DSSI-användargränssnit kräver att OSC UDP-port är aktiverad + + + + <b>File Paths</b> + <b>Filsökvägar</b> + + + + Audio + Ljud + + + + MIDI + MIDI + + + + Used for the "audiofile" plugin + Används för tillägget "audiofile" + + + + Used for the "midifile" plugin + Används för tillägget "midifile" + + + + + Add... + Lägg till... + + + + + Remove + Ta bort + + + + + Change... + Ändra... + + + + <b>Plugin Paths</b> + <b>Tilläggssökvägar</b> + + + + LADSPA + LADSPA + + + + DSSI + DSSI + + + + LV2 + LV2 + + + + VST2 + VST2 + + + + VST3 + VST3 + + + + SF2/3 + SF2/3 + + + + SFZ + SFZ + + + + JSFX + + + + + CLAP + + + + + Restart Carla to find new plugins + Starta om Carla för att hitta nya tillägg + + + + <b>Wine</b> + <b>Wine</b> + + + + Executable + Körbar + + + + Path to 'wine' binary: + Sökväg till "wine"-binär: + + + + Prefix + Prefix + + + + Auto-detect Wine prefix based on plugin filename + Automatisk detektering av Wine-prefix baserat på filnamn för tillägg + + + + Fallback: + Reservinställning: + + + + Note: WINEPREFIX env var is preferred over this fallback + Notera: Miljövariabeln WINEPREFIX föredras framför denna reservinställning + + + + Realtime Priority + Realtidsprioritet + + + + Base priority: + Grundprioritet: + + + + WineServer priority: + WineServer-prioritet: + + + + These options are not available for Carla as plugin + Dessa alternativ finns inte tillgängliga för Carla som tillägg + + + + <b>Experimental</b> + <b>Experimentell</b> + + + + Experimental options! Likely to be unstable! + Experimentalla alternativ! Förmodligen instabila! + + + + Enable plugin bridges + Aktivera tilläggsbryggor + + + + Enable Wine bridges + Aktivera Wine-bryggor + + + + Enable jack applications + Aktivera jack-program + + + + Export single plugins to LV2 + Exportera enskilda tillägg till LV2 + + + + Use system/desktop-theme icons (needs restart) + + + + + Load Carla backend in global namespace (NOT RECOMMENDED) + Läs in Carla-bakände i global namnrymd (INTE REKOMMENDERAT) + + + + Fancy eye-candy (fade-in/out groups, glow connections) + Snyggt ögongodisk (grupper tonas in/ut, glödande anslutningar) + + + + Use OpenGL for rendering (needs restart) + Använd OpenGL för rendering (kräver omstart) + + + + High Quality Anti-Aliasing (OpenGL only) + Högkvalitativ kantutjämning (endast OpenGL) + + + + Render Ardour-style "Inline Displays" + Rendera Ardour-liknande ”inbyggda visningar” + + + + Force mono plugins as stereo by running 2 instances at the same time. +This mode is not available for VST plugins. + Tvinga mono-tillägg att använda stereo genom att köra 2 instanser av det samtidigt. +Detta läge är inte tillgängligt för VST-tillägg. + + + + Force mono plugins as stereo + Tvinga mono-tillägg att vara stereo + + + + When enabled, Carla will try to prevent plugins from doing things that might mess up the audio or cause xruns, such as fork(), gtk_init() and similar. + + + + + Prevent unsafe calls from plugins (needs restart) + + + + + Run plugins in a separate process, so if they crash it does not affect Carla. +Plugins get automatically deactivated in such cases. +Reactvate them to start the process again, with the last saved state applied to it. + + + + + Run plugins in bridge mode when possible + Kör tillägg i bryggat läge när det är möjligt + + + + + + + Add Path + Lägg till sökväg + + + + Dialog + + + Carla Control - Connect + Carla-kontroll - Anslut + + + + Remote setup + Fjärrinställning + + + + UDP Port: + UDP-port: + + + + Remote host: + Fjärrvärd: + + + + TCP Port: + TCP-port: + + + + Set value + Ställ in värde + + + + TextLabel + TextLabel + + + + Scale Points + Skala punkter + + + + DriverSettingsW + + + Driver Settings + Drivrutinsinställningar + + + + Device: + Enhet: + + + + Buffer size: + Buffertstorlek: + + + + Sample rate: + Samplingsfrekvens: + + + + Triple buffer + Trippelbuffring + + + + Show Driver Control Panel + Visa kontrollpanel för drivrutin + + + + Restart the engine to load the new settings + Starta om motorn för att läsa in de nya inställningarna + + + + ExportProjectDialog + + + Export project + Exportera projekt + + + + Export as loop (remove extra bar) + Exportera som loop (ta bort extra takt) + + + + Export between loop markers + Exportera mellan slinga-markeringar + + + + Render Looped Section: + Rendera loopat område: + + + + time(s) + gång(er) + + + + File format settings + Inställningar för filformat + + + + File format: + Filformat: + + + + Sampling rate: + Samplingsfrekvens: + + + + 44100 Hz + 44100 Hz + + + + 48000 Hz + 48000 Hz + + + + 88200 Hz + 88200 Hz + + + + 96000 Hz + 96000 Hz + + + + 192000 Hz + 192000 Hz + + + + Bit depth: + Bitdjup: + + + + 16 Bit integer + 16-bitar heltal + + + + 24 Bit integer + 24-bitar heltal + + + + 32 Bit float + 32-bitar flyttal + + + + Stereo mode: + Stereoläge: + + + + Mono + Mono + + + + Stereo + Stereo + + + + Joint stereo + Kombinerad stereo + + + + Compression level: + Kompressionsnivå: + + + + Bitrate: + Bithastighet: + + + + 64 KBit/s + 64 KBit/s + + + + 128 KBit/s + 128 KBit/s + + + + 160 KBit/s + 160 KBit/s + + + + 192 KBit/s + 192 KBit/s + + + + 256 KBit/s + 256 KBit/s + + + + 320 KBit/s + 320 KBit/s + + + + Use variable bitrate + Använd variabel bithastighet + + + + Quality settings + Kvalitetsinställningar + + + + Interpolation: + Interpolering: + + + + Zero order hold + Nollnivå håll + + + + Sinc worst (fastest) + Sinc sämst (snabbast) + + + + Sinc medium (recommended) + Sinc medium (rekommenderas) + + + + Sinc best (slowest) + Sinc bäst (långsammast) + + + + Start + Starta + + + + Cancel + Avbryt + + + + InstrumentFunctionNoteStacking + + + octave + oktav + + + + + Major + Dur + + + + Majb5 + Majb5 + + + + minor + moll + + + + minb5 + mollb5 + + + + sus2 + sus2 + + + + sus4 + sus4 + + + + aug + aug + + + + augsus4 + augsus4 + + + + tri + tre + + + + 6 + 6 + + + + 6sus4 + 6sus4 + + + + 6add9 + 6add9 + + + + m6 + m6 + + + + m6add9 + m6add9 + + + + 7 + 7 + + + + 7sus4 + 7sus4 + + + + 7#5 + 7#5 + + + + 7b5 + 7b5 + + + + 7#9 + 7#9 + + + + 7b9 + 7b9 + + + + 7#5#9 + 7#5#9 + + + + 7#5b9 + 7#5b9 + + + + 7b5b9 + 7b5b9 + + + + 7add11 + 7add11 + + + + 7add13 + 7add13 + + + + 7#11 + 7#11 + + + + Maj7 + Maj7 + + + + Maj7b5 + Maj7b5 + + + + Maj7#5 + Maj7#5 + + + + Maj7#11 + Maj7#11 + + + + Maj7add13 + Maj7add13 + + + + m7 + m7 + + + + m7b5 + m7b5 + + + + m7b9 + m7b9 + + + + m7add11 + m7add11 + + + + m7add13 + m7add13 + + + + m-Maj7 + m-Maj7 + + + + m-Maj7add11 + m-Maj7add11 + + + + m-Maj7add13 + m-Maj7add13 + + + + 9 + 9 + + + + 9sus4 + 9sus4 + + + + add9 + add9 + + + + 9#5 + 9#5 + + + + 9b5 + 9b5 + + + + 9#11 + 9#11 + + + + 9b13 + 9b13 + + + + Maj9 + Maj9 + + + + Maj9sus4 + Maj9sus4 + + + + Maj9#5 + Maj9#5 + + + + Maj9#11 + Maj9#11 + + + + m9 + m9 + + + + madd9 + madd9 + + + + m9b5 + m9b5 + + + + m9-Maj7 + m9-Maj7 + + + + 11 + 11 + + + + 11b9 + 11b9 + + + + Maj11 + Maj11 + + + + m11 + m11 + + + + m-Maj11 + m-Maj11 + + + + 13 + 13 + + + + 13#9 + 13#9 + + + + 13b9 + 13b9 + + + + 13b5b9 + 13b5b9 + + + + Maj13 + Maj13 + + + + m13 + m13 + + + + m-Maj13 + m-Maj13 + + + + Harmonic minor + Harmonisk moll + + + + Melodic minor + Melodisk moll + + + + Whole tone + Hela tonen + + + + Diminished + Minskad + + + + Major pentatonic + Dur pentatonisk + + + + Minor pentatonic + Mollpentatonisk + + + + Jap in sen + Jap in sen + + + + Major bebop + Dur bebop + + + + Dominant bebop + Dominant bebop + + + + Blues + Blues + + + + Arabic + Arabisk + + + + Enigmatic + Gåtfull + + + + Neopolitan + Napolitansk + + + + Neopolitan minor + Napolitansk moll + + + + Hungarian minor + Ungersk moll + + + + Dorian + Dorisk + + + + Phrygian + Frygisk + + + + Lydian + Lydisk + + + + Mixolydian + Mixolydisk + + + + Aeolian + Aeolisk + + + + Locrian + Lokrisk + + + + Minor + Moll + + + + Chromatic + Kromatisk + + + + Half-Whole Diminished + Halv-hel förminskad + + + + 5 + 5 + + + + Phrygian dominant + Frygisk dominant + + + + Persian + Persisk + + + + InstrumentSoundShaping + + + VOLUME + VOLYM + + + + Volume + Volym + + + + CUTOFF + BRYTFRKV + + + + Cutoff frequency + Cutoff frekvens + + + + RESO + RESO + + + + Resonance + Resonans + + + + JackAppDialog + + + Add JACK Application + + + + + Note: Features not implemented yet are greyed out + + + + + Application + + + + + Name: + + + + + Application: + + + + + From template + + + + + Custom + + + + + Template: + + + + + Command: + + + + + Setup + + + + + Session Manager: + + + + + None + + + + + Audio inputs: + + + + + MIDI inputs: + + + + + Audio outputs: + + + + + MIDI outputs: + + + + + Take control of main application window + + + + + Workarounds + + + + + Wait for external application start (Advanced, for Debug only) + + + + + Capture only the first X11 Window + + + + + Use previous client output buffer as input for the next client + + + + + Simulate 16 JACK MIDI outputs, with MIDI channel as port index + + + + + Error here + + + + + NSM applications cannot use abstract or absolute paths + + + + + NSM applications cannot use CLI arguments + + + + + You need to save the current Carla project before NSM can be used + + + + + JuceAboutW + + + This program uses JUCE version %1. + Detta program använder JUCE version %1. + + + + MidiPatternW + + + MIDI Pattern + MIDI-mönster + + + + Time Signature: + Tidsignatur: + + + + + + 1/4 + 1/4 + + + + 2/4 + 2/4 + + + + 3/4 + 3/4 + + + + 4/4 + 4/4 + + + + 5/4 + 5/4 + + + + 6/4 + 6/4 + + + + Measures: + Takter: + + + + + + 1 + 1 + + + + 2 + 2 + + + + 3 + 3 + + + + 4 + 4 + + + + 5 + 5 + + + + 6 + 6 + + + + 7 + 7 + + + + 8 + 8 + + + + 9 + 9 + + + + 10 + 10 + + + + 11 + 11 + + + + 12 + 12 + + + + 13 + 13 + + + + 14 + 14 + + + + 15 + 15 + + + + 16 + 16 + + + + Default Length: + Standardlängd: + + + + + 1/16 + 1/16 + + + + + 1/15 + 1/15 + + + + + 1/12 + 1/12 + + + + + 1/9 + 1/9 + + + + + 1/8 + 1/8 + + + + + 1/6 + 1/6 + + + + + 1/3 + 1/3 + + + + + 1/2 + 1/2 + + + + Quantize: + Kvantisera: + + + + &File + &Arkiv + + + + &Edit + &Redigera + + + + &Quit + &Avsluta + + + + Esc + + + + + &Insert Mode + &Infogningsläge + + + + F + F + + + + &Velocity Mode + &Hastighetsläge + + + + D + D + + + + Select All + Välj alla + + + + A + A + + + + PatchesDialog + + + + Qsynth: Channel Preset + Qsynth: Kanal förinställd + + + + + Bank selector + Bankväljare + + + + + Bank + Bank + + + + + Program selector + Programväljare + + + + + Patch + Inställning + + + + + Name + Namn + + + + + OK + OK + + + + + Cancel + Avbryt + + + + PluginBrowser + + + no description + ingen beskrivning + + + + A native amplifier plugin + En inbyggd förstärkare-tillägg + + + + Simple sampler with various settings for using samples (e.g. drums) in an instrument-track + Enkel sampler med olika inställningar för att använda samplingar (t. ex. trummor) i ett instrumentspår + + + + Boost your bass the fast and simple way + Öka din bas på snabbt och enkelt sätt + + + + Customizable wavetable synthesizer + Anpassa vågtabellssynthesizer + + + + An oversampling bitcrusher + En översamplande bitkrossare + + + + Carla Patchbay Instrument + Instrument för Carla Kopplingsplint + + + + Carla Rack Instrument + Carla Rack-instrument + + + + A dynamic range compressor. + + + + + A 4-band Crossover Equalizer + En 4-bands korsningspunkts frekvenskorrigerare + + + + A native delay plugin + Ett inbyggt fördröjningstillägg + + + + A Dual filter plugin + Ett Dual filter-tillägg + + + + plugin for processing dynamics in a flexible way + tillägg för dynamisk bearbetning på ett flexibelt sätt + + + + A native eq plugin + Ett inbyggt eq-tillägg + + + + A native flanger plugin + Ett inbyggt flanger-tillägg + + + + Emulation of GameBoy (TM) APU + Emulering av GameBoy (TM) APU + + + + Player for GIG files + Spelare för GIG-filer + + + + Filter for importing Hydrogen files into LMMS + Filter för att importera Hydrogen-filer till LMMS + + + + Versatile drum synthesizer + Mångsidig trum-synth + + + + List installed LADSPA plugins + Lista installerade LADSPA-tillägg + + + + plugin for using arbitrary LADSPA-effects inside LMMS. + tillägg för att använda godtyckliga LADSPA-effekter inom LMMS. + + + + Incomplete monophonic imitation TB-303 + + + + + plugin for using arbitrary LV2-effects inside LMMS. + tillägg för användning av godtyckliga LV2-effekter inuti LMMS. + + + + plugin for using arbitrary LV2 instruments inside LMMS. + tillägg för användning av godtyckliga LV2-instrument inuti LMMS. + + + + Filter for exporting MIDI-files from LMMS + Filter för att exportera MIDI-filer från LMMS + + + + Filter for importing MIDI-files into LMMS + Filter för att importera MIDI-filer till LMMS + + + + Monstrous 3-oscillator synth with modulation matrix + Monstruös 3-oscillatorsynth med moduleringsmix + + + + A multitap echo delay plugin + Ett flertapps ekofördröjningstillägg + + + + A NES-like synthesizer + En NES-lik synthesizer + + + + 2-operator FM Synth + 2-operators FM-synth + + + + Additive Synthesizer for organ-like sounds + Additiv synthesizer för orgellika ljud + + + + GUS-compatible patch instrument + GUS-kompatibelt kopplingsinstrument + + + + Plugin for controlling knobs with sound peaks + Tillägg för styrning av rattar med ljudtoppar + + + + Reverb algorithm by Sean Costello + Reverb-algoritm av Sean Costello + + + + Player for SoundFont files + Spelare för SoundFont-filer + + + + LMMS port of sfxr + LMMS-port av sfxr + + + + Emulation of the MOS6581 and MOS8580 SID. +This chip was used in the Commodore 64 computer. + Emulering av MOS6581 och MODS 8580 SID. +Detta chip användes i datorn Commodore 64. + + + + A graphical spectrum analyzer. + En grafisk spektrumanalysator + + + + Plugin for enhancing stereo separation of a stereo input file + Tillägg för att förbättra stereoseparation av en stereoingångsfil + + + + Plugin for freely manipulating stereo output + Tillägg för fritt manipulera stereoutgång + + + + Tuneful things to bang on + Melodiska saker att slå på + + + + Three powerful oscillators you can modulate in several ways + Tre kraftfulla oscillatorer du kan modulera på flera sätt + + + + A stereo field visualizer. + Stereofältsvisualiserare. + + + + VST-host for using VST(i)-plugins within LMMS + VST-värd för att använda VST(i)-tillägg inom LMMS + + + + Vibrating string modeler + Modellerare för vibrerande strängar + + + + plugin for using arbitrary VST effects inside LMMS. + tillägg för att använda godtyckliga VST-effekter inom LMMS. + + + + 4-oscillator modulatable wavetable synth + 4-oscillators modulerbar vågtabellssynth + + + + plugin for waveshaping + tillägg för vågformande + + + + Mathematical expression parser + Tolk för matematiska uttryck + + + + Embedded ZynAddSubFX + Inbäddad ZynAddSubFX + + + + An all-pass filter allowing for extremely high orders. + + + + + Granular pitch shifter + + + + + Upwards/downwards multiband compression plugin powered by the eldritch elder god LOMMUS. + + + + + Basic Slicer + + + + + Tap to the beat + + + + + PluginEdit + + + Plugin Editor + Tilläggsredigerare + + + + Edit + Redigera + + + + Control + Kontroll + + + + MIDI Control Channel: + MIDI-kontrollkanal: + + + + N + N + + + + Output dry/wet (100%) + Utgång original/effekt (100%) + + + + Output volume (100%) + Utgångsvolym (100%) + + + + Balance Left (0%) + Balans vänster (0%) + + + + + Balance Right (0%) + Balans höger (0%) + + + + Use Balance + Använd balans + + + + Use Panning + Använd panorering + + + + Settings + Inställningar + + + + Use Chunks + Använd stycken + + + + Audio: + Ljud: + + + + Fixed-Size Buffer + Buffer med fix storlek + + + + Force Stereo (needs reload) + Tvingad stereo (kräver omstart) + + + + MIDI: + MIDI: + + + + Map Program Changes + Mapp programändringar + + + + Send Notes + + + + + Send Bank/Program Changes + Skicka bank-/programändringar + + + + Send Control Changes + Skicka kontrolländringar + + + + Send Channel Pressure + Skicka kanaltryck + + + + Send Note Aftertouch + Skicka efterberöring för noter + + + + Send Pitchbend + Skicka tonhöjdsböjning + + + + Send All Sound/Notes Off + Skicka alla ljud/noter av + + + + +Plugin Name + + +Tilläggsnamn + + + + + Program: + Program: - - Plugin Version - Tilläggsversion + + MIDI Program: + MIDI-program: - - <br>Version %1<br>Carla is a fully-featured audio plugin host%2.<br><br>Copyright (C) 2011-2019 falkTX<br> - <br>Version %1<br>Carla är en fullt utrustad ljudtilläggsvärd%2.<br><br>Copyright (C) 2011-2019 falkTX<br> + + Save State + Spara tillstånd - - - (Engine not running) - (Motor kör inte) + + Load State + Ladda tillstånd - - Everything! (Including LRDF) - Allt! (Inklusive LRDF) + + Information + Information - - Everything! (Including CustomData/Chunks) - Allting! (Inklusive CustomData/Chunks) + + Label/URI: + Etikett/URI: - - About 110&#37; complete (using custom extensions)<br/>Implemented Feature/Extensions:<ul><li>http://lv2plug.in/ns/ext/atom</li><li>http://lv2plug.in/ns/ext/buf-size</li><li>http://lv2plug.in/ns/ext/data-access</li><li>http://lv2plug.in/ns/ext/event</li><li>http://lv2plug.in/ns/ext/instance-access</li><li>http://lv2plug.in/ns/ext/log</li><li>http://lv2plug.in/ns/ext/midi</li><li>http://lv2plug.in/ns/ext/options</li><li>http://lv2plug.in/ns/ext/parameters</li><li>http://lv2plug.in/ns/ext/port-props</li><li>http://lv2plug.in/ns/ext/presets</li><li>http://lv2plug.in/ns/ext/resize-port</li><li>http://lv2plug.in/ns/ext/state</li><li>http://lv2plug.in/ns/ext/time</li><li>http://lv2plug.in/ns/ext/uri-map</li><li>http://lv2plug.in/ns/ext/urid</li><li>http://lv2plug.in/ns/ext/worker</li><li>http://lv2plug.in/ns/extensions/ui</li><li>http://lv2plug.in/ns/extensions/units</li><li>http://home.gna.org/lv2dynparam/rtmempool/v1</li><li>http://kxstudio.sf.net/ns/lv2ext/external-ui</li><li>http://kxstudio.sf.net/ns/lv2ext/programs</li><li>http://kxstudio.sf.net/ns/lv2ext/props</li><li>http://kxstudio.sf.net/ns/lv2ext/rtmempool</li><li>http://ll-plugins.nongnu.org/lv2/ext/midimap</li><li>http://ll-plugins.nongnu.org/lv2/ext/miditype</li></ul> - Om 110&#37; komplett (med anpassade tillägg)<br/>Implementerad funktion/tillägg:<ul><li>http://lv2plug.in/ns/ext/atom</li><li>http://lv2plug.in/ns/ext/buf-size</li><li>http://lv2plug.in/ns/ext/data-access</li><li>http://lv2plug.in/ns/ext/event</li><li>http://lv2plug.in/ns/ext/instance-access</li><li>http://lv2plug.in/ns/ext/log</li><li>http://lv2plug.in/ns/ext/midi</li><li>http://lv2plug.in/ns/ext/options</li><li>http://lv2plug.in/ns/ext/parameters</li><li>http://lv2plug.in/ns/ext/port-props</li><li>http://lv2plug.in/ns/ext/presets</li><li>http://lv2plug.in/ns/ext/resize-port</li><li>http://lv2plug.in/ns/ext/state</li><li>http://lv2plug.in/ns/ext/time</li><li>http://lv2plug.in/ns/ext/uri-map</li><li>http://lv2plug.in/ns/ext/urid</li><li>http://lv2plug.in/ns/ext/worker</li><li>http://lv2plug.in/ns/extensions/ui</li><li>http://lv2plug.in/ns/extensions/units</li><li>http://home.gna.org/lv2dynparam/rtmempool/v1</li><li>http://kxstudio.sf.net/ns/lv2ext/external-ui</li><li>http://kxstudio.sf.net/ns/lv2ext/programs</li><li>http://kxstudio.sf.net/ns/lv2ext/props</li><li>http://kxstudio.sf.net/ns/lv2ext/rtmempool</li><li>http://ll-plugins.nongnu.org/lv2/ext/midimap</li><li>http://ll-plugins.nongnu.org/lv2/ext/miditype</li></ul> + + Name: + Namn: - - - - Using Juce host - Använder Juce-värd + + Type: + Typ: - - About 85% complete (missing vst bank/presets and some minor stuff) - Omkring 85% färdigställt (saknar vst-bank/förinställningar och vissa mindre grejor) + + Maker: + Tillverkare: + + + + Copyright: + Upphovsrätt: + + + + Unique ID: + Unikt ID: - CarlaHostW + PluginFactory - - MainWindow - HuvudFönster + + Plugin not found. + Tillägget hittades inte. - - Rack - Rack + + LMMS plugin %1 does not have a plugin descriptor named %2! + LMMS-tillägget %1 har ingen tilläggsbeskrivning med namnet %2! + + + PluginListDialog - - Patchbay - Kopplingsplint + + Carla - Add New + - - Logs - Loggar + + Requirements + - - Loading... - Läser in... + + With Custom GUI + - - Buffer Size: - Buffertstorlek: + + With CV Ports + + + + + Real-time safe only + + + + + Stereo only + + + + + With Inline Display + + + + + Favorites only + + + + + (Number of Plugins go here) + + + + + &Add Plugin + + + + + Cancel + + + + + Refresh + + + + + Reset filters + + + + + + + + + + + + + + + + + + + + TextLabel + + + + + Format: + + + + + Architecture: + + + + + Type: + + + + + MIDI Ins: + + + + + Audio Ins: + + + + + CV Outs: + + + + + MIDI Outs: + + + + + Parameter Ins: + + + + + Parameter Outs: + + + + + Audio Outs: + + + + + CV Ins: + + + + + UniqueID: + + + + + Has Inline Display: + + + + + Has Custom GUI: + + + + + Is Synth: + + + + + Is Bridged: + + + + + Information + + + + + Name + + + + + Label/Id/URI + + + + + Maker + + + + + Binary/Filename + + + + + Format + + + + + Internal + - - Sample Rate: - Samplingsfrekvens: + + LADSPA + - - ? Xruns - ? Överskridanden + + DSSI + - - DSP Load: %p% - DSP-belastning: %p% + + LV2 + - - &File - &Arkiv + + VST2 + - - &Engine - &Motor + + VST3 + - - &Plugin - &Tillägg + + CLAP + - - Macros (all plugins) - Makron (alla tillägg) + + AU + - - &Canvas - &Duk + + JSFX + - - Zoom - Zooma + + Sound Kits + - - &Settings - &Inställningar + + Type + - - &Help - &Hjälp + + Effects + - - toolBar - verktygsFält + + Instruments + - - Disk - Disk + + MIDI Plugins + - - - Home - Hem + + Other/Misc + - - Transport - Transport + + Category + - - Playback Controls - Uppspelningskontroller + + All + - - Time Information - Tidinformation + + Delay + - - Frame: - Bild: + + Distortion + - - 000'000'000 - 000'000'000 + + Dynamics + - - Time: - Tid: + + EQ + - - 00:00:00 - 00:00:00 + + Filter + - - BBT: - BBT: + + Modulator + - - 000|00|0000 - 000|00|0000 + + Synth + - - Settings - Inställningar + + Utility + - - BPM - BPM + + + Other + - - Use JACK Transport - Använd JACK-transport + + Architecture + - - Use Ableton Link - Använd Ableton Link + + + Native + - - &New - &Ny + + Bridged + - - Ctrl+N - Ctrl+N + + Bridged (Wine) + - - &Open... - &Öppna... + + Focus Text Search + - - - Open... - Öppna... + + Ctrl+F + - - Ctrl+O - Ctrl+O + + Bridged (32bit) + - - &Save - &Spara + + Discovering internal plugins... + - - Ctrl+S - Ctrl+S + + Discovering LADSPA plugins... + - - Save &As... - Spara &som... + + Discovering DSSI plugins... + - - - Save As... - Spara som... + + Discovering LV2 plugins... + - - Ctrl+Shift+S - Ctrl+Shift+S + + Discovering VST2 plugins... + - - &Quit - &Avsluta + + Discovering VST3 plugins... + - - Ctrl+Q - Ctrl+Q + + Discovering CLAP plugins... + - - &Start - &Starta + + Discovering AU plugins... + - - F5 - F5 + + Discovering JSFX plugins... + - - St&op - St&opp + + Discovering SF2 kits... + - - F6 - F6 + + Discovering SFZ kits... + - - &Add Plugin... - &Lägg till tillägg... + + Unknown + - - Ctrl+A - Ctrl+A + + + + + Yes + - - &Remove All - &Ta bort alla + + + + + No + + + + PluginParameter - - Enable - Aktivera + + Form + Form - - Disable - Inaktivera + + Parameter Name + Parameternamn - - 0% Wet (Bypass) - 0% effekt (förbikoppla) + + TextLabel + - - 100% Wet - 100% effekt + + ... + ... + + + PluginRefreshDialog - - 0% Volume (Mute) - 0% volym (tyst) + + Plugin Refresh + - - 100% Volume - 100% volym + + Search for: + - - Center Balance - Centrumbalans + + All plugins, ignoring cache + - - &Play - &Spela + + Updated plugins only + - - Ctrl+Shift+P - Ctrl+Shift+P + + Check previously invalid plugins + - - &Stop - &Stopp + + Press 'Scan' to begin the search + - - Ctrl+Shift+X - Ctrl+Shift+X + + Scan + - - &Backwards - &Bakåt + + >> Skip + - - Ctrl+Shift+B - Ctrl+Shift+B + + Close + + + + PluginWidget - - &Forwards - &Framåt + + + + + + Frame + Bild - - Ctrl+Shift+F - Ctrl+Shift+F + + Enable + Aktivera - - &Arrange - &Arrangera + + On/Off + På/Av - - Ctrl+G - Ctrl+G + + + + + PluginName + Tilläggsnamn - - - &Refresh - &Uppdatera + + MIDI + MIDI - - Ctrl+R - Ctrl+R + + AUDIO IN + LJUDINGÅNG - - Save &Image... - Spara &bild... + + AUDIO OUT + LJUDUTGÅNG - - Auto-Fit - Autoanpassa + + GUI + Användargränssnitt - - Zoom In - Zooma in + + Edit + Redigera - - Ctrl++ - Ctrl++ + + Remove + Ta bort - - Zoom Out - Zooma ut + + Plugin Name + Tilläggsnamn - - Ctrl+- - Ctrl+- + + Preset: + Förinställning: + + + ProjectRenderer - - Zoom 100% - Zooma 100% + + WAV (*.wav) + WAV (*.wav) - - Ctrl+1 - Ctrl+1 + + FLAC (*.flac) + FLAC (*.flac) - - Show &Toolbar - Visa &verktygsfält + + OGG (*.ogg) + OGG (*.ogg) - - &Configure Carla - &Konfigurera Carla + + MP3 (*.mp3) + MP3 (*.mp3) + + + QGroupBox - - &About - &Om + + + Settings for %1 + + + + QObject - - About &JUCE - Om &JUCE + + Reload Plugin + Läs in tillägg igen - - About &Qt - Om &Qt + + Show GUI + Visa användargränssnitt - - Show Canvas &Meters - Visa Duk&mätare + + Help + Hjälp - - Show Canvas &Keyboard - Visa Duk&tangentbord + + LADSPA plugins + - - Show Internal - Visa intern + + The project contains %1 LADSPA plugin(s) which might have not been restored correctly! Please check the project. + - - Show External - Visa extern + + URI: + - - Show Time Panel - Visa tidspanel + + Project: + - - Show &Side Panel - Visa &sidopanel + + Maker: + - - &Connect... - &Anslut... + + Homepage: + - - Compact Slots - Komprimera fack + + License: + - - Expand Slots - Expandera fack + + File: %1 + - - Perform secret 1 - Utför hemlighet 1 + + failed to load description + - - Perform secret 2 - Utför hemlighet 2 + + Open audio file + - - Perform secret 3 - Utför hemlighet 3 + + Error loading sample + - - Perform secret 4 - Utför hemlighet 4 + + %1 (unsupported) + + + + QWidget - - Perform secret 5 - Utför hemlighet 5 + + + Name: + Namn: - - Add &JACK Application... - Lägg till &JACK-program… + + Maker: + Skapare: - - &Configure driver... - &Konfigurera drivrutin... + + Copyright: + Copyright: - - Panic - Panik + + Requires Real Time: + Kräver realtid: - - Open custom driver panel... - Öppna anpassad drivrutinspanel… + + + + Yes + Ja - - - CarlaHostWindow - - Export as... - Exportera som... + + + + No + Nej - - - - - Error - Fel + + Real Time Capable: + Klarar realtid: - - Failed to load project - Det gick inte att läsa in projektet + + In Place Broken: + Trasig på plats: - - Failed to save project - Det gick inte att spara projektet + + Channels In: + Kanaler in: - - Quit - Avsluta + + Channels Out: + Kanaler ut: - - Are you sure you want to quit Carla? - Är du säker på att du vill stänga Carla? + + File: %1 + Fil: %1 - - Could not connect to Audio backend '%1', possible reasons: -%2 - Kunde inte ansluta till Ljudbakände ”%1”, möjliga skäl: -%2 + + File: + Fil: + + + XYControllerW - - Could not connect to Audio backend '%1' - Kunde inte ansluta till Ljudbakände ”%1” + + XY Controller + - - Warning - Varning + + X Controls: + - - There are still some plugins loaded, you need to remove them to stop the engine. -Do you want to do this now? - Det finns fortfarande några tillägg inlästa, du måste ta bort dem för att stoppa motorn. -Vill du göra det nu? + + Y Controls: + - - - CarlaInstrumentView - - Show GUI - Visa användargränssnitt + + Smooth + - - - CarlaSettingsW - - Settings - Inställningar + + &Settings + - - main - huvud + + Channels + - - canvas - duk + + &File + - - engine - motor + + Show MIDI &Keyboard + - - osc - osc + + (All) + - - file-paths - filsökvägar + + 1 + - - plugin-paths - tilläggssökvägar + + 2 + - - wine - wine + + 3 + - - experimental - experimentell + + 4 + - - Widget - Kontroll + + 5 + - - - Main - Huvud + + 6 + - - - Canvas - Duk + + 7 + - - - Engine - Motor + + 8 + - - File Paths - Filsökvägar + + 9 + - - Plugin Paths - Tilläggssökvägar + + 10 + - - Wine - Wine + + 11 + - - - Experimental - Experimentell + + 12 + - - <b>Main</b> - <b>Huvud</b> + + 13 + - - Paths - Sökvägar + + 14 + - - Default project folder: - Standardprojektmapp: + + 15 + - - Interface - Gränssnitt + + 16 + - - Interface refresh interval: - Gränssnittets uppdateringsintervall: + + &Quit + - - - ms - ms + + Esc + - - Show console output in Logs tab (needs engine restart) - Visa konsolutmatning i Loggflik (kräver motoromstart) + + (None) + + + + lmms::AmplifierControls - - Show a confirmation dialog before quitting - Visa en bekräftelsedialog innan avslut + + Volume + - - - Theme - Tema + + Panning + - - Use Carla "PRO" theme (needs restart) - Använd Carla ”PRO”-tema (kräver omstart) + + Left gain + - - Color scheme: - Färgschema: + + Right gain + + + + lmms::AudioFileProcessor - - Black - Svart + + Amplify + - - System - System + + Start of sample + - - Enable experimental features - Aktivera experimentella funktioner + + End of sample + - - <b>Canvas</b> - <b>Duk</b> + + Loopback point + - - Bezier Lines - Bézierlinjer + + Reverse sample + - - Theme: - Tema: + + Loop mode + - - Size: - Storlek: + + Stutter + - - 775x600 - 775x600 + + Interpolation mode + - - 1550x1200 - 1550x1200 + + None + - - 3100x2400 - 3100x2400 + + Linear + - - 4650x3600 - 4650x3600 + + Sinc + - - 6200x4800 - 6200x4800 + + Sample not found + + + + lmms::AudioJack - - Options - Alternativ + + JACK client restarted + - - Auto-hide groups with no ports - Dölj grupper utan portar automatiskt + + LMMS was kicked by JACK for some reason. Therefore the JACK backend of LMMS has been restarted. You will have to make manual connections again. + - - Auto-select items on hover - Automarkera objekt vid hovring + + JACK server down + - - Basic eye-candy (group shadows) - Grundläggande ögongodis (gruppskuggor) + + The JACK server seems to have been shutdown and starting a new instance failed. Therefore LMMS is unable to proceed. You should save your project and restart JACK and LMMS. + - - Render Hints - Renderingstips + + Client name + - - Anti-Aliasing - Kantutjämning + + Channels + + + + lmms::AudioOss - - Full canvas repaints (slower, but prevents drawing issues) - Fullständiga dukomritningar (långsammare, men förhindrar uppritningsproblem) + + Device + - - <b>Engine</b> - <b>Motor</b> + + Channels + + + + lmms::AudioPortAudio::setupWidget - - - Core - Kärna + + Backend + - - Single Client - Enkel klient + + Device + + + + lmms::AudioPulseAudio - - Multiple Clients - Flera klienter + + Device + - - - Continuous Rack - Kontinuerligt rack + + Channels + + + + lmms::AudioSdl::setupWidget - - - Patchbay - Kopplingsplint + + Playback device + - - Audio driver: - Ljuddrivrutin: + + Input device + + + + lmms::AudioSndio - - Process mode: - Hanteringsläge: + + Device + - - - - - Maximum number of parameters to allow in the built-in 'Edit' dialog - Maximalt antal parametrar att tillåta i den inbyggda ”Redigera”-dialogen + + Channels + + + + lmms::AudioSoundIo::setupWidget - - Max Parameters: - Max parametrar: + + Backend + - - ... - ... + + Device + + + + lmms::AutomatableModel - - Reset Xrun counter after project load - Återställ Överskridsräknaren efter projektinläsning + + &Reset (%1%2) + - - Plugin UIs - Tilläggsgränssnitt + + &Copy value (%1%2) + - - - How much time to wait for OSC GUIs to ping back the host - Hur lång tid att vänta för OSC-användargränssnitt att pinga tillbaka till värden + + &Paste value (%1%2) + - - UI Bridge Timeout: - Tidsgräns för användargränssnittsbryggor: + + &Paste value + - - Use OSC-GUI bridges when possible, this way separating the UI from DSP code - Använd OSC-GUI-bryggor när möjligt, för att på detta sätt separera användargränssnittet från DSP-koden. + + Edit song-global automation + - - Use UI bridges instead of direct handling when possible - Använd gränssnittsbryggor istället för direkthantering när möjligt + + Remove song-global automation + - - Make plugin UIs always-on-top - Placera alltid tilläggsgränssnitt överst + + Remove all linked controls + - - Make plugin UIs appear on top of Carla (needs restart) - Placera tilläggsgränssnitt ovanpå Carla (kräver omstart) + + Connected to %1 + - - NOTE: Plugin-bridge UIs cannot be managed by Carla on macOS - OBSERVERA: Tilläggsgränssnitt över bryggor kan inte hanteras av Carla på macOS + + Connected to controller + - - - Restart the engine to load the new settings - Starta om motorn för att läsa in de nya inställningarna + + Edit connection... + - - <b>OSC</b> - <b>OSC</b> + + Remove connection + - - Enable OSC - Aktivera OSC + + Connect to controller... + + + + lmms::AutomationClip - - Enable TCP port - Aktivera TCP-port + + Drag a control while pressing <%1> + + + + lmms::AutomationTrack - - - Use specific port: - Använd specifik port: + + Automation track + + + + lmms::BassBoosterControls - - Overridden by CARLA_OSC_TCP_PORT env var - Åsidosatt av miljövariabeln CARLA_OSC_TCP_PORT + + Frequency + - - - Use randomly assigned port - Använd slumpmässigt tilldelad port + + Gain + - - Enable UDP port - Aktivera UDP-port + + Ratio + + + + lmms::BitInvader - - Overridden by CARLA_OSC_UDP_PORT env var - Åsidosatt av miljövariabeln CARLA_OSC_UDP_PORT + + Sample length + - - DSSI UIs require OSC UDP port enabled - DSSI-användargränssnit kräver att OSC UDP-port är aktiverad + + Interpolation + - - <b>File Paths</b> - <b>Filsökvägar</b> + + Normalize + + + + lmms::BitcrushControls - - Audio - Ljud + + Input gain + - - MIDI - MIDI + + Input noise + - - Used for the "audiofile" plugin - Används för tillägget "audiofile" + + Output gain + - - Used for the "midifile" plugin - Används för tillägget "midifile" + + Output clip + - - - Add... - Lägg till... + + Sample rate + - - - Remove - Ta bort + + Stereo difference + - - - Change... - Ändra... + + Levels + - - <b>Plugin Paths</b> - <b>Tilläggssökvägar</b> + + Rate enabled + - - LADSPA - LADSPA + + Depth enabled + + + + lmms::Clip - - DSSI - DSSI + + Mute + + + + lmms::CompressorControls - - LV2 - LV2 + + Threshold + - - VST2 - VST2 + + Ratio + - - VST3 - VST3 + + Attack + - - SF2/3 - SF2/3 + + Release + - - SFZ - SFZ + + Knee + - - Restart Carla to find new plugins - Starta om Carla för att hitta nya tillägg + + Hold + - - <b>Wine</b> - <b>Wine</b> + + Range + - - Executable - Körbar + + RMS Size + - - Path to 'wine' binary: - Sökväg till "wine"-binär: + + Mid/Side + - - Prefix - Prefix + + Peak Mode + - - Auto-detect Wine prefix based on plugin filename - Automatisk detektering av Wine-prefix baserat på filnamn för tillägg + + Lookahead Length + - - Fallback: - Reservinställning: + + Input Balance + - - Note: WINEPREFIX env var is preferred over this fallback - Notera: Miljövariabeln WINEPREFIX föredras framför denna reservinställning + + Output Balance + - - Realtime Priority - Realtidsprioritet + + Limiter + - - Base priority: - Grundprioritet: + + Output Gain + - - WineServer priority: - WineServer-prioritet: + + Input Gain + - - These options are not available for Carla as plugin - Dessa alternativ finns inte tillgängliga för Carla som tillägg + + Blend + - - <b>Experimental</b> - <b>Experimentell</b> + + Stereo Balance + - - Experimental options! Likely to be unstable! - Experimentalla alternativ! Förmodligen instabila! + + Auto Makeup Gain + - - Enable plugin bridges - Aktivera tilläggsbryggor + + Audition + - - Enable Wine bridges - Aktivera Wine-bryggor + + Feedback + - - Enable jack applications - Aktivera jack-program + + Auto Attack + - - Export single plugins to LV2 - Exportera enskilda tillägg till LV2 + + Auto Release + - - Load Carla backend in global namespace (NOT RECOMMENDED) - Läs in Carla-bakände i global namnrymd (INTE REKOMMENDERAT) + + Lookahead + - - Fancy eye-candy (fade-in/out groups, glow connections) - Snyggt ögongodisk (grupper tonas in/ut, glödande anslutningar) + + Tilt + - - Use OpenGL for rendering (needs restart) - Använd OpenGL för rendering (kräver omstart) + + Tilt Frequency + - - High Quality Anti-Aliasing (OpenGL only) - Högkvalitativ kantutjämning (endast OpenGL) + + Stereo Link + - - Render Ardour-style "Inline Displays" - Rendera Ardour-liknande ”inbyggda visningar” + + Mix + + + + lmms::Controller - - Force mono plugins as stereo by running 2 instances at the same time. -This mode is not available for VST plugins. - Tvinga mono-tillägg att använda stereo genom att köra 2 instanser av det samtidigt. -Detta läge är inte tillgängligt för VST-tillägg. + + Controller %1 + + + + lmms::DelayControls - - Force mono plugins as stereo - Tvinga mono-tillägg att vara stereo + + Delay samples + - - Prevent plugins from doing bad stuff (needs restart) - Förhindra tillägg från att göra dumheter (kräver omstart) + + Feedback + - - Whenever possible, run the plugins in bridge mode. - När det är möjligt, kör tillägget i bryggat läge. + + LFO frequency + - - Run plugins in bridge mode when possible - Kör tillägg i bryggat läge när det är möjligt + + LFO amount + - - - - - Add Path - Lägg till sökväg + + Output gain + - CompressorControlDialog - - - Threshold: - Tröskel: - + lmms::DispersionControls - - Volume at which the compression begins to take place - Volym vid vilken komprimeringen börjar äga rum + + Amount + - - Ratio: - Förhållande: + + Frequency + - - How far the compressor must turn the volume down after crossing the threshold - Hur långt kompressorn måste sänka volymen efter att tröskeln har passerat + + Resonance + - - Attack: - Attack: + + Feedback + - - Speed at which the compressor starts to compress the audio - Hastighet med vilken kompressorn börjar komprimera ljudet + + DC Offset Removal + + + + lmms::DualFilterControls - - Release: - Release: + + Filter 1 enabled + - - Speed at which the compressor ceases to compress the audio - Hastighet med vilken kompressorn slutar komprimera ljudet + + Filter 1 type + - - Knee: + + Cutoff frequency 1 - - Smooth out the gain reduction curve around the threshold + + Q/Resonance 1 - - Range: + + Gain 1 - - Maximum gain reduction + + Mix - - Lookahead Length: + + Filter 2 enabled - - How long the compressor has to react to the sidechain signal ahead of time - Hur länge kompressorn måste reagera på sidokedjesignalen i förväg + + Filter 2 type + - - Hold: - Hold: + + Cutoff frequency 2 + - - Delay between attack and release stages + + Q/Resonance 2 - - RMS Size: - RMS-storlek: + + Gain 2 + - - Size of the RMS buffer - Storlek på RMS-buffert + + + Low-pass + - - Input Balance: - Ingångsbalans: + + + Hi-pass + - - Bias the input audio to the left/right or mid/side + + + Band-pass csg - - Output Balance: - Utgångsbalans: + + + Band-pass czpg + - - Bias the output audio to the left/right or mid/side + + + Notch - - Stereo Balance: - Stereobalans: + + + All-pass + - - Bias the sidechain signal to the left/right or mid/side + + + Moog - - Stereo Link Blend: + + + 2x Low-pass - - Blend between unlinked/maximum/average/minimum stereo linking modes + + + RC Low-pass 12 dB/oct - - Tilt Gain: + + + RC Band-pass 12 dB/oct - - Bias the sidechain signal to the low or high frequencies. -6 db is lowpass, 6 db is highpass. + + + RC High-pass 12 dB/oct - - Tilt Frequency: + + + RC Low-pass 24 dB/oct - - Center frequency of sidechain tilt filter + + + RC Band-pass 24 dB/oct - - Mix: + + + RC High-pass 24 dB/oct - - Balance between wet and dry signals - Balans mellan våta och torra signaler + + + Vocal Formant + - - Auto Attack: + + + 2x Moog - - Automatically control attack value depending on crest factor + + + SV Low-pass - - Auto Release: + + + SV Band-pass - - Automatically control release value depending on crest factor + + + SV High-pass - - Output gain - Utgångsförstärkning + + + SV Notch + - - - Gain - Förstärkning + + + Fast Formant + - - Output volume - Utgångsvolym + + + Tripole + + + + lmms::DynProcControls - + Input gain - Ingångsförstärkning + - - Input volume - Ingångsvolym + + Output gain + - - Root Mean Square + + Attack time - - Use RMS of the input - Använd ingångens RMS + + Release time + - - Peak + + Stereo mode + + + lmms::Effect - - Use absolute value of the input - Använd ingångens absoluta värde + + Effect enabled + - - Left/Right - Vänster/Höger + + Wet/Dry mix + - - Compress left and right audio - Komprimera vänster och höger ljud + + Gate + - - Mid/Side + + Decay + + + lmms::EffectChain - - Compress mid and side audio - Komprimera mitt- och sidoljud + + Effects enabled + + + + lmms::Engine - - Compressor - Kompressor + + Generating wavetables + - - Compress the audio - Komprimera ljudet + + Initializing data structures + - - Limiter - Begränsare + + Opening audio and midi devices + - - Set Ratio to infinity (is not guaranteed to limit audio volume) - Ställ in förhållandet till oändlighet (garanteras inte att ljudvolymen begränsas) + + Launching audio engine threads + + + + lmms::EnvelopeAndLfoParameters - - Unlinked - Olänkad + + Env pre-delay + - - Compress each channel separately - Komprimera varje kanal separat + + Env attack + - - Maximum + + Env hold - - Compress based on the loudest channel - Komprimera baserat på den mest högljudda kanalen + + Env decay + - - Average - Medel + + Env sustain + - - Compress based on the averaged channel volume + + Env release - - Minimum + + Env mod amount - - Compress based on the quietest channel - Komprimera baserat på den tystaste kanalen + + LFO pre-delay + - - Blend + + LFO attack - - Blend between stereo linking modes + + LFO frequency - - Auto Makeup Gain + + LFO mod amount - - Automatically change makeup gain depending on threshold, knee, and ratio settings + + LFO wave shape - - - Soft Clip + + LFO frequency x 100 - - Play the delta signal - Spela deltasignalen + + Modulate env amount + - - Use the compressor's output as the sidechain input - Använd kompressorns utgång som sidokedjeingång + + Sample not found + + + + lmms::EqControls - - Lookahead Enabled + + Input gain - - Enable Lookahead, which introduces 20 milliseconds of latency + + Output gain - - - CompressorControls - - Threshold - Tröskel + + Low-shelf gain + - - Ratio - Förhållande + + Peak 1 gain + - - Attack - Attack + + Peak 2 gain + - - Release - Release + + Peak 3 gain + - - Knee + + Peak 4 gain - - Hold - Hold + + High-shelf gain + - - Range + + HP res - - RMS Size - RMS-storlek + + Low-shelf res + - - Mid/Side + + Peak 1 BW - - Peak Mode + + Peak 2 BW - - Lookahead Length + + Peak 3 BW - - Input Balance - Ingångsbalans + + Peak 4 BW + - - Output Balance - Utgångsbalans + + High-shelf res + - - Limiter - Begränsare + + LP res + - - Output Gain - Utgångsförstärkning + + HP freq + - - Input Gain - Ingångsförstärkning + + Low-shelf freq + - - Blend + + Peak 1 freq - - Stereo Balance - Stereobalans + + Peak 2 freq + - - Auto Makeup Gain + + Peak 3 freq - - Audition + + Peak 4 freq - - Feedback - Återkoppling + + High-shelf freq + - - Auto Attack + + LP freq - - Auto Release + + HP active - - Lookahead + + Low-shelf active - - Tilt + + Peak 1 active - - Tilt Frequency + + Peak 2 active - - Stereo Link - Stereolänk + + Peak 3 active + - - Mix - Mix + + Peak 4 active + - - - Controller - - Controller %1 - Kontroller %1 + + High-shelf active + - - - ControllerConnectionDialog - - Connection Settings - Kopplingsinställningar + + LP active + - - MIDI CONTROLLER - MIDI-KONTROLLER + + LP 12 + - - Input channel - Ingångskanal + + LP 24 + - - CHANNEL - KANAL + + LP 48 + - - Input controller - Ingångsregulator + + HP 12 + - - CONTROLLER - KONTROLLER + + HP 24 + - - - Auto Detect - Upptäck automatiskt + + HP 48 + - - MIDI-devices to receive MIDI-events from - MIDI-enheter för att ta emot MIDI-händelser från + + Low-pass type + - - USER CONTROLLER - ANVÄNDARKONTROLLER + + High-pass type + - - MAPPING FUNCTION - KARTLÄGGNINGSFUNKTION + + Analyse IN + - - OK - OK + + Analyse OUT + + + + lmms::FlangerControls - - Cancel - Avbryt + + Delay samples + - - LMMS - LMMS + + LFO frequency + - - Cycle Detected. - Cykel Identifierad. + + Amount + - - - ControllerRackView - - Controller Rack - Kontrollrack + + Stereo phase + - - Add - Lägg till + + Feedback + - - Confirm Delete - Bekräfta Borttagning + + Noise + - - Confirm delete? There are existing connection(s) associated with this controller. There is no way to undo. - Vill du verkligen ta bort? Det finns kopplingar till den här kontrollern, och operationen går inte ångra. + + Invert + - ControllerView + lmms::FreeBoyInstrument - - Controls - Kontroller + + Sweep time + - - Rename controller - Byt namn på kontroller + + Sweep direction + - - Enter the new name for this controller - Skriv nya namnet på kontrollern + + Sweep rate shift amount + - - LFO - LFO + + + Wave pattern duty cycle + - - &Remove this controller - &Ta bort den här kontrollen + + Channel 1 volume + - - Re&name this controller - Döp& om den här kontrollern + + + + Volume sweep direction + - - - CrossoverEQControlDialog - - Band 1/2 crossover: - Band 1/2-korsningspunkt: + + + + Length of each step in sweep + - - Band 2/3 crossover: - Band 2/3-korsningspunkt: + + Channel 2 volume + - - Band 3/4 crossover: - Band 3/4-korsningspunkt: + + Channel 3 volume + - - Band 1 gain - Band 1-förstärkning + + Channel 4 volume + - - Band 1 gain: - Band 1-förstärkning: + + Shift Register width + - - Band 2 gain - Band 2-förstärkning + + Right output level + - - Band 2 gain: - Band 2-förstärkning: + + Left output level + - - Band 3 gain - Band 3-förstärkning + + Channel 1 to SO2 (Left) + - - Band 3 gain: - Band 3-förstärkning: + + Channel 2 to SO2 (Left) + - - Band 4 gain - Band 4-förstärkning + + Channel 3 to SO2 (Left) + - - Band 4 gain: - Band 4-förstärkning: + + Channel 4 to SO2 (Left) + - - Band 1 mute - Band 1-tystning + + Channel 1 to SO1 (Right) + - - Mute band 1 - Tysta band 1 + + Channel 2 to SO1 (Right) + - - Band 2 mute - Band 2-tystning + + Channel 3 to SO1 (Right) + - - Mute band 2 - Tysta band 2 + + Channel 4 to SO1 (Right) + - - Band 3 mute - Band 3-tystning + + Treble + - - Mute band 3 - Tysta band 3 + + Bass + + + + lmms::GigInstrument - - Band 4 mute - Band 4-tystning + + Bank + - - Mute band 4 - Tysta band 4 + + Patch + - - - DelayControls - - Delay samples - Fördröj ljudfiler + + Gain + + + + lmms::GranularPitchShifterControls - - Feedback - Återkoppling + + Pitch + - - LFO frequency - LFO-frekvens + + Grain Size + - - LFO amount - LFO-mängd + + Spray + - - Output gain - Utgångsförstärkning + + Jitter + - - - DelayControlsDialog - - DELAY - FÖRDRÖJNING + + Twitch + - - Delay time - Fördröjningstid + + Pitch Stereo Spread + - - FDBK - RNDG + + Spray Stereo + - - Feedback amount - Rundgångsbelopp + + Shape + - - RATE - HASTIGHET + + Fade Length + - - LFO frequency - LFO-frekvens + + Feedback + - - AMNT - BELP + + Minimum Allowed Latency + - - LFO amount - LFO-mängd + + Prefilter + - - Out gain - Utgångsförstärkning + + Density + - - Gain - Förstärkning + + Glide + - - - Dialog - - Add JACK Application - Lägga till JACK-program + + Ring Buffer Length + - - Note: Features not implemented yet are greyed out - Notera: Funktioner som inte är implementerade än är utgråade + + 5 Seconds + - - Application - Program + + 10 Seconds (Size) + - - Name: - Namn: + + 40 Seconds (Size and Pitch) + - - Application: - Program: + + 40 Seconds (Size and Spray and Jitter) + - - From template - Från mall + + 120 Seconds (All of the above) + + + + lmms::InstrumentFunctionArpeggio - - Custom - Anpassad + + Arpeggio + - - Template: - Mall: + + Arpeggio type + - - Command: - Kommando: + + Arpeggio range + - - Setup - Inställning + + Note repeats + - - Session Manager: - Sessionshanterare: + + Cycle steps + - - None - Ingen + + Skip rate + - - Audio inputs: - Ljudingångar: + + Miss rate + - - MIDI inputs: - MIDI-ingångar: + + Arpeggio time + - - Audio outputs: - Ljudutgångar: + + Arpeggio gate + - - MIDI outputs: - MIDI-utgångar: + + Arpeggio direction + - - Take control of main application window - Ta kontroll över programmets huvudfönster + + Arpeggio mode + - - Workarounds - Lösningar + + Up + - - Wait for external application start (Advanced, for Debug only) - Vänta på att externt program startar (Avancerad, endast för felsökning) + + Down + - - Capture only the first X11 Window - Fånga endast det första X11-fönstret + + Up and down + - - Use previous client output buffer as input for the next client - Använd föregående klients utgångsbuffert som ingångsbuffert för nästa klient + + Down and up + - - Simulate 16 JACK MIDI outputs, with MIDI channel as port index - Simulera 16 JACK MIDI-ingångar, med MIDI-kanal som portindex + + Random + - - Error here - Fel här + + Free + - - Carla Control - Connect - Carla-kontroll - Anslut + + Sort + - - Remote setup - Fjärrinställning + + Sync + + + + lmms::InstrumentFunctionNoteStacking - - UDP Port: - UDP-port: + + Chords + - - Remote host: - Fjärrvärd: + + Chord type + - - TCP Port: - TCP-port: + + Chord range + + + + lmms::InstrumentSoundShaping - - Reported host - Rapporterad värd + + Envelopes/LFOs + - - Automatic - Automatisk + + Filter type + - - Custom: - Anpassad: + + Cutoff frequency + - - In some networks (like USB connections), the remote system cannot reach the local network. You can specify here which hostname or IP to make the remote Carla connect to. -If you are unsure, leave it as 'Automatic'. - På vissa nätverk (så som USB-anslutningar), kan fjärrsystemet inte nå det lokala nätverket. Du kan här ange vilket värdnamn eller IP som fjärr-Carla ska ansluta till. -Om du är osäker lämna värdet ”Automatisk”. + + Q/Resonance + - - Set value - Ställ in värde + + Low-pass + - - TextLabel - TextLabel + + Hi-pass + - - Scale Points - Skala punkter + + Band-pass csg + - - - DriverSettingsW - - Driver Settings - Drivrutinsinställningar + + Band-pass czpg + - - Device: - Enhet: + + Notch + - - Buffer size: - Buffertstorlek: + + All-pass + - - Sample rate: - Samplingsfrekvens: + + Moog + - - Triple buffer - Trippelbuffring + + 2x Low-pass + - - Show Driver Control Panel - Visa kontrollpanel för drivrutin + + RC Low-pass 12 dB/oct + - - Restart the engine to load the new settings - Starta om motorn för att läsa in de nya inställningarna + + RC Band-pass 12 dB/oct + - - - DualFilterControlDialog - - - FREQ - FREKV. + + RC High-pass 12 dB/oct + - - - Cutoff frequency - Cutoff frekvens + + RC Low-pass 24 dB/oct + - - - RESO - RESO + + RC Band-pass 24 dB/oct + - - - Resonance - Resonans + + RC High-pass 24 dB/oct + - - - GAIN - FÖRST. + + Vocal Formant + - - - Gain - Förstärkning + + 2x Moog + - - MIX - MIX + + SV Low-pass + - - Mix - Mix + + SV Band-pass + - - Filter 1 enabled - Filter 1 aktiverat + + SV High-pass + - - Filter 2 enabled - Filter 2 aktiverat + + SV Notch + - - Enable/disable filter 1 - Aktivera/inaktivera filter 1 + + Fast Formant + - - Enable/disable filter 2 - Aktivera/inaktivera filter 2 + + Tripole + - DualFilterControls + lmms::InstrumentTrack - - Filter 1 enabled - Filter 1 aktiverat + + + unnamed_track + - - Filter 1 type - Filter 1 typ + + Base note + - - Cutoff frequency 1 - Brytfrekvens 1 + + First note + - - Q/Resonance 1 - Q/Resonans 1 + + Last note + - - Gain 1 - Förstärkning 1 + + Volume + - - Mix - Mix + + Panning + - - Filter 2 enabled - Filter 2 aktiverat + + Pitch + - - Filter 2 type - Filter 2 typ + + Pitch range + - - Cutoff frequency 2 - Brytfrekvens 2 + + Mixer channel + - - Q/Resonance 2 - Q/Resonans 2 + + Master pitch + - - Gain 2 - Förstärkning 2 + + Enable/Disable MIDI CC + - - - Low-pass - Lågpass + + CC Controller %1 + - - - Hi-pass - Högpass + + + Default preset + + + + lmms::Keymap - - - Band-pass csg - Bandpass csg + + empty + + + + lmms::KickerInstrument - - - Band-pass czpg - Banspass czpg + + Start frequency + - - - Notch - Bandspärr + + End frequency + - - - All-pass - Allpass + + Length + - - - Moog - Moog + + Start distortion + - - - 2x Low-pass - 2x Lågpass + + End distortion + - - - RC Low-pass 12 dB/oct - RC Lågpass 12 dB/oct + + Gain + - - - RC Band-pass 12 dB/oct - RC Bandpass 12 dB/oct + + Envelope slope + - - - RC High-pass 12 dB/oct - RC Högpass 12 dB/oct + + Noise + - - - RC Low-pass 24 dB/oct - RC Lågpass 24 dB/oct + + Click + - - - RC Band-pass 24 dB/oct - RC Bandpass 24 dB/oct + + Frequency slope + + + + + Start from note + + + + + End to note + + + + lmms::LOMMControls - - - RC High-pass 24 dB/oct - RC Högpass 24 dB/oct + + Depth + - - - Vocal Formant - Språkformant + + Time + - - - 2x Moog - 2x Moog + + Input Volume + - - - SV Low-pass - SV Lågpass + + Output Volume + - - - SV Band-pass - SV Bandpass + + Upward Depth + - - - SV High-pass - SV Högpass + + Downward Depth + - - - SV Notch - SV Bandspärr + + High/Mid Split + - - - Fast Formant - Snabbformant + + Mid/Low Split + - - - Tripole - Tripol + + Enable High/Mid Split + - - - Editor - - Transport controls - Transportkontroller + + Enable Mid/Low Split + - - Play (Space) - Play (Mellanslag) + + Enable High Band + - - Stop (Space) - Stop (Mellanslag) + + Enable Mid Band + - - Record - Spela in + + Enable Low Band + - - Record while playing - Spela in under uppspelningen + + High Input Volume + - - Toggle Step Recording - Växla steginspelning + + Mid Input Volume + - - - Effect - - Effect enabled - Effekt aktiverad + + Low Input Volume + - - Wet/Dry mix - Effekt/original-mix + + High Output Volume + - - Gate - Gate + + Mid Output Volume + - - Decay - Decay + + Low Output Volume + - - - EffectChain - - Effects enabled - Effekter aktiverade + + Above Threshold High + - - - EffectRackView - - EFFECTS CHAIN - EFFEKTKEDJA + + Above Threshold Mid + - - Add effect - Lägg till effekt + + Above Threshold Low + - - - EffectSelectDialog - - Add effect - Lägg till effekt + + Above Ratio High + - - - Name - Namn + + Above Ratio Mid + - - Type - Typ + + Above Ratio Low + - - Description - Beskrivning + + Below Threshold High + - - Author - Författare + + Below Threshold Mid + - - - EffectView - - On/Off - På/Av + + Below Threshold Low + - - W/D - B/T + + Below Ratio High + - - Wet Level: - Blöt Nivå: + + Below Ratio Mid + - - DECAY - DECAY + + Below Ratio Low + - - Time: - Tid: + + Attack High + - - GATE - GATE + + Attack Mid + - - Gate: - Gate: + + Attack Low + - - Controls - Kontroller + + Release High + - - Move &up - Flytta &upp + + Release Mid + - - Move &down - Flytta &ner + + Release Low + - - &Remove this plugin - &Ta bort det här tillägget + + RMS Time + - - - EnvelopeAndLfoParameters - - Env pre-delay - Knt förfördröjning + + Knee + - - Env attack - Knt stegring + + Range + - - Env hold - Knt håll + + Balance + - - Env decay - Knt sänkning + + Scale output volume with Depth + - - Env sustain - Knt håll + + Stereo Link + - - Env release - Knt avklingning + + Auto Time + - - Env mod amount - Knt mod-mängd + + Mix + - - LFO pre-delay - LFO förfördröjning + + Feedback + - - LFO attack - LFO-attack + + Mid/Side + - - LFO frequency - LFO-frekvens + + Lookahead + - - LFO mod amount - LFO mod-mängd + + Lookahead Length + - - LFO wave shape - LFO vågform + + Suppress upward compression for side band + + + + lmms::LadspaControl - - LFO frequency x 100 - LFO-frekvens x 100 + + Link channels + + + + lmms::LadspaEffect - - Modulate env amount - Modulera knt-mängd + + Unknown LADSPA plugin %1 requested. + - EnvelopeAndLfoView + lmms::Lb302Synth - - - DEL - RAD + + VCF Cutoff Frequency + - - - Pre-delay: - Förfördröjning: + + VCF Resonance + - - - ATT - ATT + + VCF Envelope Mod + - - - Attack: - Attack: + + VCF Envelope Decay + - - HOLD - HOLD + + Distortion + - - Hold: - Hold: + + Waveform + - - DEC - DEC + + Slide Decay + - - Decay: - Decay: + + Slide + - - SUST - SUST + + Accent + - - Sustain: - Sustain: + + Dead + - - REL - REL + + 24dB/oct Filter + + + + lmms::LfoController - - Release: - Release: + + LFO Controller + - - - AMT - MÄNGD + + Base value + - - - Modulation amount: - Moduleringsmängd: + + Oscillator speed + - - SPD - SPD + + Oscillator amount + - - Frequency: - Frekvens: + + Oscillator phase + - - FREQ x 100 - FREKV. x 100 + + Oscillator waveform + - - Multiply LFO frequency by 100 - Multiplicera LFO-frekvens med 100 + + Frequency Multiplier + - - MODULATE ENV AMOUNT - MODULERA KNT-MÄNGD + + Sample not found + + + + lmms::MalletsInstrument - - Control envelope amount by this LFO - Styr konturmängd via denna LFO + + Hardness + + + + + Position + - - ms/LFO: - ms/LFO: + + Vibrato gain + - - Hint - Ledtråd + + Vibrato frequency + + + + + Stick mix + - - Drag and drop a sample into this window. - Drag och släpp en ljudfil hit. + + Modulator + - - - EqControls - - Input gain - Ingångsförstärkning + + Crossfade + - - Output gain - Utgångsförstärkning + + LFO speed + - - Low-shelf gain - Lågsockel först. + + LFO depth + - - Peak 1 gain - Topp 1-förstärkning + + ADSR + - - Peak 2 gain - Topp 2-förstärkning + + Pressure + - - Peak 3 gain - Topp 3-förstärkning + + Motion + - - Peak 4 gain - Topp 4-förstärkning + + Speed + - - High-shelf gain - Högsockel först. + + Bowed + - - HP res - HP uppl. + + Instrument + - - Low-shelf res - Lågsockel uppl. + + Spread + - - Peak 1 BW - Topp 1 BW + + Randomness + - - Peak 2 BW - Topp 2 BW + + Marimba + - - Peak 3 BW - Topp 3 BW + + Vibraphone + - - Peak 4 BW - Topp 4 BW + + Agogo + - - High-shelf res - Högsockel uppl. + + Wood 1 + - - LP res - LP uppl. + + Reso + - - HP freq - HP frekv. + + Wood 2 + - - Low-shelf freq - Lågsockel frekv. + + Beats + - - Peak 1 freq - Topp 1 frekv. + + Two fixed + - - Peak 2 freq - Topp 2 frekv. + + Clump + - - Peak 3 freq - Topp 3 frekv. + + Tubular bells + - - Peak 4 freq - Topp 4 frekv. + + Uniform bar + - - High-shelf freq - Högsockel frekv. + + Tuned bar + - - LP freq - LP-frekv. + + Glass + - - HP active - HP aktiv + + Tibetan bowl + + + + lmms::MeterModel - - Low-shelf active - Lågsockel aktiv + + Numerator + - - Peak 1 active - Topp 1 aktiv + + Denominator + + + + lmms::Microtuner - - Peak 2 active - Topp 2 aktiv + + Microtuner + - - Peak 3 active - Topp 3 aktiv + + Microtuner on / off + - - Peak 4 active - Topp 4 aktiv + + Selected scale + - - High-shelf active - Högsockel aktiv + + Selected keyboard mapping + + + + lmms::MidiController - - LP active - LP aktiv + + MIDI Controller + - - LP 12 - LP 12 + + unnamed_midi_controller + + + + lmms::MidiImport - - LP 24 - LP 24 + + + Setup incomplete + - - LP 48 - LP 48 + + You have not set up a default soundfont in the settings dialog (Edit->Settings). Therefore no sound will be played back after importing this MIDI file. You should download a General MIDI soundfont, specify it in settings dialog and try again. + - - HP 12 - HP 12 + + You did not compile LMMS with support for SoundFont2 player, which is used to add default sound to imported MIDI files. Therefore no sound will be played back after importing this MIDI file. + - - HP 24 - HP 24 + + MIDI Time Signature Numerator + - - HP 48 - HP 48 + + MIDI Time Signature Denominator + - - Low-pass type - Lågpasstyp + + Numerator + - - High-pass type - Högpasstyp + + Denominator + - - Analyse IN - Analysera IN + + + Tempo + - - Analyse OUT - Analysera UT + + Track + - EqControlsDialog - - - HP - HP - + lmms::MidiJack - - Low-shelf - Lågsockel + + JACK server down + When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (title) + - - Peak 1 - Topp 1 + + The JACK server seems to be shuted down. + When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (dialog message) + + + + lmms::MidiPort - - Peak 2 - Topp 2 + + Input channel + - - Peak 3 - Topp 3 + + Output channel + - - Peak 4 - Topp 4 + + Input controller + - - High-shelf - Högsockel + + Output controller + - - LP - LP + + Fixed input velocity + - - Input gain - Ingångsförstärkning + + Fixed output velocity + - - - - Gain - Förstärkning + + Fixed output note + - - Output gain - Utgångsförstärkning + + Output MIDI program + - - Bandwidth: - Bandbredd: + + Base velocity + - - Octave - Oktav + + Receive MIDI-events + - - Resonance : - Resonans: + + Send MIDI-events + + + + lmms::Mixer - - Frequency: - Frekvens: + + Master + - - LP group - LP-grup + + + + Channel %1 + - - HP group - HP-grupp + + Volume + - - - EqHandle - - Reso: - Reso.: + + Mute + - - BW: - BW: + + Solo + + + + lmms::MixerRoute - - - Freq: - Frekv.: + + + Amount to send from channel %1 to channel %2 + - ExportProjectDialog + lmms::MonstroInstrument - - Export project - Exportera projekt + + Osc 1 volume + - - Export as loop (remove extra bar) - Exportera som loop (ta bort extra takt) + + Osc 1 panning + - - Export between loop markers - Exportera mellan slinga-markeringar + + Osc 1 coarse detune + - - Render Looped Section: - Rendera loopat område: + + Osc 1 fine detune left + - - time(s) - gång(er) + + Osc 1 fine detune right + - - File format settings - Inställningar för filformat + + Osc 1 stereo phase offset + - - File format: - Filformat: + + Osc 1 pulse width + - - Sampling rate: - Samplingsfrekvens: + + Osc 1 sync send on rise + - - 44100 Hz - 44100 Hz + + Osc 1 sync send on fall + - - 48000 Hz - 48000 Hz + + Osc 2 volume + - - 88200 Hz - 88200 Hz + + Osc 2 panning + - - 96000 Hz - 96000 Hz + + Osc 2 coarse detune + - - 192000 Hz - 192000 Hz + + Osc 2 fine detune left + - - Bit depth: - Bitdjup: + + Osc 2 fine detune right + - - 16 Bit integer - 16-bitar heltal + + Osc 2 stereo phase offset + - - 24 Bit integer - 24-bitar heltal + + Osc 2 waveform + - - 32 Bit float - 32-bitar flyttal + + Osc 2 sync hard + - - Stereo mode: - Stereoläge: + + Osc 2 sync reverse + - - Mono - Mono + + Osc 3 volume + - - Stereo - Stereo + + Osc 3 panning + - - Joint stereo - Kombinerad stereo + + Osc 3 coarse detune + - - Compression level: - Kompressionsnivå: + + Osc 3 Stereo phase offset + - - Bitrate: - Bithastighet: + + Osc 3 sub-oscillator mix + - - 64 KBit/s - 64 KBit/s + + Osc 3 waveform 1 + - - 128 KBit/s - 128 KBit/s + + Osc 3 waveform 2 + - - 160 KBit/s - 160 KBit/s + + Osc 3 sync hard + - - 192 KBit/s - 192 KBit/s + + Osc 3 Sync reverse + - - 256 KBit/s - 256 KBit/s + + LFO 1 waveform + - - 320 KBit/s - 320 KBit/s + + LFO 1 attack + - - Use variable bitrate - Använd variabel bithastighet + + LFO 1 rate + - - Quality settings - Kvalitetsinställningar + + LFO 1 phase + - - Interpolation: - Interpolering: + + LFO 2 waveform + - - Zero order hold - Nollnivå håll + + LFO 2 attack + - - Sinc worst (fastest) - Sinc sämst (snabbast) + + LFO 2 rate + - - Sinc medium (recommended) - Sinc medium (rekommenderas) + + LFO 2 phase + - - Sinc best (slowest) - Sinc bäst (långsammast) + + Env 1 pre-delay + - - Oversampling: - Översampling: + + Env 1 attack + - - 1x (None) - 1x (Ingen) + + Env 1 hold + - - 2x - 2x + + Env 1 decay + - - 4x - 4x + + Env 1 sustain + - - 8x - 8x + + Env 1 release + - - Start - Starta + + Env 1 slope + - - Cancel - Avbryt + + Env 2 pre-delay + - - Could not open file - Kunde inte öppna fil + + Env 2 attack + - - Could not open file %1 for writing. -Please make sure you have write permission to the file and the directory containing the file and try again! - Det gick inte att öppna filen %1 för att skriva. -Se till att du har skrivbehörighet till filen och mappen som innehåller filen och försök igen! + + Env 2 hold + - - Export project to %1 - Exportera projekt till %1 + + Env 2 decay + - - ( Fastest - biggest ) - ( Snabbast - störst ) + + Env 2 sustain + - - ( Slowest - smallest ) - ( Långsammast - minst ) + + Env 2 release + - - Error - Fel + + Env 2 slope + - - Error while determining file-encoder device. Please try to choose a different output format. - Fel vid bestämning av filkodarenhet. Vänligen försök att välja ett annat utmatningsformat. + + Osc 2+3 modulation + - - Rendering: %1% - Renderar: %1% + + Selected view + - - - Fader - - Set value - Ställ in värde + + Osc 1 - Vol env 1 + - - Please enter a new value between %1 and %2: - Ange ett nytt värde mellan %1 och %2: + + Osc 1 - Vol env 2 + - - - FileBrowser - - User content - Användarinnehåll + + Osc 1 - Vol LFO 1 + - - Factory content - Fabriksinnehåll + + Osc 1 - Vol LFO 2 + - - Browser - Bläddrare + + Osc 2 - Vol env 1 + - - Search - Sök + + Osc 2 - Vol env 2 + - - Refresh list - Uppdatera lista + + Osc 2 - Vol LFO 1 + - - - FileBrowserTreeWidget - - Send to active instrument-track - Skicka till aktivt instrumentspår + + Osc 2 - Vol LFO 2 + - - Open containing folder - Öppna innehållande mapp + + Osc 3 - Vol env 1 + - - Song Editor - Låtredigerare + + Osc 3 - Vol env 2 + - - BB Editor - BB-redigerare + + Osc 3 - Vol LFO 1 + - - Send to new AudioFileProcessor instance - Skicka till ny AudioFileProcessor-instans + + Osc 3 - Vol LFO 2 + - - Send to new instrument track - Skicka till nytt instrumentspår + + Osc 1 - Phs env 1 + - - (%2Enter) - (%2Retur) + + Osc 1 - Phs env 2 + - - Send to new sample track (Shift + Enter) - Skicka till nytt samplingsspår (Skift + Retur) + + Osc 1 - Phs LFO 1 + - - Loading sample - Läser in ljudfil + + Osc 1 - Phs LFO 2 + - - Please wait, loading sample for preview... - Ljudfilen läses in för förhandslyssning... + + Osc 2 - Phs env 1 + - - Error - Fel + + Osc 2 - Phs env 2 + - - %1 does not appear to be a valid %2 file - %1 verkar inte vara en giltig %2-fil + + Osc 2 - Phs LFO 1 + - - --- Factory files --- - --- Grundfiler --- + + Osc 2 - Phs LFO 2 + - - - FlangerControls - - Delay samples - Fördröj ljudfiler + + Osc 3 - Phs env 1 + - - LFO frequency - LFO-frekvens + + Osc 3 - Phs env 2 + - - Seconds - Sekunder + + Osc 3 - Phs LFO 1 + - - Stereo phase - Stereofas + + Osc 3 - Phs LFO 2 + - - Regen - Regen + + Osc 1 - Pit env 1 + - - Noise - Brus + + Osc 1 - Pit env 2 + - - Invert - Invertera + + Osc 1 - Pit LFO 1 + - - - FlangerControlsDialog - - DELAY - FÖRDRÖJNING + + Osc 1 - Pit LFO 2 + - - Delay time: - Fördröjningstid: + + Osc 2 - Pit env 1 + - - RATE - HASTIGHET + + Osc 2 - Pit env 2 + - - Period: - Period: + + Osc 2 - Pit LFO 1 + - - AMNT - BELP + + Osc 2 - Pit LFO 2 + - - Amount: - Mängd: + + Osc 3 - Pit env 1 + - - PHASE - FAS + + Osc 3 - Pit env 2 + - - Phase: - Fas: + + Osc 3 - Pit LFO 1 + - - FDBK - RNDG + + Osc 3 - Pit LFO 2 + - - Feedback amount: - Mängd rundgång: + + Osc 1 - PW env 1 + - - NOISE - BRUS + + Osc 1 - PW env 2 + - - White noise amount: - Mängd vitt brus: + + Osc 1 - PW LFO 1 + - - Invert - Invertera + + Osc 1 - PW LFO 2 + - - - FreeBoyInstrument - - Sweep time - Sveptid + + Osc 3 - Sub env 1 + - - Sweep direction - Svepriktning + + Osc 3 - Sub env 2 + - - Sweep rate shift amount - Svephastighets skiftmängd + + Osc 3 - Sub LFO 1 + - - - Wave pattern duty cycle - Vågmönster arbetscykel + + Osc 3 - Sub LFO 2 + - - Channel 1 volume - Kanal 1 volym + + + Sine wave + - - - - Volume sweep direction - Volym svepriktning + + Bandlimited Triangle wave + - - - - Length of each step in sweep - Längd för varje steg i svep + + Bandlimited Saw wave + - - Channel 2 volume - Kanal 2 volym + + Bandlimited Ramp wave + - - Channel 3 volume - Kanal 3 volym + + Bandlimited Square wave + - - Channel 4 volume - Kanal 4 volym + + Bandlimited Moog saw wave + - - Shift Register width - Skiftregisterbredd + + + Soft square wave + - - Right output level - Höger utmatningsnivå + + Absolute sine wave + - - Left output level - Vänster ugångsnivå + + + Exponential wave + - - Channel 1 to SO2 (Left) - Kanal 1 till SO2 (vänster) + + White noise + - - Channel 2 to SO2 (Left) - Kanal 2 till SO2 (vänster) + + Digital Triangle wave + - - Channel 3 to SO2 (Left) - Kanal 3 till SO2 (vänster) + + Digital Saw wave + - - Channel 4 to SO2 (Left) - Kanal 4 till SO2 (Vänster) + + Digital Ramp wave + - - Channel 1 to SO1 (Right) - Kanal 1 till SO1 (Höger) + + Digital Square wave + - - Channel 2 to SO1 (Right) - Kanal 2 till SO1 (höger) + + Digital Moog saw wave + - - Channel 3 to SO1 (Right) - Kanal 3 till SO1 (höger) + + Triangle wave + - - Channel 4 to SO1 (Right) - Kanal 4 till SO1 (höger) + + Saw wave + - - Treble - Diskant + + Ramp wave + - - Bass - Bas + + Square wave + - - - FreeBoyInstrumentView - - Sweep time: - Sveptid: + + Moog saw wave + - - Sweep time - Sveptid + + Abs. sine wave + - - Sweep rate shift amount: - Svephastighet skiftmängd: + + Random + - - Sweep rate shift amount - Svephastighets skiftmängd + + Random smooth + + + + lmms::NesInstrument - - - Wave pattern duty cycle: - Vågmönster arbetscykel: + + Channel 1 enable + - - - Wave pattern duty cycle - Vågmönster arbetscykel + + Channel 1 coarse detune + - - Square channel 1 volume: - Volym för fyrkantsvåg kanal 1: + + Channel 1 volume + - - Square channel 1 volume - Volym för fyrkantsvåg kanal 1 + + Channel 1 envelope enable + - - - - Length of each step in sweep: - Längd för varje steg i svep + + Channel 1 envelope loop + - - - - Length of each step in sweep - Längd för varje steg i svep + + Channel 1 envelope length + - - Square channel 2 volume: - Volym för fyrkantsvåg kanal 2: + + Channel 1 duty cycle + - - Square channel 2 volume - Volym för fyrkantsvåg kanal 2 + + Channel 1 sweep enable + - - Wave pattern channel volume: - Volym för vågmönsterkanal: + + Channel 1 sweep amount + - - Wave pattern channel volume - Volym för vågmönsterkanal + + Channel 1 sweep rate + - - Noise channel volume: - Volym för bruskanal: + + Channel 2 enable + - - Noise channel volume - Volym för bruskanal + + Channel 2 coarse detune + - - SO1 volume (Right): - SO1-volym (Höger): + + Channel 2 volume + - - SO1 volume (Right) - SO1 volym (Höger) + + Channel 2 envelope enable + - - SO2 volume (Left): - SO2 volym (vänster): + + Channel 2 envelope loop + - - SO2 volume (Left) - SO2 volym (vänster): + + Channel 2 envelope length + - - Treble: - Diskant: + + Channel 2 duty cycle + - - Treble - Diskant + + Channel 2 sweep enable + - - Bass: - Bas: + + Channel 2 sweep amount + - - Bass - Bas + + Channel 2 sweep rate + - - Sweep direction - Svepriktning + + Channel 3 enable + - - - - - - Volume sweep direction - Volym svepriktning + + Channel 3 coarse detune + - - Shift register width - Skiftregisterbredd + + Channel 3 volume + - - Channel 1 to SO1 (Right) - Kanal 1 till SO1 (Höger) + + Channel 4 enable + - - Channel 2 to SO1 (Right) - Kanal 2 till SO1 (höger) + + Channel 4 volume + - - Channel 3 to SO1 (Right) - Kanal 3 till SO1 (höger) + + Channel 4 envelope enable + - - Channel 4 to SO1 (Right) - Kanal 4 till SO1 (höger) + + Channel 4 envelope loop + - - Channel 1 to SO2 (Left) - Kanal 1 till SO2 (vänster) + + Channel 4 envelope length + - - Channel 2 to SO2 (Left) - Kanal 2 till SO2 (vänster) + + Channel 4 noise mode + - - Channel 3 to SO2 (Left) - Kanal 3 till SO2 (vänster) + + Channel 4 frequency mode + - - Channel 4 to SO2 (Left) - Kanal 4 till SO2 (Vänster) + + Channel 4 noise frequency + - - Wave pattern graph - Vågmönstergraf + + Channel 4 noise frequency sweep + - - - MixerLine - - Channel send amount - Kanalsändningsbelopp + + Channel 4 quantize + - - Move &left - Flytta &vänster + + Master volume + - - Move &right - Flytta &höger + + Vibrato + + + + lmms::OpulenzInstrument - - Rename &channel - Byt namn på &kanal + + Patch + - - R&emove channel - T&a bort kanal + + Op 1 attack + - - Remove &unused channels - Ta bort &oanvända kanaler + + Op 1 decay + - - Set channel color - Ställ in kanalfärg + + Op 1 sustain + - - Remove channel color - Ta bort kanalfärg + + Op 1 release + - - Pick random channel color - Välj slumpmässig kanalfärg + + Op 1 level + - - - MixerLineLcdSpinBox - - Assign to: - Tilldela till: + + Op 1 level scaling + - - New mixer Channel - Ny FX-kanal + + Op 1 frequency multiplier + - - - Mixer - - Master - Master + + Op 1 feedback + - - - - Channel %1 - FX %1 + + Op 1 key scaling rate + - - Volume - Volym + + Op 1 percussive envelope + - - Mute - Tysta + + Op 1 tremolo + - - Solo - Solo + + Op 1 vibrato + - - - MixerView - - Mixer - mixer + + Op 1 waveform + - - Fader %1 - FX Fader %1 + + Op 2 attack + - - Mute - Tysta + + Op 2 decay + - - Mute this mixer channel - Tysta denna FX-kanal + + Op 2 sustain + - - Solo - Solo + + Op 2 release + - - Solo mixer channel - Solo FX-kanal + + Op 2 level + - - - MixerRoute - - - Amount to send from channel %1 to channel %2 - Mängd att skicka från kanal %1 till kanal %2 + + Op 2 level scaling + - - - GigInstrument - - Bank - Bank + + Op 2 frequency multiplier + - - Patch - Inställning + + Op 2 key scaling rate + - - Gain - Förstärkning + + Op 2 percussive envelope + - - - GigInstrumentView - - - Open GIG file - Öppna GIG-fil + + Op 2 tremolo + - - Choose patch - Välj inställning + + Op 2 vibrato + - - Gain: - Förstärkning: + + Op 2 waveform + - - GIG Files (*.gig) - GIG-filer (*.gig) + + FM + - - - GuiApplication - - Working directory - Arbetsmapp + + Vibrato depth + - - The LMMS working directory %1 does not exist. Create it now? You can change the directory later via Edit -> Settings. - Arbetsmappen %1 för LMMS finns inte. Skapa den nu? Du kan ändra mappen senare via Redigera -> Inställningar. + + Tremolo depth + + + + lmms::OrganicInstrument - - Preparing UI - Förbereder användargränssnitt + + Distortion + - - Preparing song editor - Förbereder låtredigeraren + + Volume + + + + lmms::OscillatorObject - - Preparing mixer - Förbereder mixer + + Osc %1 waveform + - - Preparing controller rack - Förbereder kontrollrack + + Osc %1 harmonic + - - Preparing project notes - Förbereder projektanteckningar + + + Osc %1 volume + - - Preparing beat/bassline editor - Förbereder takt/basgång-redigeraren + + + Osc %1 panning + - - Preparing piano roll - Förbereder pianorulle + + Osc %1 stereo detuning + - - Preparing automation editor - Förbereder automationsredigeraren + + Osc %1 coarse detuning + - - - InstrumentFunctionArpeggio - - Arpeggio - Arpeggio + + Osc %1 fine detuning left + - - Arpeggio type - Arpeggio-typ + + Osc %1 fine detuning right + - - Arpeggio range - Arpeggio-omfång + + Osc %1 phase-offset + - - Note repeats + + Osc %1 stereo phase-detuning - - Cycle steps - Cykelsteg + + Osc %1 wave shape + - - Skip rate - Överhoppshastighet + + Modulation type %1 + + + + lmms::PatternTrack - - Miss rate - Misshastighet + + Pattern %1 + - - Arpeggio time - Arpeggio-tid + + Clone of %1 + + + + lmms::PeakController - - Arpeggio gate - Arpeggiogrind + + Peak Controller + - - Arpeggio direction - Arpeggio-riktning + + Peak Controller Bug + - - Arpeggio mode - Arpeggio-typ + + Due to a bug in older version of LMMS, the peak controllers may not be connect properly. Please ensure that peak controllers are connected properly and re-save this file. Sorry for any inconvenience caused. + + + + lmms::PeakControllerEffectControls - - Up - Upp + + Base value + - - Down - Ner + + Modulation amount + - - Up and down - Upp och ner + + Attack + - - Down and up - Ner och upp + + Release + - - Random - Slumpmässig + + Treshold + - - Free - Fritt + + Mute output + - - Sort - Sortera + + Absolute value + - - Sync - Synkronisera + + Amount multiplicator + - InstrumentFunctionArpeggioView - - - ARPEGGIO - ARPEGGIO - + lmms::Plugin - - RANGE - OMFÅNG + + Plugin not found + - - Arpeggio range: - Arpeggio-omfång: + + The plugin "%1" wasn't found or could not be loaded! +Reason: "%2" + - - octave(s) - oktav(er) + + Error while loading plugin + - - REP + + Failed to load plugin "%1"! + + + lmms::ReverbSCControls - - Note repeats: + + Input gain - - time(s) - gång(er) + + Size + - - CYCLE - CYKEL + + Color + - - Cycle notes: - Cykelnoter: + + Output gain + + + + lmms::SaControls - - note(s) - not(er) + + Pause + - - SKIP - HOPP + + Reference freeze + - - Skip rate: - Överhoppshastighet: + + Waterfall + - - - - % - % + + Averaging + - - MISS - MISS + + Stereo + - - Miss rate: - Misshastighet + + Peak hold + - - TIME - TID + + Logarithmic frequency + - - Arpeggio time: - Arpeggio-tid: + + Logarithmic amplitude + - - ms - ms + + Frequency range + - - GATE - GATE + + Amplitude range + - - Arpeggio gate: - Arpeggiogate: + + FFT block size + - - Chord: - Ackord: + + FFT window type + - - Direction: - Riktning: + + Peak envelope resolution + - - Mode: - Läge: + + Spectrum display resolution + - - - InstrumentFunctionNoteStacking - - octave - oktav + + Peak decay multiplier + - - - Major - Dur + + Averaging weight + - - Majb5 - Majb5 + + Waterfall history size + - - minor - moll + + Waterfall gamma correction + - - minb5 - mollb5 + + FFT window overlap + - - sus2 - sus2 + + FFT zero padding + - - sus4 - sus4 + + + Full (auto) + - - aug - aug + + + + Audible + - - augsus4 - augsus4 + + Bass + - - tri - tre + + Mids + - - 6 - 6 + + High + - - 6sus4 - 6sus4 + + Extended + - - 6add9 - 6add9 + + Loud + - - m6 - m6 + + Silent + - - m6add9 - m6add9 + + (High time res.) + - - 7 - 7 + + (High freq. res.) + - - 7sus4 - 7sus4 + + Rectangular (Off) + - - 7#5 - 7#5 + + + Blackman-Harris (Default) + - - 7b5 - 7b5 + + Hamming + - - 7#9 - 7#9 + + Hanning + + + + lmms::SampleClip - - 7b9 - 7b9 + + Sample not found + + + + lmms::SampleTrack - - 7#5#9 - 7#5#9 + + Volume + - - 7#5b9 - 7#5b9 + + Panning + - - 7b5b9 - 7b5b9 + + Mixer channel + - - 7add11 - 7add11 + + + Sample track + + + + lmms::Scale - - 7add13 - 7add13 + + empty + + + + lmms::Sf2Instrument - - 7#11 - 7#11 + + Bank + - - Maj7 - Maj7 + + Patch + - - Maj7b5 - Maj7b5 + + Gain + - - Maj7#5 - Maj7#5 + + Reverb + - - Maj7#11 - Maj7#11 + + Reverb room size + - - Maj7add13 - Maj7add13 + + Reverb damping + - - m7 - m7 + + Reverb width + - - m7b5 - m7b5 + + Reverb level + - - m7b9 - m7b9 + + Chorus + - - m7add11 - m7add11 + + Chorus voices + - - m7add13 - m7add13 + + Chorus level + - - m-Maj7 - m-Maj7 + + Chorus speed + - - m-Maj7add11 - m-Maj7add11 + + Chorus depth + - - m-Maj7add13 - m-Maj7add13 + + A soundfont %1 could not be loaded. + + + + lmms::SfxrInstrument - - 9 - 9 + + Wave + + + + lmms::SidInstrument - - 9sus4 - 9sus4 + + Cutoff frequency + - - add9 - add9 + + Resonance + - - 9#5 - 9#5 + + Filter type + - - 9b5 - 9b5 + + Voice 3 off + - - 9#11 - 9#11 + + Volume + - - 9b13 - 9b13 + + Chip model + + + + lmms::SlicerT - - Maj9 - Maj9 + + Note threshold + - - Maj9sus4 - Maj9sus4 + + FadeOut + - - Maj9#5 - Maj9#5 + + Original bpm + - - Maj9#11 - Maj9#11 + + Slice snap + - - m9 - m9 + + BPM sync + - - madd9 - madd9 + + + slice_%1 + - - m9b5 - m9b5 + + Sample not found: %1 + + + + lmms::Song - - m9-Maj7 - m9-Maj7 + + Tempo + - - 11 - 11 + + Master volume + - - 11b9 - 11b9 + + Master pitch + - - Maj11 - Maj11 + + Aborting project load + - - m11 - m11 + + Project file contains local paths to plugins, which could be used to run malicious code. + - - m-Maj11 - m-Maj11 + + Can't load project: Project file contains local paths to plugins. + - - 13 - 13 + + LMMS Error report + - - 13#9 - 13#9 + + (repeated %1 times) + - - 13b9 - 13b9 + + The following errors occurred while loading: + + + + lmms::StereoEnhancerControls - - 13b5b9 - 13b5b9 + + Width + + + + lmms::StereoMatrixControls - - Maj13 - Maj13 + + Left to Left + - - m13 - m13 + + Left to Right + - - m-Maj13 - m-Maj13 + + Right to Left + - - Harmonic minor - Harmonisk moll + + Right to Right + + + + lmms::Track - - Melodic minor - Melodisk moll + + Mute + - - Whole tone - Hela tonen + + Solo + + + + lmms::TrackContainer - - Diminished - Minskad + + Couldn't import file + - - Major pentatonic - Dur pentatonisk + + Couldn't find a filter for importing file %1. +You should convert this file into a format supported by LMMS using another software. + - - Minor pentatonic - Mollpentatonisk + + Couldn't open file + - - Jap in sen - Jap in sen + + Couldn't open file %1 for reading. +Please make sure you have read-permission to the file and the directory containing the file and try again! + - - Major bebop - Dur bebop + + Loading project... + - - Dominant bebop - Dominant bebop + + + Cancel + - - Blues - Blues + + + Please wait... + - - Arabic - Arabisk + + Loading cancelled + - - Enigmatic - Gåtfull + + Project loading was cancelled. + - - Neopolitan - Napolitansk + + Loading Track %1 (%2/Total %3) + - - Neopolitan minor - Napolitansk moll + + Importing MIDI-file... + + + + lmms::TripleOscillator - - Hungarian minor - Ungersk moll + + Sample not found + + + + lmms::VecControls - - Dorian - Dorisk + + Display persistence amount + - - Phrygian - Frygisk + + Logarithmic scale + - - Lydian - Lydisk + + High quality + + + + lmms::VestigeInstrument - - Mixolydian - Mixolydisk + + Loading plugin + - - Aeolian - Aeolisk + + Please wait while loading the VST plugin... + + + + lmms::Vibed - - Locrian - Lokrisk + + String %1 volume + - - Minor - Moll + + String %1 stiffness + - - Chromatic - Kromatisk + + Pick %1 position + - - Half-Whole Diminished - Halv-hel förminskad + + Pickup %1 position + - - 5 - 5 + + String %1 panning + - - Phrygian dominant - Frygisk dominant + + String %1 detune + - - Persian - Persisk + + String %1 fuzziness + - - Chords - Ackord + + String %1 length + - - Chord type - Ackordtyp + + Impulse %1 + - - Chord range - Ackordomfång + + String %1 + - InstrumentFunctionNoteStackingView + lmms::VoiceObject - - STACKING - STAPLA + + Voice %1 pulse width + - - Chord: - Ackord: + + Voice %1 attack + - - RANGE - OMFÅNG + + Voice %1 decay + - - Chord range: - Ackordomfång: + + Voice %1 sustain + - - octave(s) - oktav(er) + + Voice %1 release + - - - InstrumentMidiIOView - - ENABLE MIDI INPUT - AKTIVERA MIDI-INMATNING + + Voice %1 coarse detuning + + + + + Voice %1 wave shape + + + + + Voice %1 sync + - - ENABLE MIDI OUTPUT - AKTIVERA MIDI-UTGÅNG + + Voice %1 ring modulate + - - - CHAN - This string must be be short, its width must be less than * width of LCD spin-box of two digits - KANL + + Voice %1 filtered + - - - VELOC - This string must be be short, its width must be less than * width of LCD spin-box of three digits - HAST. + + Voice %1 test + + + + lmms::VstPlugin - - PROG - This string must be be short, its width must be less than the * width of LCD spin-box of three digits - PROG + + + The VST plugin %1 could not be loaded. + - - NOTE - This string must be be short, its width must be less than * width of LCD spin-box of three digits - NOT + + Open Preset + - - MIDI devices to receive MIDI events from - MIDI-enheter att ta emot MIDI-händelser från + + + VST Plugin Preset (*.fxp *.fxb) + - - MIDI devices to send MIDI events to - MIDI-enheter att skicka MIDI-händelser till + + : default + - - CUSTOM BASE VELOCITY - ANPASSAD BAS-VELOCITET + + Save Preset + - - Specify the velocity normalization base for MIDI-based instruments at 100% note velocity. - Ange hastigheten för normaliseringsbasen för MIDI-baserade instrument vid 100% nothastighet. + + .fxp + - - BASE VELOCITY - BAS-VELOCITET + + .FXP + - - - InstrumentTuningView - - MASTER PITCH - HUVUDTONHÖJD + + .FXB + - - Enables the use of master pitch - Aktiverar användning av huvudtonhöjd + + .fxb + - - - InstrumentSoundShaping - - VOLUME - VOLYM + + Loading plugin + - - Volume - Volym + + Please wait while loading VST plugin... + + + + lmms::WatsynInstrument - - CUTOFF - BRYTFRKV + + Volume A1 + - - - Cutoff frequency - Cutoff frekvens + + Volume A2 + - - RESO - RESO + + Volume B1 + - - Resonance - Resonans + + Volume B2 + - - Envelopes/LFOs - Konturer/LFO:er + + Panning A1 + - - Filter type - Filtertyp + + Panning A2 + - - Q/Resonance - Q/Resonans + + Panning B1 + - - Low-pass - Lågpass + + Panning B2 + - - Hi-pass - Högpass + + Freq. multiplier A1 + - - Band-pass csg - Bandpass csg + + Freq. multiplier A2 + - - Band-pass czpg - Banspass czpg + + Freq. multiplier B1 + - - Notch - Bandspärr + + Freq. multiplier B2 + - - All-pass - Allpass + + Left detune A1 + - - Moog - Moog + + Left detune A2 + - - 2x Low-pass - 2x Lågpass + + Left detune B1 + - - RC Low-pass 12 dB/oct - RC Lågpass 12 dB/oct + + Left detune B2 + - - RC Band-pass 12 dB/oct - RC Bandpass 12 dB/oct + + Right detune A1 + - - RC High-pass 12 dB/oct - RC Högpass 12 dB/oct + + Right detune A2 + - - RC Low-pass 24 dB/oct - RC Lågpass 24 dB/oct + + Right detune B1 + - - RC Band-pass 24 dB/oct - RC Bandpass 24 dB/oct + + Right detune B2 + - - RC High-pass 24 dB/oct - RC Högpass 24 dB/oct + + A-B Mix + - - Vocal Formant - Språkformant + + A-B Mix envelope amount + - - 2x Moog - 2x Moog + + A-B Mix envelope attack + - - SV Low-pass - SV Lågpass + + A-B Mix envelope hold + - - SV Band-pass - SV Bandpass + + A-B Mix envelope decay + - - SV High-pass - SV Högpass + + A1-B2 Crosstalk + - - SV Notch - SV Bandspärr + + A2-A1 modulation + - - Fast Formant - Snabbformant + + B2-B1 modulation + - - Tripole - Tripol + + Selected graph + - InstrumentSoundShapingView - - - TARGET - MÅL - + lmms::WaveShaperControls - - FILTER - FILTER + + Input gain + - - FREQ - FREKV. + + Output gain + + + + lmms::Xpressive - - Cutoff frequency: - Brytfrekvens: + + Selected graph + - - Hz - Hz + + A1 + - - Q/RESO - Q/UPPL + + A2 + - - Q/Resonance: - Q/Resonans: + + A3 + - - Envelopes, LFOs and filters are not supported by the current instrument. - Konturer, LFO:er och filter stöds inte av det aktuella instrumentet. + + W1 smoothing + - - - InstrumentTrack - - - unnamed_track - namnlöst_spår + + W2 smoothing + - - Base note - Grundton + + W3 smoothing + - - First note + + Panning 1 - - Last note - Senaste noten + + Panning 2 + - - Volume - Volym + + Rel trans + + + + lmms::ZynAddSubFxInstrument - - Panning - Panorering + + Portamento + - - Pitch - Tonhöjd + + Filter frequency + - - Pitch range - Tonhöjdsomfång + + Filter resonance + - - Mixer channel - FX-kanal + + Bandwidth + - - Master pitch - Huvudtonhöjd + + FM gain + - - Enable/Disable MIDI CC - Aktivera/inaktivera MIDI CC + + Resonance center frequency + - - CC Controller %1 + + Resonance bandwidth - - - Default preset - Standardinställning + + Forward MIDI control change events + - InstrumentTrackView - - - Volume - Volym - + lmms::graphModel - - Volume: - Volym: + + Graph + + + + lmms::gui::AmplifierControlDialog - + VOL - VOL - - - - Panning - Panorering + - - Panning: - Panorering: + + Volume: + - + PAN - PAN + - - MIDI - MIDI + + Panning: + - - Input - Ingång + + LEFT + - - Output - Utgång + + Left gain: + - - Open/Close MIDI CC Rack + + RIGHT - - Channel %1: %2 - FX %1: %2 + + Right gain: + - InstrumentTrackWindow - - - GENERAL SETTINGS - ÖVERGRIPANDE INSTÄLLNINGAR - - - - Volume - Volym - + lmms::gui::AudioAlsaSetupWidget - - Volume: - Volym: + + Device + - - VOL - VOL + + Channels + + + + lmms::gui::AudioFileProcessorView - - Panning - Panorering + + Open sample + - - Panning: - Panorering: + + Reverse sample + - - PAN - PAN + + Disable loop + - - Pitch - Tonhöjd + + Enable loop + - - Pitch: - Tonhöjd: + + Enable ping-pong loop + - - cents - hundradelar + + Continue sample playback across notes + - - PITCH - TONDHÖJD + + Amplify: + - - Pitch range (semitones) - Tonhöjdsomfång (halvtoner) + + Start point: + - - RANGE - OMFÅNG + + End point: + - - Mixer channel - FX-kanal + + Loopback point: + + + + lmms::gui::AudioFileProcessorWaveView - - CHANNEL - FX + + Sample length: + + + + lmms::gui::AutomationClipView - - Save current instrument track settings in a preset file - Spara aktuella instrumentspårinställningar i en förinställd fil + + Open in Automation editor + - - SAVE - SPARA + + Clear + - - Envelope, filter & LFO - Kontur, filter & LFO + + Reset name + - - Chord stacking & arpeggio - Ackordstapling & apreggio + + Change name + - - Effects - Effekter + + Set/clear record + - - MIDI - MIDI + + Flip Vertically (Visible) + - - Miscellaneous - Diverse + + Flip Horizontally (Visible) + - - Save preset - Spara förinställning + + %1 Connections + - - XML preset file (*.xpf) - XML förinställnings-fil (*.xpf) + + Disconnect "%1" + - - Plugin - Tillägg + + Model is already connected to this clip. + - JackApplicationW + lmms::gui::AutomationEditor - - NSM applications cannot use abstract or absolute paths - NSM-program kan inte använda abstracta eller absoluta sökvägar + + Edit Value + - - NSM applications cannot use CLI arguments - NSM-program kan inte använda kommandoradsargument + + New outValue + - - You need to save the current Carla project before NSM can be used - Du måste spara det aktuella Carla-projektet innan NSM kan avändas + + New inValue + + + + + Please open an automation clip by double-clicking on it! + - JuceAboutW + lmms::gui::AutomationEditorWindow - - About JUCE - Om JUCE + + Play/pause current clip (Space) + - - <b>About JUCE</b> - <b>Om JUCE</b> + + Stop playing of current clip (Space) + - - This program uses JUCE version 3.x.x. - Detta program använder JUCE version 3.x.x. + + Edit actions + - - JUCE (Jules' Utility Class Extensions) is an all-encompassing C++ class library for developing cross-platform software. - -It contains pretty much everything you're likely to need to create most applications, and is particularly well-suited for building highly-customised GUIs, and for handling graphics and sound. - -JUCE is licensed under the GNU Public Licence version 2.0. -One module (juce_core) is permissively licensed under the ISC. - -Copyright (C) 2017 ROLI Ltd. - JUCE (Jules' Utility Class Extensions) är ett allomfattande C++-klassbibliotek för utveckling av programvara över plattformsgränser. - -Det innehåller i princip allting som du troligen kommer att använda för att skapa de flera program, och är speciellt väl lämpat för att bygga anpassningsbara användargränssnitt och för att hantera grafik och ljud. - -JUCE licensieras under GNU Public Licence version 2.0. -En modul (juce_core) licensierad under ISC. - -Copyright (C) 2017 ROLI Ltd. + + Draw mode (Shift+D) + - - This program uses JUCE version %1. - Detta program använder JUCE version %1. + + Erase mode (Shift+E) + - - - Knob - - Set linear - Ställ in linjär + + Draw outValues mode (Shift+C) + - - Set logarithmic - Ställ in logaritmisk + + Edit tangents mode (Shift+T) + - - - Set value - Ställ in värde + + Flip vertically + - - Please enter a new value between -96.0 dBFS and 6.0 dBFS: - Vänligen ange ett nytt värde mellan -96.0 dBFS och 6.0 dBFS: + + Flip horizontally + - - Please enter a new value between %1 and %2: - Ange ett nytt värde mellan %1 och %2: + + Interpolation controls + - - - LadspaControl - - Link channels - Länka kanaler + + Discrete progression + - - - LadspaControlDialog - - Link Channels - Länka Kanaler + + Linear progression + - - Channel - Kanal + + Cubic Hermite progression + - - - LadspaControlView - - Link channels - Länka kanaler + + Tension value for spline + - - Value: - Värde: + + Tension: + - - - LadspaEffect - - Unknown LADSPA plugin %1 requested. - Okänt LADSPA-tillägg %1 efterfrågad. + + Zoom controls + - - - LcdFloatSpinBox - - Set value - Ställ in värde + + Horizontal zooming + - - Please enter a new value between %1 and %2: - Ange ett nytt värde mellan %1 och %2: + + Vertical zooming + - - - LcdSpinBox - - Set value - Ställ in värde + + Quantization controls + - - Please enter a new value between %1 and %2: - Ange ett nytt värde mellan %1 och %2: + + Quantization + - - - LeftRightNav - - - - Previous - Tidigare + + Clear ghost notes + - - - - Next - Nästa + + + Automation Editor - no clip + - - Previous (%1) - Tidigare (%1) + + + Automation Editor - %1 + - - Next (%1) - Nästa (%1) + + Model is already connected to this clip. + - LfoController - - - LFO Controller - LFO-kontroller - + lmms::gui::BassBoosterControlDialog - - Base value - Basvärde + + FREQ + - - Oscillator speed - Oscillatorhastighet + + Frequency: + - - Oscillator amount - Oscillatormängd + + GAIN + - - Oscillator phase - Oscillatorfas + + Gain: + - - Oscillator waveform - Oscillatorvågform + + RATIO + - - Frequency Multiplier - Frekvens Multiplikator + + Ratio: + - LfoControllerDialog - - - LFO - LFO - + lmms::gui::BitInvaderView - - BASE - BAS + + Sample length + - - Base: - Bas: + + Draw your own waveform here by dragging your mouse on this graph. + - - FREQ - FREKV. + + + Sine wave + - - LFO frequency: - LFO-frekvens: + + + Triangle wave + - - AMNT - BELP + + + Saw wave + - - Modulation amount: - Moduleringsmängd: + + + Square wave + - - PHS - FAS + + + White noise + - - Phase offset: - Fasposition: + + + User-defined wave + - - degrees - grader + + + Smooth waveform + - - Sine wave - Sinusvåg + + Interpolation + - - Triangle wave - Triangelvåg + + Normalize + + + + lmms::gui::BitcrushControlDialog - - Saw wave - Sågtandsvåg + + IN + - - Square wave - Fyrkantvåg + + OUT + - - Moog saw wave - Moog sågtandsvåg + + + GAIN + - - Exponential wave - Exponentiell våg + + Input gain: + - - White noise - Vitt brus + + NOISE + - - User-defined shape. -Double click to pick a file. - Användardefinierad form. -Dubbelklicka för att välja en fil. + + Input noise: + - - Mutliply modulation frequency by 1 - Multiplicera moduleringsfrekvens med 1 + + Output gain: + - - Mutliply modulation frequency by 100 - Multiplicera moduleringsfrekvens med 100 + + CLIP + - - Divide modulation frequency by 100 - Dividera moduleringsfrekevens med 100 + + Output clip: + - - - Engine - - Generating wavetables - Generera vågtabeller + + Rate enabled + - - Initializing data structures - Initierar datastrukturer + + Enable sample-rate crushing + - - Opening audio and midi devices - Öppnar ljud- och midienheter + + Depth enabled + - - Launching mixer threads - Start mixertrådar + + Enable bit-depth crushing + - - - MainWindow - - Configuration file - Konfigurationsfil + + FREQ + - - Error while parsing configuration file at line %1:%2: %3 - Fel vid inläsning av konfigurationsfil på rad %1:%2: %3 + + Sample rate: + - - Could not open file - Kunde inte öppna fil + + STEREO + - - Could not open file %1 for writing. -Please make sure you have write permission to the file and the directory containing the file and try again! - Det gick inte att öppna filen %1 för att skriva. -Se till att du har skrivbehörighet till filen och mappen som innehåller filen och försök igen! + + Stereo difference: + - - Project recovery - Projektåterställning + + QUANT + - - There is a recovery file present. It looks like the last session did not end properly or another instance of LMMS is already running. Do you want to recover the project of this session? - Det finns en återställningsfil tillgänglig. Det verkar som om programmet inte avslutades korrekt senast, eller så körs redan LMMS. Vill du återställa detta projekt? + + Levels: + + + + lmms::gui::CPULoadWidget - - - Recover - Återställ + + DSP total: %1% + - - Recover the file. Please don't run multiple instances of LMMS when you do this. - Återställ filen. Se till att du bara har en instans av LMMS igång när du gör detta. + + - Notes and setup: %1% + - - - Discard - Kasta bort + + - Instruments: %1% + - - Launch a default session and delete the restored files. This is not reversible. - Starta en standard-session och ta bort den återskapade filen. Detta går inte ångra. + + - Effects: %1% + - - Version %1 - Version %1 + + - Mixing: %1% + + + + lmms::gui::CarlaInstrumentView - - Preparing plugin browser - Förbereder tilläggsbläddraren + + Show GUI + - - Preparing file browsers - Förbereder fil-browser + + Click here to show or hide the graphical user interface (GUI) of Carla. + - - My Projects - Mina projekt + + Params + - - My Samples - Mina samplingar + + Available from Carla version 2.1 and up. + + + + lmms::gui::CarlaParamsView - - My Presets - Mina förinställningar + + Search.. + - - My Home - Min hemmapp + + Clear filter text + - - Root directory - Root-mapp + + Only show knobs with a connection. + - - Volumes - Volymer + + - Parameters + + + + lmms::gui::ClipView - - My Computer - Min dator + + Current position + - - &File - &Arkiv + + Current length + - - &New - &Ny + + + %1:%2 (%3:%4 to %5:%6) + - - &Open... - &Öppna... + + Press <%1> and drag to make a copy. + - - Loading background picture - Läser in bakgrundsbild + + Press <%1> for free resizing. + - - &Save - &Spara + + Hint + - - Save &As... - Spara &som... + + Delete (middle mousebutton) + - - Save as New &Version - Spara som ny &version + + Delete selection (middle mousebutton) + - - Save as default template - Spara som standardmall + + Cut + - - Import... - Importera... + + Cut selection + - - E&xport... - E&xportera... + + Merge Selection + - - E&xport Tracks... - E&xportera spår... + + Copy + - - Export &MIDI... - Exportera &MIDI... + + Copy selection + - - &Quit - &Avsluta + + Paste + - - &Edit - &Redigera + + Mute/unmute (<%1> + middle click) + - - Undo - Ångra + + Mute/unmute selection (<%1> + middle click) + - - Redo - Gör om + + Clip color + - - Settings - Inställningar + + Change + - - &View - &Visa + + Reset + - - &Tools - &Verktyg + + Pick random + + + + lmms::gui::CompressorControlDialog - - &Help - &Hjälp + + Threshold: + - - Online Help - Hjälp på nätet + + Volume at which the compression begins to take place + - - Help - Hjälp + + Ratio: + - - About - Om + + How far the compressor must turn the volume down after crossing the threshold + - - Create new project - Skapa nytt projekt + + Attack: + - - Create new project from template - Skapa nytt projekt från mall + + Speed at which the compressor starts to compress the audio + - - Open existing project - Öppna befintligt projekt + + Release: + - - Recently opened projects - Nyligen öppnade projekt + + Speed at which the compressor ceases to compress the audio + - - Save current project - Spara aktuellt projekt + + Knee: + - - Export current project - Exportera aktuellt projekt + + Smooth out the gain reduction curve around the threshold + - - Metronome - Metronom + + Range: + - - - Song Editor - Låtredigerare + + Maximum gain reduction + - - - Beat+Bassline Editor - Takt+Basgång-redigerare + + Lookahead Length: + - - - Piano Roll - Pianorulle + + How long the compressor has to react to the sidechain signal ahead of time + - - - Automation Editor - Automatiseringsredigerare + + Hold: + - - - Mixer - mixer + + Delay between attack and release stages + - - Show/hide controller rack - Visa/dölj kontrollrack + + RMS Size: + - - Show/hide project notes - Visa/dölj projektanteckningar + + Size of the RMS buffer + - - Untitled - Namnlös + + Input Balance: + - - Recover session. Please save your work! - Återställnings-session. Spara ditt arbete! + + Bias the input audio to the left/right or mid/side + - - LMMS %1 - LMMS %1 + + Output Balance: + - - Recovered project not saved - Återställt projekt inte sparat + + Bias the output audio to the left/right or mid/side + - - This project was recovered from the previous session. It is currently unsaved and will be lost if you don't save it. Do you want to save it now? - Projektet återställdes från den senaste sessionen. Det kommer försvinna om du inte sparar det. Vill du spara projektet nu? + + Stereo Balance: + - - Project not saved - Projektet inte sparat + + Bias the sidechain signal to the left/right or mid/side + - - The current project was modified since last saving. Do you want to save it now? - Projektet har ändrats sedan det sparades senast. Vill du spara nu? + + Stereo Link Blend: + - - Open Project - Öppna projekt + + Blend between unlinked/maximum/average/minimum stereo linking modes + - - LMMS (*.mmp *.mmpz) - LMMS (*.mmp *.mmpz) + + Tilt Gain: + - - Save Project - Spara projekt + + Bias the sidechain signal to the low or high frequencies. -6 db is lowpass, 6 db is highpass. + - - LMMS Project - LMMS-Projekt + + Tilt Frequency: + - - LMMS Project Template - LMMS-Projektmall + + Center frequency of sidechain tilt filter + - - Save project template - Spara projektmall + + Mix: + - - Overwrite default template? - Vill du skriva över standardmallen? + + Balance between wet and dry signals + - - This will overwrite your current default template. - Detta kommer skriva över din nuvarande standardmall. + + Auto Attack: + - - Help not available - Hjälp inte tillgänglig + + Automatically control attack value depending on crest factor + - - Currently there's no help available in LMMS. -Please visit http://lmms.sf.net/wiki for documentation on LMMS. - Just nu finns ingen hjälp tillgänglig i LMMS -Besök https://lmms.io/documentation/ för dokumentation (Engelska). + + Auto Release: + - - Controller Rack - Kontrollrack + + Automatically control release value depending on crest factor + - - Project Notes - Projektanteckningar + + Output gain + - - Fullscreen - Helskärm + + + Gain + - - Volume as dBFS - Volym som dBFS + + Output volume + - - Smooth scroll - Jämn rullning + + Input gain + - - Enable note labels in piano roll - Visa noter i pianorulle + + Input volume + - - MIDI File (*.mid) - MIDI-fil (*.mid) + + Root Mean Square + - - - untitled - namnlös + + Use RMS of the input + - - - Select file for project-export... - Välj fil för projekt-export... + + Peak + - - Select directory for writing exported tracks... - Välj mapp för att skriva exporterade spår... + + Use absolute value of the input + - - Save project - Spara projekt + + Left/Right + - - Project saved - Projekt sparat + + Compress left and right audio + - - The project %1 is now saved. - Projektet %1 är nu sparat. + + Mid/Side + - - Project NOT saved. - Projektet är INTE sparat. + + Compress mid and side audio + - - The project %1 was not saved! - Projektet %1 sparades inte! + + Compressor + - - Import file - Importera fil + + Compress the audio + - - MIDI sequences - MIDI-sekvenser + + Limiter + - - Hydrogen projects - Hydrogen-projekt + + Set Ratio to infinity (is not guaranteed to limit audio volume) + - - All file types - Alla filtyper + + Unlinked + - - - MeterDialog - - - Meter Numerator - Mätartäljare + + Compress each channel separately + - - Meter numerator - Mätartäljare + + Maximum + - - - Meter Denominator - Mätarnämnare + + Compress based on the loudest channel + - - Meter denominator - Mätarnämnare + + Average + - - TIME SIG - TAKTART + + Compress based on the averaged channel volume + - - - MeterModel - - Numerator - Täljare + + Minimum + - - Denominator - Nämnare + + Compress based on the quietest channel + - - - MidiCCRackView - - - MIDI CC Rack - %1 + + Blend - - MIDI CC Knobs: + + Blend between stereo linking modes - - CC %1 - CC %1 + + Auto Makeup Gain + - - - MidiController - - MIDI Controller - MIDI-styrenhet + + Automatically change makeup gain depending on threshold, knee, and ratio settings + - - unnamed_midi_controller - unnamed_midi_controller + + + Soft Clip + - - - MidiImport - - - Setup incomplete - Installation ofullständig + + Play the delta signal + - - You have not set up a default soundfont in the settings dialog (Edit->Settings). Therefore no sound will be played back after importing this MIDI file. You should download a General MIDI soundfont, specify it in settings dialog and try again. - Du har inte ställt in en standard SoundFont i inställningsdialogrutan (Redigera->Inställningar). Därför spelas inget ljud upp efter att ha importerat denna MIDI-fil. Du bör hämta en allmän MIDI-soundfont, ange den i inställningsdialogrutan och försök igen. + + Use the compressor's output as the sidechain input + - - You did not compile LMMS with support for SoundFont2 player, which is used to add default sound to imported MIDI files. Therefore no sound will be played back after importing this MIDI file. - Du kompilerade inte LMMS med stöd för SoundFont2-spelaren, som används för att lägga till standardljud till importerade MIDI-filer. Därför spelas inget ljud upp efter att ha importerat denna MIDI-fil. + + Lookahead Enabled + - - MIDI Time Signature Numerator - MIDI-taktartsangivelse täljare + + Enable Lookahead, which introduces 20 milliseconds of latency + + + + lmms::gui::ControllerConnectionDialog - - MIDI Time Signature Denominator - MIDI-taktartsangivelse nämnare + + Connection Settings + - - Numerator - Täljare + + MIDI CONTROLLER + - - Denominator - Nämnare + + Input channel + - - Track - Spår + + CHANNEL + - - - MidiJack - - JACK server down - When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (title) - JACK-server nerstängd + + Input controller + - - The JACK server seems to be shuted down. - When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (dialog message) - JACK-servern verkar vara avstängd. + + CONTROLLER + - - - MidiPatternW - - MIDI Pattern - MIDI-mönster + + + Auto Detect + - - Time Signature: - Tidsignatur: + + MIDI-devices to receive MIDI-events from + - - - - 1/4 - 1/4 + + USER CONTROLLER + - - 2/4 - 2/4 + + MAPPING FUNCTION + - - 3/4 - 3/4 + + OK + - - 4/4 - 4/4 + + Cancel + - - 5/4 - 5/4 + + LMMS + - - 6/4 - 6/4 + + Cycle Detected. + + + + lmms::gui::ControllerRackView - - Measures: - Takter: + + Controller Rack + - - - - 1 - 1 + + Add + - - 2 - 2 + + Confirm Delete + - - 3 - 3 + + Confirm delete? There are existing connection(s) associated with this controller. There is no way to undo. + + + + lmms::gui::ControllerView - - 4 - 4 + + Controls + - - 5 - 5 + + Rename controller + - - 6 - 6 + + Enter the new name for this controller + - - 7 - 7 + + LFO + - - 8 - 8 + + Move &up + - - 9 - 9 + + Move &down + - - 10 - 10 + + &Remove this controller + - - 11 - 11 + + Re&name this controller + + + + lmms::gui::CrossoverEQControlDialog - - 12 - 12 + + Band 1/2 crossover: + - - 13 - 13 + + Band 2/3 crossover: + - - 14 - 14 + + Band 3/4 crossover: + - - 15 - 15 + + Band 1 gain + - - 16 - 16 + + Band 1 gain: + - - Default Length: - Standardlängd: + + Band 2 gain + - - - 1/16 - 1/16 + + Band 2 gain: + - - - 1/15 - 1/15 + + Band 3 gain + - - - 1/12 - 1/12 + + Band 3 gain: + - - - 1/9 - 1/9 + + Band 4 gain + - - - 1/8 - 1/8 + + Band 4 gain: + - - - 1/6 - 1/6 + + Band 1 mute + - - - 1/3 - 1/3 + + Mute band 1 + - - - 1/2 - 1/2 + + Band 2 mute + - - Quantize: - Kvantisera: + + Mute band 2 + - - &File - &Arkiv + + Band 3 mute + - - &Edit - &Redigera + + Mute band 3 + - - &Quit - &Avsluta + + Band 4 mute + - - &Insert Mode - &Infogningsläge + + Mute band 4 + + + + lmms::gui::DelayControlsDialog - - F - F + + DELAY + - - &Velocity Mode - &Hastighetsläge + + Delay time + - - D - D + + FDBK + - - Select All - Välj alla + + Feedback amount + - - A - A + + RATE + - - - MidiPort - - Input channel - Ingångskanal + + LFO frequency + - - Output channel - Utgångskanal + + AMNT + - - Input controller - Ingångskontroller + + LFO amount + - - Output controller - Utgångskontroller + + Out gain + - - Fixed input velocity - Fast ingångsvelocitet + + Gain + + + + lmms::gui::DispersionControlDialog - - Fixed output velocity - Fast utgångsvelocitet + + AMOUNT + - - Fixed output note - Fast utgångsnot + + Number of all-pass filters + - - Output MIDI program - Utgång MIDI-program + + FREQ + - - Base velocity - Bas-velocitet + + Frequency: + - - Receive MIDI-events - Ta emot MIDI-event + + RESO + - - Send MIDI-events - Skicka MIDI-event + + Resonance: + - - - MidiSetupWidget - - Device - Enhet + + FEED + - - - MonstroInstrument - - Osc 1 volume - Osc. 1 volym + + Feedback: + - - Osc 1 panning - Osc 1 panorering + + DC Offset Removal + - - Osc 1 coarse detune - Osc. 1 grovurstämning + + Remove DC Offset + + + + lmms::gui::DualFilterControlDialog - - Osc 1 fine detune left - Osc. 1 finurstämning vänster + + + FREQ + - - Osc 1 fine detune right - Osc. 1 finurstämning höger + + + Cutoff frequency + - - Osc 1 stereo phase offset - Osc. 1 stereofasposition + + + RESO + - - Osc 1 pulse width - Osc. 1 pulsbredd + + + Resonance + - - Osc 1 sync send on rise - Osc. 1 synksändning vid stigning + + + GAIN + - - Osc 1 sync send on fall - Osc. 1 synksändning vid fall + + + Gain + - - Osc 2 volume - Osc. 2 volym + + MIX + - - Osc 2 panning - Osc 2 panorering + + Mix + - - Osc 2 coarse detune - Osc. 2 grovurstämning + + Filter 1 enabled + - - Osc 2 fine detune left - Osc. 2 finurstämning vänster + + Filter 2 enabled + - - Osc 2 fine detune right - Osc. 2 finurstämning höger + + Enable/disable filter 1 + - - Osc 2 stereo phase offset - Osc. 2 stereofasposition + + Enable/disable filter 2 + + + + lmms::gui::DynProcControlDialog - - Osc 2 waveform - Osc. 2 vågform + + INPUT + - - Osc 2 sync hard - Osc. 2 synk hård + + Input gain: + - - Osc 2 sync reverse - Osc. 2 synk omvänd + + OUTPUT + - - Osc 3 volume - Osc. 3 volym + + Output gain: + - - Osc 3 panning - Osc 3 panorering + + ATTACK + - - Osc 3 coarse detune - Osc. 3 grovurstämning + + Peak attack time: + - - Osc 3 Stereo phase offset - Osc. 3 stereofastposition + + RELEASE + - - Osc 3 sub-oscillator mix - Osc. 3 underoscillatormix + + Peak release time: + - - Osc 3 waveform 1 - Osc. 3 vågform 1 + + + Reset wavegraph + - - Osc 3 waveform 2 - Osc. 3 vågform 2 + + + Smooth wavegraph + - - Osc 3 sync hard - Osc. 3 synk hård + + + Increase wavegraph amplitude by 1 dB + - - Osc 3 Sync reverse - Osc. 3 synk omvänd + + + Decrease wavegraph amplitude by 1 dB + - - LFO 1 waveform - LFO 1 vågform + + Stereo mode: maximum + - - LFO 1 attack - LFO 1. stegring + + Process based on the maximum of both stereo channels + - - LFO 1 rate - LFO 1 hastighet + + Stereo mode: average + - - LFO 1 phase - LFO 1 fas + + Process based on the average of both stereo channels + - - LFO 2 waveform - LFO 2 vågform + + Stereo mode: unlinked + - - LFO 2 attack - LFO 2 stegring + + Process each stereo channel independently + + + + lmms::gui::Editor - - LFO 2 rate - LFO 2 hastighet + + Transport controls + - - LFO 2 phase - LFO 2 fas + + Play (Space) + - - Env 1 pre-delay - Knt 1 förfördröjning + + Stop (Space) + - - Env 1 attack - Knt 1 stegring + + Record + - - Env 1 hold - Knt 1 håll + + Record while playing + - - Env 1 decay - Knt 1 sänkning + + Toggle Step Recording + + + + lmms::gui::EffectRackView - - Env 1 sustain - Knt 1 hållnivå + + EFFECTS CHAIN + - - Env 1 release - Knt 1 avklingning + + Add effect + + + + lmms::gui::EffectSelectDialog - - Env 1 slope - Knt 1 kurva + + Add effect + - - Env 2 pre-delay - Knt 2 förfördröjning + + + Name + - - Env 2 attack - Knt 2 stegring + + Type + - - Env 2 hold - Knt 2 håll + + All + - - Env 2 decay - Knt 2 sänkning + + Search + - - Env 2 sustain - Knt 2 hållnivå + + Description + - - Env 2 release - Knt 2 avklingning + + Author + + + + lmms::gui::EffectView - - Env 2 slope - Knt 2 kurva + + On/Off + - - Osc 2+3 modulation - Osc. 2+3-modulering + + W/D + - - Selected view - Vald vy + + Wet Level: + - - Osc 1 - Vol env 1 - Osc. 1 - Vol. knt 1 + + DECAY + - - Osc 1 - Vol env 2 - Osc. 1 - Vol. knt 2 + + Time: + - - Osc 1 - Vol LFO 1 - Osc. 1 - Vol. LFO 1 + + GATE + - - Osc 1 - Vol LFO 2 - Osc. 1 - Vol. LFO 2 + + Gate: + - - Osc 2 - Vol env 1 - Osc. 2 - Vol. knt 1 + + Controls + - - Osc 2 - Vol env 2 - Osc. 2 - Vol. knt 2 + + Move &up + - - Osc 2 - Vol LFO 1 - Osc. 2 - Vol. LFO 1 + + Move &down + - - Osc 2 - Vol LFO 2 - Osc. 2 - Vol. LFO 2 + + &Remove this plugin + + + + lmms::gui::EnvelopeAndLfoView - - Osc 3 - Vol env 1 - Osc. 3 - Vol. knt 1 + + + AMT + - - Osc 3 - Vol env 2 - Osc. 3 - Vol. knt 2 + + + Modulation amount: + - - Osc 3 - Vol LFO 1 - Osc. 3 - Vol. LFO 1 + + + DEL + - - Osc 3 - Vol LFO 2 - Osc. 3 - Vol. LFO 2 + + + Pre-delay: + - - Osc 1 - Phs env 1 - Osc. 1 - Fas knt 1 + + + ATT + - - Osc 1 - Phs env 2 - Osc. 1 - Fas knt 2 + + + Attack: + - - Osc 1 - Phs LFO 1 - Osc. 1 - Fas LFO 1 + + HOLD + - - Osc 1 - Phs LFO 2 - Osc. 1 - Fas LFO 2 + + Hold: + - - Osc 2 - Phs env 1 - Osc. 2 - Fas knt 1 + + DEC + - - Osc 2 - Phs env 2 - Osc. 2 - Fas knt 2 + + Decay: + - - Osc 2 - Phs LFO 1 - Osc. 2 - Fas LFO 1 + + SUST + - - Osc 2 - Phs LFO 2 - Osc. 2 - Fas LFO 2 + + Sustain: + - - Osc 3 - Phs env 1 - Osc. 3 - Fas knt 1 + + REL + - - Osc 3 - Phs env 2 - Osc. 3 - Fas knt 2 + + Release: + - - Osc 3 - Phs LFO 1 - Osc. 3 - Fas LFO 1 + + SPD + - - Osc 3 - Phs LFO 2 - Osc. 3 - Fas LFO 2 + + Frequency: + - - Osc 1 - Pit env 1 - Osc. 1 - Pit knt 1 + + FREQ x 100 + - - Osc 1 - Pit env 2 - Osc. 1 - Pit knt 2 + + Multiply LFO frequency by 100 + - - Osc 1 - Pit LFO 1 - Osc. 1 - Pit LFO 1 + + MOD ENV AMOUNT + - - Osc 1 - Pit LFO 2 - Osc. 1 - Pit LFO 2 + + Control envelope amount by this LFO + - - Osc 2 - Pit env 1 - Osc. 2 - Pit knt 1 + + Hint + - - Osc 2 - Pit env 2 - Osc. 2 - Pit knt 2 + + Drag and drop a sample into this window. + + + + lmms::gui::EnvelopeGraph - - Osc 2 - Pit LFO 1 - Osc. 2 - Pit LFO 1 + + Scaling + - - Osc 2 - Pit LFO 2 - Osc. 2 - Pit LFO 2 + + Dynamic + - - Osc 3 - Pit env 1 - Osc. 3 - Pit knt 1 + + Uses absolute spacings but switches to relative spacing if it's running out of space + - - Osc 3 - Pit env 2 - Osc. 3 - Pit knt 2 + + Absolute + - - Osc 3 - Pit LFO 1 - Osc. 3 - Pit LFO 1 + + Provides enough potential space for each segment but does not scale + - - Osc 3 - Pit LFO 2 - Osc. 3 - Pit LFO 2 + + Relative + - - Osc 1 - PW env 1 - Osc. 1 - PW knt 1 + + Always uses all of the available space to display the envelope graph + + + + lmms::gui::EqControlsDialog - - Osc 1 - PW env 2 - Osc. 1 - PW knt 2 + + HP + - - Osc 1 - PW LFO 1 - Osc. 1 - PW LFO 1 + + Low-shelf + - - Osc 1 - PW LFO 2 - Osc. 1 - PW LFO 2 + + Peak 1 + - - Osc 3 - Sub env 1 - Osc. 3 - Sub knt 1 + + Peak 2 + - - Osc 3 - Sub env 2 - Osc. 3 - Sub knt 2 + + Peak 3 + - - Osc 3 - Sub LFO 1 - Osc. 3 - Sub LFO 1 + + Peak 4 + - - Osc 3 - Sub LFO 2 - Osc. 3 - Sub LFO 2 + + High-shelf + - - - Sine wave - Sinusvåg + + LP + - - Bandlimited Triangle wave - Bandbegränsad triangelvåg + + Input gain + - - Bandlimited Saw wave - Bandbegränsad sågtandsvåg + + + + Gain + - - Bandlimited Ramp wave - Bandbegränsad rampvåg + + Output gain + - - Bandlimited Square wave - Bandbegränsad fyrkantsvåg + + Bandwidth: + - - Bandlimited Moog saw wave - Bandbegränsad Moog sågtandsvåg + + Octave + - - - Soft square wave - Jämn fyrkantvåg + + Resonance: + - - Absolute sine wave - Absolut sinusvåg + + Frequency: + - - - Exponential wave - Exponentiell våg + + LP group + - - White noise - Vitt brus + + HP group + + + + lmms::gui::EqHandle - - Digital Triangle wave - Digital Triangelvåg + + Reso: + - - Digital Saw wave - Digital Sågtandsvåg + + BW: + - - Digital Ramp wave - Digital rampvåg + + + Freq: + + + + lmms::gui::ExportProjectDialog - - Digital Square wave - Digital fyrkantsvåg + + Could not open file + - - Digital Moog saw wave - Digital Moogsågtandsvåg + + Could not open file %1 for writing. +Please make sure you have write permission to the file and the directory containing the file and try again! + - - Triangle wave - Triangelvåg + + Export project to %1 + - - Saw wave - Sågtandsvåg + + ( Fastest - biggest ) + - - Ramp wave - Rampvåg + + ( Slowest - smallest ) + - - Square wave - Fyrkantvåg + + Error + - - Moog saw wave - Moog sågtandsvåg + + Error while determining file-encoder device. Please try to choose a different output format. + - - Abs. sine wave - Abs. sinusvåg + + Rendering: %1% + + + + lmms::gui::Fader - - Random - Slumpmässig + + Set value + + + + + Please enter a new value between %1 and %2: + - - Random smooth - Slumpmässigt jämn + + Volume: %1 dBFS + - MonstroView - - - Operators view - Operatörernas vy - + lmms::gui::FileBrowser - - Matrix view - Matrisvy + + Browser + - - - - Volume - Volym + + Search + - - - - Panning - Panorering + + Refresh list + - - - - Coarse detune - Grovurstämning + + User content + - - - - semitones - halvtoner + + Factory content + - - - Fine tune left - Finurstämning vänster + + Hidden content + + + + lmms::gui::FileBrowserTreeWidget - - - - - cents - hundradelar + + Send to active instrument-track + - - - Fine tune right - Finurstämning höger + + Open containing folder + - - - - Stereo phase offset - Stereofasposition + + Song Editor + - - - - - - deg - grd + + Pattern Editor + - - Pulse width - Pulsbredd + + Send to new AudioFileProcessor instance + - - Send sync on pulse rise - Skicka synk vid pulsstigning + + Send to new instrument track + - - Send sync on pulse fall - Skicka synk vid pulsfall + + (%2Enter) + - - Hard sync oscillator 2 - Hård synk oscillator 2 + + Send to new sample track (Shift + Enter) + - - Reverse sync oscillator 2 - Omvänd synk oscillator 2 + + Loading sample + - - Sub-osc mix - Underosc.-mix + + Please wait, loading sample for preview... + - - Hard sync oscillator 3 - Hård synk oscillator 3 + + Error + - - Reverse sync oscillator 3 - Omvänd synk oscillator 3 + + %1 does not appear to be a valid %2 file + - - - - - Attack - Attack + + --- Factory files --- + + + + lmms::gui::FileDialog - - - Rate - Värdera + + %1 files + - - - Phase - Fas + + All audio files + - - - Pre-delay - Förfördröjning + + Other files + + + + lmms::gui::FlangerControlsDialog - - - Hold - Håll + + DELAY + - - - Decay - Decay + + Delay time: + - - - Sustain - Sustain + + RATE + - - - Release - Release + + Period: + - - - Slope - Lutning + + AMNT + - - Mix osc 2 with osc 3 - Mixa osc. 2 med osc. 3 + + Amount: + - - Modulate amplitude of osc 3 by osc 2 - Modulera amplituden för osc. 3 med osc. 2 + + PHASE + - - Modulate frequency of osc 3 by osc 2 - Modulera frekvens för osc. 3 med osc. 2 + + Phase: + - - Modulate phase of osc 3 by osc 2 - Modulera fasen för osc. 3 med osc. 2 + + FDBK + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Modulation amount - Moduleringsmängd + + Feedback amount: + - - - MultitapEchoControlDialog - - Length - Längd + + NOISE + - - Step length: - Steglängd: + + White noise amount: + - - Dry - Original + + Invert + + + + lmms::gui::FloatModelEditorBase - - Dry gain: - Originalförstärkning: + + Set linear + - - Stages - Stadier + + Set logarithmic + - - Low-pass stages: - Lågpassteg: + + + Set value + - - Swap inputs - Växla ingångar + + Please enter a new value between -96.0 dBFS and 6.0 dBFS: + - - Swap left and right input channels for reflections - Växla vänster och höger ingångskanaler för speglingar + + Please enter a new value between %1 and %2: + - NesInstrument + lmms::gui::FreeBoyInstrumentView - - Channel 1 coarse detune - Kanal 1 grovurstämning + + Sweep time: + - - Channel 1 volume - Kanal 1 volym + + Sweep time + - - Channel 1 envelope length - Kanal 1 konturlängd + + Sweep rate shift amount: + - - Channel 1 duty cycle - Kanal 1 arbetscykel + + Sweep rate shift amount + - - Channel 1 sweep amount - Kanal 1 svepmängd + + + Wave pattern duty cycle: + - - Channel 1 sweep rate - Kanal 1 svephastighet + + + Wave pattern duty cycle + - - Channel 2 Coarse detune - Kanal 2 grovurstämning + + Square channel 1 volume: + - - Channel 2 Volume - Kanal 2 volym + + Square channel 1 volume + - - Channel 2 envelope length - Kanal 2 konturlängd + + + + Length of each step in sweep: + - - Channel 2 duty cycle - Kanal 2 arbetscykel + + + + Length of each step in sweep + - - Channel 2 sweep amount - Kanal 2 svepmängd + + Square channel 2 volume: + - - Channel 2 sweep rate - Kanal 2 svephastighet + + Square channel 2 volume + - - Channel 3 coarse detune - Kanal 3 grovurstämning + + Wave pattern channel volume: + - - Channel 3 volume - Kanal 3 volym + + Wave pattern channel volume + - - Channel 4 volume - Kanal 4 volym + + Noise channel volume: + - - Channel 4 envelope length - Kanal 4 konturlängd + + Noise channel volume + + + + + SO1 volume (Right): + + + + + SO1 volume (Right) + - - Channel 4 noise frequency - Kanal 4 brusfrekvens + + SO2 volume (Left): + - - Channel 4 noise frequency sweep - Kanal 4 brusfrekvenssvep + + SO2 volume (Left) + - - Master volume - Huvudvolym + + Treble: + - - Vibrato - Vibrato + + Treble + - - - NesInstrumentView - - - - - Volume - Volym + + Bass: + - - - - Coarse detune - Grovurstämning + + Bass + - - - - Envelope length - Konturlängd + + Sweep direction + - - Enable channel 1 - Aktivera kanal 1 + + + + + + Volume sweep direction + - - Enable envelope 1 - Aktivera kontur 1 + + Shift register width + - - Enable envelope 1 loop - Aktivera kontur 1-loop + + Channel 1 to SO1 (Right) + - - Enable sweep 1 - Aktivera svep 1 + + Channel 2 to SO1 (Right) + - - - Sweep amount - Svepmängd + + Channel 3 to SO1 (Right) + - - - Sweep rate - Svephastighet + + Channel 4 to SO1 (Right) + - - - 12.5% Duty cycle - 12.5% arbetscykel + + Channel 1 to SO2 (Left) + - - - 25% Duty cycle - 25% arbetscykel + + Channel 2 to SO2 (Left) + - - - 50% Duty cycle - 50% arbetscykel + + Channel 3 to SO2 (Left) + - - - 75% Duty cycle - 75% arbetscykel + + Channel 4 to SO2 (Left) + - - Enable channel 2 - Aktivera kanal 2 + + Wave pattern graph + + + + lmms::gui::GigInstrumentView - - Enable envelope 2 - Aktivera kontur 2 + + + Open GIG file + - - Enable envelope 2 loop - Aktivera kontur 2-loop + + Choose patch + - - Enable sweep 2 - Aktivera svep 2 + + Gain: + - - Enable channel 3 - Aktivera kanal 3 + + GIG Files (*.gig) + + + + lmms::gui::GranularPitchShifterControlDialog - - Noise Frequency - Brusfrekvens + + Grain Size: + - - Frequency sweep - Frekvenssvep + + Spray: + - - Enable channel 4 - Aktivera kanal 4 + + Jitter: + - - Enable envelope 4 - Aktivera kontur 4 + + Twitch: + - - Enable envelope 4 loop - Aktivera kontur 4-loop + + Spray Stereo Spread: + - - Quantize noise frequency when using note frequency - Kvantifiera brusfrekvens vid användning av notfrekvens + + Grain Shape: + - - Use note frequency for noise - Använd notfrekvens för brus + + Fade Length: + - - Noise mode - Brusläge + + Feedback: + - - Master volume - Huvudvolym + + Minimum Allowed Latency: + - - Vibrato - Vibrato + + Density: + - - - OpulenzInstrument - - Patch - Inställning + + Glide: + - - Op 1 attack - Op. 1 stegring + + + Pitch + - - Op 1 decay - Op. 1 sänkning + + + Pitch Stereo Spread + - - Op 1 sustain - Op. 1 hållnivå + + Open help window + - - Op 1 release - Op. 1 avklingning + + + Prefilter + + + + lmms::gui::GuiApplication - - Op 1 level - Op. 1 nivå + + Working directory + - - Op 1 level scaling - Op. 1 nivåskalning + + The LMMS working directory %1 does not exist. Create it now? You can change the directory later via Edit -> Settings. + - - Op 1 frequency multiplier - Op. 1 frekvensmultiplikator + + Preparing UI + - - Op 1 feedback - Op. 1 rundgång + + Preparing song editor + - - Op 1 key scaling rate - Op. 1 skalskalningshastighet + + Preparing mixer + - - Op 1 percussive envelope - Op.1 slagverkskontur + + Preparing controller rack + - - Op 1 tremolo - Op. 1 tremolo + + Preparing project notes + - - Op 1 vibrato - Op. 1 vibrato + + Preparing microtuner + - - Op 1 waveform - Op. 1 vågform + + Preparing pattern editor + - - Op 2 attack - Op. 2 stegring + + Preparing piano roll + - - Op 2 decay - Op. 2 sänkning + + Preparing automation editor + + + + lmms::gui::InstrumentFunctionArpeggioView - - Op 2 sustain - Op. 2 hållnivå + + ARPEGGIO + - - Op 2 release - Op. 2 avklingning + + RANGE + - - Op 2 level - Op. 2 nivå + + Arpeggio range: + - - Op 2 level scaling - Op. 2 nivåskalning + + octave(s) + - - Op 2 frequency multiplier - Op. 2 frekvensmultiplikator + + REP + - - Op 2 key scaling rate - Op. 2 skalskalningshastighet + + Note repeats: + - - Op 2 percussive envelope - Op. 2 slagverkskontur + + time(s) + - - Op 2 tremolo - Op. 2 tremolo + + CYCLE + - - Op 2 vibrato - Op. 2 vibrato + + Cycle notes: + - - Op 2 waveform - Op. 2 vågform + + note(s) + - - FM - FM + + SKIP + - - Vibrato depth - Vibrato djup + + Skip rate: + - - Tremolo depth - Tremolodjup + + + + % + - - - OpulenzInstrumentView - - - Attack - Attack + + MISS + - - - Decay - Decay + + Miss rate: + - - - Release - Release + + TIME + - - - Frequency multiplier - Frekvensmultiplikator + + Arpeggio time: + - - - OscillatorObject - - Osc %1 waveform - Osc. %1 vågform + + ms + - - Osc %1 harmonic - Osc. %1 harmoni + + GATE + - - - Osc %1 volume - Osc %1 volym + + Arpeggio gate: + - - - Osc %1 panning - Osc %1 panorering + + Chord: + - - - Osc %1 fine detuning left - Osc. %1 finurstämning vänster + + Direction: + - - Osc %1 coarse detuning - Osc. %1 grovurstämning + + Mode: + + + + lmms::gui::InstrumentFunctionNoteStackingView - - Osc %1 fine detuning right - Osc. %1 finurstämning höger + + STACKING + - - Osc %1 phase-offset - Osc. %1 fasposition + + Chord: + - - Osc %1 stereo phase-detuning - Osc %1 stereofasurstämning + + RANGE + - - Osc %1 wave shape - Osc %1 vågform + + Chord range: + - - Modulation type %1 - Moduleringstyp %1 + + octave(s) + - Oscilloscope + lmms::gui::InstrumentMidiIOView - - Oscilloscope - Oscilloskop + + ENABLE MIDI INPUT + - - Click to enable - Klicka för att aktivera + + + CHAN + This string must be be short, its width must be less than * width of LCD spin-box of two digits + - - - PatchesDialog - - Qsynth: Channel Preset - Qsynth: Kanal förinställd + + + VELOC + This string must be be short, its width must be less than * width of LCD spin-box of three digits + - - Bank selector - Bankväljare + + ENABLE MIDI OUTPUT + - - Bank - Bank + + PROG + This string must be be short, its width must be less than the * width of LCD spin-box of three digits + - - Program selector - Programväljare + + NOTE + This string must be be short, its width must be less than * width of LCD spin-box of three digits + - - Patch - Inställning + + MIDI devices to receive MIDI events from + - - Name - Namn + + MIDI devices to send MIDI events to + - - OK - OK + + VELOCITY MAPPING + - - Cancel - Avbryt + + MIDI VELOCITY + + + + + MIDI notes at this velocity correspond to 100% note velocity. + - PatmanView + lmms::gui::InstrumentSoundShapingView - - Open patch - Öppna inställning + + TARGET + - - Loop - Slinga + + FILTER + - - Loop mode - Slinga-läge + + FREQ + - - Tune - Tune + + Cutoff frequency: + - - Tune mode - Tune-läge + + Hz + - - No file selected - Ingen fil vald + + Q/RESO + - - Open patch file - Öppna patch-fil + + Q/Resonance: + - - Patch-Files (*.pat) - Patch-filer (*.pat) + + Envelopes, LFOs and filters are not supported by the current instrument. + - MidiClipView + lmms::gui::InstrumentTrackView - - Open in piano-roll - Öppna i pianorulle - - - - Set as ghost in piano-roll - Ange som spöke i pianorulle + + Mixer channel + - - Clear all notes - Rensa alla noter + + Volume + - - Reset name - Nollställ namn + + Volume: + - - Change name - Byt namn + + VOL + - - Add steps - Lägg till steg + + Panning + - - Remove steps - Ta bort steg + + Panning: + - - Clone Steps - Klona Steg + + PAN + - - - PeakController - - Peak Controller - Toppkontroller + + MIDI + - - Peak Controller Bug - Toppkontrollerbugg + + Input + - - Due to a bug in older version of LMMS, the peak controllers may not be connect properly. Please ensure that peak controllers are connected properly and re-save this file. Sorry for any inconvenience caused. - På grund av en bugg i äldre versioner av LMMS kan toppkontrollrarna kommat att inte anslutas korrekt. Försäkra dig om att toppkontrollrarna är anslutna korrekt och spara om denna fil. Eventuella olägeheter beklagas. + + Output + - - - PeakControllerDialog - - PEAK - TOPP + + Open/Close MIDI CC Rack + - - LFO Controller - LFO-kontroller + + %1: %2 + - PeakControllerEffectControlDialog + lmms::gui::InstrumentTrackWindow - - BASE - BAS + + Volume + - - Base: - Bas: + + Volume: + - - AMNT - BELP + + VOL + - - Modulation amount: - Moduleringsmängd: + + Panning + - - MULT - MULT + + Panning: + - - Amount multiplicator: - Mängdmultiplikator: + + PAN + - - ATCK - STGR + + Pitch + - - Attack: - Attack: + + Pitch: + - - DCAY - SÄNK + + cents + - - Release: - Release: + + PITCH + - - TRSH - NIVÅ + + Pitch range (semitones) + - - Treshold: - Tröskelvärde: + + RANGE + - - Mute output - Tysta utgångs-ljud + + Mixer channel + - - Absolute value - Absolut värde + + CHANNEL + - - - PeakControllerEffectControls - - Base value - Basvärde + + Save current instrument track settings in a preset file + - - Modulation amount - Moduleringsmängd + + SAVE + - - Attack - Attack + + Envelope, filter & LFO + - - Release - Release + + Chord stacking & arpeggio + - - Treshold - Tröskelvärde + + Effects + - - Mute output - Tysta utgångs-ljud + + MIDI + - - Absolute value - Absolut värde + + Tuning and transposition + - - Amount multiplicator - Mängdmultiplikator + + Save preset + - - - PianoRoll - - Note Velocity - Not-velocitet + + XML preset file (*.xpf) + - - Note Panning - Not-panorering + + Plugin + + + + lmms::gui::InstrumentTuningView - - Mark/unmark current semitone - Markera/avmarkera nuvarande halvton + + GLOBAL TRANSPOSITION + - - Mark/unmark all corresponding octave semitones - Markera/avmarkera alla motsvarande oktavhalvtoner + + Enables the use of global transposition + - - Mark current scale - Markera nuvarande skala + + Microtuner is not available for MIDI-based instruments. + - - Mark current chord - Markera nuvarande ackord + + MICROTUNER + - - Unmark all - Avmarkera allt + + Active scale: + - - Select all notes on this key - Välj alla noter på denna tangent + + + Edit scales and keymaps + - - Note lock - Notlås + + Active keymap: + - - Last note - Senaste noten + + Import note ranges from keymap + - - No key - Ingen skala + + When enabled, the first, last and base notes of this instrument will be overwritten with values specified by the selected keymap. + + + + lmms::gui::KickerInstrumentView - - No scale - Ingen skala + + Start frequency: + - - No chord - Inget ackord + + End frequency: + - - Nudge + + Frequency slope: - - Snap + + Gain: - - Velocity: %1% - Velocitet: %1% + + Envelope length: + - - Panning: %1% left - Panorering: %1% vänster + + Envelope slope: + - - Panning: %1% right - Panorering: %1% höger + + Click: + - - Panning: center - Panorering: center + + Noise: + - - Glue notes failed + + Start distortion: - - Please select notes to glue first. + + End distortion: + + + lmms::gui::LOMMControlDialog - - Please open a clip by double-clicking on it! - Dubbelklicka för att öppna ett mönster! + + Depth: + - - - Please enter a new value between %1 and %2: - Ange ett nytt värde mellan %1 och %2: + + Compression amount for all bands + - - - PianoRollWindow - - Play/pause current clip (Space) - Spela/pausa aktuellt mönster (mellanslag) + + Time: + - - Record notes from MIDI-device/channel-piano - Spela in noter från MIDI-enhet/kanal-piano + + Attack/release scaling for all bands + - - Record notes from MIDI-device/channel-piano while playing song or BB track - Spela in noter från MIDI-enhet/kanal-piano medan låt eller BB-spår spelas + + Input Volume: + - - Record notes from MIDI-device/channel-piano, one step at the time - Spela in noter från MIDI-enhet/kanal-piano, ett steg i taget + + Input volume + - - Stop playing of current clip (Space) - Sluta spela aktuellt mönster (mellanslag) + + Output Volume: + - - Edit actions - Redigera åtgärder + + Output volume + - - Draw mode (Shift+D) - Ritläge (Skift+D) + + Upward Depth: + - - Erase mode (Shift+E) - Suddläge (Skift+E) + + Upward compression amount for all bands + - - Select mode (Shift+S) - Markeringsläge (Skift+S) + + Downward Depth: + - - Pitch Bend mode (Shift+T) - Tonhöjdsböjningsläge (Shift+T) + + Downward compression amount for all bands + - - Quantize - Kvantisera + + High/Mid Crossover + - - Quantize positions - Kvantisera positioner + + Mid/Low Crossover + - - Quantize lengths - Kvantisera längder + + High/mid band split + - - File actions - Filåtgärder + + Mid/low band split + - - Import clip - Importera mönster + + Enable High Band + - - - Export clip - Exportera mönster + + Enable Mid Band + - - Copy paste controls - Kopiera/klistra-kontroller + + Enable Low Band + - - Cut (%1+X) - Klipp ut (%1+X) + + High Input Volume: + - - Copy (%1+C) - Kopiera (%1+C) + + Input volume for high band + - - Paste (%1+V) - Klistra in (%1+V) + + Mid Input Volume: + - - Timeline controls - Tidslinjekontroller + + Input volume for mid band + - - Glue + + Low Input Volume: - - Knife + + Input volume for low band - - Fill - Fyll + + High Output Volume: + - - Cut overlaps + + Output volume for high band - - Min length as last + + Mid Output Volume: - - Max length as last + + Output volume for mid band - - Zoom and note controls - Zoom- och notkontroller + + Low Output Volume: + - - Horizontal zooming - Horisontell zoomning + + Output volume for low band + - - Vertical zooming - Vertikal zoomning + + Above Threshold High + - - Quantization - Kvantisering + + Downward compression threshold for high band + - - Note length - Notlängd + + Above Threshold Mid + - - Key - Skala + + Downward compression threshold for mid band + - - Scale - Skala + + Above Threshold Low + - - Chord - Ackord + + Downward compression threshold for low band + - - Snap mode + + Above Ratio High - - Clear ghost notes - Rensa spöknoter + + Downward compression ratio for high band + - - - Piano-Roll - %1 - Pianorulle - %1 + + Above Ratio Mid + - - - Piano-Roll - no clip - Pianorulle - inget mönster + + Downward compression ratio for mid band + - - - XML clip file (*.xpt *.xptz) - XML-mönsterfil (*.xpt *.xptz) + + Above Ratio Low + - - Export clip success - Export av mönster lyckades + + Downward compression ratio for low band + - - Clip saved to %1 - Mönster sparat till %1 + + Below Threshold High + - - Import clip. - Importera mönster. + + Upward compression threshold for high band + - - You are about to import a clip, this will overwrite your current clip. Do you want to continue? - Du håller på att importera ett mönster, detta kommer att skriva över ditt nuvarande mönster. Vill du fortsätta? + + Below Threshold Mid + - - Open clip - Öppet mönster + + Upward compression threshold for mid band + - - Import clip success - Import av mönster lyckades + + Below Threshold Low + - - Imported clip %1! - Importerat mönstret %1! + + Upward compression threshold for low band + - - - PianoView - - Base note - Basnot + + Below Ratio High + - - First note + + Upward compression ratio for high band - - Last note - Senaste noten + + Below Ratio Mid + - - - Plugin - - Plugin not found - Tillägget hittades inte + + Upward compression ratio for mid band + - - The plugin "%1" wasn't found or could not be loaded! -Reason: "%2" - Tillägget "%1" hittades inte eller kunde inte läsas in! -Orsak: "%2" + + Below Ratio Low + - - Error while loading plugin - Fel vid inläsning av tillägg + + Upward compression ratio for low band + - - Failed to load plugin "%1"! - Misslyckades att läsa in tillägget "%1"! + + Attack High: + - - - PluginBrowser - - Instrument Plugins - Instrument-tillägg + + Attack time for high band + - - Instrument browser - Instrument bläddrare + + Attack Mid: + - - Drag an instrument into either the Song-Editor, the Beat+Bassline Editor or into an existing instrument track. - Dra ett instrument till antingen Låtredigeraren, Takt+Basgång-redigeraren eller till ett befintligt instrumentspår. + + Attack time for mid band + - - no description - ingen beskrivning + + Attack Low: + - - A native amplifier plugin - En inbyggd förstärkare-tillägg + + Attack time for low band + - - Simple sampler with various settings for using samples (e.g. drums) in an instrument-track - Enkel sampler med olika inställningar för att använda samplingar (t. ex. trummor) i ett instrumentspår + + Release High: + - - Boost your bass the fast and simple way - Öka din bas på snabbt och enkelt sätt + + Release time for high band + - - Customizable wavetable synthesizer - Anpassa vågtabellssynthesizer + + Release Mid: + - - An oversampling bitcrusher - En översamplande bitkrossare + + Release time for mid band + - - Carla Patchbay Instrument - Instrument för Carla Kopplingsplint + + Release Low: + - - Carla Rack Instrument - Carla Rack-instrument + + Release time for low band + - - A dynamic range compressor. + + RMS Time: - - A 4-band Crossover Equalizer - En 4-bands korsningspunkts frekvenskorrigerare + + RMS size for sidechain signal (set to 0 for Peak mode) + - - A native delay plugin - Ett inbyggt fördröjningstillägg + + Knee: + - - A Dual filter plugin - Ett Dual filter-tillägg + + Knee size for all compressors + - - plugin for processing dynamics in a flexible way - tillägg för dynamisk bearbetning på ett flexibelt sätt + + Range: + - - A native eq plugin - Ett inbyggt eq-tillägg + + Maximum gain increase for all bands + - - A native flanger plugin - Ett inbyggt flanger-tillägg + + Balance: + - - Emulation of GameBoy (TM) APU - Emulering av GameBoy (TM) APU + + Bias input volume towards one channel + - - Player for GIG files - Spelare för GIG-filer + + Scale output volume with Depth + - - Filter for importing Hydrogen files into LMMS - Filter för att importera Hydrogen-filer till LMMS + + Scale output volume with Depth parameter + - - Versatile drum synthesizer - Mångsidig trum-synth + + Stereo Link + - - List installed LADSPA plugins - Lista installerade LADSPA-tillägg + + Apply same gain change to both channels + - - plugin for using arbitrary LADSPA-effects inside LMMS. - tillägg för att använda godtyckliga LADSPA-effekter inom LMMS. + + Auto Time: + - - Incomplete monophonic imitation TB-303 - Ofullstädig monofonisk imitation av TB-303 + + Speed up attack and release times when transients occur + - - plugin for using arbitrary LV2-effects inside LMMS. - tillägg för användning av godtyckliga LV2-effekter inuti LMMS. + + Mix: + - - plugin for using arbitrary LV2 instruments inside LMMS. - tillägg för användning av godtyckliga LV2-instrument inuti LMMS. + + Wet/Dry of all bands + - - Filter for exporting MIDI-files from LMMS - Filter för att exportera MIDI-filer från LMMS + + Feedback + - - Filter for importing MIDI-files into LMMS - Filter för att importera MIDI-filer till LMMS + + Use output as sidechain signal instead of input + - - Monstrous 3-oscillator synth with modulation matrix - Monstruös 3-oscillatorsynth med moduleringsmix + + Mid/Side + - - A multitap echo delay plugin - Ett flertapps ekofördröjningstillägg + + Compress mid/side channels instead of left/right + - - A NES-like synthesizer - En NES-lik synthesizer + + + Suppress upward compression for side band + - - 2-operator FM Synth - 2-operators FM-synth + + + Lookahead + - - Additive Synthesizer for organ-like sounds - Additiv synthesizer för orgellika ljud + + Lookahead length + - - GUS-compatible patch instrument - GUS-kompatibelt kopplingsinstrument + + Clear all parameters + + + + lmms::gui::LadspaBrowserView - - Plugin for controlling knobs with sound peaks - Tillägg för styrning av rattar med ljudtoppar + + + Available Effects + - - Reverb algorithm by Sean Costello - Reverb-algoritm av Sean Costello + + + Unavailable Effects + - - Player for SoundFont files - Spelare för SoundFont-filer + + + Instruments + - - LMMS port of sfxr - LMMS-port av sfxr + + + Analysis Tools + - - Emulation of the MOS6581 and MOS8580 SID. -This chip was used in the Commodore 64 computer. - Emulering av MOS6581 och MODS 8580 SID. -Detta chip användes i datorn Commodore 64. + + + Don't know + - - A graphical spectrum analyzer. - En grafisk spektrumanalysator + + Type: + + + + lmms::gui::LadspaControlDialog - - Plugin for enhancing stereo separation of a stereo input file - Tillägg för att förbättra stereoseparation av en stereoingångsfil + + Link Channels + - - Plugin for freely manipulating stereo output - Tillägg för fritt manipulera stereoutgång + + Channel + + + + lmms::gui::LadspaControlView - - Tuneful things to bang on - Melodiska saker att slå på + + Link channels + - - Three powerful oscillators you can modulate in several ways - Tre kraftfulla oscillatorer du kan modulera på flera sätt + + Value: + + + + lmms::gui::LadspaDescription - - A stereo field visualizer. - Stereofältsvisualiserare. + + Plugins + - - VST-host for using VST(i)-plugins within LMMS - VST-värd för att använda VST(i)-tillägg inom LMMS + + Description + - - Vibrating string modeler - Modellerare för vibrerande strängar + + Name: + - - plugin for using arbitrary VST effects inside LMMS. - tillägg för att använda godtyckliga VST-effekter inom LMMS. + + Maker: + - - 4-oscillator modulatable wavetable synth - 4-oscillators modulerbar vågtabellssynth + + Copyright: + - - plugin for waveshaping - tillägg för vågformande + + Requires Real Time: + - - Mathematical expression parser - Tolk för matematiska uttryck + + + + Yes + - - Embedded ZynAddSubFX - Inbäddad ZynAddSubFX + + + + No + - - - PluginDatabaseW - - Carla - Add New - Carla - Lägg till ny + + Real Time Capable: + - - Format - Format + + In Place Broken: + - - Internal - Intern + + Channels In: + - - LADSPA - LADSPA + + Channels Out: + + + + lmms::gui::LadspaMatrixControlDialog - - DSSI - DSSI + + Link Channels + - - LV2 - LV2 + + Link + - - VST2 - VST2 + + Channel %1 + - - VST3 - VST3 + + Link channels + + + + lmms::gui::LadspaPortDialog - - AU - AU + + Ports + - - Sound Kits - Ljuduppsättning + + Name + - - Type - Typ + + Rate + - - Effects - Effekter + + Direction + - - Instruments - Instrument + + Type + - - MIDI Plugins - MIDI-tillägg + + Min < Default < Max + - - Other/Misc - Annat/diverse + + Logarithmic + - - Architecture - Arkitektur + + SR Dependent + - - Native - Inbyggt + + Audio + - - Bridged - Bryggad + + Control + - - Bridged (Wine) - Bryggad (Wine) + + Input + - - Requirements - Krav + + Output + - - With Custom GUI - Med anpassat användargränssnitt + + Toggled + - - With CV Ports - Med CV-portar + + Integer + - - Real-time safe only - Endast realtidssäkert + + Float + - - Stereo only - Endast stereo + + + Yes + + + + lmms::gui::Lb302SynthView - - With Inline Display - Med inbyggd visning + + Cutoff Freq: + - - Favorites only - Endast favoriter + + Resonance: + - - (Number of Plugins go here) - (Antal tillägg placeras här) + + Env Mod: + - - &Add Plugin - &Lägg till tillägg + + Decay: + - - Cancel - Avbryt + + 303-es-que, 24dB/octave, 3 pole filter + - - Refresh - Uppdatera + + Slide Decay: + - - Reset filters - Återställ filter - - - - - - - - - - - - - - - - - - - TextLabel - TextLabel + + DIST: + - - Format: - Format: + + Saw wave + - - Architecture: - Arkitektur: + + Click here for a saw-wave. + - - Type: - Typ: + + Triangle wave + - - MIDI Ins: - MIDI in: + + Click here for a triangle-wave. + - - Audio Ins: - Ljudingångar: + + Square wave + - - CV Outs: - CV-utgångar: + + Click here for a square-wave. + - - MIDI Outs: - MIDI ut: + + Rounded square wave + - - Parameter Ins: - Parameteringångar: + + Click here for a square-wave with a rounded end. + - - Parameter Outs: - Parameterutgångar: + + Moog wave + - - Audio Outs: - Ljudutgångar: + + Click here for a moog-like wave. + - - CV Ins: - CV-ingångar: + + Sine wave + - - UniqueID: - UniqueID: + + Click for a sine-wave. + - - Has Inline Display: - Har inbyggd visning: + + + White noise wave + - - Has Custom GUI: - Has anpassat användargränssnitt: + + Click here for an exponential wave. + - - Is Synth: - Är en synth: + + Click here for white-noise. + - - Is Bridged: - Är bryggad: + + Bandlimited saw wave + - - Information - Information + + Click here for bandlimited saw wave. + - - Name - Namn + + Bandlimited square wave + - - Label/URI - Etikett/URI + + Click here for bandlimited square wave. + - - Maker - Tillverkare + + Bandlimited triangle wave + - - Binary/Filename - Binär/filnamn + + Click here for bandlimited triangle wave. + - - Focus Text Search - Fokusera på textsökning + + Bandlimited moog saw wave + - - Ctrl+F - Ctrl+F + + Click here for bandlimited moog saw wave. + - PluginEdit - - - Plugin Editor - Tilläggsredigerare - - - - Edit - Redigera - + lmms::gui::LcdFloatSpinBox - - Control - Kontroll + + Set value + - - MIDI Control Channel: - MIDI-kontrollkanal: + + Please enter a new value between %1 and %2: + + + + lmms::gui::LcdSpinBox - - N - N + + Set value + - - Output dry/wet (100%) - Utgång original/effekt (100%) + + Please enter a new value between %1 and %2: + + + + lmms::gui::LeftRightNav - - Output volume (100%) - Utgångsvolym (100%) + + + + Previous + - - Balance Left (0%) - Balans vänster (0%) + + + + Next + - - - Balance Right (0%) - Balans höger (0%) + + Previous (%1) + - - Use Balance - Använd balans + + Next (%1) + + + + lmms::gui::LfoControllerDialog - - Use Panning - Använd panorering + + LFO + - - Settings - Inställningar + + BASE + - - Use Chunks - Använd stycken + + Base: + - - Audio: - Ljud: + + FREQ + - - Fixed-Size Buffer - Buffer med fix storlek + + LFO frequency: + - - Force Stereo (needs reload) - Tvingad stereo (kräver omstart) + + AMNT + - - MIDI: - MIDI: + + Modulation amount: + - - Map Program Changes - Mapp programändringar + + PHS + - - Send Bank/Program Changes - Skicka bank-/programändringar + + Phase offset: + - - Send Control Changes - Skicka kontrolländringar + + degrees + - - Send Channel Pressure - Skicka kanaltryck + + Sine wave + - - Send Note Aftertouch - Skicka efterberöring för noter + + Triangle wave + - - Send Pitchbend - Skicka tonhöjdsböjning + + Saw wave + - - Send All Sound/Notes Off - Skicka alla ljud/noter av + + Square wave + - - -Plugin Name - - -Tilläggsnamn - + + Moog saw wave + - - Program: - Program: + + Exponential wave + - - MIDI Program: - MIDI-program: + + White noise + - - Save State - Spara tillstånd + + User-defined shape. +Double click to pick a file. + - - Load State - Ladda tillstånd + + Multiply modulation frequency by 1 + - - Information - Information + + Multiply modulation frequency by 100 + - - Label/URI: - Etikett/URI: + + Divide modulation frequency by 100 + + + + lmms::gui::LfoGraph - - Name: - Namn: + + %1 Hz + + + + lmms::gui::MainWindow - - Type: - Typ: + + Configuration file + - - Maker: - Tillverkare: + + Error while parsing configuration file at line %1:%2: %3 + - - Copyright: - Upphovsrätt: + + Could not open file + - - Unique ID: - Unikt ID: + + Could not open file %1 for writing. +Please make sure you have write permission to the file and the directory containing the file and try again! + - - - PluginFactory - - Plugin not found. - Tillägget hittades inte. + + Project recovery + - - LMMS plugin %1 does not have a plugin descriptor named %2! - LMMS-tillägget %1 har ingen tilläggsbeskrivning med namnet %2! + + There is a recovery file present. It looks like the last session did not end properly or another instance of LMMS is already running. Do you want to recover the project of this session? + - - - PluginParameter - - Form - Form + + + Recover + - - Parameter Name - Parameternamn + + Recover the file. Please don't run multiple instances of LMMS when you do this. + - - ... - ... + + + Discard + - - - PluginRefreshW - - Carla - Refresh - Carla - Uppdatera + + Launch a default session and delete the restored files. This is not reversible. + - - Search for new... - Sök efter nya... + + Version %1 + - - LADSPA - LADSPA + + Preparing plugin browser + - - DSSI - DSSI + + Preparing file browsers + - - LV2 - LV2 + + My Projects + - - VST2 - VST2 + + My Samples + - - VST3 - VST3 + + My Presets + - - AU - AU + + My Home + - - SF2/3 - SF2/3 + + Root Directory + - - SFZ - SFZ + + Volumes + - - Native - Inbyggt + + My Computer + - - POSIX 32bit - POSIX 32bit + + Loading background picture + - - POSIX 64bit - POSIX 64bit + + &File + - - Windows 32bit - Windows 32bit + + &New + - - Windows 64bit - Windows 64bit + + &Open... + - - Available tools: - Tillgängliga verktyg: + + &Save + - - python3-rdflib (LADSPA-RDF support) - python3-rdflib (LADSPA-RDF-stöd) + + Save &As... + - - carla-discovery-win64 - carla-discovery-win64 + + Save as New &Version + - - carla-discovery-native - carla-discovery-native + + Save as default template + - - carla-discovery-posix32 - carla-discovery-posix32 + + Import... + - - carla-discovery-posix64 - carla-discovery-posix64 + + E&xport... + - - carla-discovery-win32 - carla-discovery-win32 + + E&xport Tracks... + - - Options: - Alternativ: + + Export &MIDI... + - - Carla will run small processing checks when scanning the plugins (to make sure they won't crash). -You can disable these checks to get a faster scanning time (at your own risk). - Carla kommer att köra små bearbetningskontroller vid skanning av tillägg (för att se till att de inte kraschar). -Du kan inaktivera dessa kontroller för att få en snabbare skanningstid (på egen risk). + + &Quit + - - Run processing checks while scanning - Kör processkontroller under detektering + + &Edit + - - Press 'Scan' to begin the search - Tryck på 'Skanna' för att påbörja sökningen + + Undo + - - Scan - Skanna + + Redo + - - >> Skip - >> Hoppa + + Scales and keymaps + - - Close - Stäng + + Settings + - - - PluginWidget - - - - - - Frame - Bild + + &View + - - Enable - Aktivera + + &Tools + - - On/Off - På/Av + + &Help + - - - - - PluginName - Tilläggsnamn + + Online Help + - - MIDI - MIDI + + Help + - - AUDIO IN - LJUDINGÅNG + + About + - - AUDIO OUT - LJUDUTGÅNG + + Create new project + - - GUI - Användargränssnitt + + Create new project from template + - - Edit - Redigera + + Open existing project + - - Remove - Ta bort + + Recently opened projects + - - Plugin Name - Tilläggsnamn + + Save current project + - - Preset: - Förinställning: + + Export current project + - - - ProjectNotes - - Project Notes - Projektanteckningar + + Metronome + - - Enter project notes here - Ange projektnoteringar här + + + Song Editor + - - Edit Actions - Redigera Åtgärder + + + Pattern Editor + - - &Undo - &Ångra + + + Piano Roll + - - %1+Z - %1+Z + + + Automation Editor + - - &Redo - &Gör om + + + Mixer + - - %1+Y - %1+Y + + Show/hide controller rack + - - &Copy - &Kopiera + + Show/hide project notes + - - %1+C - %1+C + + Untitled + - - Cu&t - Klipp u&t + + Recover session. Please save your work! + - - %1+X - %1+X + + LMMS %1 + - - &Paste - &Klistra in + + Recovered project not saved + - - %1+V - %1+V + + This project was recovered from the previous session. It is currently unsaved and will be lost if you don't save it. Do you want to save it now? + - - Format Actions - Formatåtgärder + + Project not saved + - - &Bold - &Fet + + The current project was modified since last saving. Do you want to save it now? + - - %1+B - %1+B + + Open Project + - - &Italic - &Kursiv + + LMMS (*.mmp *.mmpz) + - - %1+I - %1+I + + Save Project + - - &Underline - &Understruken + + LMMS Project + - - %1+U - %1+U + + LMMS Project Template + - - &Left - &Vänster + + Save project template + - - %1+L - %1+L + + Overwrite default template? + - - C&enter - C&entrera + + This will overwrite your current default template. + - - %1+E - %1+E + + Help not available + - - &Right - &Höger + + Currently there's no help available in LMMS. +Please visit http://lmms.sf.net/wiki for documentation on LMMS. + - - %1+R - %1+R + + Controller Rack + - - &Justify - &Justera + + Project Notes + - - %1+J - %1+J + + Fullscreen + - - &Color... - &Färg... + + Volume as dBFS + - - - ProjectRenderer - - WAV (*.wav) - WAV (*.wav) + + Smooth scroll + - - FLAC (*.flac) - FLAC (*.flac) + + Enable note labels in piano roll + - - OGG (*.ogg) - OGG (*.ogg) + + MIDI File (*.mid) + - - MP3 (*.mp3) - MP3 (*.mp3) + + + untitled + - - - QObject - - Reload Plugin - Läs in tillägg igen + + + Select file for project-export... + - - Show GUI - Visa användargränssnitt + + Select directory for writing exported tracks... + - - Help - Hjälp + + Save project + - - - QWidget - - - - - Name: - Namn: + + Project saved + - - URI: - URI: + + The project %1 is now saved. + - - - - Maker: - Skapare: + + Project NOT saved. + - - - - Copyright: - Copyright: + + The project %1 was not saved! + - - - Requires Real Time: - Kräver realtid: + + Import file + - - - - - - - Yes - Ja + + MIDI sequences + - - - - - - - No - Nej + + Hydrogen projects + - - - Real Time Capable: - Klarar realtid: + + All file types + + + + lmms::gui::MalletsInstrumentView - - - In Place Broken: - Trasig på plats: + + Instrument + - - - Channels In: - Kanaler in: + + Spread + - - - Channels Out: - Kanaler ut: + + Spread: + - - File: %1 - Fil: %1 + + Random + - - File: - Fil: + + Random: + - - - RecentProjectsMenu - - &Recently Opened Projects - &Nyligen öppnade projekt + + Missing files + - - - RenameDialog - - Rename... - Byt namn... + + Your Stk-installation seems to be incomplete. Please make sure the full Stk-package is installed! + - - - ReverbSCControlDialog - - Input - Ingång + + Hardness + - - Input gain: - Ingångsförstärkning: + + Hardness: + - - Size - Storlek + + Position + - - Size: - Storlek: + + Position: + - - Color - Färg + + Vibrato gain + - - Color: - Färg: + + Vibrato gain: + - - Output - Utgång + + Vibrato frequency + - - Output gain: - Utgångsförstärkning: + + Vibrato frequency: + - - - ReverbSCControls - - Input gain - Ingångsförstärkning + + Stick mix + - - Size - Storlek + + Stick mix: + - - Color - Färg + + Modulator + - - Output gain - Utgångsförstärkning + + Modulator: + - - - SaControls - - Pause - Pausa + + Crossfade + - - Reference freeze - Referensfrysning + + Crossfade: + - - Waterfall - Vattenfall + + LFO speed + - - Averaging - Medelvärdesbildning + + LFO speed: + - - Stereo - Stereo + + LFO depth + - - Peak hold - Topphållning + + LFO depth: + - - Logarithmic frequency - Logaritmisk frekvens + + ADSR + - - Logarithmic amplitude - Logaritmisk amplitud + + ADSR: + - - Frequency range - Frekvensområde + + Pressure + - - Amplitude range - Amplitudomfång + + Pressure: + - - FFT block size - Blockstorlek för FFT + + Speed + - - FFT window type - FFT-fönstertyp + + Speed: + + + + lmms::gui::ManageVSTEffectView - - Peak envelope resolution - Toppkonturupplösning + + - VST parameter control + - - Spectrum display resolution - Spektrumvisningsupplösning + + VST sync + - - Peak decay multiplier - Toppavklingingsmultiplikator + + + Automated + - - Averaging weight - Genomsnittsviktning + + Close + + + + lmms::gui::ManageVestigeInstrumentView - - Waterfall history size - Historikstorlek för vattenfall + + + - VST plugin control + - - Waterfall gamma correction - Gammakorrigering för vattenfall + + VST Sync + - - FFT window overlap - Överlappning för FFT-fönster + + + Automated + - - FFT zero padding - Nollfyllnad för FFT + + Close + + + + lmms::gui::MeterDialog - - - Full (auto) - Fullständig (automatisk) + + + Meter Numerator + - - - - Audible - Hörbart + + Meter numerator + - - Bass - Bas + + + Meter Denominator + - - Mids - Mellanregister + + Meter denominator + - - High - Hög + + TIME SIG + + + + lmms::gui::MicrotunerConfig - - Extended - Utökat + + Selected scale slot + - - Loud - Högljudd + + Selected keymap slot + - - Silent - Tyst + + + First key + - - (High time res.) - (Hög tidsuppl.) + + + Last key + - - (High freq. res.) - (Hög frekv.uppl.) + + + Middle key + - - Rectangular (Off) - Rektangulär (Av) + + + Base key + - - - Blackman-Harris (Default) - Blackman-Harris (Standard) + + + + Base note frequency + - - Hamming - Hamming + + Microtuner Configuration + - - Hanning - Hanning + + Scale slot to edit: + - - - SaControlsDialog - - Pause - Pausa + + Scale description. Cannot start with "!" and cannot contain a newline character. + - - Pause data acquisition - Pausa datainsamling + + + Load + - - Reference freeze - Referensfrysning + + + Save + - - Freeze current input as a reference / disable falloff in peak-hold mode. - Frys aktuella ingång som en referens / inaktivera fall i topphållningsläge. + + Load scale definition from a file. + - - Waterfall - Vattenfall + + Save scale definition to a file. + - - Display real-time spectrogram - Visa spektrogram i realtid + + Enter intervals on separate lines. Numbers containing a decimal point are treated as cents. +Other inputs are treated as integer ratios and must be in the form of 'a/b' or 'a'. +Unity (0.0 cents or ratio 1/1) is always present as a hidden first value; do not enter it manually. + - - Averaging - Medelvärdesbildning + + Apply scale changes + - - Enable exponential moving average - Aktivera exponentiellt glidande medelvärde + + Verify and apply changes made to the selected scale. To use the scale, select it in the settings of a supported instrument. + - - Stereo - Stereo + + Keymap slot to edit: + - - Display stereo channels separately - Visa stereokanaler separat + + Keymap description. Cannot start with "!" and cannot contain a newline character. + - - Peak hold - Topphållning + + Load key mapping definition from a file. + - - Display envelope of peak values - Visa kontur för toppvärden + + Save key mapping definition to a file. + - - Logarithmic frequency - Logaritmisk frekvens + + Enter key mappings on separate lines. Each line assigns a scale degree to a MIDI key, +starting with the middle key and continuing in sequence. +The pattern repeats for keys outside of the explicit keymap range. +Multiple keys can be mapped to the same scale degree. +Enter 'x' if you wish to leave the key disabled / not mapped. + - - Switch between logarithmic and linear frequency scale - Växla mellan logaritmisk och linjär frekvensskala + + FIRST + - - - Frequency range - Frekvensområde + + First MIDI key that will be mapped + - - Logarithmic amplitude - Logaritmisk amplitud + + LAST + - - Switch between logarithmic and linear amplitude scale - Växla mellan logaritmisk och linjär amplitudskala + + Last MIDI key that will be mapped + - - - Amplitude range - Amplitudomfång + + MIDDLE + - - Envelope res. - Konturuppl. + + First line in the keymap refers to this MIDI key + - - Increase envelope resolution for better details, decrease for better GUI performance. - Öka konturupplösning för fler detaljer, minska för bättre användargrässnittsprestanda. + + BASE N. + - - - Draw at most - Rita som mest + + Base note frequency will be assigned to this MIDI key + - - envelope points per pixel - konturpunkter per pixel + + BASE NOTE FREQ + - - Spectrum res. - Spektrum uppl. + + Apply keymap changes + - - Increase spectrum resolution for better details, decrease for better GUI performance. - Öka spektrumupplösningen för bättre detaljer, minska för bättre användargränssnittsprestanda. + + Verify and apply changes made to the selected key mapping. To use the mapping, select it in the settings of a supported instrument. + - - spectrum points per pixel - spektrumpunkter per pixel + + Scale parsing error + - - Falloff factor - Fallfaktor + + Scale name cannot start with an exclamation mark + - - Decrease to make peaks fall faster. - Minska för att topparna ska falla snabbare. + + Scale name cannot contain a new-line character + - - Multiply buffered value by - Multiplera buffrat värde med + + Interval defined in cents cannot be converted to a number + - - Averaging weight - Genomsnittsviktning + + Numerator of an interval defined as a ratio cannot be converted to a number + - - Decrease to make averaging slower and smoother. - Minska för att göra medelvädesbildning långsammare och mjukare. + + Denominator of an interval defined as a ratio cannot be converted to a number + - - New sample contributes - Nytt sample bidrar + + Interval defined as a ratio cannot be negative + - - Waterfall height - Vattenfallshöjd + + Keymap parsing error + - - Increase to get slower scrolling, decrease to see fast transitions better. Warning: medium CPU usage. - Öka för att gå lånsammare rullning, minska för att se snabba övergångar bättre. Varning: medel CPU-användning. + + Keymap name cannot start with an exclamation mark + - - Keep - Behåll + + Keymap name cannot contain a new-line character + - - lines - linjer + + Scale degree cannot be converted to a whole number + - - Waterfall gamma - Vattenfallsgamma + + Scale degree cannot be negative + - - Decrease to see very weak signals, increase to get better contrast. - Minska för att se väldigt svara signaler, öka för att få bättre kontrast. + + Invalid keymap + - - Gamma value: - Gammavärde: + + Base key is not mapped to any scale degree. No sound will be produced as there is no way to assign reference frequency to any note. + - - Window overlap - Fönster överlappning + + Open scale + - - Increase to prevent missing fast transitions arriving near FFT window edges. Warning: high CPU usage. - Öka för att undvika att missa snabba övergångar som uppträder nära FFT-fönstrets kanter. Varning: hög CPU-användning. + + + Scala scale definition (*.scl) + - - Each sample processed - Varje sampel hanterat + + Scale load failure + - - times - gånger + + + Unable to open selected file. + - - Zero padding - Nollfyllnad + + Open keymap + - - Increase to get smoother-looking spectrum. Warning: high CPU usage. - Öka för att få ett spektrum som ser mjukare ut. Varning: hög CPU-använding. + + + Scala keymap definition (*.kbm) + - - Processing buffer is - Hanteringsbuffert är + + Keymap load failure + - - steps larger than input block - steg större än ingångsblock + + Save scale + - - Advanced settings - Avancerade inställningar + + Scale save failure + - - Access advanced settings - Kom åt avancerade inställningar + + + Unable to open selected file for writing. + - - - FFT block size - Blockstorlek för FFT + + Save keymap + - - - FFT window type - FFT-fönstertyp + + Keymap save failure + - SampleBuffer + lmms::gui::MidiCCRackView + + + + MIDI CC Rack - %1 + + - - Fail to open file - Misslyckas med att öppna filen + + MIDI CC Knobs: + - - Audio files are limited to %1 MB in size and %2 minutes of playing time - Ljudfiler är begränsade till %1 MB i storlek och %2 minuters speltid + + CC %1 + + + + lmms::gui::MidiClipView - - Open audio file - Öppna ljudfil + + + Transpose + - - All Audio-Files (*.wav *.ogg *.ds *.flac *.spx *.voc *.aif *.aiff *.au *.raw) - Alla ljudfiler (*.wav *.ogg *.ds *.flac *.spx *.voc *.aif *.aiff *.au *.raw) + + Semitones to transpose by: + - - Wave-Files (*.wav) - Wave-filer (*.wav) + + Open in piano-roll + - - OGG-Files (*.ogg) - OGG-filer (*.ogg) + + Set as ghost in piano-roll + - - DrumSynth-Files (*.ds) - DrumSynth-filer (*.ds) + + Set as ghost in automation editor + - - FLAC-Files (*.flac) - FLAC-filer (*.flac) + + Clear all notes + - - SPEEX-Files (*.spx) - SPEEX-filer (*.spx) + + Reset name + - - VOC-Files (*.voc) - VOC-filer (*.voc) + + Change name + - - AIFF-Files (*.aif *.aiff) - AIFF-filer (*.aif *.aiff) + + Add steps + - - AU-Files (*.au) - AU-filer (*.au) + + Remove steps + - - RAW-Files (*.raw) - RAW-filer (*.raw) + + Clone Steps + - SampleClipView - - - Double-click to open sample - Dubbelklicka för att öppna sampel - + lmms::gui::MidiSetupWidget - - Delete (middle mousebutton) - Ta bort (musens mitt-knapp) + + Device + + + + lmms::gui::MixerChannelLcdSpinBox - - Delete selection (middle mousebutton) - Ta bort markering (mittenmusknapp) + + Assign to: + - - Cut - Klipp ut + + New Mixer Channel + - - Cut selection - Klipp ut markering + + Please enter a new value between %1 and %2: + - - Copy - Kopiera + + Set value + + + + lmms::gui::MixerChannelView - - Copy selection - Kopiera markering + + Channel send amount + - - Paste - Klistra in + + Mute + - - Mute/unmute (<%1> + middle click) - Tysta/avtysta (<%1> + mittenklick) + + Mute this channel + - - Mute/unmute selection (<%1> + middle click) - Tysta/öppna markering (<%1> + mittenklick) + + Solo + - - Reverse sample - Spela baklänges + + Solo this channel + - - Set clip color + + Fader %1 - - Use track color - Använd spårfärg + + Move &left + - - - SampleTrack - - Volume - Volym + + Move &right + - - Panning - Panorering + + Rename &channel + - - Mixer channel - FX-kanal + + R&emove channel + - - - Sample track - Ljudspår + + Remove &unused channels + - - - SampleTrackView - - Track volume - Spårvolym + + Color + - - Channel volume: - Kanalvolym: + + Change + - - VOL - VOL + + Reset + - - Panning - Panorering + + Pick random + - - Panning: - Panorering: + + This Mixer Channel is being used. +Are you sure you want to remove this channel? + +Warning: This operation can not be undone. + - - PAN - PAN + + Confirm removal + - - Channel %1: %2 - FX %1: %2 + + Don't ask again + - SampleTrackWindow + lmms::gui::MixerView - - GENERAL SETTINGS - ALLMÄNNA INSTÄLLNINGAR + + Mixer + + + + lmms::gui::MonstroView - - Sample volume - Sampelvolym + + Operators view + - - Volume: - Volym: + + Matrix view + - - VOL - VOL + + + + Volume + - + + + Panning - Panorering - - - - Panning: - Panorering: - - - - PAN - PAN + - - Mixer channel - FX-kanal + + + + Coarse detune + - - CHANNEL - FX - - - - SaveOptionsWidget + + + + semitones + + - - Discard MIDI connections - Kassera MIDI-anslutningar + + + Fine tune left + - - Save As Project Bundle (with resources) - Spara som projektpaket (med resurser) + + + + + cents + - - - SetupDialog - - Reset to default value - Återställ till standardvärde + + + Fine tune right + - - Use built-in NaN handler - Använd inbyggd NaN-hanterare + + + + Stereo phase offset + - - Settings - Inställningar + + + + + + deg + - - - General - Allmänt + + Pulse width + - - Graphical user interface (GUI) - Grafiskt användargränssnitt (GUI) + + Send sync on pulse rise + - - Display volume as dBFS - Visa volym som dBFS + + Send sync on pulse fall + - - Enable tooltips - Aktivera verktygstips + + Hard sync oscillator 2 + - - Enable master oscilloscope by default - Aktivera huvudoscilloskop som standard + + Reverse sync oscillator 2 + - - Enable all note labels in piano roll - Aktivera alla notetiketter för pianorulle + + Sub-osc mix + - - Enable compact track buttons - Aktivera kompakta spårknappar + + Hard sync oscillator 3 + - - Enable one instrument-track-window mode - Aktivera ett-instrumentsspårfönsterläge + + Reverse sync oscillator 3 + - - Show sidebar on the right-hand side - Visa sidopanel på höger sida + + + + + Attack + - - Let sample previews continue when mouse is released + + + Rate - - Mute automation tracks during solo - Tysta automatiseringsspårk vid solo + + + Phase + - - Show warning when deleting tracks + + + Pre-delay - - Projects - Projekt + + + Hold + - - Compress project files by default - Komprimera projektfiler som standard + + + Decay + - - Create a backup file when saving a project - Skapa en säkerhetskopieringsfil vid sparning av projekt + + + Sustain + - - Reopen last project on startup - Öppna det senaste projektet vid uppstart + + + Release + - - Language - Språk + + + Slope + - - - Performance - Prestanda + + Mix osc 2 with osc 3 + - - Autosave - Spara automatiskt + + Modulate amplitude of osc 3 by osc 2 + - - Enable autosave - Aktivera spara automatiskt + + Modulate frequency of osc 3 by osc 2 + - - Allow autosave while playing - Tillåt spara automatiskt medan du spelar + + Modulate phase of osc 3 by osc 2 + - - User interface (UI) effects vs. performance - Användargränssnitts effekter versus prestanda + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Modulation amount + + + + lmms::gui::MultitapEchoControlDialog - - Smooth scroll in song editor - Mjuk rullning i låtredigeraren + + Length + - - Display playback cursor in AudioFileProcessor - Visa uppspelningsmarkör i AudioFileProcessor + + Step length: + - - Plugins - Tillägg + + Dry + - - VST plugins embedding: - VST-tilläggsinbäddning: + + Dry gain: + - - No embedding - Ingen inbäddning + + Stages + - - Embed using Qt API - Bädda in via Qt-API + + Low-pass stages: + - - Embed using native Win32 API - Bädda in via inbyggt Win32-API + + Swap inputs + - - Embed using XEmbed protocol - Bädda in via XEmbed-protokoll + + Swap left and right input channels for reflections + + + + lmms::gui::NesInstrumentView - - Keep plugin windows on top when not embedded - Håll tilläggsfönstren överst när de inte är inbäddade + + + + + Volume + - - Sync VST plugins to host playback - Synkronisera VST-tillägg för att vara värd för uppspelning + + + + Coarse detune + - - Keep effects running even without input - Håll effekter igång även utan ingång + + + + Envelope length + - - - Audio - Ljud + + Enable channel 1 + - - Audio interface - Ljudgränssnitt + + Enable envelope 1 + - - HQ mode for output audio device - HQ-läget för ljudutgångsenhet + + Enable envelope 1 loop + - - Buffer size - Buffertstorlek + + Enable sweep 1 + - - - MIDI - MIDI + + + Sweep amount + - - MIDI interface - MIDI-gränssnitt + + + Sweep rate + - - Automatically assign MIDI controller to selected track - Tilldela automatiskt MIDI-kontroller till markerat spår + + + 12.5% Duty cycle + - - LMMS working directory - LMMS-arbetsmapp + + + 25% Duty cycle + - - VST plugins directory - VST-tilläggsmapp + + + 50% Duty cycle + - - LADSPA plugins directories - Mappar för LADSPA-tillägg + + + 75% Duty cycle + - - SF2 directory - Mapp för SF2-filer + + Enable channel 2 + - - Default SF2 - Standard SF2 + + Enable envelope 2 + - - GIG directory - Mapp för GIG-filer + + Enable envelope 2 loop + - - Theme directory - Temamapp + + Enable sweep 2 + - - Background artwork - Bakgrundskonstverk + + Enable channel 3 + - - Some changes require restarting. - Några ändringar kräver omstart. + + Noise Frequency + - - Autosave interval: %1 - Intervall för att spara automatisk: %1 + + Frequency sweep + - - Choose the LMMS working directory - Välj LMMS-arbetsmapp + + Enable channel 4 + - - Choose your VST plugins directory - Välj din VST-tilläggsmapp + + Enable envelope 4 + - - Choose your LADSPA plugins directory - Välj din LADSPA-tilläggsmapp + + Enable envelope 4 loop + - - Choose your default SF2 - Välj din standard SF2 + + Quantize noise frequency when using note frequency + - - Choose your theme directory - Välj din temamapp + + Use note frequency for noise + - - Choose your background picture - Välj din bakgrundsbild + + Noise mode + - - - Paths - Sökvägar + + Master volume + - - OK - OK + + Vibrato + + + + lmms::gui::OpulenzInstrumentView - - Cancel - Avbryt + + + Attack + - - Frames: %1 -Latency: %2 ms - Ramar: %1 -Latens: %2 ms + + + Decay + - - Choose your GIG directory - Välj din GIG-mapp + + + Release + - - Choose your SF2 directory - Välj din SF2-mapp + + + Frequency multiplier + + + + lmms::gui::OrganicInstrumentView - - minutes - minuter + + Distortion: + - - minute - minut + + Volume: + - - Disabled - Inaktiverad + + Randomise + - - - SidInstrument - - Cutoff frequency - Cutoff frekvens + + + Osc %1 waveform: + - - Resonance - Resonans + + Osc %1 volume: + - - Filter type - Filtertyp + + Osc %1 panning: + - - Voice 3 off - Röst 3 av + + Osc %1 stereo detuning + - - Volume - Volym + + cents + - - Chip model - Chipmodell + + Osc %1 harmonic: + - SidInstrumentView + lmms::gui::Oscilloscope - - Volume: - Volym: + + Oscilloscope + - - Resonance: - Resonans: + + Click to enable + + + + lmms::gui::PatmanView - - - Cutoff frequency: - Brytfrekvens: + + Open patch + - - High-pass filter - Högpassfilter + + Loop + - - Band-pass filter - Bandpassfilter + + Loop mode + - - Low-pass filter - Lågpassfilter + + Tune + - - Voice 3 off - Röst 3 av + + Tune mode + - - MOS6581 SID - MOS6581 SID + + No file selected + - - MOS8580 SID - MOS8580 SID + + Open patch file + - - - Attack: - Attack: + + Patch-Files (*.pat) + + + + lmms::gui::PatternClipView - - - Decay: - Decay: + + Open in Pattern Editor + - - Sustain: - Sustain: + + Reset name + - - - Release: - Release: + + Change name + + + + lmms::gui::PatternEditorWindow - - Pulse Width: - Pulsbredd: + + Pattern Editor + - - Coarse: - Grov: + + Play/pause current pattern (Space) + - - Pulse wave - Pulsvåg + + Stop playback of current pattern (Space) + - - Triangle wave - Triangelvåg + + Pattern selector + - - Saw wave - Sågtandsvåg + + Track and step actions + - - Noise - Brus + + New pattern + - - Sync - Synkronisera + + Clone pattern + - - Ring modulation - Ringmodulering + + Add sample-track + - - Filtered - Filtrerad + + Add automation-track + - - Test - Testa + + Remove steps + - - Pulse width: - Pulsbredd: + + Add steps + - - - SideBarWidget - - Close - Stäng + + Clone Steps + - Song - - - Tempo - Tempo - + lmms::gui::PeakControllerDialog - - Master volume - Huvudvolym + + PEAK + - - Master pitch - Huvudtonhöjd + + LFO Controller + + + + lmms::gui::PeakControllerEffectControlDialog - - Aborting project load + + BASE - - Project file contains local paths to plugins, which could be used to run malicious code. + + Base: - - Can't load project: Project file contains local paths to plugins. - Det går inte att läsa in projektet: Projektfilen innehåller lokala sökvägar till tillägg. + + AMNT + - - LMMS Error report - LMMS Felrapport + + Modulation amount: + - - (repeated %1 times) - (repetera %1 gånger) + + MULT + - - The following errors occurred while loading: - Följande fel inträffade under inläsning: + + Amount multiplicator: + - - - SongEditor - - Could not open file - Kunde inte öppna fil + + ATCK + - - Could not open file %1. You probably have no permissions to read this file. - Please make sure to have at least read permissions to the file and try again. - Det gick inte att öppna filen %1. Du har förmodligen inga behörigheter att läsa den här filen. - Se till att ha åtminstone läsbehörigheter till filen och försök igen. + + Attack: + - - Operation denied - Operation nekad + + DCAY + - - A bundle folder with that name already eists on the selected path. Can't overwrite a project bundle. Please select a different name. + + Release: - - - - Error - Fel + + TRSH + - - Couldn't create bundle folder. + + Treshold: - - Couldn't create resources folder. - Det gick inte att skapa resursmappen. + + Mute output + - - Failed to copy resources. - Det gick inte att kopiera resurser. + + Absolute value + + + + lmms::gui::PeakIndicator - - Could not write file - Kunde inte skriva fil + + -inf + + + + lmms::gui::PianoRoll - - Could not open %1 for writing. You probably are not permitted towrite to this file. Please make sure you have write-access to the file and try again. + + Note Velocity - - This %1 was created with LMMS %2 - Denna %1 har skapats med LMMS %2 + + Note Panning + - - Error in file - Fel i filen + + Mark/unmark current semitone + - - The file %1 seems to contain errors and therefore can't be loaded. - Filen %1 verkar innehålla fel och kan därför inte läsas in. + + Mark/unmark all corresponding octave semitones + - - Version difference - Versions-skillnad + + Mark current scale + - - template - mall + + Mark current chord + - - project - projekt + + Unmark all + - - Tempo - Tempo + + Select all notes on this key + - - TEMPO - TEMPO + + Note lock + - - Tempo in BPM - Tempot i BPM + + Last note + - - High quality mode - Hög kvalitet läge + + No key + - - - - Master volume - Huvudvolym + + No scale + - - - - Master pitch - Huvudtonhöjd + + No chord + - - Value: %1% - Värde: %1% + + Nudge + - - Value: %1 semitones - Värde: %1 halvtoner + + Snap + - - - SongEditorWindow - - Song-Editor - Låtredigerare + + Velocity: %1% + - - Play song (Space) - Spela låt (Mellanslag) + + Panning: %1% left + - - Record samples from Audio-device - Spela in samplingar från ljudenheten + + Panning: %1% right + - - Record samples from Audio-device while playing song or BB track - Spela in samplingar från ljudenheten medan du spelar låten eller BB-spåret + + Panning: center + - - Stop song (Space) - Stoppa låt (Mellanslag) + + Glue notes failed + - - Track actions - Spåråtgärder + + Please select notes to glue first. + - - Add beat/bassline - Lägg till takt/basgång + + Please open a clip by double-clicking on it! + - - Add sample-track - Lägg till ljudspår + + + Please enter a new value between %1 and %2: + + + + lmms::gui::PianoRollWindow - - Add automation-track - Lägg till automationsspår + + Play/pause current clip (Space) + - - Edit actions - Redigera åtgärder + + Record notes from MIDI-device/channel-piano + - - Draw mode - Ritläge + + Record notes from MIDI-device/channel-piano while playing song or pattern track + - - Knife mode (split sample clips) + + Record notes from MIDI-device/channel-piano, one step at the time - - Edit mode (select and move) - Redigeringsläge (välj och flytta) + + Stop playing of current clip (Space) + - - Timeline controls - Tidslinjekontroller + + Edit actions + - - Bar insert controls - Infogningskontroller för takt + + Draw mode (Shift+D) + - - Insert bar - Infoga takt + + Erase mode (Shift+E) + - - Remove bar - Ta bort takt + + Select mode (Shift+S) + - - Zoom controls - Zoomningskontroller + + Pitch Bend mode (Shift+T) + - - Horizontal zooming - Horisontell zoomning + + Quantize + - - Snap controls - Fäst kontroller + + Quantize positions + - - - Clip snapping size - Fäststorlek för klipp + + Quantize lengths + - - Toggle proportional snap on/off - Växla proportionell fästning av/på + + File actions + - - Base snapping size - Grundläggande fäststorlek + + Import clip + - - - StepRecorderWidget - - Hint - Ledtråd + + + Export clip + - - Move recording curser using <Left/Right> arrows - Flytta inspelningsmarkör med <Vänster/Höger>-pilarna + + Copy paste controls + - - - SubWindow - - Close - Stäng + + Cut (%1+X) + - - Maximize - Maximera + + Copy (%1+C) + - - Restore - Återställ + + Paste (%1+V) + - - - TabWidget - - - Settings for %1 - Inställningar för %1 + + Timeline controls + - - - TemplatesMenu - - New from template - Nytt från mall + + Glue + - - - TempoSyncKnob - - - Tempo Sync - Temposynkronisering + + Knife + - - No Sync - Ingen synkronisering + + Fill + - - Eight beats - Åtta takter + + Cut overlaps + - - Whole note - Hel-not + + Min length as last + - - Half note - Halvnot + + Max length as last + - - Quarter note - Fjärdedelsnot + + Zoom and note controls + - - 8th note - 8:e noten + + Horizontal zooming + - - 16th note - 16:e noten + + Vertical zooming + - - 32nd note - 32:e noten + + Quantization + - - Custom... - Anpassad... + + Note length + - - Custom - Anpassad + + Key + - - Synced to Eight Beats - Synkroniserad till Åtta Takter + + Scale + - - Synced to Whole Note - Synkroniserad till helnoten + + Chord + - - Synced to Half Note - Synkroniserad till halvnoten + + Snap mode + - - Synced to Quarter Note - Synkroniserad till fjärdedelsnoten + + Clear ghost notes + - - Synced to 8th Note - Synkroniserad till 8:e noten + + + Piano-Roll - %1 + - - Synced to 16th Note - Synkroniserad till 16:e noten + + + Piano-Roll - no clip + - - Synced to 32nd Note - Synkroniserad till 32:e noten + + + XML clip file (*.xpt *.xptz) + - - - TimeDisplayWidget - - Time units - Tidsenheter + + Export clip success + - - MIN - MIN + + Clip saved to %1 + - - SEC - SEK + + Import clip. + - - MSEC - MSEK + + You are about to import a clip, this will overwrite your current clip. Do you want to continue? + - - BAR - TAKT + + Open clip + - - BEAT - TAKT + + Import clip success + - - TICK - TICK + + Imported clip %1! + - TimeLineWidget + lmms::gui::PianoView - - Auto scrolling - Automatisk rullning + + Base note + - - Loop points - Looppunkter + + First note + - - After stopping go back to beginning - Efter at ha stannat, gå tillbaka till början + + Last note + + + + lmms::gui::PluginBrowser - - After stopping go back to position at which playing was started - Efter att ha stoppat gå tillbaka till position där spelningen startades + + Instrument Plugins + - - After stopping keep position - Efter stopp behåll positionen + + Instrument browser + - - Hint - Ledtråd + + Drag an instrument into either the Song Editor, the Pattern Editor or an existing instrument track. + - - Press <%1> to disable magnetic loop points. - Tryck på <%1> för att inaktivera magnetiska slingpunkter. + + Search + - Track - - - Mute - Tysta - + lmms::gui::PluginDescWidget - - Solo - Solo + + Send to new instrument track + - TrackContainer + lmms::gui::ProjectNotes - - Couldn't import file - Kunde inte importera filen + + Project Notes + - - Couldn't find a filter for importing file %1. -You should convert this file into a format supported by LMMS using another software. - Kunde inte hitta ett filter för att importera filen %1. -Du bör konvertera filen till ett format som stöds av LMMS genom att använda ett annat program. + + Enter project notes here + - - Couldn't open file - Kunde inte öppna filen + + Edit Actions + - - Couldn't open file %1 for reading. -Please make sure you have read-permission to the file and the directory containing the file and try again! - Kunde inte öppna filen %1 för läsning. -Se till att du har läsrättigheter för filen och mappen som innehåller filen och försök igen! + + &Undo + - - Loading project... - Läser in projekt... + + %1+Z + - - - Cancel - Avbryt + + &Redo + - - - Please wait... - Vänligen vänta... + + %1+Y + - - Loading cancelled - Inläsningen avbruten + + &Copy + - - Project loading was cancelled. - Projektinläsningen avbröts. + + %1+C + - - Loading Track %1 (%2/Total %3) - Läser in spår %1 (%2/Totalt %3) + + Cu&t + - - Importing MIDI-file... - Importerar MIDI-fil... + + %1+X + - - - Clip - - Mute - Tysta + + &Paste + - - - ClipView - - Current position - Aktuell position + + %1+V + - - Current length - Aktuell längd + + Format Actions + - - - %1:%2 (%3:%4 to %5:%6) - %1:%2 (%3:%4 till %5:%6) + + &Bold + - - Press <%1> and drag to make a copy. - Håll nere <%1> och dra för att kopiera. + + %1+B + - - Press <%1> for free resizing. - Tryck på <%1> för att ändra storleken. + + &Italic + - - Hint - Ledtråd + + %1+I + - - Delete (middle mousebutton) - Ta bort (musens mitt-knapp) + + &Underline + - - Delete selection (middle mousebutton) - Ta bort markering (mittenmusknapp) + + %1+U + - - Cut - Klipp ut + + &Left + - - Cut selection - Klipp ut markering + + %1+L + - - Merge Selection - Sammanfoga merkering + + C&enter + - - Copy - Kopiera + + %1+E + - - Copy selection - Kopiera markering + + &Right + - - Paste - Klistra in + + %1+R + - - Mute/unmute (<%1> + middle click) - Tysta/avtysta (<%1> + mittenklick) + + &Justify + - - Mute/unmute selection (<%1> + middle click) - Tysta/öppna markering (<%1> + mittenklick) + + %1+J + - - Set clip color + + &Color... + + + lmms::gui::RecentProjectsMenu - - Use track color - Använd spårfärg + + &Recently Opened Projects + - TrackContentWidget + lmms::gui::RenameDialog - - Paste - Klistra in + + Rename... + - TrackOperationsWidget + lmms::gui::ReverbSCControlDialog - - Press <%1> while clicking on move-grip to begin a new drag'n'drop action. - Tryck på <%1> medan du klickar på flytta-grepp för att börja en ny dra och släpp åtgärd. + + Input + - - Actions - Åtgärder + + Input gain: + - - - Mute - Tysta + + Size + - - - Solo - Solo + + Size: + - - After removing a track, it can not be recovered. Are you sure you want to remove track "%1"? + + Color - - Confirm removal - Bekräfta borttagning + + Color: + - - Don't ask again - Fråga inte igen + + Output + - - Clone this track - Klona detta spår + + Output gain: + + + + lmms::gui::SaControlsDialog - - Remove this track - Ta bort detta spår + + Pause + - - Clear this track - Rensa detta spår + + Pause data acquisition + - - Channel %1: %2 - FX %1: %2 + + Reference freeze + - - Assign to new mixer Channel - Koppla till ny FX-kanal + + Freeze current input as a reference / disable falloff in peak-hold mode. + - - Turn all recording on - Slå på all inspelning + + Waterfall + - - Turn all recording off - Slå av all inspelning + + Display real-time spectrogram + - - Change color - Byt färg + + Averaging + - - Reset color to default - Nollställ färg till standard + + Enable exponential moving average + - - Set random color - Ställ in slumpmässig färg + + Stereo + - - Clear clip colors + + Display stereo channels separately - - - TripleOscillatorView - - Modulate phase of oscillator 1 by oscillator 2 - Modulera fasen för oscillator 1 med oscillator 2 + + Peak hold + - - Modulate amplitude of oscillator 1 by oscillator 2 - Modulera amplitud för oscillator 1 med oscillator 2 + + Display envelope of peak values + - - Mix output of oscillators 1 & 2 - Mixa utgångarna från oscillatorerna 1 & 2 + + Logarithmic frequency + - - Synchronize oscillator 1 with oscillator 2 - Synkronisera oscillatorn 1 med oscillatorn 2 + + Switch between logarithmic and linear frequency scale + - - Modulate frequency of oscillator 1 by oscillator 2 - Modulera frekvensen för oscillator 1 med oscillator 2 + + + Frequency range + - - Modulate phase of oscillator 2 by oscillator 3 - Modulera fasen för oscillator 2 med oscillator 3 + + Logarithmic amplitude + - - Modulate amplitude of oscillator 2 by oscillator 3 - Modulera amplituden för oscillator 2 med oscillator 3 + + Switch between logarithmic and linear amplitude scale + - - Mix output of oscillators 2 & 3 - Mixa utgångarna från oscialltorerna 2 & 3 + + + Amplitude range + - - Synchronize oscillator 2 with oscillator 3 - Synkronisera oscillatorn 2 med oscillatorn 3 + + + FFT block size + - - Modulate frequency of oscillator 2 by oscillator 3 - Modulera frekvensen för oscillator 2 med oscillator 3 + + + FFT window type + - - Osc %1 volume: - Osc %1 volym: + + Envelope res. + - - Osc %1 panning: - Osc %1 panorering: + + Increase envelope resolution for better details, decrease for better GUI performance. + - - Osc %1 coarse detuning: - Osc %1 grov urstämning: + + Maximum number of envelope points drawn per pixel: + - - semitones - halvtoner + + Spectrum res. + - - Osc %1 fine detuning left: - Osc %1 fin urstämning vänster: + + Increase spectrum resolution for better details, decrease for better GUI performance. + - - - cents - hundradelar + + Maximum number of spectrum points drawn per pixel: + - - Osc %1 fine detuning right: - Osc %1 fin urstämning höger: + + Falloff factor + - - Osc %1 phase-offset: - Osc %1 fasposition: + + Decrease to make peaks fall faster. + - - - degrees - grader + + Multiply buffered value by + - - Osc %1 stereo phase-detuning: - Osc %1 stereo fasurstämning: + + Averaging weight + - - Sine wave - Sinusvåg + + Decrease to make averaging slower and smoother. + - - Triangle wave - Triangelvåg + + New sample contributes + - - Saw wave - Sågtandsvåg + + Waterfall height + - - Square wave - Fyrkantvåg + + Increase to get slower scrolling, decrease to see fast transitions better. Warning: medium CPU usage. + - - Moog-like saw wave - Moogliknande sågtandsvåg + + Number of lines to keep: + - - Exponential wave - Exponentiell våg + + Waterfall gamma + - - White noise - Vitt brus + + Decrease to see very weak signals, increase to get better contrast. + - - User-defined wave - Användardefinierad våg + + Gamma value: + - - - VecControls - - Display persistence amount - Visa avklingningsmängd + + Window overlap + - - Logarithmic scale - Logaritmisk skala + + Increase to prevent missing fast transitions arriving near FFT window edges. Warning: high CPU usage. + - - High quality - Hög kvalitet + + Number of times each sample is processed: + - - - VecControlsDialog - - HQ - HQ + + Zero padding + - - Double the resolution and simulate continuous analog-like trace. - Fördubbla upplösningen och simulera kontinuerligt analogliknande svep. + + Increase to get smoother-looking spectrum. Warning: high CPU usage. + + + + + Processing buffer is + + + + + steps larger than input block + - - Log. scale - Log.-skala + + Advanced settings + - - Display amplitude on logarithmic scale to better see small values. - Visa amplitud på logaritmisk skala för att bättre se mindre värden. + + Access advanced settings + + + + lmms::gui::SampleClipView - - Persist. - Avkling. + + Double-click to open sample + - - Trace persistence: higher amount means the trace will stay bright for longer time. - Svepavklingning: högre mängd innebär att svepet kommer att förbli ljust under en längre tid. + + Reverse sample + - - Trace persistence - Svepavklingning + + Set as ghost in automation editor + - VersionedSaveDialog + lmms::gui::SampleTrackView - - Increment version number - Ökning versionsnummer + + Mixer channel + - - Decrement version number - Minska versionsnummer + + Track volume + - - Save Options - Spara Alternativ + + Channel volume: + - - already exists. Do you want to replace it? - finns redan. Vill du ersätta den? + + VOL + - - - VestigeInstrumentView - - - Open VST plugin - Öppna VST-tillägg + + Panning + - - Control VST plugin from LMMS host - Kontroll VST-tillägg från LMMS-värd + + Panning: + - - Open VST plugin preset - Öppna VST-tilläggsförinställning + + PAN + - - Previous (-) - Tidigare (-) + + %1: %2 + + + + lmms::gui::SampleTrackWindow - - Save preset - Spara förinställning + + Sample volume + - - Next (+) - Nästa (+) + + Volume: + - - Show/hide GUI - Visa/dölj användargränssnitt + + VOL + - - Turn off all notes - Stäng av alla noter + + Panning + - - DLL-files (*.dll) - DLL-filer (*.dll) + + Panning: + - - EXE-files (*.exe) - EXE-filer (*.exe) + + PAN + - - No VST plugin loaded - Inget VST-tillägg inläst + + Mixer channel + - - Preset - Förinställning + + CHANNEL + + + + lmms::gui::SaveOptionsWidget - - by - av + + Discard MIDI connections + - - - VST plugin control - - VST tilläggskontroll + + Save As Project Bundle (with resources) + - VstEffectControlDialog + lmms::gui::SetupDialog - - Show/hide - Visa/dölj + + Settings + - - Control VST plugin from LMMS host - Kontroll VST-tillägg från LMMS-värd + + + General + - - Open VST plugin preset - Öppna VST-tilläggsförinställning + + Graphical user interface (GUI) + - - Previous (-) - Tidigare (-) + + Display volume as dBFS + - - Next (+) - Nästa (+) + + Enable tooltips + - - Save preset - Spara förinställning + + Enable master oscilloscope by default + - - - Effect by: - Effekt skapad av: + + Enable all note labels in piano roll + - - &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> - &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> + + Enable compact track buttons + - - - VstPlugin - - - The VST plugin %1 could not be loaded. - VST-tillägget %1 kunde inte läsas in. + + Enable one instrument-track-window mode + - - Open Preset - Öppna Förinställning + + Show sidebar on the right-hand side + - - - Vst Plugin Preset (*.fxp *.fxb) - Vst-tilläggsförinställning (*.fxp *.fxb) + + Let sample previews continue when mouse is released + - - : default - : standard + + Mute automation tracks during solo + - - Save Preset - Spara Förinställning + + Show warning when deleting tracks + - - .fxp - .fxp + + Show warning when deleting a mixer channel that is in use + - - .FXP - .FXP + + Dual-button + - - .FXB - .FXB + + Grab closest + - - .fxb - .fxb + + Handles + - - Loading plugin - Läser in tillägget + + Loop edit mode + - - Please wait while loading VST plugin... - Vänligen vänta medan VST-tillägget läses in... + + Projects + - - - WatsynInstrument - - Volume A1 - Volym A1 + + Compress project files by default + - - Volume A2 - Volym A2 + + Create a backup file when saving a project + - - Volume B1 - Volym B2 + + Reopen last project on startup + - - Volume B2 - Volym B2 + + Language + - - Panning A1 - Panorering A1 + + + Performance + - - Panning A2 - Panorering A2 + + Autosave + - - Panning B1 - Panorering B1 + + Enable autosave + - - Panning B2 - Panorering B2 + + Allow autosave while playing + - - Freq. multiplier A1 - Frekv. multiplikator A1 + + User interface (UI) effects vs. performance + - - Freq. multiplier A2 - Frekv. multiplikator A2 + + Smooth scroll in song editor + - - Freq. multiplier B1 - Frekv. multiplikator B1 + + Display playback cursor in AudioFileProcessor + - - Freq. multiplier B2 - Frekv. multiplikator B2 + + Plugins + - - Left detune A1 - Vänster urstämning A1 + + VST plugins embedding: + - - Left detune A2 - Vänster urstämning A2 + + No embedding + - - Left detune B1 - Vänster urstämning B1 + + Embed using Qt API + - - Left detune B2 - Vänster urstämning B2 + + Embed using native Win32 API + - - Right detune A1 - Höger urstämning A1 + + Embed using XEmbed protocol + - - Right detune A2 - Höger urstämning A2 + + Keep plugin windows on top when not embedded + - - Right detune B1 - Höger urstämning B1 + + Keep effects running even without input + - - Right detune B2 - Höger urstämning B2 + + + Audio + - - A-B Mix - A-B Mix + + Audio interface + - - A-B Mix envelope amount - A-B-mix konturmängd + + Buffer size + - - A-B Mix envelope attack - A-B-mix konturstegring + + Reset to default value + - - A-B Mix envelope hold - A-B-mix konturhåll + + + MIDI + - - A-B Mix envelope decay - A-B-mix konturavklingning + + MIDI interface + + + + + Automatically assign MIDI controller to selected track + + + + + Behavior when recording + - - A1-B2 Crosstalk - A1-B2-överhörning + + Auto-quantize notes in Piano Roll + - - A2-A1 modulation - A2-A1 modulering + + If enabled, notes will be automatically quantized when recording them from a MIDI controller. If disabled, they are always recorded at the highest possible resolution. + - - B2-B1 modulation - B2-B1 modulering + + + Paths + - - Selected graph - Vald graf + + LMMS working directory + - - - WatsynView - - - - - Volume - Volym + + VST plugins directory + - - - - - Panning - Panorering + + LADSPA plugins directories + - - - - - Freq. multiplier - Frekv.-multiplikator + + SF2 directory + - - - - - Left detune - Vänster urstämning + + Default SF2 + - - - - - - - - - cents - hundradelar + + GIG directory + - - - - - Right detune - Höger urstämning + + Theme directory + - - A-B Mix - A-B Mix + + Background artwork + - - Mix envelope amount - Mix konturmängd + + Some changes require restarting. + - - Mix envelope attack - Mix konturstegring + + OK + - - Mix envelope hold - Mix konturhåll + + Cancel + - - Mix envelope decay - Mix konturavklingning + + minutes + - - Crosstalk - Överhörning + + minute + - - Select oscillator A1 - Välj oscillator A1 + + Disabled + - - Select oscillator A2 - Välj oscillator A2 + + Autosave interval: %1 + - - Select oscillator B1 - Välj oscillator B1 + + The currently selected value is not a power of 2 (32, 64, 128, 256). Some plugins may not be available. + - - Select oscillator B2 - Välj oscillator B2 + + The currently selected value is less than or equal to 32. Some plugins may not be available. + - - Mix output of A2 to A1 - Mixa utgången från A2 till A1 + + Frames: %1 +Latency: %2 ms + - - Modulate amplitude of A1 by output of A2 - Modulera amplituden av A1 med utgången från A2 + + Choose the LMMS working directory + - - Ring modulate A1 and A2 - Ringmodulera A1 och A2 + + Choose your VST plugins directory + - - Modulate phase of A1 by output of A2 - Modulera fasen av A1 med utången för A2 + + Choose your LADSPA plugins directory + - - Mix output of B2 to B1 - Blanda utgång B2 till B1 + + Choose your SF2 directory + - - Modulate amplitude of B1 by output of B2 - Modulera amplituden av B1 med utången från B2 + + Choose your default SF2 + - - Ring modulate B1 and B2 - Ringmodulera B1 och B2 + + Choose your GIG directory + - - Modulate phase of B1 by output of B2 - Modulera fasen av B1 med utgången från B2 + + Choose your theme directory + - - - - - Draw your own waveform here by dragging your mouse on this graph. - Rita din egen vågform här genom att dra musen på den här grafen. + + Choose your background picture + + + + lmms::gui::Sf2InstrumentView - - Load waveform - Ladda vågform + + + Open SoundFont file + - - Load a waveform from a sample file - Läs in en vågform från en sampelfil + + Choose patch + - - Phase left - Fas vänster + + Gain: + - - Shift phase by -15 degrees - Skifta fasen -15 grader + + Apply reverb (if supported) + - - Phase right - Fas höger + + Room size: + - - Shift phase by +15 degrees - Skifta fasen +15 grader + + Damping: + - - - Normalize - Normalisera + + Width: + - - - Invert - Invertera + + + Level: + - - - Smooth - Jämna ut + + Apply chorus (if supported) + - - - Sine wave - Sinusvåg + + Voices: + - - - - Triangle wave - Triangelvåg + + Speed: + - - Saw wave - Sågtandsvåg + + Depth: + - - - Square wave - Fyrkantvåg + + SoundFont Files (*.sf2 *.sf3) + - Xpressive - - - Selected graph - Vald graf - + lmms::gui::SidInstrumentView - - A1 - A1 + + Volume: + - - A2 - A2 + + Resonance: + - - A3 - A3 + + + Cutoff frequency: + - - W1 smoothing - W1-utmjukning + + High-pass filter + - - W2 smoothing - W2-utmjukning + + Band-pass filter + - - W3 smoothing - W3-utmjukning + + Low-pass filter + - - Panning 1 - Panorering 1 + + Voice 3 off + - - Panning 2 - Panorering 2 + + MOS6581 SID + - - Rel trans - Rel. trans. + + MOS8580 SID + - - - XpressiveView - - Draw your own waveform here by dragging your mouse on this graph. - Rita din egen vågform här genom att dra musen på den här grafen. + + + Attack: + - - Select oscillator W1 - Välj oscillator W1 + + + Decay: + - - Select oscillator W2 - Välj oscillator W2 + + Sustain: + - - Select oscillator W3 - Välj oscillator W3 + + + Release: + - - Select output O1 - Välj utgång O1 + + Pulse Width: + - - Select output O2 - Välj utgång O2 + + Coarse: + - - Open help window - Öppna hjälpfönstret + + Pulse wave + - - - Sine wave - Sinusvåg + + Triangle wave + - - - Moog-saw wave - Moog-sågtandsvåg + + Saw wave + - - - Exponential wave - Exponentiell våg + + Noise + - - - Saw wave - Sågtandsvåg + + Sync + - - - User-defined wave - Användardefinierad våg + + Ring modulation + - - - Triangle wave - Triangelvåg + + Filtered + - - - Square wave - Fyrkantvåg + + Test + - - - White noise - Vitt brus + + Pulse width: + + + + lmms::gui::SideBarWidget - - WaveInterpolate - VågInterpolering + + Close + + + + lmms::gui::SlicerTView - - ExpressionValid - UttryckGiltig + + Slice snap + - - General purpose 1: - Allmän användning 1: + + Set slice snapping for detection + - - General purpose 2: - Allmän användning 2: + + Sync sample + - - General purpose 3: - Allmän användning 3: + + Enable BPM sync + - - O1 panning: - O1 panorering: + + Original sample BPM + - - O2 panning: - O2 panorering: + + Threshold used for slicing + - - Release transition: - Avklingningsövergång: + + Fade Out per note in milliseconds + - - Smoothness - Jämnhet + + Copy midi pattern to clipboard + - - - ZynAddSubFxInstrument - - Portamento - Portamento + + Open sample selector + - - Filter frequency - Filterfrekvens + + Reset slices + - - Filter resonance - Filterresonans + + Threshold + - - Bandwidth - Bandbredd + + Fade Out + - - FM gain - FM-förstärkning + + Reset + - - Resonance center frequency - Centerfrekvens för resonans + + Midi + - - Resonance bandwidth - Resonansbandbredd + + BPM + - - Forward MIDI control change events - Vidarebefordra MIDI-kontrollförändringshändelser + + Snap + - ZynAddSubFxView + lmms::gui::SlicerTWaveform - - Portamento: - Portamento: + + Click to load sample + + + + lmms::gui::SongEditor - - PORT - PORT + + Could not open file + - - Filter frequency: - Filterfrekvens: + + Could not open file %1. You probably have no permissions to read this file. + Please make sure to have at least read permissions to the file and try again. + - - FREQ - FREQ + + Operation denied + - - Filter resonance: - Filterresonans: + + A bundle folder with that name already eists on the selected path. Can't overwrite a project bundle. Please select a different name. + - - RES - UPPL. + + + + Error + - - Bandwidth: - Bandbredd: + + Couldn't create bundle folder. + - - BW - BW + + Couldn't create resources folder. + - - FM gain: - FM-förstärkning: + + Failed to copy resources. + - - FM GAIN - FM FÖRSTÄRKNING + + + Could not write file + - - Resonance center frequency: - Resonanscenterfrekvens: + + Could not open %1 for writing. You probably are not permitted to write to this file. Please make sure you have write-access to the file and try again. + - - RES CF - UPPL. CF + + An unknown error has occurred and the file could not be saved. + - - Resonance bandwidth: - Resonans bandbredd: + + Error in file + - - RES BW - UPPL BW + + The file %1 seems to contain errors and therefore can't be loaded. + - - Forward MIDI control changes - Vidarebefordra MIDI-kontrollförändringar + + template + - - Show GUI - Visa användargränssnitt + + project + - - - AudioFileProcessor - - Amplify - Amplifiera + + Version difference + - - Start of sample - Start på ljudfil + + This %1 was created with LMMS %2 + - - End of sample - Slut på ljudfil + + Zoom + - - Loopback point - Loopback punkt + + Tempo + - - Reverse sample - Spela baklänges + + TEMPO + - - Loop mode - Slinga-läge + + Tempo in BPM + - - Stutter - Stamning + + + + Master volume + - - Interpolation mode - Interpoleringsläge + + + + Global transposition + - - None - Ingen + + 1/%1 Bar + - - Linear - Linjär + + %1 Bars + - - Sinc - Sinc + + Value: %1% + - - Sample not found: %1 - Ljudfil hittades inte: %1 + + Value: %1 keys + - BitInvader + lmms::gui::SongEditorWindow - - Sample length - Ljudfilens längd + + Song-Editor + - - - BitInvaderView - - Sample length - Ljudfilens längd + + Play song (Space) + - - Draw your own waveform here by dragging your mouse on this graph. - Rita din egen vågform här genom att dra musen på den här grafen. + + Record samples from Audio-device + - - - Sine wave - Sinusvåg + + Record samples from Audio-device while playing song or pattern track + - - - Triangle wave - Triangelvåg + + Stop song (Space) + - - - Saw wave - Sågtandsvåg + + Track actions + - - - Square wave - Fyrkantvåg + + Add pattern-track + - - - White noise - Vitt brus + + Add sample-track + - - - User-defined wave - Användardefinierad våg + + Add automation-track + - - - Smooth waveform - Jämn vågform + + Edit actions + - - Interpolation - Interpolering + + Draw mode + - - Normalize - Normalisera + + Knife mode (split sample clips) + - - - DynProcControlDialog - - INPUT - INGÅNG + + Edit mode (select and move) + - - Input gain: - Ingångsförstärkning: + + Timeline controls + - - OUTPUT - UTGÅNG + + Bar insert controls + - - Output gain: - Utgångsförstärkning: + + Insert bar + - - ATTACK - ATTACK + + Remove bar + - - Peak attack time: - Toppattacktid: + + Zoom controls + - - RELEASE - AVKLINGNING + + + Zoom + - - Peak release time: - Toppavklingningstid: + + Snap controls + - - - Reset wavegraph - Återställ vågdiagram + + + Clip snapping size + - - - Smooth wavegraph - Jämnt vågdiagram + + Toggle proportional snap on/off + - - - Increase wavegraph amplitude by 1 dB - Öka vågdiagramamplituden med 1 dB + + Base snapping size + + + + lmms::gui::StepRecorderWidget - - - Decrease wavegraph amplitude by 1 dB - Minska vågformsamplitud med 1dB + + Hint + - - Stereo mode: maximum - Stereoläge: maximal + + Move recording curser using <Left/Right> arrows + + + + lmms::gui::StereoEnhancerControlDialog - - Process based on the maximum of both stereo channels - Hantera baserad på max för båda stereokanalerna + + WIDTH + - - Stereo mode: average - Stereoläge: medelvärdesbildning + + Width: + + + + lmms::gui::StereoMatrixControlDialog - - Process based on the average of both stereo channels - Hantera baserat på genomsnittet av båda stereokanalerna + + Left to Left Vol: + - - Stereo mode: unlinked - Stereoläge: olänkat + + Left to Right Vol: + - - Process each stereo channel independently - Hantera varje stereokanal obereoende + + Right to Left Vol: + + + + + Right to Right Vol: + + + + + lmms::gui::SubWindow + + + Close + + + + + Maximize + + + + + Restore + - DynProcControls - - - Input gain - Ingångsförstärkning - + lmms::gui::TapTempoView - - Output gain - Utgångsförstärkning + + 0 + - - Attack time - Attacktid + + + Precision + - - Release time - Avklingningstid + + Display in high precision + - - Stereo mode - Stereo-läge + + 0.0 ms + - - - graphModel - - Graph - Graf + + Mute metronome + - - - KickerInstrument - - Start frequency - Startfrekvens + + Mute + - - End frequency - Slutfrekvens + + BPM in milliseconds + - - Length - Längd + + 0 ms + - - Start distortion - Start för distorsion + + Frequency of BPM + - - End distortion - Slut för distorsion + + 0.0000 hz + - - Gain - Förstärkning + + Reset + - - Envelope slope - Konturkurva + + Reset counter and sidebar information + - - Noise - Brus + + Sync + - - Click - Klick + + Sync with project tempo + - - Frequency slope - Frekvenslutning + + %1 ms + - - Start from note - Starta från not + + %1 hz + + + + lmms::gui::TemplatesMenu - - End to note - Sluta på not + + New from template + - KickerInstrumentView + lmms::gui::TempoSyncBarModelEditor - - Start frequency: - Startfrekvens: + + + Tempo Sync + - - End frequency: - Slutfrekvens: + + No Sync + - - Frequency slope: - Frekvenslutning: + + Eight beats + - - Gain: - Förstärkning: + + Whole note + - - Envelope length: - Konturlängd: + + Half note + - - Envelope slope: - Konturkurva: + + Quarter note + - - Click: - Klick: + + 8th note + - - Noise: - Brus: + + 16th note + - - Start distortion: - Startförvrängning: + + 32nd note + - - End distortion: - Slut för distorsion: + + Custom... + - - - LadspaBrowserView - - - Available Effects - Tillgängliga effekter + + Custom + - - - Unavailable Effects - Otillgängliga effekter + + Synced to Eight Beats + - - - Instruments - Instrument + + Synced to Whole Note + - - - Analysis Tools - Analysverktyg + + Synced to Half Note + - - - Don't know - Vet inte + + Synced to Quarter Note + - - Type: - Typ: + + Synced to 8th Note + - - - LadspaDescription - - Plugins - Tillägg + + Synced to 16th Note + - - Description - Beskrivning + + Synced to 32nd Note + - LadspaPortDialog + lmms::gui::TempoSyncKnob - - Ports - Portar + + + Tempo Sync + - - Name - Namn + + No Sync + - - Rate - Värdera + + Eight beats + - - Direction - Riktning + + Whole note + - - Type - Typ + + Half note + - - Min < Default < Max - Min < Standard < Max + + Quarter note + - - Logarithmic - Logaritmisk + + 8th note + - - SR Dependent - SR-beroende + + 16th note + - - Audio - Ljud + + 32nd note + - - Control - Kontroll + + Custom... + - - Input - Ingång + + Custom + - - Output - Utgång + + Synced to Eight Beats + - - Toggled - Växlad + + Synced to Whole Note + - - Integer - Heltal + + Synced to Half Note + - - Float - Flyttal + + Synced to Quarter Note + - - - Yes - Ja + + Synced to 8th Note + + + + + Synced to 16th Note + + + + + Synced to 32nd Note + - Lb302Synth + lmms::gui::TimeDisplayWidget - - VCF Cutoff Frequency - VCF Brytfrekvens + + Time units + - - VCF Resonance - VCF-resonans + + MIN + - - VCF Envelope Mod - VCF-konturmod. + + SEC + - - VCF Envelope Decay - VCF-konturavsänkning + + MSEC + - - Distortion - Förvrängning + + BAR + - - Waveform - Vågform + + BEAT + - - Slide Decay - Avklingning för glidning + + TICK + + + + lmms::gui::TimeLineWidget - - Slide - Glidning + + Auto scrolling + - - Accent - Betoning + + Stepped auto scrolling + - - Dead - Död + + Continuous auto scrolling + - - 24dB/oct Filter - 24db/oct-filter + + Auto scrolling disabled + - - - Lb302SynthView - - Cutoff Freq: - Brytfrekv.: + + Loop points + - - Resonance: - Resonans: + + After stopping go back to beginning + - - Env Mod: - Knt.-mod.: + + After stopping go back to position at which playing was started + - - Decay: - Decay: + + After stopping keep position + + + + + Hint + + + + + Press <%1> to disable magnetic loop points. + - - 303-es-que, 24dB/octave, 3 pole filter - 303-es-liknande 24dB/oktav, 3poligt filter + + Set loop begin here + - - Slide Decay: - Glidningsavklingning: + + Set loop end here + - - DIST: - DIST: + + Loop edit mode (hold shift) + - - Saw wave - Sågtandsvåg + + Dual-button + - - Click here for a saw-wave. - Klicka här för sågtandsvåg + + Grab closest + - - Triangle wave - Triangelvåg + + Handles + + + + lmms::gui::TrackContentWidget - - Click here for a triangle-wave. - Klicka här för triangelvåg. + + Paste + + + + lmms::gui::TrackOperationsWidget - - Square wave - Fyrkantvåg + + Press <%1> while clicking on move-grip to begin a new drag'n'drop action. + - - Click here for a square-wave. - Klicka här för fyrkantvåg + + Actions + - - Rounded square wave - Avrundad fyrkantsvåg + + + Mute + - - Click here for a square-wave with a rounded end. - Klicka här för en fyrkantsvåg med rundat slut. + + + Solo + - - Moog wave - Moog-våg + + After removing a track, it can not be recovered. Are you sure you want to remove track "%1"? + - - Click here for a moog-like wave. - Klicka här för en moog-liknande våg. + + Confirm removal + - - Sine wave - Sinusvåg + + Don't ask again + - - Click for a sine-wave. - Klicka för sinusvåg + + Clone this track + - - - White noise wave - Vitt brus-våg + + Remove this track + - - Click here for an exponential wave. - Klicka här för en exponentiell våg. + + Clear this track + - - Click here for white-noise. - Klicka här för vitt brus. + + Channel %1: %2 + - - Bandlimited saw wave - Bandbegränsad sågtandsvåg + + Assign to new Mixer Channel + - - Click here for bandlimited saw wave. - Klicka här för bandbegränsad sågtandsvåg. + + Turn all recording on + - - Bandlimited square wave - Bandbegränsad fyrkantsvåg + + Turn all recording off + - - Click here for bandlimited square wave. - Klicka här för bandbegränsad fyrkantsvåg. + + Track color + - - Bandlimited triangle wave - Bandbegränsad triangelvåg + + Change + - - Click here for bandlimited triangle wave. - Klicka här för bandbegränsad triangelvåg. + + Reset + - - Bandlimited moog saw wave - Bandbegränsad moog sågtandsvåg + + Pick random + - - Click here for bandlimited moog saw wave. - Klicka här för bandbegränsad moog sågtandsvåg. + + Reset clip colors + - MalletsInstrument + lmms::gui::TripleOscillatorView - - Hardness - Hårdhet + + Modulate phase of oscillator 1 by oscillator 2 + - - Position - Position + + Modulate amplitude of oscillator 1 by oscillator 2 + - - Vibrato gain - Vibratoförstärkning + + Mix output of oscillators 1 & 2 + - - Vibrato frequency - Vibrato frekvens + + Synchronize oscillator 1 with oscillator 2 + - - Stick mix - Kvistmix + + Modulate frequency of oscillator 1 by oscillator 2 + - - Modulator - Modulator + + Modulate phase of oscillator 2 by oscillator 3 + - - Crossfade - Övertoning + + Modulate amplitude of oscillator 2 by oscillator 3 + - - LFO speed - LFO-hastighet + + Mix output of oscillators 2 & 3 + - - LFO depth - LFO-djup + + Synchronize oscillator 2 with oscillator 3 + - - ADSR - ADSR + + Modulate frequency of oscillator 2 by oscillator 3 + - - Pressure - Tryck + + Osc %1 volume: + - - Motion - Rörelse + + Osc %1 panning: + - - Speed - Hastighet + + Osc %1 coarse detuning: + - - Bowed - Med stråke + + semitones + - - Spread - Spridning + + Osc %1 fine detuning left: + - - Marimba - Marimba + + + cents + - - Vibraphone - Vibrafon + + Osc %1 fine detuning right: + - - Agogo - Agogo + + Osc %1 phase-offset: + - - Wood 1 - Trä 1 + + + degrees + - - Reso - Uppl. + + Osc %1 stereo phase-detuning: + - - Wood 2 - Trä 2 + + Sine wave + - - Beats - Takter + + Triangle wave + - - Two fixed - Två fixa + + Saw wave + - - Clump - Klump + + Square wave + - - Tubular bells - Tubklockor + + Moog-like saw wave + - - Uniform bar - Enhetlig takt + + Exponential wave + - - Tuned bar - Stämt stycke + + White noise + - - Glass - Glas + + User-defined wave + - - Tibetan bowl - Tibetansk skål + + Use alias-free wavetable oscillators. + - MalletsInstrumentView - - - Instrument - Instrument - - - - Spread - Spridning - + lmms::gui::VecControlsDialog - - Spread: - Spridning: - - - - Missing files - Saknade filer + + HQ + - - Your Stk-installation seems to be incomplete. Please make sure the full Stk-package is installed! - Din Stk-installation verkar vara ofullständig. Se till att hela Stk-paketet är installerat! + + Double the resolution and simulate continuous analog-like trace. + - - Hardness - Hårdhet + + Log. scale + - - Hardness: - Hårdhet: + + Display amplitude on logarithmic scale to better see small values. + - - Position - Position + + Persist. + - - Position: - Position: + + Trace persistence: higher amount means the trace will stay bright for longer time. + - - Vibrato gain - Vibratoförstärkning + + Trace persistence + + + + lmms::gui::VersionedSaveDialog - - Vibrato gain: - Vibratoförstärkning: + + Increment version number + - - Vibrato frequency - Vibrato frekvens + + Decrement version number + - - Vibrato frequency: - Vibrato frekvens: + + Save Options + - - Stick mix - Kvistmix + + already exists. Do you want to replace it? + + + + lmms::gui::VestigeInstrumentView - - Stick mix: - Kvistmix: + + + Open VST plugin + - - Modulator - Modulator + + Control VST plugin from LMMS host + - - Modulator: - Modulator: + + Open VST plugin preset + - - Crossfade - Övertoning + + Previous (-) + - - - Crossfade: - Övertoning: + + + Save preset + - - LFO speed - LFO-hastighet + + Next (+) + - - LFO speed: - LFO-hastighet: + + Show/hide GUI + - - LFO depth - LFO-djup + + Turn off all notes + - - LFO depth: - LFO-djup: + + DLL-files (*.dll) + - - ADSR - ADSR + + EXE-files (*.exe) + - - ADSR: - ADSR: + + SO-files (*.so) + - - Pressure - Tryck + + No VST plugin loaded + - - Pressure: - Tryck: + + Preset + - - Speed - Hastighet + + by + - - Speed: - Hastighet: + + - VST plugin control + - ManageVSTEffectView + lmms::gui::VibedView - - - VST parameter control - - VST-parameterkontroll + + Enable waveform + - - VST sync - VST-synk + + + Smooth waveform + - - - Automated - Automatiserad + + + Normalize waveform + - - Close - Stäng + + + Sine wave + - - - ManageVestigeInstrumentView - - - - VST plugin control - - VST tilläggskontroll + + + Triangle wave + - - VST Sync - VST-synk + + + Saw wave + - - - Automated - Automatiserad + + + Square wave + - - Close - Stäng + + + White noise + - - - OrganicInstrument - - Distortion - Förvrängning + + + User-defined wave + - - Volume - Volym + + String volume: + - - - OrganicInstrumentView - - Distortion: - Förvrängning: + + String stiffness: + - - Volume: - Volym: + + Pick position: + - - Randomise - Slumpa + + Pickup position: + - - - Osc %1 waveform: - Osc. %1 vågform: + + String panning: + - - Osc %1 volume: - Osc %1 volym: + + String detune: + - - Osc %1 panning: - Osc %1 panorering: + + String fuzziness: + - - Osc %1 stereo detuning - Osc. %1 stereourstämning + + String length: + - - cents - hundradelar + + Impulse Editor + - - Osc %1 harmonic: - Osc %1 harmonisk: + + Impulse + - - - PatchesDialog - - Qsynth: Channel Preset - Qsynth: Kanal förinställd + + Enable/disable string + - - Bank selector - Bankväljare + + Octave + - - Bank - Bank + + String + + + + lmms::gui::VstEffectControlDialog - - Program selector - Programväljare + + Show/hide + - - Patch - Inställning + + Control VST plugin from LMMS host + - - Name - Namn + + Open VST plugin preset + - - OK - OK + + Previous (-) + - - Cancel - Avbryt + + Next (+) + - - - Sf2Instrument - - Bank - Bank + + Save preset + - - Patch - Inställning + + + Effect by: + - - Gain - Förstärkning + + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> + + + + lmms::gui::WatsynView - - Reverb - Reverb + + + + + Volume + - - Reverb room size - Rumsstorlek för reverb + + + + + Panning + - - Reverb damping - Dämpning för reverb + + + + + Freq. multiplier + - - Reverb width - Bredd för reverb + + + + + Left detune + - - Reverb level - Nivå för reverb + + + + + + + + + cents + - - Chorus - Korus + + + + + Right detune + - - Chorus voices - Korus-röster + + A-B Mix + - - Chorus level - Korus-nivå + + Mix envelope amount + - - Chorus speed - Korus-hastighet + + Mix envelope attack + - - Chorus depth - Korus-djup + + Mix envelope hold + - - A soundfont %1 could not be loaded. - En SoundFont %1 kunde inte läsas in. + + Mix envelope decay + - - - Sf2InstrumentView - - - Open SoundFont file - Öppna SoundFont-fil + + Crosstalk + - - Choose patch - Välj inställning + + Select oscillator A1 + - - Gain: - Förstärkning: + + Select oscillator A2 + - - Apply reverb (if supported) - Applicera reverb (om det stöds) + + Select oscillator B1 + - - Room size: - Rumstorlek: + + Select oscillator B2 + - - Damping: - Dämpning: + + Mix output of A2 to A1 + - - Width: - Bredd: + + Modulate amplitude of A1 by output of A2 + - - - Level: - Nivå: + + Ring modulate A1 and A2 + - - Apply chorus (if supported) - Tillämpa korus (om det stöds) + + Modulate phase of A1 by output of A2 + - - Voices: - Röster: + + Mix output of B2 to B1 + - - Speed: - Hastighet: + + Modulate amplitude of B1 by output of B2 + - - Depth: - Djup: + + Ring modulate B1 and B2 + - - SoundFont Files (*.sf2 *.sf3) - SoundFont-filer (*.sf2 *.sf3) + + Modulate phase of B1 by output of B2 + - - - SfxrInstrument - - Wave - Våg + + + + + Draw your own waveform here by dragging your mouse on this graph. + - - - StereoEnhancerControlDialog - - WIDTH - BREDD + + Load waveform + - - Width: - Bredd: + + Load a waveform from a sample file + - - - StereoEnhancerControls - - Width - Bredd + + Phase left + - - - StereoMatrixControlDialog - - Left to Left Vol: - Vänster till Vänster Vol.: + + Shift phase by -15 degrees + - - Left to Right Vol: - Vänster till Höger Vol.: + + Phase right + - - Right to Left Vol: - Höger till Vänster Vol.: + + Shift phase by +15 degrees + - - Right to Right Vol: - Höger till Höger vol.: + + + Normalize + - - - StereoMatrixControls - - Left to Left - Vänster till Vänster + + + Invert + - - Left to Right - Vänster till Höger + + + Smooth + - - Right to Left - Höger till Vänster + + + Sine wave + - - Right to Right - Höger till Höger + + + + Triangle wave + - - - VestigeInstrument - - Loading plugin - Läser in plugin + + Saw wave + - - Please wait while loading the VST plugin... - Vänligen vänta medan VST-tillägg läses in... + + + Square wave + - Vibed + lmms::gui::WaveShaperControlDialog - - String %1 volume - Sträng %1 volym + + INPUT + - - String %1 stiffness - Sträng %1 styvhet + + Input gain: + - - Pick %1 position - Välj %1 position + + OUTPUT + - - Pickup %1 position - Mikrofon %1-position + + Output gain: + - - String %1 panning - Sträng %1 panorering + + + Reset wavegraph + - - String %1 detune - Sträng %1 urstämning + + + Smooth wavegraph + - - String %1 fuzziness - Sträng %1-luddighet + + + Increase wavegraph amplitude by 1 dB + - - String %1 length - Sträng %1-längd + + + Decrease wavegraph amplitude by 1 dB + - - Impulse %1 - Impuls %1 + + Clip input + - - String %1 - Sträng %1 + + Clip input signal to 0 dB + - VibedView - - - String volume: - Strängvolym: - - - - String stiffness: - Strängstyvhet: - + lmms::gui::XpressiveView - - Pick position: - Plektrumposition: - - - - Pickup position: - Mikrofonposition: + + Draw your own waveform here by dragging your mouse on this graph. + - - String panning: - Strängpanorering: + + Select oscillator W1 + - - String detune: - Strängurstämning: + + Select oscillator W2 + - - String fuzziness: - Strängluddighet: + + Select oscillator W3 + - - String length: - Stränglängd: + + Select output O1 + - - Impulse - Impuls + + Select output O2 + - - Octave - Oktav + + Open help window + - - Impulse Editor - Impulse Editor + + + Sine wave + - - Enable waveform - Aktivera vågform + + + Moog-saw wave + - - Enable/disable string - Aktivera/inaktivera sträng + + + Exponential wave + - - String - Sträng + + + Saw wave + - - - Sine wave - Sinusvåg + + + User-defined wave + - - + + Triangle wave - Triangelvåg - - - - - Saw wave - Sågtandsvåg + - - + + Square wave - Fyrkantvåg + - - + + White noise - Vitt brus - - - - - User-defined wave - Användardefinierad våg + - - - Smooth waveform - Jämn vågform + + WaveInterpolate + - - - Normalize waveform - Normalisera vågform + + ExpressionValid + - - - VoiceObject - - Voice %1 pulse width - Röst %1 pulsbredd + + General purpose 1: + - - Voice %1 attack - Röst %1 attack + + General purpose 2: + - - Voice %1 decay - Röst %1 avklingning + + General purpose 3: + - - Voice %1 sustain - Röst %1 håll + + O1 panning: + - - Voice %1 release - Röst %1 avklingning + + O2 panning: + - - Voice %1 coarse detuning - Röst %1 grovurstämning + + Release transition: + - - Voice %1 wave shape - Röst %1 vågform + + Smoothness + + + + lmms::gui::ZynAddSubFxView - - Voice %1 sync - Röst %1 synk + + Portamento: + - - Voice %1 ring modulate - Röst %1 ringmodulering + + PORT + - - Voice %1 filtered - Röst %1 filtrerad + + Filter frequency: + - - Voice %1 test - Röst %1 test + + FREQ + - - - WaveShaperControlDialog - - INPUT - INGÅNG + + Filter resonance: + - - Input gain: - Ingångsförstärkning: + + RES + - - OUTPUT - UTGÅNG + + Bandwidth: + - - Output gain: - Utgångsförstärkning: + + BW + - - - Reset wavegraph - Återställ vågdiagram + + FM gain: + - - - Smooth wavegraph - Jämnt vågdiagram + + FM GAIN + - - - Increase wavegraph amplitude by 1 dB - Öka vågdiagramamplituden med 1 dB + + Resonance center frequency: + - - - Decrease wavegraph amplitude by 1 dB - Minska vågformsamplitud med 1dB + + RES CF + - - Clip input - Klipp ingång + + Resonance bandwidth: + - - Clip input signal to 0 dB - Klipp ingångssignal till 0 dB + + RES BW + - - - WaveShaperControls - - Input gain - Ingångsförstärkning + + Forward MIDI control changes + - - Output gain - Utgångsförstärkning + + Show GUI + - + \ No newline at end of file diff --git a/data/locale/tr.ts b/data/locale/tr.ts index b899337a543..0c49ea92607 100644 --- a/data/locale/tr.ts +++ b/data/locale/tr.ts @@ -1,4 +1,4 @@ - + AboutDialog @@ -70,954 +70,187 @@ LMMS'yi başka bir dilde çevirmekle ilgileniyorsanız veya mevcut çeviril - AmplifierControlDialog + AboutJuceDialog - - VOL - SES - - - - Volume: - Ses Düzeyi: - - - - PAN - PAN - - - - Panning: - Kaydırma: - - - - LEFT - SOL - - - - Left gain: - Sol kazanç: - - - - RIGHT - SAĞ - - - - Right gain: - Sağ kazanç: - - - - AmplifierControls - - - Volume - Ses Düzeyi - - - - Panning - Kaydırma - - - - Left gain - Sol kazanç - - - - Right gain - Sağ kazanç - - - - AudioAlsaSetupWidget - - - DEVICE - AYGIT - - - - CHANNELS - KANALLAR - - - - AudioFileProcessorView - - - Open sample - Örnek açın - - - - Reverse sample - Örneği ters çevir - - - - Disable loop - Döngüyü kapat - - - - Enable loop - Döngüyü aç - - - - Enable ping-pong loop - Ping-pong döngüsünü etkinleştir - - - - Continue sample playback across notes - Örneği notalar arasında oynatmaya devam et - - - - Amplify: - Güçlendirin: - - - - Start point: - Başlangıç noktası: - - - - End point: - Bitiş noktası: - - - - Loopback point: - Geri döngü noktası: - - - - AudioFileProcessorWaveView - - - Sample length: - Örnek uzunluğu: - - - - AudioJack - - - JACK client restarted - JACK istemcisi yeniden başlatıldı - - - - LMMS was kicked by JACK for some reason. Therefore the JACK backend of LMMS has been restarted. You will have to make manual connections again. - LMMS bir nedenden ötürü JACK tarafından sistemden atıldı. Bundan dolayı LMMS'in JACK altyapısı yeniden başlatıldı. Bağlantıları yeniden elle yapmanız gerekecek. + + About JUCE + - - JACK server down - JACK sunucusu kapalı + + <b>About JUCE</b> + - - The JACK server seems to have been shutdown and starting a new instance failed. Therefore LMMS is unable to proceed. You should save your project and restart JACK and LMMS. - JACK sunucusu kapanmış gibi görünüyor ve yeni bir örnek başlatılamadı. Bu nedenle LMMS devam edemiyor. Projenizi kaydetmeli, JACK ve LMMS'i yeniden başlatmalısınız. + + This program uses JUCE version 3.x.x. + - - Client name - İstemci adı + + JUCE is an open-source cross-platform C++ application framework for creating high quality desktop and mobile applications. + +The core JUCE modules (juce_audio_basics, juce_audio_devices, juce_core and juce_events) are permissively licensed under the terms of the ISC license. +Other modules are covered by a GNU GPL 3.0 license. + +Copyright (C) 2022 Raw Material Software Limited. + - - Channels - Kanallar + + This program uses JUCE version + - AudioOss + AudioDeviceSetupWidget - - Device - Aygıt - - - - Channels - Kanallar + + [System Default] + - AudioPortAudio::setupWidget + CarlaAboutW - - Backend - Arka uç + + About Carla + Carla hakkında - - Device - Cihaz + + About + Hakkında - - - AudioPulseAudio - - Device - Cihaz + + About text here + Buradaki metin hakkında - - Channels - Kanallar + + Extended licensing here + Genişletilmiş lisans burada - - - AudioSdl::setupWidget - - Device - Aygıt + + Artwork + Yapıt - - - AudioSndio - - Device - Aygıt + + Using KDE Oxygen icon set, designed by Oxygen Team. + Oxygen Team tarafından tasarlanan KDE Oxygen simge setini kullanma. - - Channels - Kanallar + + Contains some knobs, backgrounds and other small artwork from Calf Studio Gear, OpenAV and OpenOctave projects. + Calf Studio Gear, OpenAV ve OpenOctave projelerinden bazı düğmeler, arka planlar ve diğer küçük sanat eserleri içerir. - - - AudioSoundIo::setupWidget - - Backend - Arka uç + + VST is a trademark of Steinberg Media Technologies GmbH. + VST, Steinberg Media Technologies GmbH'nin ticari markasıdır. - - Device - Aygıt + + Special thanks to António Saraiva for a few extra icons and artwork! + Birkaç ekstra simge ve sanat eseri için António Saraiva'ya özel teşekkürler! - - - AutomatableModel - - &Reset (%1%2) - &Sıfırla (%1%2) + + The LV2 logo has been designed by Thorsten Wilms, based on a concept from Peter Shorthose. + LV2 logosu, Peter Shorthose'un bir konseptine dayalı olarak Thorsten Wilms tarafından tasarlanmıştır. - - &Copy value (%1%2) - &Değeri kopyala (%1%2) + + MIDI Keyboard designed by Thorsten Wilms. + Thorsten Wilms tarafından tasarlanan MIDI Klavye. - - &Paste value (%1%2) - &Değeri yapıştır (%1%2) + + Carla, Carla-Control and Patchbay icons designed by DoosC. + DoosC tarafından tasarlanan Carla, Carla-Control ve Patchbay simgeleri. - - &Paste value - &Değeri yapıştır + + Features + Özellikler - - Edit song-global automation - Global şarkı otomasyonunu düzenle + + AU/AudioUnit: + AU/Ses Ünitesi: - - Remove song-global automation - Global şarkı otomasyonunu kaldır + + LADSPA: + LADSPA: - - Remove all linked controls - Tüm bağlantılı kontrolleri kaldır + + + + + + + + + TextLabel + YazıEtiketi - - Connected to %1 - Şuna bağlı: %1 + + VST2: + VST2: - - Connected to controller - Kontrolöre bağlı + + DSSI: + DSSI: - - Edit connection... - Bağlantıyı düzenle... + + LV2: + LV2: - - Remove connection - Bağlantıyı kaldır + + VST3: + VST3: - - Connect to controller... - Kontrolöre bağla... + + OSC + OSC - - - AutomationEditor - - Edit Value - Değeri Düzenleyin + + Host URLs: + Barındırma URL'leri: - - New outValue - Yeni çıkış değeri + + Valid commands: + Geçerli komutlar: - - New inValue - Yeni giriş Değeri + + valid osc commands here + burada geçerli osc komutları - - Please open an automation clip with the context menu of a control! - Lütfen bir kontrolün içerik menüsü ile bir otomasyon modeli açın! + + Example: + Örnek: - - - AutomationEditorWindow - - Play/pause current clip (Space) - Seçili bölümü oynat/durdur (Boşluk Tuşu) + + License + Lisans - - Stop playing of current clip (Space) - Seçili modeli oynatmayı durdur (Boşluk Tuşu) - - - - Edit actions - İşlemleri düzenle - - - - Draw mode (Shift+D) - Çizim modu (Shift+D) - - - - Erase mode (Shift+E) - Silgi modu (Shift+E) - - - - Draw outValues mode (Shift+C) - Değerleri çiz modu (Shift+C) - - - - Flip vertically - Dikey çevir - - - - Flip horizontally - Yatay çevir - - - - Interpolation controls - Enterpolasyon kontrolleri - - - - Discrete progression - Kesikli ilerleme - - - - Linear progression - Doğrusal ilerleme - - - - Cubic Hermite progression - Kübik Hermite ilerleme - - - - Tension value for spline - Sapma için gerilim değeri - - - - Tension: - Gerginlik: - - - - Zoom controls - Yakınlaştırma kontrolleri - - - - Horizontal zooming - Yatay yakınlaştırma - - - - Vertical zooming - Dikey yakınlaştırma - - - - Quantization controls - Niceleme kontrolleri - - - - Quantization - Niceleme - - - - - Automation Editor - no clip - Ayarkayıt Düzenleyici - oluşturulmuş bölüm yok - - - - - Automation Editor - %1 - Ayarkayıt Düzenleyici - %1 - - - - Model is already connected to this clip. - Model zaten bu desene bağlanmış. - - - - AutomationClip - - - Drag a control while pressing <%1> - Kontrollerden birini, <%1> tuşuna basılı tutuyorken kıpırdatın - - - - AutomationClipView - - - Open in Automation editor - Ayarkayıt Düzenleyici'de aç - - - - Clear - Temizle - - - - Reset name - İsmini sıfırla - - - - Change name - İsmini değiştir - - - - Set/clear record - Kayıdı başlat/durdur - - - - Flip Vertically (Visible) - Dikey Yönde Çevir (Görünür) - - - - Flip Horizontally (Visible) - Yatay Yönde Çevir (Görünür) - - - - %1 Connections - %1 Bağlantı - - - - Disconnect "%1" - Şunun bağlantısını kes: "%1" - - - - Model is already connected to this clip. - Model zaten bu desene bağlanmış. - - - - AutomationTrack - - - Automation track - Ayarkayıt parçası - - - - PatternEditor - - - Beat+Bassline Editor - Beat+Bassline Düzenleyici - - - - Play/pause current beat/bassline (Space) - Seçili beat/bassline'ı oynat/durdur (Boşluk Tuşu) - - - - Stop playback of current beat/bassline (Space) - Seçili beat/bassline'ı oynatmayı durdur (Boşluk Tuşu) - - - - Beat selector - Seçici vurgusu - - - - Track and step actions - Eylemleri izleyin ve adımlayın - - - - Add beat/bassline - Beat/bassline ekle - - - - Clone beat/bassline clip - Klon vuruşu / bas hattı deseni - - - - Add sample-track - Örnek parça ekle - - - - Add automation-track - Ayarkayıt parçası ekle - - - - Remove steps - Kısalt - - - - Add steps - Uzat - - - - Clone Steps - Klon Adımları - - - - PatternClipView - - - Open in Beat+Bassline-Editor - Beat+Bassline Düzenleyici'de aç - - - - Reset name - İsmini sıfırla - - - - Change name - İsmini değiştir - - - - PatternTrack - - - Beat/Bassline %1 - Beat/Bassline %1 - - - - Clone of %1 - Kopya %1 - - - - BassBoosterControlDialog - - - FREQ - FREK - - - - Frequency: - Frekans: - - - - GAIN - GAIN - - - - Gain: - Kazanç: - - - - RATIO - ORAN - - - - Ratio: - Oran: - - - - BassBoosterControls - - - Frequency - Frekans - - - - Gain - Kazanç - - - - Ratio - Oran - - - - BitcrushControlDialog - - - IN - IN - - - - OUT - OUT - - - - - GAIN - GAIN - - - - Input gain: - Giriş kazancı: - - - - NOISE - PARAZİT - - - - Input noise: - Giriş gürültüsü: - - - - Output gain: - Çıkış kazancı: - - - - CLIP - KIRP - - - - Output clip: - Çıktı klibi: - - - - Rate enabled - Oran etkinleştirildi - - - - Enable sample-rate crushing - Örnek hızında ezmeyi etkinleştirin - - - - Depth enabled - Derinlik etkinleştirildi - - - - Enable bit-depth crushing - Bit derinliğinde ezmeyi etkinleştirin - - - - FREQ - FREK - - - - Sample rate: - Örnekleme oranı: - - - - STEREO - STEREO - - - - Stereo difference: - Stereo farklılığı: - - - - QUANT - MİKTAR - - - - Levels: - Düzey: - - - - BitcrushControls - - - Input gain - Giriş kazancı - - - - Input noise - Giriş gürültüsü - - - - Output gain - Çıkış kazancı - - - - Output clip - Çıktı klibi - - - - Sample rate - Örnekleme oranı - - - - Stereo difference - Stereo farkı - - - - Levels - Seviyeler - - - - Rate enabled - Oran etkinleştirildi - - - - Depth enabled - Derinlik etkinleştirildi - - - - CarlaAboutW - - - About Carla - Carla hakkında - - - - About - Hakkında - - - - About text here - Buradaki metin hakkında - - - - Extended licensing here - Genişletilmiş lisans burada - - - - Artwork - Yapıt - - - - Using KDE Oxygen icon set, designed by Oxygen Team. - Oxygen Team tarafından tasarlanan KDE Oxygen simge setini kullanma. - - - - Contains some knobs, backgrounds and other small artwork from Calf Studio Gear, OpenAV and OpenOctave projects. - Calf Studio Gear, OpenAV ve OpenOctave projelerinden bazı düğmeler, arka planlar ve diğer küçük sanat eserleri içerir. - - - - VST is a trademark of Steinberg Media Technologies GmbH. - VST, Steinberg Media Technologies GmbH'nin ticari markasıdır. - - - - Special thanks to António Saraiva for a few extra icons and artwork! - Birkaç ekstra simge ve sanat eseri için António Saraiva'ya özel teşekkürler! - - - - The LV2 logo has been designed by Thorsten Wilms, based on a concept from Peter Shorthose. - LV2 logosu, Peter Shorthose'un bir konseptine dayalı olarak Thorsten Wilms tarafından tasarlanmıştır. - - - - MIDI Keyboard designed by Thorsten Wilms. - Thorsten Wilms tarafından tasarlanan MIDI Klavye. - - - - Carla, Carla-Control and Patchbay icons designed by DoosC. - DoosC tarafından tasarlanan Carla, Carla-Control ve Patchbay simgeleri. - - - - Features - Özellikler - - - - AU/AudioUnit: - AU/Ses Ünitesi: - - - - LADSPA: - LADSPA: - - - - - - - - - - - TextLabel - YazıEtiketi - - - - VST2: - VST2: - - - - DSSI: - DSSI: - - - - LV2: - LV2: - - - - VST3: - VST3: - - - - OSC - OSC - - - - Host URLs: - Barındırma URL'leri: - - - - Valid commands: - Geçerli komutlar: - - - - valid osc commands here - burada geçerli osc komutları - - - - Example: - Örnek: - - - - License - Lisans - - - + GNU GENERAL PUBLIC LICENSE Version 2, June 1991 @@ -1582,15050 +815,18241 @@ BU TÜR ZARARLARIN OLASILIĞI. - - OSC Bridge Version - OSC Köprü Sürümü + + OSC Bridge Version + OSC Köprü Sürümü + + + + Plugin Version + Eklenti Sürümü + + + + <br>Version %1<br>Carla is a fully-featured audio plugin host%2.<br><br>Copyright (C) 2011-2019 falkTX<br> + <br>Sürüm %1<br>Carla, tam özellikli bir ses eklentisi barındırıcısıdır %2.<br><br>Telif Hakkı (C) 2011-2019 falkTX<br> + + + + + (Engine not running) + (Motor çalışmıyor) + + + + Everything! (Including LRDF) + Herşey! (LRDF dahil) + + + + Everything! (Including CustomData/Chunks) + Herşey! (Özel Veriler / Parçalar Dahil) + + + + About 110&#37; complete (using custom extensions)<br/>Implemented Feature/Extensions:<ul><li>http://lv2plug.in/ns/ext/atom</li><li>http://lv2plug.in/ns/ext/buf-size</li><li>http://lv2plug.in/ns/ext/data-access</li><li>http://lv2plug.in/ns/ext/event</li><li>http://lv2plug.in/ns/ext/instance-access</li><li>http://lv2plug.in/ns/ext/log</li><li>http://lv2plug.in/ns/ext/midi</li><li>http://lv2plug.in/ns/ext/options</li><li>http://lv2plug.in/ns/ext/parameters</li><li>http://lv2plug.in/ns/ext/port-props</li><li>http://lv2plug.in/ns/ext/presets</li><li>http://lv2plug.in/ns/ext/resize-port</li><li>http://lv2plug.in/ns/ext/state</li><li>http://lv2plug.in/ns/ext/time</li><li>http://lv2plug.in/ns/ext/uri-map</li><li>http://lv2plug.in/ns/ext/urid</li><li>http://lv2plug.in/ns/ext/worker</li><li>http://lv2plug.in/ns/extensions/ui</li><li>http://lv2plug.in/ns/extensions/units</li><li>http://home.gna.org/lv2dynparam/rtmempool/v1</li><li>http://kxstudio.sf.net/ns/lv2ext/external-ui</li><li>http://kxstudio.sf.net/ns/lv2ext/programs</li><li>http://kxstudio.sf.net/ns/lv2ext/props</li><li>http://kxstudio.sf.net/ns/lv2ext/rtmempool</li><li>http://ll-plugins.nongnu.org/lv2/ext/midimap</li><li>http://ll-plugins.nongnu.org/lv2/ext/miditype</li></ul> + Hakkında 110&#37; tamam (özel uzantılar kullanarak)<br/>Uygulanan Özellik/Uzantılar:<ul><li>http://lv2plug.in/ns/ext/atom</li><li>http://lv2plug.in/ns/ext/buf-size</li><li>http://lv2plug.in/ns/ext/data-access</li><li>http://lv2plug.in/ns/ext/event</li><li>http://lv2plug.in/ns/ext/instance-access</li><li>http://lv2plug.in/ns/ext/log</li><li>http://lv2plug.in/ns/ext/midi</li><li>http://lv2plug.in/ns/ext/options</li><li>http://lv2plug.in/ns/ext/parameters</li><li>http://lv2plug.in/ns/ext/port-props</li><li>http://lv2plug.in/ns/ext/presets</li><li>http://lv2plug.in/ns/ext/resize-port</li><li>http://lv2plug.in/ns/ext/state</li><li>http://lv2plug.in/ns/ext/time</li><li>http://lv2plug.in/ns/ext/uri-map</li><li>http://lv2plug.in/ns/ext/urid</li><li>http://lv2plug.in/ns/ext/worker</li><li>http://lv2plug.in/ns/extensions/ui</li><li>http://lv2plug.in/ns/extensions/units</li><li>http://home.gna.org/lv2dynparam/rtmempool/v1</li><li>http://kxstudio.sf.net/ns/lv2ext/external-ui</li><li>http://kxstudio.sf.net/ns/lv2ext/programs</li><li>http://kxstudio.sf.net/ns/lv2ext/props</li><li>http://kxstudio.sf.net/ns/lv2ext/rtmempool</li><li>http://ll-plugins.nongnu.org/lv2/ext/midimap</li><li>http://ll-plugins.nongnu.org/lv2/ext/miditype</li></ul> + + + + + + Using Juce host + Juce ana bilgisayarını kullanma + + + + About 85% complete (missing vst bank/presets and some minor stuff) + Yaklaşık % 85 tamamlandı (eksik vst bankası / ön ayarları ve bazı küçük şeyler) + + + + CarlaHostW + + + MainWindow + AnaPencere + + + + Rack + Raf + + + + Patchbay + Yama yuvası + + + + Logs + Loglar + + + + Loading... + Yükleniyor... + + + + Save + + + + + Clear + + + + + Ctrl+L + + + + + Auto-Scroll + + + + + Buffer Size: + Arabellek Boyutu: + + + + Sample Rate: + Örnekleme Oranı: + + + + ? Xruns + ? Xruns + + + + DSP Load: %p% + EKR Yükü: %p% + + + + &File + &Dosya + + + + &Engine + &Motor + + + + &Plugin + &Eklenti + + + + Macros (all plugins) + Makrolar (tüm eklentiler) + + + + &Canvas + &Tuval + + + + Zoom + Büyütme + + + + &Settings + &Ayarlar + + + + &Help + &Yardım + + + + Tool Bar + + + + + Disk + Disk + + + + + Home + Ana Sayfa + + + + Transport + Aktarım + + + + Playback Controls + Oynatma Kontrolleri + + + + Time Information + Zaman Bilgileri + + + + Frame: + Çerçeve: + + + + 000'000'000 + 000'000'000 + + + + Time: + Zaman: + + + + 00:00:00 + 00:00:00 + + + + BBT: + BBT: + + + + 000|00|0000 + 000|00|0000 + + + + Settings + Ayarlar + + + + BPM + BPM + + + + Use JACK Transport + JACK Transport'u kullanın + + + + Use Ableton Link + Ableton Bağlantısını kullanın + + + + &New + &Yeni + + + + Ctrl+N + Ctrl+N + + + + &Open... + &Aç... + + + + + Open... + Aç... + + + + Ctrl+O + Ctrl+O + + + + &Save + &Kaydet + + + + Ctrl+S + CTRL + S + + + + Save &As... + &Farklı Kaydet... + + + + + Save As... + Farklı Kaydet... + + + + Ctrl+Shift+S + Ctrl+Shift+S + + + + &Quit + &Çıkış + + + + Ctrl+Q + Ctrl+Q + + + + &Start + &Başlat + + + + F5 + F5 + + + + St&op + Du&rdur + + + + F6 + F6 + + + + &Add Plugin... + &Eklenti Ekle... + + + + Ctrl+A + Ctrl+A + + + + &Remove All + Tümünü &Kaldır + + + + Enable + Etkinleştir + + + + Disable + Devre Dışı Bırak + + + + 0% Wet (Bypass) + % 0 Islak (Baypas) + + + + 100% Wet + % 100 Islak + + + + 0% Volume (Mute) + % 0 Ses (Sessiz) + + + + 100% Volume + % 100 Hacim + + + + Center Balance + Merkez Dengesi + + + + &Play + &Oynat + + + + Ctrl+Shift+P + Ctrl+ÜstKrkt+P + + + + &Stop + &Durdur + + + + Ctrl+Shift+X + Ctrl+Shift+X + + + + &Backwards + &Geriye doğru + + + + Ctrl+Shift+B + Ctrl+Shift+B + + + + &Forwards + &İleriye + + + + Ctrl+Shift+F + Ctrl+Shift+F + + + + &Arrange + &Düzenleme + + + + Ctrl+G + Ctrl+G + + + + + &Refresh + &Yenile + + + + Ctrl+R + Ctrl +R + + + + Save &Image... + &Görüntüyü Kaydet... + + + + Auto-Fit + Otomatik Sığdır + + + + Zoom In + Yakınlaştır + + + + Ctrl++ + Ctrl++ + + + + Zoom Out + Uzaklaştır + + + + Ctrl+- + Ctrl+- + + + + Zoom 100% + % 100 Yakınlaştır + + + + Ctrl+1 + Ctrl +1 + + + + Show &Toolbar + &Araç Çubuğunu Göster + + + + &Configure Carla + &Carla'yı yapılandır + + + + &About + &Hakkında + + + + About &JUCE + &JUCE Hakkında + + + + About &Qt + &Qt Hakkında + + + + Show Canvas &Meters + Tuval &Ölçerleri Göster + + + + Show Canvas &Keyboard + Tuval &Klavyeyi Göster + + + + Show Internal + Dahili Göster + + + + Show External + Harici Göster + + + + Show Time Panel + Zaman Panelini Göster + + + + Show &Side Panel + &Yan Paneli Göster + + + + Ctrl+P + + + + + &Connect... + &Bağlan... + + + + Compact Slots + Kompakt Yuvalar + + + + Expand Slots + Yuvaları Genişlet + + + + Perform secret 1 + Gizli 1'i gerçekleştir + + + + Perform secret 2 + Gizli 2'yi gerçekleştir + + + + Perform secret 3 + Gizli 3'ü gerçekleştir + + + + Perform secret 4 + Gizli 4'ü gerçekleştir + + + + Perform secret 5 + Gizli 5'i gerçekleştir + + + + Add &JACK Application... + &JACK Uygulaması Ekle... + + + + &Configure driver... + Sürücüyü &yapılandırın... + + + + Panic + Panik + + + + Open custom driver panel... + Özel sürücü panelini aç... + + + + Save Image... (2x zoom) + + + + + Save Image... (4x zoom) + + + + + Copy as Image to Clipboard + + + + + Ctrl+Shift+C + + + + + CarlaHostWindow + + + Export as... + Farklı dışa aktar... + + + + + + + Error + Hata + + + + Failed to load project + Proje yüklenemedi + + + + Failed to save project + Proje kaydedilemedi + + + + Quit + Çık + + + + Are you sure you want to quit Carla? + Carla'yı bırakmak istediğinden emin misin? + + + + Could not connect to Audio backend '%1', possible reasons: +%2 + '%1' Ses arka ucuna bağlanılamadı, olası nedenler: +%2 + + + + Could not connect to Audio backend '%1' + Ses arka ucuna '%1' bağlanılamadı + + + + Warning + Uyarı + + + + There are still some plugins loaded, you need to remove them to stop the engine. +Do you want to do this now? + Hala yüklü bazı eklentiler var, motoru durdurmak için bunları kaldırmanız gerekiyor. +Bunu şimdi yapmak istiyor musun? + + + + CarlaSettingsW + + + Settings + Ayarlar + + + + main + ana + + + + canvas + tuval + + + + engine + motor + + + + osc + osc + + + + file-paths + dosya yolları + + + + plugin-paths + eklenti yolları + + + + wine + wine + + + + experimental + deneysel + + + + Widget + Araç + + + + + Main + Ana + + + + + Canvas + Tuval + + + + + Engine + Motor + + + + File Paths + Dosya Yolları + + + + Plugin Paths + Eklenti Yolları + + + + Wine + Wine + + + + + Experimental + Deneysel + + + + <b>Main</b> + <b>Ana</b> + + + + Paths + Yollar + + + + Default project folder: + Varsayılan proje klasörü: + + + + Interface + Arayüz + + + + Use "Classic" as default rack skin + + + + + Interface refresh interval: + Arayüz yenileme aralığı: + + + + + ms + ms + + + + Show console output in Logs tab (needs engine restart) + Konsol çıktısını Günlükler sekmesinde göster (motorun yeniden başlatılması gerekir) + + + + Show a confirmation dialog before quitting + Çıkmadan önce bir onay iletişim kutusu göster + + + + + Theme + Tema + + + + Use Carla "PRO" theme (needs restart) + Carla "PRO" temasını kullanın (yeniden başlatılması gerekiyor) + + + + Color scheme: + Renk düzeni: + + + + Black + Siyah + + + + System + Sistem + + + + Enable experimental features + Deneysel özellikleri etkinleştirin + + + + <b>Canvas</b> + <b>Tuval</b> + + + + Bezier Lines + Bezier Hatları + + + + Theme: + Tema: + + + + Size: + Boyut: + + + + 775x600 + 775x600 + + + + 1550x1200 + 1550x1200 + + + + 3100x2400 + 3100x2400 + + + + 4650x3600 + 4650x3600 + + + + 6200x4800 + 6200x4800 + + + + 12400x9600 + + + + + Options + Seçenekler + + + + Auto-hide groups with no ports + Bağlantı noktası olmayan grupları otomatik gizle + + + + Auto-select items on hover + Fareyle üzerine gelindiğinde öğeleri otomatik seç + + + + Basic eye-candy (group shadows) + Temel göz şekeri (grup gölgeleri) + + + + Render Hints + Oluşturma İpuçları + + + + Anti-Aliasing + Kenar Yumuşatma + + + + Full canvas repaints (slower, but prevents drawing issues) + Tuvali yeniden boyar (daha yavaştır, ancak çizim sorunlarını önler) + + + + <b>Engine</b> + <b>Motor</b> + + + + + Core + Çekirdek + + + + Single Client + Tek Alıcı + + + + Multiple Clients + Çoklu Alıcı + + + + + Continuous Rack + Sürekli Raf + + + + + Patchbay + Yama yuvası + + + + Audio driver: + Ses sürücüsü: + + + + Process mode: + İşlem modeli: + + + + + + + Maximum number of parameters to allow in the built-in 'Edit' dialog + Yerleşik 'Düzenle' iletişim kutusunda izin verilecek maksimum parametre sayısı + + + + Max Parameters: + Maksimum Parametreler: + + + + ... + ... + + + + Reset Xrun counter after project load + Proje yükünden sonra Xrun sayacını sıfırlayın + + + + Plugin UIs + Eklenti kullanıcı arayüzleri + + + + + How much time to wait for OSC GUIs to ping back the host + OSC Arayüz'lerin ana bilgisayarı geri göndermesi için ne kadar beklemek gerekir + + + + UI Bridge Timeout: + Arayüz Köprüsü Zaman Aşımı: + + + + Use OSC-GUI bridges when possible, this way separating the UI from DSP code + Mümkün olduğunda OSC-Arayüz köprülerini kullanın, bu şekilde UI'yi DSP kodundan ayırın + + + + Use UI bridges instead of direct handling when possible + Mümkün olduğunda doğrudan işlem yerine Arayüz köprülerini kullanın + + + + Make plugin UIs always-on-top + Eklenti kullanıcı arayüzlerini her zaman en üstte yapın + + + + Make plugin UIs appear on top of Carla (needs restart) + Eklenti kullanıcı arayüzlerinin Carla'nın üstünde görünmesini sağlayın (yeniden başlatılması gerekiyor) + + + + NOTE: Plugin-bridge UIs cannot be managed by Carla on macOS + NOT: Eklenti köprüsü kullanıcı arayüzleri, macOS'ta Carla tarafından yönetilemez + + + + + Restart the engine to load the new settings + Yeni ayarları yüklemek için motoru yeniden başlatın + + + + <b>OSC</b> + <b>OSC</b> + + + + Enable OSC + OSC'yi etkinleştir + + + + Enable TCP port + TCP bağlantı noktasını etkinleştir + + + + + Use specific port: + Belirli bir bağlantı noktası kullanın: + + + + Overridden by CARLA_OSC_TCP_PORT env var + CARLA_OSC_TCP_PORT env var tarafından geçersiz kılındı + + + + + Use randomly assigned port + Rastgele atanan bağlantı noktasını kullan + + + + Enable UDP port + UDP bağlantı noktasını etkinleştir + + + + Overridden by CARLA_OSC_UDP_PORT env var + CARLA_OSC_UDP_PORT ortam değişkeni tarafından geçersiz kılındı + + + + DSSI UIs require OSC UDP port enabled + DSSI kullanıcı arabirimleri, OSC UDP bağlantı noktasının etkinleştirilmesini gerektirir + + + + <b>File Paths</b> + <b>Dosya Yolları</b> + + + + Audio + Ses + + + + MIDI + MIDI + + + + Used for the "audiofile" plugin + "Ses dosyası" eklentisi için kullanılır + + + + Used for the "midifile" plugin + "Midifile" eklentisi için kullanılır + + + + + Add... + Ekle... + + + + + Remove + Kaldır + + + + + Change... + Değiştir... + + + + <b>Plugin Paths</b> + <b>Eklenti Yolları</b> + + + + LADSPA + LADSPA + + + + DSSI + DSSI + + + + LV2 + LV2 + + + + VST2 + VST2 + + + + VST3 + VST3 + + + + SF2/3 + SF2/3 + + + + SFZ + SFZ + + + + JSFX + + + + + CLAP + + + + + Restart Carla to find new plugins + Yeni eklentiler bulmak için Carla'yı yeniden başlatın + + + + <b>Wine</b> + <b>Wine</b> + + + + Executable + Yürütülebilir + + + + Path to 'wine' binary: + 'Wine' ikilisine giden yol: + + + + Prefix + Önek + + + + Auto-detect Wine prefix based on plugin filename + Eklenti dosya adına göre Wine önekini otomatik algıla + + + + Fallback: + Geri çekilmek: + + + + Note: WINEPREFIX env var is preferred over this fallback + Not: WINEPREFIX env var değişkeni bu yedek yerine tercih edilir + + + + Realtime Priority + Gerçek Zamanlı Öncelik + + + + Base priority: + Temel öncelik: + + + + WineServer priority: + WineSunucusu önceliği: + + + + These options are not available for Carla as plugin + Bu seçenekler, eklenti olarak Carla için mevcut değildir + + + + <b>Experimental</b> + <b>Deneysel</b> + + + + Experimental options! Likely to be unstable! + Deneysel seçenekler! Kararsız olması muhtemel! + + + + Enable plugin bridges + Eklenti köprülerini etkinleştirin + + + + Enable Wine bridges + Wine köprülerini etkinleştir + + + + Enable jack applications + Jack uygulamalarını etkinleştirin + + + + Export single plugins to LV2 + Tek eklentileri LV2'ye aktarın + + + + Use system/desktop-theme icons (needs restart) + + + + + Load Carla backend in global namespace (NOT RECOMMENDED) + Carla arka ucunu genel ad alanında yükle (ÖNERİLMEZ) + + + + Fancy eye-candy (fade-in/out groups, glow connections) + Süslü göz alıcı (grupların açılması / kapanması, kızdırma bağlantıları) + + + + Use OpenGL for rendering (needs restart) + Oluşturmak için OpenGL kullanın (yeniden başlatılması gerekir) + + + + High Quality Anti-Aliasing (OpenGL only) + Yüksek Kaliteli Örtüşme Önleme (yalnızca OpenGL) + + + + Render Ardour-style "Inline Displays" + Ardour tarzı "Satır İçi Ekranları" Oluştur + + + + Force mono plugins as stereo by running 2 instances at the same time. +This mode is not available for VST plugins. + Aynı anda 2 örnek çalıştırarak mono eklentileri stereo olarak zorlayın. +Bu mod, VST eklentileri için kullanılamaz. + + + + Force mono plugins as stereo + Mono eklentileri stereo olarak zorla + + + + When enabled, Carla will try to prevent plugins from doing things that might mess up the audio or cause xruns, such as fork(), gtk_init() and similar. + + + + + Prevent unsafe calls from plugins (needs restart) + + + + + Run plugins in a separate process, so if they crash it does not affect Carla. +Plugins get automatically deactivated in such cases. +Reactvate them to start the process again, with the last saved state applied to it. + + + + + Run plugins in bridge mode when possible + Mümkün olduğunda eklentileri köprü modunda çalıştırın + + + + + + + Add Path + Yol Ekle + + + + Dialog + + + Carla Control - Connect + Carla Control - Bağlan + + + + Remote setup + Uzaktan kurulum + + + + UDP Port: + UDP Bağlantı Noktası: + + + + Remote host: + Uzak ana bilgisayar: + + + + TCP Port: + TCP Bağlantı Noktası: + + + + Set value + Değeri ayarla + + + + TextLabel + MetinEtiketi + + + + Scale Points + Ölçek Puanları + + + + DriverSettingsW + + + Driver Settings + Sürücü Ayarları + + + + Device: + Aygıt: + + + + Buffer size: + Arabellek boyutu: + + + + Sample rate: + Örnekleme oranı: + + + + Triple buffer + Üçlü arabellek + + + + Show Driver Control Panel + Sürücü Kontrol Panelini Göster + + + + Restart the engine to load the new settings + Yeni ayarları yüklemek için motoru yeniden başlatın + + + + ExportProjectDialog + + + Export project + Projeyi dışa aktar + + + + Export as loop (remove extra bar) + Döngü olarak dışa aktar (fazla çubuğu kaldırın) + + + + Export between loop markers + Döngü işaretleyicileri arasında dışa aktar + + + + Render Looped Section: + Döngülü Bölümü Oluştur: + + + + time(s) + zaman(lar) + + + + File format settings + Dosya biçimi ayarları + + + + File format: + Dosya biçimi: + + + + Sampling rate: + Örnekleme oranı: + + + + 44100 Hz + 44100 Hz + + + + 48000 Hz + 48000 Hz + + + + 88200 Hz + 88200 Hz + + + + 96000 Hz + 96000 Hz + + + + 192000 Hz + 192000 Hz + + + + Bit depth: + Bit derinliği: + + + + 16 Bit integer + 16 Bit tam sayı + + + + 24 Bit integer + 24 Bit tam sayı + + + + 32 Bit float + 32 Bit kayan + + + + Stereo mode: + Stereo modu: + + + + Mono + Mono + + + + Stereo + Stereo + + + + Joint stereo + Ortak stereo + + + + Compression level: + Sıkıştırma seviyesi: + + + + Bitrate: + Bit oranı: + + + + 64 KBit/s + 64 KBit/s + + + + 128 KBit/s + 128 KBit/s + + + + 160 KBit/s + 160 KBit/s + + + + 192 KBit/s + 192 KBit/s + + + + 256 KBit/s + 256 KBit/s + + + + 320 KBit/s + 320 KBit/s + + + + Use variable bitrate + Değişken bit hızı kullan + + + + Quality settings + Kalite ayarları + + + + Interpolation: + Aradeğerleme: + + + + Zero order hold + Sıfır emir tutma + + + + Sinc worst (fastest) + Sinc en kötü (en hızlı) + + + + Sinc medium (recommended) + Sinc orta (önerilir) + + + + Sinc best (slowest) + En iyi (en yavaş) + + + + Start + Başlat + + + + Cancel + İptal + + + + InstrumentFunctionNoteStacking + + + octave + octave + + + + + Major + Önemli + + + + Majb5 + Majb5 + + + + minor + minor + + + + minb5 + minb5 + + + + sus2 + sus2 + + + + sus4 + sus4 + + + + aug + aug + + + + augsus4 + augsus4 + + + + tri + tri + + + + 6 + 6 + + + + 6sus4 + 6sus4 + + + + 6add9 + 6add9 + + + + m6 + m6 + + + + m6add9 + m6add9 + + + + 7 + 7 + + + + 7sus4 + 7sus4 + + + + 7#5 + 7#5 + + + + 7b5 + 7b5 + + + + 7#9 + 7#9 + + + + 7b9 + 7b9 + + + + 7#5#9 + 7#5#9 + + + + 7#5b9 + 7#5b9 + + + + 7b5b9 + 7b5b9 + + + + 7add11 + 7add11 + + + + 7add13 + 7add13 + + + + 7#11 + 7#11 + + + + Maj7 + Maj7 + + + + Maj7b5 + Maj7b5 + + + + Maj7#5 + Maj7#5 + + + + Maj7#11 + Maj7#11 + + + + Maj7add13 + Maj7add13 + + + + m7 + m7 + + + + m7b5 + m7b5 + + + + m7b9 + m7b9 + + + + m7add11 + m7add11 + + + + m7add13 + m7add13 + + + + m-Maj7 + m-Maj7 + + + + m-Maj7add11 + m-Maj7add11 + + + + m-Maj7add13 + m-Maj7add13 + + + + 9 + 9 + + + + 9sus4 + 9sus4 + + + + add9 + add9 + + + + 9#5 + 9#5 + + + + 9b5 + 9b5 + + + + 9#11 + 9#11 + + + + 9b13 + 9b13 + + + + Maj9 + Maj9 + + + + Maj9sus4 + Maj9sus4 + + + + Maj9#5 + Maj9#5 + + + + Maj9#11 + Maj9#11 + + + + m9 + m9 + + + + madd9 + madd9 + + + + m9b5 + m9b5 + + + + m9-Maj7 + m9-Maj7 + + + + 11 + 11 + + + + 11b9 + 11b9 + + + + Maj11 + Maj11 + + + + m11 + m11 + + + + m-Maj11 + m-Maj11 + + + + 13 + 13 + + + + 13#9 + 13#9 + + + + 13b9 + 13b9 + + + + 13b5b9 + 13b5b9 + + + + Maj13 + Maj13 + + + + m13 + m13 + + + + m-Maj13 + m-Maj13 + + + + Harmonic minor + Harmonik minor + + + + Melodic minor + Melodik minor + + + + Whole tone + Bütün ton + + + + Diminished + Azalma + + + + Major pentatonic + Major pentatonik + + + + Minor pentatonic + Minor pentatonik + + + + Jap in sen + Sen de Jap + + + + Major bebop + Başlıca bebop + + + + Dominant bebop + Baskın bebop + + + + Blues + Blues + + + + Arabic + Arapça + + + + Enigmatic + Esrarengiz + + + + Neopolitan + Neopolitan + + + + Neopolitan minor + Neopolitan minör + + + + Hungarian minor + Macar minör + + + + Dorian + Dorian + + + + Phrygian + Frig + + + + Lydian + Lidya DIli + + + + Mixolydian + Miksolydiyen + + + + Aeolian + Aeolian + + + + Locrian + Locrian + + + + Minor + Minor + + + + Chromatic + Kromatik + + + + Half-Whole Diminished + Yarım-Bütün Azaltılmış + + + + 5 + 5 + + + + Phrygian dominant + Frig hakimiyeti + + + + Persian + Farsça + + + + InstrumentSoundShaping + + + VOLUME + DÜZEY + + + + Volume + Ses Düzeyi + + + + CUTOFF + AYIRMAK + + + + Cutoff frequency + Kesme frekansı + + + + RESO + RESO + + + + Resonance + Çınlama + + + + JackAppDialog + + + Add JACK Application + + + + + Note: Features not implemented yet are greyed out + + + + + Application + + + + + Name: + + + + + Application: + + + + + From template + + + + + Custom + + + + + Template: + + + + + Command: + + + + + Setup + + + + + Session Manager: + + + + + None + + + + + Audio inputs: + + + + + MIDI inputs: + + + + + Audio outputs: + + + + + MIDI outputs: + + + + + Take control of main application window + + + + + Workarounds + + + + + Wait for external application start (Advanced, for Debug only) + + + + + Capture only the first X11 Window + + + + + Use previous client output buffer as input for the next client + + + + + Simulate 16 JACK MIDI outputs, with MIDI channel as port index + + + + + Error here + + + + + NSM applications cannot use abstract or absolute paths + + + + + NSM applications cannot use CLI arguments + + + + + You need to save the current Carla project before NSM can be used + + + + + JuceAboutW + + + This program uses JUCE version %1. + Bu program JUCE %1 sürümünü kullanıyor. + + + + MidiPatternW + + + MIDI Pattern + MIDI Örüntüsü + + + + Time Signature: + Zaman İmzası: + + + + + + 1/4 + 1/4 + + + + 2/4 + 2/4 + + + + 3/4 + 3/4 + + + + 4/4 + 4/4 + + + + 5/4 + 5/4 + + + + 6/4 + 6/4 + + + + Measures: + Ölçümler: + + + + + + 1 + 1 + + + + 2 + 2 + + + + 3 + 3 + + + + 4 + 4 + + + + 5 + 5 + + + + 6 + 6 + + + + 7 + 7 + + + + 8 + 8 + + + + 9 + 9 + + + + 10 + 10 + + + + 11 + 11 + + + + 12 + 12 + + + + 13 + 13 + + + + 14 + 14 + + + + 15 + 15 + + + + 16 + 16 + + + + Default Length: + Varsayılan Uzunluk: + + + + + 1/16 + 1/16 + + + + + 1/15 + 1/15 + + + + + 1/12 + 1/12 + + + + + 1/9 + 1/9 + + + + + 1/8 + 1/8 + + + + + 1/6 + 1/6 + + + + + 1/3 + 1/3 + + + + + 1/2 + 1/2 + + + + Quantize: + Niceleme: + + + + &File + &Dosya + + + + &Edit + &Düzenle + + + + &Quit + &Çıkış + + + + Esc + + + + + &Insert Mode + &Ekle Modu + + + + F + F + + + + &Velocity Mode + &Hız Modu + + + + D + D + + + + Select All + Tümünü seç + + + + A + A + + + + PatchesDialog + + + + Qsynth: Channel Preset + Qsynth: Kanal Ön Ayarı + + + + + Bank selector + Yuva seçici + + + + + Bank + Yuva + + + + + Program selector + Program seçici + + + + + Patch + Yama + + + + + Name + İsim + + + + + OK + Tamam + + + + + Cancel + İptal + + + + PluginBrowser + + + no description + açıklama yok + + + + A native amplifier plugin + Yerel bir amplifikatör eklentisi + + + + Simple sampler with various settings for using samples (e.g. drums) in an instrument-track + Bir enstrüman kanalında örnekleri (ör. Davullar) kullanmak için çeşitli ayarlara sahip basit örnekleyici + + + + Boost your bass the fast and simple way + Basınızı hızlı ve basit bir şekilde güçlendirin + + + + Customizable wavetable synthesizer + Özelleştirilebilir dalgalı sentezleyici + + + + An oversampling bitcrusher + Bir yüksek hızda örnekleme bit kırıcı + + + + Carla Patchbay Instrument + Carla Patchbay Enstrüman + + + + Carla Rack Instrument + Carla Raf Enstrümanı + + + + A dynamic range compressor. + Dinamik aralıklı kompresör. + + + + A 4-band Crossover Equalizer + 4 bantlı Crossover Ekolayzer + + + + A native delay plugin + Yerel bir gecikme eklentisi + + + + A Dual filter plugin + Çift filtre eklentisi + + + + plugin for processing dynamics in a flexible way + dinamikleri esnek bir şekilde işlemek için eklenti + + + + A native eq plugin + Yerel bir eq eklentisi + + + + A native flanger plugin + Yerel bir flanger eklentisi + + + + Emulation of GameBoy (TM) APU + GameBoy (TM) APU Emülasyonu + + + + Player for GIG files + GIG dosyaları için oynatıcı + + + + Filter for importing Hydrogen files into LMMS + Hydrogen dosyalarını LMMS'ye aktarmak için filtre + + + + Versatile drum synthesizer + Çok yönlü davul synthesizer + + + + List installed LADSPA plugins + Yüklü LADSPA eklentilerini listeleyin + + + + plugin for using arbitrary LADSPA-effects inside LMMS. + LMMS içinde rastgele LADSPA efektlerini kullanmak için eklenti. + + + + Incomplete monophonic imitation TB-303 + Eksik monofonik taklit TB-303 + + + + plugin for using arbitrary LV2-effects inside LMMS. + LMMS içinde rastgele LV2 efektlerini kullanmak için eklenti. + + + + plugin for using arbitrary LV2 instruments inside LMMS. + LMMS içinde rastgele LV2 araçlarını kullanmak için eklenti. + + + + Filter for exporting MIDI-files from LMMS + MIDI dosyalarını LMMS'den dışa aktarmak için filtre + + + + Filter for importing MIDI-files into LMMS + MIDI dosyalarını LMMS'ye aktarmak için filtre + + + + Monstrous 3-oscillator synth with modulation matrix + Modülasyon matrisli devasa 3-osilatör sentezi + + + + A multitap echo delay plugin + Çok noktalı yankı gecikmesi eklentisi + + + + A NES-like synthesizer + NES benzeri bir sentezleyici + + + + 2-operator FM Synth + 2 operatörlü FM Synth + + + + Additive Synthesizer for organ-like sounds + Organ benzeri sesler için Additive Synthesizer + + + + GUS-compatible patch instrument + GUS uyumlu yama aracı + + + + Plugin for controlling knobs with sound peaks + Ses zirvelerine sahip düğmeleri kontrol etmek için eklenti + + + + Reverb algorithm by Sean Costello + Sean Costello'dan yankı algoritması + + + + Player for SoundFont files + Soundfont dosyaları için oynatıcı + + + + LMMS port of sfxr + Sfxr'nin LMMS bağlantı noktası + + + + Emulation of the MOS6581 and MOS8580 SID. +This chip was used in the Commodore 64 computer. + MOS6581 ve MOS8580 SID'nin öykünmesi. +Bu çip Commodore 64 bilgisayarında kullanıldı. + + + + A graphical spectrum analyzer. + Bir grafik spektrum analizörü. + + + + Plugin for enhancing stereo separation of a stereo input file + Bir stereo giriş dosyasının stereo ayrımını geliştirmek için eklenti + + + + Plugin for freely manipulating stereo output + Stereo çıkışı serbestçe değiştirmek için eklenti + + + + Tuneful things to bang on + Etkileyecek güzel şeyler + + + + Three powerful oscillators you can modulate in several ways + Çeşitli şekillerde modüle edebileceğiniz üç güçlü osilatör + + + + A stereo field visualizer. + Bir stereo alan görselleştiricisi. + + + + VST-host for using VST(i)-plugins within LMMS + LMMS içinde VST (i) eklentilerini kullanmak için VST ana bilgisayarı + + + + Vibrating string modeler + Titreşimli dizi modelleyici + + + + plugin for using arbitrary VST effects inside LMMS. + LMMS içinde rastgele VST efektlerini kullanmak için eklenti. + + + + 4-oscillator modulatable wavetable synth + 4-osilatör modüle edilebilir dalgalanabilir synth + + + + plugin for waveshaping + dalgalı şekillendirme eklentisi + + + + Mathematical expression parser + Matematiksel ifade ayrıştırıcı + + + + Embedded ZynAddSubFX + Gömülü ZynAddSubFX + + + + An all-pass filter allowing for extremely high orders. + Son derece yüksek siparişlere izin veren bir all-pass filtresi. - - Plugin Version - Eklenti Sürümü + + Granular pitch shifter + - - <br>Version %1<br>Carla is a fully-featured audio plugin host%2.<br><br>Copyright (C) 2011-2019 falkTX<br> - <br>Sürüm %1<br>Carla, tam özellikli bir ses eklentisi barındırıcısıdır %2.<br><br>Telif Hakkı (C) 2011-2019 falkTX<br> + + Upwards/downwards multiband compression plugin powered by the eldritch elder god LOMMUS. + - - - (Engine not running) - (Motor çalışmıyor) + + Basic Slicer + - - Everything! (Including LRDF) - Herşey! (LRDF dahil) + + Tap to the beat + Ritim için dokunun + + + PluginEdit - - Everything! (Including CustomData/Chunks) - Herşey! (Özel Veriler / Parçalar Dahil) + + Plugin Editor + Eklenti Düzenleyicisi - - About 110&#37; complete (using custom extensions)<br/>Implemented Feature/Extensions:<ul><li>http://lv2plug.in/ns/ext/atom</li><li>http://lv2plug.in/ns/ext/buf-size</li><li>http://lv2plug.in/ns/ext/data-access</li><li>http://lv2plug.in/ns/ext/event</li><li>http://lv2plug.in/ns/ext/instance-access</li><li>http://lv2plug.in/ns/ext/log</li><li>http://lv2plug.in/ns/ext/midi</li><li>http://lv2plug.in/ns/ext/options</li><li>http://lv2plug.in/ns/ext/parameters</li><li>http://lv2plug.in/ns/ext/port-props</li><li>http://lv2plug.in/ns/ext/presets</li><li>http://lv2plug.in/ns/ext/resize-port</li><li>http://lv2plug.in/ns/ext/state</li><li>http://lv2plug.in/ns/ext/time</li><li>http://lv2plug.in/ns/ext/uri-map</li><li>http://lv2plug.in/ns/ext/urid</li><li>http://lv2plug.in/ns/ext/worker</li><li>http://lv2plug.in/ns/extensions/ui</li><li>http://lv2plug.in/ns/extensions/units</li><li>http://home.gna.org/lv2dynparam/rtmempool/v1</li><li>http://kxstudio.sf.net/ns/lv2ext/external-ui</li><li>http://kxstudio.sf.net/ns/lv2ext/programs</li><li>http://kxstudio.sf.net/ns/lv2ext/props</li><li>http://kxstudio.sf.net/ns/lv2ext/rtmempool</li><li>http://ll-plugins.nongnu.org/lv2/ext/midimap</li><li>http://ll-plugins.nongnu.org/lv2/ext/miditype</li></ul> - Hakkında 110&#37; tamam (özel uzantılar kullanarak)<br/>Uygulanan Özellik/Uzantılar:<ul><li>http://lv2plug.in/ns/ext/atom</li><li>http://lv2plug.in/ns/ext/buf-size</li><li>http://lv2plug.in/ns/ext/data-access</li><li>http://lv2plug.in/ns/ext/event</li><li>http://lv2plug.in/ns/ext/instance-access</li><li>http://lv2plug.in/ns/ext/log</li><li>http://lv2plug.in/ns/ext/midi</li><li>http://lv2plug.in/ns/ext/options</li><li>http://lv2plug.in/ns/ext/parameters</li><li>http://lv2plug.in/ns/ext/port-props</li><li>http://lv2plug.in/ns/ext/presets</li><li>http://lv2plug.in/ns/ext/resize-port</li><li>http://lv2plug.in/ns/ext/state</li><li>http://lv2plug.in/ns/ext/time</li><li>http://lv2plug.in/ns/ext/uri-map</li><li>http://lv2plug.in/ns/ext/urid</li><li>http://lv2plug.in/ns/ext/worker</li><li>http://lv2plug.in/ns/extensions/ui</li><li>http://lv2plug.in/ns/extensions/units</li><li>http://home.gna.org/lv2dynparam/rtmempool/v1</li><li>http://kxstudio.sf.net/ns/lv2ext/external-ui</li><li>http://kxstudio.sf.net/ns/lv2ext/programs</li><li>http://kxstudio.sf.net/ns/lv2ext/props</li><li>http://kxstudio.sf.net/ns/lv2ext/rtmempool</li><li>http://ll-plugins.nongnu.org/lv2/ext/midimap</li><li>http://ll-plugins.nongnu.org/lv2/ext/miditype</li></ul> + + Edit + Düzenle - - - - Using Juce host - Juce ana bilgisayarını kullanma + + Control + Kontrol - - About 85% complete (missing vst bank/presets and some minor stuff) - Yaklaşık % 85 tamamlandı (eksik vst bankası / ön ayarları ve bazı küçük şeyler) + + MIDI Control Channel: + MIDI Kontrol Kanalı: - - - CarlaHostW - - MainWindow - AnaPencere + + N + N - - Rack - Raf + + Output dry/wet (100%) + Kuru/ıslak çıktı (% 100) - - Patchbay - Yama yuvası + + Output volume (100%) + Çıkış düzeyi (% 100) - - Logs - Loglar + + Balance Left (0%) + Sol Denge (% 0) - - Loading... - Yükleniyor... + + + Balance Right (0%) + Sağ Denge (% 0) - - Buffer Size: - Arabellek Boyutu: + + Use Balance + Dengelemeyi Kullanın - - Sample Rate: - Örnekleme Oranı: + + Use Panning + Kaydırmayı Kullan - - ? Xruns - ? Xruns + + Settings + Ayarlar - - DSP Load: %p% - EKR Yükü: %p% + + Use Chunks + Parçaları Kullanın - - &File - &Dosya + + Audio: + Ses: - - &Engine - &Motor + + Fixed-Size Buffer + Sabit Boyutlu Arabellek - - &Plugin - &Eklenti + + Force Stereo (needs reload) + Stereo'yu Zorla (yeniden yüklenmesi gerekiyor) - - Macros (all plugins) - Makrolar (tüm eklentiler) + + MIDI: + MIDI: - - &Canvas - &Tuval + + Map Program Changes + Harita Programı Değişiklikleri - - Zoom - Büyütme + + Send Notes + - - &Settings - &Ayarlar + + Send Bank/Program Changes + Yuva/Program Değişikliklerini Gönderin - - &Help - &Yardım + + Send Control Changes + Kontrol Değişikliklerini Gönder + + + + Send Channel Pressure + Kanal Basıncını Gönder - - toolBar - araç Çubuğu + + Send Note Aftertouch + Sonra Dokunma Notası Gönder - - Disk - Disk + + Send Pitchbend + Perde eğimi Gönder - - - Home - Ana Sayfa + + Send All Sound/Notes Off + Tüm Sesleri/Notaları Gönder Kapalı - - Transport - Aktarım + + +Plugin Name + + +Eklenti İsmi + - - Playback Controls - Oynatma Kontrolleri + + Program: + Program: - - Time Information - Zaman Bilgileri + + MIDI Program: + MIDI programı: + + + + Save State + Kayıt Yeri + + + + Load State + Yükleme durumu + + + + Information + Bilgi + + + + Label/URI: + Etiket/URI: + + + + Name: + Ad: + + + + Type: + Türü: + + + + Maker: + Yapıcı: + + + + Copyright: + Telif hakkı: + + + + Unique ID: + Benzersiz Kimlik: + + + + PluginFactory + + + Plugin not found. + Eklenti bulunamadı. + + + + LMMS plugin %1 does not have a plugin descriptor named %2! + LMMS eklentisi %1,%2 adında bir eklenti tanımlayıcısına sahip değil! + + + + PluginListDialog + + + Carla - Add New + + + + + Requirements + + + + + With Custom GUI + + + + + With CV Ports + + + + + Real-time safe only + + + + + Stereo only + + + + + With Inline Display + + + + + Favorites only + + + + + (Number of Plugins go here) + + + + + &Add Plugin + + + + + Cancel + + + + + Refresh + + + + + Reset filters + + + + + + + + + + + + + + + + + + + + TextLabel + + + + + Format: + + + + + Architecture: + + + + + Type: + - - Frame: - Çerçeve: + + MIDI Ins: + - - 000'000'000 - 000'000'000 + + Audio Ins: + - - Time: - Zaman: + + CV Outs: + - - 00:00:00 - 00:00:00 + + MIDI Outs: + - - BBT: - BBT: + + Parameter Ins: + - - 000|00|0000 - 000|00|0000 + + Parameter Outs: + - - Settings - Ayarlar + + Audio Outs: + - - BPM - BPM + + CV Ins: + - - Use JACK Transport - JACK Transport'u kullanın + + UniqueID: + - - Use Ableton Link - Ableton Bağlantısını kullanın + + Has Inline Display: + - - &New - &Yeni + + Has Custom GUI: + - - Ctrl+N - Ctrl+N + + Is Synth: + - - &Open... - &Aç... + + Is Bridged: + - - - Open... - Aç... + + Information + - - Ctrl+O - Ctrl+O + + Name + - - &Save - &Kaydet + + Label/Id/URI + - - Ctrl+S - CTRL + S + + Maker + - - Save &As... - &Farklı Kaydet... + + Binary/Filename + - - - Save As... - Farklı Kaydet... + + Format + - - Ctrl+Shift+S - Ctrl+Shift+S + + Internal + - - &Quit - &Çıkış + + LADSPA + - - Ctrl+Q - Ctrl+Q + + DSSI + - - &Start - &Başlat + + LV2 + - - F5 - F5 + + VST2 + - - St&op - Du&rdur + + VST3 + - - F6 - F6 + + CLAP + - - &Add Plugin... - &Eklenti Ekle... + + AU + - - Ctrl+A - Ctrl+A + + JSFX + - - &Remove All - Tümünü &Kaldır + + Sound Kits + - - Enable - Etkinleştir + + Type + - - Disable - Devre Dışı Bırak + + Effects + - - 0% Wet (Bypass) - % 0 Islak (Baypas) + + Instruments + - - 100% Wet - % 100 Islak + + MIDI Plugins + - - 0% Volume (Mute) - % 0 Ses (Sessiz) + + Other/Misc + - - 100% Volume - % 100 Hacim + + Category + - - Center Balance - Merkez Dengesi + + All + - - &Play - &Oynat + + Delay + - - Ctrl+Shift+P - Ctrl+ÜstKrkt+P + + Distortion + - - &Stop - &Durdur + + Dynamics + - - Ctrl+Shift+X - Ctrl+Shift+X + + EQ + - - &Backwards - &Geriye doğru + + Filter + - - Ctrl+Shift+B - Ctrl+Shift+B + + Modulator + - - &Forwards - &İleriye + + Synth + - - Ctrl+Shift+F - Ctrl+Shift+F + + Utility + - - &Arrange - &Düzenleme + + + Other + - - Ctrl+G - Ctrl+G + + Architecture + - - - &Refresh - &Yenile + + + Native + - - Ctrl+R - Ctrl +R + + Bridged + - - Save &Image... - &Görüntüyü Kaydet... + + Bridged (Wine) + - - Auto-Fit - Otomatik Sığdır + + Focus Text Search + - - Zoom In - Yakınlaştır + + Ctrl+F + - - Ctrl++ - Ctrl++ + + Bridged (32bit) + - - Zoom Out - Uzaklaştır + + Discovering internal plugins... + - - Ctrl+- - Ctrl+- + + Discovering LADSPA plugins... + - - Zoom 100% - % 100 Yakınlaştır + + Discovering DSSI plugins... + - - Ctrl+1 - Ctrl +1 + + Discovering LV2 plugins... + - - Show &Toolbar - &Araç Çubuğunu Göster + + Discovering VST2 plugins... + - - &Configure Carla - &Carla'yı yapılandır + + Discovering VST3 plugins... + - - &About - &Hakkında + + Discovering CLAP plugins... + - - About &JUCE - &JUCE Hakkında + + Discovering AU plugins... + - - About &Qt - &Qt Hakkında + + Discovering JSFX plugins... + - - Show Canvas &Meters - Tuval &Ölçerleri Göster + + Discovering SF2 kits... + - - Show Canvas &Keyboard - Tuval &Klavyeyi Göster + + Discovering SFZ kits... + - - Show Internal - Dahili Göster + + Unknown + - - Show External - Harici Göster + + + + + Yes + - - Show Time Panel - Zaman Panelini Göster + + + + + No + + + + PluginParameter - - Show &Side Panel - &Yan Paneli Göster + + Form + Biçim - - &Connect... - &Bağlan... + + Parameter Name + Parametre Adı - - Compact Slots - Kompakt Yuvalar + + TextLabel + - - Expand Slots - Yuvaları Genişlet + + ... + ... + + + PluginRefreshDialog - - Perform secret 1 - Gizli 1'i gerçekleştir + + Plugin Refresh + - - Perform secret 2 - Gizli 2'yi gerçekleştir + + Search for: + - - Perform secret 3 - Gizli 3'ü gerçekleştir + + All plugins, ignoring cache + - - Perform secret 4 - Gizli 4'ü gerçekleştir + + Updated plugins only + - - Perform secret 5 - Gizli 5'i gerçekleştir + + Check previously invalid plugins + - - Add &JACK Application... - &JACK Uygulaması Ekle... + + Press 'Scan' to begin the search + - - &Configure driver... - Sürücüyü &yapılandırın... + + Scan + - - Panic - Panik + + >> Skip + - - Open custom driver panel... - Özel sürücü panelini aç... + + Close + - CarlaHostWindow + PluginWidget - - Export as... - Farklı dışa aktar... + + + + + + Frame + Çerçeve - - - - - Error - Hata + + Enable + Etkinleştir - - Failed to load project - Proje yüklenemedi + + On/Off + Aç/Kapat + + + + + + + PluginName + Eklentiİsmi + + + + MIDI + MIDI - - Failed to save project - Proje kaydedilemedi + + AUDIO IN + SES GİRİŞİ - - Quit - Çık + + AUDIO OUT + SES ÇIKIŞI - - Are you sure you want to quit Carla? - Carla'yı bırakmak istediğinden emin misin? + + GUI + Arayüz - - Could not connect to Audio backend '%1', possible reasons: -%2 - '%1' Ses arka ucuna bağlanılamadı, olası nedenler: -%2 + + Edit + Düzenle - - Could not connect to Audio backend '%1' - Ses arka ucuna '%1' bağlanılamadı + + Remove + Kaldır - - Warning - Uyarı + + Plugin Name + Eklenti İsmi - - There are still some plugins loaded, you need to remove them to stop the engine. -Do you want to do this now? - Hala yüklü bazı eklentiler var, motoru durdurmak için bunları kaldırmanız gerekiyor. -Bunu şimdi yapmak istiyor musun? + + Preset: + Ön ayar: - CarlaInstrumentView + ProjectRenderer - - Show GUI - Görselli Arayüzü Göster + + WAV (*.wav) + WAV (*.wav) - - - CarlaSettingsW - - Settings - Ayarlar + + FLAC (*.flac) + FLAC (*.flac) - - main - ana + + OGG (*.ogg) + OGG (*.ogg) - - canvas - tuval + + MP3 (*.mp3) + MP3 (*.mp3) + + + QGroupBox - - engine - motor + + + Settings for %1 + + + + QObject - - osc - osc + + Reload Plugin + Eklentiyi Yeniden Yükle - - file-paths - dosya yolları + + Show GUI + Görselli Arayüzü Göster - - plugin-paths - eklenti yolları + + Help + Yardım - - wine - wine + + LADSPA plugins + - - experimental - deneysel + + The project contains %1 LADSPA plugin(s) which might have not been restored correctly! Please check the project. + - - Widget - Araç + + URI: + - - - Main - Ana + + Project: + - - - Canvas - Tuval + + Maker: + - - - Engine - Motor + + Homepage: + - - File Paths - Dosya Yolları + + License: + - - Plugin Paths - Eklenti Yolları + + File: %1 + - - Wine - Wine + + failed to load description + - - - Experimental - Deneysel + + Open audio file + - - <b>Main</b> - <b>Ana</b> + + Error loading sample + - - Paths - Yollar + + %1 (unsupported) + + + + QWidget - - Default project folder: - Varsayılan proje klasörü: + + + Name: + İsim: - - Interface - Arayüz + + Maker: + Yapıcı: - - Interface refresh interval: - Arayüz yenileme aralığı: + + Copyright: + Telif Hakkı: - - - ms - ms + + Requires Real Time: + Gerçek Zaman Gerektirir: - - Show console output in Logs tab (needs engine restart) - Konsol çıktısını Günlükler sekmesinde göster (motorun yeniden başlatılması gerekir) + + + + Yes + Evet - - Show a confirmation dialog before quitting - Çıkmadan önce bir onay iletişim kutusu göster + + + + No + Hayır - - - Theme - Tema + + Real Time Capable: + Gerçek Zamanlı Yetenekli: - - Use Carla "PRO" theme (needs restart) - Carla "PRO" temasını kullanın (yeniden başlatılması gerekiyor) + + In Place Broken: + Yerinde Kırık: - - Color scheme: - Renk düzeni: + + Channels In: + Giriş Kanalları: - - Black - Siyah + + Channels Out: + Çıkış Kanalları: - - System - Sistem + + File: %1 + Dosya: %1 - - Enable experimental features - Deneysel özellikleri etkinleştirin + + File: + Dosya: + + + XYControllerW - - <b>Canvas</b> - <b>Tuval</b> + + XY Controller + - - Bezier Lines - Bezier Hatları + + X Controls: + - - Theme: - Tema: + + Y Controls: + - - Size: - Boyut: + + Smooth + - - 775x600 - 775x600 + + &Settings + - - 1550x1200 - 1550x1200 + + Channels + - - 3100x2400 - 3100x2400 + + &File + - - 4650x3600 - 4650x3600 + + Show MIDI &Keyboard + - - 6200x4800 - 6200x4800 + + (All) + - - Options - Seçenekler + + 1 + - - Auto-hide groups with no ports - Bağlantı noktası olmayan grupları otomatik gizle + + 2 + - - Auto-select items on hover - Fareyle üzerine gelindiğinde öğeleri otomatik seç + + 3 + - - Basic eye-candy (group shadows) - Temel göz şekeri (grup gölgeleri) + + 4 + - - Render Hints - Oluşturma İpuçları + + 5 + - - Anti-Aliasing - Kenar Yumuşatma + + 6 + - - Full canvas repaints (slower, but prevents drawing issues) - Tuvali yeniden boyar (daha yavaştır, ancak çizim sorunlarını önler) + + 7 + - - <b>Engine</b> - <b>Motor</b> + + 8 + - - - Core - Çekirdek + + 9 + - - Single Client - Tek Alıcı + + 10 + - - Multiple Clients - Çoklu Alıcı + + 11 + - - - Continuous Rack - Sürekli Raf + + 12 + - - - Patchbay - Yama yuvası + + 13 + - - Audio driver: - Ses sürücüsü: + + 14 + - - Process mode: - İşlem modeli: + + 15 + - - - - - Maximum number of parameters to allow in the built-in 'Edit' dialog - Yerleşik 'Düzenle' iletişim kutusunda izin verilecek maksimum parametre sayısı + + 16 + + + + + &Quit + - - Max Parameters: - Maksimum Parametreler: + + Esc + - - ... - ... + + (None) + + + + lmms::AmplifierControls - - Reset Xrun counter after project load - Proje yükünden sonra Xrun sayacını sıfırlayın + + Volume + Düzey - - Plugin UIs - Eklenti kullanıcı arayüzleri + + Panning + Kaydırma - - - How much time to wait for OSC GUIs to ping back the host - OSC Arayüz'lerin ana bilgisayarı geri göndermesi için ne kadar beklemek gerekir + + Left gain + Sol kazanç - - UI Bridge Timeout: - Arayüz Köprüsü Zaman Aşımı: + + Right gain + Sağ kazanç + + + lmms::AudioFileProcessor - - Use OSC-GUI bridges when possible, this way separating the UI from DSP code - Mümkün olduğunda OSC-Arayüz köprülerini kullanın, bu şekilde UI'yi DSP kodundan ayırın + + Amplify + Yükseltici - - Use UI bridges instead of direct handling when possible - Mümkün olduğunda doğrudan işlem yerine Arayüz köprülerini kullanın + + Start of sample + Örnek başlangıcı - - Make plugin UIs always-on-top - Eklenti kullanıcı arayüzlerini her zaman en üstte yapın + + End of sample + Örneğin sonu - - Make plugin UIs appear on top of Carla (needs restart) - Eklenti kullanıcı arayüzlerinin Carla'nın üstünde görünmesini sağlayın (yeniden başlatılması gerekiyor) + + Loopback point + Geri döngü noktası - - NOTE: Plugin-bridge UIs cannot be managed by Carla on macOS - NOT: Eklenti köprüsü kullanıcı arayüzleri, macOS'ta Carla tarafından yönetilemez + + Reverse sample + Ters örnek - - - Restart the engine to load the new settings - Yeni ayarları yüklemek için motoru yeniden başlatın + + Loop mode + Döngü modu - - <b>OSC</b> - <b>OSC</b> + + Stutter + Kekemelik - - Enable OSC - OSC'yi etkinleştir + + Interpolation mode + Ara değerlendirme modu - - Enable TCP port - TCP bağlantı noktasını etkinleştir + + None + Hiçbiri - - - Use specific port: - Belirli bir bağlantı noktası kullanın: + + Linear + Doğrusal - - Overridden by CARLA_OSC_TCP_PORT env var - CARLA_OSC_TCP_PORT env var tarafından geçersiz kılındı + + Sinc + Sinc - - - Use randomly assigned port - Rastgele atanan bağlantı noktasını kullan + + Sample not found + + + + lmms::AudioJack - - Enable UDP port - UDP bağlantı noktasını etkinleştir + + JACK client restarted + JACK istemcisi yeniden başlatıldı - - Overridden by CARLA_OSC_UDP_PORT env var - CARLA_OSC_UDP_PORT ortam değişkeni tarafından geçersiz kılındı + + LMMS was kicked by JACK for some reason. Therefore the JACK backend of LMMS has been restarted. You will have to make manual connections again. + LMMS bir nedenden ötürü JACK tarafından sistemden atıldı. Bundan dolayı LMMS'in JACK altyapısı yeniden başlatıldı. Bağlantıları yeniden elle yapmanız gerekecek. - - DSSI UIs require OSC UDP port enabled - DSSI kullanıcı arabirimleri, OSC UDP bağlantı noktasının etkinleştirilmesini gerektirir + + JACK server down + JACK sunucusu kapalı - - <b>File Paths</b> - <b>Dosya Yolları</b> + + The JACK server seems to have been shutdown and starting a new instance failed. Therefore LMMS is unable to proceed. You should save your project and restart JACK and LMMS. + JACK sunucusu kapanmış gibi görünüyor ve yeni bir örnek başlatılamadı. Bu nedenle LMMS devam edemiyor. Projenizi kaydetmeli, JACK ve LMMS'i yeniden başlatmalısınız. - - Audio - Ses + + Client name + İstemci adı - - MIDI - MIDI + + Channels + Kanallar + + + lmms::AudioOss - - Used for the "audiofile" plugin - "Ses dosyası" eklentisi için kullanılır + + Device + Aygıt - - Used for the "midifile" plugin - "Midifile" eklentisi için kullanılır + + Channels + Kanallar + + + lmms::AudioPortAudio::setupWidget - - - Add... - Ekle... + + Backend + Arka uç - - - Remove - Kaldır + + Device + Aygıt + + + lmms::AudioPulseAudio - - - Change... - Değiştir... + + Device + Aygıt - - <b>Plugin Paths</b> - <b>Eklenti Yolları</b> + + Channels + Kanallar + + + lmms::AudioSdl::setupWidget - - LADSPA - LADSPA + + Playback device + - - DSSI - DSSI + + Input device + + + + lmms::AudioSndio - - LV2 - LV2 + + Device + Aygıt - - VST2 - VST2 + + Channels + Kanallar + + + lmms::AudioSoundIo::setupWidget - - VST3 - VST3 + + Backend + Arka uç - - SF2/3 - SF2/3 + + Device + Aygıt + + + lmms::AutomatableModel - - SFZ - SFZ + + &Reset (%1%2) + &Sıfırla (%1%2) - - Restart Carla to find new plugins - Yeni eklentiler bulmak için Carla'yı yeniden başlatın + + &Copy value (%1%2) + &Değeri kopyala (%1%2) - - <b>Wine</b> - <b>Wine</b> + + &Paste value (%1%2) + &Değeri yapıştır (%1%2) - - Executable - Yürütülebilir + + &Paste value + &Değeri yapıştır - - Path to 'wine' binary: - 'Wine' ikilisine giden yol: + + Edit song-global automation + Global şarkı otomasyonunu düzenle - - Prefix - Önek + + Remove song-global automation + Global şarkı otomasyonunu kaldır - - Auto-detect Wine prefix based on plugin filename - Eklenti dosya adına göre Wine önekini otomatik algıla + + Remove all linked controls + Tüm bağlantılı kontrolleri kaldır - - Fallback: - Geri çekilmek: + + Connected to %1 + Şuna bağlı: %1 - - Note: WINEPREFIX env var is preferred over this fallback - Not: WINEPREFIX env var değişkeni bu yedek yerine tercih edilir + + Connected to controller + Kontrolöre bağlı - - Realtime Priority - Gerçek Zamanlı Öncelik + + Edit connection... + Bağlantıyı düzenle... - - Base priority: - Temel öncelik: + + Remove connection + Bağlantıyı kaldır - - WineServer priority: - WineSunucusu önceliği: + + Connect to controller... + Kontrolöre bağla... + + + lmms::AutomationClip - - These options are not available for Carla as plugin - Bu seçenekler, eklenti olarak Carla için mevcut değildir + + Drag a control while pressing <%1> + <%1> tuşuna basarken bir kontrolü sürükleyin + + + lmms::AutomationTrack - - <b>Experimental</b> - <b>Deneysel</b> + + Automation track + Parça otomasyonu + + + lmms::BassBoosterControls - - Experimental options! Likely to be unstable! - Deneysel seçenekler! Kararsız olması muhtemel! + + Frequency + Frekans - - Enable plugin bridges - Eklenti köprülerini etkinleştirin + + Gain + Kazanç - - Enable Wine bridges - Wine köprülerini etkinleştir + + Ratio + Oran + + + lmms::BitInvader - - Enable jack applications - Jack uygulamalarını etkinleştirin + + Sample length + Örnek uzunluğu - - Export single plugins to LV2 - Tek eklentileri LV2'ye aktarın + + Interpolation + - - Load Carla backend in global namespace (NOT RECOMMENDED) - Carla arka ucunu genel ad alanında yükle (ÖNERİLMEZ) + + Normalize + + + + lmms::BitcrushControls - - Fancy eye-candy (fade-in/out groups, glow connections) - Süslü göz alıcı (grupların açılması / kapanması, kızdırma bağlantıları) + + Input gain + Giriş kazancı - - Use OpenGL for rendering (needs restart) - Oluşturmak için OpenGL kullanın (yeniden başlatılması gerekir) + + Input noise + Giriş gürültüsü - - High Quality Anti-Aliasing (OpenGL only) - Yüksek Kaliteli Örtüşme Önleme (yalnızca OpenGL) + + Output gain + Çıkış kazancı - - Render Ardour-style "Inline Displays" - Ardour tarzı "Satır İçi Ekranları" Oluştur + + Output clip + Çıktı klibi - - Force mono plugins as stereo by running 2 instances at the same time. -This mode is not available for VST plugins. - Aynı anda 2 örnek çalıştırarak mono eklentileri stereo olarak zorlayın. -Bu mod, VST eklentileri için kullanılamaz. + + Sample rate + Örnekleme oranı - - Force mono plugins as stereo - Mono eklentileri stereo olarak zorla + + Stereo difference + Stereo farkı - - Prevent plugins from doing bad stuff (needs restart) - Eklentilerin kötü şeyler yapmasını önleyin (yeniden başlatılması gerekir) + + Levels + Seviyeler - - Whenever possible, run the plugins in bridge mode. - Mümkün olduğunda eklentileri köprü modunda çalıştırın. + + Rate enabled + Oran etkinleştirildi - - Run plugins in bridge mode when possible - Mümkün olduğunda eklentileri köprü modunda çalıştırın + + Depth enabled + Derinlik etkinleştirildi + + + lmms::Clip - - - - - Add Path - Yol Ekle + + Mute + Sustur - CompressorControlDialog + lmms::CompressorControls - - Threshold: - Eşik: + + Threshold + Eşik - - Volume at which the compression begins to take place - Sıkıştırmanın gerçekleşmeye başladığı düzey + + Ratio + Oran - - Ratio: - Oran: + + Attack + Saldırı - - How far the compressor must turn the volume down after crossing the threshold - Eşiği geçtikten sonra kompresörün hacmi ne kadar azaltması gerekir + + Release + Yayınla - - Attack: - Saldırı: + + Knee + Diz - - Speed at which the compressor starts to compress the audio - Kompresörün sesi sıkıştırmaya başladığı hız + + Hold + Tut - - Release: - Yayınla: + + Range + Aralık - - Speed at which the compressor ceases to compress the audio - Kompresörün sesi sıkıştırmayı bıraktığı hız + + RMS Size + RMS Boyutu - - Knee: - Diz: + + Mid/Side + Orta/Yan - - Smooth out the gain reduction curve around the threshold - Eşiğin etrafındaki kazanç azaltma eğrisini düzeltin + + Peak Mode + Tepe Modu - - Range: - Menzil: + + Lookahead Length + Önden Bakış Uzunluğu - - Maximum gain reduction - Maksimum kazanç azaltma + + Input Balance + Giriş Dengesi - - Lookahead Length: - Önden Bakış Uzunluğu: + + Output Balance + Çıktı Dengesi - - How long the compressor has to react to the sidechain signal ahead of time - Kompresörün yan zincir sinyaline vaktinden önce ne kadar süre tepki vermesi gerekir + + Limiter + Sınırlayıcı - - Hold: - Ambar: + + Output Gain + Çıkış Kazancı - - Delay between attack and release stages - Saldırı ve serbest bırakma aşamaları arasındaki gecikme + + Input Gain + Giriş Kazancı - - RMS Size: - RMS Boyutu: + + Blend + Harman - - Size of the RMS buffer - RMS arabelleğinin boyutu + + Stereo Balance + Çift kanal Dengesi - - Input Balance: - Giriş Dengesi: + + Auto Makeup Gain + Otomatik Makyaj Kazancı - - Bias the input audio to the left/right or mid/side - Giriş sesini sola / sağa veya ortaya / yana çevirin + + Audition + İşitme - - Output Balance: - Çıktı Dengesi: + + Feedback + Geri bildirim - - Bias the output audio to the left/right or mid/side - Çıkış sesini sola / sağa veya ortaya / tarafa çevirin + + Auto Attack + Otomatik Saldırı - - Stereo Balance: - Çift kanal Dengesi: + + Auto Release + Otomatik Yayın - - Bias the sidechain signal to the left/right or mid/side - Yan zincir sinyalini sola / sağa veya ortaya / yana çevirin + + Lookahead + Önden Bakış - - Stereo Link Blend: - Çift kanal Bağlantı Karışımı: + + Tilt + Eğim - - Blend between unlinked/maximum/average/minimum stereo linking modes - Bağlantısız / maksimum / ortalama / minimum çift kanal bağlantı modları arasında uyum sağlayın + + Tilt Frequency + Eğim Frekansı - - Tilt Gain: - Eğim Kazancı: + + Stereo Link + Çift kanal Bağlantı - - Bias the sidechain signal to the low or high frequencies. -6 db is lowpass, 6 db is highpass. - Yan zincir sinyalini düşük veya yüksek frekanslara yönlendirin. -6 db alçak geçiş, 6 db yüksek geçiştir. + + Mix + Karıştır + + + lmms::Controller - - Tilt Frequency: - Eğim Frekansı: + + Controller %1 + Kontrolör %1 + + + lmms::DelayControls - - Center frequency of sidechain tilt filter - Yan zincir eğim filtresinin merkez frekansı + + Delay samples + Gecikme örnekleri - - Mix: - Karıştır: + + Feedback + Geri bildirim - - Balance between wet and dry signals - Islak ve kuru sinyaller arasında denge + + LFO frequency + LFO frekansı - - Auto Attack: - Otomatik Saldırı: + + LFO amount + LFO miktarı - - Automatically control attack value depending on crest factor - Crest faktörüne bağlı olarak saldırı değerini otomatik olarak kontrol edin + + Output gain + Çıkış kazancı + + + + lmms::DispersionControls + + + Amount + Miktar - - Auto Release: - Otomatik Yayın: + + Frequency + Frekans - - Automatically control release value depending on crest factor - Crest faktörüne bağlı olarak serbest bırakma değerini otomatik olarak kontrol edin + + Resonance + Rezonans - - Output gain - Çıkış kazancı + + Feedback + Geri bildirim + + + + DC Offset Removal + DC Ofset Kaldırma + + + lmms::DualFilterControls - - - Gain - Kazanç + + Filter 1 enabled + Filtre 1 etkinleştirildi - - Output volume - Çıkış Düzeyi + + Filter 1 type + Filtre türü 1 - - Input gain - Giriş kazancı + + Cutoff frequency 1 + Kesme frekansı 1 - - Input volume - Giriş Düzeyi + + Q/Resonance 1 + Q/Rezonans 1 - - Root Mean Square - Kök kare ortalama + + Gain 1 + Kazanç 1 - - Use RMS of the input - Girişin RMS'sini kullanın + + Mix + Karıştır - - Peak - Zirve + + Filter 2 enabled + Filtre 2 etkinleştirildi - - Use absolute value of the input - Girişin mutlak değerini kullan + + Filter 2 type + Filtre türü 2 - - Left/Right - Sol/Sağ + + Cutoff frequency 2 + Kesme frekansı 2 - - Compress left and right audio - Sol ve sağ sesi sıkıştır + + Q/Resonance 2 + Q/Rezonans 2 - - Mid/Side - Orta / Yan + + Gain 2 + Kazanç 2 - - Compress mid and side audio - Orta ve yan sesi sıkıştır + + + Low-pass + Düşük geçiş - - Compressor - Sıkıştırıcı + + + Hi-pass + Yüksek geçiş - - Compress the audio - Sesi sıkıştır + + + Band-pass csg + Bant geçişli csg - - Limiter - Sınırlayıcı + + + Band-pass czpg + Bant geçişli czpg - - Set Ratio to infinity (is not guaranteed to limit audio volume) - Oranı sonsuza ayarla (ses seviyesini sınırlaması garanti edilmez) + + + Notch + Çentik - - Unlinked - Bağlantısız + + + All-pass + Tamamı bitti - - Compress each channel separately - Her kanalı ayrı ayrı sıkıştırın + + + Moog + Moog - - Maximum - En Çok + + + 2x Low-pass + 2x Düşük geçiş - - Compress based on the loudest channel - En gürültülü kanala göre sıkıştır + + + RC Low-pass 12 dB/oct + RC Düşük geçişli 12 dB/oct - - Average - Ortalama + + + RC Band-pass 12 dB/oct + RC Bant geçişi 12 dB/oct - - Compress based on the averaged channel volume - Ortalama kanal hacmine göre sıkıştır + + + RC High-pass 12 dB/oct + RC Yüksek Geçişli 12 dB/oct - - Minimum - En Az + + + RC Low-pass 24 dB/oct + RC Düşük geçişli 24 dB/oct - - Compress based on the quietest channel - En sessiz kanala göre sıkıştırın + + + RC Band-pass 24 dB/oct + RC Bant geçişi 24 dB/oct - - Blend - Harman + + + RC High-pass 24 dB/oct + RC Yüksek Geçişli 24 dB/oct - - Blend between stereo linking modes - Stereo bağlantı modları arasında uyum sağlayın + + + Vocal Formant + Vokal Biçimlendirici - - Auto Makeup Gain - Otomatik Makyaj Kazancı + + + 2x Moog + 2x Moog - - Automatically change makeup gain depending on threshold, knee, and ratio settings - Eşik, diz ve oran ayarlarına bağlı olarak makyaj kazancını otomatik olarak değiştirin + + + SV Low-pass + SV Düşük geçiş - - - Soft Clip - Yumuşak Kırpılma + + + SV Band-pass + SV Bant geçişi - - Play the delta signal - Delta sinyalini çal + + + SV High-pass + SV Yüksek geçiş - - Use the compressor's output as the sidechain input - Yan zincir girişi olarak kompresörün çıktısını kullanın + + + SV Notch + SV Çentiği - - Lookahead Enabled - İleri Bakış Etkinleştirildi + + + Fast Formant + Hızlı Biçimlendirici - - Enable Lookahead, which introduces 20 milliseconds of latency - 20 milisaniyelik gecikme süresi sağlayan Lookahead'i etkinleştirin + + + Tripole + Üçlü - CompressorControls + lmms::DynProcControls - - Threshold - Eşik + + Input gain + Giriş kazancı - - Ratio - Oran + + Output gain + Çıkış kazancı - - Attack - Saldırı + + Attack time + Kalkma zamanı - - Release - Yayınla + + Release time + Yayımlama zamanı - - Knee - Diz + + Stereo mode + Çift kanal modu + + + lmms::Effect - - Hold - Tut + + Effect enabled + Efekt etkinleştirildi - - Range - Aralık + + Wet/Dry mix + Islak/Kuru karışım - - RMS Size - RMS Boyutu + + Gate + Geçit - - Mid/Side - Orta / Yan + + Decay + Bozunma + + + lmms::EffectChain - - Peak Mode - Tepe Modu + + Effects enabled + Efektler etkinleştirildi + + + lmms::Engine - - Lookahead Length - Önden Bakış Uzunluğu + + Generating wavetables + Dalgaboyu oluşturma - - - Input Balance - Giriş Dengesi + + + Initializing data structures + Veri yapılarını başlatma - - Output Balance - Çıktı Dengesi + + Opening audio and midi devices + Ses ve midi cihazlarını açma - - Limiter - Sınırlayıcı + + Launching audio engine threads + Ses motoru dizileri başlatılıyor + + + lmms::EnvelopeAndLfoParameters - - Output Gain - Çıkış Kazancı + + Env pre-delay + Ortam ön gecikme - - Input Gain - Giriş Kazancı + + Env attack + Ortam saldırısı - - Blend - Harman + + Env hold + Ortam tutma - - Stereo Balance - Çift kanal Dengesi + + Env decay + Ortam bozunma - - Auto Makeup Gain - Otomatik Makyaj Kazancı + + Env sustain + Ortam sürdürme - - Audition - İşitme + + Env release + Ortam yayınlama - - Feedback - Geri bildirim + + Env mod amount + Ortam mod miktarı - - Auto Attack - Otomatik Saldırı + + LFO pre-delay + LFO ön gecikmesi - - Auto Release - Otomatik Yayın + + LFO attack + LFO saldırısı - - Lookahead - Önden Bakış + + LFO frequency + LFO frekansı - - Tilt - Eğim + + LFO mod amount + LFO mod miktarı - - Tilt Frequency - Eğim Frekansı + + LFO wave shape + LFO dalga şekli - - Stereo Link - Çift kanal Bağlantı + + LFO frequency x 100 + LFO frekansı x 100 - - Mix - Karıştır + + Modulate env amount + Ortam miktarını değiştir - - - Controller - - Controller %1 - Kontrolör %1 + + Sample not found + - ControllerConnectionDialog - - - Connection Settings - Bağlantı Ayarları - + lmms::EqControls - - MIDI CONTROLLER - MIDI KONTROLÖR + + Input gain + Giriş kazancı - - Input channel - Giriş kanalı + + Output gain + Çıkış kazancı - - CHANNEL - KANAL + + Low-shelf gain + Düşük raf kazancı - - Input controller - Giriş kontrolörü + + Peak 1 gain + Tepe kazancı 1 - - CONTROLLER - KONTROLÖR + + Peak 2 gain + Tepe kazancı 2 - - - Auto Detect - Oto-Tespit + + Peak 3 gain + Tepe kazancı 3 - - MIDI-devices to receive MIDI-events from - MIDI olaylarını almak için MIDI cihazları + + Peak 4 gain + Tepe kazancı 4 - - USER CONTROLLER - KULLANICI KONTROLÖRÜ + + High-shelf gain + Yüksek raf kazancı - - MAPPING FUNCTION - EŞLEŞTİRME FONKSİYONU + + HP res + HP res - - OK - Tamam + + Low-shelf res + Düşük raflı res - - Cancel - İptal + + Peak 1 BW + Tepe 1 BW - - LMMS - LMMS + + Peak 2 BW + Tepe 2 BW - - Cycle Detected. - Döngü Algılandı. + + Peak 3 BW + Tepe 3 BW - - - ControllerRackView - - Controller Rack - Denetleyici Rafı + + Peak 4 BW + Tepe 4 BW - - Add - Ekle + + High-shelf res + Yüksek raf çözünürlüğü - - Confirm Delete - Silmeyi Onayla + + LP res + LP res - - Confirm delete? There are existing connection(s) associated with this controller. There is no way to undo. - Silmeyi onaylıyor musunuz? Bu denetleyiciyle ilişkili mevcut bağlantılar var. Geri almanın bir yolu yok. + + HP freq + HP frekansı - - - ControllerView - - Controls - Kontroller + + Low-shelf freq + Düşük raf frekansı - - Rename controller - Denetleyiciyi yeniden adlandır + + Peak 1 freq + Tepe frekansı 1 - - Enter the new name for this controller - Bu denetleyicinin yeni adını girin + + Peak 2 freq + Tepe frekansı 2 - - LFO - LFO + + Peak 3 freq + Tepe frekansı 3 - - &Remove this controller - Bu denetleyiciyi &kaldırın + + Peak 4 freq + Tepe frekansı 4 - - Re&name this controller - Bu denetleyiciyi yeniden ad&landırın + + High-shelf freq + Yüksek raf frekansı - - - CrossoverEQControlDialog - - Band 1/2 crossover: - Bant geçişi 1/2: + + LP freq + LP frekansı - - Band 2/3 crossover: - Bant geçişi 2/3: + + HP active + HP etkin - - Band 3/4 crossover: - Bant geçişi 3/4: + + Low-shelf active + Düşük raf etkin - - Band 1 gain - Band kazancı 1 + + Peak 1 active + Aktif tepe 1 - - Band 1 gain: - Band kazancı 1: + + Peak 2 active + Aktif tepe 2 - - Band 2 gain - Band kazancı 2 + + Peak 3 active + Aktif tepe 3 - - Band 2 gain: - Band kazancı 2: + + Peak 4 active + Aktif tepe 4 - - Band 3 gain - Band kazancı 3 + + High-shelf active + Yüksek raf etkin - - Band 3 gain: - Band kazancı 3: + + LP active + LP etkin - - Band 4 gain - Band kazancı 4 + + LP 12 + LP 12 - - Band 4 gain: - Band kazancı 4: + + LP 24 + LP 24 - - Band 1 mute - Band 1 sesini kapatma + + LP 48 + LP 48 - - Mute band 1 - Bant 1'in sesini kapat + + HP 12 + HP 12 - - Band 2 mute - Band 2 sesini kapatma + + HP 24 + HP 24 - - Mute band 2 - Band 2'yi sessize al + + HP 48 + HP 48 - - Band 3 mute - Band 3 sesini kapatma + + Low-pass type + Düşük geçişli tip - - Mute band 3 - Bant 3'ü sessize al + + High-pass type + Yüksek geçişli tip - - Band 4 mute - Band 4 sesini kapatma + + Analyse IN + GİRİŞ'i analiz et - - Mute band 4 - Bant 4'ü sessize al + + Analyse OUT + ÇIKIŞ'ı analiz et - DelayControls + lmms::FlangerControls - + Delay samples Gecikme örnekleri - - Feedback - Geri bildirim - - - + LFO frequency LFO frekansı - - LFO amount - LFO miktarı + + Amount + - - Output gain - Çıkış kazancı + + Stereo phase + Stereo faz - - - DelayControlsDialog - - DELAY - GECİKME + + Feedback + - - Delay time - Gecikme süresi + + Noise + Gürültü - - FDBK - FDBK + + Invert + Tersine çevir + + + lmms::FreeBoyInstrument - - Feedback amount - Geri bildirim miktarı + + Sweep time + Tarama zamanı - - RATE - ORAN + + Sweep direction + Tarama yönü - - LFO frequency - LFO frekansı + + Sweep rate shift amount + Tarama oranı kaydırma miktarı - - AMNT - AMNT + + + Wave pattern duty cycle + Dalga deseni görev döngüsü - - LFO amount - LFO miktarı + + Channel 1 volume + Kanal 1 düzeyi - - Out gain - Çıkış kazancı + + + + Volume sweep direction + Düzey tarama yönü - - Gain - Kazanç + + + + Length of each step in sweep + Taramadaki her adımın uzunluğu - - - Dialog - - Add JACK Application - JACK Uygulaması Ekle + + Channel 2 volume + Kanal 2 düzeyi - - Note: Features not implemented yet are greyed out - Not: Henüz uygulanmayan özellikler gri renkte görünür + + Channel 3 volume + Kanal 3 düzeyi - - Application - Uygulama + + Channel 4 volume + Kanal 4 düzeyi - - Name: - İsim: + + Shift Register width + Kayıt genişliğini kaydır - - Application: - Uygulama: + + Right output level + Sağ çıkış seviyesi - - From template - Şablondan + + Left output level + Sol çıkış seviyesi - - Custom - Özelleştirilmiş + + Channel 1 to SO2 (Left) + Kanal 1'den SO2'ye (Sol) - - Template: - Şablon: + + Channel 2 to SO2 (Left) + Kanal 2'den SO2'ye (Sol) - - Command: - Komut: + + Channel 3 to SO2 (Left) + Kanal 3'den SO2'ye (Sol) - - Setup - Kurulum + + Channel 4 to SO2 (Left) + Kanal 4'den SO2'ye (Sol) - - Session Manager: - Oturum Yöneticisi: + + Channel 1 to SO1 (Right) + Kanal 1'den SO1'e (Sağ) - - None - Hiç + + Channel 2 to SO1 (Right) + Kanal 2'den SO1'e (Sağ) - - Audio inputs: - Ses girişleri: + + Channel 3 to SO1 (Right) + Kanal 3'den SO1'e (Sağ) - - MIDI inputs: - MIDI girişleri: + + Channel 4 to SO1 (Right) + Kanal 4'den SO1'e (Sağ) - - Audio outputs: - Ses çıkışları: + + Treble + Tiz - - MIDI outputs: - MIDI çıkışları: + + Bass + Bas + + + lmms::GigInstrument - - Take control of main application window - Ana uygulama penceresinin kontrolünü elinize alın + + Bank + Yuva - - Workarounds - Çözümler + + Patch + Yama - - Wait for external application start (Advanced, for Debug only) - Harici uygulamanın başlamasını bekleyin (Gelişmiş, yalnızca Hata Ayıklama için) + + Gain + Kazanç + + + lmms::GranularPitchShifterControls - - Capture only the first X11 Window - Yalnızca ilk X11 Penceresini yakalayın + + Pitch + - - Use previous client output buffer as input for the next client - Önceki istemci çıktı arabelleğini sonraki istemci için girdi olarak kullan + + Grain Size + - - Simulate 16 JACK MIDI outputs, with MIDI channel as port index - Port indeksi olarak MIDI kanalı ile 16 JACK MIDI çıkışını simüle edin + + Spray + - - Error here - Hata burada + + Jitter + - - Carla Control - Connect - Carla Control - Bağlan + + Twitch + - - Remote setup - Uzaktan kurulum + + Pitch Stereo Spread + - - UDP Port: - UDP Bağlantı Noktası: + + Spray Stereo + - - Remote host: - Uzak ana bilgisayar: + + Shape + - - TCP Port: - TCP Bağlantı Noktası: + + Fade Length + - - Reported host - Bildirilen ana bilgisayar + + Feedback + - - Automatic - Otomatik + + Minimum Allowed Latency + - - Custom: - Özel: + + Prefilter + - - In some networks (like USB connections), the remote system cannot reach the local network. You can specify here which hostname or IP to make the remote Carla connect to. -If you are unsure, leave it as 'Automatic'. - Bazı ağlarda (USB bağlantıları gibi), uzak sistem yerel ağa erişemez. Burada Carla'nın uzaktan bağlanacağı ana bilgisayar adını veya IP'yi belirtebilirsiniz. -Emin değilseniz, "Otomatik" olarak bırakın. + + Density + - - Set value - Değeri ayarla + + Glide + - - TextLabel - MetinEtiketi + + Ring Buffer Length + - - Scale Points - Ölçek Puanları + + 5 Seconds + - - - DriverSettingsW - - Driver Settings - Sürücü Ayarları + + 10 Seconds (Size) + - - Device: - Aygıt: + + 40 Seconds (Size and Pitch) + - - Buffer size: - Arabellek boyutu: + + 40 Seconds (Size and Spray and Jitter) + - - Sample rate: - Örnekleme oranı: + + 120 Seconds (All of the above) + + + + lmms::InstrumentFunctionArpeggio - - Triple buffer - Üçlü arabellek + + Arpeggio + Arpej - - Show Driver Control Panel - Sürücü Kontrol Panelini Göster + + Arpeggio type + Arpej türü - - Restart the engine to load the new settings - Yeni ayarları yüklemek için motoru yeniden başlatın + + Arpeggio range + Arpej aralığı - - - DualFilterControlDialog - - - FREQ - FREK + + Note repeats + Nota tekrarları - - - Cutoff frequency - Kesme frekansı + + Cycle steps + Döngü adımları - - - RESO - RESO + + Skip rate + Atlama oranı - - - Resonance - Çınlama + + Miss rate + Iskalama oranı - - - GAIN - KAZANÇ + + Arpeggio time + Arpej zamanı - - - Gain - Kazanç + + Arpeggio gate + Arpej kapısı - - MIX - KARIŞIM + + Arpeggio direction + Arpej yönü - - Mix - Karıştır + + Arpeggio mode + Arpej modu - - Filter 1 enabled - Filtre 1 etkinleştirildi + + Up + Üst - - Filter 2 enabled - Filtre 2 etkinleştirildi + + Down + Aşağı - - Enable/disable filter 1 - Filtre 1'i etkinleştir / devre dışı bırak + + Up and down + Yukarı ve aşağı - - Enable/disable filter 2 - Filtre 2'yi etkinleştir / devre dışı bırak + + Down and up + Aşağı ve yukarı - - - DualFilterControls - - Filter 1 enabled - Filtre 1 etkinleştirildi + + Random + Rastgele - - Filter 1 type - Filtre türü 1 + + Free + Boş - - Cutoff frequency 1 - Kesme frekansı 1 + + Sort + Sırala - - Q/Resonance 1 - Q/Rezonans 1 + + Sync + Eşitle + + + lmms::InstrumentFunctionNoteStacking - - Gain 1 - Kazanç 1 + + Chords + Akordlar - - Mix - Karıştır + + Chord type + Akord türü - - Filter 2 enabled - Filtre 2 etkinleştirildi + + Chord range + Akord aralığı + + + lmms::InstrumentSoundShaping - - Filter 2 type - Filtre türü 2 + + Envelopes/LFOs + Zarflar / LFO'lar - - Cutoff frequency 2 - Kesme frekansı 2 + + Filter type + Filtre tipi - - Q/Resonance 2 - Q/Rezonans 2 + + Cutoff frequency + Kesme frekansı - - Gain 2 - Kazanç 2 + + Q/Resonance + Q/Rezonans - - + Low-pass Düşük geçiş - - + Hi-pass Yüksek geçiş - - + Band-pass csg Bant geçişli csg - - + Band-pass czpg Bant geçişli czpg - - + Notch Çentik - - + All-pass Tamamı bitti - - + Moog Moog - - + 2x Low-pass 2x Düşük geçiş - - + RC Low-pass 12 dB/oct - RC Düşük geçişli 12 dB / oct + RC Düşük geçişli 12 dB/oct - - + RC Band-pass 12 dB/oct - RC Bant geçişi 12 dB / oct + RC Bant geçişi 12 dB/oct - - + RC High-pass 12 dB/oct - RC Yüksek Geçişli 12 dB / oct + RC Yüksek Geçişli 12 dB/oct - - + RC Low-pass 24 dB/oct - RC Düşük geçişli 24 dB / oct + RC Düşük geçişli 24 dB/oct - - + RC Band-pass 24 dB/oct - RC Bant geçişi 24 dB / oct + RC Bant geçişi 24 dB/oct - - + RC High-pass 24 dB/oct - RC Yüksek Geçişli 24 dB / oct + RC Yüksek Geçişli 24 dB/oct - - + Vocal Formant Vokal Biçimlendirici - - + 2x Moog 2x Moog - - + SV Low-pass SV Düşük geçiş - - - SV Band-pass - SV Bant geçişi + + SV Band-pass + SV Bant geçişi + + + + SV High-pass + SV Yüksek geçiş + + + + SV Notch + SV Çentiği + + + + Fast Formant + Hızlı Biçimlendirici + + + + Tripole + Üçlü + + + + lmms::InstrumentTrack + + + + unnamed_track + adsız_parça + + + + Base note + Temel nota + + + + First note + İlk nota + + + + Last note + Son nota + + + + Volume + Düzey + + + + Panning + Kaydırma + + + + Pitch + Saha + + + + Pitch range + Eğim aralığı + + + + Mixer channel + FX kanalı + + + + Master pitch + Ana sahne + + + + Enable/Disable MIDI CC + MIDI CC'yi Etkinleştir / Devre Dışı Bırak + + + + CC Controller %1 + CC Denetleyicisi %1 + + + + + Default preset + Varsayılan ön ayar + + + + lmms::Keymap + + + empty + boş + + + + lmms::KickerInstrument + + + Start frequency + Başlangıç frekansı + + + + End frequency + Bitiş frekansı - - - SV High-pass - SV Yüksek geçiş + + Length + Süre - - - SV Notch - SV Notch + + Start distortion + Bozulmayı başlat - - - Fast Formant - Hızlı Biçimlendirici + + End distortion + Bozulmayı bitir - - - Tripole - Üçlü + + Gain + Kazanç - - - Editor - - Transport controls - Aktarım kontrolleri + + Envelope slope + Zarf eğimi - - Play (Space) - Oynat (Boşluk) + + Noise + Gürültü - - Stop (Space) - Durdur ( Boşluk) + + Click + Tıkla - - Record - Kayıt + + Frequency slope + Frekans eğimi - - Record while playing - Çalarken kayıt + + Start from note + Notadan başla - - Toggle Step Recording - Adım Kaydı Değiştir + + End to note + Notanın sonu - Effect + lmms::LOMMControls - - Effect enabled - Efekt etkinleştirildi + + Depth + - - Wet/Dry mix - Islak / Kuru karışım + + Time + - - Gate - Geçit + + Input Volume + - - Decay - Bozunma + + Output Volume + - - - EffectChain - - Effects enabled - Efektler etkinleştirildi + + Upward Depth + - - - EffectRackView - - EFFECTS CHAIN - ETKİ ZİNCİRİ + + Downward Depth + - - Add effect - Efekt ekleyin + + High/Mid Split + - - - EffectSelectDialog - - Add effect - Efekt ekleyin + + Mid/Low Split + - - - Name - İsim + + Enable High/Mid Split + - - Type - Tip + + Enable Mid/Low Split + - - Description - Açıklama + + Enable High Band + - - Author - Yazar + + Enable Mid Band + - - - EffectView - - On/Off - Aç/Kapat + + Enable Low Band + - - W/D - I/K + + High Input Volume + - - Wet Level: - Islak düzey: + + Mid Input Volume + - - DECAY - BOZULMA + + Low Input Volume + - - Time: - Zaman: + + High Output Volume + - - GATE - PORTAL + + Mid Output Volume + - - Gate: - Portal: + + Low Output Volume + - - Controls - Kontroller + + Above Threshold High + - - Move &up - Y&ukarı taşı + + Above Threshold Mid + - - Move &down - &Aşağı taşı + + Above Threshold Low + - - &Remove this plugin - Bu eklentiyi &kaldır + + Above Ratio High + - - - EnvelopeAndLfoParameters - - Env pre-delay - Env ön gecikme + + Above Ratio Mid + - - Env attack - Env saldırısı + + Above Ratio Low + - - Env hold - Env tutma + + Below Threshold High + - - Env decay - Env bozunma + + Below Threshold Mid + - - Env sustain - Env sürdürmek + + Below Threshold Low + - - Env release - Env yayınlama + + Below Ratio High + - - Env mod amount - Env mod miktarı + + Below Ratio Mid + - - LFO pre-delay - LFO ön gecikmesi + + Below Ratio Low + - - LFO attack - LFO saldırısı + + Attack High + - - LFO frequency - LFO frekansı + + Attack Mid + - - LFO mod amount - LFO mod miktarı + + Attack Low + - - LFO wave shape - LFO dalga şekli + + Release High + - - LFO frequency x 100 - LFO frekansı x 100 + + Release Mid + - - Modulate env amount - Ortam miktarını değiştir + + Release Low + - - - EnvelopeAndLfoView - - - DEL - SİL + + RMS Time + - - - Pre-delay: - Ön gecikme: + + Knee + - - - ATT - ATT + + Range + - - - Attack: - Saldırı: + + Balance + - - HOLD - TUT + + Scale output volume with Depth + - - Hold: - Ambar: + + Stereo Link + - - DEC - DEC + + Auto Time + - - Decay: - Bozunma: + + Mix + - - SUST - SUST + + Feedback + - - Sustain: - Sürdürmek: + + Mid/Side + - - REL - REL + + Lookahead + - - Release: - Yayınla: + + Lookahead Length + - - - AMT - AMT + + Suppress upward compression for side band + + + + lmms::LadspaControl - - - Modulation amount: - Modülasyon miktarı: + + Link channels + Kanalları bağla + + + lmms::LadspaEffect - - SPD - SPD + + Unknown LADSPA plugin %1 requested. + Bilinmeyen LADSPA eklentisi %1 istendi. + + + lmms::Lb302Synth - - Frequency: - Frekans: + + VCF Cutoff Frequency + VCF Kesme Frekansı - - FREQ x 100 - FREQ x 100 + + VCF Resonance + VCF Rezonansı - - Multiply LFO frequency by 100 - LFO frekansını 100 ile çarpın + + VCF Envelope Mod + VCF Zarf Modu - - MODULATE ENV AMOUNT - ENV MİKTARINI MODÜLE EDİN + + VCF Envelope Decay + VCF Zarf Bozulması - - Control envelope amount by this LFO - Bu LFO ile kontrol zarfı miktarı + + Distortion + Bozma - - ms/LFO: - ms/LFO: + + Waveform + Dalga şekli - - Hint - İpucu + + Slide Decay + Bozulma Kaydırma - - Drag and drop a sample into this window. - Bu pencereye bir numune sürükleyip bırakın. + + Slide + Kaydır - - - EqControls - - Input gain - Giriş kazancı + + Accent + Vurgu - - Output gain - Çıkış kazancı + + Dead + Ölü - - Low-shelf gain - Düşük raf kazancı + + 24dB/oct Filter + 24dB/oct FiltRESİ + + + lmms::LfoController - - Peak 1 gain - Tepe kazancı 1 + + LFO Controller + LFO Denetleyicisi - - Peak 2 gain - Tepe kazancı 2 + + Base value + Temel değer - - Peak 3 gain - Tepe kazancı 3 + + Oscillator speed + Osilatör hızı - - Peak 4 gain - Tepe kazancı 4 + + Oscillator amount + Osilatör miktarı - - High-shelf gain - Yüksek raf kazancı + + Oscillator phase + Osilatör fazı - - HP res - HP res + + Oscillator waveform + Osilatör dalga formu - - Low-shelf res - Düşük raflı res + + Frequency Multiplier + Frekans Çarpanı - - Peak 1 BW - Tepe 1 BW + + Sample not found + + + + lmms::MalletsInstrument - - Peak 2 BW - Tepe 2 BW + + Hardness + Sertlik - - Peak 3 BW - Tepe 3 BW + + Position + Konum - - Peak 4 BW - Tepe 4 BW + + Vibrato gain + Titreşim kazancı - - High-shelf res - Yüksek raf çözünürlüğü + + Vibrato frequency + Titreşim frekansı - - LP res - LP res + + Stick mix + Çubuk karıştırıcı - - HP freq - HP frekansı + + Modulator + Modülatör - - Low-shelf freq - Düşük raf frekansı + + Crossfade + Çapraz geçiş - - Peak 1 freq - Tepe frekansı 1 + + LFO speed + LFO hızı - - Peak 2 freq - Tepe frekansı 2 + + LFO depth + LFO derinliği - - Peak 3 freq - Tepe frekansı 3 + + ADSR + ADSR - - Peak 4 freq - Tepe frekansı 4 + + Pressure + Basınç - - High-shelf freq - Yüksek raf frekansı + + Motion + Hareket - - LP freq - LP frekansı + + Speed + Hız - - HP active - HP etkin + + Bowed + Eğilmiş - - Low-shelf active - Düşük raf etkin + + Instrument + - - Peak 1 active - Aktif tepe 1 + + Spread + Etrafa Saç - - Peak 2 active - Aktif tepe 2 + + Randomness + - - Peak 3 active - Aktif tepe 3 + + Marimba + Marimba - - Peak 4 active - Aktif tepe 4 + + Vibraphone + Vibrafon - - High-shelf active - Yüksek raf etkin + + Agogo + Agogo - - LP active - LP etkin + + Wood 1 + Ahşap 1 - - LP 12 - LP 12 + + Reso + Reso - - LP 24 - LP 24 + + Wood 2 + Ahşap 2 - - LP 48 - LP 48 + + Beats + Vuruşlar - - HP 12 - HP 12 + + Two fixed + İki sabit - - HP 24 - HP 24 + + Clump + Tortu - - HP 48 - HP 48 + + Tubular bells + Borulu çanlar - - Low-pass type - Düşük geçişli tip + + Uniform bar + Üniforma çubuğu - - High-pass type - Yüksek geçişli tip + + Tuned bar + Ayarlanmış çubuk - - Analyse IN - Analiz GİRİŞİ + + Glass + Cam - - Analyse OUT - Analiz ÇIKIŞI + + Tibetan bowl + Tibet kase - EqControlsDialog + lmms::MeterModel - - HP - HP + + Numerator + Pay - - Low-shelf - Düşük raf + + Denominator + Payda + + + lmms::Microtuner - - Peak 1 - Tepe 1 + + Microtuner + Mikro ayarlayıcı - - Peak 2 - Tepe 2 + + Microtuner on / off + Mikro ayarlayıcı açık / kapalı - - Peak 3 - Tepe 3 + + Selected scale + Seçili ölçek - - Peak 4 - Tepe 4 + + Selected keyboard mapping + Seçilen klavye eşlemesi + + + lmms::MidiController - - High-shelf - Yüksek raf + + MIDI Controller + MIDI Denetleyicisi - - LP - LP + + unnamed_midi_controller + adsız_midi_denetleyici + + + lmms::MidiImport - - Input gain - Giriş kazancı + + + Setup incomplete + Kurulum tamamlanmadı - - - - Gain - Kazanç + + You have not set up a default soundfont in the settings dialog (Edit->Settings). Therefore no sound will be played back after importing this MIDI file. You should download a General MIDI soundfont, specify it in settings dialog and try again. + Ayarlar iletişim kutusunda (Düzenle-> Ayarlar) varsayılan bir ses yazı tipi ayarlamadınız. Bu nedenle, bu MIDI dosyasını içe aktardıktan sonra hiçbir ses çalınmayacaktır. Bir Genel MIDI ses yazı tipi indirmeli, bunu ayarlar iletişim kutusunda belirtmeli ve tekrar denemelisiniz. - - Output gain - Çıkış kazancı + + You did not compile LMMS with support for SoundFont2 player, which is used to add default sound to imported MIDI files. Therefore no sound will be played back after importing this MIDI file. + LMMS'yi içe aktarılan MIDI dosyalarına varsayılan ses eklemek için kullanılan SoundFont2 oynatıcı desteğiyle derlemediniz. Bu nedenle, bu MIDI dosyasını içe aktardıktan sonra hiçbir ses çalınmayacaktır. - - Bandwidth: - Bant genişliği: + + MIDI Time Signature Numerator + MIDI Zaman İmza Payı - - Octave - Octave + + MIDI Time Signature Denominator + MIDI Zaman İmza Paydası - - Resonance : - Rezonans : + + Numerator + Pay - - Frequency: - Frekans: + + Denominator + Payda - - LP group - LP grubu + + + Tempo + Tempo - - HP group - HP grubu + + Track + Parça - EqHandle - - - Reso: - Reso: - + lmms::MidiJack - - BW: - BW: + + JACK server down + When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (title) + JACK sunucusu kapalı - - - Freq: - Freq: + + The JACK server seems to be shuted down. + When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (dialog message) + JACK sunucusu kapatılmış görünüyor. - ExportProjectDialog + lmms::MidiPort - - Export project - Projeyi dışa aktar + + Input channel + Giriş kanalı - - Export as loop (remove extra bar) - Döngü olarak dışa aktar (fazla çubuğu kaldırın) + + Output channel + Çıkış kanalı - - Export between loop markers - Döngü işaretleyicileri arasında dışa aktar + + Input controller + Giriş kontrolörü - - Render Looped Section: - Döngülü Bölümü Oluştur: + + Output controller + Çıkış denetleyicisi - - time(s) - zamanlar) + + Fixed input velocity + Sabit giriş hızı - - File format settings - Dosya biçimi ayarları + + Fixed output velocity + Sabit çıkış hızı - - File format: - Dosya biçimi: + + Fixed output note + Sabit çıktı notu - - Sampling rate: - Örnekleme oranı: + + Output MIDI program + MIDI programı çıktısı - - 44100 Hz - 44100 Hz + + Base velocity + Temel hız - - 48000 Hz - 48000 Hz + + Receive MIDI-events + MIDI olaylarını alın - - 88200 Hz - 88200 Hz + + Send MIDI-events + MIDI olayları gönder + + + lmms::Mixer - - 96000 Hz - 96000 Hz + + Master + Usta - - 192000 Hz - 192000 Hz + + + + Channel %1 + FX %1 - - Bit depth: - Bit derinliği: + + Volume + Ses Düzeyi - - 16 Bit integer - 16 Bit tam sayı + + Mute + Sustur - - 24 Bit integer - 24 Bit tam sayı + + Solo + Tek + + + lmms::MixerRoute - - 32 Bit float - 32 Bit kayan + + + Amount to send from channel %1 to channel %2 + %1 kanalından %2 kanalına gönderilecek miktar + + + lmms::MonstroInstrument - - Stereo mode: - Stereo modu: + + Osc 1 volume + Osc 1 düzey - - Mono - Mono + + Osc 1 panning + Osc 1 kaydırma - - Stereo - Stereo + + Osc 1 coarse detune + Osc 1 kaba detay - - Joint stereo - Ortak stereo + + Osc 1 fine detune left + Osc 1 ince detay sol - - Compression level: - Sıkıştırma seviyesi: + + Osc 1 fine detune right + Osc 1 ince detay sağ - - Bitrate: - Bit oranı: + + Osc 1 stereo phase offset + Osc 1 çift kanal faz ofseti - - 64 KBit/s - 64 KBit/s + + Osc 1 pulse width + Osc 1 darbe genişliği - - 128 KBit/s - 128 KBit/s + + Osc 1 sync send on rise + Osc 1 nsenkronizasyonu yükselişte gönder - - 160 KBit/s - 160 KBit/s + + Osc 1 sync send on fall + Osc 1 senkronizasyonu sonbaharda gönder - - 192 KBit/s - 192 KBit/s + + Osc 2 volume + Osc 2 düzey - - 256 KBit/s - 256 KBit/s + + Osc 2 panning + Osc 2 kaydırma - - 320 KBit/s - 320 KBit/s + + Osc 2 coarse detune + Osc 2 kaba detay - - Use variable bitrate - Değişken bit hızı kullan + + Osc 2 fine detune left + Osc 2 ince detay sol - - Quality settings - Kalite ayarları + + Osc 2 fine detune right + Osc 2 ince detay sağ - - Interpolation: - Aradeğerleme: + + Osc 2 stereo phase offset + Osc 2 çift kanal faz ofseti - - Zero order hold - Sıfır emir tutma + + Osc 2 waveform + Osc 2 dalga formu - - Sinc worst (fastest) - Sinc en kötü (en hızlı) + + Osc 2 sync hard + Osc 2 senkronizasyonu zor - - Sinc medium (recommended) - Sinc orta (önerilir) + + Osc 2 sync reverse + Osc 2 senkronizasyon ters - - Sinc best (slowest) - En iyi (en yavaş) + + Osc 3 volume + Osc 3 düzey + + + + Osc 3 panning + Osc 3 kaydırma - - Oversampling: - Yüksek hızda örnekleme: + + Osc 3 coarse detune + Osc 3 kaba detay - - 1x (None) - 1x (Hiçbiri) + + Osc 3 Stereo phase offset + Osc 3 çift kanal faz ofseti - - 2x - 2x + + Osc 3 sub-oscillator mix + Osc 3 alt osilatör karışımı - - 4x - 4x + + Osc 3 waveform 1 + Osc 3 dalga formu 1 - - 8x - 8x + + Osc 3 waveform 2 + Osc 3 dalga formu 2 - - Start - Başlat + + Osc 3 sync hard + Osc 3 senkronizasyonu zor - - Cancel - İptal + + Osc 3 Sync reverse + Osc 3 Senkronizasyon ters - - Could not open file - Dosya açılamadı + + LFO 1 waveform + LFO 1 dalga formu - - Could not open file %1 for writing. -Please make sure you have write permission to the file and the directory containing the file and try again! - %1 dosyası yazmak için açılamadı. -Lütfen dosyaya ve dosyayı içeren dizine yazma izniniz olduğundan emin olun ve tekrar deneyin! + + LFO 1 attack + LFO 1 saldırısı - - Export project to %1 - %1 projesini dışa aktar + + LFO 1 rate + LFO 1 oran - - ( Fastest - biggest ) - (En hızlı - en büyük) + + LFO 1 phase + LFO 1 aşaması - - ( Slowest - smallest ) - (En yavaş - en küçük) + + LFO 2 waveform + LFO 2 dalga formu - - Error - Hata + + LFO 2 attack + LFO 2 saldırısı - - Error while determining file-encoder device. Please try to choose a different output format. - Dosya kodlayıcı cihazı belirlenirken hata oluştu. Lütfen farklı bir çıktı biçimi seçmeyi deneyin. + + LFO 2 rate + LFO 2 oran - - Rendering: %1% - Oluşturuluyor: %1% + + LFO 2 phase + LFO 2 aşaması - - - Fader - - Set value - Değeri ayarla + + Env 1 pre-delay + Env 1 ön gecikme - - Please enter a new value between %1 and %2: - Lütfen %1 ile %2 arasında yeni bir değer girin: + + Env 1 attack + Env 1 saldırısı - - - FileBrowser - - User content - Kullanıcı içeriği + + Env 1 hold + Env 1 tutma - - Factory content - Fabrika içeriği + + Env 1 decay + Env 1 bozunma - - Browser - Tarayıcı + + Env 1 sustain + Env 1 sürdürmek - - Search - Arama + + Env 1 release + Env 1 yayını - - Refresh list - Listeyi yenile + + Env 1 slope + Env 1 eğimi - - - FileBrowserTreeWidget - - Send to active instrument-track - Aktif alet izine gönder + + Env 2 pre-delay + Env 2 ön gecikmesi - - Open containing folder - Bulunduğu dizini aç + + Env 2 attack + Env 2 saldırısı - - Song Editor - Şarkı Düzenleyici + + Env 2 hold + Env 2 tutma - - BB Editor - BB Düzenleyici + + Env 2 decay + Env 2 bozunma - - Send to new AudioFileProcessor instance - Yeni Ses Dosyası İşlemcisi örneğine gönder + + Env 2 sustain + Env 2 sürdürmek - - Send to new instrument track - Yeni enstrüman kanalına gönder + + Env 2 release + Env 2 yayını - - (%2Enter) - (%2Enter) + + Env 2 slope + Env 2 eğimi - - Send to new sample track (Shift + Enter) - Yeni örnek kanala gönder (Shift + Enter) + + Osc 2+3 modulation + Osc 2+3 modülasyonu - - Loading sample - Örnek yükleniyor + + Selected view + Seçili görünüm - - Please wait, loading sample for preview... - Lütfen bekleyin, önizleme için örnek yükleniyor... + + Osc 1 - Vol env 1 + Osc 1 - Düzey env 1 - - Error - Hata + + Osc 1 - Vol env 2 + Osc 1 - Düzey env 2 - - %1 does not appear to be a valid %2 file - %1 geçerli bir %2 dosyası gibi görünmüyor + + Osc 1 - Vol LFO 1 + Osc 1 - Düzey LFO 1 - - --- Factory files --- - --- Fabrika dosyaları --- + + Osc 1 - Vol LFO 2 + Osc 1 - Düzey LFO 2 - - - FlangerControls - - Delay samples - Gecikme örnekleri + + Osc 2 - Vol env 1 + Osc 2 - Düzey env 1 - - LFO frequency - LFO frekansı + + Osc 2 - Vol env 2 + Osc 2 - Düzey env 2 - - Seconds - Saniye + + Osc 2 - Vol LFO 1 + Osc 2 - Düzey LFO 1 - - Stereo phase - Stereo faz + + Osc 2 - Vol LFO 2 + Osc 2 - Düzey LFO 2 - - Regen - Regen + + Osc 3 - Vol env 1 + Osc 3 - Düzey env 1 - - Noise - Parazit + + Osc 3 - Vol env 2 + Osc 3 - Düzey env 2 - - Invert - Tersine çevir + + Osc 3 - Vol LFO 1 + Osc 3 - Düzey LFO 1 - - - FlangerControlsDialog - - DELAY - GECİKME + + Osc 3 - Vol LFO 2 + Osc 3 - Düzey LFO 2 - - Delay time: - Gecikme süresi: + + Osc 1 - Phs env 1 + Osc 1 - Phs env 1 - - RATE - ORAN + + Osc 1 - Phs env 2 + Osc 1 - Phs env 2 - - Period: - Periyod: + + Osc 1 - Phs LFO 1 + Osc 1 - Phs LFO 1 - - AMNT - AMNT + + Osc 1 - Phs LFO 2 + Osc 1 - Phs LFO 2 - - Amount: - Miktar: + + Osc 2 - Phs env 1 + Osc 2 - Phs env 1 - - PHASE - Evre + + Osc 2 - Phs env 2 + Osc 2 - Phs env 2 - - Phase: - Evre: + + Osc 2 - Phs LFO 1 + Osc 2 - Phs LFO 1 - - FDBK - FDBK + + Osc 2 - Phs LFO 2 + Osc 2 - Phs LFO 2 - - Feedback amount: - Geri bildirim miktarı: + + Osc 3 - Phs env 1 + Osc 3 - Phs env 1 - - NOISE - PARAZİT + + Osc 3 - Phs env 2 + Osc 3 - Phs env 2 - - White noise amount: - Beyaz gürültü miktarı: + + Osc 3 - Phs LFO 1 + Osc 3 - Phs LFO 1 - - Invert - Tersine çevir + + Osc 3 - Phs LFO 2 + Osc 3 - Phs LFO 2 - - - FreeBoyInstrument - - Sweep time - Tarama zamanı + + Osc 1 - Pit env 1 + Osc 1 - Pit env 1 - - - Sweep direction - Tarama yönü + + + Osc 1 - Pit env 2 + Osc 1 - Pit env 2 - - Sweep rate shift amount - Tarama oranı kaydırma miktarı + + Osc 1 - Pit LFO 1 + Osc 1 - Pit LFO 1 - - - Wave pattern duty cycle - Dalga deseni görev döngüsü + + Osc 1 - Pit LFO 2 + Osc 1 - Pit LFO 2 - - Channel 1 volume - Kanal 1 düzeyi + + Osc 2 - Pit env 1 + Osc 2 - Pit env 1 - - - - Volume sweep direction - Düzey tarama yönü + + Osc 2 - Pit env 2 + Osc 2 - Pit env 2 - - - - Length of each step in sweep - Taramadaki her adımın uzunluğu + + Osc 2 - Pit LFO 1 + Osc 2 - Pit LFO 1 - - Channel 2 volume - Kanal 2 düzeyi + + Osc 2 - Pit LFO 2 + Osc 2 - Pit LFO 2 - - Channel 3 volume - Kanal 3 düzeyi + + Osc 3 - Pit env 1 + Osc 3 - Pit env 1 - - Channel 4 volume - Kanal 4 düzeyi + + Osc 3 - Pit env 2 + Osc 3 - Pit env 2 - - Shift Register width - Vardiya Kaydı genişliği + + Osc 3 - Pit LFO 1 + Osc 3 - Pit LFO 1 - - Right output level - Sağ çıkış seviyesi + + Osc 3 - Pit LFO 2 + Osc 3 - Pit LFO 2 - - Left output level - Sol çıkış seviyesi + + Osc 1 - PW env 1 + Osc 1 - PW env 1 - - Channel 1 to SO2 (Left) - Kanal 1'den SO2'ye (Sol) + + Osc 1 - PW env 2 + Osc 1 - PW env 2 - - Channel 2 to SO2 (Left) - Kanal 2'den SO2'ye (Sol) + + Osc 1 - PW LFO 1 + Osc 1 - PW LFO 1 - - Channel 3 to SO2 (Left) - Kanal 3'den SO2'ye (Sol) + + Osc 1 - PW LFO 2 + Osc 1 - PW LFO 2 - - Channel 4 to SO2 (Left) - Kanal 4'den SO2'ye (Sol) + + Osc 3 - Sub env 1 + Osc 3 - Sub env 1 - - Channel 1 to SO1 (Right) - Kanal 1'den SO1'e (Sağ) + + Osc 3 - Sub env 2 + Osc 3 - Sub env 2 - - Channel 2 to SO1 (Right) - Kanal 2'den SO1'e (Sağ) + + Osc 3 - Sub LFO 1 + Osc 3 - Sub LFO 1 - - Channel 3 to SO1 (Right) - Kanal 3'den SO1'e (Sağ) + + Osc 3 - Sub LFO 2 + Osc 3 - Sub LFO 2 - - Channel 4 to SO1 (Right) - Kanal 4'den SO1'e (Sağ) + + + Sine wave + Sinüs dalgası - - Treble - Tiz + + Bandlimited Triangle wave + Band sınırlı Üçgen dalga - - Bass - Bas + + Bandlimited Saw wave + Bant sınırı Testere dalgası - - - FreeBoyInstrumentView - - Sweep time: - Tarama zamanı: + + Bandlimited Ramp wave + Bant sınırlı Rampa dalgası - - Sweep time - Tarama zamanı + + Bandlimited Square wave + Bant sınırı Kare dalga - - Sweep rate shift amount: - Tarama oranı kaydırma miktarı: + + Bandlimited Moog saw wave + Band sınırlı Moog testere dalgası - - Sweep rate shift amount - Tarama oranı kaydırma miktarı + + + Soft square wave + Yumuşak kare dalga - - - Wave pattern duty cycle: - Dalga deseni görev döngüsü: + + Absolute sine wave + Mutlak sinüs dalgası - - - Wave pattern duty cycle - Dalga deseni görev döngüsü + + + Exponential wave + Üstel dalga - - Square channel 1 volume: - Kare kanal 1 düzeyi: + + White noise + Beyaz gürültü - - Square channel 1 volume - Kare kanal 1 düzeyi + + Digital Triangle wave + Dijital Üçgen dalga - - - - Length of each step in sweep: - Taramadaki her adımın uzunluğu: + + Digital Saw wave + Dijital Testere dalgası - - - - Length of each step in sweep - Taramadaki her adımın uzunluğu + + Digital Ramp wave + Dijital Rampa dalgası - - Square channel 2 volume: - Kare kanal 2 düzeyi: + + Digital Square wave + Dijital Kare dalga - - Square channel 2 volume - Kare kanal 2 düzeyi + + Digital Moog saw wave + Digital Moog testere dalgası - - Wave pattern channel volume: - Dalga deseni kanal düzeyi: + + Triangle wave + Üçgen dalga - - Wave pattern channel volume - Dalga deseni kanal düzeyi + + Saw wave + Testere dalga - - Noise channel volume: - Gürültü kanalı düzeyi: + + Ramp wave + Rampa dalgası - - Noise channel volume - Gürültü kanalı düzeyi + + Square wave + Kare dalgası - - SO1 volume (Right): - SO2 düzeyi (Sağ): + + Moog saw wave + Moog testere dalgası - - SO1 volume (Right) - SO2 düzeyi (Sağ) + + Abs. sine wave + Abs. sinüs dalgası - - SO2 volume (Left): - SO2 düzeyi (Sol): + + Random + Rastgele - - SO2 volume (Left) - SO2 düzeyi (Sol) + + Random smooth + Rastgele pürüzsüz + + + lmms::NesInstrument - - Treble: - Tiz: + + Channel 1 enable + - - Treble - Tiz + + Channel 1 coarse detune + Kanal 1 kaba detune - - Bass: - Bas: + + Channel 1 volume + Kanal 1 düzeyi - - Bass - Bas + + Channel 1 envelope enable + - - Sweep direction - Tarama yönü + + Channel 1 envelope loop + - - - - - - Volume sweep direction - Düzey tarama yönü + + Channel 1 envelope length + Kanal 1 zarf uzunluğu - - Shift register width - Vardiya kaydı genişliği + + Channel 1 duty cycle + Kanal 1 görev döngüsü - - Channel 1 to SO1 (Right) - Kanal 1'den SO1'e (Sağ) + + Channel 1 sweep enable + - - Channel 2 to SO1 (Right) - Kanal 2'den SO1'e (Sağ) + + Channel 1 sweep amount + Kanal 1 tarama miktarı - - Channel 3 to SO1 (Right) - Kanal 3'den SO1'e (Sağ) + + Channel 1 sweep rate + Kanal 1 tarama hızı - - Channel 4 to SO1 (Right) - Kanal 4'den SO1'e (Sağ) + + Channel 2 enable + - - Channel 1 to SO2 (Left) - Kanal 1'den SO2'ye (Sol) + + Channel 2 coarse detune + - - Channel 2 to SO2 (Left) - Kanal 2'den SO2'ye (Sol) + + Channel 2 volume + - - Channel 3 to SO2 (Left) - Kanal 3'den SO2'ye (Sol) + + Channel 2 envelope enable + - - Channel 4 to SO2 (Left) - Kanal 4'den SO2'ye (Sol) + + Channel 2 envelope loop + - - Wave pattern graph - Dalga deseni grafiği + + Channel 2 envelope length + Kanal 2 zarf uzunluğu - - - MixerLine - - Channel send amount - Kanal gönderme miktarı + + Channel 2 duty cycle + Kanal 2 görev döngüsü - - Move &left - Sol&a taşı + + Channel 2 sweep enable + - - Move &right - &Sağa taşı + + Channel 2 sweep amount + Kanal 2 tarama miktarı - - Rename &channel - &Kanalı yeniden adlandır + + Channel 2 sweep rate + Kanal 2 tarama hızı - - R&emove channel - Kanalı k&aldır + + Channel 3 enable + - - Remove &unused channels - &Kullanılmayan kanalları kaldırın + + Channel 3 coarse detune + Kanal 3 kaba detune - - Set channel color - Kanal rengini ayarla + + Channel 3 volume + Kanal 3 düzeyi - - Remove channel color - Kanal rengini kaldır + + Channel 4 enable + - - Pick random channel color - Rastgele kanal rengi seçin + + Channel 4 volume + Kanal 4 düzeyi - - - MixerLineLcdSpinBox - - Assign to: - Ata: + + Channel 4 envelope enable + - - New mixer Channel - Yeni FX Kanalı + + Channel 4 envelope loop + - - - Mixer - - Master - Usta + + Channel 4 envelope length + Kanal 4 zarf uzunluğu - - - - Channel %1 - FX %1 + + Channel 4 noise mode + - - Volume - Ses Düzeyi + + Channel 4 frequency mode + - - Mute - Sustur + + Channel 4 noise frequency + Kanal 4 gürültü frekansı - - Solo - Tek + + Channel 4 noise frequency sweep + Kanal 4 gürültü frekansı taraması - - - MixerView - - Mixer - FX-Karıştırıcısı + + Channel 4 quantize + - - Fader %1 - FX Fader %1 + + Master volume + Ana ses - - Mute - Sustur + + Vibrato + Titreşim + + + lmms::OpulenzInstrument - - Mute this mixer channel - Bu FX kanalını sessize al + + Patch + Yama - - Solo - Tek + + Op 1 attack + Op 1 saldırısı - - Solo mixer channel - Solo FX kanalı + + Op 1 decay + Op 1 bozunması - - - MixerRoute - - - Amount to send from channel %1 to channel %2 - %1 kanalından %2 kanalına gönderilecek miktar + + Op 1 sustain + Op 1 sürdürme - - - GigInstrument - - Bank - Yuva + + Op 1 release + Op 1 yayını - - Patch - Yama + + Op 1 level + Op 1 seviyesi - - Gain - Kazanç + + Op 1 level scaling + Op 1 seviye ölçeklendirme - - - GigInstrumentView - - - Open GIG file - GIG dosyasını açın + + Op 1 frequency multiplier + Op 1 frekans çarpanı - - Choose patch - Yama seçin + + Op 1 feedback + Op 1 geribildirimi - - Gain: - Kazanç: + + Op 1 key scaling rate + Op 1 anahtar ölçekleme oranı - - GIG Files (*.gig) - GIG Dosyaları (*.gig) + + Op 1 percussive envelope + Op 1 vurmalı zarf - - - GuiApplication - - Working directory - Çalışma dizini + + Op 1 tremolo + Op 1 tremolo - - The LMMS working directory %1 does not exist. Create it now? You can change the directory later via Edit -> Settings. - %1 LMMS çalışma dizini yok. Şimdi oluşturulsun mu? Dizini daha sonra Düzenle -> Ayarlar üzerinden değiştirebilirsiniz. + + Op 1 vibrato + Op 1 titreşimi - - Preparing UI - Arayüz hazırlanıyor + + Op 1 waveform + Op 1 dalga formu - - Preparing song editor - Şarkı düzenleyicinin hazırlanıyor + + Op 2 attack + Op 2 saldırısı - - Preparing mixer - Karıştırıcı hazırlanıyor + + Op 2 decay + Op 2 bozunması - - Preparing controller rack - Denetleyici rafını hazırlanıyor + + Op 2 sustain + Op 2 sürdürme - - Preparing project notes - Proje notlarının hazırlanıyor + + Op 2 release + Op 2 yayını - - Preparing beat/bassline editor - Beat / bassline editörü hazırlanıyor + + Op 2 level + Op 2 seviyesi - - Preparing piano roll - Piyano rulosunun hazırlanıyor + + Op 2 level scaling + Op 2 seviye ölçeklendirme - - Preparing automation editor - Otomasyon düzenleyicinin hazırlanıyor + + Op 2 frequency multiplier + Op 2 frekans çarpanı - - - InstrumentFunctionArpeggio - - Arpeggio - Arpej + + Op 2 key scaling rate + Op 2 anahtar ölçekleme oranı - - Arpeggio type - Arpej türü + + Op 2 percussive envelope + Op 2 vurmalı zarf - - Arpeggio range - Arpej aralığı + + Op 2 tremolo + Op 2 tremolo - - Note repeats - Nota tekrarları + + Op 2 vibrato + Op 2 titreşimi - - Cycle steps - Döngü adımları + + Op 2 waveform + Op 2 dalga formu - - Skip rate - Atlama oranı + + FM + FM - - Miss rate - Iskalama oranı + + Vibrato depth + Titreşim derinliği - - Arpeggio time - Arpej zamanı + + Tremolo depth + Tremolo derinliği + + + lmms::OrganicInstrument - - Arpeggio gate - Arpej kapısı + + Distortion + Bozma - - Arpeggio direction - Arpej yönü + + Volume + Ses Düzeyi + + + lmms::OscillatorObject - - Arpeggio mode - Arpej modu + + Osc %1 waveform + Osc %1 dalga biçimi - - Up - Üst + + Osc %1 harmonic + Osc %1 harmonik - - Down - Aşağı + + + Osc %1 volume + Osc %1 düzeyi - - Up and down - Yukarı ve aşağı + + + Osc %1 panning + Osc %1 kaydırma - - Down and up - Aşağı ve yukarı + + Osc %1 stereo detuning + - - Random - Rastgele + + Osc %1 coarse detuning + Osc %1 kaba ince ayar + + + + Osc %1 fine detuning left + Osc %1 ince ayar sol - - Free - Özgür + + Osc %1 fine detuning right + Osc %1 ince ayar sağ - - Sort - Çeşit + + Osc %1 phase-offset + Osc %1 faz kayması - - Sync - Eşitleme + + Osc %1 stereo phase-detuning + Osc %1 stereo faz ayarlama - - - InstrumentFunctionArpeggioView - - ARPEGGIO - ARPEJ + + Osc %1 wave shape + Osc %1 dalga şekli - - RANGE - ARALIK + + Modulation type %1 + Modülasyon türü %1 + + + lmms::PatternTrack - - Arpeggio range: - Arpej aralığı: + + Pattern %1 + %1 Kalıbı - - octave(s) - octave(s) + + Clone of %1 + Kopya %1 + + + lmms::PeakController - - REP - REP + + Peak Controller + Tepe Kontrolörü - - Note repeats: - Nota tekrarları: + + Peak Controller Bug + Tepe Kontrol Hatası - - time(s) - zamanlar) + + Due to a bug in older version of LMMS, the peak controllers may not be connect properly. Please ensure that peak controllers are connected properly and re-save this file. Sorry for any inconvenience caused. + LMMS'nin eski sürümündeki bir hata nedeniyle, tepe denetleyicileri doğru şekilde bağlanamayabilir. Lütfen tepe denetleyicilerin doğru şekilde bağlandığından emin olun ve bu dosyayı yeniden kaydedin. Herhangi bir rahatsızlık verdiysem üzgünüm. + + + lmms::PeakControllerEffectControls - - CYCLE - DÖNGÜ + + Base value + Temel değer - - Cycle notes: - Döngü notaları: + + Modulation amount + Modülasyon miktarı - - note(s) - nota(lar) + + Attack + Saldırı - - SKIP - ATLA + + Release + Yayınla - - Skip rate: - Atlama oranı: + + Treshold + Eşik - - - - % - % + + Mute output + Çıkış sessiz - - MISS - KAÇIRMA + + Absolute value + Mutlak değer - - Miss rate: - Kaçırma oranı: + + Amount multiplicator + Miktar çarpanı + + + lmms::Plugin - - TIME - ZAMAN + + Plugin not found + Eklenti bulunamadı - - Arpeggio time: - Arpej zamanı: + + The plugin "%1" wasn't found or could not be loaded! +Reason: "%2" + "%1" eklentisi bulunamadı veya yüklenemedi! +Nedeni: "%2" - - ms - ms + + Error while loading plugin + Eklenti yüklenirken hata - - GATE - PORTAL + + Failed to load plugin "%1"! + "%1" eklentisi yüklenemedi! + + + lmms::ReverbSCControls - - Arpeggio gate: - Arpej kapısı: + + Input gain + Giriş kazancı - - Chord: - Akord: + + Size + Boy - - Direction: - Yön: + + Color + Renk - - Mode: - Kip: + + Output gain + Çıkış kazancı - InstrumentFunctionNoteStacking - - - octave - octave - + lmms::SaControls - - - Major - Önemli + + Pause + Duraklat - - Majb5 - Majb5 + + Reference freeze + Referans dondurma - - minor - minor + + Waterfall + Şelale - - minb5 - minb5 + + Averaging + Ortalama - - sus2 - sus2 + + Stereo + Stereo - - sus4 - sus4 + + Peak hold + Tepe tutma - - aug - aug + + Logarithmic frequency + Logaritmik frekans - - augsus4 - augsus4 + + Logarithmic amplitude + Logaritmik genlik - - tri - tri + + Frequency range + Frekans aralığı - - 6 - 6 + + Amplitude range + Genlik aralığı - - 6sus4 - 6sus4 + + FFT block size + FFT blok boyutu - - 6add9 - 6add9 + + FFT window type + FFT pencere türü - - m6 - m6 + + Peak envelope resolution + En yüksek zarf çözünürlüğü - - m6add9 - m6add9 + + Spectrum display resolution + Spektrum ekran çözünürlüğü - - 7 - 7 + + Peak decay multiplier + Tepe bozunma çarpanı - - 7sus4 - 7sus4 + + Averaging weight + Ortalama ağırlık - - 7#5 - 7#5 + + Waterfall history size + Şelale geçmişi boyutu - - 7b5 - 7b5 + + Waterfall gamma correction + Şelale gama düzeltmesi - - 7#9 - 7#9 + + FFT window overlap + FFT penceresi çakışması - - 7b9 - 7b9 + + FFT zero padding + FFT sıfır dolgusu - - 7#5#9 - 7#5#9 + + + Full (auto) + Tam (otomatik) - - 7#5b9 - 7#5b9 + + + + Audible + Sesli - - 7b5b9 - 7b5b9 + + Bass + Bas - - 7add11 - 7add11 + + Mids + Ortalar - - 7add13 - 7add13 + + High + Yüksek - - 7#11 - 7#11 + + Extended + Genişletilmiş - - Maj7 - Maj7 + + Loud + Yüksek - - Maj7b5 - Maj7b5 + + Silent + Sessiz - - Maj7#5 - Maj7#5 + + (High time res.) + (Yüksek zaman çözünürlüğü) - - Maj7#11 - Maj7#11 + + (High freq. res.) + (Yüksek frekans çözünürlüğü) - - Maj7add13 - Maj7add13 + + Rectangular (Off) + Dikdörtgen (Kapalı) - - m7 - m7 + + + Blackman-Harris (Default) + Blackman-Harris (Varsayılan) - - m7b5 - m7b5 + + Hamming + Hamming - - m7b9 - m7b9 + + Hanning + Hanning + + + lmms::SampleClip - - m7add11 - m7add11 + + Sample not found + + + + lmms::SampleTrack - - m7add13 - m7add13 + + Volume + Ses Düzeyi - - m-Maj7 - m-Maj7 + + Panning + Kaydırma - - m-Maj7add11 - m-Maj7add11 + + Mixer channel + FX kanalı - - m-Maj7add13 - m-Maj7add13 + + + Sample track + Örnek parça + + + lmms::Scale - - 9 - 9 + + empty + boş + + + lmms::Sf2Instrument - - 9sus4 - 9sus4 + + Bank + Yuva - - add9 - add9 + + Patch + Yama - - 9#5 - 9#5 + + Gain + Kazanç - - 9b5 - 9b5 + + Reverb + Yankı - - 9#11 - 9#11 + + Reverb room size + Yankı odası boyutu - - 9b13 - 9b13 + + Reverb damping + Yankı sönümleme - - Maj9 - Maj9 + + Reverb width + Yankı genişliği - - Maj9sus4 - Maj9sus4 + + Reverb level + Yankı seviyesi - - Maj9#5 - Maj9#5 + + Chorus + Koro - - Maj9#11 - Maj9#11 + + Chorus voices + Koro sesleri - - m9 - m9 + + Chorus level + Koro seviyesi - - madd9 - madd9 + + Chorus speed + Koro hızı - - m9b5 - m9b5 + + Chorus depth + Koro derinliği - - m9-Maj7 - m9-Maj7 + + A soundfont %1 could not be loaded. + %1 ses yazı tipi yüklenemedi. + + + lmms::SfxrInstrument - - 11 - 11 + + Wave + Dalga + + + lmms::SidInstrument - - 11b9 - 11b9 + + Cutoff frequency + Kesme frekansı - - Maj11 - Maj11 + + Resonance + Çınlama - - m11 - m11 + + Filter type + Filtre tipi - - m-Maj11 - m-Maj11 + + Voice 3 off + Ses 3 kapalı - - 13 - 13 + + Volume + Ses Düzeyi - - 13#9 - 13#9 + + Chip model + Yonga modeli + + + lmms::SlicerT - - 13b9 - 13b9 + + Note threshold + - - 13b5b9 - 13b5b9 + + FadeOut + - - Maj13 - Maj13 + + Original bpm + - - m13 - m13 + + Slice snap + - - m-Maj13 - m-Maj13 + + BPM sync + - - Harmonic minor - Harmonik minor + + + slice_%1 + - - Melodic minor - Melodik minor + + Sample not found: %1 + + + + lmms::Song - - Whole tone - Bütün ton + + Tempo + Tempo - - Diminished - Azalma + + Master volume + Ana ses - - Major pentatonic - Major pentatonik + + Master pitch + Ana sahne - - Minor pentatonic - Minor pentatonik + + Aborting project load + Proje yüklemesi iptal ediliyor - - Jap in sen - Sen de Jap + + Project file contains local paths to plugins, which could be used to run malicious code. + Proje dosyası, kötü amaçlı kod çalıştırmak için kullanılabilecek eklentilere giden yerel yolları içerir. - - Major bebop - Başlıca bebop + + Can't load project: Project file contains local paths to plugins. + Proje yüklenemiyor: Proje dosyası, eklentilere giden yerel yolları içerir. - - Dominant bebop - Baskın bebop + + LMMS Error report + LMMS Hata raporu - - Blues - Blues + + (repeated %1 times) + (%1 kez tekrarlandı) - - Arabic - Arapça + + The following errors occurred while loading: + Yükleme sırasında aşağıdaki hatalar oluştu: + + + lmms::StereoEnhancerControls - - Enigmatic - Esrarengiz + + Width + Genişlik + + + lmms::StereoMatrixControls - - Neopolitan - Neopolitan + + Left to Left + Soldan Sola - - Neopolitan minor - Neopolitan minör + + Left to Right + Soldan sağa - - Hungarian minor - Macar minör + + Right to Left + Sağdan sola - - Dorian - Dorian + + Right to Right + Sağa Doğru + + + lmms::Track - - Phrygian - Frig + + Mute + Sustur - - Lydian - Lidya DIli + + Solo + Tek + + + lmms::TrackContainer - - Mixolydian - Miksolydiyen + + Couldn't import file + Dosya içe aktarılamadı - - Aeolian - Aeolian + + Couldn't find a filter for importing file %1. +You should convert this file into a format supported by LMMS using another software. + %1 dosyasını içe aktarmak için bir filtre bulunamadı. +Bu dosyayı başka bir yazılım kullanarak LMMS tarafından desteklenen bir biçime dönüştürmelisiniz. - - Locrian - Locrian + + Couldn't open file + Dosya açılamadı - - Minor - Minor + + Couldn't open file %1 for reading. +Please make sure you have read-permission to the file and the directory containing the file and try again! + %1 dosyası okumak için açılamadı. +Lütfen dosyayı ve dosyayı içeren dizini okuma iznine sahip olduğunuzdan emin olun ve tekrar deneyin! - - Chromatic - Kromatik + + Loading project... + Proje yükleniyor... - - Half-Whole Diminished - Yarım-Bütün Azaltılmış + + + Cancel + Çıkış - - 5 - 5 + + + Please wait... + Lütfen bekleyin... - - Phrygian dominant - Frig hakimiyeti + + Loading cancelled + Yükleme iptal edildi - - Persian - Farsça + + Project loading was cancelled. + Proje yüklemesi iptal edildi. - - Chords - Akordlar + + Loading Track %1 (%2/Total %3) + %1 Parça Yükleniyor (%2/Toplam %3) - - Chord type - Akord türü + + Importing MIDI-file... + MIDI dosyası içe aktarılıyor... + + + lmms::TripleOscillator - - Chord range - Akord aralığı + + Sample not found + - InstrumentFunctionNoteStackingView + lmms::VecControls - - STACKING - İSTİFLEME + + Display persistence amount + Kalıcılık miktarını göster - - Chord: - Akord: + + Logarithmic scale + Logaritmik ölçek - - RANGE - ARALIK + + High quality + Yüksek kalite + + + lmms::VestigeInstrument - - Chord range: - Akord aralığı: + + Loading plugin + Eklenti yükleniyor - - octave(s) - octave(s) + + Please wait while loading the VST plugin... + VST eklentisini yüklerken lütfen bekleyin... - InstrumentMidiIOView - - - ENABLE MIDI INPUT - MIDI GİRİŞİNİ ETKİNLEŞTİR - + lmms::Vibed - - ENABLE MIDI OUTPUT - MIDI ÇIKIŞINI ETKİNLEŞTİR + + String %1 volume + Dize %1 hacmi - - - CHAN - This string must be be short, its width must be less than * width of LCD spin-box of two digits - KANAL + + String %1 stiffness + Dize %1 sertliği - - - VELOC - This string must be be short, its width must be less than * width of LCD spin-box of three digits - VELOC + + Pick %1 position + %1 pozisyon seçin - - PROG - This string must be be short, its width must be less than the * width of LCD spin-box of three digits - PROG + + Pickup %1 position + Alım %1 pozisyon - - NOTE - This string must be be short, its width must be less than * width of LCD spin-box of three digits - NOTA + + String %1 panning + %1 dize kaydırma - - MIDI devices to receive MIDI events from - MIDI olaylarının alınacağı MIDI cihazları + + String %1 detune + %1 dize detune - - MIDI devices to send MIDI events to - MIDI olaylarının gönderileceği MIDI cihazları + + String %1 fuzziness + Dize %1 belirsizliği - - CUSTOM BASE VELOCITY - ÖZEL BAZ HIZI + + String %1 length + Dize %1 uzunluğu - - Specify the velocity normalization base for MIDI-based instruments at 100% note velocity. - % 100 nota hızında MIDI tabanlı enstrümanlar için hız normalleştirme tabanını belirtin. + + Impulse %1 + Dürtü %1 - - BASE VELOCITY - TABAN HIZI + + String %1 + Dize %1 - InstrumentTuningView + lmms::VoiceObject - - MASTER PITCH - ANA PERDE + + Voice %1 pulse width + Ses %1 darbe genişliği - - Enables the use of master pitch - Ana adımın kullanılmasını sağlar + + Voice %1 attack + Ses %1 saldırısı - - - InstrumentSoundShaping - - VOLUME - DÜZEY + + Voice %1 decay + Ses %1 zayıflaması - - Volume - Ses Düzeyi + + Voice %1 sustain + Ses %1 sürdür - - CUTOFF - AYIRMAK + + Voice %1 release + Ses %1 sürümü + + + + Voice %1 coarse detuning + Ses %1 kaba ince ayar + + + + Voice %1 wave shape + Ses %1 dalga şekli + + + + Voice %1 sync + Ses %1 senkronizasyonu + + + + Voice %1 ring modulate + Ses %1 zil sesi modülasyonu + + + + Voice %1 filtered + Ses %1 filtrelendi - - - Cutoff frequency - Kesme frekansı + + Voice %1 test + Ses %1 testi + + + lmms::VstPlugin - - RESO - RESO + + + The VST plugin %1 could not be loaded. + %1 VST eklentisi yüklenemedi. - - Resonance - Çınlama + + Open Preset + Ön Ayarı Aç - - Envelopes/LFOs - Zarflar / LFO'lar + + + VST Plugin Preset (*.fxp *.fxb) + VST Eklenti Ön Ayarı (*.fxp *.fxb) - - Filter type - Filtre tipi + + : default + : öntanımlı - - Q/Resonance - Q/Rezonans + + Save Preset + Önayarı Kaydet - - Low-pass - Düşük geçiş + + .fxp + .fxp - - Hi-pass - Yüksek geçiş + + .FXP + .FXP - - Band-pass csg - Bant geçişli csg + + .FXB + .FXB - - Band-pass czpg - Bant geçişli czpg + + .fxb + .fxb - - Notch - Çentik + + Loading plugin + Eklenti yükleniyor - - All-pass - Tamamı bitti + + Please wait while loading VST plugin... + VST eklentisi yüklenirken lütfen bekleyin... + + + lmms::WatsynInstrument - - Moog - Moog + + Volume A1 + Düzey A1 - - 2x Low-pass - 2x Düşük geçiş + + Volume A2 + Düzey A2 - - RC Low-pass 12 dB/oct - RC Düşük geçişli 12 dB / oct + + Volume B1 + Düzey B1 - - RC Band-pass 12 dB/oct - RC Bant geçişi 12 dB / oct + + Volume B2 + Düzey B2 - - RC High-pass 12 dB/oct - RC Yüksek Geçişli 12 dB / oct + + Panning A1 + Kaydırma A1 - - RC Low-pass 24 dB/oct - RC Düşük geçişli 24 dB / oct + + Panning A2 + Kaydırma A2 - - RC Band-pass 24 dB/oct - RC Bant geçişi 24 dB / oct + + Panning B1 + Kaydırma B1 - - RC High-pass 24 dB/oct - RC Yüksek Geçişli 24 dB / oct + + Panning B2 + Kaydırma B2 - - Vocal Formant - Vokal Biçimlendirici + + Freq. multiplier A1 + Frekans. çarpan A1 - - 2x Moog - 2x Moog + + Freq. multiplier A2 + Frekans. çarpan A2 - - SV Low-pass - SV Düşük geçiş + + Freq. multiplier B1 + Frekans. çarpan B1 - - SV Band-pass - SV Bant geçişi + + Freq. multiplier B2 + Frekans. çarpan B2 - - SV High-pass - SV Yüksek geçiş + + Left detune A1 + Sol detune A1 - - SV Notch - SV Notch + + Left detune A2 + Sol detune A2 - - Fast Formant - Hızlı Biçimlendirici + + Left detune B1 + Sol detune B1 - - Tripole - Üçlü + + Left detune B2 + Sol detune B2 - - - InstrumentSoundShapingView - - TARGET - HEDEF + + Right detune A1 + Sağ detune A1 - - FILTER - FİLTRE + + Right detune A2 + Sağ detune A2 - - FREQ - FREK + + Right detune B1 + Sağ detune B1 - - Cutoff frequency: - Kesim frekansı: + + Right detune B2 + Sağ detune B2 - - Hz - Hz + + A-B Mix + A-B Karışımı - - Q/RESO - Q/RESO + + A-B Mix envelope amount + A-B Karışık zarf miktarı - - Q/Resonance: - Q/Rezonans: + + A-B Mix envelope attack + A-B Karışık zarf saldırısı - - Envelopes, LFOs and filters are not supported by the current instrument. - Zarflar, LFO'lar ve filtreler mevcut cihaz tarafından desteklenmemektedir. + + A-B Mix envelope hold + A-B Karışık zarf tutma - - - InstrumentTrack - - - unnamed_track - adsız_parça + + A-B Mix envelope decay + A-B Karışım zarf bozunması - - Base note - Temel nota + + A1-B2 Crosstalk + A1-B2 Çapraz Karışma - - First note - İlk nota + + A2-A1 modulation + A2-A1 modülasyonu - - Last note - Son nota + + B2-B1 modulation + B2-B1 modülasyonu - - Volume - Ses Düzeyi + + Selected graph + Seçili grafik + + + lmms::WaveShaperControls - - Panning - Panning + + Input gain + Giriş kazancı - - Pitch - Zift + + Output gain + Çıkış kazancı + + + lmms::Xpressive - - Pitch range - Eğim aralığı + + Selected graph + Seçili grafik - - Mixer channel - FX kanalı + + A1 + A1 - - Master pitch - Ana sahne + + A2 + A2 - - Enable/Disable MIDI CC - MIDI CC'yi Etkinleştir / Devre Dışı Bırak + + A3 + A3 - - CC Controller %1 - CC Denetleyicisi %1 + + W1 smoothing + W1 yumuşatma - - - Default preset - Varsayılan ön ayar + + W2 smoothing + W2 yumuşatma - - - InstrumentTrackView - - Volume - Ses Düzeyi + + W3 smoothing + W3 yumuşatma - - Volume: - Ses Düzeyi: + + Panning 1 + Kaydırma 1 + + + + Panning 2 + Kaydırma 2 - - VOL - SES + + Rel trans + Rel trans + + + lmms::ZynAddSubFxInstrument - - Panning - Panning + + Portamento + Kaydırma - - Panning: - Panning: + + Filter frequency + Frekans filtresi - - PAN - PAN + + Filter resonance + Rezonans filtresi - - MIDI - MIDI + + Bandwidth + Bant genişliği - - Input - Giriş + + FM gain + FM kazancı - - Output - Çıkış + + Resonance center frequency + Rezonans merkez frekansı - - Open/Close MIDI CC Rack - MIDI CC Rafını Aç / Kapat + + Resonance bandwidth + Rezonans bant genişliği - - Channel %1: %2 - FX %1: %2 + + Forward MIDI control change events + MIDI kontrol değişikliği olaylarını iletme - InstrumentTrackWindow + lmms::graphModel - - GENERAL SETTINGS - GENEL AYARLAR + + Graph + Grafik + + + lmms::gui::AmplifierControlDialog - - Volume - Ses Düzeyi + + VOL + SES - + Volume: Ses Düzeyi: - - VOL - SES - - - - Panning - Panning + + PAN + PAN - + Panning: - Panning: + Kaydırma: - - PAN - PAN + + LEFT + SOL - - Pitch - Zift + + Left gain: + Sol kazanç: - - Pitch: - Hatve (Aralık): + + RIGHT + SAĞ - - cents - sent + + Right gain: + Sağ kazanç: + + + lmms::gui::AudioAlsaSetupWidget - - PITCH - PERDE + + Device + - - Pitch range (semitones) - Perde aralığı (yarım tonlar) + + Channels + + + + lmms::gui::AudioFileProcessorView - - RANGE - ARALIK + + Open sample + Örnek açın - - Mixer channel - FX kanalı + + Reverse sample + Ters örnek - - CHANNEL - FX + + Disable loop + Döngüyü kapat - - Save current instrument track settings in a preset file - Mevcut enstrüman parça ayarlarını önceden ayarlanmış bir dosyaya kaydedin + + Enable loop + Döngüyü aç - - SAVE - KAYDET + + Enable ping-pong loop + Ping-pong döngüsünü etkinleştir - - Envelope, filter & LFO - Zarf, filtre ve LFO + + Continue sample playback across notes + Örneği notalar arasında oynatmaya devam et - - Chord stacking & arpeggio - Akor istifleme & arpej + + Amplify: + Güçlendirin: - - Effects - Efektler + + Start point: + Başlangıç noktası: - - MIDI - MIDI + + End point: + Bitiş noktası: - - Miscellaneous - Çeşitli + + Loopback point: + Geri döngü noktası: + + + lmms::gui::AudioFileProcessorWaveView - - Save preset - Ön ayarı kaydet + + Sample length: + Örnek uzunluğu: + + + lmms::gui::AutomationClipView - - XML preset file (*.xpf) - XML hazır ayar dosyası (*.xpf) + + Open in Automation editor + Ayarkayıt Düzenleyici'de aç - - Plugin - Eklenti + + Clear + Temizle - - - JackApplicationW - - NSM applications cannot use abstract or absolute paths - NSM uygulamaları soyut veya mutlak yollar kullanamaz + + Reset name + İsmini sıfırla - - NSM applications cannot use CLI arguments - NSM uygulamaları CLI bağımsız değişkenlerini kullanamaz + + Change name + İsmini değiştir - - You need to save the current Carla project before NSM can be used - NSM kullanılmadan önce mevcut Carla projesini kaydetmeniz gerekir + + Set/clear record + Kayıdı başlat/durdur - - - JuceAboutW - - About JUCE - JUCE hakkında + + Flip Vertically (Visible) + Dikey Yönde Çevir (Görünür) - - <b>About JUCE</b> - <b>JUCE hakkında</b> + + Flip Horizontally (Visible) + Yatay Yönde Çevir (Görünür) - - This program uses JUCE version 3.x.x. - Bu program JUCE 3.x.x sürümünü kullanır. + + %1 Connections + %1 Bağlantı - - JUCE (Jules' Utility Class Extensions) is an all-encompassing C++ class library for developing cross-platform software. - -It contains pretty much everything you're likely to need to create most applications, and is particularly well-suited for building highly-customised GUIs, and for handling graphics and sound. - -JUCE is licensed under the GNU Public Licence version 2.0. -One module (juce_core) is permissively licensed under the ISC. - -Copyright (C) 2017 ROLI Ltd. - JUCE (Jules'un Yardımcı Sınıf Uzantıları), platformlar arası yazılım geliştirmek için her şeyi kapsayan bir C++ sınıf kitaplığıdır. - -Çoğu uygulamayı oluşturmak için ihtiyaç duyacağınız hemen hemen her şeyi içerir ve özellikle son derece özelleştirilmiş Kullanıcı arayüzleri oluşturmak ve grafik ve sesle çalışmak için çok uygundur. - -JUCE, GNU Kamu Lisansı 2.0 sürümü altında lisanslanmıştır. -Bir modül (juce_core) ISC altında izinli olarak lisanslanmıştır. - -Telif Hakkı (C) 2017 ROLI Ltd. + + Disconnect "%1" + Şunun bağlantısını kes: "%1" - - This program uses JUCE version %1. - Bu program JUCE %1 sürümünü kullanıyor. + + Model is already connected to this clip. + Model zaten bu desene bağlanmış. - Knob - - - Set linear - Doğrusal ayarla - + lmms::gui::AutomationEditor - - Set logarithmic - Logaritmik ayarla + + Edit Value + Değeri Düzenleyin - - - Set value - Değeri ayarla + + New outValue + Yeni çıkış değeri - - Please enter a new value between -96.0 dBFS and 6.0 dBFS: - Lütfen -96.0 dBFS ve 6.0 dBFS arasında yeni bir değer girin: + + New inValue + Yeni giriş Değeri - - Please enter a new value between %1 and %2: - Lütfen %1 ile %2 arasında yeni bir değer girin: + + Please open an automation clip by double-clicking on it! + - LadspaControl + lmms::gui::AutomationEditorWindow - - Link channels - Kanalları bağla + + Play/pause current clip (Space) + Seçili bölümü oynat/durdur (Boşluk Tuşu) - - - LadspaControlDialog - - Link Channels - Kanalları Bağla + + Stop playing of current clip (Space) + Seçili modeli oynatmayı durdur (Boşluk Tuşu) - - Channel - Kanallar + + Edit actions + İşlemleri düzenle - - - LadspaControlView - - Link channels - Kanalları bağla + + Draw mode (Shift+D) + Çizim modu (Shift+D) - - Value: - Değer: + + Erase mode (Shift+E) + Silgi modu (Shift+E) - - - LadspaEffect - - Unknown LADSPA plugin %1 requested. - Bilinmeyen LADSPA eklentisi %1 istendi. + + Draw outValues mode (Shift+C) + Değerleri çiz modu (Shift+C) - - - LcdFloatSpinBox - - Set value - Değeri ayarla + + Edit tangents mode (Shift+T) + - - Please enter a new value between %1 and %2: - Lütfen %1 ile %2 arasında yeni bir değer girin: + + Flip vertically + Dikey çevir - - - LcdSpinBox - - Set value - Değeri ayarla + + Flip horizontally + Yatay çevir - - Please enter a new value between %1 and %2: - Lütfen %1 ile %2 arasında yeni bir değer girin: + + Interpolation controls + Enterpolasyon kontrolleri - - - LeftRightNav - - - - Previous - Önceki + + Discrete progression + Kesikli ilerleme - - - - Next - Sonraki + + Linear progression + Doğrusal ilerleme - - Previous (%1) - Önceki (%1) + + Cubic Hermite progression + Kübik Hermite ilerleme - - Next (%1) - Sonraki (%1) + + Tension value for spline + Sapma için gerilim değeri - - - LfoController - - LFO Controller - LFO Denetleyicisi + + Tension: + Gerginlik: - - Base value - Temel değer + + Zoom controls + Yakınlaştırma kontrolleri - - Oscillator speed - Osilatör hızı + + Horizontal zooming + Yatay yakınlaştırma - - Oscillator amount - Osilatör miktarı + + Vertical zooming + Dikey yakınlaştırma - - Oscillator phase - Osilatör fazı + + Quantization controls + Niceleme kontrolleri - - Oscillator waveform - Osilatör dalga formu + + Quantization + Niceleme - - Frequency Multiplier - Frekans Çarpanı + + Clear ghost notes + - - - LfoControllerDialog - - LFO - LFO + + + Automation Editor - no clip + Ayarkayıt Düzenleyici - oluşturulmuş bölüm yok - - BASE - TEMEL + + + Automation Editor - %1 + Ayarkayıt Düzenleyici - %1 - - Base: - Temel: + + Model is already connected to this clip. + Model zaten bu desene bağlanmış. + + + lmms::gui::BassBoosterControlDialog - + FREQ FREK - - LFO frequency: - LFO frekansı: + + Frequency: + Frekans: - - AMNT - AMNT + + GAIN + GAIN - - Modulation amount: - Modülasyon miktarı: + + Gain: + Kazanç: - - PHS - PHS + + RATIO + ORAN - - Phase offset: - Faz uzaklığı: + + Ratio: + Oran: + + + lmms::gui::BitInvaderView - - degrees - derece + + Sample length + Örnek uzunluğu + + + + Draw your own waveform here by dragging your mouse on this graph. + Farenizi bu grafiğin üzerine sürükleyerek buraya kendi dalga formunuzu çizin. - + + Sine wave Sinüs dalgası - + + Triangle wave Üçgen dalga - + + Saw wave Testere dalga - + + Square wave Kare dalgası - - Moog saw wave - Moog testere dalgası - - - - Exponential wave - Üstel dalga - - - + + White noise Beyaz gürültü - - User-defined shape. -Double click to pick a file. - Kullanıcı tanımlı şekil. -Bir dosya seçmek için çift tıklayın. + + + User-defined wave + Kullanıcı tanımlı dalga - - Mutliply modulation frequency by 1 - Modülasyon frekansını 1 ile çarpın + + + Smooth waveform + Düzgün dalga formu - - Mutliply modulation frequency by 100 - Modülasyon frekansını 100 ile çarpın + + Interpolation + Aradeğerleme - - Divide modulation frequency by 100 - Modülasyon frekansını 100'e bölün + + Normalize + Normalleştir - Engine + lmms::gui::BitcrushControlDialog - - Generating wavetables - Dalgaboyu oluşturma + + IN + İÇİNDE - - Initializing data structures - Veri yapılarını başlatma + + OUT + OUT - - Opening audio and midi devices - Ses ve midi cihazlarını açma + + + GAIN + GAIN - - Launching mixer threads - Karıştırıcı konularının başlatılması + + Input gain: + Giriş kazancı: - - - MainWindow - - Configuration file - Yapılandırma dosyası + + NOISE + PARAZİT - - Error while parsing configuration file at line %1:%2: %3 - %1:%2: %3 satırındaki yapılandırma dosyası ayrıştırılırken hata oluştu + + Input noise: + Giriş gürültüsü: - - Could not open file - Dosya açılamadı + + Output gain: + Çıkış kazancı: - - Could not open file %1 for writing. -Please make sure you have write permission to the file and the directory containing the file and try again! - %1 dosyası yazmak için açılamadı. -Lütfen dosyaya ve dosyayı içeren dizine yazma izniniz olduğundan emin olun ve tekrar deneyin! + + CLIP + KIRP - - Project recovery - Proje kurtarma + + Output clip: + Çıktı klibi: - - There is a recovery file present. It looks like the last session did not end properly or another instance of LMMS is already running. Do you want to recover the project of this session? - Mevcut bir kurtarma dosyası var. Görünüşe göre son oturum düzgün şekilde sona ermemiş veya başka bir LMMS örneği zaten çalışıyor. Bu oturumun projesini kurtarmak istiyor musunuz? + + Rate enabled + Oran etkinleştirildi - - - Recover - Kurtar + + Enable sample-rate crushing + Örnek hızında ezmeyi etkinleştirin - - Recover the file. Please don't run multiple instances of LMMS when you do this. - Dosyayı kurtarın. Lütfen bunu yaptığınızda birden fazla LMMS örneği çalıştırmayın. + + Depth enabled + Derinlik etkinleştirildi - - - Discard - Iskarta + + Enable bit-depth crushing + Bit derinliğinde ezmeyi etkinleştirin - - Launch a default session and delete the restored files. This is not reversible. - Varsayılan bir oturum başlatın ve geri yüklenen dosyaları silin. Bu geri alınamaz. + + FREQ + FREK - - Version %1 - Sürüm %1 + + Sample rate: + Örnekleme oranı: - - Preparing plugin browser - Eklenti tarayıcısı hazırlanıyor + + STEREO + STEREO - - Preparing file browsers - Dosya tarayıcıları hazırlanıyor + + Stereo difference: + Stereo farklılığı: - - My Projects - Projelerim + + QUANT + MİKTAR - - My Samples - Örneklerim + + Levels: + Düzey: + + + lmms::gui::CPULoadWidget - - My Presets - Ön ayarlarım + + DSP total: %1% + - - My Home - Ana sayfam + + - Notes and setup: %1% + - - Root directory - Kök dizini + + - Instruments: %1% + - - Volumes - Düzeyler + + - Effects: %1% + - - My Computer - Bilgisayarım + + - Mixing: %1% + + + + lmms::gui::CarlaInstrumentView - - &File - &Dosya + + Show GUI + Görselli Arayüzü Göster - - &New - &Yeni + + Click here to show or hide the graphical user interface (GUI) of Carla. + Carla'nın grafiksel kullanıcı arayüzünü (GUI) göstermek veya gizlemek için buraya tıklayın. - - &Open... - &Aç... + + Params + Parametreler - - Loading background picture - Arka plan resmi yükleniyor + + Available from Carla version 2.1 and up. + Carla sürüm 2.1 ve üzeri sürümlerde mevcuttur. + + + lmms::gui::CarlaParamsView - - &Save - &Kaydet + + Search.. + Ara.. - - Save &As... - &Farklı Kaydet... + + Clear filter text + Filtre metnini temizle - - Save as New &Version - Yeni &Sürüm Olarak Kaydet + + Only show knobs with a connection. + Yalnızca bağlantılı düğmeleri gösterin. - - Save as default template - Varsayılan şablon olarak kaydet + + - Parameters + - Parametreler + + + lmms::gui::ClipView - - Import... - İçe Aktar... + + Current position + Şu anki pozisyon + + + + Current length + Mevcut uzunluk + + + + + %1:%2 (%3:%4 to %5:%6) + %1:%2 (%3:%4 to %5:%6) + + + + Press <%1> and drag to make a copy. + Bir kopya oluşturmak için <%1> tuşuna basın ve sürükleyin. + + + + Press <%1> for free resizing. + Serbest yeniden boyutlandırma için <%1> seçeneğine basın. + + + + Hint + İpucu + + + + Delete (middle mousebutton) + Sil (orta klik) + + + + Delete selection (middle mousebutton) + Seçimi sil (orta fare düğmesi) + + + + Cut + Kes + + + + Cut selection + Seçimi Kes - - E&xport... - D&ışa aktar... + + Merge Selection + Seçimi Birleştir - - E&xport Tracks... - Parçaları D&ışa aktar... + + Copy + Kopya - - Export &MIDI... - &MIDI Dışa Aktar... + + Copy selection + Seçimi Kopyala - - &Quit - &Çıkış + + Paste + Yapıştır - - &Edit - &Düzenle + + Mute/unmute (<%1> + middle click) + Sesi kapat/sesi aç (<%1> + orta tıklama) - - Undo - Geri Al + + Mute/unmute selection (<%1> + middle click) + Seçimin sesini kapat/aç (<%1> + orta tıklama) - - Redo - İleri Al + + Clip color + Klip rengi - - Settings - Ayarlar + + Change + Değiştir - - &View - &Görünüm + + Reset + Sıfırla - - &Tools - &Araçlar + + Pick random + Rastgele seç + + + lmms::gui::CompressorControlDialog - - &Help - &Yardım + + Threshold: + Eşik: - - Online Help - Çevrimiçi Yardım + + Volume at which the compression begins to take place + Sıkıştırmanın gerçekleşmeye başladığı düzey - - Help - Yardım + + Ratio: + Oran: - - About - Hakkında + + How far the compressor must turn the volume down after crossing the threshold + Eşiği geçtikten sonra kompresörün hacmi ne kadar azaltması gerekir - - Create new project - Yeni proje oluştur + + Attack: + Saldırı: - - Create new project from template - Şablondan yeni proje oluştur + + Speed at which the compressor starts to compress the audio + Kompresörün sesi sıkıştırmaya başladığı hız - - Open existing project - Mevcut projeyi aç + + Release: + Yayınla: - - Recently opened projects - Yakın zamanda açılan projeler + + Speed at which the compressor ceases to compress the audio + Kompresörün sesi sıkıştırmayı bıraktığı hız - - Save current project - Mevcut projeyi kaydet + + Knee: + Diz: - - Export current project - Mevcut projeyi dışa aktar + + Smooth out the gain reduction curve around the threshold + Eşiğin etrafındaki kazanç azaltma eğrisini düzeltin - - Metronome - Metronom + + Range: + Menzil: - - - Song Editor - Şarkı Düzenleyici + + Maximum gain reduction + Maksimum kazanç azaltma - - - Beat+Bassline Editor - Beat+Bassline Düzenleyici + + Lookahead Length: + Önden Bakış Uzunluğu: - - - Piano Roll - Piyano Rulosu + + How long the compressor has to react to the sidechain signal ahead of time + Kompresörün yan zincir sinyaline vaktinden önce ne kadar süre tepki vermesi gerekir - - - Automation Editor - Otomasyon Düzenleyicisi + + Hold: + Ambar: - - - Mixer - FX Karıştırıcısı + + Delay between attack and release stages + Saldırı ve serbest bırakma aşamaları arasındaki gecikme - - Show/hide controller rack - Denetleyici rafını göster / gizle + + RMS Size: + RMS Boyutu: - - Show/hide project notes - Proje notlarını göster / gizle + + Size of the RMS buffer + RMS arabelleğinin boyutu - - Untitled - Başlıksız + + Input Balance: + Giriş Dengesi: - - Recover session. Please save your work! - Oturumu kurtarın. Lütfen çalışmanızı kaydedin! + + Bias the input audio to the left/right or mid/side + Giriş sesini sola / sağa veya ortaya / yana çevirin - - LMMS %1 - LMMS %1 + + Output Balance: + Çıktı Dengesi: - - Recovered project not saved - Kurtarılan proje kaydedilmedi + + Bias the output audio to the left/right or mid/side + Çıkış sesini sola / sağa veya ortaya / tarafa çevirin - - This project was recovered from the previous session. It is currently unsaved and will be lost if you don't save it. Do you want to save it now? - Bu proje önceki oturumdan kurtarıldı. Şu anda kaydedilmedi ve kaydetmezseniz kaybolacak. Şimdi kaydetmek ister misin? + + Stereo Balance: + Çift kanal Dengesi: - - Project not saved - Proje kaydedilmedi + + Bias the sidechain signal to the left/right or mid/side + Yan zincir sinyalini sola / sağa veya ortaya / yana çevirin - - The current project was modified since last saving. Do you want to save it now? - Mevcut proje, son kayıttan bu yana değiştirildi. Şimdi kaydetmek ister misin? + + Stereo Link Blend: + Çift kanal Bağlantı Karışımı: - - Open Project - Projeyi Aç + + Blend between unlinked/maximum/average/minimum stereo linking modes + Bağlantısız / maksimum / ortalama / minimum çift kanal bağlantı modları arasında uyum sağlayın - - LMMS (*.mmp *.mmpz) - LMMS (*.mmp *.mmpz) + + Tilt Gain: + Eğim Kazancı: - - Save Project - Projeyi Kaydet + + Bias the sidechain signal to the low or high frequencies. -6 db is lowpass, 6 db is highpass. + Yan zincir sinyalini düşük veya yüksek frekanslara yönlendirin. -6 db alçak geçiş, 6 db yüksek geçiştir. - - LMMS Project - LMMS Projesi + + Tilt Frequency: + Eğim Frekansı: - - LMMS Project Template - LMMS Proje Şablonu + + Center frequency of sidechain tilt filter + Yan zincir eğim filtresinin merkez frekansı - - Save project template - Proje şablonunu kaydet + + Mix: + Karıştır: - - Overwrite default template? - Varsayılan şablonun üzerine yazılsın mı? + + Balance between wet and dry signals + Islak ve kuru sinyaller arasında denge - - This will overwrite your current default template. - Bu, mevcut varsayılan şablonunuzun üzerine yazacaktır. + + Auto Attack: + Otomatik Saldırı: - - Help not available - Yardım mevcut değil + + Automatically control attack value depending on crest factor + Crest faktörüne bağlı olarak saldırı değerini otomatik olarak kontrol edin - - Currently there's no help available in LMMS. -Please visit http://lmms.sf.net/wiki for documentation on LMMS. - Şu anda LMMS'de yardım bulunmamaktadır. -LMMS ile ilgili belgeler için lütfen http://lmms.sf.net/wiki adresini ziyaret edin. + + Auto Release: + Otomatik Yayın: - - Controller Rack - Denetleyici Rafı + + Automatically control release value depending on crest factor + Crest faktörüne bağlı olarak serbest bırakma değerini otomatik olarak kontrol edin - - Project Notes - Proje Notları + + Output gain + Çıkış kazancı - - Fullscreen - Tam ekran + + + Gain + Kazanç - - Volume as dBFS - DBFS olarak düzey + + Output volume + Çıkış Düzeyi - - Smooth scroll - Düzgün kaydırma + + Input gain + Giriş kazancı - - Enable note labels in piano roll - Piyano rulosunda not etiketlerini etkinleştirin + + Input volume + Giriş Düzeyi - - MIDI File (*.mid) - MIDI Dosyası (*.mid) + + Root Mean Square + Kök kare ortalama - - - untitled - başlıksız + + Use RMS of the input + Girişin RMS'sini kullanın - - - Select file for project-export... - Proje dışa aktarımı için dosya seçin... + + Peak + Zirve - - Select directory for writing exported tracks... - Dışa aktarılan parkurları yazmak için dizin seçin... + + Use absolute value of the input + Girişin mutlak değerini kullan - - Save project - Projeyi kaydet + + Left/Right + Sol/Sağ - - Project saved - Proje kaydedildi + + Compress left and right audio + Sol ve sağ sesi sıkıştır - - The project %1 is now saved. - %1 projesi şimdi kaydedildi. + + Mid/Side + Orta/Yan - - Project NOT saved. - Proje kaydedilmedi. + + Compress mid and side audio + Orta ve yan sesi sıkıştır - - The project %1 was not saved! - %1 projesi kaydedilmedi! + + Compressor + Sıkıştırıcı - - Import file - Dosyayı içe aktar + + Compress the audio + Sesi sıkıştır - - MIDI sequences - MIDI dizileri + + Limiter + Sınırlayıcı - - Hydrogen projects - Hidrojen projeleri + + Set Ratio to infinity (is not guaranteed to limit audio volume) + Oranı sonsuza ayarla (ses seviyesini sınırlaması garanti edilmez) - - All file types - Tüm dosya türleri + + Unlinked + Bağlantısız - - - MeterDialog - - - Meter Numerator - Sayaç Payı + + Compress each channel separately + Her kanalı ayrı ayrı sıkıştırın - - Meter numerator - Sayaç payı + + Maximum + En Çok - - - Meter Denominator - Metre Paydası + + Compress based on the loudest channel + En gürültülü kanala göre sıkıştır - - Meter denominator - Metre paydası + + Average + Ortalama - - TIME SIG - TIME SIG + + Compress based on the averaged channel volume + Ortalama kanal hacmine göre sıkıştır - - - MeterModel - - Numerator - Pay + + Minimum + En Az - - Denominator - Payda + + Compress based on the quietest channel + En sessiz kanala göre sıkıştırın - - - MidiCCRackView - - - MIDI CC Rack - %1 - MIDI CC Rack - %1 + + Blend + Harman - - MIDI CC Knobs: - MIDI CC Düğmeleri: + + Blend between stereo linking modes + Stereo bağlantı modları arasında uyum sağlayın - - CC %1 - CC %1 + + Auto Makeup Gain + Otomatik Makyaj Kazancı - - - MidiController - - MIDI Controller - MIDI Denetleyicisi + + Automatically change makeup gain depending on threshold, knee, and ratio settings + Eşik, diz ve oran ayarlarına bağlı olarak makyaj kazancını otomatik olarak değiştirin - - unnamed_midi_controller - adsız_midi_denetleyici + + + Soft Clip + Yumuşak Kırpılma - - - MidiImport - - - Setup incomplete - Kurulum tamamlanmadı + + Play the delta signal + Delta sinyalini çal - - You have not set up a default soundfont in the settings dialog (Edit->Settings). Therefore no sound will be played back after importing this MIDI file. You should download a General MIDI soundfont, specify it in settings dialog and try again. - Ayarlar iletişim kutusunda (Düzenle-> Ayarlar) varsayılan bir ses yazı tipi ayarlamadınız. Bu nedenle, bu MIDI dosyasını içe aktardıktan sonra hiçbir ses çalınmayacaktır. Bir Genel MIDI ses yazı tipi indirmeli, bunu ayarlar iletişim kutusunda belirtmeli ve tekrar denemelisiniz. + + Use the compressor's output as the sidechain input + Yan zincir girişi olarak kompresörün çıktısını kullanın - - You did not compile LMMS with support for SoundFont2 player, which is used to add default sound to imported MIDI files. Therefore no sound will be played back after importing this MIDI file. - LMMS'yi içe aktarılan MIDI dosyalarına varsayılan ses eklemek için kullanılan SoundFont2 oynatıcı desteğiyle derlemediniz. Bu nedenle, bu MIDI dosyasını içe aktardıktan sonra hiçbir ses çalınmayacaktır. + + Lookahead Enabled + İleri Bakış Etkinleştirildi - - MIDI Time Signature Numerator - MIDI Zaman İmza Payı + + Enable Lookahead, which introduces 20 milliseconds of latency + 20 milisaniyelik gecikme süresi sağlayan Lookahead'i etkinleştirin + + + lmms::gui::ControllerConnectionDialog - - MIDI Time Signature Denominator - MIDI Zaman İmza Paydası + + Connection Settings + Bağlantı Ayarları - - Numerator - Pay + + MIDI CONTROLLER + MIDI KONTROLÖR - - Denominator - Payda + + Input channel + Giriş kanalı - - Track - Parça + + CHANNEL + KANAL - - - MidiJack - - JACK server down - When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (title) - JACK sunucusu kapalı + + Input controller + Giriş kontrolörü - - The JACK server seems to be shuted down. - When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (dialog message) - JACK sunucusu kapatılmış görünüyor. + + CONTROLLER + KONTROLÖR - - - MidiPatternW - - MIDI Pattern - MIDI Örüntüsü + + + Auto Detect + Oto-Tespit - - Time Signature: - Zaman İmzası: + + MIDI-devices to receive MIDI-events from + MIDI olaylarını almak için MIDI cihazları - - - - 1/4 - 1/4 + + USER CONTROLLER + KULLANICI KONTROLÖRÜ - - 2/4 - 2/4 + + MAPPING FUNCTION + EŞLEŞTİRME FONKSİYONU - - 3/4 - 3/4 + + OK + TAMAM - - 4/4 - 4/4 + + Cancel + Çıkış - - 5/4 - 5/4 + + LMMS + LMMS - - 6/4 - 6/4 + + Cycle Detected. + Döngü Algılandı. + + + lmms::gui::ControllerRackView - - Measures: - Ölçümler: + + Controller Rack + Denetleyici Rafı - - - - 1 - 1 + + Add + Ekle - - 2 - 2 + + Confirm Delete + Silmeyi Onayla - - 3 - 3 + + Confirm delete? There are existing connection(s) associated with this controller. There is no way to undo. + Silmeyi onaylıyor musunuz? Bu denetleyiciyle ilişkili mevcut bağlantılar var. Geri almanın bir yolu yok. + + + lmms::gui::ControllerView - - 4 - 4 + + Controls + Kontroller - - 5 - 5 + + Rename controller + Denetleyiciyi yeniden adlandır - - 6 - 6 + + Enter the new name for this controller + Bu denetleyicinin yeni adını girin - - 7 - 7 + + LFO + LFO - - 8 - 8 + + Move &up + - - 9 - 9 + + Move &down + - - 10 - 10 + + &Remove this controller + Bu denetleyiciyi &kaldırın - - 11 - 11 + + Re&name this controller + Bu denetleyiciyi yeniden ad&landırın + + + lmms::gui::CrossoverEQControlDialog - - 12 - 12 + + Band 1/2 crossover: + Bant geçişi 1/2: - - 13 - 13 + + Band 2/3 crossover: + Bant geçişi 2/3: - - 14 - 14 + + Band 3/4 crossover: + Bant geçişi 3/4: - - 15 - 15 + + Band 1 gain + Band kazancı 1 - - 16 - 16 + + Band 1 gain: + Band kazancı 1: - - Default Length: - Varsayılan Uzunluk: + + Band 2 gain + Band kazancı 2 - - - 1/16 - 1/16 + + Band 2 gain: + Band kazancı 2: - - - 1/15 - 1/15 + + Band 3 gain + Band kazancı 3 - - - 1/12 - 1/12 + + Band 3 gain: + Band kazancı 3: - - - 1/9 - 1/9 + + Band 4 gain + Band kazancı 4 - - - 1/8 - 1/8 + + Band 4 gain: + Band kazancı 4: - - - 1/6 - 1/6 + + Band 1 mute + Band 1 sesini kapatma - - - 1/3 - 1/3 + + Mute band 1 + Bant 1'in sesini kapat - - - 1/2 - 1/2 + + Band 2 mute + Band 2 sesini kapatma - - Quantize: - Niceleme: + + Mute band 2 + Band 2'yi sessize al - - &File - &Dosya + + Band 3 mute + Band 3 sesini kapatma - - &Edit - &Düzenle + + Mute band 3 + Bant 3'ü sessize al - - &Quit - &Çıkış + + Band 4 mute + Band 4 sesini kapatma - - &Insert Mode - &Ekle Modu + + Mute band 4 + Bant 4'ü sessize al + + + lmms::gui::DelayControlsDialog - - F - F + + DELAY + GECİKME - - &Velocity Mode - &Hız Modu + + Delay time + Gecikme süresi - - D - D + + FDBK + FDBK - - Select All - Tümünü seç + + Feedback amount + Geri bildirim miktarı - - A - A + + RATE + ORAN - - - MidiPort - - Input channel - Giriş kanalı + + LFO frequency + LFO frekansı - - Output channel - Çıkış kanalı + + AMNT + AMNT - - Input controller - Giriş kontrolörü + + LFO amount + LFO miktarı - - Output controller - Çıkış denetleyicisi + + Out gain + Çıkış kazancı - - Fixed input velocity - Sabit giriş hızı + + Gain + Kazanç + + + lmms::gui::DispersionControlDialog - - Fixed output velocity - Sabit çıkış hızı + + AMOUNT + MİKTAR - - Fixed output note - Sabit çıktı notu + + Number of all-pass filters + all-pass filtree numarası - - Output MIDI program - MIDI programı çıktısı + + FREQ + FREKANS - - Base velocity - Temel hız + + Frequency: + Frekans: - - Receive MIDI-events - MIDI olaylarını alın + + RESO + REZONANS - - Send MIDI-events - MIDI olayları gönder + + Resonance: + Rezonans: - - - MidiSetupWidget - - Device - Cihaz + + FEED + GERİ BİLDİRİM - - - MonstroInstrument - - Osc 1 volume - Osc 1 düzey + + Feedback: + Geri bildirim: - - Osc 1 panning - Osc 1 kaydırma + + DC Offset Removal + DC Ofset Kaldırma - - Osc 1 coarse detune - Osc 1 kaba detay + + Remove DC Offset + DC Ofsetini Kaldır + + + lmms::gui::DualFilterControlDialog - - Osc 1 fine detune left - Osc 1 ince detay sol + + + FREQ + FREK - - Osc 1 fine detune right - Osc 1 ince detay sağ + + + Cutoff frequency + Kesme frekansı - - Osc 1 stereo phase offset - Osc 1 çift kanal faz ofseti + + + RESO + RESO - - Osc 1 pulse width - Osc 1 darbe genişliği + + + Resonance + Çınlama - - Osc 1 sync send on rise - Osc 1 nsenkronizasyonu yükselişte gönder + + + GAIN + GAIN - - Osc 1 sync send on fall - Osc 1 senkronizasyonu sonbaharda gönder + + + Gain + Kazanç - - Osc 2 volume - Osc 2 düzey + + MIX + KARIŞIM - - Osc 2 panning - Osc 2 kaydırma + + Mix + Karıştır + + + + Filter 1 enabled + Filtre 1 etkinleştirildi - - Osc 2 coarse detune - Osc 2 kaba detay + + Filter 2 enabled + Filtre 2 etkinleştirildi - - Osc 2 fine detune left - Osc 2 ince detay sol + + Enable/disable filter 1 + Filtre 1'i etkinleştir / devre dışı bırak - - Osc 2 fine detune right - Osc 2 ince detay sağ + + Enable/disable filter 2 + Filtre 2'yi etkinleştir / devre dışı bırak + + + lmms::gui::DynProcControlDialog - - Osc 2 stereo phase offset - Osc 2 çift kanal faz ofseti + + INPUT + GİRDİ - - Osc 2 waveform - Osc 2 dalga formu + + Input gain: + Giriş kazancı: - - Osc 2 sync hard - Osc 2 senkronizasyonu zor + + OUTPUT + ÇIKTI - - Osc 2 sync reverse - Osc 2 senkronizasyon ters + + Output gain: + Çıkış kazancı: - - Osc 3 volume - Osc 3 düzey + + ATTACK + SALDIRI - - Osc 3 panning - Osc 3 kaydırma + + Peak attack time: + Tepe saldırı süresi: - - Osc 3 coarse detune - Osc 3 kaba detay + + RELEASE + YAYINLAMA - - Osc 3 Stereo phase offset - Osc 3 çift kanal faz ofseti + + Peak release time: + En yüksek yayın süresi: - - Osc 3 sub-oscillator mix - Osc 3 alt osilatör karışımı + + + Reset wavegraph + Dalga grafiğini sıfırla - - Osc 3 waveform 1 - Osc 3 dalga formu 1 + + + Smooth wavegraph + Pürüzsüz dalga grafiği - - Osc 3 waveform 2 - Osc 3 dalga formu 2 + + + Increase wavegraph amplitude by 1 dB + Dalga grafiğinin genliğini 1 dB artırın - - Osc 3 sync hard - Osc 3 senkronizasyonu zor + + + Decrease wavegraph amplitude by 1 dB + Dalga grafiğinin genliğini 1 dB azaltın - - Osc 3 Sync reverse - Osc 3 Senkronizasyon ters + + Stereo mode: maximum + Stereo modu: maksimum - - LFO 1 waveform - LFO 1 dalga formu + + Process based on the maximum of both stereo channels + Her iki stereo kanalın maksimumuna dayalı işlem - - LFO 1 attack - LFO 1 saldırısı + + Stereo mode: average + Stereo modu: ortalama - - LFO 1 rate - LFO 1 oran + + Process based on the average of both stereo channels + Her iki stereo kanalın ortalamasına dayalı işlem - - LFO 1 phase - LFO 1 aşaması + + Stereo mode: unlinked + Stereo mod: bağlantısız - - LFO 2 waveform - LFO 2 dalga formu + + Process each stereo channel independently + Her bir stereo kanalı bağımsız olarak işleyin + + + lmms::gui::Editor - - LFO 2 attack - LFO 2 saldırısı + + Transport controls + Aktarım kontrolleri - - LFO 2 rate - LFO 2 oran + + Play (Space) + Oynat (Boşluk) - - LFO 2 phase - LFO 2 aşaması + + Stop (Space) + Durdur ( Boşluk) - - Env 1 pre-delay - Env 1 ön gecikme + + Record + Kayıt - - Env 1 attack - Env 1 saldırısı + + Record while playing + Çalarken kayıt - - Env 1 hold - Env 1 tutma + + Toggle Step Recording + Adım Kaydı Değiştir + + + lmms::gui::EffectRackView - - Env 1 decay - Env 1 bozunma + + EFFECTS CHAIN + ETKİ ZİNCİRİ - - Env 1 sustain - Env 1 sürdürmek + + Add effect + Efekt ekleyin + + + lmms::gui::EffectSelectDialog - - Env 1 release - Env 1 yayını + + Add effect + - - Env 1 slope - Env 1 eğimi + + + Name + İsme göre - - Env 2 pre-delay - Env 2 ön gecikmesi + + Type + Tür - - Env 2 attack - Env 2 saldırısı + + All + - - Env 2 hold - Env 2 tutma + + Search + - - Env 2 decay - Env 2 bozunma + + Description + Açıklama - - Env 2 sustain - Env 2 sürdürmek + + Author + Yazar + + + lmms::gui::EffectView - - Env 2 release - Env 2 yayını + + On/Off + Aç/Kapat - - Env 2 slope - Env 2 eğimi + + W/D + I/K - - Osc 2+3 modulation - Osc 2+3 modülasyonu + + Wet Level: + Islak düzey: - - Selected view - Seçili görünüm + + DECAY + BOZULMA - - Osc 1 - Vol env 1 - Osc 1 - Düzey env 1 + + Time: + Zaman: - - Osc 1 - Vol env 2 - Osc 1 - Düzey env 2 + + GATE + PORTAL - - Osc 1 - Vol LFO 1 - Osc 1 - Düzey LFO 1 + + Gate: + Portal: - - Osc 1 - Vol LFO 2 - Osc 1 - Düzey LFO 2 + + Controls + Kontroller - - Osc 2 - Vol env 1 - Osc 2 - Düzey env 1 + + Move &up + Y&ukarı taşı - - Osc 2 - Vol env 2 - Osc 2 - Düzey env 2 + + Move &down + &Aşağı taşı - - Osc 2 - Vol LFO 1 - Osc 2 - Düzey LFO 1 + + &Remove this plugin + Bu eklentiyi &kaldır + + + lmms::gui::EnvelopeAndLfoView - - Osc 2 - Vol LFO 2 - Osc 2 - Düzey LFO 2 + + + AMT + AMT - - Osc 3 - Vol env 1 - Osc 3 - Düzey env 1 + + + Modulation amount: + Modülasyon miktarı: - - Osc 3 - Vol env 2 - Osc 3 - Düzey env 2 + + + DEL + SİL - - Osc 3 - Vol LFO 1 - Osc 3 - Düzey LFO 1 + + + Pre-delay: + Ön gecikme: - - Osc 3 - Vol LFO 2 - Osc 3 - Düzey LFO 2 + + + ATT + ATT - - - Osc 1 - Phs env 1 - Osc 1 - Phs env 1 + + + + Attack: + Saldırı: - - Osc 1 - Phs env 2 - Osc 1 - Phs env 2 + + HOLD + TUT - - Osc 1 - Phs LFO 1 - Osc 1 - Phs LFO 1 + + Hold: + Ambar: - - Osc 1 - Phs LFO 2 - Osc 1 - Phs LFO 2 + + DEC + DEC - - Osc 2 - Phs env 1 - Osc 2 - Phs env 1 + + Decay: + Bozunma: - - Osc 2 - Phs env 2 - Osc 2 - Phs env 2 + + SUST + SUST - - Osc 2 - Phs LFO 1 - Osc 2 - Phs LFO 1 + + Sustain: + Sürdürmek: - - Osc 2 - Phs LFO 2 - Osc 2 - Phs LFO 2 + + REL + REL - - Osc 3 - Phs env 1 - Osc 3 - Phs env 1 + + Release: + Yayınla: - - Osc 3 - Phs env 2 - Osc 3 - Phs env 2 + + SPD + SPD - - Osc 3 - Phs LFO 1 - Osc 3 - Phs LFO 1 + + Frequency: + Frekans: - - Osc 3 - Phs LFO 2 - Osc 3 - Phs LFO 2 + + FREQ x 100 + FREQ x 100 - - Osc 1 - Pit env 1 - Osc 1 - Pit env 1 + + Multiply LFO frequency by 100 + LFO frekansını 100 ile çarpın - - Osc 1 - Pit env 2 - Osc 1 - Pit env 2 + + MOD ENV AMOUNT + - - Osc 1 - Pit LFO 1 - Osc 1 - Pit LFO 1 + + Control envelope amount by this LFO + Bu LFO ile kontrol zarfı miktarı - - Osc 1 - Pit LFO 2 - Osc 1 - Pit LFO 2 + + Hint + İpucu - - Osc 2 - Pit env 1 - Osc 2 - Pit env 1 + + Drag and drop a sample into this window. + Bu pencereye bir örnek sürükleyip bırakın. + + + lmms::gui::EnvelopeGraph - - Osc 2 - Pit env 2 - Osc 2 - Pit env 2 + + Scaling + - - Osc 2 - Pit LFO 1 - Osc 2 - Pit LFO 1 + + Dynamic + - - Osc 2 - Pit LFO 2 - Osc 2 - Pit LFO 2 + + Uses absolute spacings but switches to relative spacing if it's running out of space + - - Osc 3 - Pit env 1 - Osc 3 - Pit env 1 + + Absolute + - - Osc 3 - Pit env 2 - Osc 3 - Pit env 2 + + Provides enough potential space for each segment but does not scale + - - Osc 3 - Pit LFO 1 - Osc 3 - Pit LFO 1 + + Relative + - - Osc 3 - Pit LFO 2 - Osc 3 - Pit LFO 2 + + Always uses all of the available space to display the envelope graph + + + + lmms::gui::EqControlsDialog - - Osc 1 - PW env 1 - Osc 1 - PW env 1 + + HP + HP - - Osc 1 - PW env 2 - Osc 1 - PW env 2 + + Low-shelf + Düşük raf - - Osc 1 - PW LFO 1 - Osc 1 - PW LFO 1 + + Peak 1 + Tepe 1 - - Osc 1 - PW LFO 2 - Osc 1 - PW LFO 2 + + Peak 2 + Tepe 2 - - Osc 3 - Sub env 1 - Osc 3 - Sub env 1 + + Peak 3 + Tepe 3 - - Osc 3 - Sub env 2 - Osc 3 - Sub env 2 + + Peak 4 + Tepe 4 - - Osc 3 - Sub LFO 1 - Osc 3 - Sub LFO 1 + + High-shelf + Yüksek raf - - Osc 3 - Sub LFO 2 - Osc 3 - Sub LFO 2 + + LP + LP - - - Sine wave - Sinüs dalgası + + Input gain + Giriş kazancı - - Bandlimited Triangle wave - Band sınırlı Üçgen dalga + + + + Gain + Kazanç - - Bandlimited Saw wave - Bant sınırı Testere dalgası + + Output gain + Çıkış kazancı - - Bandlimited Ramp wave - Bant sınırlı Rampa dalgası + + Bandwidth: + Bant genişliği: - - Bandlimited Square wave - Bant sınırı Kare dalga + + Octave + Octave - - Bandlimited Moog saw wave - Band sınırlı Moog testere dalgası + + Resonance: + - - - Soft square wave - Yumuşak kare dalga + + Frequency: + Frekans: - - Absolute sine wave - Mutlak sinüs dalgası + + LP group + LP grubu - - - Exponential wave - Üstel dalga + + HP group + HP grubu + + + lmms::gui::EqHandle - - White noise - Beyaz gürültü + + Reso: + Reso: - - Digital Triangle wave - Dijital Üçgen dalga + + BW: + BW: - - Digital Saw wave - Dijital Testere dalgası + + + Freq: + Freq: + + + lmms::gui::ExportProjectDialog - - Digital Ramp wave - Dijital Rampa dalgası + + Could not open file + Dosya açılamadı - - Digital Square wave - Dijital Kare dalga + + Could not open file %1 for writing. +Please make sure you have write permission to the file and the directory containing the file and try again! + %1 dosyası yazmak için açılamadı. +Lütfen dosyaya ve dosyayı içeren dizine yazma izniniz olduğundan emin olun ve tekrar deneyin! - - Digital Moog saw wave - Digital Moog testere dalgası + + Export project to %1 + %1 projesini dışa aktar - - Triangle wave - Üçgen dalga + + ( Fastest - biggest ) + (En hızlı - en büyük) - - Saw wave - Testere dalga + + ( Slowest - smallest ) + (En yavaş - en küçük) - - Ramp wave - Rampa dalgası + + Error + Sorun - - Square wave - Kare dalgası + + Error while determining file-encoder device. Please try to choose a different output format. + Dosya kodlayıcı cihazı belirlenirken hata oluştu. Lütfen farklı bir çıktı biçimi seçmeyi deneyin. - - Moog saw wave - Moog testere dalgası + + Rendering: %1% + Oluşturuluyor: %1% + + + lmms::gui::Fader - - Abs. sine wave - Abs. sinüs dalgası + + Set value + Değeri ayarla - - Random - Rastgele + + Please enter a new value between %1 and %2: + Lütfen %1 ile %2 arasında yeni bir değer girin: - - Random smooth - Rastgele pürüzsüz + + Volume: %1 dBFS + - MonstroView - - - Operators view - Operatörler görünümü - + lmms::gui::FileBrowser - - Matrix view - Matris görünümü + + Browser + Tarayıcı - - - - Volume - Ses Düzeyi + + Search + Ara - - - - Panning - Panning + + Refresh list + Listeyi yenile - - - - Coarse detune - Kaba detune + + User content + Kullanıcı içeriği - - - - semitones - yarım tonlar + + Factory content + Fabrika içeriği - - - Fine tune left - Sola ince ayar + + Hidden content + + + + lmms::gui::FileBrowserTreeWidget - - - - - cents - sent + + Send to active instrument-track + Aktif alet izine gönder - - - Fine tune right - Sağa ince ayar + + Open containing folder + Bulunduğu dizini aç - - - - Stereo phase offset - Stereo faz kayması + + Song Editor + Şarkı Düzenleyici - - - - - - deg - deg + + Pattern Editor + Kalıp Düzenleyici - - Pulse width - Darbe genişliği + + Send to new AudioFileProcessor instance + Yeni Ses Dosyası İşlemcisi örneğine gönder - - Send sync on pulse rise - Nabız yükseldiğinde senkronizasyon gönder + + Send to new instrument track + Yeni enstrüman kanalına gönder - - Send sync on pulse fall - Nabız düşüşünde senkronizasyon gönder + + (%2Enter) + (%2Enter) - - Hard sync oscillator 2 - Sabit senkron osilatör 2 + + Send to new sample track (Shift + Enter) + Yeni örnek kanala gönder (Shift + Enter) - - Reverse sync oscillator 2 - Ters senkron osilatör 2 + + Loading sample + Örnek yükleniyor - - Sub-osc mix - Alt osc karışımı + + Please wait, loading sample for preview... + Lütfen bekleyin, önizleme için örnek yükleniyor... - - Hard sync oscillator 3 - Sabit senkron osilatör 3 + + Error + Sorun - - Reverse sync oscillator 3 - Ters senkron osilatör 3 + + %1 does not appear to be a valid %2 file + %1 geçerli bir %2 dosyası gibi görünmüyor - - - - - Attack - Saldırı + + --- Factory files --- + --- Fabrika dosyaları --- + + + lmms::gui::FileDialog - - - Rate - Oran + + %1 files + - - - Phase - Evre + + All audio files + - - - Pre-delay - Ön gecikme + + Other files + + + + lmms::gui::FlangerControlsDialog - - - Hold - Tut + + DELAY + GECİKME - - - Decay - Bozunma + + Delay time: + Gecikme süresi: - - - Sustain - Sürdürmek + + RATE + ORAN - - - Release - Yayınla + + Period: + Periyod: - - - Slope - Eğim + + AMNT + AMNT - - Mix osc 2 with osc 3 - Osc 2'yi osc 3 ile karıştır + + Amount: + Miktar: - - Modulate amplitude of osc 3 by osc 2 - OSC 3'ün genliğini osc 2 ile modüle edin + + PHASE + Evre - - Modulate frequency of osc 3 by osc 2 - OSC 3'ün frekansını osc 2 ile modüle edin + + Phase: + Evre: - - Modulate phase of osc 3 by osc 2 - OSC 3'ün fazını OSC 2 ile modüle edin + + FDBK + FDBK - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Modulation amount - Modülasyon miktarı + + Feedback amount: + Geri bildirim miktarı: - - - MultitapEchoControlDialog - - Length - Süre + + NOISE + PARAZİT - - Step length: - Adım uzunluğu: + + White noise amount: + Beyaz gürültü miktarı: - - Dry - Kuru + + Invert + Tersine çevir + + + lmms::gui::FloatModelEditorBase - - Dry gain: - Kuru kazanç: + + Set linear + - - Stages - Aşamalar + + Set logarithmic + - - Low-pass stages: - Düşük geçiş aşamaları: + + + Set value + - - Swap inputs - Girişleri değiştir + + Please enter a new value between -96.0 dBFS and 6.0 dBFS: + - - Swap left and right input channels for reflections - Yansımalar için sol ve sağ giriş kanallarını değiştirin + + Please enter a new value between %1 and %2: + - NesInstrument + lmms::gui::FreeBoyInstrumentView - - Channel 1 coarse detune - Kanal 1 kaba detune + + Sweep time: + Tarama zamanı: - - Channel 1 volume - Kanal 1 düzeyi + + Sweep time + Tarama zamanı - - Channel 1 envelope length - Kanal 1 zarf uzunluğu + + Sweep rate shift amount: + Tarama oranı kaydırma miktarı: - - Channel 1 duty cycle - Kanal 1 görev döngüsü + + Sweep rate shift amount + Tarama oranı kaydırma miktarı - - Channel 1 sweep amount - Kanal 1 tarama miktarı + + + Wave pattern duty cycle: + Dalga deseni görev döngüsü: - - Channel 1 sweep rate - Kanal 1 tarama hızı + + + Wave pattern duty cycle + Dalga deseni görev döngüsü - - Channel 2 Coarse detune - Kanal 2 Kaba detune + + Square channel 1 volume: + Kare kanal 1 düzeyi: - - Channel 2 Volume - Kanal 2 Düzeyi + + Square channel 1 volume + Kare kanal 1 düzeyi - - Channel 2 envelope length - Kanal 2 zarf uzunluğu + + + + Length of each step in sweep: + Taramadaki her adımın uzunluğu: - - Channel 2 duty cycle - Kanal 2 görev döngüsü + + + + Length of each step in sweep + Taramadaki her adımın uzunluğu - - Channel 2 sweep amount - Kanal 2 tarama miktarı + + Square channel 2 volume: + Kare kanal 2 düzeyi: - - Channel 2 sweep rate - Kanal 2 tarama hızı + + Square channel 2 volume + Kare kanal 2 düzeyi - - Channel 3 coarse detune - Kanal 3 kaba detune + + Wave pattern channel volume: + Dalga deseni kanal düzeyi: - - Channel 3 volume - Kanal 3 düzeyi + + Wave pattern channel volume + Dalga deseni kanal düzeyi - - Channel 4 volume - Kanal 4 düzeyi + + Noise channel volume: + Gürültü kanalı düzeyi: - - Channel 4 envelope length - Kanal 4 zarf uzunluğu + + Noise channel volume + Gürültü kanalı düzeyi - - Channel 4 noise frequency - Kanal 4 gürültü frekansı + + SO1 volume (Right): + SO2 düzeyi (Sağ): - - Channel 4 noise frequency sweep - Kanal 4 gürültü frekansı taraması + + SO1 volume (Right) + SO2 düzeyi (Sağ) - - Master volume - Ana ses + + SO2 volume (Left): + SO2 düzeyi (Sol): - - Vibrato - Titreşim + + SO2 volume (Left) + SO2 düzeyi (Sol) - - - NesInstrumentView - - - - - Volume - Ses Düzeyi + + Treble: + Tiz: - - - - Coarse detune - Kaba detune + + Treble + Tiz - - - - Envelope length - Zarf uzunluğu + + Bass: + Bas: - - Enable channel 1 - 1. kanalı etkinleştir + + Bass + Bas - - Enable envelope 1 - Zarf 1'i etkinleştir + + Sweep direction + Tarama yönü - - Enable envelope 1 loop - Zarf 1 döngüsünü etkinleştir + + + + + + Volume sweep direction + Düzey tarama yönü - - Enable sweep 1 - Tarama 1`i etkinleştir + + Shift register width + Vardiya kaydı genişliği - - - Sweep amount - Tarama miktarı + + Channel 1 to SO1 (Right) + Kanal 1'den SO1'e (Sağ) - - - Sweep rate - Tarama oranı + + Channel 2 to SO1 (Right) + Kanal 2'den SO1'e (Sağ) - - - 12.5% Duty cycle - % 12,5 Görev döngüsü + + Channel 3 to SO1 (Right) + Kanal 3'den SO1'e (Sağ) - - - 25% Duty cycle - % 25 Görev döngüsü + + Channel 4 to SO1 (Right) + Kanal 4'den SO1'e (Sağ) - - - 50% Duty cycle - % 50 Görev döngüsü + + Channel 1 to SO2 (Left) + Kanal 1'den SO2'ye (Sol) - - - 75% Duty cycle - % 75 Görev döngüsü + + Channel 2 to SO2 (Left) + Kanal 2'den SO2'ye (Sol) - - Enable channel 2 - 2. kanalı etkinleştir + + Channel 3 to SO2 (Left) + Kanal 3'den SO2'ye (Sol) - - Enable envelope 2 - Zarf 2'yi etkinleştir + + Channel 4 to SO2 (Left) + Kanal 4'den SO2'ye (Sol) - - Enable envelope 2 loop - Zarf 2 döngüsünü etkinleştir + + Wave pattern graph + Dalga deseni grafiği + + + lmms::gui::GigInstrumentView - - Enable sweep 2 - Tarama 2 yi etkinleştir + + + Open GIG file + GIG dosyasını açın - - Enable channel 3 - 3. kanalı etkinleştir + + Choose patch + Yama seçin - - Noise Frequency - Gürültü Frekansı + + Gain: + Kazanç: - - Frequency sweep - Frekans taraması + + GIG Files (*.gig) + GIG Dosyaları (*.gig) + + + lmms::gui::GranularPitchShifterControlDialog - - Enable channel 4 - 4. kanalı etkinleştir + + Grain Size: + - - Enable envelope 4 - Zarf 4'ü etkinleştir + + Spray: + - - Enable envelope 4 loop - Zarf 4 döngüsünü etkinleştir + + Jitter: + - - Quantize noise frequency when using note frequency - Nota frekansını kullanırken gürültü frekansını nicelendirin + + Twitch: + - - Use note frequency for noise - Gürültü için nota frekansını kullanın + + Spray Stereo Spread: + - - Noise mode - Gürültü modu + + Grain Shape: + - - Master volume - Ana ses + + Fade Length: + - - Vibrato - Titreşim + + Feedback: + - - - OpulenzInstrument - - Patch - Yama + + Minimum Allowed Latency: + - - Op 1 attack - Op 1 saldırısı + + Density: + - - Op 1 decay - Op 1 bozunması + + Glide: + - - Op 1 sustain - Op 1 sürdürme + + + Pitch + - - Op 1 release - Op 1 yayını + + + Pitch Stereo Spread + - - Op 1 level - Op 1 seviyesi + + Open help window + - - Op 1 level scaling - Op 1 seviye ölçeklendirme + + + Prefilter + + + + lmms::gui::GuiApplication - - Op 1 frequency multiplier - Op 1 frekans çarpanı + + Working directory + Çalışma dizini - - Op 1 feedback - Op 1 geribildirimi + + The LMMS working directory %1 does not exist. Create it now? You can change the directory later via Edit -> Settings. + %1 LMMS çalışma dizini yok. Şimdi oluşturulsun mu? Dizini daha sonra Düzenle -> Ayarlar üzerinden değiştirebilirsiniz. - - Op 1 key scaling rate - Op 1 anahtar ölçekleme oranı + + Preparing UI + Arayüz hazırlanıyor - - Op 1 percussive envelope - Op 1 vurmalı zarf + + Preparing song editor + Şarkı düzenleyicinin hazırlanıyor - - Op 1 tremolo - Op 1 tremolo + + Preparing mixer + Karıştırıcı hazırlanıyor - - Op 1 vibrato - Op 1 titreşimi + + Preparing controller rack + Denetleyici rafını hazırlanıyor - - Op 1 waveform - Op 1 dalga formu + + Preparing project notes + Proje notlarının hazırlanıyor - - Op 2 attack - Op 2 saldırısı + + Preparing microtuner + Mikro ayarlayıcı hazırlanıyor - - Op 2 decay - Op 2 bozunması + + Preparing pattern editor + Kalıp düzenleyici hazırlanıyor - - Op 2 sustain - Op 2 sürdürme + + Preparing piano roll + Piyano rulosunun hazırlanıyor - - Op 2 release - Op 2 yayını + + Preparing automation editor + Otomasyon düzenleyicinin hazırlanıyor + + + lmms::gui::InstrumentFunctionArpeggioView - - Op 2 level - Op 2 seviyesi + + ARPEGGIO + ARPEJ - - Op 2 level scaling - Op 2 seviye ölçeklendirme + + RANGE + ARALIK - - Op 2 frequency multiplier - Op 2 frekans çarpanı + + Arpeggio range: + Arpej aralığı: - - Op 2 key scaling rate - Op 2 anahtar ölçekleme oranı + + octave(s) + octave(s) - - Op 2 percussive envelope - Op 2 vurmalı zarf + + REP + REP - - Op 2 tremolo - Op 2 tremolo + + Note repeats: + Nota tekrarları: - - Op 2 vibrato - Op 2 titreşimi + + time(s) + zamanlar) - - Op 2 waveform - Op 2 dalga formu + + CYCLE + DÖNGÜ - - FM - FM + + Cycle notes: + Döngü notaları: - - Vibrato depth - Titreşim derinliği + + note(s) + nota(lar) - - Tremolo depth - Tremolo derinliği + + SKIP + ATLA - - - OpulenzInstrumentView - - - Attack - Saldırı + + Skip rate: + Atlama oranı: - - - Decay - Bozunma + + + + % + % - - - Release - Yayınla + + MISS + KAÇIRMA - - - Frequency multiplier - Frekans çarpanı + + Miss rate: + Kaçırma oranı: - - - OscillatorObject - - Osc %1 waveform - Osc %1 dalga biçimi + + TIME + ZAMAN - - Osc %1 harmonic - Osc %1 harmonik + + Arpeggio time: + Arpej zamanı: - - - Osc %1 volume - Osc %1 düzeyi + + ms + ms - - - Osc %1 panning - Osc %1 kaydırma + + GATE + PORTAL - - - Osc %1 fine detuning left - Osc %1 ince ayar sol + + Arpeggio gate: + Arpej kapısı: - - Osc %1 coarse detuning - Osc %1 kaba ince ayar + + Chord: + Akord: - - Osc %1 fine detuning right - Osc %1 ince ayar sağ + + Direction: + Yön: - - Osc %1 phase-offset - Osc %1 faz kayması + + Mode: + Kip: + + + lmms::gui::InstrumentFunctionNoteStackingView - - Osc %1 stereo phase-detuning - Osc %1 stereo faz ayarlama + + STACKING + İSTİFLEME - - Osc %1 wave shape - Osc %1 dalga şekli + + Chord: + Akord: - - Modulation type %1 - Modülasyon türü %1 + + RANGE + ARALIK - - - Oscilloscope - - Oscilloscope - Oscilloscope + + Chord range: + Akord aralığı: - - Click to enable - Etkinleştirmek için tıklayın + + octave(s) + octave(s) - PatchesDialog + lmms::gui::InstrumentMidiIOView - - Qsynth: Channel Preset - Qsynth: Kanal Ön Ayarı + + ENABLE MIDI INPUT + MIDI GİRİŞİNİ ETKİNLEŞTİR - - Bank selector - Yuva seçici + + + CHAN + This string must be be short, its width must be less than * width of LCD spin-box of two digits + KANAL - - Bank - Yuva + + + VELOC + This string must be be short, its width must be less than * width of LCD spin-box of three digits + VELOC - - Program selector - Program seçici + + ENABLE MIDI OUTPUT + MIDI ÇIKIŞINI ETKİNLEŞTİR - - Patch - Yama + + PROG + This string must be be short, its width must be less than the * width of LCD spin-box of three digits + PROG - - Name - İsim + + NOTE + This string must be be short, its width must be less than * width of LCD spin-box of three digits + NOTA - - OK - Tamam + + MIDI devices to receive MIDI events from + MIDI olaylarının alınacağı MIDI cihazları - - Cancel - İptal + + MIDI devices to send MIDI events to + MIDI olaylarının gönderileceği MIDI cihazları - - - PatmanView - - Open patch - Yama aç + + VELOCITY MAPPING + - - Loop - Döngü + + MIDI VELOCITY + - - Loop mode - Döngü modu + + MIDI notes at this velocity correspond to 100% note velocity. + + + + lmms::gui::InstrumentSoundShapingView - - Tune - Ayarla + + TARGET + HEDEF - - Tune mode - Ayar modu + + FILTER + FİLTRE - - No file selected - Dosya seçilmedi + + FREQ + FREK - - Open patch file - Yama dosyasını aç + + Cutoff frequency: + Kesim frekansı: - - Patch-Files (*.pat) - Yama Dosyaları (*.pat) + + Hz + Hz - - - MidiClipView - - Open in piano-roll - Piyano rulosunda aç + + Q/RESO + Q/RESO - - Set as ghost in piano-roll - Piyano rulosunda hayalet olarak ayarla + + Q/Resonance: + Q/Rezonans: - - Clear all notes - Tüm notaları temizle + + Envelopes, LFOs and filters are not supported by the current instrument. + Zarflar, LFO'lar ve filtreler mevcut cihaz tarafından desteklenmemektedir. + + + lmms::gui::InstrumentTrackView - - Reset name - İsmini sıfırla + + Mixer channel + - - Change name - İsmini değiştir + + Volume + Ses Düzeyi - - Add steps - Uzat + + Volume: + Ses Düzeyi: - - Remove steps - Kısalt + + VOL + SES - - Clone Steps - Klon Adımları + + Panning + Kaydırma - - - PeakController - - Peak Controller - Tepe Kontrolörü + + Panning: + Kaydırma: - - Peak Controller Bug - Tepe Kontrol Hatası + + PAN + PAN - - Due to a bug in older version of LMMS, the peak controllers may not be connect properly. Please ensure that peak controllers are connected properly and re-save this file. Sorry for any inconvenience caused. - LMMS'nin eski sürümündeki bir hata nedeniyle, tepe denetleyicileri doğru şekilde bağlanamayabilir. Lütfen tepe denetleyicilerin doğru şekilde bağlandığından emin olun ve bu dosyayı yeniden kaydedin. Herhangi bir rahatsızlık verdiysem üzgünüm. + + MIDI + MIDI - - - PeakControllerDialog - - PEAK - ZİRVE + + Input + Giriş - - LFO Controller - LFO Denetleyicisi + + Output + Çıkış - - - PeakControllerEffectControlDialog - - BASE - TEMEL + + Open/Close MIDI CC Rack + MIDI CC Rafını Aç / Kapat - - Base: - Temel: + + %1: %2 + %1: %2 + + + lmms::gui::InstrumentTrackWindow - - AMNT - AMNT + + Volume + Ses Düzeyi - - Modulation amount: - Modülasyon miktarı: + + Volume: + Ses Düzeyi: - - MULT - ÇOK + + VOL + SES - - Amount multiplicator: - Miktar çarpanı: + + Panning + Kaydırma - - ATCK - SALDIRI + + Panning: + Kaydırma: - - Attack: - Saldırı: + + PAN + PAN - - DCAY - BOZUNMA + + Pitch + Saha - - Release: - Yayınla: + + Pitch: + Hatve (Aralık): - - TRSH - EŞİK + + cents + sent - - Treshold: - Eşik: + + PITCH + PERDE - - Mute output - Çıkış sessiz + + Pitch range (semitones) + Perde aralığı (yarım tonlar) - - Absolute value - Mutlak değer + + RANGE + ARALIK - - - PeakControllerEffectControls - - Base value - Temel değer + + Mixer channel + FX kanalı - - Modulation amount - Modülasyon miktarı + + CHANNEL + KANAL - - Attack - Saldırı + + Save current instrument track settings in a preset file + Mevcut enstrüman parça ayarlarını önceden ayarlanmış bir dosyaya kaydedin - - Release - Yayınla + + SAVE + KAYDET - - Treshold - Eşik + + Envelope, filter & LFO + Zarf, filtre ve LFO - - Mute output - Çıkış sessiz + + Chord stacking & arpeggio + Akor istifleme & arpej - - Absolute value - Mutlak değer + + Effects + Efektler - - Amount multiplicator - Miktar çarpanı + + MIDI + MIDI - - - PianoRoll - - Note Velocity - Nota Hızı + + Tuning and transposition + - - Note Panning - Nota Kaydırma + + Save preset + Ön ayarı kaydet - - Mark/unmark current semitone - Geçerli yarım tonu işaretle / işareti kaldır + + XML preset file (*.xpf) + XML hazır ayar dosyası (*.xpf) - - Mark/unmark all corresponding octave semitones - İlgili tüm oktav yarı tonlarını işaretle / işareti kaldır + + Plugin + Eklenti + + + lmms::gui::InstrumentTuningView - - Mark current scale - Mevcut ölçeği işaretle + + GLOBAL TRANSPOSITION + - - Mark current chord - Geçerli akoru işaretle + + Enables the use of global transposition + - - Unmark all - Hepsinin işaretini kaldır + + Microtuner is not available for MIDI-based instruments. + - - Select all notes on this key - Bu anahtardaki tüm notaları seçin + + MICROTUNER + - - Note lock - Nota kilidi + + Active scale: + - - Last note - Son nota + + + Edit scales and keymaps + - - No key - Anahtar yok + + Active keymap: + - - No scale - Ölçek yok + + Import note ranges from keymap + - - No chord - Akord yok + + When enabled, the first, last and base notes of this instrument will be overwritten with values specified by the selected keymap. + + + + lmms::gui::KickerInstrumentView - - Nudge - Dürtme + + Start frequency: + Başlangıç frekansı: - - Snap - Yapış + + End frequency: + Bitiş frekansı: - - Velocity: %1% - Hız: %1% + + Frequency slope: + Frekans eğimi: - - Panning: %1% left - Kaydırma: %1% sola + + Gain: + Kazanç: - - Panning: %1% right - Kaydırma: %1% sağa + + Envelope length: + Zarf uzunluğu: - - Panning: center - Kaydırma: merkez + + Envelope slope: + Zarf eğimi: - - Glue notes failed - Yapışkan notaları başarısız oldu + + Click: + Tıkla: - - Please select notes to glue first. - Lütfen önce yapıştırılacak notaları seçin. + + Noise: + Gürültü: - - Please open a clip by double-clicking on it! - Lütfen üzerine çift tıklayarak bir desen açın! + + Start distortion: + Bozulmayı başlat: - - - Please enter a new value between %1 and %2: - Lütfen %1 ile %2 arasında yeni bir değer girin: + + End distortion: + Bozulmayı bitir: - PianoRollWindow - - - Play/pause current clip (Space) - Seçili bölümü oynat/durdur (Boşluk Tuşu) - + lmms::gui::LOMMControlDialog - - Record notes from MIDI-device/channel-piano - MIDI aygıtında/kanal piyanodan notaları kaydedin + + Depth: + - - Record notes from MIDI-device/channel-piano while playing song or BB track - Şarkı veya BB parçası çalarken MIDI aygıtından/kanal piyanodan notaları kaydedin + + Compression amount for all bands + - - Record notes from MIDI-device/channel-piano, one step at the time - MIDI aygıtından/kanal piyanodan notaları bir seferde bir adım kaydedin + + Time: + - - Stop playing of current clip (Space) - Seçili bölümü oynatmayı durdur (Boşluk Tuşu) + + Attack/release scaling for all bands + - - Edit actions - İşlemleri düzenle + + Input Volume: + - - Draw mode (Shift+D) - Çizim modu (Shift+D) + + Input volume + - - Erase mode (Shift+E) - Silgi modu (Shift+E) + + Output Volume: + - - Select mode (Shift+S) - Modu seçin (Shift + S) + + Output volume + - - Pitch Bend mode (Shift+T) - Pitch Bend modu (Shift+T) + + Upward Depth: + - - Quantize - Niceleme + + Upward compression amount for all bands + - - Quantize positions - Niceleme pozisyonları + + Downward Depth: + - - Quantize lengths - Niceleme uzunlukları + + Downward compression amount for all bands + - - File actions - Dosya işlemleri + + High/Mid Crossover + - - Import clip - Deseni içe aktar + + Mid/Low Crossover + - - - Export clip - Deseni dışa aktar + + High/mid band split + - - Copy paste controls - Kopyala yapıştır kontrolleri + + Mid/low band split + - - Cut (%1+X) - Kes (%1+X) + + Enable High Band + - - Copy (%1+C) - Kopyala (%1+C) + + Enable Mid Band + - - Paste (%1+V) - Yapıştır (%1+V) + + Enable Low Band + - - Timeline controls - Zaman çizelgesi kontrolleri + + High Input Volume: + - - Glue - Yapıştırıcı + + Input volume for high band + - - Knife - Bıçak + + Mid Input Volume: + - - Fill - Doldur + + Input volume for mid band + - - Cut overlaps - Örtüşmeleri kes + + Low Input Volume: + - - Min length as last - Son olarak en düşük uzunluk + + Input volume for low band + - - Max length as last - Son olarak en yüksek uzunluk + + High Output Volume: + - - Zoom and note controls - Yakınlaştırma ve nota kontrolleri + + Output volume for high band + - - Horizontal zooming - Yatay yakınlaştırma + + Mid Output Volume: + - - Vertical zooming - Dikey yakınlaştırma + + Output volume for mid band + - - Quantization - Niceleme + + Low Output Volume: + - - Note length - Nota uzunluğu + + Output volume for low band + - - Key - Anahtar + + Above Threshold High + - - Scale - Ölçek + + Downward compression threshold for high band + - - Chord - Kiriş + + Above Threshold Mid + - - Snap mode - Anlık çekim modu + + Downward compression threshold for mid band + - - Clear ghost notes - Hayalet notaları temizle + + Above Threshold Low + - - - Piano-Roll - %1 - Piyano Rulosu -%1 + + Downward compression threshold for low band + - - - Piano-Roll - no clip - Piyano Rulosu - desen yok + + Above Ratio High + - - - XML clip file (*.xpt *.xptz) - XML desen dosyası (*.xpt *.xptz) + + Downward compression ratio for high band + - - Export clip success - Deseni dışa aktarma başarılı + + Above Ratio Mid + - - Clip saved to %1 - Desen %1'e kaydedildi + + Downward compression ratio for mid band + - - Import clip. - Deseni içe aktar. + + Above Ratio Low + - - You are about to import a clip, this will overwrite your current clip. Do you want to continue? - Bir kalıp almak üzeresiniz, bu mevcut kalıbınızın üzerine yazılacaktır. Devam etmek istiyor musun? + + Downward compression ratio for low band + - - Open clip - Desen aç + + Below Threshold High + - - Import clip success - Desen başarılı şekilde içe aktarıldı + + Upward compression threshold for high band + - - Imported clip %1! - %1 deseni içe aktarıldı! + + Below Threshold Mid + - - - PianoView - - Base note - Temel nota + + Upward compression threshold for mid band + - - First note - İlk nota + + Below Threshold Low + - - Last note - Son nota + + Upward compression threshold for low band + - - - Plugin - - Plugin not found - Eklenti bulunamadı + + Below Ratio High + - - The plugin "%1" wasn't found or could not be loaded! -Reason: "%2" - "%1" eklentisi bulunamadı veya yüklenemedi! -Nedeni: "%2" + + Upward compression ratio for high band + - - Error while loading plugin - Eklenti yüklenirken hata + + Below Ratio Mid + - - Failed to load plugin "%1"! - "%1" eklentisi yüklenemedi! + + Upward compression ratio for mid band + - - - PluginBrowser - - Instrument Plugins - Enstrüman Eklentileri + + Below Ratio Low + - - Instrument browser - Enstrüman tarayıcısı + + Upward compression ratio for low band + - - Drag an instrument into either the Song-Editor, the Beat+Bassline Editor or into an existing instrument track. - Bir enstrümanı Şarkı Düzenleyici, Beat + Bassline Editor veya mevcut bir enstrüman parçasına sürükleyin. + + Attack High: + - - no description - açıklama yok + + Attack time for high band + - - A native amplifier plugin - Yerel bir amplifikatör eklentisi + + Attack Mid: + - - Simple sampler with various settings for using samples (e.g. drums) in an instrument-track - Bir enstrüman kanalında örnekleri (ör. Davullar) kullanmak için çeşitli ayarlara sahip basit örnekleyici + + Attack time for mid band + - - Boost your bass the fast and simple way - Basınızı hızlı ve basit bir şekilde güçlendirin + + Attack Low: + - - Customizable wavetable synthesizer - Özelleştirilebilir dalgalı sentezleyici + + Attack time for low band + - - An oversampling bitcrusher - Bir yüksek hızda örnekleme bit kırıcı + + Release High: + - - Carla Patchbay Instrument - Carla Patchbay Enstrüman + + Release time for high band + - - Carla Rack Instrument - Carla Raf Enstrümanı + + Release Mid: + - - A dynamic range compressor. - Dinamik aralıklı kompresör. + + Release time for mid band + - - A 4-band Crossover Equalizer - 4 bantlı Crossover Ekolayzer + + Release Low: + - - A native delay plugin - Yerel bir gecikme eklentisi + + Release time for low band + - - A Dual filter plugin - Çift filtre eklentisi + + RMS Time: + - - plugin for processing dynamics in a flexible way - dinamikleri esnek bir şekilde işlemek için eklenti + + RMS size for sidechain signal (set to 0 for Peak mode) + - - A native eq plugin - Yerel bir eq eklentisi + + Knee: + - - A native flanger plugin - Yerel bir flanger eklentisi + + Knee size for all compressors + - - Emulation of GameBoy (TM) APU - GameBoy (TM) APU Emülasyonu + + Range: + - - Player for GIG files - GIG dosyaları için oynatıcı + + Maximum gain increase for all bands + - - Filter for importing Hydrogen files into LMMS - Hydrogen dosyalarını LMMS'ye aktarmak için filtre + + Balance: + - - Versatile drum synthesizer - Çok yönlü davul synthesizer + + Bias input volume towards one channel + - - List installed LADSPA plugins - Yüklü LADSPA eklentilerini listeleyin + + Scale output volume with Depth + - - plugin for using arbitrary LADSPA-effects inside LMMS. - LMMS içinde rastgele LADSPA efektlerini kullanmak için eklenti. + + Scale output volume with Depth parameter + - - Incomplete monophonic imitation TB-303 - Eksik monofonik taklit TB-303 + + Stereo Link + - - plugin for using arbitrary LV2-effects inside LMMS. - LMMS içinde rastgele LV2 efektlerini kullanmak için eklenti. + + Apply same gain change to both channels + - - plugin for using arbitrary LV2 instruments inside LMMS. - LMMS içinde rastgele LV2 araçlarını kullanmak için eklenti. + + Auto Time: + - - Filter for exporting MIDI-files from LMMS - MIDI dosyalarını LMMS'den dışa aktarmak için filtre + + Speed up attack and release times when transients occur + - - Filter for importing MIDI-files into LMMS - MIDI dosyalarını LMMS'ye aktarmak için filtre + + Mix: + - - Monstrous 3-oscillator synth with modulation matrix - Modülasyon matrisli devasa 3-osilatör sentezi + + Wet/Dry of all bands + - - A multitap echo delay plugin - Çok noktalı yankı gecikmesi eklentisi + + Feedback + - - A NES-like synthesizer - NES benzeri bir sentezleyici + + Use output as sidechain signal instead of input + - - 2-operator FM Synth - 2 operatörlü FM Synth + + Mid/Side + - - Additive Synthesizer for organ-like sounds - Organ benzeri sesler için Additive Synthesizer + + Compress mid/side channels instead of left/right + - - GUS-compatible patch instrument - GUS uyumlu yama aracı + + + Suppress upward compression for side band + - - Plugin for controlling knobs with sound peaks - Ses zirvelerine sahip düğmeleri kontrol etmek için eklenti + + + Lookahead + - - Reverb algorithm by Sean Costello - Sean Costello'dan yankı algoritması + + Lookahead length + - - Player for SoundFont files - Soundfont dosyaları için oynatıcı + + Clear all parameters + + + + lmms::gui::LadspaBrowserView - - LMMS port of sfxr - Sfxr'nin LMMS bağlantı noktası + + + Available Effects + Mevcut Efektler - - Emulation of the MOS6581 and MOS8580 SID. -This chip was used in the Commodore 64 computer. - MOS6581 ve MOS8580 SID'nin öykünmesi. -Bu çip Commodore 64 bilgisayarında kullanıldı. + + + Unavailable Effects + Kullanılamayan Etkiler - - A graphical spectrum analyzer. - Bir grafik spektrum analizörü. + + + Instruments + Enstrümanlar - - Plugin for enhancing stereo separation of a stereo input file - Bir stereo giriş dosyasının stereo ayrımını geliştirmek için eklenti + + + Analysis Tools + Analiz Araçları - - Plugin for freely manipulating stereo output - Stereo çıkışı serbestçe değiştirmek için eklenti + + + Don't know + Bilmiyorum - - Tuneful things to bang on - Etkileyecek güzel şeyler + + Type: + Tür: + + + lmms::gui::LadspaControlDialog - - Three powerful oscillators you can modulate in several ways - Çeşitli şekillerde modüle edebileceğiniz üç güçlü osilatör + + Link Channels + Kanalları Bağla - - A stereo field visualizer. - Bir stereo alan görselleştiricisi. + + Channel + Kanallar + + + lmms::gui::LadspaControlView - - VST-host for using VST(i)-plugins within LMMS - LMMS içinde VST (i) eklentilerini kullanmak için VST ana bilgisayarı + + Link channels + Kanalları bağla - - Vibrating string modeler - Titreşimli dizi modelleyici + + Value: + Değer: + + + lmms::gui::LadspaDescription - - plugin for using arbitrary VST effects inside LMMS. - LMMS içinde rastgele VST efektlerini kullanmak için eklenti. + + Plugins + Eklentiler - - 4-oscillator modulatable wavetable synth - 4-osilatör modüle edilebilir dalgalanabilir synth + + Description + Açıklama - - plugin for waveshaping - dalgalı şekillendirme eklentisi + + Name: + - - Mathematical expression parser - Matematiksel ifade ayrıştırıcı + + Maker: + - - Embedded ZynAddSubFX - Gömülü ZynAddSubFX + + Copyright: + - - - PluginDatabaseW - - Carla - Add New - Carla - Yeni Ekle + + Requires Real Time: + - - Format - Biçim + + + + Yes + - - Internal - Dahili + + + + No + - - LADSPA - LADSPA + + Real Time Capable: + - - DSSI - DSSI + + In Place Broken: + - - LV2 - LV2 + + Channels In: + - - VST2 - VST2 + + Channels Out: + + + + lmms::gui::LadspaMatrixControlDialog - - VST3 - VST3 + + Link Channels + - - AU - AU + + Link + - - Sound Kits - Ses Kitleri + + Channel %1 + - - Type - Tip + + Link channels + + + + lmms::gui::LadspaPortDialog - - Effects - Efektler + + Ports + Bağlantı Noktaları - - Instruments - Enstrümanlar + + Name + İsme göre - - MIDI Plugins - MIDI Eklentileri + + Rate + Oran - - Other/Misc - Diğer/Çeşitli + + Direction + Yön - - Architecture - Mimari + + Type + Tür - - Native - Doğal + + Min < Default < Max + Min <Varsayılan <Maks - - Bridged - Köprülü + + Logarithmic + Logaritmik - - Bridged (Wine) - Köprülü (Wine) + + SR Dependent + SR Bağımlı - - Requirements - Gereksinimler + + Audio + Ses - - With Custom GUI - Özel Arayüz ile + + Control + Kontrol - - With CV Ports - CV Portları ile + + Input + Giriş - - Real-time safe only - Yalnızca gerçek zamanlı güvenli + + Output + Çıkış - - Stereo only - Yalnızca stereo + + Toggled + Geçişli - - With Inline Display - Satır İçi Ekranlı + + Integer + Tamsayı - - Favorites only - Yalnızca favoriler + + Float + Şamandıra - - (Number of Plugins go here) - (Eklenti sayısı buraya gelir) + + + Yes + Evet + + + lmms::gui::Lb302SynthView - - &Add Plugin - &Eklenti Ekle + + Cutoff Freq: + Kesim Frekansı: - - Cancel - İptal + + Resonance: + Rezonans: - - Refresh - Tazeleme + + Env Mod: + Env Mod: - - Reset filters - Filtreleri sıfırla - - - - - - - - - - - - - - - - - - - TextLabel - YazıEtiketi + + Decay: + Bozunma: - - Format: - Biçim: + + 303-es-que, 24dB/octave, 3 pole filter + 303-es-que, 24dB/octave, 3 kutuplu filtre - - Architecture: - Mimari: + + Slide Decay: + Bozulma Kaydırma: - - Type: - Türü: + + DIST: + MESAFE: - - MIDI Ins: - MIDI Girişleri: + + Saw wave + Testere dalga - - Audio Ins: - Ses Girişleri: + + Click here for a saw-wave. + Testere dalgası için buraya tıklayın. - - CV Outs: - CV Çıkışları: + + Triangle wave + Üçgen dalga - - MIDI Outs: - MIDI Çıkışları: + + Click here for a triangle-wave. + Üçgen dalga için burayı tıklayın. - - Parameter Ins: - Parametre Girişleri: + + Square wave + Kare dalgası - - Parameter Outs: - Parametre Çıkışları: + + Click here for a square-wave. + Kare dalga için burayı tıklayın. - - Audio Outs: - Ses Çıkışları: + + Rounded square wave + Yuvarlak kare dalga - - CV Ins: - CV Girişleri: + + Click here for a square-wave with a rounded end. + Yuvarlak uçlu bir kare dalga için burayı tıklayın. - - UniqueID: - Benzersiz Kimlik: + + Moog wave + Moog dalgası - - Has Inline Display: - Satır İçi Ekrana Sahiptir: + + Click here for a moog-like wave. + Moog benzeri bir dalga için burayı tıklayın. - - Has Custom GUI: - Özel Arayüz'e sahiptir: + + Sine wave + Sinüs dalgası - - Is Synth: - Is Synth: + + Click for a sine-wave. + Sinüs dalgası için tıklayın. - - Is Bridged: - Köprülü: + + + White noise wave + Beyaz gürültü dalgası - - Information - Bilgi + + Click here for an exponential wave. + Üstel dalga için burayı tıklayın. - - Name - İsim + + Click here for white-noise. + Beyaz gürültü için buraya tıklayın. - - Label/URI - Etiket/URI + + Bandlimited saw wave + Bant sınırlı testere dalgası - - Maker - Yapıcı + + Click here for bandlimited saw wave. + Bantlı testere dalgası için buraya tıklayın. - - Binary/Filename - İkili/Dosya adı + + Bandlimited square wave + Bant sınırlı kare dalga - - Focus Text Search - Metin Aramaya Odaklan + + Click here for bandlimited square wave. + Band sınırlı kare dalga için buraya tıklayın. - - Ctrl+F - Ctrl+F + + Bandlimited triangle wave + Bant sınırlı üçgen dalga - - - PluginEdit - - Plugin Editor - Eklenti Düzenleyicisi + + Click here for bandlimited triangle wave. + Bant sınırlı üçgen dalga için buraya tıklayın. - - Edit - Düzenle + + Bandlimited moog saw wave + Band sınırlı moog testere dalgası - - Control - Kontrol + + Click here for bandlimited moog saw wave. + Bant sınırlı moog testere dalgası için buraya tıklayın. + + + lmms::gui::LcdFloatSpinBox - - MIDI Control Channel: - MIDI Kontrol Kanalı: + + Set value + Değeri ayarla - - N - N + + Please enter a new value between %1 and %2: + Lütfen %1 ile %2 arasında yeni bir değer girin: + + + lmms::gui::LcdSpinBox - - Output dry/wet (100%) - Kuru/ıslak çıktı (% 100) + + Set value + Değeri ayarla - - Output volume (100%) - Çıkış düzeyi (% 100) + + Please enter a new value between %1 and %2: + Lütfen %1 ile %2 arasında yeni bir değer girin: + + + lmms::gui::LeftRightNav - - Balance Left (0%) - Sol Denge (% 0) + + + + Previous + Önceki - - - Balance Right (0%) - Sağ Denge (% 0) + + + + Next + Sonraki - - Use Balance - Dengelemeyi Kullanın + + Previous (%1) + Önceki (%1) - - Use Panning - Kaydırmayı Kullan + + Next (%1) + Sonraki (%1) + + + lmms::gui::LfoControllerDialog - - Settings - Ayarlar + + LFO + LFO - - Use Chunks - Parçaları Kullanın + + BASE + TEMEL - - Audio: - Ses: + + Base: + Temel: - - Fixed-Size Buffer - Sabit Boyutlu Arabellek + + FREQ + FREK - - Force Stereo (needs reload) - Stereo'yu Zorla (yeniden yüklenmesi gerekiyor) + + LFO frequency: + LFO frekansı: - - MIDI: - MIDI: + + AMNT + AMNT + + + + Modulation amount: + Modülasyon miktarı: - - Map Program Changes - Harita Programı Değişiklikleri + + PHS + PHS - - Send Bank/Program Changes - Yuva/Program Değişikliklerini Gönderin + + Phase offset: + Faz uzaklığı: - - Send Control Changes - Kontrol Değişikliklerini Gönder + + degrees + derece - - Send Channel Pressure - Kanal Basıncını Gönder + + Sine wave + Sinüs dalgası - - Send Note Aftertouch - Sonra Dokunma Notası Gönder + + Triangle wave + Üçgen dalga - - Send Pitchbend - Perde eğimi Gönder + + Saw wave + Testere dalga - - Send All Sound/Notes Off - Tüm Sesleri/Notaları Gönder Kapalı + + Square wave + Kare dalgası - - -Plugin Name - - -Eklenti İsmi - + + Moog saw wave + Moog testere dalgası - - Program: - Program: + + Exponential wave + Üstel dalga - - MIDI Program: - MIDI programı: + + White noise + Beyaz gürültü - - Save State - Kayıt Yeri + + User-defined shape. +Double click to pick a file. + Kullanıcı tanımlı şekil. +Bir dosya seçmek için çift tıklayın. - - Load State - Yükleme durumu + + Multiply modulation frequency by 1 + Geçiş frekansını 1 ile çarpın - - Information - Bilgi + + Multiply modulation frequency by 100 + Geçiş frekansını 100 ile çarpın - - Label/URI: - Etiket/URI: + + Divide modulation frequency by 100 + Modülasyon frekansını 100'e bölün + + + lmms::gui::LfoGraph - - Name: - Ad: + + %1 Hz + + + + lmms::gui::MainWindow - - Type: - Türü: + + Configuration file + Yapılandırma dosyası - - Maker: - Yapıcı: + + Error while parsing configuration file at line %1:%2: %3 + %1:%2: %3 satırındaki yapılandırma dosyası ayrıştırılırken hata oluştu - - Copyright: - Telif hakkı: + + Could not open file + Dosya açılamadı - - Unique ID: - Benzersiz Kimlik: + + Could not open file %1 for writing. +Please make sure you have write permission to the file and the directory containing the file and try again! + %1 dosyası yazmak için açılamadı. +Lütfen dosyaya ve dosyayı içeren dizine yazma izniniz olduğundan emin olun ve tekrar deneyin! - - - PluginFactory - - Plugin not found. - Eklenti bulunamadı. + + Project recovery + Proje kurtarma - - LMMS plugin %1 does not have a plugin descriptor named %2! - LMMS eklentisi %1,%2 adında bir eklenti tanımlayıcısına sahip değil! + + There is a recovery file present. It looks like the last session did not end properly or another instance of LMMS is already running. Do you want to recover the project of this session? + Mevcut bir kurtarma dosyası var. Görünüşe göre son oturum düzgün şekilde sona ermemiş veya başka bir LMMS örneği zaten çalışıyor. Bu oturumun projesini kurtarmak istiyor musunuz? - - - PluginParameter - - Form - Biçim + + + Recover + Kurtar - - Parameter Name - Parametre Adı + + Recover the file. Please don't run multiple instances of LMMS when you do this. + Dosyayı kurtarın. Lütfen bunu yaptığınızda birden fazla LMMS örneği çalıştırmayın. - - ... - ... + + + Discard + Iskarta - - - PluginRefreshW - - Carla - Refresh - Carla - Yenile + + Launch a default session and delete the restored files. This is not reversible. + Varsayılan bir oturum başlatın ve geri yüklenen dosyaları silin. Bu geri alınamaz. - - Search for new... - Yeni ara... + + Version %1 + Sürüm %1 - - LADSPA - LADSPA + + Preparing plugin browser + Eklenti tarayıcısı hazırlanıyor - - DSSI - DSSI + + Preparing file browsers + Dosya tarayıcıları hazırlanıyor - - LV2 - LV2 + + My Projects + Projelerim - - VST2 - VST2 + + My Samples + Örneklerim - - VST3 - VST3 + + My Presets + Ön ayarlarım - - AU - AU + + My Home + Ana sayfam - - SF2/3 - SF2/3 + + Root Directory + - - SFZ - SFZ + + Volumes + Düzeyler - - Native - Doğal + + My Computer + Bilgisayarım - - POSIX 32bit - POSIX 32bit + + Loading background picture + Arka plan resmi yükleniyor - - POSIX 64bit - POSIX 64bit + + &File + &DOSYA - - Windows 32bit - Windows 32bit + + &New + &Yeni - - Windows 64bit - Windows 64bit + + &Open... + &Aç... - - Available tools: - Mevcut araçlar: + + &Save + &Kaydet - - python3-rdflib (LADSPA-RDF support) - python3-rdflib (LADSPA-RDF desteği) + + Save &As... + &Farklı kaydet... - - carla-discovery-win64 - carla-keşif-win64 + + Save as New &Version + Yeni &Sürüm Olarak Kaydet - - carla-discovery-native - carla-keşif-yerli + + Save as default template + Varsayılan şablon olarak kaydet - - carla-discovery-posix32 - carla-keşif-posix32 + + Import... + İçe Aktar... - - carla-discovery-posix64 - carla-keşif-posix64 + + E&xport... + D&ışa aktar... - - carla-discovery-win32 - carla-keşif-win32 + + E&xport Tracks... + Parçaları D&ışa aktar... - - Options: - Seçenekler: + + Export &MIDI... + &MIDI Dışa Aktar... - - Carla will run small processing checks when scanning the plugins (to make sure they won't crash). -You can disable these checks to get a faster scanning time (at your own risk). - Carla, eklentileri tararken küçük işlem kontrolleri yapacak (çökmeyeceklerinden emin olmak için). -Daha hızlı bir tarama süresi elde etmek için bu kontrolleri devre dışı bırakabilirsiniz (kendi sorumluluğunuzdadır). + + &Quit + &Çıkış - - Run processing checks while scanning - Tarama sırasında işleme kontrollerini çalıştırın + + &Edit + &Düzen - - Press 'Scan' to begin the search - Aramaya başlamak için 'Tara'ya basın + + Undo + Geri Al - - Scan - Tara + + Redo + İleri Al - - >> Skip - >> Atla + + Scales and keymaps + - - Close - Kapat + + Settings + Ayarlar - - - PluginWidget - - - - - - Frame - Çerçeve + + &View + Gö&rünüm - - Enable - Etkinleştir + + &Tools + &Araçlar - - On/Off - Aç/Kapat + + &Help + &Yardım - - - - - PluginName - Eklentiİsmi + + Online Help + Çevrimiçi Yardım - - MIDI - MIDI + + Help + Yardım - - AUDIO IN - SES GİRİŞİ + + About + Hakkında - - AUDIO OUT - SES ÇIKIŞI + + Create new project + Yeni proje oluştur - - GUI - Arayüz + + Create new project from template + Şablondan yeni proje oluştur - - Edit - Düzenle + + Open existing project + Mevcut projeyi aç - - Remove - Kaldır + + Recently opened projects + Yakın zamanda açılan projeler - - Plugin Name - Eklenti İsmi + + Save current project + Mevcut projeyi kaydet - - Preset: - Ön ayar: + + Export current project + Mevcut projeyi dışa aktar - - - ProjectNotes - - Project Notes - Proje Notları + + Metronome + Metronom - - Enter project notes here - Buraya proje notlarını girin + + + Song Editor + Şarkı Düzenleyici - - Edit Actions - İşlemleri Düzenle + + + Pattern Editor + Kalıp Düzenleyici - - &Undo - Geri &Al + + + Piano Roll + Piyano Rulosu - - %1+Z - %1+Z + + + Automation Editor + Otomasyon Düzenleyicisi - - &Redo - &Yinele + + + Mixer + FX-Karıştırıcısı - - %1+Y - %1+Y + + Show/hide controller rack + Denetleyici rafını göster / gizle - - &Copy - &Kopyala + + Show/hide project notes + Proje notlarını göster / gizle - - %1+C - %1+C + + Untitled + Başlıksız - - Cu&t - Ke&s + + Recover session. Please save your work! + Oturumu kurtarın. Lütfen çalışmanızı kaydedin! - - %1+X - %1+X + + LMMS %1 + LMMS %1 - - &Paste - &Yapıştır + + Recovered project not saved + Kurtarılan proje kaydedilmedi - - %1+V - %1+V + + This project was recovered from the previous session. It is currently unsaved and will be lost if you don't save it. Do you want to save it now? + Bu proje önceki oturumdan kurtarıldı. Şu anda kaydedilmedi ve kaydetmezseniz kaybolacak. Şimdi kaydetmek ister misin? - - Format Actions - Eylemleri Biçimlendir + + Project not saved + Proje kaydedilmedi - - &Bold - &Kalın + + The current project was modified since last saving. Do you want to save it now? + Mevcut proje, son kayıttan bu yana değiştirildi. Şimdi kaydetmek ister misin? - - %1+B - %1+B + + Open Project + Projeyi Aç - - &Italic - &İtalik + + LMMS (*.mmp *.mmpz) + LMMS (*.mmp *.mmpz) - - %1+I - %1+I + + Save Project + Projeyi Kaydet - - &Underline - &Altı Çizili + + LMMS Project + LMMS Projesi - - %1+U - %1+U + + LMMS Project Template + LMMS Proje Şablonu - - &Left - &Sol + + Save project template + Proje şablonunu kaydet - - %1+L - %1+L + + Overwrite default template? + Varsayılan şablonun üzerine yazılsın mı? - - C&enter - M&erkez + + This will overwrite your current default template. + Bu, mevcut varsayılan şablonunuzun üzerine yazacaktır. - - %1+E - %1+E + + Help not available + Yardım mevcut değil - - &Right - &Sağ + + Currently there's no help available in LMMS. +Please visit http://lmms.sf.net/wiki for documentation on LMMS. + Şu anda LMMS'de yardım bulunmamaktadır. +LMMS ile ilgili belgeler için lütfen http://lmms.sf.net/wiki adresini ziyaret edin. - - %1+R - %1+R + + Controller Rack + Denetleyici Rafı - - &Justify - &Yasla + + Project Notes + Proje Notları - - %1+J - %1+J + + Fullscreen + Tam ekran - - &Color... - &Renk... + + Volume as dBFS + DBFS olarak düzey - - - ProjectRenderer - - WAV (*.wav) - WAV (*.wav) + + Smooth scroll + Düzgün kaydırma - - FLAC (*.flac) - FLAC (*.flac) + + Enable note labels in piano roll + Piyano rulosunda not etiketlerini etkinleştirin - - OGG (*.ogg) - OGG (*.ogg) + + MIDI File (*.mid) + MIDI Dosyası (*.mid) - - MP3 (*.mp3) - MP3 (*.mp3) + + + untitled + başlıksız - - - QObject - - Reload Plugin - Eklentiyi Yeniden Yükle + + + Select file for project-export... + Proje dışa aktarımı için dosya seçin... - - Show GUI - Görselli Arayüzü Göster + + Select directory for writing exported tracks... + Dışa aktarılan parkurları yazmak için dizin seçin... - - Help - Yardım + + Save project + Projeyi kaydet - - - QWidget - - - - - Name: - İsim: + + Project saved + Proje kaydedildi - - URI: - URI: + + The project %1 is now saved. + %1 projesi şimdi kaydedildi. - - - - Maker: - Yapıcı: + + Project NOT saved. + Proje kaydedilmedi. - - - - Copyright: - Telif Hakkı: + + The project %1 was not saved! + %1 projesi kaydedilmedi! - - - Requires Real Time: - Gerçek Zaman Gerektirir: + + Import file + Dosyayı içe aktar - - - - - - - Yes - Evet + + MIDI sequences + MIDI dizileri - - - - - - - No - Hayır + + Hydrogen projects + Hidrojen projeleri - - - Real Time Capable: - Gerçek Zamanlı Yetenekli: + + All file types + Tüm dosya türleri + + + lmms::gui::MalletsInstrumentView - - - In Place Broken: - Yerinde Kırık: + + Instrument + Enstrüman - - - Channels In: - Giriş Kanalları: + + Spread + Etrafa Saç - - - Channels Out: - Çıkış Kanalları: + + Spread: + Yayılmış: - - File: %1 - Dosya: %1 + + Random + - - File: - Dosya: + + Random: + - - - RecentProjectsMenu - - &Recently Opened Projects - &Yeni Açılan Projeler + + Missing files + Eksik Dosyalar - - - RenameDialog - - Rename... - Yeniden adlandır... + + Your Stk-installation seems to be incomplete. Please make sure the full Stk-package is installed! + Stk kurulumunuz eksik görünüyor. Lütfen tam Stk paketinin kurulu olduğundan emin olun! - - - ReverbSCControlDialog - - Input - Giriş + + Hardness + Sertlik - - Input gain: - Giriş kazancı: + + Hardness: + Sertlik: - - Size - Boyut + + Position + Konum - - Size: - Boyut: + + Position: + Konum: - - Color - Renk + + Vibrato gain + Titreşim kazancı - - Color: - Renk: + + Vibrato gain: + Titreşim kazancı: - - Output - Çıkış + + Vibrato frequency + Titreşim frekansı - - Output gain: - Çıkış kazancı: + + Vibrato frequency: + Titreşim frekansı: - - - ReverbSCControls - - Input gain - Giriş kazancı + + Stick mix + Çubuk karıştırıcı - - Size - Boyut + + Stick mix: + Çubuk karıştırıcı: - - Color - Renk + + Modulator + Modülatör - - Output gain - Çıkış kazancı + + Modulator: + Modülatör: - - - SaControls - - Pause - Duraklat + + Crossfade + Çapraz geçiş - - Reference freeze - Referans dondurma + + Crossfade: + Çapraz geçiş: - - Waterfall - Şelale + + LFO speed + LFO hızı - - Averaging - Ortalama + + LFO speed: + LFO hızı: - - Stereo - Stereo + + LFO depth + LFO derinliği - - Peak hold - Tepe tutma + + LFO depth: + LFO derinliği: - - Logarithmic frequency - Logaritmik frekans + + ADSR + ADSR - - Logarithmic amplitude - Logaritmik genlik + + ADSR: + ADSR: - - Frequency range - Frekans aralığı + + Pressure + Basınç - - Amplitude range - Genlik aralığı + + Pressure: + Basınç: - - FFT block size - FFT blok boyutu + + Speed + Hız - - FFT window type - FFT pencere türü + + Speed: + Hız: + + + lmms::gui::ManageVSTEffectView - - Peak envelope resolution - En yüksek zarf çözünürlüğü + + - VST parameter control + - VST parametre kontrolü - - Spectrum display resolution - Spektrum ekran çözünürlüğü + + VST sync + VST senkronizasyonu - - Peak decay multiplier - Tepe bozunma çarpanı + + + Automated + Otomatik - - Averaging weight - Ortalama ağırlık + + Close + Kapat + + + lmms::gui::ManageVestigeInstrumentView - - Waterfall history size - Şelale geçmişi boyutu + + + - VST plugin control + - VST eklenti kontrolü - - Waterfall gamma correction - Şelale gama düzeltmesi + + VST Sync + VST Senkronizasyonu - - FFT window overlap - FFT penceresi çakışması + + + Automated + Otomatik - - FFT zero padding - FFT sıfır dolgusu + + Close + Kapat + + + lmms::gui::MeterDialog - - - Full (auto) - Tam (otomatik) + + + Meter Numerator + Sayaç Payı - - - - Audible - Sesli + + Meter numerator + Sayaç payı - - Bass - Bas + + + Meter Denominator + Metre Paydası - - Mids - Ortalar + + Meter denominator + Metre paydası - - High - Yüksek + + TIME SIG + TIME SIG + + + lmms::gui::MicrotunerConfig - - Extended - Genişletilmiş + + Selected scale slot + - - Loud - Yüksek + + Selected keymap slot + - - Silent - Sessiz + + + First key + İlk tuş - - (High time res.) - (Yüksek zaman çözünürlüğü) + + + Last key + Son tuş - - (High freq. res.) - (Yüksek frekans çözünürlüğü) + + + Middle key + Orta tuş - - Rectangular (Off) - Dikdörtgen (Kapalı) + + + Base key + Temel tuş - - - Blackman-Harris (Default) - Blackman-Harris (Varsayılan) + + + + Base note frequency + Temel nota frekansı - - Hamming - Hamming + + Microtuner Configuration + - - Hanning - Hanning + + Scale slot to edit: + - - - SaControlsDialog - - Pause - Duraklat + + Scale description. Cannot start with "!" and cannot contain a newline character. + Ölçek açıklaması. "!" İle başlayamaz ve yeni satır karakteri içeremez. - - Pause data acquisition - Veri edinmeyi duraklatın + + + Load + Yükle - - Reference freeze - Referans dondurma + + + Save + Kaydet - - Freeze current input as a reference / disable falloff in peak-hold mode. - Pik tutma modunda akım girişini referans olarak dondurun / düşüşü devre dışı bırakın. + + Load scale definition from a file. + - - Waterfall - Şelale + + Save scale definition to a file. + - - Display real-time spectrogram - Gerçek zamanlı spektrogramı göster + + Enter intervals on separate lines. Numbers containing a decimal point are treated as cents. +Other inputs are treated as integer ratios and must be in the form of 'a/b' or 'a'. +Unity (0.0 cents or ratio 1/1) is always present as a hidden first value; do not enter it manually. + Aralıkları ayrı satırlara girin. Ondalık nokta içeren sayılar sent olarak kabul edilir. +Diğer girdiler tamsayı oranları olarak değerlendirilir ve 'a/b' veya 'a' biçiminde olmalıdır. +Birlik (0.0 sent veya oran 1/1) her zaman gizli bir ilk değer olarak bulunur; manuel olarak girmeyin. - - Averaging - Ortalama + + Apply scale changes + - - Enable exponential moving average - Üstel hareketli ortalamayı etkinleştir + + Verify and apply changes made to the selected scale. To use the scale, select it in the settings of a supported instrument. + - - Stereo - Stereo + + Keymap slot to edit: + - - Display stereo channels separately - Stereo kanalları ayrı olarak görüntüleyin + + Keymap description. Cannot start with "!" and cannot contain a newline character. + Tuş haritası açıklaması. "!" İle başlayamaz ve yeni satır karakteri içeremez. - - Peak hold - Tepe tutma + + Load key mapping definition from a file. + - - Display envelope of peak values - Tepe değerlerin zarfını görüntüle + + Save key mapping definition to a file. + - - Logarithmic frequency - Logaritmik frekans + + Enter key mappings on separate lines. Each line assigns a scale degree to a MIDI key, +starting with the middle key and continuing in sequence. +The pattern repeats for keys outside of the explicit keymap range. +Multiple keys can be mapped to the same scale degree. +Enter 'x' if you wish to leave the key disabled / not mapped. + Anahtar eşlemelerini ayrı satırlara girin. Her satır bir MIDI anahtarına bir ölçek derecesi atar, +orta tuşla başlayıp sırayla devam eder. +Kalıp, açık anahtar eşleme aralığının dışındaki anahtarlar için tekrarlanır. +Birden fazla anahtar aynı ölçek derecesine eşlenebilir. +Anahtarı devre dışı bırakmak / eşlenmemiş olarak bırakmak istiyorsanız 'x' girin. - - Switch between logarithmic and linear frequency scale - Logaritmik ve doğrusal frekans ölçeği arasında geçiş yapın + + FIRST + İLK - - - Frequency range - Frekans aralığı + + First MIDI key that will be mapped + Eşlenecek ilk MIDI anahtarı - - Logarithmic amplitude - Logaritmik genlik + + LAST + SON - - Switch between logarithmic and linear amplitude scale - Logaritmik ve doğrusal genlik ölçeği arasında geçiş yapın + + Last MIDI key that will be mapped + Eşlenecek son MIDI anahtarı - - - Amplitude range - Genlik aralığı + + MIDDLE + ORTA - - Envelope res. - Zarf çözümü. + + First line in the keymap refers to this MIDI key + Tuş haritasındaki ilk satır bu MIDI anahtarına atıfta bulunur - - Increase envelope resolution for better details, decrease for better GUI performance. - Daha iyi ayrıntılar için zarf çözünürlüğünü artırın, daha iyi Arayüz performansı için azaltın. + + BASE N. + TEMEL N. - - - Draw at most - En fazla çekiliş + + Base note frequency will be assigned to this MIDI key + Temel nota frekansı bu MIDI anahtarına atanacaktır - - envelope points per pixel - piksel başına zarf noktaları + + BASE NOTE FREQ + TEMEL NOTA FREKANS - - Spectrum res. - Spectrum res. + + Apply keymap changes + - - Increase spectrum resolution for better details, decrease for better GUI performance. - Daha iyi ayrıntılar için spektrum çözünürlüğünü artırın, daha iyi Arayüz performansı için azaltın. + + Verify and apply changes made to the selected key mapping. To use the mapping, select it in the settings of a supported instrument. + - - spectrum points per pixel - piksel başına spektrum noktaları + + Scale parsing error + Ölçek ayrıştırma hatası - - Falloff factor - Düşüş faktörü + + Scale name cannot start with an exclamation mark + Ölçek adı bir ünlem işaretiyle başlayamaz - - Decrease to make peaks fall faster. - Zirvelerin daha hızlı düşmesi için azaltın. + + Scale name cannot contain a new-line character + Ölçek adı yeni satır karakteri içeremez - - Multiply buffered value by - Arabelleğe alınan değeri şununla çarp + + Interval defined in cents cannot be converted to a number + Sent olarak tanımlanan aralık bir sayıya dönüştürülemez - - Averaging weight - Ortalama ağırlık + + Numerator of an interval defined as a ratio cannot be converted to a number + Oran olarak tanımlanan bir aralığın payı sayıya dönüştürülemez - - Decrease to make averaging slower and smoother. - Ortalama almayı daha yavaş ve pürüzsüz hale getirmek için azaltın. + + Denominator of an interval defined as a ratio cannot be converted to a number + Oran olarak tanımlanan bir aralığın paydası sayıya dönüştürülemez - - New sample contributes - Yeni örnek katkıda bulunur + + Interval defined as a ratio cannot be negative + Oran olarak tanımlanan aralık negatif olamaz - - Waterfall height - Şelale yüksekliği + + Keymap parsing error + Tuş haritası ayrıştırma hatası - - Increase to get slower scrolling, decrease to see fast transitions better. Warning: medium CPU usage. - Daha yavaş kaydırmak için artırın, hızlı geçişleri daha iyi görmek için azaltın. Uyarı: orta CPU kullanımı. + + Keymap name cannot start with an exclamation mark + Tuş haritası adı ünlem işaretiyle başlayamaz - - Keep - Tut + + Keymap name cannot contain a new-line character + Tuş haritası adı yeni satır karakteri içeremez - - lines - çizgiler + + Scale degree cannot be converted to a whole number + Ölçek derecesi tam sayıya dönüştürülemez - - Waterfall gamma - Şelale gama + + Scale degree cannot be negative + Ölçek derecesi negatif olamaz - - Decrease to see very weak signals, increase to get better contrast. - Çok zayıf sinyalleri görmeyi azaltın, daha iyi kontrast elde etmek için artırın. + + Invalid keymap + Geçersiz tuş haritası - - Gamma value: - Gama değeri: + + Base key is not mapped to any scale degree. No sound will be produced as there is no way to assign reference frequency to any note. + Temel anahtar herhangi bir ölçek derecesine eşlenmez. Herhangi bir nota referans frekansı atamanın bir yolu olmadığından ses üretilmeyecektir. - - Window overlap - Pencere örtüşmesi + + Open scale + Ölçek açın - - Increase to prevent missing fast transitions arriving near FFT window edges. Warning: high CPU usage. - FFT pencere kenarlarının yakınına gelen eksik hızlı geçişleri önlemek için artırın. Uyarı: yüksek CPU kullanımı. + + + Scala scale definition (*.scl) + Ölçek ölçeği tanımı (*.scl) - - Each sample processed - Her numune işlendi + + Scale load failure + Ölçek yükleme hatası - - times - defa + + + Unable to open selected file. + Seçili dosya açılamıyor. - - Zero padding - Sıfır dolgu + + Open keymap + Tuş haritasını aç - - Increase to get smoother-looking spectrum. Warning: high CPU usage. - Daha pürüzsüz görünen spektrum elde etmek için artırın. Uyarı: yüksek CPU kullanımı. + + + Scala keymap definition (*.kbm) + Tuş haritası ölçek tanımı (*.kbm) - - Processing buffer is - İşleme tamponu + + Keymap load failure + Tuş haritası yükleme hatası - - steps larger than input block - giriş bloğundan daha büyük adımlar + + Save scale + Ölçeği kaydet - - Advanced settings - Gelişmiş ayarlar + + Scale save failure + Ölçek kaydetme hatası - - Access advanced settings - Gelişmiş ayarlara erişin + + + Unable to open selected file for writing. + Seçili dosya yazmak için açılamıyor. - - - FFT block size - FFT blok boyutu + + Save keymap + Tuş haritasını kaydet - - - FFT window type - FFT pencere türü + + Keymap save failure + Tuş haritası kaydetme hatası - SampleBuffer + lmms::gui::MidiCCRackView - - Fail to open file - Dosya açılamadı + + + MIDI CC Rack - %1 + MIDI CC Rack - %1 + + + + MIDI CC Knobs: + MIDI CC Düğmeleri: - - Audio files are limited to %1 MB in size and %2 minutes of playing time - Ses dosyalarının boyutu %1 MB ve %2 dakika oynatma süresiyle sınırlıdır + + CC %1 + CC %1 + + + lmms::gui::MidiClipView - - Open audio file - Ses dosyasını aç + + + Transpose + Devrik - - All Audio-Files (*.wav *.ogg *.ds *.flac *.spx *.voc *.aif *.aiff *.au *.raw) - Tüm Ses Dosyaları (*.wav *.ogg *.ds *.flac *.spx *.voc *.aif *.aiff *.au *.raw) + + Semitones to transpose by: + Aktarılacak yarım tonlar: - - Wave-Files (*.wav) - Wave Dosyaları (*.wav) + + Open in piano-roll + Piyano rulosunda aç - - OGG-Files (*.ogg) - OGG Dosyaları (*.ogg) + + Set as ghost in piano-roll + Piyano rulosunda hayalet olarak ayarla - - DrumSynth-Files (*.ds) - DrumSynth Dosyaları (*.ds) + + Set as ghost in automation editor + - - FLAC-Files (*.flac) - FLAC Dosyaları (*.flac) + + Clear all notes + Tüm notaları temizle - - SPEEX-Files (*.spx) - SPEEX Dosyaları (*.spx) + + Reset name + İsmini sıfırla - - VOC-Files (*.voc) - VOC Dosyaları (*.voc) + + Change name + İsmini değiştir - - AIFF-Files (*.aif *.aiff) - AIFF Dosyaları (*.aif *.aiff) + + Add steps + Uzat - - AU-Files (*.au) - AU Dosyaları (*.au) + + Remove steps + Kısalt - - RAW-Files (*.raw) - RAW Dosyaları (*.raw) + + Clone Steps + Klon Adımları - SampleClipView + lmms::gui::MidiSetupWidget - - Double-click to open sample - Örneği açmak için çift tıklayın - - - - Delete (middle mousebutton) - Sil (orta klik) + + Device + Aygıt + + + lmms::gui::MixerChannelLcdSpinBox - - Delete selection (middle mousebutton) - Seçimi sil (orta fare düğmesi) + + Assign to: + - - Cut - Kes + + New Mixer Channel + - - Cut selection - Seçimi Kes + + Please enter a new value between %1 and %2: + - - Copy - Kopyala + + Set value + + + + lmms::gui::MixerChannelView - - Copy selection - Seçimi Kopyala + + Channel send amount + - - Paste - Yapıştır + + Mute + - - Mute/unmute (<%1> + middle click) - Sesi kapat/sesi aç (<%1> + orta tıklama) + + Mute this channel + - - Mute/unmute selection (<%1> + middle click) - Seçimin sesini kapat/aç (<%1> + orta tıklama) + + Solo + - - Reverse sample - Örneği ters çevir + + Solo this channel + - - Set clip color - Klip rengini ayarla + + Fader %1 + - - Use track color - Parça rengini kullan + + Move &left + - - - SampleTrack - - Volume - Ses Düzeyi + + Move &right + - - Panning - Panning + + Rename &channel + - - Mixer channel - FX kanalı + + R&emove channel + - - - Sample track - Örnek parça + + Remove &unused channels + - - - SampleTrackView - - Track volume - Parça ses düzeyi + + Color + - - Channel volume: - Kanal ses düzeyi: + + Change + - - VOL - SES + + Reset + - - Panning - Panning + + Pick random + - - Panning: - Panning: + + This Mixer Channel is being used. +Are you sure you want to remove this channel? + +Warning: This operation can not be undone. + - - PAN - PAN + + Confirm removal + - - Channel %1: %2 - FX %1: %2 + + Don't ask again + - SampleTrackWindow + lmms::gui::MixerView - - GENERAL SETTINGS - GENEL AYARLAR + + Mixer + FX-Karıştırıcısı + + + lmms::gui::MonstroView - - Sample volume - Örnek düzey + + Operators view + Operatörler görünümü - - Volume: - Ses Düzeyi: + + Matrix view + Matris görünümü - - VOL - SES + + + + Volume + Ses Düzeyi - + + + Panning - Panning - - - - Panning: - Panning: - - - - PAN - PAN + Kaydırma - - Mixer channel - FX kanalı + + + + Coarse detune + Kaba detune - - CHANNEL - FX + + + + semitones + yarım tonlar - - - SaveOptionsWidget - - Discard MIDI connections - MIDI bağlantılarını atın + + + Fine tune left + Sola ince ayar - - Save As Project Bundle (with resources) - Proje Paketi Olarak Kaydet (kaynaklarla) + + + + + cents + sent - - - SetupDialog - - Reset to default value - Varsayılan değere sıfırla + + + Fine tune right + Sağa ince ayar - - Use built-in NaN handler - Yerleşik NaN işleyicisini kullanın + + + + Stereo phase offset + Stereo faz kayması - - Settings - Ayarlar + + + + + + deg + deg - - - General - Genel + + Pulse width + Darbe genişliği - - Graphical user interface (GUI) - Grafik kullanıcı arayüzü (GUI) + + Send sync on pulse rise + Nabız yükseldiğinde senkronizasyon gönder - - Display volume as dBFS - Ses seviyesini dBFS olarak görüntüle + + Send sync on pulse fall + Nabız düşüşünde senkronizasyon gönder - - Enable tooltips - Araç ipuçlarını etkinleştirin + + Hard sync oscillator 2 + Sabit senkron osilatör 2 - - Enable master oscilloscope by default - Ana osiloskopu varsayılan olarak etkinleştirin + + Reverse sync oscillator 2 + Ters senkron osilatör 2 - - Enable all note labels in piano roll - Piyano rulosundaki tüm nota etiketlerini etkinleştirin + + Sub-osc mix + Alt osc karışımı - - Enable compact track buttons - Kompakt parça düğmelerini etkinleştirin + + Hard sync oscillator 3 + Sabit senkron osilatör 3 - - Enable one instrument-track-window mode - Bir enstrüman izleme penceresi modunu etkinleştirin + + Reverse sync oscillator 3 + Ters senkron osilatör 3 - - Show sidebar on the right-hand side - Sağ tarafta kenar çubuğunu göster + + + + + Attack + Saldırı - - Let sample previews continue when mouse is released - Fare bırakıldığında örnek önizlemelerin devam etmesine izin verin + + + Rate + Oran - - Mute automation tracks during solo - Solo sırasında otomasyon izlerini sessize alma + + + Phase + Evre - - Show warning when deleting tracks - Parçaları silerken uyarı göster + + + Pre-delay + Ön gecikme - - Projects - Projeler + + + Hold + Tut - - Compress project files by default - Proje dosyalarını varsayılan olarak sıkıştır + + + Decay + Bozunma - - Create a backup file when saving a project - Bir projeyi kaydederken bir yedek dosya oluşturun + + + Sustain + Sürdürmek - - Reopen last project on startup - Başlangıçta son projeyi yeniden aç + + + Release + Yayınla - - Language - Dil + + + Slope + Eğim - - - Performance - Başarım + + Mix osc 2 with osc 3 + Osc 2'yi osc 3 ile karıştır - - Autosave - Otomatik kaydet + + Modulate amplitude of osc 3 by osc 2 + OSC 3'ün genliğini osc 2 ile modüle edin - - Enable autosave - Otomatik kaydetmeyi etkinleştir + + Modulate frequency of osc 3 by osc 2 + OSC 3'ün frekansını osc 2 ile modüle edin - - Allow autosave while playing - Oynatırken otomatik kaydetmeye izin ver + + Modulate phase of osc 3 by osc 2 + OSC 3'ün fazını OSC 2 ile modüle edin - - User interface (UI) effects vs. performance - Kullanıcı arayüzü (UI) efektleri ile performans karşılaştırması + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Modulation amount + Modülasyon miktarı + + + lmms::gui::MultitapEchoControlDialog - - Smooth scroll in song editor - Şarkı düzenleyicide yumuşak kaydırma + + Length + Süre - - Display playback cursor in AudioFileProcessor - Ses Dosyası İşlemcisindeki oynatma imlecini görüntüle + + Step length: + Adım uzunluğu: - - Plugins - Eklentiler + + Dry + Kuru - - VST plugins embedding: - Gömülü VST eklentileri: + + Dry gain: + Kuru kazanç: - - No embedding - Yerleştirme yok + + Stages + Aşamalar - - Embed using Qt API - Qt API kullanarak yerleştirin + + Low-pass stages: + Düşük geçiş aşamaları: - - Embed using native Win32 API - Yerel Win32 API kullanarak yerleştirme + + Swap inputs + Girişleri değiştir - - Embed using XEmbed protocol - XEmbed protokolünü kullanarak gömün + + Swap left and right input channels for reflections + Yansımalar için sol ve sağ giriş kanallarını değiştirin + + + lmms::gui::NesInstrumentView - - Keep plugin windows on top when not embedded - Gömülü değilken eklenti pencerelerini üstte tutun + + + + + Volume + Ses Düzeyi - - Sync VST plugins to host playback - Oynatma barındırmak için VST eklentilerini senkronize edin + + + + Coarse detune + Kaba detune - - Keep effects running even without input - Efektlerin girdi olmasa bile çalışmaya devam etmesini sağlayın + + + + Envelope length + Zarf uzunluğu - - - Audio - Ses + + Enable channel 1 + 1. kanalı etkinleştir - - Audio interface - Ses arayüzü + + Enable envelope 1 + Zarf 1'i etkinleştir - - HQ mode for output audio device - Ses çıkışı cihazı için HQ modu + + Enable envelope 1 loop + Zarf 1 döngüsünü etkinleştir - - Buffer size - Arabellek boyutu + + Enable sweep 1 + Tarama 1`i etkinleştir - - - MIDI - MIDI + + + Sweep amount + Tarama miktarı - - MIDI interface - MIDI arayüzü + + + Sweep rate + Tarama oranı - - Automatically assign MIDI controller to selected track - MIDI denetleyicisini seçilen parçaya otomatik olarak atayın + + + 12.5% Duty cycle + % 12,5 Görev döngüsü - - LMMS working directory - LMMS çalışma dizini + + + 25% Duty cycle + % 25 Görev döngüsü - - VST plugins directory - VST eklentileri dizini + + + 50% Duty cycle + % 50 Görev döngüsü - - LADSPA plugins directories - LADSPA eklenti dizinleri + + + 75% Duty cycle + % 75 Görev döngüsü - - SF2 directory - SF2 dizini + + Enable channel 2 + 2. kanalı etkinleştir - - Default SF2 - Varsayılan SF2 + + Enable envelope 2 + Zarf 2'yi etkinleştir - - GIG directory - GIG dizini + + Enable envelope 2 loop + Zarf 2 döngüsünü etkinleştir - - Theme directory - Tema dizini + + Enable sweep 2 + Tarama 2 yi etkinleştir - - Background artwork - Arka plan resmi + + Enable channel 3 + 3. kanalı etkinleştir - - Some changes require restarting. - Bazı değişiklikler yeniden başlatmayı gerektirir. + + Noise Frequency + Gürültü Frekansı - - Autosave interval: %1 - Otomatik kaydetme aralığı: %1 + + Frequency sweep + Frekans taraması - - Choose the LMMS working directory - LMMS çalışma dizinini seçin + + Enable channel 4 + 4. kanalı etkinleştir - - Choose your VST plugins directory - VST eklentileri dizininizi seçin + + Enable envelope 4 + Zarf 4'ü etkinleştir - - Choose your LADSPA plugins directory - LADSPA eklentileri dizininizi seçin + + Enable envelope 4 loop + Zarf 4 döngüsünü etkinleştir - - Choose your default SF2 - Varsayılan SF2'nizi seçin + + Quantize noise frequency when using note frequency + Nota frekansını kullanırken gürültü frekansını nicelendirin - - Choose your theme directory - Tema dizininizi seçin + + Use note frequency for noise + Gürültü için nota frekansını kullanın - - Choose your background picture - Arka plan resminizi seçin + + Noise mode + Gürültü modu - - - Paths - Yollar + + Master volume + Ana ses - - OK - Tamam + + Vibrato + Titreşim + + + lmms::gui::OpulenzInstrumentView - - Cancel - İptal + + + Attack + Saldırı - - Frames: %1 -Latency: %2 ms - Çerçeveler: %1 -Gecikme: %2 ms + + + Decay + Bozunma - - Choose your GIG directory - GIG dizininizi seçin + + + Release + Yayınla - - Choose your SF2 directory - SF2 dizininizi seçin + + + Frequency multiplier + Frekans çarpanı + + + lmms::gui::OrganicInstrumentView - - minutes - dakika + + Distortion: + Çarpıtma: - - minute - dakika + + Volume: + Ses Düzeyi: - - Disabled - Devre dışı + + Randomise + Rastgele - - - SidInstrument - - Cutoff frequency - Kesme frekansı + + + Osc %1 waveform: + Osc %1 dalga biçimi: - - Resonance - Çınlama + + Osc %1 volume: + Osc %1 düzeyi: - - Filter type - Filtre tipi + + Osc %1 panning: + Osc %1 kaydırma: - - Voice 3 off - Ses 3 kapalı + + Osc %1 stereo detuning + Osc %1 stereo perdeleme - - Volume - Ses Düzeyi + + cents + sent - - Chip model - Yonga modeli + + Osc %1 harmonic: + Osc %1 harmonik: - SidInstrumentView + lmms::gui::Oscilloscope - - Volume: - Ses Düzeyi: + + Oscilloscope + Oscilloscope - - Resonance: - Rezonans: + + Click to enable + Etkinleştirmek için tıklayın + + + lmms::gui::PatmanView - - - Cutoff frequency: - Kesim frekansı: + + Open patch + Yama aç - - High-pass filter - Yüksek geçişli filtre + + Loop + Döngü - - Band-pass filter - Bant geçişli filtre + + Loop mode + Döngü modu - - Low-pass filter - Düşük geçişli filtre + + Tune + Ayarla - - Voice 3 off - Ses 3 kapalı + + Tune mode + Ayar modu - - MOS6581 SID - MOS6581 SID + + No file selected + Dosya seçilmedi - - MOS8580 SID - MOS8580 SID + + Open patch file + Yama dosyasını aç - - - Attack: - Saldırı: + + Patch-Files (*.pat) + Yama Dosyaları (*.pat) + + + lmms::gui::PatternClipView - - - Decay: - Bozunma: + + Open in Pattern Editor + Kalıp Düzenleyicide Aç - - Sustain: - Sürdürmek: + + Reset name + İsmini sıfırla - - - Release: - Yayınla: + + Change name + İsmini değiştir + + + lmms::gui::PatternEditorWindow - - Pulse Width: - Darbe genişliği: + + Pattern Editor + Kalıp Düzenleyici - - Coarse: - Kaba: + + Play/pause current pattern (Space) + Geçerli kalıbı oynat/duraklat (Boşluk) - - Pulse wave - Nabız dalgası + + Stop playback of current pattern (Space) + Geçerli kalıbın oynatılmasını durdur (Boşluk) - - Triangle wave - Üçgen dalga + + Pattern selector + Kalıp seçici - - Saw wave - Testere dalga + + Track and step actions + Eylemleri izleyin ve adımlayın - - Noise - Parazit + + New pattern + Yeni kalıp - - Sync - Eşitleme + + Clone pattern + Kalıbı klonla - - Ring modulation - Halka modülasyonu + + Add sample-track + Örnek parça ekle - - Filtered - Filtrelenmiş + + Add automation-track + Ayarkayıt parçası ekle - - Test - Dene + + Remove steps + Kısalt - - Pulse width: - Darbe genişliği: + + Add steps + Uzat - - - SideBarWidget - - Close - Kapat + + Clone Steps + Klon Adımları - Song - - - Tempo - Tempo - + lmms::gui::PeakControllerDialog - - Master volume - Ana ses + + PEAK + ZİRVE - - Master pitch - Ana sahne + + LFO Controller + LFO Denetleyicisi + + + lmms::gui::PeakControllerEffectControlDialog - - Aborting project load - Proje yüklemesi iptal ediliyor + + BASE + TEMEL - - Project file contains local paths to plugins, which could be used to run malicious code. - Proje dosyası, kötü amaçlı kod çalıştırmak için kullanılabilecek eklentilere giden yerel yolları içerir. + + Base: + Temel: - - Can't load project: Project file contains local paths to plugins. - Proje yüklenemiyor: Proje dosyası, eklentilere giden yerel yolları içerir. + + AMNT + AMNT - - LMMS Error report - LMMS Hata raporu + + Modulation amount: + Modülasyon miktarı: - - (repeated %1 times) - (%1 kez tekrarlandı) + + MULT + ÇOK - - The following errors occurred while loading: - Yükleme sırasında aşağıdaki hatalar oluştu: + + Amount multiplicator: + Miktar çarpanı: - - - SongEditor - - Could not open file - Dosya açılamadı + + ATCK + SALDIRI - - Could not open file %1. You probably have no permissions to read this file. - Please make sure to have at least read permissions to the file and try again. - %1 dosyası açılamadı. Muhtemelen bu dosyayı okuma izniniz yok. - Lütfen dosya için en azından okuma izninizin olduğundan emin olun ve tekrar deneyin. + + Attack: + Saldırı: - - Operation denied - İşlem reddedildi + + DCAY + BOZUNMA - - A bundle folder with that name already eists on the selected path. Can't overwrite a project bundle. Please select a different name. - Bu ada sahip bir paket klasörü zaten seçili yolda bulunuyor. Proje paketinin üzerine yazılamaz. Lütfen farklı bir isim seçin. + + Release: + Yayınla: - - - - Error - Hata + + TRSH + EŞİK - - Couldn't create bundle folder. - Paket klasörü oluşturulamadı. + + Treshold: + Eşik: - - Couldn't create resources folder. - Kaynaklar klasörü oluşturulamadı. + + Mute output + Çıkış sessiz - - Failed to copy resources. - Kaynaklar kopyalanamadı. + + Absolute value + Mutlak değer + + + lmms::gui::PeakIndicator - - Could not write file - Dosya yazılamadı + + -inf + + + + lmms::gui::PianoRoll - - Could not open %1 for writing. You probably are not permitted towrite to this file. Please make sure you have write-access to the file and try again. - %1 yazmak için açılamadı. Muhtemelen bu dosyaya yazma izniniz yok. Lütfen dosyaya yazma erişiminiz olduğundan emin olun ve tekrar deneyin. + + Note Velocity + Nota Hızı - - This %1 was created with LMMS %2 - Bu %1, %2 LMMS ile oluşturuldu + + Note Panning + Nota Kaydırma - - Error in file - Dosyada hata + + Mark/unmark current semitone + Geçerli yarım tonu işaretle / işareti kaldır - - The file %1 seems to contain errors and therefore can't be loaded. - Görünüşe göre %1 dosyası hatalar içeriyor ve bu nedenle yüklenemiyor. + + Mark/unmark all corresponding octave semitones + İlgili tüm oktav yarı tonlarını işaretle / işareti kaldır - - Version difference - Sürüm farkı + + Mark current scale + Mevcut ölçeği işaretle - - template - şablon + + Mark current chord + Geçerli akoru işaretle - - project - proje + + Unmark all + Hepsinin işaretini kaldır - - Tempo - Tempo + + Select all notes on this key + Bu anahtardaki tüm notaları seçin - - TEMPO - TEMPO + + Note lock + Nota kilidi - - Tempo in BPM - BPM'de Tempo + + Last note + Son nota - - High quality mode - Yüksek kalite modu + + No key + Anahtar yok - - - - Master volume - Ana ses + + No scale + Ölçek yok - - - - Master pitch - Ana sahne + + No chord + Akord yok - - Value: %1% - Değer: %1% + + Nudge + Dürtme - - Value: %1 semitones - Değer: %1 yarım ton + + Snap + Yapış - - - SongEditorWindow - - Song-Editor - Şarkı-Düzenleyici + + Velocity: %1% + Hız: %1% - - Play song (Space) - Şarkıyı başlat (Space) + + Panning: %1% left + Kaydırma: %1% sola - - Record samples from Audio-device - Ses cihazından örnekleri kaydedin + + Panning: %1% right + Kaydırma: %1% sağa - - Record samples from Audio-device while playing song or BB track - Şarkı veya BB parçası çalarken Ses cihazından örnekleri kaydedin + + Panning: center + Kaydırma: merkez - - Stop song (Space) - Şarkıyı durdur (Space) + + Glue notes failed + Yapışkan notaları başarısız oldu - - Track actions - Parça eylemleri + + Please select notes to glue first. + Lütfen önce yapıştırılacak notaları seçin. - - Add beat/bassline - Beat/bassline ekle + + Please open a clip by double-clicking on it! + Lütfen üzerine çift tıklayarak bir desen açın! - - Add sample-track - Örnek parça ekle + + + Please enter a new value between %1 and %2: + Lütfen %1 ile %2 arasında yeni bir değer girin: + + + lmms::gui::PianoRollWindow - - Add automation-track - Ayarkayıt parçası ekle + + Play/pause current clip (Space) + Seçili bölümü oynat/durdur (Boşluk Tuşu) - - Edit actions - İşlemleri düzenle + + Record notes from MIDI-device/channel-piano + MIDI aygıtında/kanal piyanodan notaları kaydedin - - Draw mode - Çizim kipi + + Record notes from MIDI-device/channel-piano while playing song or pattern track + Şarkı veya kalıp parçasını çalarken MIDI cihazından/kanal piyanosundan notlar kaydedin - - Knife mode (split sample clips) - Bıçak modu (örnek klipleri ayır) + + Record notes from MIDI-device/channel-piano, one step at the time + MIDI aygıtından/kanal piyanodan notaları bir seferde bir adım kaydedin - - Edit mode (select and move) - Düzenleme modu (seç ve taşı) + + Stop playing of current clip (Space) + Seçili modeli oynatmayı durdur (Boşluk Tuşu) - - Timeline controls - Zaman çizelgesi kontrolleri + + Edit actions + İşlemleri düzenle - - Bar insert controls - Çubuk ekleme kontrolleri + + Draw mode (Shift+D) + Çizim modu (Shift+D) - - Insert bar - Çubuk ekle + + Erase mode (Shift+E) + Silgi modu (Shift+E) - - Remove bar - Çubuğu kaldır + + Select mode (Shift+S) + Modu seçin (Shift + S) - - Zoom controls - Yakınlaştırma ayarı + + Pitch Bend mode (Shift+T) + Pitch Bend modu (Shift+T) - - Horizontal zooming - Yatay yakınlaştırma + + Quantize + Niceleme - - Snap controls - Yapış denetimleri + + Quantize positions + Niceleme pozisyonları - - - Clip snapping size - Klip yapışma boyutu + + Quantize lengths + Niceleme uzunlukları - - Toggle proportional snap on/off - Orantılı tutturmayı aç/kapat + + File actions + Dosya işlemleri - - Base snapping size - Taban yapışma boyutu + + Import clip + Deseni içe aktar - - - StepRecorderWidget - - Hint - İpucu + + + Export clip + Deseni dışa aktar - - Move recording curser using <Left/Right> arrows - <Sol/Sağ> oklarını kullanarak kayıt imlecini hareket ettirin + + Copy paste controls + Kopyala yapıştır kontrolleri - - - SubWindow - - Close - Kapat + + Cut (%1+X) + Kes (%1+X) - - Maximize - Büyütme + + Copy (%1+C) + Kopyala (%1+C) - - Restore - Onar + + Paste (%1+V) + Yapıştır (%1+V) - - - TabWidget - - - Settings for %1 - %1 ayarları + + Timeline controls + Zaman çizelgesi kontrolleri - - - TemplatesMenu - - New from template - Şablondan yeni + + Glue + Yapıştırıcı - - - TempoSyncKnob - - - Tempo Sync - Tempo Senkronizasyonu + + Knife + Bıçak - - No Sync - Senkronizasyon yok + + Fill + Dolgu - - Eight beats - Sekiz vuruş + + Cut overlaps + Örtüşmeleri kes - - Whole note - Tam nota + + Min length as last + Son olarak en düşük uzunluk - - Half note - Yarım nota + + Max length as last + Son olarak en yüksek uzunluk - - Quarter note - Çeyrek nota + + Zoom and note controls + Yakınlaştırma ve nota kontrolleri - - 8th note - 8'lik nota + + Horizontal zooming + Yatay yakınlaştırma - - 16th note - 16'lık nota + + Vertical zooming + Dikey yakınlaştırma - - 32nd note - 32'lik nota + + Quantization + Niceleme - - Custom... - Özel... + + Note length + Nota uzunluğu - - Custom - Özel + + Key + Anahtar - - Synced to Eight Beats - Sekiz Vuruşla Senkronize Edildi + + Scale + Ölçek - - Synced to Whole Note - Tüm Nota Senkronize Edildi + + Chord + Kiriş - - Synced to Half Note - Yarım Nota Senkronize Edildi + + Snap mode + Anlık çekim modu - - Synced to Quarter Note - Çeyrek Nota Senkronize Edildi + + Clear ghost notes + Hayalet notaları temizle - - Synced to 8th Note - 8. Nota senkronize edildi + + + Piano-Roll - %1 + Piyano Rulosu -%1 - - Synced to 16th Note - 16. Nota senkronize edildi + + + Piano-Roll - no clip + Piyano Rulosu - desen yok - - Synced to 32nd Note - 32. Nota senkronize edildi + + + XML clip file (*.xpt *.xptz) + XML desen dosyası (*.xpt *.xptz) - - - TimeDisplayWidget - - Time units - Zaman birimleri + + Export clip success + Deseni dışa aktarma başarılı - - MIN - DAK + + Clip saved to %1 + Desen %1'e kaydedildi - - - SEC - SAN + + + Import clip. + Deseni içe aktar. - - MSEC - MSEC + + You are about to import a clip, this will overwrite your current clip. Do you want to continue? + Bir kalıp almak üzeresiniz, bu mevcut kalıbınızın üzerine yazılacaktır. Devam etmek istiyor musun? - - BAR - ÇUBUK + + Open clip + Desen aç - - BEAT - VURUŞ + + Import clip success + Desen başarılı şekilde içe aktarıldı - - TICK - TIK + + Imported clip %1! + %1 deseni içe aktarıldı! - TimeLineWidget + lmms::gui::PianoView - - Auto scrolling - Otomatik kaydırma + + Base note + Temel nota - - Loop points - Döngü noktaları + + First note + İlk nota - - After stopping go back to beginning - Durduktan sonra başa dön + + Last note + Son nota + + + lmms::gui::PluginBrowser - - After stopping go back to position at which playing was started - Durduktan sonra oyunun başladığı konuma geri dönün + + Instrument Plugins + Enstrüman Eklentileri - - After stopping keep position - Durduktan sonra pozisyonunuzu koruyun + + Instrument browser + Enstrüman tarayıcısı - - Hint - İpucu + + Drag an instrument into either the Song Editor, the Pattern Editor or an existing instrument track. + - - Press <%1> to disable magnetic loop points. - Manyetik döngü noktalarını devre dışı bırakmak için <%1> tuşuna basın. + + Search + - Track - - - Mute - Ses kapatma - + lmms::gui::PluginDescWidget - - Solo - Tek + + Send to new instrument track + Yeni enstrüman parçasına gönder - TrackContainer + lmms::gui::ProjectNotes - - Couldn't import file - Dosya içe aktarılamadı + + Project Notes + Proje Notları - - Couldn't find a filter for importing file %1. -You should convert this file into a format supported by LMMS using another software. - %1 dosyasını içe aktarmak için bir filtre bulunamadı. -Bu dosyayı başka bir yazılım kullanarak LMMS tarafından desteklenen bir biçime dönüştürmelisiniz. + + Enter project notes here + Buraya proje notlarını girin - - Couldn't open file - Dosya açılamadı + + Edit Actions + İşlemleri Düzenle - - Couldn't open file %1 for reading. -Please make sure you have read-permission to the file and the directory containing the file and try again! - %1 dosyası okumak için açılamadı. -Lütfen dosyayı ve dosyayı içeren dizini okuma iznine sahip olduğunuzdan emin olun ve tekrar deneyin! + + &Undo + Geri &Al - - Loading project... - Proje yükleniyor... + + %1+Z + %1+Z - - - Cancel - İptal + + &Redo + &Yinele - - - Please wait... - Lütfen bekleyin... + + %1+Y + %1+Y - - Loading cancelled - Yükleme iptal edildi + + &Copy + &Kopyala - - Project loading was cancelled. - Proje yüklemesi iptal edildi. + + %1+C + %1+C - - Loading Track %1 (%2/Total %3) - %1 Parça Yükleniyor (%2/Toplam %3) + + Cu&t + Ke&s - - Importing MIDI-file... - MIDI dosyası içe aktarılıyor... + + %1+X + %1+X - - - Clip - - Mute - Ses kapatma + + &Paste + &Yapıştır - - - ClipView - - Current position - Şu anki pozisyon + + %1+V + %1+V - - Current length - Mevcut uzunluk + + Format Actions + Eylemleri Biçimlendir - - - %1:%2 (%3:%4 to %5:%6) - %1:%2 (%3:%4 to %5:%6) + + &Bold + &Kalın - - Press <%1> and drag to make a copy. - Bir kopya oluşturmak için <%1> tuşuna basın ve sürükleyin. + + %1+B + %1+B - - Press <%1> for free resizing. - Serbest yeniden boyutlandırma için <%1> seçeneğine basın. + + &Italic + &İtalik - - Hint - İpucu + + %1+I + %1+I - - Delete (middle mousebutton) - Sil (orta klik) + + &Underline + &Altını çizgili - - Delete selection (middle mousebutton) - Seçimi sil (orta fare düğmesi) + + %1+U + %1+U - - Cut - Kes + + &Left + &Sol - - Cut selection - Seçimi Kes + + %1+L + %1+L - - Merge Selection - Seçimi Birleştir + + C&enter + M&erkez - - Copy - Kopyala + + %1+E + %1+E - - Copy selection - Seçimi Kopyala + + &Right + S&ağ - - Paste - Yapıştır + + %1+R + %1+R - - Mute/unmute (<%1> + middle click) - Sesi kapat/sesi aç (<%1> + orta tıklama) + + &Justify + &Yasla - - Mute/unmute selection (<%1> + middle click) - Seçimin sesini kapat/aç (<%1> + orta tıklama) + + %1+J + %1+J - - Set clip color - Klip rengini ayarla + + &Color... + &Renk... + + + lmms::gui::RecentProjectsMenu - - Use track color - Parça rengini kullan + + &Recently Opened Projects + &Yeni Açılan Projeler - TrackContentWidget + lmms::gui::RenameDialog - - Paste - Yapıştır + + Rename... + Yeniden adlandır... - TrackOperationsWidget + lmms::gui::ReverbSCControlDialog - - Press <%1> while clicking on move-grip to begin a new drag'n'drop action. - Yeni bir sürükle ve bırak eylemine başlamak için tutamağa tıklarken <%1> tuşuna basın. + + Input + Giriş - - Actions - Eylemler + + Input gain: + Giriş kazancı: - - - Mute - Ses kapatma + + Size + Boy - - - Solo - Tek + + Size: + Büyüklük: - - After removing a track, it can not be recovered. Are you sure you want to remove track "%1"? - Bir parça kaldırıldıktan sonra kurtarılamaz. "%1" parçasını kaldırmak istediğinizden emin misiniz? + + Color + Renk - - Confirm removal - Kaldırma işlemini onayla + + Color: + Renk: - - Don't ask again - Bir daha sorma + + Output + Çıkış - - Clone this track - Bu parçayı çoğalt + + Output gain: + Çıkış kazancı: + + + + lmms::gui::SaControlsDialog + + + Pause + Duraklat - - Remove this track - Bu parçayı sil + + Pause data acquisition + Veri edinmeyi duraklatın - - Clear this track - Bu parçayı temizle + + Reference freeze + Referans dondurma - - Channel %1: %2 - FX %1: %2 + + Freeze current input as a reference / disable falloff in peak-hold mode. + Pik tutma modunda akım girişini referans olarak dondurun / düşüşü devre dışı bırakın. - - Assign to new mixer Channel - Yeni FX Kanalına atayın + + Waterfall + Şelale - - Turn all recording on - Tüm kaydı aç + + Display real-time spectrogram + Gerçek zamanlı spektrogramı göster - - Turn all recording off - Tüm kayıtları kapat + + Averaging + Ortalama + + + + Enable exponential moving average + Üstel hareketli ortalamayı etkinleştir - - Change color - Rengini değiştir + + Stereo + Stereo - - Reset color to default - Rengini varsayılana sıfırla + + Display stereo channels separately + Stereo kanalları ayrı olarak görüntüleyin - - Set random color - Rastgele renk ayarla + + Peak hold + Tepe tutma - - Clear clip colors - Klip renklerini temizle + + Display envelope of peak values + Tepe değerlerin zarfını görüntüle - - - TripleOscillatorView - - Modulate phase of oscillator 1 by oscillator 2 - Osilatör 1'in fazını osilatör 2 ile modüle edin + + Logarithmic frequency + Logaritmik frekans - - Modulate amplitude of oscillator 1 by oscillator 2 - Osilatör 1'in genliğini osilatör 2 ile modüle edin + + Switch between logarithmic and linear frequency scale + Logaritmik ve doğrusal frekans ölçeği arasında geçiş yapın - - Mix output of oscillators 1 & 2 - Osilatör 1 ve 2'nin Karışım çıkışı + + + Frequency range + Frekans aralığı - - Synchronize oscillator 1 with oscillator 2 - Osilatör 1'i osilatör 2 ile senkronize edin + + Logarithmic amplitude + Logaritmik genlik - - Modulate frequency of oscillator 1 by oscillator 2 - Osilatör 1'in frekansını osilatör 2 ile modüle edin + + Switch between logarithmic and linear amplitude scale + Logaritmik ve doğrusal genlik ölçeği arasında geçiş yapın - - Modulate phase of oscillator 2 by oscillator 3 - Osilatör 2'nin fazını osilatör 3 ile modüle edin + + + Amplitude range + Genlik aralığı - - Modulate amplitude of oscillator 2 by oscillator 3 - Osilatör 2'nin genliğini osilatör 3 ile modüle edin + + + FFT block size + FFT blok boyutu - - Mix output of oscillators 2 & 3 - Osilatör 2 ve 3'ün Karışım çıkışı + + + FFT window type + FFT pencere türü - - Synchronize oscillator 2 with oscillator 3 - Osilatör 2'yi osilatör 3 ile senkronize edin + + Envelope res. + Zarf çözümü. - - Modulate frequency of oscillator 2 by oscillator 3 - Osilatör 2'nin frekansını osilatör 3 ile modüle edin + + Increase envelope resolution for better details, decrease for better GUI performance. + Daha iyi ayrıntılar için zarf çözünürlüğünü artırın, daha iyi Arayüz performansı için azaltın. - - Osc %1 volume: - Osc %1 düzeyi: + + Maximum number of envelope points drawn per pixel: + Piksel başına çizilen azami zarf noktası sayısı: - - Osc %1 panning: - Osc %1 kaydırma: + + Spectrum res. + Spectrum res. - - Osc %1 coarse detuning: - Osc %1 kaba ince ayar: + + Increase spectrum resolution for better details, decrease for better GUI performance. + Daha iyi ayrıntılar için spektrum çözünürlüğünü artırın, daha iyi Arayüz performansı için azaltın. - - semitones - yarım tonlar + + Maximum number of spectrum points drawn per pixel: + Piksel başına çizilen azami spektrum noktası sayısı: - - Osc %1 fine detuning left: - Osc %1 ince ayar sol: + + Falloff factor + Düşüş faktörü - - - cents - sent + + Decrease to make peaks fall faster. + Zirvelerin daha hızlı düşmesi için azaltın. - - Osc %1 fine detuning right: - Osc %1 ince ayar sağ: + + Multiply buffered value by + Arabelleğe alınan değeri şununla çarp - - Osc %1 phase-offset: - Osc %1 faz kayması: + + Averaging weight + Ortalama ağırlık - - - degrees - derece + + Decrease to make averaging slower and smoother. + Ortalama almayı daha yavaş ve pürüzsüz hale getirmek için azaltın. - - Osc %1 stereo phase-detuning: - Osc %1 stereo faz ayarlama: + + New sample contributes + Yeni örnek katkıda bulunur - - Sine wave - Sinüs dalgası + + Waterfall height + Şelale yüksekliği - - Triangle wave - Üçgen dalga + + Increase to get slower scrolling, decrease to see fast transitions better. Warning: medium CPU usage. + Daha yavaş kaydırmak için artırın, hızlı geçişleri daha iyi görmek için azaltın. Uyarı: orta CPU kullanımı. - - Saw wave - Testere dalga + + Number of lines to keep: + Saklanacak satır sayısı: - - Square wave - Kare dalgası + + Waterfall gamma + Şelale gama - - Moog-like saw wave - Moog benzeri testere dalgası + + Decrease to see very weak signals, increase to get better contrast. + Çok zayıf sinyalleri görmeyi azaltın, daha iyi kontrast elde etmek için artırın. - - Exponential wave - Üstel dalga + + Gamma value: + Gama değeri: - - White noise - Beyaz gürültü + + Window overlap + Pencere örtüşmesi - - User-defined wave - Kullanıcı tanımlı dalga + + Increase to prevent missing fast transitions arriving near FFT window edges. Warning: high CPU usage. + FFT pencere kenarlarının yakınına gelen eksik hızlı geçişleri önlemek için artırın. Uyarı: yüksek CPU kullanımı. - - - VecControls - - Display persistence amount - Kalıcılık miktarını göster + + Number of times each sample is processed: + Her örneğin işlenme sayısı: - - Logarithmic scale - Logaritmik ölçek + + Zero padding + Sıfır dolgu - - High quality - Yüksek kalite + + Increase to get smoother-looking spectrum. Warning: high CPU usage. + Daha pürüzsüz görünen spektrum elde etmek için artırın. Uyarı: yüksek CPU kullanımı. - - - VecControlsDialog - - HQ - YK + + Processing buffer is + İşleme tamponu - - Double the resolution and simulate continuous analog-like trace. - Çözünürlüğü ikiye katlayın ve sürekli analog benzeri izi simüle edin. + + steps larger than input block + giriş bloğundan daha büyük adımlar - - Log. scale - Günlük. ölçeği + + Advanced settings + Gelişmiş ayarlar - - Display amplitude on logarithmic scale to better see small values. - Küçük değerleri daha iyi görmek için genliği logaritmik ölçekte görüntüleyin. + + Access advanced settings + Gelişmiş ayarlara erişin + + + lmms::gui::SampleClipView - - Persist. - Kalıcılık. + + Double-click to open sample + Örneği açmak için çift tıklayın - - Trace persistence: higher amount means the trace will stay bright for longer time. - Kalıcılığı izleme: daha yüksek miktar, izin daha uzun süre parlak kalacağı anlamına gelir. + + Reverse sample + Ters örnek - - Trace persistence - Kalıcılığı izle + + Set as ghost in automation editor + - VersionedSaveDialog + lmms::gui::SampleTrackView - - Increment version number - Sürüm numarasını artır + + Mixer channel + - - Decrement version number - Sürüm numarasını azaltın + + Track volume + Parça ses düzeyi - - Save Options - Seçenekleri Kaydet + + Channel volume: + Kanal ses düzeyi: - - already exists. Do you want to replace it? - zaten var. Değiştirmek istiyor musun? + + VOL + SES - - - VestigeInstrumentView - - - Open VST plugin - VST eklentisini aç + + Panning + Kaydırma - - Control VST plugin from LMMS host - LMMS ana bilgisayarından VST eklentisini kontrol edin + + Panning: + Kaydırma: - - Open VST plugin preset - VST eklenti ön ayarını aç + + PAN + PAN - - Previous (-) - Önceki (-) + + %1: %2 + %1: %2 + + + lmms::gui::SampleTrackWindow - - Save preset - Ön ayarı kaydet + + Sample volume + Örnek düzey - - Next (+) - Sonraki (+) + + Volume: + Ses Düzeyi: - - Show/hide GUI - Kullanıcı arabirimini göster/gizle + + VOL + SES - - Turn off all notes - Tüm notaları kapat + + Panning + Kaydırma - - DLL-files (*.dll) - DLL-dosyaları (*.dll) + + Panning: + Kaydırma: - - EXE-files (*.exe) - EXE-dosyaları (*.exe) + + PAN + PAN - - No VST plugin loaded - Yüklü VST eklentisi yok + + Mixer channel + FX kanalı - - Preset - Hazır Ayar + + CHANNEL + KANAL + + + lmms::gui::SaveOptionsWidget - - by - tarafından + + Discard MIDI connections + MIDI bağlantılarını atın - - - VST plugin control - - VST eklenti kontrolü + + Save As Project Bundle (with resources) + Proje Paketi Olarak Kaydet (kaynaklarla) - VstEffectControlDialog - - - Show/hide - Göster/gizle - + lmms::gui::SetupDialog - - Control VST plugin from LMMS host - LMMS ana bilgisayarından VST eklentisini kontrol edin + + Settings + Ayarlar - - Open VST plugin preset - VST eklenti ön ayarını aç + + + General + Genel - - Previous (-) - Önceki (-) + + Graphical user interface (GUI) + Grafik kullanıcı arayüzü (GUI) - - Next (+) - Sonraki (+) + + Display volume as dBFS + Ses seviyesini dBFS olarak görüntüle - - Save preset - Ön ayarı kaydet + + Enable tooltips + Araç ipuçlarını etkinleştirin - - - Effect by: - Efektler: + + Enable master oscilloscope by default + Ana osiloskopu varsayılan olarak etkinleştirin - - &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> - &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> + + Enable all note labels in piano roll + Piyano rulosundaki tüm nota etiketlerini etkinleştirin - - - VstPlugin - - - The VST plugin %1 could not be loaded. - %1 VST eklentisi yüklenemedi. + + Enable compact track buttons + Kompakt parça düğmelerini etkinleştirin - - Open Preset - Ön Ayarı Aç + + Enable one instrument-track-window mode + Bir enstrüman izleme penceresi modunu etkinleştirin - - - Vst Plugin Preset (*.fxp *.fxb) - Vst Eklenti Ön Ayarı (*.fxp *.fxb) + + Show sidebar on the right-hand side + Sağ tarafta kenar çubuğunu göster - - : default - : öntanımlı + + Let sample previews continue when mouse is released + Fare bırakıldığında örnek önizlemelerin devam etmesine izin verin - - Save Preset - Önayarı Kaydet + + Mute automation tracks during solo + Solo sırasında otomasyon izlerini sessize alma - - .fxp - .fxp + + Show warning when deleting tracks + Parçaları silerken uyarı göster - - .FXP - .FXP + + Show warning when deleting a mixer channel that is in use + Kullanımda olan bir mikser kanalını silerken uyarı göster - - .FXB - .FXB + + Dual-button + - - .fxb - .fxb + + Grab closest + - - Loading plugin - Eklenti yükleniyor + + Handles + - - Please wait while loading VST plugin... - VST eklentisi yüklenirken lütfen bekleyin... + + Loop edit mode + - - - WatsynInstrument - - Volume A1 - Düzey A1 + + Projects + Projeler - - Volume A2 - Düzey A2 + + Compress project files by default + Proje dosyalarını varsayılan olarak sıkıştır - - Volume B1 - Düzey B1 + + Create a backup file when saving a project + Bir projeyi kaydederken bir yedek dosya oluşturun - - Volume B2 - Düzey B2 + + Reopen last project on startup + Başlangıçta son projeyi yeniden aç - - Panning A1 - Kaydırma A1 + + Language + Dil - - Panning A2 - Kaydırma A2 + + + Performance + Başarım - - Panning B1 - Kaydırma B1 + + Autosave + Otomatik kaydet - - Panning B2 - Kaydırma B2 + + Enable autosave + Otomatik kaydetmeyi etkinleştir - - Freq. multiplier A1 - Frekans. çarpan A1 + + Allow autosave while playing + Oynatırken otomatik kaydetmeye izin ver - - Freq. multiplier A2 - Frekans. çarpan A2 + + User interface (UI) effects vs. performance + Kullanıcı arayüzü (UI) efektleri ile performans karşılaştırması - - Freq. multiplier B1 - Frekans. çarpan B1 + + Smooth scroll in song editor + Şarkı düzenleyicide yumuşak kaydırma - - Freq. multiplier B2 - Frekans. çarpan B2 + + Display playback cursor in AudioFileProcessor + Ses Dosyası İşlemcisindeki oynatma imlecini görüntüle - - Left detune A1 - Sol detune A1 + + Plugins + Eklentiler - - Left detune A2 - Sol detune A2 + + VST plugins embedding: + Gömülü VST eklentileri: - - Left detune B1 - Sol detune B1 + + No embedding + Yerleştirme yok - - Left detune B2 - Sol detune B2 + + Embed using Qt API + Qt API kullanarak yerleştirin - - Right detune A1 - Sağ detune A1 + + Embed using native Win32 API + Yerel Win32 API kullanarak yerleştirme - - Right detune A2 - Sağ detune A2 + + Embed using XEmbed protocol + XEmbed protokolünü kullanarak gömün - - Right detune B1 - Sağ detune B1 + + Keep plugin windows on top when not embedded + Gömülü değilken eklenti pencerelerini üstte tutun - - Right detune B2 - Sağ detune B2 + + Keep effects running even without input + Efektlerin girdi olmasa bile çalışmaya devam etmesini sağlayın - - A-B Mix - A-B Karışımı + + + Audio + Ses - - A-B Mix envelope amount - A-B Karışık zarf miktarı + + Audio interface + Ses arayüzü - - A-B Mix envelope attack - A-B Karışık zarf saldırısı + + Buffer size + Arabellek boyutu - - A-B Mix envelope hold - A-B Karışık zarf tutma + + Reset to default value + Varsayılan değere sıfırla - - A-B Mix envelope decay - A-B Karışım zarf bozunması + + + MIDI + MIDI - - A1-B2 Crosstalk - A1-B2 Çapraz Karışma + + MIDI interface + MIDI arayüzü - - A2-A1 modulation - A2-A1 modülasyonu + + Automatically assign MIDI controller to selected track + MIDI denetleyicisini seçilen parçaya otomatik olarak atayın - - B2-B1 modulation - B2-B1 modülasyonu + + Behavior when recording + - - Selected graph - Seçili grafik + + Auto-quantize notes in Piano Roll + - - - WatsynView - - - - - Volume - Ses Düzeyi + + If enabled, notes will be automatically quantized when recording them from a MIDI controller. If disabled, they are always recorded at the highest possible resolution. + - - - - - Panning - Panning + + + Paths + Yollar - - - - - Freq. multiplier - Frekans. çarpanı + + LMMS working directory + LMMS çalışma dizini - - - - - Left detune - Sol detune + + VST plugins directory + VST eklentileri dizini - - - - - - - - - cents - sent + + LADSPA plugins directories + LADSPA eklenti dizinleri - - - - - - Right detune - Sağ detune + + + SF2 directory + SF2 dizini - - A-B Mix - A-B Karışımı + + Default SF2 + Varsayılan SF2 - - Mix envelope amount - Zarf miktarını karıştır + + GIG directory + GIG dizini - - Mix envelope attack - Zarf saldırısını karıştır + + Theme directory + Tema dizini - - Mix envelope hold - Zarf tutmayı karıştır + + Background artwork + Arka plan resmi - - Mix envelope decay - Zarf bozunmasını karıştır + + Some changes require restarting. + Bazı değişiklikler yeniden başlatmayı gerektirir. - - Crosstalk - Cızırtı + + OK + TAMAM - - Select oscillator A1 - Osilatör A1'i seçin + + Cancel + Çıkış - - Select oscillator A2 - Osilatör A2`yi seçin + + minutes + dakika - - Select oscillator B1 - Osilatör B1'i seçin + + minute + dakika - - Select oscillator B2 - Osilatör B2'yi seçin + + Disabled + Devre dışı - - Mix output of A2 to A1 - A2'den A1'e Karışım çıkışı + + Autosave interval: %1 + Otomatik kaydetme aralığı: %1 - - Modulate amplitude of A1 by output of A2 - A1'in genliğini A2 çıkışı ile modüle edin + + The currently selected value is not a power of 2 (32, 64, 128, 256). Some plugins may not be available. + - - Ring modulate A1 and A2 - Halka modüle A1 ve A2 + + The currently selected value is less than or equal to 32. Some plugins may not be available. + - - Modulate phase of A1 by output of A2 - A1'in fazını A2 çıkışı ile modüle edin + + Frames: %1 +Latency: %2 ms + Çerçeveler: %1 +Gecikme: %2 ms - - Mix output of B2 to B1 - B2'den B1'e Karıştırma çıkışı + + Choose the LMMS working directory + LMMS çalışma dizinini seçin - - Modulate amplitude of B1 by output of B2 - B2 çıkışı ile B1 genliğini modüle edin + + Choose your VST plugins directory + VST eklentileri dizininizi seçin - - Ring modulate B1 and B2 - Halka modülasyonu B1 ve B2 + + Choose your LADSPA plugins directory + LADSPA eklentileri dizininizi seçin - - Modulate phase of B1 by output of B2 - B2 çıkışı ile B1 fazını modüle edin + + Choose your SF2 directory + SF2 dizininizi seçin - - - - - Draw your own waveform here by dragging your mouse on this graph. - Farenizi bu grafiğin üzerine sürükleyerek buraya kendi dalga formunuzu çizin. + + Choose your default SF2 + Varsayılan SF2'nizi seçin - - Load waveform - Dalga formu yükle + + Choose your GIG directory + GIG dizininizi seçin - - Load a waveform from a sample file - Örnek bir dosyadan bir dalga formu yükleyin + + Choose your theme directory + Tema dizininizi seçin - - Phase left - Aşama sola + + Choose your background picture + Arka plan resminizi seçin + + + lmms::gui::Sf2InstrumentView - - Shift phase by -15 degrees - Aşamayı -15 derece kaydır + + + Open SoundFont file + Ses Yazı Tipi dosyasını aç - - Phase right - Aşama sağa + + Choose patch + Yama seçin - - Shift phase by +15 degrees - Aşamayı +15 derece kaydır + + Gain: + Kazanç: - - - Normalize - Normalleştir + + Apply reverb (if supported) + Yankı uygula (destekleniyorsa) - - - Invert - Tersine çevir + + Room size: + Oda boyutu: - - - Smooth - Pürüzsüz + + Damping: + Sönümleme: - - - Sine wave - Sinüs dalgası + + Width: + En: - - - - Triangle wave - Üçgen dalga + + + Level: + Düzey: - - Saw wave - Testere dalga + + Apply chorus (if supported) + Koro uygula (destekleniyorsa) - - - Square wave - Kare dalgası + + Voices: + Sesler: - - - Xpressive - - Selected graph - Seçili grafik + + Speed: + Hız: - - A1 - A1 + + Depth: + Derinlik: - - A2 - A2 + + SoundFont Files (*.sf2 *.sf3) + Ses Yazı Tipi Dosyaları (*.sf2 *.sf3) + + + lmms::gui::SidInstrumentView - - A3 - A3 + + Volume: + Ses Düzeyi: - - W1 smoothing - W1 yumuşatma + + Resonance: + Rezonans: - - W2 smoothing - W2 yumuşatma + + + Cutoff frequency: + Kesim frekansı: - - W3 smoothing - W3 yumuşatma + + High-pass filter + Yüksek geçişli filtre - - Panning 1 - Kaydırma 1 + + Band-pass filter + Bant geçişli filtre - - Panning 2 - Kaydırma 2 + + Low-pass filter + Düşük geçişli filtre - - Rel trans - Rel trans + + Voice 3 off + Ses 3 kapalı - - - XpressiveView - - Draw your own waveform here by dragging your mouse on this graph. - Farenizi bu grafiğin üzerine sürükleyerek buraya kendi dalga formunuzu çizin. + + MOS6581 SID + MOS6581 SID - - Select oscillator W1 - Osilatör W1'i seçin + + MOS8580 SID + MOS8580 SID - - Select oscillator W2 - Osilatör W2'yi seçin + + + Attack: + Saldırı: - - Select oscillator W3 - Osilatör W3 seçin + + + Decay: + Bozunma: - - Select output O1 - O1 çıkışını seçin + + Sustain: + Sürdürmek: - - Select output O2 - O2 çıkışını seçin + + + Release: + Yayınla: - - Open help window - Yardım penceresini aç + + Pulse Width: + Darbe genişliği: - - - Sine wave - Sinüs dalgası + + Coarse: + Kaba: - - - Moog-saw wave - Moog-saw dalgası + + Pulse wave + Nabız dalgası - - - Exponential wave - Üstel dalga + + Triangle wave + Üçgen dalga - - + Saw wave Testere dalga - - - User-defined wave - Kullanıcı tanımlı dalga + + Noise + Gürültü - - - Triangle wave - Üçgen dalga + + Sync + Eşitle - - - Square wave - Kare dalgası + + Ring modulation + Halka modülasyonu - - - White noise - Beyaz gürültü + + Filtered + Filtrelenmiş - - WaveInterpolate - Dalga ekleme + + Test + Dene + + + + Pulse width: + Darbe genişliği: + + + + lmms::gui::SideBarWidget + + + Close + Kapat + + + lmms::gui::SlicerTView - - ExpressionValid - İfade Geçerli + + Slice snap + - - General purpose 1: - Genel amaç 1: + + Set slice snapping for detection + - - General purpose 2: - Genel amaç 2: + + Sync sample + - - General purpose 3: - Genel amaçlı 3: + + Enable BPM sync + - - O1 panning: - O1 kaydırma: + + Original sample BPM + - - O2 panning: - O2 kaydırma: + + Threshold used for slicing + - - Release transition: - Sürüm geçişi: + + Fade Out per note in milliseconds + - - Smoothness - Pürüssüzlük + + Copy midi pattern to clipboard + - - - ZynAddSubFxInstrument - - Portamento - Kaydırma + + Open sample selector + - - Filter frequency - Frekans filtresi + + Reset slices + - - Filter resonance - Rezonans filtresi + + Threshold + - - Bandwidth - Bant genişliği + + Fade Out + - - FM gain - FM kazancı + + Reset + - - Resonance center frequency - Rezonans merkez frekansı + + Midi + - - Resonance bandwidth - Rezonans bant genişliği + + BPM + - - Forward MIDI control change events - MIDI kontrol değişikliği olaylarını iletme + + Snap + - ZynAddSubFxView + lmms::gui::SlicerTWaveform - - Portamento: - Kaydırma: + + Click to load sample + + + + lmms::gui::SongEditor - - PORT - KAYDIRMA + + Could not open file + Dosya açılamadı - - Filter frequency: - Frekans filtresi: + + Could not open file %1. You probably have no permissions to read this file. + Please make sure to have at least read permissions to the file and try again. + %1 dosyası açılamadı. Muhtemelen bu dosyayı okuma izniniz yok. + Lütfen dosya için en azından okuma izninizin olduğundan emin olun ve tekrar deneyin. - - FREQ - FREK + + Operation denied + İşlem reddedildi - - Filter resonance: - Rezonans filtresi: + + A bundle folder with that name already eists on the selected path. Can't overwrite a project bundle. Please select a different name. + Bu ada sahip bir paket klasörü zaten seçili yolda bulunuyor. Proje paketinin üzerine yazılamaz. Lütfen farklı bir isim seçin. - - RES - RF + + + + Error + Sorun - - Bandwidth: - Bant genişliği: + + Couldn't create bundle folder. + Paket klasörü oluşturulamadı. - - BW - BG + + Couldn't create resources folder. + Kaynaklar klasörü oluşturulamadı. - - FM gain: - FM kazancı: + + Failed to copy resources. + Kaynaklar kopyalanamadı. - - FM GAIN - FM KAZANÇ + + + Could not write file + Dosya yazılamadı - - Resonance center frequency: - Rezonans merkez frekansı: + + Could not open %1 for writing. You probably are not permitted to write to this file. Please make sure you have write-access to the file and try again. + - - RES CF - Rez MF + + An unknown error has occurred and the file could not be saved. + - - Resonance bandwidth: - Rezonans bant genişliği: + + Error in file + Dosyada hata - - RES BW - REZ BG + + The file %1 seems to contain errors and therefore can't be loaded. + Görünüşe göre %1 dosyası hatalar içeriyor ve bu nedenle yüklenemiyor. - - Forward MIDI control changes - MIDI kontrol değişikliklerini ilet + + template + şablon - - Show GUI - Görselli Arayüzü Göster + + project + proje - - - AudioFileProcessor - - Amplify - Yükseltici + + Version difference + Sürüm farkı - - Start of sample - Örnek başlangıcı + + This %1 was created with LMMS %2 + Bu %1, %2 LMMS ile oluşturuldu - - End of sample - Örneğin sonu + + Zoom + Yakınlaştır - - Loopback point - Geri döngü noktası + + Tempo + Tempo - - Reverse sample - Sample'ı ters yüz et + + TEMPO + TEMPO - - Loop mode - Döngü modu + + Tempo in BPM + BPM'de Tempo - - Stutter - Kekemelik + + + + Master volume + Ana ses - - Interpolation mode - Ara değerlendirme modu + + + + Global transposition + Genel aktarma - - None - Hiç + + 1/%1 Bar + 1/%1 Çubuk - - Linear - Doğrusal + + %1 Bars + %1 Çubuklar - - Sinc - Sinc + + Value: %1% + Değer: %1% - - Sample not found: %1 - Örnek bulunamadı: %1 + + Value: %1 keys + Değer: %1 anahtar - BitInvader + lmms::gui::SongEditorWindow - - Sample length - Örnek uzunluğu + + Song-Editor + Şarkı-Düzenleyici - - - BitInvaderView - - Sample length - Örnek uzunluğu + + Play song (Space) + Şarkıyı başlat (Space) - - Draw your own waveform here by dragging your mouse on this graph. - Farenizi bu grafiğin üzerine sürükleyerek buraya kendi dalga formunuzu çizin. + + Record samples from Audio-device + Ses cihazından örnekleri kaydedin - - - Sine wave - Sinüs dalgası + + Record samples from Audio-device while playing song or pattern track + Şarkı veya kalıp parçası çalarken Ses cihazından örnekler kaydedin - - - Triangle wave - Üçgen dalga + + Stop song (Space) + Şarkıyı durdur (Space) - - - Saw wave - Testere dalga + + Track actions + Parça eylemleri - - - Square wave - Kare dalgası + + Add pattern-track + Kalıp-parça ekle - - - White noise - Beyaz gürültü + + Add sample-track + Örnek parça ekle - - - User-defined wave - Kullanıcı tanımlı dalga + + Add automation-track + Ayarkayıt parçası ekle - - - Smooth waveform - Düzgün dalga formu + + Edit actions + İşlemleri düzenle - - Interpolation - Aradeğerleme + + Draw mode + Çizim kipi - - Normalize - Normalleştir + + Knife mode (split sample clips) + Bıçak modu (örnek klipleri ayır) - - - DynProcControlDialog - - INPUT - GİRDİ + + Edit mode (select and move) + Düzenleme modu (seç ve taşı) - - Input gain: - Giriş kazancı: + + Timeline controls + Zaman çizelgesi kontrolleri - - OUTPUT - ÇIKTI + + Bar insert controls + Çubuk ekleme kontrolleri - - Output gain: - Çıkış kazancı: + + Insert bar + Çubuk ekle - - ATTACK - SALDIRI + + Remove bar + Çubuğu kaldır - - Peak attack time: - Tepe saldırı süresi: + + Zoom controls + Yakınlaştırma kontrolleri + + + + + Zoom + Yakınlaştır + + + + Snap controls + Yapış denetimleri + + + + + Clip snapping size + Klip yapışma boyutu + + + + Toggle proportional snap on/off + Orantılı tutturmayı aç/kapat - - RELEASE - YAYINLAMA + + Base snapping size + Taban yapışma boyutu + + + lmms::gui::StepRecorderWidget - - Peak release time: - En yüksek yayın süresi: + + Hint + İpucu - - - Reset wavegraph - Dalga grafiğini sıfırla + + Move recording curser using <Left/Right> arrows + <Sol/Sağ> oklarını kullanarak kayıt imlecini hareket ettirin + + + lmms::gui::StereoEnhancerControlDialog - - - Smooth wavegraph - Pürüzsüz dalga grafiği + + WIDTH + GENİŞLİK - - - Increase wavegraph amplitude by 1 dB - Dalga grafiğinin genliğini 1 dB artırın + + Width: + En: + + + lmms::gui::StereoMatrixControlDialog - - - Decrease wavegraph amplitude by 1 dB - Dalga grafiğinin genliğini 1 dB azaltın + + Left to Left Vol: + Soldan Sola Düzey: - - Stereo mode: maximum - Stereo modu: maksimum + + Left to Right Vol: + Soldan Sağa Düzey: - - Process based on the maximum of both stereo channels - Her iki stereo kanalın maksimumuna dayalı işlem + + Right to Left Vol: + Sağdan Sola Düzey: - - Stereo mode: average - Stereo modu: ortalama + + Right to Right Vol: + Sağdan Sağa Düzey: + + + lmms::gui::SubWindow - - Process based on the average of both stereo channels - Her iki stereo kanalın ortalamasına dayalı işlem + + Close + Kapat - - Stereo mode: unlinked - Stereo mod: bağlantısız + + Maximize + Büyütme - - Process each stereo channel independently - Her bir stereo kanalı bağımsız olarak işleyin + + Restore + Onar - DynProcControls - - - Input gain - Giriş kazancı - + lmms::gui::TapTempoView - - Output gain - Çıkış kazancı + + 0 + 0 - - Attack time - Kalkma zamanı + + + Precision + Kesinlik - - Release time - Yayımlama zamanı + + Display in high precision + Yüksek hassasiyette görüntüleme - - Stereo mode - Çift kanal modu + + 0.0 ms + 0.0 ms - - - graphModel - - Graph - Grafik + + Mute metronome + Metronomun sesini kapat - - - KickerInstrument - - Start frequency - Başlangıç frekansı + + Mute + Sustur - - End frequency - Bitiş frekansı + + BPM in milliseconds + Milisaniye cinsinden BPM - - Length - Süre + + 0 ms + 0 ms - - Start distortion - Bozulmayı başlat + + Frequency of BPM + BPM'nin sıklığı - - End distortion - Bozulmayı bitir + + 0.0000 hz + 0.0000 hz - - Gain - Kazanç + + Reset + Sıfırla - - Envelope slope - Zarf eğimi + + Reset counter and sidebar information + Sayaç ve kenar çubuğu bilgilerini sıfırlayın - - Noise - Parazit + + Sync + Eşitle - - Click - Tıkla + + Sync with project tempo + Proje temposuyla senkronize edin - - Frequency slope - Frekans eğimi + + %1 ms + %1 ms - - Start from note - Notadan başla + + %1 hz + %1 hz + + + lmms::gui::TemplatesMenu - - End to note - Notanın sonu + + New from template + Şablondan yeni - KickerInstrumentView + lmms::gui::TempoSyncBarModelEditor - - Start frequency: - Başlangıç frekansı: + + + Tempo Sync + - - End frequency: - Bitiş frekansı: + + No Sync + - - Frequency slope: - Frekans eğimi: + + Eight beats + - - Gain: - Kazanç: + + Whole note + - - Envelope length: - Zarf uzunluğu: + + Half note + - - Envelope slope: - Zarf eğimi: + + Quarter note + - - Click: - Tıkla: + + 8th note + - - Noise: - Gürültü: + + 16th note + - - Start distortion: - Bozulmayı başlat: + + 32nd note + - - End distortion: - Bozulmayı bitir: + + Custom... + - - - LadspaBrowserView - - - Available Effects - Mevcut Efektler + + Custom + - - - Unavailable Effects - Kullanılamayan Etkiler + + Synced to Eight Beats + - - - Instruments - Enstrümanlar + + Synced to Whole Note + - - - Analysis Tools - Analiz Araçları + + Synced to Half Note + - - - Don't know - Bilmiyorum + + Synced to Quarter Note + - - Type: - Türü: + + Synced to 8th Note + - - - LadspaDescription - - Plugins - Eklentiler + + Synced to 16th Note + - - Description - Açıklama + + Synced to 32nd Note + - LadspaPortDialog + lmms::gui::TempoSyncKnob - - Ports - Bağlantı Noktaları + + + Tempo Sync + Tempo Senkronizasyonu - - Name - İsim + + No Sync + Senkronizasyon yok - - Rate - Oran + + Eight beats + Sekiz vuruş - - Direction - Yön + + Whole note + Tam nota - - Type - Tip + + Half note + Yarım nota - - Min < Default < Max - Min <Varsayılan <Maks + + Quarter note + Çeyrek nota - - Logarithmic - Logaritmik + + 8th note + 8'lik nota - - SR Dependent - SR Bağımlı + + 16th note + 16'lık nota - - Audio - Ses + + 32nd note + 32'lik nota - - Control - Kontrol + + Custom... + Özel... - - Input - Giriş + + Custom + Özel - - Output - Çıkış + + Synced to Eight Beats + Sekiz Vuruşla Senkronize Edildi - - Toggled - Geçişli + + Synced to Whole Note + Tüm Nota Senkronize Edildi + + + + Synced to Half Note + Yarım Nota Senkronize Edildi + + + + Synced to Quarter Note + Çeyrek Nota Senkronize Edildi + + + + Synced to 8th Note + 8. Nota senkronize edildi + + + + Synced to 16th Note + 16. Nota senkronize edildi - - Integer - Tamsayı + + Synced to 32nd Note + 32. Nota senkronize edildi + + + lmms::gui::TimeDisplayWidget - - Float - Şamandıra + + Time units + Zaman birimleri - - - Yes - Evet + + MIN + DAK - - - Lb302Synth - - VCF Cutoff Frequency - VCF Kesme Frekansı + + SEC + SAN - - VCF Resonance - VCF Rezonansı + + MSEC + MSEC - - VCF Envelope Mod - VCF Zarf Modu + + BAR + ÇUBUK - - VCF Envelope Decay - VCF Zarf Bozulması + + BEAT + VURUŞ - - Distortion - Bozma + + TICK + TIK + + + lmms::gui::TimeLineWidget - - Waveform - Dalga şekli + + Auto scrolling + Otomatik kaydırma - - Slide Decay - Bozulma Kaydırma + + Stepped auto scrolling + - - Slide - Kaydır + + Continuous auto scrolling + - - Accent - Vurgu + + Auto scrolling disabled + - - Dead - Ölü + + Loop points + Döngü noktaları - - 24dB/oct Filter - 24dB/oct FiltRESİ + + After stopping go back to beginning + Durduktan sonra başa dön - - - Lb302SynthView - - Cutoff Freq: - Kesim Frekansı: + + After stopping go back to position at which playing was started + Durduktan sonra oyunun başladığı konuma geri dönün - - Resonance: - Rezonans: + + After stopping keep position + Durduktan sonra pozisyonunuzu koruyun - - Env Mod: - Env Mod: + + Hint + İpucu - - Decay: - Bozunma: + + Press <%1> to disable magnetic loop points. + Manyetik döngü noktalarını devre dışı bırakmak için <%1> tuşuna basın. - - 303-es-que, 24dB/octave, 3 pole filter - 303-es-que, 24dB/octave, 3 kutuplu filtre + + Set loop begin here + - - Slide Decay: - Bozulma Kaydırma: + + Set loop end here + - - DIST: - MESAFE: + + Loop edit mode (hold shift) + - - Saw wave - Testere dalga + + Dual-button + - - Click here for a saw-wave. - Testere dalgası için buraya tıklayın. + + Grab closest + - - Triangle wave - Üçgen dalga + + Handles + + + + lmms::gui::TrackContentWidget - - Click here for a triangle-wave. - Üçgen dalga için burayı tıklayın. + + Paste + Yapıştır + + + lmms::gui::TrackOperationsWidget - - Square wave - Kare dalgası + + Press <%1> while clicking on move-grip to begin a new drag'n'drop action. + Yeni bir sürükle ve bırak eylemine başlamak için tutamağa tıklarken <%1> tuşuna basın. - - Click here for a square-wave. - Kare dalga için burayı tıklayın. + + Actions + Eylemler - - Rounded square wave - Yuvarlak kare dalga + + + Mute + Sustur - - Click here for a square-wave with a rounded end. - Yuvarlak uçlu bir kare dalga için burayı tıklayın. + + + Solo + Tek - - Moog wave - Moog dalgası + + After removing a track, it can not be recovered. Are you sure you want to remove track "%1"? + Bir parça kaldırıldıktan sonra kurtarılamaz. "%1" parçasını kaldırmak istediğinizden emin misiniz? - - Click here for a moog-like wave. - Moog benzeri bir dalga için burayı tıklayın. + + Confirm removal + Kaldırma işlemini onayla - - Sine wave - Sinüs dalgası + + Don't ask again + Bir daha sorma - - Click for a sine-wave. - Sinüs dalgası için tıklayın. + + Clone this track + Bu parçayı çoğalt - - - White noise wave - Beyaz gürültü dalgası + + Remove this track + Bu parçayı sil - - Click here for an exponential wave. - Üstel dalga için burayı tıklayın. + + Clear this track + Bu parçayı temizle - - Click here for white-noise. - Beyaz gürültü için buraya tıklayın. + + Channel %1: %2 + FX %1: %2 - - Bandlimited saw wave - Bant sınırlı testere dalgası + + Assign to new Mixer Channel + Yeni Karıştırıcı Kanalına Ata - - Click here for bandlimited saw wave. - Bantlı testere dalgası için buraya tıklayın. + + Turn all recording on + Tüm kaydı aç - - Bandlimited square wave - Bant sınırlı kare dalga + + Turn all recording off + Tüm kayıtları kapat - - Click here for bandlimited square wave. - Band sınırlı kare dalga için buraya tıklayın. + + Track color + Parça rengi - - Bandlimited triangle wave - Bant sınırlı üçgen dalga + + Change + Değiştir - - Click here for bandlimited triangle wave. - Bant sınırlı üçgen dalga için buraya tıklayın. + + Reset + Sıfırla - - Bandlimited moog saw wave - Band sınırlı moog testere dalgası + + Pick random + Rastgele seç - - Click here for bandlimited moog saw wave. - Bant sınırlı moog testere dalgası için buraya tıklayın. + + Reset clip colors + Klip renklerini sıfırla - MalletsInstrument + lmms::gui::TripleOscillatorView - - Hardness - Sertlik + + Modulate phase of oscillator 1 by oscillator 2 + Osilatör 1'in fazını osilatör 2 ile modüle edin - - Position - Konum + + Modulate amplitude of oscillator 1 by oscillator 2 + Osilatör 1'in genliğini osilatör 2 ile modüle edin - - Vibrato gain - Titreşim kazancı + + Mix output of oscillators 1 & 2 + Osilatör 1 ve 2'nin Karışım çıkışı - - Vibrato frequency - Titreşim frekansı + + Synchronize oscillator 1 with oscillator 2 + Osilatör 1'i osilatör 2 ile senkronize edin - - Stick mix - Çubuk karıştırıcı + + Modulate frequency of oscillator 1 by oscillator 2 + Osilatör 1'in frekansını osilatör 2 ile modüle edin - - Modulator - Modülatör + + Modulate phase of oscillator 2 by oscillator 3 + Osilatör 2'nin fazını osilatör 3 ile modüle edin - - Crossfade - Çapraz geçiş + + Modulate amplitude of oscillator 2 by oscillator 3 + Osilatör 2'nin genliğini osilatör 3 ile modüle edin - - LFO speed - LFO hızı + + Mix output of oscillators 2 & 3 + Osilatör 2 ve 3'ün Karışım çıkışı - - LFO depth - LFO derinliği + + Synchronize oscillator 2 with oscillator 3 + Osilatör 2'yi osilatör 3 ile senkronize edin - - ADSR - ADSR + + Modulate frequency of oscillator 2 by oscillator 3 + Osilatör 2'nin frekansını osilatör 3 ile modüle edin - - Pressure - Basınç + + Osc %1 volume: + Osc %1 düzeyi: - - Motion - Hareket + + Osc %1 panning: + Osc %1 kaydırma: - - Speed - Hız + + Osc %1 coarse detuning: + Osc %1 kaba ince ayar: - - Bowed - Eğilmiş + + semitones + yarım tonlar - - Spread - Etrafa Saç + + Osc %1 fine detuning left: + Osc %1 ince ayar sol: - - Marimba - Marimba + + + cents + sent - - Vibraphone - Vibrafon + + Osc %1 fine detuning right: + Osc %1 ince ayar sağ: - - Agogo - Agogo + + Osc %1 phase-offset: + Osc %1 faz kayması: - - Wood 1 - Ahşap 1 + + + degrees + derece - - Reso - Reso + + Osc %1 stereo phase-detuning: + Osc %1 stereo faz ayarlama: - - Wood 2 - Ahşap 2 + + Sine wave + Sinüs dalgası - - Beats - Vuruşlar + + Triangle wave + Üçgen dalga - - Two fixed - İki sabit + + Saw wave + Testere dalga - - Clump - Tortu + + Square wave + Kare dalgası - - Tubular bells - Borulu çanlar + + Moog-like saw wave + Moog benzeri testere dalgası - - Uniform bar - Üniforma çubuğu + + Exponential wave + Üstel dalga - - Tuned bar - Ayarlanmış çubuk + + White noise + Beyaz gürültü - - Glass - Cam + + User-defined wave + Kullanıcı tanımlı dalga - - Tibetan bowl - Tibet kase + + Use alias-free wavetable oscillators. + Takma ad içermeyen dalga tablosu osilatörleri kullanın. - MalletsInstrumentView + lmms::gui::VecControlsDialog - - Instrument - Enstrüman + + HQ + YK - - Spread - Etrafa Saç + + Double the resolution and simulate continuous analog-like trace. + Çözünürlüğü ikiye katlayın ve sürekli analog benzeri izi simüle edin. - - Spread: - Yayılmış: + + Log. scale + Günlük. ölçeği - - Missing files - Eksik Dosyalar + + Display amplitude on logarithmic scale to better see small values. + Küçük değerleri daha iyi görmek için genliği logaritmik ölçekte görüntüleyin. - - Your Stk-installation seems to be incomplete. Please make sure the full Stk-package is installed! - Stk kurulumunuz eksik görünüyor. Lütfen tam Stk paketinin kurulu olduğundan emin olun! + + Persist. + Kalıcılık. - - Hardness - Sertlik + + Trace persistence: higher amount means the trace will stay bright for longer time. + Kalıcılığı izleme: daha yüksek miktar, izin daha uzun süre parlak kalacağı anlamına gelir. - - Hardness: - Sertlik: + + Trace persistence + Kalıcılığı izle + + + lmms::gui::VersionedSaveDialog - - Position - Konum + + Increment version number + Sürüm numarasını artır - - Position: - Konum: + + Decrement version number + Sürüm numarasını azaltın - - Vibrato gain - Titreşim kazancı + + Save Options + Seçenekleri Kaydet - - Vibrato gain: - Titreşim kazancı: + + already exists. Do you want to replace it? + zaten var. Değiştirmek istiyor musun? + + + lmms::gui::VestigeInstrumentView - - Vibrato frequency - Titreşim frekansı + + + Open VST plugin + VST eklentisini aç - - Vibrato frequency: - Titreşim frekansı: + + Control VST plugin from LMMS host + LMMS ana bilgisayarından VST eklentisini kontrol edin - - Stick mix - Çubuk karıştırıcı + + Open VST plugin preset + VST eklenti ön ayarını aç - - Stick mix: - Çubuk karıştırıcı: + + Previous (-) + Önceki (-) - - Modulator - Modülatör + + Save preset + Ön ayarı kaydet - - Modulator: - Modülatör: + + Next (+) + Sonraki (+) - - Crossfade - Çapraz geçiş + + Show/hide GUI + Kullanıcı arabirimini göster/gizle - - Crossfade: - Çapraz geçiş: + + Turn off all notes + Tüm notaları kapat - - LFO speed - LFO hızı + + DLL-files (*.dll) + DLL-dosyaları (*.dll) - - LFO speed: - LFO hızı: + + EXE-files (*.exe) + EXE-dosyaları (*.exe) - - LFO depth - LFO derinliği + + SO-files (*.so) + SO-dosyaları (*.so) - - LFO depth: - LFO derinliği: + + No VST plugin loaded + Yüklü VST eklentisi yok - - ADSR - ADSR + + Preset + Hazır Ayar - - ADSR: - ADSR: + + by + tarafından - - Pressure - Basınç + + - VST plugin control + - VST eklenti kontrolü + + + lmms::gui::VibedView - - Pressure: - Basınç: + + Enable waveform + Dalga biçimini etkinleştir - - Speed - Hız + + + Smooth waveform + Düzgün dalga formu - - Speed: - Hız: + + + Normalize waveform + Dalga formunu normalleştir - - - ManageVSTEffectView - - - VST parameter control - - VST parametre kontrolü + + + Sine wave + Sinüs dalgası - - VST sync - VST senkronizasyonu + + + Triangle wave + Üçgen dalga - - - Automated - Otomatik + + + Saw wave + Testere dalga - - Close - Kapat + + + Square wave + Kare dalgası - - - ManageVestigeInstrumentView - - - - VST plugin control - - VST eklenti kontrolü + + + White noise + Beyaz gürültü - - VST Sync - VST Senkronizasyonu + + + User-defined wave + Kullanıcı tanımlı dalga - - - Automated - Otomatik + + String volume: + Dize hacmi: - - Close - Kapat + + String stiffness: + Dize sertliği: - - - OrganicInstrument - - Distortion - Bozma + + Pick position: + Pozisyon seçin: - - Volume - Ses Düzeyi + + Pickup position: + Alış konumu: - - - OrganicInstrumentView - - Distortion: - Çarpıtma: + + String panning: + Dize kaydırma: - - Volume: - Ses Düzeyi: + + String detune: + Dize detayı: - - Randomise - Rastgele + + String fuzziness: + Dize belirsizliği: - - - - Osc %1 waveform: - Osc %1 dalga biçimi: + + + String length: + Dize uzunluğu: - - Osc %1 volume: - Osc %1 düzeyi: + + Impulse Editor + Dürtü Düzenleyici - - Osc %1 panning: - Osc %1 kaydırma: + + Impulse + Dürtü - - Osc %1 stereo detuning - Osc %1 stereo perdeleme + + Enable/disable string + Dizeyi etkinleştir / devre dışı bırak - - cents - sent + + Octave + Octave - - Osc %1 harmonic: - Osc %1 harmonik: + + String + Dize - PatchesDialog + lmms::gui::VstEffectControlDialog - - Qsynth: Channel Preset - Qsynth: Kanal Ön Ayarı + + Show/hide + Göster/gizle - - Bank selector - Yuva seçici + + Control VST plugin from LMMS host + LMMS ana bilgisayarından VST eklentisini kontrol edin - - Bank - Yuva + + Open VST plugin preset + VST eklenti ön ayarını aç - - Program selector - Program seçici + + Previous (-) + Önceki (-) - - Patch - Yama + + Next (+) + Sonraki (+) - - Name - İsim + + Save preset + Ön ayarı kaydet - - OK - Tamam + + + Effect by: + Efektler: - - Cancel - İptal + + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> - Sf2Instrument + lmms::gui::WatsynView - - Bank - Yuva - - - - Patch - Yama - - - - Gain - Kazanç - - - - Reverb - Yankı + + + + + Volume + Ses Düzeyi - - Reverb room size - Yankı odası boyutu + + + + + Panning + Kaydırma - - Reverb damping - Yankı sönümleme + + + + + Freq. multiplier + Frekans. çarpanı - - Reverb width - Yankı genişliği + + + + + Left detune + Sol detune - - Reverb level - Yankı seviyesi + + + + + + + + + cents + sent - - Chorus - Koro + + + + + Right detune + Sağ detune - - Chorus voices - Koro sesleri + + A-B Mix + A-B Karışımı - - Chorus level - Koro seviyesi + + Mix envelope amount + Zarf miktarını karıştır - - Chorus speed - Koro hızı + + Mix envelope attack + Zarf saldırısını karıştır - - Chorus depth - Koro derinliği + + Mix envelope hold + Zarf tutmayı karıştır - - A soundfont %1 could not be loaded. - %1 ses yazı tipi yüklenemedi. + + Mix envelope decay + Zarf bozunmasını karıştır - - - Sf2InstrumentView - - - Open SoundFont file - Ses Yazı Tipi dosyasını aç + + Crosstalk + Cızırtı - - Choose patch - Yama seçin + + Select oscillator A1 + Osilatör A1'i seçin - - Gain: - Kazanç: + + Select oscillator A2 + Osilatör A2`yi seçin - - Apply reverb (if supported) - Yankı uygula (destekleniyorsa) + + Select oscillator B1 + Osilatör B1'i seçin - - Room size: - Oda boyutu: + + Select oscillator B2 + Osilatör B2'yi seçin - - Damping: - Sönümleme: + + Mix output of A2 to A1 + A2'den A1'e Karışım çıkışı - - Width: - En: + + Modulate amplitude of A1 by output of A2 + A1'in genliğini A2 çıkışı ile modüle edin - - - Level: - Düzey: + + Ring modulate A1 and A2 + Halka modüle A1 ve A2 - - Apply chorus (if supported) - Koro uygula (destekleniyorsa) + + Modulate phase of A1 by output of A2 + A1'in fazını A2 çıkışı ile modüle edin - - Voices: - Sesler: + + Mix output of B2 to B1 + B2'den B1'e Karıştırma çıkışı - - Speed: - Hız: + + Modulate amplitude of B1 by output of B2 + B2 çıkışı ile B1 genliğini modüle edin - - Depth: - Derinlik: + + Ring modulate B1 and B2 + Halka modülasyonu B1 ve B2 - - SoundFont Files (*.sf2 *.sf3) - Ses Yazı Tipi Dosyaları (*.sf2 *.sf3) + + Modulate phase of B1 by output of B2 + B2 çıkışı ile B1 fazını modüle edin - - - SfxrInstrument - - Wave - Dalga + + + + + Draw your own waveform here by dragging your mouse on this graph. + Farenizi bu grafiğin üzerine sürükleyerek buraya kendi dalga formunuzu çizin. - - - StereoEnhancerControlDialog - - WIDTH - GENİŞLİK + + Load waveform + Dalga formu yükle - - Width: - En: + + Load a waveform from a sample file + Örnek bir dosyadan bir dalga formu yükleyin - - - StereoEnhancerControls - - Width - Genişlik + + Phase left + Aşama sola - - - StereoMatrixControlDialog - - Left to Left Vol: - Soldan Sola Düzey: + + Shift phase by -15 degrees + Aşamayı -15 derece kaydır - - Left to Right Vol: - Soldan Sağa Düzey: + + Phase right + Aşama sağa - - Right to Left Vol: - Sağdan Sola Düzey: + + Shift phase by +15 degrees + Aşamayı +15 derece kaydır - - Right to Right Vol: - Sağdan Sağa Düzey: + + + Normalize + Normalleştir - - - StereoMatrixControls - - Left to Left - Soldan Sola + + + Invert + Tersine çevir - - Left to Right - Soldan sağa + + + Smooth + Pürüzsüz - - Right to Left - Sağdan sola + + + Sine wave + Sinüs dalgası - - Right to Right - Sağa Doğru + + + + Triangle wave + Üçgen dalga - - - VestigeInstrument - - Loading plugin - Eklenti yükleniyor + + Saw wave + Testere dalga - - Please wait while loading the VST plugin... - VST eklentisini yüklerken lütfen bekleyin... + + + Square wave + Kare dalgası - Vibed + lmms::gui::WaveShaperControlDialog - - String %1 volume - Dize %1 hacmi + + INPUT + GİRDİ - - String %1 stiffness - Dize %1 sertliği + + Input gain: + Giriş kazancı: - - Pick %1 position - %1 pozisyon seçin + + OUTPUT + ÇIKTI - - Pickup %1 position - Alım %1 pozisyon + + Output gain: + Çıkış kazancı: - - String %1 panning - %1 dize kaydırma + + + Reset wavegraph + Dalga grafiğini sıfırla - - String %1 detune - %1 dize detune + + + Smooth wavegraph + Pürüzsüz dalga grafiği - - String %1 fuzziness - Dize %1 belirsizliği + + + Increase wavegraph amplitude by 1 dB + Dalga grafiğinin genliğini 1 dB artırın - - String %1 length - Dize %1 uzunluğu + + + Decrease wavegraph amplitude by 1 dB + Dalga grafiğinin genliğini 1 dB azaltın - - Impulse %1 - Dürtü %1 + + Clip input + Klip girişi - - String %1 - Dize %1 + + Clip input signal to 0 dB + Giriş sinyalini 0 dB'ye klipsleyin - VibedView - - - String volume: - Dize hacmi: - - - - String stiffness: - Dize sertliği: - - - - Pick position: - Pozisyon seçin: - + lmms::gui::XpressiveView - - Pickup position: - Alış konumu: + + Draw your own waveform here by dragging your mouse on this graph. + Farenizi bu grafiğin üzerine sürükleyerek buraya kendi dalga formunuzu çizin. - - String panning: - Dize kaydırma: + + Select oscillator W1 + Osilatör W1'i seçin - - String detune: - Dize detayı: + + Select oscillator W2 + Osilatör W2'yi seçin - - String fuzziness: - Dize belirsizliği: + + Select oscillator W3 + Osilatör W3 seçin - - String length: - Dize uzunluğu: + + Select output O1 + O1 çıkışını seçin - - Impulse - Dürtü + + Select output O2 + O2 çıkışını seçin - - Octave - Octave + + Open help window + Yardım penceresini aç - - Impulse Editor - Dürtü Düzenleyici + + + Sine wave + Sinüs dalgası - - Enable waveform - Dalga biçimini etkinleştir + + + Moog-saw wave + Moog-saw dalgası - - Enable/disable string - Dizeyi etkinleştir / devre dışı bırak + + + Exponential wave + Üstel dalga - - String - Dize + + + Saw wave + Testere dalga - - - Sine wave - Sinüs dalgası + + + User-defined wave + Kullanıcı tanımlı dalga - - + + Triangle wave Üçgen dalga - - - Saw wave - Testere dalga - - - - + + Square wave Kare dalgası - - + + White noise Beyaz gürültü - - - User-defined wave - Kullanıcı tanımlı dalga - - - - - Smooth waveform - Düzgün dalga formu + + WaveInterpolate + Dalga ekleme - - - Normalize waveform - Dalga formunu normalleştir + + ExpressionValid + İfade Geçerli - - - VoiceObject - - Voice %1 pulse width - Ses %1 darbe genişliği + + General purpose 1: + Genel amaç 1: - - Voice %1 attack - Ses %1 saldırısı + + General purpose 2: + Genel amaç 2: - - Voice %1 decay - Ses %1 zayıflaması + + General purpose 3: + Genel amaçlı 3: - - Voice %1 sustain - Ses %1 sürdür + + O1 panning: + O1 kaydırma: - - Voice %1 release - Ses %1 sürümü + + O2 panning: + O2 kaydırma: - - Voice %1 coarse detuning - Ses %1 kaba ince ayar + + Release transition: + Sürüm geçişi: - - Voice %1 wave shape - Ses %1 dalga şekli + + Smoothness + Pürüssüzlük + + + lmms::gui::ZynAddSubFxView - - Voice %1 sync - Ses %1 senkronizasyonu + + Portamento: + Kaydırma: - - Voice %1 ring modulate - Ses %1 zil sesi modülasyonu + + PORT + KAYDIRMA - - Voice %1 filtered - Ses %1 filtrelendi + + Filter frequency: + Frekans filtresi: - - Voice %1 test - Ses %1 testi + + FREQ + FREK - - - WaveShaperControlDialog - - INPUT - GİRDİ + + Filter resonance: + Rezonans filtresi: - - Input gain: - Giriş kazancı: + + RES + RF - - OUTPUT - ÇIKTI + + Bandwidth: + Bant genişliği: - - Output gain: - Çıkış kazancı: + + BW + BG - - - Reset wavegraph - Dalga grafiğini sıfırla + + FM gain: + FM kazancı: - - - Smooth wavegraph - Pürüzsüz dalga grafiği + + FM GAIN + FM KAZANÇ - - - Increase wavegraph amplitude by 1 dB - Dalga grafiğinin genliğini 1 dB artırın + + Resonance center frequency: + Rezonans merkez frekansı: - - - Decrease wavegraph amplitude by 1 dB - Dalga grafiğinin genliğini 1 dB azaltın + + RES CF + Rez MF - - Clip input - Klip girişi + + Resonance bandwidth: + Rezonans bant genişliği: - - Clip input signal to 0 dB - Giriş sinyalini 0 dB'ye klipsleyin + + RES BW + REZ BG - - - WaveShaperControls - - Input gain - Giriş kazancı + + Forward MIDI control changes + MIDI kontrol değişikliklerini ilet - - Output gain - Çıkış kazancı + + Show GUI + Görselli Arayüzü Göster - + \ No newline at end of file diff --git a/data/locale/uk.ts b/data/locale/uk.ts index 9fb6389c956..015980135d8 100644 --- a/data/locale/uk.ts +++ b/data/locale/uk.ts @@ -1,4 +1,4 @@ - + AboutDialog @@ -69,954 +69,187 @@ If you're interested in translating LMMS in another language or want to imp - AmplifierControlDialog + AboutJuceDialog - - VOL - ГУЧН - - - - Volume: - Гучність: - - - - PAN - БАЛ - - - - Panning: - Баланс: - - - - LEFT - ЛІВЕ - - - - Left gain: - Ліве підсилення: - - - - RIGHT - ПРАВЕ - - - - Right gain: - Праве підсилення: - - - - AmplifierControls - - - Volume - Гучність - - - - Panning - Баланс - - - - Left gain - Ліве підсилення - - - - Right gain - Праве підсилення - - - - AudioAlsaSetupWidget - - - DEVICE - ПРИСТРІЙ - - - - CHANNELS - КАНАЛИ - - - - AudioFileProcessorView - - - Open sample + + About JUCE - - Reverse sample - Реверс запису - - - - Disable loop - Відключити повторення - - - - Enable loop - Включити повторення - - - - Enable ping-pong loop - Увімкнути пінг-понг повторення - - - - Continue sample playback across notes - Продовжити відтворення запису по нотах - - - - Amplify: - Підсилення: + + <b>About JUCE</b> + - - Start point: + + This program uses JUCE version 3.x.x. - - End point: + + JUCE is an open-source cross-platform C++ application framework for creating high quality desktop and mobile applications. + +The core JUCE modules (juce_audio_basics, juce_audio_devices, juce_core and juce_events) are permissively licensed under the terms of the ISC license. +Other modules are covered by a GNU GPL 3.0 license. + +Copyright (C) 2022 Raw Material Software Limited. - - Loopback point: - Точка повернення з повтору: + + This program uses JUCE version + - AudioFileProcessorWaveView + AudioDeviceSetupWidget - - Sample length: - Довжина запису: + + [System Default] + - AudioJack - - - JACK client restarted - JACK-клієнт перезапущений - - - - LMMS was kicked by JACK for some reason. Therefore the JACK backend of LMMS has been restarted. You will have to make manual connections again. - LMMS не був підключений до JACK з якоїсь причини, тому LMMS підключення до JACK було перезапущено. Вам доведеться заново вручну створити з'єднання. - + CarlaAboutW - - JACK server down - JACK-сервер не доступний + + About Carla + - - The JACK server seems to have been shutdown and starting a new instance failed. Therefore LMMS is unable to proceed. You should save your project and restart JACK and LMMS. - Можливо JACK-сервер був вимкнений і запуск нового процесу не вдався, тому LMMS не може продовжити роботу. Вам слід зберегти проект і перезапустити JACK і LMMS. + + About + Про програму - - Client name + + About text here - - Channels + + Extended licensing here - - - AudioOss - - Device + + Artwork - - Channels + + Using KDE Oxygen icon set, designed by Oxygen Team. - - - AudioPortAudio::setupWidget - - Backend + + Contains some knobs, backgrounds and other small artwork from Calf Studio Gear, OpenAV and OpenOctave projects. - - Device + + VST is a trademark of Steinberg Media Technologies GmbH. - - - AudioPulseAudio - - Device + + Special thanks to António Saraiva for a few extra icons and artwork! - - Channels + + The LV2 logo has been designed by Thorsten Wilms, based on a concept from Peter Shorthose. - - - AudioSdl::setupWidget - - Device + + MIDI Keyboard designed by Thorsten Wilms. - - - AudioSndio - - Device + + Carla, Carla-Control and Patchbay icons designed by DoosC. - - Channels + + Features - - - AudioSoundIo::setupWidget - - Backend + + AU/AudioUnit: - - Device + + LADSPA: - - - AutomatableModel - - - &Reset (%1%2) - &R Скинути (%1%2) - - - - &Copy value (%1%2) - &C Копіювати значення (%1%2) - - - &Paste value (%1%2) - &P Вставити значення (%1%2) - - - - &Paste value + + + + + + + + + TextLabel - - Edit song-global automation - Змінити глоабльную автоматизацію композиції - - - - Remove song-global automation - Прибрати глобальну автоматизацію композиції - - - - Remove all linked controls - Прибрати все приєднане управління - - - - Connected to %1 - Приєднано до %1 - - - - Connected to controller - Приєднано до контролера - - - - Edit connection... - Налаштувати з'єднання... - - - - Remove connection - Видалити з'єднання - - - - Connect to controller... - З'єднати з контролером ... - - - - AutomationEditor - - - Edit Value + + VST2: - - New outValue + + DSSI: - - New inValue + + LV2: - - Please open an automation clip with the context menu of a control! - Відкрийте редатор автоматизації через контекстне меню регулятора! - - - - AutomationEditorWindow - - - Play/pause current clip (Space) - Гра/Пауза поточної мелодії (Пробіл) - - - - Stop playing of current clip (Space) - Зупинити програвання поточної мелодії (Пробіл) - - - - Edit actions - Зміна - - - - Draw mode (Shift+D) - Режим малювання (Shift + D) - - - - Erase mode (Shift+E) - Режим стирання (Shift+E) - - - - Draw outValues mode (Shift+C) + + VST3: - - Flip vertically - Перевернути вертикально - - - - Flip horizontally - Перевернути горизонтально - - - - Interpolation controls - Управління інтерполяцією - - - - Discrete progression - Дискретна прогресія - - - - Linear progression - Лінійна прогресія - - - - Cubic Hermite progression - Кубічна Ермітова прогресія - - - - Tension value for spline - Величина напруженості для сплайна - - - - Tension: - Напруженість: - - - - Zoom controls - Управління масштабом - - - - Horizontal zooming + + OSC - - Vertical zooming + + Host URLs: - - Quantization controls - Управління квантуванням - - - - Quantization - Квантування - - - - - Automation Editor - no clip - Редактор автоматизації - немає шаблону + + Valid commands: + - - - Automation Editor - %1 - Редактор автоматизації - %1 + + valid osc commands here + - - Model is already connected to this clip. - Модель вже підключена до цього шаблону. + + Example: + - - - AutomationClip - - Drag a control while pressing <%1> - Тягніть контроль утримуючи <%1> + + License + Ліцензія - - - AutomationClipView - - Open in Automation editor - Відкрити в редакторі автоматизації - - - - Clear - Очистити - - - - Reset name - Скинути назву - - - - Change name - Перейменувати - - - - Set/clear record - Встановити/очистити запис - - - - Flip Vertically (Visible) - Перевернути вертикально (Видиме) - - - - Flip Horizontally (Visible) - Перевернути горизонтально (Видиме) - - - - %1 Connections - З'єднання %1 - - - - Disconnect "%1" - Від'єднати «%1» - - - - Model is already connected to this clip. - Модель вже підключена до цього шаблону. - - - - AutomationTrack - - - Automation track - Доріжка автоматизації - - - - PatternEditor - - - Beat+Bassline Editor - Ритм Бас Редактор - - - - Play/pause current beat/bassline (Space) - Грати/пауза поточної лінії ритму/басу (Пробіл) - - - - Stop playback of current beat/bassline (Space) - Зупинити відтворення поточної лінії ритм-басу (Пробіл) - - - - Beat selector - Вибір ударних - - - - Track and step actions - Дії для доріжки чи її частини - - - - Add beat/bassline - Додати ритм/бас - - - - Clone beat/bassline clip - - - - - Add sample-track - Додати доріжку запису - - - - Add automation-track - Додати доріжку автоматизації - - - - Remove steps - Видалити такти - - - - Add steps - Додати такти - - - - Clone Steps - Клонувати такти - - - - PatternClipView - - - Open in Beat+Bassline-Editor - Відкрити в редакторі ритму і басу - - - - Reset name - Скинути назву - - - - Change name - Перейменувати - - - - PatternTrack - - - Beat/Bassline %1 - Ритм/Бас лінія %1 - - - - Clone of %1 - Копія %1 - - - - BassBoosterControlDialog - - - FREQ - ЧАСТ - - - - Frequency: - Частота: - - - - GAIN - ПІДС - - - - Gain: - Підсилення: - - - - RATIO - ВІДН - - - - Ratio: - Відношення: - - - - BassBoosterControls - - - Frequency - Частота - - - - Gain - Підсилення - - - - Ratio - Відношення - - - - BitcrushControlDialog - - - IN - ВХД - - - - OUT - ВИХ - - - - - GAIN - ПІДС - - - - Input gain: - Вхідне підсилення: - - - - NOISE - ШУМ - - - - Input noise: - - - - - Output gain: - Вихідне підсилення: - - - - CLIP - ЗРІЗ - - - - Output clip: - - - - - Rate enabled - - - - - Enable sample-rate crushing - - - - - Depth enabled - - - - - Enable bit-depth crushing - - - - - FREQ - ЧАСТ - - - - Sample rate: - Частота дискретизації: - - - - STEREO - СТЕРЕО - - - - Stereo difference: - Стерео різниця: - - - - QUANT - КВАНТ - - - - Levels: - Рівні: - - - - BitcrushControls - - - Input gain - Вхідне підсилення - - - - Input noise - - - - - Output gain - Вихідне підсилення - - - - Output clip - - - - - Sample rate - - - - - Stereo difference - - - - - Levels - Рівні - - - - Rate enabled - - - - - Depth enabled - - - - - CarlaAboutW - - - About Carla - - - - - About - Про програму - - - - About text here - - - - - Extended licensing here - - - - - Artwork - - - - - Using KDE Oxygen icon set, designed by Oxygen Team. - - - - - Contains some knobs, backgrounds and other small artwork from Calf Studio Gear, OpenAV and OpenOctave projects. - - - - - VST is a trademark of Steinberg Media Technologies GmbH. - - - - - Special thanks to António Saraiva for a few extra icons and artwork! - - - - - The LV2 logo has been designed by Thorsten Wilms, based on a concept from Peter Shorthose. - - - - - MIDI Keyboard designed by Thorsten Wilms. - - - - - Carla, Carla-Control and Patchbay icons designed by DoosC. - - - - - Features - - - - - AU/AudioUnit: - - - - - LADSPA: - - - - - - - - - - - - TextLabel - - - - - VST2: - - - - - DSSI: - - - - - LV2: - - - - - VST3: - - - - - OSC - - - - - Host URLs: - - - - - Valid commands: - - - - - valid osc commands here - - - - - Example: - - - - - License - Ліцензія - - - + GNU GENERAL PUBLIC LICENSE Version 2, June 1991 @@ -1301,15035 +534,18221 @@ POSSIBILITY OF SUCH DAMAGES. - - OSC Bridge Version + + OSC Bridge Version + + + + + Plugin Version + + + + + <br>Version %1<br>Carla is a fully-featured audio plugin host%2.<br><br>Copyright (C) 2011-2019 falkTX<br> + + + + + + (Engine not running) + + + + + Everything! (Including LRDF) + + + + + Everything! (Including CustomData/Chunks) + + + + + About 110&#37; complete (using custom extensions)<br/>Implemented Feature/Extensions:<ul><li>http://lv2plug.in/ns/ext/atom</li><li>http://lv2plug.in/ns/ext/buf-size</li><li>http://lv2plug.in/ns/ext/data-access</li><li>http://lv2plug.in/ns/ext/event</li><li>http://lv2plug.in/ns/ext/instance-access</li><li>http://lv2plug.in/ns/ext/log</li><li>http://lv2plug.in/ns/ext/midi</li><li>http://lv2plug.in/ns/ext/options</li><li>http://lv2plug.in/ns/ext/parameters</li><li>http://lv2plug.in/ns/ext/port-props</li><li>http://lv2plug.in/ns/ext/presets</li><li>http://lv2plug.in/ns/ext/resize-port</li><li>http://lv2plug.in/ns/ext/state</li><li>http://lv2plug.in/ns/ext/time</li><li>http://lv2plug.in/ns/ext/uri-map</li><li>http://lv2plug.in/ns/ext/urid</li><li>http://lv2plug.in/ns/ext/worker</li><li>http://lv2plug.in/ns/extensions/ui</li><li>http://lv2plug.in/ns/extensions/units</li><li>http://home.gna.org/lv2dynparam/rtmempool/v1</li><li>http://kxstudio.sf.net/ns/lv2ext/external-ui</li><li>http://kxstudio.sf.net/ns/lv2ext/programs</li><li>http://kxstudio.sf.net/ns/lv2ext/props</li><li>http://kxstudio.sf.net/ns/lv2ext/rtmempool</li><li>http://ll-plugins.nongnu.org/lv2/ext/midimap</li><li>http://ll-plugins.nongnu.org/lv2/ext/miditype</li></ul> + + + + + + + Using Juce host + + + + + About 85% complete (missing vst bank/presets and some minor stuff) + + + + + CarlaHostW + + + MainWindow + + + + + Rack + + + + + Patchbay + + + + + Logs + + + + + Loading... + + + + + Save + + + + + Clear + + + + + Ctrl+L + + + + + Auto-Scroll + + + + + Buffer Size: + + + + + Sample Rate: + + + + + ? Xruns + + + + + DSP Load: %p% + + + + + &File + &Файл + + + + &Engine + + + + + &Plugin + + + + + Macros (all plugins) + + + + + &Canvas + + + + + Zoom + + + + + &Settings + + + + + &Help + &H Довідка + + + + Tool Bar + + + + + Disk + + + + + + Home + + + + + Transport + + + + + Playback Controls + + + + + Time Information + + + + + Frame: + + + + + 000'000'000 + + + + + Time: + Час: + + + + 00:00:00 + + + + + BBT: + + + + + 000|00|0000 + + + + + Settings + Параметри + + + + BPM + + + + + Use JACK Transport + + + + + Use Ableton Link + + + + + &New + &N Новий + + + + Ctrl+N + + + + + &Open... + &O Відкрити... + + + + + Open... + + + + + Ctrl+O + + + + + &Save + &S Зберегти + + + + Ctrl+S + + + + + Save &As... + &A Зберегти як... + + + + + Save As... + + + + + Ctrl+Shift+S + + + + + &Quit + &Q Вийти + + + + Ctrl+Q + + + + + &Start + + + + + F5 + + + + + St&op + + + + + F6 + + + + + &Add Plugin... + + + + + Ctrl+A + + + + + &Remove All + + + + + Enable + + + + + Disable + + + + + 0% Wet (Bypass) + + + + + 100% Wet + + + + + 0% Volume (Mute) + + + + + 100% Volume + + + + + Center Balance + + + + + &Play + + + + + Ctrl+Shift+P + + + + + &Stop + + + + + Ctrl+Shift+X + + + + + &Backwards + + + + + Ctrl+Shift+B + + + + + &Forwards + + + + + Ctrl+Shift+F + + + + + &Arrange + + + + + Ctrl+G + + + + + + &Refresh + + + + + Ctrl+R + + + + + Save &Image... + + + + + Auto-Fit + + + + + Zoom In + + + + + Ctrl++ + + + + + Zoom Out + + + + + Ctrl+- + + + + + Zoom 100% + + + + + Ctrl+1 + + + + + Show &Toolbar + + + + + &Configure Carla + + + + + &About + + + + + About &JUCE + + + + + About &Qt + + + + + Show Canvas &Meters + + + + + Show Canvas &Keyboard + + + + + Show Internal + + + + + Show External + + + + + Show Time Panel + + + + + Show &Side Panel + + + + + Ctrl+P + + + + + &Connect... + + + + + Compact Slots + + + + + Expand Slots + + + + + Perform secret 1 + + + + + Perform secret 2 + + + + + Perform secret 3 + + + + + Perform secret 4 + + + + + Perform secret 5 + + + + + Add &JACK Application... + + + + + &Configure driver... + + + + + Panic + + + + + Open custom driver panel... + + + + + Save Image... (2x zoom) + + + + + Save Image... (4x zoom) + + + + + Copy as Image to Clipboard + + + + + Ctrl+Shift+C + + + + + CarlaHostWindow + + + Export as... + + + + + + + + Error + Помилка + + + + Failed to load project + + + + + Failed to save project + + + + + Quit + Вихід + + + + Are you sure you want to quit Carla? + + + + + Could not connect to Audio backend '%1', possible reasons: +%2 + + + + + Could not connect to Audio backend '%1' + + + + + Warning + + + + + There are still some plugins loaded, you need to remove them to stop the engine. +Do you want to do this now? + + + + + CarlaSettingsW + + + Settings + Параметри + + + + main + + + + + canvas + + + + + engine + + + + + osc + + + + + file-paths + + + + + plugin-paths + + + + + wine + + + + + experimental + + + + + Widget + + + + + + Main + + + + + + Canvas + + + + + + Engine + + + + + File Paths + + + + + Plugin Paths + + + + + Wine + + + + + + Experimental + + + + + <b>Main</b> + + + + + Paths + Шляхи + + + + Default project folder: + + + + + Interface + + + + + Use "Classic" as default rack skin + + + + + Interface refresh interval: + + + + + + ms + + + + + Show console output in Logs tab (needs engine restart) + + + + + Show a confirmation dialog before quitting + + + + + + Theme + + + + + Use Carla "PRO" theme (needs restart) + + + + + Color scheme: + + + + + Black + + + + + System + + + + + Enable experimental features + + + + + <b>Canvas</b> + + + + + Bezier Lines + + + + + Theme: + + + + + Size: + Розмір: + + + + 775x600 + + + + + 1550x1200 + + + + + 3100x2400 + + + + + 4650x3600 + + + + + 6200x4800 + + + + + 12400x9600 + + + + + Options + + + + + Auto-hide groups with no ports + + + + + Auto-select items on hover + + + + + Basic eye-candy (group shadows) + + + + + Render Hints + + + + + Anti-Aliasing + + + + + Full canvas repaints (slower, but prevents drawing issues) + + + + + <b>Engine</b> + + + + + + Core + + + + + Single Client + + + + + Multiple Clients + + + + + + Continuous Rack + + + + + + Patchbay + + + + + Audio driver: + + + + + Process mode: + + + + + + + + Maximum number of parameters to allow in the built-in 'Edit' dialog + + + + + Max Parameters: + + + + + ... + + + + + Reset Xrun counter after project load + + + + + Plugin UIs + + + + + + How much time to wait for OSC GUIs to ping back the host + + + + + UI Bridge Timeout: + + + + + Use OSC-GUI bridges when possible, this way separating the UI from DSP code + + + + + Use UI bridges instead of direct handling when possible + + + + + Make plugin UIs always-on-top + + + + + Make plugin UIs appear on top of Carla (needs restart) + + + + + NOTE: Plugin-bridge UIs cannot be managed by Carla on macOS + + + + + + Restart the engine to load the new settings + + + + + <b>OSC</b> + + + + + Enable OSC + + + + + Enable TCP port + + + + + + Use specific port: + + + + + Overridden by CARLA_OSC_TCP_PORT env var + + + + + + Use randomly assigned port + + + + + Enable UDP port + + + + + Overridden by CARLA_OSC_UDP_PORT env var + + + + + DSSI UIs require OSC UDP port enabled + + + + + <b>File Paths</b> + + + + + Audio + Аудіо + + + + MIDI + MIDI + + + + Used for the "audiofile" plugin + + + + + Used for the "midifile" plugin + + + + + + Add... + + + + + + Remove + + + + + + Change... + + + + + <b>Plugin Paths</b> + + + + + LADSPA + + + + + DSSI + + + + + LV2 + + + + + VST2 + + + + + VST3 + + + + + SF2/3 + + + + + SFZ + + + + + JSFX + + + + + CLAP + + + + + Restart Carla to find new plugins + + + + + <b>Wine</b> + + + + + Executable + + + + + Path to 'wine' binary: + + + + + Prefix + + + + + Auto-detect Wine prefix based on plugin filename + + + + + Fallback: + + + + + Note: WINEPREFIX env var is preferred over this fallback + + + + + Realtime Priority + + + + + Base priority: + + + + + WineServer priority: + + + + + These options are not available for Carla as plugin + + + + + <b>Experimental</b> + + + + + Experimental options! Likely to be unstable! + + + + + Enable plugin bridges + + + + + Enable Wine bridges + + + + + Enable jack applications + + + + + Export single plugins to LV2 + + + + + Use system/desktop-theme icons (needs restart) + + + + + Load Carla backend in global namespace (NOT RECOMMENDED) + + + + + Fancy eye-candy (fade-in/out groups, glow connections) + + + + + Use OpenGL for rendering (needs restart) + + + + + High Quality Anti-Aliasing (OpenGL only) + + + + + Render Ardour-style "Inline Displays" + + + + + Force mono plugins as stereo by running 2 instances at the same time. +This mode is not available for VST plugins. + + + + + Force mono plugins as stereo + + + + + When enabled, Carla will try to prevent plugins from doing things that might mess up the audio or cause xruns, such as fork(), gtk_init() and similar. + + + + + Prevent unsafe calls from plugins (needs restart) + + + + + Run plugins in a separate process, so if they crash it does not affect Carla. +Plugins get automatically deactivated in such cases. +Reactvate them to start the process again, with the last saved state applied to it. + + + + + Run plugins in bridge mode when possible + + + + + + + + Add Path + + + + + Dialog + + + Carla Control - Connect + + + + + Remote setup + + + + + UDP Port: + + + + + Remote host: + + + + + TCP Port: + + + + + Set value + + + + + TextLabel + + + + + Scale Points + + + + + DriverSettingsW + + + Driver Settings + + + + + Device: + + + + + Buffer size: + + + + + Sample rate: + Частота дискретизації: + + + + Triple buffer + + + + + Show Driver Control Panel + + + + + Restart the engine to load the new settings + + + + + ExportProjectDialog + + + Export project + Експорт проекту + + + + Export as loop (remove extra bar) + + + + + Export between loop markers + Експорт між маркерами циклу + + + + Render Looped Section: + + + + + time(s) + + + + + File format settings + + + + + File format: + Формат файла: + + + + Sampling rate: + + + + + 44100 Hz + 44.1 КГц + + + + 48000 Hz + 48 КГц + + + + 88200 Hz + 88.2 КГц + + + + 96000 Hz + 96 КГц + + + + 192000 Hz + 192 КГц + + + + Bit depth: + + + + + 16 Bit integer + + + + + 24 Bit integer + + + + + 32 Bit float + + + + + Stereo mode: + Стерео режим: + + + + Mono + Моно + + + + Stereo + Стерео + + + + Joint stereo + + + + + Compression level: + + + + + Bitrate: + Бітрейт: + + + + 64 KBit/s + 64 КБіт/с + + + + 128 KBit/s + 128 КБіт/с + + + + 160 KBit/s + 160 КБіт/с + + + + 192 KBit/s + 192 КБіт/с + + + + 256 KBit/s + 256 КБіт/с + + + + 320 KBit/s + 320 КБіт/с + + + + Use variable bitrate + Використовувати змінний бітрейт + + + + Quality settings + Налаштування якості + + + + Interpolation: + Інтерполяція: + + + + Zero order hold + + + + + Sinc worst (fastest) + + + + + Sinc medium (recommended) + + + + + Sinc best (slowest) + + + + + Start + Почати + + + + Cancel + Відміна + + + + InstrumentFunctionNoteStacking + + + octave + Октава + + + + + Major + Мажорний + + + + Majb5 + Majb5 + + + + minor + мінорний + + + + minb5 + minb5 + + + + sus2 + sus2 + + + + sus4 + sus4 + + + + aug + aug + + + + augsus4 + augsus4 + + + + tri + tri + + + + 6 + 6 + + + + 6sus4 + 6sus4 + + + + 6add9 + 6add9 + + + + m6 + m6 + + + + m6add9 + m6add9 + + + + 7 + 7 + + + + 7sus4 + 7sus4 + + + + 7#5 + 7#5 + + + + 7b5 + 7b5 + + + + 7#9 + 7#9 + + + + 7b9 + 7b9 + + + + 7#5#9 + 7#5#9 + + + + 7#5b9 + 7#5b9 + + + + 7b5b9 + 7b5b9 + + + + 7add11 + 7add11 + + + + 7add13 + 7add13 + + + + 7#11 + 7#11 + + + + Maj7 + Maj7 + + + + Maj7b5 + Maj7b5 + + + + Maj7#5 + Maj7#5 + + + + Maj7#11 + Maj7#11 + + + + Maj7add13 + Maj7add13 + + + + m7 + m7 + + + + m7b5 + m7b5 + + + + m7b9 + m7b9 + + + + m7add11 + m7add11 + + + + m7add13 + m7add13 + + + + m-Maj7 + m-Maj7 + + + + m-Maj7add11 + m-Maj7add11 + + + + m-Maj7add13 + m-Maj7add13 + + + + 9 + 9 + + + + 9sus4 + 9sus4 + + + + add9 + add9 + + + + 9#5 + 9#5 + + + + 9b5 + 9b5 + + + + 9#11 + 9#11 + + + + 9b13 + 9b13 + + + + Maj9 + Maj9 + + + + Maj9sus4 + Maj9sus4 + + + + Maj9#5 + Maj9#5 + + + + Maj9#11 + Maj9#11 + + + + m9 + m9 + + + + madd9 + madd9 + + + + m9b5 + m9b5 + + + + m9-Maj7 + m9-Maj7 + + + + 11 + 11 + + + + 11b9 + 11b9 + + + + Maj11 + Maj11 + + + + m11 + m11 + + + + m-Maj11 + m-Maj11 + + + + 13 + 13 + + + + 13#9 + 13#9 + + + + 13b9 + 13b9 + + + + 13b5b9 + 13b5b9 + + + + Maj13 + Maj13 + + + + m13 + m13 + + + + m-Maj13 + m-Maj13 + + + + Harmonic minor + Гармонійний мінор + + + + Melodic minor + Мелодійний мінор + + + + Whole tone + Цілий тон + + + + Diminished + Понижений + + + + Major pentatonic + Пентатонік major + + + + Minor pentatonic + Пентатонік major + + + + Jap in sen + Япон in sen + + + + Major bebop + Major Бібоп + + + + Dominant bebop + Домінтний бібоп + + + + Blues + Блюз + + + + Arabic + Арабська + + + + Enigmatic + Загадкова + + + + Neopolitan + Неаполітанська + + + + Neopolitan minor + Неаполітанський мінор + + + + Hungarian minor + Угорський мінор + + + + Dorian + Дорійська + + + + Phrygian + Фрігійський + + + + Lydian + Лідійська + + + + Mixolydian + Міксолідійська + + + + Aeolian + Еолійська + + + + Locrian + Локріанська + + + + Minor + Мінор + + + + Chromatic + Хроматична + + + + Half-Whole Diminished + Напів-зниження + + + + 5 + 5 + + + + Phrygian dominant + Фрігійська домінанта + + + + Persian + Перська + + + + InstrumentSoundShaping + + + VOLUME + VOLUME + + + + Volume + Гучність + + + + CUTOFF + CUTOFF + + + + Cutoff frequency + Зріз частоти + + + + RESO + RESO + + + + Resonance + Резонанс + + + + JackAppDialog + + + Add JACK Application + + + + + Note: Features not implemented yet are greyed out + + + + + Application + + + + + Name: + + + + + Application: + + + + + From template + + + + + Custom + + + + + Template: + + + + + Command: + + + + + Setup + + + + + Session Manager: + + + + + None + + + + + Audio inputs: + + + + + MIDI inputs: + + + + + Audio outputs: + + + + + MIDI outputs: + + + + + Take control of main application window + + + + + Workarounds + + + + + Wait for external application start (Advanced, for Debug only) + + + + + Capture only the first X11 Window + + + + + Use previous client output buffer as input for the next client + + + + + Simulate 16 JACK MIDI outputs, with MIDI channel as port index + + + + + Error here + + + + + NSM applications cannot use abstract or absolute paths + + + + + NSM applications cannot use CLI arguments + + + + + You need to save the current Carla project before NSM can be used + + + + + JuceAboutW + + + This program uses JUCE version %1. + + + + + MidiPatternW + + + MIDI Pattern + + + + + Time Signature: + + + + + + + 1/4 + + + + + 2/4 + + + + + 3/4 + + + + + 4/4 + + + + + 5/4 + + + + + 6/4 + + + + + Measures: + + + + + + + 1 + + + + + 2 + + + + + 3 + + + + + 4 + + + + + 5 + 5 + + + + 6 + 6 + + + + 7 + 7 + + + + 8 + + + + + 9 + 9 + + + + 10 + + + + + 11 + 11 + + + + 12 + + + + + 13 + 13 + + + + 14 + + + + + 15 + + + + + 16 + + + + + Default Length: + + + + + + 1/16 + + + + + + 1/15 + + + + + + 1/12 + + + + + + 1/9 + + + + + + 1/8 + + + + + + 1/6 + + + + + + 1/3 + + + + + + 1/2 + + + + + Quantize: + + + + + &File + &Файл + + + + &Edit + &E Редагування + + + + &Quit + &Q Вийти + + + + Esc + + + + + &Insert Mode + + + + + F + + + + + &Velocity Mode + + + + + D + + + + + Select All + + + + + A + + + + + PatchesDialog + + + + Qsynth: Channel Preset + Q-Синтезатор: Канал передустановлено + + + + + Bank selector + Селектор банку + + + + + Bank + Банк + + + + + Program selector + Селектор програм + + + + + Patch + Патч + + + + + Name + І'мя + + + + + OK + ОК + + + + + Cancel + Скасувати + + + + PluginBrowser + + + no description + опис відсутній + + + + A native amplifier plugin + Рідний плагін підсилення + + + + Simple sampler with various settings for using samples (e.g. drums) in an instrument-track + Простий семплер з різними налаштуваннями для використання записів (наприклад, ударні) в інструментальному трекі + + + + Boost your bass the fast and simple way + Накачай свій бас швидко і просто + + + + Customizable wavetable synthesizer + Налаштовуваний синтезатор звукозаписів (wavetable) + + + + An oversampling bitcrusher + Перевибірка малого дробдення + + + + Carla Patchbay Instrument + Carla Комутаційний інструмент + + + + Carla Rack Instrument + Carla підставочний інструмент + + + + A dynamic range compressor. + + + + + A 4-band Crossover Equalizer + 4-смуговий еквалайзер Кросовер + + + + A native delay plugin + Рідний плагін затримки + + + + A Dual filter plugin + Плагін подвійного фільтру + + + + plugin for processing dynamics in a flexible way + плагін для обробки динаміки гнучким методом + + + + A native eq plugin + Рідний eq плагін + + + + A native flanger plugin + Рідний фланжер плагін + + + + Emulation of GameBoy (TM) APU + Емуляція GameBoy (ТМ) + + + + Player for GIG files + Програвач GIG файлів + + + + Filter for importing Hydrogen files into LMMS + Фільтр для імпорту Hydrogen файлів в LMMS + + + + Versatile drum synthesizer + Універсальний барабанний синтезатор + + + + List installed LADSPA plugins + Показати встановлені модулі LADSPA + + + + plugin for using arbitrary LADSPA-effects inside LMMS. + Модуль, що дозволяє використовувати в LMMS будь які ефекти LADSPA. + + + + Incomplete monophonic imitation TB-303 + + + + + plugin for using arbitrary LV2-effects inside LMMS. + + + + + plugin for using arbitrary LV2 instruments inside LMMS. + + + + + Filter for exporting MIDI-files from LMMS + Фільтри для експорту MIDI-файлів з LMMS + + + + Filter for importing MIDI-files into LMMS + Фільтр для включення файлу MIDI в проект ЛММС + + + + Monstrous 3-oscillator synth with modulation matrix + Монстро 3-осцилляторний синт з матрицею модуляції + + + + A multitap echo delay plugin + Плагін багаторазової послідовної затримки відлуння + + + + A NES-like synthesizer + NES-подібний синтезатор + + + + 2-operator FM Synth + 2-режимний синт модуляції частот (FM synth) + + + + Additive Synthesizer for organ-like sounds + Синтезатор звуків нашталт органу + + + + GUS-compatible patch instrument + Патч-інструмент, сумісний з GUS + + + + Plugin for controlling knobs with sound peaks + Модуль для встановлення значень регуляторів на піках гучності + + + + Reverb algorithm by Sean Costello + Алгоритм реверберації Шона Костелло + + + + Player for SoundFont files + Програвач файлів SoundFont + + + + LMMS port of sfxr + LMMS порт SFXR + + + + Emulation of the MOS6581 and MOS8580 SID. +This chip was used in the Commodore 64 computer. + Емуляція MOS6581 і MOS8580. +Використовувалося на комп'ютері Commodore 64. + + + + A graphical spectrum analyzer. + + + + + Plugin for enhancing stereo separation of a stereo input file + Модуль, що підсилює різницю між каналами стереозапису + + + + Plugin for freely manipulating stereo output + Модуль для довільного управління стереовиходом + + + + Tuneful things to bang on + Мелодійні ударні + + + + Three powerful oscillators you can modulate in several ways + Три потужних генераторів можна модулювати декількома способами + + + + A stereo field visualizer. + + + + + VST-host for using VST(i)-plugins within LMMS + VST - хост для підтримки модулів VST(i) в LMMS + + + + Vibrating string modeler + Емуляція вібруючих струн + + + + plugin for using arbitrary VST effects inside LMMS. + плагін для використання довільних VST ефектів всередині LMMS. + + + + 4-oscillator modulatable wavetable synth + 4-генераторний модулюючий синтезатор звукозаписів + + + + plugin for waveshaping + плагін формування сигналу + + + + Mathematical expression parser + + + + + Embedded ZynAddSubFX + Вбудований ZynAddSubFX + + + + An all-pass filter allowing for extremely high orders. + + + + + Granular pitch shifter + + + + + Upwards/downwards multiband compression plugin powered by the eldritch elder god LOMMUS. + + + + + Basic Slicer + + + + + Tap to the beat + + + + + PluginEdit + + + Plugin Editor + + + + + Edit + + + + + Control + Управління + + + + MIDI Control Channel: + + + + + N + + + + + Output dry/wet (100%) + + + + + Output volume (100%) + + + + + Balance Left (0%) + + + + + + Balance Right (0%) + + + + + Use Balance + + + + + Use Panning + + + + + Settings + Параметри + + + + Use Chunks + + + + + Audio: + + + + + Fixed-Size Buffer + + + + + Force Stereo (needs reload) + + + + + MIDI: + + + + + Map Program Changes + + + + + Send Notes + + + + + Send Bank/Program Changes + + + + + Send Control Changes + + + + + Send Channel Pressure + + + + + Send Note Aftertouch + + + + + Send Pitchbend + + + + + Send All Sound/Notes Off + + + + + +Plugin Name + + + + + + Program: + + + + + MIDI Program: + + + + + Save State + + + + + Load State + + + + + Information + + + + + Label/URI: + + + + + Name: + + + + + Type: + Тип: + + + + Maker: + + + + + Copyright: + + + + + Unique ID: + + + + + PluginFactory + + + Plugin not found. + Модуль не знайдено. + + + + LMMS plugin %1 does not have a plugin descriptor named %2! + LMMS плагін %1 не має опису плагіна з ім'ям %2! + + + + PluginListDialog + + + Carla - Add New - - Plugin Version + + Requirements - - <br>Version %1<br>Carla is a fully-featured audio plugin host%2.<br><br>Copyright (C) 2011-2019 falkTX<br> + + With Custom GUI - - - (Engine not running) + + With CV Ports - - Everything! (Including LRDF) + + Real-time safe only - - Everything! (Including CustomData/Chunks) + + Stereo only - - About 110&#37; complete (using custom extensions)<br/>Implemented Feature/Extensions:<ul><li>http://lv2plug.in/ns/ext/atom</li><li>http://lv2plug.in/ns/ext/buf-size</li><li>http://lv2plug.in/ns/ext/data-access</li><li>http://lv2plug.in/ns/ext/event</li><li>http://lv2plug.in/ns/ext/instance-access</li><li>http://lv2plug.in/ns/ext/log</li><li>http://lv2plug.in/ns/ext/midi</li><li>http://lv2plug.in/ns/ext/options</li><li>http://lv2plug.in/ns/ext/parameters</li><li>http://lv2plug.in/ns/ext/port-props</li><li>http://lv2plug.in/ns/ext/presets</li><li>http://lv2plug.in/ns/ext/resize-port</li><li>http://lv2plug.in/ns/ext/state</li><li>http://lv2plug.in/ns/ext/time</li><li>http://lv2plug.in/ns/ext/uri-map</li><li>http://lv2plug.in/ns/ext/urid</li><li>http://lv2plug.in/ns/ext/worker</li><li>http://lv2plug.in/ns/extensions/ui</li><li>http://lv2plug.in/ns/extensions/units</li><li>http://home.gna.org/lv2dynparam/rtmempool/v1</li><li>http://kxstudio.sf.net/ns/lv2ext/external-ui</li><li>http://kxstudio.sf.net/ns/lv2ext/programs</li><li>http://kxstudio.sf.net/ns/lv2ext/props</li><li>http://kxstudio.sf.net/ns/lv2ext/rtmempool</li><li>http://ll-plugins.nongnu.org/lv2/ext/midimap</li><li>http://ll-plugins.nongnu.org/lv2/ext/miditype</li></ul> + + With Inline Display - - - - Using Juce host + + Favorites only - - About 85% complete (missing vst bank/presets and some minor stuff) + + (Number of Plugins go here) - - - CarlaHostW - - MainWindow + + &Add Plugin - - Rack + + Cancel - - Patchbay + + Refresh - - Logs + + Reset filters - - Loading... + + + + + + + + + + + + + + + + + TextLabel - - Buffer Size: + + Format: - - Sample Rate: + + Architecture: - - ? Xruns + + Type: - - DSP Load: %p% + + MIDI Ins: - - &File - &Файл + + Audio Ins: + - - &Engine + + CV Outs: - - &Plugin + + MIDI Outs: - - Macros (all plugins) + + Parameter Ins: + + + + + Parameter Outs: + + + + + Audio Outs: + + + + + CV Ins: + + + + + UniqueID: + + + + + Has Inline Display: + + + + + Has Custom GUI: + + + + + Is Synth: + + + + + Is Bridged: + + + + + Information + + + + + Name + + + + + Label/Id/URI + + + + + Maker + + + + + Binary/Filename + + + + + Format + + + + + Internal + + + + + LADSPA + + + + + DSSI + + + + + LV2 + + + + + VST2 + + + + + VST3 + + + + + CLAP + + + + + AU + + + + + JSFX + + + + + Sound Kits + + + + + Type + + + + + Effects + + + + + Instruments + + + + + MIDI Plugins + + + + + Other/Misc + + + + + Category + + + + + All + + + + + Delay + + + + + Distortion + + + + + Dynamics + + + + + EQ + + + + + Filter + + + + + Modulator + + + + + Synth + + + + + Utility + + + + + + Other + + + + + Architecture + + + + + + Native + + + + + Bridged + + + + + Bridged (Wine) + + + + + Focus Text Search + + + + + Ctrl+F + + + + + Bridged (32bit) + + + + + Discovering internal plugins... + + + + + Discovering LADSPA plugins... + + + + + Discovering DSSI plugins... + + + + + Discovering LV2 plugins... - - &Canvas + + Discovering VST2 plugins... - - Zoom + + Discovering VST3 plugins... - - &Settings + + Discovering CLAP plugins... - - &Help - &H Довідка + + Discovering AU plugins... + - - toolBar + + Discovering JSFX plugins... - - Disk + + Discovering SF2 kits... - - - Home + + Discovering SFZ kits... - - Transport + + Unknown - - Playback Controls + + + + + Yes - - Time Information + + + + + No + + + PluginParameter - - Frame: + + Form - - 000'000'000 + + Parameter Name - - Time: - Час: + + TextLabel + - - 00:00:00 + + ... + + + PluginRefreshDialog - - BBT: + + Plugin Refresh - - 000|00|0000 + + Search for: - - Settings - Параметри + + All plugins, ignoring cache + - - BPM + + Updated plugins only - - Use JACK Transport + + Check previously invalid plugins - - Use Ableton Link + + Press 'Scan' to begin the search - - &New - &N Новий + + Scan + - - Ctrl+N + + >> Skip - - &Open... - &O Відкрити... + + Close + + + + PluginWidget - - - Open... + + + + + + Frame - - Ctrl+O + + Enable - - &Save - &S Зберегти + + On/Off + Увімк/Вимк - - Ctrl+S + + + + + PluginName - - Save &As... - &A Зберегти як... + + MIDI + MIDI - - - Save As... + + AUDIO IN - - Ctrl+Shift+S + + AUDIO OUT - - &Quit - &Q Вийти - - - - Ctrl+Q + + GUI - - &Start + + Edit - - F5 + + Remove - - St&op + + Plugin Name - - F6 + + Preset: + + + ProjectRenderer - - &Add Plugin... + + WAV (*.wav) - - Ctrl+A + + FLAC (*.flac) - - &Remove All + + OGG (*.ogg) - - Enable + + MP3 (*.mp3) + + + QGroupBox - - Disable + + + Settings for %1 + + + QObject - - 0% Wet (Bypass) + + Reload Plugin - - 100% Wet - + + Show GUI + Показати інтерфейс - - 0% Volume (Mute) - + + Help + Довідка - - 100% Volume + + LADSPA plugins - - Center Balance + + The project contains %1 LADSPA plugin(s) which might have not been restored correctly! Please check the project. - - &Play + + URI: - - Ctrl+Shift+P + + Project: - - &Stop + + Maker: - - Ctrl+Shift+X + + Homepage: - - &Backwards + + License: - - Ctrl+Shift+B + + File: %1 - - &Forwards + + failed to load description - - Ctrl+Shift+F + + Open audio file - - &Arrange + + Error loading sample - - Ctrl+G + + %1 (unsupported) + + + QWidget - - - &Refresh - + + + Name: + І'мя: - - Ctrl+R - + + Maker: + Розробник: - - Save &Image... - + + Copyright: + Авторське право: - - Auto-Fit - + + Requires Real Time: + Потрібна обробка в реальному часі: - - Zoom In - + + + + Yes + Так - - Ctrl++ - + + + + No + Ні - - Zoom Out - + + Real Time Capable: + Робота в реальному часі: - - Ctrl+- - + + In Place Broken: + Замість зламаного: - - Zoom 100% - + + Channels In: + Канали в: - - Ctrl+1 - + + Channels Out: + Канали з: - - Show &Toolbar - + + File: %1 + Файл: %1 - - &Configure Carla - + + File: + Файл: + + + XYControllerW - - &About + + XY Controller - - About &JUCE + + X Controls: - - About &Qt + + Y Controls: - - Show Canvas &Meters + + Smooth - - Show Canvas &Keyboard + + &Settings - - Show Internal + + Channels - - Show External + + &File - - Show Time Panel + + Show MIDI &Keyboard - - Show &Side Panel + + (All) - - &Connect... + + 1 - - Compact Slots + + 2 - - Expand Slots + + 3 - - Perform secret 1 + + 4 - - Perform secret 2 + + 5 - - Perform secret 3 + + 6 - - Perform secret 4 + + 7 - - Perform secret 5 + + 8 - - Add &JACK Application... + + 9 - - &Configure driver... + + 10 - - Panic + + 11 - - Open custom driver panel... + + 12 - - - CarlaHostWindow - - Export as... + + 13 - - - - - Error - Помилка + + 14 + - - Failed to load project + + 15 - - Failed to save project + + 16 - - Quit - Вихід + + &Quit + - - Are you sure you want to quit Carla? + + Esc - - Could not connect to Audio backend '%1', possible reasons: -%2 + + (None) + + + lmms::AmplifierControls - - Could not connect to Audio backend '%1' + + Volume - - Warning + + Panning - - There are still some plugins loaded, you need to remove them to stop the engine. -Do you want to do this now? + + Left gain - - - CarlaInstrumentView - - Show GUI - Показати інтерфейс + + Right gain + - CarlaSettingsW - - - Settings - Параметри - + lmms::AudioFileProcessor - - main + + Amplify - - canvas + + Start of sample - - engine + + End of sample - - osc + + Loopback point - - file-paths + + Reverse sample - - plugin-paths + + Loop mode - - wine + + Stutter - - experimental + + Interpolation mode - - Widget + + None - - - Main + + Linear - - - Canvas + + Sinc - - - Engine + + Sample not found + + + lmms::AudioJack - - File Paths + + JACK client restarted - - Plugin Paths + + LMMS was kicked by JACK for some reason. Therefore the JACK backend of LMMS has been restarted. You will have to make manual connections again. - - Wine + + JACK server down - - - Experimental + + The JACK server seems to have been shutdown and starting a new instance failed. Therefore LMMS is unable to proceed. You should save your project and restart JACK and LMMS. - - <b>Main</b> + + Client name - - Paths - Шляхи - - - - Default project folder: + + Channels + + + lmms::AudioOss - - Interface + + Device - - Interface refresh interval: + + Channels + + + lmms::AudioPortAudio::setupWidget - - - ms + + Backend - - Show console output in Logs tab (needs engine restart) + + Device + + + lmms::AudioPulseAudio - - Show a confirmation dialog before quitting + + Device - - - Theme + + Channels + + + lmms::AudioSdl::setupWidget - - Use Carla "PRO" theme (needs restart) + + Playback device - - Color scheme: + + Input device + + + lmms::AudioSndio - - Black + + Device - - System + + Channels + + + lmms::AudioSoundIo::setupWidget - - Enable experimental features + + Backend - - <b>Canvas</b> + + Device + + + lmms::AutomatableModel - - Bezier Lines + + &Reset (%1%2) - - Theme: + + &Copy value (%1%2) - - Size: - Розмір: + + &Paste value (%1%2) + - - 775x600 + + &Paste value - - 1550x1200 + + Edit song-global automation - - 3100x2400 + + Remove song-global automation - - 4650x3600 + + Remove all linked controls - - 6200x4800 + + Connected to %1 - - Options + + Connected to controller - - Auto-hide groups with no ports + + Edit connection... - - Auto-select items on hover + + Remove connection - - Basic eye-candy (group shadows) + + Connect to controller... + + + lmms::AutomationClip - - Render Hints + + Drag a control while pressing <%1> + + + lmms::AutomationTrack - - Anti-Aliasing + + Automation track + + + lmms::BassBoosterControls - - Full canvas repaints (slower, but prevents drawing issues) + + Frequency - - <b>Engine</b> + + Gain - - - Core + + Ratio + + + lmms::BitInvader - - Single Client + + Sample length - - Multiple Clients + + Interpolation - - - Continuous Rack + + Normalize + + + lmms::BitcrushControls - - - Patchbay + + Input gain - - Audio driver: + + Input noise - - Process mode: + + Output gain - - - - - Maximum number of parameters to allow in the built-in 'Edit' dialog + + Output clip - - Max Parameters: + + Sample rate - - ... + + Stereo difference - - Reset Xrun counter after project load + + Levels - - Plugin UIs + + Rate enabled - - - How much time to wait for OSC GUIs to ping back the host + + Depth enabled + + + lmms::Clip - - UI Bridge Timeout: + + Mute + + + lmms::CompressorControls - - Use OSC-GUI bridges when possible, this way separating the UI from DSP code + + Threshold - - Use UI bridges instead of direct handling when possible + + Ratio - - Make plugin UIs always-on-top + + Attack - - Make plugin UIs appear on top of Carla (needs restart) + + Release - - NOTE: Plugin-bridge UIs cannot be managed by Carla on macOS + + Knee - - - Restart the engine to load the new settings + + Hold - - <b>OSC</b> + + Range - - Enable OSC + + RMS Size - - Enable TCP port + + Mid/Side - - - Use specific port: + + Peak Mode - - Overridden by CARLA_OSC_TCP_PORT env var + + Lookahead Length - - - Use randomly assigned port + + Input Balance - - Enable UDP port + + Output Balance - - Overridden by CARLA_OSC_UDP_PORT env var + + Limiter - - DSSI UIs require OSC UDP port enabled + + Output Gain - - <b>File Paths</b> + + Input Gain - - Audio - Аудіо + + Blend + - - MIDI - MIDI + + Stereo Balance + - - Used for the "audiofile" plugin + + Auto Makeup Gain - - Used for the "midifile" plugin + + Audition - - - Add... + + Feedback - - - Remove + + Auto Attack - - - Change... + + Auto Release - - <b>Plugin Paths</b> + + Lookahead - - LADSPA + + Tilt - - DSSI + + Tilt Frequency - - LV2 + + Stereo Link - - VST2 + + Mix + + + lmms::Controller - - VST3 + + Controller %1 + + + lmms::DelayControls - - SF2/3 + + Delay samples - - SFZ + + Feedback - - Restart Carla to find new plugins + + LFO frequency - - <b>Wine</b> + + LFO amount - - Executable + + Output gain + + + lmms::DispersionControls - - Path to 'wine' binary: + + Amount - - Prefix + + Frequency - - Auto-detect Wine prefix based on plugin filename + + Resonance - - Fallback: + + Feedback - - Note: WINEPREFIX env var is preferred over this fallback + + DC Offset Removal + + + lmms::DualFilterControls - - Realtime Priority + + Filter 1 enabled - - Base priority: + + Filter 1 type - - WineServer priority: + + Cutoff frequency 1 - - These options are not available for Carla as plugin + + Q/Resonance 1 - - <b>Experimental</b> + + Gain 1 - - Experimental options! Likely to be unstable! + + Mix - - Enable plugin bridges + + Filter 2 enabled - - Enable Wine bridges + + Filter 2 type - - Enable jack applications + + Cutoff frequency 2 - - Export single plugins to LV2 + + Q/Resonance 2 - - Load Carla backend in global namespace (NOT RECOMMENDED) + + Gain 2 - - Fancy eye-candy (fade-in/out groups, glow connections) + + + Low-pass - - Use OpenGL for rendering (needs restart) + + + Hi-pass - - High Quality Anti-Aliasing (OpenGL only) + + + Band-pass csg - - Render Ardour-style "Inline Displays" + + + Band-pass czpg - - Force mono plugins as stereo by running 2 instances at the same time. -This mode is not available for VST plugins. + + + Notch - - Force mono plugins as stereo + + + All-pass - - Prevent plugins from doing bad stuff (needs restart) + + + Moog - - Whenever possible, run the plugins in bridge mode. + + + 2x Low-pass - - Run plugins in bridge mode when possible + + + RC Low-pass 12 dB/oct - - - - - Add Path + + + RC Band-pass 12 dB/oct - - - CompressorControlDialog - - Threshold: + + + RC High-pass 12 dB/oct - - Volume at which the compression begins to take place + + + RC Low-pass 24 dB/oct - - Ratio: - Відношення: + + + RC Band-pass 24 dB/oct + - - How far the compressor must turn the volume down after crossing the threshold + + + RC High-pass 24 dB/oct - - Attack: - Вступ: + + + Vocal Formant + - - Speed at which the compressor starts to compress the audio + + + 2x Moog - - Release: - Зменшення: + + + SV Low-pass + - - Speed at which the compressor ceases to compress the audio + + + SV Band-pass - - Knee: + + + SV High-pass - - Smooth out the gain reduction curve around the threshold + + + SV Notch - - Range: + + + Fast Formant - - Maximum gain reduction + + + Tripole + + + lmms::DynProcControls - - Lookahead Length: + + Input gain - - How long the compressor has to react to the sidechain signal ahead of time + + Output gain - - Hold: - Утримання: + + Attack time + - - Delay between attack and release stages + + Release time - - RMS Size: + + Stereo mode + + + lmms::Effect - - Size of the RMS buffer + + Effect enabled - - Input Balance: + + Wet/Dry mix - - Bias the input audio to the left/right or mid/side + + Gate - - Output Balance: + + Decay + + + lmms::EffectChain - - Bias the output audio to the left/right or mid/side + + Effects enabled + + + lmms::Engine - - Stereo Balance: + + Generating wavetables - - Bias the sidechain signal to the left/right or mid/side + + Initializing data structures - - Stereo Link Blend: + + Opening audio and midi devices - - Blend between unlinked/maximum/average/minimum stereo linking modes + + Launching audio engine threads + + + lmms::EnvelopeAndLfoParameters - - Tilt Gain: + + Env pre-delay - - Bias the sidechain signal to the low or high frequencies. -6 db is lowpass, 6 db is highpass. + + Env attack - - Tilt Frequency: + + Env hold - - Center frequency of sidechain tilt filter + + Env decay - - Mix: + + Env sustain - - Balance between wet and dry signals + + Env release - - Auto Attack: + + Env mod amount - - Automatically control attack value depending on crest factor + + LFO pre-delay - - Auto Release: + + LFO attack - - Automatically control release value depending on crest factor + + LFO frequency - - Output gain - Вихідне підсилення + + LFO mod amount + - - - Gain - Підсилення + + LFO wave shape + - - Output volume + + LFO frequency x 100 - - Input gain - Вхідне підсилення + + Modulate env amount + - - Input volume + + Sample not found + + + lmms::EqControls - - Root Mean Square + + Input gain - - Use RMS of the input + + Output gain - - Peak + + Low-shelf gain - - Use absolute value of the input + + Peak 1 gain - - Left/Right + + Peak 2 gain - - Compress left and right audio + + Peak 3 gain - - Mid/Side + + Peak 4 gain - - Compress mid and side audio + + High-shelf gain - - Compressor + + HP res - - Compress the audio + + Low-shelf res - - Limiter + + Peak 1 BW - - Set Ratio to infinity (is not guaranteed to limit audio volume) + + Peak 2 BW - - Unlinked + + Peak 3 BW - - Compress each channel separately + + Peak 4 BW - - Maximum + + High-shelf res - - Compress based on the loudest channel + + LP res - - Average + + HP freq - - Compress based on the averaged channel volume + + Low-shelf freq - - Minimum + + Peak 1 freq - - Compress based on the quietest channel + + Peak 2 freq - - Blend + + Peak 3 freq - - Blend between stereo linking modes + + Peak 4 freq - - Auto Makeup Gain + + High-shelf freq - - Automatically change makeup gain depending on threshold, knee, and ratio settings + + LP freq - - - Soft Clip + + HP active - - Play the delta signal + + Low-shelf active - - Use the compressor's output as the sidechain input + + Peak 1 active - - Lookahead Enabled + + Peak 2 active - - Enable Lookahead, which introduces 20 milliseconds of latency + + Peak 3 active - - - CompressorControls - - Threshold + + Peak 4 active - - Ratio - Відношення + + High-shelf active + - - Attack - Вступ + + LP active + - - Release - Зменшення + + LP 12 + - - Knee + + LP 24 - - Hold - Утримання + + LP 48 + - - Range + + HP 12 - - RMS Size + + HP 24 - - Mid/Side + + HP 48 - - Peak Mode + + Low-pass type - - Lookahead Length + + High-pass type - - Input Balance + + Analyse IN - - Output Balance + + Analyse OUT + + + lmms::FlangerControls - - Limiter + + Delay samples - - Output Gain - Вихідне підсилення + + LFO frequency + - - Input Gain - Вхідне підсилення + + Amount + - - Blend + + Stereo phase - - Stereo Balance + + Feedback - - Auto Makeup Gain + + Noise - - Audition + + Invert + + + lmms::FreeBoyInstrument - - Feedback - Повернення + + Sweep time + - - Auto Attack + + Sweep direction - - - Auto Release + + + Sweep rate shift amount - - Lookahead + + + Wave pattern duty cycle - - Tilt + + Channel 1 volume - - Tilt Frequency + + + + Volume sweep direction - - Stereo Link + + + + Length of each step in sweep - - Mix - Мікс + + Channel 2 volume + - - - Controller - - Controller %1 - Контролер %1 + + Channel 3 volume + - - - ControllerConnectionDialog - - Connection Settings - Параметры соединения + + Channel 4 volume + - - MIDI CONTROLLER - MIDI-КОНТРОЛЕР + + Shift Register width + - - Input channel - Канал введення + + Right output level + - - CHANNEL - КАНАЛ + + Left output level + - - Input controller - Контролер введення + + Channel 1 to SO2 (Left) + - - CONTROLLER - КОНТРОЛЕР + + Channel 2 to SO2 (Left) + - - - Auto Detect - Автовизначення + + Channel 3 to SO2 (Left) + - - MIDI-devices to receive MIDI-events from - Пристрої MiDi для прийому подій + + Channel 4 to SO2 (Left) + - - USER CONTROLLER - КОРИСТ. КОНТРОЛЕР + + Channel 1 to SO1 (Right) + - - MAPPING FUNCTION - ПЕРЕВИЗНАЧЕННЯ + + Channel 2 to SO1 (Right) + - - OK - ОК + + Channel 3 to SO1 (Right) + - - Cancel - Відміна + + Channel 4 to SO1 (Right) + - - LMMS - ЛММС + + Treble + - - Cycle Detected. - Виявлено цикл. + + Bass + - ControllerRackView + lmms::GigInstrument - - Controller Rack - Стійка контролерів - - - - Add - Додати + + Bank + - - Confirm Delete - Підтвердити видалення + + Patch + - - Confirm delete? There are existing connection(s) associated with this controller. There is no way to undo. - Чи підтверджуєте видалення? Є можливі зв'язки з цим контролером, потім їх не можна буде повернути.. + + Gain + - ControllerView + lmms::GranularPitchShifterControls - - Controls - Управління - - - - Rename controller - Перейменувати контролер + + Pitch + - - Enter the new name for this controller - Введіть нову назву контролера + + Grain Size + - - LFO - LFO + + Spray + - - &Remove this controller - &R Видалити цей контролер + + Jitter + - - Re&name this controller - &N Перейменувати цей контролер + + Twitch + - - - CrossoverEQControlDialog - - Band 1/2 crossover: + + Pitch Stereo Spread - - Band 2/3 crossover: + + Spray Stereo - - Band 3/4 crossover: + + Shape - - Band 1 gain + + Fade Length - - Band 1 gain: + + Feedback - - Band 2 gain + + Minimum Allowed Latency - - Band 2 gain: + + Prefilter - - Band 3 gain + + Density - - Band 3 gain: + + Glide - - Band 4 gain + + Ring Buffer Length - - Band 4 gain: + + 5 Seconds - - Band 1 mute + + 10 Seconds (Size) - - Mute band 1 + + 40 Seconds (Size and Pitch) - - Band 2 mute + + 40 Seconds (Size and Spray and Jitter) - - Mute band 2 + + 120 Seconds (All of the above) + + + lmms::InstrumentFunctionArpeggio - - Band 3 mute + + Arpeggio - - Mute band 3 + + Arpeggio type - - Band 4 mute + + Arpeggio range - - Mute band 4 + + Note repeats - - - DelayControls - - Delay samples + + Cycle steps - - Feedback - Повернення + + Skip rate + - - LFO frequency + + Miss rate - - LFO amount + + Arpeggio time - - Output gain - Вихідне підсилення + + Arpeggio gate + - - - DelayControlsDialog - - DELAY - ЗАТРИМ + + Arpeggio direction + - - Delay time + + Arpeggio mode - - FDBK - FDBK + + Up + - - Feedback amount + + Down - - RATE - ЧАСТ + + Up and down + - - LFO frequency + + Down and up - - AMNT - ГЛИБ + + Random + - - LFO amount + + Free - - Out gain + + Sort - - Gain - Підсилення + + Sync + - Dialog + lmms::InstrumentFunctionNoteStacking - - Add JACK Application + + Chords - - Note: Features not implemented yet are greyed out + + Chord type - - Application + + Chord range + + + lmms::InstrumentSoundShaping - - Name: + + Envelopes/LFOs - - Application: + + Filter type - - From template + + Cutoff frequency - - Custom + + Q/Resonance - - Template: + + Low-pass - - Command: + + Hi-pass - - Setup + + Band-pass csg - - Session Manager: + + Band-pass czpg - - None - Нічого + + Notch + - - Audio inputs: + + All-pass - - MIDI inputs: + + Moog - - Audio outputs: + + 2x Low-pass - - MIDI outputs: + + RC Low-pass 12 dB/oct - - Take control of main application window + + RC Band-pass 12 dB/oct - - Workarounds + + RC High-pass 12 dB/oct + + + + + RC Low-pass 24 dB/oct - - Wait for external application start (Advanced, for Debug only) + + RC Band-pass 24 dB/oct - - Capture only the first X11 Window + + RC High-pass 24 dB/oct - - Use previous client output buffer as input for the next client + + Vocal Formant - - Simulate 16 JACK MIDI outputs, with MIDI channel as port index + + 2x Moog - - Error here + + SV Low-pass - - Carla Control - Connect + + SV Band-pass - - Remote setup + + SV High-pass - - UDP Port: + + SV Notch - - Remote host: + + Fast Formant - - TCP Port: + + Tripole + + + lmms::InstrumentTrack - - Reported host + + + unnamed_track - - Automatic + + Base note - - Custom: + + First note - - In some networks (like USB connections), the remote system cannot reach the local network. You can specify here which hostname or IP to make the remote Carla connect to. -If you are unsure, leave it as 'Automatic'. + + Last note - - Set value + + Volume - - TextLabel + + Panning - - Scale Points + + Pitch - - - DriverSettingsW - - Driver Settings + + Pitch range - - Device: + + Mixer channel - - Buffer size: + + Master pitch - - Sample rate: - Частота дискретизації: + + Enable/Disable MIDI CC + - - Triple buffer + + CC Controller %1 - - Show Driver Control Panel + + + Default preset + + + lmms::Keymap - - Restart the engine to load the new settings + + empty - DualFilterControlDialog + lmms::KickerInstrument - - - FREQ - ЧАСТ + + Start frequency + - - - Cutoff frequency - Зріз частоти + + End frequency + - - - RESO - РЕЗО + + Length + - - - Resonance - Резонанс + + Start distortion + - - - GAIN - ПІДС + + End distortion + - - + Gain - Підсилення + - - MIX - МІКС + + Envelope slope + - - Mix - Мікс + + Noise + - - Filter 1 enabled - Фільтр 1 включено + + Click + - - Filter 2 enabled - Фільтр 2 включено + + Frequency slope + - - Enable/disable filter 1 + + Start from note - - Enable/disable filter 2 + + End to note - DualFilterControls + lmms::LOMMControls - - Filter 1 enabled - Фільтр 1 включено + + Depth + - - Filter 1 type - Тип фільтру + + Time + - - Cutoff frequency 1 + + Input Volume - - Q/Resonance 1 - Кіл./Резонансу 1 + + Output Volume + - - Gain 1 - Підсилення 1 + + Upward Depth + - - Mix - Мікс + + Downward Depth + - - Filter 2 enabled - Фільтр 2 включено + + High/Mid Split + - - Filter 2 type - Тип фільтру 2 + + Mid/Low Split + - - Cutoff frequency 2 + + Enable High/Mid Split - - Q/Resonance 2 - Кіл./Резонансу 2 + + Enable Mid/Low Split + - - Gain 2 - Підсилення 2 + + Enable High Band + - - - Low-pass + + Enable Mid Band - - - Hi-pass + + Enable Low Band - - - Band-pass csg + + High Input Volume - - - Band-pass czpg + + Mid Input Volume - - - Notch - Смуго-загороджуючий + + Low Input Volume + - - - All-pass + + High Output Volume - - - Moog - Муг + + Mid Output Volume + - - - 2x Low-pass + + Low Output Volume - - - RC Low-pass 12 dB/oct + + Above Threshold High - - - RC Band-pass 12 dB/oct + + Above Threshold Mid - - - RC High-pass 12 dB/oct + + Above Threshold Low - - - RC Low-pass 24 dB/oct + + Above Ratio High - - - RC Band-pass 24 dB/oct + + Above Ratio Mid - - - RC High-pass 24 dB/oct + + Above Ratio Low - - - Vocal Formant + + Below Threshold High - - - 2x Moog - 2x Муг + + Below Threshold Mid + - - - SV Low-pass + + Below Threshold Low - - - SV Band-pass + + Below Ratio High - - - SV High-pass + + Below Ratio Mid - - - SV Notch - SV Смуго-заг + + Below Ratio Low + - - - Fast Formant - Швидка форманта + + Attack High + - - - Tripole - Тріполі + + Attack Mid + - - - Editor - - Transport controls - Управління засобами сполучення + + Attack Low + - - Play (Space) - Грати (Пробіл) + + Release High + - - Stop (Space) - Зупинити (Пробіл) + + Release Mid + - - Record - Запис + + Release Low + - - Record while playing - Запис під час програвання + + RMS Time + - - Toggle Step Recording + + Knee - - - Effect - - Effect enabled - Ефект включений + + Range + - - Wet/Dry mix - Насиченість + + Balance + - - Gate - Шлюз + + Scale output volume with Depth + + + + + Stereo Link + - - Decay - Згасання + + Auto Time + - - - EffectChain - - Effects enabled - Ефекти включені + + Mix + - - - EffectRackView - - EFFECTS CHAIN - МЕРЕЖА ЕФЕКТІВ + + Feedback + - - Add effect - Додати ефект + + Mid/Side + - - - EffectSelectDialog - - Add effect - Додати ефект + + Lookahead + - - - Name - І'мя + + Lookahead Length + - - Type - Тип + + Suppress upward compression for side band + + + + lmms::LadspaControl - - Description - Опис + + Link channels + + + + lmms::LadspaEffect - - Author - Автор + + Unknown LADSPA plugin %1 requested. + - EffectView + lmms::Lb302Synth - - On/Off - Увімк/Вимк + + VCF Cutoff Frequency + - - W/D - НАСИЧ + + VCF Resonance + - - Wet Level: - Рівень насиченості: + + VCF Envelope Mod + - - DECAY - ЗГАСАННЯ + + VCF Envelope Decay + - - Time: - Час: + + Distortion + - - GATE - ШЛЮЗ + + Waveform + - - Gate: - Шлюз: + + Slide Decay + - - Controls - Управління + + Slide + - - Move &up - &u Перемістити вище + + Accent + - - Move &down - &d Перемістити нижче + + Dead + - - &Remove this plugin - &R Видалити цей плагін + + 24dB/oct Filter + - EnvelopeAndLfoParameters + lmms::LfoController - - Env pre-delay + + LFO Controller - - Env attack + + Base value - - Env hold + + Oscillator speed - - Env decay + + Oscillator amount - - Env sustain + + Oscillator phase - - Env release + + Oscillator waveform - - Env mod amount + + Frequency Multiplier - - LFO pre-delay + + Sample not found + + + lmms::MalletsInstrument - - LFO attack + + Hardness - - LFO frequency + + Position - - LFO mod amount + + Vibrato gain - - LFO wave shape + + Vibrato frequency - - LFO frequency x 100 + + Stick mix - - Modulate env amount + + Modulator - - - EnvelopeAndLfoView - - - - DEL - DEL - - - - Pre-delay: + + Crossfade - - - ATT - ATT - - - - - Attack: - Вступ: + + LFO speed + - - HOLD - HOLD + + LFO depth + - - Hold: - Утримання: + + ADSR + - - DEC - DEC + + Pressure + - - Decay: - Згасання: + + Motion + - - SUST - SUST + + Speed + - - Sustain: - Витримка: + + Bowed + - - REL - REL + + Instrument + - - Release: - Зменшення: + + Spread + - - - AMT - AMT + + Randomness + - - - Modulation amount: - Глибина модуляції: + + Marimba + - - SPD - SPD + + Vibraphone + - - Frequency: - Частота: + + Agogo + - - FREQ x 100 - ЧАСТОТА x 100 + + Wood 1 + - - Multiply LFO frequency by 100 + + Reso - - MODULATE ENV AMOUNT + + Wood 2 - - Control envelope amount by this LFO + + Beats - - ms/LFO: - мс/LFO: + + Two fixed + - - Hint - Підказка + + Clump + - - Drag and drop a sample into this window. + + Tubular bells - - - EqControls - - Input gain - Вхідне підсилення + + Uniform bar + - - Output gain - Вихідне підсилення + + Tuned bar + - - Low-shelf gain + + Glass - - Peak 1 gain - Пік 1 підсилення + + Tibetan bowl + + + + lmms::MeterModel - - Peak 2 gain - Пік 2 підсилення + + Numerator + - - Peak 3 gain - Пік 3 підсилення + + Denominator + + + + lmms::Microtuner - - Peak 4 gain - Пік 4 підсилення + + Microtuner + - - High-shelf gain + + Microtuner on / off - - HP res - ВЧ резон + + Selected scale + - - Low-shelf res + + Selected keyboard mapping + + + lmms::MidiController - - Peak 1 BW - Пік 1 BW + + MIDI Controller + - - Peak 2 BW - Пік 2 BW + + unnamed_midi_controller + + + + lmms::MidiImport - - Peak 3 BW - Пік 3 BW + + + Setup incomplete + - - Peak 4 BW - Пік 4 BW + + You have not set up a default soundfont in the settings dialog (Edit->Settings). Therefore no sound will be played back after importing this MIDI file. You should download a General MIDI soundfont, specify it in settings dialog and try again. + - - High-shelf res + + You did not compile LMMS with support for SoundFont2 player, which is used to add default sound to imported MIDI files. Therefore no sound will be played back after importing this MIDI file. - - LP res - НЧ резон + + MIDI Time Signature Numerator + - - HP freq - НЧ част + + MIDI Time Signature Denominator + - - Low-shelf freq + + Numerator - - Peak 1 freq - Пік 1 част + + Denominator + - - Peak 2 freq - Пік 2 част + + + Tempo + - - Peak 3 freq - Пік 3 част + + Track + + + + lmms::MidiJack - - Peak 4 freq - Пік 4 част + + JACK server down + When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (title) + - - High-shelf freq + + The JACK server seems to be shuted down. + When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (dialog message) + + + lmms::MidiPort - - LP freq - НЧ част + + Input channel + - - HP active - ВЧ активна + + Output channel + - - Low-shelf active + + Input controller - - Peak 1 active - Пік 1 активний + + Output controller + - - Peak 2 active - Пік 2 активний + + Fixed input velocity + - - Peak 3 active - Пік 3 активний + + Fixed output velocity + - - Peak 4 active - Пік 4 активний + + Fixed output note + - - High-shelf active + + Output MIDI program - - LP active - НЧ активна + + Base velocity + - - LP 12 - НЧ 12 + + Receive MIDI-events + - - LP 24 - НЧ 24 + + Send MIDI-events + + + + lmms::Mixer - - LP 48 - НЧ 48 + + Master + - - HP 12 - ВЧ 12 + + + + Channel %1 + - - HP 24 - ВЧ 24 + + Volume + - - HP 48 - ВЧ 48 + + Mute + - - Low-pass type + + Solo + + + lmms::MixerRoute - - High-pass type + + + Amount to send from channel %1 to channel %2 + + + lmms::MonstroInstrument - - Analyse IN - Аналізувати ВХІД + + Osc 1 volume + - - Analyse OUT - Аналізувати ВИХІД + + Osc 1 panning + - - - EqControlsDialog - - HP - ВЧ + + Osc 1 coarse detune + - - Low-shelf + + Osc 1 fine detune left - - Peak 1 - Пік 1 + + Osc 1 fine detune right + - - Peak 2 - Пік 2 + + Osc 1 stereo phase offset + - - Peak 3 - Пік 3 + + Osc 1 pulse width + - - Peak 4 - Пік 4 + + Osc 1 sync send on rise + - - High-shelf + + Osc 1 sync send on fall - - LP - НЧ + + Osc 2 volume + - - Input gain - Вхідне підсилення + + Osc 2 panning + - - - - Gain - Підсилення + + Osc 2 coarse detune + - - Output gain - Вихідне підсилення + + Osc 2 fine detune left + - - Bandwidth: - Ширина смуги: + + Osc 2 fine detune right + - - Octave - Октава + + Osc 2 stereo phase offset + - - Resonance : - Резонанс: + + Osc 2 waveform + - - Frequency: - Частота: + + Osc 2 sync hard + - - LP group + + Osc 2 sync reverse - - HP group + + Osc 3 volume - - - EqHandle - - Reso: - Резон: + + Osc 3 panning + - - BW: - ШС: + + Osc 3 coarse detune + - - - Freq: - Част: + + Osc 3 Stereo phase offset + - - - ExportProjectDialog - - Export project - Експорт проекту + + Osc 3 sub-oscillator mix + - - Export as loop (remove extra bar) + + Osc 3 waveform 1 - - Export between loop markers - Експорт між маркерами циклу + + Osc 3 waveform 2 + - - Render Looped Section: + + Osc 3 sync hard - - time(s) + + Osc 3 Sync reverse - - File format settings + + LFO 1 waveform - - File format: - Формат файла: + + LFO 1 attack + - - Sampling rate: + + LFO 1 rate - - 44100 Hz - 44.1 КГц + + LFO 1 phase + - - 48000 Hz - 48 КГц + + LFO 2 waveform + - - 88200 Hz - 88.2 КГц + + LFO 2 attack + - - 96000 Hz - 96 КГц + + LFO 2 rate + - - 192000 Hz - 192 КГц + + LFO 2 phase + - - Bit depth: + + Env 1 pre-delay - - 16 Bit integer + + Env 1 attack - - 24 Bit integer + + Env 1 hold - - 32 Bit float + + Env 1 decay - - Stereo mode: - Стерео режим: + + Env 1 sustain + - - Mono - Моно + + Env 1 release + - - Stereo - Стерео + + Env 1 slope + - - Joint stereo + + Env 2 pre-delay - - Compression level: + + Env 2 attack - - Bitrate: - Бітрейт: + + Env 2 hold + - - 64 KBit/s - 64 КБіт/с + + Env 2 decay + - - 128 KBit/s - 128 КБіт/с + + Env 2 sustain + - - 160 KBit/s - 160 КБіт/с + + Env 2 release + - - 192 KBit/s - 192 КБіт/с + + Env 2 slope + - - 256 KBit/s - 256 КБіт/с + + Osc 2+3 modulation + - - 320 KBit/s - 320 КБіт/с + + Selected view + - - Use variable bitrate - Використовувати змінний бітрейт + + Osc 1 - Vol env 1 + - - Quality settings - Налаштування якості + + Osc 1 - Vol env 2 + - - Interpolation: - Інтерполяція: + + Osc 1 - Vol LFO 1 + - - Zero order hold + + Osc 1 - Vol LFO 2 - - Sinc worst (fastest) + + Osc 2 - Vol env 1 - - Sinc medium (recommended) + + Osc 2 - Vol env 2 - - Sinc best (slowest) + + Osc 2 - Vol LFO 1 - - Oversampling: + + Osc 2 - Vol LFO 2 - - 1x (None) - 1х (Ні) + + Osc 3 - Vol env 1 + - - 2x - + + Osc 3 - Vol env 2 + - - 4x - + + Osc 3 - Vol LFO 1 + - - 8x - + + Osc 3 - Vol LFO 2 + - - Start - Почати + + Osc 1 - Phs env 1 + - - Cancel - Відміна + + Osc 1 - Phs env 2 + - - Could not open file - Не можу відкрити файл + + Osc 1 - Phs LFO 1 + - - Could not open file %1 for writing. -Please make sure you have write permission to the file and the directory containing the file and try again! - Не вдалось відкрити файл %1 для запису. -Перевірте, чи маєте ви права на запис файлу і каталог що його містить і спробуйте знову! + + Osc 1 - Phs LFO 2 + - - Export project to %1 - Експорт проекту в %1 + + Osc 2 - Phs env 1 + - - ( Fastest - biggest ) + + Osc 2 - Phs env 2 - - ( Slowest - smallest ) + + Osc 2 - Phs LFO 1 - - Error - Помилка + + Osc 2 - Phs LFO 2 + - - Error while determining file-encoder device. Please try to choose a different output format. - Помилка при визначенні кодека файлу. Спробуйте вибрати інший формат виводу. + + Osc 3 - Phs env 1 + - - Rendering: %1% - Обробка: %1% + + Osc 3 - Phs env 2 + - - - Fader - - Set value + + Osc 3 - Phs LFO 1 - - Please enter a new value between %1 and %2: - Введіть нове значення від %1 до %2: + + Osc 3 - Phs LFO 2 + - - - FileBrowser - - User content + + Osc 1 - Pit env 1 - - Factory content + + Osc 1 - Pit env 2 - - Browser - Оглядач файлів + + Osc 1 - Pit LFO 1 + - - Search + + Osc 1 - Pit LFO 2 - - Refresh list + + Osc 2 - Pit env 1 - - - FileBrowserTreeWidget - - Send to active instrument-track - З'єднати з активним інструментом-доріжкою + + Osc 2 - Pit env 2 + - - Open containing folder + + Osc 2 - Pit LFO 1 - - Song Editor - Музичний редактор + + Osc 2 - Pit LFO 2 + - - BB Editor + + Osc 3 - Pit env 1 - - Send to new AudioFileProcessor instance + + Osc 3 - Pit env 2 - - Send to new instrument track + + Osc 3 - Pit LFO 1 - - (%2Enter) + + Osc 3 - Pit LFO 2 - - Send to new sample track (Shift + Enter) + + Osc 1 - PW env 1 - - Loading sample - Завантаження запису + + Osc 1 - PW env 2 + - - Please wait, loading sample for preview... - Будь-ласка почекайте, запис завантажується для перегляду ... + + Osc 1 - PW LFO 1 + - - Error - Помилка + + Osc 1 - PW LFO 2 + - - %1 does not appear to be a valid %2 file + + Osc 3 - Sub env 1 - - --- Factory files --- - --- Заводські файли --- + + Osc 3 - Sub env 2 + - - - FlangerControls - - Delay samples + + Osc 3 - Sub LFO 1 - - LFO frequency + + Osc 3 - Sub LFO 2 - - Seconds - Секунд + + + Sine wave + - - Stereo phase + + Bandlimited Triangle wave - - Regen - Перегенерувати + + Bandlimited Saw wave + + + + + Bandlimited Ramp wave + - - Noise - Шум + + Bandlimited Square wave + - - Invert - Інвертувати + + Bandlimited Moog saw wave + - - - FlangerControlsDialog - - DELAY - ЗАТРИМ + + + Soft square wave + - - Delay time: + + Absolute sine wave - - RATE - ЧАСТ + + + Exponential wave + - - Period: - Період: + + White noise + - - AMNT - ГЛИБ + + Digital Triangle wave + - - Amount: - Величина: + + Digital Saw wave + - - PHASE + + Digital Ramp wave - - Phase: + + Digital Square wave - - FDBK - FDBK + + Digital Moog saw wave + - - Feedback amount: + + Triangle wave - - NOISE - ШУМ + + Saw wave + - - White noise amount: + + Ramp wave - - Invert - Інвертувати + + Square wave + - - - FreeBoyInstrument - - Sweep time - Час поширення + + Moog saw wave + - - Sweep direction - Напрям поширення + + Abs. sine wave + - - Sweep rate shift amount + + Random - - - Wave pattern duty cycle + + Random smooth + + + lmms::NesInstrument - - Channel 1 volume - Гучність першого каналу + + Channel 1 enable + - - - - Volume sweep direction - Обсяг напрямку поширення + + Channel 1 coarse detune + - - - - Length of each step in sweep - Довжина кожного кроку в розгортці + + Channel 1 volume + - - Channel 2 volume - Гучність другого каналу + + Channel 1 envelope enable + - - Channel 3 volume - Гучність третього каналу + + Channel 1 envelope loop + - - Channel 4 volume - Гучність четвертого каналу + + Channel 1 envelope length + - - Shift Register width - Зміщення ширини регістра + + Channel 1 duty cycle + - - Right output level + + Channel 1 sweep enable - - Left output level + + Channel 1 sweep amount - - Channel 1 to SO2 (Left) - Від першого каналу до SO2 (лівий канал) + + Channel 1 sweep rate + - - Channel 2 to SO2 (Left) - Від другого каналу до SO2 (лівий канал) + + Channel 2 enable + - - Channel 3 to SO2 (Left) - Від третього каналу до SO2 (лівий канал) + + Channel 2 coarse detune + - - Channel 4 to SO2 (Left) - Від четвертого каналу до SO2 (лівий канал) + + Channel 2 volume + - - Channel 1 to SO1 (Right) - Від першого каналу до SO1 (правий канал) + + Channel 2 envelope enable + - - Channel 2 to SO1 (Right) - Від другого каналу до SO1 (правий канал) + + Channel 2 envelope loop + - - Channel 3 to SO1 (Right) - Від третього каналу до SO1 (правий канал) + + Channel 2 envelope length + - - Channel 4 to SO1 (Right) - Від четвертого каналу до SO1 (правий канал) + + Channel 2 duty cycle + - - Treble - Дискант + + Channel 2 sweep enable + - - Bass - Бас + + Channel 2 sweep amount + - - - FreeBoyInstrumentView - - Sweep time: + + Channel 2 sweep rate - - Sweep time - Час поширення + + Channel 3 enable + - - Sweep rate shift amount: + + Channel 3 coarse detune - - Sweep rate shift amount + + Channel 3 volume - - - Wave pattern duty cycle: + + Channel 4 enable - - - Wave pattern duty cycle + + Channel 4 volume - - Square channel 1 volume: + + Channel 4 envelope enable - - Square channel 1 volume + + Channel 4 envelope loop - - - - Length of each step in sweep: - Довжина кожного кроку в розгортці: + + Channel 4 envelope length + - - - - Length of each step in sweep - Довжина кожного кроку в розгортці + + Channel 4 noise mode + - - Square channel 2 volume: + + Channel 4 frequency mode - - Square channel 2 volume + + Channel 4 noise frequency - - Wave pattern channel volume: + + Channel 4 noise frequency sweep - - Wave pattern channel volume + + Channel 4 quantize - - Noise channel volume: + + Master volume - - Noise channel volume + + Vibrato + + + lmms::OpulenzInstrument - - SO1 volume (Right): + + Patch - - SO1 volume (Right) + + Op 1 attack - - SO2 volume (Left): + + Op 1 decay - - SO2 volume (Left) + + Op 1 sustain - - Treble: - Дискант: + + Op 1 release + - - Treble - Дискант + + Op 1 level + - - Bass: - Бас: + + Op 1 level scaling + - - Bass - Бас + + Op 1 frequency multiplier + - - Sweep direction - Напрям поширення + + Op 1 feedback + - - - - - - Volume sweep direction - Обсяг напрямку поширення + + Op 1 key scaling rate + - - Shift register width + + Op 1 percussive envelope - - Channel 1 to SO1 (Right) - Від першого каналу до SO1 (правий канал) + + Op 1 tremolo + - - Channel 2 to SO1 (Right) - Від другого каналу до SO1 (правий канал) + + Op 1 vibrato + - - Channel 3 to SO1 (Right) - Від третього каналу до SO1 (правий канал) + + Op 1 waveform + - - Channel 4 to SO1 (Right) - Від четвертого каналу до SO1 (правий канал) + + Op 2 attack + - - Channel 1 to SO2 (Left) - Від першого каналу до SO2 (лівий канал) + + Op 2 decay + - - Channel 2 to SO2 (Left) - Від другого каналу до SO2 (лівий канал) + + Op 2 sustain + - - Channel 3 to SO2 (Left) - Від третього каналу до SO2 (лівий канал) + + Op 2 release + - - Channel 4 to SO2 (Left) - Від четвертого каналу до SO2 (лівий канал) + + Op 2 level + - - Wave pattern graph + + Op 2 level scaling - - - MixerLine - - Channel send amount - Величина відправки каналу + + Op 2 frequency multiplier + - - Move &left - Рухати вліво &L + + Op 2 key scaling rate + - - Move &right - Рухати вправо &R + + Op 2 percussive envelope + - - Rename &channel - Перейменувати канал &C + + Op 2 tremolo + - - R&emove channel - Видалити канал &e + + Op 2 vibrato + - - Remove &unused channels - Видалити канали які &не використовуються + + Op 2 waveform + - - Set channel color + + FM - - Remove channel color + + Vibrato depth - - Pick random channel color + + Tremolo depth - MixerLineLcdSpinBox + lmms::OrganicInstrument - - Assign to: - Призначити до: + + Distortion + - - New mixer Channel - Новий ефект каналу + + Volume + - Mixer + lmms::OscillatorObject - - Master - Головний + + Osc %1 waveform + - - - - Channel %1 - Ефект %1 + + Osc %1 harmonic + - - Volume - Гучність + + + Osc %1 volume + - - Mute - Тиша + + + Osc %1 panning + - - Solo - Соло + + Osc %1 stereo detuning + - - - MixerView - - Mixer - Мікшер Ефектів + + Osc %1 coarse detuning + - - Fader %1 - Повзунок Ефекту %1 + + Osc %1 fine detuning left + - - Mute - Тиша + + Osc %1 fine detuning right + - - Mute this mixer channel - Тиша на цьому каналі Ефекту + + Osc %1 phase-offset + - - Solo - Соло + + Osc %1 stereo phase-detuning + - - Solo mixer channel - Соло каналу ЕФ + + Osc %1 wave shape + - - - MixerRoute - - - Amount to send from channel %1 to channel %2 - Величина відправки з каналу %1 на канал %2 + + Modulation type %1 + - GigInstrument - - - Bank - Банк - + lmms::PatternTrack - - Patch - Патч + + Pattern %1 + - - Gain - Підсилення + + Clone of %1 + - GigInstrumentView - - - - Open GIG file - Відкрити GIG файл - + lmms::PeakController - - Choose patch + + Peak Controller - - Gain: - Підсилення: + + Peak Controller Bug + - - GIG Files (*.gig) - GIG Файли (*.gig) + + Due to a bug in older version of LMMS, the peak controllers may not be connect properly. Please ensure that peak controllers are connected properly and re-save this file. Sorry for any inconvenience caused. + - GuiApplication - - - Working directory - Робочий каталог LMMS - - - - The LMMS working directory %1 does not exist. Create it now? You can change the directory later via Edit -> Settings. - Робочий каталог LMMS (%1) не існує. Створити його? Пізніше ви зможете змінити його через Правку -> Параметри. - + lmms::PeakControllerEffectControls - - Preparing UI - Підготовка користувацького інтерфейсу + + Base value + - - Preparing song editor - Підготовка музичного редактора + + Modulation amount + - - Preparing mixer - Підготовка міксера + + Attack + - - Preparing controller rack - Підготовка стійки контролерів + + Release + - - Preparing project notes - Підготовка заміток проекту + + Treshold + - - Preparing beat/bassline editor - Підготовка ритм/бас редактора + + Mute output + - - Preparing piano roll - Підготовка нотного редактора + + Absolute value + - - Preparing automation editor - Підготовка редактора автоматизації + + Amount multiplicator + - InstrumentFunctionArpeggio - - - Arpeggio - Арпеджіо - - - - Arpeggio type - Тип арпеджіо - - - - Arpeggio range - Діапазон арпеджіо - + lmms::Plugin - - Note repeats + + Plugin not found - - Cycle steps - Зациклити такти - - - - Skip rate - Частота пропуску - - - - Miss rate - Частота пропуску - - - - Arpeggio time - Період арпеджіо + + The plugin "%1" wasn't found or could not be loaded! +Reason: "%2" + - - Arpeggio gate - Шлюз арпеджіо + + Error while loading plugin + - - Arpeggio direction - Напрямок арпеджіо + + Failed to load plugin "%1"! + + + + lmms::ReverbSCControls - - Arpeggio mode - Режим арпеджіо + + Input gain + - - Up - Вгору + + Size + - - Down - Вниз + + Color + - - Up and down - Вгору та вниз + + Output gain + + + + lmms::SaControls - - Down and up - Вниз та вгору + + Pause + - - Random - Випадково + + Reference freeze + - - Free - Вільно + + Waterfall + - - Sort - Сортувати + + Averaging + - - Sync - Синхронізувати + + Stereo + - - - InstrumentFunctionArpeggioView - - ARPEGGIO - ARPEGGIO + + Peak hold + - - RANGE - RANGE + + Logarithmic frequency + - - Arpeggio range: - Діапазон арпеджіо: + + Logarithmic amplitude + - - octave(s) - Октав(а/и) + + Frequency range + - - REP + + Amplitude range - - Note repeats: + + FFT block size - - time(s) + + FFT window type - - CYCLE - ЦИКЛ + + Peak envelope resolution + - - Cycle notes: - Зациклити ноти: + + Spectrum display resolution + - - note(s) - нота(и) + + Peak decay multiplier + - - - SKIP - ПРОПУСК + + + Averaging weight + - - Skip rate: - Частота пропуску: + + Waterfall history size + - - - - % - % + + Waterfall gamma correction + - - MISS - ПРОПУСК + + FFT window overlap + - - Miss rate: - Частота пропуску: + + FFT zero padding + - - TIME - TIME + + + Full (auto) + - - Arpeggio time: - Період арпеджіо: + + + + Audible + - - ms - мс + + Bass + - - GATE - GATE + + Mids + - - Arpeggio gate: - Шлюз арпеджіо: + + High + - - Chord: - Акорд: + + Extended + - - Direction: - Напрямок: + + Loud + - - Mode: - Режим: + + Silent + - - - InstrumentFunctionNoteStacking - - octave - Октава + + (High time res.) + - - - Major - Мажорний + + (High freq. res.) + - - Majb5 - Majb5 + + Rectangular (Off) + - - minor - мінорний + + + Blackman-Harris (Default) + - - minb5 - minb5 + + Hamming + - - sus2 - sus2 + + Hanning + + + + lmms::SampleClip - - sus4 - sus4 + + Sample not found + + + + lmms::SampleTrack - - aug - aug + + Volume + - - augsus4 - augsus4 + + Panning + - - tri - tri + + Mixer channel + - - 6 - 6 + + + Sample track + + + + lmms::Scale - - 6sus4 - 6sus4 + + empty + + + + lmms::Sf2Instrument - - 6add9 - 6add9 + + Bank + - - m6 - m6 + + Patch + - - m6add9 - m6add9 + + Gain + - - 7 - 7 + + Reverb + - - 7sus4 - 7sus4 + + Reverb room size + - - 7#5 - 7#5 + + Reverb damping + - - 7b5 - 7b5 + + Reverb width + - - 7#9 - 7#9 + + Reverb level + - - 7b9 - 7b9 + + Chorus + - - 7#5#9 - 7#5#9 + + Chorus voices + - - 7#5b9 - 7#5b9 + + Chorus level + - - 7b5b9 - 7b5b9 + + Chorus speed + - - 7add11 - 7add11 + + Chorus depth + - - 7add13 - 7add13 + + A soundfont %1 could not be loaded. + + + + lmms::SfxrInstrument - - 7#11 - 7#11 + + Wave + + + + lmms::SidInstrument - - Maj7 - Maj7 + + Cutoff frequency + - - Maj7b5 - Maj7b5 + + Resonance + - - Maj7#5 - Maj7#5 + + Filter type + - - Maj7#11 - Maj7#11 + + Voice 3 off + - - Maj7add13 - Maj7add13 + + Volume + - - m7 - m7 + + Chip model + + + + lmms::SlicerT - - m7b5 - m7b5 + + Note threshold + - - m7b9 - m7b9 + + FadeOut + - - m7add11 - m7add11 + + Original bpm + - - m7add13 - m7add13 + + Slice snap + - - m-Maj7 - m-Maj7 + + BPM sync + - - m-Maj7add11 - m-Maj7add11 + + + slice_%1 + - - m-Maj7add13 - m-Maj7add13 + + Sample not found: %1 + + + + lmms::Song - - 9 - 9 + + Tempo + - - 9sus4 - 9sus4 + + Master volume + - - add9 - add9 + + Master pitch + - - 9#5 - 9#5 + + Aborting project load + - - 9b5 - 9b5 + + Project file contains local paths to plugins, which could be used to run malicious code. + - - 9#11 - 9#11 + + Can't load project: Project file contains local paths to plugins. + - - 9b13 - 9b13 + + LMMS Error report + - - Maj9 - Maj9 + + (repeated %1 times) + - - Maj9sus4 - Maj9sus4 + + The following errors occurred while loading: + + + + lmms::StereoEnhancerControls - - Maj9#5 - Maj9#5 + + Width + + + + lmms::StereoMatrixControls - - Maj9#11 - Maj9#11 + + Left to Left + - - m9 - m9 + + Left to Right + - - madd9 - madd9 + + Right to Left + - - m9b5 - m9b5 + + Right to Right + + + + lmms::Track - - m9-Maj7 - m9-Maj7 + + Mute + - - 11 - 11 + + Solo + + + + lmms::TrackContainer - - 11b9 - 11b9 + + Couldn't import file + - - Maj11 - Maj11 + + Couldn't find a filter for importing file %1. +You should convert this file into a format supported by LMMS using another software. + - - m11 - m11 + + Couldn't open file + - - m-Maj11 - m-Maj11 + + Couldn't open file %1 for reading. +Please make sure you have read-permission to the file and the directory containing the file and try again! + - - 13 - 13 + + Loading project... + - - 13#9 - 13#9 + + + Cancel + - - 13b9 - 13b9 + + + Please wait... + - - 13b5b9 - 13b5b9 + + Loading cancelled + - - Maj13 - Maj13 + + Project loading was cancelled. + - - m13 - m13 + + Loading Track %1 (%2/Total %3) + - - m-Maj13 - m-Maj13 + + Importing MIDI-file... + + + + lmms::TripleOscillator - - Harmonic minor - Гармонійний мінор + + Sample not found + + + + lmms::VecControls - - Melodic minor - Мелодійний мінор + + Display persistence amount + - - Whole tone - Цілий тон + + Logarithmic scale + - - Diminished - Понижений + + High quality + + + + lmms::VestigeInstrument - - Major pentatonic - Пентатонік major + + Loading plugin + - - Minor pentatonic - Пентатонік major + + Please wait while loading the VST plugin... + + + + lmms::Vibed - - Jap in sen - Япон in sen + + String %1 volume + - - Major bebop - Major Бібоп + + String %1 stiffness + - - Dominant bebop - Домінтний бібоп + + Pick %1 position + - - Blues - Блюз + + Pickup %1 position + - - Arabic - Арабська + + String %1 panning + - - Enigmatic - Загадкова + + String %1 detune + - - Neopolitan - Неаполітанська + + String %1 fuzziness + - - Neopolitan minor - Неаполітанський мінор + + String %1 length + - - Hungarian minor - Угорський мінор + + Impulse %1 + - - Dorian - Дорійська + + String %1 + + + + lmms::VoiceObject - - Phrygian - Фрігійський + + Voice %1 pulse width + - - Lydian - Лідійська + + Voice %1 attack + - - Mixolydian - Міксолідійська + + Voice %1 decay + - - Aeolian - Еолійська + + Voice %1 sustain + - - Locrian - Локріанська + + Voice %1 release + - - Minor - Мінор + + Voice %1 coarse detuning + - - Chromatic - Хроматична + + Voice %1 wave shape + - - Half-Whole Diminished - Напів-зниження + + Voice %1 sync + - - 5 - 5 + + Voice %1 ring modulate + - - Phrygian dominant - Фрігійська домінанта + + Voice %1 filtered + - - Persian - Перська + + Voice %1 test + + + + lmms::VstPlugin - - Chords - Акорди + + + The VST plugin %1 could not be loaded. + - - Chord type - Тип акорду + + Open Preset + - - Chord range - Діапазон акорду + + + VST Plugin Preset (*.fxp *.fxb) + - - - InstrumentFunctionNoteStackingView - - STACKING - Стиковка + + : default + - - Chord: - Акорд: + + Save Preset + - - RANGE - ДІАПАЗОН + + .fxp + - - Chord range: - Діапазон акорду: + + .FXP + - - octave(s) - Октав[а/и] + + .FXB + - - - InstrumentMidiIOView - - ENABLE MIDI INPUT - УВІМК MIDI ВХІД + + .fxb + - - ENABLE MIDI OUTPUT - УВІМК MIDI ВИВІД + + Loading plugin + - - - CHAN - This string must be be short, its width must be less than * width of LCD spin-box of two digits + + Please wait while loading VST plugin... + + + lmms::WatsynInstrument - - - VELOC - This string must be be short, its width must be less than * width of LCD spin-box of three digits + + Volume A1 - - PROG - This string must be be short, its width must be less than the * width of LCD spin-box of three digits + + Volume A2 - - NOTE - This string must be be short, its width must be less than * width of LCD spin-box of three digits - NOTE + + Volume B1 + - - MIDI devices to receive MIDI events from - MiDi пристрої-джерела подій + + Volume B2 + - - MIDI devices to send MIDI events to - MiDi пристрої для відправки подій на них + + Panning A1 + - - CUSTOM BASE VELOCITY - СВОЯ БАЗОВА ШВИДКІСТЬ + + Panning A2 + - - Specify the velocity normalization base for MIDI-based instruments at 100% note velocity. + + Panning B1 - - BASE VELOCITY - БАЗОВА ШВИДКІСТЬ + + Panning B2 + - - - InstrumentTuningView - - MASTER PITCH - ОСНОВНА ТОНАЛЬНІСТЬ + + Freq. multiplier A1 + - - Enables the use of master pitch + + Freq. multiplier A2 - - - InstrumentSoundShaping - - VOLUME - VOLUME + + Freq. multiplier B1 + - - Volume - Гучність + + Freq. multiplier B2 + - - CUTOFF - CUTOFF + + Left detune A1 + - - - Cutoff frequency - Зріз частоти + + Left detune A2 + - - RESO - RESO + + Left detune B1 + - - Resonance - Резонанс + + Left detune B2 + - - Envelopes/LFOs - Обвідні/LFO + + Right detune A1 + - - Filter type - Тип фільтру + + Right detune A2 + - - Q/Resonance - Кіл./Резонансу + + Right detune B1 + - - Low-pass + + Right detune B2 - - Hi-pass + + A-B Mix - - Band-pass csg + + A-B Mix envelope amount - - Band-pass czpg + + A-B Mix envelope attack - - Notch - Смуго-загороджуючий + + A-B Mix envelope hold + - - All-pass + + A-B Mix envelope decay - - Moog - Муг + + A1-B2 Crosstalk + - - 2x Low-pass + + A2-A1 modulation - - RC Low-pass 12 dB/oct + + B2-B1 modulation - - RC Band-pass 12 dB/oct + + Selected graph + + + lmms::WaveShaperControls - - RC High-pass 12 dB/oct + + Input gain - - RC Low-pass 24 dB/oct + + Output gain + + + lmms::Xpressive - - RC Band-pass 24 dB/oct + + Selected graph - - RC High-pass 24 dB/oct + + A1 - - Vocal Formant + + A2 - - 2x Moog - 2x Муг + + A3 + - - SV Low-pass + + W1 smoothing - - SV Band-pass + + W2 smoothing - - SV High-pass + + W3 smoothing - - SV Notch - SV Смуго-заг + + Panning 1 + - - Fast Formant - Швидка форманта + + Panning 2 + - - Tripole - Тріполі + + Rel trans + - InstrumentSoundShapingView + lmms::ZynAddSubFxInstrument - - TARGET - ЦЕЛЬ + + Portamento + - - FILTER - ФИЛЬТР + + Filter frequency + - - FREQ - ЧАСТ + + Filter resonance + - - Cutoff frequency: - Частота зрізу: + + Bandwidth + - - Hz - Гц + + FM gain + - - Q/RESO + + Resonance center frequency - - Q/Resonance: + + Resonance bandwidth - - Envelopes, LFOs and filters are not supported by the current instrument. - Обвідні, LFO і фільтри не підтримуються цим інструментом. + + Forward MIDI control change events + - InstrumentTrack - - - - unnamed_track - безіменна_доріжка - - - - Base note - Опорна нота - + lmms::graphModel - - First note + + Graph + + + lmms::gui::AmplifierControlDialog - - Last note - По останій ноті + + VOL + - - Volume - Гучність + + Volume: + - - Panning - Стерео + + PAN + - - Pitch - Тональність + + Panning: + - - Pitch range - Діапазон тональності + + LEFT + - - Mixer channel - Канал ЕФ + + Left gain: + - - Master pitch - Основна тональність + + RIGHT + - - Enable/Disable MIDI CC + + Right gain: + + + lmms::gui::AudioAlsaSetupWidget - - CC Controller %1 + + Device - - - Default preset - Основна предустановка + + Channels + - InstrumentTrackView - - - Volume - Гучність - + lmms::gui::AudioFileProcessorView - - Volume: - Гучність: + + Open sample + - - VOL - ГУЧН + + Reverse sample + - - Panning - Баланс + + Disable loop + - - Panning: - Баланс: + + Enable loop + - - PAN - БАЛ + + Enable ping-pong loop + - - MIDI - MIDI + + Continue sample playback across notes + - - Input - Вхід + + Amplify: + - - Output - Вихід + + Start point: + - - Open/Close MIDI CC Rack + + End point: - - Channel %1: %2 - ЕФ %1: %2 + + Loopback point: + - InstrumentTrackWindow - - - GENERAL SETTINGS - ОСНОВНІ НАЛАШТУВАННЯ - - - - Volume - Гучність - + lmms::gui::AudioFileProcessorWaveView - - Volume: - Гучність: + + Sample length: + + + + lmms::gui::AutomationClipView - - VOL - ГУЧН + + Open in Automation editor + - - Panning - Баланс + + Clear + - - Panning: - Стереобаланс: + + Reset name + - - PAN - БАЛ + + Change name + - - Pitch - Тональність + + Set/clear record + - - Pitch: - Тональність: + + Flip Vertically (Visible) + - - cents - відсотків + + Flip Horizontally (Visible) + - - PITCH - ТОН + + %1 Connections + - - Pitch range (semitones) - Діапазон тональності (півтону) + + Disconnect "%1" + - - RANGE - ДІАПАЗОН + + Model is already connected to this clip. + + + + lmms::gui::AutomationEditor - - Mixer channel - Канал ЕФ + + Edit Value + - - CHANNEL - ЕФ + + New outValue + - - Save current instrument track settings in a preset file - Зберегти поточну інструментаьную доріжку в файл предустановок + + New inValue + - - SAVE - ЗБЕРЕГТИ + + Please open an automation clip by double-clicking on it! + + + + lmms::gui::AutomationEditorWindow - - Envelope, filter & LFO - Обвідна, фільтр & LFO + + Play/pause current clip (Space) + - - Chord stacking & arpeggio - Укладання акордів & арпеджіо + + Stop playing of current clip (Space) + - - Effects - Ефекти + + Edit actions + - - MIDI - MIDI + + Draw mode (Shift+D) + - - Miscellaneous - Різне + + Erase mode (Shift+E) + - - Save preset - Зберегти передустановку + + Draw outValues mode (Shift+C) + - - XML preset file (*.xpf) - XML файл налаштувань (*.xpf) + + Edit tangents mode (Shift+T) + - - Plugin - Модуль + + Flip vertically + - - - JackApplicationW - - NSM applications cannot use abstract or absolute paths + + Flip horizontally - - NSM applications cannot use CLI arguments + + Interpolation controls - - You need to save the current Carla project before NSM can be used + + Discrete progression - - - JuceAboutW - - About JUCE + + Linear progression - - <b>About JUCE</b> + + Cubic Hermite progression - - This program uses JUCE version 3.x.x. + + Tension value for spline - - JUCE (Jules' Utility Class Extensions) is an all-encompassing C++ class library for developing cross-platform software. - -It contains pretty much everything you're likely to need to create most applications, and is particularly well-suited for building highly-customised GUIs, and for handling graphics and sound. - -JUCE is licensed under the GNU Public Licence version 2.0. -One module (juce_core) is permissively licensed under the ISC. - -Copyright (C) 2017 ROLI Ltd. + + Tension: - - This program uses JUCE version %1. + + Zoom controls - - - Knob - - Set linear - Встановити лінійний + + Horizontal zooming + - - Set logarithmic - Встановити логарифмічний + + Vertical zooming + - - - Set value + + Quantization controls - - Please enter a new value between -96.0 dBFS and 6.0 dBFS: - Введіть нове значення від -96,0 дБFS до 6,0 дБFS: + + Quantization + - - Please enter a new value between %1 and %2: - Введіть нове значення від %1 до %2: + + Clear ghost notes + - - - LadspaControl - - Link channels - Зв'язати канали + + + Automation Editor - no clip + - - - LadspaControlDialog - - Link Channels - Зв'язати канали + + + Automation Editor - %1 + - - Channel - Канал + + Model is already connected to this clip. + - LadspaControlView + lmms::gui::BassBoosterControlDialog - - Link channels - Зв'язати канали - - - - Value: - Значення: + + FREQ + - - - LadspaEffect - - Unknown LADSPA plugin %1 requested. - Запитаний невідомий модуль LADSPA «%1». + + Frequency: + - - - LcdFloatSpinBox - - Set value + + GAIN - - Please enter a new value between %1 and %2: - Введіть нове значення від %1 до %2: + + Gain: + - - - LcdSpinBox - - Set value + + RATIO - - Please enter a new value between %1 and %2: - Введіть нове значення від %1 до %2: + + Ratio: + - LeftRightNav + lmms::gui::BitInvaderView - - - - Previous - Попередній + + Sample length + - - - - Next - Наступний + + Draw your own waveform here by dragging your mouse on this graph. + - - Previous (%1) - Попередній (%1) + + + Sine wave + - - Next (%1) - Наступний (%1) + + + Triangle wave + - - - LfoController - - LFO Controller - Контролер LFO + + + Saw wave + - - Base value - Основне значення + + + Square wave + - - Oscillator speed - Швидкість хвилі + + + White noise + - - Oscillator amount - Розмір хвилі + + + User-defined wave + - - Oscillator phase - Фаза хвилі + + + Smooth waveform + - - Oscillator waveform - Форма хвилі + + Interpolation + - - Frequency Multiplier - Множник частоти + + Normalize + - LfoControllerDialog - - - LFO - LFO - - - - BASE - БАЗА - + lmms::gui::BitcrushControlDialog - - Base: + + IN - - FREQ - ЧАСТ + + OUT + - - LFO frequency: + + + GAIN - - AMNT - ГЛИБ + + Input gain: + - - Modulation amount: - Кількість модуляції: + + NOISE + - - PHS - ФАЗА + + Input noise: + - - Phase offset: - Зсув фази: + + Output gain: + - - degrees + + CLIP - - Sine wave - Синусоїда + + Output clip: + - - Triangle wave - Трикутник + + Rate enabled + - - Saw wave - Зигзаг + + Enable sample-rate crushing + - - Square wave - Квадратна хвиля + + Depth enabled + - - Moog saw wave - Муг-зигзаг хвиля + + Enable bit-depth crushing + - - Exponential wave - Експоненціальна хвиля + + FREQ + - - White noise - Білий шум + + Sample rate: + - - User-defined shape. -Double click to pick a file. + + STEREO - - Mutliply modulation frequency by 1 + + Stereo difference: - - Mutliply modulation frequency by 100 + + QUANT - - Divide modulation frequency by 100 + + Levels: - Engine + lmms::gui::CPULoadWidget - - Generating wavetables - Генерування синтезатора звукозаписів - - - - Initializing data structures - Ініціалізація структур даних + + DSP total: %1% + - - Opening audio and midi devices - Відкриття аудіо та міді пристроїв + + - Notes and setup: %1% + - - Launching mixer threads - Запуск потоків міксера + + - Instruments: %1% + - - - MainWindow - - Configuration file - Файл налаштувань + + - Effects: %1% + - - Error while parsing configuration file at line %1:%2: %3 - Помилка під час обробки файлу налаштувань в рядку %1:%2:%3 + + - Mixing: %1% + + + + lmms::gui::CarlaInstrumentView - - Could not open file - Не можу відкрити файл + + Show GUI + - - Could not open file %1 for writing. -Please make sure you have write permission to the file and the directory containing the file and try again! - Не вдалось відкрити файл %1 для запису. -Перевірте, чи маєте ви права на запис файлу і каталог що його містить і спробуйте знову! + + Click here to show or hide the graphical user interface (GUI) of Carla. + - - Project recovery - Відновлення проекту + + Params + - - There is a recovery file present. It looks like the last session did not end properly or another instance of LMMS is already running. Do you want to recover the project of this session? - Присутній файл відновлення. Схоже, остання сесія не закінчилася належним чином або інший екземпляр LMMS вже запущений. Ви хочете, відновити проект цієї сесії? + + Available from Carla version 2.1 and up. + + + + lmms::gui::CarlaParamsView - - - Recover - Відновлення + + Search.. + - - Recover the file. Please don't run multiple instances of LMMS when you do this. - Відновлення файлу. Будь ласка, не запускайте кілька копій LMMS під час цієї операції. + + Clear filter text + - - - Discard - Відкинути + + Only show knobs with a connection. + - - Launch a default session and delete the restored files. This is not reversible. - Запуск за замовчуванням з видаленням файла відновлення. Ця дія не відворотня. + + - Parameters + + + + lmms::gui::ClipView - - Version %1 - Версія %1 + + Current position + - - Preparing plugin browser - Підготовка браузера плагінів + + Current length + - - Preparing file browsers - Підготовка переглядача файлів + + + %1:%2 (%3:%4 to %5:%6) + - - My Projects - Мої проекти + + Press <%1> and drag to make a copy. + - - My Samples - Мої записи + + Press <%1> for free resizing. + - - My Presets - Мої передустановки + + Hint + - - My Home - Моя домашня тека + + Delete (middle mousebutton) + - - Root directory - Кореневий каталог + + Delete selection (middle mousebutton) + - - Volumes - Гучності + + Cut + - - My Computer - Мій комп'ютер + + Cut selection + - - &File - &Файл + + Merge Selection + - - &New - &N Новий + + Copy + - - &Open... - &O Відкрити... + + Copy selection + - - Loading background picture + + Paste - - &Save - &S Зберегти + + Mute/unmute (<%1> + middle click) + - - Save &As... - &A Зберегти як... + + Mute/unmute selection (<%1> + middle click) + - - Save as New &Version - Зберегти як нову &Версію + + Clip color + - - Save as default template - Зберегти як шаблон за замовчуванням + + Change + - - Import... - Імпорт... + + Reset + - - E&xport... - &X Експорт ... + + Pick random + + + + lmms::gui::CompressorControlDialog - - E&xport Tracks... - &Експортувати треки ... + + Threshold: + - - Export &MIDI... - Експорт в &MIDI ... + + Volume at which the compression begins to take place + - - &Quit - &Q Вийти + + Ratio: + - - &Edit - &E Редагування + + How far the compressor must turn the volume down after crossing the threshold + - - Undo - Скасувати + + Attack: + - - Redo - Повторити + + Speed at which the compressor starts to compress the audio + - - Settings - Параметри + + Release: + - - &View - &V Перегляд + + Speed at which the compressor ceases to compress the audio + - - &Tools - &T Сервіс + + Knee: + - - &Help - &H Довідка + + Smooth out the gain reduction curve around the threshold + - - Online Help - Онлайн Допомога + + Range: + - - Help - Довідка + + Maximum gain reduction + - - About - Про програму + + Lookahead Length: + - - Create new project - Створити новий проект + + How long the compressor has to react to the sidechain signal ahead of time + - - Create new project from template - Створити новий проект по шаблону + + Hold: + - - Open existing project - Відкрити існуючий проект + + Delay between attack and release stages + - - Recently opened projects - Нещодавні проекти + + RMS Size: + - - Save current project - Зберегти поточний проект + + Size of the RMS buffer + - - Export current project - Експорт проекту + + Input Balance: + - - Metronome + + Bias the input audio to the left/right or mid/side - - - Song Editor - Музичний редактор + + Output Balance: + - - - Beat+Bassline Editor - Редактор шаблонів + + Bias the output audio to the left/right or mid/side + - - - Piano Roll - Нотний редактор + + Stereo Balance: + - - - Automation Editor - Редактор автоматизації + + Bias the sidechain signal to the left/right or mid/side + - - - Mixer - Мікшер Ефектів + + Stereo Link Blend: + - - Show/hide controller rack - Показати/сховати керування контролерами + + Blend between unlinked/maximum/average/minimum stereo linking modes + - - Show/hide project notes - Показати/сховати замітки до проекту + + Tilt Gain: + - - Untitled - Без назви + + Bias the sidechain signal to the low or high frequencies. -6 db is lowpass, 6 db is highpass. + - - Recover session. Please save your work! - Відновлення сесії. Будь ласка, збережіть свою роботу! + + Tilt Frequency: + - - LMMS %1 - LMMS %1 + + Center frequency of sidechain tilt filter + - - Recovered project not saved - Відновлений проект не збережено + + Mix: + - - This project was recovered from the previous session. It is currently unsaved and will be lost if you don't save it. Do you want to save it now? - Цей проект буво відновлено з попередньої сесії. В даний час він не збережений і буде втрачений, якщо ви його не збережете. Ви хочете, зберегти його зараз? + + Balance between wet and dry signals + - - Project not saved - Проект не збережений + + Auto Attack: + - - The current project was modified since last saving. Do you want to save it now? - Проект був змінений. Зберегти його зараз? + + Automatically control attack value depending on crest factor + - - Open Project - Відкрити проект + + Auto Release: + - - LMMS (*.mmp *.mmpz) - LMMS (*.mmp *.mmpz) + + Automatically control release value depending on crest factor + - - Save Project - Зберегти проект + + Output gain + - - LMMS Project - LMMS проект + + + Gain + - - LMMS Project Template - Шаблон LMMS проекту + + Output volume + - - Save project template - Зберегти шаблон проекту + + Input gain + - - Overwrite default template? - Переписати шаблон за замовчуванням? + + Input volume + - - This will overwrite your current default template. - Це перезапише поточний шаблон за замовчуванням. + + Root Mean Square + - - Help not available - Довідка недоступна + + Use RMS of the input + - - Currently there's no help available in LMMS. -Please visit http://lmms.sf.net/wiki for documentation on LMMS. - Поки що довідка для LMMS не написана. -Ймовірно, Ви зможете знайти потрібні матеріали на http://lmms.sf.net/wiki. + + Peak + - - Controller Rack - Стійка контролерів + + Use absolute value of the input + - - Project Notes - Примітки проекту + + Left/Right + - - Fullscreen + + Compress left and right audio - - Volume as dBFS - Відображати гучність в децибелах + + Mid/Side + - - Smooth scroll - Плавне прокручування + + Compress mid and side audio + - - Enable note labels in piano roll - Включити позначення нот у музичному редакторі + + Compressor + - - MIDI File (*.mid) - MIDI-файл (* mid) + + Compress the audio + - - - untitled - Без назви + + Limiter + - - - Select file for project-export... - Вибір файлу для експорту проекту ... + + Set Ratio to infinity (is not guaranteed to limit audio volume) + - - Select directory for writing exported tracks... - Виберіть теку для запису експортованих доріжок ... + + Unlinked + - - Save project - Зберегти проект + + Compress each channel separately + - - Project saved - Проект збережено + + Maximum + - - The project %1 is now saved. - Проект %1 збережено. + + Compress based on the loudest channel + - - Project NOT saved. - Проект НЕ ЗБЕРЕЖЕНО. + + Average + - - The project %1 was not saved! - Проект %1 не збережено! + + Compress based on the averaged channel volume + - - Import file - Імпорт файлу + + Minimum + - - MIDI sequences - MiDi послідовність + + Compress based on the quietest channel + - - Hydrogen projects - Hydrogen проекти + + Blend + - - All file types - Всі типи файлів + + Blend between stereo linking modes + - - - MeterDialog - - - Meter Numerator - Шкала чисел + + Auto Makeup Gain + - - Meter numerator + + Automatically change makeup gain depending on threshold, knee, and ratio settings - - - Meter Denominator - Шкала поділів + + + Soft Clip + - - Meter denominator + + Play the delta signal - - TIME SIG - ПЕРІОД + + Use the compressor's output as the sidechain input + - - - MeterModel - - Numerator - Чисельник + + Lookahead Enabled + - - Denominator - Знаменник + + Enable Lookahead, which introduces 20 milliseconds of latency + - MidiCCRackView + lmms::gui::ControllerConnectionDialog - - - MIDI CC Rack - %1 + + Connection Settings - - MIDI CC Knobs: + + MIDI CONTROLLER - - CC %1 + + Input channel - - - MidiController - - MIDI Controller - Контролер MIDI + + CHANNEL + - - unnamed_midi_controller - нерозпізнаний міді контролер + + Input controller + - - - MidiImport - - - Setup incomplete - Установку не завершено + + CONTROLLER + + + + + + Auto Detect + - - You have not set up a default soundfont in the settings dialog (Edit->Settings). Therefore no sound will be played back after importing this MIDI file. You should download a General MIDI soundfont, specify it in settings dialog and try again. + + MIDI-devices to receive MIDI-events from - - You did not compile LMMS with support for SoundFont2 player, which is used to add default sound to imported MIDI files. Therefore no sound will be played back after importing this MIDI file. - Ви не увімкнули підтримку програвача SoundFont2 при компіляції LMMS, він використовується для додавання основного звуку в імпортовані Міді файли, тому після імпорту цього міді файлу звуку не буде. + + USER CONTROLLER + - - MIDI Time Signature Numerator + + MAPPING FUNCTION - - MIDI Time Signature Denominator + + OK - - Numerator - Чисельник + + Cancel + - - Denominator - Знаменник + + LMMS + - - Track - Трек + + Cycle Detected. + - MidiJack + lmms::gui::ControllerRackView - - JACK server down - When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (title) - JACK-сервер не доступний + + Controller Rack + - - The JACK server seems to be shuted down. - When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (dialog message) - Здається, сервер JACK відключений. + + Add + - - - MidiPatternW - - MIDI Pattern + + Confirm Delete - - Time Signature: + + Confirm delete? There are existing connection(s) associated with this controller. There is no way to undo. + + + lmms::gui::ControllerView - - - - 1/4 + + Controls - - 2/4 + + Rename controller - - 3/4 + + Enter the new name for this controller - - 4/4 + + LFO - - 5/4 + + Move &up - - 6/4 + + Move &down - - Measures: + + &Remove this controller - - - - 1 + + Re&name this controller + + + lmms::gui::CrossoverEQControlDialog - - 2 + + Band 1/2 crossover: - - 3 + + Band 2/3 crossover: - - 4 + + Band 3/4 crossover: - - 5 - 5 + + Band 1 gain + - - 6 - 6 + + Band 1 gain: + - - 7 - 7 + + Band 2 gain + - - 8 + + Band 2 gain: - - 9 - 9 + + Band 3 gain + - - 10 + + Band 3 gain: - - 11 - 11 + + Band 4 gain + - - 12 + + Band 4 gain: - - 13 - 13 + + Band 1 mute + - - 14 + + Mute band 1 - - 15 + + Band 2 mute - - 16 + + Mute band 2 - - Default Length: + + Band 3 mute - - - 1/16 + + Mute band 3 - - - 1/15 + + Band 4 mute - - - 1/12 + + Mute band 4 + + + lmms::gui::DelayControlsDialog - - - 1/9 + + DELAY - - - 1/8 + + Delay time - - - 1/6 + + FDBK - - - 1/3 + + Feedback amount - - - 1/2 + + RATE - - Quantize: + + LFO frequency - - &File - &Файл + + AMNT + - - &Edit - &E Редагування + + LFO amount + - - &Quit - &Q Вийти + + Out gain + - - &Insert Mode + + Gain + + + lmms::gui::DispersionControlDialog - - F + + AMOUNT - - &Velocity Mode + + Number of all-pass filters - - D + + FREQ - - Select All + + Frequency: - - A + + RESO - - - MidiPort - - Input channel - Вхід + + Resonance: + - - Output channel - Вихід + + FEED + - - Input controller - Контролер входу + + Feedback: + - - Output controller - Контролер виходу + + DC Offset Removal + - - Fixed input velocity - Постійна швидкість введення + + Remove DC Offset + + + + lmms::gui::DualFilterControlDialog - - Fixed output velocity - Постійна швидкість виведення + + + FREQ + - - Fixed output note - Постійний вихід нот + + + Cutoff frequency + - - Output MIDI program - Програма для виведення MiDi + + + RESO + - - Base velocity - Базова швидкість + + + Resonance + - - Receive MIDI-events - Приймати події MIDI + + + GAIN + - - Send MIDI-events - Відправляти події MIDI + + + Gain + - - - MidiSetupWidget - - Device + + MIX - - - MonstroInstrument - - Osc 1 volume + + Mix - - Osc 1 panning + + Filter 1 enabled - - Osc 1 coarse detune + + Filter 2 enabled - - Osc 1 fine detune left + + Enable/disable filter 1 - - Osc 1 fine detune right + + Enable/disable filter 2 + + + lmms::gui::DynProcControlDialog - - Osc 1 stereo phase offset + + INPUT - - Osc 1 pulse width + + Input gain: - - Osc 1 sync send on rise + + OUTPUT - - Osc 1 sync send on fall + + Output gain: - - Osc 2 volume + + ATTACK - - Osc 2 panning + + Peak attack time: - - Osc 2 coarse detune + + RELEASE - - Osc 2 fine detune left + + Peak release time: - - Osc 2 fine detune right + + + Reset wavegraph - - Osc 2 stereo phase offset + + + Smooth wavegraph - - Osc 2 waveform + + + Increase wavegraph amplitude by 1 dB - - Osc 2 sync hard + + + Decrease wavegraph amplitude by 1 dB - - Osc 2 sync reverse + + Stereo mode: maximum - - Osc 3 volume + + Process based on the maximum of both stereo channels - - Osc 3 panning + + Stereo mode: average - - Osc 3 coarse detune + + Process based on the average of both stereo channels - - Osc 3 Stereo phase offset - Зміщення стерео-фази осциллятора 3 + + Stereo mode: unlinked + - - Osc 3 sub-oscillator mix + + Process each stereo channel independently + + + lmms::gui::Editor - - Osc 3 waveform 1 + + Transport controls - - Osc 3 waveform 2 + + Play (Space) - - Osc 3 sync hard + + Stop (Space) - - Osc 3 Sync reverse + + Record - - LFO 1 waveform + + Record while playing - - LFO 1 attack + + Toggle Step Recording + + + lmms::gui::EffectRackView - - LFO 1 rate + + EFFECTS CHAIN - - LFO 1 phase + + Add effect + + + lmms::gui::EffectSelectDialog - - LFO 2 waveform + + Add effect - - LFO 2 attack + + + Name - - LFO 2 rate + + Type - - LFO 2 phase + + All - - Env 1 pre-delay + + Search - - Env 1 attack + + Description - - Env 1 hold + + Author + + + lmms::gui::EffectView - - Env 1 decay + + On/Off - - Env 1 sustain + + W/D - - Env 1 release + + Wet Level: - - Env 1 slope + + DECAY - - Env 2 pre-delay + + Time: - - Env 2 attack + + GATE - - Env 2 hold + + Gate: - - Env 2 decay + + Controls - - Env 2 sustain + + Move &up - - Env 2 release + + Move &down - - Env 2 slope + + &Remove this plugin + + + lmms::gui::EnvelopeAndLfoView - - Osc 2+3 modulation + + + AMT - - Selected view - Перегляд обраного + + + Modulation amount: + - - Osc 1 - Vol env 1 + + + DEL - - Osc 1 - Vol env 2 + + + Pre-delay: - - Osc 1 - Vol LFO 1 + + + ATT - - Osc 1 - Vol LFO 2 + + + Attack: - - Osc 2 - Vol env 1 + + HOLD - - Osc 2 - Vol env 2 + + Hold: - - Osc 2 - Vol LFO 1 + + DEC - - Osc 2 - Vol LFO 2 + + Decay: - - Osc 3 - Vol env 1 + + SUST - - Osc 3 - Vol env 2 + + Sustain: - - Osc 3 - Vol LFO 1 + + REL - - Osc 3 - Vol LFO 2 + + Release: - - Osc 1 - Phs env 1 + + SPD - - Osc 1 - Phs env 2 + + Frequency: - - Osc 1 - Phs LFO 1 + + FREQ x 100 - - Osc 1 - Phs LFO 2 + + Multiply LFO frequency by 100 - - Osc 2 - Phs env 1 + + MOD ENV AMOUNT - - Osc 2 - Phs env 2 + + Control envelope amount by this LFO - - Osc 2 - Phs LFO 1 + + Hint - - Osc 2 - Phs LFO 2 + + Drag and drop a sample into this window. + + + lmms::gui::EnvelopeGraph - - Osc 3 - Phs env 1 + + Scaling - - Osc 3 - Phs env 2 + + Dynamic - - Osc 3 - Phs LFO 1 + + Uses absolute spacings but switches to relative spacing if it's running out of space - - Osc 3 - Phs LFO 2 + + Absolute - - Osc 1 - Pit env 1 + + Provides enough potential space for each segment but does not scale - - Osc 1 - Pit env 2 + + Relative - - Osc 1 - Pit LFO 1 + + Always uses all of the available space to display the envelope graph + + + lmms::gui::EqControlsDialog - - Osc 1 - Pit LFO 2 + + HP - - Osc 2 - Pit env 1 + + Low-shelf - - Osc 2 - Pit env 2 + + Peak 1 - - Osc 2 - Pit LFO 1 + + Peak 2 - - Osc 2 - Pit LFO 2 + + Peak 3 - - Osc 3 - Pit env 1 + + Peak 4 - - Osc 3 - Pit env 2 + + High-shelf - - Osc 3 - Pit LFO 1 + + LP - - Osc 3 - Pit LFO 2 + + Input gain - - Osc 1 - PW env 1 + + + + Gain - - Osc 1 - PW env 2 + + Output gain - - Osc 1 - PW LFO 1 + + Bandwidth: - - Osc 1 - PW LFO 2 + + Octave - - Osc 3 - Sub env 1 + + Resonance: - - Osc 3 - Sub env 2 + + Frequency: - - Osc 3 - Sub LFO 1 + + LP group - - Osc 3 - Sub LFO 2 + + HP group + + + lmms::gui::EqHandle - - - Sine wave - Синусоїда + + Reso: + - - Bandlimited Triangle wave - Трикутна хвиля з обмеженою смугою + + BW: + - - Bandlimited Saw wave - Зигзаг хвиля з обмеженою смугою + + + Freq: + + + + lmms::gui::ExportProjectDialog - - Bandlimited Ramp wave - Спадаюча хвиля з обмеженою смугою + + Could not open file + - - Bandlimited Square wave - Квадратна хвиля з обмеженою смугою + + Could not open file %1 for writing. +Please make sure you have write permission to the file and the directory containing the file and try again! + - - Bandlimited Moog saw wave - Муг-зигзаг хвиля з обмеженою смугою + + Export project to %1 + - - - Soft square wave - М'яка прямокутна хвиля + + ( Fastest - biggest ) + - - Absolute sine wave - Абсолютна синусоїдна хвиля + + ( Slowest - smallest ) + - - - Exponential wave - Експоненціальна хвиля + + Error + - - White noise - Білий шум + + Error while determining file-encoder device. Please try to choose a different output format. + - - Digital Triangle wave - Цифрова трикутна хвиля + + Rendering: %1% + + + + lmms::gui::Fader - - Digital Saw wave - Цифрова зигзаг хвиля + + Set value + - - Digital Ramp wave - Цифрова спадна хвиля + + Please enter a new value between %1 and %2: + - - Digital Square wave - Цифрова квадратна хвиля + + Volume: %1 dBFS + + + + lmms::gui::FileBrowser - - Digital Moog saw wave - Цифрова Муг-зигзаг хвиля + + Browser + - - Triangle wave - Трикутна хвиля + + Search + - - Saw wave - Зигзаг + + Refresh list + - - Ramp wave - Спадна хвиля + + User content + - - Square wave - Квадратна хвиля + + Factory content + - - Moog saw wave - Муг-зигзаг хвиля + + Hidden content + + + + lmms::gui::FileBrowserTreeWidget - - Abs. sine wave - Синусоїда по модулю + + Send to active instrument-track + - - Random - Випадково + + Open containing folder + - - Random smooth - Випадкове зглажування + + Song Editor + - - - MonstroView - - Operators view - Операторский вид + + Pattern Editor + - - Matrix view - Матричний вигляд + + Send to new AudioFileProcessor instance + - - - - Volume - Гучність + + Send to new instrument track + - - - - Panning - Баланс + + (%2Enter) + - - - - Coarse detune - Грубе підстроювання + + Send to new sample track (Shift + Enter) + - - - - semitones - півтон(а,ів) + + Loading sample + - - - Fine tune left + + Please wait, loading sample for preview... - - - - - cents - відсотків + + Error + - - - Fine tune right + + %1 does not appear to be a valid %2 file - - - - Stereo phase offset - Зміщення стерео-фази + + --- Factory files --- + + + + lmms::gui::FileDialog - - - - - - deg - град + + %1 files + - - Pulse width - Довжина імпульсу + + All audio files + - - Send sync on pulse rise - Відправляти синхронізацію на підйомі імпульсу + + Other files + + + + lmms::gui::FlangerControlsDialog - - Send sync on pulse fall - Відправити синхронізацію на падінні пульсу + + DELAY + - - Hard sync oscillator 2 - Жорстка синхронізація осциллятора 2 + + Delay time: + - - Reverse sync oscillator 2 - Верерс синхронізація осциллятора 2 + + RATE + - - Sub-osc mix - Мікс суб-осциляторів + + Period: + - - Hard sync oscillator 3 - Жорстка синхронізація осциллятора 3 + + AMNT + - - Reverse sync oscillator 3 - Верерс синхронізація осциллятора 3 + + Amount: + - - - - - Attack - Вступ + + PHASE + - - - Rate - Частота вибірки + + Phase: + - - - Phase - Фаза + + FDBK + - - - Pre-delay - Передзатримка + + Feedback amount: + - - - Hold - Утримання + + NOISE + - - - Decay - Згасання + + White noise amount: + - - - Sustain - Витримка + + Invert + + + + lmms::gui::FloatModelEditorBase - - - Release - Зменшення + + Set linear + - - - Slope - Нахил + + Set logarithmic + - - Mix osc 2 with osc 3 + + + Set value - - Modulate amplitude of osc 3 by osc 2 + + Please enter a new value between -96.0 dBFS and 6.0 dBFS: - - Modulate frequency of osc 3 by osc 2 + + Please enter a new value between %1 and %2: + + + lmms::gui::FreeBoyInstrumentView - - Modulate phase of osc 3 by osc 2 + + Sweep time: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Modulation amount - Глибина модуляції + + + Sweep time + - - - MultitapEchoControlDialog - - Length - Довжина + + Sweep rate shift amount: + - - Step length: - Довжина кроку: + + Sweep rate shift amount + - - Dry - Сухий + + + Wave pattern duty cycle: + - - Dry gain: + + + Wave pattern duty cycle - - Stages - Етапи + + Square channel 1 volume: + - - Low-pass stages: + + Square channel 1 volume - - Swap inputs - Обмін входами + + + + Length of each step in sweep: + - - Swap left and right input channels for reflections + + + + Length of each step in sweep - - - NesInstrument - - Channel 1 coarse detune + + Square channel 2 volume: - - Channel 1 volume - Гучність першого каналу + + Square channel 2 volume + - - Channel 1 envelope length + + Wave pattern channel volume: - - Channel 1 duty cycle + + Wave pattern channel volume - - Channel 1 sweep amount + + Noise channel volume: - - Channel 1 sweep rate + + Noise channel volume - - Channel 2 Coarse detune - Грубе підстроювання 2 каналу + + SO1 volume (Right): + - - Channel 2 Volume - Гучність 2 каналу + + SO1 volume (Right) + - - Channel 2 envelope length + + SO2 volume (Left): - - Channel 2 duty cycle + + SO2 volume (Left) - - Channel 2 sweep amount + + Treble: - - Channel 2 sweep rate + + Treble - - Channel 3 coarse detune + + Bass: - - Channel 3 volume - Гучність третього каналу + + Bass + - - Channel 4 volume - Гучність четвертого каналу + + Sweep direction + - - Channel 4 envelope length + + + + + + Volume sweep direction - - Channel 4 noise frequency + + Shift register width - - Channel 4 noise frequency sweep + + Channel 1 to SO1 (Right) - - Master volume - Основна гучність + + Channel 2 to SO1 (Right) + - - Vibrato - Вібрато + + Channel 3 to SO1 (Right) + - - - NesInstrumentView - - - - - Volume - Гучність + + Channel 4 to SO1 (Right) + - - - - Coarse detune - Грубе підстроювання + + Channel 1 to SO2 (Left) + - - - - Envelope length - Довжина обвідної + + Channel 2 to SO2 (Left) + - - Enable channel 1 - Увімкнути канал 1 + + Channel 3 to SO2 (Left) + - - Enable envelope 1 - Увімкнути обвідну 1 + + Channel 4 to SO2 (Left) + - - Enable envelope 1 loop - Увімкнти повтор обвідної 1 + + Wave pattern graph + + + + lmms::gui::GigInstrumentView - - Enable sweep 1 - Увімкнути розгортку 1 + + + Open GIG file + - - - Sweep amount - Кількість розгортки + + Choose patch + - - - Sweep rate - Темп розгортки + + Gain: + - - - 12.5% Duty cycle - 12.5% Робочого циклу + + GIG Files (*.gig) + + + + lmms::gui::GranularPitchShifterControlDialog - - - 25% Duty cycle - 25% Робочого циклу + + Grain Size: + - - - 50% Duty cycle - 50% Робочого циклу + + Spray: + - - - 75% Duty cycle - 75% Робочого циклу + + Jitter: + - - Enable channel 2 - Увімкнути канал 2 + + Twitch: + - - Enable envelope 2 - Увімкнути обвідну 2 + + Spray Stereo Spread: + - - Enable envelope 2 loop - Увімкнти повтор обвідної 2 + + Grain Shape: + - - Enable sweep 2 - Увімкнути розгортку 2 + + Fade Length: + - - Enable channel 3 - Увімкнути канал 3 + + Feedback: + - - Noise Frequency - Частота шуму + + Minimum Allowed Latency: + - - Frequency sweep - Частота темпу + + Density: + - - Enable channel 4 - Увімкнути канал 4 + + Glide: + - - Enable envelope 4 - Увімкнути обвідну 4 + + + Pitch + - - Enable envelope 4 loop - Увімкнти повтор обвідної 4 + + + Pitch Stereo Spread + - - Quantize noise frequency when using note frequency - Квантування частоту шуму при використанні частоти ноти + + Open help window + - - Use note frequency for noise - Використовувати частоту ноти для шуму + + + Prefilter + + + + lmms::gui::GuiApplication - - Noise mode - Форма шуму + + Working directory + - - Master volume - Основна гучність + + The LMMS working directory %1 does not exist. Create it now? You can change the directory later via Edit -> Settings. + - - Vibrato - Вібрато + + Preparing UI + - - - OpulenzInstrument - - Patch - Патч + + Preparing song editor + - - Op 1 attack + + Preparing mixer - - Op 1 decay + + Preparing controller rack - - Op 1 sustain + + Preparing project notes - - Op 1 release + + Preparing microtuner - - Op 1 level + + Preparing pattern editor - - Op 1 level scaling + + Preparing piano roll - - Op 1 frequency multiplier + + Preparing automation editor + + + lmms::gui::InstrumentFunctionArpeggioView - - Op 1 feedback + + ARPEGGIO - - Op 1 key scaling rate + + RANGE - - Op 1 percussive envelope + + Arpeggio range: - - Op 1 tremolo + + octave(s) - - Op 1 vibrato + + REP - - Op 1 waveform + + Note repeats: - - Op 2 attack + + time(s) + + + + + CYCLE + + + + + Cycle notes: - - Op 2 decay + + note(s) - - Op 2 sustain + + SKIP - - Op 2 release + + Skip rate: - - Op 2 level + + + + % - - Op 2 level scaling + + MISS - - Op 2 frequency multiplier + + Miss rate: - - Op 2 key scaling rate + + TIME - - Op 2 percussive envelope + + Arpeggio time: - - Op 2 tremolo + + ms - - Op 2 vibrato + + GATE - - Op 2 waveform + + Arpeggio gate: - - FM - FM + + Chord: + - - Vibrato depth + + Direction: - - Tremolo depth + + Mode: - OpulenzInstrumentView - - - - Attack - Вступ - + lmms::gui::InstrumentFunctionNoteStackingView - - - Decay - Згасання + + STACKING + - - - Release - Зменшення + + Chord: + - - - Frequency multiplier - Множник частоти + + RANGE + - - - OscillatorObject - - Osc %1 waveform - Форма сигналу осциллятора %1 + + Chord range: + - - Osc %1 harmonic - Осц %1 гармонійний + + octave(s) + + + + lmms::gui::InstrumentMidiIOView - - - Osc %1 volume - Гучність осциллятора %1 + + ENABLE MIDI INPUT + - - - Osc %1 panning - Стереобаланс для осциллятора %1 + + + CHAN + This string must be be short, its width must be less than * width of LCD spin-box of two digits + - - - Osc %1 fine detuning left - Точне підстроювання лівого каналу осциллятора %1 + + + VELOC + This string must be be short, its width must be less than * width of LCD spin-box of three digits + - - Osc %1 coarse detuning - Підстроювання осциллятора %1 грубе + + ENABLE MIDI OUTPUT + - - Osc %1 fine detuning right - Підстроювання правого каналу осциллятора %1 тонка + + PROG + This string must be be short, its width must be less than the * width of LCD spin-box of three digits + - - Osc %1 phase-offset - Зміщення фази осциллятора %1 + + NOTE + This string must be be short, its width must be less than * width of LCD spin-box of three digits + - - Osc %1 stereo phase-detuning - Підстроювання стерео-фази осциллятора %1 + + MIDI devices to receive MIDI events from + - - Osc %1 wave shape - Гладкість сигналу осциллятора %1 + + MIDI devices to send MIDI events to + - - Modulation type %1 - Тип модуляції %1 + + VELOCITY MAPPING + - - - Oscilloscope - - Oscilloscope + + MIDI VELOCITY - - Click to enable - Натисніть для включення + + MIDI notes at this velocity correspond to 100% note velocity. + - PatchesDialog + lmms::gui::InstrumentSoundShapingView - - Qsynth: Channel Preset - Q-Синтезатор: Канал передустановлено + + TARGET + - - Bank selector - Селектор банку + + FILTER + - - Bank - Банк + + FREQ + - - Program selector - Селектор програм + + Cutoff frequency: + - - Patch - Патч + + Hz + - - Name - І'мя + + Q/RESO + - - OK - ОК + + Q/Resonance: + - - Cancel - Скасувати + + Envelopes, LFOs and filters are not supported by the current instrument. + - PatmanView + lmms::gui::InstrumentTrackView - - Open patch + + Mixer channel - - Loop - Повтор + + Volume + - - Loop mode - Режим повтору + + Volume: + - - Tune - Підлаштувати + + VOL + - - Tune mode - Тип підстроювання + + Panning + - - No file selected - Файл не вибрано + + Panning: + - - Open patch file - Відкрити патч-файл + + PAN + - - Patch-Files (*.pat) - Патч-файли (*.pat) + + MIDI + - - - MidiClipView - - Open in piano-roll - Відкрити в редакторі нот + + Input + - - Set as ghost in piano-roll + + Output - - Clear all notes - Очистити всі ноти + + Open/Close MIDI CC Rack + - - Reset name - Скинути назву + + %1: %2 + + + + lmms::gui::InstrumentTrackWindow - - Change name - Перейменувати + + Volume + - - Add steps - Додати такти + + Volume: + - - Remove steps - Видалити такти + + VOL + - - Clone Steps - Клонувати такти + + Panning + - - - PeakController - - Peak Controller - Контролер вершин + + Panning: + - - Peak Controller Bug - Контролер вершин з багом + + PAN + - - Due to a bug in older version of LMMS, the peak controllers may not be connect properly. Please ensure that peak controllers are connected properly and re-save this file. Sorry for any inconvenience caused. - Через помилку в старій версії LMMS контролери вершин не можуть правильно підключатися. Будь-ласка переконайтеся, що контролери вершин правильно приєднані і перезбережіть цей файл, вибачте, за заподіяні незручності. + + Pitch + - - - PeakControllerDialog - - PEAK - ПІК + + Pitch: + - - LFO Controller - Контролер LFO + + cents + - - - PeakControllerEffectControlDialog - - BASE - БАЗА + + PITCH + - - Base: + + Pitch range (semitones) - - AMNT - ГЛИБ + + RANGE + - - Modulation amount: - Глибина модуляції: + + Mixer channel + - - MULT - МНОЖ + + CHANNEL + - - Amount multiplicator: + + Save current instrument track settings in a preset file + + + + + SAVE - - ATCK - ВСТУП + + Envelope, filter & LFO + - - Attack: - Вступ: + + Chord stacking & arpeggio + - - DCAY - ЗГАС + + Effects + - - Release: - Зменшення: + + MIDI + - - TRSH - TRSH + + Tuning and transposition + - - Treshold: - Поріг: + + Save preset + - - Mute output - Заглушити вивід + + XML preset file (*.xpf) + - - Absolute value + + Plugin - PeakControllerEffectControls + lmms::gui::InstrumentTuningView - - Base value - Опорне значення + + GLOBAL TRANSPOSITION + - - Modulation amount - Глибина модуляції + + Enables the use of global transposition + - - Attack - Вступ + + Microtuner is not available for MIDI-based instruments. + - - Release - Зменшення + + MICROTUNER + - - Treshold - Поріг + + Active scale: + - - Mute output - Заглушити вивід + + + Edit scales and keymaps + - - Absolute value + + Active keymap: - - Amount multiplicator + + Import note ranges from keymap + + + + + When enabled, the first, last and base notes of this instrument will be overwritten with values specified by the selected keymap. - PianoRoll + lmms::gui::KickerInstrumentView - - Note Velocity - Гучність нот + + Start frequency: + - - Note Panning - Стереофонія нот + + End frequency: + - - Mark/unmark current semitone - Відмітити/Зняти відмітку з поточного півтону + + Frequency slope: + - - Mark/unmark all corresponding octave semitones - Відмітити/Зняти всі відповідні півтони октави + + Gain: + - - Mark current scale - Відмітити поточний підйом + + Envelope length: + - - Mark current chord - Відмітити поточний акорд + + Envelope slope: + - - Unmark all - Зняти виділення + + Click: + - - Select all notes on this key - Вибрати всі ноти на цій тональності + + Noise: + - - Note lock - Фіксація нот + + Start distortion: + - - Last note - По останій ноті + + End distortion: + + + + lmms::gui::LOMMControlDialog - - No key + + Depth: - - No scale - Без підйому + + Compression amount for all bands + - - No chord - Прибрати акорди + + Time: + - - Nudge + + Attack/release scaling for all bands - - Snap + + Input Volume: - - Velocity: %1% - Гучність %1% + + Input volume + - - Panning: %1% left - Баланс %1% лівий + + Output Volume: + - - Panning: %1% right - Баланс %1% правий + + Output volume + - - Panning: center - Баланс: по середині + + Upward Depth: + - - Glue notes failed + + Upward compression amount for all bands - - Please select notes to glue first. + + Downward Depth: - - Please open a clip by double-clicking on it! - Відкрийте шаблон за допомогою подвійного клацання мишею! + + Downward compression amount for all bands + - - - Please enter a new value between %1 and %2: - Введіть нове значення від %1 до %2: + + High/Mid Crossover + - - - PianoRollWindow - - Play/pause current clip (Space) - Гра/Пауза поточної мелодії (Пробіл) + + Mid/Low Crossover + - - Record notes from MIDI-device/channel-piano - Записати ноти з цифрового музичного інструмента (MIDI) + + High/mid band split + - - Record notes from MIDI-device/channel-piano while playing song or BB track - Записати ноти з цифрового музичного інструменту (MIDI) під час відтворення пісні або доріжки Ритм-Басу + + Mid/low band split + - - Record notes from MIDI-device/channel-piano, one step at the time + + Enable High Band - - Stop playing of current clip (Space) - Зупинити програвання поточної мелодії (Пробіл) + + Enable Mid Band + - - Edit actions - Зміна + + Enable Low Band + - - Draw mode (Shift+D) - Режим малювання (Shift + D) + + High Input Volume: + - - Erase mode (Shift+E) - Режим стирання (Shift+E) + + Input volume for high band + - - Select mode (Shift+S) - Режим вибору нот (Shift+S) + + Mid Input Volume: + - - Pitch Bend mode (Shift+T) - Режим Pitch Bend (Shift+T) + + Input volume for mid band + - - Quantize - Квантовать + + Low Input Volume: + - - Quantize positions + + Input volume for low band - - Quantize lengths + + High Output Volume: - - File actions + + Output volume for high band - - Import clip + + Mid Output Volume: - - - Export clip + + Output volume for mid band - - Copy paste controls - Управління копіюванням та вставкою + + Low Output Volume: + - - Cut (%1+X) + + Output volume for low band - - Copy (%1+C) + + Above Threshold High - - Paste (%1+V) + + Downward compression threshold for high band - - Timeline controls - Управління хронологією + + Above Threshold Mid + - - Glue + + Downward compression threshold for mid band - - Knife + + Above Threshold Low - - Fill + + Downward compression threshold for low band - - Cut overlaps + + Above Ratio High - - Min length as last + + Downward compression ratio for high band - - Max length as last + + Above Ratio Mid - - Zoom and note controls - Управління масштабом і нотами + + Downward compression ratio for mid band + - - Horizontal zooming + + Above Ratio Low - - Vertical zooming + + Downward compression ratio for low band - - Quantization - Квантування + + Below Threshold High + - - Note length + + Upward compression threshold for high band - - Key + + Below Threshold Mid - - Scale + + Upward compression threshold for mid band - - Chord + + Below Threshold Low - - Snap mode + + Upward compression threshold for low band - - Clear ghost notes + + Below Ratio High - - - Piano-Roll - %1 - Нотний редактор - %1 + + Upward compression ratio for high band + - - - Piano-Roll - no clip - Нотний редактор - без шаблону + + Below Ratio Mid + - - - XML clip file (*.xpt *.xptz) + + Upward compression ratio for mid band - - Export clip success + + Below Ratio Low - - Clip saved to %1 + + Upward compression ratio for low band - - Import clip. + + Attack High: - - You are about to import a clip, this will overwrite your current clip. Do you want to continue? + + Attack time for high band - - Open clip + + Attack Mid: - - Import clip success + + Attack time for mid band - - Imported clip %1! + + Attack Low: - - - PianoView - - Base note - Опорна нота + + Attack time for low band + - - First note + + Release High: - - Last note - По останій ноті + + Release time for high band + - - - Plugin - - Plugin not found - Модуль не знайдено + + Release Mid: + - - The plugin "%1" wasn't found or could not be loaded! -Reason: "%2" - Модуль «%1» відсутній чи не може бути завантажений! -Причина: «%2» + + Release time for mid band + - - Error while loading plugin - Помилка завантаження модуля + + Release Low: + - - Failed to load plugin "%1"! - Не вдалося завантажити модуль «%1»! + + Release time for low band + - - - PluginBrowser - - Instrument Plugins - Модулі інструментів + + RMS Time: + - - Instrument browser - Огляд інструментів + + RMS size for sidechain signal (set to 0 for Peak mode) + - - Drag an instrument into either the Song-Editor, the Beat+Bassline Editor or into an existing instrument track. - Ви можете переносити потрібні вам інструменти з цієї панелі в музичний, ритм-бас редактор або в існуючу доріжку інструменту. + + Knee: + - - no description - опис відсутній + + Knee size for all compressors + - - A native amplifier plugin - Рідний плагін підсилення + + Range: + - - Simple sampler with various settings for using samples (e.g. drums) in an instrument-track - Простий семплер з різними налаштуваннями для використання записів (наприклад, ударні) в інструментальному трекі + + Maximum gain increase for all bands + - - Boost your bass the fast and simple way - Накачай свій бас швидко і просто + + Balance: + - - Customizable wavetable synthesizer - Налаштовуваний синтезатор звукозаписів (wavetable) + + Bias input volume towards one channel + - - An oversampling bitcrusher - Перевибірка малого дробдення + + Scale output volume with Depth + - - Carla Patchbay Instrument - Carla Комутаційний інструмент + + Scale output volume with Depth parameter + - - Carla Rack Instrument - Carla підставочний інструмент + + Stereo Link + - - A dynamic range compressor. + + Apply same gain change to both channels - - A 4-band Crossover Equalizer - 4-смуговий еквалайзер Кросовер + + Auto Time: + - - A native delay plugin - Рідний плагін затримки + + Speed up attack and release times when transients occur + - - A Dual filter plugin - Плагін подвійного фільтру + + Mix: + - - plugin for processing dynamics in a flexible way - плагін для обробки динаміки гнучким методом + + Wet/Dry of all bands + - - A native eq plugin - Рідний eq плагін + + Feedback + - - A native flanger plugin - Рідний фланжер плагін + + Use output as sidechain signal instead of input + + + + + Mid/Side + - - Emulation of GameBoy (TM) APU - Емуляція GameBoy (ТМ) + + Compress mid/side channels instead of left/right + - - Player for GIG files - Програвач GIG файлів + + + Suppress upward compression for side band + - - Filter for importing Hydrogen files into LMMS - Фільтр для імпорту Hydrogen файлів в LMMS + + + Lookahead + - - Versatile drum synthesizer - Універсальний барабанний синтезатор + + Lookahead length + - - List installed LADSPA plugins - Показати встановлені модулі LADSPA + + Clear all parameters + + + + lmms::gui::LadspaBrowserView - - plugin for using arbitrary LADSPA-effects inside LMMS. - Модуль, що дозволяє використовувати в LMMS будь які ефекти LADSPA. + + + Available Effects + - - Incomplete monophonic imitation TB-303 - Незавершена монофонічна імітація TB-303 + + + Unavailable Effects + - - plugin for using arbitrary LV2-effects inside LMMS. + + + Instruments - - plugin for using arbitrary LV2 instruments inside LMMS. + + + Analysis Tools - - Filter for exporting MIDI-files from LMMS - Фільтри для експорту MIDI-файлів з LMMS + + + Don't know + - - Filter for importing MIDI-files into LMMS - Фільтр для включення файлу MIDI в проект ЛММС + + Type: + + + + lmms::gui::LadspaControlDialog - - Monstrous 3-oscillator synth with modulation matrix - Монстро 3-осцилляторний синт з матрицею модуляції + + Link Channels + - - A multitap echo delay plugin - Плагін багаторазової послідовної затримки відлуння + + Channel + + + + lmms::gui::LadspaControlView - - A NES-like synthesizer - NES-подібний синтезатор + + Link channels + - - 2-operator FM Synth - 2-режимний синт модуляції частот (FM synth) + + Value: + + + + lmms::gui::LadspaDescription - - Additive Synthesizer for organ-like sounds - Синтезатор звуків нашталт органу + + Plugins + - - GUS-compatible patch instrument - Патч-інструмент, сумісний з GUS + + Description + - - Plugin for controlling knobs with sound peaks - Модуль для встановлення значень регуляторів на піках гучності + + Name: + - - Reverb algorithm by Sean Costello - Алгоритм реверберації Шона Костелло + + Maker: + - - Player for SoundFont files - Програвач файлів SoundFont + + Copyright: + - - LMMS port of sfxr - LMMS порт SFXR + + Requires Real Time: + - - Emulation of the MOS6581 and MOS8580 SID. -This chip was used in the Commodore 64 computer. - Емуляція MOS6581 і MOS8580. -Використовувалося на комп'ютері Commodore 64. + + + + Yes + - - A graphical spectrum analyzer. + + + + No - - Plugin for enhancing stereo separation of a stereo input file - Модуль, що підсилює різницю між каналами стереозапису + + Real Time Capable: + - - Plugin for freely manipulating stereo output - Модуль для довільного управління стереовиходом + + In Place Broken: + - - Tuneful things to bang on - Мелодійні ударні + + Channels In: + - - Three powerful oscillators you can modulate in several ways - Три потужних генераторів можна модулювати декількома способами + + Channels Out: + + + + lmms::gui::LadspaMatrixControlDialog - - A stereo field visualizer. + + Link Channels - - VST-host for using VST(i)-plugins within LMMS - VST - хост для підтримки модулів VST(i) в LMMS + + Link + - - Vibrating string modeler - Емуляція вібруючих струн + + Channel %1 + - - plugin for using arbitrary VST effects inside LMMS. - плагін для використання довільних VST ефектів всередині LMMS. + + Link channels + + + + lmms::gui::LadspaPortDialog - - 4-oscillator modulatable wavetable synth - 4-генераторний модулюючий синтезатор звукозаписів + + Ports + - - plugin for waveshaping - плагін формування сигналу + + Name + - - Mathematical expression parser + + Rate - - Embedded ZynAddSubFX - Вбудований ZynAddSubFX + + Direction + - - - PluginDatabaseW - - Carla - Add New + + Type - - Format + + Min < Default < Max - - Internal + + Logarithmic - - LADSPA + + SR Dependent - - DSSI + + Audio - - LV2 + + Control - - VST2 + + Input - - VST3 + + Output - - AU + + Toggled - - Sound Kits + + Integer - - Type - Тип + + Float + - - Effects - Ефекти + + + Yes + + + + lmms::gui::Lb302SynthView - - Instruments - Інструменти + + Cutoff Freq: + - - MIDI Plugins + + Resonance: - - Other/Misc + + Env Mod: - - Architecture + + Decay: - - Native + + 303-es-que, 24dB/octave, 3 pole filter - - Bridged + + Slide Decay: - - Bridged (Wine) + + DIST: - - Requirements + + Saw wave - - With Custom GUI + + Click here for a saw-wave. - - With CV Ports + + Triangle wave - - Real-time safe only + + Click here for a triangle-wave. - - Stereo only + + Square wave - - With Inline Display + + Click here for a square-wave. - - Favorites only + + Rounded square wave - - (Number of Plugins go here) + + Click here for a square-wave with a rounded end. - - &Add Plugin + + Moog wave - - Cancel - Скасувати + + Click here for a moog-like wave. + - - Refresh + + Sine wave - - Reset filters + + Click for a sine-wave. - - - - - - - - - - - - - - - - - TextLabel + + + White noise wave - - Format: + + Click here for an exponential wave. - - Architecture: + + Click here for white-noise. - - Type: - Тип: + + Bandlimited saw wave + - - MIDI Ins: + + Click here for bandlimited saw wave. - - Audio Ins: + + Bandlimited square wave - - CV Outs: + + Click here for bandlimited square wave. - - MIDI Outs: + + Bandlimited triangle wave - - Parameter Ins: + + Click here for bandlimited triangle wave. - - Parameter Outs: + + Bandlimited moog saw wave - - Audio Outs: + + Click here for bandlimited moog saw wave. + + + lmms::gui::LcdFloatSpinBox - - CV Ins: + + Set value - - UniqueID: + + Please enter a new value between %1 and %2: + + + lmms::gui::LcdSpinBox - - Has Inline Display: + + Set value - - Has Custom GUI: + + Please enter a new value between %1 and %2: + + + lmms::gui::LeftRightNav - - Is Synth: + + + + Previous - - Is Bridged: + + + + Next - - Information + + Previous (%1) - - Name - І'мя + + Next (%1) + + + + lmms::gui::LfoControllerDialog - - Label/URI + + LFO - - Maker + + BASE - - Binary/Filename + + Base: - - Focus Text Search + + FREQ - - Ctrl+F + + LFO frequency: - - - PluginEdit - - Plugin Editor + + AMNT - - Edit + + Modulation amount: - - Control - Управління + + PHS + - - MIDI Control Channel: + + Phase offset: - - N + + degrees - - Output dry/wet (100%) + + Sine wave - - Output volume (100%) + + Triangle wave - - Balance Left (0%) + + Saw wave - - - Balance Right (0%) + + Square wave - - Use Balance + + Moog saw wave - - Use Panning + + Exponential wave - - Settings - Параметри + + White noise + - - Use Chunks + + User-defined shape. +Double click to pick a file. - - Audio: + + Multiply modulation frequency by 1 - - Fixed-Size Buffer + + Multiply modulation frequency by 100 - - Force Stereo (needs reload) + + Divide modulation frequency by 100 + + + lmms::gui::LfoGraph - - MIDI: + + %1 Hz + + + lmms::gui::MainWindow - - Map Program Changes + + Configuration file - - Send Bank/Program Changes + + Error while parsing configuration file at line %1:%2: %3 - - Send Control Changes + + Could not open file - - Send Channel Pressure + + Could not open file %1 for writing. +Please make sure you have write permission to the file and the directory containing the file and try again! - - Send Note Aftertouch + + Project recovery - - Send Pitchbend + + There is a recovery file present. It looks like the last session did not end properly or another instance of LMMS is already running. Do you want to recover the project of this session? - - Send All Sound/Notes Off + + + Recover - - -Plugin Name - + + Recover the file. Please don't run multiple instances of LMMS when you do this. - - Program: + + + Discard - - MIDI Program: + + Launch a default session and delete the restored files. This is not reversible. - - Save State + + Version %1 - - Load State + + Preparing plugin browser - - Information + + Preparing file browsers - - Label/URI: + + My Projects - - Name: + + My Samples - - Type: - Тип: + + My Presets + - - Maker: + + My Home - - Copyright: + + Root Directory - - Unique ID: + + Volumes - - - PluginFactory - - Plugin not found. - Модуль не знайдено. + + My Computer + - - LMMS plugin %1 does not have a plugin descriptor named %2! - LMMS плагін %1 не має опису плагіна з ім'ям %2! + + Loading background picture + - - - PluginParameter - - Form + + &File - - Parameter Name + + &New - - ... + + &Open... - - - PluginRefreshW - - Carla - Refresh + + &Save - - Search for new... + + Save &As... - - LADSPA + + Save as New &Version - - DSSI + + Save as default template - - LV2 + + Import... - - VST2 + + E&xport... - - VST3 + + E&xport Tracks... - - AU + + Export &MIDI... - - SF2/3 + + &Quit - - SFZ + + &Edit - - Native + + Undo - - POSIX 32bit + + Redo - - POSIX 64bit + + Scales and keymaps - - Windows 32bit + + Settings - - Windows 64bit + + &View - - Available tools: + + &Tools - - python3-rdflib (LADSPA-RDF support) + + &Help - - carla-discovery-win64 + + Online Help - - carla-discovery-native + + Help - - carla-discovery-posix32 + + About - - carla-discovery-posix64 + + Create new project - - carla-discovery-win32 + + Create new project from template - - Options: + + Open existing project - - Carla will run small processing checks when scanning the plugins (to make sure they won't crash). -You can disable these checks to get a faster scanning time (at your own risk). + + Recently opened projects - - Run processing checks while scanning + + Save current project - - Press 'Scan' to begin the search + + Export current project - - Scan + + Metronome - - >> Skip + + + Song Editor - - Close - Закрити + + + Pattern Editor + - - - PluginWidget - - - - - - Frame + + + Piano Roll - - Enable + + + Automation Editor - - On/Off - Увімк/Вимк + + + Mixer + - - - - - PluginName + + Show/hide controller rack - - MIDI - MIDI + + Show/hide project notes + - - AUDIO IN + + Untitled - - AUDIO OUT + + Recover session. Please save your work! - - GUI + + LMMS %1 - - Edit + + Recovered project not saved - - Remove + + This project was recovered from the previous session. It is currently unsaved and will be lost if you don't save it. Do you want to save it now? - - Plugin Name + + Project not saved - - Preset: + + The current project was modified since last saving. Do you want to save it now? - - - ProjectNotes - - Project Notes - Примітки проекту + + Open Project + - - Enter project notes here - Напишіть примітки до проекту тут + + LMMS (*.mmp *.mmpz) + - - Edit Actions - Зміна + + Save Project + - - &Undo - &U Скасувати + + LMMS Project + - - %1+Z - %1+Z + + LMMS Project Template + - - &Redo - &R Повторити + + Save project template + - - %1+Y - %1+Y + + Overwrite default template? + - - &Copy - &C Копіювати + + This will overwrite your current default template. + - - %1+C - %1+C + + Help not available + - - Cu&t - &t Вирізати + + Currently there's no help available in LMMS. +Please visit http://lmms.sf.net/wiki for documentation on LMMS. + - - %1+X - %1+X + + Controller Rack + - - &Paste - &P Вставити + + Project Notes + - - %1+V - %1+V + + Fullscreen + - - Format Actions - Форматування + + Volume as dBFS + - - &Bold - Напів&жирний + + Smooth scroll + - - %1+B - %1+B + + Enable note labels in piano roll + - - &Italic - &Курсив + + MIDI File (*.mid) + - - %1+I - %1+I + + + untitled + - - &Underline - &Підкреслити + + + Select file for project-export... + - - %1+U - %1+U + + Select directory for writing exported tracks... + - - &Left - По &лівому краю + + Save project + - - %1+L - %1+L + + Project saved + - - C&enter - По &центрі + + The project %1 is now saved. + - - %1+E - %1+E + + Project NOT saved. + - - &Right - По &правому краю + + The project %1 was not saved! + - - %1+R - %1+R + + Import file + - - &Justify - По &ширині + + MIDI sequences + - - %1+J - %1+J + + Hydrogen projects + - - &Color... - &C Колір... + + All file types + - ProjectRenderer + lmms::gui::MalletsInstrumentView - - WAV (*.wav) + + Instrument - - FLAC (*.flac) + + Spread - - OGG (*.ogg) + + Spread: - - MP3 (*.mp3) + + Random - - - QObject - - Reload Plugin + + Random: - - Show GUI - Показати інтерфейс + + Missing files + - - Help - Довідка + + Your Stk-installation seems to be incomplete. Please make sure the full Stk-package is installed! + - - - QWidget - - - - - Name: - І'мя: + + Hardness + - - URI: + + Hardness: - - - - Maker: - Розробник: + + Position + - - - - Copyright: - Авторське право: + + Position: + - - - Requires Real Time: - Потрібна обробка в реальному часі: + + Vibrato gain + - - - - - - - Yes - Так + + Vibrato gain: + - - - - - - - No - Ні + + Vibrato frequency + - - - Real Time Capable: - Робота в реальному часі: + + Vibrato frequency: + - - - In Place Broken: - Замість зламаного: + + Stick mix + - - - Channels In: - Канали в: + + Stick mix: + - - - Channels Out: - Канали з: + + Modulator + - - File: %1 - Файл: %1 + + Modulator: + - - File: - Файл: + + Crossfade + - - - RecentProjectsMenu - - &Recently Opened Projects - &Нещодавно відкриті проекти + + Crossfade: + - - - RenameDialog - - Rename... - Перейменувати ... + + LFO speed + - - - ReverbSCControlDialog - - Input - Ввід + + LFO speed: + - - Input gain: - Вхідне підсилення: + + LFO depth + - - Size - Розмір + + LFO depth: + - - Size: - Розмір: + + ADSR + - - Color - Колір + + ADSR: + - - Color: - Колір: + + Pressure + - - Output - Вивід + + Pressure: + - - Output gain: - Вихідне підсилення: + + Speed + + + + + Speed: + - ReverbSCControls + lmms::gui::ManageVSTEffectView - - Input gain - Вхідне підсилення + + - VST parameter control + - - Size - Розмір + + VST sync + - - Color - Колір + + + Automated + - - Output gain - Вихідне підсилення + + Close + - SaControls + lmms::gui::ManageVestigeInstrumentView - - Pause + + + - VST plugin control - - Reference freeze + + VST Sync - - Waterfall + + + Automated - - Averaging + + Close + + + lmms::gui::MeterDialog - - Stereo - Стерео - - - - Peak hold + + + Meter Numerator - - Logarithmic frequency + + Meter numerator - - Logarithmic amplitude + + + Meter Denominator - - Frequency range + + Meter denominator - - Amplitude range + + TIME SIG + + + lmms::gui::MicrotunerConfig - - FFT block size + + Selected scale slot - - FFT window type + + Selected keymap slot - - Peak envelope resolution + + + First key - - Spectrum display resolution + + + Last key - - Peak decay multiplier + + + Middle key - - Averaging weight + + + Base key - - Waterfall history size + + + + Base note frequency - - Waterfall gamma correction + + Microtuner Configuration - - FFT window overlap + + Scale slot to edit: - - FFT zero padding + + Scale description. Cannot start with "!" and cannot contain a newline character. - - - Full (auto) + + + Load - - - - Audible + + + Save - - Bass - Бас - - - - Mids + + Load scale definition from a file. - - High + + Save scale definition to a file. - - Extended + + Enter intervals on separate lines. Numbers containing a decimal point are treated as cents. +Other inputs are treated as integer ratios and must be in the form of 'a/b' or 'a'. +Unity (0.0 cents or ratio 1/1) is always present as a hidden first value; do not enter it manually. - - Loud + + Apply scale changes - - Silent + + Verify and apply changes made to the selected scale. To use the scale, select it in the settings of a supported instrument. - - (High time res.) + + Keymap slot to edit: - - (High freq. res.) + + Keymap description. Cannot start with "!" and cannot contain a newline character. - - Rectangular (Off) + + Load key mapping definition from a file. - - - Blackman-Harris (Default) + + Save key mapping definition to a file. - - Hamming + + Enter key mappings on separate lines. Each line assigns a scale degree to a MIDI key, +starting with the middle key and continuing in sequence. +The pattern repeats for keys outside of the explicit keymap range. +Multiple keys can be mapped to the same scale degree. +Enter 'x' if you wish to leave the key disabled / not mapped. - - Hanning + + FIRST - - - SaControlsDialog - - Pause + + First MIDI key that will be mapped - - Pause data acquisition + + LAST - - Reference freeze + + Last MIDI key that will be mapped - - Freeze current input as a reference / disable falloff in peak-hold mode. + + MIDDLE - - Waterfall + + First line in the keymap refers to this MIDI key - - Display real-time spectrogram + + BASE N. - - Averaging + + Base note frequency will be assigned to this MIDI key - - Enable exponential moving average + + BASE NOTE FREQ - - Stereo - Стерео + + Apply keymap changes + - - Display stereo channels separately + + Verify and apply changes made to the selected key mapping. To use the mapping, select it in the settings of a supported instrument. - - Peak hold + + Scale parsing error - - Display envelope of peak values + + Scale name cannot start with an exclamation mark - - Logarithmic frequency + + Scale name cannot contain a new-line character - - Switch between logarithmic and linear frequency scale + + Interval defined in cents cannot be converted to a number - - - Frequency range + + Numerator of an interval defined as a ratio cannot be converted to a number - - Logarithmic amplitude + + Denominator of an interval defined as a ratio cannot be converted to a number - - Switch between logarithmic and linear amplitude scale + + Interval defined as a ratio cannot be negative - - - Amplitude range + + Keymap parsing error - - Envelope res. + + Keymap name cannot start with an exclamation mark - - Increase envelope resolution for better details, decrease for better GUI performance. + + Keymap name cannot contain a new-line character - - - Draw at most + + Scale degree cannot be converted to a whole number - - envelope points per pixel + + Scale degree cannot be negative - - Spectrum res. + + Invalid keymap - - Increase spectrum resolution for better details, decrease for better GUI performance. + + Base key is not mapped to any scale degree. No sound will be produced as there is no way to assign reference frequency to any note. - - spectrum points per pixel + + Open scale - - Falloff factor + + + Scala scale definition (*.scl) - - Decrease to make peaks fall faster. + + Scale load failure - - Multiply buffered value by + + + Unable to open selected file. - - Averaging weight + + Open keymap - - Decrease to make averaging slower and smoother. + + + Scala keymap definition (*.kbm) - - New sample contributes + + Keymap load failure - - Waterfall height + + Save scale - - Increase to get slower scrolling, decrease to see fast transitions better. Warning: medium CPU usage. + + Scale save failure - - Keep + + + Unable to open selected file for writing. - - lines + + Save keymap - - Waterfall gamma + + Keymap save failure + + + lmms::gui::MidiCCRackView - - Decrease to see very weak signals, increase to get better contrast. + + + MIDI CC Rack - %1 - - Gamma value: + + MIDI CC Knobs: - - Window overlap + + CC %1 + + + lmms::gui::MidiClipView - - Increase to prevent missing fast transitions arriving near FFT window edges. Warning: high CPU usage. + + + Transpose - - Each sample processed + + Semitones to transpose by: - - times + + Open in piano-roll - - Zero padding + + Set as ghost in piano-roll - - Increase to get smoother-looking spectrum. Warning: high CPU usage. + + Set as ghost in automation editor - - Processing buffer is + + Clear all notes - - steps larger than input block + + Reset name - - Advanced settings + + Change name - - Access advanced settings + + Add steps - - - FFT block size + + Remove steps - - - FFT window type + + Clone Steps - SampleBuffer + lmms::gui::MidiSetupWidget - - Fail to open file - Не вдається відкрити файл + + Device + + + + lmms::gui::MixerChannelLcdSpinBox - - Audio files are limited to %1 MB in size and %2 minutes of playing time - Аудіофайли обмежено розміром в %1 МБ і %2 хвилин(и) програвання + + Assign to: + - - Open audio file - Відкрити звуковий файл + + New Mixer Channel + - - All Audio-Files (*.wav *.ogg *.ds *.flac *.spx *.voc *.aif *.aiff *.au *.raw) - Всі Аудіо-файли (*.wav *.ogg *.ds *.flac *.spx *.voc *.aif *.aiff *.au *.raw) + + Please enter a new value between %1 and %2: + - - Wave-Files (*.wav) - Файли Wave (*.wav) + + Set value + + + + lmms::gui::MixerChannelView - - OGG-Files (*.ogg) - Файли OGG (*.ogg) + + Channel send amount + - - DrumSynth-Files (*.ds) - Файли DrumSynth (*.ds) + + Mute + - - FLAC-Files (*.flac) - Файли FLAC (*.flac) + + Mute this channel + - - SPEEX-Files (*.spx) - Файли SPEEX (*.spx) + + Solo + - - VOC-Files (*.voc) - Файли VOC (*.voc) + + Solo this channel + - - AIFF-Files (*.aif *.aiff) - Файли AIFF (*.aif *.aiff) + + Fader %1 + - - AU-Files (*.au) - Файли AU (*.au) + + Move &left + - - RAW-Files (*.raw) - Файли RAW (*.raw) + + Move &right + - - - SampleClipView - - Double-click to open sample + + Rename &channel - - Delete (middle mousebutton) - Видалити (середня кнопка мишки) + + R&emove channel + - - Delete selection (middle mousebutton) + + Remove &unused channels - - Cut - Вирізати + + Color + - - Cut selection + + Change - - Copy - Копіювати + + Reset + - - Copy selection + + Pick random - - Paste - Вставити + + This Mixer Channel is being used. +Are you sure you want to remove this channel? + +Warning: This operation can not be undone. + - - Mute/unmute (<%1> + middle click) - Заглушити/включити (<%1> + середня кнопка миші) + + Confirm removal + - - Mute/unmute selection (<%1> + middle click) + + Don't ask again + + + lmms::gui::MixerView - - Reverse sample - Перевернути запис + + Mixer + + + + lmms::gui::MonstroView - - Set clip color + + Operators view - - Use track color + + Matrix view - - - SampleTrack - + + + Volume - Гучність + - + + + Panning - Баланс + - - Mixer channel - Канал ЕФ + + + + Coarse detune + - - - Sample track - Доріжка запису + + + + semitones + - - - SampleTrackView - - Track volume - Гучність доріжки + + + Fine tune left + - - Channel volume: - Гучність каналу: + + + + + cents + - - VOL - ГУЧН + + + Fine tune right + - - Panning - Баланс + + + + Stereo phase offset + - - Panning: - Баланс: + + + + + + deg + - - PAN - БАЛ + + Pulse width + - - Channel %1: %2 - ЕФ %1: %2 + + Send sync on pulse rise + - - - SampleTrackWindow - - GENERAL SETTINGS - ОСНОВНІ НАЛАШТУВАННЯ + + Send sync on pulse fall + - - Sample volume + + Hard sync oscillator 2 - - Volume: - Гучність: + + Reverse sync oscillator 2 + - - VOL - ГУЧН + + Sub-osc mix + - - Panning - Баланс + + Hard sync oscillator 3 + - - Panning: - Баланс: + + Reverse sync oscillator 3 + - - PAN - БАЛ + + + + + Attack + - - Mixer channel - Канал ЕФ + + + Rate + - - CHANNEL - ЕФ + + + Phase + - - - SaveOptionsWidget - - Discard MIDI connections + + + Pre-delay - - Save As Project Bundle (with resources) + + + Hold - - - SetupDialog - - Reset to default value + + + Decay - - Use built-in NaN handler - Використовувати вбудований обробник NaN + + + Sustain + - - Settings - Параметри + + + Release + - - - General + + + Slope - - Graphical user interface (GUI) + + Mix osc 2 with osc 3 - - Display volume as dBFS - Відображати гучність в децибелах + + Modulate amplitude of osc 3 by osc 2 + - - Enable tooltips - Включити підказки + + Modulate frequency of osc 3 by osc 2 + - - Enable master oscilloscope by default + + Modulate phase of osc 3 by osc 2 - - Enable all note labels in piano roll + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Modulation amount + + + lmms::gui::MultitapEchoControlDialog - - Enable compact track buttons + + Length - - Enable one instrument-track-window mode + + Step length: - - Show sidebar on the right-hand side + + Dry - - Let sample previews continue when mouse is released + + Dry gain: - - Mute automation tracks during solo + + Stages - - Show warning when deleting tracks + + Low-pass stages: - - Projects + + Swap inputs - - Compress project files by default + + Swap left and right input channels for reflections + + + lmms::gui::NesInstrumentView - - Create a backup file when saving a project + + + + + Volume - - Reopen last project on startup + + + + Coarse detune - - Language + + + + Envelope length - - - Performance + + Enable channel 1 - - Autosave + + Enable envelope 1 - - Enable autosave + + Enable envelope 1 loop - - Allow autosave while playing + + Enable sweep 1 - - User interface (UI) effects vs. performance + + + Sweep amount - - Smooth scroll in song editor + + + Sweep rate - - Display playback cursor in AudioFileProcessor + + + 12.5% Duty cycle - - Plugins - Модулі + + + 25% Duty cycle + - - VST plugins embedding: + + + 50% Duty cycle - - No embedding - Не встановлено + + + 75% Duty cycle + - - Embed using Qt API - Встановлення використовуючи Qt API + + Enable channel 2 + - - Embed using native Win32 API - Встановлення використовуючи рідний Win32 API + + Enable envelope 2 + - - Embed using XEmbed protocol - Встановлення використовуючи протокол XEmbed + + Enable envelope 2 loop + - - Keep plugin windows on top when not embedded - Тримати вікна плагінів наверху, коли вони від'єднані + + Enable sweep 2 + - - Sync VST plugins to host playback - Синхронізувати VST плагіни з хостом відтворення + + Enable channel 3 + - - Keep effects running even without input - Продовжувати роботу ефектів навіть без вхідного сигналу + + Noise Frequency + - - - Audio - Аудіо + + Frequency sweep + - - Audio interface + + Enable channel 4 - - HQ mode for output audio device + + Enable envelope 4 - - Buffer size + + Enable envelope 4 loop - - - MIDI - MIDI + + Quantize noise frequency when using note frequency + - - MIDI interface + + Use note frequency for noise - - Automatically assign MIDI controller to selected track + + Noise mode - - LMMS working directory - Робочий каталог LMMS + + Master volume + - - VST plugins directory + + Vibrato + + + lmms::gui::OpulenzInstrumentView - - LADSPA plugins directories + + + Attack - - SF2 directory - Каталог SF2 + + + Decay + - - Default SF2 + + + Release - - GIG directory - Каталог GIG + + + Frequency multiplier + + + + lmms::gui::OrganicInstrumentView - - Theme directory + + Distortion: - - Background artwork - Фонове зображення + + Volume: + - - Some changes require restarting. + + Randomise - - Autosave interval: %1 + + + Osc %1 waveform: - - Choose the LMMS working directory + + Osc %1 volume: - - Choose your VST plugins directory + + Osc %1 panning: - - Choose your LADSPA plugins directory + + Osc %1 stereo detuning - - Choose your default SF2 + + cents - - Choose your theme directory + + Osc %1 harmonic: + + + lmms::gui::Oscilloscope - - Choose your background picture + + Oscilloscope - - - Paths - Шляхи + + Click to enable + + + + lmms::gui::PatmanView - - OK - ОК + + Open patch + - - Cancel - Скасувати + + Loop + - - Frames: %1 -Latency: %2 ms - Фрагментів: %1 -Затримка: %2 мс + + Loop mode + - - Choose your GIG directory - Виберіть каталог GIG + + Tune + - - Choose your SF2 directory - Виберіть каталог SF2 + + Tune mode + - - minutes - хвилин + + No file selected + - - minute - хвилина + + Open patch file + - - Disabled - Вимкнено + + Patch-Files (*.pat) + - SidInstrument + lmms::gui::PatternClipView - - Cutoff frequency - Зріз частоти + + Open in Pattern Editor + - - Resonance - Резонанс + + Reset name + - - Filter type - Тип фільтру + + Change name + + + + lmms::gui::PatternEditorWindow - - Voice 3 off - Голос 3 відкл + + Pattern Editor + - - Volume - Гучність + + Play/pause current pattern (Space) + - - Chip model - Модель чіпа + + Stop playback of current pattern (Space) + - - - SidInstrumentView - - Volume: - Гучність: + + Pattern selector + - - Resonance: - Підсилення: + + Track and step actions + - - - Cutoff frequency: - Частота зрізу: + + New pattern + - - High-pass filter + + Clone pattern - - Band-pass filter + + Add sample-track - - Low-pass filter + + Add automation-track - - Voice 3 off + + Remove steps - - MOS6581 SID - MOS6581 SID + + Add steps + - - MOS8580 SID - MOS8580 SID + + Clone Steps + + + + lmms::gui::PeakControllerDialog - - - Attack: - Вступ: + + PEAK + - - - Decay: - Згасання: + + LFO Controller + + + + lmms::gui::PeakControllerEffectControlDialog - - Sustain: - Витримка: + + BASE + - - - Release: - Зменшення: + + Base: + - - Pulse Width: - Довжина імпульсу: + + AMNT + - - Coarse: - Грубість: + + Modulation amount: + - - Pulse wave + + MULT - - Triangle wave - Трикутник + + Amount multiplicator: + - - Saw wave - Зигзаг + + ATCK + - - Noise - Шум + + Attack: + - - Sync - Синхро + + DCAY + - - Ring modulation + + Release: - - Filtered - Відфільтрований + + TRSH + - - Test - Тест + + Treshold: + - - Pulse width: + + Mute output + + + + + Absolute value - SideBarWidget + lmms::gui::PeakIndicator - - Close - Закрити + + -inf + - Song + lmms::gui::PianoRoll - - Tempo - Темп + + Note Velocity + - - Master volume - Основна гучність + + Note Panning + - - Master pitch - Основна тональність + + Mark/unmark current semitone + - - Aborting project load + + Mark/unmark all corresponding octave semitones - - Project file contains local paths to plugins, which could be used to run malicious code. + + Mark current scale - - Can't load project: Project file contains local paths to plugins. + + Mark current chord - - LMMS Error report - Повідомлення про помилку в LMMS + + Unmark all + - - (repeated %1 times) + + Select all notes on this key - - The following errors occurred while loading: + + Note lock - - - SongEditor - - Could not open file - Не можу відкрити файл + + Last note + - - Could not open file %1. You probably have no permissions to read this file. - Please make sure to have at least read permissions to the file and try again. - Неможливо відкрити файл %1, ймовірно, немає дозволу на його читання. -Будь-ласка переконайтеся, що є принаймні права на читання цього файлу і спробуйте ще раз. + + No key + - - Operation denied + + No scale - - A bundle folder with that name already eists on the selected path. Can't overwrite a project bundle. Please select a different name. + + No chord - - - - Error - Помилка + + Nudge + - - Couldn't create bundle folder. + + Snap - - Couldn't create resources folder. + + Velocity: %1% - - Failed to copy resources. + + Panning: %1% left - - Could not write file - Не можу записати файл + + Panning: %1% right + - - Could not open %1 for writing. You probably are not permitted towrite to this file. Please make sure you have write-access to the file and try again. + + Panning: center - - This %1 was created with LMMS %2 + + Glue notes failed - - Error in file - Помилка у файлі + + Please select notes to glue first. + - - The file %1 seems to contain errors and therefore can't be loaded. - Файл %1 можливо містить помилки через які не може завантажитися. + + Please open a clip by double-clicking on it! + - - Version difference - Різниця версій + + + Please enter a new value between %1 and %2: + + + + lmms::gui::PianoRollWindow - - template - шаблон + + Play/pause current clip (Space) + - - project - проект + + Record notes from MIDI-device/channel-piano + - - Tempo - Темп + + Record notes from MIDI-device/channel-piano while playing song or pattern track + - - TEMPO + + Record notes from MIDI-device/channel-piano, one step at the time - - Tempo in BPM + + Stop playing of current clip (Space) - - High quality mode - Висока якість + + Edit actions + - - - - Master volume - Основна гучність + + Draw mode (Shift+D) + - - - - Master pitch - Основна тональність + + Erase mode (Shift+E) + - - Value: %1% - Значення: %1% + + Select mode (Shift+S) + - - Value: %1 semitones - Значення: %1 півтон(у/ів) + + Pitch Bend mode (Shift+T) + - - - SongEditorWindow - - Song-Editor - Музичний редактор + + Quantize + - - Play song (Space) - Почати відтворення (Пробіл) + + Quantize positions + - - Record samples from Audio-device - Записати семпл зі звукового пристрою + + Quantize lengths + - - Record samples from Audio-device while playing song or BB track - Записати семпл з аудіо-пристрої під час відтворення в музичному чи ритм/бас редакторі + + File actions + - - Stop song (Space) - Зупинити відтворення (Пробіл) + + Import clip + - - Track actions - Стежити + + + Export clip + - - Add beat/bassline - Додати ритм/бас + + Copy paste controls + - - Add sample-track - Додати доріжку запису + + Cut (%1+X) + - - Add automation-track - Додати доріжку автоматизації + + Copy (%1+C) + - - Edit actions - Зміна + + Paste (%1+V) + - - Draw mode - Режим малювання + + Timeline controls + - - Knife mode (split sample clips) + + Glue - - Edit mode (select and move) - Правка (виділення/переміщення) + + Knife + - - Timeline controls - Управління хронологією + + Fill + - - Bar insert controls + + Cut overlaps - - Insert bar + + Min length as last - - Remove bar + + Max length as last - - Zoom controls - Управління масштабом + + Zoom and note controls + - + Horizontal zooming - - Snap controls + + Vertical zooming - - - Clip snapping size + + Quantization - - Toggle proportional snap on/off + + Note length - - Base snapping size + + Key - - - StepRecorderWidget - - Hint - Підказка + + Scale + - - Move recording curser using <Left/Right> arrows + + Chord - - - SubWindow - - Close - Закрити + + Snap mode + - - Maximize - Розгорнути + + Clear ghost notes + - - Restore - Відновити + + + Piano-Roll - %1 + - - - TabWidget - - - Settings for %1 - Налаштування для %1 + + + Piano-Roll - no clip + - - - TemplatesMenu - - New from template - Новий проект по шаблону + + + XML clip file (*.xpt *.xptz) + - - - TempoSyncKnob - - - Tempo Sync - Синхронізація темпу + + Export clip success + - - No Sync - Синхронізації немає + + Clip saved to %1 + - - Eight beats - Вісім ударів (дві ноти) + + Import clip. + - - Whole note - Ціла нота + + You are about to import a clip, this will overwrite your current clip. Do you want to continue? + - - Half note - Півнота + + Open clip + - - Quarter note - Чверть ноти + + Import clip success + - - 8th note - Восьма ноти + + Imported clip %1! + + + + lmms::gui::PianoView - - 16th note - 1/16 ноти + + Base note + - - 32nd note - 1/32 ноти + + First note + - - Custom... - Своя... + + Last note + + + + lmms::gui::PluginBrowser - - Custom - Своя + + Instrument Plugins + - - Synced to Eight Beats - Синхро по 8 ударам + + Instrument browser + - - Synced to Whole Note - Синхро по цілій ноті + + Drag an instrument into either the Song Editor, the Pattern Editor or an existing instrument track. + - - Synced to Half Note - Синхро по половині ноти + + Search + + + + lmms::gui::PluginDescWidget - - Synced to Quarter Note - Синхро по чверті ноти + + Send to new instrument track + + + + lmms::gui::ProjectNotes - - Synced to 8th Note - Синхро по 1/8 ноти + + Project Notes + - - Synced to 16th Note - Синхро по 1/16 ноти + + Enter project notes here + - - Synced to 32nd Note - Синхро по 1/32 ноти + + Edit Actions + - - - TimeDisplayWidget - - Time units + + &Undo - - MIN - ХВ + + %1+Z + - - SEC - С + + &Redo + - - MSEC - МС + + %1+Y + - - BAR - БАР + + &Copy + - - BEAT - БІТ + + %1+C + - - TICK - ТІК + + Cu&t + - - - TimeLineWidget - - Auto scrolling + + %1+X - - Loop points + + &Paste - - After stopping go back to beginning + + %1+V - - After stopping go back to position at which playing was started - Після зупинки переходити до місця, з якого почалося відтворення + + Format Actions + - - After stopping keep position - Залишатися на місці зупинки + + &Bold + - - Hint - Підказка + + %1+B + - - Press <%1> to disable magnetic loop points. - Натисніть <%1>, щоб прибрати прилипання точок циклу. + + &Italic + - - - Track - - Mute - Тиша + + %1+I + - - Solo - Соло + + &Underline + - - - TrackContainer - - Couldn't import file - Не можу імпортувати файл + + %1+U + - - Couldn't find a filter for importing file %1. -You should convert this file into a format supported by LMMS using another software. - Не можу знайти фільтр для імпорту файла %1. -Для підключення цього файлу перетворіть його в формат, підтримуваний LMMS. + + &Left + - - Couldn't open file - Не можу відкрити файл + + %1+L + - - Couldn't open file %1 for reading. -Please make sure you have read-permission to the file and the directory containing the file and try again! - Не можу відкрити файл %1 для запису. -Перевірте, чи володієте ви правами на запис в обраний файл і каталог що його містить і спробуйте знову! + + C&enter + - - Loading project... - Завантаження проекту ... + + %1+E + - - - Cancel - Скасувати + + &Right + - - - Please wait... - Зачекайте будь-ласка ... + + %1+R + - - Loading cancelled - Завантаження скасовано + + &Justify + - - Project loading was cancelled. - Завантаження проекту скасовано. + + %1+J + - - Loading Track %1 (%2/Total %3) - Завантаження треку %1 (%2/з %3) + + &Color... + + + + lmms::gui::RecentProjectsMenu - - Importing MIDI-file... - Імпортую файл MIDI... + + &Recently Opened Projects + - Clip + lmms::gui::RenameDialog - - Mute - Тиша + + Rename... + - ClipView + lmms::gui::ReverbSCControlDialog - - Current position - Позиція + + Input + - - Current length - Тривалість + + Input gain: + - - - %1:%2 (%3:%4 to %5:%6) - %1:%2 (від %3:%4 до %5:%6) + + Size + - - Press <%1> and drag to make a copy. - Натисніть <%1> і перетягніть, щоб створити копію. + + Size: + - - Press <%1> for free resizing. - Для вільної зміни розміру натисніть <%1>. + + Color + - - Hint - Підказка + + Color: + - - Delete (middle mousebutton) - Видалити (середня кнопка мишки) + + Output + - - Delete selection (middle mousebutton) + + Output gain: + + + lmms::gui::SaControlsDialog - - Cut - Вирізати + + Pause + - - Cut selection + + Pause data acquisition - - Merge Selection + + Reference freeze - - Copy - Копіювати + + Freeze current input as a reference / disable falloff in peak-hold mode. + + + + + Waterfall + - - Copy selection + + Display real-time spectrogram - - Paste - Вставити + + Averaging + - - Mute/unmute (<%1> + middle click) - Заглушити/включити (<%1> + середня кнопка миші) + + Enable exponential moving average + - - Mute/unmute selection (<%1> + middle click) + + Stereo - - Set clip color + + Display stereo channels separately - - Use track color + + Peak hold - - - TrackContentWidget - - Paste - Вставити + + Display envelope of peak values + - - - TrackOperationsWidget - - Press <%1> while clicking on move-grip to begin a new drag'n'drop action. + + Logarithmic frequency - - Actions + + Switch between logarithmic and linear frequency scale - - - Mute - Тиша + + + Frequency range + - - - Solo - Соло + + Logarithmic amplitude + - - After removing a track, it can not be recovered. Are you sure you want to remove track "%1"? + + Switch between logarithmic and linear amplitude scale - - Confirm removal + + + Amplitude range - - Don't ask again + + + FFT block size - - Clone this track - Клонувати доріжку + + + FFT window type + - - Remove this track - Видалити доріжку + + Envelope res. + - - Clear this track - Очистити цю доріжку + + Increase envelope resolution for better details, decrease for better GUI performance. + - - Channel %1: %2 - ЕФ %1: %2 + + Maximum number of envelope points drawn per pixel: + - - Assign to new mixer Channel - Призначити до нового каналу ефекту + + Spectrum res. + - - Turn all recording on - Включити все на запис + + Increase spectrum resolution for better details, decrease for better GUI performance. + - - Turn all recording off - Вимкнути всі записи + + Maximum number of spectrum points drawn per pixel: + - - Change color - Змінити колір + + Falloff factor + - - Reset color to default - Відновити колір за замовчуванням + + Decrease to make peaks fall faster. + - - Set random color + + Multiply buffered value by - - Clear clip colors + + Averaging weight - - - TripleOscillatorView - - Modulate phase of oscillator 1 by oscillator 2 + + Decrease to make averaging slower and smoother. - - Modulate amplitude of oscillator 1 by oscillator 2 + + New sample contributes - - Mix output of oscillators 1 & 2 + + Waterfall height - - Synchronize oscillator 1 with oscillator 2 - Синхронізувати 1 осциллятор по 2 + + Increase to get slower scrolling, decrease to see fast transitions better. Warning: medium CPU usage. + - - Modulate frequency of oscillator 1 by oscillator 2 + + Number of lines to keep: - - Modulate phase of oscillator 2 by oscillator 3 + + Waterfall gamma - - Modulate amplitude of oscillator 2 by oscillator 3 + + Decrease to see very weak signals, increase to get better contrast. - - Mix output of oscillators 2 & 3 + + Gamma value: - - Synchronize oscillator 2 with oscillator 3 - Синхронізувати осциллятор 2 і 3 + + Window overlap + - - Modulate frequency of oscillator 2 by oscillator 3 + + Increase to prevent missing fast transitions arriving near FFT window edges. Warning: high CPU usage. - - Osc %1 volume: - Гучність осциллятора %1: + + Number of times each sample is processed: + - - Osc %1 panning: - Баланс для осциллятора %1: + + Zero padding + - - Osc %1 coarse detuning: - Грубе підстроювання осциллятора %1: + + Increase to get smoother-looking spectrum. Warning: high CPU usage. + - - semitones - півтон(а,ів) + + Processing buffer is + - - Osc %1 fine detuning left: - Точне підстроювання лівого каналу осциллятора %1: + + steps larger than input block + - - - cents - Відсотки + + Advanced settings + - - Osc %1 fine detuning right: - Точна підстройка правого канала осциллятора %1: + + Access advanced settings + + + + lmms::gui::SampleClipView - - Osc %1 phase-offset: - Зміщення фази осциллятора %1: + + Double-click to open sample + - - - degrees - градуси + + Reverse sample + - - Osc %1 stereo phase-detuning: - Підстроювання стерео фази осциллятора %1: + + Set as ghost in automation editor + + + + lmms::gui::SampleTrackView - - Sine wave - Синусоїда + + Mixer channel + - - Triangle wave - Трикутник + + Track volume + - - Saw wave - Зигзаг + + Channel volume: + - - Square wave - Квадратна хвиля + + VOL + - - Moog-like saw wave + + Panning - - Exponential wave - Експоненціальна хвиля + + Panning: + - - White noise - Білий шум + + PAN + - - User-defined wave + + %1: %2 - VecControls + lmms::gui::SampleTrackWindow - - Display persistence amount + + Sample volume - - Logarithmic scale + + Volume: - - High quality + + VOL - - - VecControlsDialog - - HQ + + Panning - - Double the resolution and simulate continuous analog-like trace. + + Panning: - - Log. scale + + PAN - - Display amplitude on logarithmic scale to better see small values. + + Mixer channel - - Persist. + + CHANNEL + + + lmms::gui::SaveOptionsWidget - - Trace persistence: higher amount means the trace will stay bright for longer time. + + Discard MIDI connections - - Trace persistence + + Save As Project Bundle (with resources) - VersionedSaveDialog - - - Increment version number - Збільшуючийся номер версії - - - - Decrement version number - Зменшуючийся номер версії - + lmms::gui::SetupDialog - - Save Options + + Settings - - already exists. Do you want to replace it? - вже існує. Замінити його? + + + General + - - - VestigeInstrumentView - - - Open VST plugin + + Graphical user interface (GUI) - - Control VST plugin from LMMS host + + Display volume as dBFS - - Open VST plugin preset + + Enable tooltips - - Previous (-) - Попередній <-> + + Enable master oscilloscope by default + - - Save preset - Зберегти передустановку + + Enable all note labels in piano roll + - - Next (+) - Наступний <+> + + Enable compact track buttons + - - Show/hide GUI - Показати / приховати інтерфейс + + Enable one instrument-track-window mode + - - Turn off all notes - Вимкнути всі ноти + + Show sidebar on the right-hand side + - - DLL-files (*.dll) - Бібліотеки DLL (*.dll) + + Let sample previews continue when mouse is released + - - EXE-files (*.exe) - Програми EXE (*.exe) + + Mute automation tracks during solo + - - No VST plugin loaded + + Show warning when deleting tracks - - Preset - Передустановка + + Show warning when deleting a mixer channel that is in use + - - by - від + + Dual-button + - - - VST plugin control - - Управління VST плагіном + + Grab closest + - - - VstEffectControlDialog - - Show/hide - Показати/Сховати + + Handles + - - Control VST plugin from LMMS host + + Loop edit mode - - Open VST plugin preset + + Projects - - Previous (-) - Попередній <-> + + Compress project files by default + - - Next (+) - Наступний <+> + + Create a backup file when saving a project + - - Save preset - Зберегти налаштування + + Reopen last project on startup + - - - Effect by: - Ефекти по: + + Language + - - &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> - &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> + + + Performance + - - - VstPlugin - - - The VST plugin %1 could not be loaded. - VST плагін %1 не може бути завантажено. + + Autosave + - - Open Preset - Відкрити предустановку + + Enable autosave + - - - Vst Plugin Preset (*.fxp *.fxb) - Передустановка VST плагіна (*.fxp, *.fxb) + + Allow autosave while playing + - - : default - : основні + + User interface (UI) effects vs. performance + - - Save Preset - Зберегти предустановку + + Smooth scroll in song editor + - - .fxp - .fxp + + Display playback cursor in AudioFileProcessor + - - .FXP - .FXP + + Plugins + - - .FXB - .FXB + + VST plugins embedding: + - - .fxb - .fxb + + No embedding + - - Loading plugin - Завантаження модуля + + Embed using Qt API + - - Please wait while loading VST plugin... - Будь ласка, зачекайте доки завантажується VST плагін ... + + Embed using native Win32 API + - - - WatsynInstrument - - Volume A1 - Гучність A1 + + Embed using XEmbed protocol + - - Volume A2 - Гучність A2 + + Keep plugin windows on top when not embedded + - - Volume B1 - Гучність B1 + + Keep effects running even without input + - - Volume B2 - Гучність B2 + + + Audio + - - Panning A1 - Баланс A1 + + Audio interface + - - Panning A2 - Баланс A2 + + Buffer size + - - Panning B1 - Баланс B1 + + Reset to default value + - - Panning B2 - Баланс B2 + + + MIDI + - - Freq. multiplier A1 - Множник частоти A1 + + MIDI interface + - - Freq. multiplier A2 - Множник частоти A2 + + Automatically assign MIDI controller to selected track + - - Freq. multiplier B1 - Множник частоти B1 + + Behavior when recording + - - Freq. multiplier B2 - Множник частоти B2 + + Auto-quantize notes in Piano Roll + - - Left detune A1 - Ліве підстроювання A1 + + If enabled, notes will be automatically quantized when recording them from a MIDI controller. If disabled, they are always recorded at the highest possible resolution. + - - Left detune A2 - Ліве підстроювання A2 + + + Paths + - - Left detune B1 - Ліве підстроювання B1 + + LMMS working directory + - - Left detune B2 - Ліве підстроювання B2 + + VST plugins directory + - - Right detune A1 - Праве підстроювання A1 + + LADSPA plugins directories + - - Right detune A2 - Праве підстроювання A2 + + SF2 directory + - - Right detune B1 - Праве підстроювання B1 + + Default SF2 + - - Right detune B2 - Праве підстроювання B2 + + GIG directory + - - A-B Mix - A-B Мікс + + Theme directory + - - A-B Mix envelope amount - A-B Мікс кіл. обвідної + + Background artwork + - - A-B Mix envelope attack - A-B Мікс атаки обвідної + + Some changes require restarting. + - - A-B Mix envelope hold - A-B Мікс утримання обвідної + + OK + - - A-B Mix envelope decay - A-B Мікс згасання обвідної + + Cancel + - - A1-B2 Crosstalk - Перехресні перешкоди A1-B2 + + minutes + - - A2-A1 modulation - Модуляція A2-A1 + + minute + - - B2-B1 modulation - Модуляція B2-B1 + + Disabled + - - Selected graph - Обраний графік + + Autosave interval: %1 + - - - WatsynView - - - - - Volume - Гучність + + The currently selected value is not a power of 2 (32, 64, 128, 256). Some plugins may not be available. + - - - - - Panning - Баланс + + The currently selected value is less than or equal to 32. Some plugins may not be available. + - - - - - Freq. multiplier - Множник частоти + + Frames: %1 +Latency: %2 ms + - - - - - Left detune - Ліве підстроювання + + Choose the LMMS working directory + - - - - - - - - - cents - відсотків + + Choose your VST plugins directory + - - - - - Right detune - Праве підстроювання + + Choose your LADSPA plugins directory + - - A-B Mix - A-B Мікс + + Choose your SF2 directory + - - Mix envelope amount - Мікс кількості обвідної + + Choose your default SF2 + - - Mix envelope attack - A-B Мікс вступу обвідної + + Choose your GIG directory + - - Mix envelope hold - A-B Мікс утримання обвідної + + Choose your theme directory + - - Mix envelope decay - A-B Мікс згасання обвідної + + Choose your background picture + + + + lmms::gui::Sf2InstrumentView - - Crosstalk - Перехід + + + Open SoundFont file + - - Select oscillator A1 - Виберіть генератор A1 + + Choose patch + - - Select oscillator A2 - Виберіть генератор A2 + + Gain: + - - Select oscillator B1 - Виберіть генератор B1 + + Apply reverb (if supported) + - - Select oscillator B2 - Виберіть генератор B2 + + Room size: + - - Mix output of A2 to A1 - Змішати виходи A2 до A1 + + Damping: + - - Modulate amplitude of A1 by output of A2 + + Width: - - Ring modulate A1 and A2 + + + Level: - - Modulate phase of A1 by output of A2 + + Apply chorus (if supported) - - Mix output of B2 to B1 - Змішати виходи В2 до В1 + + Voices: + - - Modulate amplitude of B1 by output of B2 + + Speed: - - Ring modulate B1 and B2 + + Depth: - - Modulate phase of B1 by output of B2 + + SoundFont Files (*.sf2 *.sf3) + + + lmms::gui::SidInstrumentView - - - - - Draw your own waveform here by dragging your mouse on this graph. - Тут ви можете малювати власний сигнал. + + Volume: + - - Load waveform - Завантаження форми звуку + + Resonance: + - - Load a waveform from a sample file + + + Cutoff frequency: - - Phase left - Фаза зліва + + High-pass filter + - - Shift phase by -15 degrees + + Band-pass filter - - Phase right - Фаза праворуч + + Low-pass filter + - - Shift phase by +15 degrees + + Voice 3 off - - - Normalize - Нормалізувати + + MOS6581 SID + - - - Invert - Інвертувати + + MOS8580 SID + - - - Smooth - Згладити + + + Attack: + - - - Sine wave - Синусоїда + + + Decay: + - - - - Triangle wave - Трикутна хвиля + + Sustain: + - - Saw wave - Зигзаг + + + Release: + - - - Square wave - Квадратна хвиля + + Pulse Width: + - - - Xpressive - - Selected graph - Обраний графік + + Coarse: + - - A1 + + Pulse wave - - A2 + + Triangle wave - - A3 + + Saw wave - - W1 smoothing + + Noise - - W2 smoothing + + Sync - - W3 smoothing + + Ring modulation - - Panning 1 + + Filtered - - Panning 2 + + Test - - Rel trans + + Pulse width: - XpressiveView + lmms::gui::SideBarWidget - - Draw your own waveform here by dragging your mouse on this graph. - Тут ви можете малювати власний сигнал. + + Close + + + + lmms::gui::SlicerTView - - Select oscillator W1 + + Slice snap - - Select oscillator W2 + + Set slice snapping for detection - - Select oscillator W3 + + Sync sample - - Select output O1 + + Enable BPM sync - - Select output O2 + + Original sample BPM - - Open help window + + Threshold used for slicing - - - Sine wave - Синусоїда + + Fade Out per note in milliseconds + - - - Moog-saw wave + + Copy midi pattern to clipboard - - - Exponential wave - Експоненціальна хвиля + + Open sample selector + - - - Saw wave - Зигзаг + + Reset slices + - - - User-defined wave + + Threshold - - - Triangle wave - Трикутник + + Fade Out + - - - Square wave - Квадратна хвиля + + Reset + - - - White noise - Білий шум + + Midi + - - WaveInterpolate + + BPM - - ExpressionValid + + Snap + + + lmms::gui::SlicerTWaveform - - General purpose 1: + + Click to load sample + + + lmms::gui::SongEditor - - General purpose 2: + + Could not open file - - General purpose 3: + + Could not open file %1. You probably have no permissions to read this file. + Please make sure to have at least read permissions to the file and try again. - - O1 panning: + + Operation denied - - O2 panning: + + A bundle folder with that name already eists on the selected path. Can't overwrite a project bundle. Please select a different name. - - Release transition: + + + + Error - - Smoothness + + Couldn't create bundle folder. - - - ZynAddSubFxInstrument - - Portamento - Портаменто + + Couldn't create resources folder. + - - Filter frequency + + Failed to copy resources. - - Filter resonance + + + Could not write file - - Bandwidth - Ширина смуги + + Could not open %1 for writing. You probably are not permitted to write to this file. Please make sure you have write-access to the file and try again. + - - FM gain + + An unknown error has occurred and the file could not be saved. - - Resonance center frequency + + Error in file - - Resonance bandwidth + + The file %1 seems to contain errors and therefore can't be loaded. - - Forward MIDI control change events + + template - - - ZynAddSubFxView - - Portamento: - Портаменто: + + project + - - PORT - PORT + + Version difference + - - Filter frequency: + + This %1 was created with LMMS %2 - - FREQ - FREQ + + Zoom + - - Filter resonance: + + Tempo - - RES - RES + + TEMPO + - - Bandwidth: - Смуга пропускання: + + Tempo in BPM + - - BW - BW + + + + Master volume + - - FM gain: + + + + Global transposition - - FM GAIN - FM GAIN + + 1/%1 Bar + - - Resonance center frequency: - Частота центру резонансу: + + %1 Bars + - - RES CF - RES CF + + Value: %1% + - - Resonance bandwidth: - Ширина смуги резонансу: + + Value: %1 keys + + + + lmms::gui::SongEditorWindow - - RES BW - RES BW + + Song-Editor + - - Forward MIDI control changes + + Play song (Space) - - Show GUI - Показати інтерфейс + + Record samples from Audio-device + - - - AudioFileProcessor - - Amplify - Підсилення + + Record samples from Audio-device while playing song or pattern track + - - Start of sample - Початок запису + + Stop song (Space) + - - End of sample - Кінець запису + + Track actions + - - Loopback point - Точка повернення з повтору + + Add pattern-track + - - Reverse sample - Перевернути запис + + Add sample-track + - - Loop mode - Режим повтору + + Add automation-track + - - Stutter - Заїкання + + Edit actions + - - Interpolation mode - Режим Інтерполяції + + Draw mode + - - None - Нічого + + Knife mode (split sample clips) + - - Linear - Лінійний + + Edit mode (select and move) + - - Sinc - Синхронізований + + Timeline controls + - - Sample not found: %1 - Запис не знайдено: %1 + + Bar insert controls + - - - BitInvader - - Sample length + + Insert bar - - - BitInvaderView - - Sample length + + Remove bar - - Draw your own waveform here by dragging your mouse on this graph. - Тут ви можете малювати власний сигнал. + + Zoom controls + - - - Sine wave - Синусоїда + + + Zoom + - - - Triangle wave - Трикутник + + Snap controls + - - - Saw wave - Зигзаг + + + Clip snapping size + - - - Square wave - Квадрат + + Toggle proportional snap on/off + - - - White noise - Білий шум + + Base snapping size + + + + lmms::gui::StepRecorderWidget - - - User-defined wave + + Hint - - - Smooth waveform - Згладжений сигнал + + Move recording curser using <Left/Right> arrows + + + + lmms::gui::StereoEnhancerControlDialog - - Interpolation - Інтерполяція + + WIDTH + - - Normalize - Нормалізувати + + Width: + - DynProcControlDialog + lmms::gui::StereoMatrixControlDialog - - INPUT - ВХІД + + Left to Left Vol: + - - Input gain: - Вхідне підсилення: + + Left to Right Vol: + - - OUTPUT - ВИХІД + + Right to Left Vol: + - - Output gain: - Вихідне підсилення: + + Right to Right Vol: + + + + lmms::gui::SubWindow - - ATTACK - ВСТУП + + Close + - - Peak attack time: - Час пікової атаки: + + Maximize + - - RELEASE - ЗМЕНШЕННЯ + + Restore + + + + lmms::gui::TapTempoView - - Peak release time: - Час відпуску піку: + + 0 + - - - Reset wavegraph + + + Precision - - - Smooth wavegraph + + Display in high precision - - - Increase wavegraph amplitude by 1 dB + + 0.0 ms - - - Decrease wavegraph amplitude by 1 dB + + Mute metronome - - Stereo mode: maximum + + Mute - - Process based on the maximum of both stereo channels - Процес заснований на максимумі від обох каналів + + BPM in milliseconds + - - Stereo mode: average + + 0 ms - - Process based on the average of both stereo channels - Процес заснований на середньому обох каналів + + Frequency of BPM + - - Stereo mode: unlinked + + 0.0000 hz - - Process each stereo channel independently - Обробляє кожен стерео канал незалежно + + Reset + - - - DynProcControls - - Input gain - Вхідне підсилення + + Reset counter and sidebar information + - - Output gain - Вихідне підсилення + + Sync + - - Attack time - Час вступу + + Sync with project tempo + - - Release time - Час зменшення + + %1 ms + - - Stereo mode - Стерео режим + + %1 hz + - graphModel + lmms::gui::TemplatesMenu - - Graph - Графік + + New from template + - KickerInstrument - - - Start frequency - Початкова частота - - - - End frequency - Кінцева частота - - - - Length - Довжина - + lmms::gui::TempoSyncBarModelEditor - - Start distortion + + + Tempo Sync - - End distortion + + No Sync - - Gain - Підсилення - - - - Envelope slope + + Eight beats - - Noise - Шум + + Whole note + - - Click - Натисніть + + Half note + - - Frequency slope + + Quarter note - - Start from note - Почати з замітки + + 8th note + - - End to note - Закінчити заміткою + + 16th note + - - - KickerInstrumentView - - Start frequency: - Початкова частота: + + 32nd note + - - End frequency: - Кінцева частота: + + Custom... + - - Frequency slope: + + Custom - - Gain: - Підсилення: + + Synced to Eight Beats + - - Envelope length: + + Synced to Whole Note - - Envelope slope: + + Synced to Half Note - - Click: - Натиснення: + + Synced to Quarter Note + - - Noise: - Шум: + + Synced to 8th Note + - - Start distortion: + + Synced to 16th Note - - End distortion: + + Synced to 32nd Note - LadspaBrowserView - - - - Available Effects - Доступні ефекти - - - - - Unavailable Effects - Недоступні ефекти - - - - - Instruments - Інструменти - + lmms::gui::TempoSyncKnob - - - Analysis Tools - Аналізатори - - - - - Don't know - Невідомі + + + Tempo Sync + - - Type: - Тип: + + No Sync + - - - LadspaDescription - - Plugins - Модулі + + Eight beats + - - Description - Опис + + Whole note + - - - LadspaPortDialog - - Ports - Порти + + Half note + - - Name - І'мя + + Quarter note + - - Rate - Частота вибірки + + 8th note + - - Direction - Напрямок + + 16th note + - - Type - Тип + + 32nd note + - - Min < Default < Max - Менше < Стандарт <Більше + + Custom... + - - Logarithmic - Логарифмічний + + Custom + - - SR Dependent - Залежність від SR + + Synced to Eight Beats + - - Audio - Аудіо + + Synced to Whole Note + - - Control - Управління + + Synced to Half Note + - - Input - Ввід + + Synced to Quarter Note + - - Output - Вивід + + Synced to 8th Note + - - Toggled - Увімкнено + + Synced to 16th Note + - - Integer - Ціле + + Synced to 32nd Note + + + + lmms::gui::TimeDisplayWidget - - Float - Дробове + + Time units + - - - Yes - Так + + MIN + - - - Lb302Synth - - VCF Cutoff Frequency - Частота зрізу VCF + + SEC + - - VCF Resonance - Посилення VCF + + MSEC + - - VCF Envelope Mod - Модуляція обвідної VCF + + BAR + - - VCF Envelope Decay - Спад обвідної VCF + + BEAT + - - Distortion - Спотворення + + TICK + + + + lmms::gui::TimeLineWidget - - Waveform - Форма хвилі + + Auto scrolling + - - Slide Decay - Зміщення згасання + + Stepped auto scrolling + - - Slide - Зміщення + + Continuous auto scrolling + - - Accent - Акцент + + Auto scrolling disabled + - - Dead - Глухо + + Loop points + - - 24dB/oct Filter - 24дБ/окт фільтр + + After stopping go back to beginning + - - - Lb302SynthView - - Cutoff Freq: - Частота зрізу: + + After stopping go back to position at which playing was started + - - Resonance: - Резонанс: + + After stopping keep position + - - Env Mod: - Мод Обвідної: + + Hint + - - Decay: - Згасання: + + Press <%1> to disable magnetic loop points. + - - 303-es-que, 24dB/octave, 3 pole filter - 303-ій, 24дБ/октаву, 3-польний фільтр + + Set loop begin here + - - Slide Decay: - Зміщення згасання: + + Set loop end here + - - DIST: - СПОТ: + + Loop edit mode (hold shift) + - - Saw wave - Зигзаг + + Dual-button + - - Click here for a saw-wave. - Згенерувати зигзаг. + + Grab closest + - - Triangle wave - Трикутна хвиля + + Handles + + + + lmms::gui::TrackContentWidget - - Click here for a triangle-wave. - Згенерувати трикутний сигнал. + + Paste + + + + lmms::gui::TrackOperationsWidget - - Square wave - Квадрат + + Press <%1> while clicking on move-grip to begin a new drag'n'drop action. + - - Click here for a square-wave. - Згенерувати квадратний сигнал. + + Actions + - - Rounded square wave - Хвиля округленого квадрату + + + Mute + - - Click here for a square-wave with a rounded end. - Створити квадратну хвилю закруглену в кінці. + + + Solo + - - Moog wave - Муг хвиля + + After removing a track, it can not be recovered. Are you sure you want to remove track "%1"? + - - Click here for a moog-like wave. - Згенерувати хвилю схожу на муг. + + Confirm removal + - - Sine wave - Синусоїда + + Don't ask again + - - Click for a sine-wave. - Генерувати гармонійний (синусоїдальний) сигнал. + + Clone this track + - - - White noise wave - Білий шум + + Remove this track + - - Click here for an exponential wave. - Генерувати експонентний сигнал. + + Clear this track + - - Click here for white-noise. - Згенерувати білий шум. + + Channel %1: %2 + - - Bandlimited saw wave - Зигзаг хвиля з обмеженою смугою + + Assign to new Mixer Channel + - - Click here for bandlimited saw wave. - Натисніть тут для пилкоподібної хвилі з обмеженою смугою. + + Turn all recording on + - - Bandlimited square wave - Квадратна хвиля з обмеженою смугою + + Turn all recording off + - - Click here for bandlimited square wave. - Натисніть тут для квадратної хвилі з обмеженою смугою. + + Track color + - - Bandlimited triangle wave - Трикутна хвиля з обмеженою смугою + + Change + - - Click here for bandlimited triangle wave. - Натисніть тут для трикутної хвилі з обмеженою смугою. + + Reset + - - Bandlimited moog saw wave - Муг-зигзаг хвиля з обмеженою смугою + + Pick random + - - Click here for bandlimited moog saw wave. - Натисніть тут для муг-зигзаг хвилі з обмеженою смугою. + + Reset clip colors + - MalletsInstrument + lmms::gui::TripleOscillatorView - - Hardness - Жорсткість + + Modulate phase of oscillator 1 by oscillator 2 + - - Position - Положення + + Modulate amplitude of oscillator 1 by oscillator 2 + - - Vibrato gain + + Mix output of oscillators 1 & 2 - - Vibrato frequency + + Synchronize oscillator 1 with oscillator 2 - - Stick mix + + Modulate frequency of oscillator 1 by oscillator 2 - - Modulator - Модулятор + + Modulate phase of oscillator 2 by oscillator 3 + - - Crossfade - Перехід + + Modulate amplitude of oscillator 2 by oscillator 3 + - - LFO speed - Швидкість LFO + + Mix output of oscillators 2 & 3 + - - LFO depth + + Synchronize oscillator 2 with oscillator 3 - - ADSR - ADSR + + Modulate frequency of oscillator 2 by oscillator 3 + - - Pressure - Тиск + + Osc %1 volume: + - - Motion - Рух + + Osc %1 panning: + - - Speed - Швидкість + + Osc %1 coarse detuning: + - - Bowed - Нахил + + semitones + - - Spread - Розкид + + Osc %1 fine detuning left: + - - Marimba - Марімба + + + cents + - - Vibraphone - Віброфон + + Osc %1 fine detuning right: + - - Agogo - Дискотека + + Osc %1 phase-offset: + - - Wood 1 + + + degrees - - Reso - Ресо + + Osc %1 stereo phase-detuning: + - - Wood 2 + + Sine wave - - Beats - Удари + + Triangle wave + - - Two fixed + + Saw wave - - Clump - Важка хода + + Square wave + - - Tubular bells + + Moog-like saw wave - - Uniform bar + + Exponential wave - - Tuned bar + + White noise - - Glass - Скло + + User-defined wave + - - Tibetan bowl + + Use alias-free wavetable oscillators. - MalletsInstrumentView - - - Instrument - Інструмент - - - - Spread - Розкид - - - - Spread: - Розкид: - + lmms::gui::VecControlsDialog - - Missing files - Відсутні файли + + HQ + - - Your Stk-installation seems to be incomplete. Please make sure the full Stk-package is installed! - Схоже, що встановлені не всі пакети Stk. Вам слід це перевірити! + + Double the resolution and simulate continuous analog-like trace. + - - Hardness - Жорсткість + + Log. scale + - - Hardness: - Жорсткість: + + Display amplitude on logarithmic scale to better see small values. + - - Position - Положення + + Persist. + - - Position: - Положення: + + Trace persistence: higher amount means the trace will stay bright for longer time. + - - Vibrato gain + + Trace persistence + + + lmms::gui::VersionedSaveDialog - - Vibrato gain: + + Increment version number - - Vibrato frequency + + Decrement version number - - Vibrato frequency: + + Save Options - - Stick mix + + already exists. Do you want to replace it? + + + lmms::gui::VestigeInstrumentView - - Stick mix: + + + Open VST plugin - - Modulator - Модулятор + + Control VST plugin from LMMS host + - - Modulator: - Модулятор: + + Open VST plugin preset + - - Crossfade - Перехід + + Previous (-) + - - Crossfade: - Перехід: + + Save preset + - - LFO speed - Швидкість LFO + + Next (+) + - - LFO speed: - Швидкість LFO: + + Show/hide GUI + - - LFO depth + + Turn off all notes - - LFO depth: + + DLL-files (*.dll) - - ADSR - ADSR + + EXE-files (*.exe) + - - ADSR: - ADSR: + + SO-files (*.so) + - - Pressure - Тиск + + No VST plugin loaded + - - Pressure: - Тиск: + + Preset + - - Speed - Швидкість + + by + - - Speed: - Швидкість: + + - VST plugin control + - ManageVSTEffectView + lmms::gui::VibedView - - - VST parameter control - Управление VST параметрами + + Enable waveform + - - VST sync + + + Smooth waveform - - - Automated - Автоматизовано + + + Normalize waveform + - - Close - Закрити + + + Sine wave + - - - ManageVestigeInstrumentView - - - - VST plugin control - Управління VST плагіном + + + Triangle wave + - - VST Sync - VST синхронізація + + + Saw wave + - - - Automated - Автоматизовано + + + Square wave + - - Close - Закрити + + + White noise + - - - OrganicInstrument - - Distortion - Спотворення + + + User-defined wave + - - Volume - Гучність + + String volume: + - - - OrganicInstrumentView - - Distortion: - Спотворення: + + String stiffness: + - - Volume: - Гучність: + + Pick position: + - - Randomise - Випадково + + Pickup position: + - - - Osc %1 waveform: - Форма сигналу осциллятора %1: + + String panning: + - - Osc %1 volume: - Гучність осциллятора %1: + + String detune: + - - Osc %1 panning: - Баланс для осциллятора %1: + + String fuzziness: + - - Osc %1 stereo detuning - Осц %1 стерео расстройка + + String length: + - - cents - соті + + Impulse Editor + - - Osc %1 harmonic: - Осц %1 гармоніка: + + Impulse + - - - PatchesDialog - - Qsynth: Channel Preset - Q-Синтезатор: Канал передустановлено + + Enable/disable string + - - Bank selector - Селектор банку + + Octave + - - Bank - Банк + + String + + + + lmms::gui::VstEffectControlDialog - - Program selector - Селектор програм + + Show/hide + - - Patch - Патч + + Control VST plugin from LMMS host + - - Name - І'мя + + Open VST plugin preset + - - OK - ОК + + Previous (-) + - - Cancel - Скасувати + + Next (+) + - - - Sf2Instrument - - Bank - Банк + + Save preset + - - Patch - Патч + + + Effect by: + - - Gain - Посилення + + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> + + + + lmms::gui::WatsynView - - Reverb - Луна + + + + + Volume + - - Reverb room size + + + + + Panning - - Reverb damping + + + + + Freq. multiplier - - Reverb width + + + + + Left detune - - Reverb level + + + + + + + + + cents - - Chorus - Хор (Приспів) + + + + + Right detune + - - Chorus voices + + A-B Mix - - Chorus level + + Mix envelope amount - - Chorus speed + + Mix envelope attack - - Chorus depth + + Mix envelope hold - - A soundfont %1 could not be loaded. - soundfont %1 не вдається завантажити. + + Mix envelope decay + - - - Sf2InstrumentView - - - Open SoundFont file - Відкрити файл SoundFront + + Crosstalk + - - Choose patch + + Select oscillator A1 - - Gain: - Підсилення: + + Select oscillator A2 + - - Apply reverb (if supported) - Створити відлуння (якщо підтримується) + + Select oscillator B1 + - - Room size: + + Select oscillator B2 - - Damping: + + Mix output of A2 to A1 - - Width: - Ширина: + + Modulate amplitude of A1 by output of A2 + - - - Level: + + Ring modulate A1 and A2 - - Apply chorus (if supported) - Створити ефект хору (якщо підтримується) + + Modulate phase of A1 by output of A2 + - - Voices: + + Mix output of B2 to B1 - - Speed: - Швидкість: + + Modulate amplitude of B1 by output of B2 + - - Depth: - Глибина: + + Ring modulate B1 and B2 + - - SoundFont Files (*.sf2 *.sf3) + + Modulate phase of B1 by output of B2 - - - SfxrInstrument - - Wave + + + + + Draw your own waveform here by dragging your mouse on this graph. - - - StereoEnhancerControlDialog - - WIDTH + + Load waveform - - Width: - Ширина: + + Load a waveform from a sample file + - - - StereoEnhancerControls - - Width - Ширина + + Phase left + - - - StereoMatrixControlDialog - - Left to Left Vol: - Від лівого на лівий: + + Shift phase by -15 degrees + - - Left to Right Vol: - Від лівого на правий: + + Phase right + - - Right to Left Vol: - Від правого на лівий: + + Shift phase by +15 degrees + - - Right to Right Vol: - Від правого на правий: + + + Normalize + - - - StereoMatrixControls - - Left to Left - Від лівого на лівий + + + Invert + - - Left to Right - Від лівого на правий + + + Smooth + - - Right to Left - Від правого на лівий + + + Sine wave + - - Right to Right - Від правого на правий + + + + Triangle wave + - - - VestigeInstrument - - Loading plugin - Завантаження модуля + + Saw wave + - - Please wait while loading the VST plugin... + + + Square wave - Vibed + lmms::gui::WaveShaperControlDialog - - String %1 volume - Гучність %1-й струни + + INPUT + - - String %1 stiffness - Жорсткість %1-й струни + + Input gain: + - - Pick %1 position - Лад %1 + + OUTPUT + - - Pickup %1 position - Положення %1-го звукознімача + + Output gain: + - - String %1 panning + + + Reset wavegraph - - String %1 detune + + + Smooth wavegraph - - String %1 fuzziness + + + Increase wavegraph amplitude by 1 dB - - String %1 length + + + Decrease wavegraph amplitude by 1 dB - - Impulse %1 - Імпульс %1 + + Clip input + - - String %1 + + Clip input signal to 0 dB - VibedView + lmms::gui::XpressiveView - - String volume: + + Draw your own waveform here by dragging your mouse on this graph. - - String stiffness: - Жорсткість: - - - - Pick position: - Ударна позиція: - - - - Pickup position: - Положення звукознімача: - - - - String panning: + + Select oscillator W1 - - String detune: + + Select oscillator W2 - - String fuzziness: + + Select oscillator W3 - - String length: + + Select output O1 - - Impulse + + Select output O2 - - Octave - Октава + + Open help window + - - Impulse Editor - Редактор сигналу + + + Sine wave + - - Enable waveform - Включити сигнал + + + Moog-saw wave + - - Enable/disable string + + + Exponential wave - - String - Струна + + + Saw wave + - - - Sine wave - Синусоїда + + + User-defined wave + - - + + Triangle wave - Трикутник - - - - - Saw wave - Зигзаг + - - + + Square wave - Квадратна хвиля + - - + + White noise - Білий шум - - - - - User-defined wave - - - Smooth waveform - Згладжений сигнал + + WaveInterpolate + - - - Normalize waveform + + ExpressionValid - - - VoiceObject - - Voice %1 pulse width - Голос %1 довжина сигналу + + General purpose 1: + - - Voice %1 attack - Вступ %1-го голосу + + General purpose 2: + - - Voice %1 decay - Згасання %1-го голосу + + General purpose 3: + - - Voice %1 sustain - Витримка для %1-го голосу + + O1 panning: + - - Voice %1 release - Зменшення %1-го голосу + + O2 panning: + - - Voice %1 coarse detuning - Підналаштування %1-голосу (грубо) + + Release transition: + - - Voice %1 wave shape - Форма сигналу для %1-го голосу + + Smoothness + + + + lmms::gui::ZynAddSubFxView - - Voice %1 sync - Синхронізація %1-го голосу + + Portamento: + - - Voice %1 ring modulate - Голос %1 кільцевий модулятор + + PORT + - - Voice %1 filtered - Фільтрований %1-й голос + + Filter frequency: + - - Voice %1 test - Голос %1 тест + + FREQ + - - - WaveShaperControlDialog - - INPUT - ВХІД + + Filter resonance: + - - Input gain: - Вхідне підсилення: + + RES + - - OUTPUT - ВИХІД + + Bandwidth: + - - Output gain: - Вихідне підсилення: + + BW + - - - Reset wavegraph + + FM gain: - - - Smooth wavegraph + + FM GAIN - - - Increase wavegraph amplitude by 1 dB + + Resonance center frequency: - - - Decrease wavegraph amplitude by 1 dB + + RES CF - - Clip input - Зрізати вхідний сигнал + + Resonance bandwidth: + - - Clip input signal to 0 dB + + RES BW - - - WaveShaperControls - - Input gain - Вхідне підсилення + + Forward MIDI control changes + - - Output gain - Вихідне підсилення + + Show GUI + - + \ No newline at end of file diff --git a/data/locale/zh_CN.ts b/data/locale/zh_CN.ts index 9b783b963dd..fe16e0c0c1e 100644 --- a/data/locale/zh_CN.ts +++ b/data/locale/zh_CN.ts @@ -1,4 +1,4 @@ - + AboutDialog @@ -78,954 +78,192 @@ Zixing Liu <liushuyu at aosc.xyz> - AmplifierControlDialog + AboutJuceDialog - - VOL - 音量 - - - - Volume: - 音量: - - - - PAN - 声相 - - - - Panning: - 声相: - - - - LEFT - - - - - Left gain: - 左增益: - - - - RIGHT - - - - - Right gain: - 右增益: - - - - AmplifierControls - - - Volume - 音量 - - - - Panning - 声相 - - - - Left gain - 左增益 - - - - Right gain - 右增益 - - - - AudioAlsaSetupWidget - - - DEVICE - 设备 - - - - CHANNELS - 声道数 - - - - AudioFileProcessorView - - - Open sample - 打开采样文件 - - - - Reverse sample - 反转采样 - - - - Disable loop - 禁用循环 - - - - Enable loop - 开启循环 - - - - Enable ping-pong loop - 启用往复循环 - - - - Continue sample playback across notes - 跨音符继续播放采样 - - - - Amplify: - 放大: - - - - Start point: - 循环起点 - - - - End point: - 循环结束点 - - - - Loopback point: - 循环点: - - - - AudioFileProcessorWaveView - - - Sample length: - 采样长度: - - - - AudioJack - - - JACK client restarted - JACK客户端已重启 - - - - LMMS was kicked by JACK for some reason. Therefore the JACK backend of LMMS has been restarted. You will have to make manual connections again. - LMMS由于某些原因与JACK断开连接,这可能是因为LMMS的JACK后端重启导致的,你需要手动重新连接。 - - - - JACK server down - JACK服务崩溃 - - - - The JACK server seems to have been shutdown and starting a new instance failed. Therefore LMMS is unable to proceed. You should save your project and restart JACK and LMMS. - JACK服务好像崩溃了而且未能正常启动,LMMS不能正常工作,你需要保存你的工作然后重启JACK和LMMS。 - - - - Client name - 客户端名称 - - - - Channels - 通道 - - - - AudioOss - - - Device - 设备 - - - - Channels - 通道 - - - - AudioPortAudio::setupWidget - - - Backend - 后端 - - - - Device - 设备 - - - - AudioPulseAudio - - - Device - 设备 + + About JUCE + 关于 JUCE - - Channels - 通道 + + <b>About JUCE</b> + <b>关于 JUCE</b> - - - AudioSdl::setupWidget - - Device - 设备 + + This program uses JUCE version 3.x.x. + 本程序使用 JUCE 3.x.x 版本。 - - - AudioSndio - - Device - 设备 + + JUCE is an open-source cross-platform C++ application framework for creating high quality desktop and mobile applications. + +The core JUCE modules (juce_audio_basics, juce_audio_devices, juce_core and juce_events) are permissively licensed under the terms of the ISC license. +Other modules are covered by a GNU GPL 3.0 license. + +Copyright (C) 2022 Raw Material Software Limited. + JUCE 是一个开源的跨平台 C++ 应用程序框架,用于创建高质量的桌面和移动应用程序。 + +JUCE 的核心模块(juce_audio_basics、juce_audio_devices、juce_core 和 juce_events)采用 ISC 许可证的许可条款。 +其他模块采用 GNU GPL 3.0 许可证。 + +版权所有 (C) 2022 Raw Material Software Limited. - - Channels - 通道 + + This program uses JUCE version + 本程序使用的JUCE版本为 - AudioSoundIo::setupWidget - - - Backend - 后端 - + AudioDeviceSetupWidget - - Device - 设备 + + [System Default] + - AutomatableModel - - - &Reset (%1%2) - 重置(%1%2)(&R) - - - - &Copy value (%1%2) - 复制值(%1%2)(&C) - + CarlaAboutW - - &Paste value (%1%2) - 粘贴值(%1%2)(&P) + + About Carla + 关于 Carla - - &Paste value - 粘贴值 (&P) + + About + 关于 - - Edit song-global automation - 编辑歌曲全局自动控制 + + About text here + 说明文字 - - Remove song-global automation - 删除歌曲全局自动控制 + + Extended licensing here + 使用许可补充 - - Remove all linked controls - 删除所有已连接的控制器 + + Artwork + 美工 - - Connected to %1 - 连接到%1 + + Using KDE Oxygen icon set, designed by Oxygen Team. + 使用由 Oxygen 团队设计的 KDE Oxygen 图标集。 - - Connected to controller - 连接到控制器 + + Contains some knobs, backgrounds and other small artwork from Calf Studio Gear, OpenAV and OpenOctave projects. + 包含 Calf Studio Gear、OpenAV 和 OpenOctave 项目中的一些旋钮、背景和其他小型艺术品。 - - Edit connection... - 编辑连接... + + VST is a trademark of Steinberg Media Technologies GmbH. + VST 是 Steinberg Media Technologies GmbH 的商标。 - - Remove connection - 删除连接 + + Special thanks to António Saraiva for a few extra icons and artwork! + 特别感谢 António Saraiva 提供了一些额外的图标和美工设计! - - Connect to controller... - 连接到控制器... + + The LV2 logo has been designed by Thorsten Wilms, based on a concept from Peter Shorthose. + LV2 徽标由 Thorsten Wilms 根据 Peter Shorthose 的概念设计而成。 - - - AutomationEditor - - Edit Value - + + MIDI Keyboard designed by Thorsten Wilms. + MIDI 键盘由 Thorsten Wilms 设计。 - - New outValue - + + Carla, Carla-Control and Patchbay icons designed by DoosC. + Carla、Carla-Control 和 Patchbay 图标由 DoosC 设计。 - - New inValue - + + Features + 特性 - - Please open an automation clip with the context menu of a control! - 请使用控制的上下文菜单打开一个自动控制样式! + + AU/AudioUnit: + AU/AudioUnit: - - - AutomationEditorWindow - - Play/pause current clip (Space) - 播放/暂停当前片段(空格) + + LADSPA: + LADSPA: - - Stop playing of current clip (Space) - 停止当前片段(空格) + + + + + + + + + TextLabel + 文本标签 - - Edit actions - 编辑功能 + + VST2: + VST2: - - Draw mode (Shift+D) - 绘制模式 (Shift+D) + + DSSI: + DSSI: - - Erase mode (Shift+E) - 擦除模式 (Shift+E) + + LV2: + LV2: - - Draw outValues mode (Shift+C) - + + VST3: + VST3: - - Flip vertically - 垂直翻转 + + OSC + 远程控制 - - Flip horizontally - 水平翻转 + + Host URLs: + 主机 URL: - - Interpolation controls - 补间控制 + + Valid commands: + 可用命令: - - Discrete progression - 离散步进 + + valid osc commands here + 可用的远程控制命令在这里 - - Linear progression - 线性步进 + + Example: + 例如: - - Cubic Hermite progression - 立方 Hermite 步进 + + License + 许可证 - - Tension value for spline - 样条函数的张力值 - - - - Tension: - 张力: - - - - Zoom controls - 缩放控制 - - - - Horizontal zooming - 水平缩放 - - - - Vertical zooming - 垂直缩放 - - - - Quantization controls - 量化控制 - - - - Quantization - 量化控制 - - - - - Automation Editor - no clip - 自动控制编辑器 - 没有片段 - - - - - Automation Editor - %1 - 自动控制编辑器 - %1 - - - - Model is already connected to this clip. - 模型已连接到此片段。 - - - - AutomationClip - - - Drag a control while pressing <%1> - 按住<%1>拖动控制器 - - - - AutomationClipView - - - Open in Automation editor - 在自动编辑器(Automation editor)中打开 - - - - Clear - 清除 - - - - Reset name - 重置名称 - - - - Change name - 修改名称 - - - - Set/clear record - 设置/清除录制 - - - - Flip Vertically (Visible) - 垂直翻转 (可见) - - - - Flip Horizontally (Visible) - 水平翻转 (可见) - - - - %1 Connections - %1个连接 - - - - Disconnect "%1" - 断开“%1”的连接 - - - - Model is already connected to this clip. - 模型已连接到此片段。 - - - - AutomationTrack - - - Automation track - 自动控制轨道 - - - - PatternEditor - - - Beat+Bassline Editor - 节拍+低音线编辑器 - - - - Play/pause current beat/bassline (Space) - 播放/暂停当前节拍/低音线(空格) - - - - Stop playback of current beat/bassline (Space) - 停止播放当前节拍/低音线(空格) - - - - Beat selector - 节拍选择器 - - - - Track and step actions - 音轨和音阶动作 - - - - Add beat/bassline - 添加节拍/低音线 - - - - Clone beat/bassline clip - - - - - Add sample-track - 添加采样轨道 - - - - Add automation-track - 添加自动控制轨道 - - - - Remove steps - 移除音阶 - - - - Add steps - 添加音阶 - - - - Clone Steps - 克隆音阶 - - - - PatternClipView - - - Open in Beat+Bassline-Editor - 在节拍+Bassline编辑器中打开 - - - - Reset name - 重置名称 - - - - Change name - 修改名称 - - - - PatternTrack - - - Beat/Bassline %1 - 节拍/Bassline %1 - - - - Clone of %1 - %1 的副本 - - - - BassBoosterControlDialog - - - FREQ - 频率 - - - - Frequency: - 频率: - - - - GAIN - 增益 - - - - Gain: - 增益: - - - - RATIO - 比率 - - - - Ratio: - 比率: - - - - BassBoosterControls - - - Frequency - 频率 - - - - Gain - 增益 - - - - Ratio - 比率 - - - - BitcrushControlDialog - - - IN - 输入 - - - - OUT - 输出 - - - - - GAIN - 增益 - - - - Input gain: - 输入增益: - - - - NOISE - 噪音 - - - - Input noise: - 输入噪音 - - - - Output gain: - 输出增益: - - - - CLIP - 压限 - - - - Output clip: - 输出截幅 - - - - Rate enabled - 采样率缩减至 - - - - Enable sample-rate crushing - 启用采样率缩减 - - - - Depth enabled - 位深缩减至 - - - - Enable bit-depth crushing - 启用位深缩减 - - - - FREQ - 频率 - - - - Sample rate: - 采样率: - - - - STEREO - 立体效果 - - - - Stereo difference: - 双声道差异: - - - - QUANT - 数量 - - - - Levels: - 级别: - - - - BitcrushControls - - - Input gain - 输入增益 - - - - Input noise - 输入噪音 - - - - Output gain - 输出增益 - - - - Output clip - 输出截辐 - - - - Sample rate - 采样率 - - - - Stereo difference - 左右声道差异 - - - - Levels - 级别 - - - - Rate enabled - 采样率缩减至 - - - - Depth enabled - 位深缩减至 - - - - CarlaAboutW - - - About Carla - 关于Carla - - - - About - 关于 - - - - About text here - 说明文字 - - - - Extended licensing here - 使用许可补充 - - - - Artwork - - - - - Using KDE Oxygen icon set, designed by Oxygen Team. - - - - - Contains some knobs, backgrounds and other small artwork from Calf Studio Gear, OpenAV and OpenOctave projects. - - - - - VST is a trademark of Steinberg Media Technologies GmbH. - - - - - Special thanks to António Saraiva for a few extra icons and artwork! - - - - - The LV2 logo has been designed by Thorsten Wilms, based on a concept from Peter Shorthose. - - - - - MIDI Keyboard designed by Thorsten Wilms. - - - - - Carla, Carla-Control and Patchbay icons designed by DoosC. - - - - - Features - - - - - AU/AudioUnit: - - - - - LADSPA: - - - - - - - - - - - - TextLabel - - - - - VST2: - - - - - DSSI: - - - - - LV2: - - - - - VST3: - - - - - OSC - - - - - Host URLs: - - - - - Valid commands: - - - - - valid osc commands here - - - - - Example: - - - - - License - 许可证 - - - + GNU GENERAL PUBLIC LICENSE Version 2, June 1991 @@ -1041,7 +279,288 @@ freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too. @@ -1068,18 +587,18 @@ rights. (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. - Also, for each author's protection and ours, we want to make certain + Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original -authors' reputations. +authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. +patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. @@ -1104,7 +623,7 @@ is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. - 1. You may copy and distribute verbatim copies of the Program's + 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the @@ -1218,7 +737,7 @@ the Program or works based on it. Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. +restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. @@ -1306,15040 +825,18229 @@ PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS - + + + + + OSC Bridge Version + + + + + Plugin Version + 插件版本 + + + + <br>Version %1<br>Carla is a fully-featured audio plugin host%2.<br><br>Copyright (C) 2011-2019 falkTX<br> + + + + + + (Engine not running) + (引擎未运行) + + + + Everything! (Including LRDF) + + + + + Everything! (Including CustomData/Chunks) + + + + + About 110&#37; complete (using custom extensions)<br/>Implemented Feature/Extensions:<ul><li>http://lv2plug.in/ns/ext/atom</li><li>http://lv2plug.in/ns/ext/buf-size</li><li>http://lv2plug.in/ns/ext/data-access</li><li>http://lv2plug.in/ns/ext/event</li><li>http://lv2plug.in/ns/ext/instance-access</li><li>http://lv2plug.in/ns/ext/log</li><li>http://lv2plug.in/ns/ext/midi</li><li>http://lv2plug.in/ns/ext/options</li><li>http://lv2plug.in/ns/ext/parameters</li><li>http://lv2plug.in/ns/ext/port-props</li><li>http://lv2plug.in/ns/ext/presets</li><li>http://lv2plug.in/ns/ext/resize-port</li><li>http://lv2plug.in/ns/ext/state</li><li>http://lv2plug.in/ns/ext/time</li><li>http://lv2plug.in/ns/ext/uri-map</li><li>http://lv2plug.in/ns/ext/urid</li><li>http://lv2plug.in/ns/ext/worker</li><li>http://lv2plug.in/ns/extensions/ui</li><li>http://lv2plug.in/ns/extensions/units</li><li>http://home.gna.org/lv2dynparam/rtmempool/v1</li><li>http://kxstudio.sf.net/ns/lv2ext/external-ui</li><li>http://kxstudio.sf.net/ns/lv2ext/programs</li><li>http://kxstudio.sf.net/ns/lv2ext/props</li><li>http://kxstudio.sf.net/ns/lv2ext/rtmempool</li><li>http://ll-plugins.nongnu.org/lv2/ext/midimap</li><li>http://ll-plugins.nongnu.org/lv2/ext/miditype</li></ul> + + + + + + + Using Juce host + 使用 Juce 宿主 + + + + About 85% complete (missing vst bank/presets and some minor stuff) + 大约完成 85% (缺少 VST 库/预设以及一些小东西) + + + + CarlaHostW + + + MainWindow + 主窗口 + + + + Rack + 机架 + + + + Patchbay + + + + + Logs + 日志 + + + + Loading... + 载入中... + + + + Save + 保存 + + + + Clear + 清除 + + + + Ctrl+L + Ctrl+L + + + + Auto-Scroll + + + + + Buffer Size: + 缓冲区大小: + + + + Sample Rate: + 采样率: + + + + ? Xruns + ? Xruns + + + + DSP Load: %p% + DSP 负载:%p% + + + + &File + 文件 (&F) + + + + &Engine + 引擎 (&E) + + + + &Plugin + 插件 (&P) + + + + Macros (all plugins) + 宏 (所有插件) + + + + &Canvas + 画布 (&C) + + + + Zoom + 缩放 + + + + &Settings + 设置 (&S) + + + + &Help + 帮助 (&H) + + + + Tool Bar + 工具栏 + + + + Disk + 磁盘 + + + + + Home + Home + + + + Transport + 走带 + + + + Playback Controls + 回放控制 + + + + Time Information + 时间信息 + + + + Frame: + 帧: + + + + 000'000'000 + 000'000'000 + + + + Time: + 时间: + + + + 00:00:00 + 00:00:00 + + + + BBT: + BBT: + + + + 000|00|0000 + 000|00|0000 + + + + Settings + 设置 + + + + BPM + BPM + + + + Use JACK Transport + 使用 JACK 走带 + + + + Use Ableton Link + 使用 Ableton 连接 + + + + &New + 新建 (&N) + + + + Ctrl+N + Ctrl+N + + + + &Open... + 打开 (&O)... + + + + + Open... + 打开... + + + + Ctrl+O + Ctrl+O + + + + &Save + 保存 (&S) + + + + Ctrl+S + Ctrl+S + + + + Save &As... + 另存为 (&A)... + + + + + Save As... + 另存为... + + + + Ctrl+Shift+S + Ctrl+Shift+S + + + + &Quit + 退出 (&Q) + + + + Ctrl+Q + Ctrl+Q + + + + &Start + 启动 (&S) + + + + F5 + F5 + + + + St&op + 停止 (&O) + + + + F6 + F6 + + + + &Add Plugin... + 新增插件 (&A)... + + + + Ctrl+A + Ctrl+A + + + + &Remove All + 删除全部 (&R) + + + + Enable + 启用 + + + + Disable + 禁用 + + + + 0% Wet (Bypass) + + + + + 100% Wet + + + + + 0% Volume (Mute) + 0% 音量 (静音) + + + + 100% Volume + 100% 音量 + + + + Center Balance + + + + + &Play + 播放 (&P) + + + + Ctrl+Shift+P + Ctrl+Shift+P + + + + &Stop + 停止 (&S) + + + + Ctrl+Shift+X + Ctrl+Shift+X + + + + &Backwards + 倒带 (&B) + + + + Ctrl+Shift+B + Ctrl+Shift+B + + + + &Forwards + 快进 (&F) + + + + Ctrl+Shift+F + Ctrl+Shift+F + + + + &Arrange + 编排 (&A) + + + + Ctrl+G + Ctrl+G + + + + + &Refresh + 刷新 (&R) + + + + Ctrl+R + Ctrl+R + + + + Save &Image... + 保存图像 (&I)... + + + + Auto-Fit + 自动调整 + + + + Zoom In + 放大 + + + + Ctrl++ + Ctrl++ + + + + Zoom Out + 缩小 + + + + Ctrl+- + Ctrl+- + + + + Zoom 100% + 100% 缩放 + + + + Ctrl+1 + Ctrl+1 + + + + Show &Toolbar + 显示工具栏 (&T) + + + + &Configure Carla + 配置 Carla (&C) + + + + &About + 关于 (&A) + + + + About &JUCE + 关于 JUCE (&J) + + + + About &Qt + 关于 Qt (&Q) + + + + Show Canvas &Meters + + + + + Show Canvas &Keyboard + + + + + Show Internal + + + + + Show External + + + + + Show Time Panel + 显示时间面板 + + + + Show &Side Panel + 显示侧边面板 (&S) + + + + Ctrl+P + Ctrl+P + + + + &Connect... + 连接 (&C)... + + + + Compact Slots + + + + + Expand Slots + + + + + Perform secret 1 + + + + + Perform secret 2 + + + + + Perform secret 3 + + + + + Perform secret 4 + + + + + Perform secret 5 + + + + + Add &JACK Application... + 添加 JACK 应用程序 (&J)... + + + + &Configure driver... + 配置驱动程序 (&C)... + + + + Panic + 恐慌 + + + + Open custom driver panel... + 打开自定义驱动面板... + + + + Save Image... (2x zoom) + 保存图像... (2 倍缩放) + + + + Save Image... (4x zoom) + 保存图像... (4 倍缩放) + + + + Copy as Image to Clipboard + 复制图像到剪贴板 + + + + Ctrl+Shift+C + Ctrl+Shift+C + + + + CarlaHostWindow + + + Export as... + 导出为... + + + + + + + Error + 错误 + + + + Failed to load project + 无法加载工程 + + + + Failed to save project + 无法保存工程 + + + + Quit + 退出 + + + + Are you sure you want to quit Carla? + 你确定要退出 Carla 吗? + + + + Could not connect to Audio backend '%1', possible reasons: +%2 + 无法连接到音频后端 “%1”,可能的原因是: +%2 + + + + Could not connect to Audio backend '%1' + 无法连接到音频后端 “%1” + + + + Warning + 警告 + + + + There are still some plugins loaded, you need to remove them to stop the engine. +Do you want to do this now? + 现在仍有已加载插件,要停止引擎需要移除它们。 +要这样做吗? + + + + CarlaSettingsW + + + Settings + 设置 + + + + main + 主要 + + + + canvas + 画布 + + + + engine + 引擎 + + + + osc + 远程控制 + + + + file-paths + 文件路径 + + + + plugin-paths + 插件路径 + + + + wine + Wine + + + + experimental + 实验性 + + + + Widget + 小组件 + + + + + Main + 主要 + + + + + Canvas + 画布 + + + + + Engine + 引擎 + + + + File Paths + 文件路径 + + + + Plugin Paths + 插件路径 + + + + Wine + Wine + + + + + Experimental + 实验性 + + + + <b>Main</b> + <b>主要 </b> + + + + Paths + 路径 + + + + Default project folder: + 默认工程目录: + + + + Interface + + + + + Use "Classic" as default rack skin + 使用“经典”作为机架默认皮肤 + + + + Interface refresh interval: + + + + + + ms + 毫秒 + + + + Show console output in Logs tab (needs engine restart) + + + + + Show a confirmation dialog before quitting + + + + + + Theme + 主题 + + + + Use Carla "PRO" theme (needs restart) + 使用 Carla “专业版”主题 (需要重启) + + + + Color scheme: + 颜色方案: + + + + Black + 黑色 + + + + System + 系统 + + + + Enable experimental features + 启用实验性特性 + + + + <b>Canvas</b> + <b>画布</b> + + + + Bezier Lines + + + + + Theme: + 主题: + + + + Size: + 大小: + + + + 775x600 + 775x600 + + + + 1550x1200 + 1550x1200 + + + + 3100x2400 + 3100x2400 + + + + 4650x3600 + 4650x3600 + + + + 6200x4800 + 6200x4800 + + + + 12400x9600 + 12400x9600 + + + + Options + 选项 + + + + Auto-hide groups with no ports + + + + + Auto-select items on hover + + + + + Basic eye-candy (group shadows) + + + + + Render Hints + 渲染提示 + + + + Anti-Aliasing + 抗锯齿 + + + + Full canvas repaints (slower, but prevents drawing issues) + 全画布重绘 (更慢,但可解决绘制问题) + + + + <b>Engine</b> + <b>引擎</b> + + + + + Core + 核心 + + + + Single Client + 单客户端 + + + + Multiple Clients + 多客户端 + + + + + Continuous Rack + + + + + + Patchbay + + + + + Audio driver: + 音频驱动: + + + + Process mode: + 处理模式: + + + + + + + Maximum number of parameters to allow in the built-in 'Edit' dialog + 在内置“编辑”对话框中允许的最大参数数量 + + + + Max Parameters: + 最大参数: + + + + ... + ... + + + + Reset Xrun counter after project load + 工程加载后重置 Xrun 计数器 + + + + Plugin UIs + 插件 UI + + + + + How much time to wait for OSC GUIs to ping back the host + + + + + UI Bridge Timeout: + + + + + Use OSC-GUI bridges when possible, this way separating the UI from DSP code + + + + + Use UI bridges instead of direct handling when possible + + + + + Make plugin UIs always-on-top + 使插件 UI 总在最上方 + + + + Make plugin UIs appear on top of Carla (needs restart) + + + + + NOTE: Plugin-bridge UIs cannot be managed by Carla on macOS + + + + + + Restart the engine to load the new settings + 重启引擎以载入新设置 + + + + <b>OSC</b> + <b>远程控制 </b> + + + + Enable OSC + 启用远程控制 + + + + Enable TCP port + 启用 TCP 端口 + + + + + Use specific port: + 使用指定端口: + + + + Overridden by CARLA_OSC_TCP_PORT env var + 被环境变量 CARLA_OSC_TCP_PORT 覆写 + + + + + Use randomly assigned port + 使用随机分配端口 + + + + Enable UDP port + 启用 UDP 端口 + + + + Overridden by CARLA_OSC_UDP_PORT env var + 被环境变量 CARLA_OSC_UDP_PORT 覆写 + + + + DSSI UIs require OSC UDP port enabled + DSSI UI 需要远程控制 UDP 端口已启用 + + + + <b>File Paths</b> + <b>文件路径</b> + + + + Audio + 音频 + + + + MIDI + MIDI + + + + Used for the "audiofile" plugin + 用于“音频文件”插件 + + + + Used for the "midifile" plugin + 用于“MIDI 文件”插件 + + + + + Add... + 新增... + + + + + Remove + 移除 + + + + + Change... + 变更... + + + + <b>Plugin Paths</b> + <b>插件路径</b> + + + + LADSPA + LADSPA + + + + DSSI + DSSI + + + + LV2 + LV2 + + + + VST2 + VST2 + + + + VST3 + VST3 + + + + SF2/3 + SF2/3 + + + + SFZ + SFZ + + + + JSFX + JSFX + + + + CLAP + CLAP + + + + Restart Carla to find new plugins + 重启 Carla 以查找新插件 + + + + <b>Wine</b> + <b>Wine</b> + + + + Executable + + + + + Path to 'wine' binary: + + + + + Prefix + + + + + Auto-detect Wine prefix based on plugin filename + + + + + Fallback: + + + + + Note: WINEPREFIX env var is preferred over this fallback + + + + + Realtime Priority + 实时优先级 + + + + Base priority: + + + + + WineServer priority: + + + + + These options are not available for Carla as plugin + + + + + <b>Experimental</b> + <b>实验性</b> + + + + Experimental options! Likely to be unstable! + 实验性选项!大概率不稳定! + + + + Enable plugin bridges + 启用插件桥接 + + + + Enable Wine bridges + 启用 Wine 桥接 + + + + Enable jack applications + 启用 JACK 应用程序 + + + + Export single plugins to LV2 + 导出单个插件至 LV2 + + + + Use system/desktop-theme icons (needs restart) + 使用系统/桌面主题图标 (需要重启) + + + + Load Carla backend in global namespace (NOT RECOMMENDED) + 在全局命名空间加载 Carla 后端 (不推荐) + + + + Fancy eye-candy (fade-in/out groups, glow connections) + + + + + Use OpenGL for rendering (needs restart) + 使用 OpenGL 渲染 (需要重启) + + + + High Quality Anti-Aliasing (OpenGL only) + 高质量抗锯齿 (仅限 OpenGL) + + + + Render Ardour-style "Inline Displays" + 渲染 Ardour 样式的“内联显示” + + + + Force mono plugins as stereo by running 2 instances at the same time. +This mode is not available for VST plugins. + 强制单声道插件同时运行 2 个实例实现双声道。 +对 VST 插件无效。 + + + + Force mono plugins as stereo + 强制单声道插件以双声道模式运行 + + + + When enabled, Carla will try to prevent plugins from doing things that might mess up the audio or cause xruns, such as fork(), gtk_init() and similar. + + + + + Prevent unsafe calls from plugins (needs restart) + 阻止插件不安全调用 (需要重启) + + + + Run plugins in a separate process, so if they crash it does not affect Carla. +Plugins get automatically deactivated in such cases. +Reactvate them to start the process again, with the last saved state applied to it. + + + + + Run plugins in bridge mode when possible + + + + + + + + Add Path + 新增路径 + + + + Dialog + + + Carla Control - Connect + + + + + Remote setup + 远程设置 + + + + UDP Port: + UDP 端口: + + + + Remote host: + 远程主机: + + + + TCP Port: + TCP 端口: + + + + Set value + 设置值 + + + + TextLabel + 文本标签 + + + + Scale Points + + + + + DriverSettingsW + + + Driver Settings + 驱动设置 + + + + Device: + 设备: + + + + Buffer size: + 缓冲区大小: + + + + Sample rate: + 采样率: + + + + Triple buffer + 三重缓冲区 + + + + Show Driver Control Panel + 显示驱动控制面板 + + + + Restart the engine to load the new settings + 重启引擎以载入新设置 + + + + ExportProjectDialog + + + Export project + 导出工程 + + + + Export as loop (remove extra bar) + 导出为循环 (移除结尾的静音) + + + + Export between loop markers + 只导出循环标记中间的部分 + + + + Render Looped Section: + 渲染循环节: + + + + time(s) + + + + + File format settings + 文件格式设置 + + + + File format: + 文件格式: + + + + Sampling rate: + 采样率: + + + + 44100 Hz + 44100 Hz + + + + 48000 Hz + 48000 Hz + + + + 88200 Hz + 88200 Hz + + + + 96000 Hz + 96000 Hz + + + + 192000 Hz + 192000 Hz + + + + Bit depth: + 位深: + + + + 16 Bit integer + 16 位整数 + + + + 24 Bit integer + 24 位整数 + + + + 32 Bit float + 32 位浮点 + + + + Stereo mode: + 双声道模式: + + + + Mono + 单声道 + + + + Stereo + 双声道 + + + + Joint stereo + 联合双声道 + + + + Compression level: + 压缩级别: + + + + Bitrate: + 码率: + + + + 64 KBit/s + 64 KBit/s + + + + 128 KBit/s + 128 KBit/s + + + + 160 KBit/s + 160 KBit/s + + + + 192 KBit/s + 192 KBit/s + + + + 256 KBit/s + 256 KBit/s + + + + 320 KBit/s + 320 KBit/s + + + + Use variable bitrate + 使用可变比特率 + + + + Quality settings + 质量设置 + + + + Interpolation: + 补间: + + + + Zero order hold + 零阶保持 + + + + Sinc worst (fastest) + 快速 Sinc 补间 (最快) + + + + Sinc medium (recommended) + 中等 Sinc 补间 (推荐) + + + + Sinc best (slowest) + 最佳 Sinc 补间 (最慢!) + + + + Start + 开始 + + + + Cancel + 取消 + + + + InstrumentFunctionNoteStacking + + + octave + octave + + + + + Major + Major + + + + Majb5 + Majb5 + + + + minor + minor + + + + minb5 + minb5 + + + + sus2 + sus2 + + + + sus4 + sus4 + + + + aug + aug + + + + augsus4 + augsus4 + + + + tri + tri + + + + 6 + 6 + + + + 6sus4 + 6sus4 + + + + 6add9 + 6add9 + + + + m6 + m6 + + + + m6add9 + m6add9 + + + + 7 + 7 + + + + 7sus4 + 7sus4 + + + + 7#5 + 7#5 + + + + 7b5 + 7b5 + + + + 7#9 + 7#9 + + + + 7b9 + 7b9 + + + + 7#5#9 + 7#5#9 + + + + 7#5b9 + 7#5b9 + + + + 7b5b9 + 7b5b9 + + + + 7add11 + 7add11 + + + + 7add13 + 7add13 + + + + 7#11 + 7#11 + + + + Maj7 + Maj7 + + + + Maj7b5 + Maj7b5 + + + + Maj7#5 + Maj7#5 + + + + Maj7#11 + Maj7#11 + + + + Maj7add13 + Maj7add13 + + + + m7 + m7 + + + + m7b5 + m7b5 + + + + m7b9 + m7b9 + + + + m7add11 + m7add11 + + + + m7add13 + m7add13 + + + + m-Maj7 + m-Maj7 + + + + m-Maj7add11 + m-Maj7add11 + + + + m-Maj7add13 + m-Maj7add13 + + + + 9 + 9 + + + + 9sus4 + 9sus4 + + + + add9 + add9 + + + + 9#5 + 9#5 + + + + 9b5 + 9b5 + + + + 9#11 + 9#11 + + + + 9b13 + 9b13 + + + + Maj9 + Maj9 + + + + Maj9sus4 + Maj9sus4 + + + + Maj9#5 + Maj9#5 + + + + Maj9#11 + Maj9#11 + + + + m9 + m9 + + + + madd9 + madd9 + + + + m9b5 + m9b5 + + + + m9-Maj7 + m9-Maj7 + + + + 11 + 11 + + + + 11b9 + 11b9 + + + + Maj11 + Maj11 + + + + m11 + m11 + + + + m-Maj11 + m-Maj11 + + + + 13 + 13 + + + + 13#9 + 13#9 + + + + 13b9 + 13b9 + + + + 13b5b9 + 13b5b9 + + + + Maj13 + Maj13 + + + + m13 + m13 + + + + m-Maj13 + m-Maj13 + + + + Harmonic minor + 和声小调 + + + + Melodic minor + 旋律小调 + + + + Whole tone + 全音符 + + + + Diminished + 减音程 + + + + Major pentatonic + 大调五声 + + + + Minor pentatonic + 小调五声 + + + + Jap in sen + 日本阴旋 + + + + Major bebop + 大调比波普 + + + + Dominant bebop + 属比波普 + + + + Blues + 布鲁斯 + + + + Arabic + 阿拉伯音阶 + + + + Enigmatic + 神秘音阶 + + + + Neopolitan + 拿坡里音阶 + + + + Neopolitan minor + 拿坡里小调 + + + + Hungarian minor + 匈牙利小调 + + + + Dorian + 多利安 + + + + Phrygian + 弗里几亚 + + + + Lydian + 利底亚 + + + + Mixolydian + 米索利底亚 + + + + Aeolian + 爱欧利安 + + + + Locrian + 罗克里安 + + + + Minor + 小调 + + + + Chromatic + 半音 + + + + Half-Whole Diminished + 半-全减音程 + + + + 5 + 5 + + + + Phrygian dominant + 弗里几亚属音阶 + + + + Persian + 波斯 + + + + InstrumentSoundShaping + + + VOLUME + 音量 + + + + Volume + 音量 + + + + CUTOFF + 切除 + + + + Cutoff frequency + 切除频率 + + + + RESO + 共鸣 + + + + Resonance + 共鸣 + + + + JackAppDialog + + + Add JACK Application + 添加 JACK 应用程序 + + + + Note: Features not implemented yet are greyed out + 注意:未实现的特性已标灰 + + + + Application + 应用程序 + + + + Name: + 名称: + + + + Application: + 应用程序: + + + + From template + 来自模板 + + + + Custom + 自定义 + + + + Template: + 模板: + + + + Command: + 命令: + + + + Setup + 设置 + + + + Session Manager: + 会话管理: + + + + None + + + + + Audio inputs: + 音频输入: + + + + MIDI inputs: + MIDI 输入: + + + + Audio outputs: + 音频输出: + + + + MIDI outputs: + MIDI 输出: + + + + Take control of main application window + 控制主应用容器 + + + + Workarounds + 解决方案 + + + + Wait for external application start (Advanced, for Debug only) + + + + + Capture only the first X11 Window + 仅捕获第一个 X11 窗口 + + + + Use previous client output buffer as input for the next client + 使用前一个客户端的输出缓冲区作为下一个客户端输入 + + + + Simulate 16 JACK MIDI outputs, with MIDI channel as port index + + + + + Error here + 这里出错了 + + + + NSM applications cannot use abstract or absolute paths + + + + + NSM applications cannot use CLI arguments + + + + + You need to save the current Carla project before NSM can be used + + + + + JuceAboutW + + + This program uses JUCE version %1. + 本程序使用 JUCE %1 版本。 + + + + MidiPatternW + + + MIDI Pattern + MIDI 片段 + + + + Time Signature: + 节拍: + + + + + + 1/4 + 1/4 + + + + 2/4 + 2/4 + + + + 3/4 + 3/4 + + + + 4/4 + 4/4 + + + + 5/4 + 5/4 + + + + 6/4 + 6/4 + + + + Measures: + 小节数 + + + + + + 1 + 1 + + + + 2 + 2 + + + + 3 + 3 + + + + 4 + 4 + + + + 5 + 5 + + + + 6 + 6 + + + + 7 + 7 + + + + 8 + 8 + + + + 9 + 9 + + + + 10 + 10 + + + + 11 + 11 + + + + 12 + 12 + + + + 13 + 13 + + + + 14 + 14 + + + + 15 + 15 + + + + 16 + 16 + + + + Default Length: + 默认长度: + + + + + 1/16 + 1/16 + + + + + 1/15 + 1/15 + + + + + 1/12 + 1/12 + + + + + 1/9 + 1/9 + + + + + 1/8 + 1/8 + + + + + 1/6 + 1/6 + + + + + 1/3 + 1/3 + + + + + 1/2 + 1/2 + + + + Quantize: + 量化: + + + + &File + 文件 (&F) + + + + &Edit + 编辑 (&E) + + + + &Quit + 退出 (&Q) + + + + Esc + Esc + + + + &Insert Mode + 插入模式 (&I) + + + + F + F + + + + &Velocity Mode + 力度模式 (&V) + + + + D + D + + + + Select All + 全选 + + + + A + A + + + + PatchesDialog + + + + Qsynth: Channel Preset + Qsynth:通道预设 + + + + + Bank selector + 音色选择器 + + + + + Bank + + + + + + Program selector + 乐器选择器 + + + + + Patch + 音色 + + + + + Name + 名称 + + + + + OK + 确定 + + + + + Cancel + 取消 + + + + PluginBrowser + + + no description + 没有描述 + + + + A native amplifier plugin + 原生增益插件 + + + + Simple sampler with various settings for using samples (e.g. drums) in an instrument-track + 简单地在乐器栏使用采样 (比如鼓音源),同时也提供多种设置 + + + + Boost your bass the fast and simple way + 以快速且简单的方式增强你的低音 + + + + Customizable wavetable synthesizer + 可自定制的波表合成器 + + + + An oversampling bitcrusher + + + + + Carla Patchbay Instrument + Carla Patchbay 乐器 + + + + Carla Rack Instrument + Carla Rack 乐器 + + + + A dynamic range compressor. + 一个动态范围压缩器 + + + + A 4-band Crossover Equalizer + 一个四波段交叉均衡器 + + + + A native delay plugin + 原生的衰减插件 + + + + A Dual filter plugin + 双滤波器插件 + + + + plugin for processing dynamics in a flexible way + + + + + A native eq plugin + 原生的 EQ 插件 + + + + A native flanger plugin + 一个原生的 镶边 (Flanger) 插件 + + + + Emulation of GameBoy (TM) APU + GameBoy (TM) APU 模拟器 + + + + Player for GIG files + 播放 GIG 文件的播放器 + + + + Filter for importing Hydrogen files into LMMS + 导入 Hydrogen 工程文件到 LMMS 的解析器 + + + + Versatile drum synthesizer + 多功能鼓合成器 + + + + List installed LADSPA plugins + 列出已安装的 LADSPA 插件 + + + + plugin for using arbitrary LADSPA-effects inside LMMS. + 在 LMMS 中使用任意 LADSPA 效果的插件。 + + + + Incomplete monophonic imitation TB-303 + + + + + plugin for using arbitrary LV2-effects inside LMMS. + 在 LMMS 中使用任意 LV2 效果的插件。 + + + + plugin for using arbitrary LV2 instruments inside LMMS. + 在 LMMS 中使用任意 LV2 乐器的插件。 + + + + Filter for exporting MIDI-files from LMMS + 从 LMMS 导出 MIDI 文件的生成器 + + + + Filter for importing MIDI-files into LMMS + 导入 MIDI 文件到 LMMS 的解析器 + + + + Monstrous 3-oscillator synth with modulation matrix + 带 3 个振荡器和调制矩阵的能发出像怪兽一样声音的合成器 + + + + A multitap echo delay plugin + + + + + A NES-like synthesizer + 类似于 NES 的合成器 + + + + 2-operator FM Synth + + + + + Additive Synthesizer for organ-like sounds + + + + + GUS-compatible patch instrument + GUS 兼容音色的乐器 + + + + Plugin for controlling knobs with sound peaks + 根据声音峰值控制旋钮的插件 + + + + Reverb algorithm by Sean Costello + Sean Costello 发明的混响算法 + + + + Player for SoundFont files + 在工程中使用 SoundFont + + + + LMMS port of sfxr + sfxr 的 LMMS 移植版本 + + + + Emulation of the MOS6581 and MOS8580 SID. +This chip was used in the Commodore 64 computer. + 模拟 MOS6581 和 MOS8580 SID 的模拟器 +这些芯片曾在 Commodore 64 电脑上用过。 + + + + A graphical spectrum analyzer. + 一款图形频谱分析器 + + + + Plugin for enhancing stereo separation of a stereo input file + + + + + Plugin for freely manipulating stereo output + + + + + Tuneful things to bang on + + + + + Three powerful oscillators you can modulate in several ways + 三个可以任你调制的强大振荡器 + + + + A stereo field visualizer. + 一款立体声场可视化工具 + + + + VST-host for using VST(i)-plugins within LMMS + LMMS的VST(i)插件宿主 + + + + Vibrating string modeler + + + + + plugin for using arbitrary VST effects inside LMMS. + 在 LMMS 中使用任意 VST 效果的插件。 + + + + 4-oscillator modulatable wavetable synth + 有四个振荡器的可调制波表合成器 + + + + plugin for waveshaping + + + + + Mathematical expression parser + + + + + Embedded ZynAddSubFX + 内置的 ZynAddSubFX + + + + An all-pass filter allowing for extremely high orders. + + + + + Granular pitch shifter + + + + + Upwards/downwards multiband compression plugin powered by the eldritch elder god LOMMUS. - - OSC Bridge Version + + Basic Slicer - - Plugin Version + + Tap to the beat + 跟着节拍敲击 + + + + PluginEdit + + + Plugin Editor + 插件编辑器 + + + + Edit + 编辑 + + + + Control + 控制 + + + + MIDI Control Channel: + MIDI 控制通道: + + + + N - - <br>Version %1<br>Carla is a fully-featured audio plugin host%2.<br><br>Copyright (C) 2011-2019 falkTX<br> + + Output dry/wet (100%) - - - (Engine not running) + + Output volume (100%) - - Everything! (Including LRDF) + + Balance Left (0%) - - Everything! (Including CustomData/Chunks) + + + Balance Right (0%) - - About 110&#37; complete (using custom extensions)<br/>Implemented Feature/Extensions:<ul><li>http://lv2plug.in/ns/ext/atom</li><li>http://lv2plug.in/ns/ext/buf-size</li><li>http://lv2plug.in/ns/ext/data-access</li><li>http://lv2plug.in/ns/ext/event</li><li>http://lv2plug.in/ns/ext/instance-access</li><li>http://lv2plug.in/ns/ext/log</li><li>http://lv2plug.in/ns/ext/midi</li><li>http://lv2plug.in/ns/ext/options</li><li>http://lv2plug.in/ns/ext/parameters</li><li>http://lv2plug.in/ns/ext/port-props</li><li>http://lv2plug.in/ns/ext/presets</li><li>http://lv2plug.in/ns/ext/resize-port</li><li>http://lv2plug.in/ns/ext/state</li><li>http://lv2plug.in/ns/ext/time</li><li>http://lv2plug.in/ns/ext/uri-map</li><li>http://lv2plug.in/ns/ext/urid</li><li>http://lv2plug.in/ns/ext/worker</li><li>http://lv2plug.in/ns/extensions/ui</li><li>http://lv2plug.in/ns/extensions/units</li><li>http://home.gna.org/lv2dynparam/rtmempool/v1</li><li>http://kxstudio.sf.net/ns/lv2ext/external-ui</li><li>http://kxstudio.sf.net/ns/lv2ext/programs</li><li>http://kxstudio.sf.net/ns/lv2ext/props</li><li>http://kxstudio.sf.net/ns/lv2ext/rtmempool</li><li>http://ll-plugins.nongnu.org/lv2/ext/midimap</li><li>http://ll-plugins.nongnu.org/lv2/ext/miditype</li></ul> + + Use Balance - - - - Using Juce host + + Use Panning - - About 85% complete (missing vst bank/presets and some minor stuff) + + Settings + 设置 + + + + Use Chunks + + + + + Audio: + 音频: + + + + Fixed-Size Buffer + + + + + Force Stereo (needs reload) + + + + + MIDI: + MIDI: + + + + Map Program Changes + + + + + Send Notes + 发送音符 + + + + Send Bank/Program Changes + 发送音色改变 + + + + Send Control Changes + 发送控制器改变 + + + + Send Channel Pressure + + + Send Note Aftertouch + 发送音符触后 + + + + Send Pitchbend + 发送弯音 + + + + Send All Sound/Notes Off + 发送关闭所有声音 + + + + +Plugin Name + + +插件名称 + + + + + Program: + 工程 + + + + MIDI Program: + MIDI 音色: + + + + Save State + 保存状态 + + + + Load State + 加载状态 + + + + Information + 信息 + + + + Label/URI: + 标签/URI: + + + + Name: + 名称: + + + + Type: + 类型: + + + + Maker: + 制作者: + + + + Copyright: + 版权: + + + + Unique ID: + 唯一 ID: + - CarlaHostW + PluginFactory - - MainWindow + + Plugin not found. + 未找到插件。 + + + + LMMS plugin %1 does not have a plugin descriptor named %2! + LMMS插件 %1 没有一个插件描述符命名为 %2 + + + + PluginListDialog + + + Carla - Add New + Carla - 新增 + + + + Requirements - - Rack + + With Custom GUI - - Patchbay + + With CV Ports - - Logs + + Real-time safe only - - Loading... + + Stereo only - - Buffer Size: + + With Inline Display + + + + + Favorites only + 仅显示已收藏 + + + + (Number of Plugins go here) + (插件数量在这里) + + + + &Add Plugin + 新增插件 (&A) + + + + Cancel + 取消 + + + + Refresh + 刷新 + + + + Reset filters - - Sample Rate: - + + + + + + + + + + + + + + + + + TextLabel + 文本标签 + + + + Format: + 格式: + + + + Architecture: + 架构: + + + + Type: + 类型: + + + + MIDI Ins: + MIDI 输入: + + + + Audio Ins: + 音频输入: + + + + CV Outs: + CV 输出: + + + + MIDI Outs: + MIDI 输出: + + + + Parameter Ins: + 参数输入: + + + + Parameter Outs: + 参数输出: + + + + Audio Outs: + 音频输出: + + + + CV Ins: + CV 输入: + + + + UniqueID: + 唯一 ID: + + + + Has Inline Display: + 内置显示: + + + + Has Custom GUI: + 自定义界面 + + + + Is Synth: + 是否为合成器: + + + + Is Bridged: + 是否桥接: + + + + Information + 信息 + + + + Name + 名称 - - ? Xruns - + + Label/Id/URI + 标签/ID/URI - - DSP Load: %p% - + + Maker + 制作者 - - &File - 文件(&F) + + Binary/Filename + 二进制/文件名 - - &Engine - + + Format + 格式 - - &Plugin - + + Internal + 内置 - - Macros (all plugins) - + + LADSPA + LADSPA - - &Canvas - + + DSSI + DSSI - - Zoom - + + LV2 + LV2 - - &Settings - + + VST2 + VST2 - - &Help - 帮助(&H) + + VST3 + VST3 - - toolBar - + + CLAP + CLAP - - Disk - + + AU + AU - - - Home - Home + + JSFX + JSFX - - Transport - + + Sound Kits + 声音套件 - - Playback Controls - + + Type + 类型 - - Time Information - + + Effects + 效果 - - Frame: - + + Instruments + 乐器 - - 000'000'000 - + + MIDI Plugins + MIDI 插件 - - Time: - 时间: + + Other/Misc + 其他/杂项 - - 00:00:00 + + Category - - BBT: + + All - - 000|00|0000 + + Delay - - Settings - 设置 + + Distortion + - - BPM + + Dynamics - - Use JACK Transport + + EQ - - Use Ableton Link + + Filter - - &New - 新建(&N) + + Modulator + - - Ctrl+N + + Synth - - &Open... - 打开(&O)... + + Utility + - - - Open... - + + + Other + 其他 - - Ctrl+O + + Architecture - - &Save - 保存(&S) + + + Native + 原生 - - Ctrl+S - + + Bridged + 桥接 - - Save &As... - 另存为(&A)... + + Bridged (Wine) + 桥接 (Wine) - - - Save As... + + Focus Text Search - - Ctrl+Shift+S - + + Ctrl+F + Ctrl+F - - &Quit - 退出(&Q) + + Bridged (32bit) + 桥接 (32 位) - - Ctrl+Q + + Discovering internal plugins... - - &Start + + Discovering LADSPA plugins... - - F5 + + Discovering DSSI plugins... - - St&op + + Discovering LV2 plugins... - - F6 + + Discovering VST2 plugins... - - &Add Plugin... + + Discovering VST3 plugins... - - Ctrl+A + + Discovering CLAP plugins... - - &Remove All + + Discovering AU plugins... - - Enable + + Discovering JSFX plugins... - - Disable + + Discovering SF2 kits... - - 0% Wet (Bypass) + + Discovering SFZ kits... - - 100% Wet - + + Unknown + 未知 - - 0% Volume (Mute) - + + + + + Yes + - - 100% Volume - + + + + + No + + + + PluginParameter - - Center Balance + + Form - - &Play - + + Parameter Name + 参数名称 - - Ctrl+Shift+P - + + TextLabel + 文本标签 - - &Stop - + + ... + ... + + + PluginRefreshDialog - - Ctrl+Shift+X - + + Plugin Refresh + 插件刷新 - - &Backwards + + Search for: - - Ctrl+Shift+B + + All plugins, ignoring cache - - &Forwards + + Updated plugins only - - Ctrl+Shift+F + + Check previously invalid plugins - - &Arrange + + Press 'Scan' to begin the search - - Ctrl+G - + + Scan + 扫描 - - - &Refresh - + + >> Skip + >> 跳过 - - Ctrl+R - + + Close + 关闭 + + + PluginWidget - - Save &Image... + + + + + + Frame - - Auto-Fit - + + Enable + 启用 - - Zoom In - + + On/Off + 开/关 - - Ctrl++ - + + + + + PluginName + 插件名称 - - Zoom Out - + + MIDI + MIDI - - Ctrl+- - + + AUDIO IN + 音频输入 - - Zoom 100% - + + AUDIO OUT + 音频输出 - - Ctrl+1 - + + GUI + 图形界面 - - Show &Toolbar - + + Edit + 编辑 - - &Configure Carla - + + Remove + 移除 - - &About - + + Plugin Name + 插件名称 - - About &JUCE - + + Preset: + 预置: + + + ProjectRenderer - - About &Qt - + + WAV (*.wav) + WAV (*.wav) - - Show Canvas &Meters - + + FLAC (*.flac) + FLAC (*.flac) - - Show Canvas &Keyboard - + + OGG (*.ogg) + OGG (*.ogg) - - Show Internal - + + MP3 (*.mp3) + MP3 (*.mp3) + + + QGroupBox - - Show External + + + Settings for %1 + + + QObject - - Show Time Panel - + + Reload Plugin + 重新载入插件 - - Show &Side Panel - + + Show GUI + 显示图形界面 - - &Connect... + + Help + 帮助 + + + + LADSPA plugins - - Compact Slots + + The project contains %1 LADSPA plugin(s) which might have not been restored correctly! Please check the project. - - Expand Slots + + URI: - - Perform secret 1 + + Project: - - Perform secret 2 + + Maker: - - Perform secret 3 + + Homepage: - - Perform secret 4 + + License: - - Perform secret 5 + + File: %1 - - Add &JACK Application... + + failed to load description - - &Configure driver... - + + Open audio file + 打开音频文件 - - Panic - + + Error loading sample + 采样加载错误 - - Open custom driver panel... - + + %1 (unsupported) + %1 (不支持) - CarlaHostWindow + QWidget - - Export as... - + + + Name: + 名称: - - - - - Error - 错误 + + Maker: + 制作者: - - Failed to load project - + + Copyright: + 版权: - - Failed to save project - + + Requires Real Time: + 要求实时: - - Quit - 退出 + + + + Yes + - - Are you sure you want to quit Carla? - + + + + No + - - Could not connect to Audio backend '%1', possible reasons: -%2 - + + Real Time Capable: + 是否支持实时: - - Could not connect to Audio backend '%1' - + + In Place Broken: + 被损坏: - - Warning - 警告 + + Channels In: + 输入通道: - - There are still some plugins loaded, you need to remove them to stop the engine. -Do you want to do this now? - + + Channels Out: + 输出通道: - - - CarlaInstrumentView - - Show GUI - 显示图形界面 + + File: %1 + 文件:%1 + + + + File: + 文件: - CarlaSettingsW + XYControllerW - - Settings - 设置 + + XY Controller + XY 控制器 - - main + + X Controls: - - canvas + + Y Controls: - - engine + + Smooth - - osc - + + &Settings + 设置 (&S) - - file-paths - + + Channels + 通道 - - plugin-paths - + + &File + 文件 (&F) - - wine - + + Show MIDI &Keyboard + 显示 MIDI 键盘 (&K) - - experimental - + + (All) + (全部) - - Widget + + 1 - - - Main + + 2 - - - Canvas + + 3 - - - Engine + + 4 - - File Paths + + 5 - - Plugin Paths + + 6 - - Wine + + 7 - - - Experimental + + 8 - - <b>Main</b> + + 9 - - Paths - 路径 + + 10 + - - Default project folder: + + 11 - - Interface + + 12 - - Interface refresh interval: + + 13 - - - ms + + 14 - - Show console output in Logs tab (needs engine restart) + + 15 - - Show a confirmation dialog before quitting + + 16 - - - Theme - 主题 + + &Quit + 退出 (&Q) - - Use Carla "PRO" theme (needs restart) - + + Esc + Esc - - Color scheme: - + + (None) + (无) + + + lmms::AmplifierControls - - Black - + + Volume + 音量 - - System - + + Panning + 声相 - - Enable experimental features - + + Left gain + 左增益 - - <b>Canvas</b> - + + Right gain + 右增益 + + + lmms::AudioFileProcessor - - Bezier Lines + + Amplify - - Theme: - + + Start of sample + 采样起始 - - Size: - + + End of sample + 采样结尾 - - 775x600 - + + Loopback point + 循环点 - - 1550x1200 - + + Reverse sample + 反转采样 - - 3100x2400 - + + Loop mode + 循环模式 - - 4650x3600 - + + Stutter + 重复 - - 6200x4800 - + + Interpolation mode + 补间模式 - - Options - + + None + - - Auto-hide groups with no ports - + + Linear + 线性 - - Auto-select items on hover - + + Sinc + Sinc - - Basic eye-candy (group shadows) - + + Sample not found + 未找到采样 + + + lmms::AudioJack - - Render Hints - + + JACK client restarted + JACK 客户端已重启 - - Anti-Aliasing - + + LMMS was kicked by JACK for some reason. Therefore the JACK backend of LMMS has been restarted. You will have to make manual connections again. + LMMS 由于某些原因与 JACK 断开连接,这可能是因为 LMMS 的 JACK 后端重启导致的,你需要手动重新连接。 - - Full canvas repaints (slower, but prevents drawing issues) - + + JACK server down + JACK 服务崩溃 - - <b>Engine</b> - + + The JACK server seems to have been shutdown and starting a new instance failed. Therefore LMMS is unable to proceed. You should save your project and restart JACK and LMMS. + JACK 服务好像崩溃了而且未能正常启动,LMMS 无法正常工作,你需要保存你的工程然后重启 JACK 和LMMS。 - - - Core - + + Client name + 客户端名称 + + + + Channels + 通道 + + + + lmms::AudioOss + + + Device + 设备 + + + + Channels + 通道 + + + + lmms::AudioPortAudio::setupWidget + + + Backend + 后端 - - Single Client - + + Device + 设备 + + + lmms::AudioPulseAudio - - Multiple Clients - + + Device + 设备 - - - Continuous Rack - + + Channels + 通道 + + + lmms::AudioSdl::setupWidget - - - Patchbay + + Playback device - - Audio driver: + + Input device + + + lmms::AudioSndio - - Process mode: - + + Device + 设备 - - - - - Maximum number of parameters to allow in the built-in 'Edit' dialog - + + Channels + 通道 + + + lmms::AudioSoundIo::setupWidget - - Max Parameters: - + + Backend + 后端 - - ... - + + Device + 设备 + + + lmms::AutomatableModel - - Reset Xrun counter after project load - + + &Reset (%1%2) + 重置 (%1%2) (&R) - - Plugin UIs - + + &Copy value (%1%2) + 复制值 (%1%2) (&C) - - - How much time to wait for OSC GUIs to ping back the host - + + &Paste value (%1%2) + 粘贴值 (%1%2) (&P) - - UI Bridge Timeout: - + + &Paste value + 粘贴值 (&P) - - Use OSC-GUI bridges when possible, this way separating the UI from DSP code - + + Edit song-global automation + 编辑歌曲全局自动控制 - - Use UI bridges instead of direct handling when possible - + + Remove song-global automation + 删除歌曲全局自动控制 - - Make plugin UIs always-on-top - + + Remove all linked controls + 删除所有已连接的控制器 - - Make plugin UIs appear on top of Carla (needs restart) - + + Connected to %1 + 连接到 %1 - - NOTE: Plugin-bridge UIs cannot be managed by Carla on macOS - + + Connected to controller + 连接到控制器 - - - Restart the engine to load the new settings - + + Edit connection... + 编辑连接... - - <b>OSC</b> - + + Remove connection + 删除连接 - - Enable OSC - + + Connect to controller... + 连接到控制器... + + + lmms::AutomationClip - - Enable TCP port - + + Drag a control while pressing <%1> + 按住 <%1> 拖动控制器 + + + lmms::AutomationTrack - - - Use specific port: - + + Automation track + 自动控制轨道 + + + lmms::BassBoosterControls - - Overridden by CARLA_OSC_TCP_PORT env var - + + Frequency + 频率 - - - Use randomly assigned port - + + Gain + 增益 - - Enable UDP port - + + Ratio + 比率 + + + lmms::BitInvader - - Overridden by CARLA_OSC_UDP_PORT env var - + + Sample length + 采样长度 - - DSSI UIs require OSC UDP port enabled - + + Interpolation + 补间 - - <b>File Paths</b> - + + Normalize + 标准化 + + + lmms::BitcrushControls - - Audio - 音频 + + Input gain + 输入增益 - - MIDI - MIDI + + Input noise + 输入噪音 - - Used for the "audiofile" plugin - + + Output gain + 输出增益 - - Used for the "midifile" plugin - + + Output clip + 输出截辐 - - - Add... - 添加... + + Sample rate + 采样率 - - - Remove - 移除 + + Stereo difference + 双声道差异 - - - Change... - + + Levels + 级别 - - <b>Plugin Paths</b> + + Rate enabled - - LADSPA + + Depth enabled + + + lmms::Clip - - DSSI - + + Mute + 静音 + + + lmms::CompressorControls - - LV2 - + + Threshold + 阈值 - - VST2 - + + Ratio + 比率 - - VST3 - + + Attack + 起音 - - SF2/3 - + + Release + 释音 - - SFZ + + Knee - - Restart Carla to find new plugins + + Hold - - <b>Wine</b> + + Range - - Executable + + RMS Size - - Path to 'wine' binary: + + Mid/Side - - Prefix + + Peak Mode - - Auto-detect Wine prefix based on plugin filename + + Lookahead Length - - Fallback: + + Input Balance - - Note: WINEPREFIX env var is preferred over this fallback + + Output Balance - - Realtime Priority + + Limiter - - Base priority: - + + Output Gain + 输出增益 - - WineServer priority: - + + Input Gain + 输入增益 - - These options are not available for Carla as plugin + + Blend - - <b>Experimental</b> - + + Stereo Balance + 双声道平衡 - - Experimental options! Likely to be unstable! + + Auto Makeup Gain - - Enable plugin bridges + + Audition - - Enable Wine bridges + + Feedback - - Enable jack applications + + Auto Attack - - Export single plugins to LV2 + + Auto Release - - Load Carla backend in global namespace (NOT RECOMMENDED) + + Lookahead - - Fancy eye-candy (fade-in/out groups, glow connections) + + Tilt - - Use OpenGL for rendering (needs restart) + + Tilt Frequency - - High Quality Anti-Aliasing (OpenGL only) + + Stereo Link - - Render Ardour-style "Inline Displays" + + Mix + + + lmms::Controller - - Force mono plugins as stereo by running 2 instances at the same time. -This mode is not available for VST plugins. + + Controller %1 + + + lmms::DelayControls - - Force mono plugins as stereo + + Delay samples - - Prevent plugins from doing bad stuff (needs restart) + + Feedback - - Whenever possible, run the plugins in bridge mode. - + + LFO frequency + LFO 频率 - - Run plugins in bridge mode when possible - + + LFO amount + LFO 数量 - - - - - Add Path - + + Output gain + 输出增益 - CompressorControlDialog + lmms::DispersionControls - - Threshold: - + + Amount + 数量 - - Volume at which the compression begins to take place - + + Frequency + 频率 - - Ratio: - 比率: + + Resonance + 共鸣 - - How far the compressor must turn the volume down after crossing the threshold + + Feedback - - Attack: - 打击声: + + DC Offset Removal + + + + lmms::DualFilterControls - - Speed at which the compressor starts to compress the audio - + + Filter 1 enabled + 滤波器 1 已启用 - - Release: - 释音: + + Filter 1 type + 滤波器 1 类型 - - Speed at which the compressor ceases to compress the audio + + Cutoff frequency 1 - - Knee: - + + Q/Resonance 1 + Q/共鸣 1 - - Smooth out the gain reduction curve around the threshold - + + Gain 1 + 增益 1 - - Range: + + Mix - - Maximum gain reduction - + + Filter 2 enabled + 滤波器 2 已启用 - - Lookahead Length: - + + Filter 2 type + 滤波器 2 类型 - - How long the compressor has to react to the sidechain signal ahead of time + + Cutoff frequency 2 - - Hold: - 持续: + + Q/Resonance 2 + Q/共鸣 2 - - Delay between attack and release stages - + + Gain 2 + 增益 2 - - RMS Size: - + + + Low-pass + 低通 - - Size of the RMS buffer - + + + Hi-pass + 高通 - - Input Balance: + + + Band-pass csg - - Bias the input audio to the left/right or mid/side + + + Band-pass czpg - - Output Balance: + + + Notch - - Bias the output audio to the left/right or mid/side - + + + All-pass + 全通 - - Stereo Balance: + + + Moog - - Bias the sidechain signal to the left/right or mid/side + + + 2x Low-pass - - Stereo Link Blend: + + + RC Low-pass 12 dB/oct - - Blend between unlinked/maximum/average/minimum stereo linking modes + + + RC Band-pass 12 dB/oct - - Tilt Gain: + + + RC High-pass 12 dB/oct - - Bias the sidechain signal to the low or high frequencies. -6 db is lowpass, 6 db is highpass. + + + RC Low-pass 24 dB/oct - - Tilt Frequency: + + + RC Band-pass 24 dB/oct - - Center frequency of sidechain tilt filter + + + RC High-pass 24 dB/oct - - Mix: - + + + Vocal Formant + 人声共振峰 - - Balance between wet and dry signals + + + 2x Moog - - Auto Attack: + + + SV Low-pass - - Automatically control attack value depending on crest factor + + + SV Band-pass - - Auto Release: + + + SV High-pass - - Automatically control release value depending on crest factor + + + SV Notch - - Output gain - 输出增益 - - - - - Gain - 增益 + + + Fast Formant + 快速共振峰 - - Output volume + + + Tripole + + + lmms::DynProcControls - + Input gain 输入增益 - - Input volume - + + Output gain + 输出增益 - - Root Mean Square - + + Attack time + 起音时间 - - Use RMS of the input - + + Release time + 释音时间 - - Peak - + + Stereo mode + 双声道模式 + + + + lmms::Effect + + + Effect enabled + 效果器已启用 - - Use absolute value of the input - + + Wet/Dry mix + 干/湿混合 - - Left/Right - + + Gate + 门限 - - Compress left and right audio - + + Decay + 衰减 + + + lmms::EffectChain - - Mid/Side - + + Effects enabled + 效果器已启用 + + + lmms::Engine - - Compress mid and side audio - + + Generating wavetables + 正在生成波表 - - Compressor - + + Initializing data structures + 正在初始化数据结构 - - Compress the audio - + + Opening audio and midi devices + 正在启动音频和 MIDI 设备 - - Limiter - + + Launching audio engine threads + 生在启动音频引擎线程 + + + lmms::EnvelopeAndLfoParameters - - Set Ratio to infinity (is not guaranteed to limit audio volume) - + + Env pre-delay + 包络预延迟 - - Unlinked + + Env attack - - Compress each channel separately + + Env hold - - Maximum + + Env decay - - Compress based on the loudest channel + + Env sustain - - Average + + Env release - - Compress based on the averaged channel volume + + Env mod amount - - Minimum - + + LFO pre-delay + LFO 预延迟 - - Compress based on the quietest channel + + LFO attack - - Blend + + LFO frequency - - Blend between stereo linking modes + + LFO mod amount - - Auto Makeup Gain + + LFO wave shape - - Automatically change makeup gain depending on threshold, knee, and ratio settings - + + LFO frequency x 100 + LFO 频率 x 100 - - - Soft Clip + + Modulate env amount - - Play the delta signal - + + Sample not found + 未找到采样 + + + lmms::EqControls - - Use the compressor's output as the sidechain input - + + Input gain + 输入增益 - - Lookahead Enabled - + + Output gain + 输出增益 - - Enable Lookahead, which introduces 20 milliseconds of latency + + Low-shelf gain - - - CompressorControls - - Threshold + + Peak 1 gain - - Ratio - 比率 + + Peak 2 gain + - - Attack - 打击声 + + Peak 3 gain + - - Release - 释放 + + Peak 4 gain + - - Knee + + High-shelf gain - - Hold - 保持 + + HP res + 高通谐振 - - Range + + Low-shelf res - - RMS Size + + Peak 1 BW - - Mid/Side + + Peak 2 BW - - Peak Mode + + Peak 3 BW - - Lookahead Length + + Peak 4 BW - - Input Balance + + High-shelf res - - Output Balance - + + LP res + 低通谐振 - - Limiter - + + HP freq + 高通截频 - - Output Gain + + Low-shelf freq - - Input Gain + + Peak 1 freq - - Blend + + Peak 2 freq - - Stereo Balance + + Peak 3 freq - - Auto Makeup Gain + + Peak 4 freq - - Audition + + High-shelf freq - - Feedback - 反馈 + + LP freq + 低通截频 - - Auto Attack - + + HP active + 高通启用 - - Auto Release + + Low-shelf active - - Lookahead + + Peak 1 active - - Tilt + + Peak 2 active - - Tilt Frequency + + Peak 3 active - - Stereo Link + + Peak 4 active - - Mix - 混合 - - - - Controller - - - Controller %1 - 控制器%1 + + High-shelf active + - - - ControllerConnectionDialog - - Connection Settings - 连接设置 + + LP active + 低通启用 - - MIDI CONTROLLER - MIDI控制器 + + LP 12 + - - Input channel - 输入通道 + + LP 24 + - - CHANNEL - 通道 + + LP 48 + - - Input controller - 输入控制器 + + HP 12 + - - CONTROLLER - 控制器 + + HP 24 + - - - Auto Detect - 自动检测 + + HP 48 + - - MIDI-devices to receive MIDI-events from - 用来接收 MIDI 事件的MIDI 设备 + + Low-pass type + 低通类型 - - USER CONTROLLER - 用户控制器 + + High-pass type + 高通类型 - - MAPPING FUNCTION - 映射函数 + + Analyse IN + 分析输入 - - OK - 确定 + + Analyse OUT + 分析输出 + + + lmms::FlangerControls - - Cancel - 取消 + + Delay samples + 延迟采样 - - LMMS - LMMS + + LFO frequency + LFO 频率 - - Cycle Detected. - 检测到环路。 + + Amount + 数量 - - - ControllerRackView - - Controller Rack - 控制器机架 + + Stereo phase + - - Add - 增加 + + Feedback + - - Confirm Delete - 删除前确认 + + Noise + 噪音 - - Confirm delete? There are existing connection(s) associated with this controller. There is no way to undo. - 确定要删除吗?此控制器仍处于被连接状态。此操作不可撤销。 + + Invert + - ControllerView + lmms::FreeBoyInstrument - - Controls - 控制器 + + Sweep time + - - Rename controller - 重命名控制器 + + Sweep direction + - - Enter the new name for this controller - 输入这个控制器的新名称 + + Sweep rate shift amount + - - LFO - LFO + + + Wave pattern duty cycle + - - &Remove this controller - 删除此控制器(&R) + + Channel 1 volume + 通道 1 音量 - - Re&name this controller - 重命名控制器(&N) + + + + Volume sweep direction + - - - CrossoverEQControlDialog - - Band 1/2 crossover: + + + + Length of each step in sweep - - Band 2/3 crossover: + + Channel 2 volume - - Band 3/4 crossover: + + Channel 3 volume - - Band 1 gain + + Channel 4 volume - - Band 1 gain: + + Shift Register width - - Band 2 gain + + Right output level - - Band 2 gain: + + Left output level - - Band 3 gain + + Channel 1 to SO2 (Left) - - Band 3 gain: + + Channel 2 to SO2 (Left) - - Band 4 gain + + Channel 3 to SO2 (Left) - - Band 4 gain: + + Channel 4 to SO2 (Left) - - Band 1 mute + + Channel 1 to SO1 (Right) - - Mute band 1 + + Channel 2 to SO1 (Right) - - Band 2 mute + + Channel 3 to SO1 (Right) - - Mute band 2 + + Channel 4 to SO1 (Right) - - Band 3 mute - + + Treble + 高音 - - Mute band 3 - + + Bass + 低音 + + + lmms::GigInstrument - - Band 4 mute - + + Bank + - - Mute band 4 - + + Patch + 音色 + + + + Gain + 增益 - DelayControls + lmms::GranularPitchShifterControls - - Delay samples + + Pitch - - Feedback - 反馈 + + Grain Size + - - LFO frequency + + Spray - - LFO amount + + Jitter - - Output gain - 输出增益 + + Twitch + - - - DelayControlsDialog - - DELAY - 延迟 + + Pitch Stereo Spread + - - Delay time + + Spray Stereo - - FDBK - 反馈 + + Shape + - - Feedback amount + + Fade Length - - RATE + + Feedback - - LFO frequency + + Minimum Allowed Latency - - AMNT - 数量 + + Prefilter + - - LFO amount + + Density - - Out gain + + Glide - - Gain - 增益 + + Ring Buffer Length + - - - Dialog - - Add JACK Application + + 5 Seconds - - Note: Features not implemented yet are greyed out + + 10 Seconds (Size) - - Application + + 40 Seconds (Size and Pitch) - - Name: + + 40 Seconds (Size and Spray and Jitter) - - Application: + + 120 Seconds (All of the above) + + + lmms::InstrumentFunctionArpeggio - - From template - + + Arpeggio + 琶音 - - Custom - + + Arpeggio type + 琶音类型 - - Template: + + Arpeggio range + 琶音范围 + + + + Note repeats - - Command: + + Cycle steps - - Setup - 设置 + + Skip rate + 跳过率 - - Session Manager: - + + Miss rate + 丢失率 - - None - + + Arpeggio time + 琶音时间 - - Audio inputs: - 音频输入: + + Arpeggio gate + 琶音门限 - - MIDI inputs: - MIDI输入: + + Arpeggio direction + 琶音方向 + + + + Arpeggio mode + 琶音模式 + + + + Up + 向上 + + + + Down + 向下 + + + + Up and down + 先上后下 + + + + Down and up + 先下后上 + + + + Random + 随机 + + + + Free + 自由 + + + + Sort + 排序 + + + + Sync + 同步 + + + + lmms::InstrumentFunctionNoteStacking + + + Chords + - - Audio outputs: - 音频输出: + + Chord type + - - MIDI outputs: - MIDI输出: + + Chord range + + + + lmms::InstrumentSoundShaping - - Take control of main application window + + Envelopes/LFOs - - Workarounds + + Filter type - - Wait for external application start (Advanced, for Debug only) + + Cutoff frequency - - Capture only the first X11 Window + + Q/Resonance - - Use previous client output buffer as input for the next client - + + Low-pass + 低通 - - Simulate 16 JACK MIDI outputs, with MIDI channel as port index - + + Hi-pass + 高通 - - Error here + + Band-pass csg - - Carla Control - Connect + + Band-pass czpg - - Remote setup + + Notch - - UDP Port: - + + All-pass + 全通 - - Remote host: + + Moog - - TCP Port: + + 2x Low-pass - - Reported host + + RC Low-pass 12 dB/oct - - Automatic + + RC Band-pass 12 dB/oct - - Custom: + + RC High-pass 12 dB/oct - - In some networks (like USB connections), the remote system cannot reach the local network. You can specify here which hostname or IP to make the remote Carla connect to. -If you are unsure, leave it as 'Automatic'. + + RC Low-pass 24 dB/oct - - Set value - 设置值 + + RC Band-pass 24 dB/oct + - - TextLabel + + RC High-pass 24 dB/oct - - Scale Points + + Vocal Formant - - - DriverSettingsW - - Driver Settings + + 2x Moog - - Device: + + SV Low-pass - - Buffer size: + + SV Band-pass - - Sample rate: - 采样率: + + SV High-pass + - - Triple buffer + + SV Notch - - Show Driver Control Panel + + Fast Formant - - Restart the engine to load the new settings + + Tripole - DualFilterControlDialog + lmms::InstrumentTrack - - - FREQ - 频率 + + + unnamed_track + 未命名轨道 - - - Cutoff frequency - 切除频率 + + Base note + - - - RESO - 共鸣 + + First note + - - - Resonance - 共鸣 + + Last note + - - - GAIN - 增益 + + Volume + 音量 - - - Gain - 增益 + + Panning + 声相 - - MIX - 混音 + + Pitch + 音高 - - Mix - 混合 + + Pitch range + 音域范围 - - Filter 1 enabled - 已启用过滤器 1 + + Mixer channel + 混音器通道 - - Filter 2 enabled - 已启用过滤器 2 + + Master pitch + 主音高 - - Enable/disable filter 1 - + + Enable/Disable MIDI CC + 启用/禁用 MIDI 控制器 - - Enable/disable filter 2 + + CC Controller %1 - - - DualFilterControls - - - Filter 1 enabled - 过滤器1 已启用 - - - - Filter 1 type - 过滤器 1 类型 - - - Cutoff frequency 1 + + + Default preset + + + lmms::Keymap - - Q/Resonance 1 - 滤波器 1 Q值 - - - - Gain 1 - 增益 1 - - - - Mix - 混合 - - - - Filter 2 enabled - 已启用过滤器 2 - - - - Filter 2 type - 过滤器 1 类型 {2 ?} + + empty + + + + lmms::KickerInstrument - - Cutoff frequency 2 - + + Start frequency + 起始频率 - - Q/Resonance 2 - 滤波器 2 Q值 + + End frequency + 结束频率 - - Gain 2 - 增益 2 + + Length + 长度 - - - Low-pass + + Start distortion - - - Hi-pass + + End distortion - - - Band-pass csg - + + Gain + 增益 - - - Band-pass czpg - + + Envelope slope + 包络线倾斜度 - - - Notch - 凹口滤波器 + + Noise + 噪音 - - - All-pass + + Click - - - Moog - Moog + + Frequency slope + - - - 2x Low-pass + + Start from note - - - RC Low-pass 12 dB/oct + + End to note - - - - RC Band-pass 12 dB/oct + + + lmms::LOMMControls + + + Depth - - - RC High-pass 12 dB/oct + + Time - - - RC Low-pass 24 dB/oct - + + Input Volume + 输入音量 - - - RC Band-pass 24 dB/oct - + + Output Volume + 输出音量 - - - RC High-pass 24 dB/oct + + Upward Depth - - - Vocal Formant + + Downward Depth - - - 2x Moog - 2x Moog + + High/Mid Split + - - - SV Low-pass + + Mid/Low Split - - - SV Band-pass + + Enable High/Mid Split - - - SV High-pass + + Enable Mid/Low Split - - - SV Notch - SV Notch + + Enable High Band + - - - Fast Formant - 快速共振峰(Formant) + + Enable Mid Band + - - - Tripole - Tripole + + Enable Low Band + - - - Editor - - Transport controls - 传输控制 + + High Input Volume + - - Play (Space) - 播放(空格) + + Mid Input Volume + - - Stop (Space) - 停止(空格) + + Low Input Volume + - - Record - 录音 + + High Output Volume + - - Record while playing - 播放时录音 + + Mid Output Volume + - - Toggle Step Recording + + Low Output Volume - - - Effect - - Effect enabled - 启用效果器 + + Above Threshold High + - - Wet/Dry mix - 干/湿混合 + + Above Threshold Mid + - - Gate - 门限 + + Above Threshold Low + - - Decay - 衰减 + + Above Ratio High + - - - EffectChain - - Effects enabled - 启用效果器 + + Above Ratio Mid + - - - EffectRackView - - EFFECTS CHAIN - 效果器链 + + Above Ratio Low + - - Add effect - 增加效果器 + + Below Threshold High + - - - EffectSelectDialog - - Add effect - 增加效果器 + + Below Threshold Mid + - - - Name - 名称 + + Below Threshold Low + - - Type - 类型 + + Below Ratio High + - - Description - 描述 + + Below Ratio Mid + - - Author - 作者 + + Below Ratio Low + - - - EffectView - - On/Off - 开/关 + + Attack High + - - W/D - W/D + + Attack Mid + - - Wet Level: - 效果度: + + Attack Low + - - DECAY - 衰减 + + Release High + - - Time: - 时间: + + Release Mid + - - GATE - 门限 + + Release Low + - - Gate: - 门限: + + RMS Time + - - Controls - 控制 + + Knee + - - Move &up - 向上移(&U) + + Range + - - Move &down - 向下移(&D) + + Balance + - - &Remove this plugin - 移除此插件(&R) + + Scale output volume with Depth + - - - EnvelopeAndLfoParameters - - Env pre-delay + + Stereo Link - - Env attack + + Auto Time - - Env hold + + Mix - - Env decay + + Feedback - - Env sustain + + Mid/Side - - Env release + + Lookahead - - Env mod amount + + Lookahead Length - - LFO pre-delay + + Suppress upward compression for side band + + + lmms::LadspaControl - - LFO attack + + Link channels + + + lmms::LadspaEffect - - LFO frequency + + Unknown LADSPA plugin %1 requested. + + + lmms::Lb302Synth - - LFO mod amount + + VCF Cutoff Frequency - - LFO wave shape + + VCF Resonance - - LFO frequency x 100 + + VCF Envelope Mod - - Modulate env amount + + VCF Envelope Decay - - - EnvelopeAndLfoView - - - DEL - DEL + + Distortion + - - - Pre-delay: + + Waveform - - - ATT - 打击 + + Slide Decay + - - - Attack: - 打击声: + + Slide + - - HOLD - 持续 + + Accent + - - Hold: - 持续: + + Dead + - - DEC - 衰减 + + 24dB/oct Filter + + + + lmms::LfoController - - Decay: - 衰减: + + LFO Controller + - - SUST - 持续 + + Base value + - - Sustain: - 持续: + + Oscillator speed + - - REL - 释音 + + Oscillator amount + - - Release: - 释音: + + Oscillator phase + - - - AMT - 数量 + + Oscillator waveform + - - - Modulation amount: - 调制量: + + Frequency Multiplier + - - SPD - 速度 + + Sample not found + + + + lmms::MalletsInstrument - - Frequency: - 频率: + + Hardness + - - FREQ x 100 - 频率 x 100 + + Position + - - Multiply LFO frequency by 100 + + Vibrato gain - - MODULATE ENV AMOUNT + + Vibrato frequency - - Control envelope amount by this LFO + + Stick mix - - ms/LFO: - ms/LFO: + + Modulator + - - - Hint - 提示 + + + Crossfade + - - Drag and drop a sample into this window. + + LFO speed - - - EqControls - - Input gain - 输入增益 + + LFO depth + - - Output gain - 输出增益 + + ADSR + - - Low-shelf gain + + Pressure - - Peak 1 gain - 峰值1增幅 + + Motion + - - Peak 2 gain - 峰值2增幅 + + Speed + - - Peak 3 gain - 峰值3增幅 + + Bowed + - - Peak 4 gain - 峰值4增幅 + + Instrument + - - High-shelf gain + + Spread - - HP res - 高通谐振 + + Randomness + - - Low-shelf res + + Marimba - - Peak 1 BW + + Vibraphone - - Peak 2 BW + + Agogo - - Peak 3 BW + + Wood 1 - - Peak 4 BW + + Reso - - High-shelf res + + Wood 2 - - LP res - 低通谐振 + + Beats + - - HP freq - 高通截频 + + Two fixed + - - Low-shelf freq + + Clump - - Peak 1 freq - 峰值1频率 + + Tubular bells + - - Peak 2 freq - 峰值2频率 + + Uniform bar + - - Peak 3 freq - 峰值3频率 + + Tuned bar + - - Peak 4 freq - 峰值4频率 + + Glass + - - High-shelf freq + + Tibetan bowl + + + lmms::MeterModel - - LP freq - 低通截频 + + Numerator + - - HP active - 高通启用 + + Denominator + + + + lmms::Microtuner - - Low-shelf active + + Microtuner - - Peak 1 active - 峰值1启用 + + Microtuner on / off + - - Peak 2 active - 峰值2启用 + + Selected scale + - - Peak 3 active - 峰值3启用 + + Selected keyboard mapping + + + + lmms::MidiController - - Peak 4 active - 峰值4启用 + + MIDI Controller + - - High-shelf active + + unnamed_midi_controller + + + lmms::MidiImport - - LP active - 低通启用 + + + Setup incomplete + - - LP 12 - 低通12dB + + You have not set up a default soundfont in the settings dialog (Edit->Settings). Therefore no sound will be played back after importing this MIDI file. You should download a General MIDI soundfont, specify it in settings dialog and try again. + - - LP 24 - 低通24dB + + You did not compile LMMS with support for SoundFont2 player, which is used to add default sound to imported MIDI files. Therefore no sound will be played back after importing this MIDI file. + - - LP 48 - 低通48dB + + MIDI Time Signature Numerator + - - HP 12 - 高通12dB + + MIDI Time Signature Denominator + - - HP 24 - 高通24dB + + Numerator + - - HP 48 - 高通48dB + + Denominator + - - Low-pass type + + + Tempo - - High-pass type + + Track + + + lmms::MidiJack - - Analyse IN - 分析输入 + + JACK server down + When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (title) + - - Analyse OUT - 分析输出 + + The JACK server seems to be shuted down. + When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (dialog message) + - EqControlsDialog + lmms::MidiPort - - HP - 高通 + + Input channel + - - Low-shelf + + Output channel - - Peak 1 - 峰值1 + + Input controller + - - Peak 2 - 峰值2 + + Output controller + - - Peak 3 - 峰值3 + + Fixed input velocity + - - Peak 4 - 峰值4 + + Fixed output velocity + - - High-shelf + + Fixed output note - - LP - 低通 + + Output MIDI program + - - Input gain - 输入增益 + + Base velocity + - - - - Gain - 增益 + + Receive MIDI-events + - - Output gain - 输出增益 + + Send MIDI-events + + + + lmms::Mixer - - Bandwidth: - 带宽: + + Master + - - Octave + + + + Channel %1 - - Resonance : - 共鸣: + + Volume + - - Frequency: - 频率: + + Mute + - - LP group + + Solo + + + + + lmms::MixerRoute + + + + Amount to send from channel %1 to channel %2 + + + lmms::MonstroInstrument - - HP group + + Osc 1 volume - - - EqHandle - - Reso: - 共鸣: + + Osc 1 panning + - - BW: + + Osc 1 coarse detune - - - Freq: - 频率: + + Osc 1 fine detune left + - - - ExportProjectDialog - - Export project - 导出工程 + + Osc 1 fine detune right + - - Export as loop (remove extra bar) - 导出为回环loop(移除结尾的静音) + + Osc 1 stereo phase offset + - - Export between loop markers - 只导出回环标记中间的部分 + + Osc 1 pulse width + - - Render Looped Section: + + Osc 1 sync send on rise - - time(s) + + Osc 1 sync send on fall - - File format settings - 文件格式设置 + + Osc 2 volume + - - File format: - 文件格式: + + Osc 2 panning + - - Sampling rate: - 采样率: + + Osc 2 coarse detune + - - 44100 Hz - 44100 Hz + + Osc 2 fine detune left + - - 48000 Hz - 48000 Hz + + Osc 2 fine detune right + - - 88200 Hz - 88200 Hz + + Osc 2 stereo phase offset + - - 96000 Hz - 96000 Hz + + Osc 2 waveform + - - 192000 Hz - 192000 Hz + + Osc 2 sync hard + - - Bit depth: - 位深: + + Osc 2 sync reverse + - - 16 Bit integer - 16 位整数 + + Osc 3 volume + - - 24 Bit integer - 24 位整数 + + Osc 3 panning + - - 32 Bit float - 32 位浮点 + + Osc 3 coarse detune + - - Stereo mode: - 双声道模式: + + Osc 3 Stereo phase offset + - - Mono - 单声道 + + Osc 3 sub-oscillator mix + - - Stereo - 双声道 + + Osc 3 waveform 1 + - - Joint stereo - 联合立体声 + + Osc 3 waveform 2 + - - Compression level: - 压缩级别: + + Osc 3 sync hard + - - Bitrate: - 码率: + + Osc 3 Sync reverse + - - 64 KBit/s - 64 KBit/s + + LFO 1 waveform + - - 128 KBit/s - 128 KBit/s + + LFO 1 attack + - - 160 KBit/s - 160 KBit/s + + LFO 1 rate + - - 192 KBit/s - 192 KBit/s + + LFO 1 phase + - - 256 KBit/s - 256 KBit/s + + LFO 2 waveform + - - 320 KBit/s - 320 KBit/s + + LFO 2 attack + - - Use variable bitrate - 使用可变比特率 + + LFO 2 rate + - - Quality settings - 质量设置 + + LFO 2 phase + - - Interpolation: - 补间: + + Env 1 pre-delay + - - Zero order hold - 零阶保持 + + Env 1 attack + - - Sinc worst (fastest) - 快速 Sinc 补间 (最快) + + Env 1 hold + - - Sinc medium (recommended) - 中等 Sinc 补间 (推荐) + + Env 1 decay + - - Sinc best (slowest) - 最佳 Sinc 补间 (很慢!) + + Env 1 sustain + - - Oversampling: - 过采样: + + Env 1 release + - - 1x (None) - 1x (无) + + Env 1 slope + - - 2x - 2x + + Env 2 pre-delay + - - 4x - 4x + + Env 2 attack + - - 8x - 8x + + Env 2 hold + - - Start - 开始 + + Env 2 decay + - - Cancel - 取消 + + Env 2 sustain + - - Could not open file - 无法打开文件 + + Env 2 release + - - Could not open file %1 for writing. -Please make sure you have write permission to the file and the directory containing the file and try again! - 无法写入文件 %1 -请确保您有对该文件以及包含该文件目录的写入权限! + + Env 2 slope + - - Export project to %1 - 导出项目到 %1 + + Osc 2+3 modulation + - - ( Fastest - biggest ) + + Selected view - - ( Slowest - smallest ) + + Osc 1 - Vol env 1 - - Error - 错误 + + Osc 1 - Vol env 2 + - - Error while determining file-encoder device. Please try to choose a different output format. - 寻找文件编码设备时出错。请使用另外一种输出格式。 + + Osc 1 - Vol LFO 1 + - - Rendering: %1% - 渲染中:%1% + + Osc 1 - Vol LFO 2 + - - - Fader - - Set value - 设置值 + + Osc 2 - Vol env 1 + - - Please enter a new value between %1 and %2: - 请输入一个介于%1和%2之间的数值: + + Osc 2 - Vol env 2 + - - - FileBrowser - - User content + + Osc 2 - Vol LFO 1 - - Factory content + + Osc 2 - Vol LFO 2 - - Browser - 浏览器 + + Osc 3 - Vol env 1 + - - Search - 搜索 + + Osc 3 - Vol env 2 + - - Refresh list - 刷新列表 + + Osc 3 - Vol LFO 1 + - - - FileBrowserTreeWidget - - Send to active instrument-track - 发送到活跃的乐器轨道 + + Osc 3 - Vol LFO 2 + - - Open containing folder + + Osc 1 - Phs env 1 - - Song Editor - 显示/隐藏歌曲编辑器 + + Osc 1 - Phs env 2 + - - BB Editor + + Osc 1 - Phs LFO 1 - - Send to new AudioFileProcessor instance + + Osc 1 - Phs LFO 2 - - Send to new instrument track + + Osc 2 - Phs env 1 - - (%2Enter) + + Osc 2 - Phs env 2 - - Send to new sample track (Shift + Enter) + + Osc 2 - Phs LFO 1 - - Loading sample - 加载采样中 + + Osc 2 - Phs LFO 2 + - - Please wait, loading sample for preview... - 请稍候,加载采样中... + + Osc 3 - Phs env 1 + - - Error - 错误 + + Osc 3 - Phs env 2 + - - %1 does not appear to be a valid %2 file + + Osc 3 - Phs LFO 1 - - --- Factory files --- - ---软件自带文件--- + + Osc 3 - Phs LFO 2 + - - - FlangerControls - - Delay samples + + Osc 1 - Pit env 1 - - LFO frequency + + Osc 1 - Pit env 2 - - Seconds - + + Osc 1 - Pit LFO 1 + - - Stereo phase + + Osc 1 - Pit LFO 2 - - Regen - 重生成 + + Osc 2 - Pit env 1 + - - Noise - 噪音 + + Osc 2 - Pit env 2 + - - Invert - 反转 + + Osc 2 - Pit LFO 1 + - - - FlangerControlsDialog - - DELAY - 延迟 + + Osc 2 - Pit LFO 2 + - - Delay time: + + Osc 3 - Pit env 1 - - RATE + + Osc 3 - Pit env 2 - - Period: + + Osc 3 - Pit LFO 1 - - AMNT - 数量 + + Osc 3 - Pit LFO 2 + - - Amount: - 数量: + + Osc 1 - PW env 1 + - - PHASE + + Osc 1 - PW env 2 - - Phase: + + Osc 1 - PW LFO 1 - - FDBK - 反馈 + + Osc 1 - PW LFO 2 + - - Feedback amount: + + Osc 3 - Sub env 1 - - NOISE - 噪音 + + Osc 3 - Sub env 2 + - - White noise amount: + + Osc 3 - Sub LFO 1 - - Invert - 反转 + + Osc 3 - Sub LFO 2 + - - - FreeBoyInstrument - - Sweep time + + + Sine wave - - Sweep direction + + Bandlimited Triangle wave - - Sweep rate shift amount + + Bandlimited Saw wave - - - Wave pattern duty cycle + + Bandlimited Ramp wave - - Channel 1 volume + + Bandlimited Square wave - - - - Volume sweep direction + + Bandlimited Moog saw wave - - - - Length of each step in sweep + + + Soft square wave - - Channel 2 volume + + Absolute sine wave - - Channel 3 volume + + + Exponential wave - - Channel 4 volume + + White noise - - Shift Register width + + Digital Triangle wave - - Right output level + + Digital Saw wave - - Left output level + + Digital Ramp wave - - Channel 1 to SO2 (Left) + + Digital Square wave - - Channel 2 to SO2 (Left) + + Digital Moog saw wave - - Channel 3 to SO2 (Left) + + Triangle wave - - Channel 4 to SO2 (Left) + + Saw wave - - Channel 1 to SO1 (Right) + + Ramp wave - - Channel 2 to SO1 (Right) + + Square wave - - Channel 3 to SO1 (Right) + + Moog saw wave - - Channel 4 to SO1 (Right) + + Abs. sine wave - - Treble - 高音 + + Random + - - Bass - 低音 + + Random smooth + - FreeBoyInstrumentView - - - Sweep time: - - + lmms::NesInstrument - - Sweep time + + Channel 1 enable - - Sweep rate shift amount: + + Channel 1 coarse detune - - Sweep rate shift amount + + Channel 1 volume - - - Wave pattern duty cycle: + + Channel 1 envelope enable - - - Wave pattern duty cycle + + Channel 1 envelope loop - - Square channel 1 volume: + + Channel 1 envelope length - - Square channel 1 volume + + Channel 1 duty cycle - - - - Length of each step in sweep: + + Channel 1 sweep enable - - - - Length of each step in sweep + + Channel 1 sweep amount - - Square channel 2 volume: + + Channel 1 sweep rate - - Square channel 2 volume + + Channel 2 enable - - Wave pattern channel volume: + + Channel 2 coarse detune - - Wave pattern channel volume + + Channel 2 volume - - Noise channel volume: + + Channel 2 envelope enable - - Noise channel volume + + Channel 2 envelope loop - - SO1 volume (Right): + + Channel 2 envelope length - - SO1 volume (Right) + + Channel 2 duty cycle - - SO2 volume (Left): + + Channel 2 sweep enable - - SO2 volume (Left) + + Channel 2 sweep amount - - Treble: - 高音: + + Channel 2 sweep rate + - - Treble - 高音 + + Channel 3 enable + - - Bass: - 低音: + + Channel 3 coarse detune + - - Bass - 低音 + + Channel 3 volume + - - Sweep direction + + Channel 4 enable - - - - - - Volume sweep direction + + Channel 4 volume - - Shift register width + + Channel 4 envelope enable - - Channel 1 to SO1 (Right) + + Channel 4 envelope loop - - Channel 2 to SO1 (Right) + + Channel 4 envelope length - - Channel 3 to SO1 (Right) + + Channel 4 noise mode - - Channel 4 to SO1 (Right) + + Channel 4 frequency mode - - Channel 1 to SO2 (Left) + + Channel 4 noise frequency - - Channel 2 to SO2 (Left) + + Channel 4 noise frequency sweep - - Channel 3 to SO2 (Left) + + Channel 4 quantize - - Channel 4 to SO2 (Left) + + Master volume - - Wave pattern graph + + Vibrato - MixerLine + lmms::OpulenzInstrument - - Channel send amount - 通道发送的数量 - - - - Move &left - 向左移(&L) + + Patch + - - Move &right - 向右移(&R) + + Op 1 attack + - - Rename &channel - 重命名通道(&C) + + Op 1 decay + - - R&emove channel - 删除通道(&E) + + Op 1 sustain + - - Remove &unused channels - 移除所有未用通道(&U) + + Op 1 release + - - Set channel color + + Op 1 level - - Remove channel color + + Op 1 level scaling - - Pick random channel color + + Op 1 frequency multiplier - - - MixerLineLcdSpinBox - - Assign to: - 分配给: + + Op 1 feedback + - - New mixer Channel - 新的效果通道 + + Op 1 key scaling rate + - - - Mixer - - Master - 主控 + + Op 1 percussive envelope + - - - - Channel %1 - FX %1 + + Op 1 tremolo + - - Volume - 音量 + + Op 1 vibrato + - - Mute - 静音 + + Op 1 waveform + - - Solo - 独奏 + + Op 2 attack + - - - MixerView - - Mixer - 效果混合器 + + Op 2 decay + - - Fader %1 - FX 衰减器 %1 + + Op 2 sustain + - - Mute - 静音 + + Op 2 release + - - Mute this mixer channel - 静音此效果通道 + + Op 2 level + - - Solo - 独奏 + + Op 2 level scaling + - - Solo mixer channel - 独奏效果通道 + + Op 2 frequency multiplier + - - - MixerRoute - - - Amount to send from channel %1 to channel %2 - 从通道 %1 发送到通道 %2 的量 + + Op 2 key scaling rate + - - - GigInstrument - - Bank - + + Op 2 percussive envelope + - - Patch - 音色 + + Op 2 tremolo + - - Gain - 增益 + + Op 2 vibrato + - - - GigInstrumentView - - - Open GIG file - 打开 GIG 文件 + + Op 2 waveform + - - Choose patch + + FM - - Gain: - 增益: + + Vibrato depth + - - GIG Files (*.gig) - GIG 文件 (*.gig) + + Tremolo depth + - GuiApplication - - - Working directory - 工作目录 - - - - The LMMS working directory %1 does not exist. Create it now? You can change the directory later via Edit -> Settings. - LMMS工作目录%1不存在,现在新建一个吗?你可以稍后在 编辑 -> 设置 中更改此设置。 - - - - Preparing UI - 正在准备界面 - - - - Preparing song editor - 正在准备歌曲编辑器 - + lmms::OrganicInstrument - - Preparing mixer - 正在准备混音器 + + Distortion + - - Preparing controller rack - 正在准备控制机架 + + Volume + + + + lmms::OscillatorObject - - Preparing project notes - 正在准备工程注释 + + Osc %1 waveform + - - Preparing beat/bassline editor - 正在准备节拍/低音线编辑器 + + Osc %1 harmonic + - - Preparing piano roll - 正在准备钢琴窗 + + + Osc %1 volume + - - Preparing automation editor - 正在准备自动编辑器 + + + Osc %1 panning + - - - InstrumentFunctionArpeggio - - Arpeggio - 琶音 + + Osc %1 stereo detuning + - - Arpeggio type - 琶音类型 + + Osc %1 coarse detuning + - - Arpeggio range - 琶音范围 + + Osc %1 fine detuning left + - - Note repeats + + Osc %1 fine detuning right - - Cycle steps + + Osc %1 phase-offset - - Skip rate - 跳过率 + + Osc %1 stereo phase-detuning + - - Miss rate - 丢失率 + + Osc %1 wave shape + - - Arpeggio time - 琶音时间 + + Modulation type %1 + - - - Arpeggio gate - 琶音门限 + + + lmms::PatternTrack + + + Pattern %1 + - - Arpeggio direction - 琶音方向 + + Clone of %1 + + + + lmms::PeakController - - Arpeggio mode - 琶音模式 + + Peak Controller + - - Up - 向上 + + Peak Controller Bug + - - Down - 向下 + + Due to a bug in older version of LMMS, the peak controllers may not be connect properly. Please ensure that peak controllers are connected properly and re-save this file. Sorry for any inconvenience caused. + + + + lmms::PeakControllerEffectControls - - Up and down - 上和下 + + Base value + - - Down and up - 下和上 + + Modulation amount + - - Random - 随机 + + Attack + - - Free - 自由 + + Release + - - Sort - 排序 + + Treshold + - - Sync - 同步 + + Mute output + - - - InstrumentFunctionArpeggioView - - ARPEGGIO - 琶音 + + Absolute value + - - RANGE - 范围 + + Amount multiplicator + + + + lmms::Plugin - - Arpeggio range: - 琶音范围: + + Plugin not found + - - octave(s) - 八度音 + + The plugin "%1" wasn't found or could not be loaded! +Reason: "%2" + - - REP + + Error while loading plugin - - Note repeats: + + Failed to load plugin "%1"! + + + lmms::ReverbSCControls - - time(s) + + Input gain - - CYCLE - 循环 + + Size + - - Cycle notes: - 循环音符: + + Color + - - note(s) - 音符 + + Output gain + + + + lmms::SaControls - - SKIP - 跳过 + + Pause + - - Skip rate: - 跳过率: + + Reference freeze + - - - - % - % + + Waterfall + - - MISS - 丢失 + + Averaging + - - Miss rate: - 丢失率: + + Stereo + - - TIME - 时长 + + Peak hold + - - Arpeggio time: - 琶音时间: + + Logarithmic frequency + - - ms - 毫秒 + + Logarithmic amplitude + - - GATE - 门限 + + Frequency range + - - Arpeggio gate: - 琶音门限: + + Amplitude range + - - Chord: - 和弦: + + FFT block size + - - Direction: - 方向: + + FFT window type + - - Mode: - 模式: + + Peak envelope resolution + - - - InstrumentFunctionNoteStacking - - octave - octave + + Spectrum display resolution + - - - Major - Major + + Peak decay multiplier + - - Majb5 - Majb5 + + Averaging weight + - - minor - minor + + Waterfall history size + - - minb5 - minb5 + + Waterfall gamma correction + - - sus2 - sus2 + + FFT window overlap + - - sus4 - sus4 + + FFT zero padding + - - aug - aug + + + Full (auto) + - - augsus4 - augsus4 + + + + Audible + - - tri - tri + + Bass + - - 6 - 6 + + Mids + - - 6sus4 - 6sus4 + + High + - - 6add9 - 6add9 + + Extended + - - m6 - m6 + + Loud + - - m6add9 - m6add9 + + Silent + - - 7 - 7 + + (High time res.) + - - 7sus4 - 7sus4 + + (High freq. res.) + - - 7#5 - 7#5 + + Rectangular (Off) + - - 7b5 - 7b5 + + + Blackman-Harris (Default) + - - 7#9 - 7#9 + + Hamming + - - 7b9 - 7b9 + + Hanning + + + + lmms::SampleClip - - 7#5#9 - 7#5#9 + + Sample not found + + + + lmms::SampleTrack - - 7#5b9 - 7#5b9 + + Volume + - - 7b5b9 - 7b5b9 + + Panning + - - 7add11 - 7add11 + + Mixer channel + - - 7add13 - 7add13 + + + Sample track + + + + lmms::Scale - - 7#11 - 7#11 + + empty + + + + lmms::Sf2Instrument - - Maj7 - Maj7 + + Bank + - - Maj7b5 - Maj7b5 + + Patch + - - Maj7#5 - Maj7#5 + + Gain + - - Maj7#11 - Maj7#11 + + Reverb + - - Maj7add13 - Maj7add13 + + Reverb room size + - - m7 - m7 + + Reverb damping + - - m7b5 - m7b5 + + Reverb width + - - m7b9 - m7b9 + + Reverb level + - - m7add11 - m7add11 + + Chorus + - - m7add13 - m7add13 + + Chorus voices + - - m-Maj7 - m-Maj7 + + Chorus level + - - m-Maj7add11 - m-Maj7add11 + + Chorus speed + - - m-Maj7add13 - m-Maj7add13 + + Chorus depth + - - 9 - 9 + + A soundfont %1 could not be loaded. + + + + lmms::SfxrInstrument - - 9sus4 - 9sus4 + + Wave + + + + lmms::SidInstrument - - add9 - add9 + + Cutoff frequency + - - 9#5 - 9#5 + + Resonance + - - 9b5 - 9b5 + + Filter type + - - 9#11 - 9#11 + + Voice 3 off + - - 9b13 - 9b13 + + Volume + - - Maj9 - Maj9 + + Chip model + + + + lmms::SlicerT - - Maj9sus4 - Maj9sus4 + + Note threshold + - - Maj9#5 - Maj9#5 + + FadeOut + - - Maj9#11 - Maj9#11 + + Original bpm + - - m9 - m9 + + Slice snap + - - madd9 - madd9 + + BPM sync + - - m9b5 - m9b5 + + + slice_%1 + - - m9-Maj7 - m9-Maj7 + + Sample not found: %1 + + + + lmms::Song - - 11 - 11 + + Tempo + - - 11b9 - 11b9 + + Master volume + - - Maj11 - Maj11 + + Master pitch + - - m11 - m11 + + Aborting project load + - - m-Maj11 - m-Maj11 + + Project file contains local paths to plugins, which could be used to run malicious code. + - - 13 - 13 + + Can't load project: Project file contains local paths to plugins. + - - 13#9 - 13#9 + + LMMS Error report + - - 13b9 - 13b9 + + (repeated %1 times) + - - 13b5b9 - 13b5b9 + + The following errors occurred while loading: + + + + lmms::StereoEnhancerControls - - Maj13 - Maj13 + + Width + + + + + lmms::StereoMatrixControls + + + Left to Left + - - m13 - m13 + + Left to Right + - - m-Maj13 - m-Maj13 + + Right to Left + - - Harmonic minor - Harmonic minor + + Right to Right + + + + lmms::Track - - Melodic minor - Melodic minor + + Mute + - - Whole tone - 全音符 + + Solo + + + + lmms::TrackContainer - - Diminished - Diminished + + Couldn't import file + - - Major pentatonic - Major pentatonic + + Couldn't find a filter for importing file %1. +You should convert this file into a format supported by LMMS using another software. + - - Minor pentatonic - Minor pentatonic + + Couldn't open file + - - Jap in sen - Jap in sen + + Couldn't open file %1 for reading. +Please make sure you have read-permission to the file and the directory containing the file and try again! + - - Major bebop - Major bebop + + Loading project... + - - Dominant bebop - Dominant bebop + + + Cancel + - - Blues - Blues + + + Please wait... + - - Arabic - Arabic + + Loading cancelled + - - Enigmatic - Enigmatic + + Project loading was cancelled. + - - Neopolitan - Neopolitan + + Loading Track %1 (%2/Total %3) + - - Neopolitan minor - Neopolitan minor + + Importing MIDI-file... + + + + lmms::TripleOscillator - - Hungarian minor - Hungarian minor + + Sample not found + + + + lmms::VecControls - - Dorian - Dorian + + Display persistence amount + - - Phrygian + + Logarithmic scale - - Lydian - Lydian + + High quality + + + + lmms::VestigeInstrument - - Mixolydian - Mixolydian + + Loading plugin + - - Aeolian - Aeolian + + Please wait while loading the VST plugin... + + + + lmms::Vibed - - Locrian - Locrian + + String %1 volume + - - Minor - Minor + + String %1 stiffness + - - Chromatic - Chromatic + + Pick %1 position + - - Half-Whole Diminished - 半-全减音程 + + Pickup %1 position + - - 5 - 5 + + String %1 panning + - - Phrygian dominant + + String %1 detune - - Persian + + String %1 fuzziness - - Chords - Chords + + String %1 length + - - Chord type - Chord type + + Impulse %1 + - - Chord range - Chord range + + String %1 + - InstrumentFunctionNoteStackingView + lmms::VoiceObject - - STACKING - 堆叠 + + Voice %1 pulse width + - - Chord: - 和弦: + + Voice %1 attack + - - RANGE - 范围 + + Voice %1 decay + - - Chord range: - 和弦范围: + + Voice %1 sustain + - - octave(s) - 八度音 + + Voice %1 release + - - - InstrumentMidiIOView - - ENABLE MIDI INPUT - 启用MIDI输入 + + Voice %1 coarse detuning + - - ENABLE MIDI OUTPUT - 启用MIDI输出 + + Voice %1 wave shape + - - - CHAN - This string must be be short, its width must be less than * width of LCD spin-box of two digits + + Voice %1 sync - - - VELOC - This string must be be short, its width must be less than * width of LCD spin-box of three digits + + Voice %1 ring modulate - - PROG - This string must be be short, its width must be less than the * width of LCD spin-box of three digits + + Voice %1 filtered - - NOTE - This string must be be short, its width must be less than * width of LCD spin-box of three digits - 音符 + + Voice %1 test + + + + + lmms::VstPlugin + + + + The VST plugin %1 could not be loaded. + - - MIDI devices to receive MIDI events from - 用于接收 MIDI 事件的 MIDI 设备 + + Open Preset + - - MIDI devices to send MIDI events to - 用于发送 MIDI 事件的 MIDI 设备 + + + VST Plugin Preset (*.fxp *.fxb) + - - CUSTOM BASE VELOCITY - 自定义基准力度 + + : default + - - Specify the velocity normalization base for MIDI-based instruments at 100% note velocity. + + Save Preset - - BASE VELOCITY - 基准力度 + + .fxp + - - - InstrumentTuningView - - MASTER PITCH - 主音高 + + .FXP + - - Enables the use of master pitch + + .FXB - - - InstrumentSoundShaping - - VOLUME - 音量 + + .fxb + - - Volume - 音量 + + Loading plugin + - - CUTOFF - 切除 + + Please wait while loading VST plugin... + + + + lmms::WatsynInstrument - - - Cutoff frequency - 切除频率 + + Volume A1 + - - RESO - 共鸣 + + Volume A2 + - - Resonance - 共鸣 + + Volume B1 + - - Envelopes/LFOs - 压限/低频振荡 + + Volume B2 + - - Filter type - 过滤器类型 + + Panning A1 + + + + + Panning A2 + - - Q/Resonance - 滤波器Q值 + + Panning B1 + - - Low-pass + + Panning B2 - - Hi-pass + + Freq. multiplier A1 - - Band-pass csg + + Freq. multiplier A2 - - Band-pass czpg + + Freq. multiplier B1 - - Notch - 凹口滤波器 + + Freq. multiplier B2 + - - All-pass + + Left detune A1 - - Moog - Moog + + Left detune A2 + - - 2x Low-pass + + Left detune B1 - - RC Low-pass 12 dB/oct + + Left detune B2 - - RC Band-pass 12 dB/oct + + Right detune A1 - - RC High-pass 12 dB/oct + + Right detune A2 - - RC Low-pass 24 dB/oct + + Right detune B1 - - RC Band-pass 24 dB/oct + + Right detune B2 - - RC High-pass 24 dB/oct + + A-B Mix - - Vocal Formant + + A-B Mix envelope amount - - 2x Moog - 2x Moog + + A-B Mix envelope attack + - - SV Low-pass + + A-B Mix envelope hold - - SV Band-pass + + A-B Mix envelope decay - - SV High-pass + + A1-B2 Crosstalk - - SV Notch - SV Notch + + A2-A1 modulation + - - Fast Formant - 快速共振峰(Formant) + + B2-B1 modulation + - - Tripole - Tripole + + Selected graph + - InstrumentSoundShapingView + lmms::WaveShaperControls - - TARGET - 目标 + + Input gain + - - FILTER - 过滤器 + + Output gain + + + + lmms::Xpressive - - FREQ - 频率 + + Selected graph + - - Cutoff frequency: - 频谱刀频率: + + A1 + - - Hz - Hz + + A2 + - - Q/RESO + + A3 - - Q/Resonance: + + W1 smoothing - - Envelopes, LFOs and filters are not supported by the current instrument. - 包络和低频振荡 (LFO) 不被当前乐器支持。 + + W2 smoothing + - - - InstrumentTrack - - - unnamed_track - 未命名轨道 + + W3 smoothing + - - Base note - 基本音 + + Panning 1 + - - First note + + Panning 2 - - Last note - 上一个音符 + + Rel trans + + + + lmms::ZynAddSubFxInstrument - - Volume - 音量 + + Portamento + - - Panning - 声相 + + Filter frequency + - - Pitch - 音高 + + Filter resonance + - - Pitch range - 音域范围 + + Bandwidth + - - Mixer channel - 效果通道 + + FM gain + - - Master pitch - 主音高 + + Resonance center frequency + - - Enable/Disable MIDI CC + + Resonance bandwidth - - CC Controller %1 + + Forward MIDI control change events + + + lmms::graphModel - - - Default preset - 预置 + + Graph + - InstrumentTrackView + lmms::gui::AmplifierControlDialog - - Volume + + VOL 音量 - + Volume: 音量: - - VOL - 音量 - - - - Panning - 声相 + + PAN + - + Panning: - 声相: - - - - PAN - 声相 + - - MIDI - MIDI + + LEFT + - - Input - 输入 + + Left gain: + - - Output - 输出 + + RIGHT + - - Open/Close MIDI CC Rack + + Right gain: - - - Channel %1: %2 - 效果 %1: %2 - - InstrumentTrackWindow - - - GENERAL SETTINGS - 常规设置 - - - - Volume - 音量 - + lmms::gui::AudioAlsaSetupWidget - - Volume: - 音量: + + Device + 设备 - - VOL - 音量 + + Channels + 通道 + + + lmms::gui::AudioFileProcessorView - - Panning - 声相 + + Open sample + - - Panning: - 声相: + + Reverse sample + - - PAN - 声相 + + Disable loop + - - Pitch - 音高 + + Enable loop + - - Pitch: - 音高: + + Enable ping-pong loop + - - cents - 音分 cents + + Continue sample playback across notes + - - PITCH - 音调 + + Amplify: + - - Pitch range (semitones) - 音域范围(半音) + + Start point: + - - RANGE - 范围 + + End point: + - - Mixer channel - 效果通道 + + Loopback point: + + + + lmms::gui::AudioFileProcessorWaveView - - CHANNEL - 效果 + + Sample length: + + + + lmms::gui::AutomationClipView - - Save current instrument track settings in a preset file - 保存当前乐器轨道设置到预设文件 + + Open in Automation editor + - - SAVE - 保存 + + Clear + - - Envelope, filter & LFO + + Reset name - - Chord stacking & arpeggio + + Change name - - Effects - 效果 + + Set/clear record + - - MIDI - MIDI + + Flip Vertically (Visible) + - - Miscellaneous - 杂项 + + Flip Horizontally (Visible) + - - Save preset - 保存预置 + + %1 Connections + - - XML preset file (*.xpf) - XML 预设文件 (*.xpf) + + Disconnect "%1" + - - Plugin - 插件 + + Model is already connected to this clip. + - JackApplicationW + lmms::gui::AutomationEditor - - NSM applications cannot use abstract or absolute paths + + Edit Value - - NSM applications cannot use CLI arguments + + New outValue - - You need to save the current Carla project before NSM can be used + + New inValue + + + + + Please open an automation clip by double-clicking on it! - JuceAboutW + lmms::gui::AutomationEditorWindow - - About JUCE + + Play/pause current clip (Space) - - <b>About JUCE</b> + + Stop playing of current clip (Space) - - This program uses JUCE version 3.x.x. + + Edit actions - - JUCE (Jules' Utility Class Extensions) is an all-encompassing C++ class library for developing cross-platform software. - -It contains pretty much everything you're likely to need to create most applications, and is particularly well-suited for building highly-customised GUIs, and for handling graphics and sound. - -JUCE is licensed under the GNU Public Licence version 2.0. -One module (juce_core) is permissively licensed under the ISC. - -Copyright (C) 2017 ROLI Ltd. + + Draw mode (Shift+D) - - This program uses JUCE version %1. + + Erase mode (Shift+E) - - - Knob - - Set linear - 设置为线性 + + Draw outValues mode (Shift+C) + - - Set logarithmic - 设置为对数 + + Edit tangents mode (Shift+T) + - - - Set value - 设置值 + + Flip vertically + - - Please enter a new value between -96.0 dBFS and 6.0 dBFS: - 请输入介于 -96.0 dBFS 和 6.0 dBFS之间的值: + + Flip horizontally + - - Please enter a new value between %1 and %2: - 请输入一个介于%1和%2之间的数值: + + Interpolation controls + - - - LadspaControl - - Link channels - 关联通道 + + Discrete progression + - - - LadspaControlDialog - - Link Channels - 连接通道 + + Linear progression + - - Channel - 通道 + + Cubic Hermite progression + - - - LadspaControlView - - Link channels - 连接通道 + + Tension value for spline + - - Value: - 值: + + Tension: + - - - LadspaEffect - - Unknown LADSPA plugin %1 requested. - 已请求未知 LADSPA 插件 %1. + + Zoom controls + 缩放控制 - - - LcdFloatSpinBox - - Set value - 设置值 + + Horizontal zooming + 水平缩放 - - Please enter a new value between %1 and %2: - 请输入一个介于 %1 和 %2 的值: + + Vertical zooming + 垂直缩放 - - - LcdSpinBox - - Set value - 设置值 + + Quantization controls + - - Please enter a new value between %1 and %2: - 请输入一个介于%1和%2之间的数值: + + Quantization + - - - LeftRightNav - - - - Previous - 上个 + + Clear ghost notes + - - - - Next - 下个 + + + Automation Editor - no clip + - - Previous (%1) - 上 (%1) + + + Automation Editor - %1 + - - Next (%1) - 下 (%1) + + Model is already connected to this clip. + - LfoController - - - LFO Controller - LFO 控制器 - + lmms::gui::BassBoosterControlDialog - - Base value - 基准值 + + FREQ + - - Oscillator speed - 振动速度 + + Frequency: + - - Oscillator amount - 振动数量 + + GAIN + - - Oscillator phase - 振动相位 + + Gain: + - - Oscillator waveform - 振动波形 + + RATIO + - - Frequency Multiplier - 频率加倍器 + + Ratio: + - LfoControllerDialog + lmms::gui::BitInvaderView - - LFO - LFO + + Sample length + - - BASE - 基准 + + Draw your own waveform here by dragging your mouse on this graph. + - - Base: - 基准值: + + + Sine wave + - - FREQ - 频率 + + + Triangle wave + - - LFO frequency: - LFO频率 + + + Saw wave + - - AMNT - 数量 + + + Square wave + - - Modulation amount: - 调制量: + + + White noise + - - PHS - 相位 + + + User-defined wave + - - Phase offset: - 相位差: + + + Smooth waveform + - - degrees - 角度 + + Interpolation + - - Sine wave - 正弦波 + + Normalize + + + + lmms::gui::BitcrushControlDialog - - Triangle wave - 三角波 + + IN + - - Saw wave - 锯齿波 + + OUT + - - Square wave - 方波 + + + GAIN + - - Moog saw wave - Moog 锯齿波 + + Input gain: + - - Exponential wave - 指数爆炸波形 + + NOISE + - - White noise - 白噪音 + + Input noise: + - - User-defined shape. -Double click to pick a file. - 自定义波形 -双击选择波形文件 + + Output gain: + - - Mutliply modulation frequency by 1 - 调制频率乘以1 + + CLIP + - - Mutliply modulation frequency by 100 - 调制评论乘以100 + + Output clip: + - - Divide modulation frequency by 100 - 调制评论除以100 + + Rate enabled + - - - Engine - - Generating wavetables - 正在生成波形表 + + Enable sample-rate crushing + - - Initializing data structures - 正在初始化数据结构 + + Depth enabled + - - Opening audio and midi devices - 正在启动音频和 MIDI 设备 + + Enable bit-depth crushing + - - Launching mixer threads - 生在启动混音器线程 + + FREQ + - - - MainWindow - - Configuration file - 配置文件 + + Sample rate: + - - Error while parsing configuration file at line %1:%2: %3 - 解析配置文件发生错误(行%1:%2:%3) + + STEREO + - - Could not open file - 无法打开文件 + + Stereo difference: + - - Could not open file %1 for writing. -Please make sure you have write permission to the file and the directory containing the file and try again! - 无法写入文件 %1 -请确保您有对该文件以及包含该文件目录的写入权限! + + QUANT + - - Project recovery - 工程恢复 + + Levels: + + + + lmms::gui::CPULoadWidget - - There is a recovery file present. It looks like the last session did not end properly or another instance of LMMS is already running. Do you want to recover the project of this session? - 发现了一个恢复文件。看上去上个会话没有正常结束或者其他的 LMMS 进程已经运行。你想要恢复这个项目吗? + + DSP total: %1% + - - - Recover - 恢复 + + - Notes and setup: %1% + - - Recover the file. Please don't run multiple instances of LMMS when you do this. - 恢复文件。请不要在恢复文件时运行多个 LMMS 程序。 + + - Instruments: %1% + - - - Discard - 丢弃 + + - Effects: %1% + - - Launch a default session and delete the restored files. This is not reversible. - 运行一个新的默认会话并且删除恢复文件。此操作无法撤销。 + + - Mixing: %1% + + + + lmms::gui::CarlaInstrumentView - - Version %1 - 版本 %1 + + Show GUI + - - Preparing plugin browser - 正在准备插件浏览器 + + Click here to show or hide the graphical user interface (GUI) of Carla. + - - Preparing file browsers - 正在准备文件浏览器 + + Params + - - My Projects - 我的工程 + + Available from Carla version 2.1 and up. + + + + lmms::gui::CarlaParamsView - - My Samples - 我的采样 + + Search.. + - - My Presets - 我的预设 + + Clear filter text + - - My Home - 我的主目录 + + Only show knobs with a connection. + - - Root directory - 根目录 + + - Parameters + + + + lmms::gui::ClipView - - Volumes - 音量 + + Current position + - - My Computer - 我的电脑 + + Current length + - - &File - 文件(&F) + + + %1:%2 (%3:%4 to %5:%6) + - - &New - 新建(&N) + + Press <%1> and drag to make a copy. + - - &Open... - 打开(&O)... + + Press <%1> for free resizing. + - - Loading background picture - 正在加载背景图片 + + Hint + - - &Save - 保存(&S) + + Delete (middle mousebutton) + - - Save &As... - 另存为(&A)... + + Delete selection (middle mousebutton) + - - Save as New &Version - 保存为新版本(&V) + + Cut + - - Save as default template - 保存为默认模板 + + Cut selection + - - Import... - 导入... + + Merge Selection + - - E&xport... - 导出(&E)... + + Copy + - - E&xport Tracks... - 导出音轨(&X)... + + Copy selection + - - Export &MIDI... - 导出 MIDI (&M)... + + Paste + - - &Quit - 退出(&Q) + + Mute/unmute (<%1> + middle click) + - - &Edit - 编辑(&E) + + Mute/unmute selection (<%1> + middle click) + - - Undo - 撤销 + + Clip color + - - Redo - 重做 + + Change + - - Settings - 设置 + + Reset + - - &View - 视图 (&V) + + Pick random + + + + lmms::gui::CompressorControlDialog - - &Tools - 工具(&T) + + Threshold: + - - &Help - 帮助(&H) + + Volume at which the compression begins to take place + - - Online Help - 在线帮助 + + Ratio: + - - Help - 帮助 + + How far the compressor must turn the volume down after crossing the threshold + - - About - 关于 + + Attack: + - - Create new project - 新建工程 + + Speed at which the compressor starts to compress the audio + - - Create new project from template - 从模版新建工程 + + Release: + - - Open existing project - 打开已有工程 + + Speed at which the compressor ceases to compress the audio + - - Recently opened projects - 最近打开的工程 + + Knee: + - - Save current project - 保存当前工程 + + Smooth out the gain reduction curve around the threshold + - - Export current project - 导出当前工程 + + Range: + - - Metronome - 节拍器 + + Maximum gain reduction + - - - Song Editor - 显示/隐藏歌曲编辑器 + + Lookahead Length: + - - - Beat+Bassline Editor - 显示/隐藏节拍+旋律编辑器 + + How long the compressor has to react to the sidechain signal ahead of time + - - - Piano Roll - 显示/隐藏钢琴窗 + + Hold: + - - - Automation Editor - 显示/隐藏自动控制编辑器 + + Delay between attack and release stages + - - - Mixer - 显示/隐藏混音器 + + RMS Size: + - - Show/hide controller rack - 显示/隐藏控制器机架 + + Size of the RMS buffer + - - Show/hide project notes - 显示/隐藏工程注释 + + Input Balance: + - - Untitled - 未标题 + + Bias the input audio to the left/right or mid/side + - - Recover session. Please save your work! - 恢复会话。请保存你的工作! + + Output Balance: + - - LMMS %1 - LMMS %1 + + Bias the output audio to the left/right or mid/side + - - Recovered project not saved - 恢复的工程没有保存 + + Stereo Balance: + - - This project was recovered from the previous session. It is currently unsaved and will be lost if you don't save it. Do you want to save it now? - 这个工程已从上一个会话中恢复。它现在没有被保存, 并且如果你不保存, 它将会丢失。你现在想保存它吗? + + Bias the sidechain signal to the left/right or mid/side + - - Project not saved - 工程未保存 + + Stereo Link Blend: + - - The current project was modified since last saving. Do you want to save it now? - 此工程自上次保存后有了修改,你想保存吗? + + Blend between unlinked/maximum/average/minimum stereo linking modes + - - Open Project - 打开工程 + + Tilt Gain: + - - LMMS (*.mmp *.mmpz) - LMMS (*.mmp *.mmpz) + + Bias the sidechain signal to the low or high frequencies. -6 db is lowpass, 6 db is highpass. + - - Save Project - 保存工程 + + Tilt Frequency: + - - LMMS Project - LMMS 工程 + + Center frequency of sidechain tilt filter + - - LMMS Project Template - LMMS 工程模板 + + Mix: + - - Save project template - 保存工程模板 + + Balance between wet and dry signals + - - Overwrite default template? - 覆盖默认的模板? + + Auto Attack: + - - This will overwrite your current default template. - 这将会覆盖你的当前默认模板。 + + Automatically control attack value depending on crest factor + - - Help not available - 帮助不可用 + + Auto Release: + - - Currently there's no help available in LMMS. -Please visit http://lmms.sf.net/wiki for documentation on LMMS. - LMMS现在没有可用的帮助 -请访问 http://lmms.sf.net/wiki 了解LMMS的相关文档。 + + Automatically control release value depending on crest factor + - - Controller Rack - 显示/隐藏控制器机架 + + Output gain + - - Project Notes - 显示/隐藏工程注释 + + + Gain + - - Fullscreen + + Output volume - - Volume as dBFS - 以 dBFS 为单位显示音量 + + Input gain + - - Smooth scroll - 平滑滚动 + + Input volume + - - Enable note labels in piano roll - 在钢琴窗中显示音号 + + Root Mean Square + - - MIDI File (*.mid) - MIDI 文件 (*.mid) + + Use RMS of the input + - - - untitled - 未标题 + + Peak + - - - Select file for project-export... - 为工程导出选择文件... + + Use absolute value of the input + - - Select directory for writing exported tracks... - 选择写入导出音轨的目录... + + Left/Right + - - Save project - 保存工程 + + Compress left and right audio + - - Project saved - 工程已保存 + + Mid/Side + - - The project %1 is now saved. - 工程 %1 已保存。 + + Compress mid and side audio + - - Project NOT saved. - 工程 **没有** 保存。 + + Compressor + - - The project %1 was not saved! - 工程%1没有保存! + + Compress the audio + - - Import file - 导入文件 + + Limiter + - - MIDI sequences - MIDI 音序器 + + Set Ratio to infinity (is not guaranteed to limit audio volume) + - - Hydrogen projects - Hydrogen工程 + + Unlinked + - - All file types - 所有类型 + + Compress each channel separately + - - - MeterDialog - - - Meter Numerator - 分子数值 + + Maximum + - - Meter numerator + + Compress based on the loudest channel - - - Meter Denominator - 分母数值 + + Average + - - Meter denominator + + Compress based on the averaged channel volume - - TIME SIG - 拍子记号 + + Minimum + - - - MeterModel - - Numerator - 分子 + + Compress based on the quietest channel + - - Denominator - 分母 + + Blend + - - - MidiCCRackView - - - MIDI CC Rack - %1 + + Blend between stereo linking modes - - MIDI CC Knobs: + + Auto Makeup Gain - - CC %1 + + Automatically change makeup gain depending on threshold, knee, and ratio settings - - - MidiController - - MIDI Controller - MIDI控制器 + + + Soft Clip + - - unnamed_midi_controller - 未命名的 MIDI 控制器 + + Play the delta signal + - - - MidiImport - - - Setup incomplete - 设置不完整 + + Use the compressor's output as the sidechain input + - - You have not set up a default soundfont in the settings dialog (Edit->Settings). Therefore no sound will be played back after importing this MIDI file. You should download a General MIDI soundfont, specify it in settings dialog and try again. + + Lookahead Enabled - - You did not compile LMMS with support for SoundFont2 player, which is used to add default sound to imported MIDI files. Therefore no sound will be played back after importing this MIDI file. - 你在编译 LMMS 时没有加入 SoundFont2 播放器支持, 此播放器默认用于添加导入的 MIDI 文件。因此在 MIDI 文件导入后, 将没有声音。 + + Enable Lookahead, which introduces 20 milliseconds of latency + + + + lmms::gui::ControllerConnectionDialog - - MIDI Time Signature Numerator + + Connection Settings - - MIDI Time Signature Denominator + + MIDI CONTROLLER - - Numerator - 分子 + + Input channel + - - Denominator - 分母 + + CHANNEL + - - Track - 轨道 + + Input controller + - - - MidiJack - - JACK server down - When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (title) - JACK服务崩溃 + + CONTROLLER + - - The JACK server seems to be shuted down. - When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (dialog message) - JACK 音频服务器似乎已经关闭 + + + Auto Detect + - - - MidiPatternW - - MIDI Pattern + + MIDI-devices to receive MIDI-events from - - Time Signature: - 节拍: + + USER CONTROLLER + - - - - 1/4 - 1/4 + + MAPPING FUNCTION + - - 2/4 - 2/4 + + OK + - - 3/4 - 3/4 + + Cancel + - - 4/4 - 4/4 + + LMMS + - - 5/4 - 5/4 + + Cycle Detected. + + + + lmms::gui::ControllerRackView - - 6/4 - 6/4 + + Controller Rack + - - Measures: - 小节数 + + Add + - - - - 1 - 1 + + Confirm Delete + - - 2 - 2 + + Confirm delete? There are existing connection(s) associated with this controller. There is no way to undo. + + + + lmms::gui::ControllerView - - 3 - 3 + + Controls + - - 4 - 4 + + Rename controller + - - 5 - 5 + + Enter the new name for this controller + - - 6 - 6 + + LFO + - - 7 - 7 + + Move &up + - - 8 - 8 + + Move &down + - - 9 - 9 + + &Remove this controller + - - 10 - 10 + + Re&name this controller + + + + lmms::gui::CrossoverEQControlDialog - - 11 - 11 + + Band 1/2 crossover: + - - 12 - 12 + + Band 2/3 crossover: + - - 13 - 13 + + Band 3/4 crossover: + - - 14 - 14 + + Band 1 gain + - - 15 - 15 + + Band 1 gain: + - - 16 - 16 + + Band 2 gain + - - Default Length: - 默认长度 + + Band 2 gain: + - - - 1/16 - 1/16 + + Band 3 gain + - - - 1/15 - 1/15 + + Band 3 gain: + - - - 1/12 - 1/12 + + Band 4 gain + - - - 1/9 - 1/9 + + Band 4 gain: + - - - 1/8 - 1/8 + + Band 1 mute + - - - 1/6 - 1/6 + + Mute band 1 + - - - 1/3 - 1/3 + + Band 2 mute + - - - 1/2 - 1/2 + + Mute band 2 + - - Quantize: + + Band 3 mute - - &File - 文件(&F) + + Mute band 3 + - - &Edit - 编辑(&E) + + Band 4 mute + - - &Quit - 退出(&Q) + + Mute band 4 + + + + lmms::gui::DelayControlsDialog - - &Insert Mode + + DELAY - - F + + Delay time - - &Velocity Mode + + FDBK - - D - D + + Feedback amount + - - Select All - 全选 + + RATE + - - A - A + + LFO frequency + - - - MidiPort - - Input channel - 输入通道 + + AMNT + - - Output channel - 输出通道 + + LFO amount + - - Input controller - 输入控制器 + + Out gain + - - Output controller - 输出控制器 + + Gain + + + + lmms::gui::DispersionControlDialog - - Fixed input velocity - 固定输入力度 + + AMOUNT + - - Fixed output velocity - 固定输出力度 + + Number of all-pass filters + - - Fixed output note - 固定输出音符 + + FREQ + - - Output MIDI program - MIDI 输出程序 + + Frequency: + - - Base velocity - 基准力度 + + RESO + - - Receive MIDI-events - 接受 MIDI 事件 + + Resonance: + - - Send MIDI-events - 发送 MIDI 事件 + + FEED + - - - MidiSetupWidget - - Device - 设备 + + Feedback: + - - - MonstroInstrument - - Osc 1 volume - 振荡器1音量 + + DC Offset Removal + - - Osc 1 panning - 振荡器1声相 + + Remove DC Offset + + + + lmms::gui::DualFilterControlDialog - - Osc 1 coarse detune - 振荡器1声调粗调 + + + FREQ + - - Osc 1 fine detune left - 振荡器1左声道微调 + + + Cutoff frequency + - - Osc 1 fine detune right - 振荡器1右声道微调 + + + RESO + - - Osc 1 stereo phase offset - 振荡器1立体声相位差 + + + Resonance + - - Osc 1 pulse width - 振荡器1脉冲宽度 + + + GAIN + - - Osc 1 sync send on rise - 振荡器1起音时发送同步 + + + Gain + - - Osc 1 sync send on fall - 振荡器1收音时发送同步 + + MIX + - - Osc 2 volume - 振荡器2音量 + + Mix + - - Osc 2 panning - 振荡器2声相 + + Filter 1 enabled + - - Osc 2 coarse detune - 振荡器2音调粗调 + + Filter 2 enabled + - - Osc 2 fine detune left - 振荡器2左声道微调 + + Enable/disable filter 1 + - - Osc 2 fine detune right - 振荡器2右声道微调 + + Enable/disable filter 2 + + + + lmms::gui::DynProcControlDialog - - Osc 2 stereo phase offset - 振荡器2立体声相位差 + + INPUT + - - Osc 2 waveform - 振荡器2波形 + + Input gain: + - - Osc 2 sync hard - 振荡器2硬同步 + + OUTPUT + - - Osc 2 sync reverse - 振荡器2反向同步 + + Output gain: + - - Osc 3 volume - 振荡器3音量 + + ATTACK + - - Osc 3 panning - 振荡器3声相 + + Peak attack time: + - - Osc 3 coarse detune - 振荡器3音调粗调 + + RELEASE + - - Osc 3 Stereo phase offset - 振荡器3立体声相位差 + + Peak release time: + - - Osc 3 sub-oscillator mix - 振荡器3分震荡器混合 + + + Reset wavegraph + - - Osc 3 waveform 1 - 振荡器3波形1 + + + Smooth wavegraph + - - Osc 3 waveform 2 - 振荡器3波形2 + + + Increase wavegraph amplitude by 1 dB + - - Osc 3 sync hard - 振荡器3硬同步 + + + Decrease wavegraph amplitude by 1 dB + - - Osc 3 Sync reverse - 振荡器3反向同步 + + Stereo mode: maximum + - - LFO 1 waveform - LFO1 波形 + + Process based on the maximum of both stereo channels + - - LFO 1 attack - LFO1 打进 + + Stereo mode: average + - - LFO 1 rate - LFO1 频率 + + Process based on the average of both stereo channels + - - LFO 1 phase - LFO1 相位 + + Stereo mode: unlinked + - - LFO 2 waveform - LFO2 波形 + + Process each stereo channel independently + + + + lmms::gui::Editor - - LFO 2 attack - LFO 2 打进 + + Transport controls + - - LFO 2 rate - LFO 2 频率 + + Play (Space) + - - LFO 2 phase - LFO 2 相位 + + Stop (Space) + - - Env 1 pre-delay - 包络 1 预延迟 + + Record + - - Env 1 attack - 包络 1 打进 + + Record while playing + - - Env 1 hold - 包络 1 持续 + + Toggle Step Recording + + + + lmms::gui::EffectRackView - - Env 1 decay - 包络 1 衰减 + + EFFECTS CHAIN + - - Env 1 sustain - 包络 1 延音 + + Add effect + + + + lmms::gui::EffectSelectDialog - - Env 1 release - 包络 1 释放 + + Add effect + - - Env 1 slope - 包络 1 坡度 + + + Name + - - Env 2 pre-delay - 包络 2 预延迟 + + Type + - - Env 2 attack - 包络 2 打进 + + All + - - Env 2 hold - 包络 2 持续 + + Search + - - Env 2 decay - 包络 2 衰减 + + Description + - - Env 2 sustain - 包络 2 延音 + + Author + + + + lmms::gui::EffectView - - Env 2 release - 包络 2 释放 + + On/Off + - - Env 2 slope - 包络 2 坡度 + + W/D + - - Osc 2+3 modulation - 振荡器2+3 调制 + + Wet Level: + - - Selected view - 选定的视图 + + DECAY + - - Osc 1 - Vol env 1 - 振荡器 1 音量包络 1 + + Time: + - - Osc 1 - Vol env 2 - 振荡器 1 音量包络2 + + GATE + - - Osc 1 - Vol LFO 1 - 振荡器 1 音量LFO 1 + + Gate: + - - Osc 1 - Vol LFO 2 - 振荡器 1 音量LFO 2 + + Controls + - - Osc 2 - Vol env 1 - 振荡器 2 音量包络 1 + + Move &up + - - Osc 2 - Vol env 2 - 振荡器 2 音量包络2 + + Move &down + - - Osc 2 - Vol LFO 1 - 振荡器 2 音量LFO 1 + + &Remove this plugin + + + + lmms::gui::EnvelopeAndLfoView - - Osc 2 - Vol LFO 2 - 振荡器 2 音量LFO 2 + + + AMT + - - Osc 3 - Vol env 1 - 振荡器 3 音量包络 1 + + + Modulation amount: + - - Osc 3 - Vol env 2 - 振荡器 3 音量包络 2 + + + DEL + - - Osc 3 - Vol LFO 1 - 振荡器 3 音量LFO 1 + + + Pre-delay: + - - Osc 3 - Vol LFO 2 - 振荡器 3 音量LFO 2 + + + ATT + - - Osc 1 - Phs env 1 - 振荡器 1 相位包络 1 + + + Attack: + - - Osc 1 - Phs env 2 - 振荡器 1 相位包络 2 + + HOLD + - - Osc 1 - Phs LFO 1 - 振荡器 1 相位LFO 1 + + Hold: + - - Osc 1 - Phs LFO 2 - 振荡器 1 相位LFO 2 + + DEC + - - Osc 2 - Phs env 1 - 振荡器 2 相位包络 1 + + Decay: + - - Osc 2 - Phs env 2 - 振荡器 2 相位包络 2 + + SUST + - - Osc 2 - Phs LFO 1 - 振荡器 2 相位LFO 1 + + Sustain: + - - Osc 2 - Phs LFO 2 - 振荡器 2 相位LFO 2 + + REL + - - Osc 3 - Phs env 1 - 振荡器 3 相位包络 1 + + Release: + - - Osc 3 - Phs env 2 - 振荡器 3 相位包络 2 + + SPD + - - Osc 3 - Phs LFO 1 - 振荡器 3 相位LFO 1 + + Frequency: + - - Osc 3 - Phs LFO 2 - 振荡器 3 相位LFO 2 + + FREQ x 100 + - - Osc 1 - Pit env 1 - 振荡器 1 音调包络 1 + + Multiply LFO frequency by 100 + - - Osc 1 - Pit env 2 - 振荡器 1 音调包络 2 + + MOD ENV AMOUNT + - - Osc 1 - Pit LFO 1 - 振荡器 1 音调LFO 1 + + Control envelope amount by this LFO + - - Osc 1 - Pit LFO 2 - 振荡器 1 音调LFO 2 + + Hint + - - Osc 2 - Pit env 1 - 振荡器 2 音调包络 1 + + Drag and drop a sample into this window. + - - - Osc 2 - Pit env 2 - 振荡器 2 音调包络 2 + + + lmms::gui::EnvelopeGraph + + + Scaling + - - Osc 2 - Pit LFO 1 - 振荡器 2 音调LFO 1 + + Dynamic + - - Osc 2 - Pit LFO 2 - 振荡器 2 音调LFO 2 + + Uses absolute spacings but switches to relative spacing if it's running out of space + - - Osc 3 - Pit env 1 - 振荡器 3 音调包络 1 + + Absolute + - - Osc 3 - Pit env 2 - 振荡器 3 音调包络 2 + + Provides enough potential space for each segment but does not scale + - - Osc 3 - Pit LFO 1 - 振荡器 3 音调LFO 1 + + Relative + - - Osc 3 - Pit LFO 2 - 振荡器 3 音调LFO 2 + + Always uses all of the available space to display the envelope graph + + + + lmms::gui::EqControlsDialog - - Osc 1 - PW env 1 - 振荡器 1 脉冲包络 1 + + HP + - - Osc 1 - PW env 2 - 振荡器 1 脉冲包络 2 + + Low-shelf + - - Osc 1 - PW LFO 1 - 振荡器 1 脉冲LFO 1 + + Peak 1 + - - Osc 1 - PW LFO 2 - 振荡器 1 脉冲LFO 2 + + Peak 2 + - - Osc 3 - Sub env 1 - 振荡器 3 分支包络 1 + + Peak 3 + - - Osc 3 - Sub env 2 - 振荡器 3 分支包络 2 + + Peak 4 + - - Osc 3 - Sub LFO 1 - 振荡器 3 分支LFO 1 + + High-shelf + - - Osc 3 - Sub LFO 2 - 振荡器 3 分支LFO 2 + + LP + - - - Sine wave - 正弦波 + + Input gain + - - Bandlimited Triangle wave - 限频段的三角波 + + + + Gain + - - Bandlimited Saw wave - 限频段的锯齿波 + + Output gain + - - Bandlimited Ramp wave - 限频段的倾斜波 + + Bandwidth: + - - Bandlimited Square wave - 限频段的方波 + + Octave + - - Bandlimited Moog saw wave - 限频段的Moog锯齿波 + + Resonance: + - - - Soft square wave - 软方波 + + Frequency: + - - Absolute sine wave - 绝对正弦波 + + LP group + - - - Exponential wave - 指数爆炸波形 + + HP group + + + + lmms::gui::EqHandle - - White noise - 白噪音 + + Reso: + - - Digital Triangle wave - 数码三角波 + + BW: + - - Digital Saw wave - 数码锯齿波 + + + Freq: + + + + lmms::gui::ExportProjectDialog - - Digital Ramp wave - 数码倾斜波 + + Could not open file + - - Digital Square wave - 数码方波 + + Could not open file %1 for writing. +Please make sure you have write permission to the file and the directory containing the file and try again! + - - Digital Moog saw wave - 数码Moog锯齿波 + + Export project to %1 + - - Triangle wave - 三角波 + + ( Fastest - biggest ) + - - Saw wave - 锯齿波 + + ( Slowest - smallest ) + - - Ramp wave - 斜坡波 + + Error + - - Square wave - 方波 + + Error while determining file-encoder device. Please try to choose a different output format. + - - Moog saw wave - Moog 锯齿波 + + Rendering: %1% + + + + lmms::gui::Fader - - Abs. sine wave - 绝对值正弦波 + + Set value + - - Random - 随机 + + Please enter a new value between %1 and %2: + - - Random smooth - 随机平滑 + + Volume: %1 dBFS + - MonstroView - - - Operators view - 操作视图 - + lmms::gui::FileBrowser - - Matrix view - 矩阵视图 + + Browser + - - - - Volume - 音量 + + Search + - - - - Panning - 声相 + + Refresh list + - - - - Coarse detune - 音高粗调 + + User content + - - - - semitones - 半音 + + Factory content + - - - Fine tune left - 左声道微调 + + Hidden content + + + + lmms::gui::FileBrowserTreeWidget - - - - - cents - 音分 + + Send to active instrument-track + - - - Fine tune right - 右声道微调 + + Open containing folder + - - - - Stereo phase offset - 立体声相位差 + + Song Editor + - - - - - - deg - 角度 + + Pattern Editor + - - Pulse width - 脉冲宽度 + + Send to new AudioFileProcessor instance + - - Send sync on pulse rise - 脉冲起时发送同步 + + Send to new instrument track + - - Send sync on pulse fall - 脉冲结束发送同步 + + (%2Enter) + - - Hard sync oscillator 2 - 硬同步震荡器 2 + + Send to new sample track (Shift + Enter) + - - Reverse sync oscillator 2 - 反向同步震荡器 2 + + Loading sample + - - Sub-osc mix + + Please wait, loading sample for preview... - - Hard sync oscillator 3 + + Error - - Reverse sync oscillator 3 + + %1 does not appear to be a valid %2 file - - - - - Attack - 打进声 + + --- Factory files --- + + + + lmms::gui::FileDialog - - - Rate - 比特率 + + %1 files + - - - Phase + + All audio files - - - Pre-delay - 预延迟 + + Other files + + + + lmms::gui::FlangerControlsDialog - - - Hold - 保持 + + DELAY + - - - Decay - 衰减 + + Delay time: + - - - Sustain - 持续 + + RATE + - - - Release - 释放 + + Period: + - - - Slope + + AMNT - - Mix osc 2 with osc 3 + + Amount: - - Modulate amplitude of osc 3 by osc 2 + + PHASE - - Modulate frequency of osc 3 by osc 2 + + Phase: - - Modulate phase of osc 3 by osc 2 + + FDBK - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Modulation amount - 调制量 + + Feedback amount: + - - - MultitapEchoControlDialog - - Length - 长度 + + NOISE + - - Step length: - 步进长度: + + White noise amount: + - - Dry - 干声 + + Invert + + + + lmms::gui::FloatModelEditorBase - - Dry gain: - 干声增益: + + Set linear + - - Stages - 低通层数 + + Set logarithmic + - - Low-pass stages: + + + Set value - - Swap inputs - 互换输入 + + Please enter a new value between -96.0 dBFS and 6.0 dBFS: + - - Swap left and right input channels for reflections + + Please enter a new value between %1 and %2: - NesInstrument + lmms::gui::FreeBoyInstrumentView - - Channel 1 coarse detune + + Sweep time: - - Channel 1 volume + + Sweep time - - Channel 1 envelope length + + Sweep rate shift amount: - - Channel 1 duty cycle + + Sweep rate shift amount - - Channel 1 sweep amount + + + Wave pattern duty cycle: - - Channel 1 sweep rate + + + Wave pattern duty cycle - - Channel 2 Coarse detune - 通道2音调粗调 + + Square channel 1 volume: + - - Channel 2 Volume - 通道 2 音量 + + Square channel 1 volume + - - Channel 2 envelope length + + + + Length of each step in sweep: - - Channel 2 duty cycle + + + + Length of each step in sweep - - Channel 2 sweep amount + + Square channel 2 volume: - - Channel 2 sweep rate + + Square channel 2 volume - - Channel 3 coarse detune + + Wave pattern channel volume: - - Channel 3 volume + + Wave pattern channel volume - - Channel 4 volume + + Noise channel volume: - - Channel 4 envelope length + + Noise channel volume - - Channel 4 noise frequency + + SO1 volume (Right): - - Channel 4 noise frequency sweep + + SO1 volume (Right) - - Master volume - 主音量 + + SO2 volume (Left): + - - Vibrato - 颤音 + + SO2 volume (Left) + - - - NesInstrumentView - - - - - Volume - 音量 + + Treble: + - - - - Coarse detune - 音高粗调 + + Treble + - - - - Envelope length - 包络线长度 + + Bass: + - - Enable channel 1 - 启用通道 1 + + Bass + - - Enable envelope 1 - 启用包络 1 + + Sweep direction + - - Enable envelope 1 loop - 启用包络 1 循环 + + + + + + Volume sweep direction + - - Enable sweep 1 + + Shift register width - - - Sweep amount + + Channel 1 to SO1 (Right) - - - Sweep rate + + Channel 2 to SO1 (Right) - - - 12.5% Duty cycle - 12.5% 占空比 + + Channel 3 to SO1 (Right) + - - - 25% Duty cycle - 25% 占空比 + + Channel 4 to SO1 (Right) + - - - 50% Duty cycle - 50% 占空比 + + Channel 1 to SO2 (Left) + - - - 75% Duty cycle - 75% 占空比 + + Channel 2 to SO2 (Left) + - - Enable channel 2 - 启用通道 2 + + Channel 3 to SO2 (Left) + - - Enable envelope 2 - 启用包络 2 + + Channel 4 to SO2 (Left) + - - Enable envelope 2 loop - 启用包络 2 循环 + + Wave pattern graph + + + + lmms::gui::GigInstrumentView - - Enable sweep 2 + + + Open GIG file - - Enable channel 3 - 启用通道 3 + + Choose patch + - - Noise Frequency - 噪音频率 + + Gain: + - - Frequency sweep + + GIG Files (*.gig) + + + lmms::gui::GranularPitchShifterControlDialog - - Enable channel 4 - 启用通道 4 + + Grain Size: + - - Enable envelope 4 - 启用包络 4 + + Spray: + - - Enable envelope 4 loop - 启用包络 4 循环 + + Jitter: + - - Quantize noise frequency when using note frequency - 在使用音符频率时,量化噪音频率 + + Twitch: + - - Use note frequency for noise - 对噪音使用音符频率 + + Spray Stereo Spread: + - - Noise mode - 噪音模式 + + Grain Shape: + - - Master volume - 主音量 + + Fade Length: + - - Vibrato - 颤音 + + Feedback: + - - - OpulenzInstrument - - Patch - 音色 + + Minimum Allowed Latency: + - - Op 1 attack + + Density: - - Op 1 decay + + Glide: - - Op 1 sustain + + + Pitch - - Op 1 release + + + Pitch Stereo Spread - - Op 1 level + + Open help window - - Op 1 level scaling + + + Prefilter + + + + + lmms::gui::GuiApplication + + + Working directory + + + + + The LMMS working directory %1 does not exist. Create it now? You can change the directory later via Edit -> Settings. - - Op 1 frequency multiplier + + Preparing UI - - Op 1 feedback + + Preparing song editor - - Op 1 key scaling rate + + Preparing mixer - - Op 1 percussive envelope + + Preparing controller rack - - Op 1 tremolo + + Preparing project notes - - Op 1 vibrato + + Preparing microtuner - - Op 1 waveform + + Preparing pattern editor - - Op 2 attack + + Preparing piano roll - - Op 2 decay + + Preparing automation editor + + + lmms::gui::InstrumentFunctionArpeggioView - - Op 2 sustain + + ARPEGGIO - - Op 2 release + + RANGE - - Op 2 level + + Arpeggio range: - - Op 2 level scaling + + octave(s) - - Op 2 frequency multiplier + + REP - - Op 2 key scaling rate + + Note repeats: - - Op 2 percussive envelope + + time(s) - - Op 2 tremolo + + CYCLE - - Op 2 vibrato + + Cycle notes: - - Op 2 waveform + + note(s) - - FM - FM + + SKIP + - - Vibrato depth + + Skip rate: - - Tremolo depth + + + + % - - - OpulenzInstrumentView - - - Attack - 打击声 + + MISS + - - - Decay - 衰减 + + Miss rate: + - - - Release - 释放 + + TIME + - - - Frequency multiplier - 频率加倍器 + + Arpeggio time: + - - - OscillatorObject - - Osc %1 waveform - Osc %1 波形 + + ms + - - Osc %1 harmonic - Osc %1 泛音 + + GATE + - - - Osc %1 volume - Osc %1 音量 + + Arpeggio gate: + - - - Osc %1 panning - Osc %1 声像 + + Chord: + - - - Osc %1 fine detuning left - 振荡器%1左声道微调 + + Direction: + - - Osc %1 coarse detuning - 振荡器%1音调粗调 + + Mode: + + + + lmms::gui::InstrumentFunctionNoteStackingView - - Osc %1 fine detuning right - 振荡器%1右声道微调 + + STACKING + - - Osc %1 phase-offset - 振荡器%1相位偏移 + + Chord: + - - Osc %1 stereo phase-detuning - 振荡器%1立体相位偏移 + + RANGE + - - Osc %1 wave shape - 振荡器%1波形 + + Chord range: + - - Modulation type %1 - 调制类型 %1 + + octave(s) + - Oscilloscope + lmms::gui::InstrumentMidiIOView - - Oscilloscope + + ENABLE MIDI INPUT - - Click to enable - 点击启用 + + + CHAN + This string must be be short, its width must be less than * width of LCD spin-box of two digits + - - - PatchesDialog - - Qsynth: Channel Preset - Qsynth: 通道预设 + + + VELOC + This string must be be short, its width must be less than * width of LCD spin-box of three digits + - - Bank selector - 音色选择器 + + ENABLE MIDI OUTPUT + - - Bank - + + PROG + This string must be be short, its width must be less than the * width of LCD spin-box of three digits + - - Program selector - 乐器选择器 + + NOTE + This string must be be short, its width must be less than * width of LCD spin-box of three digits + - - Patch - 音色 + + MIDI devices to receive MIDI events from + - - Name - 名称 + + MIDI devices to send MIDI events to + - - OK - 确定 + + VELOCITY MAPPING + - - Cancel - 取消 + + MIDI VELOCITY + + + + + MIDI notes at this velocity correspond to 100% note velocity. + - PatmanView + lmms::gui::InstrumentSoundShapingView - - Open patch + + TARGET - - Loop - 循环 + + FILTER + - - Loop mode - 循环模式 + + FREQ + - - Tune - 调音 + + Cutoff frequency: + - - Tune mode - 调音模式 + + Hz + - - No file selected - 未选择文件 + + Q/RESO + - - Open patch file - 打开音色文件 + + Q/Resonance: + - - Patch-Files (*.pat) - 音色文件 (*.pat) + + Envelopes, LFOs and filters are not supported by the current instrument. + - MidiClipView + lmms::gui::InstrumentTrackView - - Open in piano-roll - 在钢琴窗中打开 + + Mixer channel + - - Set as ghost in piano-roll + + Volume - - Clear all notes - 清除所有音符 + + Volume: + - - Reset name - 重置名称 + + VOL + - - Change name - 修改名称 + + Panning + - - Add steps - 添加音阶 + + Panning: + - - Remove steps - 移除音阶 + + PAN + - - Clone Steps - 复制音阶 + + MIDI + - - - PeakController - - Peak Controller - 峰值控制器 + + Input + + + + + Output + - - Peak Controller Bug - 峰值控制器 Bug + + Open/Close MIDI CC Rack + - - Due to a bug in older version of LMMS, the peak controllers may not be connect properly. Please ensure that peak controllers are connected properly and re-save this file. Sorry for any inconvenience caused. - 在老版本的 LMMS 中, 峰值控制器因为有 bug 而可能没有正确连接。请确保峰值控制器正常连接后再次保存次文件。我们对给你造成的不便深表歉意。 + + %1: %2 + - PeakControllerDialog + lmms::gui::InstrumentTrackWindow - - PEAK - 峰值 + + Volume + - - LFO Controller - LFO 控制器 + + Volume: + - - - PeakControllerEffectControlDialog - - BASE - 基准 + + VOL + - - Base: - 基准值: + + Panning + - - AMNT - 数量 + + Panning: + - - Modulation amount: - 调制量: + + PAN + - - MULT - 增幅 + + Pitch + - - Amount multiplicator: + + Pitch: - - ATCK - 打击 + + cents + - - Attack: - 打击声: + + PITCH + - - DCAY - 衰减 + + Pitch range (semitones) + - - Release: - 释音: + + RANGE + - - TRSH + + Mixer channel - - Treshold: - 阀值: + + CHANNEL + - - Mute output - 输出静音 + + Save current instrument track settings in a preset file + - - Absolute value + + SAVE - - - PeakControllerEffectControls - - Base value - 基准值 + + Envelope, filter & LFO + - - Modulation amount - 调制量 + + Chord stacking & arpeggio + - - Attack - 打进声 + + Effects + - - Release - 释放 + + MIDI + - - Treshold - 阀值 + + Tuning and transposition + - - Mute output - 输出静音 + + Save preset + - - Absolute value + + XML preset file (*.xpf) - - Amount multiplicator + + Plugin - PianoRoll - - - Note Velocity - 音符音量 - - - - Note Panning - 音符声相偏移 - + lmms::gui::InstrumentTuningView - - Mark/unmark current semitone - 标记/取消标记当前半音 + + GLOBAL TRANSPOSITION + - - Mark/unmark all corresponding octave semitones - 标记/取消标记所有对应的八度音的半音 + + Enables the use of global transposition + - - Mark current scale - 标记当前音阶 + + Microtuner is not available for MIDI-based instruments. + - - Mark current chord - 标记当前和弦 + + MICROTUNER + - - Unmark all - 取消标记所有 + + Active scale: + - - Select all notes on this key - 选中所有相同音调的音符 + + + Edit scales and keymaps + - - Note lock - 音符锁定 + + Active keymap: + - - Last note - 上一个音符 + + Import note ranges from keymap + - - No key + + When enabled, the first, last and base notes of this instrument will be overwritten with values specified by the selected keymap. + + + lmms::gui::KickerInstrumentView - - No scale - 无音阶 + + Start frequency: + - - No chord - 没有和弦 + + End frequency: + - - Nudge + + Frequency slope: - - Snap + + Gain: - - Velocity: %1% - 音量:%1% + + Envelope length: + - - Panning: %1% left - 声相:%1% 偏左 + + Envelope slope: + - - Panning: %1% right - 声相:%1% 偏右 + + Click: + - - Panning: center - 声相:居中 + + Noise: + - - Glue notes failed + + Start distortion: - - Please select notes to glue first. + + End distortion: + + + lmms::gui::LOMMControlDialog - - Please open a clip by double-clicking on it! - 双击打开片段! + + Depth: + - - - Please enter a new value between %1 and %2: - 请输入一个介于 %1 和 %2 的值: + + Compression amount for all bands + - - - PianoRollWindow - - Play/pause current clip (Space) - 播放/暂停当前片段(空格) + + Time: + - - Record notes from MIDI-device/channel-piano - 从 MIDI 设备/通道钢琴(channel-piano) 录制音符 + + Attack/release scaling for all bands + - - Record notes from MIDI-device/channel-piano while playing song or BB track - 一边从 MIDI 设备/通道钢琴(channel-piano) 录制音符一边播放 + + Input Volume: + - - Record notes from MIDI-device/channel-piano, one step at the time + + Input volume - - Stop playing of current clip (Space) - 停止当前片段(空格) + + Output Volume: + - - Edit actions - 编辑功能 + + Output volume + - - Draw mode (Shift+D) - 绘制模式 (Shift+D) + + Upward Depth: + - - Erase mode (Shift+E) - 擦除模式 (Shift+E) + + Upward compression amount for all bands + - - Select mode (Shift+S) - 选择模式 (Shift+S) + + Downward Depth: + - - Pitch Bend mode (Shift+T) + + Downward compression amount for all bands - - Quantize - 量化 + + High/Mid Crossover + - - Quantize positions + + Mid/Low Crossover - - Quantize lengths + + High/mid band split - - File actions + + Mid/low band split - - Import clip + + Enable High Band - - - Export clip + + Enable Mid Band - - Copy paste controls - 复制粘贴控制 + + Enable Low Band + - - Cut (%1+X) + + High Input Volume: - - Copy (%1+C) + + Input volume for high band - - Paste (%1+V) + + Mid Input Volume: - - Timeline controls - 时间线控制 + + Input volume for mid band + - - Glue + + Low Input Volume: - - Knife + + Input volume for low band - - Fill + + High Output Volume: - - Cut overlaps + + Output volume for high band - - Min length as last + + Mid Output Volume: - - Max length as last + + Output volume for mid band - - Zoom and note controls - 缩放和音符控制 + + Low Output Volume: + - - Horizontal zooming - 水平缩放 + + Output volume for low band + - - Vertical zooming - 垂直缩放 + + Above Threshold High + - - Quantization - 量化控制 + + Downward compression threshold for high band + - - Note length + + Above Threshold Mid - - Key + + Downward compression threshold for mid band - - Scale + + Above Threshold Low - - Chord + + Downward compression threshold for low band - - Snap mode + + Above Ratio High - - Clear ghost notes + + Downward compression ratio for high band - - - Piano-Roll - %1 - 钢琴窗 - %1 + + Above Ratio Mid + - - - Piano-Roll - no clip - 钢琴窗 - 没有片段 + + Downward compression ratio for mid band + - - - XML clip file (*.xpt *.xptz) + + Above Ratio Low - - Export clip success + + Downward compression ratio for low band - - Clip saved to %1 + + Below Threshold High - - Import clip. + + Upward compression threshold for high band - - You are about to import a clip, this will overwrite your current clip. Do you want to continue? + + Below Threshold Mid - - Open clip + + Upward compression threshold for mid band - - Import clip success + + Below Threshold Low - - Imported clip %1! + + Upward compression threshold for low band - - - PianoView - - Base note - 基本音 + + Below Ratio High + - - First note + + Upward compression ratio for high band - - Last note - 上一个音符 + + Below Ratio Mid + - - - Plugin - - Plugin not found - 未找到插件 + + Upward compression ratio for mid band + - - The plugin "%1" wasn't found or could not be loaded! -Reason: "%2" - 插件“%1”无法找到或无法载入! -原因:%2 + + Below Ratio Low + - - Error while loading plugin - 载入插件时发生错误 + + Upward compression ratio for low band + - - Failed to load plugin "%1"! - 载入插件“%1”失败! + + Attack High: + - - - PluginBrowser - - Instrument Plugins + + Attack time for high band - - Instrument browser - 乐器浏览器 + + Attack Mid: + - - Drag an instrument into either the Song-Editor, the Beat+Bassline Editor or into an existing instrument track. - 将乐器插件拖入歌曲编辑器, 节拍低音线编辑器, 或者现有的乐器轨道。 + + Attack time for mid band + - - no description - 没有描述 + + Attack Low: + - - A native amplifier plugin - 原生增益插件 + + Attack time for low band + - - Simple sampler with various settings for using samples (e.g. drums) in an instrument-track - 简单地在乐器栏使用采样(比如鼓音源), 同时也提供多种设置 + + Release High: + - - Boost your bass the fast and simple way + + Release time for high band - - Customizable wavetable synthesizer - 可自定制的波表合成器 + + Release Mid: + - - An oversampling bitcrusher + + Release time for mid band - - Carla Patchbay Instrument - Carla Patchbay 乐器 + + Release Low: + - - Carla Rack Instrument - Carla Rack 乐器 + + Release time for low band + - - A dynamic range compressor. + + RMS Time: - - A 4-band Crossover Equalizer - 一种 四波段交叉均衡器 + + RMS size for sidechain signal (set to 0 for Peak mode) + - - A native delay plugin - 原生的衰减插件 + + Knee: + - - A Dual filter plugin + + Knee size for all compressors - - plugin for processing dynamics in a flexible way + + Range: - - A native eq plugin - 原生的 EQ 插件 + + Maximum gain increase for all bands + - - A native flanger plugin - 一个原生的 镶边 (Flanger) 插件 + + Balance: + - - Emulation of GameBoy (TM) APU - GameBoy (TM) APU 模拟器 + + Bias input volume towards one channel + - - Player for GIG files - 播放 GIG 文件的播放器 + + Scale output volume with Depth + - - Filter for importing Hydrogen files into LMMS - 导入 Hydrogen 工程文件到 LMMS 的解析器 + + Scale output volume with Depth parameter + - - Versatile drum synthesizer - 多功能鼓合成器 + + Stereo Link + - - List installed LADSPA plugins - 列出已安装的 LADSPA 插件 + + Apply same gain change to both channels + - - plugin for using arbitrary LADSPA-effects inside LMMS. - 在 LMMS 中使用任意 LADSPA 效果的插件。 + + Auto Time: + - - Incomplete monophonic imitation TB-303 - 对单音 TB-303 的不完整的模拟器 + + Speed up attack and release times when transients occur + - - plugin for using arbitrary LV2-effects inside LMMS. + + Mix: - - plugin for using arbitrary LV2 instruments inside LMMS. + + Wet/Dry of all bands - - Filter for exporting MIDI-files from LMMS - 从 LMMS 导出 MIDI 文件的生成器 + + Feedback + - - Filter for importing MIDI-files into LMMS - 导入 MIDI 文件到 LMMS 的解析器 + + Use output as sidechain signal instead of input + - - Monstrous 3-oscillator synth with modulation matrix - 带 3 个振荡器和调制矩阵的能发出像怪兽一样声音的合成器 + + Mid/Side + - - A multitap echo delay plugin + + Compress mid/side channels instead of left/right - - A NES-like synthesizer - 类似于 NES 的合成器 + + + Suppress upward compression for side band + - - 2-operator FM Synth + + + Lookahead - - Additive Synthesizer for organ-like sounds + + Lookahead length - - GUS-compatible patch instrument - GUS 兼容音色的乐器 + + Clear all parameters + + + + lmms::gui::LadspaBrowserView - - Plugin for controlling knobs with sound peaks + + + Available Effects - - Reverb algorithm by Sean Costello - Sean Costello 发明的混响算法 + + + Unavailable Effects + - - Player for SoundFont files - 在工程中使用SoundFont + + + Instruments + - - LMMS port of sfxr - sfxr 的 LMMS 移植版本 + + + Analysis Tools + - - Emulation of the MOS6581 and MOS8580 SID. -This chip was used in the Commodore 64 computer. - 模拟 MOS6581 和 MOS8580 SID 的模拟器 -这些芯片曾在 Commodore 64 电脑上用过。 + + + Don't know + - - A graphical spectrum analyzer. + + Type: + + + lmms::gui::LadspaControlDialog - - Plugin for enhancing stereo separation of a stereo input file + + Link Channels - - Plugin for freely manipulating stereo output + + Channel + + + lmms::gui::LadspaControlView - - Tuneful things to bang on + + Link channels - - Three powerful oscillators you can modulate in several ways - 三个可以任你调制的强大振荡器 + + Value: + + + + lmms::gui::LadspaDescription - - A stereo field visualizer. + + Plugins - - VST-host for using VST(i)-plugins within LMMS - LMMS的VST(i)插件宿主 + + Description + - - Vibrating string modeler + + Name: - - plugin for using arbitrary VST effects inside LMMS. - 在 LMMS 中使用任意 VST 效果的插件。 + + Maker: + - - 4-oscillator modulatable wavetable synth - 有四个振荡器的可调制波表合成器 + + Copyright: + - - plugin for waveshaping + + Requires Real Time: - - Mathematical expression parser + + + + Yes - - Embedded ZynAddSubFX - 内置的 ZynAddSubFX + + + + No + - - - PluginDatabaseW - - Carla - Add New + + Real Time Capable: - - Format + + In Place Broken: - - Internal + + Channels In: - - LADSPA + + Channels Out: + + + lmms::gui::LadspaMatrixControlDialog - - DSSI + + Link Channels - - LV2 + + Link - - VST2 + + Channel %1 - - VST3 + + Link channels + + + lmms::gui::LadspaPortDialog - - AU + + Ports - - Sound Kits + + Name - - Type - 类型 + + Rate + - - Effects - 效果 + + Direction + - - Instruments - 乐器插件 + + Type + - - MIDI Plugins + + Min < Default < Max - - Other/Misc + + Logarithmic - - Architecture + + SR Dependent - - Native + + Audio - - Bridged + + Control - - Bridged (Wine) + + Input - - Requirements + + Output - - With Custom GUI + + Toggled - - With CV Ports + + Integer - - Real-time safe only + + Float - - Stereo only + + + Yes + + + lmms::gui::Lb302SynthView - - With Inline Display + + Cutoff Freq: - - Favorites only + + Resonance: - - (Number of Plugins go here) + + Env Mod: - - &Add Plugin + + Decay: - - Cancel - 取消 + + 303-es-que, 24dB/octave, 3 pole filter + - - Refresh + + Slide Decay: - - Reset filters + + DIST: - - - - - - - - - - - - - - - - - TextLabel + + Saw wave - - Format: + + Click here for a saw-wave. - - Architecture: + + Triangle wave - - Type: - 类型: + + Click here for a triangle-wave. + - - MIDI Ins: + + Square wave - - Audio Ins: + + Click here for a square-wave. - - CV Outs: + + Rounded square wave - - MIDI Outs: + + Click here for a square-wave with a rounded end. - - Parameter Ins: + + Moog wave - - Parameter Outs: + + Click here for a moog-like wave. - - Audio Outs: + + Sine wave - - CV Ins: + + Click for a sine-wave. - - UniqueID: + + + White noise wave - - Has Inline Display: + + Click here for an exponential wave. - - Has Custom GUI: + + Click here for white-noise. - - Is Synth: + + Bandlimited saw wave - - Is Bridged: + + Click here for bandlimited saw wave. - - Information + + Bandlimited square wave - - Name - 名称 - - - - Label/URI + + Click here for bandlimited square wave. - - Maker + + Bandlimited triangle wave - - Binary/Filename + + Click here for bandlimited triangle wave. - - Focus Text Search + + Bandlimited moog saw wave - - Ctrl+F + + Click here for bandlimited moog saw wave. - PluginEdit + lmms::gui::LcdFloatSpinBox - - Plugin Editor + + Set value - - Edit - 编辑 - - - - Control - 控制 - - - - MIDI Control Channel: + + Please enter a new value between %1 and %2: + + + lmms::gui::LcdSpinBox - - N + + Set value - - Output dry/wet (100%) + + Please enter a new value between %1 and %2: + + + lmms::gui::LeftRightNav - - Output volume (100%) + + + + Previous - - Balance Left (0%) + + + + Next - - - Balance Right (0%) + + Previous (%1) - - Use Balance + + Next (%1) + + + lmms::gui::LfoControllerDialog - - Use Panning + + LFO - - Settings - 设置 + + BASE + - - Use Chunks + + Base: - - Audio: + + FREQ - - Fixed-Size Buffer + + LFO frequency: - - Force Stereo (needs reload) + + AMNT - - MIDI: + + Modulation amount: - - Map Program Changes + + PHS - - Send Bank/Program Changes + + Phase offset: - - Send Control Changes + + degrees - - Send Channel Pressure + + Sine wave - - Send Note Aftertouch + + Triangle wave - - Send Pitchbend + + Saw wave - - Send All Sound/Notes Off + + Square wave - - -Plugin Name - + + Moog saw wave - - Program: - 工程 + + Exponential wave + - - MIDI Program: + + White noise - - Save State + + User-defined shape. +Double click to pick a file. - - Load State + + Multiply modulation frequency by 1 - - Information + + Multiply modulation frequency by 100 - - Label/URI: + + Divide modulation frequency by 100 + + + lmms::gui::LfoGraph - - Name: + + %1 Hz + + + lmms::gui::MainWindow - - Type: - 类型: + + Configuration file + - - Maker: + + Error while parsing configuration file at line %1:%2: %3 - - Copyright: + + Could not open file - - Unique ID: + + Could not open file %1 for writing. +Please make sure you have write permission to the file and the directory containing the file and try again! - - - PluginFactory - - Plugin not found. - 未找到插件。 + + Project recovery + - - LMMS plugin %1 does not have a plugin descriptor named %2! - LMMS插件 %1 没有一个插件描述符命名为 %2 + + There is a recovery file present. It looks like the last session did not end properly or another instance of LMMS is already running. Do you want to recover the project of this session? + - - - PluginParameter - - Form + + + Recover - - Parameter Name + + Recover the file. Please don't run multiple instances of LMMS when you do this. - - ... + + + Discard - - - PluginRefreshW - - Carla - Refresh + + Launch a default session and delete the restored files. This is not reversible. - - Search for new... + + Version %1 - - LADSPA + + Preparing plugin browser - - DSSI + + Preparing file browsers - - LV2 + + My Projects - - VST2 + + My Samples - - VST3 + + My Presets - - AU + + My Home - - SF2/3 + + Root Directory - - SFZ + + Volumes - - Native + + My Computer - - POSIX 32bit + + Loading background picture - - POSIX 64bit + + &File - - Windows 32bit + + &New - - Windows 64bit + + &Open... - - Available tools: + + &Save - - python3-rdflib (LADSPA-RDF support) + + Save &As... - - carla-discovery-win64 + + Save as New &Version - - carla-discovery-native + + Save as default template - - carla-discovery-posix32 + + Import... - - carla-discovery-posix64 + + E&xport... - - carla-discovery-win32 + + E&xport Tracks... - - Options: + + Export &MIDI... - - Carla will run small processing checks when scanning the plugins (to make sure they won't crash). -You can disable these checks to get a faster scanning time (at your own risk). + + &Quit - - Run processing checks while scanning + + &Edit - - Press 'Scan' to begin the search + + Undo - - Scan + + Redo - - >> Skip + + Scales and keymaps - - Close - 关闭 + + Settings + - - - PluginWidget - - - - - - Frame + + &View - - Enable + + &Tools - - On/Off - 开/关 + + &Help + - - - - - PluginName + + Online Help - - MIDI - MIDI + + Help + - - AUDIO IN + + About - - AUDIO OUT + + Create new project - - GUI + + Create new project from template - - Edit - 编辑 + + Open existing project + - - - Remove - 移除 + + + Recently opened projects + - - Plugin Name + + Save current project - - Preset: + + Export current project - - - ProjectNotes - - Project Notes - 显示/隐藏工程注释 + + Metronome + - - Enter project notes here + + + Song Editor - - Edit Actions - 编辑功能 + + + Pattern Editor + - - &Undo - 撤销(&U) + + + Piano Roll + - - %1+Z - %1+Z + + + Automation Editor + - - &Redo - 重做(&R) + + + Mixer + - - %1+Y - %1+Y + + Show/hide controller rack + - - &Copy - 复制(&C) + + Show/hide project notes + - - %1+C - %1+C + + Untitled + - - Cu&t - 剪切(&T) + + Recover session. Please save your work! + - - %1+X - %1+X + + LMMS %1 + - - &Paste - 粘贴(&P) + + Recovered project not saved + - - %1+V - %1+V + + This project was recovered from the previous session. It is currently unsaved and will be lost if you don't save it. Do you want to save it now? + - - Format Actions - 格式功能 + + Project not saved + - - &Bold - 加粗(&B) + + The current project was modified since last saving. Do you want to save it now? + - - %1+B - %1+B + + Open Project + - - &Italic - 斜体(&I) + + LMMS (*.mmp *.mmpz) + - - %1+I - %1+I + + Save Project + - - &Underline - 下划线(&U) + + LMMS Project + - - %1+U - %1+U + + LMMS Project Template + - - &Left - 左对齐(&L) + + Save project template + - - %1+L - %1+L + + Overwrite default template? + - - C&enter - 居中(&E) + + This will overwrite your current default template. + - - %1+E - %1+E + + Help not available + - - &Right - 右对齐(&R) + + Currently there's no help available in LMMS. +Please visit http://lmms.sf.net/wiki for documentation on LMMS. + - - %1+R - %1+R + + Controller Rack + - - &Justify - 匀齐(&J) + + Project Notes + - - %1+J - %1+J + + Fullscreen + - - &Color... - 颜色(&C)... + + Volume as dBFS + - - - ProjectRenderer - - WAV (*.wav) + + Smooth scroll - - FLAC (*.flac) + + Enable note labels in piano roll - - OGG (*.ogg) + + MIDI File (*.mid) - - MP3 (*.mp3) + + + untitled - - - QObject - - Reload Plugin + + + Select file for project-export... - - Show GUI - 显示图形界面 + + Select directory for writing exported tracks... + - - Help - 帮助 + + Save project + - - - QWidget - - - - - Name: - 名称: + + Project saved + - - URI: + + The project %1 is now saved. - - - - Maker: - 制作者: + + Project NOT saved. + - - - - Copyright: - 版权: + + The project %1 was not saved! + - - - Requires Real Time: - 要求实时: + + Import file + - - - - - - - Yes - + + MIDI sequences + - - - - - - - No - + + Hydrogen projects + - - - Real Time Capable: - 是否支持实时: + + All file types + + + + lmms::gui::MalletsInstrumentView - - - In Place Broken: - 被损坏: + + Instrument + - - - Channels In: - 输入通道: + + Spread + - - - Channels Out: - 输出通道: + + Spread: + - - File: %1 - 文件:%1 + + Random + - - File: - 文件: + + Random: + - - - RecentProjectsMenu - - &Recently Opened Projects - 最近打开的工程(&R) + + Missing files + - - - RenameDialog - - Rename... - 重命名... + + Your Stk-installation seems to be incomplete. Please make sure the full Stk-package is installed! + - - - ReverbSCControlDialog - - Input - 输入 + + Hardness + - - Input gain: - 输入增益: + + Hardness: + - - Size + + Position - - Size: + + Position: - - Color + + Vibrato gain - - Color: + + Vibrato gain: - - Output - 输出 + + Vibrato frequency + - - Output gain: - 输出增益: + + Vibrato frequency: + - - - ReverbSCControls - - Input gain - 输入增益 + + Stick mix + - - Size + + Stick mix: - - Color + + Modulator - - Output gain - 输出增益 + + Modulator: + - - - SaControls - - Pause + + Crossfade - - Reference freeze + + Crossfade: - - Waterfall + + LFO speed - - Averaging + + LFO speed: - - Stereo - 双声道 + + LFO depth + - - Peak hold + + LFO depth: - - Logarithmic frequency + + ADSR - - Logarithmic amplitude + + ADSR: - - Frequency range + + Pressure - - Amplitude range + + Pressure: - - FFT block size + + Speed - - FFT window type + + Speed: + + + lmms::gui::ManageVSTEffectView - - Peak envelope resolution + + - VST parameter control - - Spectrum display resolution + + VST sync - - Peak decay multiplier + + + Automated - - Averaging weight + + Close + + + lmms::gui::ManageVestigeInstrumentView - - Waterfall history size + + + - VST plugin control - - Waterfall gamma correction + + VST Sync - - FFT window overlap + + + Automated - - FFT zero padding + + Close + + + lmms::gui::MeterDialog - - - Full (auto) + + + Meter Numerator - - - - Audible + + Meter numerator - - Bass - 低音 + + + Meter Denominator + - - Mids + + Meter denominator - - High + + TIME SIG + + + lmms::gui::MicrotunerConfig - - Extended + + Selected scale slot - - Loud + + Selected keymap slot - - Silent + + + First key - - (High time res.) + + + Last key - - (High freq. res.) + + + Middle key - - Rectangular (Off) + + + Base key - - - Blackman-Harris (Default) + + + + Base note frequency - - Hamming + + Microtuner Configuration - - Hanning + + Scale slot to edit: - - - SaControlsDialog - - Pause + + Scale description. Cannot start with "!" and cannot contain a newline character. - - Pause data acquisition + + + Load - - Reference freeze + + + Save - - Freeze current input as a reference / disable falloff in peak-hold mode. + + Load scale definition from a file. - - Waterfall + + Save scale definition to a file. - - Display real-time spectrogram + + Enter intervals on separate lines. Numbers containing a decimal point are treated as cents. +Other inputs are treated as integer ratios and must be in the form of 'a/b' or 'a'. +Unity (0.0 cents or ratio 1/1) is always present as a hidden first value; do not enter it manually. - - Averaging + + Apply scale changes - - Enable exponential moving average + + Verify and apply changes made to the selected scale. To use the scale, select it in the settings of a supported instrument. - - Stereo - 双声道 + + Keymap slot to edit: + - - Display stereo channels separately + + Keymap description. Cannot start with "!" and cannot contain a newline character. - - Peak hold + + Load key mapping definition from a file. - - Display envelope of peak values + + Save key mapping definition to a file. - - Logarithmic frequency + + Enter key mappings on separate lines. Each line assigns a scale degree to a MIDI key, +starting with the middle key and continuing in sequence. +The pattern repeats for keys outside of the explicit keymap range. +Multiple keys can be mapped to the same scale degree. +Enter 'x' if you wish to leave the key disabled / not mapped. - - Switch between logarithmic and linear frequency scale + + FIRST - - - Frequency range + + First MIDI key that will be mapped - - Logarithmic amplitude + + LAST - - Switch between logarithmic and linear amplitude scale + + Last MIDI key that will be mapped - - - Amplitude range + + MIDDLE - - Envelope res. + + First line in the keymap refers to this MIDI key - - Increase envelope resolution for better details, decrease for better GUI performance. + + BASE N. - - - Draw at most + + Base note frequency will be assigned to this MIDI key - - envelope points per pixel + + BASE NOTE FREQ - - Spectrum res. + + Apply keymap changes - - Increase spectrum resolution for better details, decrease for better GUI performance. + + Verify and apply changes made to the selected key mapping. To use the mapping, select it in the settings of a supported instrument. - - spectrum points per pixel + + Scale parsing error - - Falloff factor + + Scale name cannot start with an exclamation mark - - Decrease to make peaks fall faster. + + Scale name cannot contain a new-line character - - Multiply buffered value by + + Interval defined in cents cannot be converted to a number - - Averaging weight + + Numerator of an interval defined as a ratio cannot be converted to a number - - Decrease to make averaging slower and smoother. + + Denominator of an interval defined as a ratio cannot be converted to a number - - New sample contributes + + Interval defined as a ratio cannot be negative - - Waterfall height + + Keymap parsing error - - Increase to get slower scrolling, decrease to see fast transitions better. Warning: medium CPU usage. + + Keymap name cannot start with an exclamation mark - - Keep + + Keymap name cannot contain a new-line character - - lines + + Scale degree cannot be converted to a whole number - - Waterfall gamma + + Scale degree cannot be negative - - Decrease to see very weak signals, increase to get better contrast. + + Invalid keymap - - Gamma value: + + Base key is not mapped to any scale degree. No sound will be produced as there is no way to assign reference frequency to any note. - - Window overlap + + Open scale - - Increase to prevent missing fast transitions arriving near FFT window edges. Warning: high CPU usage. + + + Scala scale definition (*.scl) - - Each sample processed + + Scale load failure - - times + + + Unable to open selected file. - - Zero padding + + Open keymap - - Increase to get smoother-looking spectrum. Warning: high CPU usage. + + + Scala keymap definition (*.kbm) - - Processing buffer is + + Keymap load failure - - steps larger than input block + + Save scale - - Advanced settings + + Scale save failure - - Access advanced settings + + + Unable to open selected file for writing. - - - FFT block size + + Save keymap - - - FFT window type + + Keymap save failure - SampleBuffer + lmms::gui::MidiCCRackView - - Fail to open file + + + MIDI CC Rack - %1 - - Audio files are limited to %1 MB in size and %2 minutes of playing time + + MIDI CC Knobs: - - Open audio file - 打开音频文件 + + CC %1 + + + + lmms::gui::MidiClipView - - All Audio-Files (*.wav *.ogg *.ds *.flac *.spx *.voc *.aif *.aiff *.au *.raw) - 所有音频文件 (*.wav *.ogg *.ds *.flac *.spx *.voc *.aif *.aiff *.au *.raw) + + + Transpose + - - Wave-Files (*.wav) - Wave波形文件 (*.wav) + + Semitones to transpose by: + - - OGG-Files (*.ogg) - OGG-文件 (*.ogg) + + Open in piano-roll + - - DrumSynth-Files (*.ds) - DrumSynth-文件 (*.ds) + + Set as ghost in piano-roll + - - FLAC-Files (*.flac) - FLAC-文件 (*.flac) + + Set as ghost in automation editor + - - SPEEX-Files (*.spx) - SPEEX-文件 (*.spx) + + Clear all notes + - - VOC-Files (*.voc) - VOC-文件 (*.voc) + + Reset name + - - AIFF-Files (*.aif *.aiff) - AIFF-文件 (*.aif *.aiff) + + Change name + - - AU-Files (*.au) - AU-文件 (*.au) + + Add steps + - - RAW-Files (*.raw) - RAW-文件 (*.raw) + + Remove steps + - - - SampleClipView - - Double-click to open sample + + Clone Steps + + + lmms::gui::MidiSetupWidget - - Delete (middle mousebutton) - 删除 (鼠标中键) + + Device + + + + lmms::gui::MixerChannelLcdSpinBox - - Delete selection (middle mousebutton) + + Assign to: - - Cut - 剪切 + + New Mixer Channel + - - Cut selection + + Please enter a new value between %1 and %2: - - Copy - 复制 + + Set value + + + + lmms::gui::MixerChannelView - - Copy selection + + Channel send amount - - Paste - 粘贴 + + Mute + - - Mute/unmute (<%1> + middle click) - 静音/取消静音 (<%1> + 鼠标中键) + + Mute this channel + - - Mute/unmute selection (<%1> + middle click) + + Solo - - Reverse sample - 反转采样 + + Solo this channel + - - Set clip color + + Fader %1 - - Use track color + + Move &left - - - SampleTrack - - Volume - 音量 + + Move &right + - - Panning - 声相 + + Rename &channel + - - Mixer channel - 效果通道 + + R&emove channel + - - - Sample track - 采样轨道 + + Remove &unused channels + - - - SampleTrackView - - Track volume - 轨道音量 + + Color + - - Channel volume: - 通道音量: + + Change + - - VOL - 音量 + + Reset + - - Panning - 声相 + + Pick random + - - Panning: - 声相: + + This Mixer Channel is being used. +Are you sure you want to remove this channel? + +Warning: This operation can not be undone. + - - PAN - 声相 + + Confirm removal + - - Channel %1: %2 - 效果 %1: %2 + + Don't ask again + - SampleTrackWindow + lmms::gui::MixerView - - GENERAL SETTINGS - 常规设置 + + Mixer + + + + lmms::gui::MonstroView - - Sample volume + + Operators view - - Volume: - 音量: + + Matrix view + - - VOL - 音量 + + + + Volume + - + + + Panning - 声相 - - - - Panning: - 声相: - - - - PAN - 声相 + - - Mixer channel - 效果通道 + + + + Coarse detune + - - CHANNEL - 效果 + + + + semitones + - - - SaveOptionsWidget - - Discard MIDI connections + + + Fine tune left - - Save As Project Bundle (with resources) + + + + + cents - - - SetupDialog - - Reset to default value + + + Fine tune right - - Use built-in NaN handler + + + + Stereo phase offset - - Settings - 设置 + + + + + + deg + - - - General + + Pulse width - - Graphical user interface (GUI) + + Send sync on pulse rise - - Display volume as dBFS - 以 dBFS 为单位显示音量 + + Send sync on pulse fall + - - Enable tooltips - 启用工具提示 + + Hard sync oscillator 2 + - - Enable master oscilloscope by default + + Reverse sync oscillator 2 - - Enable all note labels in piano roll + + Sub-osc mix - - Enable compact track buttons + + Hard sync oscillator 3 - - Enable one instrument-track-window mode + + Reverse sync oscillator 3 - - Show sidebar on the right-hand side + + + + + Attack - - Let sample previews continue when mouse is released + + + Rate - - Mute automation tracks during solo + + + Phase - - Show warning when deleting tracks + + + Pre-delay - - Projects - 项目 + + + Hold + - - Compress project files by default + + + Decay - - Create a backup file when saving a project + + + Sustain - - Reopen last project on startup + + + Release - - Language - 语言 + + + Slope + - - - Performance + + Mix osc 2 with osc 3 - - Autosave + + Modulate amplitude of osc 3 by osc 2 - - Enable autosave + + Modulate frequency of osc 3 by osc 2 - - Allow autosave while playing + + Modulate phase of osc 3 by osc 2 - - User interface (UI) effects vs. performance + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Modulation amount + + + lmms::gui::MultitapEchoControlDialog - - Smooth scroll in song editor + + Length - - Display playback cursor in AudioFileProcessor + + Step length: - - Plugins - 插件 + + Dry + - - VST plugins embedding: + + Dry gain: - - No embedding - 单独窗口 + + Stages + - - Embed using Qt API - 使用 Qt API + + Low-pass stages: + - - Embed using native Win32 API - 使用原生 Win32 API + + Swap inputs + - - Embed using XEmbed protocol - 使用 XEmbed 协议 + + Swap left and right input channels for reflections + + + + lmms::gui::NesInstrumentView - - Keep plugin windows on top when not embedded + + + + + Volume - - Sync VST plugins to host playback - 同步 VST 插件和主机回放 + + + + Coarse detune + - - Keep effects running even without input - 在没有输入时也运行音频效果 + + + + Envelope length + - - - Audio - 音频 + + Enable channel 1 + - - Audio interface + + Enable envelope 1 - - HQ mode for output audio device + + Enable envelope 1 loop - - Buffer size + + Enable sweep 1 - - - MIDI - MIDI + + + Sweep amount + - - MIDI interface + + + Sweep rate - - Automatically assign MIDI controller to selected track + + + 12.5% Duty cycle - - LMMS working directory - LMMS工作目录 + + + 25% Duty cycle + - - VST plugins directory + + + 50% Duty cycle - - LADSPA plugins directories + + + 75% Duty cycle - - SF2 directory - SF2 目录 + + Enable channel 2 + - - Default SF2 + + Enable envelope 2 - - GIG directory - GIG 目录 + + Enable envelope 2 loop + - - Theme directory + + Enable sweep 2 - - Background artwork - 背景图片 + + Enable channel 3 + - - Some changes require restarting. + + Noise Frequency - - Autosave interval: %1 + + Frequency sweep - - Choose the LMMS working directory + + Enable channel 4 - - Choose your VST plugins directory + + Enable envelope 4 - - Choose your LADSPA plugins directory + + Enable envelope 4 loop - - Choose your default SF2 + + Quantize noise frequency when using note frequency - - Choose your theme directory + + Use note frequency for noise - - Choose your background picture + + Noise mode - - - Paths - 路径 + + Master volume + - - OK - 确定 + + Vibrato + + + + lmms::gui::OpulenzInstrumentView - - Cancel - 取消 + + + Attack + - - Frames: %1 -Latency: %2 ms - 帧数: %1 -延迟: %2 毫秒 + + + Decay + - - Choose your GIG directory - 选择 GIG 目录 + + + Release + - - Choose your SF2 directory - 选择 SF2 目录 + + + Frequency multiplier + + + + lmms::gui::OrganicInstrumentView - - minutes - 分钟 + + Distortion: + - - minute - 分钟 + + Volume: + - - Disabled + + Randomise - - - SidInstrument - - Cutoff frequency - 切除频率 + + + Osc %1 waveform: + - - Resonance - 共鸣 + + Osc %1 volume: + - - Filter type - 过滤器类型 + + Osc %1 panning: + - - Voice 3 off - 声音 3 关 + + Osc %1 stereo detuning + - - Volume - 音量 + + cents + - - Chip model - 芯片型号 + + Osc %1 harmonic: + - SidInstrumentView + lmms::gui::Oscilloscope - - Volume: - 音量: + + Oscilloscope + - - Resonance: - 共鸣: + + Click to enable + + + + lmms::gui::PatmanView - - - Cutoff frequency: - 频谱刀频率: + + Open patch + - - High-pass filter + + Loop - - Band-pass filter + + Loop mode - - Low-pass filter + + Tune - - Voice 3 off + + Tune mode - - MOS6581 SID - MOS6581 SID + + No file selected + - - MOS8580 SID - MOS8580 SID + + Open patch file + - - - Attack: - 打击声: + + Patch-Files (*.pat) + + + + lmms::gui::PatternClipView - - - Decay: - 衰减: + + Open in Pattern Editor + - - Sustain: - 振幅持平: + + Reset name + - - - Release: - 释音: + + Change name + + + + lmms::gui::PatternEditorWindow - - Pulse Width: + + Pattern Editor - - Coarse: + + Play/pause current pattern (Space) - - Pulse wave + + Stop playback of current pattern (Space) - - Triangle wave - 三角波 + + Pattern selector + - - Saw wave - 锯齿波 + + Track and step actions + - - Noise - 噪音 + + New pattern + - - Sync - 同步 + + Clone pattern + - - Ring modulation + + Add sample-track - - Filtered + + Add automation-track - - Test - 测试 + + Remove steps + - - Pulse width: + + Add steps - - - SideBarWidget - - Close - 关闭 + + Clone Steps + - Song - - - Tempo - 节奏 - - - - Master volume - 主音量 - - - - Master pitch - 主音高 - + lmms::gui::PeakControllerDialog - - Aborting project load + + PEAK - - Project file contains local paths to plugins, which could be used to run malicious code. + + LFO Controller + + + lmms::gui::PeakControllerEffectControlDialog - - Can't load project: Project file contains local paths to plugins. + + BASE - - LMMS Error report - LMMS 错误报告 + + Base: + - - (repeated %1 times) + + AMNT - - The following errors occurred while loading: + + Modulation amount: - - - SongEditor - - Could not open file - 无法打开文件 + + MULT + - - Could not open file %1. You probably have no permissions to read this file. - Please make sure to have at least read permissions to the file and try again. - 无法打开 %1 。或许没有权限读此文件。 -请确保您拥有对此文件的读权限,然后重试。 + + Amount multiplicator: + - - Operation denied + + ATCK - - A bundle folder with that name already eists on the selected path. Can't overwrite a project bundle. Please select a different name. + + Attack: - - - - Error - 错误 + + DCAY + - - Couldn't create bundle folder. + + Release: - - Couldn't create resources folder. + + TRSH - - Failed to copy resources. + + Treshold: - - Could not write file - 无法写入文件 + + Mute output + - - Could not open %1 for writing. You probably are not permitted towrite to this file. Please make sure you have write-access to the file and try again. + + Absolute value + + + lmms::gui::PeakIndicator - - This %1 was created with LMMS %2 + + -inf + + + lmms::gui::PianoRoll - - Error in file - 文件错误 + + Note Velocity + - - The file %1 seems to contain errors and therefore can't be loaded. - 文件 %1 似乎包含错误,无法被加载。 + + Note Panning + - - Version difference - 版本差异 + + Mark/unmark current semitone + - - template - 模板 + + Mark/unmark all corresponding octave semitones + - - project - 工程文件 + + Mark current scale + - - Tempo - 节奏 + + Mark current chord + - - TEMPO + + Unmark all - - Tempo in BPM + + Select all notes on this key - - High quality mode - 高质量模式 + + Note lock + - - - - Master volume - 主音量 + + Last note + - - - - Master pitch - 主音高 + + No key + - - Value: %1% - 值: %1% + + No scale + - - Value: %1 semitones - 值: %1 半音程 + + No chord + - - - SongEditorWindow - - Song-Editor - 歌曲编辑器 + + Nudge + - - Play song (Space) - 播放歌曲(空格) + + Snap + - - Record samples from Audio-device - 从音频设备录制样本 + + Velocity: %1% + - - Record samples from Audio-device while playing song or BB track - 在播放歌曲或BB轨道时从音频设备录入样本 + + Panning: %1% left + - - Stop song (Space) - 停止歌曲(空格) + + Panning: %1% right + - - Track actions - 轨道动作 + + Panning: center + - - Add beat/bassline - 添加节拍/Bassline + + Glue notes failed + - - Add sample-track - 添加采样轨道 + + Please select notes to glue first. + - - Add automation-track - 添加自动控制轨道 + + Please open a clip by double-clicking on it! + - - Edit actions - 编辑动作 + + + Please enter a new value between %1 and %2: + + + + lmms::gui::PianoRollWindow - - Draw mode - 绘制模式 + + Play/pause current clip (Space) + - - Knife mode (split sample clips) + + Record notes from MIDI-device/channel-piano - - Edit mode (select and move) - 编辑模式(选定和移动) + + Record notes from MIDI-device/channel-piano while playing song or pattern track + - - Timeline controls - 时间线控制 + + Record notes from MIDI-device/channel-piano, one step at the time + - - Bar insert controls + + Stop playing of current clip (Space) - - Insert bar + + Edit actions - - Remove bar + + Draw mode (Shift+D) - - Zoom controls - 缩放控制 + + Erase mode (Shift+E) + - - Horizontal zooming - 水平缩放 + + Select mode (Shift+S) + - - Snap controls + + Pitch Bend mode (Shift+T) - - - Clip snapping size + + Quantize - - Toggle proportional snap on/off + + Quantize positions - - Base snapping size + + Quantize lengths - - - StepRecorderWidget - - Hint - 提示 + + File actions + - - Move recording curser using <Left/Right> arrows + + Import clip - - - SubWindow - - Close - 关闭 + + + Export clip + - - Maximize - 最大化 + + Copy paste controls + - - Restore - 还原 + + Cut (%1+X) + - - - TabWidget - - - Settings for %1 - %1 的设定 + + Copy (%1+C) + - - - TemplatesMenu - - New from template - 从模版新建工程 + + Paste (%1+V) + - - - TempoSyncKnob - - - Tempo Sync - 节奏同步 + + Timeline controls + - - No Sync - 无同步 + + Glue + - - Eight beats - 八拍 + + Knife + - - Whole note - 全音符 + + Fill + - - Half note - 二分音符 + + Cut overlaps + - - Quarter note - 四分音符 + + Min length as last + - - 8th note - 八分音符 + + Max length as last + - - 16th note - 16 分音符 + + Zoom and note controls + - - 32nd note - 32 分音符 + + Horizontal zooming + - - Custom... - 自定义... + + Vertical zooming + - - Custom - 自定义 + + Quantization + - - Synced to Eight Beats - 同步为八拍 + + Note length + - - Synced to Whole Note - 同步为全音符 + + Key + - - Synced to Half Note - 同步为二分音符 + + Scale + - - Synced to Quarter Note - 同步为四分音符 + + Chord + - - Synced to 8th Note - 同步为八分音符 + + Snap mode + - - Synced to 16th Note - 同步为16分音符 + + Clear ghost notes + - - Synced to 32nd Note - 同步为32分音符 + + + Piano-Roll - %1 + - - - TimeDisplayWidget - - Time units + + + Piano-Roll - no clip - - MIN - 分钟 + + + XML clip file (*.xpt *.xptz) + - - SEC - + + Export clip success + - - MSEC - 毫秒 + + Clip saved to %1 + - - BAR - 小节 + + Import clip. + - - BEAT - + + You are about to import a clip, this will overwrite your current clip. Do you want to continue? + - - TICK - + + Open clip + 打开片断 - - - TimeLineWidget - - Auto scrolling + + Import clip success - - Loop points + + Imported clip %1! + + + lmms::gui::PianoView - - After stopping go back to beginning - + + Base note + 基本音 - - After stopping go back to position at which playing was started - 停止后前往播放开始的地方 + + First note + 第一个音符 - - After stopping keep position - 停止后保持位置不变 + + Last note + 最后一个音符 + + + lmms::gui::PluginBrowser - - Hint - 提示 + + Instrument Plugins + 乐器插件 - - Press <%1> to disable magnetic loop points. - 按住 <%1> 禁用磁性吸附。 + + Instrument browser + 乐器浏览器 - - - Track - - Mute - 静音 + + Drag an instrument into either the Song Editor, the Pattern Editor or an existing instrument track. + - - Solo - 独奏 + + Search + 搜索 - TrackContainer + lmms::gui::PluginDescWidget - - Couldn't import file - 无法导入文件 + + Send to new instrument track + 发送到新的乐器轨道 + + + lmms::gui::ProjectNotes - - Couldn't find a filter for importing file %1. -You should convert this file into a format supported by LMMS using another software. - 无法找到导入文件 %1 的导入器 -你需要使用其他软件将此文件转换成 LMMS 支持的格式。 + + Project Notes + 工程注释 - - Couldn't open file - 无法打开文件 + + Enter project notes here + 在这里写下你的工程注释。 - - Couldn't open file %1 for reading. -Please make sure you have read-permission to the file and the directory containing the file and try again! - 无法读取文件 %1 -请确认你有对该文件及其目录的读取权限后再试! + + Edit Actions + 编辑功能 - - Loading project... - 正在加载工程... + + &Undo + 撤销 (&U) - - - Cancel - 取消 + + %1+Z + %1+Z - - - Please wait... - 请稍等... + + &Redo + 重做 (&R) - - Loading cancelled - + + %1+Y + %1+Y - - Project loading was cancelled. - + + &Copy + 复制 (&C) - - Loading Track %1 (%2/Total %3) - 正在加载轨道 %1 (第 %2 个/共 %3 个) + + %1+C + %1+C - - Importing MIDI-file... - 正在导入 MIDI-文件... + + Cu&t + 剪切 (&T) - - - Clip - - Mute - 静音 + + %1+X + %1+X - - - ClipView - - Current position - 当前位置 + + &Paste + 粘贴 (&P) - - Current length - 当前长度 + + %1+V + %1+V - - - %1:%2 (%3:%4 to %5:%6) - %1:%2 (%3:%4 到 %5:%6) + + Format Actions + 格式功能 - - Press <%1> and drag to make a copy. - 按住 <%1> 并拖动以创建副本。 + + &Bold + 加粗 (&B) - - Press <%1> for free resizing. - 按住 <%1> 自由调整大小。 + + %1+B + %1+B - - Hint - 提示 + + &Italic + 斜体 (&I) - - Delete (middle mousebutton) - 删除 (鼠标中键) + + %1+I + %1+I - - Delete selection (middle mousebutton) - + + &Underline + 下划线 (&U) - - Cut - 剪切 + + %1+U + %1+U - - Cut selection - + + &Left + 左对齐 (&L) - - Merge Selection - + + %1+L + %1+L - - Copy - 复制 + + C&enter + 居中 (&E) - - Copy selection - + + %1+E + %1+E - - Paste - 粘贴 + + &Right + 右对齐 (&R) - - Mute/unmute (<%1> + middle click) - 静音/取消静音 (<%1> + 鼠标中键) + + %1+R + %1+R - - Mute/unmute selection (<%1> + middle click) - + + &Justify + 匀齐 (&J) - - Set clip color - + + %1+J + %1+J - - Use track color - + + &Color... + 颜色 (&C)... - TrackContentWidget + lmms::gui::RecentProjectsMenu - - Paste - 粘贴 + + &Recently Opened Projects + 最近打开的工程 (&R) - TrackOperationsWidget - - - Press <%1> while clicking on move-grip to begin a new drag'n'drop action. - - + lmms::gui::RenameDialog - - Actions - + + Rename... + 重命名... + + + lmms::gui::ReverbSCControlDialog - - - Mute - 静音 + + Input + 输入 - - - Solo - 独奏 + + Input gain: + 输入增益: - - After removing a track, it can not be recovered. Are you sure you want to remove track "%1"? - + + Size + 大小 - - Confirm removal - + + Size: + 大小: - - Don't ask again - + + Color + 颜色 - - Clone this track - 克隆此轨道 + + Color: + 颜色: - - Remove this track - 移除此轨道 + + Output + 输出 - - Clear this track - 清除此轨道 + + Output gain: + 输出增益: + + + lmms::gui::SaControlsDialog - - Channel %1: %2 - 效果 %1: %2 + + Pause + 暂停 - - Assign to new mixer Channel - 分配到新的效果通道 + + Pause data acquisition + - - Turn all recording on - 打开所有录制 + + Reference freeze + - - Turn all recording off - 关闭所有录制 + + Freeze current input as a reference / disable falloff in peak-hold mode. + - - Change color - 改变颜色 + + Waterfall + - - Reset color to default - 重置颜色 + + Display real-time spectrogram + - - Set random color + + Averaging - - Clear clip colors + + Enable exponential moving average - - - TripleOscillatorView - - Modulate phase of oscillator 1 by oscillator 2 - + + Stereo + 双声道 - - Modulate amplitude of oscillator 1 by oscillator 2 + + Display stereo channels separately - - Mix output of oscillators 1 & 2 + + Peak hold - - Synchronize oscillator 1 with oscillator 2 - 同步振荡器 1 和振荡器 2 + + Display envelope of peak values + - - Modulate frequency of oscillator 1 by oscillator 2 + + Logarithmic frequency - - Modulate phase of oscillator 2 by oscillator 3 + + Switch between logarithmic and linear frequency scale - - Modulate amplitude of oscillator 2 by oscillator 3 + + + Frequency range - - Mix output of oscillators 2 & 3 + + Logarithmic amplitude - - Synchronize oscillator 2 with oscillator 3 - 同步振荡器 2 和振荡器 3 + + Switch between logarithmic and linear amplitude scale + - - Modulate frequency of oscillator 2 by oscillator 3 + + + Amplitude range - - Osc %1 volume: - 振荡器%1音量 + + + FFT block size + - - Osc %1 panning: - 振荡器%1声相 + + + FFT window type + - - Osc %1 coarse detuning: - 振荡器%1音调粗调 + + Envelope res. + - - semitones - 半音 + + Increase envelope resolution for better details, decrease for better GUI performance. + - - Osc %1 fine detuning left: - 振荡器%1左声道微调 + + Maximum number of envelope points drawn per pixel: + - - - cents - 音分 cents + + Spectrum res. + - - Osc %1 fine detuning right: - 振荡器%1右声道微调 + + Increase spectrum resolution for better details, decrease for better GUI performance. + - - Osc %1 phase-offset: - 振荡器%1相位偏移 + + Maximum number of spectrum points drawn per pixel: + - - - degrees - + + Falloff factor + - - Osc %1 stereo phase-detuning: - 振荡器%1立体相位偏移 + + Decrease to make peaks fall faster. + - - Sine wave - 正弦波 + + Multiply buffered value by + - - Triangle wave - 三角波 + + Averaging weight + - - Saw wave - 锯齿波 + + Decrease to make averaging slower and smoother. + - - Square wave - 方波 + + New sample contributes + - - Moog-like saw wave + + Waterfall height - - Exponential wave - 指数爆炸波形 + + Increase to get slower scrolling, decrease to see fast transitions better. Warning: medium CPU usage. + - - White noise - 白噪音 + + Number of lines to keep: + - - User-defined wave + + Waterfall gamma - - - VecControls - - Display persistence amount + + Decrease to see very weak signals, increase to get better contrast. - - Logarithmic scale + + Gamma value: + 伽马值: + + + + Window overlap - - High quality + + Increase to prevent missing fast transitions arriving near FFT window edges. Warning: high CPU usage. - - - VecControlsDialog - - HQ + + Number of times each sample is processed: - - Double the resolution and simulate continuous analog-like trace. + + Zero padding - - Log. scale + + Increase to get smoother-looking spectrum. Warning: high CPU usage. - - Display amplitude on logarithmic scale to better see small values. + + Processing buffer is - - Persist. + + steps larger than input block - - Trace persistence: higher amount means the trace will stay bright for longer time. + + Advanced settings - - Trace persistence + + Access advanced settings - VersionedSaveDialog - - - Increment version number - 递增版本号 - + lmms::gui::SampleClipView - - Decrement version number - 递减版本号 + + Double-click to open sample + 双击打开采样 - - Save Options - + + Reverse sample + 反转采样 - - already exists. Do you want to replace it? + + Set as ghost in automation editor - VestigeInstrumentView + lmms::gui::SampleTrackView - - - Open VST plugin - + + Mixer channel + 混音器通道 - - Control VST plugin from LMMS host - + + Track volume + 轨道音量 - - Open VST plugin preset - + + Channel volume: + 通道音量: - - Previous (-) - 上一个 (-) + + VOL + 音量 - - Save preset - 保存预置 + + Panning + 声相 - - Next (+) - 下一个 (+) + + Panning: + 声相: - - Show/hide GUI - 显示/隐藏界面 + + PAN + 声相 - - Turn off all notes - 全部静音 + + %1: %2 + %1:%2 + + + lmms::gui::SampleTrackWindow - - DLL-files (*.dll) - DLL-文件 (*.dll) + + Sample volume + 采样音量 - - EXE-files (*.exe) - EXE-文件 (*.exe) + + Volume: + 音量: - - No VST plugin loaded - + + VOL + 音量 - - Preset - 预置 + + Panning + 声相 - - by - 制造商 + + Panning: + 声相: - - - VST plugin control - - VST插件控制 + + PAN + 声相 + + + + Mixer channel + + + + + CHANNEL + 通道 - VstEffectControlDialog + lmms::gui::SaveOptionsWidget - - Show/hide - 显示/隐藏 + + Discard MIDI connections + - - Control VST plugin from LMMS host + + Save As Project Bundle (with resources) + + + lmms::gui::SetupDialog - - Open VST plugin preset - + + Settings + 设置 - - Previous (-) - 上一个 (-) + + + General + - - Next (+) - 下一个 (+) + + Graphical user interface (GUI) + 图形用户界面 (GUI) - - Save preset - 保存预置 + + Display volume as dBFS + 以 dBFS 为单位显示音量 - - - Effect by: - 音效制作: + + Enable tooltips + 启用工具提示 - - &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> - &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> + + Enable master oscilloscope by default + - - - VstPlugin - - - The VST plugin %1 could not be loaded. - 无法载入VST插件 %1。 + + Enable all note labels in piano roll + - - Open Preset - 打开预置 + + Enable compact track buttons + - - - Vst Plugin Preset (*.fxp *.fxb) - VST插件预置文件(*.fxp *.fxb) + + Enable one instrument-track-window mode + - - : default - : 默认 + + Show sidebar on the right-hand side + - - Save Preset - 保存预置 + + Let sample previews continue when mouse is released + - - .fxp - .fxp + + Mute automation tracks during solo + - - .FXP - .FXP + + Show warning when deleting tracks + - - .FXB - .FXB + + Show warning when deleting a mixer channel that is in use + - - .fxb - .fxb + + Dual-button + - - Loading plugin - 载入插件 + + Grab closest + - - Please wait while loading VST plugin... - 正在载入VST插件,请稍候…… + + Handles + - - - WatsynInstrument - - Volume A1 - 音量 A1 + + Loop edit mode + - - Volume A2 - 音量 A2 + + Projects + - - Volume B1 - 音量 B1 + + Compress project files by default + - - Volume B2 - 音量 B2 + + Create a backup file when saving a project + - - Panning A1 - 声相 A1 + + Reopen last project on startup + - - Panning A2 - 声相 A2 + + Language + 语言 - - Panning B1 - 声相 B1 + + + Performance + 性能 - - Panning B2 - 声相 B2 + + Autosave + 自动保存 - - Freq. multiplier A1 - 频率加倍器 A1 + + Enable autosave + 启用自动保存 - - Freq. multiplier A2 - 频率加倍器 A2 + + Allow autosave while playing + 允许在播放时自动保存 - - Freq. multiplier B1 - 频率加倍器 B1 + + User interface (UI) effects vs. performance + - - Freq. multiplier B2 - 频率加倍器 B2 + + Smooth scroll in song editor + - - Left detune A1 - 左失谐 A1 + + Display playback cursor in AudioFileProcessor + - - Left detune A2 - 左失谐 A2 + + Plugins + 插件 - - Left detune B1 - 左失谐 B1 + + VST plugins embedding: + + + + + No embedding + - - Left detune B2 - 左失谐 B2 + + Embed using Qt API + - - Right detune A1 - 右失谐 A1 + + Embed using native Win32 API + - - Right detune A2 - 右失谐 A2 + + Embed using XEmbed protocol + - - Right detune B1 - 右失谐 B1 + + Keep plugin windows on top when not embedded + - - Right detune B2 - 右失谐 B2 + + Keep effects running even without input + - - A-B Mix - A-B混合值 + + + Audio + 音频 - - A-B Mix envelope amount - A-B混合包络值 + + Audio interface + 音频接口 - - A-B Mix envelope attack - A-B混合包络起音 + + Buffer size + 缓冲区大小 - - A-B Mix envelope hold - A-B混合包络持续 + + Reset to default value + 重置为默认值 - - A-B Mix envelope decay - A-B混合包络衰减 + + + MIDI + MIDI - - A1-B2 Crosstalk - + + MIDI interface + MIDI 接口 - - A2-A1 modulation + + Automatically assign MIDI controller to selected track - - B2-B1 modulation - + + Behavior when recording + 录制时的行为 - - Selected graph - 选定的图像 + + Auto-quantize notes in Piano Roll + 在钢琴卷帘中自动量化音符 - - - WatsynView - - - - - Volume - 音量 + + If enabled, notes will be automatically quantized when recording them from a MIDI controller. If disabled, they are always recorded at the highest possible resolution. + - - - - - Panning - 声相 + + + Paths + 路径 - - - - - Freq. multiplier - 频率加倍器 + + LMMS working directory + LMMS工作目录 - - - - - Left detune - + + VST plugins directory + VST插件目录 - - - - - - - - - cents - 音分 + + LADSPA plugins directories + LADSPA 插件目录 - - - - - Right detune - + + SF2 directory + SF2 目录 - - A-B Mix - A-B混合值 + + Default SF2 + 默认 SF2 - - Mix envelope amount - + + GIG directory + GIG 目录 - - Mix envelope attack - + + Theme directory + 主题文件目录 - - Mix envelope hold - + + Background artwork + 背景图片 - - Mix envelope decay + + Some changes require restarting. - - Crosstalk - + + OK + 确定 - - Select oscillator A1 - 选择振荡器 A1 + + Cancel + 取消 - - Select oscillator A2 - 选择振荡器 A2 + + minutes + 分钟 - - Select oscillator B1 - 选择振荡器 B1 + + minute + 分钟 - - Select oscillator B2 - 选择振荡器 B2 + + Disabled + 已禁用 - - Mix output of A2 to A1 - + + Autosave interval: %1 + 自动保存间隔:%1 - - Modulate amplitude of A1 by output of A2 + + The currently selected value is not a power of 2 (32, 64, 128, 256). Some plugins may not be available. - - Ring modulate A1 and A2 + + The currently selected value is less than or equal to 32. Some plugins may not be available. - - Modulate phase of A1 by output of A2 + + Frames: %1 +Latency: %2 ms - - Mix output of B2 to B1 - + + Choose the LMMS working directory + 选择 LMMS 工作目录 - - Modulate amplitude of B1 by output of B2 - + + Choose your VST plugins directory + 选择 VST 插件目录 - - Ring modulate B1 and B2 - + + Choose your LADSPA plugins directory + 选择 LADSPA 插件目录 - - Modulate phase of B1 by output of B2 - + + Choose your SF2 directory + 选择 SF2 目录 - - - - - Draw your own waveform here by dragging your mouse on this graph. - 使用鼠标在此图像上绘制你自己的波形。 + + Choose your default SF2 + 选择默认 SF2 - - Load waveform - 加载波形 + + Choose your GIG directory + 选择 GIG 目录 - - Load a waveform from a sample file - + + Choose your theme directory + 选择主题目录 - - Phase left - + + Choose your background picture + 选择背景图片 + + + lmms::gui::Sf2InstrumentView - - Shift phase by -15 degrees - + + + Open SoundFont file + 打开 SoundFont 文件 - - Phase right + + Choose patch - - Shift phase by +15 degrees - + + Gain: + 增益: - - - Normalize - 标准化 + + Apply reverb (if supported) + 应用混响(如果支持) - - - Invert - 反转 + + Room size: + 房间大小: - - - Smooth - 平滑 + + Damping: + 阻尼: - - - Sine wave - 正弦波 + + Width: + 宽度: - - - - Triangle wave - 三角波 + + + Level: + 级别: - - Saw wave - 锯齿波 + + Apply chorus (if supported) + 应用和声 (如果支持) - - - Square wave - 方波 + + Voices: + 复音数: - - - Xpressive - - Selected graph - 选定的图像 + + Speed: + 速度: - - A1 - + + Depth: + 深度: - - A2 - + + SoundFont Files (*.sf2 *.sf3) + SoundFont 文件 (*.sf2 *.sf3) + + + lmms::gui::SidInstrumentView - - A3 - + + Volume: + 音量: - - W1 smoothing - + + Resonance: + 共鸣: - - W2 smoothing + + + Cutoff frequency: - - W3 smoothing - + + High-pass filter + 高通滤波器 - - Panning 1 - + + Band-pass filter + 带通滤波器 - - Panning 2 - + + Low-pass filter + 低通滤波器 - - Rel trans + + Voice 3 off - - - XpressiveView - - Draw your own waveform here by dragging your mouse on this graph. - 使用鼠标在此图像上绘制你自己的波形。 + + MOS6581 SID + MOS6581 SID - - Select oscillator W1 - + + MOS8580 SID + MOS8580 SID - - Select oscillator W2 + + + Attack: - - Select oscillator W3 + + + Decay: - - Select output O1 + + Sustain: - - Select output O2 + + + Release: - - Open help window + + Pulse Width: - - - Sine wave - 正弦波 + + Coarse: + - - - Moog-saw wave - + + Pulse wave + 脉冲波 - - - Exponential wave - 指数爆炸波形 + + Triangle wave + 三角波 - - + Saw wave 锯齿波 - - - User-defined wave - + + Noise + 噪音 - - - Triangle wave - 三角波 + + Sync + 同步 - - - Square wave - 方波 + + Ring modulation + - - - White noise - 白噪音 + + Filtered + - - WaveInterpolate - + + Test + 测试 - - ExpressionValid + + Pulse width: + + + lmms::gui::SideBarWidget - - General purpose 1: + + Close + 关闭 + + + + lmms::gui::SlicerTView + + + Slice snap - - General purpose 2: + + Set slice snapping for detection - - General purpose 3: + + Sync sample - - O1 panning: + + Enable BPM sync - - O2 panning: + + Original sample BPM - - Release transition: + + Threshold used for slicing - - Smoothness + + Fade Out per note in milliseconds - - - ZynAddSubFxInstrument - - Portamento - 滑音 + + Copy midi pattern to clipboard + 复制 MIDI 片段到剪贴板 - - Filter frequency + + Open sample selector - - Filter resonance + + Reset slices - - Bandwidth - 带宽 + + Threshold + 阈值 - - FM gain - + + Fade Out + 淡出 - - Resonance center frequency - + + Reset + 重置 - - Resonance bandwidth - + + Midi + MIDI - - Forward MIDI control change events + + BPM + BPM + + + + Snap - ZynAddSubFxView + lmms::gui::SlicerTWaveform - - Portamento: - 滑音: + + Click to load sample + 点击加载采样 + + + lmms::gui::SongEditor - - PORT - 端口 + + Could not open file + 无法打开文件 - - Filter frequency: + + Could not open file %1. You probably have no permissions to read this file. + Please make sure to have at least read permissions to the file and try again. - - FREQ - 频率 - - - - Filter resonance: + + Operation denied - - RES + + A bundle folder with that name already eists on the selected path. Can't overwrite a project bundle. Please select a different name. - - Bandwidth: - 带宽: + + + + Error + 错误 - - BW + + Couldn't create bundle folder. - - FM gain: + + Couldn't create resources folder. - - FM GAIN + + Failed to copy resources. - - Resonance center frequency: - + + + Could not write file + 无法写入文件 - - RES CF + + Could not open %1 for writing. You probably are not permitted to write to this file. Please make sure you have write-access to the file and try again. - - Resonance bandwidth: + + An unknown error has occurred and the file could not be saved. - - RES BW + + Error in file - - Forward MIDI control changes + + The file %1 seems to contain errors and therefore can't be loaded. - - Show GUI - 显示图形界面 + + template + 模板 - - - AudioFileProcessor - - Amplify - 增益 + + project + - - Start of sample - 采样起始 + + Version difference + - - End of sample - 采样结尾 + + This %1 was created with LMMS %2 + - - Loopback point - 循环点 + + Zoom + 缩放 - - Reverse sample - 反转采样 + + Tempo + - - Loop mode - 循环模式 + + TEMPO + - - Stutter + + Tempo in BPM - - Interpolation mode - 补间方式 + + + + Master volume + 主音量 - - None - + + + + Global transposition + - - Linear - 线性插补 + + 1/%1 Bar + 1/%1 小节 - - Sinc - 辛格(Sinc)插补 + + %1 Bars + %1 小节 - - Sample not found: %1 - 采样未找到: %1 + + Value: %1% + - - - BitInvader - - Sample length + + Value: %1 keys - BitInvaderView - - - Sample length - - + lmms::gui::SongEditorWindow - - Draw your own waveform here by dragging your mouse on this graph. - 使用鼠标在此图像上绘制你自己的波形。 + + Song-Editor + 歌曲编辑器 - - - Sine wave - 正弦波 + + Play song (Space) + 播放歌曲(空格) - - - Triangle wave - 三角波 + + Record samples from Audio-device + - - - Saw wave - 锯齿波 + + Record samples from Audio-device while playing song or pattern track + - - - Square wave - 方波 + + Stop song (Space) + 停止歌曲(空格) - - - White noise - 白噪音 + + Track actions + 轨道动作 - - - User-defined wave + + Add pattern-track - - - Smooth waveform - 平滑波形 - - - - Interpolation - 补间 + + Add sample-track + 添加采样轨道 - - Normalize - 标准化 + + Add automation-track + 添加自动控制轨道 - - - DynProcControlDialog - - INPUT - 输入 + + Edit actions + 编辑动作 - - Input gain: - 输入增益: + + Draw mode + 绘制模式 - - OUTPUT - 输出 + + Knife mode (split sample clips) + - - Output gain: - 输出增益: + + Edit mode (select and move) + - - ATTACK - 打击声 + + Timeline controls + - - Peak attack time: + + Bar insert controls - - RELEASE - 释放 + + Insert bar + 插入小节 - - Peak release time: - + + Remove bar + 删除小节 - - - Reset wavegraph - + + Zoom controls + 缩放控制 - - - Smooth wavegraph - + + + Zoom + 缩放 - - - Increase wavegraph amplitude by 1 dB + + Snap controls - - - Decrease wavegraph amplitude by 1 dB + + + Clip snapping size - - Stereo mode: maximum + + Toggle proportional snap on/off - - Process based on the maximum of both stereo channels + + Base snapping size + + + lmms::gui::StepRecorderWidget - - Stereo mode: average - + + Hint + 提示 - - Process based on the average of both stereo channels + + Move recording curser using <Left/Right> arrows + + + lmms::gui::StereoEnhancerControlDialog - - Stereo mode: unlinked + + WIDTH - - Process each stereo channel independently + + Width: - DynProcControls - - - Input gain - 输入增益 - + lmms::gui::StereoMatrixControlDialog - - Output gain - 输出增益 + + Left to Left Vol: + - - Attack time - 打击时间 + + Left to Right Vol: + - - Release time - 释放时间 + + Right to Left Vol: + - - Stereo mode - 双声道模式 + + Right to Right Vol: + - graphModel + lmms::gui::SubWindow - - Graph - 图形 + + Close + 关闭 - - - KickerInstrument - - Start frequency - 起始频率 + + Maximize + 最大化 - - End frequency - 结束频率 + + Restore + 还原 + + + lmms::gui::TapTempoView - - Length - 长度 + + 0 + 0 - - Start distortion + + + Precision - - End distortion + + Display in high precision - - Gain - 增益 - - - - Envelope slope + + 0.0 ms - - Noise - 噪音 - - - - Click - 力度 - - - - Frequency slope + + Mute metronome - - Start from note - 从哪个音符开始 - - - - End to note - 到哪个音符结束 + + Mute + 静音 - - - KickerInstrumentView - - Start frequency: - 起始频率: + + BPM in milliseconds + - - End frequency: - 结束频率: + + 0 ms + - - Frequency slope: + + Frequency of BPM - - Gain: - 增益: + + 0.0000 hz + - - Envelope length: - + + Reset + 重置 - - Envelope slope: + + Reset counter and sidebar information - - Click: - 力度: + + Sync + 同步 - - Noise: - 噪音: + + Sync with project tempo + - - Start distortion: + + %1 ms - - End distortion: + + %1 hz - LadspaBrowserView - - - - Available Effects - 可用效果器 - - - - - Unavailable Effects - 不可用效果器 - - - - - Instruments - 乐器插件 - - - - - Analysis Tools - 分析工具 - - - - - Don't know - 未知 - + lmms::gui::TemplatesMenu - - Type: - 类型: + + New from template + 从模板新建工程 - LadspaDescription + lmms::gui::TempoSyncBarModelEditor - - Plugins - 插件 + + + Tempo Sync + 节奏同步 - - Description - 描述 + + No Sync + 无同步 - - - LadspaPortDialog - - Ports - 端口 + + Eight beats + 八拍 - - Name - 名称 + + Whole note + 全音符 - - Rate - 比特率 + + Half note + 二分音符 - - Direction - 方向 + + Quarter note + 四分音符 - - Type - 类型 + + 8th note + 八分音符 - - Min < Default < Max - 最小 < 默认 < 最大 + + 16th note + 16 分音符 - - Logarithmic - 对数 + + 32nd note + 32 分音符 - - SR Dependent - 依赖 SR + + Custom... + 自定义... - - Audio - 音频 + + Custom + 自定义 - - Control - 控制 + + Synced to Eight Beats + 同步为八拍 - - Input - 输入 + + Synced to Whole Note + 同步为全音符 - - Output - 输出 + + Synced to Half Note + 同步为二分音符 - - Toggled - 启用 + + Synced to Quarter Note + 同步为四分音符 - - Integer - 整型 + + Synced to 8th Note + 同步为八分音符 - - Float - 浮点 + + Synced to 16th Note + 同步为 16 分音符 - - - Yes - + + Synced to 32nd Note + 同步为 32 分音符 - Lb302Synth + lmms::gui::TempoSyncKnob - - VCF Cutoff Frequency - + + + Tempo Sync + 节奏同步 - - VCF Resonance - + + No Sync + 无同步 - - VCF Envelope Mod - + + Eight beats + 八拍 - - VCF Envelope Decay - + + Whole note + 全音符 - - Distortion - 失真 + + Half note + 二分音符 - - Waveform - 波形 + + Quarter note + 四分音符 - - Slide Decay - + + 8th note + 八分音符 - - Slide - + + 16th note + 16 分音符 - - Accent - + + 32nd note + 32 分音符 - - Dead - + + Custom... + 自定义 - - 24dB/oct Filter - + + Custom + 自定义 - - - Lb302SynthView - - Cutoff Freq: + + Synced to Eight Beats - - Resonance: - 共鸣: - - - - Env Mod: + + Synced to Whole Note - - Decay: - 衰减: + + Synced to Half Note + - - 303-es-que, 24dB/octave, 3 pole filter + + Synced to Quarter Note - - Slide Decay: + + Synced to 8th Note - - DIST: + + Synced to 16th Note - - Saw wave - 锯齿波 + + Synced to 32nd Note + + + + lmms::gui::TimeDisplayWidget - - Click here for a saw-wave. - 点击这里使用锯齿波。 + + Time units + 时间单位 - - Triangle wave - 三角波 + + MIN + - - Click here for a triangle-wave. - 点击这里使用三角波。 + + SEC + - - Square wave - 方波 + + MSEC + 毫秒 - - Click here for a square-wave. - 点击这里使用方波。 + + BAR + 小节 - - Rounded square wave - 圆角方波 + + BEAT + - - Click here for a square-wave with a rounded end. - 点击这里使用圆角方波。 + + TICK + 嘀嗒 + + + lmms::gui::TimeLineWidget - - Moog wave + + Auto scrolling - - Click here for a moog-like wave. + + Stepped auto scrolling - - Sine wave - 正弦波 + + Continuous auto scrolling + - - Click for a sine-wave. - 点击这里使用正弦波。 + + Auto scrolling disabled + - - - White noise wave - 白噪音 + + Loop points + 循环点 - - Click here for an exponential wave. - 点击这里使用指数爆炸波形。 + + After stopping go back to beginning + - - Click here for white-noise. - 点击这里使用白噪音。 + + After stopping go back to position at which playing was started + - - Bandlimited saw wave + + After stopping keep position - - Click here for bandlimited saw wave. - + + Hint + 提示 - - Bandlimited square wave + + Press <%1> to disable magnetic loop points. - - Click here for bandlimited square wave. + + Set loop begin here - - Bandlimited triangle wave + + Set loop end here - - Click here for bandlimited triangle wave. + + Loop edit mode (hold shift) - - Bandlimited moog saw wave + + Dual-button - - Click here for bandlimited moog saw wave. + + Grab closest - - - MalletsInstrument - - Hardness + + Handles + + + lmms::gui::TrackContentWidget - - Position - 位置 + + Paste + 粘贴 + + + lmms::gui::TrackOperationsWidget - - Vibrato gain + + Press <%1> while clicking on move-grip to begin a new drag'n'drop action. - - Vibrato frequency + + Actions - - Stick mix - + + + Mute + 静音 - - Modulator - 调制器 + + + Solo + 独奏 - - Crossfade + + After removing a track, it can not be recovered. Are you sure you want to remove track "%1"? - - LFO speed - LFO 速度 - - - - LFO depth + + Confirm removal - - ADSR - + + Don't ask again + 不再询问 - - Pressure - 压力 + + Clone this track + 克隆此轨道 - - Motion - + + Remove this track + 移除此轨道 - - Speed - 速度 + + Clear this track + 清除此轨道 - - Bowed + + Channel %1: %2 - - Spread + + Assign to new Mixer Channel - - Marimba + + Turn all recording on - - Vibraphone + + Turn all recording off - - Agogo - + + Track color + 轨道颜色 - - Wood 1 - + + Change + 更改 - - Reso - + + Reset + 重置 - - Wood 2 + + Pick random - - Beats + + Reset clip colors + + + lmms::gui::TripleOscillatorView - - Two fixed + + Modulate phase of oscillator 1 by oscillator 2 - - Clump + + Modulate amplitude of oscillator 1 by oscillator 2 - - Tubular bells + + Mix output of oscillators 1 & 2 - - Uniform bar + + Synchronize oscillator 1 with oscillator 2 - - Tuned bar + + Modulate frequency of oscillator 1 by oscillator 2 - - Glass - 玻璃 + + Modulate phase of oscillator 2 by oscillator 3 + - - Tibetan bowl + + Modulate amplitude of oscillator 2 by oscillator 3 - - - MalletsInstrumentView - - Instrument - 乐器 + + Mix output of oscillators 2 & 3 + - - Spread + + Synchronize oscillator 2 with oscillator 3 - - Spread: + + Modulate frequency of oscillator 2 by oscillator 3 - - Missing files - 文件缺失 + + Osc %1 volume: + - - Your Stk-installation seems to be incomplete. Please make sure the full Stk-package is installed! - 你的 Stk 程序似乎不是完整的。请确保你在使用此乐器前完整地安装了 Stk 软件包! + + Osc %1 panning: + - - Hardness + + Osc %1 coarse detuning: - - Hardness: - + + semitones + 半音 - - Position - 位置 + + Osc %1 fine detuning left: + - - Position: - 位置: + + + cents + 音分 - - Vibrato gain + + Osc %1 fine detuning right: - - Vibrato gain: + + Osc %1 phase-offset: - - Vibrato frequency + + + degrees - - Vibrato frequency: + + Osc %1 stereo phase-detuning: - - Stick mix - + + Sine wave + 正弦波 - - Stick mix: - + + Triangle wave + 三角波 - - Modulator - 调制器 + + Saw wave + 锯齿波 - - Modulator: - 调制器: + + Square wave + 方波 - - Crossfade + + Moog-like saw wave - - Crossfade: + + Exponential wave - - LFO speed - LFO 速度 + + White noise + 白噪音 - - LFO speed: - LFO 速度: + + User-defined wave + 用户自定义波形 - - LFO depth + + Use alias-free wavetable oscillators. + + + lmms::gui::VecControlsDialog - - LFO depth: + + HQ - - ADSR + + Double the resolution and simulate continuous analog-like trace. - - ADSR: + + Log. scale - - Pressure - 压力 + + Display amplitude on logarithmic scale to better see small values. + - - Pressure: - 压力: + + Persist. + - - Speed - 速度 + + Trace persistence: higher amount means the trace will stay bright for longer time. + - - Speed: - 速度: + + Trace persistence + - ManageVSTEffectView + lmms::gui::VersionedSaveDialog - - - VST parameter control - - VST 参数控制 + + Increment version number + - - VST sync + + Decrement version number - - - Automated - 自动 + + Save Options + 保存选项 - - Close - 关闭 + + already exists. Do you want to replace it? + 已存在,要替换吗? - ManageVestigeInstrumentView + lmms::gui::VestigeInstrumentView - - - - VST plugin control - - VST插件控制 + + + Open VST plugin + 打开 VST 插件 - - VST Sync - VST 同步 + + Control VST plugin from LMMS host + 从 LMMS 宿主控制 VST 插件 - - - Automated - 自动 + + Open VST plugin preset + 打开 VST 插件预设 - - Close - 关闭 + + Previous (-) + 上一个 (-) - - - OrganicInstrument - - Distortion - 失真 + + Save preset + 保存预设 - - Volume - 音量 + + Next (+) + 下一个 (+) - - - OrganicInstrumentView - - Distortion: - 失真: + + Show/hide GUI + 显示/隐藏界面 - - Volume: - 音量: + + Turn off all notes + - - Randomise - 随机 + + DLL-files (*.dll) + DLL 文件 (*.dll) - - - Osc %1 waveform: - + + EXE-files (*.exe) + EXE 文件 (*.exe) - - Osc %1 volume: - 振荡器%1音量 + + SO-files (*.so) + SO 文件 (*.so) - - Osc %1 panning: - 振荡器%1声相 + + No VST plugin loaded + 未载入 VST 插件 - - Osc %1 stereo detuning - + + Preset + 预设 - - cents - 音分 cents + + by + - - Osc %1 harmonic: - + + - VST plugin control + - VST 插件控制 - PatchesDialog + lmms::gui::VibedView - - Qsynth: Channel Preset - Qsynth: 通道预设 + + Enable waveform + 启用波形 - - Bank selector - 音色选择器 + + + Smooth waveform + 平滑波形 - - Bank - + + + Normalize waveform + - - Program selector - 程序节选择器 + + + Sine wave + 正弦波 - - Patch - 音色 + + + Triangle wave + 三角波 - - Name - 名称 + + + Saw wave + 锯齿波 - - OK - 确定 + + + Square wave + 方波 - - Cancel - 取消 + + + White noise + 白噪音 - - - Sf2Instrument - - Bank - + + + User-defined wave + 用户自定义波形 - - Patch - 音色 + + String volume: + - - Gain - 增益 + + String stiffness: + - - Reverb - 混响 + + Pick position: + - - Reverb room size + + Pickup position: - - Reverb damping + + String panning: - - Reverb width + + String detune: - - Reverb level + + String fuzziness: - - Chorus - 合唱 + + String length: + - - Chorus voices + + Impulse Editor - - Chorus level + + Impulse - - Chorus speed + + Enable/disable string - - Chorus depth + + Octave - - A soundfont %1 could not be loaded. - 无法载入Soundfont %1。 + + String + - Sf2InstrumentView + lmms::gui::VstEffectControlDialog - - - Open SoundFont file - 打开SoundFont文件 + + Show/hide + 显示/隐藏 - - Choose patch - + + Control VST plugin from LMMS host + 从 LMMS 宿主控制 VST 插件 - - Gain: - 增益: + + Open VST plugin preset + 打开 VST 插件预设 - - Apply reverb (if supported) - 应用混响(如果支持) + + Previous (-) + 上一个 (-) - - Room size: + + Next (+) + 下一个 (+) + + + + Save preset - - Damping: + + + Effect by: - - Width: - 宽度: + + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> + + + lmms::gui::WatsynView - - - Level: - + + + + + Volume + 音量 - - Apply chorus (if supported) - 应用合唱 (如果支持) + + + + + Panning + 声相 - - Voices: + + + + + Freq. multiplier - - Speed: - 速度: + + + + + Left detune + 左失谐 - - Depth: - 位深: + + + + + + + + + cents + 音分 - - SoundFont Files (*.sf2 *.sf3) + + + + + Right detune + 右失谐 + + + + A-B Mix + A-B 混合值 + + + + Mix envelope amount - - - SfxrInstrument - - Wave + + Mix envelope attack - - - StereoEnhancerControlDialog - - WIDTH + + Mix envelope hold - - Width: - 宽度: + + Mix envelope decay + - - - StereoEnhancerControls - - Width - 宽度 + + Crosstalk + + + + + Select oscillator A1 + 选择振荡器 A1 + + + + Select oscillator A2 + 选择振荡器 A2 + + + + Select oscillator B1 + 选择振荡器 B1 + + + + Select oscillator B2 + 选择振荡器 B2 + + + + Mix output of A2 to A1 + - - - StereoMatrixControlDialog - - Left to Left Vol: - 从左到左音量: + + Modulate amplitude of A1 by output of A2 + - - Left to Right Vol: - 从左到右音量: + + Ring modulate A1 and A2 + - - Right to Left Vol: - 从右到左音量: + + Modulate phase of A1 by output of A2 + - - Right to Right Vol: - 从右到右音量: + + Mix output of B2 to B1 + - - - StereoMatrixControls - - Left to Left - 从左到左 + + Modulate amplitude of B1 by output of B2 + - - Left to Right - 从左到右 + + Ring modulate B1 and B2 + - - Right to Left - 从右到左 + + Modulate phase of B1 by output of B2 + - - Right to Right - 从右到右 + + + + + Draw your own waveform here by dragging your mouse on this graph. + 使用鼠标在此图像上绘制你自己的波形。 - - - VestigeInstrument - - Loading plugin - 载入插件 + + Load waveform + 加载波形 - - Please wait while loading the VST plugin... + + Load a waveform from a sample file - - - Vibed - - String %1 volume + + Phase left - - String %1 stiffness + + Shift phase by -15 degrees - - Pick %1 position + + Phase right - - Pickup %1 position + + Shift phase by +15 degrees - - String %1 panning - + + + Normalize + 标准化 - - String %1 detune - + + + Invert + 反转 - - String %1 fuzziness - + + + Smooth + 平滑 - - String %1 length - + + + Sine wave + 正弦波 - - Impulse %1 - + + + + Triangle wave + 三角波 - - String %1 - + + Saw wave + 锯齿波 + + + + + Square wave + 方波 - VibedView + lmms::gui::WaveShaperControlDialog - - String volume: - + + INPUT + 输入 - - String stiffness: - + + Input gain: + 输入增益: - - Pick position: - + + OUTPUT + 输出 - - Pickup position: - + + Output gain: + 输出增益: - - String panning: - + + + Reset wavegraph + 重置波形 - - String detune: - + + + Smooth wavegraph + 平滑波形 - - String fuzziness: - + + + Increase wavegraph amplitude by 1 dB + 波形增益值增加 1dB - - String length: - + + + Decrease wavegraph amplitude by 1 dB + 波形增益值减少 1dB - - Impulse - + + Clip input + 输入压限 - - Octave + + Clip input signal to 0 dB + 将输入信号限制到 0dB + + + + lmms::gui::XpressiveView + + + Draw your own waveform here by dragging your mouse on this graph. + 使用鼠标在此图像上绘制你自己的波形。 + + + + Select oscillator W1 - - Impulse Editor + + Select oscillator W2 - - Enable waveform - 启用波形 + + Select oscillator W3 + - - Enable/disable string + + Select output O1 - - String + + Select output O2 - - + + Open help window + 打开帮助窗口 + + + + Sine wave 正弦波 - - - Triangle wave - 三角波 + + + Moog-saw wave + Moog 锯齿波 + + + + + Exponential wave + 指数爆炸波形 - - + + Saw wave 锯齿波 - - + + + User-defined wave + 用户自定义波形 + + + + + Triangle wave + 三角波 + + + + Square wave 方波 - - + + White noise 白噪音 - - - User-defined wave + + WaveInterpolate - - - Smooth waveform - 平滑波形 - - - - - Normalize waveform + + ExpressionValid - - - VoiceObject - - Voice %1 pulse width + + General purpose 1: - - Voice %1 attack + + General purpose 2: - - Voice %1 decay + + General purpose 3: - - Voice %1 sustain + + O1 panning: - - Voice %1 release + + O2 panning: - - Voice %1 coarse detuning + + Release transition: - - Voice %1 wave shape - 声音 %1 波形形状 + + Smoothness + + + + lmms::gui::ZynAddSubFxView - - Voice %1 sync - 声音 %1 同步 + + Portamento: + - - Voice %1 ring modulate + + PORT - - Voice %1 filtered + + Filter frequency: - - Voice %1 test - 声音 %1 测试 + + FREQ + - - - WaveShaperControlDialog - - INPUT - 输入 + + Filter resonance: + - - Input gain: - 输入增益: + + RES + - - OUTPUT - 输出 + + Bandwidth: + - - Output gain: - 输出增益: + + BW + - - - Reset wavegraph + + FM gain: - - - Smooth wavegraph + + FM GAIN - - - Increase wavegraph amplitude by 1 dB + + Resonance center frequency: - - - Decrease wavegraph amplitude by 1 dB + + RES CF - - Clip input - 输入压限 + + Resonance bandwidth: + - - Clip input signal to 0 dB + + RES BW - - - WaveShaperControls - - Input gain - 输入增益 + + Forward MIDI control changes + - - Output gain - 输出增益 + + Show GUI + 显示图形界面 - + \ No newline at end of file diff --git a/data/locale/zh_TW.ts b/data/locale/zh_TW.ts index a3a727edb0b..7a4f5ce9cb5 100644 --- a/data/locale/zh_TW.ts +++ b/data/locale/zh_TW.ts @@ -1,4 +1,4 @@ - + AboutDialog @@ -69,954 +69,187 @@ If you're interested in translating LMMS in another language or want to imp - AmplifierControlDialog + AboutJuceDialog - - VOL - VOL - - - - Volume: - 音量: - - - - PAN - PAN - - - - Panning: - 聲相: - - - - LEFT - - - - - Left gain: - 左增益: - - - - RIGHT - - - - - Right gain: - 右增益: - - - - AmplifierControls - - - Volume - 音量 - - - - Panning - 聲相 - - - - Left gain - 左增益 - - - - Right gain - 右增益 - - - - AudioAlsaSetupWidget - - - DEVICE - 裝置 - - - - CHANNELS - 聲道數 - - - - AudioFileProcessorView - - - Open sample + + About JUCE - - Reverse sample - 反轉取樣 - - - - Disable loop - 停用循環 - - - - Enable loop - 啟用循環 - - - - Enable ping-pong loop + + <b>About JUCE</b> - - Continue sample playback across notes - 跨音符繼續播放採樣 - - - - Amplify: - 放大: - - - - Start point: + + This program uses JUCE version 3.x.x. - - End point: + + JUCE is an open-source cross-platform C++ application framework for creating high quality desktop and mobile applications. + +The core JUCE modules (juce_audio_basics, juce_audio_devices, juce_core and juce_events) are permissively licensed under the terms of the ISC license. +Other modules are covered by a GNU GPL 3.0 license. + +Copyright (C) 2022 Raw Material Software Limited. - - Loopback point: - 循環點: + + This program uses JUCE version + - AudioFileProcessorWaveView + AudioDeviceSetupWidget - - Sample length: - 採樣長度: + + [System Default] + - AudioJack - - - JACK client restarted - JACK 客戶端已重啓 - - - - LMMS was kicked by JACK for some reason. Therefore the JACK backend of LMMS has been restarted. You will have to make manual connections again. - LMMS 由於某些原因與 JACK 中斷連線,因此 LMMS 的 JACK 後端已重新啟動,您必須手動重新連線。 - + CarlaAboutW - - JACK server down - JACK 伺服器發生問題 + + About Carla + - - The JACK server seems to have been shutdown and starting a new instance failed. Therefore LMMS is unable to proceed. You should save your project and restart JACK and LMMS. - JACK 伺服器似乎發生問題,而且無法重新啟動,因此 LMMS 無法繼續執行。請儲存專案,然後重新啟動 JACK 和 LMMS。 + + About + 關於 - - Client name + + About text here - - Channels + + Extended licensing here - - - AudioOss - - Device + + Artwork - - Channels + + Using KDE Oxygen icon set, designed by Oxygen Team. - - - AudioPortAudio::setupWidget - - Backend + + Contains some knobs, backgrounds and other small artwork from Calf Studio Gear, OpenAV and OpenOctave projects. - - Device + + VST is a trademark of Steinberg Media Technologies GmbH. - - - AudioPulseAudio - - Device + + Special thanks to António Saraiva for a few extra icons and artwork! - - Channels + + The LV2 logo has been designed by Thorsten Wilms, based on a concept from Peter Shorthose. - - - AudioSdl::setupWidget - - Device + + MIDI Keyboard designed by Thorsten Wilms. - - - AudioSndio - - Device + + Carla, Carla-Control and Patchbay icons designed by DoosC. - - Channels + + Features - - - AudioSoundIo::setupWidget - - Backend + + AU/AudioUnit: - - Device + + LADSPA: - - - AutomatableModel - - - &Reset (%1%2) - 重設(%1%2)(&R) - - - - &Copy value (%1%2) - 複製值(%1%2)(&C) - - - - &Paste value (%1%2) - 貼上值(%1%2)(&P) - - - - &Paste value - 貼上值 (&P) - - - - Edit song-global automation - 編輯歌曲全局的自動控制裝置 - - - - Remove song-global automation - 移除歌曲全域自動控制裝置 - - - - Remove all linked controls - 移除所有已連線的控制器 - - - - Connected to %1 - 已連線至 %1 - - - - Connected to controller - 連線至控制器 - - - - Edit connection... - 編輯連線… - - - - Remove connection - 移除連線 - - - - Connect to controller... - 連線至控制器… - - - - AutomationEditor - - Edit Value + + + + + + + + + TextLabel - - New outValue + + VST2: - - New inValue + + DSSI: - - Please open an automation clip with the context menu of a control! - 請透過控制的右鍵選單開啟自動控制模式! - - - - AutomationEditorWindow - - - Play/pause current clip (Space) - 播放/暫停當前片段(空格) - - - - Stop playing of current clip (Space) - 停止當前片段(空格) - - - - Edit actions - 編輯功能 - - - - Draw mode (Shift+D) - 繪製模式 (Shift+D) - - - - Erase mode (Shift+E) - 擦除模式 (Shift+E) - - - - Draw outValues mode (Shift+C) + + LV2: - - Flip vertically - 垂直翻轉 - - - - Flip horizontally - 水平翻轉 - - - - Interpolation controls - 補間控制 - - - - Discrete progression - 區間進程 (Discrete progression) - - - - Linear progression - 線性進程 (Linear progression) - - - - Cubic Hermite progression + + VST3: - - Tension value for spline + + OSC - - Tension: + + Host URLs: - - Zoom controls - 縮放控制 - - - - Horizontal zooming - 橫向縮放 - - - - Vertical zooming - 垂直縮放 - - - - Quantization controls - 量化控制 - - - - Quantization - 量化 - - - - - Automation Editor - no clip - 自動控制編輯器 - 沒有片段 + + Valid commands: + - - - Automation Editor - %1 - 自動控制編輯器 - %1 + + valid osc commands here + - - Model is already connected to this clip. - 模型已連接到此片段。 + + Example: + - - - AutomationClip - - Drag a control while pressing <%1> - 按住<%1>拖動控制器 + + License + 授權協議 - - - AutomationClipView - - Open in Automation editor - 在自動編輯器(Automation editor)中打開 - - - - Clear - 清除 - - - - Reset name - 重置名稱 - - - - Change name - 修改名稱 - - - - Set/clear record - 設置/清除錄製 - - - - Flip Vertically (Visible) - 垂直翻轉 (可見) - - - - Flip Horizontally (Visible) - 水平翻轉 (可見) - - - - %1 Connections - %1個連接 - - - - Disconnect "%1" - 斷開“%1”的連接 - - - - Model is already connected to this clip. - 模型已連接到此片段。 - - - - AutomationTrack - - - Automation track - 自動控制軌道 - - - - PatternEditor - - - Beat+Bassline Editor - 節拍+低音線編輯器 - - - - Play/pause current beat/bassline (Space) - 播放/暫停當前節拍/低音線(空格) - - - - Stop playback of current beat/bassline (Space) - 停止播放當前節拍/低音線(空格) - - - - Beat selector - 節拍選擇器 - - - - Track and step actions - - - - - Add beat/bassline - 添加節拍/低音線 - - - - Clone beat/bassline clip - - - - - Add sample-track - 新增採樣音軌 - - - - Add automation-track - 添加自動控制軌道 - - - - Remove steps - 移除音階 - - - - Add steps - 添加音階 - - - - Clone Steps - - - - - PatternClipView - - - Open in Beat+Bassline-Editor - 在節拍+Bassline編輯器中打開 - - - - Reset name - 重置名稱 - - - - Change name - 修改名稱 - - - - PatternTrack - - - Beat/Bassline %1 - 節拍/Bassline %1 - - - - Clone of %1 - %1 的副本 - - - - BassBoosterControlDialog - - - FREQ - 頻率 - - - - Frequency: - 頻率: - - - - GAIN - 增益 - - - - Gain: - 增益: - - - - RATIO - 比率 - - - - Ratio: - 比率: - - - - BassBoosterControls - - - Frequency - 頻率 - - - - Gain - 增益 - - - - Ratio - 比率 - - - - BitcrushControlDialog - - - IN - 輸入 - - - - OUT - 輸出 - - - - - GAIN - 增益 - - - - Input gain: - 輸入增益: - - - - NOISE - - - - - Input noise: - - - - - Output gain: - 輸出增益: - - - - CLIP - 壓限 - - - - Output clip: - - - - - Rate enabled - - - - - Enable sample-rate crushing - - - - - Depth enabled - - - - - Enable bit-depth crushing - - - - - FREQ - 頻率 - - - - Sample rate: - 採樣率: - - - - STEREO - - - - - Stereo difference: - 雙聲道差異: - - - - QUANT - - - - - Levels: - 級別: - - - - BitcrushControls - - - Input gain - 輸入增益 - - - - Input noise - - - - - Output gain - 輸出增益 - - - - Output clip - - - - - Sample rate - - - - - Stereo difference - - - - - Levels - 級別 - - - - Rate enabled - - - - - Depth enabled - - - - - CarlaAboutW - - - About Carla - - - - - About - 關於 - - - - About text here - - - - - Extended licensing here - - - - - Artwork - - - - - Using KDE Oxygen icon set, designed by Oxygen Team. - - - - - Contains some knobs, backgrounds and other small artwork from Calf Studio Gear, OpenAV and OpenOctave projects. - - - - - VST is a trademark of Steinberg Media Technologies GmbH. - - - - - Special thanks to António Saraiva for a few extra icons and artwork! - - - - - The LV2 logo has been designed by Thorsten Wilms, based on a concept from Peter Shorthose. - - - - - MIDI Keyboard designed by Thorsten Wilms. - - - - - Carla, Carla-Control and Patchbay icons designed by DoosC. - - - - - Features - - - - - AU/AudioUnit: - - - - - LADSPA: - - - - - - - - - - - - TextLabel - - - - - VST2: - - - - - DSSI: - - - - - LV2: - - - - - VST3: - - - - - OSC - - - - - Host URLs: - - - - - Valid commands: - - - - - valid osc commands here - - - - - Example: - - - - - License - 授權協議 - - - + GNU GENERAL PUBLIC LICENSE Version 2, June 1991 @@ -1301,15035 +534,18221 @@ POSSIBILITY OF SUCH DAMAGES. - - OSC Bridge Version + + OSC Bridge Version + + + + + Plugin Version + + + + + <br>Version %1<br>Carla is a fully-featured audio plugin host%2.<br><br>Copyright (C) 2011-2019 falkTX<br> + + + + + + (Engine not running) + + + + + Everything! (Including LRDF) + + + + + Everything! (Including CustomData/Chunks) + + + + + About 110&#37; complete (using custom extensions)<br/>Implemented Feature/Extensions:<ul><li>http://lv2plug.in/ns/ext/atom</li><li>http://lv2plug.in/ns/ext/buf-size</li><li>http://lv2plug.in/ns/ext/data-access</li><li>http://lv2plug.in/ns/ext/event</li><li>http://lv2plug.in/ns/ext/instance-access</li><li>http://lv2plug.in/ns/ext/log</li><li>http://lv2plug.in/ns/ext/midi</li><li>http://lv2plug.in/ns/ext/options</li><li>http://lv2plug.in/ns/ext/parameters</li><li>http://lv2plug.in/ns/ext/port-props</li><li>http://lv2plug.in/ns/ext/presets</li><li>http://lv2plug.in/ns/ext/resize-port</li><li>http://lv2plug.in/ns/ext/state</li><li>http://lv2plug.in/ns/ext/time</li><li>http://lv2plug.in/ns/ext/uri-map</li><li>http://lv2plug.in/ns/ext/urid</li><li>http://lv2plug.in/ns/ext/worker</li><li>http://lv2plug.in/ns/extensions/ui</li><li>http://lv2plug.in/ns/extensions/units</li><li>http://home.gna.org/lv2dynparam/rtmempool/v1</li><li>http://kxstudio.sf.net/ns/lv2ext/external-ui</li><li>http://kxstudio.sf.net/ns/lv2ext/programs</li><li>http://kxstudio.sf.net/ns/lv2ext/props</li><li>http://kxstudio.sf.net/ns/lv2ext/rtmempool</li><li>http://ll-plugins.nongnu.org/lv2/ext/midimap</li><li>http://ll-plugins.nongnu.org/lv2/ext/miditype</li></ul> + + + + + + + Using Juce host + + + + + About 85% complete (missing vst bank/presets and some minor stuff) + + + + + CarlaHostW + + + MainWindow + + + + + Rack + + + + + Patchbay + + + + + Logs + + + + + Loading... + + + + + Save + + + + + Clear + + + + + Ctrl+L + + + + + Auto-Scroll + + + + + Buffer Size: + + + + + Sample Rate: + + + + + ? Xruns + + + + + DSP Load: %p% + + + + + &File + 檔案(&F) + + + + &Engine + + + + + &Plugin + + + + + Macros (all plugins) + + + + + &Canvas + + + + + Zoom + + + + + &Settings + + + + + &Help + 幫助(&H) + + + + Tool Bar + + + + + Disk + + + + + + Home + + + + + Transport + + + + + Playback Controls + + + + + Time Information + + + + + Frame: + + + + + 000'000'000 + + + + + Time: + 時間: + + + + 00:00:00 + + + + + BBT: + + + + + 000|00|0000 + + + + + Settings + 設置 + + + + BPM + + + + + Use JACK Transport + + + + + Use Ableton Link + + + + + &New + 新建(&N) + + + + Ctrl+N + + + + + &Open... + 打開(&O)... + + + + + Open... + + + + + Ctrl+O + + + + + &Save + 保存(&S) + + + + Ctrl+S + + + + + Save &As... + 另存爲(&A)... + + + + + Save As... + + + + + Ctrl+Shift+S + + + + + &Quit + 退出(&Q) + + + + Ctrl+Q + + + + + &Start + + + + + F5 + + + + + St&op + + + + + F6 + + + + + &Add Plugin... + + + + + Ctrl+A + + + + + &Remove All + + + + + Enable + + + + + Disable + + + + + 0% Wet (Bypass) + + + + + 100% Wet + + + + + 0% Volume (Mute) + + + + + 100% Volume + + + + + Center Balance + + + + + &Play + + + + + Ctrl+Shift+P + + + + + &Stop + + + + + Ctrl+Shift+X + + + + + &Backwards + + + + + Ctrl+Shift+B + + + + + &Forwards + + + + + Ctrl+Shift+F + + + + + &Arrange + + + + + Ctrl+G + + + + + + &Refresh + + + + + Ctrl+R + + + + + Save &Image... + + + + + Auto-Fit + + + + + Zoom In + + + + + Ctrl++ + + + + + Zoom Out + + + + + Ctrl+- + + + + + Zoom 100% + + + + + Ctrl+1 + + + + + Show &Toolbar + + + + + &Configure Carla + + + + + &About + + + + + About &JUCE + + + + + About &Qt + + + + + Show Canvas &Meters + + + + + Show Canvas &Keyboard + + + + + Show Internal + + + + + Show External + + + + + Show Time Panel + + + + + Show &Side Panel + + + + + Ctrl+P + + + + + &Connect... + + + + + Compact Slots + + + + + Expand Slots + + + + + Perform secret 1 + + + + + Perform secret 2 + + + + + Perform secret 3 + + + + + Perform secret 4 + + + + + Perform secret 5 + + + + + Add &JACK Application... + + + + + &Configure driver... + + + + + Panic + + + + + Open custom driver panel... + + + + + Save Image... (2x zoom) + + + + + Save Image... (4x zoom) + + + + + Copy as Image to Clipboard + + + + + Ctrl+Shift+C + + + + + CarlaHostWindow + + + Export as... + + + + + + + + Error + 錯誤 + + + + Failed to load project + + + + + Failed to save project + + + + + Quit + 退出 + + + + Are you sure you want to quit Carla? + + + + + Could not connect to Audio backend '%1', possible reasons: +%2 + + + + + Could not connect to Audio backend '%1' + + + + + Warning + + + + + There are still some plugins loaded, you need to remove them to stop the engine. +Do you want to do this now? + + + + + CarlaSettingsW + + + Settings + 設置 + + + + main + + + + + canvas + + + + + engine + + + + + osc + + + + + file-paths + + + + + plugin-paths + + + + + wine + + + + + experimental + + + + + Widget + + + + + + Main + + + + + + Canvas + + + + + + Engine + + + + + File Paths + + + + + Plugin Paths + + + + + Wine + + + + + + Experimental + + + + + <b>Main</b> + + + + + Paths + 路徑 + + + + Default project folder: + + + + + Interface + + + + + Use "Classic" as default rack skin + + + + + Interface refresh interval: + + + + + + ms + + + + + Show console output in Logs tab (needs engine restart) + + + + + Show a confirmation dialog before quitting + + + + + + Theme + + + + + Use Carla "PRO" theme (needs restart) + + + + + Color scheme: + + + + + Black + + + + + System + + + + + Enable experimental features + + + + + <b>Canvas</b> + + + + + Bezier Lines + + + + + Theme: + + + + + Size: + + + + + 775x600 + + + + + 1550x1200 + + + + + 3100x2400 + + + + + 4650x3600 + + + + + 6200x4800 + + + + + 12400x9600 + + + + + Options + + + + + Auto-hide groups with no ports + + + + + Auto-select items on hover + + + + + Basic eye-candy (group shadows) + + + + + Render Hints + + + + + Anti-Aliasing + + + + + Full canvas repaints (slower, but prevents drawing issues) + + + + + <b>Engine</b> + + + + + + Core + + + + + Single Client + + + + + Multiple Clients + + + + + + Continuous Rack + + + + + + Patchbay + + + + + Audio driver: + + + + + Process mode: + + + + + + + + Maximum number of parameters to allow in the built-in 'Edit' dialog + + + + + Max Parameters: + + + + + ... + + + + + Reset Xrun counter after project load + + + + + Plugin UIs + + + + + + How much time to wait for OSC GUIs to ping back the host + + + + + UI Bridge Timeout: + + + + + Use OSC-GUI bridges when possible, this way separating the UI from DSP code + + + + + Use UI bridges instead of direct handling when possible + + + + + Make plugin UIs always-on-top + + + + + Make plugin UIs appear on top of Carla (needs restart) + + + + + NOTE: Plugin-bridge UIs cannot be managed by Carla on macOS + + + + + + Restart the engine to load the new settings + + + + + <b>OSC</b> + + + + + Enable OSC + + + + + Enable TCP port + + + + + + Use specific port: + + + + + Overridden by CARLA_OSC_TCP_PORT env var + + + + + + Use randomly assigned port + + + + + Enable UDP port + + + + + Overridden by CARLA_OSC_UDP_PORT env var + + + + + DSSI UIs require OSC UDP port enabled + + + + + <b>File Paths</b> + + + + + Audio + 音頻 + + + + MIDI + MIDI + + + + Used for the "audiofile" plugin + + + + + Used for the "midifile" plugin + + + + + + Add... + + + + + + Remove + + + + + + Change... + + + + + <b>Plugin Paths</b> + + + + + LADSPA + + + + + DSSI + + + + + LV2 + + + + + VST2 + + + + + VST3 + + + + + SF2/3 + + + + + SFZ + + + + + JSFX + + + + + CLAP + + + + + Restart Carla to find new plugins + + + + + <b>Wine</b> + + + + + Executable + + + + + Path to 'wine' binary: + + + + + Prefix + + + + + Auto-detect Wine prefix based on plugin filename + + + + + Fallback: + + + + + Note: WINEPREFIX env var is preferred over this fallback + + + + + Realtime Priority + + + + + Base priority: + + + + + WineServer priority: + + + + + These options are not available for Carla as plugin + + + + + <b>Experimental</b> + + + + + Experimental options! Likely to be unstable! + + + + + Enable plugin bridges + + + + + Enable Wine bridges + + + + + Enable jack applications + + + + + Export single plugins to LV2 + + + + + Use system/desktop-theme icons (needs restart) + + + + + Load Carla backend in global namespace (NOT RECOMMENDED) + + + + + Fancy eye-candy (fade-in/out groups, glow connections) + + + + + Use OpenGL for rendering (needs restart) + + + + + High Quality Anti-Aliasing (OpenGL only) + + + + + Render Ardour-style "Inline Displays" + + + + + Force mono plugins as stereo by running 2 instances at the same time. +This mode is not available for VST plugins. + + + + + Force mono plugins as stereo + + + + + When enabled, Carla will try to prevent plugins from doing things that might mess up the audio or cause xruns, such as fork(), gtk_init() and similar. + + + + + Prevent unsafe calls from plugins (needs restart) + + + + + Run plugins in a separate process, so if they crash it does not affect Carla. +Plugins get automatically deactivated in such cases. +Reactvate them to start the process again, with the last saved state applied to it. + + + + + Run plugins in bridge mode when possible + + + + + + + + Add Path + + + + + Dialog + + + Carla Control - Connect + + + + + Remote setup + + + + + UDP Port: + + + + + Remote host: + + + + + TCP Port: + + + + + Set value + + + + + TextLabel + + + + + Scale Points + + + + + DriverSettingsW + + + Driver Settings + + + + + Device: + + + + + Buffer size: + + + + + Sample rate: + 採樣率: + + + + Triple buffer + + + + + Show Driver Control Panel + + + + + Restart the engine to load the new settings + + + + + ExportProjectDialog + + + Export project + 導出工程 + + + + Export as loop (remove extra bar) + + + + + Export between loop markers + 只導出迴環標記中間的部分 + + + + Render Looped Section: + + + + + time(s) + + + + + File format settings + 檔案格式設定 + + + + File format: + 檔案格式: + + + + Sampling rate: + + + + + 44100 Hz + 44100 Hz + + + + 48000 Hz + 48000 Hz + + + + 88200 Hz + 88200 Hz + + + + 96000 Hz + 96000 Hz + + + + 192000 Hz + 192000 Hz + + + + Bit depth: + + + + + 16 Bit integer + + + + + 24 Bit integer + + + + + 32 Bit float + + + + + Stereo mode: + + + + + Mono + + + + + Stereo + + + + + Joint stereo + + + + + Compression level: + + + + + Bitrate: + 碼率: + + + + 64 KBit/s + 64 KBit/s + + + + 128 KBit/s + 128 KBit/s + + + + 160 KBit/s + 160 KBit/s + + + + 192 KBit/s + 192 KBit/s + + + + 256 KBit/s + 256 KBit/s + + + + 320 KBit/s + 320 KBit/s + + + + Use variable bitrate + 使用可變位元率 + + + + Quality settings + 質量設置 + + + + Interpolation: + 補間: + + + + Zero order hold + + + + + Sinc worst (fastest) + + + + + Sinc medium (recommended) + + + + + Sinc best (slowest) + + + + + Start + 開始 + + + + Cancel + 取消 + + + + InstrumentFunctionNoteStacking + + + octave + octave + + + + + Major + Major + + + + Majb5 + Majb5 + + + + minor + minor + + + + minb5 + minb5 + + + + sus2 + sus2 + + + + sus4 + sus4 + + + + aug + aug + + + + augsus4 + augsus4 + + + + tri + tri + + + + 6 + 6 + + + + 6sus4 + 6sus4 + + + + 6add9 + 6add9 + + + + m6 + m6 + + + + m6add9 + m6add9 + + + + 7 + 7 + + + + 7sus4 + 7sus4 + + + + 7#5 + 7#5 + + + + 7b5 + 7b5 + + + + 7#9 + 7#9 + + + + 7b9 + 7b9 + + + + 7#5#9 + 7#5#9 + + + + 7#5b9 + 7#5b9 + + + + 7b5b9 + 7b5b9 + + + + 7add11 + 7add11 + + + + 7add13 + 7add13 + + + + 7#11 + 7#11 + + + + Maj7 + Maj7 + + + + Maj7b5 + Maj7b5 + + + + Maj7#5 + Maj7#5 + + + + Maj7#11 + Maj7#11 + + + + Maj7add13 + Maj7add13 + + + + m7 + m7 + + + + m7b5 + m7b5 + + + + m7b9 + m7b9 + + + + m7add11 + m7add11 + + + + m7add13 + m7add13 + + + + m-Maj7 + m-Maj7 + + + + m-Maj7add11 + m-Maj7add11 + + + + m-Maj7add13 + m-Maj7add13 + + + + 9 + 9 + + + + 9sus4 + 9sus4 + + + + add9 + add9 + + + + 9#5 + 9#5 + + + + 9b5 + 9b5 + + + + 9#11 + 9#11 + + + + 9b13 + 9b13 + + + + Maj9 + Maj9 + + + + Maj9sus4 + Maj9sus4 + + + + Maj9#5 + Maj9#5 + + + + Maj9#11 + Maj9#11 + + + + m9 + m9 + + + + madd9 + madd9 + + + + m9b5 + m9b5 + + + + m9-Maj7 + m9-Maj7 + + + + 11 + 11 + + + + 11b9 + 11b9 + + + + Maj11 + Maj11 + + + + m11 + m11 + + + + m-Maj11 + m-Maj11 + + + + 13 + 13 + + + + 13#9 + 13#9 + + + + 13b9 + 13b9 + + + + 13b5b9 + 13b5b9 + + + + Maj13 + Maj13 + + + + m13 + m13 + + + + m-Maj13 + m-Maj13 + + + + Harmonic minor + Harmonic minor + + + + Melodic minor + Melodic minor + + + + Whole tone + + + + + Diminished + Diminished + + + + Major pentatonic + Major pentatonic + + + + Minor pentatonic + Minor pentatonic + + + + Jap in sen + Jap in sen + + + + Major bebop + Major bebop + + + + Dominant bebop + Dominant bebop + + + + Blues + Blues + + + + Arabic + Arabic + + + + Enigmatic + Enigmatic + + + + Neopolitan + Neopolitan + + + + Neopolitan minor + Neopolitan minor + + + + Hungarian minor + Hungarian minor + + + + Dorian + Dorian + + + + Phrygian + + + + + Lydian + Lydian + + + + Mixolydian + Mixolydian + + + + Aeolian + Aeolian + + + + Locrian + Locrian + + + + Minor + Minor + + + + Chromatic + Chromatic + + + + Half-Whole Diminished + + + + + 5 + 5 + + + + Phrygian dominant + + + + + Persian + + + + + InstrumentSoundShaping + + + VOLUME + 音量 + + + + Volume + 音量 + + + + CUTOFF + 切除 + + + + Cutoff frequency + 切除頻率 + + + + RESO + + + + + Resonance + 共鳴 + + + + JackAppDialog + + + Add JACK Application + + + + + Note: Features not implemented yet are greyed out + + + + + Application + + + + + Name: + + + + + Application: + + + + + From template + + + + + Custom + + + + + Template: + + + + + Command: + + + + + Setup + + + + + Session Manager: + + + + + None + + + + + Audio inputs: + + + + + MIDI inputs: + + + + + Audio outputs: + + + + + MIDI outputs: + + + + + Take control of main application window + + + + + Workarounds + + + + + Wait for external application start (Advanced, for Debug only) + + + + + Capture only the first X11 Window + + + + + Use previous client output buffer as input for the next client + + + + + Simulate 16 JACK MIDI outputs, with MIDI channel as port index + + + + + Error here + + + + + NSM applications cannot use abstract or absolute paths + + + + + NSM applications cannot use CLI arguments + + + + + You need to save the current Carla project before NSM can be used + + + + + JuceAboutW + + + This program uses JUCE version %1. + + + + + MidiPatternW + + + MIDI Pattern + + + + + Time Signature: + + + + + + + 1/4 + + + + + 2/4 + + + + + 3/4 + + + + + 4/4 + + + + + 5/4 + + + + + 6/4 + + + + + Measures: + + + + + + + 1 + + + + + 2 + + + + + 3 + + + + + 4 + + + + + 5 + 5 + + + + 6 + 6 + + + + 7 + 7 + + + + 8 + + + + + 9 + 9 + + + + 10 + + + + + 11 + 11 + + + + 12 + + + + + 13 + 13 + + + + 14 + + + + + 15 + + + + + 16 + + + + + Default Length: + + + + + + 1/16 + + + + + + 1/15 + + + + + + 1/12 + + + + + + 1/9 + + + + + + 1/8 + + + + + + 1/6 + + + + + + 1/3 + + + + + + 1/2 + + + + + Quantize: + + + + + &File + 檔案(&F) + + + + &Edit + 編輯(&E) + + + + &Quit + 退出(&Q) + + + + Esc + + + + + &Insert Mode + + + + + F + + + + + &Velocity Mode + + + + + D + + + + + Select All + + + + + A + + + + + PatchesDialog + + + + Qsynth: Channel Preset + Qsynth: 通道預設 + + + + + Bank selector + 音色選擇器 + + + + + Bank + + + + + + Program selector + + + + + + Patch + 音色 + + + + + Name + 名稱 + + + + + OK + 確定 + + + + + Cancel + 取消 + + + + PluginBrowser + + + no description + 沒有描述 + + + + A native amplifier plugin + 原生增益插件 + + + + Simple sampler with various settings for using samples (e.g. drums) in an instrument-track + 簡單地在樂器欄使用採樣(比如鼓音源), 同時也提供多種設置 + + + + Boost your bass the fast and simple way + + + + + Customizable wavetable synthesizer + 可自定製的波表合成器 + + + + An oversampling bitcrusher + + + + + Carla Patchbay Instrument + Carla Patchbay 樂器 + + + + Carla Rack Instrument + Carla Rack 樂器 + + + + A dynamic range compressor. + + + + + A 4-band Crossover Equalizer + + + + + A native delay plugin + 原生的衰減插件 + + + + A Dual filter plugin + + + + + plugin for processing dynamics in a flexible way + + + + + A native eq plugin + 原生的 EQ 插件 + + + + A native flanger plugin + 一個原生的 鑲邊 (Flanger) 插件 + + + + Emulation of GameBoy (TM) APU + GameBoy (TM) APU 模擬器 + + + + Player for GIG files + 播放 GIG 檔案的播放器 + + + + Filter for importing Hydrogen files into LMMS + 匯入 Hydrogen 專案檔至 LMMS 的解析器 + + + + Versatile drum synthesizer + 多功能鼓合成器 + + + + List installed LADSPA plugins + 列出已安裝的 LADSPA 插件 + + + + plugin for using arbitrary LADSPA-effects inside LMMS. + 在 LMMS 中使用任意 LADSPA 效果的插件。 + + + + Incomplete monophonic imitation TB-303 + + + + + plugin for using arbitrary LV2-effects inside LMMS. + + + + + plugin for using arbitrary LV2 instruments inside LMMS. + + + + + Filter for exporting MIDI-files from LMMS + 從 LMMS 匯出 MIDI 檔的解析器 + + + + Filter for importing MIDI-files into LMMS + 匯入 MIDI 檔至 LMMS 的解析器 + + + + Monstrous 3-oscillator synth with modulation matrix + + + + + A multitap echo delay plugin + + + + + A NES-like synthesizer + 類似於 NES 的合成器 + + + + 2-operator FM Synth + + + + + Additive Synthesizer for organ-like sounds + + + + + GUS-compatible patch instrument + GUS 兼容音色的樂器 + + + + Plugin for controlling knobs with sound peaks + + + + + Reverb algorithm by Sean Costello + + + + + Player for SoundFont files + 播放 SoundFont 檔案的播放器 + + + + LMMS port of sfxr + sfxr 的 LMMS 移植版本 + + + + Emulation of the MOS6581 and MOS8580 SID. +This chip was used in the Commodore 64 computer. + 模擬 MOS6581 和 MOS8580 SID 的模擬器 +這些芯片曾在 Commodore 64 電腦上用過。 + + + + A graphical spectrum analyzer. + + + + + Plugin for enhancing stereo separation of a stereo input file + 用以增強雙聲道輸入檔的聲道分離插件 + + + + Plugin for freely manipulating stereo output + + + + + Tuneful things to bang on + + + + + Three powerful oscillators you can modulate in several ways + + + + + A stereo field visualizer. + + + + + VST-host for using VST(i)-plugins within LMMS + LMMS的VST(i)插件宿主 + + + + Vibrating string modeler + + + + + plugin for using arbitrary VST effects inside LMMS. + + + + + 4-oscillator modulatable wavetable synth + + + + + plugin for waveshaping + + + + + Mathematical expression parser + + + + + Embedded ZynAddSubFX + 內置的 ZynAddSubFX + + + + An all-pass filter allowing for extremely high orders. + + + + + Granular pitch shifter + + + + + Upwards/downwards multiband compression plugin powered by the eldritch elder god LOMMUS. + + + + + Basic Slicer + + + + + Tap to the beat + + + + + PluginEdit + + + Plugin Editor + + + + + Edit + + + + + Control + 控制 + + + + MIDI Control Channel: + + + + + N + + + + + Output dry/wet (100%) + + + + + Output volume (100%) + + + + + Balance Left (0%) + + + + + + Balance Right (0%) + + + + + Use Balance + + + + + Use Panning + + + + + Settings + 設置 + + + + Use Chunks + + + + + Audio: + + + + + Fixed-Size Buffer + + + + + Force Stereo (needs reload) + + + + + MIDI: + + + + + Map Program Changes + + + + + Send Notes + + + + + Send Bank/Program Changes + + + + + Send Control Changes + + + + + Send Channel Pressure + + + + + Send Note Aftertouch + + + + + Send Pitchbend + + + + + Send All Sound/Notes Off + + + + + +Plugin Name + + + + + + Program: - - Plugin Version + + MIDI Program: + + + + + Save State + + + + + Load State + + + + + Information + + + + + Label/URI: + + + + + Name: + + + + + Type: + 類型: + + + + Maker: + + + + + Copyright: + + + + + Unique ID: + + + + + PluginFactory + + + Plugin not found. + 未找到插件。 + + + + LMMS plugin %1 does not have a plugin descriptor named %2! + + + + + PluginListDialog + + + Carla - Add New + + + + + Requirements + + + + + With Custom GUI + + + + + With CV Ports + + + + + Real-time safe only + + + + + Stereo only + + + + + With Inline Display + + + + + Favorites only + + + + + (Number of Plugins go here) + + + + + &Add Plugin + + + + + Cancel + + + + + Refresh + + + + + Reset filters + + + + + + + + + + + + + + + + + + + + TextLabel + + + + + Format: + + + + + Architecture: + + + + + Type: + + + + + MIDI Ins: + + + + + Audio Ins: + + + + + CV Outs: + + + + + MIDI Outs: + + + + + Parameter Ins: + + + + + Parameter Outs: + + + + + Audio Outs: + + + + + CV Ins: + + + + + UniqueID: + + + + + Has Inline Display: + + + + + Has Custom GUI: + + + + + Is Synth: + + + + + Is Bridged: + + + + + Information + + + + + Name + + + + + Label/Id/URI + + + + + Maker + + + + + Binary/Filename + + + + + Format - - <br>Version %1<br>Carla is a fully-featured audio plugin host%2.<br><br>Copyright (C) 2011-2019 falkTX<br> + + Internal - - - (Engine not running) + + LADSPA - - Everything! (Including LRDF) + + DSSI - - Everything! (Including CustomData/Chunks) + + LV2 - - About 110&#37; complete (using custom extensions)<br/>Implemented Feature/Extensions:<ul><li>http://lv2plug.in/ns/ext/atom</li><li>http://lv2plug.in/ns/ext/buf-size</li><li>http://lv2plug.in/ns/ext/data-access</li><li>http://lv2plug.in/ns/ext/event</li><li>http://lv2plug.in/ns/ext/instance-access</li><li>http://lv2plug.in/ns/ext/log</li><li>http://lv2plug.in/ns/ext/midi</li><li>http://lv2plug.in/ns/ext/options</li><li>http://lv2plug.in/ns/ext/parameters</li><li>http://lv2plug.in/ns/ext/port-props</li><li>http://lv2plug.in/ns/ext/presets</li><li>http://lv2plug.in/ns/ext/resize-port</li><li>http://lv2plug.in/ns/ext/state</li><li>http://lv2plug.in/ns/ext/time</li><li>http://lv2plug.in/ns/ext/uri-map</li><li>http://lv2plug.in/ns/ext/urid</li><li>http://lv2plug.in/ns/ext/worker</li><li>http://lv2plug.in/ns/extensions/ui</li><li>http://lv2plug.in/ns/extensions/units</li><li>http://home.gna.org/lv2dynparam/rtmempool/v1</li><li>http://kxstudio.sf.net/ns/lv2ext/external-ui</li><li>http://kxstudio.sf.net/ns/lv2ext/programs</li><li>http://kxstudio.sf.net/ns/lv2ext/props</li><li>http://kxstudio.sf.net/ns/lv2ext/rtmempool</li><li>http://ll-plugins.nongnu.org/lv2/ext/midimap</li><li>http://ll-plugins.nongnu.org/lv2/ext/miditype</li></ul> + + VST2 - - - - Using Juce host + + VST3 - - About 85% complete (missing vst bank/presets and some minor stuff) + + CLAP - - - CarlaHostW - - MainWindow + + AU - - Rack + + JSFX - - Patchbay + + Sound Kits - - Logs + + Type - - Loading... + + Effects - - Buffer Size: + + Instruments - - Sample Rate: + + MIDI Plugins - - ? Xruns + + Other/Misc - - DSP Load: %p% + + Category - - &File - 檔案(&F) + + All + - - &Engine + + Delay - - &Plugin + + Distortion - - Macros (all plugins) + + Dynamics - - &Canvas + + EQ - - Zoom + + Filter - - &Settings + + Modulator - - &Help - 幫助(&H) + + Synth + - - toolBar + + Utility - - Disk + + + Other - - - Home + + Architecture - - Transport + + + Native - - Playback Controls + + Bridged - - Time Information + + Bridged (Wine) - - Frame: + + Focus Text Search - - 000'000'000 + + Ctrl+F - - Time: - 時間: + + Bridged (32bit) + - - 00:00:00 + + Discovering internal plugins... - - BBT: + + Discovering LADSPA plugins... - - 000|00|0000 + + Discovering DSSI plugins... - - Settings - 設置 + + Discovering LV2 plugins... + - - BPM + + Discovering VST2 plugins... - - Use JACK Transport + + Discovering VST3 plugins... - - Use Ableton Link + + Discovering CLAP plugins... - - &New - 新建(&N) + + Discovering AU plugins... + - - Ctrl+N + + Discovering JSFX plugins... - - &Open... - 打開(&O)... + + Discovering SF2 kits... + - - - Open... + + Discovering SFZ kits... - - Ctrl+O + + Unknown - - &Save - 保存(&S) + + + + + Yes + - - Ctrl+S + + + + + No + + + PluginParameter - - Save &As... - 另存爲(&A)... + + Form + - - - Save As... + + Parameter Name - - Ctrl+Shift+S + + TextLabel - - &Quit - 退出(&Q) + + ... + + + + PluginRefreshDialog - - Ctrl+Q + + Plugin Refresh - - &Start + + Search for: - - F5 + + All plugins, ignoring cache - - St&op + + Updated plugins only - - F6 + + Check previously invalid plugins - - &Add Plugin... + + Press 'Scan' to begin the search - - Ctrl+A + + Scan - - &Remove All + + >> Skip - - Enable + + Close + + + PluginWidget - - Disable + + + + + + Frame - - 0% Wet (Bypass) + + Enable - - 100% Wet - + + On/Off + 開/關 - - 0% Volume (Mute) + + + + + PluginName - - 100% Volume - + + MIDI + MIDI - - Center Balance + + AUDIO IN - - &Play + + AUDIO OUT - - Ctrl+Shift+P + + GUI - - &Stop + + Edit - - Ctrl+Shift+X + + Remove - - &Backwards + + Plugin Name - - Ctrl+Shift+B + + Preset: + + + ProjectRenderer - - &Forwards + + WAV (*.wav) - - Ctrl+Shift+F + + FLAC (*.flac) - - &Arrange + + OGG (*.ogg) - - Ctrl+G + + MP3 (*.mp3) + + + QGroupBox - - - &Refresh + + + Settings for %1 + + + QObject - - Ctrl+R + + Reload Plugin - - Save &Image... - + + Show GUI + 顯示圖形界面 - - Auto-Fit - + + Help + 幫助 - - Zoom In + + LADSPA plugins - - Ctrl++ + + The project contains %1 LADSPA plugin(s) which might have not been restored correctly! Please check the project. - - Zoom Out + + URI: - - Ctrl+- + + Project: - - Zoom 100% + + Maker: - - Ctrl+1 + + Homepage: - - Show &Toolbar + + License: - - &Configure Carla + + File: %1 - - &About + + failed to load description - - About &JUCE + + Open audio file - - About &Qt + + Error loading sample - - Show Canvas &Meters + + %1 (unsupported) + + + QWidget - - Show Canvas &Keyboard - + + + Name: + 名稱: - - Show Internal - + + Maker: + 製作者: - - Show External - + + Copyright: + 版權: - - Show Time Panel - + + Requires Real Time: + 要求實時: - - Show &Side Panel - + + + + Yes + - - &Connect... - + + + + No + - - Compact Slots - + + Real Time Capable: + 是否支持實時: - - Expand Slots + + In Place Broken: - - Perform secret 1 - + + Channels In: + 輸入通道: - - Perform secret 2 - + + Channels Out: + 輸出通道: - - Perform secret 3 - + + File: %1 + 檔案:%1 - - Perform secret 4 - + + File: + 檔案: + + + XYControllerW - - Perform secret 5 + + XY Controller - - Add &JACK Application... + + X Controls: - - &Configure driver... + + Y Controls: - - Panic + + Smooth - - Open custom driver panel... + + &Settings - - - CarlaHostWindow - - Export as... + + Channels - - - - - Error - 錯誤 - - - - Failed to load project + + &File - - Failed to save project + + Show MIDI &Keyboard - - Quit - 退出 + + (All) + - - Are you sure you want to quit Carla? + + 1 - - Could not connect to Audio backend '%1', possible reasons: -%2 + + 2 - - Could not connect to Audio backend '%1' + + 3 - - Warning + + 4 - - There are still some plugins loaded, you need to remove them to stop the engine. -Do you want to do this now? + + 5 - - - CarlaInstrumentView - - Show GUI - 顯示圖形界面 + + 6 + - - - CarlaSettingsW - - Settings - 設置 + + 7 + - - main + + 8 - - canvas + + 9 - - engine + + 10 - - osc + + 11 - - file-paths + + 12 - - plugin-paths + + 13 - - wine + + 14 - - experimental + + 15 - - Widget + + 16 - - - Main + + &Quit - - - Canvas + + Esc - - - Engine + + (None) + + + lmms::AmplifierControls - - File Paths + + Volume - - Plugin Paths + + Panning - - Wine + + Left gain - - - Experimental + + Right gain + + + lmms::AudioFileProcessor - - <b>Main</b> + + Amplify - - Paths - 路徑 + + Start of sample + - - Default project folder: + + End of sample - - Interface + + Loopback point - - Interface refresh interval: + + Reverse sample - - - ms + + Loop mode - - Show console output in Logs tab (needs engine restart) + + Stutter - - Show a confirmation dialog before quitting + + Interpolation mode - - - Theme + + None - - Use Carla "PRO" theme (needs restart) + + Linear - - Color scheme: + + Sinc - - Black + + Sample not found + + + lmms::AudioJack - - System + + JACK client restarted - - Enable experimental features + + LMMS was kicked by JACK for some reason. Therefore the JACK backend of LMMS has been restarted. You will have to make manual connections again. - - <b>Canvas</b> + + JACK server down - - Bezier Lines + + The JACK server seems to have been shutdown and starting a new instance failed. Therefore LMMS is unable to proceed. You should save your project and restart JACK and LMMS. - - Theme: + + Client name - - Size: + + Channels + + + lmms::AudioOss - - 775x600 + + Device - - 1550x1200 + + Channels + + + lmms::AudioPortAudio::setupWidget - - 3100x2400 + + Backend - - 4650x3600 + + Device + + + lmms::AudioPulseAudio - - 6200x4800 + + Device - - Options + + Channels + + + lmms::AudioSdl::setupWidget - - Auto-hide groups with no ports + + Playback device - - Auto-select items on hover + + Input device + + + lmms::AudioSndio - - Basic eye-candy (group shadows) + + Device - - Render Hints + + Channels + + + lmms::AudioSoundIo::setupWidget - - Anti-Aliasing + + Backend - - Full canvas repaints (slower, but prevents drawing issues) + + Device + + + lmms::AutomatableModel - - <b>Engine</b> + + &Reset (%1%2) - - - Core + + &Copy value (%1%2) - - Single Client + + &Paste value (%1%2) - - Multiple Clients + + &Paste value - - - Continuous Rack + + Edit song-global automation - - - Patchbay + + Remove song-global automation - - Audio driver: + + Remove all linked controls - - Process mode: + + Connected to %1 - - - - - Maximum number of parameters to allow in the built-in 'Edit' dialog + + Connected to controller - - Max Parameters: + + Edit connection... - - ... + + Remove connection - - Reset Xrun counter after project load + + Connect to controller... + + + lmms::AutomationClip - - Plugin UIs + + Drag a control while pressing <%1> + + + lmms::AutomationTrack - - - How much time to wait for OSC GUIs to ping back the host + + Automation track + + + lmms::BassBoosterControls - - UI Bridge Timeout: + + Frequency - - Use OSC-GUI bridges when possible, this way separating the UI from DSP code + + Gain - - Use UI bridges instead of direct handling when possible + + Ratio + + + lmms::BitInvader - - Make plugin UIs always-on-top + + Sample length - - Make plugin UIs appear on top of Carla (needs restart) + + Interpolation - - NOTE: Plugin-bridge UIs cannot be managed by Carla on macOS + + Normalize + + + lmms::BitcrushControls - - - Restart the engine to load the new settings + + Input gain - - <b>OSC</b> + + Input noise - - Enable OSC + + Output gain - - Enable TCP port + + Output clip - - - Use specific port: + + Sample rate - - Overridden by CARLA_OSC_TCP_PORT env var + + Stereo difference - - - Use randomly assigned port + + Levels - - Enable UDP port + + Rate enabled - - Overridden by CARLA_OSC_UDP_PORT env var + + Depth enabled + + + lmms::Clip - - DSSI UIs require OSC UDP port enabled + + Mute + + + lmms::CompressorControls - - <b>File Paths</b> + + Threshold - - Audio - 音頻 + + Ratio + - - MIDI - MIDI + + Attack + - - Used for the "audiofile" plugin + + Release - - Used for the "midifile" plugin + + Knee - - - Add... + + Hold - - - Remove + + Range - - - Change... + + RMS Size - - <b>Plugin Paths</b> + + Mid/Side - - LADSPA + + Peak Mode - - DSSI + + Lookahead Length - - LV2 + + Input Balance - - VST2 + + Output Balance - - VST3 + + Limiter - - SF2/3 + + Output Gain - - SFZ + + Input Gain - - Restart Carla to find new plugins + + Blend - - <b>Wine</b> + + Stereo Balance - - Executable + + Auto Makeup Gain - - Path to 'wine' binary: + + Audition - - Prefix + + Feedback - - Auto-detect Wine prefix based on plugin filename + + Auto Attack - - Fallback: + + Auto Release - - Note: WINEPREFIX env var is preferred over this fallback + + Lookahead - - Realtime Priority + + Tilt - - Base priority: + + Tilt Frequency - - WineServer priority: + + Stereo Link - - These options are not available for Carla as plugin + + Mix + + + lmms::Controller - - <b>Experimental</b> + + Controller %1 + + + lmms::DelayControls - - Experimental options! Likely to be unstable! + + Delay samples - - Enable plugin bridges + + Feedback - - Enable Wine bridges + + LFO frequency - - Enable jack applications + + LFO amount - - Export single plugins to LV2 + + Output gain + + + lmms::DispersionControls - - Load Carla backend in global namespace (NOT RECOMMENDED) + + Amount - - Fancy eye-candy (fade-in/out groups, glow connections) + + Frequency - - Use OpenGL for rendering (needs restart) + + Resonance - - High Quality Anti-Aliasing (OpenGL only) + + Feedback - - Render Ardour-style "Inline Displays" + + DC Offset Removal + + + lmms::DualFilterControls - - Force mono plugins as stereo by running 2 instances at the same time. -This mode is not available for VST plugins. + + Filter 1 enabled - - Force mono plugins as stereo + + Filter 1 type - - Prevent plugins from doing bad stuff (needs restart) + + Cutoff frequency 1 - - Whenever possible, run the plugins in bridge mode. + + Q/Resonance 1 - - Run plugins in bridge mode when possible + + Gain 1 - - - - - Add Path + + Mix - - - CompressorControlDialog - - Threshold: + + Filter 2 enabled - - Volume at which the compression begins to take place + + Filter 2 type - - Ratio: - 比率: + + Cutoff frequency 2 + - - How far the compressor must turn the volume down after crossing the threshold + + Q/Resonance 2 - - Attack: - 打進聲: + + Gain 2 + - - Speed at which the compressor starts to compress the audio + + + Low-pass - - Release: - 釋音: + + + Hi-pass + - - Speed at which the compressor ceases to compress the audio + + + Band-pass csg - - Knee: + + + Band-pass czpg - - Smooth out the gain reduction curve around the threshold + + + Notch - - Range: + + + All-pass - - Maximum gain reduction + + + Moog - - Lookahead Length: + + + 2x Low-pass - - How long the compressor has to react to the sidechain signal ahead of time + + + RC Low-pass 12 dB/oct - - Hold: - 持續: + + + RC Band-pass 12 dB/oct + - - Delay between attack and release stages + + + RC High-pass 12 dB/oct - - RMS Size: + + + RC Low-pass 24 dB/oct - - Size of the RMS buffer + + + RC Band-pass 24 dB/oct - - Input Balance: + + + RC High-pass 24 dB/oct - - Bias the input audio to the left/right or mid/side + + + Vocal Formant - - Output Balance: + + + 2x Moog - - Bias the output audio to the left/right or mid/side + + + SV Low-pass - - Stereo Balance: + + + SV Band-pass - - Bias the sidechain signal to the left/right or mid/side + + + SV High-pass - - Stereo Link Blend: + + + SV Notch - - Blend between unlinked/maximum/average/minimum stereo linking modes + + + Fast Formant - - Tilt Gain: + + + Tripole + + + lmms::DynProcControls - - Bias the sidechain signal to the low or high frequencies. -6 db is lowpass, 6 db is highpass. + + Input gain - - Tilt Frequency: + + Output gain - - Center frequency of sidechain tilt filter + + Attack time - - Mix: + + Release time - - Balance between wet and dry signals + + Stereo mode + + + lmms::Effect - - Auto Attack: + + Effect enabled - - Automatically control attack value depending on crest factor + + Wet/Dry mix - - Auto Release: + + Gate - - Automatically control release value depending on crest factor + + Decay + + + lmms::EffectChain - - Output gain - 輸出增益 + + Effects enabled + + + + lmms::Engine - - - Gain - 增益 + + Generating wavetables + - - Output volume + + Initializing data structures - - Input gain - 輸入增益 + + Opening audio and midi devices + - - Input volume + + Launching audio engine threads + + + lmms::EnvelopeAndLfoParameters - - Root Mean Square + + Env pre-delay - - Use RMS of the input + + Env attack - - Peak + + Env hold - - Use absolute value of the input + + Env decay - - Left/Right + + Env sustain - - Compress left and right audio + + Env release - - Mid/Side + + Env mod amount - - Compress mid and side audio + + LFO pre-delay - - Compressor + + LFO attack - - Compress the audio + + LFO frequency - - Limiter + + LFO mod amount - - Set Ratio to infinity (is not guaranteed to limit audio volume) + + LFO wave shape - - Unlinked + + LFO frequency x 100 - - Compress each channel separately + + Modulate env amount - - Maximum + + Sample not found + + + lmms::EqControls - - Compress based on the loudest channel + + Input gain - - Average + + Output gain - - Compress based on the averaged channel volume + + Low-shelf gain - - Minimum + + Peak 1 gain - - Compress based on the quietest channel + + Peak 2 gain - - Blend + + Peak 3 gain - - Blend between stereo linking modes + + Peak 4 gain - - Auto Makeup Gain + + High-shelf gain - - Automatically change makeup gain depending on threshold, knee, and ratio settings + + HP res - - - Soft Clip + + Low-shelf res - - Play the delta signal + + Peak 1 BW - - Use the compressor's output as the sidechain input + + Peak 2 BW - - Lookahead Enabled + + Peak 3 BW - - Enable Lookahead, which introduces 20 milliseconds of latency + + Peak 4 BW - - - CompressorControls - - Threshold + + High-shelf res - - Ratio - 比率 + + LP res + - - Attack - 打進聲 + + HP freq + - - Release - 釋放 + + Low-shelf freq + - - Knee + + Peak 1 freq - - Hold - 保持 + + Peak 2 freq + - - Range + + Peak 3 freq - - RMS Size + + Peak 4 freq - - Mid/Side + + High-shelf freq - - Peak Mode + + LP freq - - Lookahead Length + + HP active - - Input Balance + + Low-shelf active - - Output Balance + + Peak 1 active - - Limiter + + Peak 2 active - - Output Gain + + Peak 3 active - - Input Gain + + Peak 4 active - - Blend + + High-shelf active - - Stereo Balance + + LP active - - Auto Makeup Gain + + LP 12 - - Audition + + LP 24 - - Feedback + + LP 48 - - Auto Attack + + HP 12 - - Auto Release + + HP 24 - - Lookahead + + HP 48 - - Tilt + + Low-pass type - - Tilt Frequency + + High-pass type - - Stereo Link + + Analyse IN - - Mix - 混合 + + Analyse OUT + - Controller + lmms::FlangerControls - - Controller %1 - 控制器%1 + + Delay samples + - - - ControllerConnectionDialog - - Connection Settings - 連接設置 + + LFO frequency + - - MIDI CONTROLLER - MIDI控制器 + + Amount + - - Input channel - 輸入通道 + + Stereo phase + - - CHANNEL - 通道 + + Feedback + - - Input controller - 輸入控制器 + + Noise + - - CONTROLLER - 控制器 + + Invert + + + + lmms::FreeBoyInstrument - - - Auto Detect - 自動檢測 + + Sweep time + - - MIDI-devices to receive MIDI-events from - 用來接收 MIDI 事件的MIDI 設備 + + Sweep direction + - - USER CONTROLLER - 用戶控制器 + + Sweep rate shift amount + - - MAPPING FUNCTION - 映射函數 + + + Wave pattern duty cycle + - - OK - 確定 + + Channel 1 volume + - - Cancel - 取消 + + + + Volume sweep direction + - - LMMS - LMMS + + + + Length of each step in sweep + - - Cycle Detected. - 檢測到環路。 + + Channel 2 volume + - - - ControllerRackView - - Controller Rack - 控制器機架 + + Channel 3 volume + - - Add - 增加 + + Channel 4 volume + - - Confirm Delete - 刪除前確認 + + Shift Register width + - - Confirm delete? There are existing connection(s) associated with this controller. There is no way to undo. - 確定要刪除嗎?此控制器仍處於被連接狀態。此操作不可撤銷。 + + Right output level + - - - ControllerView - - Controls - 控制器 + + Left output level + - - Rename controller - 重命名控制器 + + Channel 1 to SO2 (Left) + - - Enter the new name for this controller - 輸入這個控制器的新名稱 + + Channel 2 to SO2 (Left) + - - LFO + + Channel 3 to SO2 (Left) - - &Remove this controller + + Channel 4 to SO2 (Left) - - Re&name this controller + + Channel 1 to SO1 (Right) - - - CrossoverEQControlDialog - - Band 1/2 crossover: + + Channel 2 to SO1 (Right) - - Band 2/3 crossover: + + Channel 3 to SO1 (Right) - - Band 3/4 crossover: + + Channel 4 to SO1 (Right) - - Band 1 gain + + Treble - - Band 1 gain: + + Bass + + + lmms::GigInstrument - - Band 2 gain + + Bank - - Band 2 gain: + + Patch - - Band 3 gain + + Gain + + + lmms::GranularPitchShifterControls - - Band 3 gain: + + Pitch - - Band 4 gain + + Grain Size - - Band 4 gain: + + Spray - - Band 1 mute + + Jitter - - Mute band 1 + + Twitch - - Band 2 mute + + Pitch Stereo Spread - - Mute band 2 + + Spray Stereo - - Band 3 mute + + Shape - - Mute band 3 + + Fade Length - - Band 4 mute + + Feedback - - Mute band 4 + + Minimum Allowed Latency - - - DelayControls - - Delay samples + + Prefilter - - Feedback + + Density - - LFO frequency + + Glide - - LFO amount + + Ring Buffer Length - - Output gain - 輸出增益 + + 5 Seconds + - - - DelayControlsDialog - - DELAY + + 10 Seconds (Size) - - Delay time + + 40 Seconds (Size and Pitch) - - FDBK + + 40 Seconds (Size and Spray and Jitter) - - Feedback amount + + 120 Seconds (All of the above) + + + lmms::InstrumentFunctionArpeggio - - RATE + + Arpeggio - - LFO frequency + + Arpeggio type - - AMNT + + Arpeggio range - - LFO amount + + Note repeats - - Out gain + + Cycle steps - - Gain - 增益 + + Skip rate + - - - Dialog - - Add JACK Application + + Miss rate - - Note: Features not implemented yet are greyed out + + Arpeggio time - - Application + + Arpeggio gate - - Name: + + Arpeggio direction - - Application: + + Arpeggio mode - - From template + + Up - - Custom + + Down - - Template: + + Up and down - - Command: + + Down and up - - Setup + + Random - - Session Manager: + + Free - - None - + + Sort + - - Audio inputs: + + Sync + + + lmms::InstrumentFunctionNoteStacking - - MIDI inputs: + + Chords - - Audio outputs: + + Chord type - - MIDI outputs: + + Chord range + + + lmms::InstrumentSoundShaping - - Take control of main application window + + Envelopes/LFOs - - Workarounds + + Filter type - - Wait for external application start (Advanced, for Debug only) + + Cutoff frequency - - Capture only the first X11 Window + + Q/Resonance - - Use previous client output buffer as input for the next client + + Low-pass - - Simulate 16 JACK MIDI outputs, with MIDI channel as port index + + Hi-pass - - Error here + + Band-pass csg - - Carla Control - Connect + + Band-pass czpg - - Remote setup + + Notch - - UDP Port: + + All-pass - - Remote host: + + Moog - - TCP Port: + + 2x Low-pass - - Reported host + + RC Low-pass 12 dB/oct - - Automatic + + RC Band-pass 12 dB/oct - - Custom: + + RC High-pass 12 dB/oct - - In some networks (like USB connections), the remote system cannot reach the local network. You can specify here which hostname or IP to make the remote Carla connect to. -If you are unsure, leave it as 'Automatic'. + + RC Low-pass 24 dB/oct - - Set value + + RC Band-pass 24 dB/oct - - TextLabel + + RC High-pass 24 dB/oct - - Scale Points + + Vocal Formant - - - DriverSettingsW - - Driver Settings + + 2x Moog - - Device: + + SV Low-pass - - Buffer size: + + SV Band-pass - - Sample rate: - 採樣率: + + SV High-pass + - - Triple buffer + + SV Notch - - Show Driver Control Panel + + Fast Formant - - Restart the engine to load the new settings + + Tripole - DualFilterControlDialog + lmms::InstrumentTrack - - - FREQ - 頻率 + + + unnamed_track + - - - Cutoff frequency - 切除頻率 + + Base note + - - - RESO + + First note - - - Resonance - 共鳴 + + Last note + - - - GAIN - 增益 + + Volume + - - - Gain - 增益 + + Panning + - - MIX + + Pitch - - Mix - 混合 + + Pitch range + - - Filter 1 enabled - 已啓用過濾器 1 + + Mixer channel + - - Filter 2 enabled - 已啓用過濾器 2 + + Master pitch + - - Enable/disable filter 1 + + Enable/Disable MIDI CC - - Enable/disable filter 2 + + CC Controller %1 + + + + + + Default preset - DualFilterControls + lmms::Keymap - - Filter 1 enabled - 過濾器1 已啓用 + + empty + + + + lmms::KickerInstrument - - Filter 1 type - 過濾器 1 類型 + + Start frequency + - - Cutoff frequency 1 + + End frequency - - Q/Resonance 1 - 濾波器 1 Q值 + + Length + - - Gain 1 - 增益 1 + + Start distortion + - - Mix - 混合 + + End distortion + - - Filter 2 enabled - 已啓用過濾器 2 + + Gain + - - Filter 2 type - 過濾器 1 類型 {2 ?} + + Envelope slope + - - Cutoff frequency 2 + + Noise - - Q/Resonance 2 - 濾波器 2 Q值 + + Click + - - Gain 2 - 增益 2 + + Frequency slope + - - - Low-pass + + Start from note - - - Hi-pass + + End to note + + + lmms::LOMMControls - - - Band-pass csg + + Depth - - - Band-pass czpg + + Time - - - Notch - 凹口濾波器 + + Input Volume + - - - All-pass + + Output Volume - - - Moog - Moog + + Upward Depth + - - - 2x Low-pass + + Downward Depth - - - RC Low-pass 12 dB/oct + + High/Mid Split - - - RC Band-pass 12 dB/oct + + Mid/Low Split - - - RC High-pass 12 dB/oct + + Enable High/Mid Split - - - RC Low-pass 24 dB/oct + + Enable Mid/Low Split - - - RC Band-pass 24 dB/oct + + Enable High Band - - - RC High-pass 24 dB/oct + + Enable Mid Band - - - Vocal Formant + + Enable Low Band - - - 2x Moog + + High Input Volume - - - - SV Low-pass + + + Mid Input Volume - - - SV Band-pass + + Low Input Volume - - - SV High-pass + + High Output Volume - - - SV Notch + + Mid Output Volume - - - Fast Formant + + Low Output Volume - - - Tripole + + Above Threshold High - - - Editor - - Transport controls + + Above Threshold Mid - - Play (Space) - 播放(空格) + + Above Threshold Low + - - Stop (Space) - 停止(空格) + + Above Ratio High + - - Record - 錄音 + + Above Ratio Mid + - - Record while playing - 播放時錄音 + + Above Ratio Low + - - Toggle Step Recording + + Below Threshold High - - - Effect - - Effect enabled - 啓用效果器 + + Below Threshold Mid + - - Wet/Dry mix - 幹/溼混合 + + Below Threshold Low + - - Gate - 門限 + + Below Ratio High + - - Decay - 衰減 + + Below Ratio Mid + - - - EffectChain - - Effects enabled - 啓用效果器 + + Below Ratio Low + - - - EffectRackView - - EFFECTS CHAIN - 效果器鏈 + + Attack High + - - Add effect - 增加效果器 + + Attack Mid + - - - EffectSelectDialog - - Add effect - 增加效果器 + + Attack Low + - - - Name - 名稱 + + Release High + - - Type - 類型 + + Release Mid + - - Description - 描述 + + Release Low + - - Author + + RMS Time - - - EffectView - - On/Off - 開/關 + + Knee + - - W/D - W/D + + Range + - - Wet Level: - 效果度: + + Balance + - - DECAY - 衰減 + + Scale output volume with Depth + - - Time: - 時間: + + Stereo Link + - - GATE - 門限 + + Auto Time + - - Gate: - 門限: + + Mix + - - Controls - 控制 + + Feedback + - - Move &up - 向上移(&U) + + Mid/Side + - - Move &down - 向下移(&D) + + Lookahead + - - &Remove this plugin - 移除此插件(&R) + + Lookahead Length + - - - EnvelopeAndLfoParameters - - Env pre-delay + + Suppress upward compression for side band + + + lmms::LadspaControl - - Env attack + + Link channels + + + lmms::LadspaEffect - - Env hold + + Unknown LADSPA plugin %1 requested. + + + lmms::Lb302Synth - - Env decay + + VCF Cutoff Frequency - - Env sustain + + VCF Resonance - - Env release + + VCF Envelope Mod - - Env mod amount + + VCF Envelope Decay - - LFO pre-delay + + Distortion - - LFO attack + + Waveform - - LFO frequency + + Slide Decay - - LFO mod amount + + Slide - - LFO wave shape + + Accent - - LFO frequency x 100 + + Dead - - Modulate env amount + + 24dB/oct Filter - EnvelopeAndLfoView - - - - DEL - DEL - + lmms::LfoController - - - Pre-delay: + + LFO Controller - - - ATT - ATT + + Base value + - - - Attack: - 打進聲: + + Oscillator speed + - - HOLD - 持續 + + Oscillator amount + - - Hold: - 持續: + + Oscillator phase + - - DEC - 衰減 + + Oscillator waveform + - - Decay: - 衰減: + + Frequency Multiplier + - - SUST - 持續 + + Sample not found + + + + lmms::MalletsInstrument - - Sustain: - 持續: + + Hardness + - - REL - 釋音 + + Position + - - Release: - 釋音: + + Vibrato gain + - - - AMT + + Vibrato frequency - - - Modulation amount: - 調製量: + + Stick mix + - - SPD + + Modulator - - Frequency: - 頻率: + + Crossfade + - - FREQ x 100 - 頻率 x 100 + + LFO speed + - - Multiply LFO frequency by 100 + + LFO depth - - MODULATE ENV AMOUNT + + ADSR - - Control envelope amount by this LFO + + Pressure - - ms/LFO: + + Motion - - Hint - 提示 + + Speed + - - Drag and drop a sample into this window. + + Bowed - - - EqControls - - Input gain - 輸入增益 + + Instrument + - - Output gain - 輸出增益 + + Spread + - - Low-shelf gain + + Randomness - - Peak 1 gain + + Marimba - - Peak 2 gain + + Vibraphone - - Peak 3 gain + + Agogo - - Peak 4 gain + + Wood 1 - - High-shelf gain + + Reso - - HP res + + Wood 2 - - Low-shelf res + + Beats - - Peak 1 BW + + Two fixed - - Peak 2 BW + + Clump - - Peak 3 BW + + Tubular bells - - Peak 4 BW + + Uniform bar - - High-shelf res + + Tuned bar - - LP res + + Glass - - HP freq + + Tibetan bowl + + + lmms::MeterModel - - Low-shelf freq + + Numerator - - Peak 1 freq + + Denominator + + + lmms::Microtuner - - Peak 2 freq + + Microtuner - - Peak 3 freq + + Microtuner on / off - - Peak 4 freq + + Selected scale - - High-shelf freq + + Selected keyboard mapping + + + lmms::MidiController - - LP freq + + MIDI Controller - - HP active + + unnamed_midi_controller + + + lmms::MidiImport - - Low-shelf active + + + Setup incomplete - - Peak 1 active + + You have not set up a default soundfont in the settings dialog (Edit->Settings). Therefore no sound will be played back after importing this MIDI file. You should download a General MIDI soundfont, specify it in settings dialog and try again. - - Peak 2 active + + You did not compile LMMS with support for SoundFont2 player, which is used to add default sound to imported MIDI files. Therefore no sound will be played back after importing this MIDI file. - - Peak 3 active + + MIDI Time Signature Numerator - - Peak 4 active + + MIDI Time Signature Denominator - - High-shelf active + + Numerator - - LP active + + Denominator - - LP 12 + + + Tempo - - LP 24 + + Track + + + lmms::MidiJack - - LP 48 + + JACK server down + When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (title) - - HP 12 + + The JACK server seems to be shuted down. + When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (dialog message) + + + lmms::MidiPort - - HP 24 + + Input channel - - HP 48 + + Output channel - - Low-pass type + + Input controller - - High-pass type + + Output controller - - Analyse IN + + Fixed input velocity - - Analyse OUT + + Fixed output velocity - - - EqControlsDialog - - HP + + Fixed output note - - Low-shelf + + Output MIDI program - - Peak 1 + + Base velocity - - Peak 2 + + Receive MIDI-events - - Peak 3 + + Send MIDI-events + + + lmms::Mixer - - Peak 4 + + Master - - High-shelf + + + + Channel %1 - - LP + + Volume - - Input gain - 輸入增益 + + Mute + - - - - Gain - 增益 + + Solo + + + + lmms::MixerRoute - - Output gain - 輸出增益 + + + Amount to send from channel %1 to channel %2 + + + + lmms::MonstroInstrument - - Bandwidth: + + Osc 1 volume - - Octave + + Osc 1 panning - - Resonance : + + Osc 1 coarse detune - - Frequency: - 頻率: + + Osc 1 fine detune left + - - LP group + + Osc 1 fine detune right - - HP group + + Osc 1 stereo phase offset - - - EqHandle - - Reso: + + Osc 1 pulse width - - BW: + + Osc 1 sync send on rise - - - Freq: + + Osc 1 sync send on fall - - - ExportProjectDialog - - Export project - 導出工程 + + Osc 2 volume + - - Export as loop (remove extra bar) + + Osc 2 panning - - Export between loop markers - 只導出迴環標記中間的部分 + + Osc 2 coarse detune + - - Render Looped Section: + + Osc 2 fine detune left - - time(s) + + Osc 2 fine detune right - - File format settings - 檔案格式設定 + + Osc 2 stereo phase offset + - - File format: - 檔案格式: + + Osc 2 waveform + - - Sampling rate: + + Osc 2 sync hard - - 44100 Hz - 44100 Hz + + Osc 2 sync reverse + - - 48000 Hz - 48000 Hz + + Osc 3 volume + - - 88200 Hz - 88200 Hz + + Osc 3 panning + - - 96000 Hz - 96000 Hz + + Osc 3 coarse detune + - - 192000 Hz - 192000 Hz + + Osc 3 Stereo phase offset + - - Bit depth: + + Osc 3 sub-oscillator mix + + + + + Osc 3 waveform 1 - - 16 Bit integer + + Osc 3 waveform 2 - - 24 Bit integer + + Osc 3 sync hard - - 32 Bit float + + Osc 3 Sync reverse - - Stereo mode: + + LFO 1 waveform - - Mono + + LFO 1 attack - - Stereo + + LFO 1 rate - - Joint stereo + + LFO 1 phase - - Compression level: + + LFO 2 waveform - - Bitrate: - 碼率: + + LFO 2 attack + - - 64 KBit/s - 64 KBit/s + + LFO 2 rate + - - 128 KBit/s - 128 KBit/s + + LFO 2 phase + - - 160 KBit/s - 160 KBit/s + + Env 1 pre-delay + - - 192 KBit/s - 192 KBit/s + + Env 1 attack + - - 256 KBit/s - 256 KBit/s + + Env 1 hold + - - 320 KBit/s - 320 KBit/s + + Env 1 decay + - - Use variable bitrate - 使用可變位元率 + + Env 1 sustain + - - Quality settings - 質量設置 + + Env 1 release + - - Interpolation: - 補間: + + Env 1 slope + - - Zero order hold + + Env 2 pre-delay - - Sinc worst (fastest) + + Env 2 attack - - Sinc medium (recommended) + + Env 2 hold - - Sinc best (slowest) + + Env 2 decay - - Oversampling: + + Env 2 sustain - - 1x (None) - 1x (無) + + Env 2 release + - - 2x - 2x + + Env 2 slope + - - 4x - 4x + + Osc 2+3 modulation + - - 8x - 8x + + Selected view + - - Start - 開始 + + Osc 1 - Vol env 1 + - - Cancel - 取消 + + Osc 1 - Vol env 2 + - - Could not open file - 無法開啟檔案 + + Osc 1 - Vol LFO 1 + - - Could not open file %1 for writing. -Please make sure you have write permission to the file and the directory containing the file and try again! - 無法開啟 %1 以進行寫入。 -請確認您有權限存取此檔案,以及包含此檔案的目錄後再試一次。 + + Osc 1 - Vol LFO 2 + - - Export project to %1 - 導出項目到 %1 + + Osc 2 - Vol env 1 + - - ( Fastest - biggest ) + + Osc 2 - Vol env 2 - - ( Slowest - smallest ) + + Osc 2 - Vol LFO 1 - - Error - 錯誤 + + Osc 2 - Vol LFO 2 + - - Error while determining file-encoder device. Please try to choose a different output format. - 偵測檔案編碼裝置時發生錯誤。請嘗試使用其他輸出格式。 + + Osc 3 - Vol env 1 + - - Rendering: %1% - 渲染中:%1% + + Osc 3 - Vol env 2 + - - - Fader - - Set value + + Osc 3 - Vol LFO 1 - - Please enter a new value between %1 and %2: - 請輸入一個介於%1和%2之間的數值: + + Osc 3 - Vol LFO 2 + - - - FileBrowser - - User content + + Osc 1 - Phs env 1 - - Factory content + + Osc 1 - Phs env 2 - - Browser - 瀏覽器 + + Osc 1 - Phs LFO 1 + - - Search + + Osc 1 - Phs LFO 2 - - Refresh list + + Osc 2 - Phs env 1 - - - FileBrowserTreeWidget - - Send to active instrument-track - 發送到活躍的樂器軌道 + + Osc 2 - Phs env 2 + - - Open containing folder + + Osc 2 - Phs LFO 1 - - Song Editor - 顯示/隱藏歌曲編輯器 + + Osc 2 - Phs LFO 2 + - - BB Editor + + Osc 3 - Phs env 1 - - Send to new AudioFileProcessor instance + + Osc 3 - Phs env 2 - - Send to new instrument track + + Osc 3 - Phs LFO 1 - - (%2Enter) + + Osc 3 - Phs LFO 2 - - Send to new sample track (Shift + Enter) + + Osc 1 - Pit env 1 - - Loading sample - 加載採樣中 + + Osc 1 - Pit env 2 + - - Please wait, loading sample for preview... - 請稍候,加載採樣中... + + Osc 1 - Pit LFO 1 + - - Error - 錯誤 + + Osc 1 - Pit LFO 2 + - - %1 does not appear to be a valid %2 file + + Osc 2 - Pit env 1 - - --- Factory files --- - --- 內建檔案 --- + + Osc 2 - Pit env 2 + - - - FlangerControls - - Delay samples + + Osc 2 - Pit LFO 1 - - LFO frequency + + Osc 2 - Pit LFO 2 - - Seconds - + + Osc 3 - Pit env 1 + - - Stereo phase + + Osc 3 - Pit env 2 - - Regen + + Osc 3 - Pit LFO 1 - - Noise - 噪音 + + Osc 3 - Pit LFO 2 + - - Invert - 反轉 + + Osc 1 - PW env 1 + - - - FlangerControlsDialog - - DELAY + + Osc 1 - PW env 2 - - Delay time: + + Osc 1 - PW LFO 1 - - RATE + + Osc 1 - PW LFO 2 - - Period: + + Osc 3 - Sub env 1 - - AMNT + + Osc 3 - Sub env 2 - - Amount: + + Osc 3 - Sub LFO 1 - - PHASE + + Osc 3 - Sub LFO 2 - - Phase: + + + Sine wave - - FDBK + + Bandlimited Triangle wave - - Feedback amount: + + Bandlimited Saw wave - - NOISE + + Bandlimited Ramp wave - - White noise amount: + + Bandlimited Square wave - - Invert - 反轉 + + Bandlimited Moog saw wave + - - - FreeBoyInstrument - - Sweep time + + + Soft square wave - - Sweep direction + + Absolute sine wave - - Sweep rate shift amount + + + Exponential wave - - - Wave pattern duty cycle + + White noise - - Channel 1 volume + + Digital Triangle wave - - - - Volume sweep direction + + Digital Saw wave - - - - Length of each step in sweep + + Digital Ramp wave - - Channel 2 volume + + Digital Square wave - - Channel 3 volume + + Digital Moog saw wave - - Channel 4 volume + + Triangle wave - - Shift Register width + + Saw wave - - Right output level + + Ramp wave - - Left output level + + Square wave - - Channel 1 to SO2 (Left) + + Moog saw wave - - Channel 2 to SO2 (Left) + + Abs. sine wave - - Channel 3 to SO2 (Left) + + Random - - Channel 4 to SO2 (Left) + + Random smooth + + + lmms::NesInstrument - - Channel 1 to SO1 (Right) + + Channel 1 enable - - Channel 2 to SO1 (Right) + + Channel 1 coarse detune - - Channel 3 to SO1 (Right) + + Channel 1 volume - - Channel 4 to SO1 (Right) + + Channel 1 envelope enable - - Treble + + Channel 1 envelope loop - - Bass - 低音 + + Channel 1 envelope length + - - - FreeBoyInstrumentView - - Sweep time: + + Channel 1 duty cycle - - Sweep time + + Channel 1 sweep enable - - Sweep rate shift amount: + + Channel 1 sweep amount - - Sweep rate shift amount + + Channel 1 sweep rate - - - Wave pattern duty cycle: + + Channel 2 enable - - - Wave pattern duty cycle + + Channel 2 coarse detune - - Square channel 1 volume: + + Channel 2 volume - - Square channel 1 volume + + Channel 2 envelope enable - - - - Length of each step in sweep: + + Channel 2 envelope loop - - - - Length of each step in sweep + + Channel 2 envelope length - - Square channel 2 volume: + + Channel 2 duty cycle - - Square channel 2 volume + + Channel 2 sweep enable - - Wave pattern channel volume: + + Channel 2 sweep amount - - Wave pattern channel volume + + Channel 2 sweep rate - - Noise channel volume: + + Channel 3 enable - - Noise channel volume + + Channel 3 coarse detune - - SO1 volume (Right): + + Channel 3 volume - - SO1 volume (Right) + + Channel 4 enable - - SO2 volume (Left): + + Channel 4 volume - - SO2 volume (Left) + + Channel 4 envelope enable - - Treble: + + Channel 4 envelope loop - - Treble + + Channel 4 envelope length - - Bass: + + Channel 4 noise mode - - Bass - 低音 + + Channel 4 frequency mode + - - Sweep direction + + Channel 4 noise frequency - - - - - - Volume sweep direction + + Channel 4 noise frequency sweep - - Shift register width + + Channel 4 quantize - - Channel 1 to SO1 (Right) + + Master volume - - Channel 2 to SO1 (Right) + + Vibrato + + + lmms::OpulenzInstrument - - Channel 3 to SO1 (Right) + + Patch - - Channel 4 to SO1 (Right) + + Op 1 attack - - Channel 1 to SO2 (Left) + + Op 1 decay - - Channel 2 to SO2 (Left) + + Op 1 sustain - - Channel 3 to SO2 (Left) + + Op 1 release - - Channel 4 to SO2 (Left) + + Op 1 level - - Wave pattern graph + + Op 1 level scaling - - - MixerLine - - Channel send amount - 通道發送的數量 + + Op 1 frequency multiplier + - - Move &left - 向左移(&L) + + Op 1 feedback + - - Move &right - 向右移(&R) + + Op 1 key scaling rate + - - Rename &channel - 重命名通道(&C) + + Op 1 percussive envelope + - - R&emove channel - 刪除通道(&E) + + Op 1 tremolo + - - Remove &unused channels - 移除所有未用通道(&U) + + Op 1 vibrato + - - Set channel color + + Op 1 waveform - - Remove channel color + + Op 2 attack - - Pick random channel color + + Op 2 decay - - - MixerLineLcdSpinBox - - Assign to: - 分配給: + + Op 2 sustain + - - New mixer Channel - 新的效果通道 + + Op 2 release + - - - Mixer - - Master - 主控 + + Op 2 level + - - - - Channel %1 - FX %1 + + Op 2 level scaling + - - Volume - 音量 + + Op 2 frequency multiplier + - - Mute - 靜音 + + Op 2 key scaling rate + - - Solo - 獨奏 + + Op 2 percussive envelope + - - - MixerView - - Mixer - 效果混合器 + + Op 2 tremolo + - - Fader %1 - FX 衰減器 %1 + + Op 2 vibrato + - - Mute - 靜音 + + Op 2 waveform + - - Mute this mixer channel - 靜音此效果通道 + + FM + - - Solo - 獨奏 + + Vibrato depth + - - Solo mixer channel - 獨奏效果通道 + + Tremolo depth + - MixerRoute + lmms::OrganicInstrument - - - Amount to send from channel %1 to channel %2 - 從通道 %1 發送到通道 %2 的量 + + Distortion + + + + + Volume + - GigInstrument + lmms::OscillatorObject - - Bank - + + Osc %1 waveform + - - Patch - 音色 + + Osc %1 harmonic + - - Gain - 增益 + + + Osc %1 volume + - - - GigInstrumentView - - - Open GIG file - 開啟 GIG 檔案 + + + Osc %1 panning + - - Choose patch + + Osc %1 stereo detuning - - Gain: - 增益: + + Osc %1 coarse detuning + - - GIG Files (*.gig) - GIG 檔案 (*.gig) + + Osc %1 fine detuning left + - - - GuiApplication - - Working directory - 工作目錄 + + Osc %1 fine detuning right + - - The LMMS working directory %1 does not exist. Create it now? You can change the directory later via Edit -> Settings. - LMMS工作目錄%1不存在,現在新建一個嗎?你可以稍後在 編輯 -> 設置 中更改此設置。 + + Osc %1 phase-offset + - - Preparing UI - 正在準備界面 + + Osc %1 stereo phase-detuning + - - Preparing song editor - 正在準備歌曲編輯器 + + Osc %1 wave shape + - - Preparing mixer - 正在準備混音器 + + Modulation type %1 + + + + lmms::PatternTrack - - Preparing controller rack - 正在準備控制機架 + + Pattern %1 + - - Preparing project notes - 正在準備專案音符 + + Clone of %1 + + + + lmms::PeakController - - Preparing beat/bassline editor - 正在準備節拍/低音線編輯器 + + Peak Controller + - - Preparing piano roll - 正在準備鋼琴捲簾 + + Peak Controller Bug + - - Preparing automation editor - 正在準備自動化控制編輯器 + + Due to a bug in older version of LMMS, the peak controllers may not be connect properly. Please ensure that peak controllers are connected properly and re-save this file. Sorry for any inconvenience caused. + - InstrumentFunctionArpeggio + lmms::PeakControllerEffectControls - - Arpeggio + + Base value - - Arpeggio type + + Modulation amount - - Arpeggio range + + Attack - - Note repeats + + Release - - Cycle steps + + Treshold - - Skip rate + + Mute output - - Miss rate + + Absolute value - - Arpeggio time + + Amount multiplicator + + + lmms::Plugin - - Arpeggio gate + + Plugin not found - - Arpeggio direction + + The plugin "%1" wasn't found or could not be loaded! +Reason: "%2" - - Arpeggio mode + + Error while loading plugin - - Up - 向上 + + Failed to load plugin "%1"! + + + + lmms::ReverbSCControls - - Down - 向下 + + Input gain + - - Up and down - 上和下 + + Size + - - Down and up - 下和上 + + Color + - - Random - 隨機 + + Output gain + + + + lmms::SaControls - - Free - 自由 + + Pause + - - Sort - 排序 + + Reference freeze + - - Sync - 同步 + + Waterfall + - - - InstrumentFunctionArpeggioView - - ARPEGGIO - 琶音 + + Averaging + - - RANGE - 範圍 + + Stereo + - - Arpeggio range: + + Peak hold - - octave(s) + + Logarithmic frequency - - REP + + Logarithmic amplitude - - Note repeats: + + Frequency range - - time(s) + + Amplitude range - - CYCLE + + FFT block size - - Cycle notes: + + FFT window type - - note(s) + + Peak envelope resolution - - SKIP + + Spectrum display resolution - - Skip rate: + + Peak decay multiplier - - - - % - % + + Averaging weight + - - MISS + + Waterfall history size - - Miss rate: + + Waterfall gamma correction - - TIME - 時長 + + FFT window overlap + - - Arpeggio time: + + FFT zero padding - - ms - 毫秒 + + + Full (auto) + - - GATE - 門限 + + + + Audible + - - Arpeggio gate: + + Bass - - Chord: - 和絃: + + Mids + - - Direction: - 方向: + + High + - - Mode: - 模式: + + Extended + + + + + Loud + - - - InstrumentFunctionNoteStacking - - octave - octave + + Silent + - - - Major - Major + + (High time res.) + - - Majb5 - Majb5 + + (High freq. res.) + - - minor - minor + + Rectangular (Off) + - - minb5 - minb5 + + + Blackman-Harris (Default) + - - sus2 - sus2 + + Hamming + - - sus4 - sus4 + + Hanning + + + + lmms::SampleClip - - aug - aug + + Sample not found + + + + lmms::SampleTrack - - augsus4 - augsus4 + + Volume + - - tri - tri + + Panning + - - 6 - 6 + + Mixer channel + - - 6sus4 - 6sus4 + + + Sample track + + + + lmms::Scale - - 6add9 - 6add9 + + empty + + + + lmms::Sf2Instrument - - m6 - m6 + + Bank + - - m6add9 - m6add9 + + Patch + - - 7 - 7 + + Gain + - - 7sus4 - 7sus4 + + Reverb + - - 7#5 - 7#5 + + Reverb room size + - - 7b5 - 7b5 + + Reverb damping + - - 7#9 - 7#9 + + Reverb width + - - 7b9 - 7b9 + + Reverb level + - - 7#5#9 - 7#5#9 + + Chorus + - - 7#5b9 - 7#5b9 + + Chorus voices + - - 7b5b9 - 7b5b9 + + Chorus level + - - 7add11 - 7add11 + + Chorus speed + - - 7add13 - 7add13 + + Chorus depth + - - 7#11 - 7#11 + + A soundfont %1 could not be loaded. + + + + lmms::SfxrInstrument - - Maj7 - Maj7 + + Wave + + + + lmms::SidInstrument - - Maj7b5 - Maj7b5 + + Cutoff frequency + - - Maj7#5 - Maj7#5 + + Resonance + - - Maj7#11 - Maj7#11 + + Filter type + - - Maj7add13 - Maj7add13 + + Voice 3 off + - - m7 - m7 + + Volume + - - m7b5 - m7b5 + + Chip model + + + + lmms::SlicerT - - m7b9 - m7b9 + + Note threshold + - - m7add11 - m7add11 + + FadeOut + - - m7add13 - m7add13 + + Original bpm + - - m-Maj7 - m-Maj7 + + Slice snap + - - m-Maj7add11 - m-Maj7add11 + + BPM sync + - - m-Maj7add13 - m-Maj7add13 + + + slice_%1 + - - 9 - 9 + + Sample not found: %1 + + + + lmms::Song - - 9sus4 - 9sus4 + + Tempo + - - add9 - add9 + + Master volume + - - 9#5 - 9#5 + + Master pitch + - - 9b5 - 9b5 + + Aborting project load + - - 9#11 - 9#11 + + Project file contains local paths to plugins, which could be used to run malicious code. + - - 9b13 - 9b13 + + Can't load project: Project file contains local paths to plugins. + - - Maj9 - Maj9 + + LMMS Error report + - - Maj9sus4 - Maj9sus4 + + (repeated %1 times) + - - Maj9#5 - Maj9#5 + + The following errors occurred while loading: + + + + + lmms::StereoEnhancerControls + + + Width + + + + lmms::StereoMatrixControls - - Maj9#11 - Maj9#11 + + Left to Left + - - m9 - m9 + + Left to Right + - - madd9 - madd9 + + Right to Left + - - m9b5 - m9b5 + + Right to Right + + + + lmms::Track - - m9-Maj7 - m9-Maj7 + + Mute + - - 11 - 11 + + Solo + + + + lmms::TrackContainer - - 11b9 - 11b9 + + Couldn't import file + - - Maj11 - Maj11 + + Couldn't find a filter for importing file %1. +You should convert this file into a format supported by LMMS using another software. + - - m11 - m11 + + Couldn't open file + - - m-Maj11 - m-Maj11 + + Couldn't open file %1 for reading. +Please make sure you have read-permission to the file and the directory containing the file and try again! + - - 13 - 13 + + Loading project... + - - 13#9 - 13#9 + + + Cancel + - - 13b9 - 13b9 + + + Please wait... + - - 13b5b9 - 13b5b9 + + Loading cancelled + - - Maj13 - Maj13 + + Project loading was cancelled. + - - m13 - m13 + + Loading Track %1 (%2/Total %3) + - - m-Maj13 - m-Maj13 + + Importing MIDI-file... + + + + lmms::TripleOscillator - - Harmonic minor - Harmonic minor + + Sample not found + + + + lmms::VecControls - - Melodic minor - Melodic minor + + Display persistence amount + - - Whole tone + + Logarithmic scale - - Diminished - Diminished + + High quality + + + + lmms::VestigeInstrument - - Major pentatonic - Major pentatonic + + Loading plugin + - - Minor pentatonic - Minor pentatonic + + Please wait while loading the VST plugin... + + + + lmms::Vibed - - Jap in sen - Jap in sen + + String %1 volume + - - Major bebop - Major bebop + + String %1 stiffness + - - Dominant bebop - Dominant bebop + + Pick %1 position + - - Blues - Blues + + Pickup %1 position + - - Arabic - Arabic + + String %1 panning + - - Enigmatic - Enigmatic + + String %1 detune + - - Neopolitan - Neopolitan + + String %1 fuzziness + - - Neopolitan minor - Neopolitan minor + + String %1 length + - - Hungarian minor - Hungarian minor + + Impulse %1 + - - Dorian - Dorian + + String %1 + + + + lmms::VoiceObject - - Phrygian + + Voice %1 pulse width - - Lydian - Lydian + + Voice %1 attack + - - Mixolydian - Mixolydian + + Voice %1 decay + - - Aeolian - Aeolian + + Voice %1 sustain + - - Locrian - Locrian + + Voice %1 release + - - Minor - Minor + + Voice %1 coarse detuning + - - Chromatic - Chromatic + + Voice %1 wave shape + - - Half-Whole Diminished + + Voice %1 sync - - 5 - 5 + + Voice %1 ring modulate + - - Phrygian dominant + + Voice %1 filtered - - Persian + + Voice %1 test + + + lmms::VstPlugin - - Chords - Chords + + + The VST plugin %1 could not be loaded. + - - Chord type - Chord type + + Open Preset + - - Chord range - Chord range + + + VST Plugin Preset (*.fxp *.fxb) + - - - InstrumentFunctionNoteStackingView - - STACKING - 堆疊 + + : default + - - Chord: - 和絃: + + Save Preset + - - RANGE - 範圍 + + .fxp + - - Chord range: - 和絃範圍: + + .FXP + - - octave(s) + + .FXB - - - InstrumentMidiIOView - - ENABLE MIDI INPUT - 啓用MIDI輸入 + + .fxb + - - ENABLE MIDI OUTPUT - 啓用MIDI輸出 + + Loading plugin + - - - CHAN - This string must be be short, its width must be less than * width of LCD spin-box of two digits + + Please wait while loading VST plugin... + + + lmms::WatsynInstrument - - - VELOC - This string must be be short, its width must be less than * width of LCD spin-box of three digits + + Volume A1 - - PROG - This string must be be short, its width must be less than the * width of LCD spin-box of three digits + + Volume A2 - - NOTE - This string must be be short, its width must be less than * width of LCD spin-box of three digits - 音符 + + Volume B1 + - - MIDI devices to receive MIDI events from - 用於接收 MIDI 事件的 MIDI 設備 + + Volume B2 + - - MIDI devices to send MIDI events to - 用於發送 MIDI 事件的 MIDI 設備 + + Panning A1 + - - CUSTOM BASE VELOCITY - 自定義基準力度 + + Panning A2 + - - Specify the velocity normalization base for MIDI-based instruments at 100% note velocity. + + Panning B1 - - BASE VELOCITY - 基準力度 + + Panning B2 + - - - InstrumentTuningView - - MASTER PITCH - 主音高 + + Freq. multiplier A1 + - - Enables the use of master pitch + + Freq. multiplier A2 - - - InstrumentSoundShaping - - VOLUME - 音量 + + Freq. multiplier B1 + - - Volume - 音量 + + Freq. multiplier B2 + - - CUTOFF - 切除 + + Left detune A1 + - - - Cutoff frequency - 切除頻率 + + Left detune A2 + - - RESO + + Left detune B1 - - Resonance - 共鳴 + + Left detune B2 + - - Envelopes/LFOs - 壓限/低頻振盪 + + Right detune A1 + - - Filter type - 過濾器類型 + + Right detune A2 + - - Q/Resonance + + Right detune B1 - - Low-pass + + Right detune B2 - - Hi-pass + + A-B Mix - - Band-pass csg + + A-B Mix envelope amount - - Band-pass czpg + + A-B Mix envelope attack - - Notch - 凹口濾波器 + + A-B Mix envelope hold + - - All-pass + + A-B Mix envelope decay - - Moog - Moog + + A1-B2 Crosstalk + - - 2x Low-pass + + A2-A1 modulation - - RC Low-pass 12 dB/oct + + B2-B1 modulation - - RC Band-pass 12 dB/oct + + Selected graph + + + lmms::WaveShaperControls - - RC High-pass 12 dB/oct + + Input gain - - RC Low-pass 24 dB/oct + + Output gain + + + lmms::Xpressive - - RC Band-pass 24 dB/oct + + Selected graph - - RC High-pass 24 dB/oct + + A1 - - Vocal Formant + + A2 - - 2x Moog + + A3 - - SV Low-pass + + W1 smoothing - - SV Band-pass + + W2 smoothing - - SV High-pass + + W3 smoothing - - SV Notch + + Panning 1 - - Fast Formant + + Panning 2 - - Tripole + + Rel trans - InstrumentSoundShapingView + lmms::ZynAddSubFxInstrument - - TARGET - 目標 + + Portamento + - - FILTER + + Filter frequency - - FREQ - 頻率 + + Filter resonance + - - Cutoff frequency: - 頻譜刀頻率: + + Bandwidth + - - Hz - Hz + + FM gain + - - Q/RESO + + Resonance center frequency - - Q/Resonance: + + Resonance bandwidth - - Envelopes, LFOs and filters are not supported by the current instrument. - 包絡和低頻振盪 (LFO) 不被當前樂器支持。 + + Forward MIDI control change events + - InstrumentTrack - - - - unnamed_track - 未命名軌道 - - - - Base note - 基本音 - + lmms::graphModel - - First note + + Graph + + + lmms::gui::AmplifierControlDialog - - Last note - 上一個音符 + + VOL + - - Volume - 音量 + + Volume: + - - Panning - 聲相 + + PAN + - - Pitch - 音高 + + Panning: + - - Pitch range - 音域範圍 + + LEFT + - - Mixer channel - 效果通道 + + Left gain: + - - Master pitch - 主音高 + + RIGHT + - - Enable/Disable MIDI CC + + Right gain: + + + lmms::gui::AudioAlsaSetupWidget - - CC Controller %1 + + Device - - - Default preset - 預置 + + Channels + - InstrumentTrackView + lmms::gui::AudioFileProcessorView - - Volume - 音量 + + Open sample + - - Volume: - 音量: + + Reverse sample + - - VOL - VOL + + Disable loop + - - Panning - 聲相 + + Enable loop + - - Panning: - 聲相: + + Enable ping-pong loop + - - PAN - PAN + + Continue sample playback across notes + - - MIDI - MIDI + + Amplify: + - - Input - 輸入 + + Start point: + - - Output - 輸出 + + End point: + - - Open/Close MIDI CC Rack + + Loopback point: + + + lmms::gui::AudioFileProcessorWaveView - - Channel %1: %2 - 效果 %1: %2 + + Sample length: + - InstrumentTrackWindow + lmms::gui::AutomationClipView - - GENERAL SETTINGS - 常規設置 + + Open in Automation editor + - - Volume - 音量 + + Clear + - - Volume: - 音量: + + Reset name + - - VOL - VOL + + Change name + - - Panning - 聲相 + + Set/clear record + - - Panning: - 聲相: + + Flip Vertically (Visible) + - - PAN - PAN + + Flip Horizontally (Visible) + - - Pitch - 音高 + + %1 Connections + - - Pitch: - 音高: + + Disconnect "%1" + - - cents - 音分 cents + + Model is already connected to this clip. + + + + lmms::gui::AutomationEditor - - PITCH + + Edit Value - - Pitch range (semitones) - 音域範圍(半音) + + New outValue + - - RANGE - 範圍 + + New inValue + - - Mixer channel - 效果通道 + + Please open an automation clip by double-clicking on it! + + + + lmms::gui::AutomationEditorWindow - - CHANNEL - 效果 + + Play/pause current clip (Space) + - - Save current instrument track settings in a preset file - 儲存目前的樂器軌道設定為預設集檔案 + + Stop playing of current clip (Space) + - - SAVE - 保存 + + Edit actions + - - Envelope, filter & LFO + + Draw mode (Shift+D) - - Chord stacking & arpeggio + + Erase mode (Shift+E) - - Effects + + Draw outValues mode (Shift+C) - - MIDI - MIDI + + Edit tangents mode (Shift+T) + - - Miscellaneous + + Flip vertically - - Save preset - 保存預置 + + Flip horizontally + - - XML preset file (*.xpf) - XML 預設集檔案 (*.xpf) + + Interpolation controls + - - Plugin + + Discrete progression - - - JackApplicationW - - NSM applications cannot use abstract or absolute paths + + Linear progression - - NSM applications cannot use CLI arguments + + Cubic Hermite progression - - You need to save the current Carla project before NSM can be used + + Tension value for spline - - - JuceAboutW - - About JUCE + + Tension: - - <b>About JUCE</b> + + Zoom controls - - This program uses JUCE version 3.x.x. + + Horizontal zooming - - JUCE (Jules' Utility Class Extensions) is an all-encompassing C++ class library for developing cross-platform software. - -It contains pretty much everything you're likely to need to create most applications, and is particularly well-suited for building highly-customised GUIs, and for handling graphics and sound. - -JUCE is licensed under the GNU Public Licence version 2.0. -One module (juce_core) is permissively licensed under the ISC. - -Copyright (C) 2017 ROLI Ltd. + + Vertical zooming - - This program uses JUCE version %1. + + Quantization controls - - - Knob - - Set linear - 設置爲線性 + + Quantization + - - Set logarithmic - 設置爲對數 + + Clear ghost notes + - - - Set value + + + Automation Editor - no clip - - Please enter a new value between -96.0 dBFS and 6.0 dBFS: + + + Automation Editor - %1 - - Please enter a new value between %1 and %2: - 請輸入一個介於%1和%2之間的數值: + + Model is already connected to this clip. + - LadspaControl + lmms::gui::BassBoosterControlDialog - - Link channels - 關聯通道 + + FREQ + - - - LadspaControlDialog - - Link Channels - 連接通道 + + Frequency: + - - Channel - 通道 + + GAIN + - - - LadspaControlView - - Link channels - 連接通道 + + Gain: + - - Value: - 值: + + RATIO + - - - LadspaEffect - - Unknown LADSPA plugin %1 requested. - 已請求未知 LADSPA 插件 %1. + + Ratio: + - LcdFloatSpinBox + lmms::gui::BitInvaderView - - Set value + + Sample length - - Please enter a new value between %1 and %2: - 請輸入一個介於 %1 和 %2 的值: - - - - LcdSpinBox - - - Set value + + Draw your own waveform here by dragging your mouse on this graph. - - Please enter a new value between %1 and %2: - 請輸入一個介於%1和%2之間的數值: + + + Sine wave + - - - LeftRightNav - - - - Previous - 上個 + + + Triangle wave + - - - - Next - 下個 + + + Saw wave + - - Previous (%1) - 上 (%1) + + + Square wave + - - Next (%1) - 下 (%1) + + + White noise + - - - LfoController - - LFO Controller - LFO 控制器 + + + User-defined wave + - - Base value - 基準值 + + + Smooth waveform + - - Oscillator speed - 振動速度 + + Interpolation + - - Oscillator amount + + Normalize + + + lmms::gui::BitcrushControlDialog - - Oscillator phase + + IN - - Oscillator waveform - 振動波形 + + OUT + - - Frequency Multiplier + + + GAIN - - - LfoControllerDialog - - LFO + + Input gain: - - BASE - 基準 + + NOISE + - - Base: + + Input noise: - - FREQ - 頻率 + + Output gain: + - - LFO frequency: + + CLIP - - AMNT + + Output clip: - - Modulation amount: - 調製量: + + Rate enabled + - - PHS + + Enable sample-rate crushing - - Phase offset: + + Depth enabled - - degrees + + Enable bit-depth crushing - - Sine wave - 正弦波 + + FREQ + - - Triangle wave - 三角波 + + Sample rate: + - - Saw wave - 鋸齒波 + + STEREO + - - Square wave - 方波 + + Stereo difference: + - - Moog saw wave + + QUANT - - Exponential wave + + Levels: + + + lmms::gui::CPULoadWidget - - White noise + + DSP total: %1% - - User-defined shape. -Double click to pick a file. + + - Notes and setup: %1% - - Mutliply modulation frequency by 1 + + - Instruments: %1% - - Mutliply modulation frequency by 100 + + - Effects: %1% - - Divide modulation frequency by 100 + + - Mixing: %1% - Engine + lmms::gui::CarlaInstrumentView - - Generating wavetables - 正在生成波形表 + + Show GUI + - - Initializing data structures - 正在初始化數據結構 + + Click here to show or hide the graphical user interface (GUI) of Carla. + - - Opening audio and midi devices - 正在啓動音頻和 MIDI 設備 + + Params + - - Launching mixer threads - 生在啓動混音器線程 + + Available from Carla version 2.1 and up. + - MainWindow + lmms::gui::CarlaParamsView - - Configuration file - 設定檔 + + Search.. + - - Error while parsing configuration file at line %1:%2: %3 - 解析設定檔時發生錯誤(行 %1:%2:%3) + + Clear filter text + - - Could not open file - 無法開啟檔案 + + Only show knobs with a connection. + - - Could not open file %1 for writing. -Please make sure you have write permission to the file and the directory containing the file and try again! - 無法開啟 %1 以進行寫入。 -請確認您有權限存取此檔案,以及包含此檔案的目錄後再試一次。 + + - Parameters + + + + lmms::gui::ClipView - - Project recovery - 工程恢復 + + Current position + - - There is a recovery file present. It looks like the last session did not end properly or another instance of LMMS is already running. Do you want to recover the project of this session? - 發現復原檔案。可能是上一個工作階段未正常結束,或者另一個 LMMS 已在執行。您想要復原這個專案嗎? + + Current length + - - - Recover - 恢復 + + + %1:%2 (%3:%4 to %5:%6) + - - Recover the file. Please don't run multiple instances of LMMS when you do this. - 復原檔案。請不要在復原檔案時同時開啟多個 LMMS 視窗。 + + Press <%1> and drag to make a copy. + - - - Discard - 丟棄 + + Press <%1> for free resizing. + - - Launch a default session and delete the restored files. This is not reversible. - 開啟新的預設工作階段並刪除已復原的檔案。此操作無法復原。 + + Hint + - - Version %1 - 版本 %1 + + Delete (middle mousebutton) + - - Preparing plugin browser - 正在準備插件瀏覽器 + + Delete selection (middle mousebutton) + - - Preparing file browsers - 正在準備檔案瀏覽器 + + Cut + - - My Projects - 我的工程 + + Cut selection + - - My Samples - 我的採樣 + + Merge Selection + - - My Presets - 我的預設 + + Copy + - - My Home - 我的主目錄 + + Copy selection + - - Root directory - 根目錄 + + Paste + - - Volumes - 音量 + + Mute/unmute (<%1> + middle click) + - - My Computer - 我的電腦 + + Mute/unmute selection (<%1> + middle click) + - - &File - 檔案(&F) + + Clip color + - - &New - 新建(&N) + + Change + - - &Open... - 打開(&O)... + + Reset + - - Loading background picture + + Pick random + + + lmms::gui::CompressorControlDialog - - &Save - 保存(&S) + + Threshold: + - - Save &As... - 另存爲(&A)... + + Volume at which the compression begins to take place + - - Save as New &Version - 保存爲新版本(&V) + + Ratio: + - - Save as default template - 保存爲默認模板 + + How far the compressor must turn the volume down after crossing the threshold + - - Import... - 導入... + + Attack: + - - E&xport... - 導出(&E)... + + Speed at which the compressor starts to compress the audio + - - E&xport Tracks... - 導出音軌(&X)... + + Release: + - - Export &MIDI... - 導出 MIDI (&M)... + + Speed at which the compressor ceases to compress the audio + - - &Quit - 退出(&Q) + + Knee: + - - &Edit - 編輯(&E) + + Smooth out the gain reduction curve around the threshold + - - Undo - 撤銷 + + Range: + - - Redo - 重做 + + Maximum gain reduction + - - Settings - 設置 + + Lookahead Length: + - - &View - 視圖 (&V) + + How long the compressor has to react to the sidechain signal ahead of time + - - &Tools - 工具(&T) + + Hold: + - - &Help - 幫助(&H) + + Delay between attack and release stages + - - Online Help - 在線幫助 + + RMS Size: + - - Help - 幫助 + + Size of the RMS buffer + - - About - 關於 + + Input Balance: + - - Create new project - 新建工程 + + Bias the input audio to the left/right or mid/side + - - Create new project from template - 從模版新建工程 + + Output Balance: + - - Open existing project - 打開已有工程 + + Bias the output audio to the left/right or mid/side + - - Recently opened projects - 最近打開的工程 + + Stereo Balance: + - - Save current project - 保存當前工程 + + Bias the sidechain signal to the left/right or mid/side + - - Export current project - 導出當前工程 + + Stereo Link Blend: + - - Metronome + + Blend between unlinked/maximum/average/minimum stereo linking modes - - - Song Editor - 顯示/隱藏歌曲編輯器 + + Tilt Gain: + - - - Beat+Bassline Editor - 顯示/隱藏節拍+旋律編輯器 + + Bias the sidechain signal to the low or high frequencies. -6 db is lowpass, 6 db is highpass. + - - - Piano Roll - 顯示/隱藏鋼琴窗 + + Tilt Frequency: + - - - Automation Editor - 顯示/隱藏自動控制編輯器 + + Center frequency of sidechain tilt filter + - - - Mixer - 顯示/隱藏混音器 + + Mix: + - - Show/hide controller rack - 顯示/隱藏控制器機架 + + Balance between wet and dry signals + - - Show/hide project notes - 顯示/隱藏工程註釋 + + Auto Attack: + - - Untitled - 未命名 + + Automatically control attack value depending on crest factor + - - Recover session. Please save your work! - 恢復會話。請保存你的工作! + + Auto Release: + - - LMMS %1 - LMMS %1 + + Automatically control release value depending on crest factor + - - Recovered project not saved - 恢復的工程沒有保存 + + Output gain + - - This project was recovered from the previous session. It is currently unsaved and will be lost if you don't save it. Do you want to save it now? - 這個工程已從上一個會話中恢復。它現在沒有被保存, 並且如果你不保存, 它將會丟失。你現在想保存它嗎? + + + Gain + + + + + Output volume + - - Project not saved - 工程未保存 + + Input gain + - - The current project was modified since last saving. Do you want to save it now? - 此工程自上次保存後有了修改,你想保存嗎? + + Input volume + - - Open Project - 打開工程 + + Root Mean Square + - - LMMS (*.mmp *.mmpz) - LMMS (*.mmp *.mmpz) + + Use RMS of the input + - - Save Project - 保存工程 + + Peak + - - LMMS Project - LMMS 工程 + + Use absolute value of the input + - - LMMS Project Template - LMMS 工程模板 + + Left/Right + - - Save project template + + Compress left and right audio - - Overwrite default template? - 覆蓋默認的模板? + + Mid/Side + - - This will overwrite your current default template. - 這將會覆蓋你的當前默認模板。 + + Compress mid and side audio + - - Help not available - 幫助不可用 + + Compressor + - - Currently there's no help available in LMMS. -Please visit http://lmms.sf.net/wiki for documentation on LMMS. - LMMS現在沒有可用的幫助 -請訪問 http://lmms.sf.net/wiki 瞭解LMMS的相關文檔。 + + Compress the audio + - - Controller Rack - 顯示/隱藏控制器機架 + + Limiter + - - Project Notes - 顯示/隱藏工程註釋 + + Set Ratio to infinity (is not guaranteed to limit audio volume) + - - Fullscreen + + Unlinked - - Volume as dBFS + + Compress each channel separately - - Smooth scroll - 平滑滾動 + + Maximum + - - Enable note labels in piano roll - 在鋼琴窗中顯示音號 + + Compress based on the loudest channel + - - MIDI File (*.mid) - MIDI 檔案 (*.mid) + + Average + - - - untitled - 未命名 + + Compress based on the averaged channel volume + - - - Select file for project-export... - 匯出專案至… + + Minimum + - - Select directory for writing exported tracks... - 選擇寫入導出音軌的目錄... + + Compress based on the quietest channel + - - Save project + + Blend - - Project saved - 工程已保存 + + Blend between stereo linking modes + - - The project %1 is now saved. - 工程 %1 已保存。 + + Auto Makeup Gain + - - Project NOT saved. - 工程 **沒有** 保存。 + + Automatically change makeup gain depending on threshold, knee, and ratio settings + - - The project %1 was not saved! - 工程%1沒有保存! + + + Soft Clip + - - Import file - 匯入檔案 + + Play the delta signal + - - MIDI sequences - MIDI 音序器 + + Use the compressor's output as the sidechain input + - - Hydrogen projects - Hydrogen工程 + + Lookahead Enabled + - - All file types - 所有檔案類型 + + Enable Lookahead, which introduces 20 milliseconds of latency + - MeterDialog + lmms::gui::ControllerConnectionDialog - - - Meter Numerator + + Connection Settings - - Meter numerator + + MIDI CONTROLLER - - - Meter Denominator + + Input channel - - Meter denominator + + CHANNEL - - TIME SIG - 拍子記號 - - - - MeterModel - - - Numerator + + Input controller - - Denominator + + CONTROLLER - - - MidiCCRackView - - - MIDI CC Rack - %1 + + + Auto Detect - - MIDI CC Knobs: + + MIDI-devices to receive MIDI-events from - - CC %1 + + USER CONTROLLER - - - MidiController - - - MIDI Controller - MIDI控制器 - - - unnamed_midi_controller + + MAPPING FUNCTION - - - MidiImport - - - Setup incomplete - 設置不完整 + + OK + - - You have not set up a default soundfont in the settings dialog (Edit->Settings). Therefore no sound will be played back after importing this MIDI file. You should download a General MIDI soundfont, specify it in settings dialog and try again. + + Cancel - - You did not compile LMMS with support for SoundFont2 player, which is used to add default sound to imported MIDI files. Therefore no sound will be played back after importing this MIDI file. - 您在編譯 LMMS 時未一併啟用 SoundFont2 播放器支援,此播放器用於為匯入的 MIDI 檔案加入預設聲音,因此在匯入此 MIDI 檔後不會有聲音。 + + LMMS + - - MIDI Time Signature Numerator + + Cycle Detected. + + + lmms::gui::ControllerRackView - - MIDI Time Signature Denominator + + Controller Rack - - Numerator + + Add - - Denominator + + Confirm Delete - - Track - 軌道 + + Confirm delete? There are existing connection(s) associated with this controller. There is no way to undo. + - MidiJack + lmms::gui::ControllerView - - JACK server down - When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (title) - JACK服務崩潰 + + Controls + - - The JACK server seems to be shuted down. - When JACK(JACK Audio Connection Kit) disconnects, it will show the following message (dialog message) + + Rename controller - - - MidiPatternW - - MIDI Pattern + + Enter the new name for this controller - - Time Signature: + + LFO - - - - 1/4 + + Move &up - - 2/4 + + Move &down - - 3/4 + + &Remove this controller - - 4/4 + + Re&name this controller + + + lmms::gui::CrossoverEQControlDialog - - 5/4 + + Band 1/2 crossover: - - 6/4 + + Band 2/3 crossover: - - Measures: + + Band 3/4 crossover: - - - - 1 + + Band 1 gain - - 2 + + Band 1 gain: - - 3 + + Band 2 gain - - 4 + + Band 2 gain: - - 5 - 5 + + Band 3 gain + - - 6 - 6 + + Band 3 gain: + - - 7 - 7 + + Band 4 gain + - - 8 + + Band 4 gain: - - 9 - 9 + + Band 1 mute + - - 10 + + Mute band 1 + + + + + Band 2 mute - - 11 - 11 + + Mute band 2 + - - 12 + + Band 3 mute - - 13 - 13 + + Mute band 3 + - - 14 + + Band 4 mute - - 15 + + Mute band 4 + + + lmms::gui::DelayControlsDialog - - 16 + + DELAY - - Default Length: + + Delay time - - - 1/16 + + FDBK - - - 1/15 + + Feedback amount - - - 1/12 + + RATE - - - 1/9 + + LFO frequency - - - 1/8 + + AMNT - - - 1/6 + + LFO amount - - - 1/3 + + Out gain - - - 1/2 + + Gain + + + lmms::gui::DispersionControlDialog - - Quantize: + + AMOUNT - - &File - 檔案(&F) + + Number of all-pass filters + - - &Edit - 編輯(&E) + + FREQ + - - &Quit - 退出(&Q) + + Frequency: + - - &Insert Mode + + RESO - - F + + Resonance: - - &Velocity Mode + + FEED - - D + + Feedback: - - Select All + + DC Offset Removal - - A + + Remove DC Offset - MidiPort - - - Input channel - 輸入通道 - + lmms::gui::DualFilterControlDialog - - Output channel - 輸出通道 - - - - Input controller - 輸入控制器 + + + FREQ + - - Output controller - 輸出控制器 + + + Cutoff frequency + - - Fixed input velocity + + + RESO - - Fixed output velocity + + + Resonance - - Fixed output note + + + GAIN - - Output MIDI program + + + Gain - - Base velocity - 基準力度 + + MIX + - - Receive MIDI-events - 接受 MIDI 事件 + + Mix + - - Send MIDI-events - 發送 MIDI 事件 + + Filter 1 enabled + - - - MidiSetupWidget - - Device + + Filter 2 enabled - - - MonstroInstrument - - Osc 1 volume + + Enable/disable filter 1 - - Osc 1 panning + + Enable/disable filter 2 + + + lmms::gui::DynProcControlDialog - - Osc 1 coarse detune + + INPUT - - Osc 1 fine detune left + + Input gain: - - Osc 1 fine detune right + + OUTPUT - - Osc 1 stereo phase offset + + Output gain: - - Osc 1 pulse width + + ATTACK - - Osc 1 sync send on rise + + Peak attack time: - - Osc 1 sync send on fall + + RELEASE - - Osc 2 volume + + Peak release time: - - Osc 2 panning + + + Reset wavegraph - - Osc 2 coarse detune + + + Smooth wavegraph - - Osc 2 fine detune left + + + Increase wavegraph amplitude by 1 dB - - Osc 2 fine detune right + + + Decrease wavegraph amplitude by 1 dB - - Osc 2 stereo phase offset + + Stereo mode: maximum - - Osc 2 waveform + + Process based on the maximum of both stereo channels - - Osc 2 sync hard + + Stereo mode: average - - Osc 2 sync reverse + + Process based on the average of both stereo channels - - Osc 3 volume + + Stereo mode: unlinked - - Osc 3 panning + + Process each stereo channel independently + + + lmms::gui::Editor - - Osc 3 coarse detune + + Transport controls - - Osc 3 Stereo phase offset + + Play (Space) - - Osc 3 sub-oscillator mix + + Stop (Space) - - Osc 3 waveform 1 + + Record - - Osc 3 waveform 2 + + Record while playing - - Osc 3 sync hard + + Toggle Step Recording + + + lmms::gui::EffectRackView - - Osc 3 Sync reverse + + EFFECTS CHAIN - - LFO 1 waveform + + Add effect + + + lmms::gui::EffectSelectDialog - - LFO 1 attack + + Add effect - - LFO 1 rate + + + Name - - LFO 1 phase + + Type - - LFO 2 waveform + + All - - LFO 2 attack + + Search - - LFO 2 rate + + Description - - LFO 2 phase + + Author + + + lmms::gui::EffectView - - Env 1 pre-delay + + On/Off - - Env 1 attack + + W/D - - Env 1 hold + + Wet Level: - - Env 1 decay + + DECAY - - Env 1 sustain + + Time: - - Env 1 release + + GATE - - Env 1 slope + + Gate: - - Env 2 pre-delay + + Controls - - Env 2 attack + + Move &up - - Env 2 hold + + Move &down - - Env 2 decay + + &Remove this plugin + + + lmms::gui::EnvelopeAndLfoView - - Env 2 sustain + + + AMT - - Env 2 release + + + Modulation amount: - - Env 2 slope + + + DEL - - Osc 2+3 modulation + + + Pre-delay: - - Selected view + + + ATT - - Osc 1 - Vol env 1 + + + Attack: - - Osc 1 - Vol env 2 + + HOLD - - Osc 1 - Vol LFO 1 + + Hold: - - Osc 1 - Vol LFO 2 + + DEC - - Osc 2 - Vol env 1 + + Decay: - - Osc 2 - Vol env 2 + + SUST - - Osc 2 - Vol LFO 1 + + Sustain: - - Osc 2 - Vol LFO 2 + + REL - - Osc 3 - Vol env 1 + + Release: - - Osc 3 - Vol env 2 + + SPD - - Osc 3 - Vol LFO 1 + + Frequency: - - Osc 3 - Vol LFO 2 + + FREQ x 100 - - Osc 1 - Phs env 1 + + Multiply LFO frequency by 100 - - Osc 1 - Phs env 2 + + MOD ENV AMOUNT - - Osc 1 - Phs LFO 1 + + Control envelope amount by this LFO - - Osc 1 - Phs LFO 2 + + Hint - - Osc 2 - Phs env 1 + + Drag and drop a sample into this window. + + + lmms::gui::EnvelopeGraph - - Osc 2 - Phs env 2 + + Scaling - - Osc 2 - Phs LFO 1 + + Dynamic - - Osc 2 - Phs LFO 2 + + Uses absolute spacings but switches to relative spacing if it's running out of space - - Osc 3 - Phs env 1 + + Absolute - - Osc 3 - Phs env 2 + + Provides enough potential space for each segment but does not scale - - Osc 3 - Phs LFO 1 + + Relative - - Osc 3 - Phs LFO 2 + + Always uses all of the available space to display the envelope graph + + + lmms::gui::EqControlsDialog - - Osc 1 - Pit env 1 + + HP - - Osc 1 - Pit env 2 + + Low-shelf - - Osc 1 - Pit LFO 1 + + Peak 1 - - Osc 1 - Pit LFO 2 + + Peak 2 - - Osc 2 - Pit env 1 + + Peak 3 - - Osc 2 - Pit env 2 + + Peak 4 - - Osc 2 - Pit LFO 1 + + High-shelf - - Osc 2 - Pit LFO 2 + + LP - - Osc 3 - Pit env 1 + + Input gain - - Osc 3 - Pit env 2 + + + + Gain - - Osc 3 - Pit LFO 1 + + Output gain - - Osc 3 - Pit LFO 2 + + Bandwidth: - - Osc 1 - PW env 1 + + Octave - - Osc 1 - PW env 2 + + Resonance: - - Osc 1 - PW LFO 1 + + Frequency: - - Osc 1 - PW LFO 2 + + LP group - - Osc 3 - Sub env 1 + + HP group + + + lmms::gui::EqHandle - - Osc 3 - Sub env 2 + + Reso: - - Osc 3 - Sub LFO 1 + + BW: - - Osc 3 - Sub LFO 2 + + + Freq: + + + lmms::gui::ExportProjectDialog - - - Sine wave - 正弦波 + + Could not open file + - - Bandlimited Triangle wave + + Could not open file %1 for writing. +Please make sure you have write permission to the file and the directory containing the file and try again! - - Bandlimited Saw wave + + Export project to %1 - - Bandlimited Ramp wave + + ( Fastest - biggest ) - - Bandlimited Square wave + + ( Slowest - smallest ) - - Bandlimited Moog saw wave + + Error - - - Soft square wave + + Error while determining file-encoder device. Please try to choose a different output format. - - Absolute sine wave + + Rendering: %1% + + + lmms::gui::Fader - - - Exponential wave + + Set value - - White noise + + Please enter a new value between %1 and %2: - - Digital Triangle wave + + Volume: %1 dBFS + + + lmms::gui::FileBrowser - - Digital Saw wave + + Browser - - Digital Ramp wave + + Search - - Digital Square wave + + Refresh list - - Digital Moog saw wave + + User content - - Triangle wave - 三角波 + + Factory content + - - Saw wave - 鋸齒波 + + Hidden content + + + + lmms::gui::FileBrowserTreeWidget - - Ramp wave + + Send to active instrument-track - - Square wave - 方波 + + Open containing folder + - - Moog saw wave + + Song Editor - - Abs. sine wave + + Pattern Editor - - Random - 隨機 + + Send to new AudioFileProcessor instance + - - Random smooth + + Send to new instrument track - - - MonstroView - - Operators view + + (%2Enter) - - Matrix view - 矩陣視圖 + + Send to new sample track (Shift + Enter) + - - - - Volume - 音量 + + Loading sample + - - - - Panning - 聲相 + + Please wait, loading sample for preview... + - - - - Coarse detune + + Error - - - - semitones - 半音 + + %1 does not appear to be a valid %2 file + - - - Fine tune left + + --- Factory files --- + + + lmms::gui::FileDialog - - - - - cents + + %1 files - - - Fine tune right + + All audio files - - - - Stereo phase offset + + Other files + + + lmms::gui::FlangerControlsDialog - - - - - - deg + + DELAY - - Pulse width + + Delay time: - - Send sync on pulse rise + + RATE - - Send sync on pulse fall + + Period: - - Hard sync oscillator 2 + + AMNT - - Reverse sync oscillator 2 + + Amount: - - Sub-osc mix + + PHASE - - Hard sync oscillator 3 + + Phase: - - Reverse sync oscillator 3 + + FDBK - - - - - Attack - 打進聲 + + Feedback amount: + - - - Rate + + NOISE - - - Phase + + White noise amount: - - - Pre-delay + + Invert + + + lmms::gui::FloatModelEditorBase - - - Hold - 保持 + + Set linear + - - - Decay - 衰減 + + Set logarithmic + - - - Sustain - 持續 + + + Set value + - - - Release - 釋放 + + Please enter a new value between -96.0 dBFS and 6.0 dBFS: + - - - Slope + + Please enter a new value between %1 and %2: + + + lmms::gui::FreeBoyInstrumentView - - Mix osc 2 with osc 3 + + Sweep time: - - Modulate amplitude of osc 3 by osc 2 + + Sweep time - - Modulate frequency of osc 3 by osc 2 + + Sweep rate shift amount: - - Modulate phase of osc 3 by osc 2 + + Sweep rate shift amount - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Modulation amount - 調製量 + + + Wave pattern duty cycle: + - - - MultitapEchoControlDialog - - Length - 長度 + + + Wave pattern duty cycle + - - Step length: - 步進長度: + + Square channel 1 volume: + - - Dry - 幹聲 + + Square channel 1 volume + - - Dry gain: + + + + Length of each step in sweep: - - Stages + + + + Length of each step in sweep - - Low-pass stages: + + Square channel 2 volume: - - Swap inputs + + Square channel 2 volume - - Swap left and right input channels for reflections + + Wave pattern channel volume: - - - NesInstrument - - Channel 1 coarse detune + + Wave pattern channel volume - - Channel 1 volume + + Noise channel volume: - - Channel 1 envelope length + + Noise channel volume - - Channel 1 duty cycle + + SO1 volume (Right): - - Channel 1 sweep amount + + SO1 volume (Right) - - Channel 1 sweep rate + + SO2 volume (Left): - - Channel 2 Coarse detune + + SO2 volume (Left) - - Channel 2 Volume + + Treble: - - Channel 2 envelope length + + Treble - - Channel 2 duty cycle + + Bass: - - Channel 2 sweep amount + + Bass - - Channel 2 sweep rate + + Sweep direction - - Channel 3 coarse detune + + + + + + Volume sweep direction - - Channel 3 volume + + Shift register width - - Channel 4 volume + + Channel 1 to SO1 (Right) - - Channel 4 envelope length + + Channel 2 to SO1 (Right) - - Channel 4 noise frequency + + Channel 3 to SO1 (Right) - - Channel 4 noise frequency sweep + + Channel 4 to SO1 (Right) - - Master volume - 主音量 + + Channel 1 to SO2 (Left) + - - Vibrato + + Channel 2 to SO2 (Left) - - - NesInstrumentView - - - - - Volume - 音量 + + Channel 3 to SO2 (Left) + - - - - Coarse detune + + Channel 4 to SO2 (Left) - - - - Envelope length + + Wave pattern graph + + + lmms::gui::GigInstrumentView - - Enable channel 1 + + + Open GIG file - - Enable envelope 1 + + Choose patch - - Enable envelope 1 loop + + Gain: - - Enable sweep 1 + + GIG Files (*.gig) + + + lmms::gui::GranularPitchShifterControlDialog - - - Sweep amount + + Grain Size: - - - Sweep rate + + Spray: - - - 12.5% Duty cycle + + Jitter: - - - 25% Duty cycle + + Twitch: - - - 50% Duty cycle + + Spray Stereo Spread: - - - 75% Duty cycle + + Grain Shape: - - Enable channel 2 + + Fade Length: - - Enable envelope 2 + + Feedback: - - Enable envelope 2 loop + + Minimum Allowed Latency: - - Enable sweep 2 + + Density: - - Enable channel 3 + + Glide: - - Noise Frequency + + + Pitch - - Frequency sweep + + + Pitch Stereo Spread - - Enable channel 4 + + Open help window - - Enable envelope 4 + + + Prefilter + + + lmms::gui::GuiApplication - - Enable envelope 4 loop + + Working directory - - Quantize noise frequency when using note frequency + + The LMMS working directory %1 does not exist. Create it now? You can change the directory later via Edit -> Settings. - - Use note frequency for noise + + Preparing UI - - Noise mode + + Preparing song editor - - Master volume - 主音量 - - - - Vibrato + + Preparing mixer - - - OpulenzInstrument - - Patch - 音色 + + Preparing controller rack + - - Op 1 attack + + Preparing project notes - - Op 1 decay + + Preparing microtuner - - Op 1 sustain + + Preparing pattern editor - - Op 1 release + + Preparing piano roll - - Op 1 level + + Preparing automation editor + + + lmms::gui::InstrumentFunctionArpeggioView - - Op 1 level scaling + + ARPEGGIO - - Op 1 frequency multiplier + + RANGE - - Op 1 feedback + + Arpeggio range: - - Op 1 key scaling rate + + octave(s) - - Op 1 percussive envelope + + REP - - Op 1 tremolo + + Note repeats: - - Op 1 vibrato + + time(s) - - Op 1 waveform + + CYCLE - - Op 2 attack + + Cycle notes: - - Op 2 decay + + note(s) - - Op 2 sustain + + SKIP - - Op 2 release + + Skip rate: - - Op 2 level + + + + % - - Op 2 level scaling + + MISS - - Op 2 frequency multiplier + + Miss rate: - - Op 2 key scaling rate + + TIME - - Op 2 percussive envelope + + Arpeggio time: - - Op 2 tremolo + + ms - - Op 2 vibrato + + GATE - - Op 2 waveform + + Arpeggio gate: - - FM + + Chord: - - Vibrato depth + + Direction: - - Tremolo depth + + Mode: - OpulenzInstrumentView - - - - Attack - 打進聲 - + lmms::gui::InstrumentFunctionNoteStackingView - - - Decay - 衰減 + + STACKING + - - - Release - 釋放 + + Chord: + - - - Frequency multiplier + + RANGE - - - OscillatorObject - - Osc %1 waveform - Osc %1 波形 + + Chord range: + - - Osc %1 harmonic + + octave(s) + + + lmms::gui::InstrumentMidiIOView - - - Osc %1 volume - Osc %1 音量 + + ENABLE MIDI INPUT + - - - Osc %1 panning - Osc %1 聲像 + + + CHAN + This string must be be short, its width must be less than * width of LCD spin-box of two digits + - - - Osc %1 fine detuning left + + + VELOC + This string must be be short, its width must be less than * width of LCD spin-box of three digits - - Osc %1 coarse detuning + + ENABLE MIDI OUTPUT - - Osc %1 fine detuning right + + PROG + This string must be be short, its width must be less than the * width of LCD spin-box of three digits - - Osc %1 phase-offset + + NOTE + This string must be be short, its width must be less than * width of LCD spin-box of three digits - - Osc %1 stereo phase-detuning + + MIDI devices to receive MIDI events from - - Osc %1 wave shape + + MIDI devices to send MIDI events to - - Modulation type %1 + + VELOCITY MAPPING - - - Oscilloscope - - Oscilloscope + + MIDI VELOCITY - - Click to enable - 點擊啓用 + + MIDI notes at this velocity correspond to 100% note velocity. + - PatchesDialog + lmms::gui::InstrumentSoundShapingView - - Qsynth: Channel Preset - Qsynth: 通道預設 + + TARGET + - - Bank selector - 音色選擇器 + + FILTER + - - Bank - + + FREQ + - - Program selector + + Cutoff frequency: - - Patch - 音色 + + Hz + - - Name - 名稱 + + Q/RESO + - - OK - 確定 + + Q/Resonance: + - - Cancel - 取消 + + Envelopes, LFOs and filters are not supported by the current instrument. + - PatmanView + lmms::gui::InstrumentTrackView - - Open patch + + Mixer channel - - Loop - 循環 - - - - Loop mode - 循環模式 + + Volume + - - Tune - 調音 + + Volume: + - - Tune mode - 調音模式 + + VOL + - - No file selected - 未選擇檔案 + + Panning + - - Open patch file - 打開音色文件 + + Panning: + - - Patch-Files (*.pat) - 音色文件 (*.pat) + + PAN + - - - MidiClipView - - Open in piano-roll - 在鋼琴窗中打開 + + MIDI + - - Set as ghost in piano-roll + + Input - - Clear all notes - 清除所有音符 + + Output + - - Reset name - 重置名稱 + + Open/Close MIDI CC Rack + - - Change name - 修改名稱 + + %1: %2 + + + + lmms::gui::InstrumentTrackWindow - - Add steps - 添加音階 + + Volume + - - Remove steps - 移除音階 + + Volume: + - - Clone Steps + + VOL - - - PeakController - - Peak Controller - 峯值控制器 + + Panning + - - Peak Controller Bug - 峯值控制器 Bug + + Panning: + - - Due to a bug in older version of LMMS, the peak controllers may not be connect properly. Please ensure that peak controllers are connected properly and re-save this file. Sorry for any inconvenience caused. - 由於在舊版 LMMS 中的錯誤,峰值控制器可能並未正確地連線。請確認峰值控制器正確地連線後再次儲存檔案。造成您的不便,深感抱歉。 + + PAN + - - - PeakControllerDialog - - PEAK + + Pitch - - LFO Controller - LFO 控制器 + + Pitch: + - - - PeakControllerEffectControlDialog - - BASE - 基準 + + cents + - - Base: + + PITCH - - AMNT + + Pitch range (semitones) - - Modulation amount: - 調製量: + + RANGE + - - MULT + + Mixer channel - - Amount multiplicator: + + CHANNEL - - ATCK - 打擊 + + Save current instrument track settings in a preset file + - - Attack: - 打擊聲: + + SAVE + - - DCAY + + Envelope, filter & LFO - - Release: - 釋音: + + Chord stacking & arpeggio + - - TRSH + + Effects - - Treshold: + + MIDI - - Mute output - 輸出靜音 + + Tuning and transposition + - - Absolute value + + Save preset - - - PeakControllerEffectControls - - Base value - 基準值 + + XML preset file (*.xpf) + - - Modulation amount - 調製量 + + Plugin + + + + lmms::gui::InstrumentTuningView - - Attack - 打進聲 + + GLOBAL TRANSPOSITION + - - Release - 釋放 + + Enables the use of global transposition + - - Treshold - 閥值 + + Microtuner is not available for MIDI-based instruments. + - - Mute output - 輸出靜音 + + MICROTUNER + - - Absolute value + + Active scale: - - Amount multiplicator + + + Edit scales and keymaps - - - PianoRoll - - Note Velocity - 音符音量 + + Active keymap: + - - Note Panning - 音符聲相偏移 + + Import note ranges from keymap + - - Mark/unmark current semitone - 標記/取消標記當前半音 + + When enabled, the first, last and base notes of this instrument will be overwritten with values specified by the selected keymap. + + + + lmms::gui::KickerInstrumentView - - Mark/unmark all corresponding octave semitones + + Start frequency: - - Mark current scale + + End frequency: - - Mark current chord + + Frequency slope: - - Unmark all - 取消標記所有 + + Gain: + - - Select all notes on this key - 選中所有相同音調的音符 + + Envelope length: + - - Note lock - 音符鎖定 + + Envelope slope: + - - Last note - 上一個音符 + + Click: + - - No key + + Noise: - - No scale + + Start distortion: - - No chord + + End distortion: + + + lmms::gui::LOMMControlDialog - - Nudge + + Depth: - - Snap + + Compression amount for all bands - - Velocity: %1% - 音量:%1% + + Time: + - - Panning: %1% left - 聲相:%1% 偏左 + + Attack/release scaling for all bands + - - Panning: %1% right - 聲相:%1% 偏右 + + Input Volume: + - - Panning: center - 聲相:居中 + + Input volume + - - Glue notes failed + + Output Volume: - - Please select notes to glue first. + + Output volume - - Please open a clip by double-clicking on it! - 雙擊打開片段! + + Upward Depth: + - - - Please enter a new value between %1 and %2: - 請輸入一個介於 %1 和 %2 的值: + + Upward compression amount for all bands + - - - PianoRollWindow - - Play/pause current clip (Space) - 播放/暫停當前片段(空格) + + Downward Depth: + - - Record notes from MIDI-device/channel-piano - 從 MIDI 設備/通道鋼琴(channel-piano) 錄製音符 + + Downward compression amount for all bands + - - Record notes from MIDI-device/channel-piano while playing song or BB track + + High/Mid Crossover - - Record notes from MIDI-device/channel-piano, one step at the time + + Mid/Low Crossover - - Stop playing of current clip (Space) - 停止當前片段(空格) + + High/mid band split + - - Edit actions - 編輯功能 + + Mid/low band split + - - Draw mode (Shift+D) - 繪製模式 (Shift+D) + + Enable High Band + - - Erase mode (Shift+E) - 擦除模式 (Shift+E) + + Enable Mid Band + - - Select mode (Shift+S) - 選擇模式 (Shift+S) + + Enable Low Band + - - Pitch Bend mode (Shift+T) + + High Input Volume: - - Quantize + + Input volume for high band - - Quantize positions + + Mid Input Volume: - - Quantize lengths + + Input volume for mid band - - File actions + + Low Input Volume: - - Import clip + + Input volume for low band - - - Export clip + + High Output Volume: - - Copy paste controls + + Output volume for high band - - Cut (%1+X) + + Mid Output Volume: - - Copy (%1+C) + + Output volume for mid band - - Paste (%1+V) + + Low Output Volume: - - Timeline controls - 時間線控制 + + Output volume for low band + - - Glue + + Above Threshold High - - Knife + + Downward compression threshold for high band - - Fill + + Above Threshold Mid - - Cut overlaps + + Downward compression threshold for mid band - - Min length as last + + Above Threshold Low - - Max length as last + + Downward compression threshold for low band - - Zoom and note controls + + Above Ratio High - - Horizontal zooming - 橫向縮放 + + Downward compression ratio for high band + - - Vertical zooming - 垂直縮放 + + Above Ratio Mid + - - Quantization - 量化 + + Downward compression ratio for mid band + - - Note length + + Above Ratio Low - - Key + + Downward compression ratio for low band - - Scale + + Below Threshold High - - Chord + + Upward compression threshold for high band - - Snap mode + + Below Threshold Mid - - Clear ghost notes + + Upward compression threshold for mid band - - - Piano-Roll - %1 - 鋼琴窗 - %1 + + Below Threshold Low + - - - Piano-Roll - no clip - 鋼琴窗 - 沒有片段 + + Upward compression threshold for low band + - - - XML clip file (*.xpt *.xptz) + + Below Ratio High - - Export clip success + + Upward compression ratio for high band - - Clip saved to %1 + + Below Ratio Mid - - Import clip. + + Upward compression ratio for mid band - - You are about to import a clip, this will overwrite your current clip. Do you want to continue? + + Below Ratio Low - - Open clip + + Upward compression ratio for low band - - Import clip success + + Attack High: - - Imported clip %1! + + Attack time for high band - - - PianoView - - Base note - 基本音 + + Attack Mid: + - - First note + + Attack time for mid band - - Last note - 上一個音符 + + Attack Low: + - - - Plugin - - Plugin not found - 未找到插件 + + Attack time for low band + - - The plugin "%1" wasn't found or could not be loaded! -Reason: "%2" - 插件“%1”無法找到或無法載入! -原因:%2 + + Release High: + - - Error while loading plugin - 載入插件時發生錯誤 + + Release time for high band + - - Failed to load plugin "%1"! - 載入插件“%1”失敗! + + Release Mid: + - - - PluginBrowser - - Instrument Plugins + + Release time for mid band - - Instrument browser - 樂器瀏覽器 + + Release Low: + - - Drag an instrument into either the Song-Editor, the Beat+Bassline Editor or into an existing instrument track. - 將樂器插件拖入歌曲編輯器, 節拍低音線編輯器, 或者現有的樂器軌道。 + + Release time for low band + - - no description - 沒有描述 + + RMS Time: + - - A native amplifier plugin - 原生增益插件 + + RMS size for sidechain signal (set to 0 for Peak mode) + - - Simple sampler with various settings for using samples (e.g. drums) in an instrument-track - 簡單地在樂器欄使用採樣(比如鼓音源), 同時也提供多種設置 + + Knee: + - - Boost your bass the fast and simple way + + Knee size for all compressors - - Customizable wavetable synthesizer - 可自定製的波表合成器 + + Range: + - - An oversampling bitcrusher + + Maximum gain increase for all bands - - Carla Patchbay Instrument - Carla Patchbay 樂器 + + Balance: + - - Carla Rack Instrument - Carla Rack 樂器 + + Bias input volume towards one channel + - - A dynamic range compressor. + + Scale output volume with Depth - - A 4-band Crossover Equalizer + + Scale output volume with Depth parameter - - A native delay plugin - 原生的衰減插件 + + Stereo Link + - - A Dual filter plugin + + Apply same gain change to both channels - - plugin for processing dynamics in a flexible way + + Auto Time: - - A native eq plugin - 原生的 EQ 插件 + + Speed up attack and release times when transients occur + - - A native flanger plugin - 一個原生的 鑲邊 (Flanger) 插件 + + Mix: + - - Emulation of GameBoy (TM) APU - GameBoy (TM) APU 模擬器 + + Wet/Dry of all bands + - - Player for GIG files - 播放 GIG 檔案的播放器 + + Feedback + - - Filter for importing Hydrogen files into LMMS - 匯入 Hydrogen 專案檔至 LMMS 的解析器 + + Use output as sidechain signal instead of input + - - Versatile drum synthesizer - 多功能鼓合成器 + + Mid/Side + - - List installed LADSPA plugins - 列出已安裝的 LADSPA 插件 + + Compress mid/side channels instead of left/right + - - plugin for using arbitrary LADSPA-effects inside LMMS. - 在 LMMS 中使用任意 LADSPA 效果的插件。 + + + Suppress upward compression for side band + - - Incomplete monophonic imitation TB-303 + + + Lookahead - - plugin for using arbitrary LV2-effects inside LMMS. + + Lookahead length - - plugin for using arbitrary LV2 instruments inside LMMS. + + Clear all parameters + + + lmms::gui::LadspaBrowserView - - Filter for exporting MIDI-files from LMMS - 從 LMMS 匯出 MIDI 檔的解析器 + + + Available Effects + - - Filter for importing MIDI-files into LMMS - 匯入 MIDI 檔至 LMMS 的解析器 + + + Unavailable Effects + - - Monstrous 3-oscillator synth with modulation matrix + + + Instruments - - A multitap echo delay plugin + + + Analysis Tools - - A NES-like synthesizer - 類似於 NES 的合成器 + + + Don't know + - - 2-operator FM Synth + + Type: + + + lmms::gui::LadspaControlDialog - - Additive Synthesizer for organ-like sounds + + Link Channels - - GUS-compatible patch instrument - GUS 兼容音色的樂器 + + Channel + + + + lmms::gui::LadspaControlView - - Plugin for controlling knobs with sound peaks + + Link channels - - Reverb algorithm by Sean Costello + + Value: + + + lmms::gui::LadspaDescription - - Player for SoundFont files - 播放 SoundFont 檔案的播放器 + + Plugins + - - LMMS port of sfxr - sfxr 的 LMMS 移植版本 + + Description + - - Emulation of the MOS6581 and MOS8580 SID. -This chip was used in the Commodore 64 computer. - 模擬 MOS6581 和 MOS8580 SID 的模擬器 -這些芯片曾在 Commodore 64 電腦上用過。 + + Name: + - - A graphical spectrum analyzer. + + Maker: - - Plugin for enhancing stereo separation of a stereo input file - 用以增強雙聲道輸入檔的聲道分離插件 + + Copyright: + - - Plugin for freely manipulating stereo output + + Requires Real Time: - - Tuneful things to bang on + + + + Yes - - Three powerful oscillators you can modulate in several ways + + + + No - - A stereo field visualizer. + + Real Time Capable: - - VST-host for using VST(i)-plugins within LMMS - LMMS的VST(i)插件宿主 + + In Place Broken: + - - Vibrating string modeler + + Channels In: - - plugin for using arbitrary VST effects inside LMMS. + + Channels Out: + + + lmms::gui::LadspaMatrixControlDialog - - 4-oscillator modulatable wavetable synth + + Link Channels - - plugin for waveshaping + + Link - - Mathematical expression parser + + Channel %1 - - Embedded ZynAddSubFX - 內置的 ZynAddSubFX + + Link channels + - PluginDatabaseW + lmms::gui::LadspaPortDialog - - Carla - Add New + + Ports - - Format + + Name - - Internal + + Rate - - LADSPA + + Direction - - DSSI + + Type - - LV2 + + Min < Default < Max - - VST2 + + Logarithmic - - VST3 + + SR Dependent - - AU + + Audio - - Sound Kits + + Control - - Type - 類型 - - - - Effects + + Input - - Instruments - 樂器插件 + + Output + - - MIDI Plugins + + Toggled - - Other/Misc + + Integer - - Architecture + + Float - - Native + + + Yes + + + lmms::gui::Lb302SynthView - - Bridged + + Cutoff Freq: - - Bridged (Wine) + + Resonance: - - Requirements + + Env Mod: - - With Custom GUI + + Decay: - - With CV Ports + + 303-es-que, 24dB/octave, 3 pole filter - - Real-time safe only + + Slide Decay: - - Stereo only + + DIST: - - With Inline Display + + Saw wave - - Favorites only + + Click here for a saw-wave. - - (Number of Plugins go here) + + Triangle wave - - &Add Plugin + + Click here for a triangle-wave. - - Cancel - 取消 + + Square wave + - - Refresh + + Click here for a square-wave. - - Reset filters + + Rounded square wave - - - - - - - - - - - - - - - - - TextLabel + + Click here for a square-wave with a rounded end. - - Format: + + Moog wave - - Architecture: + + Click here for a moog-like wave. - - Type: - 類型: + + Sine wave + - - MIDI Ins: + + Click for a sine-wave. - - Audio Ins: + + + White noise wave - - CV Outs: + + Click here for an exponential wave. - - MIDI Outs: + + Click here for white-noise. - - Parameter Ins: + + Bandlimited saw wave - - Parameter Outs: + + Click here for bandlimited saw wave. - - Audio Outs: + + Bandlimited square wave - - CV Ins: + + Click here for bandlimited square wave. - - UniqueID: + + Bandlimited triangle wave - - Has Inline Display: + + Click here for bandlimited triangle wave. - - Has Custom GUI: + + Bandlimited moog saw wave - - Is Synth: + + Click here for bandlimited moog saw wave. + + + lmms::gui::LcdFloatSpinBox - - Is Bridged: + + Set value - - Information + + Please enter a new value between %1 and %2: + + + lmms::gui::LcdSpinBox - - Name - 名稱 + + Set value + - - Label/URI + + Please enter a new value between %1 and %2: + + + lmms::gui::LeftRightNav - - Maker + + + + Previous - - Binary/Filename + + + + Next - - Focus Text Search + + Previous (%1) - - Ctrl+F + + Next (%1) - PluginEdit + lmms::gui::LfoControllerDialog - - Plugin Editor + + LFO - - Edit + + BASE - - Control - 控制 + + Base: + - - MIDI Control Channel: + + FREQ - - N + + LFO frequency: - - Output dry/wet (100%) + + AMNT - - Output volume (100%) + + Modulation amount: - - Balance Left (0%) + + PHS - - - Balance Right (0%) + + Phase offset: - - Use Balance + + degrees - - Use Panning + + Sine wave - - Settings - 設置 + + Triangle wave + - - Use Chunks + + Saw wave - - Audio: + + Square wave - - Fixed-Size Buffer + + Moog saw wave - - Force Stereo (needs reload) + + Exponential wave - - MIDI: + + White noise - - Map Program Changes + + User-defined shape. +Double click to pick a file. - - Send Bank/Program Changes + + Multiply modulation frequency by 1 - - Send Control Changes + + Multiply modulation frequency by 100 - - Send Channel Pressure + + Divide modulation frequency by 100 + + + lmms::gui::LfoGraph - - Send Note Aftertouch + + %1 Hz + + + lmms::gui::MainWindow - - Send Pitchbend + + Configuration file - - Send All Sound/Notes Off + + Error while parsing configuration file at line %1:%2: %3 - - -Plugin Name - + + Could not open file - - Program: + + Could not open file %1 for writing. +Please make sure you have write permission to the file and the directory containing the file and try again! - - MIDI Program: + + Project recovery - - Save State + + There is a recovery file present. It looks like the last session did not end properly or another instance of LMMS is already running. Do you want to recover the project of this session? - - Load State + + + Recover - - Information + + Recover the file. Please don't run multiple instances of LMMS when you do this. - - Label/URI: + + + Discard - - Name: + + Launch a default session and delete the restored files. This is not reversible. - - Type: - 類型: + + Version %1 + - - Maker: + + Preparing plugin browser - - Copyright: + + Preparing file browsers - - Unique ID: + + My Projects - - - PluginFactory - - Plugin not found. - 未找到插件。 + + My Samples + - - LMMS plugin %1 does not have a plugin descriptor named %2! + + My Presets - - - PluginParameter - - Form + + My Home - - Parameter Name + + Root Directory - - ... + + Volumes - - - PluginRefreshW - - Carla - Refresh + + My Computer - - Search for new... + + Loading background picture - - LADSPA + + &File - - DSSI + + &New - - LV2 + + &Open... - - VST2 + + &Save - - VST3 + + Save &As... - - AU + + Save as New &Version - - SF2/3 + + Save as default template - - SFZ + + Import... - - Native + + E&xport... - - POSIX 32bit + + E&xport Tracks... - - POSIX 64bit + + Export &MIDI... - - Windows 32bit + + &Quit - - Windows 64bit + + &Edit - - Available tools: + + Undo - - python3-rdflib (LADSPA-RDF support) + + Redo - - carla-discovery-win64 + + Scales and keymaps - - carla-discovery-native + + Settings - - carla-discovery-posix32 + + &View - - carla-discovery-posix64 + + &Tools - - carla-discovery-win32 + + &Help - - Options: + + Online Help - - Carla will run small processing checks when scanning the plugins (to make sure they won't crash). -You can disable these checks to get a faster scanning time (at your own risk). + + Help - - Run processing checks while scanning + + About - - Press 'Scan' to begin the search + + Create new project - - Scan + + Create new project from template - - >> Skip + + Open existing project - - Close + + Recently opened projects - - - PluginWidget - - - - - - Frame + + Save current project - - Enable + + Export current project - - On/Off - 開/關 + + Metronome + - - - - - PluginName + + + Song Editor - - MIDI - MIDI + + + Pattern Editor + - - AUDIO IN + + + Piano Roll - - AUDIO OUT + + + Automation Editor - - GUI + + + Mixer - - Edit + + Show/hide controller rack - - Remove + + Show/hide project notes - - Plugin Name + + Untitled - - Preset: + + Recover session. Please save your work! - - - ProjectNotes - - Project Notes - 顯示/隱藏工程註釋 + + LMMS %1 + - - Enter project notes here + + Recovered project not saved - - Edit Actions - 編輯功能 + + This project was recovered from the previous session. It is currently unsaved and will be lost if you don't save it. Do you want to save it now? + - - &Undo - 撤銷(&U) + + Project not saved + - - %1+Z - %1+Z + + The current project was modified since last saving. Do you want to save it now? + - - &Redo - 重做(&R) + + Open Project + - - %1+Y - %1+Y + + LMMS (*.mmp *.mmpz) + - - &Copy - 複製(&C) + + Save Project + + + + + LMMS Project + - - %1+C - %1+C + + LMMS Project Template + - - Cu&t - 剪切(&T) + + Save project template + - - %1+X - %1+X + + Overwrite default template? + - - &Paste - 粘貼(&P) + + This will overwrite your current default template. + - - %1+V - %1+V + + Help not available + - - Format Actions - 格式功能 + + Currently there's no help available in LMMS. +Please visit http://lmms.sf.net/wiki for documentation on LMMS. + - - &Bold - 加粗(&B) + + Controller Rack + - - %1+B - %1+B + + Project Notes + - - &Italic - 斜體(&I) + + Fullscreen + - - %1+I - %1+I + + Volume as dBFS + - - &Underline - 下劃線(&U) + + Smooth scroll + - - %1+U - %1+U + + Enable note labels in piano roll + - - &Left - 左對齊(&L) + + MIDI File (*.mid) + - - %1+L - %1+L + + + untitled + - - C&enter - 居中(&E) + + + Select file for project-export... + - - %1+E - %1+E + + Select directory for writing exported tracks... + - - &Right - 右對齊(&R) + + Save project + - - %1+R - %1+R + + Project saved + - - &Justify - 勻齊(&J) + + The project %1 is now saved. + - - %1+J - %1+J + + Project NOT saved. + - - &Color... - 顏色(&C)... + + The project %1 was not saved! + - - - ProjectRenderer - - WAV (*.wav) + + Import file - - FLAC (*.flac) + + MIDI sequences - - OGG (*.ogg) + + Hydrogen projects - - MP3 (*.mp3) + + All file types - QObject + lmms::gui::MalletsInstrumentView - - Reload Plugin + + Instrument - - Show GUI - 顯示圖形界面 + + Spread + - - Help - 幫助 + + Spread: + - - - QWidget - - - - - Name: - 名稱: + + Random + - - URI: + + Random: - - - - Maker: - 製作者: + + Missing files + - - - - Copyright: - 版權: + + Your Stk-installation seems to be incomplete. Please make sure the full Stk-package is installed! + - - - Requires Real Time: - 要求實時: + + Hardness + - - - - - - - Yes - + + Hardness: + - - - - - - - No - + + Position + - - - Real Time Capable: - 是否支持實時: + + Position: + - - - In Place Broken: + + Vibrato gain - - - Channels In: - 輸入通道: + + Vibrato gain: + - - - Channels Out: - 輸出通道: + + Vibrato frequency + - - File: %1 - 檔案:%1 + + Vibrato frequency: + - - File: - 檔案: + + Stick mix + - - - RecentProjectsMenu - - &Recently Opened Projects - 最近打開的工程(&R) + + Stick mix: + - - - RenameDialog - - Rename... - 重命名... + + Modulator + - - - ReverbSCControlDialog - - Input - 輸入 + + Modulator: + - - Input gain: - 輸入增益: + + Crossfade + - - Size + + Crossfade: - - Size: + + LFO speed - - Color + + LFO speed: - - Color: + + LFO depth - - Output - 輸出 + + LFO depth: + - - Output gain: - 輸出增益: + + ADSR + - - - ReverbSCControls - - Input gain - 輸入增益 + + ADSR: + - - Size + + Pressure - - Color + + Pressure: - - Output gain - 輸出增益 + + Speed + - - - SaControls - - Pause + + Speed: + + + lmms::gui::ManageVSTEffectView - - Reference freeze + + - VST parameter control - - Waterfall + + VST sync - - Averaging + + + Automated - - Stereo + + Close + + + lmms::gui::ManageVestigeInstrumentView - - Peak hold + + + - VST plugin control - - Logarithmic frequency + + VST Sync - - Logarithmic amplitude + + + Automated - - Frequency range + + Close + + + lmms::gui::MeterDialog - - Amplitude range + + + Meter Numerator - - FFT block size + + Meter numerator - - FFT window type + + + Meter Denominator - - Peak envelope resolution + + Meter denominator - - Spectrum display resolution + + TIME SIG + + + lmms::gui::MicrotunerConfig - - Peak decay multiplier + + Selected scale slot - - Averaging weight + + Selected keymap slot - - Waterfall history size + + + First key - - Waterfall gamma correction + + + Last key - - FFT window overlap + + + Middle key - - FFT zero padding + + + Base key - - - Full (auto) + + + + Base note frequency - - - - Audible + + Microtuner Configuration - - Bass - 低音 + + Scale slot to edit: + - - Mids + + Scale description. Cannot start with "!" and cannot contain a newline character. - - High + + + Load - - Extended + + + Save - - Loud + + Load scale definition from a file. - - Silent + + Save scale definition to a file. - - (High time res.) + + Enter intervals on separate lines. Numbers containing a decimal point are treated as cents. +Other inputs are treated as integer ratios and must be in the form of 'a/b' or 'a'. +Unity (0.0 cents or ratio 1/1) is always present as a hidden first value; do not enter it manually. - - (High freq. res.) + + Apply scale changes - - Rectangular (Off) + + Verify and apply changes made to the selected scale. To use the scale, select it in the settings of a supported instrument. - - - Blackman-Harris (Default) + + Keymap slot to edit: - - Hamming + + Keymap description. Cannot start with "!" and cannot contain a newline character. - - Hanning + + Load key mapping definition from a file. - - - SaControlsDialog - - Pause + + Save key mapping definition to a file. - - Pause data acquisition + + Enter key mappings on separate lines. Each line assigns a scale degree to a MIDI key, +starting with the middle key and continuing in sequence. +The pattern repeats for keys outside of the explicit keymap range. +Multiple keys can be mapped to the same scale degree. +Enter 'x' if you wish to leave the key disabled / not mapped. - - Reference freeze + + FIRST - - Freeze current input as a reference / disable falloff in peak-hold mode. + + First MIDI key that will be mapped - - Waterfall + + LAST - - Display real-time spectrogram + + Last MIDI key that will be mapped - - Averaging + + MIDDLE - - Enable exponential moving average + + First line in the keymap refers to this MIDI key - - Stereo + + BASE N. - - Display stereo channels separately + + Base note frequency will be assigned to this MIDI key - - Peak hold + + BASE NOTE FREQ - - Display envelope of peak values + + Apply keymap changes - - Logarithmic frequency + + Verify and apply changes made to the selected key mapping. To use the mapping, select it in the settings of a supported instrument. - - Switch between logarithmic and linear frequency scale + + Scale parsing error - - - Frequency range + + Scale name cannot start with an exclamation mark - - Logarithmic amplitude + + Scale name cannot contain a new-line character - - Switch between logarithmic and linear amplitude scale + + Interval defined in cents cannot be converted to a number - - - Amplitude range + + Numerator of an interval defined as a ratio cannot be converted to a number - - Envelope res. + + Denominator of an interval defined as a ratio cannot be converted to a number - - Increase envelope resolution for better details, decrease for better GUI performance. + + Interval defined as a ratio cannot be negative - - - Draw at most + + Keymap parsing error - - envelope points per pixel + + Keymap name cannot start with an exclamation mark - - Spectrum res. + + Keymap name cannot contain a new-line character - - Increase spectrum resolution for better details, decrease for better GUI performance. + + Scale degree cannot be converted to a whole number - - spectrum points per pixel + + Scale degree cannot be negative - - Falloff factor + + Invalid keymap - - Decrease to make peaks fall faster. + + Base key is not mapped to any scale degree. No sound will be produced as there is no way to assign reference frequency to any note. - - Multiply buffered value by + + Open scale - - Averaging weight + + + Scala scale definition (*.scl) - - Decrease to make averaging slower and smoother. + + Scale load failure - - New sample contributes + + + Unable to open selected file. - - Waterfall height + + Open keymap - - Increase to get slower scrolling, decrease to see fast transitions better. Warning: medium CPU usage. + + + Scala keymap definition (*.kbm) - - Keep + + Keymap load failure - - lines + + Save scale - - Waterfall gamma + + Scale save failure - - Decrease to see very weak signals, increase to get better contrast. + + + Unable to open selected file for writing. - - Gamma value: + + Save keymap - - Window overlap + + Keymap save failure + + + lmms::gui::MidiCCRackView - - Increase to prevent missing fast transitions arriving near FFT window edges. Warning: high CPU usage. + + + MIDI CC Rack - %1 - - Each sample processed + + MIDI CC Knobs: - - times + + CC %1 + + + lmms::gui::MidiClipView - - Zero padding + + + Transpose - - Increase to get smoother-looking spectrum. Warning: high CPU usage. + + Semitones to transpose by: - - Processing buffer is + + Open in piano-roll - - steps larger than input block + + Set as ghost in piano-roll - - Advanced settings + + Set as ghost in automation editor - - Access advanced settings + + Clear all notes - - - FFT block size + + Reset name - - - FFT window type + + Change name - - - SampleBuffer - - Fail to open file - 無法開啟檔案 + + Add steps + - - Audio files are limited to %1 MB in size and %2 minutes of playing time - 音訊檔案的檔案大小已限制為 %1 MB,播放時間已限制為 %2 分鐘。 + + Remove steps + - - Open audio file - 開啟音訊檔案 + + Clone Steps + + + + lmms::gui::MidiSetupWidget - - All Audio-Files (*.wav *.ogg *.ds *.flac *.spx *.voc *.aif *.aiff *.au *.raw) - 所有音訊檔案 (*.wav *.ogg *.ds *.flac *.spx *.voc *.aif *.aiff *.au *.raw) + + Device + + + + lmms::gui::MixerChannelLcdSpinBox - - Wave-Files (*.wav) - Wave 波形檔案 (*.wav) + + Assign to: + - - OGG-Files (*.ogg) - OGG 檔案 (*.ogg) + + New Mixer Channel + - - DrumSynth-Files (*.ds) - DrumSynth 檔案 (*.ds) + + Please enter a new value between %1 and %2: + - - FLAC-Files (*.flac) - FLAC 檔案 (*.flac) + + Set value + + + + lmms::gui::MixerChannelView - - SPEEX-Files (*.spx) - SPEEX 檔案 (*.spx) + + Channel send amount + - - VOC-Files (*.voc) - VOC 檔案 (*.voc) + + Mute + - - AIFF-Files (*.aif *.aiff) - AIFF 檔案 (*.aif *.aiff) + + Mute this channel + - - AU-Files (*.au) - AU 檔案 (*.au) + + Solo + - - RAW-Files (*.raw) - RAW 檔案 (*.raw) + + Solo this channel + - - - SampleClipView - - Double-click to open sample + + Fader %1 - - Delete (middle mousebutton) - 刪除 (鼠標中鍵) + + Move &left + - - Delete selection (middle mousebutton) + + Move &right - - Cut - 剪切 + + Rename &channel + - - Cut selection + + R&emove channel - - Copy - 複製 + + Remove &unused channels + - - Copy selection + + Color - - Paste - 粘貼 + + Change + - - Mute/unmute (<%1> + middle click) - 靜音/取消靜音 (<%1> + 鼠標中鍵) + + Reset + - - Mute/unmute selection (<%1> + middle click) + + Pick random - - Reverse sample - 反轉取樣 + + This Mixer Channel is being used. +Are you sure you want to remove this channel? + +Warning: This operation can not be undone. + - - Set clip color + + Confirm removal - - Use track color + + Don't ask again - SampleTrack - - - Volume - 音量 - - - - Panning - 聲相 - - - - Mixer channel - 效果通道 - + lmms::gui::MixerView - - - Sample track - 採樣軌道 + + Mixer + - SampleTrackView + lmms::gui::MonstroView - - Track volume - 軌道音量 + + Operators view + - - Channel volume: - 通道音量: + + Matrix view + - - VOL - VOL + + + + Volume + - + + + Panning - 聲相 - - - - Panning: - 聲相: - - - - PAN - PAN + - - Channel %1: %2 - 效果 %1: %2 + + + + Coarse detune + - - - SampleTrackWindow - - GENERAL SETTINGS - 常規設置 + + + + semitones + - - Sample volume + + + Fine tune left - - Volume: - 音量: + + + + + cents + - - VOL - VOL + + + Fine tune right + - - Panning - 聲相 + + + + Stereo phase offset + - - Panning: - 聲相: + + + + + + deg + - - PAN - PAN + + Pulse width + - - Mixer channel - 效果通道 + + Send sync on pulse rise + - - CHANNEL - 效果 + + Send sync on pulse fall + - - - SaveOptionsWidget - - Discard MIDI connections + + Hard sync oscillator 2 - - Save As Project Bundle (with resources) + + Reverse sync oscillator 2 - - - SetupDialog - - Reset to default value + + Sub-osc mix - - Use built-in NaN handler + + Hard sync oscillator 3 - - Settings - 設置 + + Reverse sync oscillator 3 + - - - General + + + + + Attack - - Graphical user interface (GUI) + + + Rate - - Display volume as dBFS + + + Phase - - Enable tooltips - 啓用工具提示 + + + Pre-delay + - - Enable master oscilloscope by default + + + Hold - - Enable all note labels in piano roll + + + Decay - - Enable compact track buttons + + + Sustain - - Enable one instrument-track-window mode + + + Release - - Show sidebar on the right-hand side + + + Slope - - Let sample previews continue when mouse is released + + Mix osc 2 with osc 3 - - Mute automation tracks during solo + + Modulate amplitude of osc 3 by osc 2 - - Show warning when deleting tracks + + Modulate frequency of osc 3 by osc 2 - - Projects + + Modulate phase of osc 3 by osc 2 - - Compress project files by default + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Modulation amount + + + lmms::gui::MultitapEchoControlDialog - - Create a backup file when saving a project + + Length - - Reopen last project on startup + + Step length: - - Language + + Dry - - - Performance + + Dry gain: - - Autosave + + Stages - - Enable autosave + + Low-pass stages: - - Allow autosave while playing + + Swap inputs - - User interface (UI) effects vs. performance + + Swap left and right input channels for reflections + + + lmms::gui::NesInstrumentView - - Smooth scroll in song editor + + + + + Volume - - Display playback cursor in AudioFileProcessor + + + + Coarse detune - - Plugins - 插件 + + + + Envelope length + - - VST plugins embedding: + + Enable channel 1 - - No embedding + + Enable envelope 1 - - Embed using Qt API + + Enable envelope 1 loop - - Embed using native Win32 API + + Enable sweep 1 - - Embed using XEmbed protocol + + + Sweep amount - - Keep plugin windows on top when not embedded + + + Sweep rate - - Sync VST plugins to host playback - 同步 VST 插件和主機回放 + + + 12.5% Duty cycle + - - Keep effects running even without input - 在沒有輸入時也運行音頻效果 + + + 25% Duty cycle + - - - Audio - 音頻 + + + 50% Duty cycle + - - Audio interface + + + 75% Duty cycle - - HQ mode for output audio device + + Enable channel 2 - - Buffer size + + Enable envelope 2 - - - MIDI - MIDI + + Enable envelope 2 loop + - - MIDI interface + + Enable sweep 2 - - Automatically assign MIDI controller to selected track + + Enable channel 3 - - LMMS working directory - LMMS工作目錄 + + Noise Frequency + - - VST plugins directory + + Frequency sweep - - LADSPA plugins directories + + Enable channel 4 - - SF2 directory - SF2 目錄 + + Enable envelope 4 + - - Default SF2 + + Enable envelope 4 loop - - GIG directory - GIG 目錄 + + Quantize noise frequency when using note frequency + - - Theme directory + + Use note frequency for noise - - Background artwork - 背景圖片 + + Noise mode + - - Some changes require restarting. + + Master volume - - Autosave interval: %1 + + Vibrato + + + lmms::gui::OpulenzInstrumentView - - Choose the LMMS working directory + + + Attack - - Choose your VST plugins directory + + + Decay - - Choose your LADSPA plugins directory + + + Release - - Choose your default SF2 + + + Frequency multiplier + + + lmms::gui::OrganicInstrumentView - - Choose your theme directory + + Distortion: - - Choose your background picture + + Volume: - - - Paths - 路徑 + + Randomise + - - OK - 確定 + + + Osc %1 waveform: + - - Cancel - 取消 + + Osc %1 volume: + - - Frames: %1 -Latency: %2 ms - 幀數: %1 -延遲: %2 毫秒 + + Osc %1 panning: + - - Choose your GIG directory - 選擇 GIG 目錄 + + Osc %1 stereo detuning + - - Choose your SF2 directory - 選擇 SF2 目錄 + + cents + - - minutes - 分鐘 + + Osc %1 harmonic: + + + + lmms::gui::Oscilloscope - - minute - 分鐘 + + Oscilloscope + - - Disabled + + Click to enable - SidInstrument - - - Cutoff frequency - 切除頻率 - + lmms::gui::PatmanView - - Resonance - 共鳴 + + Open patch + - - Filter type - 過濾器類型 + + Loop + - - Voice 3 off - 聲音 3 關 + + Loop mode + - - Volume - 音量 + + Tune + - - Chip model - 芯片型號 + + Tune mode + - - - SidInstrumentView - - Volume: - 音量: + + No file selected + - - Resonance: - 共鳴: + + Open patch file + - - - Cutoff frequency: - 頻譜刀頻率: + + Patch-Files (*.pat) + + + + lmms::gui::PatternClipView - - High-pass filter + + Open in Pattern Editor - - Band-pass filter + + Reset name - - Low-pass filter + + Change name + + + lmms::gui::PatternEditorWindow - - Voice 3 off + + Pattern Editor - - MOS6581 SID - MOS6581 SID + + Play/pause current pattern (Space) + - - MOS8580 SID - MOS8580 SID + + Stop playback of current pattern (Space) + - - - Attack: - 打進聲: + + Pattern selector + - - - Decay: - 衰減: + + Track and step actions + - - Sustain: - 振幅持平: + + New pattern + - - - Release: - 釋音: + + Clone pattern + - - Pulse Width: + + Add sample-track - - Coarse: + + Add automation-track - - Pulse wave + + Remove steps - - Triangle wave - 三角波 + + Add steps + - - Saw wave - 鋸齒波 + + Clone Steps + + + + lmms::gui::PeakControllerDialog - - Noise - 噪音 + + PEAK + - - Sync - 同步 + + LFO Controller + + + + lmms::gui::PeakControllerEffectControlDialog - - Ring modulation + + BASE - - Filtered + + Base: - - Test - 測試 + + AMNT + - - Pulse width: + + Modulation amount: - - - SideBarWidget - - Close + + MULT - - - Song - - Tempo - 節奏 + + Amount multiplicator: + - - Master volume - 主音量 + + ATCK + - - Master pitch - 主音高 + + Attack: + - - Aborting project load + + DCAY - - Project file contains local paths to plugins, which could be used to run malicious code. + + Release: - - Can't load project: Project file contains local paths to plugins. + + TRSH - - LMMS Error report - LMMS錯誤報告 + + Treshold: + - - (repeated %1 times) + + Mute output - - The following errors occurred while loading: + + Absolute value - SongEditor + lmms::gui::PeakIndicator - - Could not open file - 無法開啟檔案 + + -inf + + + + lmms::gui::PianoRoll - - Could not open file %1. You probably have no permissions to read this file. - Please make sure to have at least read permissions to the file and try again. - 無法開啟 %1。 -請確認您至少有權限讀取此檔案後再試一次。 + + Note Velocity + - - Operation denied + + Note Panning - - A bundle folder with that name already eists on the selected path. Can't overwrite a project bundle. Please select a different name. + + Mark/unmark current semitone - - - - Error - 錯誤 + + Mark/unmark all corresponding octave semitones + - - Couldn't create bundle folder. + + Mark current scale - - Couldn't create resources folder. + + Mark current chord - - Failed to copy resources. + + Unmark all - - Could not write file - 無法寫入檔案 + + Select all notes on this key + - - Could not open %1 for writing. You probably are not permitted towrite to this file. Please make sure you have write-access to the file and try again. + + Note lock - - This %1 was created with LMMS %2 + + Last note - - Error in file - 於檔案中發現錯誤 + + No key + - - The file %1 seems to contain errors and therefore can't be loaded. - 檔案 %1 似乎包含錯誤,無法進行載入。 + + No scale + - - Version difference + + No chord - - template + + Nudge - - project + + Snap - - Tempo - 節奏 + + Velocity: %1% + - - TEMPO + + Panning: %1% left - - Tempo in BPM + + Panning: %1% right - - High quality mode - 高質量模式 + + Panning: center + - - - - Master volume - 主音量 + + Glue notes failed + - - - - Master pitch - 主音高 + + Please select notes to glue first. + - - Value: %1% - 值: %1% + + Please open a clip by double-clicking on it! + - - Value: %1 semitones - 值: %1 半音程 + + + Please enter a new value between %1 and %2: + - SongEditorWindow - - - Song-Editor - 歌曲編輯器 - + lmms::gui::PianoRollWindow - - Play song (Space) - 播放歌曲(空格) + + Play/pause current clip (Space) + - - Record samples from Audio-device - 從音頻設備錄製樣本 + + Record notes from MIDI-device/channel-piano + - - Record samples from Audio-device while playing song or BB track - 在播放歌曲或BB軌道時從音頻設備錄入樣本 + + Record notes from MIDI-device/channel-piano while playing song or pattern track + - - Stop song (Space) - 停止歌曲(空格) + + Record notes from MIDI-device/channel-piano, one step at the time + - - Track actions - 軌道動作 + + Stop playing of current clip (Space) + - - Add beat/bassline - 添加節拍/Bassline + + Edit actions + - - Add sample-track - 添加採樣軌道 + + Draw mode (Shift+D) + - - Add automation-track - 添加自動控制軌道 + + Erase mode (Shift+E) + - - Edit actions - 編輯動作 + + Select mode (Shift+S) + - - Draw mode - 繪製模式 + + Pitch Bend mode (Shift+T) + - - Knife mode (split sample clips) + + Quantize - - Edit mode (select and move) - 編輯模式(選定和移動) + + Quantize positions + - - Timeline controls - 時間線控制 + + Quantize lengths + - - Bar insert controls + + File actions - - Insert bar + + Import clip - - Remove bar + + + Export clip - - Zoom controls - 縮放控制 + + Copy paste controls + - - Horizontal zooming - 橫向縮放 + + Cut (%1+X) + - - Snap controls + + Copy (%1+C) - - - Clip snapping size + + Paste (%1+V) - - Toggle proportional snap on/off + + Timeline controls - - Base snapping size + + Glue - - - StepRecorderWidget - - Hint - 提示 + + Knife + - - Move recording curser using <Left/Right> arrows + + Fill - - - SubWindow - - Close + + Cut overlaps - - Maximize + + Min length as last - - Restore + + Max length as last - - - TabWidget - - - Settings for %1 - %1 的設定 + + Zoom and note controls + - - - TemplatesMenu - - New from template - 從模版新建工程 + + Horizontal zooming + - - - TempoSyncKnob - - - Tempo Sync + + Vertical zooming - - No Sync - 無同步 + + Quantization + - - Eight beats + + Note length - - Whole note + + Key - - Half note + + Scale - - Quarter note + + Chord - - 8th note + + Snap mode - - 16th note + + Clear ghost notes - - 32nd note + + + Piano-Roll - %1 - - Custom... + + + Piano-Roll - no clip - - Custom + + + XML clip file (*.xpt *.xptz) - - Synced to Eight Beats + + Export clip success - - Synced to Whole Note + + Clip saved to %1 - - Synced to Half Note + + Import clip. - - Synced to Quarter Note + + You are about to import a clip, this will overwrite your current clip. Do you want to continue? - - Synced to 8th Note + + Open clip - - Synced to 16th Note + + Import clip success - - Synced to 32nd Note + + Imported clip %1! - TimeDisplayWidget + lmms::gui::PianoView - - Time units + + Base note - - MIN + + First note - - SEC + + Last note + + + lmms::gui::PluginBrowser - - MSEC + + Instrument Plugins - - BAR + + Instrument browser - - BEAT + + Drag an instrument into either the Song Editor, the Pattern Editor or an existing instrument track. - - TICK + + Search - TimeLineWidget + lmms::gui::PluginDescWidget - - Auto scrolling + + Send to new instrument track + + + lmms::gui::ProjectNotes - - Loop points + + Project Notes - - After stopping go back to beginning + + Enter project notes here - - After stopping go back to position at which playing was started - 停止後前往播放開始的地方 + + Edit Actions + - - After stopping keep position - 停止後保持位置不變 + + &Undo + - - Hint - 提示 + + %1+Z + - - Press <%1> to disable magnetic loop points. - 按住 <%1> 禁用磁性吸附。 + + &Redo + - - - Track - - Mute - 靜音 + + %1+Y + - - Solo - 獨奏 + + &Copy + - - - TrackContainer - - Couldn't import file - 無法匯入檔案 + + %1+C + - - Couldn't find a filter for importing file %1. -You should convert this file into a format supported by LMMS using another software. - 不支援 %1 的檔案類型。 -請使用其他軟體將此檔案轉換成 LMMS 支援的格式。 + + Cu&t + - - Couldn't open file - 無法開啟檔案 + + %1+X + - - Couldn't open file %1 for reading. -Please make sure you have read-permission to the file and the directory containing the file and try again! - 無法開啟 %1。 -請確認您有權限讀取此檔案,以及包含此檔案的目錄後再試一次。 + + &Paste + - - Loading project... - 正在加載工程... + + %1+V + - - - Cancel - 取消 + + Format Actions + - - - Please wait... - 請稍等... + + &Bold + - - Loading cancelled + + %1+B - - Project loading was cancelled. + + &Italic - - Loading Track %1 (%2/Total %3) + + %1+I - - Importing MIDI-file... - 正在匯入 MIDI 檔案… + + &Underline + - - - Clip - - Mute - 靜音 + + %1+U + - - - ClipView - - Current position - 當前位置 + + &Left + - - Current length - 當前長度 + + %1+L + - - - %1:%2 (%3:%4 to %5:%6) - %1:%2 (%3:%4 到 %5:%6) + + C&enter + - - Press <%1> and drag to make a copy. - 按住 <%1> 並拖動以創建副本。 + + %1+E + - - Press <%1> for free resizing. - 按住 <%1> 自由調整大小。 + + &Right + - - Hint - 提示 + + %1+R + - - Delete (middle mousebutton) - 刪除 (鼠標中鍵) + + &Justify + - - Delete selection (middle mousebutton) + + %1+J - - Cut - 剪切 + + &Color... + + + + lmms::gui::RecentProjectsMenu - - Cut selection + + &Recently Opened Projects + + + lmms::gui::RenameDialog - - Merge Selection + + Rename... + + + lmms::gui::ReverbSCControlDialog - - Copy - 複製 + + Input + - - Copy selection + + Input gain: - - Paste - 粘貼 + + Size + - - Mute/unmute (<%1> + middle click) - 靜音/取消靜音 (<%1> + 鼠標中鍵) + + Size: + - - Mute/unmute selection (<%1> + middle click) + + Color - - Set clip color + + Color: - - Use track color + + Output - - - TrackContentWidget - - Paste - 粘貼 + + Output gain: + - TrackOperationsWidget + lmms::gui::SaControlsDialog - - Press <%1> while clicking on move-grip to begin a new drag'n'drop action. + + Pause - - Actions + + Pause data acquisition - - - Mute - 靜音 - - - - - Solo - 獨奏 - - - - After removing a track, it can not be recovered. Are you sure you want to remove track "%1"? + + Reference freeze - - Confirm removal + + Freeze current input as a reference / disable falloff in peak-hold mode. - - Don't ask again + + Waterfall - - Clone this track + + Display real-time spectrogram - - Remove this track + + Averaging - - Clear this track + + Enable exponential moving average - - Channel %1: %2 - 效果 %1: %2 + + Stereo + - - Assign to new mixer Channel + + Display stereo channels separately - - Turn all recording on + + Peak hold - - Turn all recording off + + Display envelope of peak values - - Change color - 改變顏色 + + Logarithmic frequency + - - Reset color to default - 重置顏色 + + Switch between logarithmic and linear frequency scale + - - Set random color + + + Frequency range - - Clear clip colors + + Logarithmic amplitude - - - TripleOscillatorView - - Modulate phase of oscillator 1 by oscillator 2 + + Switch between logarithmic and linear amplitude scale - - Modulate amplitude of oscillator 1 by oscillator 2 + + + Amplitude range - - Mix output of oscillators 1 & 2 + + + FFT block size - - Synchronize oscillator 1 with oscillator 2 + + + FFT window type - - Modulate frequency of oscillator 1 by oscillator 2 + + Envelope res. - - Modulate phase of oscillator 2 by oscillator 3 + + Increase envelope resolution for better details, decrease for better GUI performance. - - Modulate amplitude of oscillator 2 by oscillator 3 + + Maximum number of envelope points drawn per pixel: - - Mix output of oscillators 2 & 3 + + Spectrum res. - - Synchronize oscillator 2 with oscillator 3 + + Increase spectrum resolution for better details, decrease for better GUI performance. - - Modulate frequency of oscillator 2 by oscillator 3 + + Maximum number of spectrum points drawn per pixel: - - Osc %1 volume: + + Falloff factor - - Osc %1 panning: + + Decrease to make peaks fall faster. - - Osc %1 coarse detuning: + + Multiply buffered value by - - semitones + + Averaging weight - - Osc %1 fine detuning left: + + Decrease to make averaging slower and smoother. - - - cents - 音分 cents + + New sample contributes + - - Osc %1 fine detuning right: + + Waterfall height - - Osc %1 phase-offset: + + Increase to get slower scrolling, decrease to see fast transitions better. Warning: medium CPU usage. - - - degrees + + Number of lines to keep: - - Osc %1 stereo phase-detuning: + + Waterfall gamma - - Sine wave - 正弦波 + + Decrease to see very weak signals, increase to get better contrast. + - - Triangle wave - 三角波 + + Gamma value: + - - Saw wave - 鋸齒波 + + Window overlap + - - Square wave - 方波 + + Increase to prevent missing fast transitions arriving near FFT window edges. Warning: high CPU usage. + - - Moog-like saw wave + + Number of times each sample is processed: - - Exponential wave + + Zero padding - - White noise + + Increase to get smoother-looking spectrum. Warning: high CPU usage. - - User-defined wave + + Processing buffer is - - - VecControls - - Display persistence amount + + steps larger than input block - - Logarithmic scale + + Advanced settings - - High quality + + Access advanced settings - VecControlsDialog + lmms::gui::SampleClipView - - HQ + + Double-click to open sample - - Double the resolution and simulate continuous analog-like trace. + + Reverse sample - - Log. scale + + Set as ghost in automation editor + + + lmms::gui::SampleTrackView - - Display amplitude on logarithmic scale to better see small values. + + Mixer channel - - Persist. + + Track volume - - Trace persistence: higher amount means the trace will stay bright for longer time. + + Channel volume: - - Trace persistence + + VOL - - - VersionedSaveDialog - - Increment version number - 遞增版本號 + + Panning + - - Decrement version number - 遞減版本號 + + Panning: + - - Save Options + + PAN - - already exists. Do you want to replace it? + + %1: %2 - VestigeInstrumentView + lmms::gui::SampleTrackWindow - - - Open VST plugin + + Sample volume - - Control VST plugin from LMMS host + + Volume: - - Open VST plugin preset + + VOL - - Previous (-) - 上一個 (-) - - - - Save preset - 保存預置 - - - - Next (+) - 下一個 (+) + + Panning + - - Show/hide GUI - 顯示/隱藏界面 + + Panning: + - - Turn off all notes - 全部靜音 + + PAN + - - DLL-files (*.dll) - DLL 檔案 (*.dll) + + Mixer channel + - - EXE-files (*.exe) - EXE 檔案 (*.exe) + + CHANNEL + + + + lmms::gui::SaveOptionsWidget - - No VST plugin loaded + + Discard MIDI connections - - Preset - 預置 + + Save As Project Bundle (with resources) + + + + lmms::gui::SetupDialog - - by + + Settings - - - VST plugin control - - VST插件控制 + + + General + - - - VstEffectControlDialog - - Show/hide - 顯示/隱藏 + + Graphical user interface (GUI) + - - Control VST plugin from LMMS host + + Display volume as dBFS - - Open VST plugin preset + + Enable tooltips - - Previous (-) - 上一個 (-) + + Enable master oscilloscope by default + - - Next (+) - 下一個 (+) + + Enable all note labels in piano roll + - - Save preset - 保存預置 + + Enable compact track buttons + - - - Effect by: + + Enable one instrument-track-window mode - - &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> + + Show sidebar on the right-hand side - - - VstPlugin - - - The VST plugin %1 could not be loaded. - 無法載入VST插件 %1。 + + Let sample previews continue when mouse is released + - - Open Preset - 打開預置 + + Mute automation tracks during solo + - - - Vst Plugin Preset (*.fxp *.fxb) - VST插件預置文件(*.fxp *.fxb) + + Show warning when deleting tracks + - - : default - : 默認 + + Show warning when deleting a mixer channel that is in use + - - Save Preset - 保存預置 + + Dual-button + - - .fxp - .fxp + + Grab closest + - - .FXP - .FXP + + Handles + - - .FXB - .FXB + + Loop edit mode + - - .fxb - .fxb + + Projects + - - Loading plugin - 載入插件 + + Compress project files by default + - - Please wait while loading VST plugin... - 正在載入VST插件,請稍候…… + + Create a backup file when saving a project + - - - WatsynInstrument - - Volume A1 + + Reopen last project on startup - - Volume A2 + + Language - - Volume B1 + + + Performance - - Volume B2 + + Autosave - - Panning A1 + + Enable autosave - - Panning A2 + + Allow autosave while playing - - Panning B1 + + User interface (UI) effects vs. performance - - Panning B2 + + Smooth scroll in song editor - - Freq. multiplier A1 + + Display playback cursor in AudioFileProcessor - - Freq. multiplier A2 + + Plugins - - Freq. multiplier B1 + + VST plugins embedding: - - Freq. multiplier B2 + + No embedding - - Left detune A1 + + Embed using Qt API - - Left detune A2 + + Embed using native Win32 API - - Left detune B1 + + Embed using XEmbed protocol - - Left detune B2 + + Keep plugin windows on top when not embedded - - Right detune A1 + + Keep effects running even without input - - Right detune A2 + + + Audio - - Right detune B1 + + Audio interface - - Right detune B2 + + Buffer size - - A-B Mix + + Reset to default value - - A-B Mix envelope amount + + + MIDI - - A-B Mix envelope attack + + MIDI interface - - A-B Mix envelope hold + + Automatically assign MIDI controller to selected track - - A-B Mix envelope decay + + Behavior when recording - - A1-B2 Crosstalk + + Auto-quantize notes in Piano Roll - - A2-A1 modulation + + If enabled, notes will be automatically quantized when recording them from a MIDI controller. If disabled, they are always recorded at the highest possible resolution. - - B2-B1 modulation + + + Paths - - Selected graph + + LMMS working directory - - - WatsynView - - - - - Volume - 音量 + + VST plugins directory + - - - - - Panning - 聲相 + + LADSPA plugins directories + - - - - - Freq. multiplier + + SF2 directory - - - - - Left detune + + Default SF2 - - - - - - - - - cents + + GIG directory - - - - - Right detune + + Theme directory - - A-B Mix + + Background artwork - - Mix envelope amount + + Some changes require restarting. - - Mix envelope attack + + OK - - Mix envelope hold + + Cancel - - Mix envelope decay + + minutes - - Crosstalk + + minute - - Select oscillator A1 + + Disabled - - Select oscillator A2 + + Autosave interval: %1 - - Select oscillator B1 + + The currently selected value is not a power of 2 (32, 64, 128, 256). Some plugins may not be available. - - Select oscillator B2 + + The currently selected value is less than or equal to 32. Some plugins may not be available. - - Mix output of A2 to A1 + + Frames: %1 +Latency: %2 ms - - Modulate amplitude of A1 by output of A2 + + Choose the LMMS working directory - - Ring modulate A1 and A2 + + Choose your VST plugins directory - - Modulate phase of A1 by output of A2 + + Choose your LADSPA plugins directory - - Mix output of B2 to B1 + + Choose your SF2 directory - - Modulate amplitude of B1 by output of B2 + + Choose your default SF2 - - Ring modulate B1 and B2 + + Choose your GIG directory - - Modulate phase of B1 by output of B2 + + Choose your theme directory - - - - - Draw your own waveform here by dragging your mouse on this graph. + + Choose your background picture + + + lmms::gui::Sf2InstrumentView - - Load waveform - 載入波形 + + + Open SoundFont file + - - Load a waveform from a sample file - 從範例檔案中載入波型 + + Choose patch + - - Phase left + + Gain: - - Shift phase by -15 degrees + + Apply reverb (if supported) - - Phase right + + Room size: - - Shift phase by +15 degrees + + Damping: - - - Normalize - 標準化 + + Width: + - - - Invert - 反轉 + + + Level: + - - - Smooth - 平滑 + + Apply chorus (if supported) + - - - Sine wave - 正弦波 + + Voices: + - - - - Triangle wave - 三角波 + + Speed: + - - Saw wave - 鋸齒波 + + Depth: + - - - Square wave - 方波 + + SoundFont Files (*.sf2 *.sf3) + - Xpressive + lmms::gui::SidInstrumentView - - Selected graph + + Volume: - - A1 + + Resonance: - - A2 + + + Cutoff frequency: - - A3 + + High-pass filter - - W1 smoothing + + Band-pass filter - - W2 smoothing + + Low-pass filter - - W3 smoothing + + Voice 3 off - - Panning 1 + + MOS6581 SID - - Panning 2 + + MOS8580 SID - - Rel trans + + + Attack: - - - XpressiveView - - Draw your own waveform here by dragging your mouse on this graph. + + + Decay: - - Select oscillator W1 + + Sustain: - - Select oscillator W2 + + + Release: - - Select oscillator W3 + + Pulse Width: - - Select output O1 + + Coarse: - - Select output O2 + + Pulse wave - - Open help window + + Triangle wave - - - Sine wave - 正弦波 + + Saw wave + - - - Moog-saw wave + + Noise - - - Exponential wave + + Sync - - - Saw wave - 鋸齒波 + + Ring modulation + - - - User-defined wave + + Filtered - - - Triangle wave - 三角波 + + Test + - - - Square wave - 方波 + + Pulse width: + + + + lmms::gui::SideBarWidget - - - White noise + + Close + + + lmms::gui::SlicerTView - - WaveInterpolate + + Slice snap - - ExpressionValid + + Set slice snapping for detection - - General purpose 1: + + Sync sample - - General purpose 2: + + Enable BPM sync - - General purpose 3: + + Original sample BPM - - O1 panning: + + Threshold used for slicing - - O2 panning: + + Fade Out per note in milliseconds - - Release transition: + + Copy midi pattern to clipboard - - Smoothness + + Open sample selector - - - ZynAddSubFxInstrument - - Portamento + + Reset slices - - Filter frequency + + Threshold - - Filter resonance + + Fade Out - - Bandwidth - 帶寬 + + Reset + - - FM gain + + Midi - - Resonance center frequency + + BPM - - Resonance bandwidth + + Snap + + + lmms::gui::SlicerTWaveform - - Forward MIDI control change events + + Click to load sample - ZynAddSubFxView + lmms::gui::SongEditor - - Portamento: + + Could not open file + + + + + Could not open file %1. You probably have no permissions to read this file. + Please make sure to have at least read permissions to the file and try again. + + + + + Operation denied + + + + + A bundle folder with that name already eists on the selected path. Can't overwrite a project bundle. Please select a different name. - - PORT + + + + Error - - Filter frequency: + + Couldn't create bundle folder. - - FREQ - 頻率 + + Couldn't create resources folder. + - - Filter resonance: + + Failed to copy resources. - - RES + + + Could not write file - - Bandwidth: - 帶寬: + + Could not open %1 for writing. You probably are not permitted to write to this file. Please make sure you have write-access to the file and try again. + - - BW + + An unknown error has occurred and the file could not be saved. - - FM gain: + + Error in file - - FM GAIN + + The file %1 seems to contain errors and therefore can't be loaded. - - Resonance center frequency: + + template - - RES CF + + project - - Resonance bandwidth: + + Version difference - - RES BW + + This %1 was created with LMMS %2 - - Forward MIDI control changes + + Zoom - - Show GUI - 顯示圖形界面 + + Tempo + - - - AudioFileProcessor - - Amplify - 增益 + + TEMPO + - - Start of sample - 採樣起始 + + Tempo in BPM + - - End of sample - 採樣結尾 + + + + Master volume + - - Loopback point - 循環點 + + + + Global transposition + - - Reverse sample - 反轉採樣 + + 1/%1 Bar + - - Loop mode - 循環模式 + + %1 Bars + - - Stutter + + Value: %1% - - Interpolation mode - 補間方式 + + Value: %1 keys + + + + lmms::gui::SongEditorWindow - - None - + + Song-Editor + - - Linear - 線性插補 + + Play song (Space) + - - Sinc - 辛格(Sinc)插補 + + Record samples from Audio-device + - - Sample not found: %1 - 採樣未找到: %1 + + Record samples from Audio-device while playing song or pattern track + - - - BitInvader - - Sample length + + Stop song (Space) - - - BitInvaderView - - Sample length + + Track actions - - Draw your own waveform here by dragging your mouse on this graph. + + Add pattern-track - - - Sine wave - 正弦波 + + Add sample-track + - - - Triangle wave - 三角波 + + Add automation-track + - - - Saw wave - 鋸齒波 + + Edit actions + - - - Square wave - 方波 + + Draw mode + - - - White noise + + Knife mode (split sample clips) - - - User-defined wave + + Edit mode (select and move) - - - Smooth waveform - 平滑波形 + + Timeline controls + - - Interpolation + + Bar insert controls - - Normalize - 標準化 + + Insert bar + - - - DynProcControlDialog - - INPUT - 輸入 + + Remove bar + - - Input gain: - 輸入增益: + + Zoom controls + - - OUTPUT - 輸出 + + + Zoom + - - Output gain: - 輸出增益: + + Snap controls + - - ATTACK + + + Clip snapping size - - Peak attack time: + + Toggle proportional snap on/off - - RELEASE + + Base snapping size + + + lmms::gui::StepRecorderWidget - - Peak release time: + + Hint - - - Reset wavegraph + + Move recording curser using <Left/Right> arrows + + + lmms::gui::StereoEnhancerControlDialog - - - Smooth wavegraph + + WIDTH - - - Increase wavegraph amplitude by 1 dB + + Width: + + + lmms::gui::StereoMatrixControlDialog - - - Decrease wavegraph amplitude by 1 dB + + Left to Left Vol: - - Stereo mode: maximum + + Left to Right Vol: - - Process based on the maximum of both stereo channels + + Right to Left Vol: - - Stereo mode: average + + Right to Right Vol: + + + lmms::gui::SubWindow - - Process based on the average of both stereo channels + + Close - - Stereo mode: unlinked + + Maximize - - Process each stereo channel independently + + Restore - DynProcControls - - - Input gain - 輸入增益 - + lmms::gui::TapTempoView - - Output gain - 輸出增益 + + 0 + - - Attack time + + + Precision - - Release time + + Display in high precision - - Stereo mode + + 0.0 ms - - - graphModel - - Graph - 圖形 + + Mute metronome + - - - KickerInstrument - - Start frequency - 起始頻率 + + Mute + - - End frequency - 結束頻率 + + BPM in milliseconds + - - Length - 長度 + + 0 ms + - - Start distortion + + Frequency of BPM - - End distortion + + 0.0000 hz - - Gain - 增益 + + Reset + - - Envelope slope + + Reset counter and sidebar information - - Noise - 噪音 + + Sync + - - Click - 力度 + + Sync with project tempo + - - Frequency slope + + %1 ms - - Start from note - 從哪個音符開始 + + %1 hz + + + + lmms::gui::TemplatesMenu - - End to note - 到哪個音符結束 + + New from template + - KickerInstrumentView + lmms::gui::TempoSyncBarModelEditor - - Start frequency: - 起始頻率: + + + Tempo Sync + - - End frequency: - 結束頻率: + + No Sync + - - Frequency slope: + + Eight beats - - Gain: - 增益: + + Whole note + - - Envelope length: + + Half note - - Envelope slope: + + Quarter note - - Click: - 力度: + + 8th note + - - Noise: - 噪音: + + 16th note + - - Start distortion: + + 32nd note - - End distortion: + + Custom... - - - LadspaBrowserView - - - Available Effects - 可用效果器 + + Custom + + + + + Synced to Eight Beats + + + + + Synced to Whole Note + - - - Unavailable Effects - 不可用效果器 + + Synced to Half Note + - - - Instruments - 樂器插件 + + Synced to Quarter Note + - - - Analysis Tools - 分析工具 + + Synced to 8th Note + - - - Don't know - 未知 + + Synced to 16th Note + - - Type: - 類型: + + Synced to 32nd Note + - LadspaDescription + lmms::gui::TempoSyncKnob - - Plugins - 插件 + + + Tempo Sync + - - Description - 描述 + + No Sync + - - - LadspaPortDialog - - Ports + + Eight beats - - Name - 名稱 + + Whole note + - - Rate + + Half note - - Direction - 方向 + + Quarter note + - - Type - 類型 + + 8th note + - - Min < Default < Max - 最小 < 默認 < 最大 + + 16th note + - - Logarithmic - 對數 + + 32nd note + - - SR Dependent + + Custom... - - Audio - 音頻 + + Custom + - - Control - 控制 + + Synced to Eight Beats + - - Input - 輸入 + + Synced to Whole Note + - - Output - 輸出 + + Synced to Half Note + - - Toggled + + Synced to Quarter Note - - Integer - 整型 + + Synced to 8th Note + - - Float - 浮點 + + Synced to 16th Note + - - - Yes - + + Synced to 32nd Note + - Lb302Synth + lmms::gui::TimeDisplayWidget - - VCF Cutoff Frequency + + Time units - - VCF Resonance + + MIN - - VCF Envelope Mod + + SEC - - VCF Envelope Decay + + MSEC - - Distortion - 失真 + + BAR + - - Waveform - 波形 + + BEAT + - - Slide Decay + + TICK + + + lmms::gui::TimeLineWidget - - Slide + + Auto scrolling - - Accent + + Stepped auto scrolling - - Dead + + Continuous auto scrolling - - 24dB/oct Filter + + Auto scrolling disabled - - - Lb302SynthView - - Cutoff Freq: + + Loop points - - Resonance: - 共鳴: + + After stopping go back to beginning + - - Env Mod: + + After stopping go back to position at which playing was started - - Decay: - 衰減: + + After stopping keep position + - - 303-es-que, 24dB/octave, 3 pole filter + + Hint - - Slide Decay: + + Press <%1> to disable magnetic loop points. - - DIST: + + Set loop begin here - - Saw wave - 鋸齒波 + + Set loop end here + - - Click here for a saw-wave. + + Loop edit mode (hold shift) - - Triangle wave - 三角波 + + Dual-button + - - Click here for a triangle-wave. - 點擊這裡使用三角波。 + + Grab closest + - - Square wave - 方波 + + Handles + + + + lmms::gui::TrackContentWidget - - Click here for a square-wave. - 點擊這裡使用方形波。 + + Paste + + + + lmms::gui::TrackOperationsWidget - - Rounded square wave + + Press <%1> while clicking on move-grip to begin a new drag'n'drop action. - - Click here for a square-wave with a rounded end. + + Actions - - Moog wave + + + Mute - - Click here for a moog-like wave. + + + Solo - - Sine wave - 正弦波 + + After removing a track, it can not be recovered. Are you sure you want to remove track "%1"? + - - Click for a sine-wave. + + Confirm removal - - - White noise wave - 白噪音 + + Don't ask again + - - Click here for an exponential wave. + + Clone this track - - Click here for white-noise. + + Remove this track - - Bandlimited saw wave + + Clear this track - - Click here for bandlimited saw wave. + + Channel %1: %2 - - Bandlimited square wave + + Assign to new Mixer Channel - - Click here for bandlimited square wave. + + Turn all recording on - - Bandlimited triangle wave + + Turn all recording off - - Click here for bandlimited triangle wave. + + Track color - - Bandlimited moog saw wave + + Change - - Click here for bandlimited moog saw wave. + + Reset + + + + + Pick random + + + + + Reset clip colors - MalletsInstrument + lmms::gui::TripleOscillatorView - - Hardness + + Modulate phase of oscillator 1 by oscillator 2 - - Position + + Modulate amplitude of oscillator 1 by oscillator 2 - - Vibrato gain + + Mix output of oscillators 1 & 2 - - Vibrato frequency + + Synchronize oscillator 1 with oscillator 2 - - Stick mix + + Modulate frequency of oscillator 1 by oscillator 2 - - Modulator + + Modulate phase of oscillator 2 by oscillator 3 - - Crossfade + + Modulate amplitude of oscillator 2 by oscillator 3 - - LFO speed - LFO 速度 + + Mix output of oscillators 2 & 3 + - - LFO depth + + Synchronize oscillator 2 with oscillator 3 - - ADSR + + Modulate frequency of oscillator 2 by oscillator 3 - - Pressure + + Osc %1 volume: - - Motion + + Osc %1 panning: - - Speed + + Osc %1 coarse detuning: - - Bowed + + semitones - - Spread + + Osc %1 fine detuning left: - - Marimba + + + cents - - Vibraphone + + Osc %1 fine detuning right: - - Agogo + + Osc %1 phase-offset: - - Wood 1 + + + degrees - - Reso + + Osc %1 stereo phase-detuning: - - Wood 2 + + Sine wave - - Beats + + Triangle wave - - Two fixed + + Saw wave - - Clump + + Square wave - - Tubular bells + + Moog-like saw wave - - Uniform bar + + Exponential wave - - Tuned bar + + White noise - - Glass + + User-defined wave - - Tibetan bowl + + Use alias-free wavetable oscillators. - MalletsInstrumentView + lmms::gui::VecControlsDialog - - Instrument + + HQ - - Spread + + Double the resolution and simulate continuous analog-like trace. - - Spread: + + Log. scale - - Missing files - 檔案遺失 + + Display amplitude on logarithmic scale to better see small values. + - - Your Stk-installation seems to be incomplete. Please make sure the full Stk-package is installed! + + Persist. - - Hardness + + Trace persistence: higher amount means the trace will stay bright for longer time. - - Hardness: + + Trace persistence + + + lmms::gui::VersionedSaveDialog - - Position + + Increment version number - - Position: + + Decrement version number - - Vibrato gain + + Save Options - - Vibrato gain: + + already exists. Do you want to replace it? + + + lmms::gui::VestigeInstrumentView - - Vibrato frequency + + + Open VST plugin - - Vibrato frequency: + + Control VST plugin from LMMS host - - Stick mix + + Open VST plugin preset - - Stick mix: + + Previous (-) - - Modulator + + Save preset - - Modulator: + + Next (+) - - Crossfade + + Show/hide GUI - - Crossfade: + + Turn off all notes - - LFO speed - LFO 速度 + + DLL-files (*.dll) + - - LFO speed: + + EXE-files (*.exe) - - LFO depth + + SO-files (*.so) - - LFO depth: + + No VST plugin loaded - - ADSR + + Preset - - ADSR: + + by - - Pressure + + - VST plugin control + + + lmms::gui::VibedView - - Pressure: + + Enable waveform - - Speed + + + Smooth waveform - - Speed: + + + Normalize waveform - - - ManageVSTEffectView - - - VST parameter control - - VST 參數控制 + + + Sine wave + - - VST sync + + + Triangle wave - - - Automated - 自動 + + + Saw wave + - - Close - 關閉 + + + Square wave + - - - ManageVestigeInstrumentView - - - - VST plugin control - - VST插件控制 + + + White noise + - - VST Sync - VST 同步 + + + User-defined wave + - - - Automated - 自動 + + String volume: + - - Close - 關閉 + + String stiffness: + - - - OrganicInstrument - - Distortion - 失真 + + Pick position: + - - Volume - 音量 + + Pickup position: + - - - OrganicInstrumentView - - Distortion: - 失真: + + String panning: + - - Volume: - 音量: + + String detune: + - - Randomise - 隨機 + + String fuzziness: + - - - Osc %1 waveform: + + String length: - - Osc %1 volume: + + Impulse Editor - - Osc %1 panning: + + Impulse - - Osc %1 stereo detuning + + Enable/disable string - - cents - 音分 cents + + Octave + - - Osc %1 harmonic: + + String - PatchesDialog + lmms::gui::VstEffectControlDialog - - Qsynth: Channel Preset - Qsynth: 通道預設 + + Show/hide + - - Bank selector - 音色選擇器 + + Control VST plugin from LMMS host + - - Bank - + + Open VST plugin preset + - - Program selector + + Previous (-) - - Patch - 音色 + + Next (+) + - - Name - 名稱 + + Save preset + - - OK - 確定 + + + Effect by: + - - Cancel - 取消 + + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /> + - Sf2Instrument - - - Bank - - - - - Patch - 音色 - - - - Gain - 增益 - + lmms::gui::WatsynView - - Reverb - 混響 + + + + + Volume + - - Reverb room size + + + + + Panning - - Reverb damping + + + + + Freq. multiplier - - Reverb width + + + + + Left detune - - Reverb level + + + + + + + + + cents - - Chorus - 合唱 + + + + + Right detune + - - Chorus voices + + A-B Mix - - Chorus level + + Mix envelope amount - - Chorus speed + + Mix envelope attack - - Chorus depth + + Mix envelope hold - - A soundfont %1 could not be loaded. - 無法載入Soundfont %1。 + + Mix envelope decay + - - - Sf2InstrumentView - - - Open SoundFont file - 開啟 SoundFont 檔案 + + Crosstalk + - - Choose patch + + Select oscillator A1 - - Gain: - 增益: + + Select oscillator A2 + - - Apply reverb (if supported) - 應用混響(如果支持) + + Select oscillator B1 + - - Room size: + + Select oscillator B2 - - Damping: + + Mix output of A2 to A1 - - Width: - 寬度: + + Modulate amplitude of A1 by output of A2 + - - - Level: + + Ring modulate A1 and A2 - - Apply chorus (if supported) - 應用合唱 (如果支持) + + Modulate phase of A1 by output of A2 + - - Voices: + + Mix output of B2 to B1 - - Speed: + + Modulate amplitude of B1 by output of B2 - - Depth: - 位深: + + Ring modulate B1 and B2 + - - SoundFont Files (*.sf2 *.sf3) - SoundFont 檔案 (*.sf2 *.sf3) + + Modulate phase of B1 by output of B2 + - - - SfxrInstrument - - Wave + + + + + Draw your own waveform here by dragging your mouse on this graph. - - - StereoEnhancerControlDialog - - WIDTH + + Load waveform - - Width: - 寬度: + + Load a waveform from a sample file + - - - StereoEnhancerControls - - Width - 寬度 + + Phase left + - - - StereoMatrixControlDialog - - Left to Left Vol: - 從左到左音量: + + Shift phase by -15 degrees + - - Left to Right Vol: - 從左到右音量: + + Phase right + - - Right to Left Vol: - 從右到左音量: + + Shift phase by +15 degrees + - - Right to Right Vol: - 從右到右音量: + + + Normalize + - - - StereoMatrixControls - - Left to Left - 從左到左 + + + Invert + - - Left to Right - 從左到右 + + + Smooth + - - Right to Left - 從右到左 + + + Sine wave + - - Right to Right - 從右到右 + + + + Triangle wave + - - - VestigeInstrument - - Loading plugin - 載入插件 + + Saw wave + - - Please wait while loading the VST plugin... + + + Square wave - Vibed + lmms::gui::WaveShaperControlDialog - - String %1 volume + + INPUT - - String %1 stiffness + + Input gain: - - Pick %1 position + + OUTPUT - - Pickup %1 position + + Output gain: - - String %1 panning + + + Reset wavegraph - - String %1 detune + + + Smooth wavegraph - - String %1 fuzziness + + + Increase wavegraph amplitude by 1 dB - - String %1 length + + + Decrease wavegraph amplitude by 1 dB - - Impulse %1 + + Clip input - - String %1 + + Clip input signal to 0 dB - VibedView - - - String volume: - - + lmms::gui::XpressiveView - - String stiffness: + + Draw your own waveform here by dragging your mouse on this graph. - - Pick position: + + Select oscillator W1 - - Pickup position: + + Select oscillator W2 - - String panning: + + Select oscillator W3 - - String detune: + + Select output O1 - - String fuzziness: + + Select output O2 - - String length: + + Open help window - - Impulse + + + Sine wave - - Octave + + + Moog-saw wave - - Impulse Editor + + + Exponential wave - - Enable waveform - 啓用波形 - - - - Enable/disable string + + + Saw wave - - String + + + User-defined wave - - - Sine wave - 正弦波 - - - - + + Triangle wave - 三角波 - - - - - Saw wave - 鋸齒波 + - - + + Square wave - 方波 + - - + + White noise - - - User-defined wave + + WaveInterpolate - - - Smooth waveform - 平滑波形 - - - - - Normalize waveform + + ExpressionValid - - - VoiceObject - - Voice %1 pulse width + + General purpose 1: - - Voice %1 attack + + General purpose 2: - - Voice %1 decay + + General purpose 3: - - Voice %1 sustain + + O1 panning: - - Voice %1 release + + O2 panning: - - Voice %1 coarse detuning + + Release transition: - - Voice %1 wave shape - 聲音 %1 波形形狀 + + Smoothness + + + + lmms::gui::ZynAddSubFxView - - Voice %1 sync - 聲音 %1 同步 + + Portamento: + - - Voice %1 ring modulate + + PORT - - Voice %1 filtered + + Filter frequency: - - Voice %1 test - 聲音 %1 測試 + + FREQ + - - - WaveShaperControlDialog - - INPUT - 輸入 + + Filter resonance: + - - Input gain: - 輸入增益: + + RES + - - OUTPUT - 輸出 + + Bandwidth: + - - Output gain: - 輸出增益: + + BW + - - - Reset wavegraph + + FM gain: - - - Smooth wavegraph + + FM GAIN - - - Increase wavegraph amplitude by 1 dB + + Resonance center frequency: - - - Decrease wavegraph amplitude by 1 dB + + RES CF - - Clip input - 輸入壓限 + + Resonance bandwidth: + - - Clip input signal to 0 dB + + RES BW - - - WaveShaperControls - - Input gain - 輸入增益 + + Forward MIDI control changes + - - Output gain - 輸出增益 + + Show GUI + - + \ No newline at end of file diff --git a/data/projects/demos/unfa-Spoken.mmpz b/data/projects/demos/unfa-Spoken.mmpz index 66b7589d106..58d00d50d69 100644 Binary files a/data/projects/demos/unfa-Spoken.mmpz and b/data/projects/demos/unfa-Spoken.mmpz differ diff --git a/data/projects/shorties/Greshz-CoolSnip.mmpz b/data/projects/shorties/Greshz-CoolSnip.mmpz deleted file mode 100644 index dadeef1ba73..00000000000 Binary files a/data/projects/shorties/Greshz-CoolSnip.mmpz and /dev/null differ diff --git a/data/themes/classic/automation_ghost_note.png b/data/themes/classic/automation_ghost_note.png new file mode 100644 index 00000000000..d14c047d7ae Binary files /dev/null and b/data/themes/classic/automation_ghost_note.png differ diff --git a/data/themes/classic/autoscroll_continuous_on.png b/data/themes/classic/autoscroll_continuous_on.png new file mode 100644 index 00000000000..0140d5cc517 Binary files /dev/null and b/data/themes/classic/autoscroll_continuous_on.png differ diff --git a/data/themes/classic/autoscroll_stepped_on.png b/data/themes/classic/autoscroll_stepped_on.png new file mode 100644 index 00000000000..e54489f7a1d Binary files /dev/null and b/data/themes/classic/autoscroll_stepped_on.png differ diff --git a/data/themes/classic/cursor_select_left.png b/data/themes/classic/cursor_select_left.png new file mode 100644 index 00000000000..eaa80e0bbe3 Binary files /dev/null and b/data/themes/classic/cursor_select_left.png differ diff --git a/data/themes/classic/cursor_select_right.png b/data/themes/classic/cursor_select_right.png new file mode 100644 index 00000000000..abd4aecfb56 Binary files /dev/null and b/data/themes/classic/cursor_select_right.png differ diff --git a/data/themes/classic/fader_background.png b/data/themes/classic/fader_background.png deleted file mode 100644 index 682ff4c9281..00000000000 Binary files a/data/themes/classic/fader_background.png and /dev/null differ diff --git a/data/themes/classic/fader_leds.png b/data/themes/classic/fader_leds.png deleted file mode 100644 index 6c673cf36d1..00000000000 Binary files a/data/themes/classic/fader_leds.png and /dev/null differ diff --git a/data/themes/classic/style.css b/data/themes/classic/style.css index 9b50851a369..d098bf26660 100644 --- a/data/themes/classic/style.css +++ b/data/themes/classic/style.css @@ -33,6 +33,10 @@ lmms--gui--AutomationEditor { qproperty-scaleColor: qlineargradient(spread:reflect, x1:0, y1:0.5, x2:1, y2:0.5, stop:0 #333, stop:1 #202020); + + qproperty-ghostNoteColor: rgba(248, 248, 255, 125); + qproperty-detuningNoteColor: rgba(248, 11, 11, 125); + qproperty-ghostSampleColor: rgba(125, 125, 125, 125); } /* text box */ @@ -185,6 +189,7 @@ lmms--gui--TabWidget { qproperty-tabText: rgba(255, 255, 255, 180); qproperty-tabTitleText: #fff; qproperty-tabSelected: #61666b; + qproperty-tabTextSelected: rgba(255, 255, 255, 180); qproperty-tabBackground: #3c434b; qproperty-tabBorder: #3c434b; } @@ -198,7 +203,9 @@ lmms--gui--GroupBox { lmms--gui--Oscilloscope { background: none; border: none; - qproperty-normalColor: rgb(71, 253, 133); + qproperty-leftChannelColor: rgb(71, 253, 133); + qproperty-rightChannelColor: rgb(238, 253, 71); + qproperty-otherChannelsColor: rgb(71, 235, 253); qproperty-clippingColor: rgb(255, 64, 64); } @@ -345,20 +352,30 @@ lmms--gui--TrackView > QWidget { /* autoscroll, loop, stop behaviour toggle buttons */ -/* track background colors */ +/* track background config */ lmms--gui--TrackContentWidget { - qproperty-darkerColor: qlineargradient(x1:0, y1:0, x2:0, y2:1, - stop:0 rgb( 50, 50, 50 ), stop:0.33 rgb( 20, 20, 20 ), stop:1 rgb( 15, 15, 15 ) ); - qproperty-lighterColor: qlineargradient(x1:0, y1:0, x2:0, y2:1, - stop:0 rgb( 50, 50, 50 ), stop:0.33 rgb( 40, 40, 40 ), stop:1 rgb( 30, 30, 30 ) ); - qproperty-gridColor: rgba( 0, 0, 0, 160 ); - qproperty-embossColor: rgba( 140, 140, 140, 64 ); + /* colors */ + qproperty-darkerColor: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 rgb(50, 50, 50), stop:0.33 rgb(20, 20, 20), stop:1 rgb(15, 15, 15)); + qproperty-lighterColor: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 rgb(50, 50, 50), stop:0.33 rgb(40, 40, 40), stop:1 rgb(30, 30, 30)); + qproperty-coarseGridColor: rgba(0, 0, 0, 160); + qproperty-fineGridColor: rgba(0, 0, 0, 80); + qproperty-horizontalColor: rgba(0, 0, 0, 160); + qproperty-embossColor: rgba(140, 140, 140, 64); + + /* line widths */ + qproperty-coarseGridWidth: 2; + qproperty-fineGridWidth: 1; + qproperty-horizontalWidth: 1; + qproperty-embossWidth: 0; + + /* positive offset shifts emboss to the right */ + qproperty-embossOffset: 0; } /* gear button in tracks */ -lmms--gui--TrackOperationsWidget > QPushButton { +lmms--gui--TrackOperationsWidget QPushButton { max-height: 26px; max-width: 26px; min-height: 26px; @@ -367,7 +384,7 @@ lmms--gui--TrackOperationsWidget > QPushButton { border: none; } -lmms--gui--TrackOperationsWidget > QPushButton::menu-indicator { +lmms--gui--TrackOperationsWidget QPushButton::menu-indicator { image: url("resources:trackop.png"); subcontrol-origin: padding; subcontrol-position: center; @@ -375,12 +392,12 @@ lmms--gui--TrackOperationsWidget > QPushButton::menu-indicator { top: 1px; } -lmms--gui--TrackOperationsWidget > QPushButton::menu-indicator:hover { +lmms--gui--TrackOperationsWidget QPushButton::menu-indicator:hover { image: url("resources:trackop_h.png"); } -lmms--gui--TrackOperationsWidget > QPushButton::menu-indicator:pressed, -lmms--gui--TrackOperationsWidget > QPushButton::menu-indicator:checked { +lmms--gui--TrackOperationsWidget QPushButton::menu-indicator:pressed, +lmms--gui--TrackOperationsWidget QPushButton::menu-indicator:checked { image: url("resources:trackop_c.png"); position: relative; top: 2px; @@ -628,7 +645,7 @@ lmms--gui--ControllerRackView QPushButton { font-size: 10px; } -lmms--gui--MixerLine { +lmms--gui--MixerChannelView { background: #5b6571; color: #e0e0e0; qproperty-backgroundActive: qlineargradient(spread:reflect, x1:0, y1:0, x2:1, y2:0, @@ -639,11 +656,21 @@ lmms--gui--MixerLine { qproperty-strokeInnerInactive: rgba( 255, 255, 255, 50 ); } +lmms--gui--MixerChannelView QGraphicsView { + background: transparent; + border-style: none; +} + +lmms--gui--PeakIndicator { + background-color: #111811; + font-size: 7pt; +} + /* persistent peak markers for fx peak meters */ lmms--gui--Fader { - qproperty-peakGreen: rgb( 74, 253, 133); - qproperty-peakYellow: rgb(224, 222, 18); - qproperty-peakRed: rgb( 255, 100, 100); + qproperty-peakOk: rgb( 74, 253, 133); + qproperty-peakWarn: rgb(224, 222, 18); + qproperty-peakClip: rgb( 255, 100, 100); } lmms--gui--TimeLineWidget { @@ -659,15 +686,25 @@ lmms--gui--TimeLineWidget { background-color: qlineargradient( x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #8796a7, stop: 1.0 #3e454e ); - qproperty-inactiveLoopColor: rgba( 52, 63, 53, 64 ); + qproperty-inactiveLoopColor: rgba( 52, 63, 53, 64 ); qproperty-inactiveLoopBrush: rgba( 255, 255, 255, 32 ); qproperty-inactiveLoopInnerColor: rgba( 255, 255, 255, 32 ); + qproperty-inactiveLoopHandleColor: rgba( 192, 192, 192, 100 ); qproperty-activeLoopColor: rgba( 52, 63, 53, 255 ); qproperty-activeLoopBrush: qlineargradient( x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #378d59, stop: 1.0 #297e36 ); qproperty-activeLoopInnerColor: rgba( 74, 155, 100, 255 ); + qproperty-activeLoopHandleColor: rgba( 192, 192, 192, 200 ); + + /* Width of loop marker handles (when handle mode is active) */ + qproperty-loopHandleWidth: 8; + qproperty-barLineColor: rgb( 192, 192, 192 ); qproperty-barNumberColor: rgb( 192, 192, 192 ); + + /* Cursor hotspots for loop marker adjustment */ + qproperty-mouseHotspotSelLeft: 0px 16px; + qproperty-mouseHotspotSelRight: 32px 16px; } QTreeView { @@ -976,6 +1013,7 @@ lmms--gui--CompressorControlDialog { qproperty-textColor: rgba(209, 216, 228, 50); qproperty-graphColor: rgba(209, 216, 228, 50); qproperty-resetColor: rgba(200, 100, 15, 200); + qproperty-backgroundColor: rgba(7, 8, 9, 255); } lmms--gui--CompressorControlDialog lmms--gui--Knob { diff --git a/data/themes/default/automation_ghost_note.png b/data/themes/default/automation_ghost_note.png new file mode 100644 index 00000000000..d14c047d7ae Binary files /dev/null and b/data/themes/default/automation_ghost_note.png differ diff --git a/data/themes/default/autoscroll_continuous_on.png b/data/themes/default/autoscroll_continuous_on.png new file mode 100644 index 00000000000..7f27a7f7dba Binary files /dev/null and b/data/themes/default/autoscroll_continuous_on.png differ diff --git a/data/themes/default/autoscroll_stepped_on.png b/data/themes/default/autoscroll_stepped_on.png new file mode 100644 index 00000000000..c58fa97b2cf Binary files /dev/null and b/data/themes/default/autoscroll_stepped_on.png differ diff --git a/data/themes/default/cursor_select_left.png b/data/themes/default/cursor_select_left.png new file mode 100644 index 00000000000..eaa80e0bbe3 Binary files /dev/null and b/data/themes/default/cursor_select_left.png differ diff --git a/data/themes/default/cursor_select_right.png b/data/themes/default/cursor_select_right.png new file mode 100644 index 00000000000..abd4aecfb56 Binary files /dev/null and b/data/themes/default/cursor_select_right.png differ diff --git a/data/themes/default/fader_background.png b/data/themes/default/fader_background.png deleted file mode 100644 index 7d6b59e35fe..00000000000 Binary files a/data/themes/default/fader_background.png and /dev/null differ diff --git a/data/themes/default/fader_leds.png b/data/themes/default/fader_leds.png deleted file mode 100644 index 707902e04c6..00000000000 Binary files a/data/themes/default/fader_leds.png and /dev/null differ diff --git a/data/themes/default/receive_bg_arrow.png b/data/themes/default/receive_bg_arrow.png index d4961540ad0..368a1bf15a9 100644 Binary files a/data/themes/default/receive_bg_arrow.png and b/data/themes/default/receive_bg_arrow.png differ diff --git a/data/themes/default/send_bg_arrow.png b/data/themes/default/send_bg_arrow.png index 05a8c7366b4..311505b6850 100644 Binary files a/data/themes/default/send_bg_arrow.png and b/data/themes/default/send_bg_arrow.png differ diff --git a/data/themes/default/style.css b/data/themes/default/style.css index 172a67d8e6d..83933df199a 100644 --- a/data/themes/default/style.css +++ b/data/themes/default/style.css @@ -66,6 +66,9 @@ lmms--gui--AutomationEditor { qproperty-graphColor: rgba(69,42,153,180); qproperty-scaleColor: #262b30; + qproperty-ghostNoteColor: rgba(248, 248, 255, 125); + qproperty-detuningNoteColor: rgba(248, 11, 11, 125); + qproperty-ghostSampleColor: rgba(125, 125, 125, 125); } /* text box */ @@ -216,7 +219,8 @@ lmms--gui--TabWidget { background-color: #262b30; qproperty-tabText: rgba(255, 255, 255, 180); qproperty-tabTitleText: #fff; - qproperty-tabSelected: #323940; + qproperty-tabSelected: #1c4933; + qproperty-tabTextSelected: rgba(255, 255, 255, 255); qproperty-tabBackground: #181b1f; qproperty-tabBorder: #181b1f; } @@ -230,7 +234,9 @@ lmms--gui--GroupBox { lmms--gui--Oscilloscope { background: none; border: none; - qproperty-normalColor: rgb(71, 253, 133); + qproperty-leftChannelColor: rgb(71, 253, 133); + qproperty-rightChannelColor: rgb(238, 253, 71); + qproperty-otherChannelsColor: rgb(71, 235, 253); qproperty-clippingColor: rgb(255, 64, 64); } @@ -272,33 +278,33 @@ QScrollBar::add-page:vertical:pressed, QScrollBar::sub-page:vertical:pressed { /* scrollbar: handles (sliders) */ QScrollBar::handle:horizontal { - background: #3f4750; + background: #5d6b77; border: none; border-radius: 4px; min-width: 24px; } QScrollBar::handle:horizontal:hover { - background: #525e69; + background: #b8c4d1; } QScrollBar::handle:horizontal:pressed { - background: rgba(11,213,86,100); + background: #ffffff; } QScrollBar::handle:vertical { - background: #3f4750; + background: #5d6b77; border: none; border-radius: 4px; min-height: 24px; } QScrollBar::handle:vertical:hover { - background: #525e69; + background: #b8c4d1; } QScrollBar::handle:vertical:pressed { - background: rgba(11,213,86,100); + background: #ffffff; } QScrollBar::handle:horizontal:disabled, QScrollBar::handle:vertical:disabled { @@ -382,18 +388,30 @@ lmms--gui--TrackView > QWidget { /* autoscroll, loop, stop behaviour toggle buttons */ -/* track background colors */ +/* track background config */ lmms--gui--TrackContentWidget { + /* colors */ qproperty-darkerColor: #0C0E0F; qproperty-lighterColor: #14151A; - qproperty-gridColor: #262B30; - qproperty-embossColor: rgba( 0, 0, 0, 0 ); + qproperty-coarseGridColor: #3C444C; + qproperty-fineGridColor: #262B30; + qproperty-horizontalColor: #3C444C; + qproperty-embossColor: rgba(0, 0, 0, 0); + + /* line widths */ + qproperty-coarseGridWidth: 2; + qproperty-fineGridWidth: 1; + qproperty-horizontalWidth: 1; + qproperty-embossWidth: 0; + + /* positive offset shifts emboss to the right */ + qproperty-embossOffset: 0; } /* gear button in tracks */ -lmms--gui--TrackOperationsWidget > QPushButton { +lmms--gui--TrackOperationsWidget QPushButton { max-height: 26px; max-width: 26px; min-height: 26px; @@ -402,7 +420,7 @@ lmms--gui--TrackOperationsWidget > QPushButton { border: none; } -lmms--gui--TrackOperationsWidget > QPushButton::menu-indicator { +lmms--gui--TrackOperationsWidget QPushButton::menu-indicator { image: url("resources:trackop.png"); subcontrol-origin: padding; subcontrol-position: center; @@ -410,8 +428,8 @@ lmms--gui--TrackOperationsWidget > QPushButton::menu-indicator { top: 1px; } -lmms--gui--TrackOperationsWidget > QPushButton::menu-indicator:pressed, -lmms--gui--TrackOperationsWidget > QPushButton::menu-indicator:checked { +lmms--gui--TrackOperationsWidget QPushButton::menu-indicator:pressed, +lmms--gui--TrackOperationsWidget QPushButton::menu-indicator:checked { image: url("resources:trackop.png"); position: relative; top: 2px; @@ -533,6 +551,12 @@ QToolButton:hover { background: qlineargradient(spread:reflect, x1:0, y1:0, x2:0, y2:1, stop:0 #7c8799, stop:1 #343840) } +QToolButton:hover:checked { + border: 2px solid #343840; + border-radius: 2px; + background: qlineargradient(spread:reflect, x1:0, y1:0, x2:0, y2:1, stop:0 #292d33, stop:1 #22262c) +} + QToolButton:pressed { border-top: 1px solid #778394; border-bottom: 1px solid #1e2226; @@ -577,17 +601,11 @@ lmms--gui--TrackLabelButton:hover { background: #3B424A; border: 1px solid #515B66; border-radius: none; - font-size: 11px; - font-weight: normal; - padding: 2px 1px; } lmms--gui--TrackLabelButton:pressed { background: #262B30; border-radius: none; - font-size: 11px; - font-weight: normal; - padding: 2px 1px; } lmms--gui--TrackLabelButton:checked { @@ -595,17 +613,12 @@ lmms--gui--TrackLabelButton:checked { background: #1C1F24; background-image: url("resources:track_shadow_p.png"); border-radius: none; - font-size: 11px; - font-weight: normal; - padding: 2px 1px; } lmms--gui--TrackLabelButton:checked:pressed { border: 1px solid #2f353b; background: #0e1012; background-image: url("resources:track_shadow_p.png"); - font-size: 11px; - padding: 2px 1px; font-weight: solid; } @@ -671,7 +684,7 @@ lmms--gui--ControllerRackView QPushButton { font-size: 10px; } -lmms--gui--MixerLine { +lmms--gui--MixerChannelView { background: #14161A; color: #d1d8e4; qproperty-backgroundActive: #3B424A; @@ -681,11 +694,21 @@ lmms--gui--MixerLine { qproperty-strokeInnerInactive: #0C0D0F; } +lmms--gui--MixerChannelView QGraphicsView { + background: transparent; + border-style: none; +} + +lmms--gui--PeakIndicator { + background-color: #111811; + font-size: 7pt; +} + /* persistent peak markers for fx peak meters */ lmms--gui--Fader { - qproperty-peakGreen: #0ad45c; - qproperty-peakYellow: #d6ec52; - qproperty-peakRed: #c12038; + qproperty-peakOk: #0ad45c; + qproperty-peakWarn: #d6ec52; + qproperty-peakClip: #c12038; } lmms--gui--TimeLineWidget { @@ -701,23 +724,32 @@ lmms--gui--TimeLineWidget { /* Properties for the loop indicator rectangle in inactive state: - LoopColor: Color of the outermost border - LoopBrush: Brush to paint the main portion of the rectangle - - LoopInnerColor: Color used to paint the inlayed border */ + - LoopInnerColor: Color used to paint the inlayed border + - LoopHandleColor: Color used to paint loop marker handles */ qproperty-inactiveLoopColor: #3B424A; qproperty-inactiveLoopBrush: #3B424A; qproperty-inactiveLoopInnerColor: #3B424A; + qproperty-inactiveLoopHandleColor: rgba( 192, 192, 192, 100 ); /* Properties for the loop indicator rectangle in active state. See above for detailed description. */ qproperty-activeLoopColor: #21A14F; qproperty-activeLoopBrush: #21A14F; qproperty-activeLoopInnerColor: #21A14F; + qproperty-activeLoopHandleColor: rgba( 192, 192, 192, 200 ); /* Vertical padding for the loop indicator rectangle. A value of zero draws the rectangle at the full height of the widget. */ qproperty-loopRectangleVerticalPadding: 1; + /* Width of loop marker handles (when handle mode is active) */ + qproperty-loopHandleWidth: 8; qproperty-barLineColor: rgb( 192, 192, 192 ); qproperty-barNumberColor: rgb( 192, 192, 192 ); + + /* Cursor hotspots for loop marker adjustment */ + qproperty-mouseHotspotSelLeft: 0px 16px; + qproperty-mouseHotspotSelRight: 32px 16px; } lmms--gui--TrackContainerView QLabel @@ -1020,6 +1052,7 @@ lmms--gui--CompressorControlDialog { qproperty-textColor: rgba(209, 216, 228, 50); qproperty-graphColor: rgba(209, 216, 228, 50); qproperty-resetColor: rgba(200, 100, 15, 200); + qproperty-backgroundColor: rgba(7, 8, 9, 255); } lmms--gui--CompressorControlDialog lmms--gui--Knob { diff --git a/debian/changelog b/debian/changelog deleted file mode 100644 index 86f03c427d0..00000000000 --- a/debian/changelog +++ /dev/null @@ -1,382 +0,0 @@ -lmms (@VERSION@) unstable; urgency=low - - * Upstream integration. - * Drop Debian menu entry (policy 9.6). - - -- Javier Serrano Polo Sat, 03 Nov 2018 02:43:42 +0100 - -lmms (1.1.3-8) unstable; urgency=low - - * Fix build (Closes: #897806). - * Allow recommendations (Closes: #891756). - - -- Javier Serrano Polo Sat, 13 Oct 2018 17:05:54 +0200 - -lmms (1.1.3-7.1) unstable; urgency=high - - * Non-maintainer upload. - - [ Javier Serrano Polo ] - * Fix build with Clang. - * Fix build with GCC 7 (Closes: #853527). - - [ Boyuan Yang ] - * Remove Patrick Winnertz from uploaders list. (Closes: #867759) - Thank you for your previous contributions! - - -- Boyuan Yang <073plan@gmail.com> Sat, 10 Mar 2018 11:32:05 +0800 - -lmms (1.1.3-7) unstable; urgency=low - - [ Javier Serrano Polo ] - * Separate flags for WINE_BUILD_FLAGS to fix build problem on i386. - - -- Petter Reinholdtsen Mon, 26 Dec 2016 07:36:54 +0000 - -lmms (1.1.3-6) unstable; urgency=low - - [ Javier Serrano Polo ] - * Build with install RUNPATH (reproducibility). - - -- Petter Reinholdtsen Sun, 25 Dec 2016 09:38:53 +0000 - -lmms (1.1.3-5) unstable; urgency=medium - - [ Javier Serrano Polo ] - * Add Wine stable path to PATH, otherwise wine package would be required. - * Sort plug-in embedded resources (reproducibility). - * Define NDEBUG instead of setting build type to honor optimization choice. - - -- Javier Serrano Polo Sat, 03 Sep 2016 17:31:05 +0200 - -lmms (1.1.3-4) unstable; urgency=medium - - [ Javier Serrano Polo ] - * Sort lists generated from globbing expressions (reproducibility). - * Fixed upgrade that installs recommended packages (Closes: #827039). - * Dropped unused build dependencies. - * Dropped workaround for #824715, wineg++ is fixed. - * Added contributors. - * Honor CONTRIBUTORS override. - * Replace __FILE__ (reproducibility). - * Use build type "Release" (reproducibility). - - -- Javier Serrano Polo Wed, 08 Jun 2016 01:25:37 +0200 - -lmms (1.1.3-3) unstable; urgency=medium - - [ Javier Serrano Polo ] - * Dropped Wine path from PATH. - * Fixed lmms-common upgrade (Closes: #825287). - * Hide vocoder plug-in, it is now in swh-plugins (Closes: #826110). - * Added workaround for #824715 (Closes: #825286). - - -- Petter Reinholdtsen Fri, 03 Jun 2016 08:51:31 +0000 - -lmms (1.1.3-2) unstable; urgency=medium - - [ Javier Serrano Polo ] - * Enabled vst plugin on i386 and amd64 (Closes: #763720). - * Made Calf and vocoder plugins available to other programs (Closes: #758888). - * Fixed version of metalish_dong01.ogg (Closes: #802588). - * Bumped Standards-Version to 3.9.7. Doxygen documentation is not very useful. - * Upgraded to Standards-Version 3.9.8. Ship icons in the default hicolor icon - theme directories. - * Use presets from zynaddsubfx-data. - * Fixed build problems with GCC 6 (Closes: #811697). - * Switch to PulseAudio back end on likely ALSA interception (Closes: #781479). - * Updated copyright information. - * Removed non-free projects. - - -- Petter Reinholdtsen Wed, 18 May 2016 09:09:23 +0000 - -lmms (1.1.3-1) unstable; urgency=low - - * New upstream version 1.1.3 (Closes: #788457). - - Drop well-defined-loop.patch, included upstream. - * Add config for git-buildpackage to use pristine-tar all the time. - * Change homepage url to new http://lmms.io/. - * Added fluid as build-depend. - * New patch find-fluid.patch to find the fluid binary in unstable. - * New patch gcc5.patch to get the code building with gcc 5 in - unstable (Closes: #777989). - * Added man-page-adjustment.patch to fix manpage formatting of AUTHOR - block. Discovered thanks to lintian. - - -- Petter Reinholdtsen Mon, 21 Sep 2015 13:54:02 +0200 - -lmms (1.0.3-5) unstable; urgency=low - - * Make lmms replace and break lmms-common (<< 1.0.0-1) to handle the - fact that /usr/share/menu/lmms moved from lmms-common to lmms in - this version (Closes: #765970). - - -- Petter Reinholdtsen Sun, 19 Oct 2014 23:43:08 +0200 - -lmms (1.0.3-4) unstable; urgency=low - - * Correct watch file to reflect '-src' part of upstream tarball. - * New desktop-argument.patch to let desktops know how to pass files to - lmms. Thanks to lintian for noticing the bug. - * Revert change to enable the vsl plugin in version 1.0.3-3, as it did - not work. Reopen bug #763720. - - -- Petter Reinholdtsen Wed, 08 Oct 2014 19:21:53 +0200 - -lmms (1.0.3-3) unstable; urgency=medium - - * Try to get vsl plugin working on i386 by build depending on libwine-dev - and wine32-dev-tools (Closes: #763720). Unable to get it working on - amd64. - - -- Petter Reinholdtsen Tue, 07 Oct 2014 12:13:16 +0200 - -lmms (1.0.3-2) unstable; urgency=medium - - * Change build rule to only enable ALSA support on Linux (Closes: #754718). - Patch from Steven Chamberlain with input from Guillem Jover. - * Drop libwine-dev build dependency to avoid build failure in the - vst plugin. It should be enabled when we figure out how to do it. - - -- Petter Reinholdtsen Thu, 02 Oct 2014 08:19:53 +0200 - -lmms (1.0.3-1) unstable; urgency=low - - * Move package into Debian Edu git repository and add myself as - co-maintainer. - * Update to upstream version 1.0.3. - * Correct build dependency on i386, use libwine-dev instead of the now - obsolete wine-dev (Closes: #748183). - * Update Standards-Version from 3.9.5 to 3.9.6. - * Add new well-defined-loop.patch to fix compile error triggered by - undefined loop behaviour (Closes: #753177). - - -- Petter Reinholdtsen Wed, 01 Oct 2014 23:00:19 +0200 - -lmms (1.0.0-1) unstable; urgency=low - - * New upstream version (Closes: #703900, #735764, #696271) - * Using a wraped-style control (Closes: #689347) - * Don't suggest vcf as it no longer exists (since a long time) - (Closes: #618350) - * Problems with jack backend were fixed long ago (Closes: #557421) - * No depends/recommends on wine anymore (Closes: #622215, #622080) - - -- Patrick Winnertz Thu, 24 Apr 2014 22:30:17 +0200 - -lmms (0.4.10-2.3) unstable; urgency=low - - * Non maintainer upload. - * Remove wine-related dependencies on amd64, thereby disabling building - VST plugin. (Closes: #676760) - - -- Hilko Bengen Wed, 27 Jun 2012 23:14:40 +0200 - -lmms (0.4.10-2.2) unstable; urgency=low - - * Non maintainer upload. - * Fix build failure with GCC 4.7. Closes: #667265. - * Turn on verbose build. - - -- Matthias Klose Tue, 17 Apr 2012 14:08:53 +0200 - -lmms (0.4.10-2.1) unstable; urgency=low - - * Non-maintainer upload. - * Fix FTBFS on GNU/kFreeBSD. Thanks Pino Toscano. (Closes: #641064) - - -- Robert Millan Fri, 27 Apr 2012 22:55:55 +0200 - -lmms (0.4.10-2) unstable; urgency=low - - * Removed build-dep on libestools2.0-dev (Closes: #614975) - - -- Patrick Winnertz Fri, 11 Mar 2011 09:37:43 +0100 - -lmms (0.4.10-1) unstable; urgency=low - - * Imported Upstream version 0.4.10 - * changed mode of patch - * Add source/format with 3.0 (quilt) and rearrange source a bit - * Bump standarts version to 3.9.1 - no further changes needed - - -- Patrick Winnertz Fri, 11 Feb 2011 20:03:06 +0100 - -lmms (0.4.7-2) unstable; urgency=low - - [ Reinhard Tartler ] - * Depend on wine only on i386 and amd64 (Closes: #590950) - - [ Patrick Winnertz ] - * Uploading patch from siretart, thanks for helping. - - -- Patrick Winnertz Mon, 02 Aug 2010 10:13:28 +0200 - -lmms (0.4.7-1) unstable; urgency=low - - * New upstream version - - -- Patrick Winnertz Thu, 29 Jul 2010 16:24:00 +0200 - -lmms (0.4.6-2) unstable; urgency=low - - * Build-depend on libestools2.0-dev (Closes: #589882) - - -- Patrick Winnertz Wed, 28 Jul 2010 11:55:16 +0200 - -lmms (0.4.6-1) unstable; urgency=low - - * New upstream version (Closes: #565733) - * Bumped standards version to 3.8.3, no further changes needed - - -- Patrick Winnertz Sun, 24 Jan 2010 16:40:39 +0100 - -lmms (0.4.5-1) unstable; urgency=low - - * New upstream version (Closes: #543645) - * Fix FTBFS on amd64 (Closes: #540671 #543017) - - -- Patrick Winnertz Fri, 11 Sep 2009 09:56:45 +0200 - -lmms (0.4.4-1) unstable; urgency=low - - * New upstream version (Closes: #511363) - * Provide menu file (Closes: #514905) - - The menufile is included in lmms-common and not in lmms - as it is not arch specific - * Bumped standards version to 3.8.2 no further changes needed - - -- Patrick Winnertz Wed, 05 Aug 2009 20:46:40 +0200 - -lmms (0.3.2-1) unstable; urgency=low - - * Decrease wine dependency to wine-bin as suggested. (Closes: #446163) - * Acknowlegded NMU from Pierre Habouzit in order to - fix FTBFS with gcc-4.3 which (Closes: #462202) - * Now including the singerbot plugin. (Closes: #443224) - * Add patch to prevent lmms from crashing. - - -- Patrick Winnertz Mon, 17 Mar 2008 10:56:12 +0100 - -lmms (0.3.1-1.1) unstable; urgency=low - - * Non-maintainer upload. - * Add g++-4.3.patch to fix g++-4.3 FTBFS (Closes: 462202). - - -- Pierre Habouzit Sun, 16 Mar 2008 23:21:56 +0000 - -lmms (0.3.1-1) unstable; urgency=low - - * Packaging new upstream release. - * Install Upstream Changelog (Closes: #441477) - Thanks to Felipe Sateler - * Lowered the caps dependency to Recommends (Closes: #446163) - * Added -i/-a to the build targets in rules in order to make sure that only - (in)dep packages are build. - * Changed my maintainer address - * Added patch to remove stereo_enhancer plugin which has a ftbfs with gcc - 4.2.3 - * Added imagemagick as build-dep since we have to convert a .png to a .xpm - via convert - * Doesn't install upstreams menu file, since it's outdated.. instead use - our own. - * Standard-Version bump to 3.7.3 - * Remove Homepage field from Description and create a own Header - * Added postinst and postrm for lmms-common to call update-menu if available - (this has to be done manually, since we doesn't use dh_installmenu to install - the menu file) - - -- Patrick Winnertz Thu, 06 Dec 2007 07:08:04 +0100 - -lmms (0.3.0-1) unstable; urgency=low - - [ Tobias Doerffel ] - * New upstream release. (Closes: #439301) - * Removed patch from Thomas Girard as upstream merged changes - - [ Patrick Winnertz ] - * Moved manpage into correct package (lmms) - * Removed manuall installation of Upstream Changelog, thanks to the power of - debhelper ;-) - * FTBFS with gcc 4.2 is fixed by upstream (Closes: #383295) - * lmms has now a proper menu entry (Closes: #383406) - * lmms depends now on the same version of lmms-common (Closes: #389037) - * fixed by upstream: arpeggio status is now saved (Closes: #433262) - * Added build-depends libqt3-i18n (Closes: #384406) - * Added watch file for lmms (Closes: #439302) - Thanks to Raphael Geissert - * Improved copyright file - * Doesn't build libsingerbot since it is experimental and doesn't work - correct yet - * Added several build-dependencys (libstk0-dev, libestools1.2-dev, ladspa-sdk, - libflac-dev, libwine-dev [i386], libqt3-i18n, libasound2-dev, - festival-dev, dpatch ) - * Take over this package from Florian Ragwitz, so set myself as maintainer - * Add a depends on a specific version of lmms-common - * Added several new dependencys to lmms - * Improved description of lmms and lmms-common - * Die on errors of clean, but don't die if the makefile doesn't exist - * Added watch file - - -- Patrick Winnertz Fri, 24 Aug 2007 08:23:34 +0200 - -lmms (0.2.1-1.1) unstable; urgency=high - - * Non-maintainer Upload - * Add Patch by Thomas Girard for segfault right after - lmms starting up (Closes: 382491) - - -- Michael Ablassmeier Tue, 5 Sep 2006 12:00:40 +0200 - -lmms (0.2.1-1) unstable; urgency=low - - * New upstream release. - * Bump up Standards-Version to 3.7.2 (no changes). - * Use DH_COMPAT 5. - - -- Florian Ragwitz Sun, 13 Aug 2006 14:40:13 +0200 - -lmms (0.1.4-1) unstable; urgency=low - - * New upstream release. - - -- Florian Ragwitz Sat, 4 Feb 2006 07:16:47 +0100 - -lmms (0.1.3-1) unstable; urgency=low - - * New upstream release. - * debian/lmms.1 was included by upstream. Removed it from debian/. - * Install lmms.1 in lmms-common instead of lmms to safe some mirror space. - * Added a lintian override for the above, as lintian is not smart enough to - check for manpages in other packages from the same source package on which - a package with a missing manpage depends. - - -- Florian Ragwitz Wed, 1 Feb 2006 18:28:42 +0100 - -lmms (0.1.2-1) unstable; urgency=low - - * New upstream release. - - -- Florian Ragwitz Thu, 22 Dec 2005 16:22:50 +0100 - -lmms (0.1.1-2) unstable; urgency=low - - * lmms-common doesn't depend on lmms anymore to remove a circular - dependencies (Closes: #339906). - - -- Florian Ragwitz Sun, 20 Nov 2005 12:27:08 +0100 - -lmms (0.1.1-1) unstable; urgency=low - - * New upstream release. - * Changed Maintainer address. - * Added libjack-dev to Build-Depends. - - -- Florian Ragwitz Mon, 31 Oct 2005 10:48:36 +0100 - -lmms (0.0.9+0.1.0rc1-1) unstable; urgency=low - - * Initial Release (Closes: #315976). - - -- Florian Ragwitz Fri, 22 Jul 2005 16:33:17 +0200 - diff --git a/debian/compat b/debian/compat deleted file mode 100644 index ec635144f60..00000000000 --- a/debian/compat +++ /dev/null @@ -1 +0,0 @@ -9 diff --git a/debian/control b/debian/control deleted file mode 100644 index 63eba44d2e1..00000000000 --- a/debian/control +++ /dev/null @@ -1,126 +0,0 @@ -Source: lmms -Section: sound -Priority: optional -Maintainer: Debian Edu Packaging Team -Uploaders: - Petter Reinholdtsen , - Israel Dahl , - Javier Serrano Polo , -Build-Depends: - cmake, - debhelper (>= 9.0.0), - fluid, - ladspa-sdk, - libasound2-dev [linux-any], - libfftw3-dev, - libfltk1.3-dev, - libfluidsynth-dev, - libgig-dev, - libjack-jackd2-dev, - liblist-moreutils-perl, - libmp3lame-dev, - libpulse-dev, - libqt5x11extras5-dev, - libsamplerate0-dev, - libsdl1.2-dev, - libsndfile1-dev, - libsndio-dev, - libsoundio-dev, - libstk0-dev, - libvorbis-dev, - libx11-xcb-dev, - libxcb-keysyms1-dev, - libxcb-util0-dev, - libxml-perl, - libxml2-utils, - portaudio19-dev, - qtbase5-private-dev, - qttools5-dev, - wine64-tools [amd64] | wine32-tools [i386] -Standards-Version: 4.2.1.4 -Homepage: https://lmms.io/ -Vcs-Browser: https://salsa.debian.org/debian-edu-pkg-team/lmms.git - -Package: lmms-bin -Architecture: any -Depends: - lmms-common (>= ${source:Version}), - ${shlibs:Depends}, - ${misc:Depends}, - stk, -Recommends: - caps, - lmms-vst-server:i386 (>= ${source:Version}), - lmms-vst-server:amd64 (>= ${source:Version}), - tap-plugins, -Suggests: - fil-plugins, - fluid-soundfont-gm, - freepats, - ladspa-plugin, - mcp-plugins, - omins, -Replaces: lmms-common (<< 1.0.0-1) -Breaks: lmms-common (<< 1.0.0-1) -Multi-Arch: allowed -Description: Linux Multimedia Studio - minimal installation - LMMS aims to be a free alternative to popular (but commercial and closed- - source) programs like FruityLoops, Cubase and Logic giving you the ability of - producing music with your computer by creating cool loops, synthesizing and - mixing sounds, arranging samples, having more fun with your MIDI-keyboard - and much more... - . - LMMS combines the features of a tracker-/sequencer-program (pattern-/channel-/ - sample-/song-/effect-management) and those of powerful synthesizers and - samplers in a modern, user-friendly and easy to use graphical user-interface. - . - This package provides the minimal installation. - -Package: lmms -Architecture: any -Depends: - lmms-bin, - ${misc:Depends}, -Description: Linux Multimedia Studio - LMMS aims to be a free alternative to popular (but commercial and closed- - source) programs like FruityLoops, Cubase and Logic giving you the ability of - producing music with your computer by creating cool loops, synthesizing and - mixing sounds, arranging samples, having more fun with your MIDI-keyboard - and much more... - . - LMMS combines the features of a tracker-/sequencer-program (pattern-/channel-/ - sample-/song-/effect-management) and those of powerful synthesizers and - samplers in a modern, user-friendly and easy to use graphical user-interface. - . - This package provides the recommended installation. - -Package: lmms-common -Architecture: all -Depends: - ${shlibs:Depends}, - ${misc:Depends}, - zynaddsubfx-data, -Pre-Depends: ${misc:Pre-Depends} -Description: Linux Multimedia Studio - common files - LMMS aims to be a free alternative to popular (but commercial and closed- - source) programs like FruityLoops, Cubase and Logic giving you the ability of - producing music with your computer by creating cool loops, synthesizing and - mixing sounds, arranging samples, having more fun with your MIDI-keyboard - and much more... - . - LMMS combines the features of a tracker-/sequencer-program (pattern-/channel-/ - sample-/song-/effect-management) and those of powerful synthesizers and - samplers in a modern, user-friendly and easy to use graphical user-interface. - . - This package contains the platform independent files such as samples, presets - and some example projects. - -Package: lmms-vst-server -Architecture: amd64 i386 -Depends: - wine64 [amd64] | wine64-development [amd64] | wine32 [i386] | wine32-development [i386], - ${shlibs:Depends}, - ${misc:Depends}, -Recommends: lmms-bin:any -Description: Linux Multimedia Studio - VST server - This package contains a helper application that loads VST plugins. diff --git a/debian/copyright b/debian/copyright deleted file mode 100644 index f4bc9d85c9d..00000000000 --- a/debian/copyright +++ /dev/null @@ -1,1373 +0,0 @@ -Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ -Upstream-Name: LMMS -Upstream-Contact: https://github.com/LMMS/lmms -Source: https://github.com/LMMS/lmms/tags -Comment: - This package was debianized by Florian Ragwitz on - Thu, 14 Apr 2005 13:24:57 +0200. - -Files: * -Copyright: - 1998-2000 Paul Kellett (mda-vst.com) - 1999-2004 Dag Lem - 2002 Kjetil S. Matheussen - 2003-2007 Rui Nuno Capela - 2003-2005 Shay Green - 2004-2014 Tobias Doerffel - 2004 Paul Davis - 2004 Torben Hohn - 2005-2008 Danny McRae - 2006-2008 Andreas Brandmaier - 2006-2008 Javier Serrano Polo - 2007-2014 Vesa Kivimäki - 2007-2013 Paul Giblock - 2007 Keith Marshall - 2008-2009 Andrew Kelley - 2008 Attila Herman - 2008 Csaba Hruska - 2013-2014 Raine M. Ekman - 2013 Mike Choi - 2014 David French - 2014 Hannu Haahti - 2014 Lukas Wohlschläger - 2014 Rubén Ibarra Pastor - 2014 Simon Symeonidis - 2014 Wong Cho Ching - Chrissy McManus - Gabriel - Gurjot Singh - Johannes Lorenz - Jonathan Aquilina - Jorrit Rouwe - Juan Fabián Simón - LocoMatt - Oskar Wallgren - Peter Hanappe - Sebastian Tilsch - Tobiasz Karoń (unfa) - Uroš Maravić -License: GPL-2+ - -Files: data/projects/demos/Alf42red-* - data/projects/demos/CapDan/CapDan-TwilightArea-* -Copyright: - 2010-2011 Armin Heller - 2011 Der Daniel (CapDan) -License: CC-BY-SA-3 - -Files: data/projects/demos/AngryLlama-* - data/projects/demos/Ashore.* - data/projects/demos/DnB.* - data/projects/demos/Farbro-* - data/projects/demos/Greippi* - data/projects/demos/Namitryus-* - data/projects/demos/Popsip-* - data/projects/demos/Root84-* - data/projects/demos/Shovon-* - data/projects/demos/Skiessi/* - data/projects/demos/StrictProduction-* - data/projects/demos/Thaledric-* - data/projects/demos/TobyDox-* - data/projects/demos/unfa-* - data/projects/shorties/DirtyLove.* - data/projects/shorties/Root84-* - data/projects/shorties/Skiessi-* - data/projects/shorties/sv-* -Copyright: - LMMS contributors -License: non-free - -Files: data/projects/demos/CapDan/CapDan-ReggaeTry.* - data/projects/demos/CapDan/CapDan-ReggaetonTry.* - data/projects/demos/CapDan/CapDan-ZeroSumGame-* - data/projects/demos/EsoXLB-* - data/projects/demos/Impulslogik-* - data/projects/demos/Momo64-* - data/projects/demos/Oglsdl-* - data/projects/demos/Settel-* - data/projects/demos/Socceroos-* - data/projects/demos/TameAnderson-* - data/projects/demos/Thomasso-* - data/projects/shorties/Crunk* - data/projects/shorties/Greshz-* - data/projects/shorties/Surrender-* -Copyright: - 2009 Achim Settelmeier - 2009 Peter Asplund (Surrender) - 2009 Thomasso - 2010 E.SoX (lowbudget) - 2010 Impulslogik - 2011 Der Daniel (CapDan) - 2011 Sam (socceroos) - 2011 mauro (momo64) - 2011 tame anderson - 2011 Ümit (oglsdl) - Greshz -License: Artistic-2 - -Files: data/projects/demos/Jousboxx-* -Copyright: - Jousboxx -License: CC-BY-SA-4 - -Files: data/projects/demos/Saber-* -Copyright: - Saber Rastikerdar -License: BSD-2-clause - -Files: include/ladspa.h -Copyright: - 2000-2002 Paul Barton-Davis - 2000-2002 Richard W.E. Furse - 2000-2002 Stefan Westerfeld -License: LGPL-2.1+ - -Files: plugins/LadspaEffect/calf/veal/* -Copyright: - 2001-2010 Krzysztof Foltman - 2001-2010 Markus Schmidt - 2001-2010 Thor Harald Johansen - Alexandre Prokoudine - Carl Hetherington - Christian Holschuh - Damien Zammit - Dave Robillard - David Täht - Hans Baier - Hermann Meyer - Thorsten Wilms - Tom Szilagyi - Torben Hohn -License: LGPL-2+ -Comment: - COPYING is the GNU Lesser General Public License. Headers refer to version 2 of - this license instead of version 2.1. - -Files: plugins/LadspaEffect/calf/veal/src/calf/vumeter.h -Copyright: - 2007 Krzysztof Foltman -License: GPL-2+ - -Files: plugins/LadspaEffect/caps/* -Copyright: - 1998 Robert Bristow-Johnson - 2001-2011 Tim Goetze - 2003-2009 David Yeh - 2004-2005 Steve Harris -License: GPL-2+ - -Files: plugins/LadspaEffect/cmt/* -Copyright: - 1998 Andy Sloane - 1999-2001 David A. Bartold - 2000-2002 Richard W.E. Furse - 2000 Jezar - 2002 Nathaniel Virgo -License: GPL-2+ - -Files: plugins/LadspaEffect/swh/ladspa/* -Copyright: - 1999 Juhana Sadeharju - 2000-2003 Alexander Ehlert - 2000-2002 Steve Harris - Andy Wingo - Frank Neumann - Jesse Chappell - Joern Nettingsmeier - Marcus Andersson - Mark Knecht - Matthias Nagorni - Nathaniel Virgo - Pascal Haakmat - Patrick Shirkey - Paul Winkler -License: GPL-2+ - -Files: plugins/LadspaEffect/swh/ladspa/gsm/* -Copyright: - 1992-1994 Carsten Bormann - 1992-1994 Jutta Degener -License: Bormann-Degener - -Files: plugins/LadspaEffect/swh/ladspa/util/pitchscale.c -Copyright: - 1999 Stephan M. Sprenger -License: WOL - -Files: plugins/LadspaEffect/swh/ladspa/vocoder_1337.c -Copyright: - Achim Settelmeier - Hexasoft - Josh Green -License: GPL-2+ - -Files: plugins/LadspaEffect/tap/* -Copyright: - 2004 Tom Szilagyi - Alexander Koenig -License: GPL-2+ - -Files: plugins/MidiImport/portsmf/* -Copyright: - 1999-2000 Phil Burk - 1999-2000 Ross Bencina - 2001-2006 Roger B. Dannenberg -License: Expat -Comment: - The Expat license constitutes the entire Portsmf license; however, - the PortMusic community also makes the following non-binding requests: - . - Any person wishing to distribute modifications to the Software is - requested to send the modifications to the original developer so that - they can be incorporated into the canonical version. It is also - requested that these non-binding requests be included along with the - license above. - -Files: plugins/OpulenZ/adplug/src/fmopl.* - plugins/OpulenZ/adplug/src/mididata.h - plugins/OpulenZ/adplug/src/opl.h - plugins/OpulenZ/adplug/src/temuopl.* -Copyright: - 1999-2007 Simon Peter - 1999-2000 Tatsuyuki Satoh -License: LGPL-2.1+ - -Files: plugins/Sfxr/readme.* - plugins/Sfxr/Sfxr.* -Copyright: - 2007 Tomas Pettersson - 2014 Wong Cho Ching -License: Expat and GPL-2+ - -Files: plugins/ZynAddSubFx/zynaddsubfx/* -Copyright: - 2002-2009 Nasca Octavian Paul - 2009-2010 Mark McCurry - 2009 Alan Calvert - 2012 Jonathan Liles - Achim Settelmeier - Alexis Ballier - Andre Sklenar - Christopher Oliver - Damien Goutte-Gattat - Daniel Clemente - Emmanuel Saracco - Filipe Coelho - Gerald Folcher - Hans Petter Selasky - Harald Hvaal - Ilario Glasgo - James Morris - Johannes Lorenz - Jérémie Andréi - Lars Luthman - Lieven Moors - Olaf Schulz - Ryan Billing - Stephen Parry - Tobias Doerffel -License: GPL-2+ - -License: Artistic-2 - The Artistic License 2.0 - . - Copyright (c) 2000-2006, The Perl Foundation. - . - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - . - Preamble - . - This license establishes the terms under which a given free software - Package may be copied, modified, distributed, and/or redistributed. - The intent is that the Copyright Holder maintains some artistic - control over the development of that Package while still keeping the - Package available as open source and free software. - . - You are always permitted to make arrangements wholly outside of this - license directly with the Copyright Holder of a given Package. If the - terms of this license do not permit the full use that you propose to - make of the Package, you should contact the Copyright Holder and seek - a different licensing arrangement. - . - Definitions - . - "Copyright Holder" means the individual(s) or organization(s) - named in the copyright notice for the entire Package. - . - "Contributor" means any party that has contributed code or other - material to the Package, in accordance with the Copyright Holder's - procedures. - . - "You" and "your" means any person who would like to copy, - distribute, or modify the Package. - . - "Package" means the collection of files distributed by the - Copyright Holder, and derivatives of that collection and/or of - those files. A given Package may consist of either the Standard - Version, or a Modified Version. - . - "Distribute" means providing a copy of the Package or making it - accessible to anyone else, or in the case of a company or - organization, to others outside of your company or organization. - . - "Distributor Fee" means any fee that you charge for Distributing - this Package or providing support for this Package to another - party. It does not mean licensing fees. - . - "Standard Version" refers to the Package if it has not been - modified, or has been modified only in ways explicitly requested - by the Copyright Holder. - . - "Modified Version" means the Package, if it has been changed, and - such changes were not explicitly requested by the Copyright - Holder. - . - "Original License" means this Artistic License as Distributed with - the Standard Version of the Package, in its current version or as - it may be modified by The Perl Foundation in the future. - . - "Source" form means the source code, documentation source, and - configuration files for the Package. - . - "Compiled" form means the compiled bytecode, object code, binary, - or any other form resulting from mechanical transformation or - translation of the Source form. - . - Permission for Use and Modification Without Distribution - . - (1) You are permitted to use the Standard Version and create and use - Modified Versions for any purpose without restriction, provided that - you do not Distribute the Modified Version. - . - Permissions for Redistribution of the Standard Version - . - (2) You may Distribute verbatim copies of the Source form of the - Standard Version of this Package in any medium without restriction, - either gratis or for a Distributor Fee, provided that you duplicate - all of the original copyright notices and associated disclaimers. At - your discretion, such verbatim copies may or may not include a - Compiled form of the Package. - . - (3) You may apply any bug fixes, portability changes, and other - modifications made available from the Copyright Holder. The resulting - Package will still be considered the Standard Version, and as such - will be subject to the Original License. - . - Distribution of Modified Versions of the Package as Source - . - (4) You may Distribute your Modified Version as Source (either gratis - or for a Distributor Fee, and with or without a Compiled form of the - Modified Version) provided that you clearly document how it differs - from the Standard Version, including, but not limited to, documenting - any non-standard features, executables, or modules, and provided that - you do at least ONE of the following: - . - (a) make the Modified Version available to the Copyright Holder - of the Standard Version, under the Original License, so that the - Copyright Holder may include your modifications in the Standard - Version. - . - (b) ensure that installation of your Modified Version does not - prevent the user installing or running the Standard Version. In - addition, the Modified Version must bear a name that is different - from the name of the Standard Version. - . - (c) allow anyone who receives a copy of the Modified Version to - make the Source form of the Modified Version available to others - under - . - (i) the Original License or - . - (ii) a license that permits the licensee to freely copy, - modify and redistribute the Modified Version using the same - licensing terms that apply to the copy that the licensee - received, and requires that the Source form of the Modified - Version, and of any works derived from it, be made freely - available in that license fees are prohibited but Distributor - Fees are allowed. - . - Distribution of Compiled Forms of the Standard Version - or Modified Versions without the Source - . - (5) You may Distribute Compiled forms of the Standard Version without - the Source, provided that you include complete instructions on how to - get the Source of the Standard Version. Such instructions must be - valid at the time of your distribution. If these instructions, at any - time while you are carrying out such distribution, become invalid, you - must provide new instructions on demand or cease further distribution. - If you provide valid instructions or cease distribution within thirty - days after you become aware that the instructions are invalid, then - you do not forfeit any of your rights under this license. - . - (6) You may Distribute a Modified Version in Compiled form without - the Source, provided that you comply with Section 4 with respect to - the Source of the Modified Version. - . - Aggregating or Linking the Package - . - (7) You may aggregate the Package (either the Standard Version or - Modified Version) with other packages and Distribute the resulting - aggregation provided that you do not charge a licensing fee for the - Package. Distributor Fees are permitted, and licensing fees for other - components in the aggregation are permitted. The terms of this license - apply to the use and Distribution of the Standard or Modified Versions - as included in the aggregation. - . - (8) You are permitted to link Modified and Standard Versions with - other works, to embed the Package in a larger work of your own, or to - build stand-alone binary or bytecode versions of applications that - include the Package, and Distribute the result without restriction, - provided the result does not expose a direct interface to the Package. - . - Items That are Not Considered Part of a Modified Version - . - (9) Works (including, but not limited to, modules and scripts) that - merely extend or make use of the Package, do not, by themselves, cause - the Package to be a Modified Version. In addition, such works are not - considered parts of the Package itself, and are not subject to the - terms of this license. - . - General Provisions - . - (10) Any use, modification, and distribution of the Standard or - Modified Versions is governed by this Artistic License. By using, - modifying or distributing the Package, you accept this license. Do not - use, modify, or distribute the Package, if you do not accept this - license. - . - (11) If your Modified Version has been derived from a Modified - Version made by someone other than you, you are nevertheless required - to ensure that your Modified Version complies with the requirements of - this license. - . - (12) This license does not grant you the right to use any trademark, - service mark, tradename, or logo of the Copyright Holder. - . - (13) This license includes the non-exclusive, worldwide, - free-of-charge patent license to make, have made, use, offer to sell, - sell, import and otherwise transfer the Package with respect to any - patent claims licensable by the Copyright Holder that are necessarily - infringed by the Package. If you institute patent litigation - (including a cross-claim or counterclaim) against any party alleging - that the Package constitutes direct or contributory patent - infringement, then this Artistic License to you shall terminate on the - date that such litigation is filed. - . - (14) Disclaimer of Warranty: - THE PACKAGE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS "AS - IS' AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. THE IMPLIED - WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR - NON-INFRINGEMENT ARE DISCLAIMED TO THE EXTENT PERMITTED BY YOUR LOCAL - LAW. UNLESS REQUIRED BY LAW, NO COPYRIGHT HOLDER OR CONTRIBUTOR WILL - BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL - DAMAGES ARISING IN ANY WAY OUT OF THE USE OF THE PACKAGE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -License: BSD-2-clause - All rights reserved. - . - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - . - 1. Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - . - 2. Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - . - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE - FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -License: Bormann-Degener - Any use of this software is permitted provided that this notice is not - removed and that neither the authors nor the Technische Universitaet Berlin - are deemed to have made any representations as to the suitability of this - software for any purpose nor are held responsible for any defects of - this software. THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE. - . - As a matter of courtesy, the authors request to be informed about uses - this software has found, about bugs in this software, and about any - improvements that may be of general interest. - -License: CC-BY-SA-3 - Creative Commons Legal Code - . - Attribution-ShareAlike 3.0 Unported - . - CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE - LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN - ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS - INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES - REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR - DAMAGES RESULTING FROM ITS USE. - . - License - . - THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE - COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY - COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS - AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. - . - BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE - TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY - BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS - CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND - CONDITIONS. - . - 1. Definitions - . - a. "Adaptation" means a work based upon the Work, or upon the Work and - other pre-existing works, such as a translation, adaptation, - derivative work, arrangement of music or other alterations of a - literary or artistic work, or phonogram or performance and includes - cinematographic adaptations or any other form in which the Work may be - recast, transformed, or adapted including in any form recognizably - derived from the original, except that a work that constitutes a - Collection will not be considered an Adaptation for the purpose of - this License. For the avoidance of doubt, where the Work is a musical - work, performance or phonogram, the synchronization of the Work in - timed-relation with a moving image ("synching") will be considered an - Adaptation for the purpose of this License. - b. "Collection" means a collection of literary or artistic works, such as - encyclopedias and anthologies, or performances, phonograms or - broadcasts, or other works or subject matter other than works listed - in Section 1(f) below, which, by reason of the selection and - arrangement of their contents, constitute intellectual creations, in - which the Work is included in its entirety in unmodified form along - with one or more other contributions, each constituting separate and - independent works in themselves, which together are assembled into a - collective whole. A work that constitutes a Collection will not be - considered an Adaptation (as defined below) for the purposes of this - License. - c. "Creative Commons Compatible License" means a license that is listed - at https://creativecommons.org/compatiblelicenses that has been - approved by Creative Commons as being essentially equivalent to this - License, including, at a minimum, because that license: (i) contains - terms that have the same purpose, meaning and effect as the License - Elements of this License; and, (ii) explicitly permits the relicensing - of adaptations of works made available under that license under this - License or a Creative Commons jurisdiction license with the same - License Elements as this License. - d. "Distribute" means to make available to the public the original and - copies of the Work or Adaptation, as appropriate, through sale or - other transfer of ownership. - e. "License Elements" means the following high-level license attributes - as selected by Licensor and indicated in the title of this License: - Attribution, ShareAlike. - f. "Licensor" means the individual, individuals, entity or entities that - offer(s) the Work under the terms of this License. - g. "Original Author" means, in the case of a literary or artistic work, - the individual, individuals, entity or entities who created the Work - or if no individual or entity can be identified, the publisher; and in - addition (i) in the case of a performance the actors, singers, - musicians, dancers, and other persons who act, sing, deliver, declaim, - play in, interpret or otherwise perform literary or artistic works or - expressions of folklore; (ii) in the case of a phonogram the producer - being the person or legal entity who first fixes the sounds of a - performance or other sounds; and, (iii) in the case of broadcasts, the - organization that transmits the broadcast. - h. "Work" means the literary and/or artistic work offered under the terms - of this License including without limitation any production in the - literary, scientific and artistic domain, whatever may be the mode or - form of its expression including digital form, such as a book, - pamphlet and other writing; a lecture, address, sermon or other work - of the same nature; a dramatic or dramatico-musical work; a - choreographic work or entertainment in dumb show; a musical - composition with or without words; a cinematographic work to which are - assimilated works expressed by a process analogous to cinematography; - a work of drawing, painting, architecture, sculpture, engraving or - lithography; a photographic work to which are assimilated works - expressed by a process analogous to photography; a work of applied - art; an illustration, map, plan, sketch or three-dimensional work - relative to geography, topography, architecture or science; a - performance; a broadcast; a phonogram; a compilation of data to the - extent it is protected as a copyrightable work; or a work performed by - a variety or circus performer to the extent it is not otherwise - considered a literary or artistic work. - i. "You" means an individual or entity exercising rights under this - License who has not previously violated the terms of this License with - respect to the Work, or who has received express permission from the - Licensor to exercise rights under this License despite a previous - violation. - j. "Publicly Perform" means to perform public recitations of the Work and - to communicate to the public those public recitations, by any means or - process, including by wire or wireless means or public digital - performances; to make available to the public Works in such a way that - members of the public may access these Works from a place and at a - place individually chosen by them; to perform the Work to the public - by any means or process and the communication to the public of the - performances of the Work, including by public digital performance; to - broadcast and rebroadcast the Work by any means including signs, - sounds or images. - k. "Reproduce" means to make copies of the Work by any means including - without limitation by sound or visual recordings and the right of - fixation and reproducing fixations of the Work, including storage of a - protected performance or phonogram in digital form or other electronic - medium. - . - 2. Fair Dealing Rights. Nothing in this License is intended to reduce, - limit, or restrict any uses free from copyright or rights arising from - limitations or exceptions that are provided for in connection with the - copyright protection under copyright law or other applicable laws. - . - 3. License Grant. Subject to the terms and conditions of this License, - Licensor hereby grants You a worldwide, royalty-free, non-exclusive, - perpetual (for the duration of the applicable copyright) license to - exercise the rights in the Work as stated below: - . - a. to Reproduce the Work, to incorporate the Work into one or more - Collections, and to Reproduce the Work as incorporated in the - Collections; - b. to create and Reproduce Adaptations provided that any such Adaptation, - including any translation in any medium, takes reasonable steps to - clearly label, demarcate or otherwise identify that changes were made - to the original Work. For example, a translation could be marked "The - original work was translated from English to Spanish," or a - modification could indicate "The original work has been modified."; - c. to Distribute and Publicly Perform the Work including as incorporated - in Collections; and, - d. to Distribute and Publicly Perform Adaptations. - e. For the avoidance of doubt: - . - i. Non-waivable Compulsory License Schemes. In those jurisdictions in - which the right to collect royalties through any statutory or - compulsory licensing scheme cannot be waived, the Licensor - reserves the exclusive right to collect such royalties for any - exercise by You of the rights granted under this License; - ii. Waivable Compulsory License Schemes. In those jurisdictions in - which the right to collect royalties through any statutory or - compulsory licensing scheme can be waived, the Licensor waives the - exclusive right to collect such royalties for any exercise by You - of the rights granted under this License; and, - iii. Voluntary License Schemes. The Licensor waives the right to - collect royalties, whether individually or, in the event that the - Licensor is a member of a collecting society that administers - voluntary licensing schemes, via that society, from any exercise - by You of the rights granted under this License. - . - The above rights may be exercised in all media and formats whether now - known or hereafter devised. The above rights include the right to make - such modifications as are technically necessary to exercise the rights in - other media and formats. Subject to Section 8(f), all rights not expressly - granted by Licensor are hereby reserved. - . - 4. Restrictions. The license granted in Section 3 above is expressly made - subject to and limited by the following restrictions: - . - a. You may Distribute or Publicly Perform the Work only under the terms - of this License. You must include a copy of, or the Uniform Resource - Identifier (URI) for, this License with every copy of the Work You - Distribute or Publicly Perform. You may not offer or impose any terms - on the Work that restrict the terms of this License or the ability of - the recipient of the Work to exercise the rights granted to that - recipient under the terms of the License. You may not sublicense the - Work. You must keep intact all notices that refer to this License and - to the disclaimer of warranties with every copy of the Work You - Distribute or Publicly Perform. When You Distribute or Publicly - Perform the Work, You may not impose any effective technological - measures on the Work that restrict the ability of a recipient of the - Work from You to exercise the rights granted to that recipient under - the terms of the License. This Section 4(a) applies to the Work as - incorporated in a Collection, but this does not require the Collection - apart from the Work itself to be made subject to the terms of this - License. If You create a Collection, upon notice from any Licensor You - must, to the extent practicable, remove from the Collection any credit - as required by Section 4(c), as requested. If You create an - Adaptation, upon notice from any Licensor You must, to the extent - practicable, remove from the Adaptation any credit as required by - Section 4(c), as requested. - b. You may Distribute or Publicly Perform an Adaptation only under the - terms of: (i) this License; (ii) a later version of this License with - the same License Elements as this License; (iii) a Creative Commons - jurisdiction license (either this or a later license version) that - contains the same License Elements as this License (e.g., - Attribution-ShareAlike 3.0 US)); (iv) a Creative Commons Compatible - License. If you license the Adaptation under one of the licenses - mentioned in (iv), you must comply with the terms of that license. If - you license the Adaptation under the terms of any of the licenses - mentioned in (i), (ii) or (iii) (the "Applicable License"), you must - comply with the terms of the Applicable License generally and the - following provisions: (I) You must include a copy of, or the URI for, - the Applicable License with every copy of each Adaptation You - Distribute or Publicly Perform; (II) You may not offer or impose any - terms on the Adaptation that restrict the terms of the Applicable - License or the ability of the recipient of the Adaptation to exercise - the rights granted to that recipient under the terms of the Applicable - License; (III) You must keep intact all notices that refer to the - Applicable License and to the disclaimer of warranties with every copy - of the Work as included in the Adaptation You Distribute or Publicly - Perform; (IV) when You Distribute or Publicly Perform the Adaptation, - You may not impose any effective technological measures on the - Adaptation that restrict the ability of a recipient of the Adaptation - from You to exercise the rights granted to that recipient under the - terms of the Applicable License. This Section 4(b) applies to the - Adaptation as incorporated in a Collection, but this does not require - the Collection apart from the Adaptation itself to be made subject to - the terms of the Applicable License. - c. If You Distribute, or Publicly Perform the Work or any Adaptations or - Collections, You must, unless a request has been made pursuant to - Section 4(a), keep intact all copyright notices for the Work and - provide, reasonable to the medium or means You are utilizing: (i) the - name of the Original Author (or pseudonym, if applicable) if supplied, - and/or if the Original Author and/or Licensor designate another party - or parties (e.g., a sponsor institute, publishing entity, journal) for - attribution ("Attribution Parties") in Licensor's copyright notice, - terms of service or by other reasonable means, the name of such party - or parties; (ii) the title of the Work if supplied; (iii) to the - extent reasonably practicable, the URI, if any, that Licensor - specifies to be associated with the Work, unless such URI does not - refer to the copyright notice or licensing information for the Work; - and (iv) , consistent with Ssection 3(b), in the case of an - Adaptation, a credit identifying the use of the Work in the Adaptation - (e.g., "French translation of the Work by Original Author," or - "Screenplay based on original Work by Original Author"). The credit - required by this Section 4(c) may be implemented in any reasonable - manner; provided, however, that in the case of a Adaptation or - Collection, at a minimum such credit will appear, if a credit for all - contributing authors of the Adaptation or Collection appears, then as - part of these credits and in a manner at least as prominent as the - credits for the other contributing authors. For the avoidance of - doubt, You may only use the credit required by this Section for the - purpose of attribution in the manner set out above and, by exercising - Your rights under this License, You may not implicitly or explicitly - assert or imply any connection with, sponsorship or endorsement by the - Original Author, Licensor and/or Attribution Parties, as appropriate, - of You or Your use of the Work, without the separate, express prior - written permission of the Original Author, Licensor and/or Attribution - Parties. - d. Except as otherwise agreed in writing by the Licensor or as may be - otherwise permitted by applicable law, if You Reproduce, Distribute or - Publicly Perform the Work either by itself or as part of any - Adaptations or Collections, You must not distort, mutilate, modify or - take other derogatory action in relation to the Work which would be - prejudicial to the Original Author's honor or reputation. Licensor - agrees that in those jurisdictions (e.g. Japan), in which any exercise - of the right granted in Section 3(b) of this License (the right to - make Adaptations) would be deemed to be a distortion, mutilation, - modification or other derogatory action prejudicial to the Original - Author's honor and reputation, the Licensor will waive or not assert, - as appropriate, this Section, to the fullest extent permitted by the - applicable national law, to enable You to reasonably exercise Your - right under Section 3(b) of this License (right to make Adaptations) - but not otherwise. - . - 5. Representations, Warranties and Disclaimer - . - UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR - OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY - KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, - INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, - FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF - LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, - WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION - OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. - . - 6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE - LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR - ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES - ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS - BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - . - 7. Termination - . - a. This License and the rights granted hereunder will terminate - automatically upon any breach by You of the terms of this License. - Individuals or entities who have received Adaptations or Collections - from You under this License, however, will not have their licenses - terminated provided such individuals or entities remain in full - compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will - survive any termination of this License. - b. Subject to the above terms and conditions, the license granted here is - perpetual (for the duration of the applicable copyright in the Work). - Notwithstanding the above, Licensor reserves the right to release the - Work under different license terms or to stop distributing the Work at - any time; provided, however that any such election will not serve to - withdraw this License (or any other license that has been, or is - required to be, granted under the terms of this License), and this - License will continue in full force and effect unless terminated as - stated above. - . - 8. Miscellaneous - . - a. Each time You Distribute or Publicly Perform the Work or a Collection, - the Licensor offers to the recipient a license to the Work on the same - terms and conditions as the license granted to You under this License. - b. Each time You Distribute or Publicly Perform an Adaptation, Licensor - offers to the recipient a license to the original Work on the same - terms and conditions as the license granted to You under this License. - c. If any provision of this License is invalid or unenforceable under - applicable law, it shall not affect the validity or enforceability of - the remainder of the terms of this License, and without further action - by the parties to this agreement, such provision shall be reformed to - the minimum extent necessary to make such provision valid and - enforceable. - d. No term or provision of this License shall be deemed waived and no - breach consented to unless such waiver or consent shall be in writing - and signed by the party to be charged with such waiver or consent. - e. This License constitutes the entire agreement between the parties with - respect to the Work licensed here. There are no understandings, - agreements or representations with respect to the Work not specified - here. Licensor shall not be bound by any additional provisions that - may appear in any communication from You. This License may not be - modified without the mutual written agreement of the Licensor and You. - f. The rights granted under, and the subject matter referenced, in this - License were drafted utilizing the terminology of the Berne Convention - for the Protection of Literary and Artistic Works (as amended on - September 28, 1979), the Rome Convention of 1961, the WIPO Copyright - Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 - and the Universal Copyright Convention (as revised on July 24, 1971). - These rights and subject matter take effect in the relevant - jurisdiction in which the License terms are sought to be enforced - according to the corresponding provisions of the implementation of - those treaty provisions in the applicable national law. If the - standard suite of rights granted under applicable copyright law - includes additional rights not granted under this License, such - additional rights are deemed to be included in the License; this - License is not intended to restrict the license of any rights under - applicable law. - . - Creative Commons Notice - . - Creative Commons is not a party to this License, and makes no warranty - whatsoever in connection with the Work. Creative Commons will not be - liable to You or any party on any legal theory for any damages - whatsoever, including without limitation any general, special, - incidental or consequential damages arising in connection to this - license. Notwithstanding the foregoing two (2) sentences, if Creative - Commons has expressly identified itself as the Licensor hereunder, it - shall have all rights and obligations of Licensor. - . - Except for the limited purpose of indicating to the public that the - Work is licensed under the CCPL, Creative Commons does not authorize - the use by either party of the trademark "Creative Commons" or any - related trademark or logo of Creative Commons without the prior - written consent of Creative Commons. Any permitted use will be in - compliance with Creative Commons' then-current trademark usage - guidelines, as may be published on its website or otherwise made - available upon request from time to time. For the avoidance of doubt, - this trademark restriction does not form part of the License. - . - Creative Commons may be contacted at https://creativecommons.org/. - -License: CC-BY-SA-4 - Attribution-ShareAlike 4.0 International - . - ======================================================================= - . - Creative Commons Corporation ("Creative Commons") is not a law firm and - does not provide legal services or legal advice. Distribution of - Creative Commons public licenses does not create a lawyer-client or - other relationship. Creative Commons makes its licenses and related - information available on an "as-is" basis. Creative Commons gives no - warranties regarding its licenses, any material licensed under their - terms and conditions, or any related information. Creative Commons - disclaims all liability for damages resulting from their use to the - fullest extent possible. - . - Using Creative Commons Public Licenses - . - Creative Commons public licenses provide a standard set of terms and - conditions that creators and other rights holders may use to share - original works of authorship and other material subject to copyright - and certain other rights specified in the public license below. The - following considerations are for informational purposes only, are not - exhaustive, and do not form part of our licenses. - . - Considerations for licensors: Our public licenses are - intended for use by those authorized to give the public - permission to use material in ways otherwise restricted by - copyright and certain other rights. Our licenses are - irrevocable. Licensors should read and understand the terms - and conditions of the license they choose before applying it. - Licensors should also secure all rights necessary before - applying our licenses so that the public can reuse the - material as expected. Licensors should clearly mark any - material not subject to the license. This includes other CC- - licensed material, or material used under an exception or - limitation to copyright. More considerations for licensors: - wiki.creativecommons.org/Considerations_for_licensors - . - Considerations for the public: By using one of our public - licenses, a licensor grants the public permission to use the - licensed material under specified terms and conditions. If - the licensor's permission is not necessary for any reason--for - example, because of any applicable exception or limitation to - copyright--then that use is not regulated by the license. Our - licenses grant only permissions under copyright and certain - other rights that a licensor has authority to grant. Use of - the licensed material may still be restricted for other - reasons, including because others have copyright or other - rights in the material. A licensor may make special requests, - such as asking that all changes be marked or described. - Although not required by our licenses, you are encouraged to - respect those requests where reasonable. More considerations - for the public: - wiki.creativecommons.org/Considerations_for_licensees - . - ======================================================================= - . - Creative Commons Attribution-ShareAlike 4.0 International Public - License - . - By exercising the Licensed Rights (defined below), You accept and agree - to be bound by the terms and conditions of this Creative Commons - Attribution-ShareAlike 4.0 International Public License ("Public - License"). To the extent this Public License may be interpreted as a - contract, You are granted the Licensed Rights in consideration of Your - acceptance of these terms and conditions, and the Licensor grants You - such rights in consideration of benefits the Licensor receives from - making the Licensed Material available under these terms and - conditions. - . - . - Section 1 -- Definitions. - . - a. Adapted Material means material subject to Copyright and Similar - Rights that is derived from or based upon the Licensed Material - and in which the Licensed Material is translated, altered, - arranged, transformed, or otherwise modified in a manner requiring - permission under the Copyright and Similar Rights held by the - Licensor. For purposes of this Public License, where the Licensed - Material is a musical work, performance, or sound recording, - Adapted Material is always produced where the Licensed Material is - synched in timed relation with a moving image. - . - b. Adapter's License means the license You apply to Your Copyright - and Similar Rights in Your contributions to Adapted Material in - accordance with the terms and conditions of this Public License. - . - c. BY-SA Compatible License means a license listed at - creativecommons.org/compatiblelicenses, approved by Creative - Commons as essentially the equivalent of this Public License. - . - d. Copyright and Similar Rights means copyright and/or similar rights - closely related to copyright including, without limitation, - performance, broadcast, sound recording, and Sui Generis Database - Rights, without regard to how the rights are labeled or - categorized. For purposes of this Public License, the rights - specified in Section 2(b)(1)-(2) are not Copyright and Similar - Rights. - . - e. Effective Technological Measures means those measures that, in the - absence of proper authority, may not be circumvented under laws - fulfilling obligations under Article 11 of the WIPO Copyright - Treaty adopted on December 20, 1996, and/or similar international - agreements. - . - f. Exceptions and Limitations means fair use, fair dealing, and/or - any other exception or limitation to Copyright and Similar Rights - that applies to Your use of the Licensed Material. - . - g. License Elements means the license attributes listed in the name - of a Creative Commons Public License. The License Elements of this - Public License are Attribution and ShareAlike. - . - h. Licensed Material means the artistic or literary work, database, - or other material to which the Licensor applied this Public - License. - . - i. Licensed Rights means the rights granted to You subject to the - terms and conditions of this Public License, which are limited to - all Copyright and Similar Rights that apply to Your use of the - Licensed Material and that the Licensor has authority to license. - . - j. Licensor means the individual(s) or entity(ies) granting rights - under this Public License. - . - k. Share means to provide material to the public by any means or - process that requires permission under the Licensed Rights, such - as reproduction, public display, public performance, distribution, - dissemination, communication, or importation, and to make material - available to the public including in ways that members of the - public may access the material from a place and at a time - individually chosen by them. - . - l. Sui Generis Database Rights means rights other than copyright - resulting from Directive 96/9/EC of the European Parliament and of - the Council of 11 March 1996 on the legal protection of databases, - as amended and/or succeeded, as well as other essentially - equivalent rights anywhere in the world. - . - m. You means the individual or entity exercising the Licensed Rights - under this Public License. Your has a corresponding meaning. - . - . - Section 2 -- Scope. - . - a. License grant. - . - 1. Subject to the terms and conditions of this Public License, - the Licensor hereby grants You a worldwide, royalty-free, - non-sublicensable, non-exclusive, irrevocable license to - exercise the Licensed Rights in the Licensed Material to: - . - a. reproduce and Share the Licensed Material, in whole or - in part; and - . - b. produce, reproduce, and Share Adapted Material. - . - 2. Exceptions and Limitations. For the avoidance of doubt, where - Exceptions and Limitations apply to Your use, this Public - License does not apply, and You do not need to comply with - its terms and conditions. - . - 3. Term. The term of this Public License is specified in Section - 6(a). - . - 4. Media and formats; technical modifications allowed. The - Licensor authorizes You to exercise the Licensed Rights in - all media and formats whether now known or hereafter created, - and to make technical modifications necessary to do so. The - Licensor waives and/or agrees not to assert any right or - authority to forbid You from making technical modifications - necessary to exercise the Licensed Rights, including - technical modifications necessary to circumvent Effective - Technological Measures. For purposes of this Public License, - simply making modifications authorized by this Section 2(a) - (4) never produces Adapted Material. - . - 5. Downstream recipients. - . - a. Offer from the Licensor -- Licensed Material. Every - recipient of the Licensed Material automatically - receives an offer from the Licensor to exercise the - Licensed Rights under the terms and conditions of this - Public License. - . - b. Additional offer from the Licensor -- Adapted Material. - Every recipient of Adapted Material from You - automatically receives an offer from the Licensor to - exercise the Licensed Rights in the Adapted Material - under the conditions of the Adapter's License You apply. - . - c. No downstream restrictions. You may not offer or impose - any additional or different terms or conditions on, or - apply any Effective Technological Measures to, the - Licensed Material if doing so restricts exercise of the - Licensed Rights by any recipient of the Licensed - Material. - . - 6. No endorsement. Nothing in this Public License constitutes or - may be construed as permission to assert or imply that You - are, or that Your use of the Licensed Material is, connected - with, or sponsored, endorsed, or granted official status by, - the Licensor or others designated to receive attribution as - provided in Section 3(a)(1)(A)(i). - . - b. Other rights. - . - 1. Moral rights, such as the right of integrity, are not - licensed under this Public License, nor are publicity, - privacy, and/or other similar personality rights; however, to - the extent possible, the Licensor waives and/or agrees not to - assert any such rights held by the Licensor to the limited - extent necessary to allow You to exercise the Licensed - Rights, but not otherwise. - . - 2. Patent and trademark rights are not licensed under this - Public License. - . - 3. To the extent possible, the Licensor waives any right to - collect royalties from You for the exercise of the Licensed - Rights, whether directly or through a collecting society - under any voluntary or waivable statutory or compulsory - licensing scheme. In all other cases the Licensor expressly - reserves any right to collect such royalties. - . - . - Section 3 -- License Conditions. - . - Your exercise of the Licensed Rights is expressly made subject to the - following conditions. - . - a. Attribution. - . - 1. If You Share the Licensed Material (including in modified - form), You must: - . - a. retain the following if it is supplied by the Licensor - with the Licensed Material: - . - i. identification of the creator(s) of the Licensed - Material and any others designated to receive - attribution, in any reasonable manner requested by - the Licensor (including by pseudonym if - designated); - . - ii. a copyright notice; - . - iii. a notice that refers to this Public License; - . - iv. a notice that refers to the disclaimer of - warranties; - . - v. a URI or hyperlink to the Licensed Material to the - extent reasonably practicable; - . - b. indicate if You modified the Licensed Material and - retain an indication of any previous modifications; and - . - c. indicate the Licensed Material is licensed under this - Public License, and include the text of, or the URI or - hyperlink to, this Public License. - . - 2. You may satisfy the conditions in Section 3(a)(1) in any - reasonable manner based on the medium, means, and context in - which You Share the Licensed Material. For example, it may be - reasonable to satisfy the conditions by providing a URI or - hyperlink to a resource that includes the required - information. - . - 3. If requested by the Licensor, You must remove any of the - information required by Section 3(a)(1)(A) to the extent - reasonably practicable. - . - b. ShareAlike. - . - In addition to the conditions in Section 3(a), if You Share - Adapted Material You produce, the following conditions also apply. - . - 1. The Adapter's License You apply must be a Creative Commons - license with the same License Elements, this version or - later, or a BY-SA Compatible License. - . - 2. You must include the text of, or the URI or hyperlink to, the - Adapter's License You apply. You may satisfy this condition - in any reasonable manner based on the medium, means, and - context in which You Share Adapted Material. - . - 3. You may not offer or impose any additional or different terms - or conditions on, or apply any Effective Technological - Measures to, Adapted Material that restrict exercise of the - rights granted under the Adapter's License You apply. - . - . - Section 4 -- Sui Generis Database Rights. - . - Where the Licensed Rights include Sui Generis Database Rights that - apply to Your use of the Licensed Material: - . - a. for the avoidance of doubt, Section 2(a)(1) grants You the right - to extract, reuse, reproduce, and Share all or a substantial - portion of the contents of the database; - . - b. if You include all or a substantial portion of the database - contents in a database in which You have Sui Generis Database - Rights, then the database in which You have Sui Generis Database - Rights (but not its individual contents) is Adapted Material, - . - including for purposes of Section 3(b); and - c. You must comply with the conditions in Section 3(a) if You Share - all or a substantial portion of the contents of the database. - . - For the avoidance of doubt, this Section 4 supplements and does not - replace Your obligations under this Public License where the Licensed - Rights include other Copyright and Similar Rights. - . - . - Section 5 -- Disclaimer of Warranties and Limitation of Liability. - . - a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE - EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS - AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF - ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, - IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, - WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR - PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, - ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT - KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT - ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. - . - b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE - TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, - NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, - INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, - COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR - USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN - ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR - DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR - IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. - . - c. The disclaimer of warranties and limitation of liability provided - above shall be interpreted in a manner that, to the extent - possible, most closely approximates an absolute disclaimer and - waiver of all liability. - . - . - Section 6 -- Term and Termination. - . - a. This Public License applies for the term of the Copyright and - Similar Rights licensed here. However, if You fail to comply with - this Public License, then Your rights under this Public License - terminate automatically. - . - b. Where Your right to use the Licensed Material has terminated under - Section 6(a), it reinstates: - . - 1. automatically as of the date the violation is cured, provided - it is cured within 30 days of Your discovery of the - violation; or - . - 2. upon express reinstatement by the Licensor. - . - For the avoidance of doubt, this Section 6(b) does not affect any - right the Licensor may have to seek remedies for Your violations - of this Public License. - . - c. For the avoidance of doubt, the Licensor may also offer the - Licensed Material under separate terms or conditions or stop - distributing the Licensed Material at any time; however, doing so - will not terminate this Public License. - . - d. Sections 1, 5, 6, 7, and 8 survive termination of this Public - License. - . - . - Section 7 -- Other Terms and Conditions. - . - a. The Licensor shall not be bound by any additional or different - terms or conditions communicated by You unless expressly agreed. - . - b. Any arrangements, understandings, or agreements regarding the - Licensed Material not stated herein are separate from and - independent of the terms and conditions of this Public License. - . - . - Section 8 -- Interpretation. - . - a. For the avoidance of doubt, this Public License does not, and - shall not be interpreted to, reduce, limit, restrict, or impose - conditions on any use of the Licensed Material that could lawfully - be made without permission under this Public License. - . - b. To the extent possible, if any provision of this Public License is - deemed unenforceable, it shall be automatically reformed to the - minimum extent necessary to make it enforceable. If the provision - cannot be reformed, it shall be severed from this Public License - without affecting the enforceability of the remaining terms and - conditions. - . - c. No term or condition of this Public License will be waived and no - failure to comply consented to unless expressly agreed to by the - Licensor. - . - d. Nothing in this Public License constitutes or may be interpreted - as a limitation upon, or waiver of, any privileges and immunities - that apply to the Licensor or You, including from the legal - processes of any jurisdiction or authority. - . - . - ======================================================================= - . - Creative Commons is not a party to its public - licenses. Notwithstanding, Creative Commons may elect to apply one of - its public licenses to material it publishes and in those instances - will be considered the “Licensor.” The text of the Creative Commons - public licenses is dedicated to the public domain under the CC0 Public - Domain Dedication. Except for the limited purpose of indicating that - material is shared under a Creative Commons public license or as - otherwise permitted by the Creative Commons policies published at - creativecommons.org/policies, Creative Commons does not authorize the - use of the trademark "Creative Commons" or any other trademark or logo - of Creative Commons without its prior written consent including, - without limitation, in connection with any unauthorized modifications - to any of its public licenses or any other arrangements, - understandings, or agreements concerning use of licensed material. For - the avoidance of doubt, this paragraph does not form part of the - public licenses. - . - Creative Commons may be contacted at creativecommons.org. - -License: Expat - Permission is hereby granted, free of charge, to any person obtaining - a copy of this software and associated documentation files (the - "Software"), to deal in the Software without restriction, including - without limitation the rights to use, copy, modify, merge, publish, - distribute, sublicense, and/or sell copies of the Software, and to - permit persons to whom the Software is furnished to do so, subject to - the following conditions: - . - The above copyright notice and this permission notice shall be included - in all copies or substantial portions of the Software. - . - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE - SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -License: GPL-2+ - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - . - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - . - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - . - On Debian systems, the complete text of the GNU General Public License - can be found in `/usr/share/common-licenses/GPL-2'. - -License: LGPL-2+ - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - . - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - . - You should have received a copy of the GNU Library General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - . - On Debian systems, the complete text of the GNU Library General Public License - can be found in `/usr/share/common-licenses/LGPL-2'. - -License: LGPL-2.1+ - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - . - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - . - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - . - On Debian systems, the complete text of the GNU Lesser General Public License - can be found in `/usr/share/common-licenses/LGPL-2.1'. - -License: WOL - Permission to use, copy, modify, distribute and sell this software and its - documentation for any purpose is hereby granted without fee, provided that - the above copyright notice and this license appear in all source copies. - THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY OF - ANY KIND. See https://www.dspguru.com/wol.htm for more information. - -License: non-free - This license does not comply with Debian Free Software Guidelines. diff --git a/debian/gbp.conf b/debian/gbp.conf deleted file mode 100644 index cec628c7444..00000000000 --- a/debian/gbp.conf +++ /dev/null @@ -1,2 +0,0 @@ -[DEFAULT] -pristine-tar = True diff --git a/debian/lmms-bin.install b/debian/lmms-bin.install deleted file mode 100644 index 229fa02e315..00000000000 --- a/debian/lmms-bin.install +++ /dev/null @@ -1,4 +0,0 @@ -usr/bin/lmms -usr/lib/*/lmms/ladspa/* -usr/lib/*/lmms/lib* -usr/lib/*/lmms/RemoteZynAddSubFx diff --git a/debian/lmms-bin.lintian-overrides b/debian/lmms-bin.lintian-overrides deleted file mode 100644 index 45e07c39d30..00000000000 --- a/debian/lmms-bin.lintian-overrides +++ /dev/null @@ -1,9 +0,0 @@ -lmms: pkg-has-shlibs-control-file-but-no-actual-shared-libs -lmms: postinst-has-useless-call-to-ldconfig -lmms: postrm-has-useless-call-to-ldconfig - -# env is used to set the environment, then lmms is called. -lmms: desktop-command-not-in-package usr/share/applications/lmms.desktop env - -# Icon is in lmms-common. -lmms: menu-icon-missing usr/share/pixmaps/lmms.xpm diff --git a/debian/lmms-common.docs b/debian/lmms-common.docs deleted file mode 100644 index a7b624a0a7a..00000000000 --- a/debian/lmms-common.docs +++ /dev/null @@ -1 +0,0 @@ -plugins/LadspaEffect/caps/caps.html diff --git a/debian/lmms-common.install b/debian/lmms-common.install deleted file mode 100644 index 467ee8798d3..00000000000 --- a/debian/lmms-common.install +++ /dev/null @@ -1,25 +0,0 @@ -usr/share/applications -usr/share/bash-completion -usr/share/icons -usr/share/lmms/[a-o]* -usr/share/lmms/presets/[A-Y]* -usr/share/lmms/projects/demos/Alf42red-* -usr/share/lmms/projects/demos/CapDan -usr/share/lmms/projects/demos/EsoXLB-* -usr/share/lmms/projects/demos/Impulslogik-* -usr/share/lmms/projects/demos/Jousboxx-* -usr/share/lmms/projects/demos/Momo64-* -usr/share/lmms/projects/demos/Oglsdl-* -usr/share/lmms/projects/demos/Settel-* -usr/share/lmms/projects/demos/Socceroos-* -usr/share/lmms/projects/demos/TameAnderson-* -usr/share/lmms/projects/demos/Thomasso-* -usr/share/lmms/projects/shorties/Crunk* -usr/share/lmms/projects/shorties/Greshz-* -usr/share/lmms/projects/shorties/Surrender-* -usr/share/lmms/projects/templates -usr/share/lmms/projects/tutorials -usr/share/lmms/[q-z]* -usr/share/man -usr/share/mime -debian/lmms.xpm usr/share/pixmaps/ diff --git a/debian/lmms-common.links b/debian/lmms-common.links deleted file mode 100644 index 75596233c53..00000000000 --- a/debian/lmms-common.links +++ /dev/null @@ -1 +0,0 @@ -usr/share/zynaddsubfx/banks usr/share/lmms/presets/ZynAddSubFX diff --git a/debian/lmms-common.maintscript b/debian/lmms-common.maintscript deleted file mode 100644 index 15d67355689..00000000000 --- a/debian/lmms-common.maintscript +++ /dev/null @@ -1 +0,0 @@ -dir_to_symlink /usr/share/lmms/presets/ZynAddSubFX ../../zynaddsubfx/banks 1.1.3-2~ diff --git a/debian/lmms-vst-server.install b/debian/lmms-vst-server.install deleted file mode 100644 index 60efaed7b08..00000000000 --- a/debian/lmms-vst-server.install +++ /dev/null @@ -1 +0,0 @@ -usr/lib/*/lmms/{32/,}RemoteVstPlugin* diff --git a/debian/lmms.xpm b/debian/lmms.xpm deleted file mode 100644 index 425e3156db3..00000000000 --- a/debian/lmms.xpm +++ /dev/null @@ -1,103 +0,0 @@ -/* XPM */ -static char * lmms_xpm[] = { -"24 24 76 1", -" c None", -". c #208B4D", -"+ c #208C4D", -"@ c #229452", -"# c #239654", -"$ c #239754", -"% c #299557", -"& c #2A9658", -"* c #239B56", -"= c #249B56", -"- c #249C57", -"; c #249D57", -"> c #259E58", -", c #259F59", -"' c #25A059", -") c #25A15A", -"! c #25A25A", -"~ c #25A35A", -"{ c #26A35B", -"] c #26A45B", -"^ c #26A55C", -"/ c #26A65C", -"( c #26A65D", -"_ c #3E9E67", -": c #26A75D", -"< c #28A75E", -"[ c #28A75F", -"} c #27A85E", -"| c #27A95E", -"1 c #27AA5F", -"2 c #27AB5F", -"3 c #29AC60", -"4 c #2AAC61", -"5 c #2FAC64", -"6 c #54A275", -"7 c #33AE67", -"8 c #56A477", -"9 c #2AB365", -"0 c #5BA67B", -"a c #3CB36F", -"b c #41B572", -"c c #64B285", -"d c #50BA7D", -"e c #58B881", -"f c #5CBA84", -"g c #56BC82", -"h c #5FBB86", -"i c #34D07B", -"j c #34D17A", -"k c #34D17B", -"l c #68C28F", -"m c #77C899", -"n c #7DCD9F", -"o c #90C7A8", -"p c #8CD2AA", -"q c #9AD7B4", -"r c #A9DDBF", -"s c #B0E0C5", -"t c #BDDDCB", -"u c #C3DFCF", -"v c #BFE6CF", -"w c #CBE3D5", -"x c #C5E6D3", -"y c #CDE9D9", -"z c #D1EDDD", -"A c #D7EFE2", -"B c #E1F0E8", -"C c #E6F5EC", -"D c #EAF6EF", -"E c #F3FAF6", -"F c #F7FBF9", -"G c #F8FBFA", -"H c #F6FCF9", -"I c #FCFEFD", -"J c #FDFEFE", -"K c #FFFFFF", -" ", -" kiiiiiiiiiiiiiiiiiij ", -" j92222222222222222229i ", -" i22222222222222222222i ", -" i22222222asvb22222222i ", -" i2222223nEKKHp4222222i ", -" i11111dzKKKKKKAg11111i ", -" i|||5qIKKBccBKKJr7|||i ", -" i}}lCKKFo%))&oGKKDm}}i ", -" i::KKKt_*(::(*_tKKK::i ", -" i//KKK@~//////~@KKK//i ", -" i^^KKK^^^^^^^^^^KKK^^i ", -" i]]KKK]]]]]]]]]]KKK]]i ", -" i{{KKKf{{{{{{{{fKKK{{i ", -" i!!KKKKyh!!!!exKKKK!!i ", -" i))KKKKKK))))KKKKKK))i ", -" i''KKKKKK''''KKKKKK''i ", -" i,,KKKKKK,,,,KKKKKK,,i ", -" i>>6uKKw0>>>>6uKKw0>>i ", -" i;;$+88.$;;;;$+88.$;;i ", -" i----##--------##----i ", -" j<==================[i ", -" jiiiiiiiiiiiiiiiiiii ", -" "}; diff --git a/debian/patches/build-amd64-20181013.patch b/debian/patches/build-amd64-20181013.patch deleted file mode 100644 index a9bb61da4d4..00000000000 --- a/debian/patches/build-amd64-20181013.patch +++ /dev/null @@ -1,46 +0,0 @@ -Description: Fix build as of 2018-10-13 - Fix build errors, possibly introduced with GCC 8. -Author: Javier Serrano Polo -Bug-Debian: https://bugs.debian.org/897806 - -Index: lmms-1.1.3/plugins/LadspaEffect/caps/dsp/FPTruncateMode.h -=================================================================== ---- lmms-1.1.3.orig/plugins/LadspaEffect/caps/dsp/FPTruncateMode.h -+++ lmms-1.1.3/plugins/LadspaEffect/caps/dsp/FPTruncateMode.h -@@ -40,9 +40,11 @@ class FPTruncateMode - - FPTruncateMode() - { -+#ifdef __i386__ - fstcw (cw0); - cw1 = cw0 | 0xC00; - fldcw (cw1); -+#endif - } - - ~FPTruncateMode() -Index: lmms-1.1.3/plugins/ZynAddSubFx/zynaddsubfx/src/Synth/OscilGen.cpp -=================================================================== ---- lmms-1.1.3.orig/plugins/ZynAddSubFx/zynaddsubfx/src/Synth/OscilGen.cpp -+++ lmms-1.1.3/plugins/ZynAddSubFx/zynaddsubfx/src/Synth/OscilGen.cpp -@@ -33,7 +33,8 @@ - //operations on FFTfreqs - inline void clearAll(fft_t *freqs) - { -- memset(freqs, 0, synth->oscilsize / 2 * sizeof(fft_t)); -+ for(int i = 0; i < synth->oscilsize / 2; ++i) -+ freqs[i] = fft_t(0.0f, 0.0f); - } - - inline void clearDC(fft_t *freqs) -@@ -928,8 +929,8 @@ void OscilGen::getspectrum(int n, float - if(what == 0) { - for(int i = 0; i < n; ++i) - outoscilFFTfreqs[i] = fft_t(spc[i], spc[i]); -- memset(outoscilFFTfreqs + n, 0, -- (synth->oscilsize / 2 - n) * sizeof(fft_t)); -+ for(int i = n; i < synth->oscilsize / 2; ++i) -+ outoscilFFTfreqs[i] = fft_t(0.0f, 0.0f); - adaptiveharmonic(outoscilFFTfreqs, 0.0f); - adaptiveharmonicpostprocess(outoscilFFTfreqs, n - 1); - for(int i = 0; i < n; ++i) diff --git a/debian/patches/clang.patch b/debian/patches/clang.patch deleted file mode 100644 index 7bbd15cd8de..00000000000 --- a/debian/patches/clang.patch +++ /dev/null @@ -1,601 +0,0 @@ -Description: Fix build with Clang - Several issues are present: - - Unused private elements. - - Wrong use of delete. - - Unsupported compiler options. - - Shifting negative values. - - Possible truncations. - - Uninitialized variables. - - Unused code. - - Hiding overloaded virtual functions. - - Declarations outside namespace. - - Mismatched class tag. - . - Be careful editing this patch because allegrosmfwr.cpp has CRLF terminators. -Author: Javier Serrano Polo -Bug: https://github.com/LMMS/lmms/issues/3073 - -Index: lmms-1.1.3/include/AutomatableModel.h -=================================================================== ---- lmms-1.1.3.orig/include/AutomatableModel.h 2017-01-03 13:01:47.000000000 +0100 -+++ lmms-1.1.3/include/AutomatableModel.h 2017-01-03 13:11:25.000000000 +0100 -@@ -307,7 +307,6 @@ - - // most objects will need this temporarily (until sampleExact is - // standard) -- float m_oldValue; - int m_setValueDepth; - - AutoModelVector m_linkedModels; -Index: lmms-1.1.3/plugins/LadspaEffect/calf/CMakeLists.txt -=================================================================== ---- lmms-1.1.3.orig/plugins/LadspaEffect/calf/CMakeLists.txt 2017-01-03 16:03:14.000000000 +0100 -+++ lmms-1.1.3/plugins/LadspaEffect/calf/CMakeLists.txt 2017-01-03 16:14:28.000000000 +0100 -@@ -7,11 +7,22 @@ - "${CMAKE_CURRENT_SOURCE_DIR}/src") - INSTALL(TARGETS calf LIBRARY DESTINATION "${PLUGIN_DIR}/ladspa") - SET_TARGET_PROPERTIES(calf PROPERTIES PREFIX "") -+ - SET(INLINE_FLAGS "") --IF("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") --SET(INLINE_FLAGS "-finline-functions-called-once -finline-limit=80") -+ -+INCLUDE(CheckCXXCompilerFlag) -+CHECK_CXX_COMPILER_FLAG(-finline-functions CXX_HAVE_INLINE_FUNCTIONS) -+IF(${CXX_HAVE_INLINE_FUNCTIONS}) -+ SET(INLINE_FLAGS "${INLINE_FLAGS} -finline-functions") - ENDIF() --SET_TARGET_PROPERTIES(calf PROPERTIES COMPILE_FLAGS "-O2 -finline-functions ${INLINE_FLAGS}") -+CHECK_CXX_COMPILER_FLAG(-finline-functions-called-once -+ CXX_HAVE_INLINE_FUNCTIONS_CALLED_ONCE) -+IF(${CXX_HAVE_INLINE_FUNCTIONS_CALLED_ONCE}) -+ SET(INLINE_FLAGS "${INLINE_FLAGS} -finline-functions-called-once \ -+ -finline-limit=80") -+ENDIF() -+ -+SET_TARGET_PROPERTIES(calf PROPERTIES COMPILE_FLAGS "-O2 ${INLINE_FLAGS}") - - IF(LMMS_BUILD_WIN32) - ADD_CUSTOM_COMMAND(TARGET calf POST_BUILD COMMAND "${STRIP}" "\"${CMAKE_CURRENT_BINARY_DIR}/calf.dll\"") -Index: lmms-1.1.3/plugins/LadspaEffect/calf/veal/src/calf/metadata.h -=================================================================== ---- lmms-1.1.3.orig/plugins/LadspaEffect/calf/veal/src/calf/metadata.h 2017-01-03 17:41:17.000000000 +0100 -+++ lmms-1.1.3/plugins/LadspaEffect/calf/veal/src/calf/metadata.h 2017-01-03 17:50:40.000000000 +0100 -@@ -51,7 +51,7 @@ - enum { in_count = 2, out_count = 2, ins_optional = 0, outs_optional = 0, rt_capable = true, require_midi = false, support_midi = false }; - PLUGIN_NAME_ID_LABEL("filter", "filter", "Filter") - /// do not export mode and inertia as CVs, as those are settings and not parameters -- bool is_cv(int param_no) { return param_no != par_mode && param_no != par_inertia; } -+ bool is_cv(int param_no) const { return param_no != par_mode && param_no != par_inertia; } - }; - - /// Filterclavier - metadata -@@ -61,7 +61,7 @@ - enum { in_count = 2, out_count = 2, ins_optional = 0, outs_optional = 0, rt_capable = true, require_midi = true, support_midi = true }; - PLUGIN_NAME_ID_LABEL("filterclavier", "filterclavier", "Filterclavier") - /// do not export mode and inertia as CVs, as those are settings and not parameters -- bool is_cv(int param_no) { return param_no != par_mode && param_no != par_inertia; } -+ bool is_cv(int param_no) const { return param_no != par_mode && param_no != par_inertia; } - }; - - struct reverb_metadata: public plugin_metadata -@@ -499,7 +499,7 @@ - PLUGIN_NAME_ID_LABEL("organ", "organ", "Organ") - - public: -- plugin_command_info *get_commands(); -+ plugin_command_info *get_commands() const; - const char *const *get_configure_vars() const; - }; - -Index: lmms-1.1.3/plugins/LadspaEffect/calf/veal/src/calf/modules.h -=================================================================== ---- lmms-1.1.3.orig/plugins/LadspaEffect/calf/veal/src/calf/modules.h 2017-01-03 19:02:59.000000000 +0100 -+++ lmms-1.1.3/plugins/LadspaEffect/calf/veal/src/calf/modules.h 2017-01-03 19:30:35.000000000 +0100 -@@ -89,13 +89,14 @@ - using audio_module::ins; - using audio_module::outs; - using audio_module::params; -+ using FilterClass::calculate_filter; - - dsp::inertia inertia_cutoff, inertia_resonance, inertia_gain; - dsp::once_per_n timer; - bool is_active; - mutable volatile int last_generation, last_calculated_generation; - -- filter_module_with_inertia(float **ins, float **outs, float **params) -+ filter_module_with_inertia() - : inertia_cutoff(dsp::exponential_ramp(128), 20) - , inertia_resonance(dsp::exponential_ramp(128), 20) - , inertia_gain(dsp::exponential_ramp(128), 1.0) -@@ -193,7 +194,7 @@ - mutable float old_cutoff, old_resonance, old_mode; - public: - filter_audio_module() -- : filter_module_with_inertia(ins, outs, params) -+ : filter_module_with_inertia() - { - last_generation = 0; - old_mode = old_resonance = old_cutoff = -1; -Index: lmms-1.1.3/plugins/LadspaEffect/calf/veal/src/calf/modules_comp.h -=================================================================== ---- lmms-1.1.3.orig/plugins/LadspaEffect/calf/veal/src/calf/modules_comp.h 2017-01-03 19:35:53.000000000 +0100 -+++ lmms-1.1.3/plugins/LadspaEffect/calf/veal/src/calf/modules_comp.h 2017-01-03 19:38:06.000000000 +0100 -@@ -39,10 +39,10 @@ - class gain_reduction_audio_module - { - private: -- float linSlope, detected, kneeSqrt, kneeStart, linKneeStart, kneeStop; -+ float linSlope, detected, kneeStart, linKneeStart, kneeStop; - float compressedKneeStop, adjKneeStart, thres; - float attack, release, threshold, ratio, knee, makeup, detection, stereo_link, bypass, mute, meter_out, meter_comp; -- mutable float old_threshold, old_ratio, old_knee, old_makeup, old_bypass, old_mute, old_detection, old_stereo_link; -+ mutable float old_threshold, old_ratio, old_knee, old_makeup, old_bypass, old_mute, old_detection; - mutable volatile int last_generation; - uint32_t srate; - bool is_active; -@@ -69,7 +69,7 @@ - /// Main gate routine by Damien called by various audio modules - class expander_audio_module { - private: -- float linSlope, peak, detected, kneeSqrt, kneeStart, linKneeStart, kneeStop, linKneeStop; -+ float linSlope, detected, kneeStart, linKneeStart, kneeStop, linKneeStop; - float compressedKneeStop, adjKneeStart, range, thres, attack_coeff, release_coeff; - float attack, release, threshold, ratio, knee, makeup, detection, stereo_link, bypass, mute, meter_out, meter_gate; - mutable float old_threshold, old_ratio, old_knee, old_makeup, old_bypass, old_range, old_trigger, old_mute, old_detection, old_stereo_link; -@@ -142,7 +142,7 @@ - mutable float f1_freq_old, f2_freq_old, f1_level_old, f2_level_old; - mutable float f1_freq_old1, f2_freq_old1, f1_level_old1, f2_level_old1; - CalfScModes sc_mode; -- mutable CalfScModes sc_mode_old, sc_mode_old1; -+ mutable CalfScModes sc_mode_old1; - float f1_active, f2_active; - stereo_in_out_metering meters; - gain_reduction_audio_module compressor; -Index: lmms-1.1.3/plugins/LadspaEffect/calf/veal/src/calf/modules_limit.h -=================================================================== ---- lmms-1.1.3.orig/plugins/LadspaEffect/calf/veal/src/calf/modules_limit.h 2017-01-03 19:39:00.000000000 +0100 -+++ lmms-1.1.3/plugins/LadspaEffect/calf/veal/src/calf/modules_limit.h 2017-01-03 19:40:20.000000000 +0100 -@@ -37,7 +37,6 @@ - private: - typedef limiter_audio_module AM; - uint32_t clip_inL, clip_inR, clip_outL, clip_outR, asc_led; -- int mode, mode_old; - float meter_inL, meter_inR, meter_outL, meter_outR; - dsp::lookahead_limiter limiter; - public: -@@ -73,7 +72,6 @@ - unsigned int overall_buffer_size; - float *buffer; - int channels; -- float striprel[strips]; - float weight[strips]; - float weight_old[strips]; - float limit_old; -Index: lmms-1.1.3/plugins/LadspaEffect/calf/veal/src/calf/modules_mod.h -=================================================================== ---- lmms-1.1.3.orig/plugins/LadspaEffect/calf/veal/src/calf/modules_mod.h 2017-01-03 19:41:55.000000000 +0100 -+++ lmms-1.1.3/plugins/LadspaEffect/calf/veal/src/calf/modules_mod.h 2017-01-03 19:42:19.000000000 +0100 -@@ -160,8 +160,6 @@ - typedef pulsator_audio_module AM; - uint32_t clip_inL, clip_inR, clip_outL, clip_outR; - float meter_inL, meter_inR, meter_outL, meter_outR; -- float offset_old; -- int mode_old; - bool clear_reset; - dsp::simple_lfo lfoL, lfoR; - public: -Index: lmms-1.1.3/plugins/LadspaEffect/calf/veal/src/calf/organ.h -=================================================================== ---- lmms-1.1.3.orig/plugins/LadspaEffect/calf/veal/src/calf/organ.h 2017-01-03 19:43:08.000000000 +0100 -+++ lmms-1.1.3/plugins/LadspaEffect/calf/veal/src/calf/organ.h 2017-01-03 19:53:55.000000000 +0100 -@@ -318,6 +318,7 @@ - using drawbar_organ::note_on; - using drawbar_organ::note_off; - using drawbar_organ::control_change; -+ using drawbar_organ::pitch_bend; - enum { param_count = drawbar_organ::param_count}; - dsp::organ_parameters par_values; - uint32_t srate; -@@ -338,9 +339,9 @@ - void deactivate(); - uint32_t process(uint32_t offset, uint32_t nsamples, uint32_t inputs_mask, uint32_t outputs_mask); - /// No CV inputs for now -- bool is_cv(int param_no) { return false; } -+ bool is_cv(int param_no) const { return false; } - /// Practically all the stuff here is noisy -- bool is_noisy(int param_no) { return true; } -+ bool is_noisy(int param_no) const { return true; } - void execute(int cmd_no); - bool get_graph(int index, int subindex, float *data, int points, cairo_iface *context) const; - char *configure(const char *key, const char *value); -Index: lmms-1.1.3/plugins/LadspaEffect/calf/veal/src/calf/preset.h -=================================================================== ---- lmms-1.1.3.orig/plugins/LadspaEffect/calf/veal/src/calf/preset.h 2017-01-03 19:57:02.000000000 +0100 -+++ lmms-1.1.3/plugins/LadspaEffect/calf/veal/src/calf/preset.h 2017-01-03 20:00:25.000000000 +0100 -@@ -27,7 +27,7 @@ - - namespace calf_plugins { - --class plugin_ctl_iface; -+struct plugin_ctl_iface; - - /// Contents of single preset - struct plugin_preset -Index: lmms-1.1.3/plugins/LadspaEffect/calf/veal/src/calf/primitives.h -=================================================================== ---- lmms-1.1.3.orig/plugins/LadspaEffect/calf/veal/src/calf/primitives.h 2017-01-03 17:36:12.000000000 +0100 -+++ lmms-1.1.3/plugins/LadspaEffect/calf/veal/src/calf/primitives.h 2017-01-03 16:22:16.000000000 +0100 -@@ -370,11 +370,6 @@ - next_task = (unsigned)-1; - eob = false; - } -- inline bool is_next_tick() { -- if (time < next_task) -- return true; -- do_tasks(); -- } - inline void next_tick() { - time++; - } -@@ -382,14 +377,6 @@ - timeline.insert(std::pair(time+pos, t)); - next_task = timeline.begin()->first; - } -- void do_tasks() { -- std::multimap::iterator i = timeline.begin(); -- while(i != timeline.end() && i->first == time) { -- i->second->execute(this); -- i->second->dispose(); -- timeline.erase(i); -- } -- } - bool is_eob() { - return eob; - } -Index: lmms-1.1.3/plugins/LadspaEffect/calf/veal/src/metadata.cpp -=================================================================== ---- lmms-1.1.3.orig/plugins/LadspaEffect/calf/veal/src/metadata.cpp 2017-01-03 17:52:03.000000000 +0100 -+++ lmms-1.1.3/plugins/LadspaEffect/calf/veal/src/metadata.cpp 2017-01-03 18:49:18.000000000 +0100 -@@ -29,6 +29,8 @@ - - const char *calf_plugins::calf_copyright_info = "(C) 2001-2009 Krzysztof Foltman, Thor Harald Johanssen, Markus Schmidt and others; license: LGPL"; - -+namespace calf_plugins { -+ - //////////////////////////////////////////////////////////////////////////// - - CALF_PORT_NAMES(flanger) = {"In L", "In R", "Out L", "Out R"}; -@@ -1105,7 +1107,7 @@ - - CALF_PLUGIN_INFO(organ) = { 0x8481, "Organ", "Calf Organ", "Krzysztof Foltman", calf_plugins::calf_copyright_info, "SynthesizerPlugin" }; - --plugin_command_info *organ_metadata::get_commands() -+plugin_command_info *organ_metadata::get_commands() const - { - static plugin_command_info cmds[] = { - { "cmd_panic", "Panic!", "Stop all sounds and reset all controllers" }, -@@ -1439,6 +1441,8 @@ - - //////////////////////////////////////////////////////////////////////////// - -+}; // namespace calf_plugins -+ - calf_plugins::plugin_registry::plugin_registry() - { - #define PER_MODULE_ITEM(name, isSynth, jackname) plugins.push_back((new name##_metadata)); -Index: lmms-1.1.3/plugins/LadspaEffect/calf/veal/src/modules.cpp -=================================================================== ---- lmms-1.1.3.orig/plugins/LadspaEffect/calf/veal/src/modules.cpp 2017-01-03 19:32:38.000000000 +0100 -+++ lmms-1.1.3/plugins/LadspaEffect/calf/veal/src/modules.cpp 2017-01-03 19:33:13.000000000 +0100 -@@ -339,7 +339,7 @@ - /////////////////////////////////////////////////////////////////////////////////////////////// - - filterclavier_audio_module::filterclavier_audio_module() --: filter_module_with_inertia(ins, outs, params) -+: filter_module_with_inertia() - , min_gain(1.0) - , max_gain(32.0) - , last_note(-1) -Index: lmms-1.1.3/plugins/LadspaEffect/swh/ladspa/flanger_1191.c -=================================================================== ---- lmms-1.1.3.orig/plugins/LadspaEffect/swh/ladspa/flanger_1191.c 2017-01-03 15:44:13.000000000 +0100 -+++ lmms-1.1.3/plugins/LadspaEffect/swh/ladspa/flanger_1191.c 2017-01-03 15:45:17.000000000 +0100 -@@ -266,7 +266,7 @@ - - // Calculate position in delay table - d_base = LIN_INTERP(frac, old_d_base, new_d_base); -- n_ph = (float)(law_p - abs(next_law_pos - count))/(float)law_p; -+ n_ph = (float)(law_p - labs(next_law_pos - count))/(float)law_p; - p_ph = n_ph + 0.5f; - while (p_ph > 1.0f) { - p_ph -= 1.0f; -@@ -392,7 +392,7 @@ - - // Calculate position in delay table - d_base = LIN_INTERP(frac, old_d_base, new_d_base); -- n_ph = (float)(law_p - abs(next_law_pos - count))/(float)law_p; -+ n_ph = (float)(law_p - labs(next_law_pos - count))/(float)law_p; - p_ph = n_ph + 0.5f; - while (p_ph > 1.0f) { - p_ph -= 1.0f; -Index: lmms-1.1.3/plugins/LadspaEffect/swh/ladspa/gsm/short_term.c -=================================================================== ---- lmms-1.1.3.orig/plugins/LadspaEffect/swh/ladspa/gsm/short_term.c 2017-01-03 15:35:13.000000000 +0100 -+++ lmms-1.1.3/plugins/LadspaEffect/swh/ladspa/gsm/short_term.c 2017-01-03 15:35:55.000000000 +0100 -@@ -53,7 +53,7 @@ - #undef STEP - #define STEP( B, MIC, INVA ) \ - temp1 = GSM_ADD( *LARc++, MIC ) << 10; \ -- temp1 = GSM_SUB( temp1, B << 1 ); \ -+ temp1 = GSM_SUB( temp1, B * 2 ); \ - temp1 = GSM_MULT_R( INVA, temp1 ); \ - *LARpp++ = GSM_ADD( temp1, temp1 ); - -Index: lmms-1.1.3/plugins/LadspaEffect/swh/ladspa/multivoice_chorus_1201.c -=================================================================== ---- lmms-1.1.3.orig/plugins/LadspaEffect/swh/ladspa/multivoice_chorus_1201.c 2017-01-03 15:47:51.000000000 +0100 -+++ lmms-1.1.3/plugins/LadspaEffect/swh/ladspa/multivoice_chorus_1201.c 2017-01-03 15:48:18.000000000 +0100 -@@ -345,7 +345,7 @@ - if (count % 16 < laws) { - unsigned int t = count % 16; - // Calculate sinus phases -- float n_ph = (float)(law_p - abs(next_peak_pos[t] - count))/law_p; -+ float n_ph = (float)(law_p - labs(next_peak_pos[t] - count))/law_p; - float p_ph = n_ph + 0.5f; - if (p_ph > 1.0f) { - p_ph -= 1.0f; -@@ -488,7 +488,7 @@ - if (count % 16 < laws) { - unsigned int t = count % 16; - // Calculate sinus phases -- float n_ph = (float)(law_p - abs(next_peak_pos[t] - count))/law_p; -+ float n_ph = (float)(law_p - labs(next_peak_pos[t] - count))/law_p; - float p_ph = n_ph + 0.5f; - if (p_ph > 1.0f) { - p_ph -= 1.0f; -Index: lmms-1.1.3/plugins/LadspaEffect/swh/ladspa/retro_flange_1208.c -=================================================================== ---- lmms-1.1.3.orig/plugins/LadspaEffect/swh/ladspa/retro_flange_1208.c 2017-01-03 15:46:35.000000000 +0100 -+++ lmms-1.1.3/plugins/LadspaEffect/swh/ladspa/retro_flange_1208.c 2017-01-03 15:47:02.000000000 +0100 -@@ -321,7 +321,7 @@ - prev_law_pos = count + law_p; - } - -- n_ph = (float)(law_p - abs(next_law_pos - count))/(float)law_p; -+ n_ph = (float)(law_p - labs(next_law_pos - count))/(float)law_p; - p_ph = n_ph + 0.5f; - if (p_ph > 1.0f) { - p_ph -= 1.0f; -@@ -446,7 +446,7 @@ - prev_law_pos = count + law_p; - } - -- n_ph = (float)(law_p - abs(next_law_pos - count))/(float)law_p; -+ n_ph = (float)(law_p - labs(next_law_pos - count))/(float)law_p; - p_ph = n_ph + 0.5f; - if (p_ph > 1.0f) { - p_ph -= 1.0f; -Index: lmms-1.1.3/plugins/LadspaEffect/swh/ladspa/vynil_1905.c -=================================================================== ---- lmms-1.1.3.orig/plugins/LadspaEffect/swh/ladspa/vynil_1905.c 2017-01-03 15:51:56.000000000 +0100 -+++ lmms-1.1.3/plugins/LadspaEffect/swh/ladspa/vynil_1905.c 2017-01-03 16:01:32.000000000 +0100 -@@ -243,6 +243,8 @@ - buffer_s = malloc(sizeof(LADSPA_Data) * buffer_size); - buffer_mask = buffer_size - 1; - buffer_pos = 0; -+ click_buffer_omega.all = 0; -+ click_buffer_pos.all = 0; - click_gain = 0; - phi = 0.0f; /* Angular phase */ - -Index: lmms-1.1.3/plugins/LadspaEffect/tap/CMakeLists.txt -=================================================================== ---- lmms-1.1.3.orig/plugins/LadspaEffect/tap/CMakeLists.txt 2017-01-03 13:52:28.000000000 +0100 -+++ lmms-1.1.3/plugins/LadspaEffect/tap/CMakeLists.txt 2017-01-03 15:12:14.000000000 +0100 -@@ -1,7 +1,15 @@ - INCLUDE_DIRECTORIES("${CMAKE_SOURCE_DIR}/include") - FILE(GLOB PLUGIN_SOURCES *.c) - LIST(SORT PLUGIN_SOURCES) --SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O3 -Wno-write-strings -fomit-frame-pointer -fno-strict-aliasing -fstrength-reduce -funroll-loops -ffast-math") -+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O3 -Wno-write-strings \ -+ -fomit-frame-pointer -fno-strict-aliasing -funroll-loops -ffast-math") -+ -+INCLUDE(CheckCCompilerFlag) -+CHECK_C_COMPILER_FLAG(-fstrength-reduce C_HAVE_STRENGTH_REDUCE) -+IF(${C_HAVE_STRENGTH_REDUCE}) -+ SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fstrength-reduce") -+ENDIF() -+ - FOREACH(_item ${PLUGIN_SOURCES}) - GET_FILENAME_COMPONENT(_plugin "${_item}" NAME_WE) - ADD_LIBRARY("${_plugin}" MODULE "${_item}") -Index: lmms-1.1.3/plugins/MidiImport/portsmf/allegro.h -=================================================================== ---- lmms-1.1.3.orig/plugins/MidiImport/portsmf/allegro.h 2017-01-03 20:02:37.000000000 +0100 -+++ lmms-1.1.3/plugins/MidiImport/portsmf/allegro.h 2017-01-03 20:06:48.000000000 +0100 -@@ -842,6 +842,8 @@ - Alg_event_ptr write_track_name(std::ostream &file, int n, - Alg_events &events); - public: -+ using Alg_track::paste; -+ - int channel_offset_per_track; // used to encode track_num into channel - Alg_tracks track_list; // array of Alg_events - Alg_time_sigs time_sig; -Index: lmms-1.1.3/plugins/MidiImport/portsmf/allegrosmfwr.cpp -=================================================================== ---- lmms-1.1.3.orig/plugins/MidiImport/portsmf/allegrosmfwr.cpp 2017-01-03 20:07:50.000000000 +0100 -+++ lmms-1.1.3/plugins/MidiImport/portsmf/allegrosmfwr.cpp 2017-01-03 20:08:34.000000000 +0100 -@@ -57,13 +57,11 @@ - - Alg_seq_ptr seq; - -- int num_tracks; // number of tracks not counting tempo track - int division; // divisions per quarter note, default = 120 - int initial_tempo; - - int timesig_num; // numerator of time signature - int timesig_den; // denominator of time signature -- double timesig_when; // time of time signature - - int keysig; // number of sharps (+) or flats (-), -99 for undefined - char keysig_mode; // 'M' or 'm' for major/minor -Index: lmms-1.1.3/plugins/Delay/StereoDelay.cpp -=================================================================== ---- lmms-1.1.3.orig/plugins/Delay/StereoDelay.cpp 2017-01-03 13:40:27.000000000 +0100 -+++ lmms-1.1.3/plugins/Delay/StereoDelay.cpp 2017-01-03 13:42:16.000000000 +0100 -@@ -48,7 +48,7 @@ - { - if( m_buffer ) - { -- delete m_buffer; -+ delete[] m_buffer; - } - } - -@@ -84,7 +84,7 @@ - { - if( m_buffer ) - { -- delete m_buffer; -+ delete[] m_buffer; - } - - int bufferSize = ( int )( sampleRate * m_maxTime ); -Index: lmms-1.1.3/plugins/OpulenZ/adplug/src/fmopl.c -=================================================================== ---- lmms-1.1.3.orig/plugins/OpulenZ/adplug/src/fmopl.c 2017-01-03 20:11:03.000000000 +0100 -+++ lmms-1.1.3/plugins/OpulenZ/adplug/src/fmopl.c 2017-01-03 20:22:23.000000000 +0100 -@@ -70,7 +70,7 @@ - /* final output shift , limit minimum and maximum */ - #define OPL_OUTSB (TL_BITS+3-16) /* OPL output final shift 16bit */ - #define OPL_MAXOUT (0x7fff<nextBuffer(); + const SampleFrame* b = audioEngine()->nextBuffer(); if( !b ) { break; @@ -104,7 +104,7 @@ class AudioDummy : public QThread, public AudioDevice delete[] b; } - const int microseconds = static_cast( audioEngine()->framesPerPeriod() * 1000000.0f / audioEngine()->processingSampleRate() - timer.elapsed() ); + const int microseconds = static_cast( audioEngine()->framesPerPeriod() * 1000000.0f / audioEngine()->outputSampleRate() - timer.elapsed() ); if( microseconds > 0 ) { usleep( microseconds ); diff --git a/include/AudioEngine.h b/include/AudioEngine.h index 67c2edd867a..b22830221d9 100644 --- a/include/AudioEngine.h +++ b/include/AudioEngine.h @@ -25,18 +25,17 @@ #ifndef LMMS_AUDIO_ENGINE_H #define LMMS_AUDIO_ENGINE_H -#ifdef __MINGW32__ -#include -#else #include -#endif #include #include +#include #include +#include "AudioDevice.h" #include "lmms_basics.h" +#include "SampleFrame.h" #include "LocklessList.h" #include "FifoBuffer.h" #include "AudioEngineProfiler.h" @@ -52,15 +51,15 @@ class AudioPort; class AudioEngineWorkerThread; -const fpp_t MINIMUM_BUFFER_SIZE = 32; -const fpp_t DEFAULT_BUFFER_SIZE = 256; +constexpr fpp_t MINIMUM_BUFFER_SIZE = 32; +constexpr fpp_t DEFAULT_BUFFER_SIZE = 256; +constexpr fpp_t MAXIMUM_BUFFER_SIZE = 4096; -const int BYTES_PER_SAMPLE = sizeof( sample_t ); -const int BYTES_PER_INT_SAMPLE = sizeof( int_sample_t ); -const int BYTES_PER_FRAME = sizeof( sampleFrame ); -const int BYTES_PER_SURROUND_FRAME = sizeof( surroundSampleFrame ); +constexpr int BYTES_PER_SAMPLE = sizeof(sample_t); +constexpr int BYTES_PER_INT_SAMPLE = sizeof(int_sample_t); +constexpr int BYTES_PER_FRAME = sizeof(SampleFrame); -const float OUTPUT_SAMPLE_MULTIPLIER = 32767.0f; +constexpr float OUTPUT_SAMPLE_MULTIPLIER = 32767.0f; class LMMS_EXPORT AudioEngine : public QObject { @@ -108,13 +107,6 @@ class LMMS_EXPORT AudioEngine : public QObject struct qualitySettings { - enum class Mode - { - Draft, - HighQuality, - FinalMix - } ; - enum class Interpolation { Linear, @@ -123,53 +115,11 @@ class LMMS_EXPORT AudioEngine : public QObject SincBest } ; - enum class Oversampling - { - None, - X2, - X4, - X8 - } ; - Interpolation interpolation; - Oversampling oversampling; - qualitySettings(Mode m) + qualitySettings(Interpolation i) : + interpolation(i) { - switch (m) - { - case Mode::Draft: - interpolation = Interpolation::Linear; - oversampling = Oversampling::None; - break; - case Mode::HighQuality: - interpolation = - Interpolation::SincFastest; - oversampling = Oversampling::X2; - break; - case Mode::FinalMix: - interpolation = Interpolation::SincBest; - oversampling = Oversampling::X8; - break; - } - } - - qualitySettings(Interpolation i, Oversampling o) : - interpolation(i), - oversampling(o) - { - } - - int sampleRateMultiplier() const - { - switch( oversampling ) - { - case Oversampling::None: return 1; - case Oversampling::X2: return 2; - case Oversampling::X4: return 4; - case Oversampling::X8: return 8; - } - return 1; } int libsrcInterpolation() const @@ -286,10 +236,19 @@ class LMMS_EXPORT AudioEngine : public QObject } - sample_rate_t baseSampleRate() const; - sample_rate_t outputSampleRate() const; - sample_rate_t inputSampleRate() const; - sample_rate_t processingSampleRate() const; + sample_rate_t baseSampleRate() const { return m_baseSampleRate; } + + + sample_rate_t outputSampleRate() const + { + return m_audioDev != nullptr ? m_audioDev->sampleRate() : m_baseSampleRate; + } + + + sample_rate_t inputSampleRate() const + { + return m_audioDev != nullptr ? m_audioDev->sampleRate() : m_baseSampleRate; + } inline float masterGain() const @@ -317,15 +276,6 @@ class LMMS_EXPORT AudioEngine : public QObject } - struct StereoSample - { - StereoSample(sample_t _left, sample_t _right) : left(_left), right(_right) {} - sample_t left; - sample_t right; - }; - StereoSample getPeakValues(sampleFrame * ab, const f_cnt_t _frames) const; - - bool criticalXRuns() const; inline bool hasFifoWriter() const @@ -333,9 +283,9 @@ class LMMS_EXPORT AudioEngine : public QObject return m_fifoWriter != nullptr; } - void pushInputFrames( sampleFrame * _ab, const f_cnt_t _frames ); + void pushInputFrames( SampleFrame* _ab, const f_cnt_t _frames ); - inline const sampleFrame * inputBuffer() + inline const SampleFrame* inputBuffer() { return m_inputBuffer[ m_inputBufferRead ]; } @@ -345,16 +295,13 @@ class LMMS_EXPORT AudioEngine : public QObject return m_inputBufferFrames[ m_inputBufferRead ]; } - inline const surroundSampleFrame * nextBuffer() + inline const SampleFrame* nextBuffer() { return hasFifoWriter() ? m_fifo->read() : renderNextBuffer(); } void changeQuality(const struct qualitySettings & qs); - inline bool isMetronomeActive() const { return m_metronomeActive; } - inline void setMetronomeActive(bool value = true) { m_metronomeActive = value; } - //! Block until a change in model can be done (i.e. wait for audio thread) void requestChangeInModel(); void doneChangeInModel(); @@ -371,11 +318,11 @@ class LMMS_EXPORT AudioEngine : public QObject signals: void qualitySettingsChanged(); void sampleRateChanged(); - void nextAudioBuffer( const lmms::surroundSampleFrame * buffer ); + void nextAudioBuffer(const lmms::SampleFrame* buffer); private: - using Fifo = FifoBuffer; + using Fifo = FifoBuffer; class fifoWriter : public QThread { @@ -392,7 +339,7 @@ class LMMS_EXPORT AudioEngine : public QObject void run() override; - void write( surroundSampleFrame * buffer ); + void write(SampleFrame* buffer); } ; @@ -411,12 +358,10 @@ class LMMS_EXPORT AudioEngine : public QObject void renderStageEffects(); void renderStageMix(); - const surroundSampleFrame * renderNextBuffer(); + const SampleFrame* renderNextBuffer(); void swapBuffers(); - void handleMetronome(); - void clearInternal(); bool m_renderOnly; @@ -425,14 +370,15 @@ class LMMS_EXPORT AudioEngine : public QObject fpp_t m_framesPerPeriod; - sampleFrame * m_inputBuffer[2]; + SampleFrame* m_inputBuffer[2]; f_cnt_t m_inputBufferFrames[2]; f_cnt_t m_inputBufferSize[2]; + sample_rate_t m_baseSampleRate; int m_inputBufferRead; int m_inputBufferWrite; - surroundSampleFrame * m_outputBufferRead; - surroundSampleFrame * m_outputBufferWrite; + std::unique_ptr m_outputBufferRead; + std::unique_ptr m_outputBufferWrite; // worker thread stuff std::vector m_workers; @@ -465,11 +411,9 @@ class LMMS_EXPORT AudioEngine : public QObject AudioEngineProfiler m_profiler; - bool m_metronomeActive; - bool m_clearSignal; - std::mutex m_changeMutex; + std::recursive_mutex m_changeMutex; friend class Engine; friend class AudioEngineWorkerThread; diff --git a/include/AudioEngineWorkerThread.h b/include/AudioEngineWorkerThread.h index b76235aa125..60a5ef8104d 100644 --- a/include/AudioEngineWorkerThread.h +++ b/include/AudioEngineWorkerThread.h @@ -71,8 +71,8 @@ class AudioEngineWorkerThread : public QThread private: std::atomic m_items[JOB_QUEUE_SIZE]; - std::atomic_int m_writeIndex; - std::atomic_int m_itemsDone; + std::atomic_size_t m_writeIndex; + std::atomic_size_t m_itemsDone; OperationMode m_opMode; } ; diff --git a/include/AudioFileFlac.h b/include/AudioFileFlac.h index 944e30478c4..003450afa14 100644 --- a/include/AudioFileFlac.h +++ b/include/AudioFileFlac.h @@ -65,9 +65,7 @@ class AudioFileFlac : public AudioFileDevice SF_INFO m_sfinfo; SNDFILE* m_sf; - void writeBuffer(surroundSampleFrame const* _ab, - fpp_t const frames, - float master_gain) override; + void writeBuffer(const SampleFrame* _ab, fpp_t const frames) override; bool startEncoding(); void finishEncoding(); diff --git a/include/AudioFileMP3.h b/include/AudioFileMP3.h index 4289ad211e6..e56ac0ba332 100644 --- a/include/AudioFileMP3.h +++ b/include/AudioFileMP3.h @@ -58,9 +58,7 @@ class AudioFileMP3 : public AudioFileDevice } protected: - void writeBuffer( const surroundSampleFrame * /* _buf*/, - const fpp_t /*_frames*/, - const float /*_master_gain*/ ) override; + void writeBuffer(const SampleFrame* /* _buf*/, const fpp_t /*_frames*/) override; private: void flushRemainingBuffers(); diff --git a/include/AudioFileOgg.h b/include/AudioFileOgg.h index 77be8ca1c1e..2608da359c7 100644 --- a/include/AudioFileOgg.h +++ b/include/AudioFileOgg.h @@ -58,9 +58,7 @@ class AudioFileOgg : public AudioFileDevice private: - void writeBuffer( const surroundSampleFrame * _ab, - const fpp_t _frames, - const float _master_gain ) override; + void writeBuffer(const SampleFrame* _ab, const fpp_t _frames) override; bool startEncoding(); void finishEncoding(); diff --git a/include/AudioFileWave.h b/include/AudioFileWave.h index c186aaaa705..040af95eac9 100644 --- a/include/AudioFileWave.h +++ b/include/AudioFileWave.h @@ -56,9 +56,7 @@ class AudioFileWave : public AudioFileDevice private: - void writeBuffer( const surroundSampleFrame * _ab, - const fpp_t _frames, - float _master_gain ) override; + void writeBuffer(const SampleFrame* _ab, const fpp_t _frames) override; bool startEncoding(); void finishEncoding(); diff --git a/include/AudioJack.h b/include/AudioJack.h index 6efb262ed40..234f6ebf234 100644 --- a/include/AudioJack.h +++ b/include/AudioJack.h @@ -31,7 +31,7 @@ #ifndef LMMS_HAVE_WEAKJACK #include #else -#include "weak_libjack.h" +#include #endif #include @@ -93,7 +93,6 @@ private slots: void startProcessing() override; void stopProcessing() override; - void applyQualitySettings() override; void registerPort(AudioPort* port) override; void unregisterPort(AudioPort* port) override; @@ -112,7 +111,7 @@ private slots: std::atomic m_midiClient; std::vector m_outputPorts; jack_default_audio_sample_t** m_tempOutBufs; - surroundSampleFrame* m_outBuf; + SampleFrame* m_outBuf; f_cnt_t m_framesDoneInCurBuf; f_cnt_t m_framesToDoInCurBuf; diff --git a/include/AudioOss.h b/include/AudioOss.h index 55f64de851e..91d45607344 100644 --- a/include/AudioOss.h +++ b/include/AudioOss.h @@ -79,7 +79,6 @@ class setupWidget : public gui::AudioDeviceSetupWidget private: void startProcessing() override; void stopProcessing() override; - void applyQualitySettings() override; void run() override; int m_audioFD; diff --git a/include/AudioPort.h b/include/AudioPort.h index d9803d205e8..12a0ec7d818 100644 --- a/include/AudioPort.h +++ b/include/AudioPort.h @@ -29,7 +29,6 @@ #include #include -#include "MemoryManager.h" #include "PlayHandle.h" namespace lmms @@ -41,14 +40,13 @@ class BoolModel; class AudioPort : public ThreadableJob { - MM_OPERATORS public: AudioPort( const QString & _name, bool _has_effect_chain = true, FloatModel * volumeModel = nullptr, FloatModel * panningModel = nullptr, BoolModel * mutedModel = nullptr ); virtual ~AudioPort(); - inline sampleFrame * buffer() + inline SampleFrame* buffer() { return m_portBuffer; } @@ -114,7 +112,7 @@ class AudioPort : public ThreadableJob private: volatile bool m_bufferUsage; - sampleFrame * m_portBuffer; + SampleFrame* m_portBuffer; QMutex m_portBufferLock; bool m_extOutputEnabled; diff --git a/include/AudioPortAudio.h b/include/AudioPortAudio.h index 01b8f3fd7e8..fbfa9b60dd6 100644 --- a/include/AudioPortAudio.h +++ b/include/AudioPortAudio.h @@ -84,11 +84,7 @@ class AudioPortAudio : public AudioDevice return QT_TRANSLATE_NOOP( "AudioDeviceSetupWidget", "PortAudio" ); } - - int process_callback( const float *_inputBuffer, - float * _outputBuffer, - unsigned long _framesPerBuffer ); - + int process_callback(const float* _inputBuffer, float* _outputBuffer, f_cnt_t _framesPerBuffer); class setupWidget : public gui::AudioDeviceSetupWidget { @@ -109,7 +105,6 @@ class AudioPortAudio : public AudioDevice private: void startProcessing() override; void stopProcessing() override; - void applyQualitySettings() override; #ifdef PORTAUDIO_V19 static int _process_callback( const void *_inputBuffer, void * _outputBuffer, @@ -151,9 +146,9 @@ class AudioPortAudio : public AudioDevice bool m_wasPAInitError; - surroundSampleFrame * m_outBuf; - int m_outBufPos; - int m_outBufSize; + SampleFrame* m_outBuf; + std::size_t m_outBufPos; + fpp_t m_outBufSize; bool m_stopped; diff --git a/include/AudioPulseAudio.h b/include/AudioPulseAudio.h index b6a99827479..db3c566bf53 100644 --- a/include/AudioPulseAudio.h +++ b/include/AudioPulseAudio.h @@ -88,7 +88,6 @@ class AudioPulseAudio : public QThread, public AudioDevice private: void startProcessing() override; void stopProcessing() override; - void applyQualitySettings() override; void run() override; volatile bool m_quit; diff --git a/include/AudioResampler.h b/include/AudioResampler.h new file mode 100644 index 00000000000..6dd6fcc6039 --- /dev/null +++ b/include/AudioResampler.h @@ -0,0 +1,65 @@ +/* + * AudioResampler.h - wrapper around libsamplerate + * + * Copyright (c) 2023 saker + * + * This file is part of LMMS - https://lmms.io + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#ifndef LMMS_AUDIO_RESAMPLER_H +#define LMMS_AUDIO_RESAMPLER_H + +#include + +#include "lmms_export.h" + +namespace lmms { + +class LMMS_EXPORT AudioResampler +{ +public: + struct ProcessResult + { + int error; + long inputFramesUsed; + long outputFramesGenerated; + }; + + AudioResampler(int interpolationMode, int channels); + AudioResampler(const AudioResampler&) = delete; + AudioResampler(AudioResampler&&) = delete; + ~AudioResampler(); + + AudioResampler& operator=(const AudioResampler&) = delete; + AudioResampler& operator=(AudioResampler&&) = delete; + + auto resample(const float* in, long inputFrames, float* out, long outputFrames, double ratio) -> ProcessResult; + auto interpolationMode() const -> int { return m_interpolationMode; } + auto channels() const -> int { return m_channels; } + void setRatio(double ratio); + +private: + int m_interpolationMode = -1; + int m_channels = 0; + int m_error = 0; + SRC_STATE* m_state = nullptr; +}; +} // namespace lmms + +#endif // LMMS_AUDIO_RESAMPLER_H diff --git a/include/AudioSampleRecorder.h b/include/AudioSampleRecorder.h index 8937ceb5efd..691196be62c 100644 --- a/include/AudioSampleRecorder.h +++ b/include/AudioSampleRecorder.h @@ -28,6 +28,7 @@ #include #include +#include #include "AudioDevice.h" @@ -44,15 +45,12 @@ class AudioSampleRecorder : public AudioDevice ~AudioSampleRecorder() override; f_cnt_t framesRecorded() const; - void createSampleBuffer( SampleBuffer** sampleBuffer ); - + std::shared_ptr createSampleBuffer(); private: - void writeBuffer( const surroundSampleFrame * _ab, - const fpp_t _frames, - const float _master_gain ) override; + void writeBuffer(const SampleFrame* _ab, const fpp_t _frames) override; - using BufferList = QList>; + using BufferList = QList>; BufferList m_buffers; } ; diff --git a/include/AudioSdl.h b/include/AudioSdl.h index 62db8b68ace..651ed96be57 100644 --- a/include/AudioSdl.h +++ b/include/AudioSdl.h @@ -29,17 +29,12 @@ #ifdef LMMS_HAVE_SDL -#ifdef LMMS_HAVE_SDL2 #include -#else -#include -#include -#endif #include "AudioDevice.h" #include "AudioDeviceSetupWidget.h" -class QLineEdit; +class QComboBox; namespace lmms { @@ -64,50 +59,42 @@ class AudioSdl : public AudioDevice ~setupWidget() override = default; void saveSettings() override; + + private: + void populatePlaybackDeviceComboBox(); + void populateInputDeviceComboBox(); private: - QLineEdit * m_device; + QComboBox* m_playbackDeviceComboBox = nullptr; + QComboBox* m_inputDeviceComboBox = nullptr; + static QString s_systemDefaultDevice; } ; private: void startProcessing() override; void stopProcessing() override; - void applyQualitySettings() override; static void sdlAudioCallback( void * _udata, Uint8 * _buf, int _len ); void sdlAudioCallback( Uint8 * _buf, int _len ); -#ifdef LMMS_HAVE_SDL2 static void sdlInputAudioCallback( void * _udata, Uint8 * _buf, int _len ); void sdlInputAudioCallback( Uint8 * _buf, int _len ); -#endif SDL_AudioSpec m_audioHandle; - surroundSampleFrame * m_outBuf; + SampleFrame* m_outBuf; -#ifdef LMMS_HAVE_SDL2 size_t m_currentBufferFramePos; size_t m_currentBufferFramesCount; -#else - Uint8 * m_convertedBuf; - int m_convertedBufPos; - int m_convertedBufSize; - bool m_outConvertEndian; -#endif - bool m_stopped; -#ifdef LMMS_HAVE_SDL2 SDL_AudioDeviceID m_outputDevice; SDL_AudioSpec m_inputAudioHandle; SDL_AudioDeviceID m_inputDevice; -#endif - } ; diff --git a/include/AudioSndio.h b/include/AudioSndio.h index 594ca94e72b..beb4913eb4b 100644 --- a/include/AudioSndio.h +++ b/include/AudioSndio.h @@ -75,7 +75,6 @@ class AudioSndio : public QThread, public AudioDevice private: void startProcessing() override; void stopProcessing() override; - void applyQualitySettings() override; void run() override; struct sio_hdl *m_hdl; diff --git a/include/AudioSoundIo.h b/include/AudioSoundIo.h index b327f7d8447..1260951bffc 100644 --- a/include/AudioSoundIo.h +++ b/include/AudioSoundIo.h @@ -110,7 +110,7 @@ class AudioSoundIo : public AudioDevice SoundIo *m_soundio; SoundIoOutStream *m_outstream; - surroundSampleFrame * m_outBuf; + SampleFrame* m_outBuf; int m_outBufSize; fpp_t m_outBufFramesTotal; fpp_t m_outBufFrameIndex; diff --git a/include/AutomatableModel.h b/include/AutomatableModel.h index 2264a592eda..15285e17ab3 100644 --- a/include/AutomatableModel.h +++ b/include/AutomatableModel.h @@ -25,15 +25,15 @@ #ifndef LMMS_AUTOMATABLE_MODEL_H #define LMMS_AUTOMATABLE_MODEL_H +#include #include #include -#include +#include #include "JournallingObject.h" #include "Model.h" #include "TimePos.h" #include "ValueBuffer.h" -#include "MemoryManager.h" #include "ModelVisitor.h" @@ -77,7 +77,6 @@ class ControllerConnection; class LMMS_EXPORT AutomatableModel : public Model, public JournallingObject { Q_OBJECT - MM_OPERATORS public: using AutoModelVector = std::vector; diff --git a/include/AutomationClipView.h b/include/AutomationClipView.h index a20e2ce2822..bdd2f056872 100644 --- a/include/AutomationClipView.h +++ b/include/AutomationClipView.h @@ -74,9 +74,6 @@ protected slots: QPixmap m_paintPixmap; QStaticText m_staticTextName; - - static QPixmap * s_clip_rec; - void scaleTimemapToFit( float oldMin, float oldMax ); } ; diff --git a/include/AutomationEditor.h b/include/AutomationEditor.h index dad0e4916f4..15f6dd22ec5 100644 --- a/include/AutomationEditor.h +++ b/include/AutomationEditor.h @@ -26,16 +26,18 @@ #ifndef LMMS_GUI_AUTOMATION_EDITOR_H #define LMMS_GUI_AUTOMATION_EDITOR_H +#include #include #include +#include "AutomationClip.h" +#include "ComboBoxModel.h" #include "Editor.h" - -#include "lmms_basics.h" #include "JournallingObject.h" +#include "MidiClip.h" +#include "SampleClip.h" #include "TimePos.h" -#include "AutomationClip.h" -#include "ComboBoxModel.h" +#include "lmms_basics.h" class QPainter; class QPixmap; @@ -68,8 +70,13 @@ class AutomationEditor : public QWidget, public JournallingObject Q_PROPERTY(QBrush graphColor MEMBER m_graphColor) Q_PROPERTY(QColor crossColor MEMBER m_crossColor) Q_PROPERTY(QColor backgroundShade MEMBER m_backgroundShade) + Q_PROPERTY(QColor ghostNoteColor MEMBER m_ghostNoteColor) + Q_PROPERTY(QColor detuningNoteColor MEMBER m_detuningNoteColor) + Q_PROPERTY(QColor ghostSampleColor MEMBER m_ghostSampleColor) public: void setCurrentClip(AutomationClip * new_clip); + void setGhostMidiClip(MidiClip* newMidiClip); + void setGhostSample(SampleClip* newSample); inline const AutomationClip * currentClip() const { @@ -159,6 +166,13 @@ protected slots: /// Updates the clip's quantization using the current user selected value. void setQuantization(); + void resetGhostNotes() + { + m_ghostNotes = nullptr; + m_ghostSample = nullptr; + update(); + } + private: enum class Action @@ -183,17 +197,23 @@ protected slots: static const int VALUES_WIDTH = 64; + static const int NOTE_HEIGHT = 10; // height of individual notes + static const int NOTE_MARGIN = 40; // total border margin for notes + static const int MIN_NOTE_RANGE = 20; // min number of keys for fixed size + static const int SAMPLE_MARGIN = 40; + static constexpr int MAX_SAMPLE_HEIGHT = 400; // constexpr for use in min + AutomationEditor(); AutomationEditor( const AutomationEditor & ); ~AutomationEditor() override; - static QPixmap * s_toolDraw; - static QPixmap * s_toolErase; - static QPixmap * s_toolDrawOut; - static QPixmap * s_toolEditTangents; - static QPixmap * s_toolMove; - static QPixmap * s_toolYFlip; - static QPixmap * s_toolXFlip; + QPixmap m_toolDraw = embed::getIconPixmap("edit_draw"); + QPixmap m_toolErase = embed::getIconPixmap("edit_erase"); + QPixmap m_toolDrawOut = embed::getIconPixmap("edit_draw_outvalue"); + QPixmap m_toolEditTangents = embed::getIconPixmap("edit_tangent"); + QPixmap m_toolMove = embed::getIconPixmap("edit_move"); + QPixmap m_toolYFlip = embed::getIconPixmap("flip_y"); + QPixmap m_toolXFlip = embed::getIconPixmap("flip_x"); ComboBoxModel m_zoomingXModel; ComboBoxModel m_zoomingYModel; @@ -211,12 +231,18 @@ protected slots: float m_bottomLevel; float m_topLevel; + MidiClip* m_ghostNotes = nullptr; + QPointer m_ghostSample = nullptr; // QPointer to set to nullptr on deletion + bool m_renderSample = false; + void centerTopBottomScroll(); void updateTopBottomLevels(); QScrollBar * m_leftRightScroll; QScrollBar * m_topBottomScroll; + void adjustLeftRightScoll(int value); + TimePos m_currentPosition; Action m_action; @@ -261,6 +287,9 @@ protected slots: QBrush m_scaleColor; QColor m_crossColor; QColor m_backgroundShade; + QColor m_ghostNoteColor; + QColor m_detuningNoteColor; + QColor m_ghostSampleColor; friend class AutomationEditorWindow; @@ -284,6 +313,9 @@ class AutomationEditorWindow : public Editor ~AutomationEditorWindow() override = default; void setCurrentClip(AutomationClip* clip); + void setGhostMidiClip(MidiClip* clip) { m_editor->setGhostMidiClip(clip); }; + void setGhostSample(SampleClip* newSample) { m_editor->setGhostSample(newSample); }; + const AutomationClip* currentClip(); void dropEvent( QDropEvent * _de ) override; @@ -337,6 +369,8 @@ private slots: ComboBox * m_zoomingXComboBox; ComboBox * m_zoomingYComboBox; ComboBox * m_quantizeComboBox; + + QPushButton* m_resetGhostNotes; }; } // namespace gui diff --git a/include/AutomationTrack.h b/include/AutomationTrack.h index 64c2cc43aea..9bcb537f41e 100644 --- a/include/AutomationTrack.h +++ b/include/AutomationTrack.h @@ -50,8 +50,7 @@ class AutomationTrack : public Track gui::TrackView * createView( gui::TrackContainerView* ) override; Clip* createClip(const TimePos & pos) override; - void saveTrackSpecificSettings( QDomDocument & _doc, - QDomElement & _parent ) override; + void saveTrackSpecificSettings(QDomDocument& doc, QDomElement& parent, bool presetMode) override; void loadTrackSpecificSettings( const QDomElement & _this ) override; private: diff --git a/include/BandLimitedWave.h b/include/BandLimitedWave.h index 1f402aa6ea0..1c1a052cac5 100644 --- a/include/BandLimitedWave.h +++ b/include/BandLimitedWave.h @@ -107,7 +107,7 @@ class LMMS_EXPORT BandLimitedWave */ static inline float freqToLen( float f ) { - return freqToLen( f, Engine::audioEngine()->processingSampleRate() ); + return freqToLen( f, Engine::audioEngine()->outputSampleRate() ); } /*! \brief This method converts frequency to wavelength, but you can use any custom sample rate with it. diff --git a/include/BasicFilters.h b/include/BasicFilters.h index 9351cbafbc9..8d21b3657ca 100644 --- a/include/BasicFilters.h +++ b/include/BasicFilters.h @@ -36,11 +36,11 @@ #endif #include +#include #include "lmms_basics.h" #include "lmms_constants.h" #include "interpolation.h" -#include "MemoryManager.h" namespace lmms { @@ -50,7 +50,6 @@ template class BasicFilters; template class LinkwitzRiley { - MM_OPERATORS public: LinkwitzRiley( float sampleRate ) { @@ -145,9 +144,13 @@ using StereoLinkwitzRiley = LinkwitzRiley<2>; template class BiQuad { - MM_OPERATORS public: - BiQuad() + BiQuad() : + m_a1(0.), + m_a2(0.), + m_b0(0.), + m_b1(0.), + m_b2(0.) { clearHistory(); } @@ -188,7 +191,6 @@ using StereoBiQuad = BiQuad<2>; template class OnePole { - MM_OPERATORS public: OnePole() { @@ -222,7 +224,6 @@ using StereoOnePole = OnePole<2>; template class BasicFilters { - MM_OPERATORS public: enum class FilterType { @@ -328,9 +329,19 @@ class BasicFilters } } + inline void setSampleRate(const sample_rate_t sampleRate) + { + m_sampleRate = sampleRate; + m_sampleRatio = 1.f / m_sampleRate; + if (m_subFilter != nullptr) + { + m_subFilter->setSampleRate(m_sampleRate); + } + } + inline sample_t update( sample_t _in0, ch_cnt_t _chnl ) { - sample_t out; + sample_t out = 0.0f; switch( m_type ) { case FilterType::Moog: @@ -365,7 +376,6 @@ class BasicFilters // input signal is linear-interpolated after oversampling, output signal is averaged from oversampled outputs case FilterType::Tripole: { - out = 0.0f; float ip = 0.0f; for( int i = 0; i < 4; ++i ) { @@ -421,7 +431,6 @@ class BasicFilters case FilterType::Highpass_SV: { float hp; - for( int i = 0; i < 2; ++i ) // 2x oversample { m_delay2[_chnl] = m_delay2[_chnl] + m_svf1 * m_delay1[_chnl]; @@ -434,8 +443,7 @@ class BasicFilters case FilterType::Notch_SV: { - float hp1, hp2; - + float hp1; for( int i = 0; i < 2; ++i ) // 2x oversample { m_delay2[_chnl] = m_delay2[_chnl] + m_svf1 * m_delay1[_chnl]; /* delay2/4 = lowpass output */ @@ -443,7 +451,7 @@ class BasicFilters m_delay1[_chnl] = m_svf1 * hp1 + m_delay1[_chnl]; /* delay1/3 = bandpass output */ m_delay4[_chnl] = m_delay4[_chnl] + m_svf2 * m_delay3[_chnl]; - hp2 = m_delay2[_chnl] - m_delay4[_chnl] - m_svq * m_delay3[_chnl]; + float hp2 = m_delay2[_chnl] - m_delay4[_chnl] - m_svq * m_delay3[_chnl]; m_delay3[_chnl] = m_svf2 * hp2 + m_delay3[_chnl]; } @@ -459,19 +467,19 @@ class BasicFilters case FilterType::Lowpass_RC12: { - sample_t lp, bp, hp, in; + sample_t lp = 0.0f; for( int n = 4; n != 0; --n ) { - in = _in0 + m_rcbp0[_chnl] * m_rcq; + sample_t in = _in0 + m_rcbp0[_chnl] * m_rcq; in = std::clamp(in, -1.0f, 1.0f); lp = in * m_rcb + m_rclp0[_chnl] * m_rca; lp = std::clamp(lp, -1.0f, 1.0f); - hp = m_rcc * ( m_rchp0[_chnl] + in - m_rclast0[_chnl] ); + sample_t hp = m_rcc * (m_rchp0[_chnl] + in - m_rclast0[_chnl]); hp = std::clamp(hp, -1.0f, 1.0f); - bp = hp * m_rcb + m_rcbp0[_chnl] * m_rca; + sample_t bp = hp * m_rcb + m_rcbp0[_chnl] * m_rca; bp = std::clamp(bp, -1.0f, 1.0f); m_rclast0[_chnl] = in; @@ -484,10 +492,10 @@ class BasicFilters case FilterType::Highpass_RC12: case FilterType::Bandpass_RC12: { - sample_t hp, bp, in; + sample_t hp, bp; for( int n = 4; n != 0; --n ) { - in = _in0 + m_rcbp0[_chnl] * m_rcq; + sample_t in = _in0 + m_rcbp0[_chnl] * m_rcq; in = std::clamp(in, -1.0f, 1.0f); hp = m_rcc * ( m_rchp0[_chnl] + in - m_rclast0[_chnl] ); @@ -505,20 +513,20 @@ class BasicFilters case FilterType::Lowpass_RC24: { - sample_t lp, bp, hp, in; + sample_t lp; for( int n = 4; n != 0; --n ) { // first stage is as for the 12dB case... - in = _in0 + m_rcbp0[_chnl] * m_rcq; + sample_t in = _in0 + m_rcbp0[_chnl] * m_rcq; in = std::clamp(in, -1.0f, 1.0f); lp = in * m_rcb + m_rclp0[_chnl] * m_rca; lp = std::clamp(lp, -1.0f, 1.0f); - hp = m_rcc * ( m_rchp0[_chnl] + in - m_rclast0[_chnl] ); + sample_t hp = m_rcc * ( m_rchp0[_chnl] + in - m_rclast0[_chnl] ); hp = std::clamp(hp, -1.0f, 1.0f); - bp = hp * m_rcb + m_rcbp0[_chnl] * m_rca; + sample_t bp = hp * m_rcb + m_rcbp0[_chnl] * m_rca; bp = std::clamp(bp, -1.0f, 1.0f); m_rclast0[_chnl] = in; @@ -549,11 +557,11 @@ class BasicFilters case FilterType::Highpass_RC24: case FilterType::Bandpass_RC24: { - sample_t hp, bp, in; + sample_t hp, bp; for( int n = 4; n != 0; --n ) { // first stage is as for the 12dB case... - in = _in0 + m_rcbp0[_chnl] * m_rcq; + sample_t in = _in0 + m_rcbp0[_chnl] * m_rcq; in = std::clamp(in, -1.0f, 1.0f); hp = m_rcc * ( m_rchp0[_chnl] + in - m_rclast0[_chnl] ); @@ -590,20 +598,18 @@ class BasicFilters case FilterType::FastFormant: { if (std::abs(_in0) < 1.0e-10f && std::abs(m_vflast[0][_chnl]) < 1.0e-10f) { return 0.0f; } // performance hack - skip processing when the numbers get too small - sample_t hp, bp, in; - out = 0; const int os = m_type == FilterType::FastFormant ? 1 : 4; // no oversampling for fast formant for( int o = 0; o < os; ++o ) { // first formant - in = _in0 + m_vfbp[0][_chnl] * m_vfq; + sample_t in = _in0 + m_vfbp[0][_chnl] * m_vfq; in = std::clamp(in, -1.0f, 1.0f); - hp = m_vfc[0] * ( m_vfhp[0][_chnl] + in - m_vflast[0][_chnl] ); + sample_t hp = m_vfc[0] * ( m_vfhp[0][_chnl] + in - m_vflast[0][_chnl] ); hp = std::clamp(hp, -1.0f, 1.0f); - bp = hp * m_vfb[0] + m_vfbp[0][_chnl] * m_vfa[0]; + sample_t bp = hp * m_vfb[0] + m_vfbp[0][_chnl] * m_vfa[0]; bp = std::clamp(bp, -1.0f, 1.0f); m_vflast[0][_chnl] = in; diff --git a/include/BufferManager.h b/include/BufferManager.h index 712e420ff97..84602f1215d 100644 --- a/include/BufferManager.h +++ b/include/BufferManager.h @@ -32,20 +32,14 @@ namespace lmms { +class SampleFrame; class LMMS_EXPORT BufferManager { public: static void init( fpp_t fpp ); - static sampleFrame * acquire(); - // audio-buffer-mgm - static void clear( sampleFrame * ab, const f_cnt_t frames, - const f_cnt_t offset = 0 ); -#ifndef LMMS_DISABLE_SURROUND - static void clear( surroundSampleFrame * ab, const f_cnt_t frames, - const f_cnt_t offset = 0 ); -#endif - static void release( sampleFrame * buf ); + static SampleFrame* acquire(); + static void release( SampleFrame* buf ); private: static fpp_t s_framesPerPeriod; diff --git a/include/Clip.h b/include/Clip.h index 96394602fa0..a520ad4e470 100644 --- a/include/Clip.h +++ b/include/Clip.h @@ -25,6 +25,8 @@ #ifndef LMMS_CLIP_H #define LMMS_CLIP_H +#include + #include #include "AutomatableModel.h" @@ -48,7 +50,6 @@ class TrackView; class LMMS_EXPORT Clip : public Model, public JournallingObject { Q_OBJECT - MM_OPERATORS mapPropertyFromModel(bool,isMuted,setMuted,m_mutedModel); mapPropertyFromModel(bool,isSolo,setSolo,m_soloModel); public: @@ -109,24 +110,8 @@ class LMMS_EXPORT Clip : public Model, public JournallingObject return m_autoResize; } - QColor color() const - { - return m_color; - } - - void setColor( const QColor & c ) - { - m_color = c; - } - - bool hasColor(); - - void useCustomClipColor( bool b ); - - bool usesCustomClipColor() - { - return m_useCustomClipColor; - } + auto color() const -> const std::optional& { return m_color; } + void setColor(const std::optional& color); virtual void movePosition( const TimePos & pos ); virtual void changeLength( const TimePos & length ); @@ -177,8 +162,7 @@ public slots: bool m_selectViewOnCreate; - QColor m_color; - bool m_useCustomClipColor; + std::optional m_color; friend class ClipView; diff --git a/include/ClipView.h b/include/ClipView.h index 94225836725..14898db65b4 100644 --- a/include/ClipView.h +++ b/include/ClipView.h @@ -25,6 +25,7 @@ #ifndef LMMS_GUI_CLIP_VIEW_H #define LMMS_GUI_CLIP_VIEW_H +#include #include @@ -184,6 +185,7 @@ public slots: virtual void paintTextLabel(QString const & text, QPainter & painter); + auto hasCustomColor() const -> bool; protected slots: void updateLength(); @@ -241,7 +243,7 @@ protected slots: bool mouseMovedDistance( QMouseEvent * me, int distance ); TimePos draggedClipPos( QMouseEvent * me ); int knifeMarkerPos( QMouseEvent * me ); - void setColor(const QColor* color); + void setColor(const std::optional& color); //! Return true iff the clip could be split. Currently only implemented for samples virtual bool splitClip( const TimePos pos ){ return false; }; void updateCursor(QMouseEvent * me); diff --git a/include/ColorHelper.h b/include/ColorHelper.h new file mode 100644 index 00000000000..78f99b9e2c1 --- /dev/null +++ b/include/ColorHelper.h @@ -0,0 +1,54 @@ +/* ColorHelper.h - Helper methods for color related algorithms, etc. + * + * Copyright (c) 2024- Michael Gregorius + * + * This file is part of LMMS - https://lmms.io + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#ifndef LMMS_GUI_COLOR_HELPER_H +#define LMMS_GUI_COLOR_HELPER_H + +#include + +namespace lmms::gui +{ + +class ColorHelper +{ +public: + static QColor interpolateInRgb(const QColor& a, const QColor& b, float t) + { + qreal ar, ag, ab, aa; + a.getRgbF(&ar, &ag, &ab, &aa); + + qreal br, bg, bb, ba; + b.getRgbF(&br, &bg, &bb, &ba); + + const float interH = lerp(ar, br, t); + const float interS = lerp(ag, bg, t); + const float interV = lerp(ab, bb, t); + const float interA = lerp(aa, ba, t); + + return QColor::fromRgbF(interH, interS, interV, interA); + } +}; + +} // namespace lmms::gui + +#endif // LMMS_GUI_COLOR_HELPER_H diff --git a/include/ComboBox.h b/include/ComboBox.h index 8153451e863..cc4ad68dd88 100644 --- a/include/ComboBox.h +++ b/include/ComboBox.h @@ -66,9 +66,9 @@ public slots: private: - static QPixmap* s_background; - static QPixmap* s_arrow; - static QPixmap* s_arrowSelected; + QPixmap m_background = embed::getIconPixmap("combobox_bg"); + QPixmap m_arrow = embed::getIconPixmap("combobox_arrow"); + QPixmap m_arrowSelected = embed::getIconPixmap("combobox_arrow_selected"); QMenu m_menu; diff --git a/include/ComboBoxModel.h b/include/ComboBoxModel.h index e90d804e2df..7037495ea34 100644 --- a/include/ComboBoxModel.h +++ b/include/ComboBoxModel.h @@ -47,11 +47,6 @@ class LMMS_EXPORT ComboBoxModel : public IntModel { } - ~ComboBoxModel() override - { - clear(); - } - void addItem( QString item, std::unique_ptr loader = nullptr ); void replaceItem(std::size_t index, QString item, std::unique_ptr loader = nullptr); diff --git a/include/ConfigManager.h b/include/ConfigManager.h index f6239c29783..3cba834e198 100644 --- a/include/ConfigManager.h +++ b/include/ConfigManager.h @@ -230,6 +230,7 @@ class LMMS_EXPORT ConfigManager : public QObject QString defaultVersion() const; + static bool enableBlockedPlugins(); static QStringList availableVstEmbedMethods(); QString vstEmbedMethod() const; diff --git a/include/ControllerRackView.h b/include/ControllerRackView.h index bccac49f9e1..bc154c10ba1 100644 --- a/include/ControllerRackView.h +++ b/include/ControllerRackView.h @@ -60,9 +60,11 @@ class ControllerRackView : public DetachableWidget, public SerializingObject public slots: - void deleteController( lmms::gui::ControllerView * _view ); - void onControllerAdded( lmms::Controller * ); - void onControllerRemoved( lmms::Controller * ); + void deleteController(ControllerView* view); + void moveUp(ControllerView* view); + void moveDown(ControllerView* view); + void addController(Controller* controller); + void removeController(Controller* controller); private slots: void addController(); diff --git a/include/ControllerView.h b/include/ControllerView.h index d1ba533a1a0..9b442672d94 100644 --- a/include/ControllerView.h +++ b/include/ControllerView.h @@ -63,12 +63,16 @@ class ControllerView : public QFrame, public ModelView public slots: void editControls(); - void deleteController(); + void removeController(); void closeControls(); void renameController(); + void moveUp(); + void moveDown(); signals: - void deleteController( lmms::gui::ControllerView * _view ); + void movedUp(ControllerView* view); + void movedDown(ControllerView* view); + void removedController(ControllerView* view); protected: diff --git a/include/DataFile.h b/include/DataFile.h index 3f170622906..7f5f5b88824 100644 --- a/include/DataFile.h +++ b/include/DataFile.h @@ -28,9 +28,9 @@ #include #include +#include #include "lmms_export.h" -#include "MemoryManager.h" class QTextStream; @@ -42,7 +42,6 @@ class ProjectVersion; class LMMS_EXPORT DataFile : public QDomDocument { - MM_OPERATORS using UpgradeMethod = void(DataFile::*)(); @@ -102,6 +101,8 @@ class LMMS_EXPORT DataFile : public QDomDocument void cleanMetaNodes( QDomElement de ); + void mapSrcAttributeInElementsWithResources(const QMap& map); + // helper upgrade routines void upgrade_0_2_1_20070501(); void upgrade_0_2_1_20070508(); @@ -130,6 +131,9 @@ class LMMS_EXPORT DataFile : public QDomDocument void upgrade_midiCCIndexing(); void upgrade_loopsRename(); void upgrade_noteTypes(); + void upgrade_fixCMTDelays(); + void upgrade_fixBassLoopsTypo(); + void findProblematicLadspaPlugins(); // List of all upgrade methods static const std::vector UPGRADE_METHODS; @@ -149,7 +153,6 @@ class LMMS_EXPORT DataFile : public QDomDocument QDomElement m_head; Type m_type; unsigned int m_fileVersion; - } ; diff --git a/include/Delay.h b/include/Delay.h index daa871baf4c..71fbe1b00b1 100644 --- a/include/Delay.h +++ b/include/Delay.h @@ -29,7 +29,6 @@ #include "lmms_basics.h" #include "lmms_math.h" #include "interpolation.h" -#include "MemoryManager.h" namespace lmms { @@ -74,20 +73,20 @@ class CombFeedback m_delay( 0 ), m_fraction( 0.0 ) { - m_buffer = MM_ALLOC(maxDelay ); + m_buffer = new frame[maxDelay]; memset( m_buffer, 0, sizeof( frame ) * maxDelay ); } virtual ~CombFeedback() { - MM_FREE( m_buffer ); + delete[] m_buffer; } inline void setMaxDelay( int maxDelay ) { if( maxDelay > m_size ) { - MM_FREE( m_buffer ); - m_buffer = MM_ALLOC( maxDelay ); + delete[] m_buffer; + m_buffer = new frame[maxDelay]; memset( m_buffer, 0, sizeof( frame ) * maxDelay ); } m_size = maxDelay; @@ -145,20 +144,20 @@ class CombFeedfwd m_delay( 0 ), m_fraction( 0.0 ) { - m_buffer = MM_ALLOC( maxDelay ); + m_buffer = new frame[maxDelay]; memset( m_buffer, 0, sizeof( frame ) * maxDelay ); } virtual ~CombFeedfwd() { - MM_FREE( m_buffer ); + delete[] m_buffer; } inline void setMaxDelay( int maxDelay ) { if( maxDelay > m_size ) { - MM_FREE( m_buffer ); - m_buffer = MM_ALLOC( maxDelay ); + delete[] m_buffer; + m_buffer = new frame[maxDelay]; memset( m_buffer, 0, sizeof( frame ) * maxDelay ); } m_size = maxDelay; @@ -216,20 +215,20 @@ class CombFeedbackDualtap m_delay( 0 ), m_fraction( 0.0 ) { - m_buffer = MM_ALLOC( maxDelay ); + m_buffer = new frame[maxDelay]; memset( m_buffer, 0, sizeof( frame ) * maxDelay ); } virtual ~CombFeedbackDualtap() { - MM_FREE( m_buffer ); + delete[] m_buffer; } inline void setMaxDelay( int maxDelay ) { if( maxDelay > m_size ) { - MM_FREE( m_buffer ); - m_buffer = MM_ALLOC( maxDelay ); + delete[] m_buffer; + m_buffer = new frame[maxDelay]; memset( m_buffer, 0, sizeof( frame ) * maxDelay ); } m_size = maxDelay; @@ -297,20 +296,20 @@ class AllpassDelay m_delay( 0 ), m_fraction( 0.0 ) { - m_buffer = MM_ALLOC( maxDelay ); + m_buffer = new frame[maxDelay]; memset( m_buffer, 0, sizeof( frame ) * maxDelay ); } virtual ~AllpassDelay() { - MM_FREE( m_buffer ); + delete[] m_buffer; } inline void setMaxDelay( int maxDelay ) { if( maxDelay > m_size ) { - MM_FREE( m_buffer ); - m_buffer = MM_ALLOC( maxDelay ); + delete[] m_buffer; + m_buffer = new frame[maxDelay]; memset( m_buffer, 0, sizeof( frame ) * maxDelay ); } m_size = maxDelay; diff --git a/include/DetuningHelper.h b/include/DetuningHelper.h index e5d5f5712d5..da8eb598350 100644 --- a/include/DetuningHelper.h +++ b/include/DetuningHelper.h @@ -27,7 +27,6 @@ #define LMMS_DETUNING_HELPER_H #include "InlineAutomation.h" -#include "MemoryManager.h" namespace lmms { @@ -35,7 +34,6 @@ namespace lmms class DetuningHelper : public InlineAutomation { Q_OBJECT - MM_OPERATORS public: DetuningHelper() : InlineAutomation() diff --git a/include/DrumSynth.h b/include/DrumSynth.h index 750055ddba9..3b418abd644 100644 --- a/include/DrumSynth.h +++ b/include/DrumSynth.h @@ -27,33 +27,33 @@ #define LMMS_DRUM_SYNTH_H #include + #include "lmms_basics.h" class QString; -namespace lmms -{ - -class DrumSynth { - public: - DrumSynth() = default; - int GetDSFileSamples(QString dsfile, int16_t *&wave, int channels, sample_rate_t Fs); - - private: - float LoudestEnv(); - int LongestEnv(); - void UpdateEnv(int e, long t); - void GetEnv(int env, const char *sec, const char *key, QString ini); - - float waveform(float ph, int form); - - int GetPrivateProfileString(const char *sec, const char *key, const char *def, char *buffer, int size, QString file); - int GetPrivateProfileInt(const char *sec, const char *key, int def, QString file); - float GetPrivateProfileFloat(const char *sec, const char *key, float def, QString file); +namespace lmms { +class DrumSynth +{ +public: + DrumSynth() = default; + int GetDSFileSamples(QString dsfile, int16_t*& wave, int channels, sample_rate_t Fs); + +private: + float LoudestEnv(); + int LongestEnv(); + void UpdateEnv(int e, long t); + void GetEnv(int env, const char* sec, const char* key, QString ini); + + float waveform(float ph, int form); + + int GetPrivateProfileString( + const char* sec, const char* key, const char* def, char* buffer, int size, QString file); + int GetPrivateProfileInt(const char* sec, const char* key, int def, QString file); + float GetPrivateProfileFloat(const char* sec, const char* key, float def, QString file); }; - } // namespace lmms #endif // LMMS_DRUM_SYNTH_H diff --git a/include/DspEffectLibrary.h b/include/DspEffectLibrary.h index 14dbd7ede88..348c7076509 100644 --- a/include/DspEffectLibrary.h +++ b/include/DspEffectLibrary.h @@ -28,7 +28,7 @@ #include "lmms_math.h" #include "lmms_constants.h" #include "lmms_basics.h" - +#include "SampleFrame.h" namespace lmms::DspEffectLibrary { @@ -80,6 +80,17 @@ namespace lmms::DspEffectLibrary { } + void setGain(float gain) + { + leftFX().setGain(gain); + rightFX().setGain(gain); + } + + void nextSample(SampleFrame & in) + { + nextSample(in.left(), in.right()); + } + void nextSample( sample_t& inLeft, sample_t& inRight ) { inLeft = m_leftFX.nextSample( inLeft ); diff --git a/include/DummyEffect.h b/include/DummyEffect.h index 0a80b90a981..3a1061eaddf 100644 --- a/include/DummyEffect.h +++ b/include/DummyEffect.h @@ -98,6 +98,7 @@ class DummyEffect : public Effect m_originalPluginData( originalPluginData ) { setName(); + setDontRun(true); } ~DummyEffect() override = default; @@ -107,9 +108,9 @@ class DummyEffect : public Effect return &m_controls; } - bool processAudioBuffer( sampleFrame *, const fpp_t ) override + ProcessStatus processImpl(SampleFrame*, const fpp_t) override { - return false; + return ProcessStatus::Sleep; } const QDomElement& originalPluginData() const diff --git a/include/DummyInstrument.h b/include/DummyInstrument.h index aefa035db7b..0962dcd9e87 100644 --- a/include/DummyInstrument.h +++ b/include/DummyInstrument.h @@ -49,10 +49,9 @@ class DummyInstrument : public Instrument ~DummyInstrument() override = default; - void playNote( NotePlayHandle *, sampleFrame * buffer ) override + void playNote( NotePlayHandle*, SampleFrame* buffer ) override { - memset( buffer, 0, sizeof( sampleFrame ) * - Engine::audioEngine()->framesPerPeriod() ); + zeroSampleFrames(buffer, Engine::audioEngine()->framesPerPeriod()); } void saveSettings( QDomDocument &, QDomElement & ) override diff --git a/include/Effect.h b/include/Effect.h index f2fb6e80f49..7eb911701a0 100644 --- a/include/Effect.h +++ b/include/Effect.h @@ -31,7 +31,6 @@ #include "AudioEngine.h" #include "AutomatableModel.h" #include "TempoSyncKnobModel.h" -#include "MemoryManager.h" namespace lmms { @@ -49,7 +48,6 @@ class EffectView; class LMMS_EXPORT Effect : public Plugin { - MM_OPERATORS Q_OBJECT public: Effect( const Plugin::Descriptor * _desc, @@ -65,9 +63,8 @@ class LMMS_EXPORT Effect : public Plugin return "effect"; } - - virtual bool processAudioBuffer( sampleFrame * _buf, - const fpp_t _frames ) = 0; + //! Returns true if audio was processed and should continue being processed + bool processAudioBuffer(SampleFrame* buf, const fpp_t frames); inline ch_cnt_t processorCount() const { @@ -113,7 +110,7 @@ class LMMS_EXPORT Effect : public Plugin inline f_cnt_t timeout() const { - const float samples = Engine::audioEngine()->processingSampleRate() * m_autoQuitModel.value() / 1000.0f; + const float samples = Engine::audioEngine()->outputSampleRate() * m_autoQuitModel.value() / 1000.0f; return 1 + ( static_cast( samples ) / Engine::audioEngine()->framesPerPeriod() ); } @@ -176,46 +173,71 @@ class LMMS_EXPORT Effect : public Plugin protected: + enum class ProcessStatus + { + //! Unconditionally continue processing + Continue, + + //! Calculate the RMS out sum and call `checkGate` to determine whether to stop processing + ContinueIfNotQuiet, + + //! Do not continue processing + Sleep + }; + /** - Effects should call this at the end of audio processing + * The main audio processing method that runs when plugin is not asleep + */ + virtual ProcessStatus processImpl(SampleFrame* buf, const fpp_t frames) = 0; + + /** + * Optional method that runs when plugin is sleeping (not enabled, + * not running, not in the Okay state, or in the Don't Run state) + */ + virtual void processBypassedImpl() {} - If the setting "Keep effects running even without input" is disabled, - after "decay" ms of a signal below "gate", the effect is turned off - and won't be processed again until it receives new audio input - */ - void checkGate( double _out_sum ); gui::PluginView* instantiateView( QWidget * ) override; // some effects might not be capable of higher sample-rates so they can // sample it down before processing and back after processing - inline void sampleDown( const sampleFrame * _src_buf, - sampleFrame * _dst_buf, + inline void sampleDown( const SampleFrame* _src_buf, + SampleFrame* _dst_buf, sample_rate_t _dst_sr ) { resample( 0, _src_buf, - Engine::audioEngine()->processingSampleRate(), + Engine::audioEngine()->outputSampleRate(), _dst_buf, _dst_sr, Engine::audioEngine()->framesPerPeriod() ); } - inline void sampleBack( const sampleFrame * _src_buf, - sampleFrame * _dst_buf, + inline void sampleBack( const SampleFrame* _src_buf, + SampleFrame* _dst_buf, sample_rate_t _src_sr ) { resample( 1, _src_buf, _src_sr, _dst_buf, - Engine::audioEngine()->processingSampleRate(), + Engine::audioEngine()->outputSampleRate(), Engine::audioEngine()->framesPerPeriod() * _src_sr / - Engine::audioEngine()->processingSampleRate() ); + Engine::audioEngine()->outputSampleRate() ); } void reinitSRC(); + virtual void onEnabledChanged() {} + private: + /** + If the setting "Keep effects running even without input" is disabled, + after "decay" ms of a signal below "gate", the effect is turned off + and won't be processed again until it receives new audio input + */ + void checkGate(double outSum); + + EffectChain * m_parent; - void resample( int _i, const sampleFrame * _src_buf, + void resample( int _i, const SampleFrame* _src_buf, sample_rate_t _src_sr, - sampleFrame * _dst_buf, sample_rate_t _dst_sr, + SampleFrame* _dst_buf, sample_rate_t _dst_sr, const f_cnt_t _frames ); ch_cnt_t m_processors; diff --git a/include/EffectChain.h b/include/EffectChain.h index f9482174ed5..0af23c4b82b 100644 --- a/include/EffectChain.h +++ b/include/EffectChain.h @@ -34,6 +34,7 @@ namespace lmms { class Effect; +class SampleFrame; namespace gui { @@ -62,7 +63,7 @@ class LMMS_EXPORT EffectChain : public Model, public SerializingObject void removeEffect( Effect * _effect ); void moveDown( Effect * _effect ); void moveUp( Effect * _effect ); - bool processAudioBuffer( sampleFrame * _buf, const fpp_t _frames, bool hasInputNoise ); + bool processAudioBuffer( SampleFrame* _buf, const fpp_t _frames, bool hasInputNoise ); void startRunning(); void clear(); diff --git a/include/EffectRackView.h b/include/EffectRackView.h index a1e21be0985..fec627a56f9 100644 --- a/include/EffectRackView.h +++ b/include/EffectRackView.h @@ -53,10 +53,9 @@ class EffectRackView : public QWidget, public ModelView public slots: void clearViews(); - void moveUp( lmms::gui::EffectView* view ); - void moveDown( lmms::gui::EffectView* view ); - void deletePlugin( lmms::gui::EffectView* view ); - + void moveUp(EffectView* view); + void moveDown(EffectView* view); + void deletePlugin(EffectView* view); private slots: virtual void update(); @@ -65,6 +64,8 @@ private slots: private: void modelChanged() override; + QSize sizeHint() const override; + QSize minimumSizeHint() const override { return sizeHint(); } inline EffectChain* fxChain() { diff --git a/include/EffectSelectDialog.h b/include/EffectSelectDialog.h index 493b0777403..53e8dbe7e44 100644 --- a/include/EffectSelectDialog.h +++ b/include/EffectSelectDialog.h @@ -2,6 +2,7 @@ * EffectSelectDialog.h - dialog to choose effect plugin * * Copyright (c) 2006-2009 Tobias Doerffel + * Copyright (c) 2023 Lost Robot * * This file is part of LMMS - https://lmms.io * @@ -25,49 +26,95 @@ #ifndef LMMS_GUI_EFFECT_SELECT_DIALOG_H #define LMMS_GUI_EFFECT_SELECT_DIALOG_H +#include "Effect.h" + #include +#include +#include +#include +#include +#include +#include #include #include - -#include "Effect.h" - - -namespace Ui { class EffectSelectDialog; } +#include namespace lmms::gui { +class DualColumnFilterProxyModel : public QSortFilterProxyModel +{ + Q_OBJECT +public: + DualColumnFilterProxyModel(QObject* parent = nullptr) : QSortFilterProxyModel(parent) + { + } + + void setEffectTypeFilter(const QString& filter) + { + m_effectTypeFilter = filter; + invalidateFilter(); + } + +protected: + bool filterAcceptsRow(int source_row, const QModelIndex& source_parent) const override + { + QModelIndex nameIndex = sourceModel()->index(source_row, 0, source_parent); + QModelIndex typeIndex = sourceModel()->index(source_row, 1, source_parent); + + QString name = sourceModel()->data(nameIndex, Qt::DisplayRole).toString(); + QString type = sourceModel()->data(typeIndex, Qt::DisplayRole).toString(); + + // TODO: cleanup once we drop Qt5 support +#if (QT_VERSION >= QT_VERSION_CHECK(5,12,0)) + QRegularExpression nameRegularExpression(filterRegularExpression()); + nameRegularExpression.setPatternOptions(QRegularExpression::CaseInsensitiveOption); + + bool nameFilterPassed = nameRegularExpression.match(name).capturedStart() != -1; +#else + QRegExp nameRegularExpression(filterRegExp()); + nameRegularExpression.setCaseSensitivity(Qt::CaseInsensitive); + + bool nameFilterPassed = nameRegularExpression.indexIn(name) != -1; +#endif + + bool typeFilterPassed = type.contains(m_effectTypeFilter, Qt::CaseInsensitive); + + return nameFilterPassed && typeFilterPassed; + } + +private: + QString m_effectTypeFilter; +}; + class EffectSelectDialog : public QDialog { Q_OBJECT public: - EffectSelectDialog( QWidget * _parent ); - ~EffectSelectDialog() override; - - Effect * instantiateSelectedPlugin( EffectChain * _parent ); + EffectSelectDialog(QWidget* parent); + Effect* instantiateSelectedPlugin(EffectChain* parent); protected slots: void acceptSelection(); - void rowChanged( const QModelIndex &, const QModelIndex & ); - void sortAgain(); + void rowChanged(const QModelIndex&, const QModelIndex&); void updateSelection(); - + + bool eventFilter(QObject* obj, QEvent* event) override; private: - Ui::EffectSelectDialog * ui; - EffectKeyList m_effectKeys; EffectKey m_currentSelection; QStandardItemModel m_sourceModel; - QSortFilterProxyModel m_model; - QWidget * m_descriptionWidget; - -} ; - + DualColumnFilterProxyModel m_model; + QWidget* m_descriptionWidget; + QTableView* m_pluginList; + QScrollArea* m_scrollArea; + QLineEdit* m_filterEdit; +}; } // namespace lmms::gui -#endif // LMMS_GUI_EFFECT_SELECT_DIALOG_H +#endif diff --git a/include/EffectView.h b/include/EffectView.h index e90700952c7..805e4a4279c 100644 --- a/include/EffectView.h +++ b/include/EffectView.h @@ -77,10 +77,9 @@ public slots: signals: - void moveUp( lmms::gui::EffectView * _plugin ); - void moveDown( lmms::gui::EffectView * _plugin ); - void deletePlugin( lmms::gui::EffectView * _plugin ); - + void movedUp(EffectView* view); + void movedDown(EffectView* view); + void deletedPlugin(EffectView* view); protected: void contextMenuEvent( QContextMenuEvent * _me ) override; diff --git a/include/Engine.h b/include/Engine.h index ed4cbd93cbc..7e19e2e8483 100644 --- a/include/Engine.h +++ b/include/Engine.h @@ -81,8 +81,6 @@ class LMMS_EXPORT Engine : public QObject return s_projectJournal; } - static bool ignorePluginBlacklist(); - #ifdef LMMS_HAVE_LV2 static class Lv2Manager * getLv2Manager() { diff --git a/include/EnvelopeAndLfoParameters.h b/include/EnvelopeAndLfoParameters.h index 7abc3910e96..50bfdf78709 100644 --- a/include/EnvelopeAndLfoParameters.h +++ b/include/EnvelopeAndLfoParameters.h @@ -25,6 +25,7 @@ #ifndef LMMS_ENVELOPE_AND_LFO_PARAMETERS_H #define LMMS_ENVELOPE_AND_LFO_PARAMETERS_H +#include #include #include "JournallingObject.h" @@ -70,7 +71,18 @@ class LMMS_EXPORT EnvelopeAndLfoParameters : public Model, public JournallingObj using LfoList = QList; LfoList m_lfos; - } ; + }; + + enum class LfoShape + { + SineWave, + TriangleWave, + SawWave, + SquareWave, + UserDefinedWave, + RandomWave, + Count + }; EnvelopeAndLfoParameters( float _value_for_zero_amount, Model * _parent ); @@ -113,6 +125,28 @@ class LMMS_EXPORT EnvelopeAndLfoParameters : public Model, public JournallingObj return m_rFrames; } + // Envelope + const FloatModel& getPredelayModel() const { return m_predelayModel; } + const FloatModel& getAttackModel() const { return m_attackModel; } + const FloatModel& getHoldModel() const { return m_holdModel; } + const FloatModel& getDecayModel() const { return m_decayModel; } + const FloatModel& getSustainModel() const { return m_sustainModel; } + const FloatModel& getReleaseModel() const { return m_releaseModel; } + const FloatModel& getAmountModel() const { return m_amountModel; } + FloatModel& getAmountModel() { return m_amountModel; } + + + // LFO + inline f_cnt_t getLfoPredelayFrames() const { return m_lfoPredelayFrames; } + inline f_cnt_t getLfoAttackFrames() const { return m_lfoAttackFrames; } + inline f_cnt_t getLfoOscillationFrames() const { return m_lfoOscillationFrames; } + + const FloatModel& getLfoAmountModel() const { return m_lfoAmountModel; } + FloatModel& getLfoAmountModel() { return m_lfoAmountModel; } + const TempoSyncKnobModel& getLfoSpeedModel() const { return m_lfoSpeedModel; } + const BoolModel& getX100Model() const { return m_x100Model; } + const IntModel& getLfoWaveModel() const { return m_lfoWaveModel; } + std::shared_ptr getLfoUserWave() const { return m_userWave; } public slots: void updateSampleVars(); @@ -167,18 +201,8 @@ public slots: sample_t * m_lfoShapeData; sample_t m_random; bool m_bad_lfoShapeData; - SampleBuffer m_userWave; + std::shared_ptr m_userWave = SampleBuffer::emptyBuffer(); - enum class LfoShape - { - SineWave, - TriangleWave, - SawWave, - SquareWave, - UserDefinedWave, - RandomWave, - Count - } ; constexpr static auto NumLfoShapes = static_cast(LfoShape::Count); sample_t lfoShapeSample( fpp_t _frame_offset ); diff --git a/include/EnvelopeAndLfoView.h b/include/EnvelopeAndLfoView.h index b5c7a67d46c..0063dc78815 100644 --- a/include/EnvelopeAndLfoView.h +++ b/include/EnvelopeAndLfoView.h @@ -30,9 +30,6 @@ #include "ModelView.h" -class QPaintEvent; -class QPixmap; - namespace lmms { @@ -46,6 +43,8 @@ class Knob; class LedCheckBox; class PixmapButton; class TempoSyncKnob; +class EnvelopeGraph; +class LfoGraph; @@ -62,8 +61,6 @@ class EnvelopeAndLfoView : public QWidget, public ModelView void dragEnterEvent( QDragEnterEvent * _dee ) override; void dropEvent( QDropEvent * _de ) override; - void mousePressEvent( QMouseEvent * _me ) override; - void paintEvent( QPaintEvent * _pe ) override; protected slots: @@ -71,13 +68,10 @@ protected slots: private: - static QPixmap * s_envGraph; - static QPixmap * s_lfoGraph; - EnvelopeAndLfoParameters * m_params; - // envelope stuff + EnvelopeGraph* m_envelopeGraph; Knob * m_predelayKnob; Knob * m_attackKnob; Knob * m_holdKnob; @@ -87,6 +81,7 @@ protected slots: Knob * m_amountKnob; // LFO stuff + LfoGraph* m_lfoGraph; Knob * m_lfoPredelayKnob; Knob * m_lfoAttackKnob; TempoSyncKnob * m_lfoSpeedKnob; @@ -96,8 +91,6 @@ protected slots: LedCheckBox * m_x100Cb; LedCheckBox * m_controlEnvAmountCb; - - float m_randomGraph; } ; } // namespace gui diff --git a/include/EnvelopeGraph.h b/include/EnvelopeGraph.h new file mode 100644 index 00000000000..4f8a5c38679 --- /dev/null +++ b/include/EnvelopeGraph.h @@ -0,0 +1,77 @@ +/* + * EnvelopeGraph.h - Displays envelope graphs + * + * Copyright (c) 2004-2009 Tobias Doerffel + * Copyright (c) 2024- Michael Gregorius + * + * This file is part of LMMS - https://lmms.io + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#ifndef LMMS_GUI_ENVELOPE_GRAPH_H +#define LMMS_GUI_ENVELOPE_GRAPH_H + +#include + +#include "ModelView.h" +#include "embed.h" + +namespace lmms +{ + +class EnvelopeAndLfoParameters; + +namespace gui +{ + +class EnvelopeGraph : public QWidget, public ModelView +{ +public: + enum class ScalingMode + { + Dynamic, + Absolute, + Relative + }; + +public: + EnvelopeGraph(QWidget* parent); + +protected: + void modelChanged() override; + + void mousePressEvent(QMouseEvent*) override; + void contextMenuEvent(QContextMenuEvent*) override; + void paintEvent(QPaintEvent*) override; + +private: + void toggleAmountModel(); + +private: + QPixmap m_envGraph = embed::getIconPixmap("envelope_graph"); + + EnvelopeAndLfoParameters* m_params = nullptr; + + ScalingMode m_scaling = ScalingMode::Dynamic; +}; + +} // namespace gui + +} // namespace lmms + +#endif // LMMS_GUI_ENVELOPE_GRAPH_H diff --git a/include/Fader.h b/include/Fader.h index b46bed11b47..53e353a3dc5 100644 --- a/include/Fader.h +++ b/include/Fader.h @@ -53,6 +53,8 @@ #include "AutomatableModelView.h" +#include "embed.h" +#include "lmms_math.h" namespace lmms::gui @@ -65,21 +67,21 @@ class LMMS_EXPORT Fader : public QWidget, public FloatModelView { Q_OBJECT public: - Q_PROPERTY( QColor peakGreen READ peakGreen WRITE setPeakGreen ) - Q_PROPERTY( QColor peakRed READ peakRed WRITE setPeakRed ) - Q_PROPERTY( QColor peakYellow READ peakYellow WRITE setPeakYellow ) - Q_PROPERTY( bool levelsDisplayedInDBFS READ getLevelsDisplayedInDBFS WRITE setLevelsDisplayedInDBFS ) - - Fader( FloatModel * _model, const QString & _name, QWidget * _parent ); - Fader( FloatModel * _model, const QString & _name, QWidget * _parent, QPixmap * back, QPixmap * leds, QPixmap * knob ); + Q_PROPERTY(QColor peakOk MEMBER m_peakOk) + Q_PROPERTY(QColor peakClip MEMBER m_peakClip) + Q_PROPERTY(QColor peakWarn MEMBER m_peakWarn) + Q_PROPERTY(bool levelsDisplayedInDBFS MEMBER m_levelsDisplayedInDBFS) + Q_PROPERTY(bool renderUnityLine READ getRenderUnityLine WRITE setRenderUnityLine) + Q_PROPERTY(QColor unityMarker MEMBER m_unityMarker) + + Fader(FloatModel* model, const QString& name, QWidget* parent); + Fader(FloatModel* model, const QString& name, QWidget* parent, const QPixmap& knob); ~Fader() override = default; - void init(FloatModel * model, QString const & name); - - void setPeak_L( float fPeak ); + void setPeak_L(float fPeak); float getPeak_L() { return m_fPeakValue_L; } - void setPeak_R( float fPeak ); + void setPeak_R(float fPeak); float getPeak_R() { return m_fPeakValue_R; } inline float getMinPeak() const { return m_fMinPeak; } @@ -88,87 +90,74 @@ class LMMS_EXPORT Fader : public QWidget, public FloatModelView inline float getMaxPeak() const { return m_fMaxPeak; } inline void setMaxPeak(float maxPeak) { m_fMaxPeak = maxPeak; } - QColor const & peakGreen() const; - void setPeakGreen( const QColor & c ); - - QColor const & peakRed() const; - void setPeakRed( const QColor & c ); - - QColor const & peakYellow() const; - void setPeakYellow( const QColor & c ); + inline bool getRenderUnityLine() const { return m_renderUnityLine; } + inline void setRenderUnityLine(bool value = true) { m_renderUnityLine = value; } - inline bool getLevelsDisplayedInDBFS() const { return m_levelsDisplayedInDBFS; } - inline void setLevelsDisplayedInDBFS(bool value = true) { m_levelsDisplayedInDBFS = value; } - - void setDisplayConversion( bool b ) + void setDisplayConversion(bool b) { m_conversionFactor = b ? 100.0 : 1.0; } - inline void setHintText( const QString & _txt_before, - const QString & _txt_after ) + inline void setHintText(const QString& txt_before, + const QString& txt_after) { - setDescription( _txt_before ); - setUnit( _txt_after ); + setDescription(txt_before); + setUnit(txt_after); } -private: - void contextMenuEvent( QContextMenuEvent * _me ) override; - void mousePressEvent( QMouseEvent *ev ) override; - void mouseDoubleClickEvent( QMouseEvent* mouseEvent ) override; - void mouseMoveEvent( QMouseEvent *ev ) override; - void mouseReleaseEvent( QMouseEvent * _me ) override; - void wheelEvent( QWheelEvent *ev ) override; - void paintEvent( QPaintEvent *ev ) override; +signals: + void peakChanged(float peak); - inline bool clips(float const & value) const { return value >= 1.0f; } +private: + void contextMenuEvent(QContextMenuEvent* me) override; + void mousePressEvent(QMouseEvent* ev) override; + void mouseDoubleClickEvent(QMouseEvent* mouseEvent) override; + void mouseMoveEvent(QMouseEvent* ev) override; + void mouseReleaseEvent(QMouseEvent* me) override; + void wheelEvent(QWheelEvent* ev) override; + void paintEvent(QPaintEvent* ev) override; - void paintDBFSLevels(QPaintEvent *ev, QPainter & painter); - void paintLinearLevels(QPaintEvent *ev, QPainter & painter); + void paintLevels(QPaintEvent* ev, QPainter& painter, bool linear = false); int knobPosY() const { float fRange = model()->maxValue() - model()->minValue(); float realVal = model()->value() - model()->minValue(); - return height() - ( ( height() - m_knob->height() ) * ( realVal / fRange ) ); + return height() - ((height() - m_knob.height()) * (realVal / fRange)); } - void setPeak( float fPeak, float &targetPeak, float &persistentPeak, QElapsedTimer &lastPeakTimer ); - int calculateDisplayPeak( float fPeak ); + void setPeak(float fPeak, float& targetPeak, float& persistentPeak, QElapsedTimer& lastPeakTimer); void updateTextFloat(); // Private members private: - float m_fPeakValue_L; - float m_fPeakValue_R; - float m_persistentPeak_L; - float m_persistentPeak_R; - float m_fMinPeak; - float m_fMaxPeak; + float m_fPeakValue_L {0.}; + float m_fPeakValue_R {0.}; + float m_persistentPeak_L {0.}; + float m_persistentPeak_R {0.}; + float m_fMinPeak {dbfsToAmp(-42)}; + float m_fMaxPeak {dbfsToAmp(9)}; QElapsedTimer m_lastPeakTimer_L; QElapsedTimer m_lastPeakTimer_R; - static QPixmap * s_back; - static QPixmap * s_leds; - static QPixmap * s_knob; - - QPixmap * m_back; - QPixmap * m_leds; - QPixmap * m_knob; + QPixmap m_knob {embed::getIconPixmap("fader_knob")}; + + bool m_levelsDisplayedInDBFS {true}; - bool m_levelsDisplayedInDBFS; + int m_moveStartPoint {-1}; + float m_startValue {0.}; - int m_moveStartPoint; - float m_startValue; + static SimpleTextFloat* s_textFloat; - static SimpleTextFloat * s_textFloat; + QColor m_peakOk {10, 212, 92}; + QColor m_peakClip {193, 32, 56}; + QColor m_peakWarn {214, 236, 82}; + QColor m_unityMarker {63, 63, 63, 255}; - QColor m_peakGreen; - QColor m_peakRed; - QColor m_peakYellow; + bool m_renderUnityLine {true}; } ; diff --git a/include/FileBrowser.h b/include/FileBrowser.h index 02fec27192a..9193da5e405 100644 --- a/include/FileBrowser.h +++ b/include/FileBrowser.h @@ -28,25 +28,19 @@ #include #include #include +#include +#include -#ifdef __MINGW32__ -#include -#include -#include -#else -#include -#include -#include -#endif +#include "FileSearch.h" +#include "embed.h" #if (QT_VERSION >= QT_VERSION_CHECK(5,14,0)) #include #endif #include - #include "SideBarWidget.h" - +#include "lmmsconfig.h" class QLineEdit; @@ -77,18 +71,31 @@ class FileBrowser : public SideBarWidget */ FileBrowser( const QString & directories, const QString & filter, const QString & title, const QPixmap & pm, - QWidget * parent, bool dirs_as_items = false, bool recurse = false, + QWidget * parent, bool dirs_as_items = false, const QString& userDir = "", const QString& factoryDir = ""); ~FileBrowser() override = default; - static QDir::Filters dirFilters(); + static QStringList excludedPaths() + { + static auto s_excludedPaths = QStringList{ +#ifdef LMMS_BUILD_LINUX + "/bin", "/boot", "/dev", "/etc", "/proc", "/run", "/sbin", + "/sys" +#endif +#ifdef LMMS_BUILD_WIN32 + "C:\\Windows" +#endif + }; + return s_excludedPaths; + } + static QDir::Filters dirFilters() { return QDir::AllDirs | QDir::Files | QDir::NoDotAndDotDot | QDir::Hidden; } + static QDir::SortFlags sortFlags() { return QDir::LocaleAware | QDir::DirsFirst | QDir::Name | QDir::IgnoreCase; } private slots: void reloadTree(); - void expandItems( QTreeWidgetItem * item=nullptr, QList expandedDirs = QList() ); - bool filterAndExpandItems(const QString & filter, QTreeWidgetItem * item = nullptr); + void expandItems(const QList& expandedDirs, QTreeWidgetItem* item = nullptr); void giveFocusToFilter(); private: @@ -99,24 +106,33 @@ private slots: void saveDirectoriesStates(); void restoreDirectoriesStates(); - void buildSearchTree(QStringList matches, QString id); + void foundSearchMatch(FileSearch* search, const QString& match); + void searchCompleted(FileSearch* search); void onSearch(const QString& filter); - void toggleSearch(bool on); + void displaySearch(bool on); + + void addContentCheckBox(); FileBrowserTreeWidget * m_fileBrowserTreeWidget; FileBrowserTreeWidget * m_searchTreeWidget; QLineEdit * m_filterEdit; + std::shared_ptr m_currentSearch; + QProgressBar* m_searchIndicator = nullptr; + QString m_directories; //!< Directories to search, split with '*' QString m_filter; //!< Filter as used in QDir::match() bool m_dirsAsItems; - bool m_recurse; - void addContentCheckBox(); QCheckBox* m_showUserContent = nullptr; QCheckBox* m_showFactoryContent = nullptr; + QCheckBox* m_showHiddenContent = nullptr; + + QBoxLayout *filterWidgetLayout = nullptr; + QBoxLayout *hiddenWidgetLayout = nullptr; + QBoxLayout *outerLayout = nullptr; QString m_userDir; QString m_factoryDir; QList m_savedExpandedDirs; @@ -183,54 +199,12 @@ private slots: } ; -class FileBrowserSearcher : public QObject -{ - Q_OBJECT -public: - struct SearchTask - { - QString directories; - QString userFilter; - QDir::Filters dirFilters; - QStringList nameFilters; - QString id; - }; - - FileBrowserSearcher(); - ~FileBrowserSearcher() noexcept override; - - void search(SearchTask task); - void cancel(); - - bool inHiddenDirectory(const QString& path); - - static FileBrowserSearcher* instance(); - -signals: - void searchComplete(QStringList matches, QString id); - -private: - void run(); - void filter(); - SearchTask m_currentTask; - std::thread m_worker; - std::mutex m_runMutex; - std::mutex m_cancelMutex; - std::condition_variable m_runCond; - std::atomic m_cancel = false; - bool m_stopped = false; - bool m_run = false; - inline static std::unique_ptr s_instance = nullptr; -}; - - class Directory : public QTreeWidgetItem { public: - Directory( const QString & filename, const QString & path, - const QString & filter ); + Directory(const QString& filename, const QString& path, const QString& filter, bool disableEntryPopulation = false); void update(); @@ -255,14 +229,12 @@ class Directory : public QTreeWidgetItem private: - void initPixmaps(); - bool addItems( const QString & path ); - static QPixmap * s_folderPixmap; - static QPixmap * s_folderOpenedPixmap; - static QPixmap * s_folderLockedPixmap; + QPixmap m_folderPixmap = embed::getIconPixmap("folder"); + QPixmap m_folderOpenedPixmap = embed::getIconPixmap("folder_opened"); + QPixmap m_folderLockedPixmap = embed::getIconPixmap("folder_locked"); //! Directories that lead here //! Initially, this is just set to the current path of a directory @@ -275,7 +247,7 @@ class Directory : public QTreeWidgetItem QString m_filter; int m_dirCount; - + bool m_disableEntryPopulation = false; } ; @@ -339,14 +311,6 @@ class FileItem : public QTreeWidgetItem void initPixmaps(); void determineFileType(); - static QPixmap * s_projectFilePixmap; - static QPixmap * s_presetFilePixmap; - static QPixmap * s_sampleFilePixmap; - static QPixmap * s_soundfontFilePixmap; - static QPixmap * s_vstPluginFilePixmap; - static QPixmap * s_midiFilePixmap; - static QPixmap * s_unknownFilePixmap; - QString m_path; FileType m_type; FileHandling m_handling; diff --git a/include/FileSearch.h b/include/FileSearch.h new file mode 100644 index 00000000000..fd311c9031e --- /dev/null +++ b/include/FileSearch.h @@ -0,0 +1,73 @@ +/* + * FileSearch.h - File system search task + * + * Copyright (c) 2024 saker + * + * This file is part of LMMS - https://lmms.io + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#ifndef LMMS_FILE_SEARCH_H +#define LMMS_FILE_SEARCH_H + +#include +#include +#include + +namespace lmms { +//! A Qt object that encapsulates the operation of searching the file system. +class FileSearch : public QObject +{ + Q_OBJECT +public: + //! Number of milliseconds the search waits before signaling a matching result. + static constexpr int MillisecondsBetweenResults = 1; + + //! Create a `FileSearch` object that uses the specified string filter `filter` and extension filters in + //! `extensions` to search within the given `paths`. + //! `excludedPaths`, `dirFilters`, and `sortFlags` can optionally be specified to exclude certain directories, filter + //! out certain types of entries, and sort the matches. + FileSearch(const QString& filter, const QStringList& paths, const QStringList& extensions, + const QStringList& excludedPaths = {}, QDir::Filters dirFilters = QDir::Filters{}, + QDir::SortFlags sortFlags = QDir::SortFlags{}); + + //! Execute the search, emitting the `foundResult` signal when matches are found. + void operator()(); + + //! Cancel the search. + void cancel(); + +signals: + //! Emitted when a result is found when searching the file system. + void foundMatch(FileSearch* search, const QString& match); + + //! Emitted when the search completes. + void searchCompleted(FileSearch* search); + +private: + static auto isPathExcluded(const QString& path) -> bool; + QString m_filter; + QStringList m_paths; + QStringList m_extensions; + QStringList m_excludedPaths; + QDir::Filters m_dirFilters; + QDir::SortFlags m_sortFlags; + std::atomic m_cancel = false; +}; +} // namespace lmms +#endif // LMMS_FILE_SEARCH_H diff --git a/plugins/Flanger/Noise.cpp b/include/FontHelper.h similarity index 59% rename from plugins/Flanger/Noise.cpp rename to include/FontHelper.h index 263fb7c458f..ccef24775d3 100644 --- a/plugins/Flanger/Noise.cpp +++ b/include/FontHelper.h @@ -1,7 +1,7 @@ /* - * noise.cpp - defination of Noise class. + * FontHelper.h - Header function to help with fonts * - * Copyright (c) 2014 David French + * Copyright (c) 2005-2008 Tobias Doerffel * * This file is part of LMMS - https://lmms.io * @@ -22,25 +22,26 @@ * */ -#include "Noise.h" -#include "lmms_math.h" +#ifndef LMMS_FONT_HELPER_H +#define LMMS_FONT_HELPER_H -namespace lmms -{ +#include +#include +constexpr int DEFAULT_FONT_SIZE = 12; +constexpr int SMALL_FONT_SIZE = 10; +constexpr int LARGE_FONT_SIZE = 14; -Noise::Noise() +namespace lmms::gui { - inv_randmax = 1.0/FAST_RAND_MAX; /* for range of 0 - 1.0 */ -} - - - -float Noise::tick() +// Convenience method to set the font size in pixels +inline QFont adjustedToPixelSize(QFont font, int size) { - return (float) ((2.0 * fast_rand() * inv_randmax) - 1.0); + font.setPixelSize(size); + return font; } +} // namespace lmms::gui -} // namespace lmms \ No newline at end of file +#endif // LMMS_FONT_HELPER_H diff --git a/include/GroupBox.h b/include/GroupBox.h index 6a8f424f9f0..fdeb31c4d9c 100644 --- a/include/GroupBox.h +++ b/include/GroupBox.h @@ -50,6 +50,21 @@ class GroupBox : public QWidget, public BoolModelView return m_led; } + /** + * @brief Returns whether the LED button is shown or not + * + * @return true LED button is shown + * @return false LED button is hidden + */ + bool ledButtonShown() const; + + /** + * @brief Sets if the LED check box is shown or not + * + * @param value Set to true to show the LED check box or to false to hide it. + */ + void setLedButtonShown(bool value); + int titleBarHeight() const { return m_titleBarHeight; diff --git a/include/Instrument.h b/include/Instrument.h index f23e0b401f3..3f701f12ef5 100644 --- a/include/Instrument.h +++ b/include/Instrument.h @@ -31,10 +31,12 @@ #include "Flags.h" #include "lmms_export.h" #include "lmms_basics.h" -#include "MemoryManager.h" #include "Plugin.h" #include "TimePos.h" +#include + + namespace lmms { @@ -43,11 +45,11 @@ class InstrumentTrack; class MidiEvent; class NotePlayHandle; class Track; +class SampleFrame; class LMMS_EXPORT Instrument : public Plugin { - MM_OPERATORS public: enum class Flag { @@ -61,7 +63,8 @@ class LMMS_EXPORT Instrument : public Plugin Instrument(InstrumentTrack * _instrument_track, const Descriptor * _descriptor, - const Descriptor::SubPluginFeatures::Key * key = nullptr); + const Descriptor::SubPluginFeatures::Key * key = nullptr, + Flags flags = Flag::NoFlags); ~Instrument() override = default; // -------------------------------------------------------------------- @@ -73,11 +76,11 @@ class LMMS_EXPORT Instrument : public Plugin // if the plugin doesn't play each note, it can create an instrument- // play-handle and re-implement this method, so that it mixes its // output buffer only once per audio engine period - virtual void play( sampleFrame * _working_buffer ); + virtual void play( SampleFrame* _working_buffer ); // to be implemented by actual plugin virtual void playNote( NotePlayHandle * /* _note_to_play */, - sampleFrame * /* _working_buf */ ) + SampleFrame* /* _working_buf */ ) { } @@ -93,18 +96,39 @@ class LMMS_EXPORT Instrument : public Plugin virtual f_cnt_t beatLen( NotePlayHandle * _n ) const; - // some instruments need a certain number of release-frames even - // if no envelope is active - such instruments can re-implement this - // method for returning how many frames they at least like to have for - // release - virtual f_cnt_t desiredReleaseFrames() const + // This method can be overridden by instruments that need a certain + // release time even if no envelope is active. It returns the time + // in milliseconds that these instruments would like to have for + // their release stage. + virtual float desiredReleaseTimeMs() const + { + return 0.f; + } + + // Converts the desired release time in milliseconds to the corresponding + // number of frames depending on the sample rate. + f_cnt_t desiredReleaseFrames() const { - return 0; + const sample_rate_t sampleRate = getSampleRate(); + + return static_cast(std::ceil(desiredReleaseTimeMs() * sampleRate / 1000.f)); } - virtual Flags flags() const + sample_rate_t getSampleRate() const; + + bool isSingleStreamed() const { - return Flag::NoFlags; + return m_flags.testFlag(Instrument::Flag::IsSingleStreamed); + } + + bool isMidiBased() const + { + return m_flags.testFlag(Instrument::Flag::IsMidiBased); + } + + bool isBendable() const + { + return !m_flags.testFlag(Instrument::Flag::IsNotBendable); } // sub-classes can re-implement this for receiving all incoming @@ -137,18 +161,20 @@ class LMMS_EXPORT Instrument : public Plugin protected: // fade in to prevent clicks - void applyFadeIn(sampleFrame * buf, NotePlayHandle * n); + void applyFadeIn(SampleFrame* buf, NotePlayHandle * n); // instruments may use this to apply a soft fade out at the end of // notes - method does this only if really less or equal // desiredReleaseFrames() frames are left - void applyRelease( sampleFrame * buf, const NotePlayHandle * _n ); + void applyRelease( SampleFrame* buf, const NotePlayHandle * _n ); + + float computeReleaseTimeMsByFrameCount(f_cnt_t frames) const; private: InstrumentTrack * m_instrumentTrack; - -} ; + Flags m_flags; +}; LMMS_DECLARE_OPERATORS_FOR_FLAGS(Instrument::Flag) diff --git a/include/InstrumentFunctions.h b/include/InstrumentFunctions.h index 59c651a68c4..aa2e6de6862 100644 --- a/include/InstrumentFunctions.h +++ b/include/InstrumentFunctions.h @@ -25,11 +25,12 @@ #ifndef LMMS_INSTRUMENT_FUNCTIONS_H #define LMMS_INSTRUMENT_FUNCTIONS_H -#include "JournallingObject.h" -#include "lmms_basics.h" +#include + #include "AutomatableModel.h" -#include "TempoSyncKnobModel.h" #include "ComboBoxModel.h" +#include "JournallingObject.h" +#include "TempoSyncKnobModel.h" namespace lmms { diff --git a/include/InstrumentPlayHandle.h b/include/InstrumentPlayHandle.h index dc744b4ffdb..c3d9c13bca2 100644 --- a/include/InstrumentPlayHandle.h +++ b/include/InstrumentPlayHandle.h @@ -41,7 +41,7 @@ class LMMS_EXPORT InstrumentPlayHandle : public PlayHandle ~InstrumentPlayHandle() override = default; - void play(sampleFrame * working_buffer) override; + void play(SampleFrame* working_buffer) override; bool isFinished() const override { diff --git a/include/InstrumentSoundShaping.h b/include/InstrumentSoundShaping.h index fb5f1e8bd90..7dfeaf58bf3 100644 --- a/include/InstrumentSoundShaping.h +++ b/include/InstrumentSoundShaping.h @@ -34,6 +34,7 @@ namespace lmms class InstrumentTrack; class EnvelopeAndLfoParameters; class NotePlayHandle; +class SampleFrame; namespace gui { @@ -48,7 +49,7 @@ class InstrumentSoundShaping : public Model, public JournallingObject InstrumentSoundShaping( InstrumentTrack * _instrument_track ); ~InstrumentSoundShaping() override = default; - void processAudioBuffer( sampleFrame * _ab, const fpp_t _frames, + void processAudioBuffer( SampleFrame* _ab, const fpp_t _frames, NotePlayHandle * _n ); enum class Target diff --git a/include/InstrumentSoundShapingView.h b/include/InstrumentSoundShapingView.h index 8f671514a89..c9caea28c37 100644 --- a/include/InstrumentSoundShapingView.h +++ b/include/InstrumentSoundShapingView.h @@ -56,7 +56,7 @@ class InstrumentSoundShapingView : public QWidget, public ModelView void modelChanged() override; - InstrumentSoundShaping * m_ss; + InstrumentSoundShaping * m_ss = nullptr; TabWidget * m_targetsTabWidget; EnvelopeAndLfoView * m_envLfoViews[InstrumentSoundShaping::NumTargets]; diff --git a/include/InstrumentTrack.h b/include/InstrumentTrack.h index 5efafe0c72b..689c962cdab 100644 --- a/include/InstrumentTrack.h +++ b/include/InstrumentTrack.h @@ -26,6 +26,8 @@ #ifndef LMMS_INSTRUMENT_TRACK_H #define LMMS_INSTRUMENT_TRACK_H +#include + #include "AudioPort.h" #include "InstrumentFunctions.h" #include "InstrumentSoundShaping.h" @@ -60,14 +62,13 @@ class MidiCCRackView; class LMMS_EXPORT InstrumentTrack : public Track, public MidiEventProcessor { Q_OBJECT - MM_OPERATORS mapPropertyFromModel(int,getVolume,setVolume,m_volumeModel); public: InstrumentTrack( TrackContainer* tc ); ~InstrumentTrack() override; // used by instrument - void processAudioBuffer( sampleFrame * _buf, const fpp_t _frames, + void processAudioBuffer( SampleFrame* _buf, const fpp_t _frames, NotePlayHandle * _n ); MidiEvent applyMasterKey( const MidiEvent& event ); @@ -87,7 +88,7 @@ class LMMS_EXPORT InstrumentTrack : public Track, public MidiEventProcessor // for capturing note-play-events -> need that for arpeggio, // filter and so on - void playNote( NotePlayHandle * _n, sampleFrame * _working_buffer ); + void playNote( NotePlayHandle * _n, SampleFrame* _working_buffer ); QString instrumentName() const; const Instrument *instrument() const @@ -132,8 +133,7 @@ class LMMS_EXPORT InstrumentTrack : public Track, public MidiEventProcessor // called by track - void saveTrackSpecificSettings( QDomDocument & _doc, - QDomElement & _parent ) override; + void saveTrackSpecificSettings(QDomDocument& doc, QDomElement& parent, bool presetMode) override; void loadTrackSpecificSettings( const QDomElement & _this ) override; using Track::setJournalling; diff --git a/include/InstrumentTrackView.h b/include/InstrumentTrackView.h index d7d5fb83a39..c7d524b36cf 100644 --- a/include/InstrumentTrackView.h +++ b/include/InstrumentTrackView.h @@ -25,7 +25,7 @@ #ifndef LMMS_GUI_INSTRUMENT_TRACK_VIEW_H #define LMMS_GUI_INSTRUMENT_TRACK_VIEW_H -#include "MixerLineLcdSpinBox.h" +#include "MixerChannelLcdSpinBox.h" #include "TrackView.h" #include "InstrumentTrack.h" @@ -93,13 +93,15 @@ private slots: void handleConfigChange(QString cls, QString attr, QString value); +private: + static QPixmap determinePixmap(InstrumentTrack* instrumentTrack); private: InstrumentTrackWindow * m_window; // widgets in track-settings-widget TrackLabelButton * m_tlb; - MixerLineLcdSpinBox* m_mixerChannelNumber; + MixerChannelLcdSpinBox* m_mixerChannelNumber; Knob * m_volumeKnob; Knob * m_panningKnob; FadeButton * m_activityIndicator; diff --git a/include/InstrumentTrackWindow.h b/include/InstrumentTrackWindow.h index 971c63899c3..f44430d0e39 100644 --- a/include/InstrumentTrackWindow.h +++ b/include/InstrumentTrackWindow.h @@ -29,6 +29,7 @@ #include "ModelView.h" #include "SerializingObject.h" +#include "PluginView.h" class QLabel; class QLineEdit; @@ -43,7 +44,7 @@ namespace gui { class EffectRackView; -class MixerLineLcdSpinBox; +class MixerChannelLcdSpinBox; class InstrumentFunctionArpeggioView; class InstrumentFunctionNoteStackingView; class InstrumentMidiIOView; @@ -67,6 +68,9 @@ class InstrumentTrackWindow : public QWidget, public ModelView, InstrumentTrackWindow( InstrumentTrackView * _tv ); ~InstrumentTrackWindow() override; + void resizeEvent(QResizeEvent* event) override; + + // parent for all internal tab-widgets TabWidget * tabWidgetParent() { @@ -142,7 +146,7 @@ protected slots: QLabel * m_pitchLabel; LcdSpinBox* m_pitchRangeSpinBox; QLabel * m_pitchRangeLabel; - MixerLineLcdSpinBox * m_mixerChannelNumber; + MixerChannelLcdSpinBox * m_mixerChannelNumber; @@ -152,6 +156,7 @@ protected slots: InstrumentSoundShapingView * m_ssView; InstrumentFunctionNoteStackingView* m_noteStackingView; InstrumentFunctionArpeggioView* m_arpeggioView; + QWidget* m_instrumentFunctionsView; // container of note stacking and arpeggio InstrumentMidiIOView * m_midiView; EffectRackView * m_effectView; InstrumentTuningView *m_tuningView; diff --git a/include/IoHelper.h b/include/IoHelper.h index 40c576b8354..3c453fa58ac 100644 --- a/include/IoHelper.h +++ b/include/IoHelper.h @@ -75,13 +75,12 @@ inline FILE* F_OPEN_UTF8(std::string const& fname, const char* mode){ inline int fileToDescriptor(FILE* f, bool closeFile = true) { - int fh; if (f == nullptr) {return -1;} #ifdef LMMS_BUILD_WIN32 - fh = _dup(_fileno(f)); + int fh = _dup(_fileno(f)); #else - fh = dup(fileno(f)); + int fh = dup(fileno(f)); #endif if (closeFile) {fclose(f);} diff --git a/include/LadspaBase.h b/include/LadspaBase.h index 6569c5a309e..0a2b067d4f2 100644 --- a/include/LadspaBase.h +++ b/include/LadspaBase.h @@ -26,6 +26,8 @@ #ifndef LMMS_LADSPA_BASE_H #define LMMS_LADSPA_BASE_H +#include + #include "LadspaManager.h" #include "Plugin.h" @@ -75,7 +77,7 @@ inline Plugin::Descriptor::SubPluginFeatures::Key ladspaKeyToSubPluginKey( { Plugin::Descriptor::SubPluginFeatures::Key::AttributeMap m; QString file = _key.first; - m["file"] = file.remove( QRegExp( "\\.so$" ) ).remove( QRegExp( "\\.dll$" ) ); + m["file"] = file.remove(QRegularExpression("\\.so$")).remove(QRegularExpression("\\.dll$")); m["plugin"] = _key.second; return Plugin::Descriptor::SubPluginFeatures::Key( _desc, _name, m ); } diff --git a/include/LcdWidget.h b/include/LcdWidget.h index cef121b3fce..f900fea1500 100644 --- a/include/LcdWidget.h +++ b/include/LcdWidget.h @@ -47,8 +47,6 @@ class LMMS_EXPORT LcdWidget : public QWidget LcdWidget(int numDigits, const QString& style, QWidget* parent, const QString& name = QString(), bool leadingZero = false); - ~LcdWidget() override; - void setValue(int value); void setValue(float value); void setLabel(const QString& label); @@ -98,7 +96,7 @@ public slots: QString m_display; QString m_label; - QPixmap* m_lcdPixmap; + QPixmap m_lcdPixmap; QColor m_textColor; QColor m_textShadowColor; diff --git a/include/LedCheckBox.h b/include/LedCheckBox.h index aaafffaa14e..4f23cd74b1b 100644 --- a/include/LedCheckBox.h +++ b/include/LedCheckBox.h @@ -54,9 +54,6 @@ class LMMS_EXPORT LedCheckBox : public AutomatableButton LedColor _color = LedColor::Yellow, bool legacyMode = true); - ~LedCheckBox() override; - - inline const QString & text() { return( m_text ); @@ -71,8 +68,8 @@ class LMMS_EXPORT LedCheckBox : public AutomatableButton private: - QPixmap * m_ledOnPixmap; - QPixmap * m_ledOffPixmap; + QPixmap m_ledOnPixmap; + QPixmap m_ledOffPixmap; QString m_text; diff --git a/include/LfoController.h b/include/LfoController.h index 109edbd3fd8..01b4b1862f7 100644 --- a/include/LfoController.h +++ b/include/LfoController.h @@ -87,7 +87,7 @@ public slots: private: float m_heldSample; - SampleBuffer * m_userDefSampleBuffer; + std::shared_ptr m_userDefSampleBuffer = SampleBuffer::emptyBuffer(); protected slots: void updatePhase(); diff --git a/include/LfoGraph.h b/include/LfoGraph.h new file mode 100644 index 00000000000..9d566770f09 --- /dev/null +++ b/include/LfoGraph.h @@ -0,0 +1,65 @@ +/* + * LfoGraph.h - Displays LFO graphs + * + * Copyright (c) 2004-2009 Tobias Doerffel + * Copyright (c) 2024- Michael Gregorius + * + * This file is part of LMMS - https://lmms.io + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#ifndef LMMS_GUI_LFO_GRAPH_H +#define LMMS_GUI_LFO_GRAPH_H + +#include + +#include "ModelView.h" +#include "embed.h" + +namespace lmms +{ + +class EnvelopeAndLfoParameters; + +namespace gui +{ + +class LfoGraph : public QWidget, public ModelView +{ +public: + LfoGraph(QWidget* parent); + +protected: + void mousePressEvent(QMouseEvent* me) override; + void paintEvent(QPaintEvent* pe) override; + +private: + void drawInfoText(const EnvelopeAndLfoParameters&); + void toggleAmountModel(); + +private: + QPixmap m_lfoGraph = embed::getIconPixmap("lfo_graph"); + + float m_randomGraph {0.}; +}; + +} // namespace gui + +} // namespace lmms + +#endif // LMMS_GUI_LFO_GRAPH_H diff --git a/include/LocaleHelper.h b/include/LocaleHelper.h index 9c829fcaa61..c1e1b473566 100644 --- a/include/LocaleHelper.h +++ b/include/LocaleHelper.h @@ -39,10 +39,9 @@ namespace lmms::LocaleHelper inline double toDouble(QString str, bool* ok = nullptr) { bool isOkay; - double value; QLocale c(QLocale::C); c.setNumberOptions(QLocale::RejectGroupSeparator); - value = c.toDouble(str, &isOkay); + double value = c.toDouble(str, &isOkay); if (!isOkay) { QLocale german(QLocale::German); diff --git a/include/LocklessAllocator.h b/include/LocklessAllocator.h index d44b9954374..1652ac71d66 100644 --- a/include/LocklessAllocator.h +++ b/include/LocklessAllocator.h @@ -50,8 +50,8 @@ class LocklessAllocator std::atomic_int * m_freeState; size_t m_freeStateSets; - std::atomic_int m_available; - std::atomic_int m_startIndex; + std::atomic_size_t m_available; + std::atomic_size_t m_startIndex; } ; diff --git a/include/LocklessRingBuffer.h b/include/LocklessRingBuffer.h index 2d65badfe58..ec3f4fc52de 100644 --- a/include/LocklessRingBuffer.h +++ b/include/LocklessRingBuffer.h @@ -28,9 +28,9 @@ #include #include -#include "lmms_basics.h" -#include "../src/3rdparty/ringbuffer/include/ringbuffer/ringbuffer.h" +#include +#include "lmms_basics.h" namespace lmms { diff --git a/include/Lv2Basics.h b/include/Lv2Basics.h index 53489e30d10..5b286586875 100644 --- a/include/Lv2Basics.h +++ b/include/Lv2Basics.h @@ -1,7 +1,7 @@ /* * Lv2Basics.h - basic Lv2 utils * - * Copyright (c) 2018-2023 Johannes Lorenz + * Copyright (c) 2018-2024 Johannes Lorenz * * This file is part of LMMS - https://lmms.io * @@ -37,6 +37,12 @@ namespace lmms { +template +struct LilvPtrDeleter +{ + void operator()(T* n) { lilv_free(static_cast(n)); } +}; + struct LilvNodeDeleter { void operator()(LilvNode* n) { lilv_node_free(n); } @@ -52,6 +58,8 @@ struct LilvScalePointsDeleter void operator()(LilvScalePoints* s) { lilv_scale_points_free(s); } }; +template +using AutoLilvPtr = std::unique_ptr>; using AutoLilvNode = std::unique_ptr; using AutoLilvNodes = std::unique_ptr; using AutoLilvScalePoints = std::unique_ptr; diff --git a/include/Lv2ControlBase.h b/include/Lv2ControlBase.h index 2d44f0ecf56..8ee235ad898 100644 --- a/include/Lv2ControlBase.h +++ b/include/Lv2ControlBase.h @@ -43,6 +43,7 @@ namespace lmms class Lv2Proc; class PluginIssue; +class SampleFrame; /** Common base class for Lv2 plugins @@ -102,9 +103,6 @@ class LMMS_EXPORT Lv2ControlBase : public LinkedModelGroups Lv2ControlBase& operator=(const Lv2ControlBase&) = delete; - //! Must be checked after ctor or reload - bool isValid() const { return m_valid; } - /* overrides */ @@ -121,9 +119,9 @@ class LMMS_EXPORT Lv2ControlBase : public LinkedModelGroups void copyModelsToLmms() const; //! Copy buffer passed by LMMS into our ports - void copyBuffersFromLmms(const sampleFrame *buf, fpp_t frames); + void copyBuffersFromLmms(const SampleFrame* buf, fpp_t frames); //! Copy our ports into buffers passed by LMMS - void copyBuffersToLmms(sampleFrame *buf, fpp_t frames) const; + void copyBuffersToLmms(SampleFrame* buf, fpp_t frames) const; //! Run the Lv2 plugin instance for @param frames frames void run(fpp_t frames); @@ -149,7 +147,6 @@ class LMMS_EXPORT Lv2ControlBase : public LinkedModelGroups //! fulfill LMMS' requirement of having stereo input and output std::vector> m_procs; - bool m_valid = true; bool m_hasGUI = false; unsigned m_channelsPerProc; diff --git a/include/Lv2Manager.h b/include/Lv2Manager.h index 58126a0a448..8a9f5168448 100644 --- a/include/Lv2Manager.h +++ b/include/Lv2Manager.h @@ -1,7 +1,7 @@ /* * Lv2Manager.h - Implementation of Lv2Manager class * - * Copyright (c) 2018-2023 Johannes Lorenz + * Copyright (c) 2018-2024 Johannes Lorenz * * This file is part of LMMS - https://lmms.io * @@ -131,14 +131,23 @@ class Lv2Manager AutoLilvNodes findNodes(const LilvNode *subject, const LilvNode *predicate, const LilvNode *object); - static const std::set& getPluginBlacklist() + static bool pluginIsUnstable(const char* pluginUri) { - return pluginBlacklist; + return unstablePlugins.find(pluginUri) != unstablePlugins.end(); } - static const std::set& getPluginBlacklistBuffersizeLessThan32() + static bool pluginIsOnlyUsefulWithUi(const char* pluginUri) { - return pluginBlacklistBuffersizeLessThan32; + return pluginsOnlyUsefulWithUi.find(pluginUri) != pluginsOnlyUsefulWithUi.end(); } + static bool pluginIsUnstableWithBuffersizeLessEqual32(const char* pluginUri) + { + return unstablePluginsBuffersizeLessEqual32.find(pluginUri) != + unstablePluginsBuffersizeLessEqual32.end(); + } + + //! Whether the user generally wants a UI (and we generally support that) + //! Since we do not generally support UI right now, this will always return false... + static bool wantUi(); private: // general data @@ -154,8 +163,9 @@ class Lv2Manager Lv2UridCache m_uridCache; // static - static const std::set - pluginBlacklist, pluginBlacklistBuffersizeLessThan32; + static const std::set unstablePlugins; + static const std::set pluginsOnlyUsefulWithUi; + static const std::set unstablePluginsBuffersizeLessEqual32; // functions bool isSubclassOf(const LilvPluginClass *clvss, const char *uriStr); diff --git a/include/Lv2Options.h b/include/Lv2Options.h index 603cdda43ac..69d294cbe1f 100644 --- a/include/Lv2Options.h +++ b/include/Lv2Options.h @@ -30,8 +30,8 @@ #ifdef LMMS_HAVE_LV2 #include -#include -#include +#include +#include #include #include #include diff --git a/include/Lv2Ports.h b/include/Lv2Ports.h index e4c896ff3e7..1b2986938a1 100644 --- a/include/Lv2Ports.h +++ b/include/Lv2Ports.h @@ -41,6 +41,7 @@ namespace lmms { +class SampleFrame; struct ConnectPortVisitor; using LV2_Evbuf = struct LV2_Evbuf_Impl; @@ -184,15 +185,15 @@ struct Audio : public VisitablePort //! Copy buffer passed by LMMS into our ports //! @param channel channel index into each sample frame - void copyBuffersFromCore(const sampleFrame *lmmsBuf, + void copyBuffersFromCore(const SampleFrame* lmmsBuf, unsigned channel, fpp_t frames); //! Add buffer passed by LMMS into our ports, and halve the result //! @param channel channel index into each sample frame - void averageWithBuffersFromCore(const sampleFrame *lmmsBuf, + void averageWithBuffersFromCore(const SampleFrame* lmmsBuf, unsigned channel, fpp_t frames); //! Copy our ports into buffers passed by LMMS //! @param channel channel index into each sample frame - void copyBuffersToCore(sampleFrame *lmmsBuf, + void copyBuffersToCore(SampleFrame* lmmsBuf, unsigned channel, fpp_t frames) const; bool isSideChain() const { return m_sidechain; } diff --git a/include/Lv2Proc.h b/include/Lv2Proc.h index 1259aeedee4..f315c5d7a89 100644 --- a/include/Lv2Proc.h +++ b/include/Lv2Proc.h @@ -33,6 +33,8 @@ #include #include +#include + #include "LinkedModelGroups.h" #include "LmmsSemaphore.h" #include "Lv2Basics.h" @@ -40,7 +42,6 @@ #include "Lv2Options.h" #include "Lv2Worker.h" #include "Plugin.h" -#include "../src/3rdparty/ringbuffer/include/ringbuffer/ringbuffer.h" #include "TimePos.h" @@ -48,6 +49,7 @@ namespace lmms { class PluginIssue; +class SampleFrame; // forward declare port structs/enums namespace Lv2Ports @@ -78,8 +80,6 @@ class Lv2Proc : public LinkedModelGroup ~Lv2Proc() override; void reload(); void onSampleRateChanged(); - //! Must be checked after ctor or reload - bool isValid() const { return m_valid; } /* port access @@ -135,7 +135,7 @@ class Lv2Proc : public LinkedModelGroup * @param num Number of channels we must read from @param buf (starting at * @p offset) */ - void copyBuffersFromCore(const sampleFrame *buf, + void copyBuffersFromCore(const SampleFrame* buf, unsigned firstChan, unsigned num, fpp_t frames); /** * Copy our ports into buffers passed by the core @@ -148,7 +148,7 @@ class Lv2Proc : public LinkedModelGroup * @param num Number of channels we must write to @param buf (starting at * @p offset) */ - void copyBuffersToCore(sampleFrame *buf, unsigned firstChan, unsigned num, + void copyBuffersToCore(SampleFrame* buf, unsigned firstChan, unsigned num, fpp_t frames) const; //! Run the Lv2 plugin instance for @param frames frames void run(fpp_t frames); @@ -173,8 +173,6 @@ class Lv2Proc : public LinkedModelGroup void shutdownPlugin(); private: - bool m_valid = true; - const LilvPlugin* m_plugin; LilvInstance* m_instance = nullptr; Lv2Features m_features; diff --git a/include/Lv2UridMap.h b/include/Lv2UridMap.h index 6c22aca3e40..23f8f758a44 100644 --- a/include/Lv2UridMap.h +++ b/include/Lv2UridMap.h @@ -29,7 +29,7 @@ #ifdef LMMS_HAVE_LV2 -#include +#include #include // TODO: use semaphore, even though this is not realtime critical #include #include diff --git a/include/Lv2Worker.h b/include/Lv2Worker.h index 90a3d9d4f8d..b15bd9026c4 100644 --- a/include/Lv2Worker.h +++ b/include/Lv2Worker.h @@ -30,7 +30,7 @@ #ifdef LMMS_HAVE_LV2 #include -#include +#include #include #include diff --git a/include/MainWindow.h b/include/MainWindow.h index 30d52ec3a65..6c140a1e61d 100644 --- a/include/MainWindow.h +++ b/include/MainWindow.h @@ -72,6 +72,8 @@ class MainWindow : public QMainWindow LMMS_EXPORT SubWindow* addWindowedWidget(QWidget *w, Qt::WindowFlags windowFlags = QFlag(0)); + void refocus(); + /// /// \brief Asks whether changes made to the project are to be saved. /// @@ -195,7 +197,6 @@ private slots: void finalize(); void toggleWindow( QWidget *window, bool forceShow = false ); - void refocus(); void exportProject(bool multiExport = false); void handleSaveResult(QString const & filename, bool songSavedSuccessfully); @@ -248,7 +249,6 @@ private slots: void onExportProject(); void onExportProjectTracks(); void onImportProject(); - void onSongStopped(); void onSongModified(); void onProjectFileNameChanged(); diff --git a/include/MemoryManager.h b/include/MemoryManager.h deleted file mode 100644 index fa2fe8110f4..00000000000 --- a/include/MemoryManager.h +++ /dev/null @@ -1,111 +0,0 @@ -/* - * MemoryManager.h - * - * Copyright (c) 2017 Lukas W - * Copyright (c) 2014 Vesa Kivimäki - * Copyright (c) 2007-2014 Tobias Doerffel - * - * This file is part of LMMS - https://lmms.io - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program (see COPYING); if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - */ - -#ifndef LMMS_MEMORY_MANAGER_H -#define LMMS_MEMORY_MANAGER_H - -#include -#include - -#include "lmms_export.h" - -namespace lmms -{ - - -class LMMS_EXPORT MemoryManager -{ -public: - struct ThreadGuard - { - ThreadGuard(); - ~ThreadGuard(); - }; - - static void * alloc( size_t size ); - static void free( void * ptr ); -}; - -template -struct MmAllocator -{ - using value_type = T; - template struct rebind { - using other = MmAllocator; - }; - - T* allocate( std::size_t n ) - { - return reinterpret_cast( MemoryManager::alloc( sizeof(T) * n ) ); - } - - void deallocate( T* p, std::size_t ) - { - MemoryManager::free( p ); - } - - using vector = std::vector>; -}; - - -#define MM_OPERATORS \ -public: \ -static void * operator new ( size_t size ) \ -{ \ - return MemoryManager::alloc( size ); \ -} \ -static void * operator new[] ( size_t size ) \ -{ \ - return MemoryManager::alloc( size ); \ -} \ -static void operator delete ( void * ptr ) \ -{ \ - MemoryManager::free( ptr ); \ -} \ -static void operator delete[] ( void * ptr ) \ -{ \ - MemoryManager::free( ptr ); \ -} - -// for use in cases where overriding new/delete isn't a possibility -template -T* MM_ALLOC(size_t count) -{ - return reinterpret_cast( - MemoryManager::alloc(sizeof(T) * count)); -} - -// and just for symmetry... -template -void MM_FREE(T* ptr) -{ - MemoryManager::free(ptr); -} - - -} // namespace lmms - -#endif // LMMS_MEMORY_MANAGER_H diff --git a/plugins/Flanger/Noise.h b/include/Metronome.h similarity index 68% rename from plugins/Flanger/Noise.h rename to include/Metronome.h index 9f6e2f2e1eb..a59ad5b83bc 100644 --- a/plugins/Flanger/Noise.h +++ b/include/Metronome.h @@ -1,7 +1,7 @@ /* - * noise.h - defination of Noise class. + * Metronome.h * - * Copyright (c) 2014 David French + * Copyright (c) 2024 saker * * This file is part of LMMS - https://lmms.io * @@ -22,23 +22,22 @@ * */ -#ifndef NOISE_H -#define NOISE_H - -namespace lmms -{ +#ifndef LMMS_METRONOME_H +#define LMMS_METRONOME_H +#include -class Noise +namespace lmms { +class Metronome { public: - Noise(); - float tick(); + bool active() const { return m_active; } + void setActive(bool active) { m_active = active; } + void processTick(int currentTick, int ticksPerBar, int beatsPerBar, size_t bufferOffset); + private: - double inv_randmax; + bool m_active = false; }; - - } // namespace lmms -#endif // NOISE_H +#endif // LMMS_METRONOME_H diff --git a/include/MidiClip.h b/include/MidiClip.h index c2287bd009e..b3ed0d84a20 100644 --- a/include/MidiClip.h +++ b/include/MidiClip.h @@ -63,7 +63,8 @@ class LMMS_EXPORT MidiClip : public Clip // note management Note * addNote( const Note & _new_note, const bool _quant_pos = true ); - void removeNote( Note * _note_to_del ); + NoteVector::const_iterator removeNote(NoteVector::const_iterator it); + NoteVector::const_iterator removeNote(Note* note); Note * noteAtStep( int _step ); diff --git a/include/MidiClipView.h b/include/MidiClipView.h index 6558688b49b..4285bf9da0f 100644 --- a/include/MidiClipView.h +++ b/include/MidiClipView.h @@ -27,6 +27,7 @@ #include #include "ClipView.h" +#include "embed.h" namespace lmms { @@ -70,6 +71,7 @@ public slots: protected slots: void openInPianoRoll(); void setGhostInPianoRoll(); + void setGhostInAutomationEditor(); void resetName(); void changeName(); @@ -85,10 +87,10 @@ protected slots: private: - static QPixmap * s_stepBtnOn0; - static QPixmap * s_stepBtnOn200; - static QPixmap * s_stepBtnOff; - static QPixmap * s_stepBtnOffLight; + QPixmap m_stepBtnOn0 = embed::getIconPixmap("step_btn_on_0"); + QPixmap m_stepBtnOn200 = embed::getIconPixmap("step_btn_on_200"); + QPixmap m_stepBtnOff = embed::getIconPixmap("step_btn_off"); + QPixmap m_stepBtnOffLight = embed::getIconPixmap("step_btn_off_light"); MidiClip* m_clip; QPixmap m_paintPixmap; @@ -99,7 +101,7 @@ protected slots: QColor m_mutedNoteBorderColor; QStaticText m_staticTextName; - + bool m_legacySEPattern; } ; diff --git a/include/MidiEvent.h b/include/MidiEvent.h index 9a14e427c44..453f6541098 100644 --- a/include/MidiEvent.h +++ b/include/MidiEvent.h @@ -190,6 +190,8 @@ class MidiEvent setParam( 0, pitchBend ); } + auto sysExData() const -> const char* { return m_sysExData; } + Source source() const { return m_source; @@ -212,7 +214,7 @@ class MidiEvent int32_t m_sysExDataLen; // len of m_sysExData } m_data; - [[maybe_unused]] const char* m_sysExData; + const char* m_sysExData; const void* m_sourcePort; // Stores the source of the MidiEvent: Internal or External (hardware controllers). diff --git a/include/MidiEventProcessor.h b/include/MidiEventProcessor.h index 1c45b3e3f5b..0fcb9610ead 100644 --- a/include/MidiEventProcessor.h +++ b/include/MidiEventProcessor.h @@ -26,7 +26,6 @@ #define LMMS_MIDI_EVENT_PROCESSOR_H #include "MidiEvent.h" -#include "MemoryManager.h" #include "TimePos.h" namespace lmms @@ -35,7 +34,6 @@ namespace lmms // all classes being able to process MIDI-events should inherit from this class MidiEventProcessor { - MM_OPERATORS public: MidiEventProcessor() = default; diff --git a/include/MidiJack.h b/include/MidiJack.h index e2b38e290b3..e61db26dda7 100644 --- a/include/MidiJack.h +++ b/include/MidiJack.h @@ -32,7 +32,7 @@ #include #include #else -#include "weak_libjack.h" +#include #endif #include diff --git a/include/MixHelpers.h b/include/MixHelpers.h index 6458c65fcbe..a55ad605861 100644 --- a/include/MixHelpers.h +++ b/include/MixHelpers.h @@ -31,50 +31,54 @@ namespace lmms { class ValueBuffer; +class SampleFrame; + namespace MixHelpers { -bool isSilent( const sampleFrame* src, int frames ); +bool isSilent( const SampleFrame* src, int frames ); bool useNaNHandler(); void setNaNHandler( bool use ); -bool sanitize( sampleFrame * src, int frames ); +bool sanitize( SampleFrame* src, int frames ); /*! \brief Add samples from src to dst */ -void add( sampleFrame* dst, const sampleFrame* src, int frames ); +void add( SampleFrame* dst, const SampleFrame* src, int frames ); +/*! \brief Multiply samples from `dst` by `coeff` */ +void multiply(SampleFrame* dst, float coeff, int frames); /*! \brief Add samples from src multiplied by coeffSrc to dst */ -void addMultiplied( sampleFrame* dst, const sampleFrame* src, float coeffSrc, int frames ); +void addMultiplied( SampleFrame* dst, const SampleFrame* src, float coeffSrc, int frames ); /*! \brief Add samples from src multiplied by coeffSrc to dst, swap inputs */ -void addSwappedMultiplied( sampleFrame* dst, const sampleFrame* src, float coeffSrc, int frames ); +void addSwappedMultiplied( SampleFrame* dst, const SampleFrame* src, float coeffSrc, int frames ); /*! \brief Add samples from src multiplied by coeffSrc and coeffSrcBuf to dst */ -void addMultipliedByBuffer( sampleFrame* dst, const sampleFrame* src, float coeffSrc, ValueBuffer * coeffSrcBuf, int frames ); +void addMultipliedByBuffer( SampleFrame* dst, const SampleFrame* src, float coeffSrc, ValueBuffer * coeffSrcBuf, int frames ); /*! \brief Add samples from src multiplied by coeffSrc and coeffSrcBuf to dst */ -void addMultipliedByBuffers( sampleFrame* dst, const sampleFrame* src, ValueBuffer * coeffSrcBuf1, ValueBuffer * coeffSrcBuf2, int frames ); +void addMultipliedByBuffers( SampleFrame* dst, const SampleFrame* src, ValueBuffer * coeffSrcBuf1, ValueBuffer * coeffSrcBuf2, int frames ); /*! \brief Same as addMultiplied, but sanitize output (strip out infs/nans) */ -void addSanitizedMultiplied( sampleFrame* dst, const sampleFrame* src, float coeffSrc, int frames ); +void addSanitizedMultiplied( SampleFrame* dst, const SampleFrame* src, float coeffSrc, int frames ); /*! \brief Add samples from src multiplied by coeffSrc and coeffSrcBuf to dst - sanitized version */ -void addSanitizedMultipliedByBuffer( sampleFrame* dst, const sampleFrame* src, float coeffSrc, ValueBuffer * coeffSrcBuf, int frames ); +void addSanitizedMultipliedByBuffer( SampleFrame* dst, const SampleFrame* src, float coeffSrc, ValueBuffer * coeffSrcBuf, int frames ); /*! \brief Add samples from src multiplied by coeffSrc and coeffSrcBuf to dst - sanitized version */ -void addSanitizedMultipliedByBuffers( sampleFrame* dst, const sampleFrame* src, ValueBuffer * coeffSrcBuf1, ValueBuffer * coeffSrcBuf2, int frames ); +void addSanitizedMultipliedByBuffers( SampleFrame* dst, const SampleFrame* src, ValueBuffer * coeffSrcBuf1, ValueBuffer * coeffSrcBuf2, int frames ); /*! \brief Add samples from src multiplied by coeffSrcLeft/coeffSrcRight to dst */ -void addMultipliedStereo( sampleFrame* dst, const sampleFrame* src, float coeffSrcLeft, float coeffSrcRight, int frames ); +void addMultipliedStereo( SampleFrame* dst, const SampleFrame* src, float coeffSrcLeft, float coeffSrcRight, int frames ); /*! \brief Multiply dst by coeffDst and add samples from src multiplied by coeffSrc */ -void multiplyAndAddMultiplied( sampleFrame* dst, const sampleFrame* src, float coeffDst, float coeffSrc, int frames ); +void multiplyAndAddMultiplied( SampleFrame* dst, const SampleFrame* src, float coeffDst, float coeffSrc, int frames ); /*! \brief Multiply dst by coeffDst and add samples from srcLeft/srcRight multiplied by coeffSrc */ -void multiplyAndAddMultipliedJoined( sampleFrame* dst, const sample_t* srcLeft, const sample_t* srcRight, float coeffDst, float coeffSrc, int frames ); +void multiplyAndAddMultipliedJoined( SampleFrame* dst, const sample_t* srcLeft, const sample_t* srcRight, float coeffDst, float coeffSrc, int frames ); } // namespace MixHelpers diff --git a/include/Mixer.h b/include/Mixer.h index 6e5a1278652..d74f9c11c9b 100644 --- a/include/Mixer.h +++ b/include/Mixer.h @@ -56,7 +56,7 @@ class MixerChannel : public ThreadableJob float m_peakLeft; float m_peakRight; - sampleFrame * m_buffer; + SampleFrame* m_buffer; bool m_muteBeforeSolo; BoolModel m_muteModel; BoolModel m_soloModel; @@ -76,21 +76,18 @@ class MixerChannel : public ThreadableJob bool requiresProcessing() const override { return true; } void unmuteForSolo(); - void setColor (QColor newColor) - { - m_color = newColor; - } + auto color() const -> const std::optional& { return m_color; } + void setColor(const std::optional& color) { m_color = color; } - std::optional m_color; - - std::atomic_int m_dependenciesMet; + std::atomic_size_t m_dependenciesMet; void incrementDeps(); void processed(); private: void doProcessing() override; -}; + std::optional m_color; +}; class MixerRoute : public QObject { @@ -140,10 +137,10 @@ class LMMS_EXPORT Mixer : public Model, public JournallingObject Mixer(); ~Mixer() override; - void mixToChannel( const sampleFrame * _buf, mix_ch_t _ch ); + void mixToChannel( const SampleFrame* _buf, mix_ch_t _ch ); void prepareMasterMix(); - void masterMix( sampleFrame * _buf ); + void masterMix( SampleFrame* _buf ); void saveSettings( QDomDocument & _doc, QDomElement & _parent ) override; void loadSettings( const QDomElement & _this ) override; diff --git a/include/MixerLineLcdSpinBox.h b/include/MixerChannelLcdSpinBox.h similarity index 73% rename from include/MixerLineLcdSpinBox.h rename to include/MixerChannelLcdSpinBox.h index 1ae2813f292..251cf7da259 100644 --- a/include/MixerLineLcdSpinBox.h +++ b/include/MixerChannelLcdSpinBox.h @@ -1,5 +1,5 @@ /* - * MixerLineLcdSpinBox.h - a specialization of LcdSpnBox for setting mixer channels + * MixerChannelLcdSpinBox.h - a specialization of LcdSpnBox for setting mixer channels * * Copyright (c) 2004-2014 Tobias Doerffel * @@ -22,8 +22,8 @@ * */ -#ifndef LMMS_GUI_MIXER_LINE_LCD_SPIN_BOX_H -#define LMMS_GUI_MIXER_LINE_LCD_SPIN_BOX_H +#ifndef LMMS_GUI_MIXER_CHANNEL_LCD_SPIN_BOX_H +#define LMMS_GUI_MIXER_CHANNEL_LCD_SPIN_BOX_H #include "LcdSpinBox.h" @@ -34,14 +34,14 @@ namespace lmms::gui class TrackView; -class MixerLineLcdSpinBox : public LcdSpinBox +class MixerChannelLcdSpinBox : public LcdSpinBox { Q_OBJECT public: - MixerLineLcdSpinBox(int numDigits, QWidget * parent, const QString& name, TrackView * tv = nullptr) : + MixerChannelLcdSpinBox(int numDigits, QWidget * parent, const QString& name, TrackView * tv = nullptr) : LcdSpinBox(numDigits, parent, name), m_tv(tv) {} - ~MixerLineLcdSpinBox() override = default; + ~MixerChannelLcdSpinBox() override = default; void setTrackView(TrackView * tv); @@ -50,10 +50,12 @@ class MixerLineLcdSpinBox : public LcdSpinBox void contextMenuEvent(QContextMenuEvent* event) override; private: + void enterValue(); + TrackView * m_tv; }; } // namespace lmms::gui -#endif // LMMS_GUI_MIXER_LINE_LCD_SPIN_BOX_H +#endif // LMMS_GUI_MIXER_CHANNEL_LCD_SPIN_BOX_H diff --git a/include/MixerChannelView.h b/include/MixerChannelView.h new file mode 100644 index 00000000000..6716aee094b --- /dev/null +++ b/include/MixerChannelView.h @@ -0,0 +1,135 @@ +/* + * MixerChannelView.h + * + * Copyright (c) 2024 saker + * + * This file is part of LMMS - https://lmms.io + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#ifndef LMMS_GUI_MIXER_CHANNEL_VIEW_H +#define LMMS_GUI_MIXER_CHANNEL_VIEW_H + +#include +#include +#include +#include +#include +#include + +#include "EffectRackView.h" +#include "Fader.h" +#include "Knob.h" +#include "LcdWidget.h" +#include "PixmapButton.h" +#include "SendButtonIndicator.h" + +namespace lmms { +class MixerChannel; +} + +namespace lmms::gui { +class PeakIndicator; + + +class MixerChannelView : public QWidget +{ + Q_OBJECT + Q_PROPERTY(QBrush backgroundActive READ backgroundActive WRITE setBackgroundActive) + Q_PROPERTY(QColor strokeOuterActive READ strokeOuterActive WRITE setStrokeOuterActive) + Q_PROPERTY(QColor strokeOuterInactive READ strokeOuterInactive WRITE setStrokeOuterInactive) + Q_PROPERTY(QColor strokeInnerActive READ strokeInnerActive WRITE setStrokeInnerActive) + Q_PROPERTY(QColor strokeInnerInactive READ strokeInnerInactive WRITE setStrokeInnerInactive) +public: + MixerChannelView(QWidget* parent, MixerView* mixerView, int channelIndex); + void paintEvent(QPaintEvent* event) override; + void contextMenuEvent(QContextMenuEvent*) override; + void mousePressEvent(QMouseEvent*) override; + void mouseDoubleClickEvent(QMouseEvent*) override; + bool eventFilter(QObject* dist, QEvent* event) override; + + void reset(); + int channelIndex() const { return m_channelIndex; } + void setChannelIndex(int index); + + QBrush backgroundActive() const { return m_backgroundActive; } + void setBackgroundActive(const QBrush& c) { m_backgroundActive = c; } + + QColor strokeOuterActive() const { return m_strokeOuterActive; } + void setStrokeOuterActive(const QColor& c) { m_strokeOuterActive = c; } + + QColor strokeOuterInactive() const { return m_strokeOuterInactive; } + void setStrokeOuterInactive(const QColor& c) { m_strokeOuterInactive = c; } + + QColor strokeInnerActive() const { return m_strokeInnerActive; } + void setStrokeInnerActive(const QColor& c) { m_strokeInnerActive = c; } + + QColor strokeInnerInactive() const { return m_strokeInnerInactive; } + void setStrokeInnerInactive(const QColor& c) { m_strokeInnerInactive = c; } + +public slots: + void renameChannel(); + void resetColor(); + void selectColor(); + void randomizeColor(); + +private slots: + void renameFinished(); + void removeChannel(); + void removeUnusedChannels(); + void moveChannelLeft(); + void moveChannelRight(); + +private: + bool confirmRemoval(int index); + QString elideName(const QString& name); + MixerChannel* mixerChannel() const; + auto isMasterChannel() const -> bool { return m_channelIndex == 0; } + +private: + SendButtonIndicator* m_sendButton; + QLabel* m_receiveArrow; + QStackedWidget* m_receiveArrowOrSendButton; + int m_receiveArrowStackedIndex = -1; + int m_sendButtonStackedIndex = -1; + + Knob* m_sendKnob; + LcdWidget* m_channelNumberLcd; + QLineEdit* m_renameLineEdit; + QGraphicsView* m_renameLineEditView; + QLabel* m_sendArrow; + PixmapButton* m_muteButton; + PixmapButton* m_soloButton; + PeakIndicator* m_peakIndicator = nullptr; + Fader* m_fader; + EffectRackView* m_effectRackView; + MixerView* m_mixerView; + int m_channelIndex = 0; + bool m_inRename = false; + + QBrush m_backgroundActive; + QColor m_strokeOuterActive; + QColor m_strokeOuterInactive; + QColor m_strokeInnerActive; + QColor m_strokeInnerInactive; + + friend class MixerView; +}; +} // namespace lmms::gui + +#endif // LMMS_GUI_MIXER_CHANNEL_VIEW_H diff --git a/include/MixerLine.h b/include/MixerLine.h deleted file mode 100644 index 68a61728c46..00000000000 --- a/include/MixerLine.h +++ /dev/null @@ -1,120 +0,0 @@ -/* - * MixerLine.h - Mixer line widget - * - * Copyright (c) 2009 Andrew Kelley - * Copyright (c) 2014 Tobias Doerffel - * - * This file is part of LMMS - https://lmms.io - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program (see COPYING); if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - */ - -#ifndef LMMS_GUI_MIXER_LINE_H -#define LMMS_GUI_MIXER_LINE_H - -#include - -class QGraphicsView; -class QLineEdit; - -namespace lmms::gui -{ - - -class Knob; -class LcdWidget; -class MixerView; -class SendButtonIndicator; - -class MixerLine : public QWidget -{ - Q_OBJECT -public: - Q_PROPERTY( QBrush backgroundActive READ backgroundActive WRITE setBackgroundActive ) - Q_PROPERTY( QColor strokeOuterActive READ strokeOuterActive WRITE setStrokeOuterActive ) - Q_PROPERTY( QColor strokeOuterInactive READ strokeOuterInactive WRITE setStrokeOuterInactive ) - Q_PROPERTY( QColor strokeInnerActive READ strokeInnerActive WRITE setStrokeInnerActive ) - Q_PROPERTY( QColor strokeInnerInactive READ strokeInnerInactive WRITE setStrokeInnerInactive ) - MixerLine( QWidget * _parent, MixerView * _mv, int _channelIndex); - ~MixerLine() override; - - void paintEvent( QPaintEvent * ) override; - void mousePressEvent( QMouseEvent * ) override; - void mouseDoubleClickEvent( QMouseEvent * ) override; - void contextMenuEvent( QContextMenuEvent * ) override; - - inline int channelIndex() { return m_channelIndex; } - void setChannelIndex(int index); - - Knob * m_sendKnob; - SendButtonIndicator * m_sendBtn; - - QBrush backgroundActive() const; - void setBackgroundActive( const QBrush & c ); - - QColor strokeOuterActive() const; - void setStrokeOuterActive( const QColor & c ); - - QColor strokeOuterInactive() const; - void setStrokeOuterInactive( const QColor & c ); - - QColor strokeInnerActive() const; - void setStrokeInnerActive( const QColor & c ); - - QColor strokeInnerInactive() const; - void setStrokeInnerInactive( const QColor & c ); - - static const int MixerLineHeight; - - bool eventFilter (QObject *dist, QEvent *event) override; - -private: - void drawMixerLine( QPainter* p, const MixerLine *mixerLine, bool isActive, bool sendToThis, bool receiveFromThis ); - QString elideName( const QString & name ); - - MixerView * m_mv; - LcdWidget* m_lcd; - int m_channelIndex; - QBrush m_backgroundActive; - QColor m_strokeOuterActive; - QColor m_strokeOuterInactive; - QColor m_strokeInnerActive; - QColor m_strokeInnerInactive; - static QPixmap * s_sendBgArrow; - static QPixmap * s_receiveBgArrow; - bool m_inRename; - QLineEdit * m_renameLineEdit; - QGraphicsView * m_view; - -public slots: - void renameChannel(); - void resetColor(); - void selectColor(); - void randomizeColor(); - -private slots: - void renameFinished(); - void removeChannel(); - void removeUnusedChannels(); - void moveChannelLeft(); - void moveChannelRight(); -}; - - -} // namespace lmms::gui - -#endif // LMMS_GUI_MIXER_LINE_H diff --git a/include/MixerView.h b/include/MixerView.h index 3755e0bc63b..83eb5b6fa52 100644 --- a/include/MixerView.h +++ b/include/MixerView.h @@ -2,7 +2,7 @@ * MixerView.h - effect-mixer-view for LMMS * * Copyright (c) 2008-2014 Tobias Doerffel - * + * * This file is part of LMMS - https://lmms.io * * This program is free software; you can redistribute it and/or @@ -30,6 +30,7 @@ #include #include "DetachableWidget.h" +#include "MixerChannelView.h" #include "ModelView.h" #include "Engine.h" #include "Fader.h" @@ -37,14 +38,14 @@ #include "embed.h" #include "EffectRackView.h" -class QButtonGroup; - +namespace lmms +{ + class Mixer; +} namespace lmms::gui { -class MixerLine; - class LMMS_EXPORT MixerView : public DetachableWidget , public ModelView @@ -52,52 +53,34 @@ class LMMS_EXPORT MixerView { Q_OBJECT public: - class MixerChannelView - { - public: - MixerChannelView(QWidget * _parent, MixerView * _mv, int _chIndex ); - - void setChannelIndex( int index ); + MixerView(Mixer* mixer); + void keyPressEvent(QKeyEvent* e) override; - MixerLine * m_mixerLine; - PixmapButton * m_muteBtn; - PixmapButton * m_soloBtn; - Fader * m_fader; - EffectRackView * m_rackView; - }; + void saveSettings(QDomDocument& doc, QDomElement& domElement) override; + void loadSettings(const QDomElement& domElement) override; - - MixerView(); - ~MixerView() override; - - void keyPressEvent(QKeyEvent * e) override; - - void saveSettings( QDomDocument & _doc, QDomElement & _this ) override; - void loadSettings( const QDomElement & _this ) override; - - inline MixerLine * currentMixerLine() + inline MixerChannelView* currentMixerChannel() { - return m_currentMixerLine; + return m_currentMixerChannel; } - inline MixerChannelView * channelView(int index) + inline MixerChannelView* channelView(int index) { return m_mixerChannelViews[index]; } - void setCurrentMixerLine( MixerLine * _line ); - void setCurrentMixerLine( int _line ); + void setCurrentMixerChannel(MixerChannelView* channel); + void setCurrentMixerChannel(int channel); void clear(); // display the send button and knob correctly - void updateMixerLine(int index); + void updateMixerChannel(int index); // notify the view that a mixer channel was deleted void deleteChannel(int index); - bool confirmRemoval(int index); // delete all unused channels void deleteUnusedChannels(); @@ -118,18 +101,28 @@ public slots: private slots: void updateFaders(); + // TODO This should be improved. Currently the solo and mute models are connected via + // the MixerChannelView's constructor with the MixerView. It would already be an improvement + // if the MixerView connected itself to each new MixerChannel that it creates/handles. void toggledSolo(); + void toggledMute(); private: - QVector m_mixerChannelViews; - - MixerLine * m_currentMixerLine; + Mixer* getMixer() const; + void updateAllMixerChannels(); + void connectToSoloAndMute(int channelIndex); + void disconnectFromSoloAndMute(int channelIndex); - QScrollArea * channelArea; - QHBoxLayout * chLayout; - QWidget * m_channelAreaWidget; - QStackedLayout * m_racksLayout; - QWidget * m_racksWidget; +private: + QVector m_mixerChannelViews; + MixerChannelView* m_currentMixerChannel; + + QScrollArea* channelArea; + QHBoxLayout* chLayout; + QWidget* m_channelAreaWidget; + QStackedLayout* m_racksLayout; + QWidget* m_racksWidget; + Mixer* m_mixer; void updateMaxChannelSelector(); diff --git a/include/NStateButton.h b/include/NStateButton.h index a6b4c4d9ad1..c948fa843d5 100644 --- a/include/NStateButton.h +++ b/include/NStateButton.h @@ -55,25 +55,20 @@ class NStateButton : public ToolButton public slots: - void changeState( int _n ); - + void changeState(int state); signals: - void changedState( int _n ); - + void changedState(int state); protected: - void mousePressEvent( QMouseEvent * _me ) override; - + void mousePressEvent(QMouseEvent* me) override; private: - QVector > m_states; + QVector> m_states; QString m_generalToolTip; int m_curState; - -} ; - +}; } // namespace lmms::gui diff --git a/include/NotePlayHandle.h b/include/NotePlayHandle.h index 7105d6672cd..0c0acf6940c 100644 --- a/include/NotePlayHandle.h +++ b/include/NotePlayHandle.h @@ -32,7 +32,6 @@ #include "Note.h" #include "PlayHandle.h" #include "Track.h" -#include "MemoryManager.h" class QReadWriteLock; @@ -47,7 +46,6 @@ using ConstNotePlayHandleList = QList; class LMMS_EXPORT NotePlayHandle : public PlayHandle, public Note { - MM_OPERATORS public: void * m_pluginData; std::unique_ptr> m_filter; @@ -112,7 +110,7 @@ class LMMS_EXPORT NotePlayHandle : public PlayHandle, public Note float currentDetuning() const { return m_baseDetuning->value(); } /*! Renders one chunk using the attached instrument into the buffer */ - void play( sampleFrame* buffer ) override; + void play( SampleFrame* buffer ) override; /*! Returns whether playback of note is finished and thus handle can be deleted */ bool isFinished() const override @@ -273,7 +271,6 @@ class LMMS_EXPORT NotePlayHandle : public PlayHandle, public Note private: class BaseDetuning { - MM_OPERATORS public: BaseDetuning( DetuningHelper* detuning ); @@ -341,7 +338,6 @@ const int NPH_CACHE_INCREMENT = 16; class NotePlayHandleManager { - MM_OPERATORS public: static void init(); static NotePlayHandle * acquire( InstrumentTrack* instrumentTrack, diff --git a/include/Oscillator.h b/include/Oscillator.h index dab0b948d08..0a5e166dc9e 100644 --- a/include/Oscillator.h +++ b/include/Oscillator.h @@ -28,7 +28,9 @@ #include #include +#include #include +#include "interpolation.h" #include "Engine.h" #include "lmms_constants.h" @@ -46,7 +48,6 @@ class IntModel; class LMMS_EXPORT Oscillator { - MM_OPERATORS public: enum class WaveShape { @@ -91,19 +92,24 @@ class LMMS_EXPORT Oscillator static void waveTableInit(); static void destroyFFTPlans(); - static void generateAntiAliasUserWaveTable(SampleBuffer* sampleBuffer); + static std::unique_ptr generateAntiAliasUserWaveTable(const SampleBuffer* sampleBuffer); inline void setUseWaveTable(bool n) { m_useWaveTable = n; } - inline void setUserWave( const SampleBuffer * _wave ) + void setUserWave(std::shared_ptr _wave) { m_userWave = _wave; } - void update(sampleFrame* ab, const fpp_t frames, const ch_cnt_t chnl, bool modulator = false); + void setUserAntiAliasWaveTable(std::shared_ptr waveform) + { + m_userAntiAliasWaveTable = waveform; + } + + void update(SampleFrame* ab, const fpp_t frames, const ch_cnt_t chnl, bool modulator = false); // now follow the wave-shape-routines... static inline sample_t sinSample( const float _sample ) @@ -157,16 +163,17 @@ class LMMS_EXPORT Oscillator static inline sample_t noiseSample( const float ) { - // Precise implementation -// return 1.0f - rand() * 2.0f / RAND_MAX; - - // Fast implementation - return 1.0f - fast_rand() * 2.0f / FAST_RAND_MAX; + return 1.0f - rand() * 2.0f / RAND_MAX; } - inline sample_t userWaveSample( const float _sample ) const + static sample_t userWaveSample(const SampleBuffer* buffer, const float sample) { - return m_userWave->userWaveSample( _sample ); + if (buffer == nullptr || buffer->size() == 0) { return 0; } + const auto frames = buffer->size(); + const auto frame = absFraction(sample) * frames; + const auto f1 = static_cast(frame); + + return linearInterpolate(buffer->data()[f1][0], buffer->data()[(f1 + 1) % frames][0], fraction(frame)); } struct wtSampleControl { @@ -179,17 +186,13 @@ class LMMS_EXPORT Oscillator inline wtSampleControl getWtSampleControl(const float sample) const { wtSampleControl control; - control.frame = sample * OscillatorConstants::WAVETABLE_LENGTH; - control.f1 = static_cast(control.frame) % OscillatorConstants::WAVETABLE_LENGTH; - if (control.f1 < 0) - { - control.f1 += OscillatorConstants::WAVETABLE_LENGTH; - } + control.frame = absFraction(sample) * OscillatorConstants::WAVETABLE_LENGTH; + control.f1 = static_cast(control.frame); control.f2 = control.f1 < OscillatorConstants::WAVETABLE_LENGTH - 1 ? control.f1 + 1 : 0; control.band = waveTableBandFromFreq( - m_freq * m_detuning_div_samplerate * Engine::audioEngine()->processingSampleRate()); + m_freq * m_detuning_div_samplerate * Engine::audioEngine()->outputSampleRate()); return control; } @@ -203,7 +206,7 @@ class LMMS_EXPORT Oscillator table[control.band][control.f2], fraction(control.frame)); } - inline sample_t wtSample(const std::unique_ptr& table, const float sample) const + sample_t wtSample(const OscillatorConstants::waveform_t* table, const float sample) const { assert(table != nullptr); wtSampleControl control = getWtSampleControl(sample); @@ -247,7 +250,8 @@ class LMMS_EXPORT Oscillator Oscillator * m_subOsc; float m_phaseOffset; float m_phase; - const SampleBuffer * m_userWave; + std::shared_ptr m_userWave = SampleBuffer::emptyBuffer(); + std::shared_ptr m_userAntiAliasWaveTable; bool m_useWaveTable; // There are many update*() variants; the modulator flag is stored as a member variable to avoid // adding more explicit parameters to all of them. Can be converted to a parameter if needed. @@ -270,40 +274,40 @@ class LMMS_EXPORT Oscillator /* End Multiband wavetable */ - void updateNoSub( sampleFrame * _ab, const fpp_t _frames, + void updateNoSub( SampleFrame* _ab, const fpp_t _frames, const ch_cnt_t _chnl ); - void updatePM( sampleFrame * _ab, const fpp_t _frames, + void updatePM( SampleFrame* _ab, const fpp_t _frames, const ch_cnt_t _chnl ); - void updateAM( sampleFrame * _ab, const fpp_t _frames, + void updateAM( SampleFrame* _ab, const fpp_t _frames, const ch_cnt_t _chnl ); - void updateMix( sampleFrame * _ab, const fpp_t _frames, + void updateMix( SampleFrame* _ab, const fpp_t _frames, const ch_cnt_t _chnl ); - void updateSync( sampleFrame * _ab, const fpp_t _frames, + void updateSync( SampleFrame* _ab, const fpp_t _frames, const ch_cnt_t _chnl ); - void updateFM( sampleFrame * _ab, const fpp_t _frames, + void updateFM( SampleFrame* _ab, const fpp_t _frames, const ch_cnt_t _chnl ); - float syncInit( sampleFrame * _ab, const fpp_t _frames, + float syncInit( SampleFrame* _ab, const fpp_t _frames, const ch_cnt_t _chnl ); inline bool syncOk( float _osc_coeff ); template - void updateNoSub( sampleFrame * _ab, const fpp_t _frames, + void updateNoSub( SampleFrame* _ab, const fpp_t _frames, const ch_cnt_t _chnl ); template - void updatePM( sampleFrame * _ab, const fpp_t _frames, + void updatePM( SampleFrame* _ab, const fpp_t _frames, const ch_cnt_t _chnl ); template - void updateAM( sampleFrame * _ab, const fpp_t _frames, + void updateAM( SampleFrame* _ab, const fpp_t _frames, const ch_cnt_t _chnl ); template - void updateMix( sampleFrame * _ab, const fpp_t _frames, + void updateMix( SampleFrame* _ab, const fpp_t _frames, const ch_cnt_t _chnl ); template - void updateSync( sampleFrame * _ab, const fpp_t _frames, + void updateSync( SampleFrame* _ab, const fpp_t _frames, const ch_cnt_t _chnl ); template - void updateFM( sampleFrame * _ab, const fpp_t _frames, + void updateFM( SampleFrame* _ab, const fpp_t _frames, const ch_cnt_t _chnl ); template diff --git a/include/Oscilloscope.h b/include/Oscilloscope.h index 209370ce034..1e3c52b1eed 100644 --- a/include/Oscilloscope.h +++ b/include/Oscilloscope.h @@ -30,6 +30,13 @@ #include "lmms_basics.h" +namespace lmms +{ + +class SampleFrame; + +} + namespace lmms::gui { @@ -38,7 +45,9 @@ class Oscilloscope : public QWidget { Q_OBJECT public: - Q_PROPERTY( QColor normalColor READ normalColor WRITE setNormalColor ) + Q_PROPERTY( QColor leftChannelColor READ leftChannelColor WRITE setLeftChannelColor ) + Q_PROPERTY( QColor rightChannelColor READ rightChannelColor WRITE setRightChannelColor ) + Q_PROPERTY( QColor otherChannelsColor READ otherChannelsColor WRITE setOtherChannelsColor ) Q_PROPERTY( QColor clippingColor READ clippingColor WRITE setClippingColor ) Oscilloscope( QWidget * _parent ); @@ -46,8 +55,14 @@ class Oscilloscope : public QWidget void setActive( bool _active ); - QColor const & normalColor() const; - void setNormalColor(QColor const & normalColor); + QColor const & leftChannelColor() const; + void setLeftChannelColor(QColor const & leftChannelColor); + + QColor const & rightChannelColor() const; + void setRightChannelColor(QColor const & rightChannelColor); + + QColor const & otherChannelsColor() const; + void setOtherChannelsColor(QColor const & otherChannelsColor); QColor const & clippingColor() const; void setClippingColor(QColor const & clippingColor); @@ -59,19 +74,21 @@ class Oscilloscope : public QWidget protected slots: - void updateAudioBuffer( const lmms::surroundSampleFrame * buffer ); + void updateAudioBuffer(const lmms::SampleFrame* buffer); private: - QColor const & determineLineColor(float level) const; + bool clips(float level) const; private: QPixmap m_background; QPointF * m_points; - sampleFrame * m_buffer; + SampleFrame* m_buffer; bool m_active; - QColor m_normalColor; + QColor m_leftChannelColor; + QColor m_rightChannelColor; + QColor m_otherChannelsColor; QColor m_clippingColor; } ; diff --git a/include/PatternTrack.h b/include/PatternTrack.h index 1c0c610d255..2568fc91e16 100644 --- a/include/PatternTrack.h +++ b/include/PatternTrack.h @@ -57,8 +57,7 @@ class LMMS_EXPORT PatternTrack : public Track gui::TrackView * createView( gui::TrackContainerView* tcv ) override; Clip* createClip(const TimePos & pos) override; - void saveTrackSpecificSettings( QDomDocument & _doc, - QDomElement & _parent ) override; + void saveTrackSpecificSettings(QDomDocument& doc, QDomElement& parent, bool presetMode) override; void loadTrackSpecificSettings( const QDomElement & _this ) override; static PatternTrack* findPatternTrack(int pattern_num); diff --git a/include/PeakController.h b/include/PeakController.h index de9da3b1ce1..a22257374d6 100644 --- a/include/PeakController.h +++ b/include/PeakController.h @@ -78,8 +78,7 @@ public slots: static int m_loadCount; static bool m_buggedFile; - float m_attackCoeff; - float m_decayCoeff; + float m_coeff; bool m_coeffNeedsUpdate; } ; diff --git a/include/PeakIndicator.h b/include/PeakIndicator.h new file mode 100644 index 00000000000..2bc91229274 --- /dev/null +++ b/include/PeakIndicator.h @@ -0,0 +1,60 @@ +/* + * PeakIndicator.h - Peak indicator widget + * + * Copyright (c) 2024- Michael Gregorius + * + * This file is part of LMMS - https://lmms.io + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#ifndef LMMS_GUI_PEAKINDICATOR_H +#define LMMS_GUI_PEAKINDICATOR_H + +#include "lmms_export.h" + +#include + + +namespace lmms::gui +{ + +class LMMS_EXPORT PeakIndicator : public QLabel +{ + Q_OBJECT +public: + PeakIndicator(QWidget* parent); + + void resetPeakToMinusInf(); + +public slots: + void updatePeak(float peak); + +protected: + void mousePressEvent(QMouseEvent* e) override; + +private: + void updatePeakDisplay(); + +private: + float m_peak; +} ; + +} // namespace lmms::gui + +#endif // LMMS_GUI_PEAKINDICATOR_H diff --git a/include/Piano.h b/include/Piano.h index 698d9c8febc..08dfda4ddbc 100644 --- a/include/Piano.h +++ b/include/Piano.h @@ -25,8 +25,10 @@ #ifndef LMMS_PIANO_H #define LMMS_PIANO_H -#include "Note.h" +#include + #include "Model.h" +#include "Note.h" namespace lmms { diff --git a/include/PianoRoll.h b/include/PianoRoll.h index bcaea86373c..a85e50a163b 100644 --- a/include/PianoRoll.h +++ b/include/PianoRoll.h @@ -340,12 +340,12 @@ protected slots: static const int cm_scrollAmtHoriz = 10; static const int cm_scrollAmtVert = 1; - static QPixmap * s_toolDraw; - static QPixmap * s_toolErase; - static QPixmap * s_toolSelect; - static QPixmap * s_toolMove; - static QPixmap * s_toolOpen; - static QPixmap* s_toolKnife; + QPixmap m_toolDraw = embed::getIconPixmap("edit_draw"); + QPixmap m_toolErase = embed::getIconPixmap("edit_erase"); + QPixmap m_toolSelect = embed::getIconPixmap("edit_select"); + QPixmap m_toolMove = embed::getIconPixmap("edit_move"); + QPixmap m_toolOpen = embed::getIconPixmap("automation"); + QPixmap m_toolKnife = embed::getIconPixmap("edit_knife"); static std::array prKeyOrder; @@ -374,8 +374,11 @@ protected slots: QScrollBar * m_leftRightScroll; QScrollBar * m_topBottomScroll; + void adjustLeftRightScoll(int value); + TimePos m_currentPosition; bool m_recording; + bool m_doAutoQuantization{false}; QList m_recordingNotes; Note * m_currentNote; diff --git a/include/PianoView.h b/include/PianoView.h index 6421ff4381c..3f8d8026f56 100644 --- a/include/PianoView.h +++ b/include/PianoView.h @@ -30,6 +30,7 @@ #include "AutomatableModel.h" #include "ModelView.h" +#include "embed.h" namespace lmms { @@ -73,12 +74,12 @@ class PianoView : public QWidget, public ModelView int getKeyHeight(int key_num) const; IntModel *getNearestMarker(int key, QString* title = nullptr); - static QPixmap * s_whiteKeyPm; - static QPixmap * s_blackKeyPm; - static QPixmap * s_whiteKeyPressedPm; - static QPixmap * s_blackKeyPressedPm; - static QPixmap * s_whiteKeyDisabledPm; - static QPixmap * s_blackKeyDisabledPm; + QPixmap m_whiteKeyPm = embed::getIconPixmap("white_key"); + QPixmap m_blackKeyPm = embed::getIconPixmap("black_key"); + QPixmap m_whiteKeyPressedPm = embed::getIconPixmap("white_key_pressed"); + QPixmap m_blackKeyPressedPm = embed::getIconPixmap("black_key_pressed"); + QPixmap m_whiteKeyDisabledPm = embed::getIconPixmap("white_key_disabled"); + QPixmap m_blackKeyDisabledPm = embed::getIconPixmap("black_key_disabled"); Piano * m_piano; diff --git a/include/PixmapButton.h b/include/PixmapButton.h index e8f546dc08e..a0b4141deba 100644 --- a/include/PixmapButton.h +++ b/include/PixmapButton.h @@ -45,6 +45,7 @@ class LMMS_EXPORT PixmapButton : public AutomatableButton void setInactiveGraphic( const QPixmap & _pm, bool _update = true ); QSize sizeHint() const override; + QSize minimumSizeHint() const override; signals: void doubleClicked(); @@ -56,6 +57,8 @@ class LMMS_EXPORT PixmapButton : public AutomatableButton void mouseReleaseEvent( QMouseEvent * _me ) override; void mouseDoubleClickEvent( QMouseEvent * _me ) override; +private: + bool isActive() const; private: QPixmap m_activePixmap; diff --git a/include/PlayHandle.h b/include/PlayHandle.h index 8f5d771ed7b..f2e87136ad0 100644 --- a/include/PlayHandle.h +++ b/include/PlayHandle.h @@ -41,6 +41,7 @@ namespace lmms class Track; class AudioPort; +class SampleFrame; class LMMS_EXPORT PlayHandle : public ThreadableJob { @@ -105,7 +106,7 @@ class LMMS_EXPORT PlayHandle : public ThreadableJob { return m_processingLock.tryLock(); } - virtual void play( sampleFrame* buffer ) = 0; + virtual void play( SampleFrame* buffer ) = 0; virtual bool isFinished() const = 0; // returns the frameoffset at the start of the playhandle, @@ -145,14 +146,14 @@ class LMMS_EXPORT PlayHandle : public ThreadableJob void releaseBuffer(); - sampleFrame * buffer(); + SampleFrame* buffer(); private: Type m_type; f_cnt_t m_offset; QThread* m_affinity; QMutex m_processingLock; - sampleFrame* m_playHandleBuffer; + SampleFrame* m_playHandleBuffer; bool m_bufferReleased; bool m_usesBuffer; AudioPort * m_audioPort; diff --git a/include/Plugin.h b/include/Plugin.h index 439dd95ad16..100e9f658eb 100644 --- a/include/Plugin.h +++ b/include/Plugin.h @@ -30,7 +30,6 @@ #include "JournallingObject.h" #include "Model.h" -#include "MemoryManager.h" class QWidget; @@ -71,7 +70,6 @@ class PluginView; */ class LMMS_EXPORT Plugin : public Model, public JournallingObject { - MM_OPERATORS Q_OBJECT public: enum class Type diff --git a/include/PluginIssue.h b/include/PluginIssue.h index 01a4268ecc9..b0b9b194612 100644 --- a/include/PluginIssue.h +++ b/include/PluginIssue.h @@ -57,7 +57,7 @@ enum class PluginIssueType FeatureNotSupported, //!< plugin requires functionality LMMS can't offer // misc BadPortType, //!< port type not supported - Blacklisted, + Blocked, NoIssue }; diff --git a/include/PluginView.h b/include/PluginView.h index 3c78cb00af2..dce4d6bfb0a 100644 --- a/include/PluginView.h +++ b/include/PluginView.h @@ -27,23 +27,22 @@ #include -#include "Plugin.h" #include "ModelView.h" +#include "Plugin.h" -namespace lmms::gui -{ +namespace lmms::gui { -class LMMS_EXPORT PluginView : public QWidget, public ModelView +class LMMS_EXPORT PluginView : public QWidget, public ModelView { public: - PluginView( Plugin * _plugin, QWidget * _parent ) : - QWidget( _parent ), - ModelView( _plugin, this ) + PluginView(Plugin* _plugin, QWidget* _parent) + : QWidget(_parent) + , ModelView(_plugin, this) { } -} ; - + virtual bool isResizable() const { return false; } +}; } // namespace lmms::gui diff --git a/include/PresetPreviewPlayHandle.h b/include/PresetPreviewPlayHandle.h index b8199a71bd5..e464cf61590 100644 --- a/include/PresetPreviewPlayHandle.h +++ b/include/PresetPreviewPlayHandle.h @@ -47,7 +47,7 @@ class LMMS_EXPORT PresetPreviewPlayHandle : public PlayHandle return true; } - void play( sampleFrame* buffer ) override; + void play( SampleFrame* buffer ) override; bool isFinished() const override; bool isFromTrack( const Track * _track ) const override; diff --git a/include/RemotePlugin.h b/include/RemotePlugin.h index c5fcd7dd2c3..a2e2e08d62b 100644 --- a/include/RemotePlugin.h +++ b/include/RemotePlugin.h @@ -37,6 +37,7 @@ namespace lmms class RemotePlugin; +class SampleFrame; class ProcessWatcher : public QThread { @@ -96,7 +97,7 @@ class LMMS_EXPORT RemotePlugin : public QObject, public RemotePluginBase bool processMessage( const message & _m ) override; - bool process( const sampleFrame * _in_buf, sampleFrame * _out_buf ); + bool process( const SampleFrame* _in_buf, SampleFrame* _out_buf ); void processMidiEvent( const MidiEvent&, const f_cnt_t _offset ); @@ -188,13 +189,11 @@ private slots: void processErrored(QProcess::ProcessError err ); } ; - -LMMS_EXPORT inline std::string QSTR_TO_STDSTR(QString const& qstr) +inline std::string QSTR_TO_STDSTR(QString const& qstr) { return qstr.toStdString(); } - } // namespace lmms #endif // LMMS_REMOTE_PLUGIN_H diff --git a/include/RemotePluginBase.h b/include/RemotePluginBase.h index 357be1bea25..bbf14207ac7 100644 --- a/include/RemotePluginBase.h +++ b/include/RemotePluginBase.h @@ -41,10 +41,6 @@ #ifdef LMMS_HAVE_PROCESS_H #include #endif - -#include -#include -#include #else // !(LMMS_HAVE_SYS_IPC_H && LMMS_HAVE_SEMAPHORE_H) #ifdef LMMS_HAVE_UNISTD_H #include @@ -75,6 +71,7 @@ #include #include #include +#include #ifndef SYNC_WITH_SHM_FIFO #include @@ -85,6 +82,7 @@ #ifdef SYNC_WITH_SHM_FIFO #include "SharedMemory.h" +#include "SystemSemaphore.h" #endif namespace lmms @@ -120,12 +118,11 @@ class shmFifo } ; public: +#ifndef BUILD_REMOTE_PLUGIN_CLIENT // constructor for master-side shmFifo() : m_invalid( false ), m_master( true ), - m_dataSem( QString() ), - m_messageSem( QString() ), m_lockDepth( 0 ) { m_data.create(QUuid::createUuid().toString().toStdString()); @@ -133,26 +130,21 @@ class shmFifo static int k = 0; m_data->dataSem.semKey = ( getpid()<<10 ) + ++k; m_data->messageSem.semKey = ( getpid()<<10 ) + ++k; - m_dataSem.setKey( QString::number( m_data->dataSem.semKey ), - 1, QSystemSemaphore::Create ); - m_messageSem.setKey( QString::number( - m_data->messageSem.semKey ), - 0, QSystemSemaphore::Create ); + m_dataSem = SystemSemaphore{std::to_string(m_data->dataSem.semKey), 1u}; + m_messageSem = SystemSemaphore{std::to_string(m_data->messageSem.semKey), 0u}; } +#endif // constructor for remote-/client-side - use _shm_key for making up // the connection to master shmFifo(const std::string& shmKey) : m_invalid( false ), m_master( false ), - m_dataSem( QString() ), - m_messageSem( QString() ), m_lockDepth( 0 ) { m_data.attach(shmKey); - m_dataSem.setKey( QString::number( m_data->dataSem.semKey ) ); - m_messageSem.setKey( QString::number( - m_data->messageSem.semKey ) ); + m_dataSem = SystemSemaphore{std::to_string(m_data->dataSem.semKey)}; + m_messageSem = SystemSemaphore{std::to_string(m_data->messageSem.semKey)}; } inline bool isInvalid() const @@ -336,11 +328,10 @@ class shmFifo volatile bool m_invalid; bool m_master; SharedMemory m_data; - QSystemSemaphore m_dataSem; - QSystemSemaphore m_messageSem; + SystemSemaphore m_dataSem; + SystemSemaphore m_messageSem; std::atomic_int m_lockDepth; - -} ; +}; #endif // SYNC_WITH_SHM_FIFO @@ -407,7 +398,7 @@ class LMMS_EXPORT RemotePluginBase message & addInt( int _i ) { char buf[32]; - sprintf( buf, "%d", _i ); + std::snprintf(buf, 32, "%d", _i); data.emplace_back( buf ); return *this; } @@ -415,7 +406,7 @@ class LMMS_EXPORT RemotePluginBase message & addFloat( float _f ) { char buf[32]; - sprintf( buf, "%f", _f ); + std::snprintf(buf, 32, "%f", _f); data.emplace_back( buf ); return *this; } diff --git a/include/RemotePluginClient.h b/include/RemotePluginClient.h index 77eef68f035..24189650688 100644 --- a/include/RemotePluginClient.h +++ b/include/RemotePluginClient.h @@ -44,6 +44,8 @@ namespace lmms { +class SampleFrame; + class RemotePluginClient : public RemotePluginBase { public: @@ -58,8 +60,8 @@ class RemotePluginClient : public RemotePluginBase bool processMessage( const message & _m ) override; - virtual void process( const sampleFrame * _in_buf, - sampleFrame * _out_buf ) = 0; + virtual void process( const SampleFrame* _in_buf, + SampleFrame* _out_buf ) = 0; virtual void processMidiEvent( const MidiEvent&, const f_cnt_t /* _offset */ ) { @@ -307,7 +309,7 @@ bool RemotePluginClient::processMessage( const message & _m ) default: { char buf[64]; - sprintf( buf, "undefined message: %d\n", (int) _m.id ); + std::snprintf(buf, 64, "undefined message: %d\n", _m.id); debugMessage( buf ); break; } @@ -342,8 +344,8 @@ void RemotePluginClient::doProcessing() { if (m_audioBuffer) { - process( (sampleFrame *)( m_inputCount > 0 ? m_audioBuffer.get() : nullptr ), - (sampleFrame *)( m_audioBuffer.get() + + process( (SampleFrame*)( m_inputCount > 0 ? m_audioBuffer.get() : nullptr ), + (SampleFrame*)( m_audioBuffer.get() + ( m_inputCount*m_bufferSize ) ) ); } else diff --git a/include/RingBuffer.h b/include/RingBuffer.h index 90a607a13a5..41595be19ed 100644 --- a/include/RingBuffer.h +++ b/include/RingBuffer.h @@ -29,19 +29,19 @@ #include #include #include "lmms_basics.h" -#include "MemoryManager.h" +#include "lmms_export.h" namespace lmms { +class SampleFrame; /** \brief A basic LMMS ring buffer for single-thread use. For thread and realtime safe alternative see LocklessRingBuffer. */ class LMMS_EXPORT RingBuffer : public QObject { Q_OBJECT - MM_OPERATORS public: /** \brief Constructs a ringbuffer of specified size, will not care about samplerate changes * \param size The size of the buffer in frames. The actual size will be size + period size @@ -106,7 +106,7 @@ class LMMS_EXPORT RingBuffer : public QObject * to a specified destination, and advances the position by one period * \param dst Destination pointer */ - void pop( sampleFrame * dst ); + void pop( SampleFrame* dst ); // note: ringbuffer position is unaffected by all other read functions beside pop() @@ -114,27 +114,27 @@ class LMMS_EXPORT RingBuffer : public QObject * \param dst Destination pointer * \param offset Offset in frames against current position, may be negative */ - void read( sampleFrame * dst, f_cnt_t offset=0 ); + void read( SampleFrame* dst, f_cnt_t offset = 0 ); /** \brief Reads a period-sized buffer from the ringbuffer and writes it to a specified destination * \param dst Destination pointer * \param offset Offset in milliseconds against current position, may be negative */ - void read( sampleFrame * dst, float offset ); + void read( SampleFrame* dst, float offset ); /** \brief Reads a buffer of specified size from the ringbuffer and writes it to a specified destination * \param dst Destination pointer * \param offset Offset in frames against current position, may be negative * \param length Length in frames of the buffer to read - must not be higher than the size of the ringbuffer! */ - void read( sampleFrame * dst, f_cnt_t offset, f_cnt_t length ); + void read( SampleFrame* dst, f_cnt_t offset, f_cnt_t length ); /** \brief Reads a buffer of specified size from the ringbuffer and writes it to a specified destination * \param dst Destination pointer * \param offset Offset in milliseconds against current position, may be negative * \param length Length in frames of the buffer to read - must not be higher than the size of the ringbuffer! */ - void read( sampleFrame * dst, float offset, f_cnt_t length ); + void read( SampleFrame* dst, float offset, f_cnt_t length ); // write functions @@ -144,28 +144,28 @@ class LMMS_EXPORT RingBuffer : public QObject * \param offset Offset in frames against current position, may *NOT* be negative * \param length Length of the source buffer, if zero, period size is used - must not be higher than the size of the ringbuffer! */ - void write( sampleFrame * src, f_cnt_t offset=0, f_cnt_t length=0 ); + void write( SampleFrame* src, f_cnt_t offset=0, f_cnt_t length=0 ); /** \brief Writes a buffer of sampleframes to the ringbuffer at specified position * \param src Pointer to the source buffer * \param offset Offset in milliseconds against current position, may *NOT* be negative * \param length Length of the source buffer, if zero, period size is used - must not be higher than the size of the ringbuffer! */ - void write( sampleFrame * src, float offset, f_cnt_t length=0 ); + void write( SampleFrame* src, float offset, f_cnt_t length=0 ); /** \brief Mixes a buffer of sampleframes additively to the ringbuffer at specified position * \param src Pointer to the source buffer * \param offset Offset in frames against current position, may *NOT* be negative * \param length Length of the source buffer, if zero, period size is used - must not be higher than the size of the ringbuffer! */ - void writeAdding( sampleFrame * src, f_cnt_t offset=0, f_cnt_t length=0 ); + void writeAdding( SampleFrame* src, f_cnt_t offset=0, f_cnt_t length=0 ); /** \brief Mixes a buffer of sampleframes additively to the ringbuffer at specified position * \param src Pointer to the source buffer * \param offset Offset in milliseconds against current position, may *NOT* be negative * \param length Length of the source buffer, if zero, period size is used - must not be higher than the size of the ringbuffer! */ - void writeAdding( sampleFrame * src, float offset, f_cnt_t length=0 ); + void writeAdding( SampleFrame* src, float offset, f_cnt_t length=0 ); /** \brief Mixes a buffer of sampleframes additively to the ringbuffer at specified position, with * a specified multiplier applied to the frames @@ -174,7 +174,7 @@ class LMMS_EXPORT RingBuffer : public QObject * \param length Length of the source buffer, if zero, period size is used - must not be higher than the size of the ringbuffer! * \param level Multiplier applied to the frames before they're written to the ringbuffer */ - void writeAddingMultiplied( sampleFrame * src, f_cnt_t offset, f_cnt_t length, float level ); + void writeAddingMultiplied( SampleFrame* src, f_cnt_t offset, f_cnt_t length, float level ); /** \brief Mixes a buffer of sampleframes additively to the ringbuffer at specified position, with * a specified multiplier applied to the frames @@ -183,7 +183,7 @@ class LMMS_EXPORT RingBuffer : public QObject * \param length Length of the source buffer, if zero, period size is used * \param level Multiplier applied to the frames before they're written to the ringbuffer */ - void writeAddingMultiplied( sampleFrame * src, float offset, f_cnt_t length, float level ); + void writeAddingMultiplied( SampleFrame* src, float offset, f_cnt_t length, float level ); /** \brief Mixes a buffer of sampleframes additively to the ringbuffer at specified position, with * a specified multiplier applied to the frames, with swapped channels @@ -192,7 +192,7 @@ class LMMS_EXPORT RingBuffer : public QObject * \param length Length of the source buffer, if zero, period size is used - must not be higher than the size of the ringbuffer! * \param level Multiplier applied to the frames before they're written to the ringbuffer */ - void writeSwappedAddingMultiplied( sampleFrame * src, f_cnt_t offset, f_cnt_t length, float level ); + void writeSwappedAddingMultiplied( SampleFrame* src, f_cnt_t offset, f_cnt_t length, float level ); /** \brief Mixes a buffer of sampleframes additively to the ringbuffer at specified position, with * a specified multiplier applied to the frames, with swapped channels @@ -201,7 +201,7 @@ class LMMS_EXPORT RingBuffer : public QObject * \param length Length of the source buffer, if zero, period size is used * \param level Multiplier applied to the frames before they're written to the ringbuffer */ - void writeSwappedAddingMultiplied( sampleFrame * src, float offset, f_cnt_t length, float level ); + void writeSwappedAddingMultiplied( SampleFrame* src, float offset, f_cnt_t length, float level ); protected slots: @@ -216,7 +216,7 @@ protected slots: const fpp_t m_fpp; sample_rate_t m_samplerate; size_t m_size; - sampleFrame * m_buffer; + SampleFrame* m_buffer; volatile unsigned int m_position; }; diff --git a/include/RmsHelper.h b/include/RmsHelper.h index fd2c0f9bbd2..a50d5ff6d2b 100644 --- a/include/RmsHelper.h +++ b/include/RmsHelper.h @@ -36,7 +36,7 @@ namespace lmms class RmsHelper { public: - RmsHelper( int size ) : + RmsHelper(std::size_t size) : m_buffer( nullptr ) { setSize( size ); @@ -46,7 +46,7 @@ class RmsHelper if( m_buffer ) delete[] m_buffer; } - inline void setSize( int size ) + void setSize(std::size_t size) { if( m_buffer ) { @@ -90,8 +90,8 @@ class RmsHelper private: float * m_buffer; float m_sum; - unsigned int m_pos; - unsigned int m_size; + std::size_t m_pos; + std::size_t m_size; float m_sizef; }; diff --git a/include/Sample.h b/include/Sample.h new file mode 100644 index 00000000000..3fd5bc38ef1 --- /dev/null +++ b/include/Sample.h @@ -0,0 +1,134 @@ +/* + * Sample.h - State for container-class SampleBuffer + * + * Copyright (c) 2023 saker + * + * This file is part of LMMS - https://lmms.io + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#ifndef LMMS_SAMPLE_H +#define LMMS_SAMPLE_H + +#include +#include + +#include "AudioResampler.h" +#include "Note.h" +#include "SampleBuffer.h" +#include "lmms_export.h" + +namespace lmms { +class LMMS_EXPORT Sample +{ +public: + // values for buffer margins, used for various libsamplerate interpolation modes + // the array positions correspond to the converter_type parameter values in libsamplerate + // if there appears problems with playback on some interpolation mode, then the value for that mode + // may need to be higher - conversely, to optimize, some may work with lower values + static constexpr auto s_interpolationMargins = std::array{64, 64, 64, 4, 4}; + + enum class Loop + { + Off, + On, + PingPong + }; + + class LMMS_EXPORT PlaybackState + { + public: + PlaybackState(bool varyingPitch = false, int interpolationMode = SRC_LINEAR) + : m_resampler(interpolationMode, DEFAULT_CHANNELS) + , m_varyingPitch(varyingPitch) + { + } + + auto resampler() -> AudioResampler& { return m_resampler; } + auto frameIndex() const -> int { return m_frameIndex; } + auto varyingPitch() const -> bool { return m_varyingPitch; } + auto backwards() const -> bool { return m_backwards; } + + void setFrameIndex(int frameIndex) { m_frameIndex = frameIndex; } + void setVaryingPitch(bool varyingPitch) { m_varyingPitch = varyingPitch; } + void setBackwards(bool backwards) { m_backwards = backwards; } + + private: + AudioResampler m_resampler; + int m_frameIndex = 0; + bool m_varyingPitch = false; + bool m_backwards = false; + friend class Sample; + }; + + Sample() = default; + Sample(const QByteArray& base64, int sampleRate = Engine::audioEngine()->outputSampleRate()); + Sample(const SampleFrame* data, size_t numFrames, int sampleRate = Engine::audioEngine()->outputSampleRate()); + Sample(const Sample& other); + Sample(Sample&& other); + explicit Sample(const QString& audioFile); + explicit Sample(std::shared_ptr buffer); + + auto operator=(const Sample&) -> Sample&; + auto operator=(Sample&&) -> Sample&; + + auto play(SampleFrame* dst, PlaybackState* state, size_t numFrames, float desiredFrequency = DefaultBaseFreq, + Loop loopMode = Loop::Off) const -> bool; + + auto sampleDuration() const -> std::chrono::milliseconds; + auto sampleFile() const -> const QString& { return m_buffer->audioFile(); } + auto sampleRate() const -> int { return m_buffer->sampleRate(); } + auto sampleSize() const -> size_t { return m_buffer->size(); } + + auto toBase64() const -> QString { return m_buffer->toBase64(); } + + auto data() const -> const SampleFrame* { return m_buffer->data(); } + auto buffer() const -> std::shared_ptr { return m_buffer; } + auto startFrame() const -> int { return m_startFrame.load(std::memory_order_relaxed); } + auto endFrame() const -> int { return m_endFrame.load(std::memory_order_relaxed); } + auto loopStartFrame() const -> int { return m_loopStartFrame.load(std::memory_order_relaxed); } + auto loopEndFrame() const -> int { return m_loopEndFrame.load(std::memory_order_relaxed); } + auto amplification() const -> float { return m_amplification.load(std::memory_order_relaxed); } + auto frequency() const -> float { return m_frequency.load(std::memory_order_relaxed); } + auto reversed() const -> bool { return m_reversed.load(std::memory_order_relaxed); } + + void setStartFrame(int startFrame) { m_startFrame.store(startFrame, std::memory_order_relaxed); } + void setEndFrame(int endFrame) { m_endFrame.store(endFrame, std::memory_order_relaxed); } + void setLoopStartFrame(int loopStartFrame) { m_loopStartFrame.store(loopStartFrame, std::memory_order_relaxed); } + void setLoopEndFrame(int loopEndFrame) { m_loopEndFrame.store(loopEndFrame, std::memory_order_relaxed); } + void setAllPointFrames(int startFrame, int endFrame, int loopStartFrame, int loopEndFrame); + void setAmplification(float amplification) { m_amplification.store(amplification, std::memory_order_relaxed); } + void setFrequency(float frequency) { m_frequency.store(frequency, std::memory_order_relaxed); } + void setReversed(bool reversed) { m_reversed.store(reversed, std::memory_order_relaxed); } + +private: + void playRaw(SampleFrame* dst, size_t numFrames, const PlaybackState* state, Loop loopMode) const; + void advance(PlaybackState* state, size_t advanceAmount, Loop loopMode) const; + +private: + std::shared_ptr m_buffer = SampleBuffer::emptyBuffer(); + std::atomic m_startFrame = 0; + std::atomic m_endFrame = 0; + std::atomic m_loopStartFrame = 0; + std::atomic m_loopEndFrame = 0; + std::atomic m_amplification = 1.0f; + std::atomic m_frequency = DefaultBaseFreq; + std::atomic m_reversed = false; +}; +} // namespace lmms +#endif diff --git a/include/SampleBuffer.h b/include/SampleBuffer.h index 3d1013baa01..8ec6c58863c 100644 --- a/include/SampleBuffer.h +++ b/include/SampleBuffer.h @@ -25,333 +25,74 @@ #ifndef LMMS_SAMPLE_BUFFER_H #define LMMS_SAMPLE_BUFFER_H +#include +#include #include -#include -#include - +#include #include +#include -#include "lmms_export.h" -#include "interpolation.h" +#include "AudioEngine.h" +#include "Engine.h" #include "lmms_basics.h" -#include "lmms_math.h" -#include "shared_object.h" -#include "OscillatorConstants.h" -#include "MemoryManager.h" - - -class QPainter; -class QRect; - -namespace lmms -{ - -// values for buffer margins, used for various libsamplerate interpolation modes -// the array positions correspond to the converter_type parameter values in libsamplerate -// if there appears problems with playback on some interpolation mode, then the value for that mode -// may need to be higher - conversely, to optimize, some may work with lower values -const f_cnt_t MARGIN[] = { 64, 64, 64, 4, 4 }; +#include "lmms_export.h" -class LMMS_EXPORT SampleBuffer : public QObject, public sharedObject +namespace lmms { +class LMMS_EXPORT SampleBuffer { - Q_OBJECT - MM_OPERATORS public: - enum class LoopMode { - Off = 0, - On, - PingPong - }; - class LMMS_EXPORT handleState - { - MM_OPERATORS - public: - handleState(bool varyingPitch = false, int interpolationMode = SRC_LINEAR); - virtual ~handleState(); - - const f_cnt_t frameIndex() const - { - return m_frameIndex; - } - - void setFrameIndex(f_cnt_t index) - { - m_frameIndex = index; - } - - bool isBackwards() const - { - return m_isBackwards; - } - - void setBackwards(bool backwards) - { - m_isBackwards = backwards; - } - - int interpolationMode() const - { - return m_interpolationMode; - } - - - private: - f_cnt_t m_frameIndex; - const bool m_varyingPitch; - bool m_isBackwards; - SRC_STATE * m_resamplingData; - int m_interpolationMode; - - friend class SampleBuffer; - - } ; - - - SampleBuffer(); - // constructor which either loads sample _audio_file or decodes - // base64-data out of string - SampleBuffer(const QString & audioFile, bool isBase64Data = false); - SampleBuffer(const sampleFrame * data, const f_cnt_t frames); - explicit SampleBuffer(const f_cnt_t frames); - SampleBuffer(const SampleBuffer & orig); - - friend void swap(SampleBuffer & first, SampleBuffer & second) noexcept; - SampleBuffer& operator= (const SampleBuffer that); - - ~SampleBuffer() override; - - bool play( - sampleFrame * ab, - handleState * state, - const fpp_t frames, - const float freq, - const LoopMode loopMode = LoopMode::Off - ); - - void visualize( - QPainter & p, - const QRect & dr, - const QRect & clip, - f_cnt_t fromFrame = 0, - f_cnt_t toFrame = 0 - ); - inline void visualize( - QPainter & p, - const QRect & dr, - f_cnt_t fromFrame = 0, - f_cnt_t toFrame = 0 - ) - { - visualize(p, dr, dr, fromFrame, toFrame); - } - - inline const QString & audioFile() const - { - return m_audioFile; - } - - inline f_cnt_t startFrame() const - { - return m_startFrame; - } + using value_type = SampleFrame; + using reference = SampleFrame&; + using const_reference = const SampleFrame&; + using iterator = std::vector::iterator; + using const_iterator = std::vector::const_iterator; + using difference_type = std::vector::difference_type; + using size_type = std::vector::size_type; + using reverse_iterator = std::vector::reverse_iterator; + using const_reverse_iterator = std::vector::const_reverse_iterator; - inline f_cnt_t endFrame() const - { - return m_endFrame; - } + SampleBuffer() = default; + explicit SampleBuffer(const QString& audioFile); + SampleBuffer(const QString& base64, int sampleRate); + SampleBuffer(std::vector data, int sampleRate); + SampleBuffer( + const SampleFrame* data, size_t numFrames, int sampleRate = Engine::audioEngine()->outputSampleRate()); - inline f_cnt_t loopStartFrame() const - { - return m_loopStartFrame; - } + friend void swap(SampleBuffer& first, SampleBuffer& second) noexcept; + auto toBase64() const -> QString; - inline f_cnt_t loopEndFrame() const - { - return m_loopEndFrame; - } + auto audioFile() const -> const QString& { return m_audioFile; } + auto sampleRate() const -> sample_rate_t { return m_sampleRate; } - void setLoopStartFrame(f_cnt_t start) - { - m_loopStartFrame = start; - } + auto begin() -> iterator { return m_data.begin(); } + auto end() -> iterator { return m_data.end(); } - void setLoopEndFrame(f_cnt_t end) - { - m_loopEndFrame = end; - } + auto begin() const -> const_iterator { return m_data.begin(); } + auto end() const -> const_iterator { return m_data.end(); } - void setAllPointFrames( - f_cnt_t start, - f_cnt_t end, - f_cnt_t loopStart, - f_cnt_t loopEnd - ) - { - m_startFrame = start; - m_endFrame = end; - m_loopStartFrame = loopStart; - m_loopEndFrame = loopEnd; - } + auto cbegin() const -> const_iterator { return m_data.cbegin(); } + auto cend() const -> const_iterator { return m_data.cend(); } - inline f_cnt_t frames() const - { - return m_frames; - } + auto rbegin() -> reverse_iterator { return m_data.rbegin(); } + auto rend() -> reverse_iterator { return m_data.rend(); } - inline float amplification() const - { - return m_amplification; - } + auto rbegin() const -> const_reverse_iterator { return m_data.rbegin(); } + auto rend() const -> const_reverse_iterator { return m_data.rend(); } - inline bool reversed() const - { - return m_reversed; - } + auto crbegin() const -> const_reverse_iterator { return m_data.crbegin(); } + auto crend() const -> const_reverse_iterator { return m_data.crend(); } - inline float frequency() const - { - return m_frequency; - } + auto data() const -> const SampleFrame* { return m_data.data(); } + auto size() const -> size_type { return m_data.size(); } + auto empty() const -> bool { return m_data.empty(); } - sample_rate_t sampleRate() const - { - return m_sampleRate; - } - - int sampleLength() const - { - return double(m_endFrame - m_startFrame) / m_sampleRate * 1000; - } - - inline void setFrequency(float freq) - { - m_frequency = freq; - } - - inline void setSampleRate(sample_rate_t rate) - { - m_sampleRate = rate; - } - - inline const sampleFrame * data() const - { - return m_data; - } - - QString openAudioFile() const; - QString openAndSetAudioFile(); - QString openAndSetWaveformFile(); - - QString & toBase64(QString & dst) const; - - - // protect calls from the GUI to this function with dataReadLock() and - // dataUnlock() - SampleBuffer * resample(const sample_rate_t srcSR, const sample_rate_t dstSR); - - void normalizeSampleRate(const sample_rate_t srcSR, bool keepSettings = false); - - // protect calls from the GUI to this function with dataReadLock() and - // dataUnlock(), out of loops for efficiency - inline sample_t userWaveSample(const float sample) const - { - f_cnt_t frames = m_frames; - sampleFrame * data = m_data; - const float frame = sample * frames; - f_cnt_t f1 = static_cast(frame) % frames; - if (f1 < 0) - { - f1 += frames; - } - return linearInterpolate(data[f1][0], data[(f1 + 1) % frames][0], fraction(frame)); - } - - void dataReadLock() - { - m_varLock.lockForRead(); - } - - void dataUnlock() - { - m_varLock.unlock(); - } - - - std::unique_ptr m_userAntiAliasWaveTable; - - -public slots: - void setAudioFile(const QString & audioFile); - void loadFromBase64(const QString & data); - void setStartFrame(const lmms::f_cnt_t s); - void setEndFrame(const lmms::f_cnt_t e); - void setAmplification(float a); - void setReversed(bool on); - void sampleRateChanged(); + static auto emptyBuffer() -> std::shared_ptr; private: - static sample_rate_t audioEngineSampleRate(); - - void update(bool keepSettings = false); - - void convertIntToFloat(int_sample_t * & ibuf, f_cnt_t frames, int channels); - void directFloatWrite(sample_t * & fbuf, f_cnt_t frames, int channels); - - f_cnt_t decodeSampleSF( - QString fileName, - sample_t * & buf, - ch_cnt_t & channels, - sample_rate_t & samplerate - ); -#ifdef LMMS_HAVE_OGGVORBIS - f_cnt_t decodeSampleOGGVorbis( - QString fileName, - int_sample_t * & buf, - ch_cnt_t & channels, - sample_rate_t & samplerate - ); -#endif - f_cnt_t decodeSampleDS( - QString fileName, - int_sample_t * & buf, - ch_cnt_t & channels, - sample_rate_t & samplerate - ); - + std::vector m_data; QString m_audioFile; - sampleFrame * m_origData; - f_cnt_t m_origFrames; - sampleFrame * m_data; - mutable QReadWriteLock m_varLock; - f_cnt_t m_frames; - f_cnt_t m_startFrame; - f_cnt_t m_endFrame; - f_cnt_t m_loopStartFrame; - f_cnt_t m_loopEndFrame; - float m_amplification; - bool m_reversed; - float m_frequency; - sample_rate_t m_sampleRate; - - sampleFrame * getSampleFragment( - f_cnt_t index, - f_cnt_t frames, - LoopMode loopMode, - sampleFrame * * tmp, - bool * backwards, - f_cnt_t loopStart, - f_cnt_t loopEnd, - f_cnt_t end - ) const; - - f_cnt_t getLoopedIndex(f_cnt_t index, f_cnt_t startf, f_cnt_t endf) const; - f_cnt_t getPingPongIndex(f_cnt_t index, f_cnt_t startf, f_cnt_t endf) const; - - -signals: - void sampleUpdated(); - -} ; + sample_rate_t m_sampleRate = Engine::audioEngine()->outputSampleRate(); +}; } // namespace lmms diff --git a/include/SampleClip.h b/include/SampleClip.h index 5246787bdc6..3beca338bcd 100644 --- a/include/SampleClip.h +++ b/include/SampleClip.h @@ -25,7 +25,9 @@ #ifndef LMMS_SAMPLE_CLIP_H #define LMMS_SAMPLE_CLIP_H +#include #include "Clip.h" +#include "Sample.h" namespace lmms { @@ -45,14 +47,17 @@ class SampleClip : public Clip Q_OBJECT mapPropertyFromModel(bool,isRecord,setRecord,m_recordModel); public: - SampleClip( Track * _track ); + SampleClip(Track* track, Sample sample, bool isPlaying); + SampleClip(Track* track); SampleClip( const SampleClip& orig ); ~SampleClip() override; SampleClip& operator=( const SampleClip& that ) = delete; void changeLength( const TimePos & _length ) override; - const QString & sampleFile() const; + void changeLengthToSampleLength(); + const QString& sampleFile() const; + bool hasSampleFileLoaded(const QString & filename) const; void saveSettings( QDomDocument & _doc, QDomElement & _parent ) override; void loadSettings( const QDomElement & _this ) override; @@ -61,9 +66,9 @@ class SampleClip : public Clip return "sampleclip"; } - SampleBuffer* sampleBuffer() + Sample& sample() { - return m_sampleBuffer; + return m_sample; } TimePos sampleLength() const; @@ -74,10 +79,10 @@ class SampleClip : public Clip bool isPlaying() const; void setIsPlaying(bool isPlaying); + void setSampleBuffer(std::shared_ptr sb); public slots: - void setSampleBuffer( lmms::SampleBuffer* sb ); - void setSampleFile( const QString & sf ); + void setSampleFile(const QString& sf); void updateLength(); void toggleRecord(); void playbackPositionChanged(); @@ -85,7 +90,7 @@ public slots: private: - SampleBuffer* m_sampleBuffer; + Sample m_sample; BoolModel m_recordModel; bool m_isPlaying; diff --git a/include/SampleClipView.h b/include/SampleClipView.h index b3f53d79092..4ff218fb0ef 100644 --- a/include/SampleClipView.h +++ b/include/SampleClipView.h @@ -47,6 +47,7 @@ class SampleClipView : public ClipView public slots: void updateSample(); void reverseSample(); + void setAutomationGhost(); diff --git a/include/SampleDecoder.h b/include/SampleDecoder.h new file mode 100644 index 00000000000..2cfd0097717 --- /dev/null +++ b/include/SampleDecoder.h @@ -0,0 +1,58 @@ +/* + * SampleDecoder.h - Decodes audio files in various formats + * + * Copyright (c) 2023 saker + * + * This file is part of LMMS - https://lmms.io + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#ifndef LMMS_SAMPLE_DECODER_H +#define LMMS_SAMPLE_DECODER_H + +#include +#include +#include +#include +#include + +#include "lmms_basics.h" +#include "SampleFrame.h" + +namespace lmms { +class SampleDecoder +{ +public: + struct Result + { + std::vector data; + int sampleRate; + }; + + struct AudioType + { + std::string name; + std::string extension; + }; + + static auto decode(const QString& audioFile) -> std::optional; + static auto supportedAudioTypes() -> const std::vector&; +}; +} // namespace lmms + +#endif // LMMS_SAMPLE_DECODER_H diff --git a/include/SampleFrame.h b/include/SampleFrame.h new file mode 100644 index 00000000000..238a85dead9 --- /dev/null +++ b/include/SampleFrame.h @@ -0,0 +1,231 @@ +/* + * SampleFrame.h - Representation of a stereo sample + * + * Copyright (c) 2004-2009 Tobias Doerffel + * Copyright (c) 2024- Michael Gregorius + * + * This file is part of LMMS - https://lmms.io + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#ifndef LMMS_SAMPLEFRAME_H +#define LMMS_SAMPLEFRAME_H + +#include "lmms_basics.h" + +#include +#include +#include + + +namespace lmms +{ + +class SampleFrame +{ +public: + SampleFrame() : SampleFrame(0., 0.) + { + } + + explicit SampleFrame(sample_t value) : SampleFrame(value, value) + { + } + + SampleFrame(sample_t left, sample_t right) : + m_samples({ left, right }) + { + } + + sample_t* data() + { + return m_samples.data(); + } + + const sample_t* data() const + { + return m_samples.data(); + } + + sample_t& left() + { + return m_samples[0]; + } + + const sample_t& left() const + { + return m_samples[0]; + } + + void setLeft(const sample_t& value) + { + m_samples[0] = value; + } + + sample_t& right() + { + return m_samples[1]; + } + + const sample_t& right() const + { + return m_samples[1]; + } + + void setRight(const sample_t& value) + { + m_samples[1] = value; + } + + sample_t& operator[](size_t index) + { + return m_samples[index]; + } + + const sample_t& operator[](size_t index) const + { + return m_samples[index]; + } + + SampleFrame operator+(const SampleFrame& other) const + { + return SampleFrame(left() + other.left(), right() + other.right()); + } + + SampleFrame& operator+=(const SampleFrame& other) + { + auto & l = left(); + auto & r = right(); + + l += other.left(); + r += other.right(); + + return *this; + } + + SampleFrame operator*(float value) const + { + return SampleFrame(left() * value, right() * value); + } + + SampleFrame& operator*=(float value) + { + setLeft(left() * value); + setRight(right() * value); + + return *this; + } + + SampleFrame operator*(const SampleFrame& other) const + { + return SampleFrame(left() * other.left(), right() * other.right()); + } + + void operator*=(const SampleFrame& other) + { + left() *= other.left(); + right() *= other.right(); + } + + sample_t sumOfSquaredAmplitudes() const + { + return left() * left() + right() * right(); + } + + SampleFrame abs() const + { + return SampleFrame{std::abs(this->left()), std::abs(this->right())}; + } + + SampleFrame absMax(const SampleFrame& other) + { + const auto a = abs(); + const auto b = other.abs(); + + return SampleFrame(std::max(a.left(), b.left()), std::max(a.right(), b.right())); + } + + sample_t average() const + { + return (left() + right()) / 2; + } + + void clamp(sample_t low, sample_t high) + { + auto & l = left(); + l = std::clamp(l, low, high); + + auto & r = right(); + r = std::clamp(r, low, high); + } + + bool containsInf() const + { + return std::isinf(left()) || std::isinf(right()); + } + + bool containsNaN() const + { + return std::isnan(left()) || std::isnan(right()); + } + +private: + std::array m_samples; +}; + +inline void zeroSampleFrames(SampleFrame* buffer, size_t frames) +{ + // The equivalent of the following operation which yields compiler warnings + // memset(buffer, 0, sizeof(SampleFrame) * frames); + + std::fill(buffer, buffer + frames, SampleFrame()); +} + +inline SampleFrame getAbsPeakValues(SampleFrame* buffer, size_t frames) +{ + SampleFrame peaks; + + for (f_cnt_t i = 0; i < frames; ++i) + { + peaks = peaks.absMax(buffer[i]); + } + + return peaks; +} + +inline void copyToSampleFrames(SampleFrame* target, const float* source, size_t frames) +{ + for (size_t i = 0; i < frames; ++i) + { + target[i].setLeft(source[2*i]); + target[i].setRight(source[2*i + 1]); + } +} + +inline void copyFromSampleFrames(float* target, const SampleFrame* source, size_t frames) +{ + for (size_t i = 0; i < frames; ++i) + { + target[2*i] = source[i].left(); + target[2*i + 1] = source[i].right(); + } +} + +} // namespace lmms + +#endif // LMMS_SAMPLEFRAME_H diff --git a/include/SampleLoader.h b/include/SampleLoader.h new file mode 100644 index 00000000000..fd8f1135725 --- /dev/null +++ b/include/SampleLoader.h @@ -0,0 +1,48 @@ +/* + * SampleLoader.h - Load audio and waveform files + * + * Copyright (c) 2023 saker + * + * This file is part of LMMS - https://lmms.io + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#ifndef LMMS_GUI_SAMPLE_LOADER_H +#define LMMS_GUI_SAMPLE_LOADER_H + +#include +#include + +#include "SampleBuffer.h" +#include "lmms_export.h" + +namespace lmms::gui { +class LMMS_EXPORT SampleLoader +{ +public: + static QString openAudioFile(const QString& previousFile = ""); + static QString openWaveformFile(const QString& previousFile = ""); + static std::shared_ptr createBufferFromFile(const QString& filePath); + static std::shared_ptr createBufferFromBase64( + const QString& base64, int sampleRate = Engine::audioEngine()->outputSampleRate()); +private: + static void displayError(const QString& message); +}; +} // namespace lmms::gui + +#endif // LMMS_GUI_SAMPLE_LOADER_H diff --git a/include/SamplePlayHandle.h b/include/SamplePlayHandle.h index 31b4f0bd59e..dde29b49b31 100644 --- a/include/SamplePlayHandle.h +++ b/include/SamplePlayHandle.h @@ -26,6 +26,7 @@ #ifndef LMMS_SAMPLE_PLAY_HANDLE_H #define LMMS_SAMPLE_PLAY_HANDLE_H +#include "Sample.h" #include "SampleBuffer.h" #include "AutomatableModel.h" #include "PlayHandle.h" @@ -43,7 +44,7 @@ class AudioPort; class LMMS_EXPORT SamplePlayHandle : public PlayHandle { public: - SamplePlayHandle( SampleBuffer* sampleBuffer , bool ownAudioPort = true ); + SamplePlayHandle(Sample* sample, bool ownAudioPort = true); SamplePlayHandle( const QString& sampleFile ); SamplePlayHandle( SampleClip* clip ); ~SamplePlayHandle() override; @@ -54,7 +55,7 @@ class LMMS_EXPORT SamplePlayHandle : public PlayHandle } - void play( sampleFrame * buffer ) override; + void play( SampleFrame* buffer ) override; bool isFinished() const override; bool isFromTrack( const Track * _track ) const override; @@ -81,11 +82,11 @@ class LMMS_EXPORT SamplePlayHandle : public PlayHandle private: - SampleBuffer * m_sampleBuffer; + Sample* m_sample; bool m_doneMayReturnTrue; f_cnt_t m_frame; - SampleBuffer::handleState m_state; + Sample::PlaybackState m_state; const bool m_ownAudioPort; diff --git a/include/SampleRecordHandle.h b/include/SampleRecordHandle.h index de1ca19ba1a..b650c67609f 100644 --- a/include/SampleRecordHandle.h +++ b/include/SampleRecordHandle.h @@ -27,6 +27,7 @@ #include #include +#include #include "PlayHandle.h" #include "TimePos.h" @@ -47,20 +48,20 @@ class SampleRecordHandle : public PlayHandle SampleRecordHandle( SampleClip* clip ); ~SampleRecordHandle() override; - void play( sampleFrame * _working_buffer ) override; + void play( SampleFrame* _working_buffer ) override; bool isFinished() const override; bool isFromTrack( const Track * _track ) const override; f_cnt_t framesRecorded() const; - void createSampleBuffer( SampleBuffer * * _sample_buf ); + std::shared_ptr createSampleBuffer(); private: - virtual void writeBuffer( const sampleFrame * _ab, + virtual void writeBuffer( const SampleFrame* _ab, const f_cnt_t _frames ); - using bufferList = QList>; + using bufferList = QList>; bufferList m_buffers; f_cnt_t m_framesRecorded; TimePos m_minLength; diff --git a/include/SampleTrack.h b/include/SampleTrack.h index f71f01cd1a7..e79df0c2c04 100644 --- a/include/SampleTrack.h +++ b/include/SampleTrack.h @@ -54,8 +54,7 @@ class SampleTrack : public Track Clip* createClip(const TimePos & pos) override; - void saveTrackSpecificSettings( QDomDocument & _doc, - QDomElement & _parent ) override; + void saveTrackSpecificSettings(QDomDocument& doc, QDomElement& parent, bool presetMode) override; void loadTrackSpecificSettings( const QDomElement & _this ) override; inline IntModel * mixerChannelModel() diff --git a/include/SampleTrackView.h b/include/SampleTrackView.h index 3ccb97aeaa9..2f94bfb5630 100644 --- a/include/SampleTrackView.h +++ b/include/SampleTrackView.h @@ -26,7 +26,7 @@ #define LMMS_GUI_SAMPLE_TRACK_VIEW_H -#include "MixerLineLcdSpinBox.h" +#include "MixerChannelLcdSpinBox.h" #include "TrackView.h" namespace lmms @@ -91,7 +91,7 @@ private slots: private: SampleTrackWindow * m_window; - MixerLineLcdSpinBox* m_mixerChannelNumber; + MixerChannelLcdSpinBox* m_mixerChannelNumber; Knob * m_volumeKnob; Knob * m_panningKnob; FadeButton * m_activityIndicator; diff --git a/include/SampleTrackWindow.h b/include/SampleTrackWindow.h index a0a766d2b8b..603b4997772 100644 --- a/include/SampleTrackWindow.h +++ b/include/SampleTrackWindow.h @@ -37,7 +37,7 @@ namespace lmms::gui class EffectRackView; class Knob; -class MixerLineLcdSpinBox; +class MixerChannelLcdSpinBox; class SampleTrackView; @@ -89,7 +89,7 @@ public slots: QLineEdit * m_nameLineEdit; Knob * m_volumeKnob; Knob * m_panningKnob; - MixerLineLcdSpinBox * m_mixerChannelNumber; + MixerChannelLcdSpinBox * m_mixerChannelNumber; EffectRackView * m_effectRack; } ; diff --git a/include/MemoryHelper.h b/include/SampleWaveform.h similarity index 61% rename from include/MemoryHelper.h rename to include/SampleWaveform.h index e709ffc8aad..ccfc9fb609e 100644 --- a/include/MemoryHelper.h +++ b/include/SampleWaveform.h @@ -1,6 +1,7 @@ /* - * Copyright (c) 2014 Simon Symeonidis - * Copyright (c) 2004-2014 Tobias Doerffel + * SampleWaveform.h + * + * Copyright (c) 2023 saker * * This file is part of LMMS - https://lmms.io * @@ -21,29 +22,28 @@ * */ -#ifndef LMMS_MEMORY_HELPER_H -#define LMMS_MEMORY_HELPER_H - -#include +#ifndef LMMS_GUI_SAMPLE_WAVEFORM_H +#define LMMS_GUI_SAMPLE_WAVEFORM_H -namespace lmms -{ +#include +#include "Sample.h" +#include "lmms_export.h" -/** - * Helper class to alocate aligned memory and free it. - */ -class MemoryHelper { +namespace lmms::gui { +class LMMS_EXPORT SampleWaveform +{ public: - - static void* alignedMalloc( size_t ); - - static void alignedFree( void* ); - -private: + struct Parameters + { + const SampleFrame* buffer; + size_t size; + float amplification; + bool reversed; + }; + + static void visualize(Parameters parameters, QPainter& painter, const QRect& rect); }; +} // namespace lmms::gui - -} // namespace lmms - -#endif // LMMS_MEMORY_HELPER_H +#endif // LMMS_GUI_SAMPLE_WAVEFORM_H diff --git a/include/SendButtonIndicator.h b/include/SendButtonIndicator.h index f1ee2dbca56..9e941792648 100644 --- a/include/SendButtonIndicator.h +++ b/include/SendButtonIndicator.h @@ -26,6 +26,7 @@ #define LMMS_GUI_SEND_BUTTON_INDICATOR_H #include +#include "embed.h" namespace lmms @@ -36,27 +37,25 @@ class FloatModel; namespace gui { -class MixerLine; +class MixerChannelView; class MixerView; - -class SendButtonIndicator : public QLabel +class SendButtonIndicator : public QLabel { public: - SendButtonIndicator( QWidget * _parent, MixerLine * _owner, - MixerView * _mv); + SendButtonIndicator(QWidget* parent, MixerChannelView* owner, MixerView* mv); - void mousePressEvent( QMouseEvent * e ) override; + void mousePressEvent(QMouseEvent* e) override; void updateLightStatus(); private: - MixerLine * m_parent; - MixerView * m_mv; - static QPixmap * s_qpmOn; - static QPixmap * s_qpmOff; + MixerChannelView* m_parent; + MixerView* m_mv; + QPixmap m_qpmOff = embed::getIconPixmap("mixer_send_off", 29, 20); + QPixmap m_qpmOn = embed::getIconPixmap("mixer_send_on", 29, 20); - FloatModel * getSendModel(); + FloatModel* getSendModel(); }; diff --git a/include/SetupDialog.h b/include/SetupDialog.h index 882ca2bedce..871a80bcd4b 100644 --- a/include/SetupDialog.h +++ b/include/SetupDialog.h @@ -86,6 +86,7 @@ private slots: void toggleMMPZ(bool enabled); void toggleDisableBackup(bool enabled); void toggleOpenLastProject(bool enabled); + void loopMarkerModeChanged(); void setLanguage(int lang); // Performance settings widget. @@ -101,13 +102,13 @@ private slots: // Audio settings widget. void audioInterfaceChanged(const QString & driver); - void toggleHQAudioDev(bool enabled); void updateBufferSizeWarning(int value); void setBufferSize(int value); void resetBufferSize(); // MIDI settings widget. void midiInterfaceChanged(const QString & driver); + void toggleMidiAutoQuantization(bool enabled); // Paths settings widget. void openWorkingDir(); @@ -147,6 +148,8 @@ private slots: bool m_MMPZ; bool m_disableBackup; bool m_openLastProject; + QString m_loopMarkerMode; + QComboBox* m_loopMarkerComboBox; QString m_lang; QStringList m_languages; @@ -176,7 +179,6 @@ private slots: AswMap m_audioIfaceSetupWidgets; trMap m_audioIfaceNames; bool m_NaNHandler; - bool m_hqAudioDev; int m_bufferSize; QSlider * m_bufferSizeSlider; QLabel * m_bufferSizeLbl; @@ -187,6 +189,7 @@ private slots: MswMap m_midiIfaceSetupWidgets; trMap m_midiIfaceNames; QComboBox * m_assignableMidiDevices; + bool m_midiAutoQuantize; // Paths settings widgets. QString m_workingDir; diff --git a/include/Song.h b/include/Song.h index 02714d8ac6b..f08edfff602 100644 --- a/include/Song.h +++ b/include/Song.h @@ -25,16 +25,19 @@ #ifndef LMMS_SONG_H #define LMMS_SONG_H +#include #include #include #include -#include "TrackContainer.h" #include "AudioEngine.h" #include "Controller.h" +#include "Metronome.h" #include "lmms_constants.h" #include "MeterModel.h" +#include "Timeline.h" +#include "TrackContainer.h" #include "VstSyncController.h" namespace lmms @@ -105,7 +108,6 @@ class LMMS_EXPORT Song : public TrackContainer public: PlayPos( const int abs = 0 ) : TimePos( abs ), - m_timeLine( nullptr ), m_currentFrame( 0.0f ) { } @@ -125,13 +127,11 @@ class LMMS_EXPORT Song : public TrackContainer { return m_jumped; } - gui::TimeLineWidget * m_timeLine; private: float m_currentFrame; bool m_jumped; - - } ; + }; void processNextBuffer(); @@ -274,6 +274,11 @@ class LMMS_EXPORT Song : public TrackContainer return getPlayPos(m_playMode); } + auto getTimeline(PlayMode mode) -> Timeline& { return m_timelines[static_cast(mode)]; } + auto getTimeline(PlayMode mode) const -> const Timeline& { return m_timelines[static_cast(mode)]; } + auto getTimeline() -> Timeline& { return getTimeline(m_playMode); } + auto getTimeline() const -> const Timeline& { return getTimeline(m_playMode); } + void updateLength(); bar_t length() const { @@ -371,6 +376,8 @@ class LMMS_EXPORT Song : public TrackContainer const std::string& syncKey() const noexcept { return m_vstSyncController.sharedMemoryKey(); } + Metronome& metronome() { return m_metronome; } + public slots: void playSong(); void record(); @@ -402,7 +409,7 @@ private slots: void masterVolumeChanged(); - void savePos(); + void savePlayStartPosition(); void updateFramesPerTick(); @@ -444,6 +451,7 @@ private slots: void restoreKeymapStates(const QDomElement &element); void processAutomations(const TrackList& tracks, TimePos timeStart, fpp_t frames); + void processMetronome(size_t bufferOffset); void setModified(bool value); @@ -481,6 +489,8 @@ private slots: QHash m_errors; + std::array m_timelines; + PlayMode m_playMode; PlayPos m_playPos[PlayModeCount]; bar_t m_length; @@ -507,6 +517,8 @@ private slots: AutomatedValueMap m_oldAutomatedValues; + Metronome m_metronome; + friend class Engine; friend class gui::SongEditor; friend class gui::ControllerRackView; diff --git a/include/SongEditor.h b/include/SongEditor.h index d02a99abc58..28c65dfb215 100644 --- a/include/SongEditor.h +++ b/include/SongEditor.h @@ -96,8 +96,6 @@ public slots: void mouseReleaseEvent(QMouseEvent * me) override; private slots: - void setHighQuality( bool ); - void setMasterVolume( int new_val ); void showMasterVolumeFloat(); void updateMasterVolumeFloat( int new_val ); @@ -129,6 +127,8 @@ private slots: QScrollBar * m_leftRightScroll; + void adjustLeftRightScoll(int value); + LcdSpinBox * m_tempoSpinBox; TimeLineWidget * m_timeLine; @@ -165,6 +165,7 @@ private slots: signals: void pixelsPerBarChanged(float); + void proportionalSnapChanged(); } ; diff --git a/include/SweepOscillator.h b/include/SweepOscillator.h index b5521da3bf1..c7c7938d1e0 100644 --- a/include/SweepOscillator.h +++ b/include/SweepOscillator.h @@ -43,7 +43,7 @@ class SweepOscillator virtual ~SweepOscillator() = default; - void update( sampleFrame* buf, const fpp_t frames, const float freq1, const float freq2, const float sampleRate ) + void update( SampleFrame* buf, const fpp_t frames, const float freq1, const float freq2, const float sampleRate ) { const float df = freq2 - freq1; for( fpp_t frame = 0; frame < frames; ++frame ) diff --git a/include/SystemSemaphore.h b/include/SystemSemaphore.h new file mode 100644 index 00000000000..931c472bb1f --- /dev/null +++ b/include/SystemSemaphore.h @@ -0,0 +1,61 @@ +/* + * SystemSemaphore.h + * + * Copyright (c) 2024 Dominic Clark + * + * This file is part of LMMS - https://lmms.io + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + */ + +#ifndef LMMS_SYSTEM_SEMAPHORE_H +#define LMMS_SYSTEM_SEMAPHORE_H + +#include +#include + +namespace lmms { + +namespace detail { + +class SystemSemaphoreImpl; + +} // namespace detail + +class SystemSemaphore +{ +public: + SystemSemaphore() noexcept; + SystemSemaphore(std::string key, unsigned int value); + explicit SystemSemaphore(std::string key); + ~SystemSemaphore(); + + SystemSemaphore(SystemSemaphore&& other) noexcept; + auto operator=(SystemSemaphore&& other) noexcept -> SystemSemaphore&; + + auto acquire() noexcept -> bool; + auto release() noexcept -> bool; + + auto key() const noexcept -> const std::string& { return m_key; } + +private: + std::string m_key; + std::unique_ptr m_impl; +}; + +} // namespace lmms + +#endif // LMMS_SYSTEM_SEMAPHORE_H diff --git a/include/TabWidget.h b/include/TabWidget.h index d28537df8fe..52e59d577e9 100644 --- a/include/TabWidget.h +++ b/include/TabWidget.h @@ -40,53 +40,56 @@ class TabWidget : public QWidget public: //! @param resizable If true, the widget resizes to fit the size of all tabs //! If false, all child widget will be cut down to the TabWidget's size - TabWidget( const QString & _caption, QWidget * _parent, - bool usePixmap = false, bool resizable = false ); + TabWidget(const QString& caption, QWidget* parent, + bool usePixmap = false, bool resizable = false); ~TabWidget() override = default; - void addTab( QWidget * w, const QString & name, const char *pixmap = nullptr, int idx = -1 ); + void addTab(QWidget* w, const QString& name, const char* pixmap = nullptr, int idx = -1); - void setActiveTab( int idx ); + void setActiveTab(int idx); - int findTabAtPos( const QPoint *pos ); + int findTabAtPos(const QPoint* pos); inline int activeTab() const { - return( m_activeTab ); + return(m_activeTab); } // Themeability - Q_PROPERTY( QColor tabText READ tabText WRITE setTabText) - Q_PROPERTY( QColor tabTitleText READ tabTitleText WRITE setTabTitleText) - Q_PROPERTY( QColor tabSelected READ tabSelected WRITE setTabSelected) - Q_PROPERTY( QColor tabBackground READ tabBackground WRITE setTabBackground) - Q_PROPERTY( QColor tabBorder READ tabBorder WRITE setTabBorder) + Q_PROPERTY(QColor tabText READ tabText WRITE setTabText) + Q_PROPERTY(QColor tabTitleText READ tabTitleText WRITE setTabTitleText) + Q_PROPERTY(QColor tabSelected READ tabSelected WRITE setTabSelected) + Q_PROPERTY(QColor tabTextSelected READ tabTextSelected WRITE setTabTextSelected) + Q_PROPERTY(QColor tabBackground READ tabBackground WRITE setTabBackground) + Q_PROPERTY(QColor tabBorder READ tabBorder WRITE setTabBorder) QColor tabText() const; - void setTabText( const QColor & c ); + void setTabText(const QColor & c); QColor tabTitleText() const; - void setTabTitleText( const QColor & c ); + void setTabTitleText(const QColor & c); QColor tabSelected() const; - void setTabSelected( const QColor & c ); + void setTabSelected(const QColor & c); + QColor tabTextSelected() const; + void setTabTextSelected(const QColor & c); QColor tabBackground() const; - void setTabBackground( const QColor & c ); + void setTabBackground(const QColor & c); QColor tabBorder() const; - void setTabBorder( const QColor & c ); + void setTabBorder(const QColor & c); protected: - bool event( QEvent * event ) override; - void mousePressEvent( QMouseEvent * _me ) override; - void paintEvent( QPaintEvent * _pe ) override; - void resizeEvent( QResizeEvent * _re ) override; - void wheelEvent( QWheelEvent * _we ) override; + bool event(QEvent* event) override; + void mousePressEvent(QMouseEvent* me) override; + void paintEvent(QPaintEvent* pe) override; + void resizeEvent(QResizeEvent* re) override; + void wheelEvent(QWheelEvent* we) override; QSize minimumSizeHint() const override; QSize sizeHint() const override; private: struct widgetDesc { - QWidget * w; // ptr to widget - const char * pixmap; // artwork for the widget + QWidget* w; // ptr to widget + const char* pixmap; // artwork for the widget QString name; // name for widget int nwidth; // width of name when painting (only valid for text tab) } ; @@ -104,6 +107,7 @@ class TabWidget : public QWidget QColor m_tabText; // The color of the tabs' text. QColor m_tabTitleText; // The color of the TabWidget's title text. QColor m_tabSelected; // The highlighting color for the selected tab. + QColor m_tabTextSelected;// The text color for the selected tab. QColor m_tabBackground; // The TabWidget's background color. QColor m_tabBorder; // The TabWidget's borders color. } ; diff --git a/include/ThreadPool.h b/include/ThreadPool.h new file mode 100644 index 00000000000..ad4d798505b --- /dev/null +++ b/include/ThreadPool.h @@ -0,0 +1,93 @@ +/* + * ThreadPool.h + * + * Copyright (c) 2024 saker + * + * This file is part of LMMS - https://lmms.io + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#ifndef LMMS_THREAD_POOL_H +#define LMMS_THREAD_POOL_H + +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +namespace lmms { +//! A thread pool that can be used for asynchronous processing. +class ThreadPool +{ +public: + //! Destroys the `ThreadPool` object. + //! This blocks until all workers have finished executing. + ~ThreadPool(); + + //! Enqueue function `fn` with arguments `args` to be ran asynchronously. + template + auto enqueue(Fn&& fn, Args&&... args) -> std::future> + { + using ReturnType = std::invoke_result_t; + + auto promise = std::make_shared>(); + auto task = [promise, fn = std::forward(fn), args = std::make_tuple(std::forward(args)...)] + { + if constexpr (!std::is_same_v) + { + promise->set_value(std::apply(fn, args)); + return; + } + std::apply(fn, args); + promise->set_value(); + }; + + { + const auto lock = std::unique_lock{m_runMutex}; + m_queue.push(std::move(task)); + } + + m_runCond.notify_one(); + return promise->get_future(); + } + + //! Return the number of worker threads used. + auto numWorkers() const -> size_t; + + //! Return the global `ThreadPool` instance. + static auto instance() -> ThreadPool&; + +private: + ThreadPool(size_t numWorkers); + void run(); + std::vector m_workers; + std::queue> m_queue; + std::atomic m_done = false; + std::condition_variable m_runCond; + std::mutex m_runMutex; + inline static size_t s_numWorkers = std::thread::hardware_concurrency(); +}; +} // namespace lmms + +#endif // LMMS_THREAD_POOL_H diff --git a/include/TimeLineWidget.h b/include/TimeLineWidget.h index 2e4ba6a97a4..0eb33bad935 100644 --- a/include/TimeLineWidget.h +++ b/include/TimeLineWidget.h @@ -25,14 +25,25 @@ #ifndef LMMS_GUI_TIMELINE_WIDGET_H #define LMMS_GUI_TIMELINE_WIDGET_H +#include + +#include +#include #include #include "Song.h" +#include "embed.h" class QPixmap; class QToolBar; +namespace lmms { + +class Timeline; + +} // namespace lmms + namespace lmms::gui { @@ -41,7 +52,7 @@ class TextFloat; class SongEditor; -class TimeLineWidget : public QWidget, public JournallingObject +class TimeLineWidget : public QWidget { Q_OBJECT public: @@ -50,33 +61,25 @@ class TimeLineWidget : public QWidget, public JournallingObject Q_PROPERTY( QColor inactiveLoopColor READ getInactiveLoopColor WRITE setInactiveLoopColor ) Q_PROPERTY( QBrush inactiveLoopBrush READ getInactiveLoopBrush WRITE setInactiveLoopBrush ) Q_PROPERTY( QColor inactiveLoopInnerColor READ getInactiveLoopInnerColor WRITE setInactiveLoopInnerColor ) + Q_PROPERTY(QColor inactiveLoopHandleColor MEMBER m_inactiveLoopHandleColor) Q_PROPERTY( QColor activeLoopColor READ getActiveLoopColor WRITE setActiveLoopColor ) Q_PROPERTY( QBrush activeLoopBrush READ getActiveLoopBrush WRITE setActiveLoopBrush ) Q_PROPERTY( QColor activeLoopInnerColor READ getActiveLoopInnerColor WRITE setActiveLoopInnerColor ) + Q_PROPERTY(QColor activeLoopHandleColor MEMBER m_activeLoopHandleColor) Q_PROPERTY( int loopRectangleVerticalPadding READ getLoopRectangleVerticalPadding WRITE setLoopRectangleVerticalPadding ) + Q_PROPERTY(int loopHandleWidth MEMBER m_loopHandleWidth) + Q_PROPERTY(QSize mouseHotspotSelLeft READ mouseHotspotSelLeft WRITE setMouseHotspotSelLeft) + Q_PROPERTY(QSize mouseHotspotSelRight READ mouseHotspotSelRight WRITE setMouseHotspotSelRight) enum class AutoScrollState { - Enabled, + Stepped, + Continuous, Disabled - } ; - - enum class LoopPointState - { - Disabled, - Enabled - } ; - - enum class BehaviourAtStopState - { - BackToZero, - BackToStart, - KeepStopPosition - } ; + }; - - TimeLineWidget(int xoff, int yoff, float ppb, Song::PlayPos & pos, - const TimePos & begin, Song::PlayMode mode, QWidget * parent); + TimeLineWidget(int xoff, int yoff, float ppb, Song::PlayPos& pos, Timeline& timeline, + const TimePos& begin, Song::PlayMode mode, QWidget* parent); ~TimeLineWidget() override; inline QColor const & getBarLineColor() const { return m_barLineColor; } @@ -106,50 +109,36 @@ class TimeLineWidget : public QWidget, public JournallingObject inline int const & getLoopRectangleVerticalPadding() const { return m_loopRectangleVerticalPadding; } inline void setLoopRectangleVerticalPadding(int const & loopRectangleVerticalPadding) { m_loopRectangleVerticalPadding = loopRectangleVerticalPadding; } - inline Song::PlayPos & pos() - { - return( m_pos ); - } - - AutoScrollState autoScroll() const + auto mouseHotspotSelLeft() const -> QSize { - return m_autoScroll; + const auto point = m_cursorSelectLeft.hotSpot(); + return QSize{point.x(), point.y()}; } - BehaviourAtStopState behaviourAtStop() const + void setMouseHotspotSelLeft(const QSize& s) { - return m_behaviourAtStop; + m_cursorSelectLeft = QCursor{m_cursorSelectLeft.pixmap(), s.width(), s.height()}; } - void setBehaviourAtStop (int state) + auto mouseHotspotSelRight() const -> QSize { - emit loadBehaviourAtStop (state); + const auto point = m_cursorSelectRight.hotSpot(); + return QSize{point.x(), point.y()}; } - bool loopPointsEnabled() const + void setMouseHotspotSelRight(const QSize& s) { - return m_loopPoints == LoopPointState::Enabled; + m_cursorSelectRight = QCursor{m_cursorSelectRight.pixmap(), s.width(), s.height()}; } - inline const TimePos & loopBegin() const - { - return ( m_loopPos[0] < m_loopPos[1] ) ? - m_loopPos[0] : m_loopPos[1]; - } - - inline const TimePos & loopEnd() const + inline Song::PlayPos & pos() { - return ( m_loopPos[0] > m_loopPos[1] ) ? - m_loopPos[0] : m_loopPos[1]; + return( m_pos ); } - inline void savePos( const TimePos & pos ) - { - m_savedPos = pos; - } - inline const TimePos & savedPos() const + AutoScrollState autoScroll() const { - return m_savedPos; + return m_autoScroll; } inline void setPixelsPerBar( float ppb ) @@ -162,14 +151,6 @@ class TimeLineWidget : public QWidget, public JournallingObject void addToolButtons(QToolBar* _tool_bar ); - - void saveSettings( QDomDocument & _doc, QDomElement & _parent ) override; - void loadSettings( const QDomElement & _this ) override; - inline QString nodeName() const override - { - return "timeline"; - } - inline int markerX( const TimePos & _t ) const { return m_xOffset + static_cast( ( _t - m_begin ) * @@ -177,92 +158,82 @@ class TimeLineWidget : public QWidget, public JournallingObject } signals: - + void positionChanged(const lmms::TimePos& postion); void regionSelectedFromPixels( int, int ); void selectionFinished(); - public slots: - void updatePosition( const lmms::TimePos & ); - void updatePosition() - { - updatePosition( TimePos() ); - } + void updatePosition(); void setSnapSize( const float snapSize ) { m_snapSize = snapSize; } void toggleAutoScroll( int _n ); - void toggleLoopPoints( int _n ); - void toggleBehaviourAtStop( int _n ); - protected: void paintEvent( QPaintEvent * _pe ) override; void mousePressEvent( QMouseEvent * _me ) override; void mouseMoveEvent( QMouseEvent * _me ) override; void mouseReleaseEvent( QMouseEvent * _me ) override; - + void contextMenuEvent(QContextMenuEvent* event) override; private: - static QPixmap * s_posMarkerPixmap; + enum class Action + { + NoAction, + MovePositionMarker, + MoveLoopBegin, + MoveLoopEnd, + MoveLoop, + SelectSongClip, + }; + + auto getClickedTime(int xPosition) const -> TimePos; + auto getLoopAction(QMouseEvent* event) const -> Action; + auto actionCursor(Action action) const -> QCursor; - QColor m_inactiveLoopColor; - QBrush m_inactiveLoopBrush; - QColor m_inactiveLoopInnerColor; + QPixmap m_posMarkerPixmap = embed::getIconPixmap("playpos_marker"); - QColor m_activeLoopColor; - QBrush m_activeLoopBrush; - QColor m_activeLoopInnerColor; + QColor m_inactiveLoopColor = QColor{52, 63, 53, 64}; + QBrush m_inactiveLoopBrush = QColor{255, 255, 255, 32}; + QColor m_inactiveLoopInnerColor = QColor{255, 255, 255, 32}; + QColor m_inactiveLoopHandleColor = QColor{255, 255, 255, 32}; - int m_loopRectangleVerticalPadding; + QColor m_activeLoopColor = QColor{52, 63, 53, 255}; + QBrush m_activeLoopBrush = QColor{55, 141, 89}; + QColor m_activeLoopInnerColor = QColor{74, 155, 100, 255}; + QColor m_activeLoopHandleColor = QColor{74, 155, 100, 255}; - QColor m_barLineColor; - QColor m_barNumberColor; + int m_loopRectangleVerticalPadding = 1; + int m_loopHandleWidth = 5; - AutoScrollState m_autoScroll; - LoopPointState m_loopPoints; - BehaviourAtStopState m_behaviourAtStop; + QColor m_barLineColor = QColor{192, 192, 192}; + QColor m_barNumberColor = m_barLineColor.darker(120); - bool m_changedPosition; + QCursor m_cursorSelectLeft = QCursor{embed::getIconPixmap("cursor_select_left"), 0, 16}; + QCursor m_cursorSelectRight = QCursor{embed::getIconPixmap("cursor_select_right"), 32, 16}; + AutoScrollState m_autoScroll = AutoScrollState::Stepped; + + // Width of the unused region on the widget's left (above track labels or piano) int m_xOffset; - int m_posMarkerX; float m_ppb; - float m_snapSize; + float m_snapSize = 1.f; Song::PlayPos & m_pos; + Timeline* m_timeline; + // Leftmost position visible in parent editor const TimePos & m_begin; const Song::PlayMode m_mode; - TimePos m_loopPos[2]; - - TimePos m_savedPos; - + // When in MoveLoop mode we need the initial positions. Storing only the latest + // position allows for unquantized drag but fails when toggling quantization. + std::array m_oldLoopPos; + TimePos m_dragStartPos; - TextFloat * m_hint; + TextFloat* m_hint = nullptr; int m_initalXSelect; - - enum class Action - { - NoAction, - MovePositionMarker, - MoveLoopBegin, - MoveLoopEnd, - SelectSongClip, - } m_action; - - int m_moveXOff; - - -signals: - void positionChanged( const lmms::TimePos & _t ); - void loopPointStateLoaded( int _n ); - void positionMarkerMoved(); - void loadBehaviourAtStop( int _n ); - -} ; - - + Action m_action = Action::NoAction; +}; } // namespace lmms::gui diff --git a/include/TimePos.h b/include/TimePos.h index b86d8eb0fa6..68f3bd01b05 100644 --- a/include/TimePos.h +++ b/include/TimePos.h @@ -26,6 +26,8 @@ #ifndef LMMS_TIME_POS_H #define LMMS_TIME_POS_H +#include +#include #include "lmms_export.h" #include "lmms_basics.h" @@ -51,8 +53,8 @@ class LMMS_EXPORT TimeSig public: TimeSig( int num, int denom ); TimeSig( const MeterModel &model ); - int numerator() const; - int denominator() const; + int numerator() const { return m_num; } + int denominator() const { return m_denom; } private: int m_num; int m_denom; @@ -69,42 +71,72 @@ class LMMS_EXPORT TimePos TimePos( const tick_t ticks = 0 ); TimePos quantize(float) const; - TimePos toAbsoluteBar() const; + TimePos toAbsoluteBar() const { return getBar() * s_ticksPerBar; } - TimePos& operator+=( const TimePos& time ); - TimePos& operator-=( const TimePos& time ); + TimePos& operator+=(const TimePos& time) + { + m_ticks += time.m_ticks; + return *this; + } + + TimePos& operator-=(const TimePos& time) + { + m_ticks -= time.m_ticks; + return *this; + } // return the bar, rounded down and 0-based - bar_t getBar() const; + bar_t getBar() const { return m_ticks / s_ticksPerBar; } + // return the bar, rounded up and 0-based - bar_t nextFullBar() const; + bar_t nextFullBar() const { return (m_ticks + (s_ticksPerBar - 1)) / s_ticksPerBar; } + + void setTicks(tick_t ticks) { m_ticks = ticks; } + tick_t getTicks() const { return m_ticks; } - void setTicks( tick_t ticks ); - tick_t getTicks() const; + operator int() const { return m_ticks; } - operator int() const; + tick_t ticksPerBeat(const TimeSig& sig) const { return ticksPerBar(sig) / sig.numerator(); } - tick_t ticksPerBeat( const TimeSig &sig ) const; // Remainder ticks after bar is removed - tick_t getTickWithinBar( const TimeSig &sig ) const; + tick_t getTickWithinBar(const TimeSig& sig) const { return m_ticks % ticksPerBar(sig); } + // Returns the beat position inside the bar, 0-based - tick_t getBeatWithinBar( const TimeSig &sig ) const; + tick_t getBeatWithinBar(const TimeSig& sig) const { return getTickWithinBar(sig) / ticksPerBeat(sig); } + // Remainder ticks after bar and beat are removed - tick_t getTickWithinBeat( const TimeSig &sig ) const; + tick_t getTickWithinBeat(const TimeSig& sig) const { return getTickWithinBar(sig) % ticksPerBeat(sig); } // calculate number of frame that are needed this time - f_cnt_t frames( const float framesPerTick ) const; - - double getTimeInMilliseconds( bpm_t beatsPerMinute ) const; - - static TimePos fromFrames( const f_cnt_t frames, const float framesPerTick ); - static tick_t ticksPerBar(); - static tick_t ticksPerBar( const TimeSig &sig ); - static int stepsPerBar(); - static void setTicksPerBar( tick_t tpt ); - static TimePos stepPosition( int step ); - static double ticksToMilliseconds( tick_t ticks, bpm_t beatsPerMinute ); - static double ticksToMilliseconds( double ticks, bpm_t beatsPerMinute ); + f_cnt_t frames(const float framesPerTick) const + { + // Before, step notes used to have negative length. This + // assert is a safeguard against negative length being + // introduced again (now using Note Types instead #5902) + assert(m_ticks >= 0); + return static_cast(m_ticks * framesPerTick); + } + + double getTimeInMilliseconds(bpm_t beatsPerMinute) const { return ticksToMilliseconds(getTicks(), beatsPerMinute); } + + static TimePos fromFrames(const f_cnt_t frames, const float framesPerTick) + { + return TimePos(static_cast(frames / framesPerTick)); + } + + static tick_t ticksPerBar() { return s_ticksPerBar; } + static tick_t ticksPerBar(const TimeSig& sig) { return DefaultTicksPerBar * sig.numerator() / sig.denominator(); } + + static int stepsPerBar() { return std::max(1, ticksPerBar() / DefaultBeatsPerBar); } + static void setTicksPerBar(tick_t ticks) { s_ticksPerBar = ticks; } + static TimePos stepPosition(int step) { return step * ticksPerBar() / stepsPerBar(); } + + static double ticksToMilliseconds(tick_t ticks, bpm_t beatsPerMinute) + { + return ticksToMilliseconds(static_cast(ticks), beatsPerMinute); + } + + static double ticksToMilliseconds(double ticks, bpm_t beatsPerMinute) { return (ticks * 1250) / beatsPerMinute; } private: tick_t m_ticks; diff --git a/include/Timeline.h b/include/Timeline.h new file mode 100644 index 00000000000..dc2d293c4f5 --- /dev/null +++ b/include/Timeline.h @@ -0,0 +1,82 @@ +/* + * Timeline.h + * + * Copyright (c) 2023 Dominic Clark + * + * This file is part of LMMS - https://lmms.io + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + */ + +#ifndef LMMS_TIMELINE_H +#define LMMS_TIMELINE_H + +#include + +#include "JournallingObject.h" +#include "TimePos.h" + +namespace lmms { + +class Timeline : public QObject, public JournallingObject +{ + Q_OBJECT + +public: + enum class StopBehaviour + { + BackToZero, + BackToStart, + KeepPosition + }; + + auto loopBegin() const -> TimePos { return m_loopBegin; } + auto loopEnd() const -> TimePos { return m_loopEnd; } + auto loopEnabled() const -> bool { return m_loopEnabled; } + + void setLoopBegin(TimePos begin); + void setLoopEnd(TimePos end); + void setLoopPoints(TimePos begin, TimePos end); + void setLoopEnabled(bool enabled); + + auto playStartPosition() const -> TimePos { return m_playStartPosition; } + auto stopBehaviour() const -> StopBehaviour { return m_stopBehaviour; } + + void setPlayStartPosition(TimePos position) { m_playStartPosition = position; } + void setStopBehaviour(StopBehaviour behaviour); + + auto nodeName() const -> QString override { return "timeline"; } + +signals: + void loopEnabledChanged(bool enabled); + void stopBehaviourChanged(lmms::Timeline::StopBehaviour behaviour); + +protected: + void saveSettings(QDomDocument& doc, QDomElement& element) override; + void loadSettings(const QDomElement& element) override; + +private: + TimePos m_loopBegin = TimePos{0}; + TimePos m_loopEnd = TimePos{DefaultTicksPerBar}; + bool m_loopEnabled = false; + + StopBehaviour m_stopBehaviour = StopBehaviour::BackToStart; + TimePos m_playStartPosition = TimePos{-1}; +}; + +} // namespace lmms + +#endif // LMMS_TIMELINE_H diff --git a/include/Track.h b/include/Track.h index 71c6b04573b..52d43f6e115 100644 --- a/include/Track.h +++ b/include/Track.h @@ -67,7 +67,6 @@ char const *const FILENAME_FILTER = "[\\0000-\x1f\"*/:<>?\\\\|\x7f]"; class LMMS_EXPORT Track : public Model, public JournallingObject { Q_OBJECT - MM_OPERATORS mapPropertyFromModel(bool,isMuted,setMuted,m_mutedModel); mapPropertyFromModel(bool,isSolo,setSolo,m_soloModel); public: @@ -108,19 +107,17 @@ class LMMS_EXPORT Track : public Model, public JournallingObject virtual gui::TrackView * createView( gui::TrackContainerView * view ) = 0; virtual Clip * createClip( const TimePos & pos ) = 0; - virtual void saveTrackSpecificSettings( QDomDocument & doc, - QDomElement & parent ) = 0; + virtual void saveTrackSpecificSettings(QDomDocument& doc, QDomElement& parent, bool presetMode) = 0; virtual void loadTrackSpecificSettings( const QDomElement & element ) = 0; + // Saving and loading of presets which do not necessarily contain all the track information + void savePreset(QDomDocument & doc, QDomElement & element); + void loadPreset(const QDomElement & element); + // Saving and loading of full tracks void saveSettings( QDomDocument & doc, QDomElement & element ) override; void loadSettings( const QDomElement & element ) override; - void setSimpleSerializing() - { - m_simpleSerializingMode = true; - } - // -- for usage by Clip only --------------- Clip * addClip( Clip * clip ); void removeClip( Clip * clip ); @@ -128,7 +125,7 @@ class LMMS_EXPORT Track : public Model, public JournallingObject void deleteClips(); int numOfClips(); - Clip * getClip( int clipNum ); + auto getClip(std::size_t clipNum) -> Clip*; int getClipNum(const Clip* clip ); const clipVector & getClips() const @@ -189,15 +186,9 @@ class LMMS_EXPORT Track : public Model, public JournallingObject { return m_processingLock.tryLock(); } - - QColor color() - { - return m_color.value(); - } - bool useColor() - { - return m_color.has_value(); - } + + auto color() const -> const std::optional& { return m_color; } + void setColor(const std::optional& color); bool isMutedBeforeSolo() const { @@ -207,11 +198,7 @@ class LMMS_EXPORT Track : public Model, public JournallingObject BoolModel* getMutedModel(); public slots: - virtual void setName( const QString & newName ) - { - m_name = newName; - emit nameChanged(); - } + virtual void setName(const QString& newName); void setMutedBeforeSolo(const bool muted) { @@ -220,8 +207,9 @@ public slots: void toggleSolo(); - void setColor(const QColor& c); - void resetColor(); +private: + void saveTrack(QDomDocument& doc, QDomElement& element, bool presetMode); + void loadTrack(const QDomElement& element, bool presetMode); private: TrackContainer* m_trackContainer; @@ -236,8 +224,6 @@ public slots: BoolModel m_soloModel; bool m_mutedBeforeSolo; - bool m_simpleSerializingMode; - clipVector m_clips; QMutex m_processingLock; diff --git a/include/TrackContainerView.h b/include/TrackContainerView.h index 82d6f993b08..010cda60280 100644 --- a/include/TrackContainerView.h +++ b/include/TrackContainerView.h @@ -166,9 +166,7 @@ public slots: protected: - static const int DEFAULT_PIXELS_PER_BAR = 16; - - void resizeEvent( QResizeEvent * ) override; + static const int DEFAULT_PIXELS_PER_BAR = 128; TimePos m_currentPosition; diff --git a/include/TrackContentWidget.h b/include/TrackContentWidget.h index 7cf2363231d..f93b0a58d6f 100644 --- a/include/TrackContentWidget.h +++ b/include/TrackContentWidget.h @@ -49,18 +49,24 @@ class TrackContentWidget : public QWidget, public JournallingObject Q_OBJECT // qproperties for track background gradients - Q_PROPERTY( QBrush darkerColor READ darkerColor WRITE setDarkerColor ) - Q_PROPERTY( QBrush lighterColor READ lighterColor WRITE setLighterColor ) - Q_PROPERTY( QBrush gridColor READ gridColor WRITE setGridColor ) - Q_PROPERTY( QBrush embossColor READ embossColor WRITE setEmbossColor ) + Q_PROPERTY(QBrush darkerColor READ darkerColor WRITE setDarkerColor) + Q_PROPERTY(QBrush lighterColor READ lighterColor WRITE setLighterColor) + Q_PROPERTY(QBrush coarseGridColor READ coarseGridColor WRITE setCoarseGridColor) + Q_PROPERTY(QBrush fineGridColor READ fineGridColor WRITE setFineGridColor) + Q_PROPERTY(QBrush horizontalColor READ horizontalColor WRITE setHorizontalColor) + Q_PROPERTY(QBrush embossColor READ embossColor WRITE setEmbossColor) + + Q_PROPERTY(int coarseGridWidth READ coarseGridWidth WRITE setCoarseGridWidth) + Q_PROPERTY(int fineGridWidth READ fineGridWidth WRITE setFineGridWidth) + Q_PROPERTY(int horizontalWidth READ horizontalWidth WRITE setHorizontalWidth) + Q_PROPERTY(int embossWidth READ embossWidth WRITE setEmbossWidth) + + Q_PROPERTY(int embossOffset READ embossOffset WRITE setEmbossOffset) public: TrackContentWidget( TrackView * parent ); ~TrackContentWidget() override = default; - /*! \brief Updates the background tile pixmap. */ - void updateBackground(); - void addClipView( ClipView * clipv ); void removeClipView( ClipView * clipv ); void removeClipView( int clipNum ) @@ -82,17 +88,37 @@ class TrackContentWidget : public QWidget, public JournallingObject QBrush darkerColor() const; QBrush lighterColor() const; - QBrush gridColor() const; + QBrush coarseGridColor() const; + QBrush fineGridColor() const; + QBrush horizontalColor() const; QBrush embossColor() const; - void setDarkerColor( const QBrush & c ); - void setLighterColor( const QBrush & c ); - void setGridColor( const QBrush & c ); - void setEmbossColor( const QBrush & c); + int coarseGridWidth() const; + int fineGridWidth() const; + int horizontalWidth() const; + int embossWidth() const; + + int embossOffset() const; + + void setDarkerColor(const QBrush & c); + void setLighterColor(const QBrush & c); + void setCoarseGridColor(const QBrush & c); + void setFineGridColor(const QBrush & c); + void setHorizontalColor(const QBrush & c); + void setEmbossColor(const QBrush & c); + + void setCoarseGridWidth(int c); + void setFineGridWidth(int c); + void setHorizontalWidth(int c); + void setEmbossWidth(int c); + + void setEmbossOffset(int c); public slots: void update(); void changePosition( const lmms::TimePos & newPos = TimePos( -1 ) ); + /*! \brief Updates the background tile pixmap. */ + void updateBackground(); protected: enum class ContextMenuAction @@ -140,8 +166,17 @@ public slots: // qproperty fields QBrush m_darkerColor; QBrush m_lighterColor; - QBrush m_gridColor; + QBrush m_coarseGridColor; + QBrush m_fineGridColor; + QBrush m_horizontalColor; QBrush m_embossColor; + + int m_coarseGridWidth; + int m_fineGridWidth; + int m_horizontalWidth; + int m_embossWidth; + + int m_embossOffset; } ; diff --git a/include/TrackGrip.h b/include/TrackGrip.h new file mode 100644 index 00000000000..aa19222a6ff --- /dev/null +++ b/include/TrackGrip.h @@ -0,0 +1,68 @@ +/* + * TrackGrip.h - Grip that can be used to move tracks + * + * Copyright (c) 2024- Michael Gregorius + * + * This file is part of LMMS - https://lmms.io + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#ifndef LMMS_GUI_TRACK_GRIP_H +#define LMMS_GUI_TRACK_GRIP_H + +#include + + +class QPixmap; + +namespace lmms +{ + +class Track; + +namespace gui +{ + +class TrackGrip : public QWidget +{ + Q_OBJECT +public: + TrackGrip(Track* track, QWidget* parent = 0); + ~TrackGrip() override = default; + +signals: + void grabbed(); + void released(); + +protected: + void mousePressEvent(QMouseEvent*) override; + void mouseReleaseEvent(QMouseEvent*) override; + void paintEvent(QPaintEvent*) override; + +private: + Track* m_track = nullptr; + bool m_isGrabbed = false; + static QPixmap* s_grabbedPixmap; + static QPixmap* s_releasedPixmap; +}; + +} // namespace gui + +} // namespace lmms + +#endif // LMMS_GUI_TRACK_GRIP_H diff --git a/include/TrackLabelButton.h b/include/TrackLabelButton.h index 0d1c6e163f4..e2cba02a648 100644 --- a/include/TrackLabelButton.h +++ b/include/TrackLabelButton.h @@ -25,6 +25,8 @@ #ifndef LMMS_GUI_TRACK_LABEL_BUTTON_H #define LMMS_GUI_TRACK_LABEL_BUTTON_H +#include + #include namespace lmms::gui @@ -55,13 +57,15 @@ public slots: void mousePressEvent( QMouseEvent * _me ) override; void mouseDoubleClickEvent( QMouseEvent * _me ) override; void mouseReleaseEvent( QMouseEvent * _me ) override; - void paintEvent( QPaintEvent * _pe ) override; + void paintEvent(QPaintEvent* pe) override; void resizeEvent( QResizeEvent * _re ) override; +private: + bool isInCompactMode() const; private: TrackView * m_trackView; - QString m_iconName; + std::string m_iconName; TrackRenameLineEdit * m_renameLineEdit; QRect m_buttonRect; QString elideName( const QString &name ); diff --git a/include/TrackOperationsWidget.h b/include/TrackOperationsWidget.h index 4dbb5353c5f..8417298b423 100644 --- a/include/TrackOperationsWidget.h +++ b/include/TrackOperationsWidget.h @@ -33,6 +33,7 @@ namespace lmms::gui { class PixmapButton; +class TrackGrip; class TrackView; class TrackOperationsWidget : public QWidget @@ -42,6 +43,7 @@ class TrackOperationsWidget : public QWidget TrackOperationsWidget( TrackView * parent ); ~TrackOperationsWidget() override = default; + TrackGrip* getTrackGrip() const { return m_trackGrip; } protected: void mousePressEvent( QMouseEvent * me ) override; @@ -65,6 +67,7 @@ private slots: private: TrackView * m_trackView; + TrackGrip* m_trackGrip; QPushButton * m_trackOps; PixmapButton * m_muteBtn; PixmapButton * m_soloBtn; diff --git a/include/TrackView.h b/include/TrackView.h index f697d9ea86a..c13ba1e870e 100644 --- a/include/TrackView.h +++ b/include/TrackView.h @@ -134,9 +134,12 @@ public slots: void mousePressEvent( QMouseEvent * me ) override; void mouseMoveEvent( QMouseEvent * me ) override; void mouseReleaseEvent( QMouseEvent * me ) override; + void wheelEvent(QWheelEvent* we) override; void paintEvent( QPaintEvent * pe ) override; void resizeEvent( QResizeEvent * re ) override; +private: + void resizeToHeight(int height); private: enum class Action @@ -168,7 +171,8 @@ public slots: private slots: void createClipView( lmms::Clip * clip ); void muteChanged(); - + void onTrackGripGrabbed(); + void onTrackGripReleased(); } ; diff --git a/include/ValueBuffer.h b/include/ValueBuffer.h index 683d17fb1ff..33d93cde02b 100644 --- a/include/ValueBuffer.h +++ b/include/ValueBuffer.h @@ -28,7 +28,6 @@ #include -#include "MemoryManager.h" #include "lmms_export.h" namespace lmms @@ -37,7 +36,6 @@ namespace lmms class LMMS_EXPORT ValueBuffer : public std::vector { - MM_OPERATORS public: ValueBuffer() = default; ValueBuffer(int length); diff --git a/include/embed.h b/include/embed.h index 7d69f7c7d58..40a3622c6d8 100644 --- a/include/embed.h +++ b/include/embed.h @@ -25,117 +25,81 @@ #ifndef LMMS_EMBED_H #define LMMS_EMBED_H +#include +#include + #include #include #include "lmms_export.h" #include "lmms_basics.h" +namespace lmms { -namespace lmms -{ - -namespace embed -{ +namespace embed { /** * Return an image for the icon pixmap cache. * - * @param _name Identifier for the pixmap. If it is not in the icon pixmap + * @param name Identifier for the pixmap. If it is not in the icon pixmap * cache, it will be loaded from the artwork QDir search paths (exceptions are * compiled-in XPMs, you need to provide @p xpm for loading them). * @param xpm Must be XPM data if the source should be raw XPM data instead of * a file */ -QPixmap LMMS_EXPORT getIconPixmap( const QString& _name, - int _w = -1, int _h = -1 , const char** xpm = nullptr ); -QString LMMS_EXPORT getText( const char * _name ); - -} - - -#ifdef PLUGIN_NAME -namespace PLUGIN_NAME -{ - -inline QPixmap getIconPixmap( const QString& _name, - int _w = -1, int _h = -1, const char** xpm = nullptr ) -{ - return embed::getIconPixmap(QString("%1/%2").arg(LMMS_STRINGIFY(PLUGIN_NAME), _name), _w, _h, xpm); -} -//QString getText( const char * _name ); - -} // namespace PLUGIN_NAME - -#endif // PLUGIN_NAME +auto LMMS_EXPORT getIconPixmap(std::string_view name, + int width = -1, int height = -1, const char* const* xpm = nullptr) -> QPixmap; +auto LMMS_EXPORT getText(std::string_view name) -> QString; +} // namespace embed class PixmapLoader { public: - PixmapLoader( const PixmapLoader * _ref ) : - m_name( _ref != nullptr ? _ref->m_name : QString() ), - m_xpm( _ref->m_xpm ) - { - } + PixmapLoader() = default; - PixmapLoader( const QString & _name = QString(), - const char** xpm = nullptr ) : - m_name( _name ), - m_xpm(xpm) - { - } - - virtual QPixmap pixmap() const - { - if( !m_name.isEmpty() ) - { - return( embed::getIconPixmap( - m_name.toLatin1().constData(), -1, -1, m_xpm )); - } - return( QPixmap() ); - } + explicit PixmapLoader(std::string name, const char* const* xpm = nullptr) : + m_name{std::move(name)}, + m_xpm{xpm} + { } virtual ~PixmapLoader() = default; - virtual QString pixmapName() const + auto pixmap(int width = -1, int height = -1) const -> QPixmap { - return m_name; + return embed::getIconPixmap(m_name, width, height, m_xpm); } -protected: - QString m_name; - const char** m_xpm = nullptr; -} ; + auto pixmapName() const -> const std::string& { return m_name; } +private: + std::string m_name; + const char* const* m_xpm = nullptr; +}; #ifdef PLUGIN_NAME + class PluginPixmapLoader : public PixmapLoader { public: - PluginPixmapLoader( const QString & _name = QString() ) : - PixmapLoader( _name ) - { - } + PluginPixmapLoader() = default; - QPixmap pixmap() const override - { - if( !m_name.isEmpty() ) - { - return( PLUGIN_NAME::getIconPixmap( - m_name.toLatin1().constData() ) ); - } - return( QPixmap() ); - } + explicit PluginPixmapLoader(std::string name, const char* const* xpm = nullptr) : + PixmapLoader{LMMS_STRINGIFY(PLUGIN_NAME) "/" + name, xpm} + { } +}; - QString pixmapName() const override - { - return QString( LMMS_STRINGIFY(PLUGIN_NAME) ) + "::" + m_name; - } +namespace PLUGIN_NAME { -} ; -#endif // PLUGIN_NAME +inline auto getIconPixmap(std::string_view name, + int width = -1, int height = -1, const char* const* xpm = nullptr) -> QPixmap +{ + return PluginPixmapLoader{std::string{name}, xpm}.pixmap(width, height); +} + +} // namespace PLUGIN_NAME +#endif // PLUGIN_NAME } // namespace lmms diff --git a/include/fft_helpers.h b/include/fft_helpers.h index cd4e5f88db4..80c69a0a35a 100644 --- a/include/fft_helpers.h +++ b/include/fft_helpers.h @@ -37,7 +37,7 @@ namespace lmms // NOTE: FFT_BUFFER_SIZE should be considered deprecated! // It is used by Eq plugin and some older code here, but this should be a user // switchable parameter, not a constant. Use a value from FFT_BLOCK_SIZES -const unsigned int FFT_BUFFER_SIZE = 2048; +constexpr auto FFT_BUFFER_SIZE = std::size_t{2048}; // Allowed FFT block sizes. Ranging from barely useful to barely acceptable // because of performance and latency reasons. diff --git a/include/gui_templates.h b/include/gui_templates.h deleted file mode 100644 index c0afbdfc0bb..00000000000 --- a/include/gui_templates.h +++ /dev/null @@ -1,71 +0,0 @@ -/* - * gui_templates.h - GUI-specific templates - * - * Copyright (c) 2005-2008 Tobias Doerffel - * - * This file is part of LMMS - https://lmms.io - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program (see COPYING); if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - */ - -#ifndef LMMS_GUI_TEMPLATES_H -#define LMMS_GUI_TEMPLATES_H - -#include "lmmsconfig.h" - -#include -#include -#include - -namespace lmms -{ - - -// return DPI-independent font-size - font with returned font-size has always -// the same size in pixels -template -inline QFont pointSize( QFont _f ) -{ - static const float DPI = 96; -#ifdef LMMS_BUILD_WIN32 - _f.setPointSizeF( ((float) SIZE+0.5f) * DPI / - QApplication::desktop()->logicalDpiY() ); -#else - _f.setPointSizeF( (float) SIZE * DPI / - QApplication::desktop()->logicalDpiY() ); -#endif - return( _f ); -} - - -inline QFont pointSizeF( QFont _f, float SIZE ) -{ - static const float DPI = 96; -#ifdef LMMS_BUILD_WIN32 - _f.setPointSizeF( (SIZE+0.5f) * DPI / - QApplication::desktop()->logicalDpiY() ); -#else - _f.setPointSizeF( SIZE * DPI / - QApplication::desktop()->logicalDpiY() ); -#endif - return( _f ); -} - - -} // namespace lmms - -#endif // LMMS_GUI_TEMPLATES_H diff --git a/include/interpolation.h b/include/interpolation.h index fd2c29a04dc..0b972bc279e 100644 --- a/include/interpolation.h +++ b/include/interpolation.h @@ -69,13 +69,13 @@ inline float hermiteInterpolate( float x0, float x1, float x2, float x3, inline float cubicInterpolate( float v0, float v1, float v2, float v3, float x ) { - float frsq = x*x; - float frcu = frsq*v0; - float t1 = v3 + 3*v1; + float frsq = x * x; + float frcu = frsq * v0; + float t1 = v1 * 3.f + v3; - return( v1 + fastFmaf( 0.5f, frcu, x ) * ( v2 - frcu * ( 1.0f/6.0f ) - - fastFmaf( t1, ( 1.0f/6.0f ), -v0 ) * ( 1.0f/3.0f ) ) + frsq * x * ( t1 * - ( 1.0f/6.0f ) - 0.5f * v2 ) + frsq * fastFmaf( 0.5f, v2, -v1 ) ); + return v1 + (0.5f * frcu + x) * (v2 - frcu * (1.0f / 6.0f) - + (t1 * (1.0f / 6.0f) - v0) * (1.0f / 3.0f)) + frsq * x * (t1 * + (1.0f / 6.0f) - 0.5f * v2) + frsq * (0.5f * v2 - v1); } @@ -83,13 +83,13 @@ inline float cubicInterpolate( float v0, float v1, float v2, float v3, float x ) inline float cosinusInterpolate( float v0, float v1, float x ) { const float f = ( 1.0f - cosf( x * F_PI ) ) * 0.5f; - return fastFmaf( f, v1-v0, v0 ); + return f * (v1 - v0) + v0; } inline float linearInterpolate( float v0, float v1, float x ) { - return fastFmaf( x, v1-v0, v0 ); + return x * (v1 - v0) + v0; } @@ -104,7 +104,7 @@ inline float optimalInterpolate( float v0, float v1, float x ) const float c2 = even * -0.004541102062639801; const float c3 = odd * -1.57015627178718420; - return fastFmaf( fastFmaf( fastFmaf( c3, z, c2 ), z, c1 ), z, c0 ); + return ((c3 * z + c2) * z + c1) * z + c0; } @@ -121,7 +121,7 @@ inline float optimal4pInterpolate( float v0, float v1, float v2, float v3, float const float c2 = even1 * -0.246185007019907091 + even2 * 0.24614027139700284; const float c3 = odd1 * -0.36030925263849456 + odd2 * 0.10174985775982505; - return fastFmaf( fastFmaf( fastFmaf( c3, z, c2 ), z, c1 ), z, c0 ); + return ((c3 * z + c2) * z + c1) * z + c0; } @@ -132,7 +132,7 @@ inline float lagrangeInterpolate( float v0, float v1, float v2, float v3, float const float c1 = v2 - v0 * ( 1.0f / 3.0f ) - v1 * 0.5f - v3 * ( 1.0f / 6.0f ); const float c2 = 0.5f * (v0 + v2) - v1; const float c3 = ( 1.0f/6.0f ) * ( v3 - v0 ) + 0.5f * ( v1 - v2 ); - return fastFmaf( fastFmaf( fastFmaf( c3, x, c2 ), x, c1 ), x, c0 ); + return ((c3 * x + c2) * x + c1) * x + c0; } diff --git a/include/lmms_basics.h b/include/lmms_basics.h index b566fa781ed..63a2bf3adc2 100644 --- a/include/lmms_basics.h +++ b/include/lmms_basics.h @@ -26,12 +26,11 @@ #define LMMS_TYPES_H #include -#include #include "lmmsconfig.h" #include -#include + namespace lmms @@ -46,77 +45,18 @@ using sample_t = float; // standard sample-type using int_sample_t = int16_t; // 16-bit-int-sample using sample_rate_t = uint32_t; // sample-rate -using fpp_t = int16_t; // frames per period (0-16384) -using f_cnt_t = int32_t; // standard frame-count -using ch_cnt_t = uint8_t; // channel-count (0-SURROUND_CHANNELS) +using fpp_t = size_t; // frames per period (0-16384) +using f_cnt_t = size_t; // standard frame-count +using ch_cnt_t = uint8_t; // channel-count (0-DEFAULT_CHANNELS) using bpm_t = uint16_t; // tempo (MIN_BPM to MAX_BPM) using bitrate_t = uint16_t; // bitrate in kbps using mix_ch_t = uint16_t; // Mixer-channel (0 to MAX_CHANNEL) using jo_id_t = uint32_t; // (unique) ID of a journalling object -// windows headers define "min" and "max" macros, breaking the methods bwloe -#undef min -#undef max - -template -struct typeInfo -{ - static inline T min() - { - return std::numeric_limits::min(); - } - - static inline T max() - { - return std::numeric_limits::max(); - } - - static inline T minEps() - { - return 1; - } - - static inline bool isEqual( T x, T y ) - { - return x == y; - } - - static inline T absVal( T t ) - { - return t >= 0 ? t : -t; - } -} ; - - -template<> -inline float typeInfo::minEps() -{ - return 1.0e-10f; -} - -template<> -inline bool typeInfo::isEqual( float x, float y ) -{ - if( x == y ) - { - return true; - } - return absVal( x - y ) < minEps(); -} - - constexpr ch_cnt_t DEFAULT_CHANNELS = 2; -constexpr ch_cnt_t SURROUND_CHANNELS = -#define LMMS_DISABLE_SURROUND -#ifndef LMMS_DISABLE_SURROUND - 4; -#else - 2; -#endif - constexpr char LADSPA_PATH_SEPERATOR = #ifdef LMMS_BUILD_WIN32 ';'; @@ -126,11 +66,6 @@ constexpr char LADSPA_PATH_SEPERATOR = -using sampleFrame = std::array; -using surroundSampleFrame = std::array; -constexpr std::size_t LMMS_ALIGN_SIZE = 16; - - #define LMMS_STRINGIFY(s) LMMS_STR(s) #define LMMS_STR(PN) #PN diff --git a/include/lmms_constants.h b/include/lmms_constants.h index c6452d6c619..4390b81eaec 100644 --- a/include/lmms_constants.h +++ b/include/lmms_constants.h @@ -36,6 +36,7 @@ constexpr long double LD_PI_R = 1.0 / LD_PI; constexpr long double LD_PI_SQR = LD_PI * LD_PI; constexpr long double LD_E = 2.71828182845904523536028747135266249775724709369995; constexpr long double LD_E_R = 1.0 / LD_E; +constexpr long double LD_SQRT_2 = 1.41421356237309504880168872420969807856967187537695; constexpr double D_PI = (double) LD_PI; constexpr double D_2PI = (double) LD_2PI; @@ -44,6 +45,7 @@ constexpr double D_PI_R = (double) LD_PI_R; constexpr double D_PI_SQR = (double) LD_PI_SQR; constexpr double D_E = (double) LD_E; constexpr double D_E_R = (double) LD_E_R; +constexpr double D_SQRT_2 = (double) LD_SQRT_2; constexpr float F_PI = (float) LD_PI; constexpr float F_2PI = (float) LD_2PI; @@ -52,6 +54,9 @@ constexpr float F_PI_R = (float) LD_PI_R; constexpr float F_PI_SQR = (float) LD_PI_SQR; constexpr float F_E = (float) LD_E; constexpr float F_E_R = (float) LD_E_R; +constexpr float F_SQRT_2 = (float) LD_SQRT_2; + +constexpr float F_EPSILON = 1.0e-10f; // 10^-10 // Microtuner constexpr unsigned int MaxScaleCount = 10; //!< number of scales per project diff --git a/include/lmms_math.h b/include/lmms_math.h index ea0a75581e8..bdadd7ba0c4 100644 --- a/include/lmms_math.h +++ b/include/lmms_math.h @@ -25,30 +25,38 @@ #ifndef LMMS_MATH_H #define LMMS_MATH_H +#include +#include +#include +#include #include +#include + #include "lmms_constants.h" #include "lmmsconfig.h" -#include - -#include namespace lmms { -#ifdef __INTEL_COMPILER - -static inline float absFraction( const float _x ) +inline bool approximatelyEqual(float x, float y) { - return( _x - floorf( _x ) ); + return x == y ? true : std::abs(x - y) < F_EPSILON; } -static inline float fraction( const float _x ) +/*! + * @brief Returns the fractional part of a float, a value between -1.0f and 1.0f. + * + * fraction( 2.3) => 0.3 + * fraction(-2.3) => -0.3 + * + * Note that if the return value is used as a phase of an oscillator, that the oscillator must support + * negative phases. + */ +inline float fraction(const float x) { - return( _x - floorf( _x ) - ( _x >= 0.0f ? 0.0 : 1.0 ) ); + return x - std::trunc(x); } -#else - /*! * @brief Returns the wrapped fractional part of a float, a value between 0.0f and 1.0f. * @@ -59,158 +67,74 @@ static inline float fraction( const float _x ) * If the result is interpreted as a phase of an oscillator, it makes that negative phases are * converted to positive phases. */ -static inline float absFraction( const float _x ) +inline float absFraction(const float x) { - return( _x - ( _x >= 0.0f ? static_cast( _x ) : - static_cast( _x ) - 1 ) ); + return x - std::floor(x); } -/*! - * @brief Returns the fractional part of a float, a value between -1.0f and 1.0f. - * - * fraction( 2.3) => 0.3 - * fraction(-2.3) => -0.3 - * - * Note that if the return value is used as a phase of an oscillator, that the oscillator must support - * negative phases. - */ -static inline float fraction( const float _x ) -{ - return( _x - static_cast( _x ) ); -} - - -#if 0 -// SSE3-version -static inline float absFraction( float _x ) -{ - unsigned int tmp; - asm( - "fld %%st\n\t" - "fisttp %1\n\t" - "fild %1\n\t" - "ftst\n\t" - "sahf\n\t" - "jae 1f\n\t" - "fld1\n\t" - "fsubrp %%st, %%st(1)\n\t" - "1:\n\t" - "fsubrp %%st, %%st(1)" - : "+t"( _x ), "=m"( tmp ) - : - : "st(1)", "cc" ); - return( _x ); -} -static inline float absFraction( float _x ) -{ - unsigned int tmp; - asm( - "fld %%st\n\t" - "fisttp %1\n\t" - "fild %1\n\t" - "fsubrp %%st, %%st(1)" - : "+t"( _x ), "=m"( tmp ) - : - : "st(1)" ); - return( _x ); -} -#endif - -#endif // __INTEL_COMPILER - - - -constexpr int FAST_RAND_MAX = 32767; -static inline int fast_rand() +constexpr float FAST_RAND_RATIO = 1.0f / 32767; +inline int fast_rand() { static unsigned long next = 1; next = next * 1103515245 + 12345; return( (unsigned)( next / 65536 ) % 32768 ); } -static inline double fastRand( double range ) +inline float fastRandf(float range) { - static const double fast_rand_ratio = 1.0 / FAST_RAND_MAX; - return fast_rand() * range * fast_rand_ratio; + return fast_rand() * range * FAST_RAND_RATIO; } -static inline float fastRandf( float range ) -{ - static const float fast_rand_ratio = 1.0f / FAST_RAND_MAX; - return fast_rand() * range * fast_rand_ratio; -} -//! @brief Takes advantage of fmal() function if present in hardware -static inline long double fastFmal( long double a, long double b, long double c ) +//! Round `value` to `where` depending on step size +template +static void roundAt(T& value, const T& where, const T& stepSize) { -#ifdef FP_FAST_FMAL - #ifdef __clang__ - return fma( a, b, c ); - #else - return fmal( a, b, c ); - #endif -#else - return a * b + c; -#endif // FP_FAST_FMAL + if (std::abs(value - where) < F_EPSILON * std::abs(stepSize)) + { + value = where; + } } -//! @brief Takes advantage of fmaf() function if present in hardware -static inline float fastFmaf( float a, float b, float c ) +//! Source: http://martin.ankerl.com/2007/10/04/optimized-pow-approximation-for-java-and-c-c/ +inline double fastPow(double a, double b) { -#ifdef FP_FAST_FMAF - #ifdef __clang__ - return fma( a, b, c ); - #else - return fmaf( a, b, c ); - #endif -#else - return a * b + c; -#endif // FP_FAST_FMAF -} + double d; + std::int32_t x[2]; -//! @brief Takes advantage of fma() function if present in hardware -static inline double fastFma( double a, double b, double c ) -{ -#ifdef FP_FAST_FMA - return fma( a, b, c ); -#else - return a * b + c; -#endif + std::memcpy(x, &a, sizeof(x)); + x[1] = static_cast(b * (x[1] - 1072632447) + 1072632447); + x[0] = 0; + + std::memcpy(&d, x, sizeof(d)); + return d; } -// source: http://martin.ankerl.com/2007/10/04/optimized-pow-approximation-for-java-and-c-c/ -static inline double fastPow( double a, double b ) -{ - union - { - double d; - int32_t x[2]; - } u = { a }; - u.x[1] = static_cast( b * ( u.x[1] - 1072632447 ) + 1072632447 ); - u.x[0] = 0; - return u.d; + +//! returns 1.0f if val >= 0.0f, -1.0 else +inline float sign(float val) +{ + return val >= 0.0f ? 1.0f : -1.0f; } -// sinc function -static inline double sinc( double _x ) + +//! if val >= 0.0f, returns sqrtf(val), else: -sqrtf(-val) +inline float sqrt_neg(float val) { - return _x == 0.0 ? 1.0 : sin( F_PI * _x ) / ( F_PI * _x ); + return std::sqrt(std::abs(val)) * sign(val); } - //! @brief Exponential function that deals with negative bases -static inline float signedPowf( float v, float e ) +inline float signedPowf(float v, float e) { - return v < 0 - ? powf( -v, e ) * -1.0f - : powf( v, e ); + return std::pow(std::abs(v), e) * sign(v); } //! @brief Scales @value from linear to logarithmic. //! Value should be within [0,1] -static inline float logToLinearScale( float min, float max, float value ) +inline float logToLinearScale(float min, float max, float value) { if( min < 0 ) { @@ -225,7 +149,7 @@ static inline float logToLinearScale( float min, float max, float value ) //! @brief Scales value from logarithmic to linear. Value should be in min-max range. -static inline float linearToLogScale( float min, float max, float value ) +inline float linearToLogScale(float min, float max, float value) { static const float EXP = 1.0f / F_E; const float valueLimited = std::clamp(value, min, max); @@ -240,100 +164,68 @@ static inline float linearToLogScale( float min, float max, float value ) return std::isnan( result ) ? 0 : result; } - - - -//! @brief Converts linear amplitude (0-1.0) to dBFS scale. Handles zeroes as -inf. -//! @param amp Linear amplitude, where 1.0 = 0dBFS. -//! @return Amplitude in dBFS. -inf for 0 amplitude. -static inline float safeAmpToDbfs( float amp ) +inline float fastPow10f(float x) { - return amp == 0.0f - ? -INFINITY - : log10f( amp ) * 20.0f; + return std::exp(2.302585092994046f * x); } - -//! @brief Converts dBFS-scale to linear amplitude with 0dBFS = 1.0. Handles infinity as zero. -//! @param dbfs The dBFS value to convert: all infinites are treated as -inf and result in 0 -//! @return Linear amplitude -static inline float safeDbfsToAmp( float dbfs ) +inline float fastLog10f(float x) { - return std::isinf( dbfs ) - ? 0.0f - : std::pow(10.f, dbfs * 0.05f ); + return std::log(x) * 0.4342944819032518f; } - //! @brief Converts linear amplitude (>0-1.0) to dBFS scale. //! @param amp Linear amplitude, where 1.0 = 0dBFS. ** Must be larger than zero! ** //! @return Amplitude in dBFS. -static inline float ampToDbfs( float amp ) +inline float ampToDbfs(float amp) { - return log10f( amp ) * 20.0f; + return fastLog10f(amp) * 20.0f; } //! @brief Converts dBFS-scale to linear amplitude with 0dBFS = 1.0 //! @param dbfs The dBFS value to convert. ** Must be a real number - not inf/nan! ** //! @return Linear amplitude -static inline float dbfsToAmp( float dbfs ) +inline float dbfsToAmp(float dbfs) { - return std::pow(10.f, dbfs * 0.05f ); + return fastPow10f(dbfs * 0.05f); } - -//! returns 1.0f if val >= 0.0f, -1.0 else -static inline float sign( float val ) -{ - return val >= 0.0f ? 1.0f : -1.0f; -} - - -//! if val >= 0.0f, returns sqrtf(val), else: -sqrtf(-val) -static inline float sqrt_neg( float val ) +//! @brief Converts linear amplitude (0-1.0) to dBFS scale. Handles zeroes as -inf. +//! @param amp Linear amplitude, where 1.0 = 0dBFS. +//! @return Amplitude in dBFS. -inf for 0 amplitude. +inline float safeAmpToDbfs(float amp) { - return sqrtf( fabs( val ) ) * sign( val ); + return amp == 0.0f ? -INFINITY : ampToDbfs(amp); } -// fast approximation of square root -static inline float fastSqrt( float n ) +//! @brief Converts dBFS-scale to linear amplitude with 0dBFS = 1.0. Handles infinity as zero. +//! @param dbfs The dBFS value to convert: all infinites are treated as -inf and result in 0 +//! @return Linear amplitude +inline float safeDbfsToAmp(float dbfs) { - union - { - int32_t i; - float f; - } u; - u.f = n; - u.i = ( u.i + ( 127 << 23 ) ) >> 1; - return u.f; + return std::isinf(dbfs) ? 0.0f : dbfsToAmp(dbfs); } -//! returns value furthest from zero -template -static inline T absMax( T a, T b ) -{ - return std::abs(a) > std::abs(b) ? a : b; -} -//! returns value nearest to zero -template -static inline T absMin( T a, T b ) + +//! Returns the linear interpolation of the two values +template +constexpr T lerp(T a, T b, F t) { - return std::abs(a) < std::abs(b) ? a : b; + return (1. - t) * a + t * b; } // @brief Calculate number of digits which LcdSpinBox would show for a given number // @note Once we upgrade to C++20, we could probably use std::formatted_size -static inline int numDigitsAsInt(float f) +inline int numDigitsAsInt(float f) { // use rounding: - // LcdSpinBox sometimes uses roundf(), sometimes cast rounding + // LcdSpinBox sometimes uses std::round(), sometimes cast rounding // we use rounding to be on the "safe side" - const float rounded = roundf(f); - int asInt = static_cast(rounded); + int asInt = static_cast(std::round(f)); int digits = 1; // always at least 1 if(asInt < 0) { @@ -341,16 +233,38 @@ static inline int numDigitsAsInt(float f) asInt = -asInt; } // "asInt" is positive from now - int32_t power = 1; - for(int32_t i = 1; i<10; ++i) + int power = 1; + for (int i = 1; i < 10; ++i) { power *= 10; - if(static_cast(asInt) >= power) { ++digits; } // 2 digits for >=10, 3 for >=100 + if (asInt >= power) { ++digits; } // 2 digits for >=10, 3 for >=100 else { break; } } return digits; } +template +class LinearMap +{ +public: + LinearMap(T x1, T y1, T x2, T y2) + { + T const dx = x2 - x1; + assert (dx != T(0)); + + m_a = (y2 - y1) / dx; + m_b = y1 - m_a * x1; + } + + T map(T x) const + { + return m_a * x + m_b; + } + +private: + T m_a; + T m_b; +}; } // namespace lmms diff --git a/plugins/Amplifier/Amplifier.cpp b/plugins/Amplifier/Amplifier.cpp index 7de8fb18088..04fd98682bd 100644 --- a/plugins/Amplifier/Amplifier.cpp +++ b/plugins/Amplifier/Amplifier.cpp @@ -36,9 +36,9 @@ extern "C" Plugin::Descriptor PLUGIN_EXPORT amplifier_plugin_descriptor = { - LMMS_STRINGIFY( PLUGIN_NAME ), + LMMS_STRINGIFY(PLUGIN_NAME), "Amplifier", - QT_TRANSLATE_NOOP( "PluginBrowser", "A native amplifier plugin" ), + QT_TRANSLATE_NOOP("PluginBrowser", "A native amplifier plugin"), "Vesa Kivimäki ", 0x0100, Plugin::Type::Effect, @@ -50,99 +50,54 @@ Plugin::Descriptor PLUGIN_EXPORT amplifier_plugin_descriptor = } - -AmplifierEffect::AmplifierEffect( Model* parent, const Descriptor::SubPluginFeatures::Key* key ) : - Effect( &lifier_plugin_descriptor, parent, key ), - m_ampControls( this ) +AmplifierEffect::AmplifierEffect(Model* parent, const Descriptor::SubPluginFeatures::Key* key) : + Effect(&lifier_plugin_descriptor, parent, key), + m_ampControls(this) { } - - - - - - -bool AmplifierEffect::processAudioBuffer( sampleFrame* buf, const fpp_t frames ) +Effect::ProcessStatus AmplifierEffect::processImpl(SampleFrame* buf, const fpp_t frames) { - if( !isEnabled() || !isRunning () ) - { - return( false ); - } - - double outSum = 0.0; const float d = dryLevel(); const float w = wetLevel(); - const ValueBuffer * volBuf = m_ampControls.m_volumeModel.valueBuffer(); - const ValueBuffer * panBuf = m_ampControls.m_panModel.valueBuffer(); - const ValueBuffer * leftBuf = m_ampControls.m_leftModel.valueBuffer(); - const ValueBuffer * rightBuf = m_ampControls.m_rightModel.valueBuffer(); + const ValueBuffer* volumeBuf = m_ampControls.m_volumeModel.valueBuffer(); + const ValueBuffer* panBuf = m_ampControls.m_panModel.valueBuffer(); + const ValueBuffer* leftBuf = m_ampControls.m_leftModel.valueBuffer(); + const ValueBuffer* rightBuf = m_ampControls.m_rightModel.valueBuffer(); - for( fpp_t f = 0; f < frames; ++f ) + for (fpp_t f = 0; f < frames; ++f) { -// qDebug( "offset %d, value %f", f, m_ampControls.m_volumeModel.value( f ) ); - - auto s = std::array{buf[f][0], buf[f][1]}; - - // vol knob - if( volBuf ) - { - s[0] *= volBuf->value( f ) * 0.01f; - s[1] *= volBuf->value( f ) * 0.01f; - } - else - { - s[0] *= m_ampControls.m_volumeModel.value() * 0.01f; - s[1] *= m_ampControls.m_volumeModel.value() * 0.01f; - } - - // convert pan values to left/right values - const float pan = panBuf - ? panBuf->value( f ) - : m_ampControls.m_panModel.value(); - const float left1 = pan <= 0 - ? 1.0 - : 1.0 - pan * 0.01f; - const float right1 = pan >= 0 - ? 1.0 - : 1.0 + pan * 0.01f; - - // second stage amplification - const float left2 = leftBuf - ? leftBuf->value( f ) - : m_ampControls.m_leftModel.value(); - const float right2 = rightBuf - ? rightBuf->value( f ) - : m_ampControls.m_rightModel.value(); - - s[0] *= left1 * left2 * 0.01; - s[1] *= right1 * right2 * 0.01; - - buf[f][0] = d * buf[f][0] + w * s[0]; - buf[f][1] = d * buf[f][1] + w * s[1]; - outSum += buf[f][0] * buf[f][0] + buf[f][1] * buf[f][1]; - } + const float volume = (volumeBuf ? volumeBuf->value(f) : m_ampControls.m_volumeModel.value()) * 0.01f; + const float pan = (panBuf ? panBuf->value(f) : m_ampControls.m_panModel.value()) * 0.01f; + const float left = (leftBuf ? leftBuf->value(f) : m_ampControls.m_leftModel.value()) * 0.01f; + const float right = (rightBuf ? rightBuf->value(f) : m_ampControls.m_rightModel.value()) * 0.01f; - checkGate( outSum / frames ); + const float panLeft = std::min(1.0f, 1.0f - pan); + const float panRight = std::min(1.0f, 1.0f + pan); - return isRunning(); -} + auto& currentFrame = buf[f]; + const auto s = currentFrame * SampleFrame(left * panLeft, right * panRight) * volume; + // Dry/wet mix + currentFrame = currentFrame * d + s * w; + } + return ProcessStatus::ContinueIfNotQuiet; +} extern "C" { // necessary for getting instance out of shared lib -PLUGIN_EXPORT Plugin * lmms_plugin_main( Model* parent, void* data ) +PLUGIN_EXPORT Plugin* lmms_plugin_main(Model* parent, void* data) { - return new AmplifierEffect( parent, static_cast( data ) ); + return new AmplifierEffect(parent, static_cast(data)); } } -} // namespace lmms \ No newline at end of file +} // namespace lmms diff --git a/plugins/Amplifier/Amplifier.h b/plugins/Amplifier/Amplifier.h index 38fd07c6fb4..8c0667316a4 100644 --- a/plugins/Amplifier/Amplifier.h +++ b/plugins/Amplifier/Amplifier.h @@ -23,9 +23,8 @@ * */ - -#ifndef AMPLIFIER_H -#define AMPLIFIER_H +#ifndef LMMS_AMPLIFIER_H +#define LMMS_AMPLIFIER_H #include "Effect.h" #include "AmplifierControls.h" @@ -36,24 +35,22 @@ namespace lmms class AmplifierEffect : public Effect { public: - AmplifierEffect( Model* parent, const Descriptor::SubPluginFeatures::Key* key ); + AmplifierEffect(Model* parent, const Descriptor::SubPluginFeatures::Key* key); ~AmplifierEffect() override = default; - bool processAudioBuffer( sampleFrame* buf, const fpp_t frames ) override; + + ProcessStatus processImpl(SampleFrame* buf, const fpp_t frames) override; EffectControls* controls() override { return &m_ampControls; } - private: AmplifierControls m_ampControls; friend class AmplifierControls; - -} ; - +}; } // namespace lmms -#endif +#endif // LMMS_AMPLIFIER_H diff --git a/plugins/Amplifier/AmplifierControlDialog.cpp b/plugins/Amplifier/AmplifierControlDialog.cpp index ed9e98f29b4..1fbc3729a08 100644 --- a/plugins/Amplifier/AmplifierControlDialog.cpp +++ b/plugins/Amplifier/AmplifierControlDialog.cpp @@ -23,53 +23,38 @@ * */ - #include "AmplifierControlDialog.h" #include "AmplifierControls.h" #include "embed.h" #include "Knob.h" - namespace lmms::gui { - -AmplifierControlDialog::AmplifierControlDialog( AmplifierControls* controls ) : - EffectControlDialog( controls ) +AmplifierControlDialog::AmplifierControlDialog(AmplifierControls* controls) : + EffectControlDialog(controls) { - setAutoFillBackground( true ); + setAutoFillBackground(true); QPalette pal; - pal.setBrush( backgroundRole(), PLUGIN_NAME::getIconPixmap( "artwork" ) ); - setPalette( pal ); - setFixedSize( 100, 110 ); - - auto volumeKnob = new Knob(KnobType::Bright26, this); - volumeKnob -> move( 16, 10 ); - volumeKnob -> setVolumeKnob( true ); - volumeKnob->setModel( &controls->m_volumeModel ); - volumeKnob->setLabel( tr( "VOL" ) ); - volumeKnob->setHintText( tr( "Volume:" ) , "%" ); - - auto panKnob = new Knob(KnobType::Bright26, this); - panKnob -> move( 57, 10 ); - panKnob->setModel( &controls->m_panModel ); - panKnob->setLabel( tr( "PAN" ) ); - panKnob->setHintText( tr( "Panning:" ) , "" ); - - auto leftKnob = new Knob(KnobType::Bright26, this); - leftKnob -> move( 16, 65 ); - leftKnob -> setVolumeKnob( true ); - leftKnob->setModel( &controls->m_leftModel ); - leftKnob->setLabel( tr( "LEFT" ) ); - leftKnob->setHintText( tr( "Left gain:" ) , "%" ); - - auto rightKnob = new Knob(KnobType::Bright26, this); - rightKnob -> move( 57, 65 ); - rightKnob -> setVolumeKnob( true ); - rightKnob->setModel( &controls->m_rightModel ); - rightKnob->setLabel( tr( "RIGHT" ) ); - rightKnob->setHintText( tr( "Right gain:" ) , "%" ); + pal.setBrush(backgroundRole(), PLUGIN_NAME::getIconPixmap("artwork")); + setPalette(pal); + setFixedSize(100, 110); + + auto makeKnob = [this](int x, int y, const QString& label, const QString& hintText, const QString& unit, FloatModel* model, bool isVolume) + { + Knob* newKnob = new Knob(KnobType::Bright26, this); + newKnob->move(x, y); + newKnob->setModel(model); + newKnob->setLabel(label); + newKnob->setHintText(hintText, unit); + newKnob->setVolumeKnob(isVolume); + return newKnob; + }; + + makeKnob(16, 10, tr("VOL"), tr("Volume:"), "%", &controls->m_volumeModel, true); + makeKnob(57, 10, tr("PAN"), tr("Panning:"), "%", &controls->m_panModel, false); + makeKnob(16, 65, tr("LEFT"), tr("Left gain:"), "%", &controls->m_leftModel, true); + makeKnob(57, 65, tr("RIGHT"), tr("Right gain:"), "%", &controls->m_rightModel, true); } - -} // namespace lmms::gui \ No newline at end of file +} // namespace lmms::gui diff --git a/plugins/Amplifier/AmplifierControlDialog.h b/plugins/Amplifier/AmplifierControlDialog.h index ad0ed50ca2c..672830117ee 100644 --- a/plugins/Amplifier/AmplifierControlDialog.h +++ b/plugins/Amplifier/AmplifierControlDialog.h @@ -23,8 +23,8 @@ * */ -#ifndef AMPLIFIER_CONTROL_DIALOG_H -#define AMPLIFIER_CONTROL_DIALOG_H +#ifndef LMMS_GUI_AMPLIFIER_CONTROL_DIALOG_H +#define LMMS_GUI_AMPLIFIER_CONTROL_DIALOG_H #include "EffectControlDialog.h" @@ -32,23 +32,23 @@ namespace lmms { class AmplifierControls; - +class FloatModel; namespace gui { +class Knob; + class AmplifierControlDialog : public EffectControlDialog { Q_OBJECT public: - AmplifierControlDialog( AmplifierControls* controls ); + AmplifierControlDialog(AmplifierControls* controls); ~AmplifierControlDialog() override = default; - -} ; - +}; } // namespace gui } // namespace lmms -#endif +#endif // LMMS_GUI_AMPLIFIER_CONTROL_DIALOG_H diff --git a/plugins/Amplifier/AmplifierControls.cpp b/plugins/Amplifier/AmplifierControls.cpp index 30773046044..72960dd3b81 100644 --- a/plugins/Amplifier/AmplifierControls.cpp +++ b/plugins/Amplifier/AmplifierControls.cpp @@ -23,7 +23,6 @@ * */ - #include #include "AmplifierControls.h" @@ -32,51 +31,33 @@ namespace lmms { -AmplifierControls::AmplifierControls( AmplifierEffect* effect ) : - EffectControls( effect ), - m_effect( effect ), - m_volumeModel( 100.0f, 0.0f, 200.0f, 0.1f, this, tr( "Volume" ) ), - m_panModel( 0.0f, -100.0f, 100.0f, 0.1f, this, tr( "Panning" ) ), - m_leftModel( 100.0f, 0.0f, 200.0f, 0.1f, this, tr( "Left gain" ) ), - m_rightModel( 100.0f, 0.0f, 200.0f, 0.1f, this, tr( "Right gain" ) ) +AmplifierControls::AmplifierControls(AmplifierEffect* effect) : + EffectControls(effect), + m_effect(effect), + m_volumeModel(100.0f, 0.0f, 200.0f, 0.1f, this, tr("Volume")), + m_panModel(0.0f, -100.0f, 100.0f, 0.1f, this, tr("Panning")), + m_leftModel(100.0f, 0.0f, 200.0f, 0.1f, this, tr("Left gain")), + m_rightModel(100.0f, 0.0f, 200.0f, 0.1f, this, tr("Right gain")) { -/* connect( &m_volumeModel, SIGNAL( dataChanged() ), this, SLOT( changeControl() ) ); - connect( &m_panModel, SIGNAL( dataChanged() ), this, SLOT( changeControl() ) ); - connect( &m_leftModel, SIGNAL( dataChanged() ), this, SLOT( changeControl() ) ); - connect( &m_rightModel, SIGNAL( dataChanged() ), this, SLOT( changeControl() ) );*/ } - - -void AmplifierControls::changeControl() +void AmplifierControls::loadSettings(const QDomElement& parent) { -// engine::getSong()->setModified(); + m_volumeModel.loadSettings(parent, "volume"); + m_panModel.loadSettings(parent, "pan"); + m_leftModel.loadSettings(parent, "left"); + m_rightModel.loadSettings(parent, "right"); } - - -void AmplifierControls::loadSettings( const QDomElement& _this ) +void AmplifierControls::saveSettings(QDomDocument& doc, QDomElement& parent) { - m_volumeModel.loadSettings( _this, "volume" ); - m_panModel.loadSettings( _this, "pan" ); - m_leftModel.loadSettings( _this, "left" ); - m_rightModel.loadSettings( _this, "right" ); -} - - - - -void AmplifierControls::saveSettings( QDomDocument& doc, QDomElement& _this ) -{ - m_volumeModel.saveSettings( doc, _this, "volume" ); - m_panModel.saveSettings( doc, _this, "pan" ); - m_leftModel.saveSettings( doc, _this, "left" ); - m_rightModel.saveSettings( doc, _this, "right" ); + m_volumeModel.saveSettings(doc, parent, "volume"); + m_panModel.saveSettings(doc, parent, "pan"); + m_leftModel.saveSettings(doc, parent, "left"); + m_rightModel.saveSettings(doc, parent, "right"); } } // namespace lmms - - diff --git a/plugins/Amplifier/AmplifierControls.h b/plugins/Amplifier/AmplifierControls.h index 573f6f8964c..6b5063dddfe 100644 --- a/plugins/Amplifier/AmplifierControls.h +++ b/plugins/Amplifier/AmplifierControls.h @@ -23,8 +23,8 @@ * */ -#ifndef AMPLIFIER_CONTROLS_H -#define AMPLIFIER_CONTROLS_H +#ifndef LMMS_AMPLIFIER_CONTROLS_H +#define LMMS_AMPLIFIER_CONTROLS_H #include "EffectControls.h" #include "AmplifierControlDialog.h" @@ -39,34 +39,24 @@ namespace gui class AmplifierControlDialog; } - class AmplifierControls : public EffectControls { Q_OBJECT public: - AmplifierControls( AmplifierEffect* effect ); + AmplifierControls(AmplifierEffect* effect); ~AmplifierControls() override = default; - void saveSettings( QDomDocument & _doc, QDomElement & _parent ) override; - void loadSettings( const QDomElement & _this ) override; + void saveSettings(QDomDocument& doc, QDomElement& parent) override; + void loadSettings(const QDomElement& parent) override; inline QString nodeName() const override { return "AmplifierControls"; } - - int controlCount() override - { - return 4; - } - gui::EffectControlDialog* createView() override { - return new gui::AmplifierControlDialog( this ); + return new gui::AmplifierControlDialog(this); } - - -private slots: - void changeControl(); + int controlCount() override { return 4; } private: AmplifierEffect* m_effect; @@ -77,10 +67,8 @@ private slots: friend class gui::AmplifierControlDialog; friend class AmplifierEffect; - -} ; - +}; } // namespace lmms -#endif +#endif // LMMS_AMPLIFIER_CONTROLS_H diff --git a/plugins/AudioFileProcessor/AudioFileProcessor.cpp b/plugins/AudioFileProcessor/AudioFileProcessor.cpp index 864bda5b659..4cc14ba9cdb 100644 --- a/plugins/AudioFileProcessor/AudioFileProcessor.cpp +++ b/plugins/AudioFileProcessor/AudioFileProcessor.cpp @@ -23,36 +23,22 @@ */ #include "AudioFileProcessor.h" +#include "AudioFileProcessorView.h" -#include - -#include -#include -#include - -#include - -#include "AudioEngine.h" -#include "ComboBox.h" -#include "ConfigManager.h" -#include "DataFile.h" -#include "Engine.h" -#include "gui_templates.h" #include "InstrumentTrack.h" -#include "NotePlayHandle.h" #include "PathUtil.h" -#include "PixmapButton.h" +#include "SampleLoader.h" #include "Song.h" -#include "StringPairDrag.h" -#include "Clipboard.h" -#include "embed.h" +#include "lmms_basics.h" #include "plugin_export.h" +#include + + namespace lmms { - extern "C" { @@ -83,7 +69,6 @@ Plugin::Descriptor PLUGIN_EXPORT audiofileprocessor_plugin_descriptor = AudioFileProcessor::AudioFileProcessor( InstrumentTrack * _instrument_track ) : Instrument( _instrument_track, &audiofileprocessor_plugin_descriptor ), - m_sampleBuffer(), m_ampModel( 100, 0, 500, 1, this, tr( "Amplify" ) ), m_startPointModel( 0, 0, 1, 0.0000001f, this, tr( "Start of sample" ) ), m_endPointModel( 1, 0, 1, 0.0000001f, this, tr( "End of sample" ) ), @@ -121,7 +106,7 @@ AudioFileProcessor::AudioFileProcessor( InstrumentTrack * _instrument_track ) : void AudioFileProcessor::playNote( NotePlayHandle * _n, - sampleFrame * _working_buffer ) + SampleFrame* _working_buffer ) { const fpp_t frames = _n->framesLeftForCurrentPeriod(); const f_cnt_t offset = _n->noteOffset(); @@ -131,18 +116,18 @@ void AudioFileProcessor::playNote( NotePlayHandle * _n, // played. if( m_stutterModel.value() == true && _n->frequency() < 20.0 ) { - m_nextPlayStartPoint = m_sampleBuffer.startFrame(); + m_nextPlayStartPoint = m_sample.startFrame(); m_nextPlayBackwards = false; return; } if( !_n->m_pluginData ) { - if( m_stutterModel.value() == true && m_nextPlayStartPoint >= m_sampleBuffer.endFrame() ) + if (m_stutterModel.value() == true && m_nextPlayStartPoint >= static_cast(m_sample.endFrame())) { // Restart playing the note if in stutter mode, not in loop mode, // and we're at the end of the sample. - m_nextPlayStartPoint = m_sampleBuffer.startFrame(); + m_nextPlayStartPoint = m_sample.startFrame(); m_nextPlayBackwards = false; } // set interpolation mode for libsamplerate @@ -159,29 +144,29 @@ void AudioFileProcessor::playNote( NotePlayHandle * _n, srcmode = SRC_SINC_MEDIUM_QUALITY; break; } - _n->m_pluginData = new handleState( _n->hasDetuningInfo(), srcmode ); - ((handleState *)_n->m_pluginData)->setFrameIndex( m_nextPlayStartPoint ); - ((handleState *)_n->m_pluginData)->setBackwards( m_nextPlayBackwards ); + _n->m_pluginData = new Sample::PlaybackState(_n->hasDetuningInfo(), srcmode); + static_cast(_n->m_pluginData)->setFrameIndex(m_nextPlayStartPoint); + static_cast(_n->m_pluginData)->setBackwards(m_nextPlayBackwards); // debug code -/* qDebug( "frames %d", m_sampleBuffer.frames() ); - qDebug( "startframe %d", m_sampleBuffer.startFrame() ); +/* qDebug( "frames %d", m_sample->frames() ); + qDebug( "startframe %d", m_sample->startFrame() ); qDebug( "nextPlayStartPoint %d", m_nextPlayStartPoint );*/ } if( ! _n->isFinished() ) { - if( m_sampleBuffer.play( _working_buffer + offset, - (handleState *)_n->m_pluginData, + if (m_sample.play(_working_buffer + offset, + static_cast(_n->m_pluginData), frames, _n->frequency(), - static_cast( m_loopModel.value() ) ) ) + static_cast(m_loopModel.value()))) { applyRelease( _working_buffer, _n ); - emit isPlaying( ((handleState *)_n->m_pluginData)->frameIndex() ); + emit isPlaying(static_cast(_n->m_pluginData)->frameIndex()); } else { - memset( _working_buffer, 0, ( frames + offset ) * sizeof( sampleFrame ) ); + zeroSampleFrames(_working_buffer, frames + offset); emit isPlaying( 0 ); } } @@ -191,8 +176,8 @@ void AudioFileProcessor::playNote( NotePlayHandle * _n, } if( m_stutterModel.value() == true ) { - m_nextPlayStartPoint = ((handleState *)_n->m_pluginData)->frameIndex(); - m_nextPlayBackwards = ((handleState *)_n->m_pluginData)->isBackwards(); + m_nextPlayStartPoint = static_cast(_n->m_pluginData)->frameIndex(); + m_nextPlayBackwards = static_cast(_n->m_pluginData)->backwards(); } } @@ -201,7 +186,7 @@ void AudioFileProcessor::playNote( NotePlayHandle * _n, void AudioFileProcessor::deleteNotePluginData( NotePlayHandle * _n ) { - delete (handleState *)_n->m_pluginData; + delete static_cast(_n->m_pluginData); } @@ -209,11 +194,10 @@ void AudioFileProcessor::deleteNotePluginData( NotePlayHandle * _n ) void AudioFileProcessor::saveSettings(QDomDocument& doc, QDomElement& elem) { - elem.setAttribute("src", m_sampleBuffer.audioFile()); - if (m_sampleBuffer.audioFile().isEmpty()) + elem.setAttribute("src", m_sample.sampleFile()); + if (m_sample.sampleFile().isEmpty()) { - QString s; - elem.setAttribute("sampledata", m_sampleBuffer.toBase64(s)); + elem.setAttribute("sampledata", m_sample.toBase64()); } m_reverseModel.saveSettings(doc, elem, "reversed"); m_loopModel.saveSettings(doc, elem, "looped"); @@ -230,20 +214,17 @@ void AudioFileProcessor::saveSettings(QDomDocument& doc, QDomElement& elem) void AudioFileProcessor::loadSettings(const QDomElement& elem) { - if (!elem.attribute("src").isEmpty()) + if (auto srcFile = elem.attribute("src"); !srcFile.isEmpty()) { - setAudioFile(elem.attribute("src"), false); - - QString absolutePath = PathUtil::toAbsolute(m_sampleBuffer.audioFile()); - if (!QFileInfo(absolutePath).exists()) + if (QFileInfo(PathUtil::toAbsolute(srcFile)).exists()) { - QString message = tr("Sample not found: %1").arg(m_sampleBuffer.audioFile()); - Engine::getSong()->collectError(message); + setAudioFile(srcFile, false); } + else { Engine::getSong()->collectError(QString("%1: %2").arg(tr("Sample not found"), srcFile)); } } - else if (!elem.attribute("sampledata").isEmpty()) + else if (auto sampleData = elem.attribute("sampledata"); !sampleData.isEmpty()) { - m_sampleBuffer.loadFromBase64(elem.attribute("srcdata")); + m_sample = Sample(gui::SampleLoader::createBufferFromBase64(sampleData)); } m_loopModel.loadSettings(elem, "looped"); @@ -274,6 +255,7 @@ void AudioFileProcessor::loadSettings(const QDomElement& elem) } pointChanged(); + emit sampleUpdated(); } @@ -295,23 +277,23 @@ QString AudioFileProcessor::nodeName() const -auto AudioFileProcessor::beatLen(NotePlayHandle* note) const -> int +auto AudioFileProcessor::beatLen(NotePlayHandle* note) const -> f_cnt_t { // If we can play indefinitely, use the default beat note duration - if (static_cast(m_loopModel.value()) != SampleBuffer::LoopMode::Off) { return 0; } + if (static_cast(m_loopModel.value()) != Sample::Loop::Off) { return 0; } // Otherwise, use the remaining sample duration const auto baseFreq = instrumentTrack()->baseFreq(); const auto freqFactor = baseFreq / note->frequency() - * Engine::audioEngine()->processingSampleRate() + * Engine::audioEngine()->outputSampleRate() / Engine::audioEngine()->baseSampleRate(); - const auto startFrame = m_nextPlayStartPoint >= m_sampleBuffer.endFrame() - ? m_sampleBuffer.startFrame() + const auto startFrame = m_nextPlayStartPoint >= static_cast(m_sample.endFrame()) + ? m_sample.startFrame() : m_nextPlayStartPoint; - const auto duration = m_sampleBuffer.endFrame() - startFrame; + const auto duration = m_sample.endFrame() - startFrame; - return static_cast(std::floor(duration * freqFactor)); + return static_cast(std::floor(duration * freqFactor)); } @@ -322,25 +304,22 @@ gui::PluginView* AudioFileProcessor::instantiateView( QWidget * _parent ) return new gui::AudioFileProcessorView( this, _parent ); } - - - -void AudioFileProcessor::setAudioFile( const QString & _audio_file, - bool _rename ) +void AudioFileProcessor::setAudioFile(const QString& _audio_file, bool _rename) { // is current channel-name equal to previous-filename?? if( _rename && ( instrumentTrack()->name() == - QFileInfo( m_sampleBuffer.audioFile() ).fileName() || - m_sampleBuffer.audioFile().isEmpty() ) ) + QFileInfo(m_sample.sampleFile()).fileName() || + m_sample.sampleFile().isEmpty())) { // then set it to new one instrumentTrack()->setName( PathUtil::cleanName( _audio_file ) ); } // else we don't touch the track-name, because the user named it self - m_sampleBuffer.setAudioFile( _audio_file ); + m_sample = Sample(gui::SampleLoader::createBufferFromFile(_audio_file)); loopPointChanged(); + emit sampleUpdated(); } @@ -348,9 +327,10 @@ void AudioFileProcessor::setAudioFile( const QString & _audio_file, void AudioFileProcessor::reverseModelChanged() { - m_sampleBuffer.setReversed( m_reverseModel.value() ); - m_nextPlayStartPoint = m_sampleBuffer.startFrame(); + m_sample.setReversed(m_reverseModel.value()); + m_nextPlayStartPoint = m_sample.startFrame(); m_nextPlayBackwards = false; + emit sampleUpdated(); } @@ -358,13 +338,14 @@ void AudioFileProcessor::reverseModelChanged() void AudioFileProcessor::ampModelChanged() { - m_sampleBuffer.setAmplification( m_ampModel.value() / 100.0f ); + m_sample.setAmplification(m_ampModel.value() / 100.0f); + emit sampleUpdated(); } void AudioFileProcessor::stutterModelChanged() { - m_nextPlayStartPoint = m_sampleBuffer.startFrame(); + m_nextPlayStartPoint = m_sample.startFrame(); m_nextPlayBackwards = false; } @@ -433,852 +414,18 @@ void AudioFileProcessor::loopPointChanged() void AudioFileProcessor::pointChanged() { - const auto f_start = static_cast(m_startPointModel.value() * m_sampleBuffer.frames()); - const auto f_end = static_cast(m_endPointModel.value() * m_sampleBuffer.frames()); - const auto f_loop = static_cast(m_loopPointModel.value() * m_sampleBuffer.frames()); + const auto f_start = static_cast(m_startPointModel.value() * m_sample.sampleSize()); + const auto f_end = static_cast(m_endPointModel.value() * m_sample.sampleSize()); + const auto f_loop = static_cast(m_loopPointModel.value() * m_sample.sampleSize()); m_nextPlayStartPoint = f_start; m_nextPlayBackwards = false; - m_sampleBuffer.setAllPointFrames( f_start, f_end, f_loop, f_end ); + m_sample.setAllPointFrames(f_start, f_end, f_loop, f_end); emit dataChanged(); } - - -namespace gui -{ - - -QPixmap * AudioFileProcessorView::s_artwork = nullptr; - - -AudioFileProcessorView::AudioFileProcessorView( Instrument * _instrument, - QWidget * _parent ) : - InstrumentViewFixedSize( _instrument, _parent ) -{ - if( s_artwork == nullptr ) - { - s_artwork = new QPixmap( PLUGIN_NAME::getIconPixmap( - "artwork" ) ); - } - - m_openAudioFileButton = new PixmapButton( this ); - m_openAudioFileButton->setCursor( QCursor( Qt::PointingHandCursor ) ); - m_openAudioFileButton->move( 227, 72 ); - m_openAudioFileButton->setActiveGraphic( PLUGIN_NAME::getIconPixmap( - "select_file" ) ); - m_openAudioFileButton->setInactiveGraphic( PLUGIN_NAME::getIconPixmap( - "select_file" ) ); - connect( m_openAudioFileButton, SIGNAL( clicked() ), - this, SLOT( openAudioFile() ) ); - m_openAudioFileButton->setToolTip(tr("Open sample")); - - m_reverseButton = new PixmapButton( this ); - m_reverseButton->setCheckable( true ); - m_reverseButton->move( 164, 105 ); - m_reverseButton->setActiveGraphic( PLUGIN_NAME::getIconPixmap( - "reverse_on" ) ); - m_reverseButton->setInactiveGraphic( PLUGIN_NAME::getIconPixmap( - "reverse_off" ) ); - m_reverseButton->setToolTip(tr("Reverse sample")); - -// loop button group - - auto m_loopOffButton = new PixmapButton(this); - m_loopOffButton->setCheckable( true ); - m_loopOffButton->move( 190, 105 ); - m_loopOffButton->setActiveGraphic( PLUGIN_NAME::getIconPixmap( - "loop_off_on" ) ); - m_loopOffButton->setInactiveGraphic( PLUGIN_NAME::getIconPixmap( - "loop_off_off" ) ); - m_loopOffButton->setToolTip(tr("Disable loop")); - - auto m_loopOnButton = new PixmapButton(this); - m_loopOnButton->setCheckable( true ); - m_loopOnButton->move( 190, 124 ); - m_loopOnButton->setActiveGraphic( PLUGIN_NAME::getIconPixmap( - "loop_on_on" ) ); - m_loopOnButton->setInactiveGraphic( PLUGIN_NAME::getIconPixmap( - "loop_on_off" ) ); - m_loopOnButton->setToolTip(tr("Enable loop")); - - auto m_loopPingPongButton = new PixmapButton(this); - m_loopPingPongButton->setCheckable( true ); - m_loopPingPongButton->move( 216, 124 ); - m_loopPingPongButton->setActiveGraphic( PLUGIN_NAME::getIconPixmap( - "loop_pingpong_on" ) ); - m_loopPingPongButton->setInactiveGraphic( PLUGIN_NAME::getIconPixmap( - "loop_pingpong_off" ) ); - m_loopPingPongButton->setToolTip(tr("Enable ping-pong loop")); - - m_loopGroup = new automatableButtonGroup( this ); - m_loopGroup->addButton( m_loopOffButton ); - m_loopGroup->addButton( m_loopOnButton ); - m_loopGroup->addButton( m_loopPingPongButton ); - - m_stutterButton = new PixmapButton( this ); - m_stutterButton->setCheckable( true ); - m_stutterButton->move( 164, 124 ); - m_stutterButton->setActiveGraphic( PLUGIN_NAME::getIconPixmap( - "stutter_on" ) ); - m_stutterButton->setInactiveGraphic( PLUGIN_NAME::getIconPixmap( - "stutter_off" ) ); - m_stutterButton->setToolTip( - tr( "Continue sample playback across notes" ) ); - - m_ampKnob = new Knob( KnobType::Bright26, this ); - m_ampKnob->setVolumeKnob( true ); - m_ampKnob->move( 5, 108 ); - m_ampKnob->setHintText( tr( "Amplify:" ), "%" ); - - m_startKnob = new AudioFileProcessorWaveView::knob( this ); - m_startKnob->move( 45, 108 ); - m_startKnob->setHintText( tr( "Start point:" ), "" ); - - m_endKnob = new AudioFileProcessorWaveView::knob( this ); - m_endKnob->move( 125, 108 ); - m_endKnob->setHintText( tr( "End point:" ), "" ); - - m_loopKnob = new AudioFileProcessorWaveView::knob( this ); - m_loopKnob->move( 85, 108 ); - m_loopKnob->setHintText( tr( "Loopback point:" ), "" ); - -// interpolation selector - m_interpBox = new ComboBox( this ); - m_interpBox->setGeometry( 142, 62, 82, ComboBox::DEFAULT_HEIGHT ); - m_interpBox->setFont( pointSize<8>( m_interpBox->font() ) ); - -// wavegraph - m_waveView = 0; - newWaveView(); - - connect( castModel(), SIGNAL( isPlaying( lmms::f_cnt_t ) ), - m_waveView, SLOT( isPlaying( lmms::f_cnt_t ) ) ); - - qRegisterMetaType( "lmms::f_cnt_t" ); - - setAcceptDrops( true ); -} - - - - - - - - -void AudioFileProcessorView::dragEnterEvent( QDragEnterEvent * _dee ) -{ - // For mimeType() and MimeType enum class - using namespace Clipboard; - - if( _dee->mimeData()->hasFormat( mimeType( MimeType::StringPair ) ) ) - { - QString txt = _dee->mimeData()->data( - mimeType( MimeType::StringPair ) ); - if( txt.section( ':', 0, 0 ) == QString( "clip_%1" ).arg( - static_cast(Track::Type::Sample) ) ) - { - _dee->acceptProposedAction(); - } - else if( txt.section( ':', 0, 0 ) == "samplefile" ) - { - _dee->acceptProposedAction(); - } - else - { - _dee->ignore(); - } - } - else - { - _dee->ignore(); - } -} - - - - -void AudioFileProcessorView::newWaveView() -{ - if ( m_waveView ) - { - delete m_waveView; - m_waveView = 0; - } - m_waveView = new AudioFileProcessorWaveView( this, 245, 75, castModel()->m_sampleBuffer ); - m_waveView->move( 2, 172 ); - m_waveView->setKnobs( - dynamic_cast( m_startKnob ), - dynamic_cast( m_endKnob ), - dynamic_cast( m_loopKnob ) ); - m_waveView->show(); -} - - - - -void AudioFileProcessorView::dropEvent( QDropEvent * _de ) -{ - QString type = StringPairDrag::decodeKey( _de ); - QString value = StringPairDrag::decodeValue( _de ); - if( type == "samplefile" ) - { - castModel()->setAudioFile( value ); - _de->accept(); - newWaveView(); - return; - } - else if( type == QString( "clip_%1" ).arg( static_cast(Track::Type::Sample) ) ) - { - DataFile dataFile( value.toUtf8() ); - castModel()->setAudioFile( dataFile.content().firstChild().toElement().attribute( "src" ) ); - _de->accept(); - return; - } - - _de->ignore(); -} - - - - -void AudioFileProcessorView::paintEvent( QPaintEvent * ) -{ - QPainter p( this ); - - p.drawPixmap( 0, 0, *s_artwork ); - - auto a = castModel(); - - QString file_name = ""; - int idx = a->m_sampleBuffer.audioFile().length(); - - p.setFont( pointSize<8>( font() ) ); - - QFontMetrics fm( p.font() ); - - // simple algorithm for creating a text from the filename that - // matches in the white rectangle - while( idx > 0 && - fm.size( Qt::TextSingleLine, file_name + "..." ).width() < 210 ) - { - file_name = a->m_sampleBuffer.audioFile()[--idx] + file_name; - } - - if( idx > 0 ) - { - file_name = "..." + file_name; - } - - p.setPen( QColor( 255, 255, 255 ) ); - p.drawText( 8, 99, file_name ); -} - - - - -void AudioFileProcessorView::sampleUpdated() -{ - m_waveView->updateSampleRange(); - m_waveView->update(); - update(); -} - - - - - -void AudioFileProcessorView::openAudioFile() -{ - QString af = castModel()->m_sampleBuffer.openAudioFile(); - if (af.isEmpty()) { return; } - - castModel()->setAudioFile(af); - Engine::getSong()->setModified(); - m_waveView->updateSampleRange(); -} - - - - -void AudioFileProcessorView::modelChanged() -{ - auto a = castModel(); - connect( &a->m_sampleBuffer, SIGNAL( sampleUpdated() ), - this, SLOT( sampleUpdated() ) ); - m_ampKnob->setModel( &a->m_ampModel ); - m_startKnob->setModel( &a->m_startPointModel ); - m_endKnob->setModel( &a->m_endPointModel ); - m_loopKnob->setModel( &a->m_loopPointModel ); - m_reverseButton->setModel( &a->m_reverseModel ); - m_loopGroup->setModel( &a->m_loopModel ); - m_stutterButton->setModel( &a->m_stutterModel ); - m_interpBox->setModel( &a->m_interpolationModel ); - sampleUpdated(); -} - - - - -void AudioFileProcessorWaveView::updateSampleRange() -{ - if( m_sampleBuffer.frames() > 1 ) - { - const f_cnt_t marging = ( m_sampleBuffer.endFrame() - m_sampleBuffer.startFrame() ) * 0.1; - m_from = qMax( 0, m_sampleBuffer.startFrame() - marging ); - m_to = qMin( m_sampleBuffer.endFrame() + marging, m_sampleBuffer.frames() ); - } -} - -AudioFileProcessorWaveView::AudioFileProcessorWaveView( QWidget * _parent, int _w, int _h, SampleBuffer& buf ) : - QWidget( _parent ), - m_sampleBuffer( buf ), - m_graph( QPixmap( _w - 2 * s_padding, _h - 2 * s_padding ) ), - m_from( 0 ), - m_to( m_sampleBuffer.frames() ), - m_last_from( 0 ), - m_last_to( 0 ), - m_last_amp( 0 ), - m_startKnob( 0 ), - m_endKnob( 0 ), - m_loopKnob( 0 ), - m_isDragging( false ), - m_reversed( false ), - m_framesPlayed( 0 ), - m_animation(ConfigManager::inst()->value("ui", "animateafp").toInt()) -{ - setFixedSize( _w, _h ); - setMouseTracking( true ); - - updateSampleRange(); - - m_graph.fill( Qt::transparent ); - update(); - updateCursor(); -} - - - - -void AudioFileProcessorWaveView::isPlaying( f_cnt_t _current_frame ) -{ - m_framesPlayed = _current_frame; - update(); -} - - - - -void AudioFileProcessorWaveView::enterEvent( QEvent * _e ) -{ - updateCursor(); -} - - - - -void AudioFileProcessorWaveView::leaveEvent( QEvent * _e ) -{ - updateCursor(); -} - - - - -void AudioFileProcessorWaveView::mousePressEvent( QMouseEvent * _me ) -{ - m_isDragging = true; - m_draggingLastPoint = _me->pos(); - - const int x = _me->x(); - - const int start_dist = qAbs( m_startFrameX - x ); - const int end_dist = qAbs( m_endFrameX - x ); - const int loop_dist = qAbs( m_loopFrameX - x ); - - DraggingType dt = DraggingType::SampleLoop; int md = loop_dist; - if( start_dist < loop_dist ) { dt = DraggingType::SampleStart; md = start_dist; } - else if( end_dist < loop_dist ) { dt = DraggingType::SampleEnd; md = end_dist; } - - if( md < 4 ) - { - m_draggingType = dt; - } - else - { - m_draggingType = DraggingType::Wave; - updateCursor(_me); - } -} - - - - -void AudioFileProcessorWaveView::mouseReleaseEvent( QMouseEvent * _me ) -{ - m_isDragging = false; - if( m_draggingType == DraggingType::Wave ) - { - updateCursor(_me); - } -} - - - - -void AudioFileProcessorWaveView::mouseMoveEvent( QMouseEvent * _me ) -{ - if( ! m_isDragging ) - { - updateCursor(_me); - return; - } - - const int step = _me->x() - m_draggingLastPoint.x(); - switch( m_draggingType ) - { - case DraggingType::SampleStart: - slideSamplePointByPx( Point::Start, step ); - break; - case DraggingType::SampleEnd: - slideSamplePointByPx( Point::End, step ); - break; - case DraggingType::SampleLoop: - slideSamplePointByPx( Point::Loop, step ); - break; - case DraggingType::Wave: - default: - if( qAbs( _me->y() - m_draggingLastPoint.y() ) - < 2 * qAbs( _me->x() - m_draggingLastPoint.x() ) ) - { - slide( step ); - } - else - { - zoom( _me->y() < m_draggingLastPoint.y() ); - } - } - - m_draggingLastPoint = _me->pos(); - update(); -} - - - - -void AudioFileProcessorWaveView::wheelEvent( QWheelEvent * _we ) -{ - zoom( _we->angleDelta().y() > 0 ); - update(); -} - - - - -void AudioFileProcessorWaveView::paintEvent( QPaintEvent * _pe ) -{ - QPainter p( this ); - - p.drawPixmap( s_padding, s_padding, m_graph ); - - const QRect graph_rect( s_padding, s_padding, width() - 2 * s_padding, height() - 2 * s_padding ); - const f_cnt_t frames = m_to - m_from; - m_startFrameX = graph_rect.x() + ( m_sampleBuffer.startFrame() - m_from ) * - double( graph_rect.width() ) / frames; - m_endFrameX = graph_rect.x() + ( m_sampleBuffer.endFrame() - m_from ) * - double( graph_rect.width() ) / frames; - m_loopFrameX = graph_rect.x() + ( m_sampleBuffer.loopStartFrame() - m_from ) * - double( graph_rect.width() ) / frames; - const int played_width_px = ( m_framesPlayed - m_from ) * - double( graph_rect.width() ) / frames; - - // loop point line - p.setPen( QColor( 0x7F, 0xFF, 0xFF ) ); //TODO: put into a qproperty - p.drawLine( m_loopFrameX, graph_rect.y(), - m_loopFrameX, - graph_rect.height() + graph_rect.y() ); - - // start/end lines - p.setPen( QColor( 0xFF, 0xFF, 0xFF ) ); //TODO: put into a qproperty - p.drawLine( m_startFrameX, graph_rect.y(), - m_startFrameX, - graph_rect.height() + graph_rect.y() ); - p.drawLine( m_endFrameX, graph_rect.y(), - m_endFrameX, - graph_rect.height() + graph_rect.y() ); - - - if( m_endFrameX - m_startFrameX > 2 ) - { - p.fillRect( - m_startFrameX + 1, - graph_rect.y(), - m_endFrameX - m_startFrameX - 1, - graph_rect.height() + graph_rect.y(), - QColor( 95, 175, 255, 50 ) //TODO: put into a qproperty - ); - if( m_endFrameX - m_loopFrameX > 2 ) - p.fillRect( - m_loopFrameX + 1, - graph_rect.y(), - m_endFrameX - m_loopFrameX - 1, - graph_rect.height() + graph_rect.y(), - QColor( 95, 205, 255, 65 ) //TODO: put into a qproperty - ); - - if( m_framesPlayed && m_animation) - { - QLinearGradient g( m_startFrameX, 0, played_width_px, 0 ); - const QColor c( 0, 120, 255, 180 ); //TODO: put into a qproperty - g.setColorAt( 0, Qt::transparent ); - g.setColorAt( 0.8, c ); - g.setColorAt( 1, c ); - p.fillRect( - m_startFrameX + 1, - graph_rect.y(), - played_width_px - ( m_startFrameX + 1 ), - graph_rect.height() + graph_rect.y(), - g - ); - p.setPen( QColor( 255, 255, 255 ) ); //TODO: put into a qproperty - p.drawLine( - played_width_px, - graph_rect.y(), - played_width_px, - graph_rect.height() + graph_rect.y() - ); - m_framesPlayed = 0; - } - } - - QLinearGradient g( 0, 0, width() * 0.7, 0 ); - const QColor c( 16, 111, 170, 180 ); - g.setColorAt( 0, c ); - g.setColorAt( 0.4, c ); - g.setColorAt( 1, Qt::transparent ); - p.fillRect( s_padding, s_padding, m_graph.width(), 14, g ); - - p.setPen( QColor( 255, 255, 255 ) ); - p.setFont( pointSize<8>( font() ) ); - - QString length_text; - const int length = m_sampleBuffer.sampleLength(); - - if( length > 20000 ) - { - length_text = QString::number( length / 1000 ) + "s"; - } - else if( length > 2000 ) - { - length_text = QString::number( ( length / 100 ) / 10.0 ) + "s"; - } - else - { - length_text = QString::number( length ) + "ms"; - } - - p.drawText( - s_padding + 2, - s_padding + 10, - tr( "Sample length:" ) + " " + length_text - ); -} - - - - -void AudioFileProcessorWaveView::updateGraph() -{ - if( m_to == 1 ) - { - m_to = m_sampleBuffer.frames() * 0.7; - slideSamplePointToFrames( Point::End, m_to * 0.7 ); - } - - if( m_from > m_sampleBuffer.startFrame() ) - { - m_from = m_sampleBuffer.startFrame(); - } - - if( m_to < m_sampleBuffer.endFrame() ) - { - m_to = m_sampleBuffer.endFrame(); - } - - if( m_sampleBuffer.reversed() != m_reversed ) - { - reverse(); - } - else if( m_last_from == m_from && m_last_to == m_to && m_sampleBuffer.amplification() == m_last_amp ) - { - return; - } - - m_last_from = m_from; - m_last_to = m_to; - m_last_amp = m_sampleBuffer.amplification(); - - m_graph.fill( Qt::transparent ); - QPainter p( &m_graph ); - p.setPen( QColor( 255, 255, 255 ) ); - - m_sampleBuffer.visualize( - p, - QRect( 0, 0, m_graph.width(), m_graph.height() ), - m_from, m_to - ); -} - - - - -void AudioFileProcessorWaveView::zoom( const bool _out ) -{ - const f_cnt_t start = m_sampleBuffer.startFrame(); - const f_cnt_t end = m_sampleBuffer.endFrame(); - const f_cnt_t frames = m_sampleBuffer.frames(); - const f_cnt_t d_from = start - m_from; - const f_cnt_t d_to = m_to - end; - - const f_cnt_t step = qMax( 1, qMax( d_from, d_to ) / 10 ); - const f_cnt_t step_from = ( _out ? - step : step ); - const f_cnt_t step_to = ( _out ? step : - step ); - - const double comp_ratio = double( qMin( d_from, d_to ) ) - / qMax( 1, qMax( d_from, d_to ) ); - - f_cnt_t new_from; - f_cnt_t new_to; - - if( ( _out && d_from < d_to ) || ( ! _out && d_to < d_from ) ) - { - new_from = qBound( 0, m_from + step_from, start ); - new_to = qBound( - end, - m_to + f_cnt_t( step_to * ( new_from == m_from ? 1 : comp_ratio ) ), - frames - ); - } - else - { - new_to = qBound( end, m_to + step_to, frames ); - new_from = qBound( - 0, - m_from + f_cnt_t( step_from * ( new_to == m_to ? 1 : comp_ratio ) ), - start - ); - } - - if( double( new_to - new_from ) / m_sampleBuffer.sampleRate() > 0.05 ) - { - m_from = new_from; - m_to = new_to; - } -} - - - - -void AudioFileProcessorWaveView::slide( int _px ) -{ - const double fact = qAbs( double( _px ) / width() ); - f_cnt_t step = ( m_to - m_from ) * fact; - if( _px > 0 ) - { - step = -step; - } - - f_cnt_t step_from = qBound( 0, m_from + step, m_sampleBuffer.frames() ) - m_from; - f_cnt_t step_to = qBound( m_from + 1, m_to + step, m_sampleBuffer.frames() ) - m_to; - - step = qAbs( step_from ) < qAbs( step_to ) ? step_from : step_to; - - m_from += step; - m_to += step; - slideSampleByFrames( step ); -} - - - - -void AudioFileProcessorWaveView::setKnobs( knob * _start, knob * _end, knob * _loop ) -{ - m_startKnob = _start; - m_endKnob = _end; - m_loopKnob = _loop; - - m_startKnob->setWaveView( this ); - m_startKnob->setRelatedKnob( m_endKnob ); - - m_endKnob->setWaveView( this ); - m_endKnob->setRelatedKnob( m_startKnob ); - - m_loopKnob->setWaveView( this ); -} - - - - -void AudioFileProcessorWaveView::slideSamplePointByPx( Point _point, int _px ) -{ - slideSamplePointByFrames( - _point, - f_cnt_t( ( double( _px ) / width() ) * ( m_to - m_from ) ) - ); -} - - - - -void AudioFileProcessorWaveView::slideSamplePointByFrames( Point _point, f_cnt_t _frames, bool _slide_to ) -{ - knob * a_knob = m_startKnob; - switch( _point ) - { - case Point::End: - a_knob = m_endKnob; - break; - case Point::Loop: - a_knob = m_loopKnob; - break; - case Point::Start: - break; - } - if( a_knob == nullptr ) - { - return; - } - else - { - const double v = static_cast( _frames ) / m_sampleBuffer.frames(); - if( _slide_to ) - { - a_knob->slideTo( v ); - } - else - { - a_knob->slideBy( v ); - } - } -} - - - - -void AudioFileProcessorWaveView::slideSampleByFrames( f_cnt_t _frames ) -{ - if( m_sampleBuffer.frames() <= 1 ) - { - return; - } - const double v = static_cast( _frames ) / m_sampleBuffer.frames(); - if( m_startKnob ) { - m_startKnob->slideBy( v, false ); - } - if( m_endKnob ) { - m_endKnob->slideBy( v, false ); - } - if( m_loopKnob ) { - m_loopKnob->slideBy( v, false ); - } -} - - - - -void AudioFileProcessorWaveView::reverse() -{ - slideSampleByFrames( - m_sampleBuffer.frames() - - m_sampleBuffer.endFrame() - - m_sampleBuffer.startFrame() - ); - - const f_cnt_t from = m_from; - m_from = m_sampleBuffer.frames() - m_to; - m_to = m_sampleBuffer.frames() - from; - - m_reversed = ! m_reversed; -} - - - -void AudioFileProcessorWaveView::updateCursor( QMouseEvent * _me ) -{ - bool const waveIsDragged = m_isDragging && (m_draggingType == DraggingType::Wave); - bool const pointerCloseToStartEndOrLoop = (_me != nullptr ) && - ( isCloseTo( _me->x(), m_startFrameX ) || - isCloseTo( _me->x(), m_endFrameX ) || - isCloseTo( _me->x(), m_loopFrameX ) ); - - if( !m_isDragging && pointerCloseToStartEndOrLoop) - setCursor(Qt::SizeHorCursor); - else if( waveIsDragged ) - setCursor(Qt::ClosedHandCursor); - else - setCursor(Qt::OpenHandCursor); -} - - - - -void AudioFileProcessorWaveView::knob::slideTo( double _v, bool _check_bound ) -{ - if( _check_bound && ! checkBound( _v ) ) - { - return; - } - model()->setValue( _v ); - emit sliderMoved( model()->value() ); -} - - - - -float AudioFileProcessorWaveView::knob::getValue( const QPoint & _p ) -{ - const double dec_fact = ! m_waveView ? 1 : - double( m_waveView->m_to - m_waveView->m_from ) - / m_waveView->m_sampleBuffer.frames(); - const float inc = Knob::getValue( _p ) * dec_fact; - - return inc; -} - - - - -bool AudioFileProcessorWaveView::knob::checkBound( double _v ) const -{ - if( ! m_relatedKnob || ! m_waveView ) - { - return true; - } - - if( ( m_relatedKnob->model()->value() - _v > 0 ) != - ( m_relatedKnob->model()->value() - model()->value() >= 0 ) ) - return false; - - const double d1 = qAbs( m_relatedKnob->model()->value() - model()->value() ) - * ( m_waveView->m_sampleBuffer.frames() ) - / m_waveView->m_sampleBuffer.sampleRate(); - - const double d2 = qAbs( m_relatedKnob->model()->value() - _v ) - * ( m_waveView->m_sampleBuffer.frames() ) - / m_waveView->m_sampleBuffer.sampleRate(); - - return d1 < d2 || d2 > 0.005; -} - - -} // namespace gui - - - - extern "C" { diff --git a/plugins/AudioFileProcessor/AudioFileProcessor.h b/plugins/AudioFileProcessor/AudioFileProcessor.h index 39bd11c3af5..acdbc45f722 100644 --- a/plugins/AudioFileProcessor/AudioFileProcessor.h +++ b/plugins/AudioFileProcessor/AudioFileProcessor.h @@ -26,30 +26,18 @@ #ifndef LMMS_AUDIO_FILE_PROCESSOR_H #define LMMS_AUDIO_FILE_PROCESSOR_H -#include +#include "AutomatableModel.h" #include "ComboBoxModel.h" + #include "Instrument.h" -#include "InstrumentView.h" -#include "SampleBuffer.h" -#include "Knob.h" +#include "Sample.h" +#include "lmms_basics.h" namespace lmms { -namespace gui -{ -class automatableButtonGroup; -class PluginView; -class InstrumentViewFixedSize; -class Knob; -class PixmapButton; -class ComboBox; -class AudioFileProcessorView; -} - - class AudioFileProcessor : public Instrument { Q_OBJECT @@ -57,7 +45,7 @@ class AudioFileProcessor : public Instrument AudioFileProcessor( InstrumentTrack * _instrument_track ); void playNote( NotePlayHandle * _n, - sampleFrame * _working_buffer ) override; + SampleFrame* _working_buffer ) override; void deleteNotePluginData( NotePlayHandle * _n ) override; void saveSettings(QDomDocument& doc, QDomElement& elem) override; @@ -67,20 +55,30 @@ class AudioFileProcessor : public Instrument QString nodeName() const override; - auto beatLen(NotePlayHandle* note) const -> int override; + auto beatLen(NotePlayHandle* note) const -> f_cnt_t override; - f_cnt_t desiredReleaseFrames() const override + float desiredReleaseTimeMs() const override { - return 128; + return 3.f; } gui::PluginView* instantiateView( QWidget * _parent ) override; + Sample const & sample() const { return m_sample; } -public slots: - void setAudioFile( const QString & _audio_file, bool _rename = true ); + FloatModel & ampModel() { return m_ampModel; } + FloatModel & startPointModel() { return m_startPointModel; } + FloatModel & endPointModel() { return m_endPointModel; } + FloatModel & loopPointModel() { return m_loopPointModel; } + BoolModel & reverseModel() { return m_reverseModel; } + IntModel & loopModel() { return m_loopModel; } + BoolModel & stutterModel() { return m_stutterModel; } + ComboBoxModel & interpolationModel() { return m_interpolationModel; } +public slots: + void setAudioFile(const QString& _audio_file, bool _rename = true); + private slots: void reverseModelChanged(); void ampModelChanged(); @@ -93,12 +91,10 @@ private slots: signals: void isPlaying( lmms::f_cnt_t _current_frame ); - + void sampleUpdated(); private: - using handleState = SampleBuffer::handleState; - - SampleBuffer m_sampleBuffer; + Sample m_sample; FloatModel m_ampModel; FloatModel m_startPointModel; @@ -111,194 +107,8 @@ private slots: f_cnt_t m_nextPlayStartPoint; bool m_nextPlayBackwards; - - friend class gui::AudioFileProcessorView; - -} ; - - -namespace gui -{ - -class AudioFileProcessorWaveView; - - -class AudioFileProcessorView : public gui::InstrumentViewFixedSize -{ - Q_OBJECT -public: - AudioFileProcessorView( Instrument * _instrument, QWidget * _parent ); - virtual ~AudioFileProcessorView() = default; - - void newWaveView(); -protected slots: - void sampleUpdated(); - void openAudioFile(); - - -protected: - virtual void dragEnterEvent( QDragEnterEvent * _dee ); - virtual void dropEvent( QDropEvent * _de ); - virtual void paintEvent( QPaintEvent * ); - - -private: - virtual void modelChanged(); - - static QPixmap * s_artwork; - - AudioFileProcessorWaveView * m_waveView; - Knob * m_ampKnob; - Knob * m_startKnob; - Knob * m_endKnob; - Knob * m_loopKnob; - - gui::PixmapButton * m_openAudioFileButton; - PixmapButton * m_reverseButton; - automatableButtonGroup * m_loopGroup; - PixmapButton * m_stutterButton; - ComboBox * m_interpBox; - } ; - - -class AudioFileProcessorWaveView : public QWidget -{ - Q_OBJECT -protected: - virtual void enterEvent( QEvent * _e ); - virtual void leaveEvent( QEvent * _e ); - virtual void mousePressEvent( QMouseEvent * _me ); - virtual void mouseReleaseEvent( QMouseEvent * _me ); - virtual void mouseMoveEvent( QMouseEvent * _me ); - virtual void wheelEvent( QWheelEvent * _we ); - virtual void paintEvent( QPaintEvent * _pe ); - - -public: - enum class Point - { - Start, - End, - Loop - } ; - - class knob : public Knob - { - const AudioFileProcessorWaveView * m_waveView; - const Knob * m_relatedKnob; - - - public: - knob( QWidget * _parent ) : - Knob( KnobType::Bright26, _parent ), - m_waveView( 0 ), - m_relatedKnob( 0 ) - { - setFixedSize( 37, 47 ); - } - - void setWaveView( const AudioFileProcessorWaveView * _wv ) - { - m_waveView = _wv; - } - - void setRelatedKnob( const Knob * _knob ) - { - m_relatedKnob = _knob; - } - - void slideBy( double _v, bool _check_bound = true ) - { - slideTo( model()->value() + _v, _check_bound ); - } - - void slideTo( double _v, bool _check_bound = true ); - - - protected: - float getValue( const QPoint & _p ); - - - private: - bool checkBound( double _v ) const; - } ; - - -public slots: - void update() - { - updateGraph(); - QWidget::update(); - } - - void isPlaying( lmms::f_cnt_t _current_frame ); - - -private: - static const int s_padding = 2; - - enum class DraggingType - { - Wave, - SampleStart, - SampleEnd, - SampleLoop - } ; - - SampleBuffer& m_sampleBuffer; - QPixmap m_graph; - f_cnt_t m_from; - f_cnt_t m_to; - f_cnt_t m_last_from; - f_cnt_t m_last_to; - float m_last_amp; - knob * m_startKnob; - knob * m_endKnob; - knob * m_loopKnob; - f_cnt_t m_startFrameX; - f_cnt_t m_endFrameX; - f_cnt_t m_loopFrameX; - bool m_isDragging; - QPoint m_draggingLastPoint; - DraggingType m_draggingType; - bool m_reversed; - f_cnt_t m_framesPlayed; - bool m_animation; - -public: - AudioFileProcessorWaveView( QWidget * _parent, int _w, int _h, SampleBuffer& buf ); - void setKnobs(knob *_start, knob *_end, knob *_loop ); - - - void updateSampleRange(); -private: - void zoom( const bool _out = false ); - void slide( int _px ); - void slideSamplePointByPx( Point _point, int _px ); - void slideSamplePointByFrames( Point _point, f_cnt_t _frames, bool _slide_to = false ); - void slideSampleByFrames( f_cnt_t _frames ); - - void slideSamplePointToFrames( Point _point, f_cnt_t _frames ) - { - slideSamplePointByFrames( _point, _frames, true ); - } - - void updateGraph(); - void reverse(); - void updateCursor( QMouseEvent * _me = nullptr ); - - static bool isCloseTo( int _a, int _b ) - { - return qAbs( _a - _b ) < 4; - } - -} ; - - -} // namespace gui - } // namespace lmms #endif // LMMS_AUDIO_FILE_PROCESSOR_H diff --git a/plugins/AudioFileProcessor/AudioFileProcessorView.cpp b/plugins/AudioFileProcessor/AudioFileProcessorView.cpp new file mode 100644 index 00000000000..298e79c5ed1 --- /dev/null +++ b/plugins/AudioFileProcessor/AudioFileProcessorView.cpp @@ -0,0 +1,285 @@ +/* + * AudioFileProcessor.cpp - instrument for using audio files + * + * Copyright (c) 2004-2014 Tobias Doerffel + * + * This file is part of LMMS - https://lmms.io + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#include "AudioFileProcessorView.h" + +#include "AudioFileProcessor.h" +#include "AudioFileProcessorWaveView.h" + +#include + +#include "ComboBox.h" +#include "DataFile.h" +#include "FontHelper.h" +#include "PixmapButton.h" +#include "SampleLoader.h" +#include "Song.h" +#include "StringPairDrag.h" +#include "Track.h" +#include "Clipboard.h" + + +namespace lmms +{ + +namespace gui +{ + +AudioFileProcessorView::AudioFileProcessorView(Instrument* instrument, + QWidget* parent) : + InstrumentViewFixedSize(instrument, parent) +{ + m_openAudioFileButton = new PixmapButton(this); + m_openAudioFileButton->setCursor(QCursor(Qt::PointingHandCursor)); + m_openAudioFileButton->move(227, 72); + m_openAudioFileButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap( + "select_file")); + m_openAudioFileButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap( + "select_file")); + connect(m_openAudioFileButton, SIGNAL(clicked()), + this, SLOT(openAudioFile())); + m_openAudioFileButton->setToolTip(tr("Open sample")); + + m_reverseButton = new PixmapButton(this); + m_reverseButton->setCheckable(true); + m_reverseButton->move(164, 105); + m_reverseButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap( + "reverse_on")); + m_reverseButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap( + "reverse_off")); + m_reverseButton->setToolTip(tr("Reverse sample")); + +// loop button group + + auto m_loopOffButton = new PixmapButton(this); + m_loopOffButton->setCheckable(true); + m_loopOffButton->move(190, 105); + m_loopOffButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap( + "loop_off_on")); + m_loopOffButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap( + "loop_off_off")); + m_loopOffButton->setToolTip(tr("Disable loop")); + + auto m_loopOnButton = new PixmapButton(this); + m_loopOnButton->setCheckable(true); + m_loopOnButton->move(190, 124); + m_loopOnButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap( + "loop_on_on")); + m_loopOnButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap( + "loop_on_off")); + m_loopOnButton->setToolTip(tr("Enable loop")); + + auto m_loopPingPongButton = new PixmapButton(this); + m_loopPingPongButton->setCheckable(true); + m_loopPingPongButton->move(216, 124); + m_loopPingPongButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap( + "loop_pingpong_on")); + m_loopPingPongButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap( + "loop_pingpong_off")); + m_loopPingPongButton->setToolTip(tr("Enable ping-pong loop")); + + m_loopGroup = new automatableButtonGroup(this); + m_loopGroup->addButton(m_loopOffButton); + m_loopGroup->addButton(m_loopOnButton); + m_loopGroup->addButton(m_loopPingPongButton); + + m_stutterButton = new PixmapButton(this); + m_stutterButton->setCheckable(true); + m_stutterButton->move(164, 124); + m_stutterButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap( + "stutter_on")); + m_stutterButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap( + "stutter_off")); + m_stutterButton->setToolTip( + tr("Continue sample playback across notes")); + + m_ampKnob = new Knob(KnobType::Bright26, this); + m_ampKnob->setVolumeKnob(true); + m_ampKnob->move(5, 108); + m_ampKnob->setHintText(tr("Amplify:"), "%"); + + m_startKnob = new AudioFileProcessorWaveView::knob(this); + m_startKnob->move(45, 108); + m_startKnob->setHintText(tr("Start point:"), ""); + + m_endKnob = new AudioFileProcessorWaveView::knob(this); + m_endKnob->move(125, 108); + m_endKnob->setHintText(tr("End point:"), ""); + + m_loopKnob = new AudioFileProcessorWaveView::knob(this); + m_loopKnob->move(85, 108); + m_loopKnob->setHintText(tr("Loopback point:"), ""); + +// interpolation selector + m_interpBox = new ComboBox(this); + m_interpBox->setGeometry(142, 62, 82, ComboBox::DEFAULT_HEIGHT); + +// wavegraph + m_waveView = 0; + newWaveView(); + + connect(castModel(), SIGNAL(isPlaying(lmms::f_cnt_t)), + m_waveView, SLOT(isPlaying(lmms::f_cnt_t))); + + qRegisterMetaType("lmms::f_cnt_t"); + + setAcceptDrops(true); +} + +void AudioFileProcessorView::dragEnterEvent(QDragEnterEvent* dee) +{ + // For mimeType() and MimeType enum class + using namespace Clipboard; + + if (dee->mimeData()->hasFormat(mimeType(MimeType::StringPair))) + { + QString txt = dee->mimeData()->data( + mimeType(MimeType::StringPair)); + if (txt.section(':', 0, 0) == QString("clip_%1").arg( + static_cast(Track::Type::Sample))) + { + dee->acceptProposedAction(); + } + else if (txt.section(':', 0, 0) == "samplefile") + { + dee->acceptProposedAction(); + } + else + { + dee->ignore(); + } + } + else + { + dee->ignore(); + } +} + +void AudioFileProcessorView::newWaveView() +{ + if (m_waveView) + { + delete m_waveView; + m_waveView = 0; + } + m_waveView = new AudioFileProcessorWaveView(this, 245, 75, &castModel()->sample(), + dynamic_cast(m_startKnob), + dynamic_cast(m_endKnob), + dynamic_cast(m_loopKnob)); + m_waveView->move(2, 172); + + m_waveView->show(); +} + +void AudioFileProcessorView::dropEvent(QDropEvent* de) +{ + const auto type = StringPairDrag::decodeKey(de); + const auto value = StringPairDrag::decodeValue(de); + + if (type == "samplefile") { castModel()->setAudioFile(value); } + else if (type == QString("clip_%1").arg(static_cast(Track::Type::Sample))) + { + DataFile dataFile(value.toUtf8()); + castModel()->setAudioFile(dataFile.content().firstChild().toElement().attribute("src")); + } + else + { + de->ignore(); + return; + } + + m_waveView->updateSampleRange(); + Engine::getSong()->setModified(); + de->accept(); +} + +void AudioFileProcessorView::paintEvent(QPaintEvent*) +{ + QPainter p(this); + + static auto s_artwork = PLUGIN_NAME::getIconPixmap("artwork"); + p.drawPixmap(0, 0, s_artwork); + + auto a = castModel(); + + QString file_name = ""; + + int idx = a->sample().sampleFile().length(); + + p.setFont(adjustedToPixelSize(font(), SMALL_FONT_SIZE)); + + QFontMetrics fm(p.font()); + + // simple algorithm for creating a text from the filename that + // matches in the white rectangle + while(idx > 0 && + fm.size(Qt::TextSingleLine, file_name + "...").width() < 210) + { + file_name = a->sample().sampleFile()[--idx] + file_name; + } + + if (idx > 0) + { + file_name = "..." + file_name; + } + + p.setPen(QColor(255, 255, 255)); + p.drawText(8, 99, file_name); +} + +void AudioFileProcessorView::sampleUpdated() +{ + m_waveView->updateSampleRange(); + m_waveView->update(); + update(); +} + +void AudioFileProcessorView::openAudioFile() +{ + QString af = SampleLoader::openAudioFile(); + if (af.isEmpty()) { return; } + + castModel()->setAudioFile(af); + Engine::getSong()->setModified(); + m_waveView->updateSampleRange(); +} + +void AudioFileProcessorView::modelChanged() +{ + auto a = castModel(); + connect(a, &AudioFileProcessor::sampleUpdated, this, &AudioFileProcessorView::sampleUpdated); + m_ampKnob->setModel(&a->ampModel()); + m_startKnob->setModel(&a->startPointModel()); + m_endKnob->setModel(&a->endPointModel()); + m_loopKnob->setModel(&a->loopPointModel()); + m_reverseButton->setModel(&a->reverseModel()); + m_loopGroup->setModel(&a->loopModel()); + m_stutterButton->setModel(&a->stutterModel()); + m_interpBox->setModel(&a->interpolationModel()); + sampleUpdated(); +} + +} // namespace gui + +} // namespace lmms diff --git a/plugins/AudioFileProcessor/AudioFileProcessorView.h b/plugins/AudioFileProcessor/AudioFileProcessorView.h new file mode 100644 index 00000000000..039eaab2cca --- /dev/null +++ b/plugins/AudioFileProcessor/AudioFileProcessorView.h @@ -0,0 +1,85 @@ +/* + * AudioFileProcessorView.h - View of the AFP + * + * Copyright (c) 2004-2014 Tobias Doerffel + * + * This file is part of LMMS - https://lmms.io + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#ifndef LMMS_AUDIO_FILE_PROCESSOR_VIEW_H +#define LMMS_AUDIO_FILE_PROCESSOR_VIEW_H + +#include "InstrumentView.h" + + +namespace lmms +{ + +namespace gui +{ + +class automatableButtonGroup; +class Knob; +class PixmapButton; +class ComboBox; +class AudioFileProcessorWaveView; + + +class AudioFileProcessorView : public gui::InstrumentViewFixedSize +{ + Q_OBJECT +public: + AudioFileProcessorView(Instrument* instrument, QWidget* parent); + virtual ~AudioFileProcessorView() = default; + + void newWaveView(); + +protected slots: + void sampleUpdated(); + void openAudioFile(); + +protected: + virtual void dragEnterEvent(QDragEnterEvent* dee); + virtual void dropEvent(QDropEvent* de); + virtual void paintEvent(QPaintEvent*); + + // Private methods +private: + virtual void modelChanged(); + + // Private members +private: + AudioFileProcessorWaveView* m_waveView; + Knob* m_ampKnob; + Knob* m_startKnob; + Knob* m_endKnob; + Knob* m_loopKnob; + + gui::PixmapButton* m_openAudioFileButton; + PixmapButton* m_reverseButton; + automatableButtonGroup* m_loopGroup; + PixmapButton* m_stutterButton; + ComboBox* m_interpBox; +} ; + +} // namespace gui + +} // namespace lmms + +#endif // LMMS_AUDIO_FILE_PROCESSOR_VIEW_H diff --git a/plugins/AudioFileProcessor/AudioFileProcessorWaveView.cpp b/plugins/AudioFileProcessor/AudioFileProcessorWaveView.cpp new file mode 100644 index 00000000000..b41af33e016 --- /dev/null +++ b/plugins/AudioFileProcessor/AudioFileProcessorWaveView.cpp @@ -0,0 +1,550 @@ +/* + * AudioFileProcessorWaveView.cpp - Wave renderer of the AFP + * + * Copyright (c) 2004-2014 Tobias Doerffel + * + * This file is part of LMMS - https://lmms.io + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#include "AudioFileProcessorWaveView.h" + +#include "ConfigManager.h" +#include "FontHelper.h" +#include "SampleWaveform.h" + +#include +#include + +#include + + +namespace lmms +{ + +namespace gui +{ + +void AudioFileProcessorWaveView::updateSampleRange() +{ + if (m_sample->sampleSize() > 1) + { + const auto marging = (m_sample->endFrame() - m_sample->startFrame()) * 0.1; + setFrom(m_sample->startFrame() - marging); + setTo(m_sample->endFrame() + marging); + } +} + +void AudioFileProcessorWaveView::setTo(int to) +{ + m_to = std::min(to, static_cast(m_sample->sampleSize())); +} + +void AudioFileProcessorWaveView::setFrom(int from) +{ + m_from = std::max(from, 0); +} + +int AudioFileProcessorWaveView::range() const +{ + return m_to - m_from; +} + +AudioFileProcessorWaveView::AudioFileProcessorWaveView(QWidget* parent, int w, int h, Sample const* buf, + knob* start, knob* end, knob* loop) : + QWidget(parent), + m_sample(buf), + m_graph(QPixmap(w - 2 * s_padding, h - 2 * s_padding)), + m_from(0), + m_to(m_sample->sampleSize()), + m_last_from(0), + m_last_to(0), + m_last_amp(0), + m_startKnob(start), + m_endKnob(end), + m_loopKnob(loop), + m_isDragging(false), + m_reversed(false), + m_framesPlayed(0), + m_animation(ConfigManager::inst()->value("ui", "animateafp").toInt()) +{ + setFixedSize(w, h); + setMouseTracking(true); + + configureKnobRelationsAndWaveViews(); + + updateSampleRange(); + + m_graph.fill(Qt::transparent); + update(); + updateCursor(); +} + +void AudioFileProcessorWaveView::isPlaying(f_cnt_t current_frame) +{ + m_framesPlayed = current_frame; + update(); +} + +void AudioFileProcessorWaveView::enterEvent(QEvent * e) +{ + updateCursor(); +} + +void AudioFileProcessorWaveView::leaveEvent(QEvent * e) +{ + updateCursor(); +} + +void AudioFileProcessorWaveView::mousePressEvent(QMouseEvent * me) +{ + m_isDragging = true; + m_draggingLastPoint = me->pos(); + + const int x = me->x(); + + const int start_dist = qAbs(m_startFrameX - x); + const int end_dist = qAbs(m_endFrameX - x); + const int loop_dist = qAbs(m_loopFrameX - x); + + DraggingType dt = DraggingType::SampleLoop; int md = loop_dist; + if (start_dist < loop_dist) { dt = DraggingType::SampleStart; md = start_dist; } + else if (end_dist < loop_dist) { dt = DraggingType::SampleEnd; md = end_dist; } + + if (md < 4) + { + m_draggingType = dt; + } + else + { + m_draggingType = DraggingType::Wave; + updateCursor(me); + } +} + +void AudioFileProcessorWaveView::mouseReleaseEvent(QMouseEvent * me) +{ + m_isDragging = false; + if (m_draggingType == DraggingType::Wave) + { + updateCursor(me); + } +} + +void AudioFileProcessorWaveView::mouseMoveEvent(QMouseEvent * me) +{ + if (! m_isDragging) + { + updateCursor(me); + return; + } + + const int step = me->x() - m_draggingLastPoint.x(); + switch(m_draggingType) + { + case DraggingType::SampleStart: + slideSamplePointByPx(Point::Start, step); + break; + case DraggingType::SampleEnd: + slideSamplePointByPx(Point::End, step); + break; + case DraggingType::SampleLoop: + slideSamplePointByPx(Point::Loop, step); + break; + case DraggingType::SlideWave: + slide(step); + break; + case DraggingType::ZoomWave: + zoom(me->y() < m_draggingLastPoint.y()); + break; + case DraggingType::Wave: + default: + if (qAbs(me->y() - m_draggingLastPoint.y()) + < 2 * qAbs(me->x() - m_draggingLastPoint.x())) + { + m_draggingType = DraggingType::SlideWave; + } + else + { + m_draggingType = DraggingType::ZoomWave; + } + } + + m_draggingLastPoint = me->pos(); + update(); +} + +void AudioFileProcessorWaveView::wheelEvent(QWheelEvent * we) +{ + zoom(we->angleDelta().y() > 0); + update(); +} + +void AudioFileProcessorWaveView::paintEvent(QPaintEvent * pe) +{ + QPainter p(this); + + p.drawPixmap(s_padding, s_padding, m_graph); + + const QRect graph_rect(s_padding, s_padding, width() - 2 * s_padding, height() - 2 * s_padding); + const auto frames = range(); + m_startFrameX = graph_rect.x() + (m_sample->startFrame() - m_from) * + double(graph_rect.width()) / frames; + m_endFrameX = graph_rect.x() + (m_sample->endFrame() - m_from) * + double(graph_rect.width()) / frames; + m_loopFrameX = graph_rect.x() + (m_sample->loopStartFrame() - m_from) * + double(graph_rect.width()) / frames; + const int played_width_px = (m_framesPlayed - m_from) * + double(graph_rect.width()) / frames; + + // loop point line + p.setPen(QColor(0x7F, 0xFF, 0xFF)); //TODO: put into a qproperty + p.drawLine(m_loopFrameX, graph_rect.y(), + m_loopFrameX, + graph_rect.height() + graph_rect.y()); + + // start/end lines + p.setPen(QColor(0xFF, 0xFF, 0xFF)); //TODO: put into a qproperty + p.drawLine(m_startFrameX, graph_rect.y(), + m_startFrameX, + graph_rect.height() + graph_rect.y()); + p.drawLine(m_endFrameX, graph_rect.y(), + m_endFrameX, + graph_rect.height() + graph_rect.y()); + + + if (m_endFrameX - m_startFrameX > 2) + { + p.fillRect( + m_startFrameX + 1, + graph_rect.y(), + m_endFrameX - m_startFrameX - 1, + graph_rect.height() + graph_rect.y(), + QColor(95, 175, 255, 50) //TODO: put into a qproperty + ); + if (m_endFrameX - m_loopFrameX > 2) + p.fillRect( + m_loopFrameX + 1, + graph_rect.y(), + m_endFrameX - m_loopFrameX - 1, + graph_rect.height() + graph_rect.y(), + QColor(95, 205, 255, 65) //TODO: put into a qproperty + ); + + if (m_framesPlayed && m_animation) + { + QLinearGradient g(m_startFrameX, 0, played_width_px, 0); + const QColor c(0, 120, 255, 180); //TODO: put into a qproperty + g.setColorAt(0, Qt::transparent); + g.setColorAt(0.8, c); + g.setColorAt(1, c); + p.fillRect( + m_startFrameX + 1, + graph_rect.y(), + played_width_px - (m_startFrameX + 1), + graph_rect.height() + graph_rect.y(), + g + ); + p.setPen(QColor(255, 255, 255)); //TODO: put into a qproperty + p.drawLine( + played_width_px, + graph_rect.y(), + played_width_px, + graph_rect.height() + graph_rect.y() + ); + m_framesPlayed = 0; + } + } + + QLinearGradient g(0, 0, width() * 0.7, 0); + const QColor c(16, 111, 170, 180); + g.setColorAt(0, c); + g.setColorAt(0.4, c); + g.setColorAt(1, Qt::transparent); + p.fillRect(s_padding, s_padding, m_graph.width(), 14, g); + + p.setPen(QColor(255, 255, 255)); + p.setFont(adjustedToPixelSize(font(), SMALL_FONT_SIZE)); + + QString length_text; + const int length = m_sample->sampleDuration().count(); + + if (length > 20000) + { + length_text = QString::number(length / 1000) + "s"; + } + else if (length > 2000) + { + length_text = QString::number((length / 100) / 10.0) + "s"; + } + else + { + length_text = QString::number(length) + "ms"; + } + + p.drawText( + s_padding + 2, + s_padding + 10, + tr("Sample length:") + " " + length_text + ); +} + +void AudioFileProcessorWaveView::updateGraph() +{ + if (m_to == 1) + { + setTo(m_sample->sampleSize() * 0.7); + slideSamplePointToFrames(Point::End, m_to * 0.7); + } + + if (m_from > m_sample->startFrame()) + { + setFrom(m_sample->startFrame()); + } + + if (m_to < m_sample->endFrame()) + { + setTo(m_sample->endFrame()); + } + + if (m_sample->reversed() != m_reversed) + { + reverse(); + } + else if (m_last_from == m_from && m_last_to == m_to && m_sample->amplification() == m_last_amp) + { + return; + } + + m_last_from = m_from; + m_last_to = m_to; + m_last_amp = m_sample->amplification(); + + m_graph.fill(Qt::transparent); + QPainter p(&m_graph); + p.setPen(QColor(255, 255, 255)); + + const auto dataOffset = m_reversed ? m_sample->sampleSize() - m_to : m_from; + + const auto rect = QRect{0, 0, m_graph.width(), m_graph.height()}; + const auto waveform = SampleWaveform::Parameters{ + m_sample->data() + dataOffset, static_cast(range()), m_sample->amplification(), m_sample->reversed()}; + SampleWaveform::visualize(waveform, p, rect); +} + +void AudioFileProcessorWaveView::zoom(const bool out) +{ + const auto start = m_sample->startFrame(); + const auto end = m_sample->endFrame(); + const auto frames = m_sample->sampleSize(); + + const auto dFrom = start - m_from; + const auto dTo = m_to - end; + + const auto step = std::max(1.0, std::max(dFrom, dTo) / 10.0); + const auto stepFrom = out ? -step : step; + const auto stepTo = out ? step : -step; + + const auto boundedFrom = std::clamp(m_from + stepFrom, 0.0, static_cast(start)); + const auto boundedTo = std::clamp(m_to + stepTo, static_cast(end), static_cast(frames)); + + const auto compRatio = std::min(dFrom, dTo) / static_cast(std::max(1, std::max(dFrom, dTo))); + const auto toStep = stepFrom * (boundedTo == m_to ? 1 : compRatio); + const auto newFrom = (out && dFrom < dTo) || (!out && dTo < dFrom) + ? boundedFrom + : std::clamp(m_from + toStep, 0.0, static_cast(start)); + + const auto fromStep = stepTo * (boundedFrom == m_from ? 1 : compRatio); + const auto newTo = (out && dFrom < dTo) || (!out && dTo < dFrom) + ? std::clamp(m_to + fromStep, static_cast(end), static_cast(frames)) + : boundedTo; + + if ((newTo - newFrom) / m_sample->sampleRate() > 0.05) + { + setFrom(newFrom); + setTo(newTo); + } +} + +void AudioFileProcessorWaveView::slide(int px) +{ + const double fact = qAbs(double(px) / width()); + auto step = range() * fact * (px > 0 ? 1 : -1); + + const auto sampleStart = static_cast(m_sample->startFrame()); + const auto sampleEnd = static_cast(m_sample->endFrame()); + + const auto stepFrom = std::clamp(sampleStart + step, 0.0, static_cast(m_sample->sampleSize())) - sampleStart; + const auto stepTo = std::clamp(sampleEnd + step, sampleStart + 1.0, static_cast(m_sample->sampleSize())) - sampleEnd; + step = std::abs(stepFrom) < std::abs(stepTo) ? stepFrom : stepTo; + + slideSampleByFrames(step); +} + +void AudioFileProcessorWaveView::slideSamplePointByPx(Point point, int px) +{ + slideSamplePointByFrames( + point, + f_cnt_t((double(px) / width()) * range()) + ); +} + +void AudioFileProcessorWaveView::slideSamplePointByFrames(Point point, long frameOffset, bool slideTo) +{ + knob * a_knob = m_startKnob; + switch(point) + { + case Point::End: + a_knob = m_endKnob; + break; + case Point::Loop: + a_knob = m_loopKnob; + break; + case Point::Start: + break; + } + if (a_knob == nullptr) + { + return; + } + else + { + const double v = static_cast(frameOffset) / m_sample->sampleSize(); + if (slideTo) + { + a_knob->slideTo(v); + } + else + { + a_knob->slideBy(v); + } + } +} + + + + +void AudioFileProcessorWaveView::slideSampleByFrames(long frameOffset) +{ + if (m_sample->sampleSize() <= 1) + { + return; + } + const double v = static_cast(frameOffset) / m_sample->sampleSize(); + // update knobs in the right order + // to avoid them clamping each other + if (v < 0) + { + m_startKnob->slideBy(v, false); + m_loopKnob->slideBy(v, false); + m_endKnob->slideBy(v, false); + } + else + { + m_endKnob->slideBy(v, false); + m_loopKnob->slideBy(v, false); + m_startKnob->slideBy(v, false); + } +} + +void AudioFileProcessorWaveView::reverse() +{ + slideSampleByFrames( + m_sample->sampleSize() + - m_sample->endFrame() + - m_sample->startFrame() + ); + + const int fromTmp = m_from; + + setFrom(m_sample->sampleSize() - m_to); + setTo(m_sample->sampleSize() - fromTmp); + m_reversed = ! m_reversed; +} + +void AudioFileProcessorWaveView::updateCursor(QMouseEvent * me) +{ + bool const waveIsDragged = m_isDragging && (m_draggingType == DraggingType::Wave); + bool const pointerCloseToStartEndOrLoop = (me != nullptr) && + (isCloseTo(me->x(), m_startFrameX) || + isCloseTo(me->x(), m_endFrameX) || + isCloseTo(me->x(), m_loopFrameX)); + + if (!m_isDragging && pointerCloseToStartEndOrLoop) + setCursor(Qt::SizeHorCursor); + else if (waveIsDragged) + setCursor(Qt::ClosedHandCursor); + else + setCursor(Qt::OpenHandCursor); +} + +void AudioFileProcessorWaveView::configureKnobRelationsAndWaveViews() +{ + m_startKnob->setWaveView(this); + m_startKnob->setRelatedKnob(m_endKnob); + + m_endKnob->setWaveView(this); + m_endKnob->setRelatedKnob(m_startKnob); + + m_loopKnob->setWaveView(this); +} + +void AudioFileProcessorWaveView::knob::slideTo(double v, bool check_bound) +{ + if (check_bound && ! checkBound(v)) + { + return; + } + model()->setValue(v); + emit sliderMoved(model()->value()); +} + +float AudioFileProcessorWaveView::knob::getValue(const QPoint & p) +{ + const double dec_fact = ! m_waveView ? 1 : + static_cast(m_waveView->m_to - m_waveView->m_from) / m_waveView->m_sample->sampleSize(); + const float inc = Knob::getValue(p) * dec_fact; + + return inc; +} + +bool AudioFileProcessorWaveView::knob::checkBound(double v) const +{ + if (! m_relatedKnob || ! m_waveView) + { + return true; + } + + if ((m_relatedKnob->model()->value() - v > 0) != + (m_relatedKnob->model()->value() - model()->value() >= 0)) + return false; + + const double d1 = qAbs(m_relatedKnob->model()->value() - model()->value()) + * (m_waveView->m_sample->sampleSize()) + / m_waveView->m_sample->sampleRate(); + + const double d2 = qAbs(m_relatedKnob->model()->value() - v) + * (m_waveView->m_sample->sampleSize()) + / m_waveView->m_sample->sampleRate(); + + return d1 < d2 || d2 > 0.005; +} + +} // namespace gui + +} // namespace lmms diff --git a/plugins/AudioFileProcessor/AudioFileProcessorWaveView.h b/plugins/AudioFileProcessor/AudioFileProcessorWaveView.h new file mode 100644 index 00000000000..1251501b02d --- /dev/null +++ b/plugins/AudioFileProcessor/AudioFileProcessorWaveView.h @@ -0,0 +1,188 @@ +/* + * AudioFileProcessorWaveView.h - Wave renderer of the AFP + * + * Copyright (c) 2004-2014 Tobias Doerffel + * + * This file is part of LMMS - https://lmms.io + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#ifndef LMMS_AUDIO_FILE_PROCESSOR_WAVE_VIEW_H +#define LMMS_AUDIO_FILE_PROCESSOR_WAVE_VIEW_H + + +#include "Knob.h" + + +namespace lmms +{ + +class Sample; + +namespace gui +{ + +class AudioFileProcessorView; + +class AudioFileProcessorWaveView : public QWidget +{ + Q_OBJECT +protected: + virtual void enterEvent(QEvent* e); + virtual void leaveEvent(QEvent* e); + virtual void mousePressEvent(QMouseEvent* me); + virtual void mouseReleaseEvent(QMouseEvent* me); + virtual void mouseMoveEvent(QMouseEvent* me); + virtual void wheelEvent(QWheelEvent* we); + virtual void paintEvent(QPaintEvent* pe); + + +public: + enum class Point + { + Start, + End, + Loop + } ; + + class knob : public Knob + { + const AudioFileProcessorWaveView* m_waveView; + const Knob* m_relatedKnob; + + + public: + knob(QWidget* parent) : + Knob(KnobType::Bright26, parent), + m_waveView(0), + m_relatedKnob(0) + { + setFixedSize(37, 47); + } + + void setWaveView(const AudioFileProcessorWaveView* wv) + { + m_waveView = wv; + } + + void setRelatedKnob(const Knob* knob) + { + m_relatedKnob = knob; + } + + void slideBy(double v, bool check_bound = true) + { + slideTo(model()->value() + v, check_bound); + } + + void slideTo(double v, bool check_bound = true); + + + protected: + float getValue(const QPoint & p); + + + private: + bool checkBound(double v) const; + } ; + + +public slots: + void update() + { + updateGraph(); + QWidget::update(); + } + + void isPlaying(lmms::f_cnt_t current_frame); + + +private: + static const int s_padding = 2; + + enum class DraggingType + { + Wave, + SlideWave, + ZoomWave, + SampleStart, + SampleEnd, + SampleLoop + } ; + + Sample const* m_sample; + QPixmap m_graph; + int m_from; + int m_to; + int m_last_from; + int m_last_to; + float m_last_amp; + knob* m_startKnob; + knob* m_endKnob; + knob* m_loopKnob; + int m_startFrameX; + int m_endFrameX; + int m_loopFrameX; + bool m_isDragging; + QPoint m_draggingLastPoint; + DraggingType m_draggingType; + bool m_reversed; + f_cnt_t m_framesPlayed; + bool m_animation; + + friend class AudioFileProcessorView; + +public: + AudioFileProcessorWaveView(QWidget* parent, int w, int h, Sample const* buf, + knob* start, knob* end, knob* loop); + + + void updateSampleRange(); +private: + void setTo(int to); + void setFrom(int from); + int range() const; + void zoom(const bool out = false); + void slide(int px); + void slideSamplePointByPx(Point point, int px); + void slideSamplePointByFrames(Point point, long frameOffset, bool slideTo = false); + void slideSampleByFrames(long frameOffset); + + void slideSamplePointToFrames(Point point, f_cnt_t frames) + { + slideSamplePointByFrames(point, frames, true); + } + + void updateGraph(); + void reverse(); + void updateCursor(QMouseEvent* me = nullptr); + + void configureKnobRelationsAndWaveViews(); + + static bool isCloseTo(int a, int b) + { + return qAbs(a - b) < 4; + } + +} ; + +} // namespace gui + +} // namespace lmms + +#endif // LMMS_AUDIO_FILE_PROCESSOR_WAVE_VIEW_H diff --git a/plugins/AudioFileProcessor/CMakeLists.txt b/plugins/AudioFileProcessor/CMakeLists.txt index 055fad79109..a6753211261 100644 --- a/plugins/AudioFileProcessor/CMakeLists.txt +++ b/plugins/AudioFileProcessor/CMakeLists.txt @@ -1,3 +1,3 @@ INCLUDE(BuildPlugin) -BUILD_PLUGIN(audiofileprocessor AudioFileProcessor.cpp AudioFileProcessor.h MOCFILES AudioFileProcessor.h EMBEDDED_RESOURCES *.png) +BUILD_PLUGIN(audiofileprocessor AudioFileProcessor.cpp AudioFileProcessor.h AudioFileProcessorView.cpp AudioFileProcessorView.h AudioFileProcessorWaveView.cpp AudioFileProcessorWaveView.h MOCFILES AudioFileProcessor.h AudioFileProcessorView.h AudioFileProcessorWaveView.h EMBEDDED_RESOURCES *.png) diff --git a/plugins/BassBooster/BassBooster.cpp b/plugins/BassBooster/BassBooster.cpp index e6b25b0d141..ae914c85d52 100644 --- a/plugins/BassBooster/BassBooster.cpp +++ b/plugins/BassBooster/BassBooster.cpp @@ -69,12 +69,8 @@ BassBoosterEffect::BassBoosterEffect( Model* parent, const Descriptor::SubPlugin -bool BassBoosterEffect::processAudioBuffer( sampleFrame* buf, const fpp_t frames ) +Effect::ProcessStatus BassBoosterEffect::processImpl(SampleFrame* buf, const fpp_t frames) { - if( !isEnabled() || !isRunning () ) - { - return( false ); - } // check out changed controls if( m_frequencyChangeNeeded || m_bbControls.m_freqModel.isValueChanged() ) { @@ -87,38 +83,29 @@ bool BassBoosterEffect::processAudioBuffer( sampleFrame* buf, const fpp_t frames const float const_gain = m_bbControls.m_gainModel.value(); const ValueBuffer *gainBuffer = m_bbControls.m_gainModel.valueBuffer(); - double outSum = 0.0; const float d = dryLevel(); const float w = wetLevel(); - for( fpp_t f = 0; f < frames; ++f ) + for (fpp_t f = 0; f < frames; ++f) { - float gain = const_gain; - if (gainBuffer) { - //process period using sample exact data - gain = gainBuffer->value( f ); - } - //float gain = gainBuffer ? gainBuffer[f] : gain; - m_bbFX.leftFX().setGain( gain ); - m_bbFX.rightFX().setGain( gain); - - auto s = std::array{buf[f][0], buf[f][1]}; - m_bbFX.nextSample( s[0], s[1] ); - - buf[f][0] = d * buf[f][0] + w * s[0]; - buf[f][1] = d * buf[f][1] + w * s[1]; - outSum += buf[f][0] * buf[f][0] + buf[f][1] * buf[f][1]; - } + auto& currentFrame = buf[f]; - checkGate( outSum / frames ); + // Process copy of current sample frame + m_bbFX.setGain(gainBuffer ? gainBuffer->value(f) : const_gain); + auto s = currentFrame; + m_bbFX.nextSample(s); + + // Dry/wet mix + currentFrame = currentFrame * d + s * w; + } - return isRunning(); + return ProcessStatus::ContinueIfNotQuiet; } inline void BassBoosterEffect::changeFrequency() { - const sample_t fac = Engine::audioEngine()->processingSampleRate() / 44100.0f; + const sample_t fac = Engine::audioEngine()->outputSampleRate() / 44100.0f; m_bbFX.leftFX().setFrequency( m_bbControls.m_freqModel.value() * fac ); m_bbFX.rightFX().setFrequency( m_bbControls.m_freqModel.value() * fac ); diff --git a/plugins/BassBooster/BassBooster.h b/plugins/BassBooster/BassBooster.h index ea3ba2d986e..f46c910a304 100644 --- a/plugins/BassBooster/BassBooster.h +++ b/plugins/BassBooster/BassBooster.h @@ -38,7 +38,8 @@ class BassBoosterEffect : public Effect public: BassBoosterEffect( Model* parent, const Descriptor::SubPluginFeatures::Key* key ); ~BassBoosterEffect() override = default; - bool processAudioBuffer( sampleFrame* buf, const fpp_t frames ) override; + + ProcessStatus processImpl(SampleFrame* buf, const fpp_t frames) override; EffectControls* controls() override { diff --git a/plugins/BitInvader/BitInvader.cpp b/plugins/BitInvader/BitInvader.cpp index 4ea73dc7116..8d9bef4d3c7 100644 --- a/plugins/BitInvader/BitInvader.cpp +++ b/plugins/BitInvader/BitInvader.cpp @@ -110,34 +110,18 @@ sample_t BSynth::nextStringSample( float sample_length ) sample_realindex -= sample_length; } - sample_t sample; - - if (interpolation) { + const auto currentRealIndex = sample_realindex; + const auto currentIndex = static_cast(sample_realindex); + sample_realindex += sample_step; - // find position in shape - int a = static_cast(sample_realindex); - int b; - if (a < (sample_length-1)) { - b = static_cast(sample_realindex+1); - } else { - b = 0; - } - - // Nachkommaanteil - const float frac = fraction( sample_realindex ); - - sample = linearInterpolate( sample_shape[a], sample_shape[b], frac ); - - } else { - // No interpolation - sample_index = static_cast(sample_realindex); - sample = sample_shape[sample_index]; + if (!interpolation) + { + sample_index = currentIndex; + return sample_shape[sample_index]; } - - // progress in shape - sample_realindex += sample_step; - return sample; + const auto nextIndex = currentIndex < sample_length - 1 ? currentIndex + 1 : 0; + return linearInterpolate(sample_shape[currentIndex], sample_shape[nextIndex], fraction(currentRealIndex)); } /*********************************************************************** @@ -153,8 +137,8 @@ BitInvader::BitInvader( InstrumentTrack * _instrument_track ) : Instrument( _instrument_track, &bitinvader_plugin_descriptor ), m_sampleLength(wavetableSize, 4, wavetableSize, 1, this, tr("Sample length")), m_graph(-1.0f, 1.0f, wavetableSize, this), - m_interpolation( false, this ), - m_normalize( false, this ) + m_interpolation(false, this, tr("Interpolation")), + m_normalize(false, this, tr("Normalize")) { m_graph.setWaveToSine(); lengthChanged(); @@ -272,25 +256,16 @@ QString BitInvader::nodeName() const void BitInvader::playNote( NotePlayHandle * _n, - sampleFrame * _working_buffer ) + SampleFrame* _working_buffer ) { if (!_n->m_pluginData) { - float factor; - if( !m_normalize.value() ) - { - factor = defaultNormalizationFactor; - } - else - { - factor = m_normalizeFactor; - } - + float factor = !m_normalize.value() ? defaultNormalizationFactor : m_normalizeFactor; _n->m_pluginData = new BSynth( const_cast( m_graph.samples() ), _n, m_interpolation.value(), factor, - Engine::audioEngine()->processingSampleRate() ); + Engine::audioEngine()->outputSampleRate() ); } const fpp_t frames = _n->framesLeftForCurrentPeriod(); @@ -299,11 +274,7 @@ void BitInvader::playNote( NotePlayHandle * _n, auto ps = static_cast(_n->m_pluginData); for( fpp_t frame = offset; frame < frames + offset; ++frame ) { - const sample_t cur = ps->nextStringSample( m_graph.length() ); - for( ch_cnt_t chnl = 0; chnl < DEFAULT_CHANNELS; ++chnl ) - { - _working_buffer[frame][chnl] = cur; - } + _working_buffer[frame] = SampleFrame(ps->nextStringSample(m_graph.length())); } applyRelease( _working_buffer, _n ); diff --git a/plugins/BitInvader/BitInvader.h b/plugins/BitInvader/BitInvader.h index a08640e998b..2ed2dde1bee 100644 --- a/plugins/BitInvader/BitInvader.h +++ b/plugins/BitInvader/BitInvader.h @@ -31,7 +31,6 @@ #include "Instrument.h" #include "InstrumentView.h" #include "Graph.h" -#include "MemoryManager.h" namespace lmms { @@ -48,7 +47,6 @@ class PixmapButton; class BSynth { - MM_OPERATORS public: BSynth( float * sample, NotePlayHandle * _nph, bool _interpolation, float factor, @@ -77,7 +75,7 @@ class BitInvader : public Instrument ~BitInvader() override = default; void playNote( NotePlayHandle * _n, - sampleFrame * _working_buffer ) override; + SampleFrame* _working_buffer ) override; void deleteNotePluginData( NotePlayHandle * _n ) override; @@ -87,9 +85,9 @@ class BitInvader : public Instrument QString nodeName() const override; - f_cnt_t desiredReleaseFrames() const override + float desiredReleaseTimeMs() const override { - return( 64 ); + return 1.5f; } gui::PluginView * instantiateView( QWidget * _parent ) override; diff --git a/plugins/Bitcrush/Bitcrush.cpp b/plugins/Bitcrush/Bitcrush.cpp index 8d29186b5e7..7b9e8f8ef07 100644 --- a/plugins/Bitcrush/Bitcrush.cpp +++ b/plugins/Bitcrush/Bitcrush.cpp @@ -59,10 +59,10 @@ Plugin::Descriptor PLUGIN_EXPORT bitcrush_plugin_descriptor = BitcrushEffect::BitcrushEffect( Model * parent, const Descriptor::SubPluginFeatures::Key * key ) : Effect( &bitcrush_plugin_descriptor, parent, key ), m_controls( this ), - m_sampleRate( Engine::audioEngine()->processingSampleRate() ), + m_sampleRate( Engine::audioEngine()->outputSampleRate() ), m_filter( m_sampleRate ) { - m_buffer = MM_ALLOC( Engine::audioEngine()->framesPerPeriod() * OS_RATE ); + m_buffer = new SampleFrame[Engine::audioEngine()->framesPerPeriod() * OS_RATE]; m_filter.setLowpass( m_sampleRate * ( CUTOFF_RATIO * OS_RATIO ) ); m_needsUpdate = true; @@ -77,13 +77,13 @@ BitcrushEffect::BitcrushEffect( Model * parent, const Descriptor::SubPluginFeatu BitcrushEffect::~BitcrushEffect() { - MM_FREE( m_buffer ); + delete[] m_buffer; } void BitcrushEffect::sampleRateChanged() { - m_sampleRate = Engine::audioEngine()->processingSampleRate(); + m_sampleRate = Engine::audioEngine()->outputSampleRate(); m_filter.setSampleRate( m_sampleRate ); m_filter.setLowpass( m_sampleRate * ( CUTOFF_RATIO * OS_RATIO ) ); m_needsUpdate = true; @@ -100,13 +100,8 @@ inline float BitcrushEffect::noise( float amt ) return fastRandf( amt * 2.0f ) - amt; } -bool BitcrushEffect::processAudioBuffer( sampleFrame* buf, const fpp_t frames ) +Effect::ProcessStatus BitcrushEffect::processImpl(SampleFrame* buf, const fpp_t frames) { - if( !isEnabled() || !isRunning () ) - { - return( false ); - } - // update values if( m_needsUpdate || m_controls.m_rateEnabled.isValueChanged() ) { @@ -153,7 +148,7 @@ bool BitcrushEffect::processAudioBuffer( sampleFrame* buf, const fpp_t frames ) // read input buffer and write it to oversampled buffer if( m_rateEnabled ) // rate crushing enabled so do that { - for( int f = 0; f < frames; ++f ) + for (auto f = std::size_t{0}; f < frames; ++f) { for( int o = 0; o < OS_RATE; ++o ) { @@ -180,7 +175,7 @@ bool BitcrushEffect::processAudioBuffer( sampleFrame* buf, const fpp_t frames ) } else // rate crushing disabled: simply oversample with zero-order hold { - for( int f = 0; f < frames; ++f ) + for (auto f = std::size_t{0}; f < frames; ++f) { for( int o = 0; o < OS_RATE; ++o ) { @@ -196,7 +191,7 @@ bool BitcrushEffect::processAudioBuffer( sampleFrame* buf, const fpp_t frames ) // the oversampled buffer is now written, so filter it to reduce aliasing - for( int f = 0; f < frames * OS_RATE; ++f ) + for (auto f = std::size_t{0}; f < frames * OS_RATE; ++f) { if( qMax( qAbs( m_buffer[f][0] ), qAbs( m_buffer[f][1] ) ) >= 1.0e-10f ) { @@ -222,10 +217,9 @@ bool BitcrushEffect::processAudioBuffer( sampleFrame* buf, const fpp_t frames ) // now downsample and write it back to main buffer - double outSum = 0.0; const float d = dryLevel(); const float w = wetLevel(); - for( int f = 0; f < frames; ++f ) + for (auto f = std::size_t{0}; f < frames; ++f) { float lsum = 0.0f; float rsum = 0.0f; @@ -236,12 +230,9 @@ bool BitcrushEffect::processAudioBuffer( sampleFrame* buf, const fpp_t frames ) } buf[f][0] = d * buf[f][0] + w * qBound( -m_outClip, lsum, m_outClip ) * m_outGain; buf[f][1] = d * buf[f][1] + w * qBound( -m_outClip, rsum, m_outClip ) * m_outGain; - outSum += buf[f][0]*buf[f][0] + buf[f][1]*buf[f][1]; } - checkGate( outSum / frames ); - - return isRunning(); + return ProcessStatus::ContinueIfNotQuiet; } diff --git a/plugins/Bitcrush/Bitcrush.h b/plugins/Bitcrush/Bitcrush.h index a6e5556a297..4957ea9ec83 100644 --- a/plugins/Bitcrush/Bitcrush.h +++ b/plugins/Bitcrush/Bitcrush.h @@ -41,13 +41,14 @@ class BitcrushEffect : public Effect public: BitcrushEffect( Model* parent, const Descriptor::SubPluginFeatures::Key* key ); ~BitcrushEffect() override; - bool processAudioBuffer( sampleFrame* buf, const fpp_t frames ) override; + + ProcessStatus processImpl(SampleFrame* buf, const fpp_t frames) override; EffectControls* controls() override { return &m_controls; } - + private: void sampleRateChanged(); float depthCrush( float in ); @@ -55,7 +56,7 @@ class BitcrushEffect : public Effect BitcrushControls m_controls; - sampleFrame * m_buffer; + SampleFrame* m_buffer; float m_sampleRate; StereoLinkwitzRiley m_filter; diff --git a/plugins/CarlaBase/CMakeLists.txt b/plugins/CarlaBase/CMakeLists.txt index 8f9e14dd101..6533055a4c3 100644 --- a/plugins/CarlaBase/CMakeLists.txt +++ b/plugins/CarlaBase/CMakeLists.txt @@ -15,7 +15,7 @@ if(LMMS_HAVE_WEAKCARLA) SET(CARLA_NATIVE_LIB carla_native-plugin) ADD_LIBRARY(${CARLA_NATIVE_LIB} SHARED DummyCarla.cpp) - TARGET_INCLUDE_DIRECTORIES(${CARLA_NATIVE_LIB} PUBLIC ${CARLA_INCLUDE_DIRS}) + target_include_directories(${CARLA_NATIVE_LIB} SYSTEM PUBLIC ${CARLA_INCLUDE_DIRS}) INSTALL(TARGETS ${CARLA_NATIVE_LIB} LIBRARY DESTINATION "${PLUGIN_DIR}/optional" RUNTIME DESTINATION "${PLUGIN_DIR}/optional" @@ -31,7 +31,7 @@ if(LMMS_HAVE_CARLA OR LMMS_HAVE_WEAKCARLA) SET(CARLA_INCLUDE_DIRS ${CARLA_INCLUDE_DIRS} PARENT_SCOPE) INCLUDE(BuildPlugin) - INCLUDE_DIRECTORIES(${CARLA_INCLUDE_DIRS}) + include_directories(SYSTEM ${CARLA_INCLUDE_DIRS}) LINK_DIRECTORIES(${CARLA_LIBRARY_DIRS}) LINK_LIBRARIES(${CARLA_LIBRARIES}) BUILD_PLUGIN(carlabase Carla.cpp Carla.h diff --git a/plugins/CarlaBase/Carla.cpp b/plugins/CarlaBase/Carla.cpp index 819736e928b..37cba078aa1 100644 --- a/plugins/CarlaBase/Carla.cpp +++ b/plugins/CarlaBase/Carla.cpp @@ -32,7 +32,7 @@ #include "Knob.h" #include "MidiEventToByteSeq.h" #include "MainWindow.h" -#include "gui_templates.h" +#include "FontHelper.h" #include "Song.h" #include @@ -150,7 +150,7 @@ static const char* host_ui_save_file(NativeHostHandle, bool isDir, const char* t CarlaInstrument::CarlaInstrument(InstrumentTrack* const instrumentTrack, const Descriptor* const descriptor, const bool isPatchbay) - : Instrument(instrumentTrack, descriptor), + : Instrument(instrumentTrack, descriptor, nullptr, Flag::IsSingleStreamed | Flag::IsMidiBased | Flag::IsNotBendable), kIsPatchbay(isPatchbay), fHandle(nullptr), fDescriptor(isPatchbay ? carla_get_native_patchbay_plugin() : carla_get_native_rack_plugin()), @@ -205,9 +205,9 @@ CarlaInstrument::CarlaInstrument(InstrumentTrack* const instrumentTrack, const D m_paramsCompleter->setCompletionMode(QCompleter::PopupCompletion); // Add static amount of CarlaParamFloatModel's. - int paramCount = fDescriptor->get_parameter_count(fHandle); + const auto paramCount = fDescriptor->get_parameter_count(fHandle); m_paramModels.reserve(paramCount); - for (int i=0; i < paramCount; ++i) + for (auto i = std::size_t{0}; i < paramCount; ++i) { m_paramModels.push_back(new CarlaParamFloatModel(this)); connect(m_paramModels[i], &CarlaParamFloatModel::dataChanged, @@ -259,7 +259,7 @@ uint32_t CarlaInstrument::handleGetBufferSize() const double CarlaInstrument::handleGetSampleRate() const { - return Engine::audioEngine()->processingSampleRate(); + return Engine::audioEngine()->outputSampleRate(); } bool CarlaInstrument::handleIsOffline() const @@ -274,7 +274,7 @@ const NativeTimeInfo* CarlaInstrument::handleGetTimeInfo() const void CarlaInstrument::handleUiParameterChanged(const uint32_t index, const float value) const { - if (m_paramModels.count() > index) + if (m_paramModels.size() > index) { m_paramModels[index]->setValue(value); } @@ -343,11 +343,6 @@ intptr_t CarlaInstrument::handleDispatcher(const NativeHostDispatcherOpcode opco // ------------------------------------------------------------------- -Instrument::Flags CarlaInstrument::flags() const -{ - return Flag::IsSingleStreamed | Flag::IsMidiBased | Flag::IsNotBendable; -} - QString CarlaInstrument::nodeName() const { return descriptor()->name; @@ -374,7 +369,7 @@ void CarlaInstrument::saveSettings(QDomDocument& doc, QDomElement& parent) std::free(state); #if CARLA_VERSION_HEX >= CARLA_MIN_PARAM_VERSION - for (uint32_t index = 0; index < m_paramModels.count(); ++index) + for (uint32_t index = 0; index < m_paramModels.size(); ++index) { QString idStr = CARLA_SETTING_PREFIX + QString::number(index); m_paramModels[index]->saveSettings(doc, parent, idStr); @@ -444,7 +439,7 @@ void CarlaInstrument::refreshParams(bool init) void CarlaInstrument::clearParamModels() { //Delete the models, this also disconnects all connections (automation and controller connections) - for (uint32_t index=0; index < m_paramModels.count(); ++index) + for (uint32_t index = 0; index < m_paramModels.size(); ++index) { delete m_paramModels[index]; } @@ -500,11 +495,11 @@ void CarlaInstrument::loadSettings(const QDomElement& elem) #endif } -void CarlaInstrument::play(sampleFrame* workingBuffer) +void CarlaInstrument::play(SampleFrame* workingBuffer) { const uint bufsize = Engine::audioEngine()->framesPerPeriod(); - std::memset(workingBuffer, 0, sizeof(sample_t)*bufsize*DEFAULT_CHANNELS); + zeroSampleFrames(workingBuffer, bufsize); if (fHandle == nullptr) { @@ -632,7 +627,7 @@ CarlaInstrumentView::CarlaInstrumentView(CarlaInstrument* const instrument, QWid m_toggleUIButton->setCheckable( true ); m_toggleUIButton->setChecked( false ); m_toggleUIButton->setIcon( embed::getIconPixmap( "zoom" ) ); - m_toggleUIButton->setFont( pointSize<8>( m_toggleUIButton->font() ) ); + m_toggleUIButton->setFont(adjustedToPixelSize(m_toggleUIButton->font(), SMALL_FONT_SIZE)); connect( m_toggleUIButton, SIGNAL( clicked(bool) ), this, SLOT( toggleUI( bool ) ) ); m_toggleUIButton->setToolTip( @@ -642,7 +637,7 @@ CarlaInstrumentView::CarlaInstrumentView(CarlaInstrument* const instrument, QWid m_toggleParamsWindowButton = new QPushButton(tr("Params"), this); m_toggleParamsWindowButton->setIcon(embed::getIconPixmap("controller")); m_toggleParamsWindowButton->setCheckable(true); - m_toggleParamsWindowButton->setFont(pointSize<8>(m_toggleParamsWindowButton->font())); + m_toggleParamsWindowButton->setFont(adjustedToPixelSize(m_toggleParamsWindowButton->font(), SMALL_FONT_SIZE)); #if CARLA_VERSION_HEX < CARLA_MIN_PARAM_VERSION m_toggleParamsWindowButton->setEnabled(false); m_toggleParamsWindowButton->setToolTip(tr("Available from Carla version 2.1 and up.")); @@ -904,7 +899,7 @@ CarlaParamsView::~CarlaParamsView() m_carlaInstrumentView->m_paramsView = nullptr; // Clear models - if (m_carlaInstrument->m_paramModels.isEmpty() == false) + if (!m_carlaInstrument->m_paramModels.empty()) { m_carlaInstrument->clearParamModels(); } @@ -935,7 +930,7 @@ void CarlaParamsView::filterKnobs() m_maxColumns = m_inputScrollArea->width() / maxKnobWidth; QString text = m_paramsFilterLineEdit->text(); - for (uint32_t i=0; i < m_knobs.count(); ++i) + for (uint32_t i = 0; i < m_knobs.size(); ++i) { // Don't show disabled (unused) knobs. if (!m_carlaInstrument->m_paramModels[i]->enabled()) @@ -980,7 +975,7 @@ void CarlaParamsView::filterKnobs() void CarlaParamsView::refreshKnobs() { // Make sure all the knobs are deleted. - for (uint32_t i=0; i < m_knobs.count(); ++i) + for (uint32_t i = 0; i < m_knobs.size(); ++i) { delete m_knobs[i]; // Delete knob widgets itself. } @@ -1001,15 +996,15 @@ void CarlaParamsView::refreshKnobs() m_maxKnobWidthPerGroup[i] = 0; } - if (!m_carlaInstrument->m_paramModels.count()) { return; } + if (m_carlaInstrument->m_paramModels.empty()) { return; } // Make room in QList m_knobs - m_knobs.reserve(m_carlaInstrument->m_paramModels.count()); + m_knobs.reserve(m_carlaInstrument->m_paramModels.size()); QStringList groupNameList; groupNameList.reserve(m_carlaInstrument->m_paramGroupCount); - for (uint32_t i=0; i < m_carlaInstrument->m_paramModels.count(); ++i) + for (uint32_t i = 0; i < m_carlaInstrument->m_paramModels.size(); ++i) { bool enabled = m_carlaInstrument->m_paramModels[i]->enabled(); m_knobs.push_back(new Knob(KnobType::Dark28, m_inputScrollAreaWidgetContent)); @@ -1110,22 +1105,21 @@ void CarlaParamsView::addKnob(uint32_t index) void CarlaParamsView::clearKnobs() { // Remove knobs from layout. - for (uint16_t i=0; i < m_knobs.count(); ++i) + for (uint16_t i = 0; i < m_knobs.size(); ++i) { m_knobs[i]->close(); } // Remove spacers - QLayoutItem* item; for (int16_t i=m_inputScrollAreaLayout->count() - 1; i > 0; i--) { - item = m_inputScrollAreaLayout->takeAt(i); + auto item = m_inputScrollAreaLayout->takeAt(i); if (item->widget()) {continue;} delete item; } for (int16_t i=m_outputScrollAreaLayout->count() - 1; i > 0; i--) { - item = m_outputScrollAreaLayout->takeAt(i); + auto item = m_outputScrollAreaLayout->takeAt(i); if (item->widget()) {continue;} delete item; } diff --git a/plugins/CarlaBase/Carla.h b/plugins/CarlaBase/Carla.h index e04444f91b2..f833c4668e6 100644 --- a/plugins/CarlaBase/Carla.h +++ b/plugins/CarlaBase/Carla.h @@ -29,20 +29,23 @@ #define CARLA_MIN_PARAM_VERSION 0x020090 #define CARLA_VERSION_HEX_3 0x30000 +#include + // qt #include #include #include +#include // carla/source/includes #include "carlabase_export.h" -#include "CarlaDefines.h" +#include #if CARLA_VERSION_HEX >= 0x010911 - #include "CarlaNativePlugin.h" + #include #else - #include "CarlaBackend.h" - #include "CarlaNative.h" - #include "CarlaUtils.h" + #include + #include + #include CARLA_EXPORT const NativePluginDescriptor* carla_get_native_patchbay_plugin(); @@ -80,7 +83,7 @@ class CarlaParamFloatModel : public FloatModel { public: CarlaParamFloatModel(Model * parent): - FloatModel(0.0, 0.0, 1.0, 0.001, parent, "Unused"), + FloatModel(0.f, 0.f, 1.f, 0.001f, parent, "Unused"), m_isOutput(false), m_isEnabled(false) { @@ -89,8 +92,8 @@ class CarlaParamFloatModel : public FloatModel // From AutomatableModel.h, it's private there. inline static bool mustQuoteName(const QString &name) { - QRegExp reg("^[A-Za-z0-9._-]+$"); - return !reg.exactMatch(name); + QRegularExpression reg("^[A-Za-z0-9._-]+$"); + return !reg.match(name).hasMatch(); } inline void loadSettings(const QDomElement& element, const QString& name = QString("value")) override @@ -189,11 +192,10 @@ class CARLABASE_EXPORT CarlaInstrument : public Instrument intptr_t handleDispatcher(const NativeHostDispatcherOpcode opcode, const int32_t index, const intptr_t value, void* const ptr, const float opt); // LMMS functions - Flags flags() const override; QString nodeName() const override; void saveSettings(QDomDocument& doc, QDomElement& parent) override; void loadSettings(const QDomElement& elem) override; - void play(sampleFrame* workingBuffer) override; + void play(SampleFrame* workingBuffer) override; bool handleMidiEvent(const MidiEvent& event, const TimePos& time, f_cnt_t offset) override; gui::PluginView* instantiateView(QWidget* parent) override; @@ -223,7 +225,7 @@ private slots: QMutex fMutex; uint8_t m_paramGroupCount; - QList m_paramModels; + std::vector m_paramModels; QDomElement m_settingsElem; QCompleter* m_paramsCompleter; @@ -351,7 +353,7 @@ private slots: CarlaInstrument* const m_carlaInstrument; CarlaInstrumentView* const m_carlaInstrumentView; - QList m_knobs; + std::vector m_knobs; // Keep track of the biggest knob width per group QList m_maxKnobWidthPerGroup; diff --git a/plugins/CarlaBase/DummyCarla.cpp b/plugins/CarlaBase/DummyCarla.cpp index 572bdf4bc6f..9a5a137615e 100644 --- a/plugins/CarlaBase/DummyCarla.cpp +++ b/plugins/CarlaBase/DummyCarla.cpp @@ -1,6 +1,6 @@ // A dummy Carla interface #define BUILDING_CARLA -#include "CarlaNativePlugin.h" +#include #ifndef CARLA_PLUGIN_EXPORT #define CARLA_PLUGIN_EXPORT CARLA_EXPORT diff --git a/plugins/CarlaBase/carla b/plugins/CarlaBase/carla index 4ac8ff2ef41..66afe24a087 160000 --- a/plugins/CarlaBase/carla +++ b/plugins/CarlaBase/carla @@ -1 +1 @@ -Subproject commit 4ac8ff2ef412d4ab190d2e285e318b1f339af4ae +Subproject commit 66afe24a08790732cc17d81d4b846a1e0cfa0118 diff --git a/plugins/CarlaPatchbay/CMakeLists.txt b/plugins/CarlaPatchbay/CMakeLists.txt index 457e61e6a83..8f6efd5ea2c 100644 --- a/plugins/CarlaPatchbay/CMakeLists.txt +++ b/plugins/CarlaPatchbay/CMakeLists.txt @@ -1,7 +1,8 @@ if(LMMS_HAVE_CARLA OR LMMS_HAVE_WEAKCARLA) ADD_DEFINITIONS(-DCARLA_PLUGIN_PATCHBAY -DCARLA_PLUGIN_SYNTH) INCLUDE(BuildPlugin) - INCLUDE_DIRECTORIES(${CARLA_INCLUDE_DIRS} "${CMAKE_CURRENT_SOURCE_DIR}/../CarlaBase") + include_directories(SYSTEM ${CARLA_INCLUDE_DIRS}) + include_directories("${CMAKE_CURRENT_SOURCE_DIR}/../CarlaBase") LINK_DIRECTORIES("${CMAKE_CURRENT_BINARY_DIR}/../CarlaBase" ${CARLA_LIBRARY_DIRS}) LINK_LIBRARIES(carlabase) diff --git a/plugins/CarlaRack/CMakeLists.txt b/plugins/CarlaRack/CMakeLists.txt index 8373688c1ba..d5328562405 100644 --- a/plugins/CarlaRack/CMakeLists.txt +++ b/plugins/CarlaRack/CMakeLists.txt @@ -1,7 +1,8 @@ if(LMMS_HAVE_CARLA OR LMMS_HAVE_WEAKCARLA) ADD_DEFINITIONS(-DCARLA_PLUGIN_RACK -DCARLA_PLUGIN_SYNTH) INCLUDE(BuildPlugin) - INCLUDE_DIRECTORIES(${CARLA_INCLUDE_DIRS} "${CMAKE_CURRENT_SOURCE_DIR}/../CarlaBase") + include_directories(SYSTEM ${CARLA_INCLUDE_DIRS}) + include_directories("${CMAKE_CURRENT_SOURCE_DIR}/../CarlaBase") LINK_DIRECTORIES("${CMAKE_CURRENT_BINARY_DIR}/../CarlaBase" ${CARLA_LIBRARY_DIRS}) LINK_LIBRARIES(carlabase) diff --git a/plugins/Compressor/Compressor.cpp b/plugins/Compressor/Compressor.cpp index e59562b0279..1e4c0d0f608 100755 --- a/plugins/Compressor/Compressor.cpp +++ b/plugins/Compressor/Compressor.cpp @@ -56,7 +56,7 @@ CompressorEffect::CompressorEffect(Model* parent, const Descriptor::SubPluginFea Effect(&compressor_plugin_descriptor, parent, key), m_compressorControls(this) { - m_sampleRate = Engine::audioEngine()->processingSampleRate(); + m_sampleRate = Engine::audioEngine()->outputSampleRate(); m_yL[0] = m_yL[1] = COMP_NOISE_FLOOR; @@ -233,31 +233,10 @@ void CompressorEffect::calcMix() -bool CompressorEffect::processAudioBuffer(sampleFrame* buf, const fpp_t frames) +Effect::ProcessStatus CompressorEffect::processImpl(SampleFrame* buf, const fpp_t frames) { - if (!isEnabled() || !isRunning()) - { - // Clear lookahead buffers and other values when needed - if (!m_cleanedBuffers) - { - m_yL[0] = m_yL[1] = COMP_NOISE_FLOOR; - m_gainResult[0] = m_gainResult[1] = 1; - m_displayPeak[0] = m_displayPeak[1] = COMP_NOISE_FLOOR; - m_displayGain[0] = m_displayGain[1] = COMP_NOISE_FLOOR; - std::fill(std::begin(m_scLookBuf[0]), std::end(m_scLookBuf[0]), COMP_NOISE_FLOOR); - std::fill(std::begin(m_scLookBuf[1]), std::end(m_scLookBuf[1]), COMP_NOISE_FLOOR); - std::fill(std::begin(m_inLookBuf[0]), std::end(m_inLookBuf[0]), 0); - std::fill(std::begin(m_inLookBuf[1]), std::end(m_inLookBuf[1]), 0); - m_cleanedBuffers = true; - } - return false; - } - else - { - m_cleanedBuffers = false; - } + m_cleanedBuffers = false; - float outSum = 0.0; const float d = dryLevel(); const float w = wetLevel(); @@ -516,8 +495,6 @@ bool CompressorEffect::processAudioBuffer(sampleFrame* buf, const fpp_t frames) buf[f][0] = (1 - m_mixVal) * temp1 + m_mixVal * buf[f][0]; buf[f][1] = (1 - m_mixVal) * temp2 + m_mixVal * buf[f][1]; - outSum += buf[f][0] * buf[f][0] + buf[f][1] * buf[f][1]; - if (--m_lookWrite < 0) { m_lookWrite = m_lookBufLength - 1; } lInPeak = drySignal[0] > lInPeak ? drySignal[0] : lInPeak; @@ -526,15 +503,30 @@ bool CompressorEffect::processAudioBuffer(sampleFrame* buf, const fpp_t frames) rOutPeak = s[1] > rOutPeak ? s[1] : rOutPeak; } - checkGate(outSum / frames); m_compressorControls.m_outPeakL = lOutPeak; m_compressorControls.m_outPeakR = rOutPeak; m_compressorControls.m_inPeakL = lInPeak; m_compressorControls.m_inPeakR = rInPeak; - return isRunning(); + return ProcessStatus::ContinueIfNotQuiet; } +void CompressorEffect::processBypassedImpl() +{ + // Clear lookahead buffers and other values when needed + if (!m_cleanedBuffers) + { + m_yL[0] = m_yL[1] = COMP_NOISE_FLOOR; + m_gainResult[0] = m_gainResult[1] = 1; + m_displayPeak[0] = m_displayPeak[1] = COMP_NOISE_FLOOR; + m_displayGain[0] = m_displayGain[1] = COMP_NOISE_FLOOR; + std::fill(std::begin(m_scLookBuf[0]), std::end(m_scLookBuf[0]), COMP_NOISE_FLOOR); + std::fill(std::begin(m_scLookBuf[1]), std::end(m_scLookBuf[1]), COMP_NOISE_FLOOR); + std::fill(std::begin(m_inLookBuf[0]), std::end(m_inLookBuf[0]), 0); + std::fill(std::begin(m_inLookBuf[1]), std::end(m_inLookBuf[1]), 0); + m_cleanedBuffers = true; + } +} // Regular modulo doesn't handle negative numbers correctly. This does. inline int CompressorEffect::realmod(int k, int n) @@ -560,7 +552,7 @@ inline void CompressorEffect::calcTiltFilter(sample_t inputSample, sample_t &out void CompressorEffect::changeSampleRate() { - m_sampleRate = Engine::audioEngine()->processingSampleRate(); + m_sampleRate = Engine::audioEngine()->outputSampleRate(); m_coeffPrecalc = COMP_LOG / (m_sampleRate * 0.001f); @@ -590,6 +582,9 @@ void CompressorEffect::changeSampleRate() calcInGain(); calcTiltCoeffs(); calcMix(); + + calcAutoAttack(); + calcAutoRelease(); } diff --git a/plugins/Compressor/Compressor.h b/plugins/Compressor/Compressor.h index 3fc90b7523d..d4c9625c9d5 100755 --- a/plugins/Compressor/Compressor.h +++ b/plugins/Compressor/Compressor.h @@ -35,7 +35,7 @@ namespace lmms { -constexpr float COMP_LOG = -2.2; +constexpr float COMP_LOG = -2.2f; class CompressorEffect : public Effect { @@ -43,7 +43,9 @@ class CompressorEffect : public Effect public: CompressorEffect(Model* parent, const Descriptor::SubPluginFeatures::Key* key); ~CompressorEffect() override = default; - bool processAudioBuffer(sampleFrame* buf, const fpp_t frames) override; + + ProcessStatus processImpl(SampleFrame* buf, const fpp_t frames) override; + void processBypassedImpl() override; EffectControls* controls() override { @@ -105,7 +107,7 @@ private slots: float m_coeffPrecalc; - sampleFrame m_maxLookaheadVal; + SampleFrame m_maxLookaheadVal; int m_maxLookaheadTimer[2] = {1, 1}; diff --git a/plugins/Compressor/CompressorControlDialog.cpp b/plugins/Compressor/CompressorControlDialog.cpp index 2d04b690eed..d7350ba5966 100755 --- a/plugins/Compressor/CompressorControlDialog.cpp +++ b/plugins/Compressor/CompressorControlDialog.cpp @@ -45,26 +45,12 @@ namespace lmms::gui CompressorControlDialog::CompressorControlDialog(CompressorControls* controls) : EffectControlDialog(controls), - m_controls(controls), - m_inVolAreaColor(209, 216, 228, 17), - m_inVolColor(209, 216, 228, 100), - m_outVolAreaColor(209, 216, 228, 30), - m_outVolColor(209, 216, 228, 240), - m_gainReductionColor(180, 100, 100, 210), - m_kneeColor(39, 171, 95, 255), - m_kneeColor2(9, 171, 160, 255), - m_threshColor(39, 171, 95, 100), - m_textColor(209, 216, 228, 50), - m_graphColor(209, 216, 228, 50), - m_resetColor(200, 100, 15, 200) + m_controls(controls) { setAutoFillBackground(false); setAttribute(Qt::WA_OpaquePaintEvent, true); setAttribute(Qt::WA_NoSystemBackground, true); - QPalette pal; - pal.setBrush(backgroundRole(), PLUGIN_NAME::getIconPixmap("artwork")); - setPalette(pal); setMinimumSize(MIN_COMP_SCREEN_X, MIN_COMP_SCREEN_Y); resize(COMP_SCREEN_X, COMP_SCREEN_Y); @@ -615,7 +601,7 @@ void CompressorControlDialog::paintEvent(QPaintEvent *event) m_p.begin(this); m_p.setCompositionMode(QPainter::CompositionMode_Source); - m_p.fillRect(0, 0, m_windowSizeX, m_windowSizeY, QColor("transparent")); + m_p.fillRect(0, 0, m_windowSizeX, m_windowSizeY, m_backgroundColor); m_p.setCompositionMode(QPainter::CompositionMode_SourceOver); m_p.drawPixmap(0, 0, m_graphPixmap); @@ -683,7 +669,7 @@ void CompressorControlDialog::drawGraph() // Redraw graph m_p.setPen(QPen(m_graphColor, 1)); - for (int i = 1; i < m_dbRange / COMP_GRID_SPACING + 1; ++i) + for (int i = 0; i < m_dbRange / COMP_GRID_SPACING + 1; ++i) { m_p.drawLine(0, dbfsToYPoint(-COMP_GRID_SPACING * i), m_windowSizeX, dbfsToYPoint(-COMP_GRID_SPACING * i)); m_p.drawLine(dbfsToXPoint(-COMP_GRID_SPACING * i), 0, dbfsToXPoint(-COMP_GRID_SPACING * i), m_kneeWindowSizeY); @@ -694,6 +680,79 @@ void CompressorControlDialog::drawGraph() } +void CompressorControlDialog::mouseDoubleClickEvent(QMouseEvent* event) +{ + setGuiVisibility(!m_guiVisibility); +} + + +void CompressorControlDialog::setGuiVisibility(bool isVisible) +{ + if (!isVisible) + { + m_rmsKnob->setVisible(isVisible); + m_rmsEnabledLabel->setVisible(isVisible); + + m_lookaheadLengthKnob->setVisible(isVisible); + m_lookaheadEnabledLabel->setVisible(isVisible); + + m_blendKnob->setVisible(isVisible); + m_blendEnabledLabel->setVisible(isVisible); + + m_ratioKnob->setVisible(isVisible); + m_ratioEnabledLabel->setVisible(isVisible); + } + else + { + m_rmsKnob->setVisible(!m_controls->m_peakmodeModel.value()); + m_rmsEnabledLabel->setVisible(!m_controls->m_peakmodeModel.value()); + + m_blendKnob->setVisible(m_controls->m_stereoLinkModel.value() == 4); + m_blendEnabledLabel->setVisible(m_controls->m_stereoLinkModel.value() == 4); + + m_lookaheadLengthKnob->setVisible(m_controls->m_lookaheadModel.value()); + m_lookaheadEnabledLabel->setVisible(m_controls->m_lookaheadModel.value()); + + m_ratioKnob->setVisible(!m_controls->m_limiterModel.value()); + m_ratioEnabledLabel->setVisible(!m_controls->m_limiterModel.value()); + } + m_controlsBoxLabel->setVisible(isVisible); + m_thresholdKnob->setVisible(isVisible); + m_attackKnob->setVisible(isVisible); + m_releaseKnob->setVisible(isVisible); + m_kneeKnob->setVisible(isVisible); + m_rangeKnob->setVisible(isVisible); + m_holdKnob->setVisible(isVisible); + m_inBalanceKnob->setVisible(isVisible); + m_outBalanceKnob->setVisible(isVisible); + m_stereoBalanceKnob->setVisible(isVisible); + m_tiltKnob->setVisible(isVisible); + m_tiltFreqKnob->setVisible(isVisible); + m_mixKnob->setVisible(isVisible); + m_autoAttackKnob->setVisible(isVisible); + m_autoReleaseKnob->setVisible(isVisible); + m_outFader->setVisible(isVisible); + m_inFader->setVisible(isVisible); + rmsButton->setVisible(isVisible); + peakButton->setVisible(isVisible); + rmsPeakGroup->setVisible(isVisible); + leftRightButton->setVisible(isVisible); + midSideButton->setVisible(isVisible); + compressButton->setVisible(isVisible); + limitButton->setVisible(isVisible); + unlinkedButton->setVisible(isVisible); + maximumButton->setVisible(isVisible); + averageButton->setVisible(isVisible); + minimumButton->setVisible(isVisible); + blendButton->setVisible(isVisible); + autoMakeupButton->setVisible(isVisible); + auditionButton->setVisible(isVisible); + feedbackButton->setVisible(isVisible); + lookaheadButton->setVisible(isVisible); + m_guiVisibility = isVisible; +} + + void CompressorControlDialog::resetCompressorView() { m_windowSizeX = size().width(); diff --git a/plugins/Compressor/CompressorControlDialog.h b/plugins/Compressor/CompressorControlDialog.h index 1324d7e2653..108c421a06d 100755 --- a/plugins/Compressor/CompressorControlDialog.h +++ b/plugins/Compressor/CompressorControlDialog.h @@ -36,7 +36,7 @@ class QLabel; namespace lmms { -constexpr float COMP_NOISE_FLOOR = 0.000001;// -120 dbFs +constexpr float COMP_NOISE_FLOOR = 0.000001f;// -120 dbFs class CompressorControls; @@ -86,6 +86,7 @@ class CompressorControlDialog : public EffectControlDialog Q_PROPERTY(QColor textColor MEMBER m_textColor) Q_PROPERTY(QColor graphColor MEMBER m_graphColor) Q_PROPERTY(QColor resetColor MEMBER m_resetColor) + Q_PROPERTY(QColor backgroundColor MEMBER m_backgroundColor) protected: void resizeEvent(QResizeEvent *event) override; @@ -108,6 +109,8 @@ private slots: void drawKneePixmap2(); void drawMiscPixmap(); void drawGraph(); + void mouseDoubleClickEvent(QMouseEvent* event) override; + void setGuiVisibility(bool isVisible); QPainter m_p; @@ -148,6 +151,7 @@ private slots: QColor m_textColor = QColor(209, 216, 228, 50); QColor m_graphColor = QColor(209, 216, 228, 50); QColor m_resetColor = QColor(200, 100, 15, 200); + QColor m_backgroundColor = QColor(7, 8, 9, 255); float m_peakAvg; float m_gainAvg; @@ -214,6 +218,8 @@ private slots: PixmapButton * feedbackButton; PixmapButton * lookaheadButton; + bool m_guiVisibility = true; + QElapsedTimer m_timeElapsed; int m_timeSinceLastUpdate = 0; diff --git a/plugins/Compressor/artwork.png b/plugins/Compressor/artwork.png deleted file mode 100755 index 8f94e3d494b..00000000000 Binary files a/plugins/Compressor/artwork.png and /dev/null differ diff --git a/plugins/Compressor/limiter_sel.png b/plugins/Compressor/limiter_sel.png index 2d0e054af8c..cc3d4debea6 100755 Binary files a/plugins/Compressor/limiter_sel.png and b/plugins/Compressor/limiter_sel.png differ diff --git a/plugins/Compressor/limiter_unsel.png b/plugins/Compressor/limiter_unsel.png index 415641c5f35..068eec50dc6 100755 Binary files a/plugins/Compressor/limiter_unsel.png and b/plugins/Compressor/limiter_unsel.png differ diff --git a/plugins/CrossoverEQ/CrossoverEQ.cpp b/plugins/CrossoverEQ/CrossoverEQ.cpp index c4334677cb4..e221dc5252f 100644 --- a/plugins/CrossoverEQ/CrossoverEQ.cpp +++ b/plugins/CrossoverEQ/CrossoverEQ.cpp @@ -55,7 +55,7 @@ Plugin::Descriptor PLUGIN_EXPORT crossovereq_plugin_descriptor = CrossoverEQEffect::CrossoverEQEffect( Model* parent, const Descriptor::SubPluginFeatures::Key* key ) : Effect( &crossovereq_plugin_descriptor, parent, key ), m_controls( this ), - m_sampleRate( Engine::audioEngine()->processingSampleRate() ), + m_sampleRate( Engine::audioEngine()->outputSampleRate() ), m_lp1( m_sampleRate ), m_lp2( m_sampleRate ), m_lp3( m_sampleRate ), @@ -64,21 +64,21 @@ CrossoverEQEffect::CrossoverEQEffect( Model* parent, const Descriptor::SubPlugin m_hp4( m_sampleRate ), m_needsUpdate( true ) { - m_tmp1 = MM_ALLOC( Engine::audioEngine()->framesPerPeriod() ); - m_tmp2 = MM_ALLOC( Engine::audioEngine()->framesPerPeriod() ); - m_work = MM_ALLOC( Engine::audioEngine()->framesPerPeriod() ); + m_tmp2 = new SampleFrame[Engine::audioEngine()->framesPerPeriod()]; + m_tmp1 = new SampleFrame[Engine::audioEngine()->framesPerPeriod()]; + m_work = new SampleFrame[Engine::audioEngine()->framesPerPeriod()]; } CrossoverEQEffect::~CrossoverEQEffect() { - MM_FREE( m_tmp1 ); - MM_FREE( m_tmp2 ); - MM_FREE( m_work ); + delete[] m_tmp1; + delete[] m_tmp2; + delete[] m_work; } void CrossoverEQEffect::sampleRateChanged() { - m_sampleRate = Engine::audioEngine()->processingSampleRate(); + m_sampleRate = Engine::audioEngine()->outputSampleRate(); m_lp1.setSampleRate( m_sampleRate ); m_lp2.setSampleRate( m_sampleRate ); m_lp3.setSampleRate( m_sampleRate ); @@ -89,13 +89,8 @@ void CrossoverEQEffect::sampleRateChanged() } -bool CrossoverEQEffect::processAudioBuffer( sampleFrame* buf, const fpp_t frames ) +Effect::ProcessStatus CrossoverEQEffect::processImpl(SampleFrame* buf, const fpp_t frames) { - if( !isEnabled() || !isRunning () ) - { - return( false ); - } - // filters update if( m_needsUpdate || m_controls.m_xover12.isValueChanged() ) { @@ -139,10 +134,10 @@ bool CrossoverEQEffect::processAudioBuffer( sampleFrame* buf, const fpp_t frames m_needsUpdate = false; - memset( m_work, 0, sizeof( sampleFrame ) * frames ); + zeroSampleFrames(m_work, frames); // run temp bands - for( int f = 0; f < frames; ++f ) + for (auto f = std::size_t{0}; f < frames; ++f) { m_tmp1[f][0] = m_lp2.update( buf[f][0], 0 ); m_tmp1[f][1] = m_lp2.update( buf[f][1], 1 ); @@ -153,7 +148,7 @@ bool CrossoverEQEffect::processAudioBuffer( sampleFrame* buf, const fpp_t frames // run band 1 if( mute1 ) { - for( int f = 0; f < frames; ++f ) + for (auto f = std::size_t{0}; f < frames; ++f) { m_work[f][0] += m_lp1.update( m_tmp1[f][0], 0 ) * m_gain1; m_work[f][1] += m_lp1.update( m_tmp1[f][1], 1 ) * m_gain1; @@ -163,7 +158,7 @@ bool CrossoverEQEffect::processAudioBuffer( sampleFrame* buf, const fpp_t frames // run band 2 if( mute2 ) { - for( int f = 0; f < frames; ++f ) + for (auto f = std::size_t{0}; f < frames; ++f) { m_work[f][0] += m_hp2.update( m_tmp1[f][0], 0 ) * m_gain2; m_work[f][1] += m_hp2.update( m_tmp1[f][1], 1 ) * m_gain2; @@ -173,7 +168,7 @@ bool CrossoverEQEffect::processAudioBuffer( sampleFrame* buf, const fpp_t frames // run band 3 if( mute3 ) { - for( int f = 0; f < frames; ++f ) + for (auto f = std::size_t{0}; f < frames; ++f) { m_work[f][0] += m_lp3.update( m_tmp2[f][0], 0 ) * m_gain3; m_work[f][1] += m_lp3.update( m_tmp2[f][1], 1 ) * m_gain3; @@ -183,7 +178,7 @@ bool CrossoverEQEffect::processAudioBuffer( sampleFrame* buf, const fpp_t frames // run band 4 if( mute4 ) { - for( int f = 0; f < frames; ++f ) + for (auto f = std::size_t{0}; f < frames; ++f) { m_work[f][0] += m_hp4.update( m_tmp2[f][0], 0 ) * m_gain4; m_work[f][1] += m_hp4.update( m_tmp2[f][1], 1 ) * m_gain4; @@ -192,17 +187,14 @@ bool CrossoverEQEffect::processAudioBuffer( sampleFrame* buf, const fpp_t frames const float d = dryLevel(); const float w = wetLevel(); - double outSum = 0.0; - for( int f = 0; f < frames; ++f ) + + for (auto f = std::size_t{0}; f < frames; ++f) { buf[f][0] = d * buf[f][0] + w * m_work[f][0]; buf[f][1] = d * buf[f][1] + w * m_work[f][1]; - outSum += buf[f][0] * buf[f][0] + buf[f][1] * buf[f][1]; } - - checkGate( outSum / frames ); - - return isRunning(); + + return ProcessStatus::ContinueIfNotQuiet; } void CrossoverEQEffect::clearFilterHistories() diff --git a/plugins/CrossoverEQ/CrossoverEQ.h b/plugins/CrossoverEQ/CrossoverEQ.h index fe9b4541bb0..276e2c13198 100644 --- a/plugins/CrossoverEQ/CrossoverEQ.h +++ b/plugins/CrossoverEQ/CrossoverEQ.h @@ -40,7 +40,8 @@ class CrossoverEQEffect : public Effect public: CrossoverEQEffect( Model* parent, const Descriptor::SubPluginFeatures::Key* key ); ~CrossoverEQEffect() override; - bool processAudioBuffer( sampleFrame* buf, const fpp_t frames ) override; + + ProcessStatus processImpl(SampleFrame* buf, const fpp_t frames) override; EffectControls* controls() override { @@ -69,9 +70,9 @@ class CrossoverEQEffect : public Effect StereoLinkwitzRiley m_hp3; StereoLinkwitzRiley m_hp4; - sampleFrame * m_tmp1; - sampleFrame * m_tmp2; - sampleFrame * m_work; + SampleFrame* m_tmp1; + SampleFrame* m_tmp2; + SampleFrame* m_work; bool m_needsUpdate; diff --git a/plugins/CrossoverEQ/CrossoverEQControlDialog.cpp b/plugins/CrossoverEQ/CrossoverEQControlDialog.cpp index 12b560b2370..a4f44f5d305 100644 --- a/plugins/CrossoverEQ/CrossoverEQControlDialog.cpp +++ b/plugins/CrossoverEQ/CrossoverEQControlDialog.cpp @@ -32,6 +32,9 @@ #include "Knob.h" #include "Fader.h" +#include + + namespace lmms::gui { @@ -64,30 +67,32 @@ CrossoverEQControlDialog::CrossoverEQControlDialog( CrossoverEQControls * contro xover34->setLabel( "3/4" ); xover34->setHintText( tr( "Band 3/4 crossover:" ), " Hz" ); - m_fader_bg = QPixmap( PLUGIN_NAME::getIconPixmap( "fader_bg" ) ); - m_fader_empty = QPixmap( PLUGIN_NAME::getIconPixmap( "fader_empty" ) ); - m_fader_knob = QPixmap( PLUGIN_NAME::getIconPixmap( "fader_knob2" ) ); + QPixmap const fader_knob(PLUGIN_NAME::getIconPixmap("fader_knob2")); // faders - auto gain1 = new Fader(&controls->m_gain1, tr("Band 1 gain"), this, &m_fader_bg, &m_fader_empty, &m_fader_knob); + auto gain1 = new Fader(&controls->m_gain1, tr("Band 1 gain"), this, fader_knob); gain1->move( 7, 56 ); gain1->setDisplayConversion( false ); gain1->setHintText( tr( "Band 1 gain:" ), " dBFS" ); + gain1->setRenderUnityLine(false); - auto gain2 = new Fader(&controls->m_gain2, tr("Band 2 gain"), this, &m_fader_bg, &m_fader_empty, &m_fader_knob); + auto gain2 = new Fader(&controls->m_gain2, tr("Band 2 gain"), this, fader_knob); gain2->move( 47, 56 ); gain2->setDisplayConversion( false ); gain2->setHintText( tr( "Band 2 gain:" ), " dBFS" ); + gain2->setRenderUnityLine(false); - auto gain3 = new Fader(&controls->m_gain3, tr("Band 3 gain"), this, &m_fader_bg, &m_fader_empty, &m_fader_knob); + auto gain3 = new Fader(&controls->m_gain3, tr("Band 3 gain"), this, fader_knob); gain3->move( 87, 56 ); gain3->setDisplayConversion( false ); gain3->setHintText( tr( "Band 3 gain:" ), " dBFS" ); + gain3->setRenderUnityLine(false); - auto gain4 = new Fader(&controls->m_gain4, tr("Band 4 gain"), this, &m_fader_bg, &m_fader_empty, &m_fader_knob); + auto gain4 = new Fader(&controls->m_gain4, tr("Band 4 gain"), this, fader_knob); gain4->move( 127, 56 ); gain4->setDisplayConversion( false ); gain4->setHintText( tr( "Band 4 gain:" ), " dBFS" ); + gain4->setRenderUnityLine(false); // leds auto mute1 = new LedCheckBox("", this, tr("Band 1 mute"), LedCheckBox::LedColor::Green); diff --git a/plugins/CrossoverEQ/CrossoverEQControlDialog.h b/plugins/CrossoverEQ/CrossoverEQControlDialog.h index 9ddb5d9bfb2..0f25600f9f0 100644 --- a/plugins/CrossoverEQ/CrossoverEQControlDialog.h +++ b/plugins/CrossoverEQ/CrossoverEQControlDialog.h @@ -27,7 +27,6 @@ #ifndef CROSSOVEREQ_CONTROL_DIALOG_H #define CROSSOVEREQ_CONTROL_DIALOG_H -#include #include "EffectControlDialog.h" namespace lmms @@ -46,11 +45,6 @@ class CrossoverEQControlDialog : public EffectControlDialog public: CrossoverEQControlDialog( CrossoverEQControls * controls ); ~CrossoverEQControlDialog() override = default; - -private: - QPixmap m_fader_bg; - QPixmap m_fader_empty; - QPixmap m_fader_knob; }; diff --git a/plugins/CrossoverEQ/fader_bg.png b/plugins/CrossoverEQ/fader_bg.png deleted file mode 100644 index ca4eedafdc9..00000000000 Binary files a/plugins/CrossoverEQ/fader_bg.png and /dev/null differ diff --git a/plugins/CrossoverEQ/fader_empty.png b/plugins/CrossoverEQ/fader_empty.png deleted file mode 100644 index 797a0d3bc2d..00000000000 Binary files a/plugins/CrossoverEQ/fader_empty.png and /dev/null differ diff --git a/plugins/Delay/DelayControls.cpp b/plugins/Delay/DelayControls.cpp index b31488f721d..c1ad7315337 100644 --- a/plugins/Delay/DelayControls.cpp +++ b/plugins/Delay/DelayControls.cpp @@ -34,11 +34,11 @@ namespace lmms DelayControls::DelayControls( DelayEffect* effect ): EffectControls( effect ), m_effect ( effect ), - m_delayTimeModel( 0.5, 0.01, 5.0, 0.0001, 5000.0, this, tr( "Delay samples" )) , - m_feedbackModel(0.0f,0.0f,1.0f,0.01f,this,tr( "Feedback" ) ), - m_lfoTimeModel(2.0, 0.01, 5.0, 0.0001, 20000.0, this, tr( "LFO frequency" ) ), - m_lfoAmountModel(0.0, 0.0, 0.5, 0.0001, 2000.0, this, tr ( "LFO amount" ) ), - m_outGainModel( 0.0, -60.0, 20.0, 0.01, this, tr( "Output gain" ) ) + m_delayTimeModel(0.5f, 0.01f, 5.f, 0.0001f, 5000.f, this, tr("Delay samples")) , + m_feedbackModel(0.0f, 0.0f, 1.0f, 0.01f, this, tr("Feedback")), + m_lfoTimeModel(2.f, 0.01f, 5.f, 0.0001f, 20000.f, this, tr("LFO frequency")), + m_lfoAmountModel(0.f, 0.f, 0.5f, 0.0001f, 2000.f, this, tr("LFO amount")), + m_outGainModel(0.f, -60.f, 20.f, 0.01f, this, tr("Output gain")) { connect( Engine::audioEngine(), SIGNAL( sampleRateChanged() ), this, SLOT( changeSampleRate() ) ); m_outPeakL = 0.0; @@ -77,4 +77,4 @@ void DelayControls::changeSampleRate() } -} // namespace lmms \ No newline at end of file +} // namespace lmms diff --git a/plugins/Delay/DelayEffect.cpp b/plugins/Delay/DelayEffect.cpp index 05204f355ee..baf01591640 100644 --- a/plugins/Delay/DelayEffect.cpp +++ b/plugins/Delay/DelayEffect.cpp @@ -58,8 +58,8 @@ DelayEffect::DelayEffect( Model* parent, const Plugin::Descriptor::SubPluginFeat m_delayControls( this ) { m_delay = 0; - m_delay = new StereoDelay( 20, Engine::audioEngine()->processingSampleRate() ); - m_lfo = new Lfo( Engine::audioEngine()->processingSampleRate() ); + m_delay = new StereoDelay( 20, Engine::audioEngine()->outputSampleRate() ); + m_lfo = new Lfo( Engine::audioEngine()->outputSampleRate() ); m_outGain = 1.0; } @@ -81,19 +81,13 @@ DelayEffect::~DelayEffect() -bool DelayEffect::processAudioBuffer( sampleFrame* buf, const fpp_t frames ) +Effect::ProcessStatus DelayEffect::processImpl(SampleFrame* buf, const fpp_t frames) { - if( !isEnabled() || !isRunning () ) - { - return( false ); - } - double outSum = 0.0; - const float sr = Engine::audioEngine()->processingSampleRate(); + const float sr = Engine::audioEngine()->outputSampleRate(); const float d = dryLevel(); const float w = wetLevel(); - auto dryS = std::array{}; - float lPeak = 0.0; - float rPeak = 0.0; + + SampleFrame peak; float length = m_delayControls.m_delayTimeModel.value(); float amplitude = m_delayControls.m_lfoAmountModel.value() * sr; float lfoTime = 1.0 / m_delayControls.m_lfoTimeModel.value(); @@ -115,45 +109,44 @@ bool DelayEffect::processAudioBuffer( sampleFrame* buf, const fpp_t frames ) { m_outGain = dbfsToAmp( m_delayControls.m_outGainModel.value() ); } - int sampleLength; - for( fpp_t f = 0; f < frames; ++f ) + + for (fpp_t f = 0; f < frames; ++f) { - dryS[0] = buf[f][0]; - dryS[1] = buf[f][1]; + auto& currentFrame = buf[f]; + const auto dryS = currentFrame; + // Prepare delay for current sample m_delay->setFeedback( *feedbackPtr ); m_lfo->setFrequency( *lfoTimePtr ); - sampleLength = *lengthPtr * Engine::audioEngine()->processingSampleRate(); - m_currentLength = sampleLength; + m_currentLength = static_cast(*lengthPtr * Engine::audioEngine()->outputSampleRate()); m_delay->setLength( m_currentLength + ( *amplitudePtr * ( float )m_lfo->tick() ) ); - m_delay->tick( buf[f] ); - buf[f][0] *= m_outGain; - buf[f][1] *= m_outGain; + // Process the wet signal + m_delay->tick( currentFrame ); + currentFrame *= m_outGain; - lPeak = buf[f][0] > lPeak ? buf[f][0] : lPeak; - rPeak = buf[f][1] > rPeak ? buf[f][1] : rPeak; + // Calculate peak of wet signal + peak = peak.absMax(currentFrame); - buf[f][0] = ( d * dryS[0] ) + ( w * buf[f][0] ); - buf[f][1] = ( d * dryS[1] ) + ( w * buf[f][1] ); - outSum += buf[f][0]*buf[f][0] + buf[f][1]*buf[f][1]; + // Dry/wet mix + currentFrame = dryS * d + currentFrame * w; lengthPtr += lengthInc; amplitudePtr += amplitudeInc; lfoTimePtr += lfoTimeInc; feedbackPtr += feedbackInc; } - checkGate( outSum / frames ); - m_delayControls.m_outPeakL = lPeak; - m_delayControls.m_outPeakR = rPeak; - return isRunning(); + m_delayControls.m_outPeakL = peak.left(); + m_delayControls.m_outPeakR = peak.right(); + + return ProcessStatus::ContinueIfNotQuiet; } void DelayEffect::changeSampleRate() { - m_lfo->setSampleRate( Engine::audioEngine()->processingSampleRate() ); - m_delay->setSampleRate( Engine::audioEngine()->processingSampleRate() ); + m_lfo->setSampleRate( Engine::audioEngine()->outputSampleRate() ); + m_delay->setSampleRate( Engine::audioEngine()->outputSampleRate() ); } diff --git a/plugins/Delay/DelayEffect.h b/plugins/Delay/DelayEffect.h index b6c090ff0da..fc6a21fd610 100644 --- a/plugins/Delay/DelayEffect.h +++ b/plugins/Delay/DelayEffect.h @@ -39,7 +39,9 @@ class DelayEffect : public Effect public: DelayEffect(Model* parent , const Descriptor::SubPluginFeatures::Key* key ); ~DelayEffect() override; - bool processAudioBuffer( sampleFrame* buf, const fpp_t frames ) override; + + ProcessStatus processImpl(SampleFrame* buf, const fpp_t frames) override; + EffectControls* controls() override { return &m_delayControls; diff --git a/plugins/Delay/StereoDelay.cpp b/plugins/Delay/StereoDelay.cpp index e4b8b5641d0..3187b3f2a6a 100644 --- a/plugins/Delay/StereoDelay.cpp +++ b/plugins/Delay/StereoDelay.cpp @@ -23,7 +23,9 @@ */ #include "StereoDelay.h" + #include "lmms_basics.h" +#include "SampleFrame.h" namespace lmms { @@ -32,9 +34,9 @@ namespace lmms StereoDelay::StereoDelay( int maxTime, int sampleRate ) { m_buffer = 0; - m_maxTime = maxTime; + m_maxTime = static_cast(maxTime); m_maxLength = maxTime * sampleRate; - m_length = m_maxLength; + m_length = static_cast(m_maxLength); m_writeIndex = 0; m_feedback = 0.0f; @@ -55,10 +57,10 @@ StereoDelay::~StereoDelay() -void StereoDelay::tick( sampleFrame& frame ) +void StereoDelay::tick( SampleFrame& frame ) { m_writeIndex = ( m_writeIndex + 1 ) % ( int )m_maxLength; - int readIndex = m_writeIndex - m_length; + int readIndex = m_writeIndex - static_cast(m_length); if (readIndex < 0 ) { readIndex += m_maxLength; } float lOut = m_buffer[ readIndex ][ 0 ]; float rOut = m_buffer[ readIndex ] [1 ]; @@ -81,7 +83,7 @@ void StereoDelay::setSampleRate( int sampleRate ) } int bufferSize = ( int )( sampleRate * m_maxTime ); - m_buffer = new sampleFrame[bufferSize]; + m_buffer = new SampleFrame[bufferSize]; for( int i = 0 ; i < bufferSize ; i++) { m_buffer[i][0] = 0.0; diff --git a/plugins/Delay/StereoDelay.h b/plugins/Delay/StereoDelay.h index 0ea0efeed06..ad0e020b5aa 100644 --- a/plugins/Delay/StereoDelay.h +++ b/plugins/Delay/StereoDelay.h @@ -31,6 +31,8 @@ namespace lmms { +class SampleFrame; + class StereoDelay { public: @@ -49,11 +51,11 @@ class StereoDelay m_feedback = feedback; } - void tick( sampleFrame& frame ); + void tick( SampleFrame& frame ); void setSampleRate( int sampleRate ); private: - sampleFrame* m_buffer; + SampleFrame* m_buffer; int m_maxLength; float m_length; int m_writeIndex; diff --git a/plugins/Dispersion/Dispersion.cpp b/plugins/Dispersion/Dispersion.cpp index fb28e1f47a3..4d8dd40b016 100644 --- a/plugins/Dispersion/Dispersion.cpp +++ b/plugins/Dispersion/Dispersion.cpp @@ -52,20 +52,14 @@ Plugin::Descriptor PLUGIN_EXPORT dispersion_plugin_descriptor = DispersionEffect::DispersionEffect(Model* parent, const Descriptor::SubPluginFeatures::Key* key) : Effect(&dispersion_plugin_descriptor, parent, key), m_dispersionControls(this), - m_sampleRate(Engine::audioEngine()->processingSampleRate()), + m_sampleRate(Engine::audioEngine()->outputSampleRate()), m_amountVal(0) { } -bool DispersionEffect::processAudioBuffer(sampleFrame* buf, const fpp_t frames) +Effect::ProcessStatus DispersionEffect::processImpl(SampleFrame* buf, const fpp_t frames) { - if (!isEnabled() || !isRunning()) - { - return false; - } - - double outSum = 0.0; const float d = dryLevel(); const float w = wetLevel(); @@ -122,11 +116,9 @@ bool DispersionEffect::processAudioBuffer(sampleFrame* buf, const fpp_t frames) buf[f][0] = d * buf[f][0] + w * s[0]; buf[f][1] = d * buf[f][1] + w * s[1]; - outSum += buf[f][0] * buf[f][0] + buf[f][1] * buf[f][1]; } - checkGate(outSum / frames); - return isRunning(); + return ProcessStatus::ContinueIfNotQuiet; } diff --git a/plugins/Dispersion/Dispersion.h b/plugins/Dispersion/Dispersion.h index 9e2014baf8c..27365950d87 100644 --- a/plugins/Dispersion/Dispersion.h +++ b/plugins/Dispersion/Dispersion.h @@ -41,7 +41,8 @@ class DispersionEffect : public Effect public: DispersionEffect(Model* parent, const Descriptor::SubPluginFeatures::Key* key); ~DispersionEffect() override = default; - bool processAudioBuffer(sampleFrame* buf, const fpp_t frames) override; + + ProcessStatus processImpl(SampleFrame* buf, const fpp_t frames) override; EffectControls* controls() override { diff --git a/plugins/Dispersion/DispersionControls.cpp b/plugins/Dispersion/DispersionControls.cpp index 771ffb89dc9..f97fc0e37f5 100644 --- a/plugins/Dispersion/DispersionControls.cpp +++ b/plugins/Dispersion/DispersionControls.cpp @@ -35,9 +35,9 @@ DispersionControls::DispersionControls(DispersionEffect* effect) : EffectControls(effect), m_effect(effect), m_amountModel(0, 0, MAX_DISPERSION_FILTERS, this, tr("Amount")), - m_freqModel(200, 20, 20000, 0.001, this, tr("Frequency")), - m_resoModel(0.707, 0.01, 8, 0.0001, this, tr("Resonance")), - m_feedbackModel(0.f, -1.f, 1.f, 0.0001, this, tr("Feedback")), + m_freqModel(200, 20, 20000, 0.001f, this, tr("Frequency")), + m_resoModel(0.707f, 0.01f, 8, 0.0001f, this, tr("Resonance")), + m_feedbackModel(0.f, -1.f, 1.f, 0.0001f, this, tr("Feedback")), m_dcModel(false, this, tr("DC Offset Removal")) { m_freqModel.setScaleLogarithmic(true); diff --git a/plugins/DualFilter/DualFilter.cpp b/plugins/DualFilter/DualFilter.cpp index 4e66db988a1..397180b8e5a 100644 --- a/plugins/DualFilter/DualFilter.cpp +++ b/plugins/DualFilter/DualFilter.cpp @@ -57,8 +57,8 @@ DualFilterEffect::DualFilterEffect( Model* parent, const Descriptor::SubPluginFe Effect( &dualfilter_plugin_descriptor, parent, key ), m_dfControls( this ) { - m_filter1 = new BasicFilters<2>( Engine::audioEngine()->processingSampleRate() ); - m_filter2 = new BasicFilters<2>( Engine::audioEngine()->processingSampleRate() ); + m_filter1 = new BasicFilters<2>( Engine::audioEngine()->outputSampleRate() ); + m_filter2 = new BasicFilters<2>( Engine::audioEngine()->outputSampleRate() ); // ensure filters get updated m_filter1changed = true; @@ -77,23 +77,17 @@ DualFilterEffect::~DualFilterEffect() -bool DualFilterEffect::processAudioBuffer( sampleFrame* buf, const fpp_t frames ) +Effect::ProcessStatus DualFilterEffect::processImpl(SampleFrame* buf, const fpp_t frames) { - if( !isEnabled() || !isRunning () ) - { - return( false ); - } - - double outSum = 0.0; const float d = dryLevel(); const float w = wetLevel(); - if( m_dfControls.m_filter1Model.isValueChanged() || m_filter1changed ) + if (m_dfControls.m_filter1Model.isValueChanged() || m_filter1changed) { m_filter1->setFilterType( static_cast::FilterType>(m_dfControls.m_filter1Model.value()) ); m_filter1changed = true; } - if( m_dfControls.m_filter2Model.isValueChanged() || m_filter2changed ) + if (m_dfControls.m_filter2Model.isValueChanged() || m_filter2changed) { m_filter2->setFilterType( static_cast::FilterType>(m_dfControls.m_filter2Model.value()) ); m_filter2changed = true; @@ -201,7 +195,6 @@ bool DualFilterEffect::processAudioBuffer( sampleFrame* buf, const fpp_t frames // do another mix with dry signal buf[f][0] = d * buf[f][0] + w * s[0]; buf[f][1] = d * buf[f][1] + w * s[1]; - outSum += buf[f][0] * buf[f][0] + buf[f][1] * buf[f][1]; //increment pointers cut1Ptr += cut1Inc; @@ -213,11 +206,14 @@ bool DualFilterEffect::processAudioBuffer( sampleFrame* buf, const fpp_t frames mixPtr += mixInc; } - checkGate( outSum / frames ); - - return isRunning(); + return ProcessStatus::ContinueIfNotQuiet; } +void DualFilterEffect::onEnabledChanged() +{ + m_filter1->clearHistory(); + m_filter2->clearHistory(); +} diff --git a/plugins/DualFilter/DualFilter.h b/plugins/DualFilter/DualFilter.h index c179edbcca8..dc573a8d64c 100644 --- a/plugins/DualFilter/DualFilter.h +++ b/plugins/DualFilter/DualFilter.h @@ -40,13 +40,16 @@ class DualFilterEffect : public Effect public: DualFilterEffect( Model* parent, const Descriptor::SubPluginFeatures::Key* key ); ~DualFilterEffect() override; - bool processAudioBuffer( sampleFrame* buf, const fpp_t frames ) override; + + ProcessStatus processImpl(SampleFrame* buf, const fpp_t frames) override; EffectControls* controls() override { return &m_dfControls; } +protected: + void onEnabledChanged() override; private: DualFilterControls m_dfControls; diff --git a/plugins/DualFilter/DualFilterControlDialog.cpp b/plugins/DualFilter/DualFilterControlDialog.cpp index d316e337213..a674a4a42c2 100644 --- a/plugins/DualFilter/DualFilterControlDialog.cpp +++ b/plugins/DualFilter/DualFilterControlDialog.cpp @@ -29,7 +29,6 @@ #include "Knob.h" #include "LedCheckBox.h" #include "ComboBox.h" -#include "gui_templates.h" namespace lmms::gui { @@ -76,12 +75,10 @@ DualFilterControlDialog::DualFilterControlDialog( DualFilterControls* controls ) auto m_filter1ComboBox = new ComboBox(this); m_filter1ComboBox->setGeometry( 19, 70, 137, ComboBox::DEFAULT_HEIGHT ); - m_filter1ComboBox->setFont( pointSize<8>( m_filter1ComboBox->font() ) ); m_filter1ComboBox->setModel( &controls->m_filter1Model ); auto m_filter2ComboBox = new ComboBox(this); m_filter2ComboBox->setGeometry( 217, 70, 137, ComboBox::DEFAULT_HEIGHT ); - m_filter2ComboBox->setFont( pointSize<8>( m_filter2ComboBox->font() ) ); m_filter2ComboBox->setModel( &controls->m_filter2Model ); } diff --git a/plugins/DualFilter/DualFilterControls.cpp b/plugins/DualFilter/DualFilterControls.cpp index e862e6ae149..75478c9d7a9 100644 --- a/plugins/DualFilter/DualFilterControls.cpp +++ b/plugins/DualFilter/DualFilterControls.cpp @@ -43,7 +43,7 @@ DualFilterControls::DualFilterControls( DualFilterEffect* effect ) : m_enabled1Model( true, this, tr( "Filter 1 enabled" ) ), m_filter1Model( this, tr( "Filter 1 type" ) ), m_cut1Model( 7000.0f, 1.0f, 20000.0f, 1.0f, this, tr( "Cutoff frequency 1" ) ), - m_res1Model( 0.5, BasicFilters<>::minQ(), 10.0, 0.01, this, tr( "Q/Resonance 1" ) ), + m_res1Model(0.5f, BasicFilters<>::minQ(), 10.f, 0.01f, this, tr("Q/Resonance 1")), m_gain1Model( 100.0f, 0.0f, 200.0f, 0.1f, this, tr( "Gain 1" ) ), m_mixModel( 0.0f, -1.0f, 1.0f, 0.01f, this, tr( "Mix" ) ), @@ -51,7 +51,7 @@ DualFilterControls::DualFilterControls( DualFilterEffect* effect ) : m_enabled2Model( true, this, tr( "Filter 2 enabled" ) ), m_filter2Model( this, tr( "Filter 2 type" ) ), m_cut2Model( 7000.0f, 1.0f, 20000.0f, 1.0f, this, tr( "Cutoff frequency 2" ) ), - m_res2Model( 0.5, BasicFilters<>::minQ(), 10.0, 0.01, this, tr( "Q/Resonance 2" ) ), + m_res2Model(0.5f, BasicFilters<>::minQ(), 10.f, 0.01f, this, tr("Q/Resonance 2")), m_gain2Model( 100.0f, 0.0f, 200.0f, 0.1f, this, tr( "Gain 2" ) ) { m_filter1Model.addItem( tr( "Low-pass" ), std::make_unique( "filter_lp" ) ); @@ -111,8 +111,8 @@ void DualFilterControls::updateFilters() delete m_effect->m_filter1; delete m_effect->m_filter2; - m_effect->m_filter1 = new BasicFilters<2>( Engine::audioEngine()->processingSampleRate() ); - m_effect->m_filter2 = new BasicFilters<2>( Engine::audioEngine()->processingSampleRate() ); + m_effect->m_filter1 = new BasicFilters<2>( Engine::audioEngine()->outputSampleRate() ); + m_effect->m_filter2 = new BasicFilters<2>( Engine::audioEngine()->outputSampleRate() ); // flag filters as needing recalculation diff --git a/plugins/DynamicsProcessor/DynamicsProcessor.cpp b/plugins/DynamicsProcessor/DynamicsProcessor.cpp index 6bdf41eee4e..752e63e2357 100644 --- a/plugins/DynamicsProcessor/DynamicsProcessor.cpp +++ b/plugins/DynamicsProcessor/DynamicsProcessor.cpp @@ -56,7 +56,7 @@ Plugin::Descriptor PLUGIN_EXPORT dynamicsprocessor_plugin_descriptor = } const float DYN_NOISE_FLOOR = 0.00001f; // -100dBFS noise floor -const double DNF_LOG = 5.0; +const double DNF_LOG = -1.0; DynProcEffect::DynProcEffect( Model * _parent, const Descriptor::SubPluginFeatures::Key * _key ) : @@ -64,8 +64,8 @@ DynProcEffect::DynProcEffect( Model * _parent, m_dpControls( this ) { m_currentPeak[0] = m_currentPeak[1] = DYN_NOISE_FLOOR; - m_rms[0] = new RmsHelper( 64 * Engine::audioEngine()->processingSampleRate() / 44100 ); - m_rms[1] = new RmsHelper( 64 * Engine::audioEngine()->processingSampleRate() / 44100 ); + m_rms[0] = new RmsHelper( 64 * Engine::audioEngine()->outputSampleRate() / 44100 ); + m_rms[1] = new RmsHelper( 64 * Engine::audioEngine()->outputSampleRate() / 44100 ); calcAttack(); calcRelease(); } @@ -82,33 +82,24 @@ DynProcEffect::~DynProcEffect() inline void DynProcEffect::calcAttack() { - m_attCoeff = std::pow(10.f, ( DNF_LOG / ( m_dpControls.m_attackModel.value() * 0.001 ) ) / Engine::audioEngine()->processingSampleRate() ); + m_attCoeff = std::exp((DNF_LOG / (m_dpControls.m_attackModel.value() * 0.001)) / Engine::audioEngine()->outputSampleRate()); } inline void DynProcEffect::calcRelease() { - m_relCoeff = std::pow(10.f, ( -DNF_LOG / ( m_dpControls.m_releaseModel.value() * 0.001 ) ) / Engine::audioEngine()->processingSampleRate() ); + m_relCoeff = std::exp((DNF_LOG / (m_dpControls.m_releaseModel.value() * 0.001)) / Engine::audioEngine()->outputSampleRate()); } -bool DynProcEffect::processAudioBuffer( sampleFrame * _buf, - const fpp_t _frames ) +Effect::ProcessStatus DynProcEffect::processImpl(SampleFrame* buf, const fpp_t frames) { - if( !isEnabled() || !isRunning () ) - { -//apparently we can't keep running after the decay value runs out so we'll just set the peaks to zero - m_currentPeak[0] = m_currentPeak[1] = DYN_NOISE_FLOOR; - return( false ); - } //qDebug( "%f %f", m_currentPeak[0], m_currentPeak[1] ); // variables for effect int i = 0; auto sm_peak = std::array{0.0f, 0.0f}; - float gain; - double out_sum = 0.0; const float d = dryLevel(); const float w = wetLevel(); @@ -123,8 +114,8 @@ bool DynProcEffect::processAudioBuffer( sampleFrame * _buf, if( m_needsUpdate ) { - m_rms[0]->setSize( 64 * Engine::audioEngine()->processingSampleRate() / 44100 ); - m_rms[1]->setSize( 64 * Engine::audioEngine()->processingSampleRate() / 44100 ); + m_rms[0]->setSize( 64 * Engine::audioEngine()->outputSampleRate() / 44100 ); + m_rms[1]->setSize( 64 * Engine::audioEngine()->outputSampleRate() / 44100 ); calcAttack(); calcRelease(); m_needsUpdate = false; @@ -141,9 +132,9 @@ bool DynProcEffect::processAudioBuffer( sampleFrame * _buf, } } - for( fpp_t f = 0; f < _frames; ++f ) + for (fpp_t f = 0; f < frames; ++f) { - auto s = std::array{_buf[f][0], _buf[f][1]}; + auto s = std::array{buf[f][0], buf[f][1]}; // apply input gain s[0] *= inputGain; @@ -155,15 +146,15 @@ bool DynProcEffect::processAudioBuffer( sampleFrame * _buf, const double t = m_rms[i]->update( s[i] ); if( t > m_currentPeak[i] ) { - m_currentPeak[i] = qMin( m_currentPeak[i] * m_attCoeff, t ); + m_currentPeak[i] = m_currentPeak[i] * m_attCoeff + (1 - m_attCoeff) * t; } else if( t < m_currentPeak[i] ) { - m_currentPeak[i] = qMax( m_currentPeak[i] * m_relCoeff, t ); + m_currentPeak[i] = m_currentPeak[i] * m_relCoeff + (1 - m_relCoeff) * t; } - m_currentPeak[i] = qBound( DYN_NOISE_FLOOR, m_currentPeak[i], 10.0f ); + m_currentPeak[i] = std::max(DYN_NOISE_FLOOR, m_currentPeak[i]); } // account for stereo mode @@ -196,20 +187,10 @@ bool DynProcEffect::processAudioBuffer( sampleFrame * _buf, if( sm_peak[i] > DYN_NOISE_FLOOR ) { - if ( lookup < 1 ) - { - gain = frac * samples[0]; - } - else - if ( lookup < 200 ) - { - gain = linearInterpolate( samples[ lookup - 1 ], - samples[ lookup ], frac ); - } - else - { - gain = samples[199]; - }; + float gain; + if (lookup < 1) { gain = frac * samples[0]; } + else if (lookup < 200) { gain = linearInterpolate(samples[lookup - 1], samples[lookup], frac); } + else { gain = samples[199]; } s[i] *= gain; s[i] /= sm_peak[i]; @@ -221,17 +202,18 @@ bool DynProcEffect::processAudioBuffer( sampleFrame * _buf, s[1] *= outputGain; // mix wet/dry signals - _buf[f][0] = d * _buf[f][0] + w * s[0]; - _buf[f][1] = d * _buf[f][1] + w * s[1]; - out_sum += _buf[f][0] * _buf[f][0] + _buf[f][1] * _buf[f][1]; + buf[f][0] = d * buf[f][0] + w * s[0]; + buf[f][1] = d * buf[f][1] + w * s[1]; } - checkGate( out_sum / _frames ); - - return( isRunning() ); + return ProcessStatus::ContinueIfNotQuiet; } - +void DynProcEffect::processBypassedImpl() +{ + // Apparently we can't keep running after the decay value runs out so we'll just set the peaks to zero + m_currentPeak[0] = m_currentPeak[1] = DYN_NOISE_FLOOR; +} diff --git a/plugins/DynamicsProcessor/DynamicsProcessor.h b/plugins/DynamicsProcessor/DynamicsProcessor.h index 576accdcc9b..fbf5d930ac9 100644 --- a/plugins/DynamicsProcessor/DynamicsProcessor.h +++ b/plugins/DynamicsProcessor/DynamicsProcessor.h @@ -42,8 +42,9 @@ class DynProcEffect : public Effect DynProcEffect( Model * _parent, const Descriptor::SubPluginFeatures::Key * _key ); ~DynProcEffect() override; - bool processAudioBuffer( sampleFrame * _buf, - const fpp_t _frames ) override; + + ProcessStatus processImpl(SampleFrame* buf, const fpp_t frames) override; + void processBypassedImpl() override; EffectControls * controls() override { diff --git a/plugins/Eq/CMakeLists.txt b/plugins/Eq/CMakeLists.txt index 899dde5ec6d..68edb034b5c 100644 --- a/plugins/Eq/CMakeLists.txt +++ b/plugins/Eq/CMakeLists.txt @@ -1,5 +1,5 @@ INCLUDE(BuildPlugin) -INCLUDE_DIRECTORIES(${FFTW3F_INCLUDE_DIRS}) +include_directories(SYSTEM ${FFTW3F_INCLUDE_DIRS}) LINK_LIBRARIES(${FFTW3F_LIBRARIES}) BUILD_PLUGIN(eq EqEffect.cpp EqCurve.cpp EqCurve.h EqControls.cpp EqControlsDialog.cpp EqFilter.h EqParameterWidget.cpp EqFader.h EqSpectrumView.h EqSpectrumView.cpp MOCFILES EqControls.h EqControlsDialog.h EqCurve.h EqParameterWidget.h EqFader.h EqSpectrumView.h EMBEDDED_RESOURCES *.png) diff --git a/plugins/Eq/EqControls.cpp b/plugins/Eq/EqControls.cpp index 04fb9bd3a16..ea5b2947f7c 100644 --- a/plugins/Eq/EqControls.cpp +++ b/plugins/Eq/EqControls.cpp @@ -37,30 +37,30 @@ namespace lmms EqControls::EqControls( EqEffect *effect ) : EffectControls( effect ), m_effect( effect ), - m_inGainModel( 0.0, -60.0, 20.0, 0.01, this, tr( "Input gain") ), - m_outGainModel( -.0, -60.0, 20.0, 0.01, this, tr( "Output gain" ) ), - m_lowShelfGainModel( 0.0 , -18, 18, 0.001, this, tr( "Low-shelf gain" ) ), - m_para1GainModel( 0.0 , -18, 18, 0.001, this, tr( "Peak 1 gain" ) ), - m_para2GainModel( 0.0 , -18, 18, 0.001, this, tr( "Peak 2 gain" ) ), - m_para3GainModel( 0.0 , -18, 18, 0.001, this, tr( "Peak 3 gain" ) ), - m_para4GainModel( 0.0 , -18, 18, 0.001, this, tr( "Peak 4 gain" ) ), - m_highShelfGainModel( 0.0 , -18, 18, 0.001, this, tr( "High-shelf gain" ) ), - m_hpResModel( 0.707,0.003, 10.0 , 0.001, this, tr( "HP res" ) ), - m_lowShelfResModel( 0.707, 0.55, 10.0 , 0.001, this , tr( "Low-shelf res" ) ), - m_para1BwModel( 0.3, 0.1, 4 , 0.001, this , tr( "Peak 1 BW" ) ), - m_para2BwModel( 0.3, 0.1, 4 , 0.001, this , tr( "Peak 2 BW" ) ), - m_para3BwModel( 0.3, 0.1, 4 , 0.001, this , tr( "Peak 3 BW" ) ), - m_para4BwModel( 0.3, 0.1, 4 , 0.001, this , tr( "Peak 4 BW" ) ), - m_highShelfResModel( 0.707, 0.55, 10.0 , 0.001, this , tr( "High-shelf res" ) ), - m_lpResModel( 0.707,0.003, 10.0 , 0.001, this , tr( "LP res" ) ), - m_hpFeqModel( 31.0, 20.0, 20000, 0.001, this , tr( "HP freq" ) ), - m_lowShelfFreqModel( 80.0, 20.0, 20000, 0.001, this , tr( "Low-shelf freq" ) ), - m_para1FreqModel( 120.0, 20.0, 20000, 0.001, this , tr( "Peak 1 freq" ) ), - m_para2FreqModel( 250.0, 20.0, 20000, 0.001, this, tr( "Peak 2 freq" ) ), - m_para3FreqModel( 2000.0, 20.0, 20000, 0.001, this , tr( "Peak 3 freq" ) ), - m_para4FreqModel( 4000.0, 20.0, 20000, 0.001, this , tr( "Peak 4 freq" ) ), - m_highShelfFreqModel( 12000.0, 20.0, 20000, 0.001, this , tr( "High-shelf freq" ) ), - m_lpFreqModel( 18000.0, 20.0, 20000, 0.001, this , tr( "LP freq" ) ), + m_inGainModel(0.f, -60.f, 20.f, 0.01f, this, tr("Input gain")), + m_outGainModel(-0.f, -60.f, 20.f, 0.01f, this, tr("Output gain")), + m_lowShelfGainModel( 0.f, -18, 18, 0.001f, this, tr("Low-shelf gain")), + m_para1GainModel(0.f, -18, 18, 0.001f, this, tr("Peak 1 gain")), + m_para2GainModel(0.f, -18, 18, 0.001f, this, tr("Peak 2 gain")), + m_para3GainModel(0.f, -18, 18, 0.001f, this, tr("Peak 3 gain")), + m_para4GainModel(0.f, -18, 18, 0.001f, this, tr("Peak 4 gain")), + m_highShelfGainModel(0.f, -18, 18, 0.001f, this, tr("High-shelf gain")), + m_hpResModel(0.707f,0.003f, 10.f, 0.001f, this, tr("HP res")), + m_lowShelfResModel(0.707f, 0.55f, 10.f, 0.001f, this, tr("Low-shelf res")), + m_para1BwModel(0.3f, 0.1f, 4, 0.001f, this, tr("Peak 1 BW")), + m_para2BwModel(0.3f, 0.1f, 4, 0.001f, this, tr("Peak 2 BW")), + m_para3BwModel(0.3f, 0.1f, 4, 0.001f, this, tr("Peak 3 BW")), + m_para4BwModel(0.3f, 0.1f, 4, 0.001f, this, tr("Peak 4 BW")), + m_highShelfResModel(0.707f, 0.55f, 10.f, 0.001f, this, tr("High-shelf res")), + m_lpResModel(0.707f,0.003f, 10.f, 0.001f, this, tr("LP res")), + m_hpFeqModel(31.f, 20.f, 20000, 0.001f, this, tr("HP freq")), + m_lowShelfFreqModel(80.f, 20.f, 20000, 0.001f, this, tr("Low-shelf freq")), + m_para1FreqModel(120.f, 20.f, 20000, 0.001f, this, tr("Peak 1 freq")), + m_para2FreqModel(250.f, 20.f, 20000, 0.001f, this, tr("Peak 2 freq")), + m_para3FreqModel(2000.f, 20.f, 20000, 0.001f, this, tr("Peak 3 freq")), + m_para4FreqModel(4000.f, 20.f, 20000, 0.001f, this, tr("Peak 4 freq")), + m_highShelfFreqModel(12000.f, 20.f, 20000, 0.001f, this, tr("High-shelf freq")), + m_lpFreqModel(18000.f, 20.f, 20000, 0.001f, this, tr("LP freq")), m_hpActiveModel( false, this , tr( "HP active" ) ), m_lowShelfActiveModel( false, this , tr( "Low-shelf active" ) ), m_para1ActiveModel( false, this , tr( "Peak 1 active" ) ), diff --git a/plugins/Eq/EqControls.h b/plugins/Eq/EqControls.h index 6db82f3e33f..80680c7fb5a 100644 --- a/plugins/Eq/EqControls.h +++ b/plugins/Eq/EqControls.h @@ -66,6 +66,8 @@ class EqControls : public EffectControls float m_inPeakR; float m_outPeakL; float m_outPeakR; + + // The following are linear peaks float m_lowShelfPeakL, m_lowShelfPeakR; float m_para1PeakL, m_para1PeakR; float m_para2PeakL, m_para2PeakR; diff --git a/plugins/Eq/EqControlsDialog.cpp b/plugins/Eq/EqControlsDialog.cpp index a26fa0db918..1fb10e2bb68 100644 --- a/plugins/Eq/EqControlsDialog.cpp +++ b/plugins/Eq/EqControlsDialog.cpp @@ -72,18 +72,16 @@ EqControlsDialog::EqControlsDialog( EqControls *controls ) : setBand( 6, &controls->m_highShelfActiveModel, &controls->m_highShelfFreqModel, &controls->m_highShelfResModel, &controls->m_highShelfGainModel, QColor(255 ,255, 255), tr( "High-shelf" ), &controls->m_highShelfPeakL, &controls->m_highShelfPeakR,0,0,0,0,0,0 ); setBand( 7, &controls->m_lpActiveModel, &controls->m_lpFreqModel, &controls->m_lpResModel, 0, QColor(255 ,255, 255), tr( "LP" ) ,0,0,0,0,0, &controls->m_lp12Model, &controls->m_lp24Model, &controls->m_lp48Model); - auto faderBg = new QPixmap(PLUGIN_NAME::getIconPixmap("faderback")); - auto faderLeds = new QPixmap(PLUGIN_NAME::getIconPixmap("faderleds")); - auto faderKnob = new QPixmap(PLUGIN_NAME::getIconPixmap("faderknob")); + QSize const faderSize(23, 80); - auto GainFaderIn = new EqFader(&controls->m_inGainModel, tr("Input gain"), this, faderBg, faderLeds, faderKnob, - &controls->m_inPeakL, &controls->m_inPeakR); + auto GainFaderIn = new EqFader(&controls->m_inGainModel, tr("Input gain"), this, &controls->m_inPeakL, &controls->m_inPeakR); + GainFaderIn->setFixedSize(faderSize); GainFaderIn->move( 23, 295 ); GainFaderIn->setDisplayConversion( false ); GainFaderIn->setHintText( tr( "Gain" ), "dBv"); - auto GainFaderOut = new EqFader(&controls->m_outGainModel, tr("Output gain"), this, faderBg, faderLeds, faderKnob, - &controls->m_outPeakL, &controls->m_outPeakR); + auto GainFaderOut = new EqFader(&controls->m_outGainModel, tr("Output gain"), this, &controls->m_outPeakL, &controls->m_outPeakR); + GainFaderOut->setFixedSize(faderSize); GainFaderOut->move( 453, 295); GainFaderOut->setDisplayConversion( false ); GainFaderOut->setHintText( tr( "Gain" ), "dBv" ); @@ -92,8 +90,9 @@ EqControlsDialog::EqControlsDialog( EqControls *controls ) : int distance = 126; for( int i = 1; i < m_parameterWidget->bandCount() - 1; i++ ) { - auto gainFader = new EqFader(m_parameterWidget->getBandModels(i)->gain, tr(""), this, faderBg, faderLeds, - faderKnob, m_parameterWidget->getBandModels(i)->peakL, m_parameterWidget->getBandModels(i)->peakR); + auto gainFader = new EqFader(m_parameterWidget->getBandModels(i)->gain, tr(""), this, + m_parameterWidget->getBandModels(i)->peakL, m_parameterWidget->getBandModels(i)->peakR); + gainFader->setFixedSize(faderSize); gainFader->move( distance, 295 ); distance += 44; gainFader->setMinimumHeight(80); @@ -111,7 +110,7 @@ EqControlsDialog::EqControlsDialog( EqControls *controls ) : resKnob->setVolumeKnob(false); resKnob->setModel( m_parameterWidget->getBandModels( i )->res ); if(i > 1 && i < 6) { resKnob->setHintText( tr( "Bandwidth: " ) , tr( " Octave" ) ); } - else { resKnob->setHintText( tr( "Resonance : " ) , "" ); } + else { resKnob->setHintText(tr("Resonance: "), ""); } auto freqKnob = new Knob(KnobType::Bright26, this); freqKnob->move( distance, 396 ); @@ -124,10 +123,10 @@ EqControlsDialog::EqControlsDialog( EqControls *controls ) : activeButton->setCheckable(true); activeButton->setModel( m_parameterWidget->getBandModels( i )->active ); - QString iconActiveFileName = "bandLabel" + QString::number(i+1); - QString iconInactiveFileName = "bandLabel" + QString::number(i+1) + "off"; - activeButton->setActiveGraphic( PLUGIN_NAME::getIconPixmap( iconActiveFileName.toLatin1() ) ); - activeButton->setInactiveGraphic( PLUGIN_NAME::getIconPixmap( iconInactiveFileName.toLatin1() ) ); + const auto iconActiveFileName = "bandLabel" + std::to_string(i + 1); + const auto iconInactiveFileName = iconActiveFileName + "off"; + activeButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap(iconActiveFileName)); + activeButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap(iconInactiveFileName)); activeButton->move( distance - 2, 276 ); activeButton->setModel( m_parameterWidget->getBandModels( i )->active ); @@ -242,4 +241,4 @@ EqBand* EqControlsDialog::setBand(int index, BoolModel* active, FloatModel* freq } -} // namespace lmms::gui \ No newline at end of file +} // namespace lmms::gui diff --git a/plugins/Eq/EqCurve.cpp b/plugins/Eq/EqCurve.cpp index bb721a7e462..417f101f798 100644 --- a/plugins/Eq/EqCurve.cpp +++ b/plugins/Eq/EqCurve.cpp @@ -30,7 +30,9 @@ #include "AudioEngine.h" #include "embed.h" #include "Engine.h" +#include "FontHelper.h" #include "lmms_constants.h" +#include "lmms_math.h" namespace lmms::gui @@ -65,7 +67,7 @@ QRectF EqHandle::boundingRect() const float EqHandle::freqToXPixel( float freq , int w ) { - if (typeInfo::isEqual(freq, 0.0f)) { return 0.0f; } + if (approximatelyEqual(freq, 0.0f)) { return 0.0f; } float min = log10f( 20 ); float max = log10f( 20000 ); float range = max - min; @@ -147,9 +149,7 @@ void EqHandle::paint( QPainter *painter, const QStyleOptionGraphicsItem *option, res = tr( "BW: " ) + QString::number( getResonance() ); } - QFont painterFont = painter->font(); - painterFont.setPointSizeF( painterFont.pointSizeF() * 0.7 ); - painter->setFont( painterFont ); + painter->setFont(adjustedToPixelSize(painter->font(), SMALL_FONT_SIZE)); painter->setPen( Qt::black ); painter->drawRect( textRect ); painter->fillRect( textRect, QBrush( QColor( 6, 106, 43, 180 ) ) ); @@ -185,9 +185,9 @@ QPainterPath EqHandle::getCurvePath() void EqHandle::loadPixmap() { - QString fileName = "handle" + QString::number(m_numb+1); - if ( !isActiveHandle() ) { fileName = fileName + "inactive"; } - m_circlePixmap = PLUGIN_NAME::getIconPixmap( fileName.toLatin1() ); + auto fileName = "handle" + std::to_string(m_numb + 1); + if (!isActiveHandle()) { fileName += "inactive"; } + m_circlePixmap = PLUGIN_NAME::getIconPixmap(fileName); } bool EqHandle::mousePressed() const @@ -201,22 +201,21 @@ bool EqHandle::mousePressed() const float EqHandle::getPeakCurve( float x ) { double freqZ = xPixelToFreq( EqHandle::x(), m_width ); - const int SR = Engine::audioEngine()->processingSampleRate(); + const int SR = Engine::audioEngine()->outputSampleRate(); double w0 = 2 * LD_PI * freqZ / SR ; double c = cosf( w0 ); double s = sinf( w0 ); double Q = getResonance(); double A = pow( 10, yPixelToGain( EqHandle::y(), m_heigth, m_pixelsPerUnitHeight ) / 40 ); double alpha = s * sinh( log( 2 ) / 2 * Q * w0 / sinf( w0 ) ); - double a0, a1, a2, b0, b1, b2; // coeffs to calculate //calc coefficents - b0 = 1 + alpha * A; - b1 = -2 * c; - b2 = 1 - alpha * A; - a0 = 1 + alpha / A; - a1 = -2 * c; - a2 = 1 - alpha / A; + double b0 = 1 + alpha * A; + double b1 = -2 * c; + double b2 = 1 - alpha * A; + double a0 = 1 + alpha / A; + double a1 = -2 * c; + double a2 = 1 - alpha / A; //normalise b0 /= a0; @@ -239,21 +238,21 @@ float EqHandle::getPeakCurve( float x ) float EqHandle::getHighShelfCurve( float x ) { double freqZ = xPixelToFreq( EqHandle::x(), m_width ); - const int SR = Engine::audioEngine()->processingSampleRate(); + const int SR = Engine::audioEngine()->outputSampleRate(); double w0 = 2 * LD_PI * freqZ / SR; double c = cosf( w0 ); double s = sinf( w0 ); double A = pow( 10, yPixelToGain( EqHandle::y(), m_heigth, m_pixelsPerUnitHeight ) * 0.025 ); double beta = sqrt( A ) / m_resonance; - double a0, a1, a2, b0, b1, b2; // coeffs to calculate //calc coefficents - b0 = A * ( ( A + 1 ) + ( A - 1 ) * c + beta * s); - b1 = -2 * A * ( ( A - 1 ) + ( A + 1 ) * c ); - b2 = A * ( ( A + 1 ) + ( A - 1 ) * c - beta * s); - a0 = ( A + 1 ) - ( A - 1 ) * c + beta * s; - a1 = 2 * ( ( A - 1 ) - ( A + 1 ) * c ); - a2 = ( A + 1 ) - ( A - 1 ) * c - beta * s; + double b0 = A * ((A + 1) + (A - 1) * c + beta * s); + double b1 = -2 * A * ((A - 1) + (A + 1) * c); + double b2 = A * ((A + 1) + (A - 1) * c - beta * s); + double a0 = (A + 1) - (A - 1) * c + beta * s; + double a1 = 2 * ((A - 1) - (A + 1) * c); + double a2 = (A + 1) - (A - 1) * c - beta * s; + //normalise b0 /= a0; b1 /= a0; @@ -275,21 +274,20 @@ float EqHandle::getHighShelfCurve( float x ) float EqHandle::getLowShelfCurve( float x ) { double freqZ = xPixelToFreq( EqHandle::x(), m_width ); - const int SR = Engine::audioEngine()->processingSampleRate(); + const int SR = Engine::audioEngine()->outputSampleRate(); double w0 = 2 * LD_PI * freqZ / SR ; double c = cosf( w0 ); double s = sinf( w0 ); double A = pow( 10, yPixelToGain( EqHandle::y(), m_heigth, m_pixelsPerUnitHeight ) / 40 ); double beta = sqrt( A ) / m_resonance; - double a0, a1, a2, b0, b1, b2; // coeffs to calculate //calc coefficents - b0 = A * ( ( A + 1 ) - ( A - 1 ) * c + beta * s ); - b1 = 2 * A * ( ( A - 1 ) - ( A + 1 ) * c ) ; - b2 = A * ( ( A + 1 ) - ( A - 1 ) * c - beta * s); - a0 = ( A + 1 ) + ( A - 1 ) * c + beta * s; - a1 = -2 * ( ( A - 1 ) + ( A + 1 ) * c ); - a2 = ( A + 1 ) + ( A - 1) * c - beta * s; + double b0 = A * ((A + 1) - (A - 1) * c + beta * s); + double b1 = 2 * A * ((A - 1) - (A + 1) * c); + double b2 = A * ((A + 1) - (A - 1) * c - beta * s); + double a0 = (A + 1) + (A - 1) * c + beta * s; + double a1 = -2 * ((A - 1) + (A + 1) * c); + double a2 = (A + 1) + (A - 1) * c - beta * s; //normalise b0 /= a0; @@ -312,20 +310,20 @@ float EqHandle::getLowShelfCurve( float x ) float EqHandle::getLowCutCurve( float x ) { double freqZ = xPixelToFreq( EqHandle::x(), m_width ); - const int SR = Engine::audioEngine()->processingSampleRate(); + const int SR = Engine::audioEngine()->outputSampleRate(); double w0 = 2 * LD_PI * freqZ / SR ; double c = cosf( w0 ); double s = sinf( w0 ); double resonance = getResonance(); double alpha = s / (2 * resonance); - double a0, a1, a2, b0, b1, b2; // coeffs to calculate - - b0 = ( 1 + c ) * 0.5; - b1 = ( -( 1 + c ) ); - b2 = ( 1 + c ) * 0.5; - a0 = 1 + alpha; - a1 = ( -2 * c ); - a2 = 1 - alpha; + + double b0 = (1 + c) * 0.5; + double b1 = (-(1 + c)); + double b2 = (1 + c) * 0.5; + double a0 = 1 + alpha; + double a1 = (-2 * c); + double a2 = 1 - alpha; + //normalise b0 /= a0; b1 /= a0; @@ -355,20 +353,20 @@ float EqHandle::getLowCutCurve( float x ) float EqHandle::getHighCutCurve( float x ) { double freqZ = xPixelToFreq( EqHandle::x(), m_width ); - const int SR = Engine::audioEngine()->processingSampleRate(); + const int SR = Engine::audioEngine()->outputSampleRate(); double w0 = 2 * LD_PI * freqZ / SR ; double c = cosf( w0 ); double s = sinf( w0 ); double resonance = getResonance(); double alpha = s / (2 * resonance); - double a0, a1, a2, b0, b1, b2; // coeffs to calculate - - b0 = ( 1 - c ) * 0.5; - b1 = 1 - c; - b2 = ( 1 - c ) * 0.5; - a0 = 1 + alpha; - a1 = -2 * c; - a2 = 1 - alpha; + + double b0 = (1 - c) * 0.5; + double b1 = 1 - c; + double b2 = (1 - c) * 0.5; + double a0 = 1 + alpha; + double a1 = -2 * c; + double a2 = 1 - alpha; + //normalise b0 /= a0; b1 /= a0; @@ -529,7 +527,7 @@ void EqHandle::setlp48() double EqHandle::calculateGain(const double freq, const double a1, const double a2, const double b0, const double b1, const double b2 ) { - const int SR = Engine::audioEngine()->processingSampleRate(); + const int SR = Engine::audioEngine()->outputSampleRate(); const double w = 2 * LD_PI * freq / SR ; const double PHI = pow( sin( w / 2 ), 2 ) * 4; @@ -569,16 +567,7 @@ void EqHandle::mouseReleaseEvent( QGraphicsSceneMouseEvent *event ) void EqHandle::wheelEvent( QGraphicsSceneWheelEvent *wevent ) { - float highestBandwich; - if( m_type != EqHandleType::Para ) - { - highestBandwich = 10; - } - else - { - highestBandwich = 4; - } - + float highestBandwich = m_type != EqHandleType::Para ? 10 : 4; int numDegrees = wevent->delta() / 120; float numSteps = 0; if( wevent->modifiers() == Qt::ControlModifier ) @@ -592,17 +581,8 @@ void EqHandle::wheelEvent( QGraphicsSceneWheelEvent *wevent ) if( wevent->orientation() == Qt::Vertical ) { - m_resonance = m_resonance + ( numSteps ); - - if( m_resonance < 0.1 ) - { - m_resonance = 0.1; - } + m_resonance = std::clamp(m_resonance + numSteps, 0.1f, highestBandwich); - if( m_resonance > highestBandwich ) - { - m_resonance = highestBandwich; - } emit positionChanged(); } wevent->accept(); diff --git a/plugins/Eq/EqEffect.cpp b/plugins/Eq/EqEffect.cpp index 8a795414429..6859529f40e 100644 --- a/plugins/Eq/EqEffect.cpp +++ b/plugins/Eq/EqEffect.cpp @@ -64,9 +64,9 @@ EqEffect::EqEffect( Model *parent, const Plugin::Descriptor::SubPluginFeatures:: -bool EqEffect::processAudioBuffer( sampleFrame *buf, const fpp_t frames ) +Effect::ProcessStatus EqEffect::processImpl(SampleFrame* buf, const fpp_t frames) { - const int sampleRate = Engine::audioEngine()->processingSampleRate(); + const int sampleRate = Engine::audioEngine()->outputSampleRate(); //wet/dry controls const float dry = dryLevel(); @@ -131,13 +131,6 @@ bool EqEffect::processAudioBuffer( sampleFrame *buf, const fpp_t frames ) m_lp481.setParameters( sampleRate, lpFreq, lpRes, 1 ); - - - if( !isEnabled() || !isRunning () ) - { - return( false ); - } - if( m_eqControls.m_outGainModel.isValueChanged() ) { m_outGain = dbfsToAmp(m_eqControls.m_outGainModel.value()); @@ -151,13 +144,13 @@ bool EqEffect::processAudioBuffer( sampleFrame *buf, const fpp_t frames ) m_eqControls.m_inProgress = true; double outSum = 0.0; - for( fpp_t f = 0; f < frames; ++f ) + for (fpp_t f = 0; f < frames; ++f) { - outSum += buf[f][0]*buf[f][0] + buf[f][1]*buf[f][1]; + outSum += buf[f][0] * buf[f][0] + buf[f][1] * buf[f][1]; } const float outGain = m_outGain; - sampleFrame m_inPeak = { 0, 0 }; + SampleFrame m_inPeak = { 0, 0 }; if(m_eqControls.m_analyseInModel.value( true ) && outSum > 0 && m_eqControls.isViewVisible() ) { @@ -263,13 +256,11 @@ bool EqEffect::processAudioBuffer( sampleFrame *buf, const fpp_t frames ) } - sampleFrame outPeak = { 0, 0 }; + SampleFrame outPeak = { 0, 0 }; gain( buf, frames, outGain, &outPeak ); m_eqControls.m_outPeakL = m_eqControls.m_outPeakL < outPeak[0] ? outPeak[0] : m_eqControls.m_outPeakL; m_eqControls.m_outPeakR = m_eqControls.m_outPeakR < outPeak[1] ? outPeak[1] : m_eqControls.m_outPeakR; - checkGate( outSum / frames ); - if(m_eqControls.m_analyseOutModel.value( true ) && outSum > 0 && m_eqControls.isViewVisible() ) { m_eqControls.m_outFftBands.analyze( buf, frames ); @@ -281,27 +272,30 @@ bool EqEffect::processAudioBuffer( sampleFrame *buf, const fpp_t frames ) } m_eqControls.m_inProgress = false; - return isRunning(); + + return Effect::ProcessStatus::ContinueIfNotQuiet; } -float EqEffect::peakBand( float minF, float maxF, EqAnalyser *fft, int sr ) +float EqEffect::linearPeakBand(float minF, float maxF, EqAnalyser* fft, int sr) { - float peak = -60; - float *b = fft->m_bands; - float h = 0; - for( int x = 0; x < MAX_BANDS; x++, b++ ) + auto const fftEnergy = fft->getEnergy(); + if (fftEnergy == 0.) { return 0.; } + + + float peakLinear = 0.; + + for (int i = 0; i < MAX_BANDS; ++i) { - if( bandToFreq( x ,sr) >= minF && bandToFreq( x,sr ) <= maxF ) + if (bandToFreq(i, sr) >= minF && bandToFreq(i, sr) <= maxF) { - h = 20 * ( log10( *b / fft->getEnergy() ) ); - peak = h > peak ? h : peak; + peakLinear = std::max(peakLinear, fft->m_bands[i] / fftEnergy); } } - return ( peak + 60 ) / 100; + return peakLinear; } @@ -309,45 +303,34 @@ float EqEffect::peakBand( float minF, float maxF, EqAnalyser *fft, int sr ) void EqEffect::setBandPeaks( EqAnalyser *fft, int samplerate ) { + auto computePeakBand = [&](const FloatModel& freqModel, const FloatModel& bwModel) + { + float const freq = freqModel.value(); + float const bw = bwModel.value(); + + return linearPeakBand(freq * (1 - bw * 0.5), freq * (1 + bw * 0.5), fft, samplerate); + }; + m_eqControls.m_lowShelfPeakR = m_eqControls.m_lowShelfPeakL = - peakBand( m_eqControls.m_lowShelfFreqModel.value() - * ( 1 - m_eqControls.m_lowShelfResModel.value() * 0.5 ), - m_eqControls.m_lowShelfFreqModel.value(), - fft , samplerate ); + linearPeakBand(m_eqControls.m_lowShelfFreqModel.value() * (1 - m_eqControls.m_lowShelfResModel.value() * 0.5), + m_eqControls.m_lowShelfFreqModel.value(), fft , samplerate); m_eqControls.m_para1PeakL = m_eqControls.m_para1PeakR = - peakBand( m_eqControls.m_para1FreqModel.value() - * ( 1 - m_eqControls.m_para1BwModel.value() * 0.5 ), - m_eqControls.m_para1FreqModel.value() - * ( 1 + m_eqControls.m_para1BwModel.value() * 0.5 ), - fft , samplerate ); + computePeakBand(m_eqControls.m_para1FreqModel, m_eqControls.m_para1BwModel); m_eqControls.m_para2PeakL = m_eqControls.m_para2PeakR = - peakBand( m_eqControls.m_para2FreqModel.value() - * ( 1 - m_eqControls.m_para2BwModel.value() * 0.5 ), - m_eqControls.m_para2FreqModel.value() - * ( 1 + m_eqControls.m_para2BwModel.value() * 0.5 ), - fft , samplerate ); + computePeakBand(m_eqControls.m_para2FreqModel, m_eqControls.m_para2BwModel); m_eqControls.m_para3PeakL = m_eqControls.m_para3PeakR = - peakBand( m_eqControls.m_para3FreqModel.value() - * ( 1 - m_eqControls.m_para3BwModel.value() * 0.5 ), - m_eqControls.m_para3FreqModel.value() - * ( 1 + m_eqControls.m_para3BwModel.value() * 0.5 ), - fft , samplerate ); + computePeakBand(m_eqControls.m_para3FreqModel, m_eqControls.m_para3BwModel); m_eqControls.m_para4PeakL = m_eqControls.m_para4PeakR = - peakBand( m_eqControls.m_para4FreqModel.value() - * ( 1 - m_eqControls.m_para4BwModel.value() * 0.5 ), - m_eqControls.m_para4FreqModel.value() - * ( 1 + m_eqControls.m_para4BwModel.value() * 0.5 ), - fft , samplerate ); + computePeakBand(m_eqControls.m_para4FreqModel, m_eqControls.m_para4BwModel); m_eqControls.m_highShelfPeakL = m_eqControls.m_highShelfPeakR = - peakBand( m_eqControls.m_highShelfFreqModel.value(), - m_eqControls.m_highShelfFreqModel.value() - * ( 1 + m_eqControls.m_highShelfResModel.value() * 0.5 ), - fft, samplerate ); + linearPeakBand(m_eqControls.m_highShelfFreqModel.value(), + m_eqControls.m_highShelfFreqModel.value() * (1 + m_eqControls.m_highShelfResModel.value() * 0.5), + fft, samplerate); } extern "C" diff --git a/plugins/Eq/EqEffect.h b/plugins/Eq/EqEffect.h index 2d54c42a2e1..35e1b12b532 100644 --- a/plugins/Eq/EqEffect.h +++ b/plugins/Eq/EqEffect.h @@ -28,6 +28,9 @@ #include "EqControls.h" #include "EqFilter.h" +#include + + namespace lmms { @@ -37,28 +40,27 @@ class EqEffect : public Effect public: EqEffect( Model * parent , const Descriptor::SubPluginFeatures::Key * key ); ~EqEffect() override = default; - bool processAudioBuffer( sampleFrame * buf, const fpp_t frames ) override; + + ProcessStatus processImpl(SampleFrame* buf, const fpp_t frames) override; + EffectControls * controls() override { return &m_eqControls; } - inline void gain( sampleFrame * buf, const fpp_t frames, float scale, sampleFrame * peak ) + inline void gain( SampleFrame* buf, const fpp_t frames, float scale, SampleFrame* peak ) { peak[0][0] = 0.0f; peak[0][1] = 0.0f; for( fpp_t f = 0; f < frames; ++f ) { - buf[f][0] *= scale; - buf[f][1] *= scale; - - if( fabs( buf[f][0] ) > peak[0][0] ) - { - peak[0][0] = fabs( buf[f][0] ); - } - if( fabs( buf[f][1] ) > peak[0][1] ) - { - peak[0][1] = fabs( buf[f][0] ); - } + auto & sf = buf[f]; + + // Apply gain to sample frame + sf[0] *= scale; + sf[1] *= scale; + // Update peaks + peak[0][0] = std::max(peak[0][0], (float)fabs(sf[0])); + peak[0][1] = std::max(peak[0][1], (float)fabs(sf[1])); } } @@ -87,7 +89,7 @@ class EqEffect : public Effect float m_inGain; float m_outGain; - float peakBand( float minF, float maxF, EqAnalyser *, int ); + float linearPeakBand(float minF, float maxF, EqAnalyser*, int); inline float bandToFreq ( int index , int sampleRate ) { diff --git a/plugins/Eq/EqFader.h b/plugins/Eq/EqFader.h index 9db0fbe2d82..3185d08794b 100644 --- a/plugins/Eq/EqFader.h +++ b/plugins/Eq/EqFader.h @@ -42,20 +42,6 @@ class EqFader : public Fader public: Q_OBJECT public: - EqFader( FloatModel * model, const QString & name, QWidget * parent, QPixmap * backg, QPixmap * leds, QPixmap * knobpi, float* lPeak, float* rPeak ) : - Fader( model, name, parent, backg, leds, knobpi ) - { - setMinimumSize( 23, 80 ); - setMaximumSize( 23, 80 ); - resize( 23, 80 ); - m_lPeak = lPeak; - m_rPeak = rPeak; - connect( getGUI()->mainWindow(), SIGNAL( periodicUpdate() ), this, SLOT( updateVuMeters() ) ); - m_model = model; - setPeak_L( 0 ); - setPeak_R( 0 ); - } - EqFader( FloatModel * model, const QString & name, QWidget * parent, float* lPeak, float* rPeak ) : Fader( model, name, parent ) { @@ -81,7 +67,7 @@ private slots: { const float opl = getPeak_L(); const float opr = getPeak_R(); - const float fallOff = 1.07; + const float fallOff = 1.07f; if( *m_lPeak > opl ) { setPeak_L( *m_lPeak ); diff --git a/plugins/Eq/EqFilter.h b/plugins/Eq/EqFilter.h index c64f6d5c345..5408d131ce3 100644 --- a/plugins/Eq/EqFilter.h +++ b/plugins/Eq/EqFilter.h @@ -190,15 +190,13 @@ public : float s = sinf( w0 ); float alpha = s / ( 2 * m_res ); - float a0, a1, a2, b0, b1, b2; // coeffs to calculate - //calc coefficents - b0 = ( 1 + c ) * 0.5; - b1 = ( -( 1 + c ) ); - b2 = ( 1 + c ) * 0.5; - a0 = 1 + alpha; - a1 = ( -2 * c ); - a2 = 1 - alpha; + float b0 = (1 + c) * 0.5; + float b1 = (-(1 + c)); + float b2 = (1 + c) * 0.5; + float a0 = 1 + alpha; + float a1 = (-2 * c); + float a2 = 1 - alpha; //normalise b0 /= a0; @@ -235,15 +233,13 @@ public : float s = sinf( w0 ); float alpha = s / ( 2 * m_res ); - float a0, a1, a2, b0, b1, b2; // coeffs to calculate - //calc coefficents - b0 = ( 1 - c ) * 0.5; - b1 = 1 - c; - b2 = ( 1 - c ) * 0.5; - a0 = 1 + alpha; - a1 = -2 * c; - a2 = 1 - alpha; + float b0 = (1 - c) * 0.5; + float b1 = 1 - c; + float b2 = (1 - c) * 0.5; + float a0 = 1 + alpha; + float a1 = -2 * c; + float a2 = 1 - alpha; //normalise b0 /= a0; @@ -279,15 +275,13 @@ class EqPeakFilter : public EqFilter float A = pow( 10, m_gain * 0.025); float alpha = s * sinh( log( 2 ) / 2 * m_bw * w0 / sinf(w0) ); - float a0, a1, a2, b0, b1, b2; // coeffs to calculate - //calc coefficents - b0 = 1 + alpha*A; - b1 = -2*c; - b2 = 1 - alpha*A; - a0 = 1 + alpha/A; - a1 = -2*c; - a2 = 1 - alpha/A; + float b0 = 1 + alpha * A; + float b1 = -2 * c; + float b2 = 1 - alpha * A; + float a0 = 1 + alpha / A; + float a1 = -2 * c; + float a2 = 1 - alpha / A; //normalise b0 /= a0; @@ -345,15 +339,13 @@ public : // float alpha = s / ( 2 * m_res ); float beta = sqrt( A ) / m_res; - float a0, a1, a2, b0, b1, b2; // coeffs to calculate - //calc coefficents - b0 = A * ( ( A+1 ) - ( A-1 ) * c + beta * s ); - b1 = 2 * A * ( ( A - 1 ) - ( A + 1 ) * c) ; - b2 = A * ( ( A + 1 ) - ( A - 1 ) * c - beta * s); - a0 = ( A + 1 ) + ( A - 1 ) * c + beta * s; - a1 = -2 * ( ( A - 1 ) + ( A + 1 ) * c ); - a2 = ( A + 1 ) + ( A - 1) * c - beta * s; + float b0 = A * ((A + 1) - (A - 1) * c + beta * s); + float b1 = 2 * A * ((A - 1) - (A + 1) * c); + float b2 = A * ((A + 1) - (A - 1) * c - beta * s); + float a0 = (A + 1) + (A - 1) * c + beta * s; + float a1 = -2 * ((A - 1) + (A + 1) * c); + float a2 = (A + 1) + (A - 1) * c - beta * s; //normalise b0 /= a0; @@ -383,15 +375,14 @@ public : float A = pow( 10, m_gain * 0.025 ); float beta = sqrt( A ) / m_res; - float a0, a1, a2, b0, b1, b2; // coeffs to calculate - //calc coefficents - b0 = A *( ( A +1 ) + ( A - 1 ) * c + beta * s); - b1 = -2 * A * ( ( A - 1 ) + ( A + 1 ) * c ); - b2 = A * ( ( A + 1 ) + ( A - 1 ) * c - beta * s); - a0 = ( A + 1 ) - ( A - 1 ) * c + beta * s; - a1 = 2 * ( ( A - 1 ) - ( A + 1 ) * c ); - a2 = ( A + 1) - ( A - 1 ) * c - beta * s; + float b0 = A * ((A + 1) + (A - 1) * c + beta * s); + float b1 = -2 * A * ((A - 1) + (A + 1) * c); + float b2 = A * ((A + 1) + (A - 1) * c - beta * s); + float a0 = (A + 1) - (A - 1) * c + beta * s; + float a1 = 2 * ((A - 1) - (A + 1) * c); + float a2 = (A + 1) - (A - 1) * c - beta * s; + //normalise b0 /= a0; b1 /= a0; @@ -441,7 +432,7 @@ class EqLinkwitzRiley : public StereoLinkwitzRiley - virtual void processBuffer( sampleFrame* buf, const fpp_t frames ) + virtual void processBuffer( SampleFrame* buf, const fpp_t frames ) { for ( fpp_t f = 0 ; f < frames ; ++f) { diff --git a/plugins/Eq/EqParameterWidget.cpp b/plugins/Eq/EqParameterWidget.cpp index b48f0f31760..ceccb669f6b 100644 --- a/plugins/Eq/EqParameterWidget.cpp +++ b/plugins/Eq/EqParameterWidget.cpp @@ -56,7 +56,7 @@ EqParameterWidget::EqParameterWidget( QWidget *parent, EqControls * controls ) : m_pixelsPerOctave = EqHandle::freqToXPixel( 10000, m_displayWidth ) - EqHandle::freqToXPixel( 5000, m_displayWidth ); //GraphicsScene and GraphicsView stuff - auto scene = new QGraphicsScene(); + auto scene = new QGraphicsScene(this); scene->setSceneRect( 0, 0, m_displayWidth, m_displayHeigth ); auto view = new QGraphicsView(this); view->setStyleSheet( "border-style: none; background: transparent;" ); @@ -65,22 +65,22 @@ EqParameterWidget::EqParameterWidget( QWidget *parent, EqControls * controls ) : view->setScene( scene ); //adds the handles - m_handleList = new QList; + m_handleList.reserve(bandCount()); for ( int i = 0; i < bandCount(); i++ ) { m_handle = new EqHandle ( i, m_displayWidth, m_displayHeigth ); - m_handleList->append( m_handle ); + m_handleList.append(m_handle); m_handle->setZValue( 1 ); scene->addItem( m_handle ); } //adds the curve widget - m_eqcurve = new EqCurve( m_handleList, m_displayWidth, m_displayHeigth ); + m_eqcurve = new EqCurve(&m_handleList, m_displayWidth, m_displayHeigth); scene->addItem( m_eqcurve ); for ( int i = 0; i < bandCount(); i++ ) { // if the data of handle position has changed update the models - QObject::connect( m_handleList->at( i ) ,SIGNAL( positionChanged() ), this ,SLOT( updateModels() ) ); + QObject::connect(m_handleList.at(i), SIGNAL(positionChanged()), this, SLOT(updateModels())); } } @@ -112,16 +112,13 @@ void EqParameterWidget::updateHandle() m_eqcurve->setModelChanged( true ); for( int i = 0 ; i < bandCount(); i++ ) { - if ( !m_handleList->at( i )->mousePressed() ) //prevents a short circuit between handle and data model + if (!m_handleList.at(i)->mousePressed()) // prevents a short circuit between handle and data model { //sets the band on active if a fader or a knob is moved bool hover = false; // prevents an action if handle is moved for ( int j = 0; j < bandCount(); j++ ) { - if ( m_handleList->at(j)->isMouseHover() ) - { - hover = true; - } + if (m_handleList.at(j)->isMouseHover()) { hover = true; } } if ( !hover ) { @@ -131,17 +128,14 @@ void EqParameterWidget::updateHandle() } changeHandle( i ); } - else - { - m_handleList->at( i )->setHandleActive( m_bands[i].active->value() ); - } + else { m_handleList.at(i)->setHandleActive(m_bands[i].active->value()); } } - if ( m_bands[0].hp12->value() ) m_handleList->at( 0 )->sethp12(); - if ( m_bands[0].hp24->value() ) m_handleList->at( 0 )->sethp24(); - if ( m_bands[0].hp48->value() ) m_handleList->at( 0 )->sethp48(); - if ( m_bands[7].lp12->value() ) m_handleList->at( 7 )->setlp12(); - if ( m_bands[7].lp24->value() ) m_handleList->at( 7 )->setlp24(); - if ( m_bands[7].lp48->value() ) m_handleList->at( 7 )->setlp48(); + if (m_bands[0].hp12->value()) m_handleList.at(0)->sethp12(); + if (m_bands[0].hp24->value()) m_handleList.at(0)->sethp24(); + if (m_bands[0].hp48->value()) m_handleList.at(0)->sethp48(); + if (m_bands[7].lp12->value()) m_handleList.at(7)->setlp12(); + if (m_bands[7].lp24->value()) m_handleList.at(7)->setlp24(); + if (m_bands[7].lp48->value()) m_handleList.at(7)->setlp48(); } @@ -151,7 +145,7 @@ void EqParameterWidget::changeHandle( int i ) { //fill x, y, and bw with data from model float x = EqHandle::freqToXPixel( m_bands[i].freq->value(), m_displayWidth ); - float y = m_handleList->at( i )->y(); + float y = m_handleList.at(i)->y(); //for pass filters there is no gain model if( m_bands[i].gain ) { @@ -164,48 +158,45 @@ void EqParameterWidget::changeHandle( int i ) switch ( i ) { case 0 : - m_handleList->at( i )->setType( EqHandleType::HighPass ); - m_handleList->at( i )->setPos( x, m_displayHeigth / 2 ); + m_handleList.at(i)->setType(EqHandleType::HighPass); + m_handleList.at(i)->setPos(x, m_displayHeigth / 2); break; case 1: - m_handleList->at( i )->setType( EqHandleType::LowShelf ); - m_handleList->at( i )->setPos( x, y ); + m_handleList.at(i)->setType(EqHandleType::LowShelf); + m_handleList.at(i)->setPos(x, y); break; case 2: - m_handleList->at( i )->setType( EqHandleType::Para ); - m_handleList->at( i )->setPos( x, y ); + m_handleList.at(i)->setType(EqHandleType::Para); + m_handleList.at(i)->setPos(x, y); break; case 3: - m_handleList->at( i )->setType( EqHandleType::Para ); - m_handleList->at( i )->setPos( x, y ); + m_handleList.at(i)->setType(EqHandleType::Para); + m_handleList.at(i)->setPos(x, y); break; case 4: - m_handleList->at( i )->setType( EqHandleType::Para ); - m_handleList->at( i )->setPos( x, y ); + m_handleList.at(i)->setType(EqHandleType::Para); + m_handleList.at(i)->setPos(x, y); break; case 5: - m_handleList->at( i )->setType( EqHandleType::Para ); - m_handleList->at( i )->setPos( x, y ); + m_handleList.at(i)->setType(EqHandleType::Para); + m_handleList.at(i)->setPos(x, y); break; case 6: - m_handleList->at( i )->setType( EqHandleType::HighShelf ); - m_handleList->at( i )->setPos( x, y ); + m_handleList.at(i)->setType(EqHandleType::HighShelf); + m_handleList.at(i)->setPos(x, y); break; case 7: - m_handleList->at( i )->setType( EqHandleType::LowPass ); - m_handleList->at( i )->setPos( QPointF( x, m_displayHeigth / 2 ) ); + m_handleList.at(i)->setType(EqHandleType::LowPass); + m_handleList.at(i)->setPos(QPointF(x, m_displayHeigth / 2)); break; } // set resonance/bandwidth for each handle - if ( m_handleList->at( i )->getResonance() != bw ) - { - m_handleList->at( i )->setResonance( bw ); - } + if (m_handleList.at(i)->getResonance() != bw) { m_handleList.at(i)->setResonance(bw); } // and the active status - m_handleList->at( i )->setHandleActive( m_bands[i].active->value() ); - m_handleList->at( i )->update(); + m_handleList.at(i)->setHandleActive(m_bands[i].active->value()); + m_handleList.at(i)->update(); m_eqcurve->update(); } @@ -216,19 +207,17 @@ void EqParameterWidget::updateModels() { for ( int i=0 ; i < bandCount(); i++ ) { - m_bands[i].freq->setValue( EqHandle::xPixelToFreq( m_handleList->at( i )->x(), m_displayWidth ) ); + m_bands[i].freq->setValue(EqHandle::xPixelToFreq(m_handleList.at(i)->x(), m_displayWidth)); if( m_bands[i].gain ) { - m_bands[i].gain->setValue( EqHandle::yPixelToGain( m_handleList->at(i)->y(), m_displayHeigth, m_pixelsPerUnitHeight ) ); + m_bands[i].gain->setValue( + EqHandle::yPixelToGain(m_handleList.at(i)->y(), m_displayHeigth, m_pixelsPerUnitHeight)); } - m_bands[i].res->setValue( m_handleList->at( i )->getResonance() ); + m_bands[i].res->setValue(m_handleList.at(i)->getResonance()); //identifies the handle which is moved and set the band active - if ( sender() == m_handleList->at( i ) ) - { - m_bands[i].active->setValue( true ); - } + if (sender() == m_handleList.at(i)) { m_bands[i].active->setValue(true); } } m_eqcurve->update(); } diff --git a/plugins/Eq/EqParameterWidget.h b/plugins/Eq/EqParameterWidget.h index f80499395c7..c3444873bdd 100644 --- a/plugins/Eq/EqParameterWidget.h +++ b/plugins/Eq/EqParameterWidget.h @@ -75,7 +75,7 @@ class EqParameterWidget : public QWidget public: explicit EqParameterWidget( QWidget *parent = 0, EqControls * controls = 0 ); ~EqParameterWidget() override; - QList *m_handleList; + QList m_handleList; const int bandCount() { diff --git a/plugins/Eq/EqSpectrumView.cpp b/plugins/Eq/EqSpectrumView.cpp index aa556490bf7..99df328efec 100644 --- a/plugins/Eq/EqSpectrumView.cpp +++ b/plugins/Eq/EqSpectrumView.cpp @@ -49,12 +49,12 @@ EqAnalyser::EqAnalyser() : //initialize Blackman-Harris window, constants taken from //https://en.wikipedia.org/wiki/Window_function#A_list_of_window_functions - const float a0 = 0.35875; - const float a1 = 0.48829; - const float a2 = 0.14128; - const float a3 = 0.01168; + const float a0 = 0.35875f; + const float a1 = 0.48829f; + const float a2 = 0.14128f; + const float a3 = 0.01168f; - for (int i = 0; i < FFT_BUFFER_SIZE; i++) + for (auto i = std::size_t{0}; i < FFT_BUFFER_SIZE; i++) { m_fftWindow[i] = (a0 - a1 * cos(2 * F_PI * i / ((float)FFT_BUFFER_SIZE - 1.0)) + a2 * cos(4 * F_PI * i / ((float)FFT_BUFFER_SIZE - 1.0)) @@ -75,7 +75,7 @@ EqAnalyser::~EqAnalyser() -void EqAnalyser::analyze( sampleFrame *buf, const fpp_t frames ) +void EqAnalyser::analyze( SampleFrame* buf, const fpp_t frames ) { //only analyse if the view is visible if ( m_active ) @@ -102,7 +102,7 @@ void EqAnalyser::analyze( sampleFrame *buf, const fpp_t frames ) return; } - m_sampleRate = Engine::audioEngine()->processingSampleRate(); + m_sampleRate = Engine::audioEngine()->outputSampleRate(); const int LOWEST_FREQ = 0; const int HIGHEST_FREQ = m_sampleRate / 2; @@ -186,6 +186,7 @@ namespace gui EqSpectrumView::EqSpectrumView(EqAnalyser *b, QWidget *_parent) : QWidget( _parent ), m_analyser( b ), + m_peakSum(0.), m_periodicalUpdate( false ) { setFixedSize( 450, 200 ); @@ -207,12 +208,8 @@ EqSpectrumView::EqSpectrumView(EqAnalyser *b, QWidget *_parent) : void EqSpectrumView::paintEvent(QPaintEvent *event) { - const float energy = m_analyser->getEnergy(); - if( energy <= 0 && m_peakSum <= 0 ) - { - //dont draw anything - return; - } + const float energy = m_analyser->getEnergy(); + if (energy <= 0. && m_peakSum <= 0) { return; } const int fh = height(); const int LOWER_Y = -36; // dB @@ -231,13 +228,13 @@ void EqSpectrumView::paintEvent(QPaintEvent *event) //Now we calculate the path m_path = QPainterPath(); float *bands = m_analyser->m_bands; - float peak; m_path.moveTo( 0, height() ); m_peakSum = 0; - const float fallOff = 1.07; + const float fallOff = 1.07f; for( int x = 0; x < MAX_BANDS; ++x, ++bands ) { - peak = ( fh * 2.0 / 3.0 * ( 20 * ( log10( *bands / energy ) ) - LOWER_Y ) / ( - LOWER_Y ) ); + float peak = *bands != 0. ? (fh * 2.0 / 3.0 * (20. * log10(*bands / energy) - LOWER_Y) / (-LOWER_Y)) : 0.; + if( peak < 0 ) { peak = 0; @@ -308,4 +305,4 @@ void EqSpectrumView::periodicalUpdate() } // namespace gui -} // namespace lmms \ No newline at end of file +} // namespace lmms diff --git a/plugins/Eq/EqSpectrumView.h b/plugins/Eq/EqSpectrumView.h index 947c5543470..448c0e3789f 100644 --- a/plugins/Eq/EqSpectrumView.h +++ b/plugins/Eq/EqSpectrumView.h @@ -32,6 +32,7 @@ namespace lmms { +class SampleFrame; const int MAX_BANDS = 2048; class EqAnalyser @@ -44,7 +45,7 @@ class EqAnalyser bool getInProgress(); void clear(); - void analyze( sampleFrame *buf, const fpp_t frames ); + void analyze( SampleFrame* buf, const fpp_t frames ); float getEnergy() const; int getSampleRate() const; diff --git a/plugins/Eq/faderback.png b/plugins/Eq/faderback.png deleted file mode 100644 index 2a03c3a5c1e..00000000000 Binary files a/plugins/Eq/faderback.png and /dev/null differ diff --git a/plugins/Eq/faderknob.png b/plugins/Eq/faderknob.png deleted file mode 100755 index 866cd863492..00000000000 Binary files a/plugins/Eq/faderknob.png and /dev/null differ diff --git a/plugins/Eq/faderleds.png b/plugins/Eq/faderleds.png deleted file mode 100644 index b99fac9fd5a..00000000000 Binary files a/plugins/Eq/faderleds.png and /dev/null differ diff --git a/plugins/Flanger/CMakeLists.txt b/plugins/Flanger/CMakeLists.txt index 92a9198e58e..e74b2838ff5 100644 --- a/plugins/Flanger/CMakeLists.txt +++ b/plugins/Flanger/CMakeLists.txt @@ -1,7 +1,7 @@ INCLUDE(BuildPlugin) BUILD_PLUGIN( - flanger FlangerEffect.cpp FlangerControls.cpp FlangerControlsDialog.cpp Noise.cpp MonoDelay.cpp + flanger FlangerEffect.cpp FlangerControls.cpp FlangerControlsDialog.cpp MonoDelay.cpp MOCFILES FlangerControls.h FlangerControlsDialog.h EMBEDDED_RESOURCES artwork.png logo.png ) diff --git a/plugins/Flanger/FlangerControls.cpp b/plugins/Flanger/FlangerControls.cpp index 7402216ee23..c5606380cdc 100644 --- a/plugins/Flanger/FlangerControls.cpp +++ b/plugins/Flanger/FlangerControls.cpp @@ -36,12 +36,12 @@ namespace lmms FlangerControls::FlangerControls( FlangerEffect *effect ) : EffectControls ( effect ), m_effect ( effect ), - m_delayTimeModel(0.001, 0.0001, 0.050, 0.0001, this, tr( "Delay samples" ) ), - m_lfoFrequencyModel( 0.25, 0.01, 60, 0.0001, 60000.0, this, tr( "LFO frequency" ) ), - m_lfoAmountModel( 0.0, 0.0, 0.0025, 0.0001, this, tr( "Seconds" ) ), - m_lfoPhaseModel( 90.0, 0.0, 360.0, 0.0001, this, tr( "Stereo phase" ) ), - m_feedbackModel( 0.0, -1.0, 1.0, 0.0001, this, tr( "Regen" ) ), - m_whiteNoiseAmountModel( 0.0, 0.0, 0.05, 0.0001, this, tr( "Noise" ) ), + m_delayTimeModel(0.001f, 0.0001f, 0.050f, 0.0001f, this, tr("Delay samples")), + m_lfoFrequencyModel(0.25f, 0.01f, 60, 0.0001f, 60000.f, this, tr("LFO frequency")), + m_lfoAmountModel(0.f, 0.f, 0.0025f, 0.0001f, this, tr("Amount")), + m_lfoPhaseModel(90.f, 0.f, 360.f, 0.0001f, this, tr("Stereo phase")), + m_feedbackModel(0.f, -1.f, 1.f, 0.0001f, this, tr("Feedback")), + m_whiteNoiseAmountModel(0.f, 0.f, 0.05f, 0.0001f, this, tr("Noise")), m_invertFeedbackModel ( false, this, tr( "Invert" ) ) { diff --git a/plugins/Flanger/FlangerEffect.cpp b/plugins/Flanger/FlangerEffect.cpp index 60b5df67b1f..c13de47cd09 100644 --- a/plugins/Flanger/FlangerEffect.cpp +++ b/plugins/Flanger/FlangerEffect.cpp @@ -25,10 +25,10 @@ #include "FlangerEffect.h" #include "Engine.h" #include "MonoDelay.h" -#include "Noise.h" #include "QuadratureLfo.h" #include "embed.h" +#include "lmms_math.h" #include "plugin_export.h" namespace lmms @@ -58,10 +58,9 @@ FlangerEffect::FlangerEffect( Model *parent, const Plugin::Descriptor::SubPlugin Effect( &flanger_plugin_descriptor, parent, key ), m_flangerControls( this ) { - m_lfo = new QuadratureLfo( Engine::audioEngine()->processingSampleRate() ); - m_lDelay = new MonoDelay( 1, Engine::audioEngine()->processingSampleRate() ); - m_rDelay = new MonoDelay( 1, Engine::audioEngine()->processingSampleRate() ); - m_noise = new Noise; + m_lfo = new QuadratureLfo( Engine::audioEngine()->outputSampleRate() ); + m_lDelay = new MonoDelay( 1, Engine::audioEngine()->outputSampleRate() ); + m_rDelay = new MonoDelay( 1, Engine::audioEngine()->outputSampleRate() ); } @@ -81,39 +80,31 @@ FlangerEffect::~FlangerEffect() { delete m_lfo; } - if(m_noise) - { - delete m_noise; - } } -bool FlangerEffect::processAudioBuffer( sampleFrame *buf, const fpp_t frames ) +Effect::ProcessStatus FlangerEffect::processImpl(SampleFrame* buf, const fpp_t frames) { - if( !isEnabled() || !isRunning () ) - { - return( false ); - } - double outSum = 0.0; const float d = dryLevel(); const float w = wetLevel(); - const float length = m_flangerControls.m_delayTimeModel.value() * Engine::audioEngine()->processingSampleRate(); + const float length = m_flangerControls.m_delayTimeModel.value() * Engine::audioEngine()->outputSampleRate(); const float noise = m_flangerControls.m_whiteNoiseAmountModel.value(); - float amplitude = m_flangerControls.m_lfoAmountModel.value() * Engine::audioEngine()->processingSampleRate(); + float amplitude = m_flangerControls.m_lfoAmountModel.value() * Engine::audioEngine()->outputSampleRate(); bool invertFeedback = m_flangerControls.m_invertFeedbackModel.value(); m_lfo->setFrequency( 1.0/m_flangerControls.m_lfoFrequencyModel.value() ); m_lfo->setOffset( m_flangerControls.m_lfoPhaseModel.value() / 180 * D_PI ); m_lDelay->setFeedback( m_flangerControls.m_feedbackModel.value() ); m_rDelay->setFeedback( m_flangerControls.m_feedbackModel.value() ); auto dryS = std::array{}; - float leftLfo; - float rightLfo; for( fpp_t f = 0; f < frames; ++f ) { - buf[f][0] += m_noise->tick() * noise; - buf[f][1] += m_noise->tick() * noise; + float leftLfo; + float rightLfo; + + buf[f][0] += (fastRandf(2.0f) - 1.0f) * noise; + buf[f][1] += (fastRandf(2.0f) - 1.0f) * noise; dryS[0] = buf[f][0]; dryS[1] = buf[f][1]; m_lfo->tick(&leftLfo, &rightLfo); @@ -131,10 +122,9 @@ bool FlangerEffect::processAudioBuffer( sampleFrame *buf, const fpp_t frames ) buf[f][0] = ( d * dryS[0] ) + ( w * buf[f][0] ); buf[f][1] = ( d * dryS[1] ) + ( w * buf[f][1] ); - outSum += buf[f][0]*buf[f][0] + buf[f][1]*buf[f][1]; } - checkGate( outSum / frames ); - return isRunning(); + + return ProcessStatus::ContinueIfNotQuiet; } @@ -142,9 +132,9 @@ bool FlangerEffect::processAudioBuffer( sampleFrame *buf, const fpp_t frames ) void FlangerEffect::changeSampleRate() { - m_lfo->setSampleRate( Engine::audioEngine()->processingSampleRate() ); - m_lDelay->setSampleRate( Engine::audioEngine()->processingSampleRate() ); - m_rDelay->setSampleRate( Engine::audioEngine()->processingSampleRate() ); + m_lfo->setSampleRate( Engine::audioEngine()->outputSampleRate() ); + m_lDelay->setSampleRate( Engine::audioEngine()->outputSampleRate() ); + m_rDelay->setSampleRate( Engine::audioEngine()->outputSampleRate() ); } diff --git a/plugins/Flanger/FlangerEffect.h b/plugins/Flanger/FlangerEffect.h index 8428d89a304..ec43d31993e 100644 --- a/plugins/Flanger/FlangerEffect.h +++ b/plugins/Flanger/FlangerEffect.h @@ -33,7 +33,6 @@ namespace lmms { class MonoDelay; -class Noise; class QuadratureLfo; @@ -42,7 +41,9 @@ class FlangerEffect : public Effect public: FlangerEffect( Model* parent , const Descriptor::SubPluginFeatures::Key* key ); ~FlangerEffect() override; - bool processAudioBuffer( sampleFrame *buf, const fpp_t frames ) override; + + ProcessStatus processImpl(SampleFrame* buf, const fpp_t frames) override; + EffectControls* controls() override { return &m_flangerControls; @@ -55,8 +56,6 @@ class FlangerEffect : public Effect MonoDelay* m_lDelay; MonoDelay* m_rDelay; QuadratureLfo* m_lfo; - Noise* m_noise; - }; diff --git a/plugins/Flanger/MonoDelay.cpp b/plugins/Flanger/MonoDelay.cpp index 3ec0289684f..269b77323f1 100644 --- a/plugins/Flanger/MonoDelay.cpp +++ b/plugins/Flanger/MonoDelay.cpp @@ -32,9 +32,9 @@ namespace lmms MonoDelay::MonoDelay( int maxTime , int sampleRate ) { m_buffer = 0; - m_maxTime = maxTime; + m_maxTime = static_cast(maxTime); m_maxLength = maxTime * sampleRate; - m_length = m_maxLength; + m_length = static_cast(m_maxLength); m_writeIndex = 0; m_feedback = 0.0f; @@ -57,7 +57,7 @@ MonoDelay::~MonoDelay() void MonoDelay::tick( sample_t* sample ) { m_writeIndex = ( m_writeIndex + 1 ) % ( int )m_maxLength; - int readIndex = m_writeIndex - m_length; + int readIndex = m_writeIndex - static_cast(m_length); if (readIndex < 0 ) { readIndex += m_maxLength; } float out = m_buffer[ readIndex ]; m_buffer[ m_writeIndex ] = *sample + ( out * m_feedback ); diff --git a/plugins/FreeBoy/CMakeLists.txt b/plugins/FreeBoy/CMakeLists.txt index 485ed3cc2e9..a08dfa439c6 100644 --- a/plugins/FreeBoy/CMakeLists.txt +++ b/plugins/FreeBoy/CMakeLists.txt @@ -1,21 +1,20 @@ -INCLUDE(BuildPlugin) -INCLUDE_DIRECTORIES(game-music-emu/gme) +include(BuildPlugin) -BUILD_PLUGIN(freeboy - FreeBoy.cpp - FreeBoy.h - GbApuWrapper.cpp - GbApuWrapper.h +add_library(gme STATIC game-music-emu/gme/Gb_Apu.cpp - game-music-emu/gme/Gb_Apu.h game-music-emu/gme/Gb_Oscs.cpp game-music-emu/gme/Blip_Buffer.cpp - game-music-emu/gme/Gb_Oscs.h - game-music-emu/gme/blargg_common.h - game-music-emu/gme/Blip_Buffer.h game-music-emu/gme/Multi_Buffer.cpp - game-music-emu/gme/blargg_source.h - game-music-emu/gme/Multi_Buffer.h +) +target_include_directories(gme PUBLIC game-music-emu/gme) +set_target_properties(gme PROPERTIES SYSTEM TRUE) + +build_plugin(freeboy + FreeBoy.cpp + FreeBoy.h + GbApuWrapper.cpp + GbApuWrapper.h MOCFILES FreeBoy.h EMBEDDED_RESOURCES "${CMAKE_CURRENT_SOURCE_DIR}/*.png" ) +target_link_libraries(freeboy gme) diff --git a/plugins/FreeBoy/FreeBoy.cpp b/plugins/FreeBoy/FreeBoy.cpp index f2dc95699ed..e9acddeeb15 100644 --- a/plugins/FreeBoy/FreeBoy.cpp +++ b/plugins/FreeBoy/FreeBoy.cpp @@ -220,30 +220,18 @@ QString FreeBoyInstrument::nodeName() const -/*f_cnt_t FreeBoyInstrument::desiredReleaseFrames() const +float FreeBoyInstrument::desiredReleaseTimeMs() const { - const float samplerate = Engine::audioEngine()->processingSampleRate(); - int maxrel = 0; - for( int i = 0 ; i < 3 ; ++i ) - { - if( maxrel < m_voice[i]->m_releaseModel.value() ) - maxrel = m_voice[i]->m_releaseModel.value(); - } - - return f_cnt_t( float(relTime[maxrel])*samplerate/1000.0 ); -}*/ - -f_cnt_t FreeBoyInstrument::desiredReleaseFrames() const -{ - return f_cnt_t( 1000 ); + // Previous implementation was 1000 samples. At 44.1 kHz this is somewhat shy of 23. ms. + return 23.f; } -void FreeBoyInstrument::playNote(NotePlayHandle* nph, sampleFrame* workingBuffer) +void FreeBoyInstrument::playNote(NotePlayHandle* nph, SampleFrame* workingBuffer) { const f_cnt_t tfp = nph->totalFramesPlayed(); - const int samplerate = Engine::audioEngine()->processingSampleRate(); + const int samplerate = Engine::audioEngine()->outputSampleRate(); const fpp_t frames = nph->framesLeftForCurrentPeriod(); const f_cnt_t offset = nph->noteOffset(); @@ -392,9 +380,8 @@ void FreeBoyInstrument::playNote(NotePlayHandle* nph, sampleFrame* workingBuffer papu->writeRegister(0xff23, 128); } - constexpr int bufSize = 2048; - int framesLeft = frames; - int dataLen = 0; + constexpr auto bufSize = f_cnt_t{2048}; + auto framesLeft = frames; auto buf = std::array{}; while (framesLeft > 0) { @@ -404,12 +391,11 @@ void FreeBoyInstrument::playNote(NotePlayHandle* nph, sampleFrame* workingBuffer papu->endFrame(FRAME_LENGTH); avail = papu->samplesAvail(); } - dataLen = framesLeft > avail ? avail : framesLeft; - dataLen = dataLen > bufSize ? bufSize : dataLen; + const auto dataLen = std::min({static_cast(avail), framesLeft, bufSize}); - long count = papu->readSamples(buf.data(), dataLen * 2) / 2; + const auto count = static_cast(papu->readSamples(buf.data(), dataLen * 2) / 2); - for (fpp_t frame = 0; frame < count; ++frame) + for (auto frame = std::size_t{0}; frame < count; ++frame) { for (ch_cnt_t ch = 0; ch < DEFAULT_CHANNELS; ++ch) { diff --git a/plugins/FreeBoy/FreeBoy.h b/plugins/FreeBoy/FreeBoy.h index 747305414ba..3a178fdb1d0 100644 --- a/plugins/FreeBoy/FreeBoy.h +++ b/plugins/FreeBoy/FreeBoy.h @@ -26,8 +26,9 @@ #ifndef LMMS_FREEBOY_H #define LMMS_FREEBOY_H +#include + #include "AutomatableModel.h" -#include "Blip_Buffer.h" #include "Instrument.h" #include "InstrumentView.h" #include "Graph.h" @@ -54,7 +55,7 @@ class FreeBoyInstrument : public Instrument FreeBoyInstrument( InstrumentTrack * _instrument_track ); ~FreeBoyInstrument() override = default; - void playNote(NotePlayHandle* nph, sampleFrame* workingBuffer) override; + void playNote(NotePlayHandle* nph, SampleFrame* workingBuffer) override; void deleteNotePluginData(NotePlayHandle* nph) override; void saveSettings( QDomDocument & _doc, QDomElement & _parent ) override; @@ -62,7 +63,7 @@ class FreeBoyInstrument : public Instrument QString nodeName() const override; - f_cnt_t desiredReleaseFrames() const override; + float desiredReleaseTimeMs() const override; gui::PluginView* instantiateView( QWidget * _parent ) override; diff --git a/plugins/FreeBoy/GbApuWrapper.h b/plugins/FreeBoy/GbApuWrapper.h index 493a2873153..88dc8261097 100644 --- a/plugins/FreeBoy/GbApuWrapper.h +++ b/plugins/FreeBoy/GbApuWrapper.h @@ -24,9 +24,8 @@ #ifndef LMMS_GB_APU_WRAPPER_H #define LMMS_GB_APU_WRAPPER_H -#include "Gb_Apu.h" -#include "Multi_Buffer.h" -#include "MemoryManager.h" +#include +#include namespace lmms { @@ -34,7 +33,6 @@ namespace lmms class GbApuWrapper : private Gb_Apu { - MM_OPERATORS public: GbApuWrapper() = default; ~GbApuWrapper() = default; diff --git a/plugins/GigPlayer/CMakeLists.txt b/plugins/GigPlayer/CMakeLists.txt index 7b634b605ce..ccec8c87336 100644 --- a/plugins/GigPlayer/CMakeLists.txt +++ b/plugins/GigPlayer/CMakeLists.txt @@ -1,23 +1,16 @@ if(LMMS_HAVE_GIG) INCLUDE(BuildPlugin) - INCLUDE_DIRECTORIES(${GIG_INCLUDE_DIRS}) + include_directories(SYSTEM ${GIG_INCLUDE_DIRS}) + SET(CMAKE_AUTOUIC ON) # Required for not crashing loading files with libgig - SET(GCC_COVERAGE_COMPILE_FLAGS "-fexceptions") - add_definitions(${GCC_COVERAGE_COMPILE_FLAGS}) - - # disable deprecated check for mingw-x-libgig - if(LMMS_BUILD_WIN32) - SET(GCC_GIG_COMPILE_FLAGS "-Wno-deprecated") - add_definitions(${GCC_GIG_COMPILE_FLAGS}) - endif(LMMS_BUILD_WIN32) + add_compile_options("-fexceptions") link_directories(${GIG_LIBRARY_DIRS}) link_libraries(${GIG_LIBRARIES}) build_plugin(gigplayer GigPlayer.cpp GigPlayer.h PatchesDialog.cpp PatchesDialog.h PatchesDialog.ui MOCFILES GigPlayer.h PatchesDialog.h - UICFILES PatchesDialog.ui EMBEDDED_RESOURCES "${CMAKE_CURRENT_SOURCE_DIR}/*.png" ) target_link_libraries(gigplayer SampleRate::samplerate) diff --git a/plugins/GigPlayer/GigPlayer.cpp b/plugins/GigPlayer/GigPlayer.cpp index 0713d310038..b72e30b3335 100644 --- a/plugins/GigPlayer/GigPlayer.cpp +++ b/plugins/GigPlayer/GigPlayer.cpp @@ -46,7 +46,7 @@ #include "Knob.h" #include "NotePlayHandle.h" #include "PathUtil.h" -#include "SampleBuffer.h" +#include "Sample.h" #include "Song.h" #include "PatchesDialog.h" @@ -81,7 +81,7 @@ Plugin::Descriptor PLUGIN_EXPORT gigplayer_plugin_descriptor = GigInstrument::GigInstrument( InstrumentTrack * _instrument_track ) : - Instrument( _instrument_track, &gigplayer_plugin_descriptor ), + Instrument(_instrument_track, &gigplayer_plugin_descriptor, nullptr, Flag::IsSingleStreamed | Flag::IsNotBendable), m_instance( nullptr ), m_instrument( nullptr ), m_filename( "" ), @@ -289,7 +289,7 @@ QString GigInstrument::getCurrentPatchName() // A key has been pressed -void GigInstrument::playNote( NotePlayHandle * _n, sampleFrame * ) +void GigInstrument::playNote( NotePlayHandle * _n, SampleFrame* ) { const float LOG440 = 2.643452676f; @@ -320,10 +320,10 @@ void GigInstrument::playNote( NotePlayHandle * _n, sampleFrame * ) // Process the notes and output a certain number of frames (e.g. 256, set in // the preferences) -void GigInstrument::play( sampleFrame * _working_buffer ) +void GigInstrument::play( SampleFrame* _working_buffer ) { const fpp_t frames = Engine::audioEngine()->framesPerPeriod(); - const int rate = Engine::audioEngine()->processingSampleRate(); + const auto rate = Engine::audioEngine()->outputSampleRate(); // Initialize to zeros std::memset( &_working_buffer[0][0], 0, DEFAULT_CHANNELS * frames * sizeof( float ) ); @@ -437,11 +437,11 @@ void GigInstrument::play( sampleFrame * _working_buffer ) if (sample.region->PitchTrack == true) { freq_factor *= sample.freqFactor; } // We need a bit of margin so we don't get glitching - samples = frames / freq_factor + MARGIN[m_interpolation]; + samples = frames / freq_factor + Sample::s_interpolationMargins[m_interpolation]; } // Load this note's data - sampleFrame sampleData[samples]; + SampleFrame sampleData[samples]; loadSample(sample, sampleData, samples); // Apply ADSR using a copy so if we don't use these samples when @@ -458,7 +458,7 @@ void GigInstrument::play( sampleFrame * _working_buffer ) // Output the data resampling if needed if( resample == true ) { - sampleFrame convertBuf[frames]; + SampleFrame convertBuf[frames]; // Only output if resampling is successful (note that "used" is output) if (sample.convertSampleRate(*sampleData, *convertBuf, samples, frames, freq_factor, used)) @@ -499,7 +499,7 @@ void GigInstrument::play( sampleFrame * _working_buffer ) -void GigInstrument::loadSample( GigSample& sample, sampleFrame* sampleData, f_cnt_t samples ) +void GigInstrument::loadSample( GigSample& sample, SampleFrame* sampleData, f_cnt_t samples ) { if( sampleData == nullptr || samples < 1 ) { @@ -746,7 +746,7 @@ void GigInstrument::addSamples( GigNote & gignote, bool wantReleaseSample ) if( gignote.midiNote >= keyLow && gignote.midiNote <= keyHigh ) { float attenuation = pDimRegion->GetVelocityAttenuation( gignote.velocity ); - float length = (float) pSample->SamplesTotal / Engine::audioEngine()->processingSampleRate(); + float length = (float) pSample->SamplesTotal / Engine::audioEngine()->outputSampleRate(); // TODO: sample panning? crossfade different layers? @@ -1182,7 +1182,7 @@ void GigSample::updateSampleRate() -bool GigSample::convertSampleRate( sampleFrame & oldBuf, sampleFrame & newBuf, +bool GigSample::convertSampleRate( SampleFrame & oldBuf, SampleFrame & newBuf, f_cnt_t oldSize, f_cnt_t newSize, float freq_factor, f_cnt_t& used ) { if( srcState == nullptr ) @@ -1216,7 +1216,7 @@ bool GigSample::convertSampleRate( sampleFrame & oldBuf, sampleFrame & newBuf, return false; } - if( src_data.output_frames_gen > 0 && src_data.output_frames_gen < newSize ) + if (src_data.output_frames_gen > 0 && static_cast(src_data.output_frames_gen) < newSize) { qCritical() << "GigInstrument: not enough frames, wanted" << newSize << "generated" << src_data.output_frames_gen; diff --git a/plugins/GigPlayer/GigPlayer.h b/plugins/GigPlayer/GigPlayer.h index e5039f109be..685c7f5469a 100644 --- a/plugins/GigPlayer/GigPlayer.h +++ b/plugins/GigPlayer/GigPlayer.h @@ -38,7 +38,6 @@ #include "Knob.h" #include "LcdSpinBox.h" #include "LedCheckBox.h" -#include "MemoryManager.h" #include "gig.h" @@ -158,7 +157,7 @@ class GigSample // Needed since libsamplerate stores data internally between calls void updateSampleRate(); - bool convertSampleRate( sampleFrame & oldBuf, sampleFrame & newBuf, + bool convertSampleRate( SampleFrame & oldBuf, SampleFrame & newBuf, f_cnt_t oldSize, f_cnt_t newSize, float freq_factor, f_cnt_t& used ); gig::Sample * sample; @@ -236,7 +235,6 @@ class GigNote class GigInstrument : public Instrument { Q_OBJECT - MM_OPERATORS mapPropertyFromModel( int, getBank, setBank, m_bankNum ); mapPropertyFromModel( int, getPatch, setPatch, m_patchNum ); @@ -245,10 +243,10 @@ class GigInstrument : public Instrument GigInstrument( InstrumentTrack * _instrument_track ); ~GigInstrument() override; - void play( sampleFrame * _working_buffer ) override; + void play( SampleFrame* _working_buffer ) override; void playNote( NotePlayHandle * _n, - sampleFrame * _working_buffer ) override; + SampleFrame* _working_buffer ) override; void deleteNotePluginData( NotePlayHandle * _n ) override; @@ -261,16 +259,6 @@ class GigInstrument : public Instrument QString nodeName() const override; - f_cnt_t desiredReleaseFrames() const override - { - return 0; - } - - Flags flags() const override - { - return Flag::IsSingleStreamed | Flag::IsNotBendable; - } - gui::PluginView* instantiateView( QWidget * _parent ) override; QString getCurrentPatchName(); @@ -324,7 +312,7 @@ public slots: Dimension getDimensions( gig::Region * pRegion, int velocity, bool release ); // Load sample data from the Gig file, looping the sample where needed - void loadSample( GigSample& sample, sampleFrame* sampleData, f_cnt_t samples ); + void loadSample( GigSample& sample, SampleFrame* sampleData, f_cnt_t samples ); f_cnt_t getLoopedIndex( f_cnt_t index, f_cnt_t startf, f_cnt_t endf ) const; f_cnt_t getPingPongIndex( f_cnt_t index, f_cnt_t startf, f_cnt_t endf ) const; diff --git a/plugins/GranularPitchShifter/CMakeLists.txt b/plugins/GranularPitchShifter/CMakeLists.txt new file mode 100755 index 00000000000..c8f70fc7882 --- /dev/null +++ b/plugins/GranularPitchShifter/CMakeLists.txt @@ -0,0 +1,9 @@ +include(BuildPlugin) +build_plugin(granularpitchshifter + GranularPitchShifterEffect.cpp + GranularPitchShifterControls.cpp + GranularPitchShifterControlDialog.cpp + MOCFILES + GranularPitchShifterControls.h + GranularPitchShifterControlDialog.h + EMBEDDED_RESOURCES *.png) diff --git a/plugins/GranularPitchShifter/GranularPitchShifterControlDialog.cpp b/plugins/GranularPitchShifter/GranularPitchShifterControlDialog.cpp new file mode 100755 index 00000000000..1231535c293 --- /dev/null +++ b/plugins/GranularPitchShifter/GranularPitchShifterControlDialog.cpp @@ -0,0 +1,157 @@ +/* + * GranularPitchShifterControlDialog.cpp + * + * Copyright (c) 2024 Lost Robot + * + * This file is part of LMMS - https://lmms.io + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#include "GranularPitchShifterControlDialog.h" +#include "GranularPitchShifterControls.h" +#include "embed.h" +#include "LcdFloatSpinBox.h" +#include "Knob.h" +#include "GuiApplication.h" +#include "PixmapButton.h" + + +namespace lmms::gui +{ + +GranularPitchShifterControlDialog::GranularPitchShifterControlDialog(GranularPitchShifterControls* controls) : + EffectControlDialog(controls) +{ + setAutoFillBackground(true); + QPalette pal; + pal.setBrush(backgroundRole(), PLUGIN_NAME::getIconPixmap("artwork")); + setPalette(pal); + setFixedSize(305, 180); + + auto makeKnob = [this](KnobType style, int x, int y, const QString& hintText, const QString& unit, FloatModel* model) + { + Knob* newKnob = new Knob(style, this); + newKnob->move(x, y); + newKnob->setModel(model); + newKnob->setHintText(hintText, unit); + return newKnob; + }; + + makeKnob(KnobType::Bright26, 19, 78, tr("Grain Size:"), " Hz", &controls->m_sizeModel); + makeKnob(KnobType::Bright26, 116, 10, tr("Spray:"), " seconds", &controls->m_sprayModel); + makeKnob(KnobType::Bright26, 158, 10, tr("Jitter:"), " octaves", &controls->m_jitterModel); + makeKnob(KnobType::Bright26, 200, 10, tr("Twitch:"), " octaves", &controls->m_twitchModel); + makeKnob(KnobType::Bright26, 188, 60, tr("Spray Stereo Spread:"), "", &controls->m_spraySpreadModel); + makeKnob(KnobType::Bright26, 135, 110, tr("Grain Shape:"), "", &controls->m_shapeModel); + makeKnob(KnobType::Bright26, 188, 110, tr("Fade Length:"), "", &controls->m_fadeLengthModel); + makeKnob(KnobType::Bright26, 258, 45, tr("Feedback:"), "", &controls->m_feedbackModel); + makeKnob(KnobType::Bright26, 258, 92, tr("Minimum Allowed Latency:"), " seconds", &controls->m_minLatencyModel); + makeKnob(KnobType::Small17, 66, 157, tr("Density:"), "x", &controls->m_densityModel); + makeKnob(KnobType::Small17, 8, 157, tr("Glide:"), " seconds", &controls->m_glideModel); + + LcdFloatSpinBox* pitchBox = new LcdFloatSpinBox(3, 2, "11green", tr("Pitch"), this); + pitchBox->move(15, 41); + pitchBox->setModel(&controls->m_pitchModel); + pitchBox->setToolTip(tr("Pitch")); + pitchBox->setSeamless(true, true); + + LcdFloatSpinBox* pitchSpreadBox = new LcdFloatSpinBox(3, 2, "11green", tr("Pitch Stereo Spread"), this); + pitchSpreadBox->move(133, 66); + pitchSpreadBox->setModel(&controls->m_pitchSpreadModel); + pitchSpreadBox->setToolTip(tr("Pitch Stereo Spread")); + pitchSpreadBox->setSeamless(true, true); + + QPushButton button("Show Help", this); + connect(&button, &QPushButton::clicked, this, &GranularPitchShifterControlDialog::showHelpWindow); + + PixmapButton* m_helpBtn = new PixmapButton(this, nullptr); + m_helpBtn->move(278, 159); + m_helpBtn->setActiveGraphic(PLUGIN_NAME::getIconPixmap("help_active")); + m_helpBtn->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("help_inactive")); + m_helpBtn->setToolTip(tr("Open help window")); + connect(m_helpBtn, SIGNAL(clicked()), this, SLOT(showHelpWindow())); + + PixmapButton* prefilterButton = new PixmapButton(this, tr("Prefilter")); + prefilterButton->move(8, 133); + prefilterButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("prefilter_active")); + prefilterButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("prefilter_inactive")); + prefilterButton->setCheckable(true); + prefilterButton->setModel(&controls->m_prefilterModel); + prefilterButton->setToolTip(tr("Prefilter")); + + ComboBox* rangeBox = new ComboBox(this); + rangeBox->setGeometry(189, 155, 80, 22); + rangeBox->setModel(&controls->m_rangeModel); + controls->updateRange(); +} + +void GranularPitchShifterControlDialog::showHelpWindow() { + GranularPitchShifterHelpView::getInstance()->close(); + GranularPitchShifterHelpView::getInstance()->show(); +} + + +QString GranularPitchShifterHelpView::s_helpText= +"
" +"Granular Pitch Shifter

" +"Plugin by Lost Robot
" +"GUI by thismoon
" +"
" +"

Grain:

" +"Pitch - The amount of pitch shifting to perform, in 12EDO semitones.
" +"Size - The length of each grain, in Hz. By default, new grains will be created at double this rate.
In most cases, you'll want this to be set to higher frequencies when shifting the pitch upward, and vice-versa.
" +"

Random:

" +"Spray - The amount of randomization for the playback position of each grain, in seconds.
This does not change when the grain plays, but rather what audio the grain is pulling from.
For example, a value of 0.5 seconds will allow each grain to play back audio from up to half of a second ago.
It's oftentimes recommended to use at least a small amount of Spray, as this will break up the periodicity in the grains, which is usually the main artifact caused by a granular pitch shifter.
This will also make the grains uncorrelated with each other, guaranteeing that a grain Shape value of 2 will always be optimal.
" +"Jitter - The amount of randomization for the pitch of each grain, in octaves.
This does not impact how often grains are created.
" +"Twitch - The amount of randomization for how often new grains are created, in octaves.
Jitter and Twitch both use the same random numbers, so if they're at the same value, then the grain creation timings will be changed exactly proportionally to their change in pitch.
" +"

Stereo:

" +"Pitch - The total distance in pitch between both stereo channels, in 12EDO semitones.
Half of the amount of pitch shifting shown will be applied to the right channel, and the opposite to the left channel.
" +"Spray - The allowed distance between each channel's randomized position with the Spray feature in the Random category.
A value of 1 makes the Spray values in each channel entirely unlinked." +"

Shape:

" +"Shape - The shape of each grain's fades. In most cases, 2 is the optimal value, providing equal-power fades.
However, when the plugin is performing minimal pitch shifting and has most of its parameters at default, a value of 1 may be more optimal, providing equal-gain fades.
All fades are designed for 50% grain overlap.
" +"Fade - The length of the grain fades. A value of 1 provides the cleanest fades, causing those fades to reach across the entire grain.
Values below 1 make the fade artifacts more audible, but those fades will only apply to the outer edges of each grain.
A value of 0 will result in clicking sounds due to the fades no longer being present.
" +"

Delay:

" +"Feedback - The amount of feedback for the pitch shifter.
This feeds a portion of the pitch shifter output back into the input buffer. Large values can be dangerous.
" +"Latency - The minimum amount of latency the pitch shifter will have.
This granular pitch shifter dynamically changes its latency to be at the minimum possible amount depending on your settings.
If you'd like for this latency to be more predictable, you may increase the value of this parameter until the latency no longer changes.
This parameter may also be used to be set the minimum amount of delay for the feedback.
A larger latency amount can remove subtle fluttering artifacts that may result from automating the pitch shifting amount at high speeds." +"

Miscellaneous:

" +"Prefilter - Enables a 12 dB lowpass filter prior to the pitch shifting which automatically adjusts its cutoff to drastically reduce any resulting aliasing.
" +"Density - The multiplier for how often grains are spawned.
This will increase the grain overlap above 50%.
It will create painful piercing sounds if you don't make use of any of the knobs in the Random category.
Otherwise, you can get some interesting effects similar to unison or a stationary Paulstretch.
Note that this knob uses by far the most CPU out of any parameter in this plugin when increased.
" +"Glide - The length of interpolation for the amount of pitch shifting.
A small amount of glide is very effective for cleaning up many of the artifacts that may result from changing the pitch shift amount over time.
" +"Range - The length of the pitch shifter's internal ring buffer.
Changing this will change the minimum and maximum values for some of the other parameters, which are listed in each of the options.
Increase it if you need parameter values that aren't supported with the minimum buffer length. Otherwise, it's best to leave it at its minimum value.
" +; + +GranularPitchShifterHelpView::GranularPitchShifterHelpView():QTextEdit(s_helpText) +{ +#if (QT_VERSION < QT_VERSION_CHECK(5,12,0)) + // Bug workaround: https://codereview.qt-project.org/c/qt/qtbase/+/225348 + using ::operator|; +#endif + setWindowTitle("Granular Pitch Shifter Help"); + setTextInteractionFlags(Qt::TextSelectableByKeyboard | Qt::TextSelectableByMouse); + getGUI()->mainWindow()->addWindowedWidget(this); + parentWidget()->setAttribute(Qt::WA_DeleteOnClose, false); + parentWidget()->setWindowIcon(PLUGIN_NAME::getIconPixmap("logo")); + + // No maximize button + Qt::WindowFlags flags = parentWidget()->windowFlags(); + flags &= ~Qt::WindowMaximizeButtonHint; + parentWidget()->setWindowFlags(flags); +} + + +} // namespace lmms::gui diff --git a/plugins/GranularPitchShifter/GranularPitchShifterControlDialog.h b/plugins/GranularPitchShifter/GranularPitchShifterControlDialog.h new file mode 100755 index 00000000000..751106b2ce2 --- /dev/null +++ b/plugins/GranularPitchShifter/GranularPitchShifterControlDialog.h @@ -0,0 +1,75 @@ +/* + * GranularPitchShifterControlDialog.h + * + * Copyright (c) 2024 Lost Robot + * + * This file is part of LMMS - https://lmms.io + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#ifndef LMMS_GRANULAR_PITCH_SHIFTER_CONTROLS_H +#define LMMS_GRANULAR_PITCH_SHIFTER_CONTROLS_H + +#include "EffectControlDialog.h" + +#include +#include "ComboBox.h" +#include "GuiApplication.h" +#include "MainWindow.h" + +namespace lmms +{ + +class GranularPitchShifterControls; +class FloatModel; + +namespace gui +{ + +class Knob; + +class GranularPitchShifterControlDialog : public EffectControlDialog +{ + Q_OBJECT +public: + GranularPitchShifterControlDialog(GranularPitchShifterControls* controls); + ~GranularPitchShifterControlDialog() override = default; +public slots: + void showHelpWindow(); +}; + +class GranularPitchShifterHelpView : public QTextEdit +{ + Q_OBJECT +public: + static GranularPitchShifterHelpView* getInstance() + { + static GranularPitchShifterHelpView instance; + return &instance; + } + +private: + GranularPitchShifterHelpView(); + static QString s_helpText; +}; + +} // namespace gui + +} // namespace lmms + +#endif // LMMS_GRANULAR_PITCH_SHIFTER_CONTROLS_H diff --git a/plugins/GranularPitchShifter/GranularPitchShifterControls.cpp b/plugins/GranularPitchShifter/GranularPitchShifterControls.cpp new file mode 100755 index 00000000000..86e9a0cfd7b --- /dev/null +++ b/plugins/GranularPitchShifter/GranularPitchShifterControls.cpp @@ -0,0 +1,149 @@ +/* + * GranularPitchShifterControls.cpp + * + * Copyright (c) 2024 Lost Robot + * + * This file is part of LMMS - https://lmms.io + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#include + +#include "GranularPitchShifterControls.h" +#include "GranularPitchShifterEffect.h" + +namespace lmms +{ + +GranularPitchShifterControls::GranularPitchShifterControls(GranularPitchShifterEffect* effect) : + EffectControls(effect), + m_effect(effect), + m_pitchModel(1.f, -48.f, 24.f, 0.01f, this, tr("Pitch")), + m_sizeModel(10.f, 2.f, 1000.f, 0.001f, this, tr("Grain Size")), + m_sprayModel(0.005f, 0.f, 0.5f, 0.0001f, this, tr("Spray")), + m_jitterModel(0.f, 0.f, 1.f, 0.0001f, this, tr("Jitter")), + m_twitchModel(0.f, 0.f, 1.f, 0.0001f, this, tr("Twitch")), + m_pitchSpreadModel(0.f, -24.f, 24.f, 0.01f, this, tr("Pitch Stereo Spread")), + m_spraySpreadModel(0.f, 0.f, 1.f, 0.0001f, this, tr("Spray Stereo")), + m_shapeModel(2.f, 1.f, 2.f, 0.0001f, this, tr("Shape")), + m_fadeLengthModel(1.f, 0.001f, 1.f, 0.00001f, this, tr("Fade Length")), + m_feedbackModel(0.f, 0.f, 1.f, 0.00001f, this, tr("Feedback")), + m_minLatencyModel(0.01f, 0.f, 1.f, 0.00001f, this, tr("Minimum Allowed Latency")), + m_prefilterModel(true, this, tr("Prefilter")), + m_densityModel(1.f, 1.f, 16.f, 0.0001f, this, tr("Density")), + m_glideModel(0.01f, 0.f, 1.f, 0.0001f, this, tr("Glide")), + m_rangeModel(this, tr("Ring Buffer Length")) +{ + m_sizeModel.setScaleLogarithmic(true); + m_sprayModel.setScaleLogarithmic(true); + m_spraySpreadModel.setScaleLogarithmic(true); + m_minLatencyModel.setScaleLogarithmic(true); + m_densityModel.setScaleLogarithmic(true); + m_glideModel.setScaleLogarithmic(true); + + m_rangeModel.addItem(tr("5 Seconds")); + m_rangeModel.addItem(tr("10 Seconds (Size)")); + m_rangeModel.addItem(tr("40 Seconds (Size and Pitch)")); + m_rangeModel.addItem(tr("40 Seconds (Size and Spray and Jitter)")); + m_rangeModel.addItem(tr("120 Seconds (All of the above)")); + + connect(&m_rangeModel, &ComboBoxModel::dataChanged, this, &GranularPitchShifterControls::updateRange); +} + +void GranularPitchShifterControls::updateRange() +{ + switch (m_rangeModel.value()) + { + case 0:// 5 seconds + m_sizeModel.setRange(4.f, 1000.f, 0.001f); + m_pitchModel.setRange(-48.f, 24.f, 0.01f); + m_sprayModel.setRange(0.f, 0.5f, 0.0001f); + m_jitterModel.setRange(0.f, 1.f, 0.0001f); + break; + case 1:// 10 seconds (size) + m_sizeModel.setRange(2.f, 1000.f, 0.001f); + m_pitchModel.setRange(-48.f, 24.f, 0.01f); + m_sprayModel.setRange(0.f, 0.5f, 0.0001f); + m_jitterModel.setRange(0.f, 1.f, 0.0001f); + break; + case 2:// 40 seconds (size and pitch) + m_sizeModel.setRange(2.f, 1000.f, 0.001f); + m_pitchModel.setRange(-48.f, 48.f, 0.01f); + m_sprayModel.setRange(0.f, 0.5f, 0.0001f); + m_jitterModel.setRange(0.f, 1.f, 0.0001f); + break; + case 3:// 40 seconds (size and spray and jitter) + m_sizeModel.setRange(2.f, 1000.f, 0.001f); + m_pitchModel.setRange(-48.f, 24.f, 0.01f); + m_sprayModel.setRange(0.f, 20.f, 0.0001f); + m_jitterModel.setRange(0.f, 2.f, 0.0001f); + break; + case 4:// 120 seconds (all of the above) + m_sizeModel.setRange(2.f, 1000.f, 0.001f); + m_pitchModel.setRange(-48.f, 48.f, 0.01f); + m_sprayModel.setRange(0.f, 40.f, 0.0001f); + m_jitterModel.setRange(0.f, 2.f, 0.0001f); + break; + default: + break; + } + m_effect->sampleRateNeedsUpdate(); +} + +void GranularPitchShifterControls::loadSettings(const QDomElement& parent) +{ + // must be loaded first so the ranges are set properly + m_rangeModel.loadSettings(parent, "range"); + + m_pitchModel.loadSettings(parent, "pitch"); + m_sizeModel.loadSettings(parent, "size"); + m_sprayModel.loadSettings(parent, "spray"); + m_jitterModel.loadSettings(parent, "jitter"); + m_twitchModel.loadSettings(parent, "twitch"); + m_pitchSpreadModel.loadSettings(parent, "pitchSpread"); + m_spraySpreadModel.loadSettings(parent, "spraySpread"); + m_shapeModel.loadSettings(parent, "shape"); + m_fadeLengthModel.loadSettings(parent, "fadeLength"); + m_feedbackModel.loadSettings(parent, "feedback"); + m_minLatencyModel.loadSettings(parent, "minLatency"); + m_prefilterModel.loadSettings(parent, "prefilter"); + m_densityModel.loadSettings(parent, "density"); + m_glideModel.loadSettings(parent, "glide"); +} + +void GranularPitchShifterControls::saveSettings(QDomDocument& doc, QDomElement& parent) +{ + m_rangeModel.saveSettings(doc, parent, "range"); + m_pitchModel.saveSettings(doc, parent, "pitch"); + m_sizeModel.saveSettings(doc, parent, "size"); + m_sprayModel.saveSettings(doc, parent, "spray"); + m_jitterModel.saveSettings(doc, parent, "jitter"); + m_twitchModel.saveSettings(doc, parent, "twitch"); + m_pitchSpreadModel.saveSettings(doc, parent, "pitchSpread"); + m_spraySpreadModel.saveSettings(doc, parent, "spraySpread"); + m_shapeModel.saveSettings(doc, parent, "shape"); + m_fadeLengthModel.saveSettings(doc, parent, "fadeLength"); + m_feedbackModel.saveSettings(doc, parent, "feedback"); + m_minLatencyModel.saveSettings(doc, parent, "minLatency"); + m_prefilterModel.saveSettings(doc, parent, "prefilter"); + m_densityModel.saveSettings(doc, parent, "density"); + m_glideModel.saveSettings(doc, parent, "glide"); +} + + +} // namespace lmms diff --git a/plugins/GranularPitchShifter/GranularPitchShifterControls.h b/plugins/GranularPitchShifter/GranularPitchShifterControls.h new file mode 100755 index 00000000000..3ae8f881941 --- /dev/null +++ b/plugins/GranularPitchShifter/GranularPitchShifterControls.h @@ -0,0 +1,87 @@ +/* + * GranularPitchShifterControls.h + * + * Copyright (c) 2024 Lost Robot + * + * This file is part of LMMS - https://lmms.io + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#ifndef LMMS_GRANULAR_PITCH_SHIFTER_CONTROL_DIALOG_H +#define LMMS_GRANULAR_PITCH_SHIFTER_CONTROL_DIALOG_H + +#include "EffectControls.h" +#include "GranularPitchShifterControlDialog.h" + +namespace lmms +{ + +class GranularPitchShifterEffect; + +namespace gui +{ +class GranularPitchShifterControlDialog; +} + +class GranularPitchShifterControls : public EffectControls +{ + Q_OBJECT +public: + GranularPitchShifterControls(GranularPitchShifterEffect* effect); + ~GranularPitchShifterControls() override = default; + + void saveSettings(QDomDocument& doc, QDomElement& parent) override; + void loadSettings(const QDomElement& parent) override; + inline QString nodeName() const override + { + return "GranularPitchShifterControls"; + } + gui::EffectControlDialog* createView() override + { + return new gui::GranularPitchShifterControlDialog(this); + } + int controlCount() override { return 4; } + +public slots: + void updateRange(); + +private: + GranularPitchShifterEffect* m_effect; + FloatModel m_pitchModel; + FloatModel m_sizeModel; + FloatModel m_sprayModel; + FloatModel m_jitterModel; + FloatModel m_twitchModel; + FloatModel m_pitchSpreadModel; + FloatModel m_spraySpreadModel; + FloatModel m_shapeModel; + FloatModel m_fadeLengthModel; + FloatModel m_feedbackModel; + FloatModel m_minLatencyModel; + BoolModel m_prefilterModel; + FloatModel m_densityModel; + FloatModel m_glideModel; + ComboBoxModel m_rangeModel; + + friend class gui::GranularPitchShifterControlDialog; + friend class GranularPitchShifterEffect; +}; + +} // namespace lmms + +#endif // LMMS_GRANULAR_PITCH_SHIFTER_CONTROL_DIALOG_H diff --git a/plugins/GranularPitchShifter/GranularPitchShifterEffect.cpp b/plugins/GranularPitchShifter/GranularPitchShifterEffect.cpp new file mode 100755 index 00000000000..27c935ab9ab --- /dev/null +++ b/plugins/GranularPitchShifter/GranularPitchShifterEffect.cpp @@ -0,0 +1,294 @@ +/* + * GranularPitchShifter.cpp + * + * Copyright (c) 2024 Lost Robot + * + * This file is part of LMMS - https://lmms.io + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#include "GranularPitchShifterEffect.h" + +#include +#include "embed.h" +#include "plugin_export.h" + + +namespace lmms +{ + +extern "C" +{ +Plugin::Descriptor PLUGIN_EXPORT granularpitchshifter_plugin_descriptor = +{ + LMMS_STRINGIFY(PLUGIN_NAME), + "Granular Pitch Shifter", + QT_TRANSLATE_NOOP("PluginBrowser", "Granular pitch shifter"), + "Lost Robot ", + 0x0100, + Plugin::Type::Effect, + new PluginPixmapLoader("logo"), + nullptr, + nullptr, +} ; +} + + +GranularPitchShifterEffect::GranularPitchShifterEffect(Model* parent, const Descriptor::SubPluginFeatures::Key* key) : + Effect(&granularpitchshifter_plugin_descriptor, parent, key), + m_granularpitchshifterControls(this), + m_prefilter({PrefilterLowpass(), PrefilterLowpass()}) +{ + autoQuitModel()->setValue(autoQuitModel()->maxValue()); + + changeSampleRate(); +} + + +Effect::ProcessStatus GranularPitchShifterEffect::processImpl(SampleFrame* buf, const fpp_t frames) +{ + const float d = dryLevel(); + const float w = wetLevel(); + + const ValueBuffer* pitchBuf = m_granularpitchshifterControls.m_pitchModel.valueBuffer(); + const ValueBuffer* pitchSpreadBuf = m_granularpitchshifterControls.m_pitchSpreadModel.valueBuffer(); + + const float size = m_granularpitchshifterControls.m_sizeModel.value(); + const float shape = m_granularpitchshifterControls.m_shapeModel.value(); + const float jitter = m_granularpitchshifterControls.m_jitterModel.value(); + const float twitch = m_granularpitchshifterControls.m_twitchModel.value(); + const float spray = m_granularpitchshifterControls.m_sprayModel.value(); + const float spraySpread = m_granularpitchshifterControls.m_spraySpreadModel.value(); + const float density = m_granularpitchshifterControls.m_densityModel.value(); + const float glide = m_granularpitchshifterControls.m_glideModel.value(); + const int minLatency = m_granularpitchshifterControls.m_minLatencyModel.value() * m_sampleRate; + const float densityInvRoot = std::sqrt(1.f / density); + const float feedback = m_granularpitchshifterControls.m_feedbackModel.value(); + const float fadeLength = 1.f / m_granularpitchshifterControls.m_fadeLengthModel.value(); + const bool prefilter = m_granularpitchshifterControls.m_prefilterModel.value(); + + if (glide != m_oldGlide) + { + m_oldGlide = glide; + m_glideCoef = glide > 0 ? std::exp(-1 / (glide * m_sampleRate)) : 0; + } + + const float shapeK = cosWindowApproxK(shape); + const int sizeSamples = m_sampleRate / size; + const float waitMult = sizeSamples / (density * 2); + + for (fpp_t f = 0; f < frames; ++f) + { + const double pitch = (pitchBuf ? pitchBuf->value(f) : m_granularpitchshifterControls.m_pitchModel.value()) * (1. / 12.); + const double pitchSpread = (pitchSpreadBuf ? pitchSpreadBuf->value(f) : m_granularpitchshifterControls.m_pitchSpreadModel.value()) * (1. / 24.); + + // interpolate pitch depending on glide + for (int i = 0; i < 2; ++i) + { + double targetVal = pitch + pitchSpread * (i ? 1. : -1.); + + if (targetVal == m_truePitch[i]) { continue; } + m_updatePitches = true; + + m_truePitch[i] = m_glideCoef * m_truePitch[i] + (1. - m_glideCoef) * targetVal; + // we crudely lock the pitch to the target value once it gets close enough, so we can save on CPU + if (std::abs(targetVal - m_truePitch[i]) < GlideSnagRadius) { m_truePitch[i] = targetVal; } + } + + // this stuff is computationally expensive, so we should only do it when necessary + if (m_updatePitches) + { + m_updatePitches = false; + + std::array speed = { + std::exp2(m_truePitch[0]), + std::exp2(m_truePitch[1]) + }; + std::array ratio = { + speed[0] / m_speed[0], + speed[1] / m_speed[1] + }; + + for (int i = 0; i < m_grainCount; ++i) + { + for (int j = 0; j < 2; ++j) + { + m_grains[i].grainSpeed[j] *= ratio[j]; + + // we unfortunately need to do extra stuff to ensure these don't shoot past the write index... + if (m_grains[i].grainSpeed[j] > 1) + { + double distance = m_writePoint - m_grains[i].readPoint[j] - SafetyLatency; + if (distance <= 0) { distance += m_ringBufLength; } + double grainSpeedRequired = ((m_grains[i].grainSpeed[j] - 1.) / distance) * (1. - m_grains[i].phase); + m_grains[i].phaseSpeed[j] = std::max(m_grains[i].phaseSpeed[j], grainSpeedRequired); + } + } + } + m_speed[0] = speed[0]; + m_speed[1] = speed[1]; + + // prevent aliasing by lowpassing frequencies that the pitch shifting would push above nyquist + m_prefilter[0].setCoefs(m_sampleRate, std::min(m_nyquist / static_cast(speed[0]), m_nyquist) * PrefilterBandwidth); + m_prefilter[1].setCoefs(m_sampleRate, std::min(m_nyquist / static_cast(speed[1]), m_nyquist) * PrefilterBandwidth); + } + + std::array s = {0, 0}; + std::array filtered = {buf[f][0], buf[f][1]}; + + // spawn a new grain if it's time + if (++m_timeSinceLastGrain >= m_nextWaitRandomization * waitMult) + { + m_timeSinceLastGrain = 0; + double randThing = fast_rand() * static_cast(FAST_RAND_RATIO) * 2. - 1.; + m_nextWaitRandomization = std::exp2(randThing * twitch); + double grainSpeed = 1. / std::exp2(randThing * jitter); + + std::array sprayResult = {0, 0}; + if (spray > 0) + { + sprayResult[0] = fast_rand() * FAST_RAND_RATIO * spray * m_sampleRate; + sprayResult[1] = linearInterpolate( + sprayResult[0], + fast_rand() * FAST_RAND_RATIO * spray * m_sampleRate, + spraySpread); + } + + std::array readPoint; + int latency = std::max(static_cast(std::max(sizeSamples * (std::max(m_speed[0], m_speed[1]) * grainSpeed - 1.), 0.) + SafetyLatency), minLatency); + for (int i = 0; i < 2; ++i) + { + readPoint[i] = m_writePoint - latency - sprayResult[i]; + if (readPoint[i] < 0) { readPoint[i] += m_ringBufLength; } + } + const double phaseInc = 1. / sizeSamples; + m_grains.push_back(Grain(grainSpeed * m_speed[0], grainSpeed * m_speed[1], phaseInc, phaseInc, readPoint[0], readPoint[1])); + ++m_grainCount; + } + + for (int i = 0; i < m_grainCount; ++i) + { + m_grains[i].phase += std::max(m_grains[i].phaseSpeed[0], m_grains[i].phaseSpeed[1]); + if (m_grains[i].phase >= 1) + { + // grain is done, delete it + std::swap(m_grains[i], m_grains[m_grainCount-1]); + m_grains.pop_back(); + --i; + --m_grainCount; + continue; + } + + m_grains[i].readPoint[0] += m_grains[i].grainSpeed[0]; + m_grains[i].readPoint[1] += m_grains[i].grainSpeed[1]; + if (m_grains[i].readPoint[0] >= m_ringBufLength) { m_grains[i].readPoint[0] -= m_ringBufLength; } + if (m_grains[i].readPoint[1] >= m_ringBufLength) { m_grains[i].readPoint[1] -= m_ringBufLength; } + + const float fadePos = std::clamp((-std::abs(-2.f * static_cast(m_grains[i].phase) + 1.f) + 0.5f) * fadeLength + 0.5f, 0.f, 1.f); + const float windowVal = cosHalfWindowApprox(fadePos, shapeK); + s[0] += getHermiteSample(m_grains[i].readPoint[0], 0) * windowVal; + s[1] += getHermiteSample(m_grains[i].readPoint[1], 1) * windowVal; + } + + // note that adding two signals together, when uncorrelated, results in a signal power multiplication of sqrt(2), not 2 + s[0] *= densityInvRoot; + s[1] *= densityInvRoot; + + // 1-pole highpass for DC offset removal, to make feedback safer + s[0] -= (m_dcVal[0] = (1.f - m_dcCoeff) * s[0] + m_dcCoeff * m_dcVal[0]); + s[1] -= (m_dcVal[1] = (1.f - m_dcCoeff) * s[1] + m_dcCoeff * m_dcVal[1]); + + // cheap safety saturator to protect against infinite feedback + if (feedback > 0) + { + s[0] = safetySaturate(s[0]); + s[1] = safetySaturate(s[1]); + } + + if (++m_writePoint >= m_ringBufLength) + { + m_writePoint = 0; + } + if (prefilter) + { + filtered[0] = m_prefilter[0].process(filtered[0]); + filtered[1] = m_prefilter[1].process(filtered[1]); + } + + m_ringBuf[m_writePoint][0] = filtered[0] + s[0] * feedback; + m_ringBuf[m_writePoint][1] = filtered[1] + s[1] * feedback; + + buf[f][0] = d * buf[f][0] + w * s[0]; + buf[f][1] = d * buf[f][1] + w * s[1]; + } + + if (m_sampleRateNeedsUpdate) + { + m_sampleRateNeedsUpdate = false; + changeSampleRate(); + } + + return Effect::ProcessStatus::ContinueIfNotQuiet; +} + +void GranularPitchShifterEffect::changeSampleRate() +{ + const int range = m_granularpitchshifterControls.m_rangeModel.value(); + const float ringBufLength = RangeSeconds[range]; + + m_sampleRate = Engine::audioEngine()->outputSampleRate(); + m_nyquist = m_sampleRate / 2; + + m_ringBufLength = m_sampleRate * ringBufLength; + m_ringBuf.resize(m_ringBufLength); + for (size_t i = 0; i < static_cast(m_ringBufLength); ++i) + { + m_ringBuf[i][0] = 0; + m_ringBuf[i][1] = 0; + } + m_writePoint = 0; + + m_oldGlide = -1; + + m_updatePitches = true; + + m_grains.clear(); + m_grainCount = 0; + m_grains.reserve(8);// arbitrary + + m_dcCoeff = std::exp(-2.0 * F_PI * DcRemovalHz / m_sampleRate); + + const double pitch = m_granularpitchshifterControls.m_pitchModel.value() * (1. / 12.); + const double pitchSpread = m_granularpitchshifterControls.m_pitchSpreadModel.value() * (1. / 24.); + m_truePitch[0] = pitch - pitchSpread; + m_truePitch[1] = pitch + pitchSpread; + m_speed[0] = std::exp2(m_truePitch[0]); + m_speed[1] = std::exp2(m_truePitch[1]); +} + + +extern "C" +{ +// necessary for getting instance out of shared lib +PLUGIN_EXPORT Plugin* lmms_plugin_main(Model* parent, void* data) +{ + return new GranularPitchShifterEffect(parent, static_cast(data)); +} +} + +} // namespace lmms diff --git a/plugins/GranularPitchShifter/GranularPitchShifterEffect.h b/plugins/GranularPitchShifter/GranularPitchShifterEffect.h new file mode 100755 index 00000000000..09b8025cdc5 --- /dev/null +++ b/plugins/GranularPitchShifter/GranularPitchShifterEffect.h @@ -0,0 +1,186 @@ +/* + * GranularPitchShifter.h + * + * Copyright (c) 2024 Lost Robot + * + * This file is part of LMMS - https://lmms.io + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#ifndef LMMS_GRANULAR_PITCH_SHIFTER_EFFECT_H +#define LMMS_GRANULAR_PITCH_SHIFTER_EFFECT_H + +#include "Effect.h" +#include "GranularPitchShifterControls.h" + +#include "BasicFilters.h" +#include "interpolation.h" + +namespace lmms +{ + +constexpr float PrefilterBandwidth = 0.96f;// 96% of nyquist +constexpr double GlideSnagRadius = 0.001; +constexpr int SafetyLatency = 3; +constexpr float RangeSeconds[5] = {5, 10, 40, 40, 120}; +constexpr float DcRemovalHz = 7.f; +constexpr float SatuSafeVol = 16.f; +constexpr float SatuStrength = 0.001f; + + +class GranularPitchShifterEffect : public Effect +{ +public: + GranularPitchShifterEffect(Model* parent, const Descriptor::SubPluginFeatures::Key* key); + ~GranularPitchShifterEffect() override = default; + + ProcessStatus processImpl(SampleFrame* buf, const fpp_t frames) override; + + EffectControls* controls() override + { + return &m_granularpitchshifterControls; + } + + // double index and fraction are required for good quality + float getHermiteSample(double index, int ch) + { + const auto index_floor = static_cast(index); + const double fraction = index - index_floor; + + float v0, v1, v2, v3; + + if (index_floor == 0) { v0 = m_ringBuf[m_ringBuf.size() - 1][ch]; } + else { v0 = m_ringBuf[index_floor - 1][ch]; } + + v1 = m_ringBuf[index_floor][ch]; + + if(index_floor >= m_ringBuf.size() - 2) + { + v2 = m_ringBuf[(index_floor + 1) % m_ringBuf.size()][ch]; + v3 = m_ringBuf[(index_floor + 2) % m_ringBuf.size()][ch]; + } + else + { + v2 = m_ringBuf[index_floor + 1][ch]; + v3 = m_ringBuf[index_floor + 2][ch]; + } + + return hermiteInterpolate(v0, v1, v2, v3, static_cast(fraction)); + } + + // adapted from signalsmith's crossfade approximation: + // https://signalsmith-audio.co.uk/writing/2021/cheap-energy-crossfade + float cosHalfWindowApprox(float x, float k) + { + float A = x * (1 - x); + float B = A * (1 + k * A); + float C = (B + x); + return C * C; + } + // 1-2 fades between equal-gain and equal-power + float cosWindowApproxK(float p) + { + return -6.0026608f + p * (6.8773512f - 1.5838104f * p); + } + + // designed to use minimal CPU if the input isn't loud + float safetySaturate(float input) + { + float absInput = std::abs(input); + return absInput <= SatuSafeVol ? input : + std::copysign((absInput - SatuSafeVol) / (1 + (absInput - SatuSafeVol) * SatuStrength) + SatuSafeVol, input); + } + + void sampleRateNeedsUpdate() { m_sampleRateNeedsUpdate = true; } + + void changeSampleRate(); + +private: + struct PrefilterLowpass + { + float m_v0z = 0.f, m_v1 = 0.f, m_v2 = 0.f; + float m_g1, m_g2, m_g3, m_g4; + + void setCoefs(float sampleRate, float cutoff) + { + const float g = std::tan(F_PI * cutoff / sampleRate); + const float ginv = g / (1.f + g * (g + F_SQRT_2)); + m_g1 = ginv; + m_g2 = 2.f * (g + F_SQRT_2) * ginv; + m_g3 = g * ginv; + m_g4 = 2.f * ginv; + } + + float process(float input) + { + const float v1z = m_v1; + const float v3 = input + m_v0z - 2.f * m_v2; + m_v1 += m_g1 * v3 - m_g2 * v1z; + m_v2 += m_g3 * v3 + m_g4 * v1z; + m_v0z = input; + return m_v2; + } + }; + + struct Grain + { + Grain(double grainSpeedL, double grainSpeedR, double phaseSpeedL, double phaseSpeedR, double readPointL, double readPointR) : + readPoint{readPointL, readPointR}, + phaseSpeed{phaseSpeedL, phaseSpeedR}, + grainSpeed{grainSpeedL, grainSpeedR}, + phase{0} + {} + std::array readPoint; + std::array phaseSpeed; + std::array grainSpeed; + double phase; + }; + + GranularPitchShifterControls m_granularpitchshifterControls; + + std::vector> m_ringBuf; + std::vector m_grains; + + std::array m_prefilter; + std::array m_speed = {1, 1}; + std::array m_truePitch = {0, 0}; + std::array m_dcVal = {0, 0}; + + float m_sampleRate; + float m_nyquist; + float m_nextWaitRandomization = 1; + float m_dcCoeff; + + int m_ringBufLength = 0; + int m_writePoint = 0; + int m_grainCount = 0; + int m_timeSinceLastGrain = 999999999; + + double m_oldGlide = -1; + double m_glideCoef = 0; + + bool m_sampleRateNeedsUpdate = false; + bool m_updatePitches = true; + + friend class GranularPitchShifterControls; +}; + + +} // namespace lmms + +#endif // LMMS_GRANULAR_PITCH_SHIFTER_EFFECT_H diff --git a/plugins/GranularPitchShifter/artwork.png b/plugins/GranularPitchShifter/artwork.png new file mode 100755 index 00000000000..632750bcf5e Binary files /dev/null and b/plugins/GranularPitchShifter/artwork.png differ diff --git a/plugins/GranularPitchShifter/help_active.png b/plugins/GranularPitchShifter/help_active.png new file mode 100755 index 00000000000..d68707acb46 Binary files /dev/null and b/plugins/GranularPitchShifter/help_active.png differ diff --git a/plugins/GranularPitchShifter/help_inactive.png b/plugins/GranularPitchShifter/help_inactive.png new file mode 100644 index 00000000000..0113876bc59 Binary files /dev/null and b/plugins/GranularPitchShifter/help_inactive.png differ diff --git a/plugins/GranularPitchShifter/logo.png b/plugins/GranularPitchShifter/logo.png new file mode 100755 index 00000000000..9340da708dd Binary files /dev/null and b/plugins/GranularPitchShifter/logo.png differ diff --git a/plugins/GranularPitchShifter/prefilter_active.png b/plugins/GranularPitchShifter/prefilter_active.png new file mode 100755 index 00000000000..95d3ccd7099 Binary files /dev/null and b/plugins/GranularPitchShifter/prefilter_active.png differ diff --git a/plugins/GranularPitchShifter/prefilter_inactive.png b/plugins/GranularPitchShifter/prefilter_inactive.png new file mode 100755 index 00000000000..8efb1ff1d4a Binary files /dev/null and b/plugins/GranularPitchShifter/prefilter_inactive.png differ diff --git a/plugins/HydrogenImport/CMakeLists.txt b/plugins/HydrogenImport/CMakeLists.txt index 27e8d6a4de9..34f4d43aea6 100644 --- a/plugins/HydrogenImport/CMakeLists.txt +++ b/plugins/HydrogenImport/CMakeLists.txt @@ -1,4 +1,4 @@ INCLUDE(BuildPlugin) -BUILD_PLUGIN(hydrogenimport HydrogenImport.cpp HydrogenImport.h local_file_mgr.cpp LocalFileMng.h) +BUILD_PLUGIN(hydrogenimport HydrogenImport.cpp HydrogenImport.h LocalFileMng.cpp LocalFileMng.h) diff --git a/plugins/HydrogenImport/HydrogenImport.cpp b/plugins/HydrogenImport/HydrogenImport.cpp index 144a2f5e75e..6a81b507ddb 100644 --- a/plugins/HydrogenImport/HydrogenImport.cpp +++ b/plugins/HydrogenImport/HydrogenImport.cpp @@ -1,7 +1,8 @@ +#include "HydrogenImport.h" + #include #include "LocalFileMng.h" -#include "HydrogenImport.h" #include "Song.h" #include "Engine.h" #include "Instrument.h" diff --git a/plugins/HydrogenImport/local_file_mgr.cpp b/plugins/HydrogenImport/LocalFileMng.cpp similarity index 97% rename from plugins/HydrogenImport/local_file_mgr.cpp rename to plugins/HydrogenImport/LocalFileMng.cpp index 22744050157..c4d11c7e2e4 100644 --- a/plugins/HydrogenImport/local_file_mgr.cpp +++ b/plugins/HydrogenImport/LocalFileMng.cpp @@ -1,12 +1,11 @@ -#include +#include "LocalFileMng.h" + #include #include #include #include -#include -#include "LocalFileMng.h" namespace lmms { @@ -197,10 +196,7 @@ QDomDocument LocalFileMng::openXmlDocument( const QString& filename ) return QDomDocument(); if( TinyXMLCompat ) { - QString enc = QTextCodec::codecForLocale()->name(); - if( enc == QString("System") ) { - enc = "UTF-8"; - } + const QString enc = "UTF-8"; // unknown encoding, so assume utf-8 and call it a day QByteArray line; QByteArray buf = QString("\n") .arg( enc ) diff --git a/plugins/HydrogenImport/LocalFileMng.h b/plugins/HydrogenImport/LocalFileMng.h index 0aaf7d1c855..1260dbfdd82 100644 --- a/plugins/HydrogenImport/LocalFileMng.h +++ b/plugins/HydrogenImport/LocalFileMng.h @@ -14,12 +14,6 @@ namespace lmms class LocalFileMng { public: - LocalFileMng(); - ~LocalFileMng(); - std::vector getallPatternList(){ - return m_allPatternList; - } - static QString readXmlString( QDomNode , const QString& nodeName, const QString& defaultValue, bool bCanBeEmpty = false, bool bShouldExists = true , bool tinyXmlCompatMode = false); static float readXmlFloat( QDomNode , const QString& nodeName, float defaultValue, bool bCanBeEmpty = false, bool bShouldExists = true , bool tinyXmlCompatMode = false); static int readXmlInt( QDomNode , const QString& nodeName, int defaultValue, bool bCanBeEmpty = false, bool bShouldExists = true , bool tinyXmlCompatMode = false); @@ -27,7 +21,6 @@ class LocalFileMng static void convertFromTinyXMLString( QByteArray* str ); static bool checkTinyXMLCompatMode( const QString& filename ); static QDomDocument openXmlDocument( const QString& filename ); - std::vector m_allPatternList; }; diff --git a/plugins/Kicker/Kicker.cpp b/plugins/Kicker/Kicker.cpp index e6418e2da5b..a71941fc6e8 100644 --- a/plugins/Kicker/Kicker.cpp +++ b/plugins/Kicker/Kicker.cpp @@ -64,7 +64,7 @@ Plugin::Descriptor PLUGIN_EXPORT kicker_plugin_descriptor = KickerInstrument::KickerInstrument( InstrumentTrack * _instrument_track ) : - Instrument( _instrument_track, &kicker_plugin_descriptor ), + Instrument(_instrument_track, &kicker_plugin_descriptor, nullptr, Flag::IsNotBendable), m_startFreqModel( 150.0f, 5.0f, 1000.0f, 1.0f, this, tr( "Start frequency" ) ), m_endFreqModel( 40.0f, 5.0f, 1000.0f, 1.0f, this, tr( "End frequency" ) ), m_decayModel( 440.0f, 5.0f, 5000.0f, 1.0f, 5000.0f, this, tr( "Length" ) ), @@ -156,11 +156,11 @@ using DistFX = DspEffectLibrary::Distortion; using SweepOsc = KickerOsc>; void KickerInstrument::playNote( NotePlayHandle * _n, - sampleFrame * _working_buffer ) + SampleFrame* _working_buffer ) { const fpp_t frames = _n->framesLeftForCurrentPeriod(); const f_cnt_t offset = _n->noteOffset(); - const float decfr = m_decayModel.value() * Engine::audioEngine()->processingSampleRate() / 1000.0f; + const float decfr = m_decayModel.value() * Engine::audioEngine()->outputSampleRate() / 1000.0f; const f_cnt_t tfp = _n->totalFramesPlayed(); if (!_n->m_pluginData) @@ -184,17 +184,26 @@ void KickerInstrument::playNote( NotePlayHandle * _n, } auto so = static_cast(_n->m_pluginData); - so->update( _working_buffer + offset, frames, Engine::audioEngine()->processingSampleRate() ); + so->update( _working_buffer + offset, frames, Engine::audioEngine()->outputSampleRate() ); if( _n->isReleased() ) { - const float done = _n->releaseFramesDone(); + // We need this to check if the release has ended const float desired = desiredReleaseFrames(); - for( fpp_t f = 0; f < frames; ++f ) + + // This can be considered the current release frame in the "global" context of the release. + // We need it with the desired number of release frames to compute the linear decay. + fpp_t currentReleaseFrame = _n->releaseFramesDone(); + + // Start applying the release at the correct frame + const float framesBeforeRelease = _n->framesBeforeRelease(); + for (fpp_t f = framesBeforeRelease; f < frames; ++f, ++currentReleaseFrame) { - const float fac = ( done+f < desired ) ? ( 1.0f - ( ( done+f ) / desired ) ) : 0; - _working_buffer[f+offset][0] *= fac; - _working_buffer[f+offset][1] *= fac; + const bool releaseStillActive = currentReleaseFrame < desired; + const float attenuation = releaseStillActive ? (1.0f - (currentReleaseFrame / desired)) : 0.f; + + _working_buffer[f + offset][0] *= attenuation; + _working_buffer[f + offset][1] *= attenuation; } } } diff --git a/plugins/Kicker/Kicker.h b/plugins/Kicker/Kicker.h index b5d065598c5..2eadaa333a5 100644 --- a/plugins/Kicker/Kicker.h +++ b/plugins/Kicker/Kicker.h @@ -56,7 +56,7 @@ class KickerInstrument : public Instrument ~KickerInstrument() override = default; void playNote( NotePlayHandle * _n, - sampleFrame * _working_buffer ) override; + SampleFrame* _working_buffer ) override; void deleteNotePluginData( NotePlayHandle * _n ) override; void saveSettings(QDomDocument& doc, QDomElement& elem) override; @@ -64,14 +64,9 @@ class KickerInstrument : public Instrument QString nodeName() const override; - Flags flags() const override + float desiredReleaseTimeMs() const override { - return Flag::IsNotBendable; - } - - f_cnt_t desiredReleaseFrames() const override - { - return( 512 ); + return 12.f; } gui::PluginView* instantiateView( QWidget * _parent ) override; diff --git a/plugins/Kicker/KickerOsc.h b/plugins/Kicker/KickerOsc.h index 1accb50a44c..adcceaefe45 100644 --- a/plugins/Kicker/KickerOsc.h +++ b/plugins/Kicker/KickerOsc.h @@ -31,7 +31,6 @@ #include "lmms_math.h" #include "interpolation.h" -#include "MemoryManager.h" namespace lmms { @@ -40,7 +39,6 @@ namespace lmms template class KickerOsc { - MM_OPERATORS public: KickerOsc( const FX & fx, const float start, const float end, const float noise, const float offset, const float slope, const float env, const float diststart, const float distend, const float length ) : @@ -62,11 +60,11 @@ class KickerOsc virtual ~KickerOsc() = default; - void update( sampleFrame* buf, const fpp_t frames, const float sampleRate ) + void update( SampleFrame* buf, const fpp_t frames, const float sampleRate ) { for( fpp_t frame = 0; frame < frames; ++frame ) { - const double gain = ( 1 - fastPow( ( m_counter < m_length ) ? m_counter / m_length : 1, m_env ) ); + const double gain = 1 - fastPow((m_counter < m_length) ? m_counter / m_length : 1, m_env); const sample_t s = ( Oscillator::sinSample( m_phase ) * ( 1 - m_noise ) ) + ( Oscillator::noiseSample( 0 ) * gain * gain * m_noise ); buf[frame][0] = s * gain; buf[frame][1] = s * gain; @@ -82,7 +80,7 @@ class KickerOsc m_FX.nextSample( buf[frame][0], buf[frame][1] ); m_phase += m_freq / sampleRate; - const double change = ( m_counter < m_length ) ? ( ( m_startFreq - m_endFreq ) * ( 1 - fastPow( m_counter / m_length, m_slope ) ) ) : 0; + const double change = (m_counter < m_length) ? ((m_startFreq - m_endFreq) * (1 - fastPow(m_counter / m_length, m_slope))) : 0; m_freq = m_endFreq + change; ++m_counter; } diff --git a/plugins/LOMM/LOMM.cpp b/plugins/LOMM/LOMM.cpp index 6dc640626b3..14f254eab65 100644 --- a/plugins/LOMM/LOMM.cpp +++ b/plugins/LOMM/LOMM.cpp @@ -50,34 +50,34 @@ extern "C" LOMMEffect::LOMMEffect(Model* parent, const Descriptor::SubPluginFeatures::Key* key) : Effect(&lomm_plugin_descriptor, parent, key), m_lommControls(this), - m_sampleRate(Engine::audioEngine()->processingSampleRate()), + m_sampleRate(Engine::audioEngine()->outputSampleRate()), m_lp1(m_sampleRate), m_lp2(m_sampleRate), m_hp1(m_sampleRate), m_hp2(m_sampleRate), + m_ap(m_sampleRate), m_needsUpdate(true), - m_coeffPrecalc(-0.05), - m_crestTimeConst(0.999), + m_coeffPrecalc(-0.05f), + m_crestTimeConst(0.999f), m_lookWrite(0), m_lookBufLength(2) { autoQuitModel()->setValue(autoQuitModel()->maxValue()); - m_yL[0][0] = m_yL[0][1] = LOMM_MIN_FLOOR; - m_yL[1][0] = m_yL[1][1] = LOMM_MIN_FLOOR; - m_yL[2][0] = m_yL[2][1] = LOMM_MIN_FLOOR; + m_ap.setFilterType(BasicFilters<2>::FilterType::AllPass); connect(Engine::audioEngine(), SIGNAL(sampleRateChanged()), this, SLOT(changeSampleRate())); - emit changeSampleRate(); + changeSampleRate(); } void LOMMEffect::changeSampleRate() { - m_sampleRate = Engine::audioEngine()->processingSampleRate(); + m_sampleRate = Engine::audioEngine()->outputSampleRate(); m_lp1.setSampleRate(m_sampleRate); m_lp2.setSampleRate(m_sampleRate); m_hp1.setSampleRate(m_sampleRate); m_hp2.setSampleRate(m_sampleRate); + m_ap.setSampleRate(m_sampleRate); m_coeffPrecalc = -2.2f / (m_sampleRate * 0.001f); m_needsUpdate = true; @@ -93,30 +93,21 @@ void LOMMEffect::changeSampleRate() m_scLookBuf[j][i].resize(m_lookBufLength, LOMM_MIN_FLOOR); } } -} -void LOMMEffect::clearFilterHistories() -{ - m_lp1.clearHistory(); - m_lp2.clearHistory(); - m_hp1.clearHistory(); - m_hp2.clearHistory(); + std::fill(m_yL.begin(), m_yL.end(), std::array{LOMM_MIN_FLOOR, LOMM_MIN_FLOOR}); + m_rms = m_gainResult = m_displayIn = m_displayOut = m_prevOut = m_yL; + m_crestPeakVal[0] = m_crestPeakVal[1] = LOMM_MIN_FLOOR; + m_crestRmsVal = m_crestFactorVal = m_crestPeakVal; } - - -bool LOMMEffect::processAudioBuffer(sampleFrame* buf, const fpp_t frames) +Effect::ProcessStatus LOMMEffect::processImpl(SampleFrame* buf, const fpp_t frames) { - if (!isEnabled() || !isRunning()) - { - return false; - } - if (m_needsUpdate || m_lommControls.m_split1Model.isValueChanged()) { m_lp1.setLowpass(m_lommControls.m_split1Model.value()); m_hp1.setHighpass(m_lommControls.m_split1Model.value()); + m_ap.calcFilterCoeffs(m_lommControls.m_split1Model.value(), 0.70710678118f); } if (m_needsUpdate || m_lommControls.m_split2Model.isValueChanged()) { @@ -125,7 +116,6 @@ bool LOMMEffect::processAudioBuffer(sampleFrame* buf, const fpp_t frames) } m_needsUpdate = false; - float outSum = 0.f; const float d = dryLevel(); const float w = wetLevel(); @@ -224,9 +214,11 @@ bool LOMMEffect::processAudioBuffer(sampleFrame* buf, const fpp_t frames) float crestFactorValTemp = ((m_crestFactorVal[i] - LOMM_AUTO_TIME_ADJUST) * autoTime) + LOMM_AUTO_TIME_ADJUST; // Crossover filters - bands[0][i] = m_hp1.update(s[i], i); - bands[1][i] = m_hp2.update(m_lp1.update(s[i], i), i); bands[2][i] = m_lp2.update(s[i], i); + bands[1][i] = m_hp2.update(s[i], i); + bands[0][i] = m_hp1.update(bands[1][i], i); + bands[1][i] = m_lp1.update(bands[1][i], i); + bands[2][i] = m_ap.update(bands[2][i], i); if (!split1Enabled) { @@ -425,11 +417,9 @@ bool LOMMEffect::processAudioBuffer(sampleFrame* buf, const fpp_t frames) buf[f][0] = d * buf[f][0] + w * s[0]; buf[f][1] = d * buf[f][1] + w * s[1]; - outSum += buf[f][0] + buf[f][1]; } - checkGate(outSum / frames); - return isRunning(); + return ProcessStatus::ContinueIfNotQuiet; } extern "C" diff --git a/plugins/LOMM/LOMM.h b/plugins/LOMM/LOMM.h index 039f80b6a63..0dd209e0711 100644 --- a/plugins/LOMM/LOMM.h +++ b/plugins/LOMM/LOMM.h @@ -35,7 +35,7 @@ namespace lmms { -constexpr inline float LOMM_MIN_FLOOR = 0.00012589;// -72 dBFS +constexpr inline float LOMM_MIN_FLOOR = 0.00012589f;// -72 dBFS constexpr inline float LOMM_MAX_LOOKAHEAD = 20.f; constexpr inline float LOMM_AUTO_TIME_ADJUST = 5.f; @@ -45,15 +45,14 @@ class LOMMEffect : public Effect public: LOMMEffect(Model* parent, const Descriptor::SubPluginFeatures::Key* key); ~LOMMEffect() override = default; - bool processAudioBuffer(sampleFrame* buf, const fpp_t frames) override; + + ProcessStatus processImpl(SampleFrame* buf, const fpp_t frames) override; EffectControls* controls() override { return &m_lommControls; } - void clearFilterHistories(); - inline float msToCoeff(float ms) { return (ms == 0) ? 0 : exp(m_coeffPrecalc / ms); @@ -73,6 +72,8 @@ private slots: StereoLinkwitzRiley m_hp1; StereoLinkwitzRiley m_hp2; + BasicFilters<2> m_ap; + bool m_needsUpdate; float m_coeffPrecalc; diff --git a/plugins/LOMM/LOMMControlDialog.h b/plugins/LOMM/LOMMControlDialog.h index bf7e67c4ca8..3de38c984a2 100644 --- a/plugins/LOMM/LOMMControlDialog.h +++ b/plugins/LOMM/LOMMControlDialog.h @@ -86,7 +86,8 @@ class LOMMControlDialog : public EffectControlDialog return spinBox; } - PixmapButton* createPixmapButton(const QString& text, QWidget* parent, int x, int y, BoolModel* model, const QString& activeIcon, const QString& inactiveIcon, const QString& tooltip) + PixmapButton* createPixmapButton(const QString& text, QWidget* parent, int x, int y, BoolModel* model, + std::string_view activeIcon, std::string_view inactiveIcon, const QString& tooltip) { PixmapButton* button = new PixmapButton(parent, text); button->move(x, y); diff --git a/plugins/LOMM/LOMMControls.cpp b/plugins/LOMM/LOMMControls.cpp index d695cf483fd..3ede0ddf279 100644 --- a/plugins/LOMM/LOMMControls.cpp +++ b/plugins/LOMM/LOMMControls.cpp @@ -35,55 +35,55 @@ namespace lmms LOMMControls::LOMMControls(LOMMEffect* effect) : EffectControls(effect), m_effect(effect), - m_depthModel(0.4, 0, 1, 0.00001, this, tr("Depth")), - m_timeModel(1, 0, 10, 0.00001, this, tr("Time")), - m_inVolModel(0, -48, 48, 0.00001, this, tr("Input Volume")), - m_outVolModel(8, -48, 48, 0.00001, this, tr("Output Volume")), - m_upwardModel(1, 0, 2, 0.00001, this, tr("Upward Depth")), - m_downwardModel(1, 0, 2, 0.00001, this, tr("Downward Depth")), - m_split1Model(2500, 20, 20000, 0.01, this, tr("High/Mid Split")), - m_split2Model(88.3, 20, 20000, 0.01, this, tr("Mid/Low Split")), + m_depthModel(0.4f, 0, 1, 0.00001f, this, tr("Depth")), + m_timeModel(1, 0, 10, 0.00001f, this, tr("Time")), + m_inVolModel(0, -48, 48, 0.00001f, this, tr("Input Volume")), + m_outVolModel(8, -48, 48, 0.00001f, this, tr("Output Volume")), + m_upwardModel(1, 0, 2, 0.00001f, this, tr("Upward Depth")), + m_downwardModel(1, 0, 2, 0.00001f, this, tr("Downward Depth")), + m_split1Model(2500, 20, 20000, 0.01f, this, tr("High/Mid Split")), + m_split2Model(88.3f, 20, 20000, 0.01f, this, tr("Mid/Low Split")), m_split1EnabledModel(true, this, tr("Enable High/Mid Split")), m_split2EnabledModel(true, this, tr("Enable Mid/Low Split")), m_band1EnabledModel(true, this, tr("Enable High Band")), m_band2EnabledModel(true, this, tr("Enable Mid Band")), m_band3EnabledModel(true, this, tr("Enable Low Band")), - m_inHighModel(0, -48, 48, 0.00001, this, tr("High Input Volume")), - m_inMidModel(0, -48, 48, 0.00001, this, tr("Mid Input Volume")), - m_inLowModel(0, -48, 48, 0.00001, this, tr("Low Input Volume")), - m_outHighModel(4.6, -48, 48, 0.00001, this, tr("High Output Volume")), - m_outMidModel(0.0, -48, 48, 0.00001, this, tr("Mid Output Volume")), - m_outLowModel(4.6, -48, 48, 0.00001, this, tr("Low Output Volume")), - m_aThreshHModel(-30.3, LOMM_DISPLAY_MIN, LOMM_DISPLAY_MAX, 0.001, this, tr("Above Threshold High")), - m_aThreshMModel(-25.0, LOMM_DISPLAY_MIN, LOMM_DISPLAY_MAX, 0.001, this, tr("Above Threshold Mid")), - m_aThreshLModel(-28.6, LOMM_DISPLAY_MIN, LOMM_DISPLAY_MAX, 0.001, this, tr("Above Threshold Low")), - m_aRatioHModel(99.99, 1, 99.99, 0.01, this, tr("Above Ratio High")), - m_aRatioMModel(66.7, 1, 99.99, 0.01, this, tr("Above Ratio Mid")), - m_aRatioLModel(66.7, 1, 99.99, 0.01, this, tr("Above Ratio Low")), - m_bThreshHModel(-35.6, LOMM_DISPLAY_MIN, LOMM_DISPLAY_MAX, 0.001, this, tr("Below Threshold High")), - m_bThreshMModel(-36.6, LOMM_DISPLAY_MIN, LOMM_DISPLAY_MAX, 0.001, this, tr("Below Threshold Mid")), - m_bThreshLModel(-35.6, LOMM_DISPLAY_MIN, LOMM_DISPLAY_MAX, 0.001, this, tr("Below Threshold Low")), - m_bRatioHModel(4.17, 1, 99.99, 0.01, this, tr("Below Ratio High")), - m_bRatioMModel(4.17, 1, 99.99, 0.01, this, tr("Below Ratio Mid")), - m_bRatioLModel(4.17, 1, 99.99, 0.01, this, tr("Below Ratio Low")), - m_atkHModel(13.5, 0, 1000, 0.001, this, tr("Attack High")), - m_atkMModel(22.4, 0, 1000, 0.001, this, tr("Attack Mid")), - m_atkLModel(47.8, 0, 1000, 0.001, this, tr("Attack Low")), - m_relHModel(132, 0, 1000, 0.001, this, tr("Release High")), - m_relMModel(282, 0, 1000, 0.001, this, tr("Release Mid")), - m_relLModel(282, 0, 1000, 0.001, this, tr("Release Low")), - m_rmsTimeModel(10, 0, 500, 0.001, this, tr("RMS Time")), - m_kneeModel(6, 0, 36, 0.00001, this, tr("Knee")), - m_rangeModel(36, 0, 96, 0.00001, this, tr("Range")), - m_balanceModel(0, -18, 18, 0.00001, this, tr("Balance")), + m_inHighModel(0, -48, 48, 0.00001f, this, tr("High Input Volume")), + m_inMidModel(0, -48, 48, 0.00001f, this, tr("Mid Input Volume")), + m_inLowModel(0, -48, 48, 0.00001f, this, tr("Low Input Volume")), + m_outHighModel(4.6f, -48, 48, 0.00001f, this, tr("High Output Volume")), + m_outMidModel(0.f, -48, 48, 0.00001f, this, tr("Mid Output Volume")), + m_outLowModel(4.6f, -48, 48, 0.00001f, this, tr("Low Output Volume")), + m_aThreshHModel(-30.3f, LOMM_DISPLAY_MIN, LOMM_DISPLAY_MAX, 0.001f, this, tr("Above Threshold High")), + m_aThreshMModel(-25.f, LOMM_DISPLAY_MIN, LOMM_DISPLAY_MAX, 0.001f, this, tr("Above Threshold Mid")), + m_aThreshLModel(-28.6f, LOMM_DISPLAY_MIN, LOMM_DISPLAY_MAX, 0.001f, this, tr("Above Threshold Low")), + m_aRatioHModel(99.99f, 1, 99.99f, 0.01f, this, tr("Above Ratio High")), + m_aRatioMModel(66.7f, 1, 99.99f, 0.01f, this, tr("Above Ratio Mid")), + m_aRatioLModel(66.7f, 1, 99.99f, 0.01f, this, tr("Above Ratio Low")), + m_bThreshHModel(-35.6f, LOMM_DISPLAY_MIN, LOMM_DISPLAY_MAX, 0.001f, this, tr("Below Threshold High")), + m_bThreshMModel(-36.6f, LOMM_DISPLAY_MIN, LOMM_DISPLAY_MAX, 0.001f, this, tr("Below Threshold Mid")), + m_bThreshLModel(-35.6f, LOMM_DISPLAY_MIN, LOMM_DISPLAY_MAX, 0.001f, this, tr("Below Threshold Low")), + m_bRatioHModel(4.17f, 1, 99.99f, 0.01f, this, tr("Below Ratio High")), + m_bRatioMModel(4.17f, 1, 99.99f, 0.01f, this, tr("Below Ratio Mid")), + m_bRatioLModel(4.17f, 1, 99.99f, 0.01f, this, tr("Below Ratio Low")), + m_atkHModel(13.5f, 0, 1000, 0.001f, this, tr("Attack High")), + m_atkMModel(22.4f, 0, 1000, 0.001f, this, tr("Attack Mid")), + m_atkLModel(47.8f, 0, 1000, 0.001f, this, tr("Attack Low")), + m_relHModel(132, 0, 1000, 0.001f, this, tr("Release High")), + m_relMModel(282, 0, 1000, 0.001f, this, tr("Release Mid")), + m_relLModel(282, 0, 1000, 0.001f, this, tr("Release Low")), + m_rmsTimeModel(10, 0, 500, 0.001f, this, tr("RMS Time")), + m_kneeModel(6, 0, 36, 0.00001f, this, tr("Knee")), + m_rangeModel(36, 0, 96, 0.00001f, this, tr("Range")), + m_balanceModel(0, -18, 18, 0.00001f, this, tr("Balance")), m_depthScalingModel(true, this, tr("Scale output volume with Depth")), m_stereoLinkModel(false, this, tr("Stereo Link")), - m_autoTimeModel(0, 0, 1, 0.00001, this, tr("Auto Time")), - m_mixModel(1, 0, 1, 0.00001, this, tr("Mix")), + m_autoTimeModel(0, 0, 1, 0.00001f, this, tr("Auto Time")), + m_mixModel(1, 0, 1, 0.00001f, this, tr("Mix")), m_feedbackModel(false, this, tr("Feedback")), m_midsideModel(false, this, tr("Mid/Side")), m_lookaheadEnableModel(false, this, tr("Lookahead")), - m_lookaheadModel(0.f, 0.f, LOMM_MAX_LOOKAHEAD, 0.01, this, tr("Lookahead Length")), + m_lookaheadModel(0.f, 0.f, LOMM_MAX_LOOKAHEAD, 0.01f, this, tr("Lookahead Length")), m_lowSideUpwardSuppressModel(false, this, tr("Suppress upward compression for side band")) { auto models = {&m_timeModel, &m_inVolModel, &m_outVolModel, &m_inHighModel, &m_inMidModel, diff --git a/plugins/LadspaBrowser/LadspaBrowser.cpp b/plugins/LadspaBrowser/LadspaBrowser.cpp index 31be6405649..e6a31e15a3c 100644 --- a/plugins/LadspaBrowser/LadspaBrowser.cpp +++ b/plugins/LadspaBrowser/LadspaBrowser.cpp @@ -32,7 +32,6 @@ #include -#include "gui_templates.h" #include "LadspaDescription.h" #include "LadspaPortDialog.h" #include "TabBar.h" @@ -172,7 +171,6 @@ QWidget * LadspaBrowserView::createTab( QWidget * _parent, const QString & _txt, auto title = new QLabel(type + _txt, tab); QFont f = title->font(); f.setBold( true ); - title->setFont( pointSize<12>( f ) ); layout->addSpacing( 5 ); layout->addWidget( title ); diff --git a/plugins/LadspaBrowser/LadspaDescription.cpp b/plugins/LadspaBrowser/LadspaDescription.cpp index fbcd6c25dba..7b1ede1c32e 100644 --- a/plugins/LadspaBrowser/LadspaDescription.cpp +++ b/plugins/LadspaBrowser/LadspaDescription.cpp @@ -125,68 +125,39 @@ void LadspaDescription::update( const ladspa_key_t & _key ) Ladspa2LMMS * manager = Engine::getLADSPAManager(); auto name = new QLabel(description); - name->setText( QWidget::tr( "Name: " ) + manager->getName( _key ) ); + name->setText(tr("Name: ") + manager->getName(_key)); layout->addWidget( name ); - auto maker = new QWidget(description); - auto makerLayout = new QHBoxLayout(maker); - makerLayout->setContentsMargins(0, 0, 0, 0); - makerLayout->setSpacing( 0 ); + auto maker = new QLabel(description); + maker->setText(tr("Maker: ") + manager->getMaker(_key)); layout->addWidget( maker ); - auto maker_label = new QLabel(maker); - maker_label->setText( QWidget::tr( "Maker: " ) ); - maker_label->setAlignment( Qt::AlignTop ); - auto maker_content = new QLabel(maker); - maker_content->setText( manager->getMaker( _key ) ); - maker_content->setWordWrap( true ); - makerLayout->addWidget( maker_label ); - makerLayout->addWidget( maker_content, 1 ); - - auto copyright = new QWidget(description); - auto copyrightLayout = new QHBoxLayout(copyright); - copyrightLayout->setContentsMargins(0, 0, 0, 0); - copyrightLayout->setSpacing( 0 ); + auto copyright = new QLabel(description); + copyright->setText(tr("Copyright: ") + manager->getCopyright(_key)); layout->addWidget( copyright ); - auto copyright_label = new QLabel(copyright); - copyright_label->setText( QWidget::tr( "Copyright: " ) ); - copyright_label->setAlignment( Qt::AlignTop ); - - auto copyright_content = new QLabel(copyright); - copyright_content->setText( manager->getCopyright( _key ) ); - copyright_content->setWordWrap( true ); - copyrightLayout->addWidget( copyright_label ); - copyrightLayout->addWidget( copyright_content, 1 ); - auto requiresRealTime = new QLabel(description); - requiresRealTime->setText( QWidget::tr( "Requires Real Time: " ) + - ( manager->hasRealTimeDependency( _key ) ? - QWidget::tr( "Yes" ) : - QWidget::tr( "No" ) ) ); + requiresRealTime->setText(tr("Requires Real Time: ") + + (manager->hasRealTimeDependency(_key) ? tr("Yes") : tr("No"))); layout->addWidget( requiresRealTime ); auto realTimeCapable = new QLabel(description); - realTimeCapable->setText( QWidget::tr( "Real Time Capable: " ) + - ( manager->isRealTimeCapable( _key ) ? - QWidget::tr( "Yes" ) : - QWidget::tr( "No" ) ) ); + realTimeCapable->setText(tr("Real Time Capable: ") + + (manager->isRealTimeCapable(_key) ? tr("Yes") : tr("No"))); layout->addWidget( realTimeCapable ); auto inplaceBroken = new QLabel(description); - inplaceBroken->setText( QWidget::tr( "In Place Broken: " ) + - ( manager->isInplaceBroken( _key ) ? - QWidget::tr( "Yes" ) : - QWidget::tr( "No" ) ) ); + inplaceBroken->setText(tr("In Place Broken: ") + + (manager->isInplaceBroken(_key) ? tr("Yes") : tr("No"))); layout->addWidget( inplaceBroken ); auto channelsIn = new QLabel(description); - channelsIn->setText( QWidget::tr( "Channels In: " ) + QString::number( + channelsIn->setText(tr("Channels In: ") + QString::number( manager->getDescription( _key )->inputChannels ) ); layout->addWidget( channelsIn ); auto channelsOut = new QLabel(description); - channelsOut->setText( QWidget::tr( "Channels Out: " ) + QString::number( + channelsOut->setText(tr("Channels Out: ") + QString::number( manager->getDescription( _key )->outputChannels ) ); layout->addWidget( channelsOut ); } diff --git a/plugins/LadspaBrowser/LadspaPortDialog.cpp b/plugins/LadspaBrowser/LadspaPortDialog.cpp index e256795114c..bf4d0038a4f 100644 --- a/plugins/LadspaBrowser/LadspaPortDialog.cpp +++ b/plugins/LadspaBrowser/LadspaPortDialog.cpp @@ -90,11 +90,11 @@ LadspaPortDialog::LadspaPortDialog( const ladspa_key_t & _key ) { if( min != NOHINT ) { - min *= Engine::audioEngine()->processingSampleRate(); + min *= Engine::audioEngine()->outputSampleRate(); } if( max != NOHINT ) { - max *= Engine::audioEngine()->processingSampleRate(); + max *= Engine::audioEngine()->outputSampleRate(); } } diff --git a/plugins/LadspaEffect/LadspaControlDialog.cpp b/plugins/LadspaEffect/LadspaControlDialog.cpp index fa3dc6b7cc2..62eb30ba312 100644 --- a/plugins/LadspaEffect/LadspaControlDialog.cpp +++ b/plugins/LadspaEffect/LadspaControlDialog.cpp @@ -89,17 +89,9 @@ void LadspaControlDialog::updateEffectView( LadspaControls * _ctl ) int col = 0; BufferDataType last_port = BufferDataType::None; - QGroupBox * grouper; - if( _ctl->m_processors > 1 ) - { - grouper = new QGroupBox( tr( "Channel " ) + - QString::number( proc + 1 ), - this ); - } - else - { - grouper = new QGroupBox( this ); - } + auto grouper = _ctl->m_processors > 1 + ? new QGroupBox(tr("Channel ") + QString::number(proc + 1), this) + : new QGroupBox(this); auto gl = new QGridLayout(grouper); grouper->setLayout( gl ); diff --git a/plugins/LadspaEffect/LadspaEffect.cpp b/plugins/LadspaEffect/LadspaEffect.cpp index cc754a82962..5baa3834c2e 100644 --- a/plugins/LadspaEffect/LadspaEffect.cpp +++ b/plugins/LadspaEffect/LadspaEffect.cpp @@ -36,7 +36,6 @@ #include "LadspaControl.h" #include "LadspaSubPluginFeatures.h" #include "AutomationClip.h" -#include "MemoryManager.h" #include "ValueBuffer.h" #include "Song.h" @@ -130,27 +129,26 @@ void LadspaEffect::changeSampleRate() -bool LadspaEffect::processAudioBuffer( sampleFrame * _buf, - const fpp_t _frames ) +Effect::ProcessStatus LadspaEffect::processImpl(SampleFrame* buf, const fpp_t frames) { m_pluginMutex.lock(); - if( !isOkay() || dontRun() || !isRunning() || !isEnabled() ) + if (!isOkay() || dontRun() || !isEnabled() || !isRunning()) { m_pluginMutex.unlock(); - return( false ); + return ProcessStatus::Sleep; } - int frames = _frames; - sampleFrame * o_buf = nullptr; - QVarLengthArray sBuf(_frames * DEFAULT_CHANNELS); + auto outFrames = frames; + SampleFrame* outBuf = nullptr; + QVarLengthArray sBuf(frames); - if( m_maxSampleRate < Engine::audioEngine()->processingSampleRate() ) + if( m_maxSampleRate < Engine::audioEngine()->outputSampleRate() ) { - o_buf = _buf; - _buf = reinterpret_cast(sBuf.data()); - sampleDown( o_buf, _buf, m_maxSampleRate ); - frames = _frames * m_maxSampleRate / - Engine::audioEngine()->processingSampleRate(); + outBuf = buf; + buf = sBuf.data(); + sampleDown(outBuf, buf, m_maxSampleRate); + outFrames = frames * m_maxSampleRate / + Engine::audioEngine()->outputSampleRate(); } // Copy the LMMS audio buffer to the LADSPA input buffer and initialize @@ -164,11 +162,9 @@ bool LadspaEffect::processAudioBuffer( sampleFrame * _buf, switch( pp->rate ) { case BufferRate::ChannelIn: - for( fpp_t frame = 0; - frame < frames; ++frame ) + for (fpp_t frame = 0; frame < outFrames; ++frame) { - pp->buffer[frame] = - _buf[frame][channel]; + pp->buffer[frame] = buf[frame][channel]; } ++channel; break; @@ -177,7 +173,7 @@ bool LadspaEffect::processAudioBuffer( sampleFrame * _buf, ValueBuffer * vb = pp->control->valueBuffer(); if( vb ) { - memcpy( pp->buffer, vb->values(), frames * sizeof(float) ); + memcpy(pp->buffer, vb->values(), outFrames * sizeof(float)); } else { @@ -186,11 +182,9 @@ bool LadspaEffect::processAudioBuffer( sampleFrame * _buf, // This only supports control rate ports, so the audio rates are // treated as though they were control rate by setting the // port buffer to all the same value. - for( fpp_t frame = 0; - frame < frames; ++frame ) + for (fpp_t frame = 0; frame < outFrames; ++frame) { - pp->buffer[frame] = - pp->value; + pp->buffer[frame] = pp->value; } } break; @@ -219,11 +213,10 @@ bool LadspaEffect::processAudioBuffer( sampleFrame * _buf, // Process the buffers. for( ch_cnt_t proc = 0; proc < processorCount(); ++proc ) { - (m_descriptor->run)( m_handles[proc], frames ); + (m_descriptor->run)(m_handles[proc], outFrames); } // Copy the LADSPA output buffers to the LMMS buffer. - double out_sum = 0.0; channel = 0; const float d = dryLevel(); const float w = wetLevel(); @@ -239,11 +232,9 @@ bool LadspaEffect::processAudioBuffer( sampleFrame * _buf, case BufferRate::ControlRateInput: break; case BufferRate::ChannelOut: - for( fpp_t frame = 0; - frame < frames; ++frame ) + for (fpp_t frame = 0; frame < outFrames; ++frame) { - _buf[frame][channel] = d * _buf[frame][channel] + w * pp->buffer[frame]; - out_sum += _buf[frame][channel] * _buf[frame][channel]; + buf[frame][channel] = d * buf[frame][channel] + w * pp->buffer[frame]; } ++channel; break; @@ -256,17 +247,14 @@ bool LadspaEffect::processAudioBuffer( sampleFrame * _buf, } } - if( o_buf != nullptr ) + if (outBuf != nullptr) { - sampleBack( _buf, o_buf, m_maxSampleRate ); + sampleBack(buf, outBuf, m_maxSampleRate); } - checkGate( out_sum / frames ); - - - bool is_running = isRunning(); m_pluginMutex.unlock(); - return( is_running ); + + return ProcessStatus::ContinueIfNotQuiet; } @@ -326,7 +314,7 @@ void LadspaEffect::pluginInstantiation() manager->isPortInput( m_key, port ) ) { p->rate = BufferRate::ChannelIn; - p->buffer = MM_ALLOC( Engine::audioEngine()->framesPerPeriod() ); + p->buffer = new LADSPA_Data[Engine::audioEngine()->framesPerPeriod()]; inbuf[ inputch ] = p->buffer; inputch++; } @@ -341,24 +329,24 @@ void LadspaEffect::pluginInstantiation() } else { - p->buffer = MM_ALLOC( Engine::audioEngine()->framesPerPeriod() ); + p->buffer = new LADSPA_Data[Engine::audioEngine()->framesPerPeriod()]; m_inPlaceBroken = true; } } else if( manager->isPortInput( m_key, port ) ) { p->rate = BufferRate::AudioRateInput; - p->buffer = MM_ALLOC( Engine::audioEngine()->framesPerPeriod() ); + p->buffer = new LADSPA_Data[Engine::audioEngine()->framesPerPeriod()]; } else { p->rate = BufferRate::AudioRateOutput; - p->buffer = MM_ALLOC( Engine::audioEngine()->framesPerPeriod() ); + p->buffer = new LADSPA_Data[Engine::audioEngine()->framesPerPeriod()]; } } else { - p->buffer = MM_ALLOC( 1 ); + p->buffer = new LADSPA_Data[1]; if( manager->isPortInput( m_key, port ) ) { @@ -557,7 +545,7 @@ void LadspaEffect::pluginDestruction() port_desc_t * pp = m_ports.at( proc ).at( port ); if( m_inPlaceBroken || pp->rate != BufferRate::ChannelOut ) { - if( pp->buffer) MM_FREE( pp->buffer ); + if( pp->buffer) delete[] pp->buffer; } delete pp; } @@ -588,7 +576,7 @@ sample_rate_t LadspaEffect::maxSamplerate( const QString & _name ) { return( __buggy_plugins[_name] ); } - return( Engine::audioEngine()->processingSampleRate() ); + return( Engine::audioEngine()->outputSampleRate() ); } diff --git a/plugins/LadspaEffect/LadspaEffect.h b/plugins/LadspaEffect/LadspaEffect.h index 8ad4f141128..0cfa186821f 100644 --- a/plugins/LadspaEffect/LadspaEffect.h +++ b/plugins/LadspaEffect/LadspaEffect.h @@ -47,9 +47,8 @@ class LadspaEffect : public Effect const Descriptor::SubPluginFeatures::Key * _key ); ~LadspaEffect() override; - bool processAudioBuffer( sampleFrame * _buf, - const fpp_t _frames ) override; - + ProcessStatus processImpl(SampleFrame* buf, const fpp_t frames) override; + void setControl( int _control, LADSPA_Data _data ); EffectControls * controls() override diff --git a/plugins/LadspaEffect/LadspaMatrixControlDialog.cpp b/plugins/LadspaEffect/LadspaMatrixControlDialog.cpp index 88810cee639..4c9cd50acde 100644 --- a/plugins/LadspaEffect/LadspaMatrixControlDialog.cpp +++ b/plugins/LadspaEffect/LadspaMatrixControlDialog.cpp @@ -41,9 +41,6 @@ #include "LadspaControlView.h" #include "LedCheckBox.h" -#include "GuiApplication.h" -#include "MainWindow.h" - namespace lmms::gui { @@ -206,20 +203,6 @@ void LadspaMatrixControlDialog::updateEffectView(LadspaControls * ladspaControls // From: https://forum.qt.io/topic/13374/solved-qscrollarea-vertical-scroll-only/4 m_scrollArea->setMinimumWidth(matrixWidget->minimumSizeHint().width() + m_scrollArea->verticalScrollBar()->width()); - - // Make sure that the widget is shown without a scrollbar whenever possible - // If the widget fits on the workspace we use the height of the widget as the minimum size of the scroll area. - // This will ensure that the scrollbar is not shown initially (and never will be). - // If the widget is larger than the workspace then we want it to mostly cover the workspace. - // - // This is somewhat ugly but I have no idea how to control the initial size of the scroll area otherwise - auto const workspaceSize = getGUI()->mainWindow()->workspace()->viewport()->size(); - // Make sure that we always account a minumum height for the workspace, i.e. that we never compute - // something close to 0 if the LMMS window is very small - int workspaceHeight = qMax(200, static_cast(workspaceSize.height() * 0.9)); - int minOfWidgetAndWorkspace = qMin(matrixWidget->minimumSizeHint().height(), workspaceHeight); - m_scrollArea->setMinimumHeight(minOfWidgetAndWorkspace); - if (getChannelCount() > 1 && m_stereoLink != nullptr) { m_stereoLink->setModel(&ladspaControls->m_stereoLinkModel); diff --git a/plugins/LadspaEffect/LadspaSubPluginFeatures.cpp b/plugins/LadspaEffect/LadspaSubPluginFeatures.cpp index 46a211f9f75..fc46671528a 100644 --- a/plugins/LadspaEffect/LadspaSubPluginFeatures.cpp +++ b/plugins/LadspaEffect/LadspaSubPluginFeatures.cpp @@ -171,8 +171,7 @@ ladspa_key_t LadspaSubPluginFeatures::subPluginKeyToLadspaKey( const Key * _key ) { QString file = _key->attributes["file"]; - return( ladspa_key_t( file.remove( QRegExp( "\\.so$" ) ). - remove( QRegExp( "\\.dll$" ) ) + + return(ladspa_key_t(file.remove(QRegularExpression("\\.so$")).remove(QRegularExpression("\\.dll$")) + #ifdef LMMS_BUILD_WIN32 ".dll" #else diff --git a/plugins/LadspaEffect/calf/CMakeLists.txt b/plugins/LadspaEffect/calf/CMakeLists.txt index 0c9cd8fa96e..23f93da7ae0 100644 --- a/plugins/LadspaEffect/calf/CMakeLists.txt +++ b/plugins/LadspaEffect/calf/CMakeLists.txt @@ -1,6 +1,8 @@ # Note: # The last version of Calf that was LADSPA-capable is version 0.0.18.2 +set_directory_properties(PROPERTIES SYSTEM TRUE) + # Parse version info from autoconf FILE(READ veal/configure.ac VERSION_FILE) STRING(REPLACE "[" ";" VERSION_FILE ${VERSION_FILE} ) @@ -38,7 +40,14 @@ SET(INLINE_FLAGS "") IF("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") SET(INLINE_FLAGS -finline-functions-called-once -finline-limit=80) ENDIF() -target_compile_options(veal PRIVATE -fexceptions -O2 -finline-functions ${INLINE_FLAGS}) + +if(NOT MSVC) + target_compile_options(veal PRIVATE -fexceptions -O2 -finline-functions ${INLINE_FLAGS}) +endif() + +if(MSVC) + target_link_options(veal PRIVATE "/EXPORT:ladspa_descriptor") +endif() if(LMMS_BUILD_WIN32) add_custom_command( diff --git a/plugins/LadspaEffect/calf/veal b/plugins/LadspaEffect/calf/veal index fe628885b76..0162621fa75 160000 --- a/plugins/LadspaEffect/calf/veal +++ b/plugins/LadspaEffect/calf/veal @@ -1 +1 @@ -Subproject commit fe628885b761372b37136a3f2b7c3d56e179e3ba +Subproject commit 0162621fa75cf90c319c704d646c734e1ed21e14 diff --git a/plugins/LadspaEffect/caps/CMakeLists.txt b/plugins/LadspaEffect/caps/CMakeLists.txt index bdcf3a96af4..379413ae49a 100644 --- a/plugins/LadspaEffect/caps/CMakeLists.txt +++ b/plugins/LadspaEffect/caps/CMakeLists.txt @@ -1,3 +1,5 @@ +set_directory_properties(PROPERTIES SYSTEM TRUE) + INCLUDE_DIRECTORIES("${CMAKE_SOURCE_DIR}/include") FILE(GLOB SOURCES *.cc) LIST(SORT SOURCES) @@ -7,7 +9,14 @@ IF(LMMS_BUILD_WIN64) ADD_DEFINITIONS(-DLMMS_BUILD_WIN64) ENDIF(LMMS_BUILD_WIN64) SET_TARGET_PROPERTIES(caps PROPERTIES PREFIX "") -SET_TARGET_PROPERTIES(caps PROPERTIES COMPILE_FLAGS "-O2 -funroll-loops -Wno-write-strings") + +if(NOT MSVC) + target_compile_options(caps PRIVATE -O2 -funroll-loops) +endif() + +if(MSVC) + target_link_options(caps PRIVATE "/EXPORT:ladspa_descriptor") +endif() IF(LMMS_BUILD_WIN32) add_custom_command( @@ -18,11 +27,3 @@ IF(LMMS_BUILD_WIN32) COMMAND_EXPAND_LISTS ) ENDIF(LMMS_BUILD_WIN32) -IF(NOT LMMS_BUILD_APPLE AND NOT LMMS_BUILD_OPENBSD) - SET_TARGET_PROPERTIES(caps PROPERTIES LINK_FLAGS "${LINK_FLAGS} -shared -Wl,-no-undefined") -ENDIF(NOT LMMS_BUILD_APPLE AND NOT LMMS_BUILD_OPENBSD) - -IF(LMMS_BUILD_LINUX) - SET_TARGET_PROPERTIES(caps PROPERTIES LINK_FLAGS "${LINK_FLAGS}") -ENDIF(LMMS_BUILD_LINUX) - diff --git a/plugins/LadspaEffect/caps/basics.h b/plugins/LadspaEffect/caps/basics.h index df24e8c05ed..62eb778873b 100644 --- a/plugins/LadspaEffect/caps/basics.h +++ b/plugins/LadspaEffect/caps/basics.h @@ -41,6 +41,9 @@ #include #include +#ifndef _USE_MATH_DEFINES +#define _USE_MATH_DEFINES +#endif #include #include @@ -76,7 +79,7 @@ #define MIN_GAIN .000001 /* -120 dB */ -/* smallest non-denormal 32 bit IEEE float is 1.1810-38 */ +/* smallest non-denormal 32 bit IEEE float is 1.18×10^-38 */ #define NOISE_FLOOR .00000000000005 /* -266 dB */ typedef int8_t int8; diff --git a/plugins/LadspaEffect/caps/dsp/Eq.h b/plugins/LadspaEffect/caps/dsp/Eq.h index 92639e8a185..89c86dd18ff 100644 --- a/plugins/LadspaEffect/caps/dsp/Eq.h +++ b/plugins/LadspaEffect/caps/dsp/Eq.h @@ -62,11 +62,11 @@ class Eq { public: /* recursion coefficients, 3 per band */ - eq_sample __attribute__ ((aligned)) a[Bands], b[Bands], c[Bands]; + eq_sample a[Bands], b[Bands], c[Bands]; /* past outputs, 2 per band */ - eq_sample __attribute__ ((aligned)) y[2][Bands]; + eq_sample y[2][Bands]; /* current gain and recursion factor, each 1 per band = 2 */ - eq_sample __attribute__ ((aligned)) gain[Bands], gf[Bands]; + eq_sample gain[Bands], gf[Bands]; /* input history */ eq_sample x[2]; /* history index */ diff --git a/plugins/LadspaEffect/caps/interface.cc b/plugins/LadspaEffect/caps/interface.cc index 96e3d9806f6..4c7ca46b51c 100644 --- a/plugins/LadspaEffect/caps/interface.cc +++ b/plugins/LadspaEffect/caps/interface.cc @@ -29,7 +29,7 @@ (2541 - 2580 donated to artemio@kdemail.net) */ -#include +// #include #include "basics.h" @@ -69,7 +69,6 @@ seed() extern "C" { -__attribute__ ((constructor)) void caps_so_init() { DescriptorStub ** d = descriptors; @@ -125,7 +124,6 @@ void caps_so_init() //seed(); } -__attribute__ ((destructor)) void caps_so_fini() { for (ulong i = 0; i < N; ++i) @@ -142,4 +140,11 @@ ladspa_descriptor (unsigned long i) return 0; } +struct CapsSoInit +{ + CapsSoInit() { caps_so_init(); } + ~CapsSoInit() { caps_so_fini(); } +}; +static CapsSoInit capsSoInit; + }; /* extern "C" */ diff --git a/plugins/LadspaEffect/cmt/CMakeLists.txt b/plugins/LadspaEffect/cmt/CMakeLists.txt index 75dba319d6c..dbc3c9de630 100644 --- a/plugins/LadspaEffect/cmt/CMakeLists.txt +++ b/plugins/LadspaEffect/cmt/CMakeLists.txt @@ -1,3 +1,5 @@ +set_directory_properties(PROPERTIES SYSTEM TRUE) + INCLUDE_DIRECTORIES("${CMAKE_SOURCE_DIR}/include") FILE(GLOB_RECURSE SOURCES cmt/src/*.cpp) LIST(SORT SOURCES) @@ -5,7 +7,10 @@ ADD_LIBRARY(cmt MODULE ${SOURCES}) INSTALL(TARGETS cmt LIBRARY DESTINATION "${PLUGIN_DIR}/ladspa") SET_TARGET_PROPERTIES(cmt PROPERTIES PREFIX "") -target_compile_options(cmt PRIVATE -Wall -O3 -fno-strict-aliasing) + +if(NOT MSVC) + target_compile_options(cmt PRIVATE -O3 -fno-strict-aliasing) +endif() if(LMMS_BUILD_WIN32) add_custom_command( @@ -17,6 +22,10 @@ if(LMMS_BUILD_WIN32) ) endif() +if(MSVC) + target_link_options(cmt PRIVATE "/EXPORT:ladspa_descriptor") +endif() + if(NOT LMMS_BUILD_WIN32) target_compile_options(cmt PRIVATE -fPIC) endif() diff --git a/plugins/LadspaEffect/cmt/cmt b/plugins/LadspaEffect/cmt/cmt index 6e6e291fbad..24599fb45b9 160000 --- a/plugins/LadspaEffect/cmt/cmt +++ b/plugins/LadspaEffect/cmt/cmt @@ -1 +1 @@ -Subproject commit 6e6e291fbad1138c808860ba3f140a963b52fa58 +Subproject commit 24599fb45b99fff6302136f13adb3817e5833e7d diff --git a/plugins/LadspaEffect/swh/CMakeLists.txt b/plugins/LadspaEffect/swh/CMakeLists.txt index a8300117735..203c3168f77 100644 --- a/plugins/LadspaEffect/swh/CMakeLists.txt +++ b/plugins/LadspaEffect/swh/CMakeLists.txt @@ -1,3 +1,5 @@ +set_directory_properties(PROPERTIES SYSTEM TRUE) + # Create blank config.h FILE(WRITE ladspa/config.h "") @@ -5,13 +7,16 @@ FILE(WRITE ladspa/config.h "") IF(LMMS_BUILD_WIN32) SET(PIC_FLAGS "") ELSE() - SET(PIC_FLAGS "-fPIC -DPIC") + SET(PIC_FLAGS -fPIC -DPIC) ENDIF() # Additional compile flags -SET(COMPILE_FLAGS "${COMPILE_FLAGS} -O3 -Wall") -SET(COMPILE_FLAGS "${COMPILE_FLAGS} -fomit-frame-pointer -funroll-loops -ffast-math -c -fno-strict-aliasing") -SET(COMPILE_FLAGS "${COMPILE_FLAGS} ${PIC_FLAGS}") +if(NOT MSVC) + set(COMPILE_FLAGS ${COMPILE_FLAGS} -O3 -c + -fomit-frame-pointer -funroll-loops -ffast-math -fno-strict-aliasing + ${PIC_FLAGS} + ) +endif() # Loop over every XML file FILE(GLOB XML_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/ladspa/*.xml") @@ -34,6 +39,10 @@ FOREACH(_item ${XML_SOURCES}) # Add a library target for this C file, which depends on success of makestup.pl ADD_LIBRARY("${_plugin}" MODULE "${_out_file}") + if(MSVC) + target_link_options("${_plugin}" PRIVATE "/EXPORT:ladspa_descriptor") + endif() + # Vocoder does not use fftw IF(NOT ("${_plugin}" STREQUAL "vocoder_1337")) TARGET_LINK_LIBRARIES("${_plugin}" ${FFTW3F_LIBRARIES}) @@ -53,8 +62,7 @@ FOREACH(_item ${XML_SOURCES}) endif(LMMS_BUILD_WIN32) SET_TARGET_PROPERTIES("${_plugin}" PROPERTIES PREFIX "") - SET_TARGET_PROPERTIES("${_plugin}" PROPERTIES COMPILE_FLAGS "${COMPILE_FLAGS}") - SET_TARGET_PROPERTIES("${_plugin}" PROPERTIES LINK_FLAGS "${LINK_FLAGS}") + target_compile_options("${_plugin}" PRIVATE "${COMPILE_FLAGS}") INSTALL(TARGETS "${_plugin}" LIBRARY DESTINATION "${PLUGIN_DIR}/ladspa") ENDFOREACH() @@ -67,7 +75,7 @@ INCLUDE_DIRECTORIES( ) ADD_LIBRARY(iir STATIC ladspa/util/iir.c) -SET_TARGET_PROPERTIES(iir PROPERTIES COMPILE_FLAGS "${PIC_FLAGS}") +target_compile_options(iir PRIVATE "${PIC_FLAGS}") TARGET_LINK_LIBRARIES(bandpass_a_iir_1893 iir) TARGET_LINK_LIBRARIES(bandpass_iir_1892 iir) TARGET_LINK_LIBRARIES(butterworth_1902 iir) @@ -78,23 +86,23 @@ TARGET_LINK_LIBRARIES(notch_iir_1894 iir) FILE(GLOB GSM_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/ladspa/gsm/*.c") LIST(SORT GSM_SOURCES) ADD_LIBRARY(gsm STATIC ${GSM_SOURCES}) -SET_TARGET_PROPERTIES(gsm PROPERTIES COMPILE_FLAGS "${PIC_FLAGS}") +target_compile_options(gsm PRIVATE "${PIC_FLAGS}") TARGET_LINK_LIBRARIES(gsm_1215 gsm) ADD_LIBRARY(gverb STATIC ladspa/gverb/gverb.c ladspa/gverb/gverbdsp.c) -SET_TARGET_PROPERTIES(gverb PROPERTIES COMPILE_FLAGS "${PIC_FLAGS}") +target_compile_options(gverb PRIVATE "${PIC_FLAGS}") TARGET_LINK_LIBRARIES(gverb_1216 gverb) ADD_LIBRARY(blo STATIC ladspa/util/blo.c) -SET_TARGET_PROPERTIES(blo PROPERTIES COMPILE_FLAGS "${PIC_FLAGS}") +target_compile_options(blo PRIVATE "${PIC_FLAGS}") TARGET_LINK_LIBRARIES(analogue_osc_1416 blo) TARGET_LINK_LIBRARIES(fm_osc_1415 blo) TARGET_LINK_LIBRARIES(hermes_filter_1200 blo) ADD_LIBRARY(rms STATIC ladspa/util/rms.c) ADD_LIBRARY(db STATIC ladspa/util/db.c) -SET_TARGET_PROPERTIES(rms PROPERTIES COMPILE_FLAGS "${PIC_FLAGS}") -SET_TARGET_PROPERTIES(db PROPERTIES COMPILE_FLAGS "${PIC_FLAGS}") +target_compile_options(rms PRIVATE "${PIC_FLAGS}") +target_compile_options(db PRIVATE "${PIC_FLAGS}") TARGET_LINK_LIBRARIES(sc1_1425 rms db) TARGET_LINK_LIBRARIES(sc2_1426 rms db) TARGET_LINK_LIBRARIES(sc3_1427 rms db) @@ -103,7 +111,7 @@ TARGET_LINK_LIBRARIES(sc4m_1916 rms db) TARGET_LINK_LIBRARIES(se4_1883 rms db) ADD_LIBRARY(pitchscale STATIC ladspa/util/pitchscale.c) -SET_TARGET_PROPERTIES(pitchscale PROPERTIES COMPILE_FLAGS "${PIC_FLAGS}") -TARGET_LINK_LIBRARIES(pitchscale -lfftw3f) +target_compile_options(pitchscale PRIVATE "${PIC_FLAGS}") +TARGET_LINK_LIBRARIES(pitchscale ${FFTW3F_LIBRARIES}) TARGET_LINK_LIBRARIES(pitch_scale_1193 pitchscale) TARGET_LINK_LIBRARIES(pitch_scale_1194 pitchscale) diff --git a/plugins/LadspaEffect/swh/ladspa b/plugins/LadspaEffect/swh/ladspa index 02bda232041..0f54d2430fe 160000 --- a/plugins/LadspaEffect/swh/ladspa +++ b/plugins/LadspaEffect/swh/ladspa @@ -1 +1 @@ -Subproject commit 02bda232041380c2846414945798cbbfecb2f3f2 +Subproject commit 0f54d2430febb4d5f02d13132dd91d7345e080b5 diff --git a/plugins/LadspaEffect/tap/CMakeLists.txt b/plugins/LadspaEffect/tap/CMakeLists.txt index c8d0a4eb833..84c4694655f 100644 --- a/plugins/LadspaEffect/tap/CMakeLists.txt +++ b/plugins/LadspaEffect/tap/CMakeLists.txt @@ -1,10 +1,19 @@ +set_directory_properties(PROPERTIES SYSTEM TRUE) + INCLUDE_DIRECTORIES("${CMAKE_SOURCE_DIR}/include") FILE(GLOB PLUGIN_SOURCES tap-plugins/*.c) LIST(SORT PLUGIN_SOURCES) -SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O3 -Wno-write-strings -fomit-frame-pointer -fno-strict-aliasing -funroll-loops -ffast-math") +if(MSVC) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /fp:fast") +else() + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O3 -fomit-frame-pointer -fno-strict-aliasing -funroll-loops -ffast-math") +endif() FOREACH(_item ${PLUGIN_SOURCES}) GET_FILENAME_COMPONENT(_plugin "${_item}" NAME_WE) ADD_LIBRARY("${_plugin}" MODULE "${_item}") + if(MSVC) + target_link_options("${_plugin}" PRIVATE "/EXPORT:ladspa_descriptor") + endif() # TAP pinknoise will re-init srand(); use existing seed instead IF("${_plugin}" MATCHES "tap_pinknoise") TARGET_COMPILE_DEFINITIONS("${_plugin}" PRIVATE TAP_DISABLE_SRAND=1) @@ -24,4 +33,3 @@ FOREACH(_item ${PLUGIN_SOURCES}) TARGET_LINK_LIBRARIES("${_plugin}" m) ENDIF() ENDFOREACH() - diff --git a/plugins/Lb302/Lb302.cpp b/plugins/Lb302/Lb302.cpp index ee49442d5d4..9cb82bd7c90 100644 --- a/plugins/Lb302/Lb302.cpp +++ b/plugins/Lb302/Lb302.cpp @@ -72,7 +72,7 @@ namespace lmms { -//#define engine::audioEngine()->processingSampleRate() 44100.0f +//#define engine::audioEngine()->outputSampleRate() 44100.0f const float sampleRateCutoff = 44100.0f; extern "C" @@ -111,8 +111,8 @@ void Lb302Filter::recalc() { vcf_e1 = exp(6.109 + 1.5876*(fs->envmod) + 2.1553*(fs->cutoff) - 1.2*(1.0-(fs->reso))); vcf_e0 = exp(5.613 - 0.8*(fs->envmod) + 2.1553*(fs->cutoff) - 0.7696*(1.0-(fs->reso))); - vcf_e0*=M_PI/Engine::audioEngine()->processingSampleRate(); - vcf_e1*=M_PI/Engine::audioEngine()->processingSampleRate(); + vcf_e0*=M_PI/Engine::audioEngine()->outputSampleRate(); + vcf_e1*=M_PI/Engine::audioEngine()->outputSampleRate(); vcf_e1 -= vcf_e0; vcf_rescoeff = exp(-1.20 + 3.455*(fs->reso)); @@ -166,12 +166,10 @@ void Lb302FilterIIR2::recalc() void Lb302FilterIIR2::envRecalc() { - float k, w; - Lb302Filter::envRecalc(); - w = vcf_e0 + vcf_c0; // e0 is adjusted for Hz and doesn't need ENVINC - k = exp(-w/vcf_rescoeff); // Does this mean c0 is inheritantly? + float w = vcf_e0 + vcf_c0; // e0 is adjusted for Hz and doesn't need ENVINC + float k = exp(-w/vcf_rescoeff); // Does this mean c0 is inheritantly? vcf_a = 2.0*cos(2.0*w) * k; vcf_b = -k*k; @@ -211,7 +209,7 @@ Lb302Filter3Pole::Lb302Filter3Pole(Lb302FilterKnobState *p_fs) : void Lb302Filter3Pole::recalc() { // DO NOT CALL BASE CLASS - vcf_e0 = 0.000001; + vcf_e0 = 0.000001f; vcf_e1 = 1.0; } @@ -219,18 +217,15 @@ void Lb302Filter3Pole::recalc() // TODO: Try using k instead of vcf_reso void Lb302Filter3Pole::envRecalc() { - float w,k; - float kfco; - Lb302Filter::envRecalc(); // e0 is adjusted for Hz and doesn't need ENVINC - w = vcf_e0 + vcf_c0; - k = (fs->cutoff > 0.975)?0.975:fs->cutoff; + float w = vcf_e0 + vcf_c0; + float k = (fs->cutoff > 0.975)?0.975:fs->cutoff; // sampleRateCutoff should not be changed to anything dynamic that is outside the // scope of LB302 (like e.g. the audio engine's sample rate) as this changes the filter's cutoff // behavior without any modification to its controls. - kfco = 50.f + (k)*((2300.f-1600.f*(fs->envmod))+(w) * + float kfco = 50.f + (k)*((2300.f-1600.f*(fs->envmod))+(w) * (700.f+1500.f*(k)+(1500.f+(k)*(sampleRateCutoff/2.f-6000.f)) * (fs->envmod)) ); //+iacc*(.3+.7*kfco*kenvmod)*kaccent*kaccurve*2000 @@ -238,7 +233,7 @@ void Lb302Filter3Pole::envRecalc() #ifdef LB_24_IGNORE_ENVELOPE // kfcn = fs->cutoff; - kfcn = 2.0 * kfco / Engine::audioEngine()->processingSampleRate(); + kfcn = 2.0 * kfco / Engine::audioEngine()->outputSampleRate(); #else kfcn = w; #endif @@ -273,8 +268,18 @@ float Lb302Filter3Pole::process(const float& samp) // LBSynth // +static float computeDecayFactor(float decayTimeInSeconds, float targetedAttenuation) +{ + // This is the number of samples that correspond to the decay time in seconds + auto samplesNeededForDecay = decayTimeInSeconds * Engine::audioEngine()->outputSampleRate(); + + // This computes the factor that's needed to make a signal with a value of 1 decay to the + // targeted attenuation over the time in number of samples. + return std::pow(targetedAttenuation, 1. / samplesNeededForDecay); +} + Lb302Synth::Lb302Synth( InstrumentTrack * _instrumentTrack ) : - Instrument( _instrumentTrack, &lb302_plugin_descriptor ), + Instrument(_instrumentTrack, &lb302_plugin_descriptor, nullptr, Flag::IsSingleStreamed), vcf_cut_knob( 0.75f, 0.0f, 1.5f, 0.005f, this, tr( "VCF Cutoff Frequency" ) ), vcf_res_knob( 0.75f, 0.0f, 1.25f, 0.005f, this, tr( "VCF Resonance" ) ), vcf_mod_knob( 0.1f, 0.0f, 1.0f, 0.005f, this, tr( "VCF Envelope Mod" ) ), @@ -286,8 +291,7 @@ Lb302Synth::Lb302Synth( InstrumentTrack * _instrumentTrack ) : accentToggle( false, this, tr( "Accent" ) ), deadToggle( false, this, tr( "Dead" ) ), db24Toggle( false, this, tr( "24dB/oct Filter" ) ), - vca_attack(1.0 - 0.96406088), - vca_decay(0.99897516), + vca_attack(1.f - 0.96406088f), vca_a0(0.5), vca_a(0.), vca_mode(VcaMode::NeverPlayed) @@ -410,7 +414,7 @@ void Lb302Synth::filterChanged() float d = 0.2 + (2.3*vcf_dec_knob.value()); - d *= Engine::audioEngine()->processingSampleRate(); // d *= smpl rate + d *= Engine::audioEngine()->outputSampleRate(); // d *= smpl rate fs.envdecay = pow(0.1, 1.0/d * ENVINC); // decay is 0.1 to the 1/d * ENVINC // vcf_envdecay is now adjusted for both // sampling rate and ENVINC @@ -444,7 +448,7 @@ void Lb302Synth::recalcFilter() // THIS IS OLD 3pole/24dB code, I may reintegrate it. Don't need it // right now. Should be toggled by LB_24_RES_TRICK at the moment. - /*kfcn = 2.0 * (((vcf_cutoff*3000))) / engine::audioEngine()->processingSampleRate(); + /*kfcn = 2.0 * (((vcf_cutoff*3000))) / engine::audioEngine()->outputSampleRate(); kp = ((-2.7528*kfcn + 3.0429)*kfcn + 1.718)*kfcn - 0.9984; kp1 = kp+1.0; kp1h = 0.5*kp1; @@ -455,14 +459,12 @@ void Lb302Synth::recalcFilter() } inline float GET_INC(float freq) { - return freq/Engine::audioEngine()->processingSampleRate(); // TODO: Use actual sampling rate. + return freq/Engine::audioEngine()->outputSampleRate(); // TODO: Use actual sampling rate. } -int Lb302Synth::process(sampleFrame *outbuf, const int size) +int Lb302Synth::process(SampleFrame* outbuf, const std::size_t size) { - const float sampleRatio = 44100.f / Engine::audioEngine()->processingSampleRate(); - float w; - float samp; + const float sampleRatio = 44100.f / Engine::audioEngine()->outputSampleRate(); // Hold on to the current VCF, and use it throughout this period Lb302Filter *filter = vcf.loadAcquire(); @@ -488,13 +490,18 @@ int Lb302Synth::process(sampleFrame *outbuf, const int size) // TODO: NORMAL RELEASE // vca_mode = 1; - for( int i=0; i= release_frame ) - { - vca_mode = VcaMode::Decay; - } + if (i >= release_frame) { vca_mode = VcaMode::Decay; } // update vcf if(vcf_envpos >= ENVINC) { @@ -566,7 +573,7 @@ int Lb302Synth::process(sampleFrame *outbuf, const int size) vco_k = -0.5 ; } else if (vco_k>0.5) { - w = 2.0*(vco_k-0.5)-1.0; + float w = 2.0 * (vco_k - 0.5) - 1.0; vco_k = 0.5 - sqrtf(1.0-(w*w)); } vco_k *= 2.0; // MOOG wave gets filtered away @@ -585,20 +592,23 @@ int Lb302Synth::process(sampleFrame *outbuf, const int size) vco_k = 0.5 * Oscillator::noiseSample( vco_c ); break; + // The next cases all use the BandLimitedWave class which uses the oscillator increment `vco_inc` to compute samples. + // If that oscillator increment is 0 we return a 0 sample because calling BandLimitedWave::pdToLen(0) leads to a + // division by 0 which in turn leads to floating point exceptions. case VcoShape::BLSawtooth: - vco_k = BandLimitedWave::oscillate( vco_c + 0.5f, BandLimitedWave::pdToLen( vco_inc ), BandLimitedWave::Waveform::BLSaw ) * 0.5f; + vco_k = vco_inc == 0. ? 0. : BandLimitedWave::oscillate(vco_c + 0.5f, BandLimitedWave::pdToLen(vco_inc), BandLimitedWave::Waveform::BLSaw) * 0.5f; break; case VcoShape::BLSquare: - vco_k = BandLimitedWave::oscillate( vco_c + 0.5f, BandLimitedWave::pdToLen( vco_inc ), BandLimitedWave::Waveform::BLSquare ) * 0.5f; + vco_k = vco_inc == 0. ? 0. : BandLimitedWave::oscillate(vco_c + 0.5f, BandLimitedWave::pdToLen(vco_inc), BandLimitedWave::Waveform::BLSquare) * 0.5f; break; case VcoShape::BLTriangle: - vco_k = BandLimitedWave::oscillate( vco_c + 0.5f, BandLimitedWave::pdToLen( vco_inc ), BandLimitedWave::Waveform::BLTriangle ) * 0.5f; + vco_k = vco_inc == 0. ? 0. : BandLimitedWave::oscillate(vco_c + 0.5f, BandLimitedWave::pdToLen(vco_inc), BandLimitedWave::Waveform::BLTriangle) * 0.5f; break; case VcoShape::BLMoog: - vco_k = BandLimitedWave::oscillate( vco_c + 0.5f, BandLimitedWave::pdToLen( vco_inc ), BandLimitedWave::Waveform::BLMoog ); + vco_k = vco_inc == 0. ? 0. : BandLimitedWave::oscillate(vco_c + 0.5f, BandLimitedWave::pdToLen(vco_inc), BandLimitedWave::Waveform::BLMoog); break; } @@ -607,7 +617,7 @@ int Lb302Synth::process(sampleFrame *outbuf, const int size) #ifdef LB_FILTERED //samp = vcf->process(vco_k)*2.0*vca_a; //samp = vcf->process(vco_k)*2.0; - samp = filter->process(vco_k) * vca_a; + float samp = filter->process(vco_k) * vca_a; //printf("%f %d\n", vco_c, sample_cnt); @@ -635,11 +645,11 @@ int Lb302Synth::process(sampleFrame *outbuf, const int size) // Handle Envelope if(vca_mode==VcaMode::Attack) { vca_a+=(vca_a0-vca_a)*vca_attack; - if(sample_cnt>=0.5*Engine::audioEngine()->processingSampleRate()) + if(sample_cnt>=0.5*Engine::audioEngine()->outputSampleRate()) vca_mode = VcaMode::Idle; } else if(vca_mode == VcaMode::Decay) { - vca_a *= vca_decay; + vca_a *= decay; // the following line actually speeds up processing if(vca_a < (1/65536.0)) { @@ -719,7 +729,7 @@ void Lb302Synth::initSlide() } -void Lb302Synth::playNote( NotePlayHandle * _n, sampleFrame * _working_buffer ) +void Lb302Synth::playNote( NotePlayHandle * _n, SampleFrame* _working_buffer ) { if( _n->isMasterNote() || ( _n->hasParent() && _n->isReleased() ) ) { @@ -737,8 +747,8 @@ void Lb302Synth::playNote( NotePlayHandle * _n, sampleFrame * _working_buffer ) m_notes.prepend( _n ); } m_notesMutex.unlock(); - - release_frame = qMax( release_frame, _n->framesLeft() + _n->offset() ); + + release_frame = std::max(release_frame, _n->framesLeft() + _n->offset()); } @@ -778,7 +788,7 @@ void Lb302Synth::processNote( NotePlayHandle * _n ) -void Lb302Synth::play( sampleFrame * _working_buffer ) +void Lb302Synth::play( SampleFrame* _working_buffer ) { m_notesMutex.lock(); while( ! m_notes.isEmpty() ) diff --git a/plugins/Lb302/Lb302.h b/plugins/Lb302/Lb302.h index 237a3f3f8be..f9129af668c 100644 --- a/plugins/Lb302/Lb302.h +++ b/plugins/Lb302/Lb302.h @@ -152,9 +152,9 @@ class Lb302Synth : public Instrument Lb302Synth( InstrumentTrack * _instrument_track ); ~Lb302Synth() override; - void play( sampleFrame * _working_buffer ) override; + void play( SampleFrame* _working_buffer ) override; void playNote( NotePlayHandle * _n, - sampleFrame * _working_buffer ) override; + SampleFrame* _working_buffer ) override; void deleteNotePluginData( NotePlayHandle * _n ) override; @@ -163,16 +163,6 @@ class Lb302Synth : public Instrument QString nodeName() const override; - Flags flags() const override - { - return Flag::IsSingleStreamed; - } - - f_cnt_t desiredReleaseFrames() const override - { - return 0; //4048; - } - gui::PluginView* instantiateView( QWidget * _parent ) override; private: @@ -224,13 +214,12 @@ public slots: Lb302FilterKnobState fs; QAtomicPointer vcf; - int release_frame; + size_t release_frame; // More States int vcf_envpos; // Update counter. Updates when >= ENVINC float vca_attack, // Amp attack - vca_decay, // Amp decay vca_a0, // Initial amplifier coefficient vca_a; // Amplifier coefficient. @@ -257,7 +246,7 @@ public slots: void recalcFilter(); - int process(sampleFrame *outbuf, const int size); + int process(SampleFrame* outbuf, const std::size_t size); friend class gui::Lb302SynthView; diff --git a/plugins/Lv2Effect/CMakeLists.txt b/plugins/Lv2Effect/CMakeLists.txt index 915751797d1..e0427eaa30a 100644 --- a/plugins/Lv2Effect/CMakeLists.txt +++ b/plugins/Lv2Effect/CMakeLists.txt @@ -1,7 +1,7 @@ IF(LMMS_HAVE_LV2) - INCLUDE_DIRECTORIES(${LV2_INCLUDE_DIRS}) - INCLUDE_DIRECTORIES(${LILV_INCLUDE_DIRS}) - INCLUDE_DIRECTORIES(${SUIL_INCLUDE_DIRS}) + include_directories(SYSTEM ${LV2_INCLUDE_DIRS}) + include_directories(SYSTEM ${LILV_INCLUDE_DIRS}) + include_directories(SYSTEM ${SUIL_INCLUDE_DIRS}) INCLUDE(BuildPlugin) BUILD_PLUGIN(lv2effect Lv2Effect.cpp Lv2FxControls.cpp Lv2FxControlDialog.cpp Lv2Effect.h Lv2FxControls.h Lv2FxControlDialog.h MOCFILES Lv2Effect.h Lv2FxControls.h Lv2FxControlDialog.h diff --git a/plugins/Lv2Effect/Lv2Effect.cpp b/plugins/Lv2Effect/Lv2Effect.cpp index 9c21b3f2a4f..afa69fe1373 100644 --- a/plugins/Lv2Effect/Lv2Effect.cpp +++ b/plugins/Lv2Effect/Lv2Effect.cpp @@ -24,6 +24,7 @@ #include "Lv2Effect.h" +#include #include "Lv2SubPluginFeatures.h" @@ -67,9 +68,8 @@ Lv2Effect::Lv2Effect(Model* parent, const Descriptor::SubPluginFeatures::Key *ke -bool Lv2Effect::processAudioBuffer(sampleFrame *buf, const fpp_t frames) +Effect::ProcessStatus Lv2Effect::processImpl(SampleFrame* buf, const fpp_t frames) { - if (!isEnabled() || !isRunning()) { return false; } Q_ASSERT(frames <= static_cast(m_tmpOutputSmps.size())); m_controls.copyBuffersFromLmms(buf, frames); @@ -82,7 +82,6 @@ bool Lv2Effect::processAudioBuffer(sampleFrame *buf, const fpp_t frames) m_controls.copyModelsToLmms(); m_controls.copyBuffersToLmms(m_tmpOutputSmps.data(), frames); - double outSum = .0; bool corrupt = wetLevel() < 0; // #3261 - if w < 0, bash w := 0, d := 1 const float d = corrupt ? 1 : dryLevel(); const float w = corrupt ? 0 : wetLevel(); @@ -90,13 +89,9 @@ bool Lv2Effect::processAudioBuffer(sampleFrame *buf, const fpp_t frames) { buf[f][0] = d * buf[f][0] + w * m_tmpOutputSmps[f][0]; buf[f][1] = d * buf[f][1] + w * m_tmpOutputSmps[f][1]; - auto l = static_cast(buf[f][0]); - auto r = static_cast(buf[f][1]); - outSum += l*l + r*r; } - checkGate(outSum / frames); - return isRunning(); + return ProcessStatus::ContinueIfNotQuiet; } @@ -109,9 +104,12 @@ extern "C" PLUGIN_EXPORT Plugin *lmms_plugin_main(Model *_parent, void *_data) { using KeyType = Plugin::Descriptor::SubPluginFeatures::Key; - auto eff = new Lv2Effect(_parent, static_cast(_data)); - if (!eff->isValid()) { delete eff; eff = nullptr; } - return eff; + try { + return new Lv2Effect(_parent, static_cast(_data)); + } catch (const std::runtime_error& e) { + qCritical() << e.what(); + return nullptr; + } } } diff --git a/plugins/Lv2Effect/Lv2Effect.h b/plugins/Lv2Effect/Lv2Effect.h index 3bcded35577..dbede0d4353 100644 --- a/plugins/Lv2Effect/Lv2Effect.h +++ b/plugins/Lv2Effect/Lv2Effect.h @@ -41,10 +41,9 @@ class Lv2Effect : public Effect initialization */ Lv2Effect(Model* parent, const Descriptor::SubPluginFeatures::Key* _key); - //! Must be checked after ctor or reload - bool isValid() const { return m_controls.isValid(); } - bool processAudioBuffer( sampleFrame* buf, const fpp_t frames ) override; + ProcessStatus processImpl(SampleFrame* buf, const fpp_t frames) override; + EffectControls* controls() override { return &m_controls; } Lv2FxControls* lv2Controls() { return &m_controls; } @@ -52,7 +51,7 @@ class Lv2Effect : public Effect private: Lv2FxControls m_controls; - std::vector m_tmpOutputSmps; + std::vector m_tmpOutputSmps; }; diff --git a/plugins/Lv2Effect/Lv2FxControls.cpp b/plugins/Lv2Effect/Lv2FxControls.cpp index 3ec7dbe23a4..72c387ba79b 100644 --- a/plugins/Lv2Effect/Lv2FxControls.cpp +++ b/plugins/Lv2Effect/Lv2FxControls.cpp @@ -38,11 +38,8 @@ Lv2FxControls::Lv2FxControls(class Lv2Effect *effect, const QString& uri) : EffectControls(effect), Lv2ControlBase(this, uri) { - if (isValid()) - { - connect(Engine::audioEngine(), &AudioEngine::sampleRateChanged, - this, [this](){onSampleRateChanged();}); - } + connect(Engine::audioEngine(), &AudioEngine::sampleRateChanged, + this, &Lv2FxControls::onSampleRateChanged); } diff --git a/plugins/Lv2Instrument/CMakeLists.txt b/plugins/Lv2Instrument/CMakeLists.txt index 290bd84e82e..e10eff69215 100644 --- a/plugins/Lv2Instrument/CMakeLists.txt +++ b/plugins/Lv2Instrument/CMakeLists.txt @@ -1,7 +1,7 @@ IF(LMMS_HAVE_LV2) - INCLUDE_DIRECTORIES(${LV2_INCLUDE_DIRS}) - INCLUDE_DIRECTORIES(${LILV_INCLUDE_DIRS}) - INCLUDE_DIRECTORIES(${SUIL_INCLUDE_DIRS}) + include_directories(SYSTEM ${LV2_INCLUDE_DIRS}) + include_directories(SYSTEM ${LILV_INCLUDE_DIRS}) + include_directories(SYSTEM ${SUIL_INCLUDE_DIRS}) INCLUDE(BuildPlugin) BUILD_PLUGIN(lv2instrument Lv2Instrument.cpp Lv2Instrument.h MOCFILES Lv2Instrument.h EMBEDDED_RESOURCES logo.png) ENDIF(LMMS_HAVE_LV2) diff --git a/plugins/Lv2Instrument/Lv2Instrument.cpp b/plugins/Lv2Instrument/Lv2Instrument.cpp index 841b8a89ad2..8da2d913ed3 100644 --- a/plugins/Lv2Instrument/Lv2Instrument.cpp +++ b/plugins/Lv2Instrument/Lv2Instrument.cpp @@ -73,22 +73,25 @@ Plugin::Descriptor PLUGIN_EXPORT lv2instrument_plugin_descriptor = Lv2Instrument::Lv2Instrument(InstrumentTrack *instrumentTrackArg, Descriptor::SubPluginFeatures::Key *key) : - Instrument(instrumentTrackArg, &lv2instrument_plugin_descriptor, key), + Instrument(instrumentTrackArg, &lv2instrument_plugin_descriptor, key, +#ifdef LV2_INSTRUMENT_USE_MIDI + Flag::IsSingleStreamed | Flag::IsMidiBased +#else + Flag::IsSingleStreamed +#endif + ), Lv2ControlBase(this, key->attributes["uri"]) { - if (Lv2ControlBase::isValid()) - { - clearRunningNotes(); + clearRunningNotes(); - connect(instrumentTrack()->pitchRangeModel(), SIGNAL(dataChanged()), - this, SLOT(updatePitchRange()), Qt::DirectConnection); - connect(Engine::audioEngine(), &AudioEngine::sampleRateChanged, - this, [this](){onSampleRateChanged();}); + connect(instrumentTrack()->pitchRangeModel(), SIGNAL(dataChanged()), + this, SLOT(updatePitchRange()), Qt::DirectConnection); + connect(Engine::audioEngine(), &AudioEngine::sampleRateChanged, + this, &Lv2Instrument::onSampleRateChanged); - // now we need a play-handle which cares for calling play() - auto iph = new InstrumentPlayHandle(this, instrumentTrackArg); - Engine::audioEngine()->addPlayHandle(iph); - } + // now we need a play-handle which cares for calling play() + auto iph = new InstrumentPlayHandle(this, instrumentTrackArg); + Engine::audioEngine()->addPlayHandle(iph); } @@ -134,11 +137,6 @@ void Lv2Instrument::onSampleRateChanged() -bool Lv2Instrument::isValid() const { return Lv2ControlBase::isValid(); } - - - - void Lv2Instrument::saveSettings(QDomDocument &doc, QDomElement &that) { Lv2ControlBase::saveSettings(doc, that); @@ -179,7 +177,7 @@ bool Lv2Instrument::handleMidiEvent( // not yet working #ifndef LV2_INSTRUMENT_USE_MIDI -void Lv2Instrument::playNote(NotePlayHandle *nph, sampleFrame *) +void Lv2Instrument::playNote(NotePlayHandle *nph, SampleFrame*) { } #endif @@ -187,7 +185,7 @@ void Lv2Instrument::playNote(NotePlayHandle *nph, sampleFrame *) -void Lv2Instrument::play(sampleFrame *buf) +void Lv2Instrument::play(SampleFrame* buf) { copyModelsFromLmms(); @@ -321,9 +319,12 @@ extern "C" PLUGIN_EXPORT Plugin *lmms_plugin_main(Model *_parent, void *_data) { using KeyType = Plugin::Descriptor::SubPluginFeatures::Key; - auto ins = new Lv2Instrument(static_cast(_parent), static_cast(_data)); - if (!ins->isValid()) { delete ins; ins = nullptr; } - return ins; + try { + return new Lv2Instrument(static_cast(_parent), static_cast(_data)); + } catch (const std::runtime_error& e) { + qCritical() << e.what(); + return nullptr; + } } } diff --git a/plugins/Lv2Instrument/Lv2Instrument.h b/plugins/Lv2Instrument/Lv2Instrument.h index 5e255e0dfbe..9fbc7b7f699 100644 --- a/plugins/Lv2Instrument/Lv2Instrument.h +++ b/plugins/Lv2Instrument/Lv2Instrument.h @@ -26,12 +26,13 @@ #define LV2_INSTRUMENT_H #include +#include #include "Instrument.h" #include "InstrumentView.h" -#include "Note.h" #include "Lv2ControlBase.h" #include "Lv2ViewBase.h" +#include "Note.h" // whether to use MIDI vs playHandle // currently only MIDI works @@ -61,8 +62,6 @@ class Lv2Instrument : public Instrument, public Lv2ControlBase ~Lv2Instrument() override; void reload(); void onSampleRateChanged(); - //! Must be checked after ctor or reload - bool isValid() const; /* load/save @@ -79,21 +78,13 @@ class Lv2Instrument : public Instrument, public Lv2ControlBase bool handleMidiEvent(const MidiEvent &event, const TimePos &time = TimePos(), f_cnt_t offset = 0) override; #else - void playNote(NotePlayHandle *nph, sampleFrame *) override; + void playNote(NotePlayHandle *nph, SampleFrame*) override; #endif - void play(sampleFrame *buf) override; + void play(SampleFrame* buf) override; /* misc */ - Flags flags() const override - { -#ifdef LV2_INSTRUMENT_USE_MIDI - return Flag::IsSingleStreamed | Flag::IsMidiBased; -#else - return Flag::IsSingleStreamed; -#endif - } gui::PluginView* instantiateView(QWidget *parent) override; private slots: diff --git a/plugins/MidiExport/MidiExport.cpp b/plugins/MidiExport/MidiExport.cpp index 2600a40f2f9..b3b08a0e113 100644 --- a/plugins/MidiExport/MidiExport.cpp +++ b/plugins/MidiExport/MidiExport.cpp @@ -76,21 +76,18 @@ bool MidiExport::tryExport(const TrackContainer::TrackList &tracks, f.open(QIODevice::WriteOnly); QDataStream midiout(&f); - InstrumentTrack* instTrack; - PatternTrack* patternTrack; QDomElement element; int nTracks = 0; auto buffer = std::array{}; - uint32_t size; for (const Track* track : tracks) if (track->type() == Track::Type::Instrument) nTracks++; for (const Track* track : patternStoreTracks) if (track->type() == Track::Type::Instrument) nTracks++; // midi header MidiFile::MIDIHeader header(nTracks); - size = header.writeToBuffer(buffer.data()); + uint32_t size = header.writeToBuffer(buffer.data()); midiout.writeRawData((char *)buffer.data(), size); std::vector>> plists; @@ -108,7 +105,7 @@ bool MidiExport::tryExport(const TrackContainer::TrackList &tracks, //mtrack.addProgramChange(0, 0); mtrack.addTempo(tempo, 0); - instTrack = dynamic_cast(track); + auto instTrack = dynamic_cast(track); element = instTrack->saveState(dataFile, dataFile.content()); int base_pitch = 0; @@ -146,7 +143,7 @@ bool MidiExport::tryExport(const TrackContainer::TrackList &tracks, if (track->type() == Track::Type::Pattern) { - patternTrack = dynamic_cast(track); + auto patternTrack = dynamic_cast(track); element = patternTrack->saveState(dataFile, dataFile.content()); std::vector> plist; @@ -184,7 +181,7 @@ bool MidiExport::tryExport(const TrackContainer::TrackList &tracks, //mtrack.addProgramChange(0, 0); mtrack.addTempo(tempo, 0); - instTrack = dynamic_cast(track); + auto instTrack = dynamic_cast(track); element = instTrack->saveState(dataFile, dataFile.content()); int base_pitch = 0; diff --git a/plugins/MidiExport/MidiFile.hpp b/plugins/MidiExport/MidiFile.hpp index 79c8dcce2cd..26f203cd67c 100644 --- a/plugins/MidiExport/MidiFile.hpp +++ b/plugins/MidiExport/MidiFile.hpp @@ -25,6 +25,7 @@ #include #include #include +#include using std::string; using std::vector; @@ -47,8 +48,8 @@ int writeVarLength(uint32_t val, uint8_t *buffer) byte in question is the last in the stream */ int size = 0; - uint8_t result, little_endian[4]; - result = val & 0x7F; + uint8_t little_endian[4]; + uint8_t result = val & 0x7F; little_endian[size++] = result; val = val >> 7; while (val > 0) @@ -129,31 +130,37 @@ struct Event inline int writeToBuffer(uint8_t *buffer) const { - uint8_t code, fourbytes[4]; - int size=0; - switch (type) + int size = 0; + switch (type) { case NOTE_ON: - code = 0x9 << 4 | channel; + { + uint8_t code = 0x9 << 4 | channel; size += writeVarLength(time, buffer+size); buffer[size++] = code; buffer[size++] = pitch; buffer[size++] = volume; break; + } case NOTE_OFF: - code = 0x8 << 4 | channel; + { + uint8_t code = 0x8 << 4 | channel; size += writeVarLength(time, buffer+size); buffer[size++] = code; buffer[size++] = pitch; buffer[size++] = volume; break; + } case TEMPO: - code = 0xFF; + { + uint8_t code = 0xFF; size += writeVarLength(time, buffer+size); buffer[size++] = code; buffer[size++] = 0x51; buffer[size++] = 0x03; - writeBigEndian4(int(60000000.0 / tempo), fourbytes); + + std::array fourbytes; + writeBigEndian4(int(60000000.0 / tempo), fourbytes.data()); //printf("tempo of %x translates to ", tempo); /* @@ -164,23 +171,27 @@ struct Event buffer[size++] = fourbytes[2]; buffer[size++] = fourbytes[3]; break; + } case PROG_CHANGE: - code = 0xC << 4 | channel; + { + uint8_t code = 0xC << 4 | channel; size += writeVarLength(time, buffer+size); buffer[size++] = code; buffer[size++] = programNumber; break; + } case TRACK_NAME: + { size += writeVarLength(time, buffer+size); buffer[size++] = 0xFF; buffer[size++] = 0x03; size += writeVarLength(trackName.size(), buffer+size); trackName.copy((char *)(&buffer[size]), trackName.size()); size += trackName.size(); -// buffer[size++] = '\0'; -// buffer[size++] = '\0'; - break; + // buffer[size++] = '\0'; + // buffer[size++] = '\0'; + } } return size; } // writeEventsToBuffer @@ -275,7 +286,7 @@ class MIDITrack vector _events = events; std::sort(_events.begin(), _events.end()); vector::const_iterator it; - uint32_t time_last = 0, tmp; + uint32_t time_last = 0; for (it = _events.begin(); it!=_events.end(); ++it) { Event e = *it; @@ -283,7 +294,7 @@ class MIDITrack printf("error: e.time=%d time_last=%d\n", e.time, time_last); assert(false); } - tmp = e.time; + uint32_t tmp = e.time; e.time -= time_last; time_last = tmp; start += e.writeToBuffer(buffer+start); diff --git a/plugins/MidiImport/MidiImport.h b/plugins/MidiImport/MidiImport.h index 817d06be855..0870511b571 100644 --- a/plugins/MidiImport/MidiImport.h +++ b/plugins/MidiImport/MidiImport.h @@ -61,10 +61,10 @@ class MidiImport : public ImportFilter inline int readInt( int _bytes ) { - int c, value = 0; + int value = 0; do { - c = readByte(); + int c = readByte(); if( c == -1 ) { return( -1 ); diff --git a/plugins/Monstro/Monstro.cpp b/plugins/Monstro/Monstro.cpp index 2201e4ed90b..ff92abbb647 100644 --- a/plugins/Monstro/Monstro.cpp +++ b/plugins/Monstro/Monstro.cpp @@ -30,7 +30,6 @@ #include "ComboBox.h" #include "Engine.h" #include "InstrumentTrack.h" -#include "gui_templates.h" #include "lmms_math.h" #include "interpolation.h" @@ -111,7 +110,7 @@ MonstroSynth::MonstroSynth( MonstroInstrument * _i, NotePlayHandle * _nph ) : } -void MonstroSynth::renderOutput( fpp_t _frames, sampleFrame * _buf ) +void MonstroSynth::renderOutput( fpp_t _frames, SampleFrame* _buf ) { float modtmp; // temp variable for freq modulation // macros for modulating with env/lfos @@ -320,8 +319,8 @@ void MonstroSynth::renderOutput( fpp_t _frames, sampleFrame * _buf ) float rightph; float pd_l; float pd_r; - float len_l; - float len_r; + float len_l(0.); + float len_r(0.); // osc1 vars float o1l_f; @@ -503,12 +502,27 @@ void MonstroSynth::renderOutput( fpp_t _frames, sampleFrame * _buf ) if( pd_r > 0.5 ) pd_r = 1.0 - pd_r; // multi-wave DC Oscillator - len_l = BandLimitedWave::pdToLen( pd_l ); - len_r = BandLimitedWave::pdToLen( pd_r ); - if( m_counter2l > 0 ) { len_l /= m_counter2l; m_counter2l--; } - if( m_counter2r > 0 ) { len_r /= m_counter2r; m_counter2r--; } - sample_t O2L = oscillate( o2w, leftph, len_l ); - sample_t O2R = oscillate( o2w, rightph, len_r ); + sample_t O2L = 0.; + if (pd_l != 0.) + { + len_l = BandLimitedWave::pdToLen(pd_l); + if (m_counter2l > 0) + { + len_l /= m_counter2l; m_counter2l--; + } + O2L = oscillate(o2w, leftph, len_l); + } + + sample_t O2R = 0.; + if (pd_r != 0.) + { + len_r = BandLimitedWave::pdToLen(pd_r); + if (m_counter2r > 0) + { + len_r /= m_counter2r; m_counter2r--; + } + O2R = oscillate(o2w, rightph, len_r); + } // modulate volume O2L *= o2lv; @@ -568,17 +582,40 @@ void MonstroSynth::renderOutput( fpp_t _frames, sampleFrame * _buf ) if( pd_r > 0.5 ) pd_r = 1.0 - pd_r; // multi-wave DC Oscillator - len_l = BandLimitedWave::pdToLen( pd_l ); - len_r = BandLimitedWave::pdToLen( pd_r ); - if( m_counter3l > 0 ) { len_l /= m_counter3l; m_counter3l--; } - if( m_counter3r > 0 ) { len_r /= m_counter3r; m_counter3r--; } - // sub-osc 1 - sample_t O3AL = oscillate( o3w1, leftph, len_l ); - sample_t O3AR = oscillate( o3w1, rightph, len_r ); + sample_t O3AL = 0.; + sample_t O3AR = 0.; // multi-wave DC Oscillator, sub-osc 2 - sample_t O3BL = oscillate( o3w2, leftph, len_l ); - sample_t O3BR = oscillate( o3w2, rightph, len_r ); + sample_t O3BL = 0.; + sample_t O3BR = 0.; + + if (pd_l != 0.) + { + len_l = BandLimitedWave::pdToLen(pd_l); + if (m_counter3l > 0) + { + len_l /= m_counter3l; m_counter3l--; + } + // sub-osc 1 + O3AL = oscillate(o3w1, leftph, len_l); + + // multi-wave DC Oscillator, sub-osc 2 + O3BL = oscillate(o3w2, leftph, len_l); + } + + if (pd_r != 0.) + { + len_r = BandLimitedWave::pdToLen(pd_r); + if (m_counter3r > 0) + { + len_r /= m_counter3r; m_counter3r--; + } + // sub-osc 1 + O3AR = oscillate(o3w1, rightph, len_r); + + // multi-wave DC Oscillator, sub-osc 2 + O3BR = oscillate(o3w2, rightph, len_r); + } // calc and modulate sub sub = o3sub; @@ -648,7 +685,7 @@ void MonstroSynth::renderOutput( fpp_t _frames, sampleFrame * _buf ) } -inline void MonstroSynth::updateModulators( float * env1, float * env2, float * lfo1, float * lfo2, int frames ) +inline void MonstroSynth::updateModulators(float * env1, float * env2, float * lfo1, float * lfo2, f_cnt_t frames) { // frames played before const f_cnt_t tfp = m_nph->totalFramesPlayed(); @@ -753,7 +790,7 @@ inline void MonstroSynth::updateModulators( float * env1, float * env2, float * // attack for( f_cnt_t f = 0; f < frames; ++f ) { - if( tfp + f < m_lfoatt[i] ) lfo[i][f] *= ( static_cast( tfp ) / m_lfoatt[i] ); + if (tfp + f < static_cast(m_lfoatt[i])) { lfo[i][f] *= static_cast(tfp) / m_lfoatt[i]; } } @@ -821,38 +858,38 @@ inline sample_t MonstroSynth::calcSlope( int slope, sample_t s ) { if( m_parent->m_slope[slope] == 1.0f ) return s; if( s == 0.0f ) return s; - return fastPow( s, m_parent->m_slope[slope] ); + return fastPow(s, m_parent->m_slope[slope]); } MonstroInstrument::MonstroInstrument( InstrumentTrack * _instrument_track ) : Instrument( _instrument_track, &monstro_plugin_descriptor ), - m_osc1Vol( 33.0, 0.0, 200.0, 0.1, this, tr( "Osc 1 volume" ) ), - m_osc1Pan( 0.0, -100.0, 100.0, 0.1, this, tr( "Osc 1 panning" ) ), + m_osc1Vol(33.f, 0.f, 200.f, 0.1f, this, tr("Osc 1 volume")), + m_osc1Pan(0.f, -100.f, 100.f, 0.1f, this, tr("Osc 1 panning")), m_osc1Crs( 0.0, -24.0, 24.0, 1.0, this, tr( "Osc 1 coarse detune" ) ), m_osc1Ftl( 0.0, -100.0, 100.0, 1.0, this, tr( "Osc 1 fine detune left" ) ), m_osc1Ftr( 0.0, -100.0, 100.0, 1.0, this, tr( "Osc 1 fine detune right" ) ), - m_osc1Spo( 0.0, -180.0, 180.0, 0.1, this, tr( "Osc 1 stereo phase offset" ) ), - m_osc1Pw( 50.0, PW_MIN, PW_MAX, 0.01, this, tr( "Osc 1 pulse width" ) ), + m_osc1Spo(0.f, -180.f, 180.f, 0.1f, this, tr("Osc 1 stereo phase offset")), + m_osc1Pw(50.f, PW_MIN, PW_MAX, 0.01f, this, tr("Osc 1 pulse width")), m_osc1SSR( false, this, tr( "Osc 1 sync send on rise" ) ), m_osc1SSF( false, this, tr( "Osc 1 sync send on fall" ) ), - m_osc2Vol( 33.0, 0.0, 200.0, 0.1, this, tr( "Osc 2 volume" ) ), - m_osc2Pan( 0.0, -100.0, 100.0, 0.1, this, tr( "Osc 2 panning" ) ), + m_osc2Vol(33.f, 0.f, 200.f, 0.1f, this, tr("Osc 2 volume")), + m_osc2Pan(0.f, -100.f, 100.f, 0.1f, this, tr("Osc 2 panning")), m_osc2Crs( 0.0, -24.0, 24.0, 1.0, this, tr( "Osc 2 coarse detune" ) ), m_osc2Ftl( 0.0, -100.0, 100.0, 1.0, this, tr( "Osc 2 fine detune left" ) ), m_osc2Ftr( 0.0, -100.0, 100.0, 1.0, this, tr( "Osc 2 fine detune right" ) ), - m_osc2Spo( 0.0, -180.0, 180.0, 0.1, this, tr( "Osc 2 stereo phase offset" ) ), + m_osc2Spo(0.f, -180.f, 180.f, 0.1f, this, tr("Osc 2 stereo phase offset")), m_osc2Wave( this, tr( "Osc 2 waveform" ) ), m_osc2SyncH( false, this, tr( "Osc 2 sync hard" ) ), m_osc2SyncR( false, this, tr( "Osc 2 sync reverse" ) ), - m_osc3Vol( 33.0, 0.0, 200.0, 0.1, this, tr( "Osc 3 volume" ) ), - m_osc3Pan( 0.0, -100.0, 100.0, 0.1, this, tr( "Osc 3 panning" ) ), + m_osc3Vol(33.f, 0.f, 200.f, 0.1f, this, tr("Osc 3 volume")), + m_osc3Pan(0.f, -100.f, 100.f, 0.1f, this, tr("Osc 3 panning")), m_osc3Crs( 0.0, -24.0, 24.0, 1.0, this, tr( "Osc 3 coarse detune" ) ), - m_osc3Spo( 0.0, -180.0, 180.0, 0.1, this, tr( "Osc 3 Stereo phase offset" ) ), - m_osc3Sub( 0.0, -100.0, 100.0, 0.1, this, tr( "Osc 3 sub-oscillator mix" ) ), + m_osc3Spo(0.f, -180.f, 180.f, 0.1f, this, tr("Osc 3 Stereo phase offset")), + m_osc3Sub(0.f, -100.f, 100.f, 0.1f, this, tr("Osc 3 sub-oscillator mix")), m_osc3Wave1( this, tr( "Osc 3 waveform 1" ) ), m_osc3Wave2( this, tr( "Osc 3 waveform 2" ) ), m_osc3SyncH( false, this, tr( "Osc 3 sync hard" ) ), @@ -860,13 +897,13 @@ MonstroInstrument::MonstroInstrument( InstrumentTrack * _instrument_track ) : m_lfo1Wave( this, tr( "LFO 1 waveform" ) ), m_lfo1Att( 0.0f, 0.0f, 2000.0f, 1.0f, 2000.0f, this, tr( "LFO 1 attack" ) ), - m_lfo1Rate( 1.0f, 0.1, 10000.0, 0.1, 10000.0f, this, tr( "LFO 1 rate" ) ), - m_lfo1Phs( 0.0, -180.0, 180.0, 0.1, this, tr( "LFO 1 phase" ) ), + m_lfo1Rate(1.0f, 0.1f, 10000.f, 0.1f, 10000.0f, this, tr("LFO 1 rate")), + m_lfo1Phs(0.f, -180.f, 180.f, 0.1f, this, tr("LFO 1 phase")), m_lfo2Wave( this, tr( "LFO 2 waveform" ) ), m_lfo2Att( 0.0f, 0.0f, 2000.0f, 1.0f, 2000.0f, this, tr( "LFO 2 attack" ) ), - m_lfo2Rate( 1.0f, 0.1, 10000.0, 0.1, 10000.0f, this, tr( "LFO 2 rate" ) ), - m_lfo2Phs( 0.0, -180.0, 180.0, 0.1, this, tr( "LFO 2 phase" ) ), + m_lfo2Rate(1.0f, 0.1f, 10000.f, 0.1f, 10000.0f, this, tr("LFO 2 rate")), + m_lfo2Phs(0.0, -180.f, 180.f, 0.1f, this, tr("LFO 2 phase")), m_env1Pre( 0.0f, 0.0f, 2000.0f, 1.0f, 2000.0f, this, tr( "Env 1 pre-delay" ) ), m_env1Att( 0.0f, 0.0f, 2000.0f, 1.0f, 2000.0f, this, tr( "Env 1 attack" ) ), @@ -1025,7 +1062,7 @@ MonstroInstrument::MonstroInstrument( InstrumentTrack * _instrument_track ) : void MonstroInstrument::playNote( NotePlayHandle * _n, - sampleFrame * _working_buffer ) + SampleFrame* _working_buffer ) { const fpp_t frames = _n->framesLeftForCurrentPeriod(); const f_cnt_t offset = _n->noteOffset(); @@ -1289,13 +1326,12 @@ QString MonstroInstrument::nodeName() const return monstro_plugin_descriptor.name; } - -f_cnt_t MonstroInstrument::desiredReleaseFrames() const +float MonstroInstrument::desiredReleaseTimeMs() const { - return qMax( 64, qMax( m_env1_relF, m_env2_relF ) ); + const auto maxEnvelope = std::max(m_env1_rel, m_env2_rel); + return std::max(1.5f, maxEnvelope); } - gui::PluginView* MonstroInstrument::instantiateView( QWidget * _parent ) { return( new gui::MonstroView( this, _parent ) ); @@ -1411,7 +1447,7 @@ void MonstroInstrument::updateLFOAtts() void MonstroInstrument::updateSamplerate() { - m_samplerate = Engine::audioEngine()->processingSampleRate(); + m_samplerate = Engine::audioEngine()->outputSampleRate(); m_integrator = 0.5f - ( 0.5f - INTEGRATOR ) * 44100.0f / m_samplerate; m_fmCorrection = 44100.f / m_samplerate * FM_AMOUNT; @@ -1656,7 +1692,6 @@ QWidget * MonstroView::setupOperatorsView( QWidget * _parent ) m_osc2WaveBox = new ComboBox( view ); m_osc2WaveBox -> setGeometry( 204, O2ROW + 7, 42, ComboBox::DEFAULT_HEIGHT ); - m_osc2WaveBox->setFont( pointSize<8>( m_osc2WaveBox->font() ) ); maketinyled( m_osc2SyncHButton, 212, O2ROW - 3, tr( "Hard sync oscillator 2" ) ) maketinyled( m_osc2SyncRButton, 191, O2ROW - 3, tr( "Reverse sync oscillator 2" ) ) @@ -1671,18 +1706,15 @@ QWidget * MonstroView::setupOperatorsView( QWidget * _parent ) m_osc3Wave1Box = new ComboBox( view ); m_osc3Wave1Box -> setGeometry( 160, O3ROW + 7, 42, ComboBox::DEFAULT_HEIGHT ); - m_osc3Wave1Box->setFont( pointSize<8>( m_osc3Wave1Box->font() ) ); m_osc3Wave2Box = new ComboBox( view ); m_osc3Wave2Box -> setGeometry( 204, O3ROW + 7, 42, ComboBox::DEFAULT_HEIGHT ); - m_osc3Wave2Box->setFont( pointSize<8>( m_osc3Wave2Box->font() ) ); maketinyled( m_osc3SyncHButton, 212, O3ROW - 3, tr( "Hard sync oscillator 3" ) ) maketinyled( m_osc3SyncRButton, 191, O3ROW - 3, tr( "Reverse sync oscillator 3" ) ) m_lfo1WaveBox = new ComboBox( view ); m_lfo1WaveBox -> setGeometry( 2, LFOROW + 7, 42, ComboBox::DEFAULT_HEIGHT ); - m_lfo1WaveBox->setFont( pointSize<8>( m_lfo1WaveBox->font() ) ); maketsknob( m_lfo1AttKnob, LFOCOL1, LFOROW, tr( "Attack" ), " ms", "lfoKnob" ) maketsknob( m_lfo1RateKnob, LFOCOL2, LFOROW, tr( "Rate" ), " ms", "lfoKnob" ) @@ -1690,7 +1722,6 @@ QWidget * MonstroView::setupOperatorsView( QWidget * _parent ) m_lfo2WaveBox = new ComboBox( view ); m_lfo2WaveBox -> setGeometry( 127, LFOROW + 7, 42, ComboBox::DEFAULT_HEIGHT ); - m_lfo2WaveBox->setFont( pointSize<8>( m_lfo2WaveBox->font() ) ); maketsknob(m_lfo2AttKnob, LFOCOL4, LFOROW, tr("Attack"), " ms", "lfoKnob") maketsknob(m_lfo2RateKnob, LFOCOL5, LFOROW, tr("Rate"), " ms", "lfoKnob") diff --git a/plugins/Monstro/Monstro.h b/plugins/Monstro/Monstro.h index 21efedaf314..a1ae72a381b 100644 --- a/plugins/Monstro/Monstro.h +++ b/plugins/Monstro/Monstro.h @@ -173,19 +173,18 @@ class ComboBox; class MonstroSynth { - MM_OPERATORS public: MonstroSynth( MonstroInstrument * _i, NotePlayHandle * _nph ); virtual ~MonstroSynth() = default; - void renderOutput( fpp_t _frames, sampleFrame * _buf ); + void renderOutput( fpp_t _frames, SampleFrame* _buf ); private: MonstroInstrument * m_parent; NotePlayHandle * m_nph; - inline void updateModulators( float * env1, float * env2, float * lfo1, float * lfo2, int frames ); + inline void updateModulators(float * env1, float * env2, float * lfo1, float * lfo2, f_cnt_t frames); // linear interpolation /* inline sample_t interpolate( sample_t s1, sample_t s2, float x ) @@ -358,7 +357,7 @@ class MonstroInstrument : public Instrument ~MonstroInstrument() override = default; void playNote( NotePlayHandle * _n, - sampleFrame * _working_buffer ) override; + SampleFrame* _working_buffer ) override; void deleteNotePluginData( NotePlayHandle * _n ) override; void saveSettings( QDomDocument & _doc, @@ -367,7 +366,7 @@ class MonstroInstrument : public Instrument QString nodeName() const override; - f_cnt_t desiredReleaseFrames() const override; + float desiredReleaseTimeMs() const override; gui::PluginView* instantiateView( QWidget * _parent ) override; diff --git a/plugins/MultitapEcho/MultitapEcho.cpp b/plugins/MultitapEcho/MultitapEcho.cpp index 4f5e9fdf8b3..96a828dcc23 100644 --- a/plugins/MultitapEcho/MultitapEcho.cpp +++ b/plugins/MultitapEcho/MultitapEcho.cpp @@ -25,6 +25,7 @@ #include "MultitapEcho.h" #include "embed.h" +#include "lmms_basics.h" #include "plugin_export.h" namespace lmms @@ -55,10 +56,10 @@ MultitapEchoEffect::MultitapEchoEffect( Model* parent, const Descriptor::SubPlug m_stages( 1 ), m_controls( this ), m_buffer( 16100.0f ), - m_sampleRate( Engine::audioEngine()->processingSampleRate() ), + m_sampleRate( Engine::audioEngine()->outputSampleRate() ), m_sampleRatio( 1.0f / m_sampleRate ) { - m_work = MM_ALLOC( Engine::audioEngine()->framesPerPeriod() ); + m_work = new SampleFrame[Engine::audioEngine()->framesPerPeriod()]; m_buffer.reset(); m_stages = static_cast( m_controls.m_stages.value() ); updateFilters( 0, 19 ); @@ -67,7 +68,7 @@ MultitapEchoEffect::MultitapEchoEffect( Model* parent, const Descriptor::SubPlug MultitapEchoEffect::~MultitapEchoEffect() { - MM_FREE( m_work ); + delete[] m_work; } @@ -83,9 +84,9 @@ void MultitapEchoEffect::updateFilters( int begin, int end ) } -void MultitapEchoEffect::runFilter( sampleFrame * dst, sampleFrame * src, StereoOnePole & filter, const fpp_t frames ) +void MultitapEchoEffect::runFilter( SampleFrame* dst, SampleFrame* src, StereoOnePole & filter, const fpp_t frames ) { - for( int f = 0; f < frames; ++f ) + for (auto f = std::size_t{0}; f < frames; ++f) { dst[f][0] = filter.update( src[f][0], 0 ); dst[f][1] = filter.update( src[f][1], 1 ); @@ -93,14 +94,8 @@ void MultitapEchoEffect::runFilter( sampleFrame * dst, sampleFrame * src, Stereo } -bool MultitapEchoEffect::processAudioBuffer( sampleFrame * buf, const fpp_t frames ) +Effect::ProcessStatus MultitapEchoEffect::processImpl(SampleFrame* buf, const fpp_t frames) { - if( !isEnabled() || !isRunning () ) - { - return( false ); - } - - double outSum = 0.0; const float d = dryLevel(); const float w = wetLevel(); @@ -118,8 +113,8 @@ bool MultitapEchoEffect::processAudioBuffer( sampleFrame * buf, const fpp_t fram } // add dry buffer - never swap inputs for dry - m_buffer.writeAddingMultiplied( buf, 0, frames, dryGain ); - + m_buffer.writeAddingMultiplied(buf, f_cnt_t{0}, frames, dryGain); + // swapped inputs? if( swapInputs ) { @@ -151,16 +146,13 @@ bool MultitapEchoEffect::processAudioBuffer( sampleFrame * buf, const fpp_t fram // pop the buffer and mix it into output m_buffer.pop( m_work ); - for( int f = 0; f < frames; ++f ) + for (auto f = std::size_t{0}; f < frames; ++f) { buf[f][0] = d * buf[f][0] + w * m_work[f][0]; buf[f][1] = d * buf[f][1] + w * m_work[f][1]; - outSum += buf[f][0]*buf[f][0] + buf[f][1]*buf[f][1]; } - - checkGate( outSum / frames ); - return isRunning(); + return ProcessStatus::ContinueIfNotQuiet; } @@ -176,4 +168,4 @@ PLUGIN_EXPORT Plugin * lmms_plugin_main( Model* parent, void* data ) } -} // namespace lmms \ No newline at end of file +} // namespace lmms diff --git a/plugins/MultitapEcho/MultitapEcho.h b/plugins/MultitapEcho/MultitapEcho.h index 6145b9f861f..8c8a007aaaa 100644 --- a/plugins/MultitapEcho/MultitapEcho.h +++ b/plugins/MultitapEcho/MultitapEcho.h @@ -40,7 +40,8 @@ class MultitapEchoEffect : public Effect public: MultitapEchoEffect( Model* parent, const Descriptor::SubPluginFeatures::Key* key ); ~MultitapEchoEffect() override; - bool processAudioBuffer( sampleFrame* buf, const fpp_t frames ) override; + + ProcessStatus processImpl(SampleFrame* buf, const fpp_t frames) override; EffectControls* controls() override { @@ -49,7 +50,7 @@ class MultitapEchoEffect : public Effect private: void updateFilters( int begin, int end ); - void runFilter( sampleFrame * dst, sampleFrame * src, StereoOnePole & filter, const fpp_t frames ); + void runFilter( SampleFrame* dst, SampleFrame* src, StereoOnePole & filter, const fpp_t frames ); inline void setFilterFreq( float fc, StereoOnePole & f ) { @@ -70,7 +71,7 @@ class MultitapEchoEffect : public Effect float m_sampleRate; float m_sampleRatio; - sampleFrame * m_work; + SampleFrame* m_work; friend class MultitapEchoControls; diff --git a/plugins/MultitapEcho/MultitapEchoControls.cpp b/plugins/MultitapEcho/MultitapEchoControls.cpp index 19564ba8adb..4df05afc688 100644 --- a/plugins/MultitapEcho/MultitapEchoControls.cpp +++ b/plugins/MultitapEcho/MultitapEchoControls.cpp @@ -172,7 +172,7 @@ void MultitapEchoControls::lengthChanged() void MultitapEchoControls::sampleRateChanged() { - m_effect->m_sampleRate = Engine::audioEngine()->processingSampleRate(); + m_effect->m_sampleRate = Engine::audioEngine()->outputSampleRate(); m_effect->m_sampleRatio = 1.0f / m_effect->m_sampleRate; m_effect->updateFilters( 0, 19 ); } diff --git a/plugins/Nes/Nes.cpp b/plugins/Nes/Nes.cpp index 47122a0c602..6aea0ebdfa5 100644 --- a/plugins/Nes/Nes.cpp +++ b/plugins/Nes/Nes.cpp @@ -34,6 +34,7 @@ #include "Oscillator.h" #include "embed.h" +#include "lmms_math.h" #include "plugin_export.h" namespace lmms @@ -103,7 +104,7 @@ NesObject::NesObject( NesInstrument * nes, const sample_rate_t samplerate, NoteP } -void NesObject::renderOutput( sampleFrame * buf, fpp_t frames ) +void NesObject::renderOutput( SampleFrame* buf, fpp_t frames ) { //////////////////////////////// // // @@ -392,7 +393,7 @@ void NesObject::renderOutput( sampleFrame * buf, fpp_t frames ) pin1 *= 1.0 + ( Oscillator::noiseSample( 0.0f ) * DITHER_AMP ); pin1 = pin1 / 30.0f; - pin1 = signedPow( pin1, NES_DIST ); + pin1 = signedPowf(pin1, NES_DIST); pin1 = pin1 * 2.0f - 1.0f; @@ -401,7 +402,7 @@ void NesObject::renderOutput( sampleFrame * buf, fpp_t frames ) m_12Last = pin1; // compensate DC offset - pin1 += 1.0f - signedPow( static_cast( ch1Level + ch2Level ) / 30.0f, NES_DIST ); + pin1 += 1.0f - signedPowf(static_cast(ch1Level + ch2Level) / 30.0f, NES_DIST); pin1 *= NES_MIXING_12; @@ -410,7 +411,7 @@ void NesObject::renderOutput( sampleFrame * buf, fpp_t frames ) pin2 *= 1.0 + ( Oscillator::noiseSample( 0.0f ) * DITHER_AMP ); pin2 = pin2 / 30.0f; - pin2 = signedPow( pin2, NES_DIST ); + pin2 = signedPowf(pin2, NES_DIST); pin2 = pin2 * 2.0f - 1.0f; @@ -419,7 +420,7 @@ void NesObject::renderOutput( sampleFrame * buf, fpp_t frames ) m_34Last = pin2; // compensate DC offset - pin2 += 1.0f - signedPow( static_cast( ch3Level + ch4Level ) / 30.0f, NES_DIST ); + pin2 += 1.0f - signedPowf(static_cast(ch3Level + ch4Level) / 30.0f, NES_DIST); pin2 *= NES_MIXING_34; @@ -482,53 +483,53 @@ void NesObject::updatePitch() NesInstrument::NesInstrument( InstrumentTrack * instrumentTrack ) : Instrument( instrumentTrack, &nes_plugin_descriptor ), - m_ch1Enabled( true, this ), + m_ch1Enabled(true, this, tr("Channel 1 enable")), m_ch1Crs( 0.f, -24.f, 24.f, 1.f, this, tr( "Channel 1 coarse detune" ) ), m_ch1Volume( 15.f, 0.f, 15.f, 1.f, this, tr( "Channel 1 volume" ) ), - m_ch1EnvEnabled( false, this ), - m_ch1EnvLooped( false, this ), + m_ch1EnvEnabled(false, this, tr("Channel 1 envelope enable")), + m_ch1EnvLooped(false, this, tr("Channel 1 envelope loop")), m_ch1EnvLen( 0.f, 0.f, 15.f, 1.f, this, tr( "Channel 1 envelope length" ) ), m_ch1DutyCycle( 0, 0, 3, this, tr( "Channel 1 duty cycle" ) ), - m_ch1SweepEnabled( false, this ), + m_ch1SweepEnabled(false, this, tr("Channel 1 sweep enable")), m_ch1SweepAmt( 0.f, -7.f, 7.f, 1.f, this, tr( "Channel 1 sweep amount" ) ), m_ch1SweepRate( 0.f, 0.f, 7.f, 1.f, this, tr( "Channel 1 sweep rate" ) ), - m_ch2Enabled( true, this ), - m_ch2Crs( 0.f, -24.f, 24.f, 1.f, this, tr( "Channel 2 Coarse detune" ) ), - m_ch2Volume( 15.f, 0.f, 15.f, 1.f, this, tr( "Channel 2 Volume" ) ), + m_ch2Enabled(true, this, tr("Channel 2 enable")), + m_ch2Crs( 0.f, -24.f, 24.f, 1.f, this, tr( "Channel 2 coarse detune" ) ), + m_ch2Volume( 15.f, 0.f, 15.f, 1.f, this, tr( "Channel 2 volume" ) ), - m_ch2EnvEnabled( false, this ), - m_ch2EnvLooped( false, this ), + m_ch2EnvEnabled(false, this, tr("Channel 2 envelope enable")), + m_ch2EnvLooped(false, this, tr("Channel 2 envelope loop")), m_ch2EnvLen( 0.f, 0.f, 15.f, 1.f, this, tr( "Channel 2 envelope length" ) ), m_ch2DutyCycle( 2, 0, 3, this, tr( "Channel 2 duty cycle" ) ), - m_ch2SweepEnabled( false, this ), + m_ch2SweepEnabled(false, this, tr("Channel 2 sweep enable")), m_ch2SweepAmt( 0.f, -7.f, 7.f, 1.f, this, tr( "Channel 2 sweep amount" ) ), m_ch2SweepRate( 0.f, 0.f, 7.f, 1.f, this, tr( "Channel 2 sweep rate" ) ), //channel 3 - m_ch3Enabled( true, this ), + m_ch3Enabled(true, this, tr("Channel 3 enable")), m_ch3Crs( 0.f, -24.f, 24.f, 1.f, this, tr( "Channel 3 coarse detune" ) ), m_ch3Volume( 15.f, 0.f, 15.f, 1.f, this, tr( "Channel 3 volume" ) ), //channel 4 - m_ch4Enabled( false, this ), + m_ch4Enabled(false, this, tr("Channel 4 enable")), m_ch4Volume( 15.f, 0.f, 15.f, 1.f, this, tr( "Channel 4 volume" ) ), - m_ch4EnvEnabled( false, this ), - m_ch4EnvLooped( false, this ), + m_ch4EnvEnabled(false, this, tr("Channel 4 envelope enable")), + m_ch4EnvLooped(false, this, tr("Channel 4 envelope loop")), m_ch4EnvLen( 0.f, 0.f, 15.f, 1.f, this, tr( "Channel 4 envelope length" ) ), - m_ch4NoiseMode( false, this ), - m_ch4NoiseFreqMode( false, this ), + m_ch4NoiseMode(false, this, tr("Channel 4 noise mode")), + m_ch4NoiseFreqMode(false, this, tr("Channel 4 frequency mode")), m_ch4NoiseFreq( 0.f, 0.f, 15.f, 1.f, this, tr( "Channel 4 noise frequency" ) ), m_ch4Sweep( 0.f, -7.f, 7.f, 1.f, this, tr( "Channel 4 noise frequency sweep" ) ), - m_ch4NoiseQuantize( true, this ), + m_ch4NoiseQuantize(true, this, tr("Channel 4 quantize")), //master m_masterVol( 1.0f, 0.0f, 2.0f, 0.01f, this, tr( "Master volume" ) ), @@ -545,14 +546,14 @@ NesInstrument::NesInstrument( InstrumentTrack * instrumentTrack ) : -void NesInstrument::playNote( NotePlayHandle * n, sampleFrame * workingBuffer ) +void NesInstrument::playNote( NotePlayHandle * n, SampleFrame* workingBuffer ) { const fpp_t frames = n->framesLeftForCurrentPeriod(); const f_cnt_t offset = n->noteOffset(); if (!n->m_pluginData) { - auto nes = new NesObject(this, Engine::audioEngine()->processingSampleRate(), n); + auto nes = new NesObject(this, Engine::audioEngine()->outputSampleRate(), n); n->m_pluginData = nes; } @@ -719,7 +720,6 @@ namespace gui { -QPixmap * NesInstrumentView::s_artwork = nullptr; NesInstrumentView::NesInstrumentView( Instrument * instrument, QWidget * parent ) : @@ -728,12 +728,8 @@ NesInstrumentView::NesInstrumentView( Instrument * instrument, QWidget * parent setAutoFillBackground( true ); QPalette pal; - if( s_artwork == nullptr ) - { - s_artwork = new QPixmap( PLUGIN_NAME::getIconPixmap( "artwork" ) ); - } - - pal.setBrush( backgroundRole(), *s_artwork ); + static auto s_artwork = PLUGIN_NAME::getIconPixmap("artwork"); + pal.setBrush(backgroundRole(), s_artwork); setPalette( pal ); const int KNOB_Y1 = 24; diff --git a/plugins/Nes/Nes.h b/plugins/Nes/Nes.h index 3ddf0fc9a0d..ca084032aa7 100644 --- a/plugins/Nes/Nes.h +++ b/plugins/Nes/Nes.h @@ -31,7 +31,6 @@ #include "InstrumentView.h" #include "AutomatableModel.h" #include "PixmapButton.h" -#include "MemoryManager.h" #define makeknob( name, x, y, hint, unit, oname ) \ @@ -61,22 +60,22 @@ namespace lmms { -const float NES_SIMPLE_FILTER = 1.0 / 20.0; // simulate nes analog audio output +const float NES_SIMPLE_FILTER = 1.f / 20.f; // simulate nes analog audio output const float NFB = 895000.0f; const float NOISE_FREQS[16] = { NFB/5, NFB/9, NFB/17, NFB/33, NFB/65, NFB/97, NFB/129, NFB/161, NFB/193, NFB/255, NFB/381, NFB/509, NFB/763, NFB/1017, NFB/2035, NFB/4069 }; const uint16_t LFSR_INIT = 1; const float DUTY_CYCLE[4] = { 0.125, 0.25, 0.5, 0.75 }; -const float DITHER_AMP = 1.0 / 60.0; +const float DITHER_AMP = 1.f / 60.f; const float MIN_FREQ = 10.0; const int TRIANGLE_WAVETABLE[32] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 }; const float NES_DIST = 0.9f; // simulate the slight nonlinear distortion in nes audio output -const float NES_MIXING_12 = 1.0 / 20.0; -const float NES_MIXING_34 = 1.0 / 12.0; -const float NES_MIXING_ALL = 1.0 / ( NES_MIXING_12 + NES_MIXING_34 ); // constants to simulate the hardwired mixing values for nes channels +const float NES_MIXING_12 = 1.f / 20.f; +const float NES_MIXING_34 = 1.f / 12.f; +const float NES_MIXING_ALL = 1.f / (NES_MIXING_12 + NES_MIXING_34); // constants to simulate the hardwired mixing values for nes channels const int MIN_WLEN = 4; @@ -92,12 +91,11 @@ class NesInstrumentView; class NesObject { - MM_OPERATORS public: NesObject( NesInstrument * nes, const sample_rate_t samplerate, NotePlayHandle * nph ); virtual ~NesObject() = default; - void renderOutput( sampleFrame * buf, fpp_t frames ); + void renderOutput( SampleFrame* buf, fpp_t frames ); void updateVibrato( float * freq ); void updatePitch(); @@ -138,13 +136,6 @@ class NesObject return static_cast( m_samplerate / freq ); } - inline float signedPow( float f, float e ) - { - return f < 0 - ? powf( qAbs( f ), e ) * -1.0f - : powf( f, e ); - } - inline int nearestNoiseFreq( float f ) { int n = 15; @@ -214,7 +205,7 @@ class NesInstrument : public Instrument ~NesInstrument() override = default; void playNote( NotePlayHandle * n, - sampleFrame * workingBuffer ) override; + SampleFrame* workingBuffer ) override; void deleteNotePluginData( NotePlayHandle * n ) override; @@ -224,9 +215,9 @@ class NesInstrument : public Instrument QString nodeName() const override; - f_cnt_t desiredReleaseFrames() const override + float desiredReleaseTimeMs() const override { - return( 8 ); + return 0.2f; } gui::PluginView* instantiateView( QWidget * parent ) override; @@ -372,7 +363,6 @@ class NesInstrumentView : public InstrumentViewFixedSize Knob * m_masterVolKnob; Knob * m_vibratoKnob; - static QPixmap * s_artwork; }; diff --git a/plugins/OpulenZ/CMakeLists.txt b/plugins/OpulenZ/CMakeLists.txt index 58f661406a7..fcfce7819ad 100644 --- a/plugins/OpulenZ/CMakeLists.txt +++ b/plugins/OpulenZ/CMakeLists.txt @@ -1,20 +1,16 @@ -INCLUDE(BuildPlugin) +include(BuildPlugin) -# Avoid unused warnings for mididata.h -IF(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang") -SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-variable") -ENDIF() - -INCLUDE_DIRECTORIES(adplug/src) +add_library(adplug STATIC + adplug/src/fmopl.c + adplug/src/temuopl.cpp +) +target_include_directories(adplug PUBLIC adplug/src) +set_target_properties(adplug PROPERTIES SYSTEM TRUE) -BUILD_PLUGIN(opulenz +build_plugin(opulenz OpulenZ.cpp OpulenZ.h - adplug/src/opl.h - adplug/src/fmopl.c - adplug/src/fmopl.h - adplug/src/temuopl.cpp - adplug/src/temuopl.h MOCFILES OpulenZ.h EMBEDDED_RESOURCES "${CMAKE_CURRENT_SOURCE_DIR}/*.png" ) +target_link_libraries(opulenz adplug) diff --git a/plugins/OpulenZ/OpulenZ.cpp b/plugins/OpulenZ/OpulenZ.cpp index d90d5f343a4..5fd4bf58afa 100644 --- a/plugins/OpulenZ/OpulenZ.cpp +++ b/plugins/OpulenZ/OpulenZ.cpp @@ -46,9 +46,9 @@ #include #include -#include "opl.h" -#include "temuopl.h" -#include "mididata.h" +#include +#include +#include #include "embed.h" #include "debug.h" @@ -95,7 +95,7 @@ QMutex OpulenzInstrument::emulatorMutex; const auto adlib_opadd = std::array{0x00, 0x01, 0x02, 0x08, 0x09, 0x0A, 0x10, 0x11, 0x12}; OpulenzInstrument::OpulenzInstrument( InstrumentTrack * _instrument_track ) : - Instrument( _instrument_track, &opulenz_plugin_descriptor ), + Instrument(_instrument_track, &opulenz_plugin_descriptor, nullptr, Flag::IsSingleStreamed | Flag::IsMidiBased), m_patchModel( 0, 0, 127, this, tr( "Patch" ) ), op1_a_mdl(14.0, 0.0, 15.0, 1.0, this, tr( "Op 1 attack" ) ), op1_d_mdl(14.0, 0.0, 15.0, 1.0, this, tr( "Op 1 decay" ) ), @@ -140,7 +140,7 @@ OpulenzInstrument::OpulenzInstrument( InstrumentTrack * _instrument_track ) : // Create an emulator - samplerate, 16 bit, mono emulatorMutex.lock(); - theEmulator = new CTemuopl(Engine::audioEngine()->processingSampleRate(), true, false); + theEmulator = new CTemuopl(Engine::audioEngine()->outputSampleRate(), true, false); theEmulator->init(); // Enable waveform selection theEmulator->write(0x01,0x20); @@ -231,7 +231,7 @@ OpulenzInstrument::~OpulenzInstrument() { void OpulenzInstrument::reloadEmulator() { delete theEmulator; emulatorMutex.lock(); - theEmulator = new CTemuopl(Engine::audioEngine()->processingSampleRate(), true, false); + theEmulator = new CTemuopl(Engine::audioEngine()->outputSampleRate(), true, false); theEmulator->init(); theEmulator->write(0x01,0x20); emulatorMutex.unlock(); @@ -244,14 +244,12 @@ void OpulenzInstrument::reloadEmulator() { // This shall only be called from code protected by the holy Mutex! void OpulenzInstrument::setVoiceVelocity(int voice, int vel) { - int vel_adjusted; + int vel_adjusted = !fm_mdl.value() + ? 63 - (op1_lvl_mdl.value() * vel / 127.0) + : 63 - op1_lvl_mdl.value(); + // Velocity calculation, some kind of approximation // Only calculate for operator 1 if in adding mode, don't want to change timbre - if( fm_mdl.value() == false ) { - vel_adjusted = 63 - ( op1_lvl_mdl.value() * vel/127.0) ; - } else { - vel_adjusted = 63 - op1_lvl_mdl.value(); - } theEmulator->write(0x40+adlib_opadd[voice], ( (int)op1_scale_mdl.value() & 0x03 << 6) + ( vel_adjusted & 0x3f ) ); @@ -297,66 +295,60 @@ int OpulenzInstrument::pushVoice(int v) { bool OpulenzInstrument::handleMidiEvent( const MidiEvent& event, const TimePos& time, f_cnt_t offset ) { emulatorMutex.lock(); - int key, vel, voice, tmp_pb; - switch(event.type()) { - case MidiNoteOn: - key = event.key(); - vel = event.velocity(); - - voice = popVoice(); - if( voice != OPL2_NO_VOICE ) { + int key = event.key(); + int vel = event.velocity(); + switch (event.type()) + { + case MidiNoteOn: + if (int voice = popVoice(); voice != OPL2_NO_VOICE) + { // Turn voice on, NB! the frequencies are straight by voice number, // not by the adlib_opadd table! - theEmulator->write(0xA0+voice, fnums[key] & 0xff); - theEmulator->write(0xB0+voice, 32 + ((fnums[key] & 0x1f00) >> 8) ); + theEmulator->write(0xA0 + voice, fnums[key] & 0xff); + theEmulator->write(0xB0 + voice, 32 + ((fnums[key] & 0x1f00) >> 8)); setVoiceVelocity(voice, vel); voiceNote[voice] = key; velocities[key] = vel; } - break; - case MidiNoteOff: - key = event.key(); - for(voice=0; voicewrite(0xA0+voice, fnums[key] & 0xff); - theEmulator->write(0xB0+voice, (fnums[key] & 0x1f00) >> 8 ); - voiceNote[voice] |= OPL2_VOICE_FREE; + break; + case MidiNoteOff: + for (int voice = 0; voice < OPL2_VOICES; ++voice) + { + if (voiceNote[voice] == key) + { + theEmulator->write(0xA0 + voice, fnums[key] & 0xff); + theEmulator->write(0xB0 + voice, (fnums[key] & 0x1f00) >> 8); + voiceNote[voice] |= OPL2_VOICE_FREE; pushVoice(voice); - } - } - velocities[key] = 0; - break; - case MidiKeyPressure: - key = event.key(); - vel = event.velocity(); - if( velocities[key] != 0) { - velocities[key] = vel; - } - for(voice=0; voicewrite(0xA0+v, fnums[vn] & 0xff); - theEmulator->write(0xB0+v, (playing ? 32 : 0) + ((fnums[vn] & 0x1f00) >> 8) ); - } - break; + theEmulator->write(0xA0 + v, fnums[vn] & 0xff); + theEmulator->write(0xB0 + v, (playing ? 32 : 0) + ((fnums[vn] & 0x1f00) >> 8)); + } + break; case MidiControlChange: switch (event.controllerNumber()) { case MidiControllerRegisteredParameterNumberLSB: @@ -382,7 +374,7 @@ bool OpulenzInstrument::handleMidiEvent( const MidiEvent& event, const TimePos& printf("Midi event type %d\n",event.type()); #endif break; - } + } emulatorMutex.unlock(); return true; } @@ -398,7 +390,7 @@ gui::PluginView* OpulenzInstrument::instantiateView( QWidget * _parent ) } -void OpulenzInstrument::play( sampleFrame * _working_buffer ) +void OpulenzInstrument::play( SampleFrame* _working_buffer ) { emulatorMutex.lock(); theEmulator->update(renderbuffer, frameCount); @@ -504,9 +496,8 @@ void OpulenzInstrument::loadPatch(const unsigned char inst[14]) { } void OpulenzInstrument::tuneEqual(int center, float Hz) { - float tmp; for(int n=0; n<128; ++n) { - tmp = Hz*pow( 2.0, ( n - center ) * ( 1.0 / 12.0 ) + pitchbend * ( 1.0 / 1200.0 ) ); + float tmp = Hz * pow(2.0, (n - center) * (1.0 / 12.0) + pitchbend * (1.0 / 1200.0)); fnums[n] = Hz2fnum( tmp ); } } @@ -779,15 +770,15 @@ void OpulenzInstrumentView::updateKnobHints() // Envelope times in ms: t[0] = 0, t[n] = ( 1<{ - 0.0, 0.2, 0.4, 0.9, 1.8, 3.7, 7.4, - 15.0, 30.0, 60.0, 120.0, 240.0, 480.0, - 950.0, 1900.0, 3800.0 + 0.f, 0.2f, 0.4f, 0.9f, 1.8f, 3.7f, 7.4f, + 15.f, 30.f, 60.f, 120.f, 240.f, 480.f, + 950.f, 1900.f, 3800.f }; const auto dr_times = std::array{ - 0.0, 1.2, 2.5, 5.0, 10.0, 20.0, 40.0, - 80.0, 160.0, 320.0, 640.0, 1300.0, 2600.0, - 5200.0, 10000.0, 20000.0 + 0.f, 1.2f, 2.5f, 5.f, 10.f, 20.f, 40.f, + 80.f, 160.f, 320.f, 640.f, 1300.f, 2600.f, + 5200.f, 10000.f, 20000.f }; const auto fmultipliers = std::array{ diff --git a/plugins/OpulenZ/OpulenZ.h b/plugins/OpulenZ/OpulenZ.h index a3e11a6c0fc..bd51c9cf507 100644 --- a/plugins/OpulenZ/OpulenZ.h +++ b/plugins/OpulenZ/OpulenZ.h @@ -64,13 +64,8 @@ class OpulenzInstrument : public Instrument QString nodeName() const override; gui::PluginView* instantiateView( QWidget * _parent ) override; - Flags flags() const override - { - return Flag::IsSingleStreamed | Flag::IsMidiBased; - } - bool handleMidiEvent( const MidiEvent& event, const TimePos& time, f_cnt_t offset = 0 ) override; - void play( sampleFrame * _working_buffer ) override; + void play( SampleFrame* _working_buffer ) override; void saveSettings( QDomDocument & _doc, QDomElement & _this ) override; void loadSettings( const QDomElement & _this ) override; diff --git a/plugins/Organic/Organic.cpp b/plugins/Organic/Organic.cpp index a70da642156..c167bcec259 100644 --- a/plugins/Organic/Organic.cpp +++ b/plugins/Organic/Organic.cpp @@ -60,7 +60,6 @@ Plugin::Descriptor PLUGIN_EXPORT organic_plugin_descriptor = } -QPixmap * gui::OrganicInstrumentView::s_artwork = nullptr; float * OrganicInstrument::s_harmonics = nullptr; /*********************************************************************** @@ -222,7 +221,7 @@ QString OrganicInstrument::nodeName() const void OrganicInstrument::playNote( NotePlayHandle * _n, - sampleFrame * _working_buffer ) + SampleFrame* _working_buffer ) { const fpp_t frames = _n->framesLeftForCurrentPeriod(); const f_cnt_t offset = _n->noteOffset(); @@ -303,7 +302,7 @@ void OrganicInstrument::playNote( NotePlayHandle * _n, // fxKnob is [0;1] float t = m_fx1Model.value(); - for (int i=0 ; i < frames + offset ; i++) + for (auto i = std::size_t{0}; i < frames + offset; i++) { _working_buffer[i][0] = waveshape( _working_buffer[i][0], t ) * m_volModel.value() / 100.0f; @@ -420,8 +419,8 @@ OrganicInstrumentView::OrganicInstrumentView( Instrument * _instrument, setAutoFillBackground( true ); QPalette pal; - pal.setBrush( backgroundRole(), PLUGIN_NAME::getIconPixmap( - "artwork" ) ); + static auto s_artwork = PLUGIN_NAME::getIconPixmap("artwork"); + pal.setBrush(backgroundRole(), s_artwork); setPalette( pal ); // setup knob for FX1 @@ -451,12 +450,6 @@ OrganicInstrumentView::OrganicInstrumentView( Instrument * _instrument, oi, SLOT( randomiseSettings() ) ); - if( s_artwork == nullptr ) - { - s_artwork = new QPixmap( PLUGIN_NAME::getIconPixmap( - "artwork" ) ); - } - } @@ -570,7 +563,7 @@ OscillatorObject::OscillatorObject( Model * _parent, int _index ) : m_panModel( DefaultPanning, PanningLeft, PanningRight, 1.0f, this, tr( "Osc %1 panning" ).arg( _index + 1 ) ), m_detuneModel( 0.0f, -1200.0f, 1200.0f, 1.0f, - this, tr( "Osc %1 fine detuning left" ).arg( _index + 1 ) ) + this, tr( "Osc %1 stereo detuning" ).arg( _index + 1 ) ) { } @@ -612,10 +605,10 @@ void OscillatorObject::updateDetuning() { m_detuningLeft = powf( 2.0f, OrganicInstrument::s_harmonics[ static_cast( m_harmModel.value() ) ] + (float)m_detuneModel.value() * CENT ) / - Engine::audioEngine()->processingSampleRate(); + Engine::audioEngine()->outputSampleRate(); m_detuningRight = powf( 2.0f, OrganicInstrument::s_harmonics[ static_cast( m_harmModel.value() ) ] - (float)m_detuneModel.value() * CENT ) / - Engine::audioEngine()->processingSampleRate(); + Engine::audioEngine()->outputSampleRate(); } diff --git a/plugins/Organic/Organic.h b/plugins/Organic/Organic.h index 6c53e84ec06..5a066af433b 100644 --- a/plugins/Organic/Organic.h +++ b/plugins/Organic/Organic.h @@ -84,7 +84,6 @@ const float CENT = 1.0f / 1200.0f; class OscillatorObject : public Model { Q_OBJECT - MM_OPERATORS private: int m_numOscillators; IntModel m_waveShape; @@ -126,7 +125,7 @@ class OrganicInstrument : public Instrument ~OrganicInstrument() override; void playNote( NotePlayHandle * _n, - sampleFrame * _working_buffer ) override; + SampleFrame* _working_buffer ) override; void deleteNotePluginData( NotePlayHandle * _n ) override; @@ -159,7 +158,6 @@ public slots: struct oscPtr { - MM_OPERATORS Oscillator * oscLeft; Oscillator * oscRight; float phaseOffsetLeft[NUM_OSCILLATORS]; @@ -196,7 +194,6 @@ class OrganicInstrumentView : public InstrumentViewFixedSize struct OscillatorKnobs { - MM_OPERATORS OscillatorKnobs( Knob * h, Knob * v, @@ -227,7 +224,6 @@ class OrganicInstrumentView : public InstrumentViewFixedSize int m_numOscillators; - static QPixmap * s_artwork; protected slots: void updateKnobHint(); diff --git a/plugins/Patman/Patman.cpp b/plugins/Patman/Patman.cpp index 24c54d66be5..4ecbe1bb83b 100644 --- a/plugins/Patman/Patman.cpp +++ b/plugins/Patman/Patman.cpp @@ -33,7 +33,7 @@ #include "endian_handling.h" #include "Engine.h" #include "FileDialog.h" -#include "gui_templates.h" +#include "FontHelper.h" #include "InstrumentTrack.h" #include "NotePlayHandle.h" #include "PathUtil.h" @@ -134,7 +134,7 @@ QString PatmanInstrument::nodeName() const void PatmanInstrument::playNote( NotePlayHandle * _n, - sampleFrame * _working_buffer ) + SampleFrame* _working_buffer ) { if( m_patchFile == "" ) { @@ -153,14 +153,14 @@ void PatmanInstrument::playNote( NotePlayHandle * _n, float play_freq = hdata->tuned ? _n->frequency() : hdata->sample->frequency(); - if( hdata->sample->play( _working_buffer + offset, hdata->state, frames, - play_freq, m_loopedModel.value() ? SampleBuffer::LoopMode::On : SampleBuffer::LoopMode::Off ) ) + if (hdata->sample->play(_working_buffer + offset, hdata->state, frames, + play_freq, m_loopedModel.value() ? Sample::Loop::On : Sample::Loop::Off)) { applyRelease( _working_buffer, _n ); } else { - memset( _working_buffer, 0, ( frames + offset ) * sizeof( sampleFrame ) ); + zeroSampleFrames(_working_buffer, frames + offset); } } @@ -170,7 +170,6 @@ void PatmanInstrument::playNote( NotePlayHandle * _n, void PatmanInstrument::deleteNotePluginData( NotePlayHandle * _n ) { auto hdata = (handle_data*)_n->m_pluginData; - sharedObject::unref( hdata->sample ); delete hdata->state; delete hdata; } @@ -299,17 +298,16 @@ PatmanInstrument::LoadError PatmanInstrument::loadPatch( SKIP_BYTES( 2 + 2 + 36 ); f_cnt_t frames; - sample_t * wave_samples; + std::unique_ptr wave_samples; if( modes & MODES_16BIT ) { frames = data_length >> 1; - wave_samples = new sample_t[frames]; + wave_samples = std::make_unique(frames); for( f_cnt_t frame = 0; frame < frames; ++frame ) { short sample; if ( fread( &sample, 2, 1, fd ) != 1 ) { - delete[] wave_samples; fclose( fd ); return( LoadError::IO ); } @@ -327,13 +325,12 @@ PatmanInstrument::LoadError PatmanInstrument::loadPatch( else { frames = data_length; - wave_samples = new sample_t[frames]; + wave_samples = std::make_unique(frames); for( f_cnt_t frame = 0; frame < frames; ++frame ) { char sample; if ( fread( &sample, 1, 1, fd ) != 1 ) { - delete[] wave_samples; fclose( fd ); return( LoadError::IO ); } @@ -345,7 +342,7 @@ PatmanInstrument::LoadError PatmanInstrument::loadPatch( } } - auto data = new sampleFrame[frames]; + auto data = new SampleFrame[frames]; for( f_cnt_t frame = 0; frame < frames; ++frame ) { @@ -356,9 +353,8 @@ PatmanInstrument::LoadError PatmanInstrument::loadPatch( } } - auto psample = new SampleBuffer(data, frames); - psample->setFrequency( root_freq / 1000.0f ); - psample->setSampleRate( sample_rate ); + auto psample = std::make_shared(data, frames, sample_rate); + psample->setFrequency(root_freq / 1000.0f); if( modes & MODES_LOOPING ) { @@ -366,9 +362,8 @@ PatmanInstrument::LoadError PatmanInstrument::loadPatch( psample->setLoopEndFrame( loop_end ); } - m_patchSamples.push_back( psample ); + m_patchSamples.push_back(psample); - delete[] wave_samples; delete[] data; } fclose( fd ); @@ -382,7 +377,6 @@ void PatmanInstrument::unloadCurrentPatch() { while( !m_patchSamples.empty() ) { - sharedObject::unref( m_patchSamples.back() ); m_patchSamples.pop_back(); } } @@ -395,7 +389,7 @@ void PatmanInstrument::selectSample( NotePlayHandle * _n ) const float freq = _n->frequency(); float min_dist = HUGE_VALF; - SampleBuffer* sample = nullptr; + std::shared_ptr sample = nullptr; for (const auto& patchSample : m_patchSamples) { @@ -412,15 +406,8 @@ void PatmanInstrument::selectSample( NotePlayHandle * _n ) auto hdata = new handle_data; hdata->tuned = m_tunedModel.value(); - if( sample ) - { - hdata->sample = sharedObject::ref( sample ); - } - else - { - hdata->sample = new SampleBuffer( nullptr, 0 ); - } - hdata->state = new SampleBuffer::handleState( _n->hasDetuningInfo() ); + hdata->sample = sample ? sample : std::make_shared(); + hdata->state = new Sample::PlaybackState(_n->hasDetuningInfo()); _n->m_pluginData = hdata; } @@ -558,7 +545,7 @@ void PatmanView::updateFilename() m_displayFilename = ""; int idx = m_pi->m_patchFile.length(); - QFontMetrics fm( pointSize<8>( font() ) ); + QFontMetrics fm(adjustedToPixelSize(font(), SMALL_FONT_SIZE)); // simple algorithm for creating a text from the filename that // matches in the white rectangle @@ -628,7 +615,7 @@ void PatmanView::paintEvent( QPaintEvent * ) { QPainter p( this ); - p.setFont( pointSize<8>( font() ) ); + p.setFont(adjustedToPixelSize(font(), SMALL_FONT_SIZE)); p.drawText( 8, 116, 235, 16, Qt::AlignLeft | Qt::TextSingleLine | Qt::AlignVCenter, m_displayFilename ); diff --git a/plugins/Patman/Patman.h b/plugins/Patman/Patman.h index 3a15db5f362..a77c2607f2a 100644 --- a/plugins/Patman/Patman.h +++ b/plugins/Patman/Patman.h @@ -28,9 +28,9 @@ #include "Instrument.h" #include "InstrumentView.h" +#include "Sample.h" #include "SampleBuffer.h" #include "AutomatableModel.h" -#include "MemoryManager.h" namespace lmms { @@ -60,7 +60,7 @@ class PatmanInstrument : public Instrument ~PatmanInstrument() override; void playNote( NotePlayHandle * _n, - sampleFrame * _working_buffer ) override; + SampleFrame* _working_buffer ) override; void deleteNotePluginData( NotePlayHandle * _n ) override; @@ -71,9 +71,9 @@ class PatmanInstrument : public Instrument QString nodeName() const override; - f_cnt_t desiredReleaseFrames() const override + float desiredReleaseTimeMs() const override { - return( 128 ); + return 3.f; } gui::PluginView* instantiateView( QWidget * _parent ) override; @@ -86,14 +86,13 @@ public slots: private: struct handle_data { - MM_OPERATORS - SampleBuffer::handleState* state; + Sample::PlaybackState* state; bool tuned; - SampleBuffer* sample; + std::shared_ptr sample; }; QString m_patchFile; - QVector m_patchSamples; + QVector> m_patchSamples; BoolModel m_loopedModel; BoolModel m_tunedModel; diff --git a/plugins/PeakControllerEffect/PeakControllerEffect.cpp b/plugins/PeakControllerEffect/PeakControllerEffect.cpp index 7aff6f8033e..b6d05325770 100644 --- a/plugins/PeakControllerEffect/PeakControllerEffect.cpp +++ b/plugins/PeakControllerEffect/PeakControllerEffect.cpp @@ -93,37 +93,29 @@ PeakControllerEffect::~PeakControllerEffect() } -bool PeakControllerEffect::processAudioBuffer( sampleFrame * _buf, - const fpp_t _frames ) +Effect::ProcessStatus PeakControllerEffect::processImpl(SampleFrame* buf, const fpp_t frames) { PeakControllerEffectControls & c = m_peakControls; - // This appears to be used for determining whether or not to continue processing - // audio with this effect - if( !isEnabled() || !isRunning() ) - { - return false; - } - // RMS: double sum = 0; if( c.m_absModel.value() ) { - for( int i = 0; i < _frames; ++i ) + for (auto i = std::size_t{0}; i < frames; ++i) { // absolute value is achieved because the squares are > 0 - sum += _buf[i][0]*_buf[i][0] + _buf[i][1]*_buf[i][1]; + sum += buf[i][0] * buf[i][0] + buf[i][1] * buf[i][1]; } } else { - for( int i = 0; i < _frames; ++i ) + for (auto i = std::size_t{0}; i < frames; ++i) { // the value is absolute because of squaring, // so we need to correct it - sum += _buf[i][0] * _buf[i][0] * sign( _buf[i][0] ) - + _buf[i][1] * _buf[i][1] * sign( _buf[i][1] ); + sum += buf[i][0] * buf[i][0] * sign(buf[i][0]) + + buf[i][1] * buf[i][1] * sign(buf[i][1]); } } @@ -131,19 +123,29 @@ bool PeakControllerEffect::processAudioBuffer( sampleFrame * _buf, // this will mute the output after the values were measured if( c.m_muteModel.value() ) { - for( int i = 0; i < _frames; ++i ) + for (auto i = std::size_t{0}; i < frames; ++i) { - _buf[i][0] = _buf[i][1] = 0.0f; + buf[i][0] = buf[i][1] = 0.0f; } } - float curRMS = sqrt_neg( sum / _frames ); + float curRMS = sqrt_neg(sum / frames); const float tres = c.m_tresholdModel.value(); const float amount = c.m_amountModel.value() * c.m_amountMultModel.value(); - curRMS = qAbs( curRMS ) < tres ? 0.0f : curRMS; - m_lastSample = qBound( 0.0f, c.m_baseModel.value() + amount * curRMS, 1.0f ); + const float attack = 1.0f - c.m_attackModel.value(); + const float decay = 1.0f - c.m_decayModel.value(); - return isRunning(); + curRMS = qAbs( curRMS ) < tres ? 0.0f : curRMS; + float target = c.m_baseModel.value() + amount * curRMS; + // Use decay when the volume is decreasing, attack otherwise. + // Since direction can change as often as every sampleBuffer, it's difficult + // to witness attack/decay working in isolation unless using large buffer sizes. + const float t = target < m_lastSample ? decay : attack; + // Set m_lastSample to the interpolation between itself and target. + // When t is 1.0, m_lastSample snaps to target. When t is 0.0, m_lastSample shouldn't change. + m_lastSample = std::clamp(m_lastSample + t * (target - m_lastSample), 0.0f, 1.0f); + + return ProcessStatus::Continue; } diff --git a/plugins/PeakControllerEffect/PeakControllerEffect.h b/plugins/PeakControllerEffect/PeakControllerEffect.h index f2bafeddaa5..bac8db92948 100644 --- a/plugins/PeakControllerEffect/PeakControllerEffect.h +++ b/plugins/PeakControllerEffect/PeakControllerEffect.h @@ -41,8 +41,8 @@ class PeakControllerEffect : public Effect PeakControllerEffect( Model * parent, const Descriptor::SubPluginFeatures::Key * _key ); ~PeakControllerEffect() override; - bool processAudioBuffer( sampleFrame * _buf, - const fpp_t _frames ) override; + + ProcessStatus processImpl(SampleFrame* buf, const fpp_t frames) override; EffectControls * controls() override { diff --git a/plugins/PeakControllerEffect/PeakControllerEffectControls.cpp b/plugins/PeakControllerEffect/PeakControllerEffectControls.cpp index 070c9fbb8fd..0060b535b4b 100644 --- a/plugins/PeakControllerEffect/PeakControllerEffectControls.cpp +++ b/plugins/PeakControllerEffect/PeakControllerEffectControls.cpp @@ -38,14 +38,14 @@ PeakControllerEffectControls:: PeakControllerEffectControls( PeakControllerEffect * _eff ) : EffectControls( _eff ), m_effect( _eff ), - m_baseModel( 0.5, 0.0, 1.0, 0.001, this, tr( "Base value" ) ), - m_amountModel( 1.0, -1.0, 1.0, 0.005, this, tr( "Modulation amount" ) ), - m_attackModel( 0, 0, 0.999, 0.001, this, tr( "Attack" ) ), - m_decayModel( 0, 0, 0.999, 0.001, this, tr( "Release" ) ), - m_tresholdModel( 0, 0, 1.0, 0.001, this, tr( "Treshold" ) ), + m_baseModel(0.5f, 0.f, 1.f, 0.001f, this, tr("Base value")), + m_amountModel(1.f, -1.f, 1.f, 0.005f, this, tr("Modulation amount")), + m_attackModel(0, 0, 0.999f, 0.001f, this, tr("Attack")), + m_decayModel(0, 0, 0.999f, 0.001f, this, tr("Release")), + m_tresholdModel(0, 0, 1.f, 0.001f, this, tr("Treshold")), m_muteModel( false, this, tr( "Mute output" ) ), m_absModel( true, this, tr("Absolute value") ), - m_amountMultModel( 1.0, 0, 32, 0.2, this, tr("Amount multiplicator") ) + m_amountMultModel(1.f, 0, 32, 0.2f, this, tr("Amount multiplicator")) { } diff --git a/plugins/ReverbSC/ReverbSC.cpp b/plugins/ReverbSC/ReverbSC.cpp index 9006f8c9f21..1383d526637 100644 --- a/plugins/ReverbSC/ReverbSC.cpp +++ b/plugins/ReverbSC/ReverbSC.cpp @@ -55,7 +55,7 @@ ReverbSCEffect::ReverbSCEffect( Model* parent, const Descriptor::SubPluginFeatur m_reverbSCControls( this ) { sp_create(&sp); - sp->sr = Engine::audioEngine()->processingSampleRate(); + sp->sr = Engine::audioEngine()->outputSampleRate(); sp_revsc_create(&revsc); sp_revsc_init(sp, revsc); @@ -63,8 +63,8 @@ ReverbSCEffect::ReverbSCEffect( Model* parent, const Descriptor::SubPluginFeatur sp_dcblock_create(&dcblk[0]); sp_dcblock_create(&dcblk[1]); - sp_dcblock_init(sp, dcblk[0], Engine::audioEngine()->currentQualitySettings().sampleRateMultiplier() ); - sp_dcblock_init(sp, dcblk[1], Engine::audioEngine()->currentQualitySettings().sampleRateMultiplier() ); + sp_dcblock_init(sp, dcblk[0], 1); + sp_dcblock_init(sp, dcblk[1], 1); } ReverbSCEffect::~ReverbSCEffect() @@ -75,14 +75,8 @@ ReverbSCEffect::~ReverbSCEffect() sp_destroy(&sp); } -bool ReverbSCEffect::processAudioBuffer( sampleFrame* buf, const fpp_t frames ) +Effect::ProcessStatus ReverbSCEffect::processImpl(SampleFrame* buf, const fpp_t frames) { - if( !isEnabled() || !isRunning () ) - { - return( false ); - } - - double outSum = 0.0; const float d = dryLevel(); const float w = wetLevel(); @@ -119,20 +113,15 @@ bool ReverbSCEffect::processAudioBuffer( sampleFrame* buf, const fpp_t frames ) sp_dcblock_compute(sp, dcblk[1], &tmpR, &dcblkR); buf[f][0] = d * buf[f][0] + w * dcblkL * outGain; buf[f][1] = d * buf[f][1] + w * dcblkR * outGain; - - outSum += buf[f][0]*buf[f][0] + buf[f][1]*buf[f][1]; } - - checkGate( outSum / frames ); - - return isRunning(); + return ProcessStatus::ContinueIfNotQuiet; } void ReverbSCEffect::changeSampleRate() { // Change sr variable in Soundpipe. does not need to be destroyed - sp->sr = Engine::audioEngine()->processingSampleRate(); + sp->sr = Engine::audioEngine()->outputSampleRate(); mutex.lock(); sp_revsc_destroy(&revsc); @@ -145,8 +134,8 @@ void ReverbSCEffect::changeSampleRate() sp_dcblock_create(&dcblk[0]); sp_dcblock_create(&dcblk[1]); - sp_dcblock_init(sp, dcblk[0], Engine::audioEngine()->currentQualitySettings().sampleRateMultiplier() ); - sp_dcblock_init(sp, dcblk[1], Engine::audioEngine()->currentQualitySettings().sampleRateMultiplier() ); + sp_dcblock_init(sp, dcblk[0], 1); + sp_dcblock_init(sp, dcblk[1], 1); mutex.unlock(); } diff --git a/plugins/ReverbSC/ReverbSC.h b/plugins/ReverbSC/ReverbSC.h index 2cb119bff23..2d02662bfdf 100644 --- a/plugins/ReverbSC/ReverbSC.h +++ b/plugins/ReverbSC/ReverbSC.h @@ -45,7 +45,8 @@ class ReverbSCEffect : public Effect public: ReverbSCEffect( Model* parent, const Descriptor::SubPluginFeatures::Key* key ); ~ReverbSCEffect() override; - bool processAudioBuffer( sampleFrame* buf, const fpp_t frames ) override; + + ProcessStatus processImpl(SampleFrame* buf, const fpp_t frames) override; EffectControls* controls() override { diff --git a/plugins/ReverbSC/base.c b/plugins/ReverbSC/base.c index c8d1dff679e..d5c52b0bd1a 100644 --- a/plugins/ReverbSC/base.c +++ b/plugins/ReverbSC/base.c @@ -189,7 +189,7 @@ int sp_set(sp_param *p, SPFLOAT val) { int sp_out(sp_data *sp, uint32_t chan, SPFLOAT val) { - if(chan > sp->nchan - 1) { + if (chan >= (uint32_t) sp->nchan) { fprintf(stderr, "sp_out: Invalid channel\n"); return SP_NOT_OK; } diff --git a/plugins/ReverbSC/dcblock.c b/plugins/ReverbSC/dcblock.c index f38bb73dca5..2c8d86950fd 100644 --- a/plugins/ReverbSC/dcblock.c +++ b/plugins/ReverbSC/dcblock.c @@ -33,7 +33,7 @@ int sp_dcblock_init(sp_data *sp, sp_dcblock *p, int oversampling ) p->inputs = 0.0; p->gain = pow( 0.99, 1.0f / oversampling ); if (p->gain == 0.0 || p->gain>=1.0 || p->gain<=-1.0) - p->gain = 0.99; + p->gain = 0.99f; return SP_OK; } diff --git a/plugins/ReverbSC/revsc.c b/plugins/ReverbSC/revsc.c index d9808963f8e..54db9a4db8c 100644 --- a/plugins/ReverbSC/revsc.c +++ b/plugins/ReverbSC/revsc.c @@ -16,7 +16,7 @@ #include "base.h" #include "revsc.h" -#define DEFAULT_SRATE 44100.0 +#define DEFAULT_SRATE 44100.f #define MIN_SRATE 5000.0 #define MAX_SRATE 1000000.0 #define MAX_PITCHMOD 20.0 @@ -34,20 +34,20 @@ /* reverbParams[n][3] = random seed (0 - 32767) */ static const SPFLOAT reverbParams[8][4] = { - { (2473.0 / DEFAULT_SRATE), 0.0010, 3.100, 1966.0 }, - { (2767.0 / DEFAULT_SRATE), 0.0011, 3.500, 29491.0 }, - { (3217.0 / DEFAULT_SRATE), 0.0017, 1.110, 22937.0 }, - { (3557.0 / DEFAULT_SRATE), 0.0006, 3.973, 9830.0 }, - { (3907.0 / DEFAULT_SRATE), 0.0010, 2.341, 20643.0 }, - { (4127.0 / DEFAULT_SRATE), 0.0011, 1.897, 22937.0 }, - { (2143.0 / DEFAULT_SRATE), 0.0017, 0.891, 29491.0 }, - { (1933.0 / DEFAULT_SRATE), 0.0006, 3.221, 14417.0 } + { (2473.f / DEFAULT_SRATE), 0.0010f, 3.100f, 1966.f }, + { (2767.f / DEFAULT_SRATE), 0.0011f, 3.500f, 29491.f }, + { (3217.f / DEFAULT_SRATE), 0.0017f, 1.110f, 22937.f }, + { (3557.f / DEFAULT_SRATE), 0.0006f, 3.973f, 9830.f }, + { (3907.f / DEFAULT_SRATE), 0.0010f, 2.341f, 20643.f }, + { (4127.f / DEFAULT_SRATE), 0.0011f, 1.897f, 22937.f }, + { (2143.f / DEFAULT_SRATE), 0.0017f, 0.891f, 29491.f }, + { (1933.f / DEFAULT_SRATE), 0.0006f, 3.221f, 14417.f } }; static int delay_line_max_samples(SPFLOAT sr, SPFLOAT iPitchMod, int n); static int init_delay_line(sp_revsc *p, sp_revsc_dl *lp, int n); static int delay_line_bytes_alloc(SPFLOAT sr, SPFLOAT iPitchMod, int n); -static const SPFLOAT outputGain = 0.35; +static const SPFLOAT outputGain = 0.35f; static const SPFLOAT jpScale = 0.25; int sp_revsc_create(sp_revsc **p){ *p = malloc(sizeof(sp_revsc)); @@ -56,9 +56,9 @@ int sp_revsc_create(sp_revsc **p){ int sp_revsc_init(sp_data *sp, sp_revsc *p) { - p->iSampleRate = sp->sr; - p->sampleRate = sp->sr; - p->feedback = 0.97; + p->iSampleRate = (float) sp->sr; + p->sampleRate = (float) sp->sr; + p->feedback = 0.97f; p->lpfreq = 10000; p->iPitchMod = 1; p->iSkipInit = 0; @@ -67,14 +67,14 @@ int sp_revsc_init(sp_data *sp, sp_revsc *p) p->initDone = 1; int i, nBytes = 0; for(i = 0; i < 8; i++){ - nBytes += delay_line_bytes_alloc(sp->sr, 1, i); + nBytes += delay_line_bytes_alloc((float) sp->sr, 1, i); } sp_auxdata_alloc(&p->aux, nBytes); nBytes = 0; for (i = 0; i < 8; i++) { p->delayLines[i].buf = (SPFLOAT*) (((char*) p->aux.ptr) + nBytes); init_delay_line(p, &p->delayLines[i], i); - nBytes += delay_line_bytes_alloc(sp->sr, 1, i); + nBytes += delay_line_bytes_alloc((float) sp->sr, 1, i); } return SP_OK; @@ -217,7 +217,7 @@ int sp_revsc_compute(sp_data *sp, sp_revsc *p, SPFLOAT *in1, SPFLOAT *in2, SPFLO /* calculate interpolation coefficients */ - a2 = frac * frac; a2 -= 1.0; a2 *= (1.0 / 6.0); + a2 = frac * frac; a2 -= 1.0; a2 *= (1.f / 6.f); a1 = frac; a1 += 1.0; a1 *= 0.5; am1 = a1 - 1.0; a0 = 3.0 * a2; a1 -= a0; am1 -= a2; a0 -= frac; diff --git a/plugins/Sf2Player/CMakeLists.txt b/plugins/Sf2Player/CMakeLists.txt index 1d004a6c595..464b8bd3e4b 100644 --- a/plugins/Sf2Player/CMakeLists.txt +++ b/plugins/Sf2Player/CMakeLists.txt @@ -1,9 +1,9 @@ if(LMMS_HAVE_FLUIDSYNTH) + SET(CMAKE_AUTOUIC ON) include(BuildPlugin) build_plugin(sf2player Sf2Player.cpp Sf2Player.h PatchesDialog.cpp PatchesDialog.h PatchesDialog.ui MOCFILES Sf2Player.h PatchesDialog.h - UICFILES PatchesDialog.ui EMBEDDED_RESOURCES *.png ) target_link_libraries(sf2player fluidsynth SampleRate::samplerate) diff --git a/plugins/Sf2Player/PatchesDialog.cpp b/plugins/Sf2Player/PatchesDialog.cpp index c3ffe2d29ee..8a32a10cef4 100644 --- a/plugins/Sf2Player/PatchesDialog.cpp +++ b/plugins/Sf2Player/PatchesDialog.cpp @@ -328,7 +328,7 @@ void PatchesDialog::bankChanged () fluid_preset_t preset; fluid_preset_t *pCurPreset = &preset; #else - fluid_preset_t *pCurPreset; + fluid_preset_t *pCurPreset = nullptr; #endif while ((pCurPreset = fluid_sfont_iteration_next_wrapper(pSoundFont, pCurPreset))) { int iBank = fluid_preset_get_banknum(pCurPreset); diff --git a/plugins/Sf2Player/Sf2Player.cpp b/plugins/Sf2Player/Sf2Player.cpp index 7795671c55e..13dab7b8abd 100644 --- a/plugins/Sf2Player/Sf2Player.cpp +++ b/plugins/Sf2Player/Sf2Player.cpp @@ -122,7 +122,7 @@ struct Sf2PluginData Sf2Instrument::Sf2Instrument( InstrumentTrack * _instrument_track ) : - Instrument( _instrument_track, &sf2player_plugin_descriptor ), + Instrument(_instrument_track, &sf2player_plugin_descriptor, nullptr, Flag::IsSingleStreamed), m_srcState( nullptr ), m_synth(nullptr), m_font( nullptr ), @@ -136,14 +136,14 @@ Sf2Instrument::Sf2Instrument( InstrumentTrack * _instrument_track ) : m_gain( 1.0f, 0.0f, 5.0f, 0.01f, this, tr( "Gain" ) ), m_reverbOn( false, this, tr( "Reverb" ) ), m_reverbRoomSize( FLUID_REVERB_DEFAULT_ROOMSIZE, 0, 1.0, 0.01f, this, tr( "Reverb room size" ) ), - m_reverbDamping( FLUID_REVERB_DEFAULT_DAMP, 0, 1.0, 0.01, this, tr( "Reverb damping" ) ), + m_reverbDamping(FLUID_REVERB_DEFAULT_DAMP, 0, 1.f, 0.01f, this, tr("Reverb damping")), m_reverbWidth( FLUID_REVERB_DEFAULT_WIDTH, 0, 1.0, 0.01f, this, tr( "Reverb width" ) ), m_reverbLevel( FLUID_REVERB_DEFAULT_LEVEL, 0, 1.0, 0.01f, this, tr( "Reverb level" ) ), m_chorusOn( false, this, tr( "Chorus" ) ), m_chorusNum( FLUID_CHORUS_DEFAULT_N, 0, 10.0, 1.0, this, tr( "Chorus voices" ) ), - m_chorusLevel( FLUID_CHORUS_DEFAULT_LEVEL, 0, 10.0, 0.01, this, tr( "Chorus level" ) ), - m_chorusSpeed( FLUID_CHORUS_DEFAULT_SPEED, 0.29, 5.0, 0.01, this, tr( "Chorus speed" ) ), - m_chorusDepth( FLUID_CHORUS_DEFAULT_DEPTH, 0, 46.0, 0.05, this, tr( "Chorus depth" ) ) + m_chorusLevel(FLUID_CHORUS_DEFAULT_LEVEL, 0, 10.f, 0.01f, this, tr("Chorus level")), + m_chorusSpeed(FLUID_CHORUS_DEFAULT_SPEED, 0.29f, 5.f, 0.01f, this, tr("Chorus speed")), + m_chorusDepth(FLUID_CHORUS_DEFAULT_DEPTH, 0, 46.f, 0.05f, this, tr("Chorus depth")) { @@ -499,44 +499,58 @@ void Sf2Instrument::updateGain() fluid_synth_set_gain( m_synth, m_gain.value() ); } - - +#define FLUIDSYNTH_VERSION_HEX ((FLUIDSYNTH_VERSION_MAJOR << 16) \ + | (FLUIDSYNTH_VERSION_MINOR << 8) \ + | FLUIDSYNTH_VERSION_MICRO) +#define USE_NEW_EFFECT_API (FLUIDSYNTH_VERSION_HEX >= 0x020200) void Sf2Instrument::updateReverbOn() { - fluid_synth_set_reverb_on( m_synth, m_reverbOn.value() ? 1 : 0 ); +#if USE_NEW_EFFECT_API + fluid_synth_reverb_on(m_synth, -1, m_reverbOn.value() ? 1 : 0); +#else + fluid_synth_set_reverb_on(m_synth, m_reverbOn.value() ? 1 : 0); +#endif } - - - void Sf2Instrument::updateReverb() { - fluid_synth_set_reverb( m_synth, m_reverbRoomSize.value(), +#if USE_NEW_EFFECT_API + fluid_synth_set_reverb_group_roomsize(m_synth, -1, m_reverbRoomSize.value()); + fluid_synth_set_reverb_group_damp(m_synth, -1, m_reverbDamping.value()); + fluid_synth_set_reverb_group_width(m_synth, -1, m_reverbWidth.value()); + fluid_synth_set_reverb_group_level(m_synth, -1, m_reverbLevel.value()); +#else + fluid_synth_set_reverb(m_synth, m_reverbRoomSize.value(), m_reverbDamping.value(), m_reverbWidth.value(), - m_reverbLevel.value() ); + m_reverbLevel.value()); +#endif } - - - -void Sf2Instrument::updateChorusOn() +void Sf2Instrument::updateChorusOn() { - fluid_synth_set_chorus_on( m_synth, m_chorusOn.value() ? 1 : 0 ); +#if USE_NEW_EFFECT_API + fluid_synth_chorus_on(m_synth, -1, m_chorusOn.value() ? 1 : 0); +#else + fluid_synth_set_chorus_on(m_synth, m_chorusOn.value() ? 1 : 0); +#endif } - - - -void Sf2Instrument::updateChorus() +void Sf2Instrument::updateChorus() { - fluid_synth_set_chorus( m_synth, static_cast( m_chorusNum.value() ), +#if USE_NEW_EFFECT_API + fluid_synth_set_chorus_group_nr(m_synth, -1, static_cast(m_chorusNum.value())); + fluid_synth_set_chorus_group_level(m_synth, -1, m_chorusLevel.value()); + fluid_synth_set_chorus_group_speed(m_synth, -1, m_chorusSpeed.value()); + fluid_synth_set_chorus_group_depth(m_synth, -1, m_chorusDepth.value()); + fluid_synth_set_chorus_group_type(m_synth, -1, FLUID_CHORUS_MOD_SINE); +#else + fluid_synth_set_chorus(m_synth, static_cast(m_chorusNum.value()), m_chorusLevel.value(), m_chorusSpeed.value(), - m_chorusDepth.value(), 0 ); + m_chorusDepth.value(), FLUID_CHORUS_MOD_SINE); +#endif } - - void Sf2Instrument::updateTuning() { if (instrumentTrack()->microtuner()->enabledModel()->value()) @@ -574,7 +588,7 @@ void Sf2Instrument::reloadSynth() double tempRate; // Set & get, returns the true sample rate - fluid_settings_setnum( m_settings, (char *) "synth.sample-rate", Engine::audioEngine()->processingSampleRate() ); + fluid_settings_setnum( m_settings, (char *) "synth.sample-rate", Engine::audioEngine()->outputSampleRate() ); fluid_settings_getnum( m_settings, (char *) "synth.sample-rate", &tempRate ); m_internalSampleRate = static_cast( tempRate ); @@ -616,7 +630,7 @@ void Sf2Instrument::reloadSynth() fluid_synth_set_interp_method( m_synth, -1, FLUID_INTERP_DEFAULT ); } m_synthMutex.unlock(); - if( m_internalSampleRate < Engine::audioEngine()->processingSampleRate() ) + if( m_internalSampleRate < Engine::audioEngine()->outputSampleRate() ) { m_synthMutex.lock(); if( m_srcState != nullptr ) @@ -647,7 +661,7 @@ void Sf2Instrument::reloadSynth() -void Sf2Instrument::playNote( NotePlayHandle * _n, sampleFrame * ) +void Sf2Instrument::playNote( NotePlayHandle * _n, SampleFrame* ) { if( _n->isMasterNote() || ( _n->hasParent() && _n->isReleased() ) ) { @@ -782,7 +796,7 @@ void Sf2Instrument::noteOff( Sf2PluginData * n ) } -void Sf2Instrument::play( sampleFrame * _working_buffer ) +void Sf2Instrument::play( SampleFrame* _working_buffer ) { const fpp_t frames = Engine::audioEngine()->framesPerPeriod(); @@ -868,18 +882,18 @@ void Sf2Instrument::play( sampleFrame * _working_buffer ) } -void Sf2Instrument::renderFrames( f_cnt_t frames, sampleFrame * buf ) +void Sf2Instrument::renderFrames( f_cnt_t frames, SampleFrame* buf ) { m_synthMutex.lock(); fluid_synth_get_gain(m_synth); // This flushes voice updates as a side effect - if( m_internalSampleRate < Engine::audioEngine()->processingSampleRate() && + if( m_internalSampleRate < Engine::audioEngine()->outputSampleRate() && m_srcState != nullptr ) { - const fpp_t f = frames * m_internalSampleRate / Engine::audioEngine()->processingSampleRate(); + const fpp_t f = frames * m_internalSampleRate / Engine::audioEngine()->outputSampleRate(); #ifdef __GNUC__ - sampleFrame tmp[f]; + SampleFrame tmp[f]; #else - sampleFrame * tmp = new sampleFrame[f]; + SampleFrame* tmp = new SampleFrame[f]; #endif fluid_synth_write_float( m_synth, f, tmp, 0, 2, tmp, 1, 2 ); @@ -898,9 +912,9 @@ void Sf2Instrument::renderFrames( f_cnt_t frames, sampleFrame * buf ) { qCritical( "Sf2Instrument: error while resampling: %s", src_strerror( error ) ); } - if( src_data.output_frames_gen > frames ) + if (static_cast(src_data.output_frames_gen) < frames) { - qCritical( "Sf2Instrument: not enough frames: %ld / %d", src_data.output_frames_gen, frames ); + qCritical("Sf2Instrument: not enough frames: %ld / %zu", src_data.output_frames_gen, frames); } } else diff --git a/plugins/Sf2Player/Sf2Player.h b/plugins/Sf2Player/Sf2Player.h index 17ddf550037..b63dd48e988 100644 --- a/plugins/Sf2Player/Sf2Player.h +++ b/plugins/Sf2Player/Sf2Player.h @@ -27,6 +27,7 @@ #ifndef SF2_PLAYER_H #define SF2_PLAYER_H +#include #include #include #include @@ -34,7 +35,6 @@ #include "Instrument.h" #include "InstrumentView.h" #include "LcdSpinBox.h" -#include "MemoryManager.h" class QLabel; @@ -65,10 +65,10 @@ class Sf2Instrument : public Instrument Sf2Instrument( InstrumentTrack * _instrument_track ); ~Sf2Instrument() override; - void play( sampleFrame * _working_buffer ) override; + void play( SampleFrame* _working_buffer ) override; void playNote( NotePlayHandle * _n, - sampleFrame * _working_buffer ) override; + SampleFrame* _working_buffer ) override; void deleteNotePluginData( NotePlayHandle * _n ) override; @@ -81,16 +81,6 @@ class Sf2Instrument : public Instrument QString nodeName() const override; - f_cnt_t desiredReleaseFrames() const override - { - return 0; - } - - Flags flags() const override - { - return Flag::IsSingleStreamed; - } - gui::PluginView* instantiateView( QWidget * _parent ) override; QString getCurrentPatchName(); @@ -161,7 +151,7 @@ public slots: void freeFont(); void noteOn( Sf2PluginData * n ); void noteOff( Sf2PluginData * n ); - void renderFrames( f_cnt_t frames, sampleFrame * buf ); + void renderFrames( f_cnt_t frames, SampleFrame* buf ); friend class gui::Sf2InstrumentView; diff --git a/plugins/Sfxr/Sfxr.cpp b/plugins/Sfxr/Sfxr.cpp index e79b8e2adbe..0279eb41a3b 100644 --- a/plugins/Sfxr/Sfxr.cpp +++ b/plugins/Sfxr/Sfxr.cpp @@ -157,7 +157,7 @@ void SfxrSynth::resetSample( bool restart ) -void SfxrSynth::update( sampleFrame * buffer, const int32_t frameNum ) +void SfxrSynth::update( SampleFrame* buffer, const int32_t frameNum ) { for(int i=0;iprocessingSampleRate(); + float currentSampleRate = Engine::audioEngine()->outputSampleRate(); fpp_t frameNum = _n->framesLeftForCurrentPeriod(); const f_cnt_t offset = _n->noteOffset(); @@ -454,7 +454,7 @@ void SfxrInstrument::playNote( NotePlayHandle * _n, sampleFrame * _working_buffe } else if( static_cast(_n->m_pluginData)->isPlaying() == false ) { - memset(_working_buffer + offset, 0, sizeof(sampleFrame) * frameNum); + zeroSampleFrames(_working_buffer + offset, frameNum); _n->noteOff(); return; } @@ -467,7 +467,7 @@ void SfxrInstrument::playNote( NotePlayHandle * _n, sampleFrame * _working_buffe // debug code // qDebug( "pFN %d", pitchedFrameNum ); - auto pitchedBuffer = new sampleFrame[pitchedFrameNum]; + auto pitchedBuffer = new SampleFrame[pitchedFrameNum]; static_cast(_n->m_pluginData)->update( pitchedBuffer, pitchedFrameNum ); for( fpp_t i=0; i + #include "AutomatableModel.h" #include "Instrument.h" #include "InstrumentView.h" -#include "MemoryManager.h" namespace lmms { @@ -78,13 +79,12 @@ class SfxrInstrumentView; class SfxrSynth { - MM_OPERATORS public: SfxrSynth( const SfxrInstrument * s ); virtual ~SfxrSynth() = default; void resetSample( bool restart ); - void update( sampleFrame * buffer, const int32_t frameNum ); + void update( SampleFrame* buffer, const int32_t frameNum ); bool isPlaying() const; @@ -137,7 +137,7 @@ class SfxrZeroToOneFloatModel : public FloatModel { public: SfxrZeroToOneFloatModel( float val, Model * parent, const QString& displayName ): - FloatModel( val, 0.0, 1.0, 0.001, parent, displayName ) + FloatModel(val, 0.f, 1.f, 0.001f, parent, displayName) { } /* purpose: prevent the initial value of the model from being changed */ @@ -158,7 +158,7 @@ class SfxrNegPosOneFloatModel : public FloatModel { public: SfxrNegPosOneFloatModel(float val, Model * parent, const QString& displayName ): - FloatModel( val, -1.0, 1.0, 0.001, parent, displayName ) + FloatModel(val, -1.f, 1.f, 0.001f, parent, displayName) { } /* purpose: prevent the initial value of the model from being changed */ @@ -179,7 +179,7 @@ class SfxrInstrument : public Instrument SfxrInstrument(InstrumentTrack * _instrument_track ); ~SfxrInstrument() override = default; - void playNote( NotePlayHandle * _n, sampleFrame * _working_buffer ) override; + void playNote( NotePlayHandle * _n, SampleFrame* _working_buffer ) override; void deleteNotePluginData( NotePlayHandle * _n ) override; void saveSettings( QDomDocument & _doc, diff --git a/plugins/Sid/SidInstrument.cpp b/plugins/Sid/SidInstrument.cpp index 7f9edf13f18..4d21abd4dea 100644 --- a/plugins/Sid/SidInstrument.cpp +++ b/plugins/Sid/SidInstrument.cpp @@ -29,7 +29,7 @@ #include #include -#include "sid.h" +#include #include "SidInstrument.h" #include "AudioEngine.h" @@ -221,44 +221,35 @@ QString SidInstrument::nodeName() const } - - -f_cnt_t SidInstrument::desiredReleaseFrames() const +float SidInstrument::desiredReleaseTimeMs() const { - const float samplerate = Engine::audioEngine()->processingSampleRate(); int maxrel = 0; for (const auto& voice : m_voice) { - if( maxrel < voice->m_releaseModel.value() ) - maxrel = (int)voice->m_releaseModel.value(); + maxrel = std::max(maxrel, static_cast(voice->m_releaseModel.value())); } - return f_cnt_t( float(relTime[maxrel])*samplerate/1000.0 ); + return computeReleaseTimeMsByFrameCount(relTime[maxrel]); } - - static int sid_fillbuffer(unsigned char* sidreg, reSID::SID *sid, int tdelta, short *ptr, int samples) { - int tdelta2; - int result; int total = 0; - int c; // customly added int residdelay = 0; int badline = rand() % NUMSIDREGS; - for (c = 0; c < NUMSIDREGS; c++) + for (int c = 0; c < NUMSIDREGS; c++) { unsigned char o = sidorder[c]; // Extra delay for loading the waveform (and mt_chngate,x) if ((o == 4) || (o == 11) || (o == 18)) { - tdelta2 = SIDWAVEDELAY; - result = sid->clock(tdelta2, ptr, samples); + int tdelta2 = SIDWAVEDELAY; + int result = sid->clock(tdelta2, ptr, samples); total += result; ptr += result; samples -= result; @@ -268,8 +259,8 @@ static int sid_fillbuffer(unsigned char* sidreg, reSID::SID *sid, int tdelta, sh // Possible random badline delay once per writing if ((badline == c) && (residdelay)) { - tdelta2 = residdelay; - result = sid->clock(tdelta2, ptr, samples); + int tdelta2 = residdelay; + int result = sid->clock(tdelta2, ptr, samples); total += result; ptr += result; samples -= result; @@ -278,14 +269,14 @@ static int sid_fillbuffer(unsigned char* sidreg, reSID::SID *sid, int tdelta, sh sid->write(o, sidreg[o]); - tdelta2 = SIDWRITEDELAY; - result = sid->clock(tdelta2, ptr, samples); + int tdelta2 = SIDWRITEDELAY; + int result = sid->clock(tdelta2, ptr, samples); total += result; ptr += result; samples -= result; tdelta -= SIDWRITEDELAY; } - result = sid->clock(tdelta, ptr, samples); + int result = sid->clock(tdelta, ptr, samples); total += result; return total; @@ -295,10 +286,10 @@ static int sid_fillbuffer(unsigned char* sidreg, reSID::SID *sid, int tdelta, sh void SidInstrument::playNote( NotePlayHandle * _n, - sampleFrame * _working_buffer ) + SampleFrame* _working_buffer ) { const int clockrate = C64_PAL_CYCLES_PER_SEC; - const int samplerate = Engine::audioEngine()->processingSampleRate(); + const int samplerate = Engine::audioEngine()->outputSampleRate(); if (!_n->m_pluginData) { @@ -314,8 +305,11 @@ void SidInstrument::playNote( NotePlayHandle * _n, auto sid = static_cast(_n->m_pluginData); int delta_t = clockrate * frames / samplerate + 4; - // avoid variable length array for msvc compat - auto buf = reinterpret_cast(_working_buffer + offset); +#ifndef _MSC_VER + short buf[frames]; +#else + const auto buf = static_cast(_alloca(frames * sizeof(short))); +#endif auto sidreg = std::array{}; for (auto& reg : sidreg) @@ -416,12 +410,13 @@ void SidInstrument::playNote( NotePlayHandle * _n, sidreg[24] = data8&0x00FF; - int num = sid_fillbuffer(sidreg.data(), sid, delta_t, buf, frames); - if(num!=frames) + const auto num = static_cast(sid_fillbuffer(sidreg.data(), sid, delta_t, buf, frames)); + if (num != frames) { printf("!!!Not enough samples\n"); + } // loop backwards to avoid overwriting data in the short-to-float conversion - for( fpp_t frame = frames - 1; frame >= 0; frame-- ) + for (auto frame = std::size_t{0}; frame < frames; ++frame) { sample_t s = float(buf[frame])/32768.0; for( ch_cnt_t ch = 0; ch < DEFAULT_CHANNELS; ++ch ) diff --git a/plugins/Sid/SidInstrument.h b/plugins/Sid/SidInstrument.h index 53efa8942f7..79ad7f32abf 100644 --- a/plugins/Sid/SidInstrument.h +++ b/plugins/Sid/SidInstrument.h @@ -48,7 +48,6 @@ class PixmapButton; class VoiceObject : public Model { Q_OBJECT - MM_OPERATORS public: enum class WaveForm { Square = 0, @@ -103,7 +102,7 @@ class SidInstrument : public Instrument ~SidInstrument() override = default; void playNote( NotePlayHandle * _n, - sampleFrame * _working_buffer ) override; + SampleFrame* _working_buffer ) override; void deleteNotePluginData( NotePlayHandle * _n ) override; @@ -112,7 +111,7 @@ class SidInstrument : public Instrument QString nodeName() const override; - f_cnt_t desiredReleaseFrames() const override; + float desiredReleaseTimeMs() const override; gui::PluginView* instantiateView( QWidget * _parent ) override; diff --git a/plugins/Sid/resid/CMakeLists.txt b/plugins/Sid/resid/CMakeLists.txt index bb39e3d166f..e882679a88c 100644 --- a/plugins/Sid/resid/CMakeLists.txt +++ b/plugins/Sid/resid/CMakeLists.txt @@ -1,3 +1,5 @@ +set_directory_properties(PROPERTIES SYSTEM TRUE) + # These are the defaults set(RESID_INLINING 1) set(RESID_INLINE inline) diff --git a/plugins/SlicerT/CMakeLists.txt b/plugins/SlicerT/CMakeLists.txt index 49a80ca03aa..fa7ce3c11a1 100644 --- a/plugins/SlicerT/CMakeLists.txt +++ b/plugins/SlicerT/CMakeLists.txt @@ -1,10 +1,16 @@ -INCLUDE(BuildPlugin) +include(BuildPlugin) -INCLUDE_DIRECTORIES(${FFTW3F_INCLUDE_DIRS}) -LINK_LIBRARIES(${FFTW3F_LIBRARIES}) +include_directories(SYSTEM ${FFTW3F_INCLUDE_DIRS}) +link_libraries(${FFTW3F_LIBRARIES}) -INCLUDE_DIRECTORIES(${SAMPLERATE_INCLUDE_DIRS}) -LINK_DIRECTORIES(${SAMPLERATE_LIBRARY_DIRS}) -LINK_LIBRARIES(${SAMPLERATE_LIBRARIES}) - -BUILD_PLUGIN(slicert SlicerT.cpp SlicerT.h SlicerTView.cpp SlicerTView.h SlicerTWaveform.cpp SlicerTWaveform.h MOCFILES SlicerT.h SlicerTView.h SlicerTWaveform.h EMBEDDED_RESOURCES "${CMAKE_CURRENT_SOURCE_DIR}/*.png") \ No newline at end of file +build_plugin(slicert + SlicerT.cpp + SlicerT.h + SlicerTView.cpp + SlicerTView.h + SlicerTWaveform.cpp + SlicerTWaveform.h + MOCFILES SlicerT.h SlicerTView.h SlicerTWaveform.h + EMBEDDED_RESOURCES "${CMAKE_CURRENT_SOURCE_DIR}/*.png" +) +target_link_libraries(slicert SampleRate::samplerate) diff --git a/plugins/SlicerT/SlicerT.cpp b/plugins/SlicerT/SlicerT.cpp index 2918265cead..3b060258401 100644 --- a/plugins/SlicerT/SlicerT.cpp +++ b/plugins/SlicerT/SlicerT.cpp @@ -31,6 +31,7 @@ #include "Engine.h" #include "InstrumentTrack.h" #include "PathUtil.h" +#include "SampleLoader.h" #include "Song.h" #include "embed.h" #include "lmms_constants.h" @@ -74,9 +75,9 @@ SlicerT::SlicerT(InstrumentTrack* instrumentTrack) m_sliceSnap.setValue(0); } -void SlicerT::playNote(NotePlayHandle* handle, sampleFrame* workingBuffer) +void SlicerT::playNote(NotePlayHandle* handle, SampleFrame* workingBuffer) { - if (m_originalSample.frames() <= 1) { return; } + if (m_originalSample.sampleSize() <= 1) { return; } int noteIndex = handle->key() - m_parentTrack->baseNote(); const fpp_t frames = handle->framesLeftForCurrentPeriod(); @@ -87,7 +88,7 @@ void SlicerT::playNote(NotePlayHandle* handle, sampleFrame* workingBuffer) float speedRatio = static_cast(m_originalBPM.value()) / bpm; if (!m_enableSync.value()) { speedRatio = 1; } speedRatio *= pitchRatio; - speedRatio *= Engine::audioEngine()->processingSampleRate() / static_cast(m_originalSample.sampleRate()); + speedRatio *= Engine::audioEngine()->outputSampleRate() / static_cast(m_originalSample.sampleRate()); float sliceStart, sliceEnd; if (noteIndex == 0) // full sample at base note @@ -95,7 +96,7 @@ void SlicerT::playNote(NotePlayHandle* handle, sampleFrame* workingBuffer) sliceStart = 0; sliceEnd = 1; } - else if (noteIndex > 0 && noteIndex < m_slicePoints.size()) + else if (noteIndex > 0 && static_cast(noteIndex) < m_slicePoints.size()) { noteIndex -= 1; sliceStart = m_slicePoints[noteIndex]; @@ -115,27 +116,27 @@ void SlicerT::playNote(NotePlayHandle* handle, sampleFrame* workingBuffer) if (noteLeft > 0) { - int noteFrame = noteDone * m_originalSample.frames(); + int noteFrame = noteDone * m_originalSample.sampleSize(); SRC_STATE* resampleState = playbackState->resamplingState(); SRC_DATA resampleData; resampleData.data_in = (m_originalSample.data() + noteFrame)->data(); resampleData.data_out = (workingBuffer + offset)->data(); - resampleData.input_frames = noteLeft * m_originalSample.frames(); + resampleData.input_frames = noteLeft * m_originalSample.sampleSize(); resampleData.output_frames = frames; resampleData.src_ratio = speedRatio; src_process(resampleState, &resampleData); - float nextNoteDone = noteDone + frames * (1.0f / speedRatio) / m_originalSample.frames(); + float nextNoteDone = noteDone + frames * (1.0f / speedRatio) / m_originalSample.sampleSize(); playbackState->setNoteDone(nextNoteDone); // exponential fade out, applyRelease() not used since it extends the note length - int fadeOutFrames = m_fadeOutFrames.value() / 1000.0f * Engine::audioEngine()->processingSampleRate(); - int noteFramesLeft = noteLeft * m_originalSample.frames() * speedRatio; - for (int i = 0; i < frames; i++) + int fadeOutFrames = m_fadeOutFrames.value() / 1000.0f * Engine::audioEngine()->outputSampleRate(); + int noteFramesLeft = noteLeft * m_originalSample.sampleSize() * speedRatio; + for (auto i = std::size_t{0}; i < frames; i++) { - float fadeValue = static_cast(noteFramesLeft - i) / fadeOutFrames; + float fadeValue = static_cast(noteFramesLeft - static_cast(i)) / fadeOutFrames; fadeValue = std::clamp(fadeValue, 0.0f, 1.0f); fadeValue = cosinusInterpolate(0, 1, fadeValue); @@ -143,8 +144,6 @@ void SlicerT::playNote(NotePlayHandle* handle, sampleFrame* workingBuffer) workingBuffer[i + offset][1] *= fadeValue; } - instrumentTrack()->processAudioBuffer(workingBuffer, frames + offset, handle); - emit isPlaying(noteDone, sliceStart, sliceEnd); } else { emit isPlaying(-1, 0, 0); } @@ -153,6 +152,7 @@ void SlicerT::playNote(NotePlayHandle* handle, sampleFrame* workingBuffer) void SlicerT::deleteNotePluginData(NotePlayHandle* handle) { delete static_cast(handle->m_pluginData); + emit isPlaying(-1, 0, 0); } // uses the spectral flux to determine the change in magnitude @@ -160,7 +160,7 @@ void SlicerT::deleteNotePluginData(NotePlayHandle* handle) // http://www.iro.umontreal.ca/~pift6080/H09/documents/papers/bello_onset_tutorial.pdf void SlicerT::findSlices() { - if (m_originalSample.frames() <= 1) { return; } + if (m_originalSample.sampleSize() <= 1) { return; } m_slicePoints = {}; const int windowSize = 512; @@ -170,8 +170,8 @@ void SlicerT::findSlices() int minDist = sampleRate * minBeatLength; float maxMag = -1; - std::vector singleChannel(m_originalSample.frames(), 0); - for (int i = 0; i < m_originalSample.frames(); i++) + std::vector singleChannel(m_originalSample.sampleSize(), 0); + for (auto i = std::size_t{0}; i < m_originalSample.sampleSize(); i++) { singleChannel[i] = (m_originalSample.data()[i][0] + m_originalSample.data()[i][1]) / 2; maxMag = std::max(maxMag, singleChannel[i]); @@ -180,7 +180,7 @@ void SlicerT::findSlices() // normalize and find 0 crossings std::vector zeroCrossings; float lastValue = 1; - for (int i = 0; i < singleChannel.size(); i++) + for (auto i = std::size_t{0}; i < singleChannel.size(); i++) { singleChannel[i] /= maxMag; if (sign(lastValue) != sign(singleChannel[i])) @@ -198,10 +198,9 @@ void SlicerT::findSlices() int lastPoint = -minDist - 1; // to always store 0 first float spectralFlux = 0; - float prevFlux = 1E-10; // small value, no divison by zero - float real, imag, magnitude, diff; + float prevFlux = 1E-10f; // small value, no divison by zero - for (int i = 0; i < singleChannel.size() - windowSize; i += windowSize) + for (int i = 0; i < static_cast(singleChannel.size()) - windowSize; i += windowSize) { // fft std::copy_n(singleChannel.data() + i, windowSize, fftIn.data()); @@ -210,12 +209,12 @@ void SlicerT::findSlices() // calculate spectral flux in regard to last window for (int j = 0; j < windowSize / 2; j++) // only use niquistic frequencies { - real = fftOut[j][0]; - imag = fftOut[j][1]; - magnitude = std::sqrt(real * real + imag * imag); + float real = fftOut[j][0]; + float imag = fftOut[j][1]; + float magnitude = std::sqrt(real * real + imag * imag); // using L2-norm (euclidean distance) - diff = std::sqrt(std::pow(magnitude - prevMags[j], 2)); + float diff = std::sqrt(std::pow(magnitude - prevMags[j], 2)); spectralFlux += diff; prevMags[j] = magnitude; @@ -229,15 +228,16 @@ void SlicerT::findSlices() } prevFlux = spectralFlux; - spectralFlux = 1E-10; // again for no divison by zero + spectralFlux = 1E-10f; // again for no divison by zero } - m_slicePoints.push_back(m_originalSample.frames()); + m_slicePoints.push_back(m_originalSample.sampleSize()); for (float& sliceValue : m_slicePoints) { - int closestZeroCrossing = *std::lower_bound(zeroCrossings.begin(), zeroCrossings.end(), sliceValue); - if (std::abs(sliceValue - closestZeroCrossing) < windowSize) { sliceValue = closestZeroCrossing; } + auto closestZeroCrossing = std::lower_bound(zeroCrossings.begin(), zeroCrossings.end(), sliceValue); + if (closestZeroCrossing == zeroCrossings.end()) { continue; } + if (std::abs(sliceValue - *closestZeroCrossing) < windowSize) { sliceValue = *closestZeroCrossing; } } float beatsPerMin = m_originalBPM.value() / 60.0f; @@ -247,7 +247,7 @@ void SlicerT::findSlices() if (noteSnap == 0) { sliceLock = 1; } for (float& sliceValue : m_slicePoints) { - sliceValue += sliceLock / 2; + sliceValue += sliceLock / 2.f; sliceValue -= static_cast(sliceValue) % sliceLock; } @@ -255,7 +255,7 @@ void SlicerT::findSlices() for (float& sliceIndex : m_slicePoints) { - sliceIndex /= m_originalSample.frames(); + sliceIndex /= m_originalSample.sampleSize(); } m_slicePoints[0] = 0; @@ -268,10 +268,10 @@ void SlicerT::findSlices() // and lies in the 100 - 200 bpm range void SlicerT::findBPM() { - if (m_originalSample.frames() <= 1) { return; } + if (m_originalSample.sampleSize() <= 1) { return; } float sampleRate = m_originalSample.sampleRate(); - float totalFrames = m_originalSample.frames(); + float totalFrames = m_originalSample.sampleSize(); float sampleLength = totalFrames / sampleRate; float bpmEstimate = 240.0f / sampleLength; @@ -295,13 +295,13 @@ std::vector SlicerT::getMidi() std::vector outputNotes; float speedRatio = static_cast(m_originalBPM.value()) / Engine::getSong()->getTempo(); - float outFrames = m_originalSample.frames() * speedRatio; + float outFrames = m_originalSample.sampleSize() * speedRatio; float framesPerTick = Engine::framesPerTick(); float totalTicks = outFrames / framesPerTick; float lastEnd = 0; - for (int i = 0; i < m_slicePoints.size() - 1; i++) + for (auto i = std::size_t{0}; i < m_slicePoints.size() - 1; i++) { float sliceStart = lastEnd; float sliceEnd = totalTicks * m_slicePoints[i + 1]; @@ -320,7 +320,7 @@ std::vector SlicerT::getMidi() void SlicerT::updateFile(QString file) { - m_originalSample.setAudioFile(file); + if (auto buffer = gui::SampleLoader::createBufferFromFile(file)) { m_originalSample = Sample(std::move(buffer)); } findBPM(); findSlices(); @@ -336,15 +336,14 @@ void SlicerT::updateSlices() void SlicerT::saveSettings(QDomDocument& document, QDomElement& element) { element.setAttribute("version", "1"); - element.setAttribute("src", m_originalSample.audioFile()); - if (m_originalSample.audioFile().isEmpty()) + element.setAttribute("src", m_originalSample.sampleFile()); + if (m_originalSample.sampleFile().isEmpty()) { - QString s; - element.setAttribute("sampledata", m_originalSample.toBase64(s)); + element.setAttribute("sampledata", m_originalSample.toBase64()); } element.setAttribute("totalSlices", static_cast(m_slicePoints.size())); - for (int i = 0; i < m_slicePoints.size(); i++) + for (auto i = std::size_t{0}; i < m_slicePoints.size(); i++) { element.setAttribute(tr("slice_%1").arg(i), m_slicePoints[i]); } @@ -357,20 +356,23 @@ void SlicerT::saveSettings(QDomDocument& document, QDomElement& element) void SlicerT::loadSettings(const QDomElement& element) { - if (!element.attribute("src").isEmpty()) + if (auto srcFile = element.attribute("src"); !srcFile.isEmpty()) { - m_originalSample.setAudioFile(element.attribute("src")); - - QString absolutePath = PathUtil::toAbsolute(m_originalSample.audioFile()); - if (!QFileInfo(absolutePath).exists()) + if (QFileInfo(PathUtil::toAbsolute(srcFile)).exists()) + { + auto buffer = gui::SampleLoader::createBufferFromFile(srcFile); + m_originalSample = Sample(std::move(buffer)); + } + else { - QString message = tr("Sample not found: %1").arg(m_originalSample.audioFile()); + QString message = tr("Sample not found: %1").arg(srcFile); Engine::getSong()->collectError(message); } } - else if (!element.attribute("sampledata").isEmpty()) + else if (auto sampleData = element.attribute("sampledata"); !sampleData.isEmpty()) { - m_originalSample.loadFromBase64(element.attribute("srcdata")); + auto buffer = gui::SampleLoader::createBufferFromBase64(sampleData); + m_originalSample = Sample(std::move(buffer)); } if (!element.attribute("totalSlices").isEmpty()) diff --git a/plugins/SlicerT/SlicerT.h b/plugins/SlicerT/SlicerT.h index 8671eecd1f8..53b8bfb2a04 100644 --- a/plugins/SlicerT/SlicerT.h +++ b/plugins/SlicerT/SlicerT.h @@ -33,6 +33,7 @@ #include "Instrument.h" #include "InstrumentView.h" #include "Note.h" +#include "Sample.h" #include "SampleBuffer.h" #include "SlicerTView.h" #include "lmms_basics.h" @@ -74,7 +75,7 @@ public slots: public: SlicerT(InstrumentTrack* instrumentTrack); - void playNote(NotePlayHandle* handle, sampleFrame* workingBuffer) override; + void playNote(NotePlayHandle* handle, SampleFrame* workingBuffer) override; void deleteNotePluginData(NotePlayHandle* handle) override; void saveSettings(QDomDocument& document, QDomElement& element) override; @@ -83,6 +84,8 @@ public slots: void findSlices(); void findBPM(); + QString getSampleName() { return m_originalSample.sampleFile(); } + QString nodeName() const override; gui::PluginView* instantiateView(QWidget* parent) override; @@ -95,7 +98,7 @@ public slots: ComboBoxModel m_sliceSnap; BoolModel m_enableSync; - SampleBuffer m_originalSample; + Sample m_originalSample; std::vector m_slicePoints; diff --git a/plugins/SlicerT/SlicerTView.cpp b/plugins/SlicerT/SlicerTView.cpp index 833d4b434af..7af2db1430e 100644 --- a/plugins/SlicerT/SlicerTView.cpp +++ b/plugins/SlicerT/SlicerTView.cpp @@ -25,14 +25,16 @@ #include "SlicerTView.h" #include -#include +#include +#include #include "Clipboard.h" #include "DataFile.h" -#include "Engine.h" #include "InstrumentTrack.h" +#include "InstrumentView.h" +#include "PixmapButton.h" +#include "SampleLoader.h" #include "SlicerT.h" -#include "Song.h" #include "StringPairDrag.h" #include "Track.h" #include "embed.h" @@ -42,57 +44,62 @@ namespace lmms { namespace gui { SlicerTView::SlicerTView(SlicerT* instrument, QWidget* parent) - : InstrumentViewFixedSize(instrument, parent) + : InstrumentView(instrument, parent) , m_slicerTParent(instrument) + , m_fullLogo(PLUGIN_NAME::getIconPixmap("full_logo")) + , m_background(PLUGIN_NAME::getIconPixmap("toolbox")) { // window settings setAcceptDrops(true); setAutoFillBackground(true); - // render background - QPalette pal; - pal.setBrush(backgroundRole(), PLUGIN_NAME::getIconPixmap("artwork")); - setPalette(pal); + setMaximumSize(QSize(10000, 10000)); + setMinimumSize(QSize(516, 400)); m_wf = new SlicerTWaveform(248, 128, instrument, this); - m_wf->move(2, 6); + m_wf->move(0, s_topBarHeight); m_snapSetting = new ComboBox(this, tr("Slice snap")); m_snapSetting->setGeometry(185, 200, 55, ComboBox::DEFAULT_HEIGHT); m_snapSetting->setToolTip(tr("Set slice snapping for detection")); m_snapSetting->setModel(&m_slicerTParent->m_sliceSnap); - m_syncToggle = new LedCheckBox("Sync", this, tr("SyncToggle"), LedCheckBox::LedColor::Green); - m_syncToggle->move(135, 187); + m_syncToggle = new PixmapButton(this, tr("Sync sample")); + m_syncToggle->setActiveGraphic(PLUGIN_NAME::getIconPixmap("sync_active")); + m_syncToggle->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("sync_inactive")); + m_syncToggle->setCheckable(true); m_syncToggle->setToolTip(tr("Enable BPM sync")); m_syncToggle->setModel(&m_slicerTParent->m_enableSync); m_bpmBox = new LcdSpinBox(3, "19purple", this); - m_bpmBox->move(130, 201); m_bpmBox->setToolTip(tr("Original sample BPM")); m_bpmBox->setModel(&m_slicerTParent->m_originalBPM); m_noteThresholdKnob = createStyledKnob(); - m_noteThresholdKnob->move(10, 197); m_noteThresholdKnob->setToolTip(tr("Threshold used for slicing")); m_noteThresholdKnob->setModel(&m_slicerTParent->m_noteThreshold); m_fadeOutKnob = createStyledKnob(); - m_fadeOutKnob->move(64, 197); m_fadeOutKnob->setToolTip(tr("Fade Out per note in milliseconds")); m_fadeOutKnob->setModel(&m_slicerTParent->m_fadeOutFrames); m_midiExportButton = new QPushButton(this); - m_midiExportButton->move(199, 150); m_midiExportButton->setIcon(PLUGIN_NAME::getIconPixmap("copy_midi")); m_midiExportButton->setToolTip(tr("Copy midi pattern to clipboard")); connect(m_midiExportButton, &PixmapButton::clicked, this, &SlicerTView::exportMidi); + m_folderButton = new PixmapButton(this); + m_folderButton->setActiveGraphic(PLUGIN_NAME::getIconPixmap("folder_icon")); + m_folderButton->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("folder_icon")); + m_folderButton->setToolTip(tr("Open sample selector")); + connect(m_folderButton, &PixmapButton::clicked, this, &SlicerTView::openFiles); + m_resetButton = new QPushButton(this); - m_resetButton->move(18, 150); m_resetButton->setIcon(PLUGIN_NAME::getIconPixmap("reset_slices")); - m_resetButton->setToolTip(tr("Reset Slices")); + m_resetButton->setToolTip(tr("Reset slices")); connect(m_resetButton, &PixmapButton::clicked, m_slicerTParent, &SlicerT::updateSlices); + + update(); } Knob* SlicerTView::createStyledKnob() @@ -108,7 +115,7 @@ Knob* SlicerTView::createStyledKnob() void SlicerTView::exportMidi() { using namespace Clipboard; - if (m_slicerTParent->m_originalSample.frames() <= 1) { return; } + if (m_slicerTParent->m_originalSample.sampleSize() <= 1) { return; } DataFile dataFile(DataFile::Type::ClipboardData); QDomElement noteList = dataFile.createElement("note-list"); @@ -129,7 +136,7 @@ void SlicerTView::exportMidi() void SlicerTView::openFiles() { - QString audioFile = m_slicerTParent->m_originalSample.openAudioFile(); + const auto audioFile = SampleLoader::openAudioFile(); if (audioFile.isEmpty()) { return; } m_slicerTParent->updateFile(audioFile); } @@ -177,16 +184,101 @@ void SlicerTView::dropEvent(QDropEvent* de) void SlicerTView::paintEvent(QPaintEvent* pe) { QPainter brush(this); - brush.setPen(QColor(255, 255, 255)); brush.setFont(QFont(brush.font().family(), 7, -1, false)); - brush.drawText(8, s_topTextY, s_textBoxWidth, s_textBoxHeight, Qt::AlignCenter, tr("Reset")); - brush.drawText(188, s_topTextY, s_textBoxWidth, s_textBoxHeight, Qt::AlignCenter, tr("Midi")); + int boxTopY = height() - s_bottomBoxHeight; + + // --- backgrounds and limiters + brush.drawPixmap(QRect(0, boxTopY, s_leftBoxWidth, s_bottomBoxHeight), m_background); // left + brush.fillRect( + QRect(s_leftBoxWidth, boxTopY, width() - s_leftBoxWidth, s_bottomBoxHeight), QColor(23, 26, 31)); // right + brush.fillRect(QRect(0, 0, width(), s_topBarHeight), QColor(20, 23, 27)); // top + + // top bar dividers + brush.setPen(QColor(56, 58, 60)); + brush.drawLine(0, s_topBarHeight - 1, width(), s_topBarHeight - 1); + brush.drawLine(0, 0, width(), 0); + + // sample name divider + brush.setPen(QColor(56, 58, 60)); + brush.drawLine(0, boxTopY, width(), boxTopY); + + // boxes divider + brush.setPen(QColor(56, 24, 94)); + brush.drawLine(s_leftBoxWidth, boxTopY, s_leftBoxWidth, height()); + + // --- top bar + brush.drawPixmap( + QRect(10, (s_topBarHeight - m_fullLogo.height()) / 2, m_fullLogo.width(), m_fullLogo.height()), m_fullLogo); + + int y1_text = m_y1 + 27; + + // --- left box + brush.setPen(QColor(255, 255, 255)); + brush.drawText(s_x1 - 25, y1_text, s_textBoxWidth, s_textBoxHeight, Qt::AlignCenter, tr("Threshold")); + brush.drawText(s_x2 - 25, y1_text, s_textBoxWidth, s_textBoxHeight, Qt::AlignCenter, tr("Fade Out")); + brush.drawText(s_x3 - 25, y1_text, s_textBoxWidth, s_textBoxHeight, Qt::AlignCenter, tr("Reset")); + brush.drawText(s_x4 - 8, y1_text, s_textBoxWidth, s_textBoxHeight, Qt::AlignCenter, tr("Midi")); + brush.drawText(s_x5 - 16, y1_text, s_textBoxWidth, s_textBoxHeight, Qt::AlignCenter, tr("BPM")); + brush.drawText(s_x6 - 8, y1_text, s_textBoxWidth, s_textBoxHeight, Qt::AlignCenter, tr("Snap")); + + int kor = 15; // knob outer radius + int kir = 9; // knob inner radius + + // draw knob backgrounds + brush.setRenderHint(QPainter::Antialiasing); + + // draw outer radius 2 times to make smooth + brush.setPen(QPen(QColor(159, 124, 223, 100), 4)); + brush.drawArc(QRect(s_x1 - kor, m_y1, kor * 2, kor * 2), -45 * 16, 270 * 16); + brush.drawArc(QRect(s_x2 - kor, m_y1, kor * 2, kor * 2), -45 * 16, 270 * 16); + + brush.setPen(QPen(QColor(159, 124, 223, 255), 2)); + brush.drawArc(QRect(s_x1 - kor, m_y1, kor * 2, kor * 2), -45 * 16, 270 * 16); + brush.drawArc(QRect(s_x2 - kor, m_y1, kor * 2, kor * 2), -45 * 16, 270 * 16); + + // inner knob circle + brush.setBrush(QColor(106, 90, 138)); + brush.setPen(QColor(0, 0, 0, 0)); + brush.drawEllipse(QPoint(s_x1, m_y1 + 15), kir, kir); + brush.drawEllipse(QPoint(s_x2, m_y1 + 15), kir, kir); + + // current sample bar + brush.fillRect(QRect(0, boxTopY - s_sampleBoxHeight, width(), s_sampleBoxHeight), QColor(5, 5, 5)); + + brush.setPen(QColor(56, 58, 60)); + brush.drawLine(width() - 24, boxTopY - s_sampleBoxHeight, width() - 24, boxTopY); + + brush.setPen(QColor(255, 255, 255, 180)); + brush.setFont(QFont(brush.font().family(), 8, -1, false)); + QString sampleName = m_slicerTParent->getSampleName(); + if (sampleName == "") { sampleName = "No sample loaded"; } + + brush.drawText(5, boxTopY - s_sampleBoxHeight, width(), s_sampleBoxHeight, Qt::AlignLeft, sampleName); +} + +void SlicerTView::resizeEvent(QResizeEvent* re) +{ + m_y1 = height() - s_bottomBoxOffset; + + // left box + m_noteThresholdKnob->move(s_x1 - 25, m_y1); + m_fadeOutKnob->move(s_x2 - 25, m_y1); + + m_resetButton->move(s_x3 - 15, m_y1 + 3); + m_midiExportButton->move(s_x4 + 2, m_y1 + 3); + + m_bpmBox->move(s_x5 - 13, m_y1 + 4); + m_snapSetting->move(s_x6 - 8, m_y1 + 3); + + // right box + m_syncToggle->move((width() - 100), m_y1 + 5); + + m_folderButton->move(width() - 20, height() - s_bottomBoxHeight - s_sampleBoxHeight + 1); + + int waveFormHeight = height() - s_bottomBoxHeight - s_topBarHeight - s_sampleBoxHeight; - brush.drawText(8, s_bottomTextY, s_textBoxWidth, s_textBoxHeight, Qt::AlignCenter, tr("Threshold")); - brush.drawText(63, s_bottomTextY, s_textBoxWidth, s_textBoxHeight, Qt::AlignCenter, tr("Fade Out")); - brush.drawText(127, s_bottomTextY, s_textBoxWidth, s_textBoxHeight, Qt::AlignCenter, tr("BPM")); - brush.drawText(188, s_bottomTextY, s_textBoxWidth, s_textBoxHeight, Qt::AlignCenter, tr("Snap")); + m_wf->resize(width(), waveFormHeight); } } // namespace gui diff --git a/plugins/SlicerT/SlicerTView.h b/plugins/SlicerT/SlicerTView.h index ea2b979fc42..f24246621fa 100644 --- a/plugins/SlicerT/SlicerTView.h +++ b/plugins/SlicerT/SlicerTView.h @@ -26,9 +26,9 @@ #define LMMS_GUI_SLICERT_VIEW_H #include +#include #include "ComboBox.h" -#include "Instrument.h" #include "InstrumentView.h" #include "Knob.h" #include "LcdSpinBox.h" @@ -42,7 +42,7 @@ class SlicerT; namespace gui { -class SlicerTView : public InstrumentViewFixedSize +class SlicerTView : public InstrumentView { Q_OBJECT @@ -55,23 +55,39 @@ public slots: static constexpr int s_textBoxHeight = 20; static constexpr int s_textBoxWidth = 50; - static constexpr int s_topTextY = 170; - static constexpr int s_bottomTextY = 220; + static constexpr int s_topBarHeight = 50; + static constexpr int s_bottomBoxHeight = 97; + static constexpr int s_bottomBoxOffset = 65; + static constexpr int s_sampleBoxHeight = 14; + static constexpr int s_folderButtonWidth = 15; + static constexpr int s_leftBoxWidth = 400; + + + static constexpr int s_x1 = 35; + static constexpr int s_x2 = 85; + static constexpr int s_x3 = 160; + static constexpr int s_x4 = 190; + static constexpr int s_x5 = 275; + static constexpr int s_x6 = 325; protected: - virtual void dragEnterEvent(QDragEnterEvent* dee); - virtual void dropEvent(QDropEvent* de); + void dragEnterEvent(QDragEnterEvent* dee) override; + void dropEvent(QDropEvent* de) override; - virtual void paintEvent(QPaintEvent* pe); + void paintEvent(QPaintEvent* pe) override; + void resizeEvent(QResizeEvent* event) override; private: + bool isResizable() const override { return true; } + SlicerT* m_slicerTParent; Knob* m_noteThresholdKnob; Knob* m_fadeOutKnob; LcdSpinBox* m_bpmBox; ComboBox* m_snapSetting; - LedCheckBox* m_syncToggle; + PixmapButton* m_syncToggle; + PixmapButton* m_folderButton; QPushButton* m_resetButton; QPushButton* m_midiExportButton; @@ -79,6 +95,13 @@ public slots: SlicerTWaveform* m_wf; Knob* createStyledKnob(); + + QPixmap m_fullLogo; + QPixmap m_background; + + + int m_y1; + int m_y2; }; } // namespace gui } // namespace lmms diff --git a/plugins/SlicerT/SlicerTWaveform.cpp b/plugins/SlicerT/SlicerTWaveform.cpp index 6685f4f8cec..17fab42e220 100644 --- a/plugins/SlicerT/SlicerTWaveform.cpp +++ b/plugins/SlicerT/SlicerTWaveform.cpp @@ -25,7 +25,9 @@ #include "SlicerTWaveform.h" #include +#include +#include "SampleWaveform.h" #include "SlicerT.h" #include "SlicerTView.h" #include "embed.h" @@ -34,43 +36,52 @@ namespace lmms { namespace gui { +// waveform colors static QColor s_emptyColor = QColor(0, 0, 0, 0); -static QColor s_waveformColor = QColor(123, 49, 212); -static QColor s_waveformBgColor = QColor(255, 255, 255, 0); -static QColor s_waveformMaskColor = QColor(151, 65, 255); // update this if s_waveformColor changes -static QColor s_waveformInnerColor = QColor(183, 124, 255); - -static QColor s_playColor = QColor(255, 255, 255, 200); -static QColor s_playHighlightColor = QColor(255, 255, 255, 70); - -static QColor s_sliceColor = QColor(218, 193, 255); -static QColor s_sliceShadowColor = QColor(136, 120, 158); -static QColor s_sliceHighlightColor = QColor(255, 255, 255); - -static QColor s_seekerColor = QColor(178, 115, 255); -static QColor s_seekerHighlightColor = QColor(178, 115, 255, 100); -static QColor s_seekerShadowColor = QColor(0, 0, 0, 120); +static QColor s_waveformColor = QColor(123, 49, 212); // color of outer waveform +static QColor s_waveformSeekerBgColor = QColor(0, 0, 0, 255); +static QColor s_waveformEditorBgColor = QColor(15, 15, 15, 255); +static QColor s_waveformMaskColor = QColor(151, 65, 255); // update this if s_waveformColor changes +static QColor s_waveformInnerColor = QColor(183, 124, 255); // color of inner waveform + +// now playing colors +static QColor s_playColor = QColor(255, 255, 255, 200); // now playing line +static QColor s_playHighlightColor = QColor(255, 255, 255, 70); // now playing note marker + +// slice markers +static QColor s_sliceColor = QColor(218, 193, 255); // color of slice marker +static QColor s_sliceShadowColor = QColor(136, 120, 158); // color of dark side of slice marker +static QColor s_sliceHighlightColor = QColor(255, 255, 255); // color of highlighted slice marker + +// seeker rect colors +static QColor s_seekerColor = QColor(178, 115, 255); // outline of seeker +static QColor s_seekerHighlightColor = QColor(178, 115, 255, 100); // inside of seeker +static QColor s_seekerShadowColor = QColor(0, 0, 0, 120); // color used for darkening outside seeker + +// decor colors +static QColor s_editorBounding = QColor(53, 22, 90); // color of the editor bounding box +static QColor s_gradientEnd = QColor(29, 16, 47); // end color of the seeker gradient SlicerTWaveform::SlicerTWaveform(int totalWidth, int totalHeight, SlicerT* instrument, QWidget* parent) : QWidget(parent) , m_width(totalWidth) , m_height(totalHeight) + , m_seekerHeight(40) , m_seekerWidth(totalWidth - s_seekerHorMargin * 2) - , m_editorHeight(totalHeight - s_seekerHeight - s_middleMargin) + , m_editorHeight(totalHeight - m_seekerHeight - s_middleMargin - s_seekerVerMargin) , m_editorWidth(totalWidth) , m_sliceArrow(PLUGIN_NAME::getIconPixmap("slice_indicator_arrow")) - , m_seeker(QPixmap(m_seekerWidth, s_seekerHeight)) - , m_seekerWaveform(QPixmap(m_seekerWidth, s_seekerHeight)) - , m_editorWaveform(QPixmap(m_editorWidth, m_editorHeight)) + , m_seeker(QPixmap(m_seekerWidth, m_seekerHeight)) + , m_seekerWaveform(QPixmap(m_seekerWidth, m_seekerHeight)) + , m_editorWaveform(QPixmap(m_editorWidth, m_editorHeight - s_arrowHeight)) , m_sliceEditor(QPixmap(totalWidth, m_editorHeight)) , m_emptySampleIcon(embed::getIconPixmap("sample_track")) , m_slicerTParent(instrument) { - setFixedSize(m_width, m_height); setMouseTracking(true); - m_seekerWaveform.fill(s_waveformBgColor); - m_editorWaveform.fill(s_waveformBgColor); + m_seekerWaveform.fill(s_waveformSeekerBgColor); + m_editorWaveform.fill(s_waveformEditorBgColor); connect(instrument, &SlicerT::isPlaying, this, &SlicerTWaveform::isPlaying); connect(instrument, &SlicerT::dataChanged, this, &SlicerTWaveform::updateUI); @@ -81,15 +92,33 @@ SlicerTWaveform::SlicerTWaveform(int totalWidth, int totalHeight, SlicerT* instr updateUI(); } +void SlicerTWaveform::resizeEvent(QResizeEvent* event) +{ + m_width = width(); + m_height = height(); + m_seekerWidth = m_width - s_seekerHorMargin * 2; + /* m_seekerHeight = m_height * 0.33f; */ + m_editorWidth = m_width; + m_editorHeight = m_height - m_seekerHeight - s_middleMargin - s_seekerVerMargin; + + m_seeker = QPixmap(m_seekerWidth, m_seekerHeight); + m_seekerWaveform = QPixmap(m_seekerWidth, m_seekerHeight); + m_editorWaveform = QPixmap(m_editorWidth, m_editorHeight - s_arrowHeight); + m_sliceEditor = QPixmap(m_width, m_editorHeight); + updateUI(); +} void SlicerTWaveform::drawSeekerWaveform() { - m_seekerWaveform.fill(s_waveformBgColor); - if (m_slicerTParent->m_originalSample.frames() <= 1) { return; } + m_seekerWaveform.fill(s_emptyColor); + if (m_slicerTParent->m_originalSample.sampleSize() <= 1) { return; } QPainter brush(&m_seekerWaveform); brush.setPen(s_waveformColor); - m_slicerTParent->m_originalSample.visualize(brush, QRect(0, 0, m_seekerWaveform.width(), m_seekerWaveform.height()), - 0, m_slicerTParent->m_originalSample.frames()); + const auto& sample = m_slicerTParent->m_originalSample; + const auto waveform + = SampleWaveform::Parameters{sample.data(), sample.sampleSize(), sample.amplification(), sample.reversed()}; + const auto rect = QRect(0, 0, m_seekerWaveform.width(), m_seekerWaveform.height()); + SampleWaveform::visualize(waveform, brush, rect); // increase brightness in inner color QBitmap innerMask = m_seekerWaveform.createMaskFromColor(s_waveformMaskColor, Qt::MaskMode::MaskOutColor); @@ -99,15 +128,16 @@ void SlicerTWaveform::drawSeekerWaveform() void SlicerTWaveform::drawSeeker() { - m_seeker.fill(s_emptyColor); - if (m_slicerTParent->m_originalSample.frames() <= 1) { return; } + m_seeker.fill(s_waveformSeekerBgColor); + if (m_slicerTParent->m_originalSample.sampleSize() <= 1) { return; } QPainter brush(&m_seeker); + brush.drawPixmap(0, 0, m_seekerWaveform); brush.setPen(s_sliceColor); for (float sliceValue : m_slicerTParent->m_slicePoints) { float xPos = sliceValue * m_seekerWidth; - brush.drawLine(xPos, 0, xPos, s_seekerHeight); + brush.drawLine(xPos, 0, xPos, m_seekerHeight); } float seekerStartPosX = m_seekerStart * m_seekerWidth; @@ -119,31 +149,35 @@ void SlicerTWaveform::drawSeeker() float noteEndPosX = (m_noteEnd - m_noteStart) * m_seekerWidth; brush.setPen(s_playColor); - brush.drawLine(noteCurrentPosX, 0, noteCurrentPosX, s_seekerHeight); - brush.fillRect(noteStartPosX, 0, noteEndPosX, s_seekerHeight, s_playHighlightColor); + brush.drawLine(noteCurrentPosX, 0, noteCurrentPosX, m_seekerHeight); + brush.fillRect(noteStartPosX, 0, noteEndPosX, m_seekerHeight, s_playHighlightColor); - brush.fillRect(seekerStartPosX, 0, seekerMiddleWidth - 1, s_seekerHeight, s_seekerHighlightColor); + brush.fillRect(seekerStartPosX, 0, seekerMiddleWidth - 1, m_seekerHeight, s_seekerHighlightColor); - brush.fillRect(0, 0, seekerStartPosX, s_seekerHeight, s_seekerShadowColor); - brush.fillRect(seekerEndPosX - 1, 0, m_seekerWidth, s_seekerHeight, s_seekerShadowColor); + brush.fillRect(0, 0, seekerStartPosX, m_seekerHeight, s_seekerShadowColor); + brush.fillRect(seekerEndPosX - 1, 0, m_seekerWidth, m_seekerHeight, s_seekerShadowColor); brush.setPen(QPen(s_seekerColor, 1)); - brush.drawRect(seekerStartPosX, 0, seekerMiddleWidth - 1, s_seekerHeight - 1); // -1 needed + brush.drawRoundedRect(seekerStartPosX, 0, seekerMiddleWidth - 1, m_seekerHeight - 1, 2, 2); } void SlicerTWaveform::drawEditorWaveform() { m_editorWaveform.fill(s_emptyColor); - if (m_slicerTParent->m_originalSample.frames() <= 1) { return; } + if (m_slicerTParent->m_originalSample.sampleSize() <= 1) { return; } QPainter brush(&m_editorWaveform); - float startFrame = m_seekerStart * m_slicerTParent->m_originalSample.frames(); - float endFrame = m_seekerEnd * m_slicerTParent->m_originalSample.frames(); + size_t startFrame = m_seekerStart * m_slicerTParent->m_originalSample.sampleSize(); + size_t endFrame = m_seekerEnd * m_slicerTParent->m_originalSample.sampleSize(); brush.setPen(s_waveformColor); float zoomOffset = (m_editorHeight - m_zoomLevel * m_editorHeight) / 2; - m_slicerTParent->m_originalSample.visualize( - brush, QRect(0, zoomOffset, m_editorWidth, m_zoomLevel * m_editorHeight), startFrame, endFrame); + + const auto& sample = m_slicerTParent->m_originalSample; + const auto waveform = SampleWaveform::Parameters{ + sample.data() + startFrame, endFrame - startFrame, sample.amplification(), sample.reversed()}; + const auto rect = QRect(0, zoomOffset, m_editorWidth, m_zoomLevel * m_editorHeight); + SampleWaveform::visualize(waveform, brush, rect); // increase brightness in inner color QBitmap innerMask = m_editorWaveform.createMaskFromColor(s_waveformMaskColor, Qt::MaskMode::MaskOutColor); @@ -153,11 +187,11 @@ void SlicerTWaveform::drawEditorWaveform() void SlicerTWaveform::drawEditor() { - m_sliceEditor.fill(s_waveformBgColor); + m_sliceEditor.fill(s_waveformEditorBgColor); QPainter brush(&m_sliceEditor); // No sample loaded - if (m_slicerTParent->m_originalSample.frames() <= 1) + if (m_slicerTParent->m_originalSample.sampleSize() <= 1) { brush.setPen(s_playHighlightColor); brush.setFont(QFont(brush.font().family(), 9.0f, -1, false)); @@ -179,21 +213,24 @@ void SlicerTWaveform::drawEditor() float noteLength = (m_noteEnd - m_noteStart) / (m_seekerEnd - m_seekerStart) * m_editorWidth; brush.setPen(s_playHighlightColor); - brush.drawLine(0, m_editorHeight / 2, m_editorWidth, m_editorHeight / 2); + int middleY = m_editorHeight / 2 + s_arrowHeight; + brush.drawLine(0, middleY, m_editorWidth, middleY); + + brush.drawPixmap(0, s_arrowHeight, m_editorWaveform); - brush.drawPixmap(0, 0, m_editorWaveform); + brush.fillRect(0, 0, m_editorWidth, s_arrowHeight, s_waveformSeekerBgColor); brush.setPen(s_playColor); - brush.drawLine(noteCurrentPos, 0, noteCurrentPos, m_editorHeight); - brush.fillRect(noteStartPos, 0, noteLength, m_editorHeight, s_playHighlightColor); + brush.drawLine(noteCurrentPos, s_arrowHeight, noteCurrentPos, m_editorHeight); + brush.fillRect(noteStartPos, s_arrowHeight, noteLength, m_editorHeight, s_playHighlightColor); brush.setPen(QPen(s_sliceColor, 2)); - for (int i = 0; i < m_slicerTParent->m_slicePoints.size(); i++) + for (auto i = std::size_t{0}; i < m_slicerTParent->m_slicePoints.size(); i++) { float xPos = (m_slicerTParent->m_slicePoints.at(i) - startFrame) / numFramesToDraw * m_editorWidth; - if (i == m_closestSlice) + if (i == static_cast(m_closestSlice)) { brush.setPen(QPen(s_sliceHighlightColor, 2)); brush.drawLine(xPos, 0, xPos, m_editorHeight); @@ -209,6 +246,11 @@ void SlicerTWaveform::drawEditor() brush.drawPixmap(xPos - m_sliceArrow.width() / 2.0f, 0, m_sliceArrow); } } + + // decor + brush.setPen(s_editorBounding); + brush.drawLine(0, s_arrowHeight, m_editorWidth, s_arrowHeight); + brush.drawLine(0, m_editorHeight - 1, m_editorWidth, m_editorHeight - 1); } void SlicerTWaveform::isPlaying(float current, float start, float end) @@ -242,7 +284,7 @@ void SlicerTWaveform::updateClosest(QMouseEvent* me) m_closestObject = UIObjects::Nothing; m_closestSlice = -1; - if (me->y() < s_seekerHeight) + if (me->y() < m_seekerHeight) { if (std::abs(normalizedClickSeeker - m_seekerStart) < s_distanceForClick) { @@ -262,7 +304,7 @@ void SlicerTWaveform::updateClosest(QMouseEvent* me) m_closestSlice = -1; float startFrame = m_seekerStart; float endFrame = m_seekerEnd; - for (int i = 0; i < m_slicerTParent->m_slicePoints.size(); i++) + for (auto i = std::size_t{0}; i < m_slicerTParent->m_slicePoints.size(); i++) { float sliceIndex = m_slicerTParent->m_slicePoints.at(i); float xPos = (sliceIndex - startFrame) / (endFrame - startFrame); @@ -306,7 +348,7 @@ void SlicerTWaveform::mousePressEvent(QMouseEvent* me) drawEditorWaveform(); break; case Qt::MouseButton::LeftButton: - if (m_slicerTParent->m_originalSample.frames() <= 1) { static_cast(parent())->openFiles(); } + if (m_slicerTParent->m_originalSample.sampleSize() <= 1) { static_cast(parent())->openFiles(); } // update seeker middle for correct movement m_seekerMiddle = static_cast(me->x() - s_seekerHorMargin) / m_seekerWidth; break; @@ -388,7 +430,7 @@ void SlicerTWaveform::mouseMoveEvent(QMouseEvent* me) void SlicerTWaveform::mouseDoubleClickEvent(QMouseEvent* me) { - if (me->button() != Qt::MouseButton::LeftButton) { return; } + if (me->button() != Qt::MouseButton::LeftButton || me->y() < m_seekerHeight) { return; } float normalizedClickEditor = static_cast(me->x()) / m_editorWidth; float startFrame = m_seekerStart; @@ -410,9 +452,27 @@ void SlicerTWaveform::wheelEvent(QWheelEvent* we) void SlicerTWaveform::paintEvent(QPaintEvent* pe) { QPainter p(this); - p.drawPixmap(s_seekerHorMargin, 0, m_seekerWaveform); - p.drawPixmap(s_seekerHorMargin, 0, m_seeker); - p.drawPixmap(0, s_seekerHeight + s_middleMargin, m_sliceEditor); + + // top gradient + QLinearGradient bgGrad(QPointF(0, 0), QPointF(width(), height() - m_editorHeight)); + bgGrad.setColorAt(0, s_waveformEditorBgColor); + bgGrad.setColorAt(1, s_gradientEnd); + + p.setBrush(bgGrad); + p.setPen(s_emptyColor); + p.drawRect(QRect(0, 0, width(), height())); + p.setBrush(QBrush()); + + // seeker + QPainterPath path; + path.addRoundedRect( + QRect(s_seekerHorMargin - 2, s_seekerVerMargin - 2, m_seekerWidth + 4, m_seekerHeight + 4), 4, 4); + p.fillPath(path, s_seekerShadowColor); + p.drawPixmap(s_seekerHorMargin, s_seekerVerMargin, m_seeker); + + // editor + p.setPen(QColor(s_waveformColor)); + p.drawPixmap(0, m_seekerHeight + s_middleMargin + s_seekerVerMargin, m_sliceEditor); } } // namespace gui } // namespace lmms diff --git a/plugins/SlicerT/SlicerTWaveform.h b/plugins/SlicerT/SlicerTWaveform.h index 6478e7f8684..d22e83f5eaa 100644 --- a/plugins/SlicerT/SlicerTWaveform.h +++ b/plugins/SlicerT/SlicerTWaveform.h @@ -32,9 +32,6 @@ #include #include -#include "Instrument.h" -#include "SampleBuffer.h" - namespace lmms { class SlicerT; @@ -54,8 +51,9 @@ public slots: // predefined sizes static constexpr int s_seekerHorMargin = 5; - static constexpr int s_seekerHeight = 38; // used to calcualte all vertical sizes + static constexpr int s_seekerVerMargin = 6; static constexpr int s_middleMargin = 6; + static constexpr int s_arrowHeight = 5; // interaction behavior values static constexpr float s_distanceForClick = 0.02f; @@ -80,11 +78,13 @@ public slots: void wheelEvent(QWheelEvent* we) override; void paintEvent(QPaintEvent* pe) override; + void resizeEvent(QResizeEvent* event) override; private: int m_width; int m_height; + int m_seekerHeight; // used to calcualte all vertical sizes int m_seekerWidth; int m_editorHeight; int m_editorWidth; diff --git a/plugins/SlicerT/artwork.png b/plugins/SlicerT/artwork.png deleted file mode 100644 index e166273c705..00000000000 Binary files a/plugins/SlicerT/artwork.png and /dev/null differ diff --git a/plugins/SlicerT/folder_icon.png b/plugins/SlicerT/folder_icon.png new file mode 100644 index 00000000000..4dd60c8ff26 Binary files /dev/null and b/plugins/SlicerT/folder_icon.png differ diff --git a/plugins/SlicerT/full_logo.png b/plugins/SlicerT/full_logo.png new file mode 100644 index 00000000000..aa8c1d26a00 Binary files /dev/null and b/plugins/SlicerT/full_logo.png differ diff --git a/plugins/SlicerT/sync_active.png b/plugins/SlicerT/sync_active.png new file mode 100644 index 00000000000..9db13c7944e Binary files /dev/null and b/plugins/SlicerT/sync_active.png differ diff --git a/plugins/SlicerT/sync_inactive.png b/plugins/SlicerT/sync_inactive.png new file mode 100644 index 00000000000..573958de0a0 Binary files /dev/null and b/plugins/SlicerT/sync_inactive.png differ diff --git a/plugins/SlicerT/toolbox.png b/plugins/SlicerT/toolbox.png new file mode 100644 index 00000000000..2b7c2a14c48 Binary files /dev/null and b/plugins/SlicerT/toolbox.png differ diff --git a/plugins/SpectrumAnalyzer/Analyzer.cpp b/plugins/SpectrumAnalyzer/Analyzer.cpp index 0bbada7db55..7b6086ed2bb 100644 --- a/plugins/SpectrumAnalyzer/Analyzer.cpp +++ b/plugins/SpectrumAnalyzer/Analyzer.cpp @@ -77,7 +77,7 @@ Analyzer::~Analyzer() } // Take audio data and pass them to the spectrum processor. -bool Analyzer::processAudioBuffer(sampleFrame *buffer, const fpp_t frame_count) +Effect::ProcessStatus Analyzer::processImpl(SampleFrame* buf, const fpp_t frames) { // Measure time spent in audio thread; both average and peak should be well under 1 ms. #ifdef SA_DEBUG @@ -91,14 +91,12 @@ bool Analyzer::processAudioBuffer(sampleFrame *buffer, const fpp_t frame_count) } #endif - if (!isEnabled() || !isRunning ()) {return false;} - // Skip processing if the controls dialog isn't visible, it would only waste CPU cycles. if (m_controls.isViewVisible()) { // To avoid processing spikes on audio thread, data are stored in // a lockless ringbuffer and processed in a separate thread. - m_inputBuffer.write(buffer, frame_count, true); + m_inputBuffer.write(buf, frames, true); } #ifdef SA_DEBUG audio_time = std::chrono::high_resolution_clock::now().time_since_epoch().count() - audio_time; @@ -107,7 +105,7 @@ bool Analyzer::processAudioBuffer(sampleFrame *buffer, const fpp_t frame_count) if (audio_time / 1000000.0 > m_max_execution) {m_max_execution = audio_time / 1000000.0;} #endif - return isRunning(); + return ProcessStatus::Continue; } diff --git a/plugins/SpectrumAnalyzer/Analyzer.h b/plugins/SpectrumAnalyzer/Analyzer.h index 5be1f9ba83c..d898b13335d 100644 --- a/plugins/SpectrumAnalyzer/Analyzer.h +++ b/plugins/SpectrumAnalyzer/Analyzer.h @@ -45,7 +45,8 @@ class Analyzer : public Effect Analyzer(Model *parent, const Descriptor::SubPluginFeatures::Key *key); ~Analyzer() override; - bool processAudioBuffer(sampleFrame *buffer, const fpp_t frame_count) override; + ProcessStatus processImpl(SampleFrame* buf, const fpp_t frames) override; + EffectControls *controls() override {return &m_controls;} SaProcessor *getProcessor() {return &m_processor;} @@ -63,7 +64,7 @@ class Analyzer : public Effect //m_processorThread = QThread::create([=]{m_processor.analyze(m_inputBuffer);}); DataprocLauncher m_processorThread; - LocklessRingBuffer m_inputBuffer; + LocklessRingBuffer m_inputBuffer; #ifdef SA_DEBUG int m_last_dump_time; diff --git a/plugins/SpectrumAnalyzer/CMakeLists.txt b/plugins/SpectrumAnalyzer/CMakeLists.txt index 488495a9e3d..4b3d2ed69bd 100644 --- a/plugins/SpectrumAnalyzer/CMakeLists.txt +++ b/plugins/SpectrumAnalyzer/CMakeLists.txt @@ -1,5 +1,5 @@ INCLUDE(BuildPlugin) -INCLUDE_DIRECTORIES(${FFTW3F_INCLUDE_DIRS}) +include_directories(SYSTEM ${FFTW3F_INCLUDE_DIRS}) LINK_LIBRARIES(${FFTW3F_LIBRARIES}) diff --git a/plugins/SpectrumAnalyzer/DataprocLauncher.h b/plugins/SpectrumAnalyzer/DataprocLauncher.h index 4325284c9cd..43bac6a438b 100644 --- a/plugins/SpectrumAnalyzer/DataprocLauncher.h +++ b/plugins/SpectrumAnalyzer/DataprocLauncher.h @@ -37,7 +37,7 @@ namespace lmms class DataprocLauncher : public QThread { public: - explicit DataprocLauncher(SaProcessor &proc, LocklessRingBuffer &buffer) + explicit DataprocLauncher(SaProcessor &proc, LocklessRingBuffer &buffer) : m_processor(&proc), m_inputBuffer(&buffer) { @@ -50,7 +50,7 @@ class DataprocLauncher : public QThread } SaProcessor *m_processor; - LocklessRingBuffer *m_inputBuffer; + LocklessRingBuffer *m_inputBuffer; }; diff --git a/plugins/SpectrumAnalyzer/SaControlsDialog.cpp b/plugins/SpectrumAnalyzer/SaControlsDialog.cpp index eb09c793a9f..2b0ca4fecf7 100644 --- a/plugins/SpectrumAnalyzer/SaControlsDialog.cpp +++ b/plugins/SpectrumAnalyzer/SaControlsDialog.cpp @@ -89,28 +89,28 @@ SaControlsDialog::SaControlsDialog(SaControls *controls, SaProcessor *processor) // pause and freeze buttons auto pauseButton = new PixmapButton(this, tr("Pause")); pauseButton->setToolTip(tr("Pause data acquisition")); - auto pauseOnPixmap = new QPixmap( - PLUGIN_NAME::getIconPixmap("play").scaled(buttonSize, Qt::IgnoreAspectRatio, Qt::SmoothTransformation)); - auto pauseOffPixmap = new QPixmap( - PLUGIN_NAME::getIconPixmap("pause").scaled(buttonSize, Qt::IgnoreAspectRatio, Qt::SmoothTransformation)); - pauseOnPixmap->setDevicePixelRatio(devicePixelRatio()); - pauseOffPixmap->setDevicePixelRatio(devicePixelRatio()); - pauseButton->setActiveGraphic(*pauseOnPixmap); - pauseButton->setInactiveGraphic(*pauseOffPixmap); + static auto s_pauseOnPixmap + = PLUGIN_NAME::getIconPixmap("play").scaled(buttonSize, Qt::IgnoreAspectRatio, Qt::SmoothTransformation); + static auto s_pauseOffPixmap + = PLUGIN_NAME::getIconPixmap("pause").scaled(buttonSize, Qt::IgnoreAspectRatio, Qt::SmoothTransformation); + s_pauseOnPixmap.setDevicePixelRatio(devicePixelRatio()); + s_pauseOffPixmap.setDevicePixelRatio(devicePixelRatio()); + pauseButton->setActiveGraphic(s_pauseOnPixmap); + pauseButton->setInactiveGraphic(s_pauseOffPixmap); pauseButton->setCheckable(true); pauseButton->setModel(&controls->m_pauseModel); config_layout->addWidget(pauseButton, 0, 0, 2, 1, Qt::AlignHCenter); auto refFreezeButton = new PixmapButton(this, tr("Reference freeze")); refFreezeButton->setToolTip(tr("Freeze current input as a reference / disable falloff in peak-hold mode.")); - auto freezeOnPixmap = new QPixmap( - PLUGIN_NAME::getIconPixmap("freeze").scaled(buttonSize, Qt::IgnoreAspectRatio, Qt::SmoothTransformation)); - auto freezeOffPixmap = new QPixmap( - PLUGIN_NAME::getIconPixmap("freeze_off").scaled(buttonSize, Qt::IgnoreAspectRatio, Qt::SmoothTransformation)); - freezeOnPixmap->setDevicePixelRatio(devicePixelRatio()); - freezeOffPixmap->setDevicePixelRatio(devicePixelRatio()); - refFreezeButton->setActiveGraphic(*freezeOnPixmap); - refFreezeButton->setInactiveGraphic(*freezeOffPixmap); + static auto s_freezeOnPixmap + = PLUGIN_NAME::getIconPixmap("freeze").scaled(buttonSize, Qt::IgnoreAspectRatio, Qt::SmoothTransformation); + static auto s_freezeOffPixmap + = PLUGIN_NAME::getIconPixmap("freeze_off").scaled(buttonSize, Qt::IgnoreAspectRatio, Qt::SmoothTransformation); + s_freezeOnPixmap.setDevicePixelRatio(devicePixelRatio()); + s_freezeOffPixmap.setDevicePixelRatio(devicePixelRatio()); + refFreezeButton->setActiveGraphic(s_freezeOnPixmap); + refFreezeButton->setInactiveGraphic(s_freezeOffPixmap); refFreezeButton->setCheckable(true); refFreezeButton->setModel(&controls->m_refFreezeModel); config_layout->addWidget(refFreezeButton, 2, 0, 2, 1, Qt::AlignHCenter); @@ -119,42 +119,42 @@ SaControlsDialog::SaControlsDialog(SaControls *controls, SaProcessor *processor) auto waterfallButton = new LedCheckBox(tr("Waterfall"), this); waterfallButton->setToolTip(tr("Display real-time spectrogram")); waterfallButton->setCheckable(true); - waterfallButton->setMinimumSize(70, 12); + waterfallButton->setMinimumSize(100, 12); waterfallButton->setModel(&controls->m_waterfallModel); config_layout->addWidget(waterfallButton, 0, 1); auto smoothButton = new LedCheckBox(tr("Averaging"), this); smoothButton->setToolTip(tr("Enable exponential moving average")); smoothButton->setCheckable(true); - smoothButton->setMinimumSize(70, 12); + smoothButton->setMinimumSize(100, 12); smoothButton->setModel(&controls->m_smoothModel); config_layout->addWidget(smoothButton, 1, 1); auto stereoButton = new LedCheckBox(tr("Stereo"), this); stereoButton->setToolTip(tr("Display stereo channels separately")); stereoButton->setCheckable(true); - stereoButton->setMinimumSize(70, 12); + stereoButton->setMinimumSize(100, 12); stereoButton->setModel(&controls->m_stereoModel); config_layout->addWidget(stereoButton, 2, 1); auto peakHoldButton = new LedCheckBox(tr("Peak hold"), this); peakHoldButton->setToolTip(tr("Display envelope of peak values")); peakHoldButton->setCheckable(true); - peakHoldButton->setMinimumSize(70, 12); + peakHoldButton->setMinimumSize(100, 12); peakHoldButton->setModel(&controls->m_peakHoldModel); config_layout->addWidget(peakHoldButton, 3, 1); // frequency: linear / log. switch and range selector auto logXButton = new PixmapButton(this, tr("Logarithmic frequency")); logXButton->setToolTip(tr("Switch between logarithmic and linear frequency scale")); - auto logXOnPixmap = new QPixmap( - PLUGIN_NAME::getIconPixmap("x_log").scaled(iconSize, Qt::IgnoreAspectRatio, Qt::SmoothTransformation)); - auto logXOffPixmap = new QPixmap( - PLUGIN_NAME::getIconPixmap("x_linear").scaled(iconSize, Qt::IgnoreAspectRatio, Qt::SmoothTransformation)); - logXOnPixmap->setDevicePixelRatio(devicePixelRatio()); - logXOffPixmap->setDevicePixelRatio(devicePixelRatio()); - logXButton->setActiveGraphic(*logXOnPixmap); - logXButton->setInactiveGraphic(*logXOffPixmap); + static auto s_logXOnPixmap + = PLUGIN_NAME::getIconPixmap("x_log").scaled(iconSize, Qt::IgnoreAspectRatio, Qt::SmoothTransformation); + static auto s_logXOffPixmap + = PLUGIN_NAME::getIconPixmap("x_linear").scaled(iconSize, Qt::IgnoreAspectRatio, Qt::SmoothTransformation); + s_logXOnPixmap.setDevicePixelRatio(devicePixelRatio()); + s_logXOffPixmap.setDevicePixelRatio(devicePixelRatio()); + logXButton->setActiveGraphic(s_logXOnPixmap); + logXButton->setInactiveGraphic(s_logXOffPixmap); logXButton->setCheckable(true); logXButton->setModel(&controls->m_logXModel); config_layout->addWidget(logXButton, 0, 2, 2, 1, Qt::AlignRight); @@ -169,14 +169,14 @@ SaControlsDialog::SaControlsDialog(SaControls *controls, SaProcessor *processor) // amplitude: linear / log switch and range selector auto logYButton = new PixmapButton(this, tr("Logarithmic amplitude")); logYButton->setToolTip(tr("Switch between logarithmic and linear amplitude scale")); - auto logYOnPixmap = new QPixmap( - PLUGIN_NAME::getIconPixmap("y_log").scaled(iconSize, Qt::IgnoreAspectRatio, Qt::SmoothTransformation)); - auto logYOffPixmap = new QPixmap( - PLUGIN_NAME::getIconPixmap("y_linear").scaled(iconSize, Qt::IgnoreAspectRatio, Qt::SmoothTransformation)); - logYOnPixmap->setDevicePixelRatio(devicePixelRatio()); - logYOffPixmap->setDevicePixelRatio(devicePixelRatio()); - logYButton->setActiveGraphic(*logYOnPixmap); - logYButton->setInactiveGraphic(*logYOffPixmap); + static auto s_logYOnPixmap + = PLUGIN_NAME::getIconPixmap("y_log").scaled(iconSize, Qt::IgnoreAspectRatio, Qt::SmoothTransformation); + static auto s_logYOffPixmap + = PLUGIN_NAME::getIconPixmap("y_linear").scaled(iconSize, Qt::IgnoreAspectRatio, Qt::SmoothTransformation); + s_logYOnPixmap.setDevicePixelRatio(devicePixelRatio()); + s_logYOffPixmap.setDevicePixelRatio(devicePixelRatio()); + logYButton->setActiveGraphic(s_logYOnPixmap); + logYButton->setInactiveGraphic(s_logYOffPixmap); logYButton->setCheckable(true); logYButton->setModel(&controls->m_logYModel); config_layout->addWidget(logYButton, 2, 2, 2, 1, Qt::AlignRight); @@ -190,9 +190,9 @@ SaControlsDialog::SaControlsDialog(SaControls *controls, SaProcessor *processor) // FFT: block size: icon and selector auto blockSizeLabel = new QLabel("", this); - auto blockSizeIcon = new QPixmap(PLUGIN_NAME::getIconPixmap("block_size")); - blockSizeIcon->setDevicePixelRatio(devicePixelRatio()); - blockSizeLabel->setPixmap(blockSizeIcon->scaled(iconSize, Qt::IgnoreAspectRatio, Qt::SmoothTransformation)); + static auto s_blockSizeIcon = PLUGIN_NAME::getIconPixmap("block_size"); + s_blockSizeIcon.setDevicePixelRatio(devicePixelRatio()); + blockSizeLabel->setPixmap(s_blockSizeIcon.scaled(iconSize, Qt::IgnoreAspectRatio, Qt::SmoothTransformation)); config_layout->addWidget(blockSizeLabel, 0, 4, 2, 1, Qt::AlignRight); auto blockSizeCombo = new ComboBox(this, tr("FFT block size")); @@ -206,9 +206,9 @@ SaControlsDialog::SaControlsDialog(SaControls *controls, SaProcessor *processor) // FFT: window type: icon and selector auto windowLabel = new QLabel("", this); - auto windowIcon = new QPixmap(PLUGIN_NAME::getIconPixmap("window")); - windowIcon->setDevicePixelRatio(devicePixelRatio()); - windowLabel->setPixmap(windowIcon->scaled(iconSize, Qt::IgnoreAspectRatio, Qt::SmoothTransformation)); + static auto s_windowIcon = PLUGIN_NAME::getIconPixmap("window"); + s_windowIcon.setDevicePixelRatio(devicePixelRatio()); + windowLabel->setPixmap(s_windowIcon.scaled(iconSize, Qt::IgnoreAspectRatio, Qt::SmoothTransformation)); config_layout->addWidget(windowLabel, 2, 4, 2, 1, Qt::AlignRight); auto windowCombo = new ComboBox(this, tr("FFT window type")); @@ -307,14 +307,14 @@ SaControlsDialog::SaControlsDialog(SaControls *controls, SaProcessor *processor) // Advanced settings button auto advancedButton = new PixmapButton(this, tr("Advanced settings")); advancedButton->setToolTip(tr("Access advanced settings")); - auto advancedOnPixmap = new QPixmap(PLUGIN_NAME::getIconPixmap("advanced_on") - .scaled(advButtonSize, Qt::IgnoreAspectRatio, Qt::SmoothTransformation)); - auto advancedOffPixmap = new QPixmap(PLUGIN_NAME::getIconPixmap("advanced_off") - .scaled(advButtonSize, Qt::IgnoreAspectRatio, Qt::SmoothTransformation)); - advancedOnPixmap->setDevicePixelRatio(devicePixelRatio()); - advancedOffPixmap->setDevicePixelRatio(devicePixelRatio()); - advancedButton->setActiveGraphic(*advancedOnPixmap); - advancedButton->setInactiveGraphic(*advancedOffPixmap); + static auto s_advancedOnPixmap = PLUGIN_NAME::getIconPixmap("advanced_on") + .scaled(advButtonSize, Qt::IgnoreAspectRatio, Qt::SmoothTransformation); + static auto s_advancedOffPixmap = PLUGIN_NAME::getIconPixmap("advanced_off") + .scaled(advButtonSize, Qt::IgnoreAspectRatio, Qt::SmoothTransformation); + s_advancedOnPixmap.setDevicePixelRatio(devicePixelRatio()); + s_advancedOffPixmap.setDevicePixelRatio(devicePixelRatio()); + advancedButton->setActiveGraphic(s_advancedOnPixmap); + advancedButton->setInactiveGraphic(s_advancedOffPixmap); advancedButton->setCheckable(true); controls_layout->addStretch(0); controls_layout->addWidget(advancedButton); diff --git a/plugins/SpectrumAnalyzer/SaProcessor.cpp b/plugins/SpectrumAnalyzer/SaProcessor.cpp index a79d52bdc08..d9e7ac8a494 100644 --- a/plugins/SpectrumAnalyzer/SaProcessor.cpp +++ b/plugins/SpectrumAnalyzer/SaProcessor.cpp @@ -41,6 +41,9 @@ #include "LocklessRingBuffer.h" #include "SaControls.h" +#include +#include + namespace lmms { @@ -50,7 +53,7 @@ SaProcessor::SaProcessor(const SaControls *controls) : m_terminate(false), m_inBlockSize(FFT_BLOCK_SIZES[0]), m_fftBlockSize(FFT_BLOCK_SIZES[0]), - m_sampleRate(Engine::audioEngine()->processingSampleRate()), + m_sampleRate(Engine::audioEngine()->outputSampleRate()), m_framesFilledUp(0), m_spectrumActive(false), m_waterfallActive(false), @@ -95,9 +98,9 @@ SaProcessor::~SaProcessor() // Load data from audio thread ringbuffer and run FFT analysis if buffer is full enough. -void SaProcessor::analyze(LocklessRingBuffer &ring_buffer) +void SaProcessor::analyze(LocklessRingBuffer &ring_buffer) { - LocklessRingBufferReader reader(ring_buffer); + LocklessRingBufferReader reader(ring_buffer); // Processing thread loop while (!m_terminate) @@ -163,7 +166,7 @@ void SaProcessor::analyze(LocklessRingBuffer &ring_buffer) #endif // update sample rate - m_sampleRate = Engine::audioEngine()->processingSampleRate(); + m_sampleRate = Engine::audioEngine()->outputSampleRate(); // apply FFT window for (unsigned int i = 0; i < m_inBlockSize; i++) @@ -206,7 +209,6 @@ void SaProcessor::analyze(LocklessRingBuffer &ring_buffer) memset(pixel, 0, waterfallWidth() * sizeof (QRgb)); // add newest result on top - int target; // pixel being constructed float accL = 0; // accumulators for merging multiple bins float accR = 0; for (unsigned int i = 0; i < binCount(); i++) @@ -230,7 +232,8 @@ void SaProcessor::analyze(LocklessRingBuffer &ring_buffer) if (band_end - band_start > 1.0) { // band spans multiple pixels: draw all pixels it covers - for (target = std::max((int)band_start, 0); target < band_end && target < waterfallWidth(); target++) + for (auto target = static_cast(std::max(band_start, 0.f)); + target < band_end && target < waterfallWidth(); target++) { pixel[target] = makePixel(m_normSpectrumL[i], m_normSpectrumR[i]); } @@ -242,7 +245,7 @@ void SaProcessor::analyze(LocklessRingBuffer &ring_buffer) else { // sub-pixel drawing; add contribution of current band - target = (int)band_start; + int target = static_cast(band_start); if ((int)band_start == (int)band_end) { // band ends within current target pixel, accumulate @@ -256,7 +259,9 @@ void SaProcessor::analyze(LocklessRingBuffer &ring_buffer) accL += ((int)band_end - band_start) * m_normSpectrumL[i]; accR += ((int)band_end - band_start) * m_normSpectrumR[i]; - if (target >= 0 && target < waterfallWidth()) {pixel[target] = makePixel(accL, accR);} + if (target >= 0 && static_cast(target) < waterfallWidth()) { + pixel[target] = makePixel(accL, accR); + } // save remaining portion of the band for the following band / pixel accL = (band_end - (int)band_end) * m_normSpectrumL[i]; @@ -267,7 +272,8 @@ void SaProcessor::analyze(LocklessRingBuffer &ring_buffer) else { // Linear: always draws one or more pixels per band - for (target = std::max((int)band_start, 0); target < band_end && target < waterfallWidth(); target++) + for (auto target = static_cast(std::max(band_start, 0.f)); + target < band_end && target < waterfallWidth(); target++) { pixel[target] = makePixel(m_normSpectrumL[i], m_normSpectrumR[i]); } @@ -358,30 +364,20 @@ void SaProcessor::setWaterfallActive(bool active) // Reallocate data buffers according to newly set block size. void SaProcessor::reallocateBuffers() { - unsigned int new_size_index = m_controls->m_blockSizeModel.value(); - unsigned int new_in_size, new_fft_size; - unsigned int new_bins; + m_zeroPadFactor = m_controls->m_zeroPaddingModel.value(); // get new block sizes and bin count based on selected index - if (new_size_index < FFT_BLOCK_SIZES.size()) - { - new_in_size = FFT_BLOCK_SIZES[new_size_index]; - } - else - { - new_in_size = FFT_BLOCK_SIZES.back(); - } - m_zeroPadFactor = m_controls->m_zeroPaddingModel.value(); - if (new_size_index + m_zeroPadFactor < FFT_BLOCK_SIZES.size()) - { - new_fft_size = FFT_BLOCK_SIZES[new_size_index + m_zeroPadFactor]; - } - else - { - new_fft_size = FFT_BLOCK_SIZES.back(); - } + const unsigned int new_size_index = m_controls->m_blockSizeModel.value(); + + const unsigned int new_in_size = new_size_index < FFT_BLOCK_SIZES.size() + ? FFT_BLOCK_SIZES[new_size_index] + : FFT_BLOCK_SIZES.back(); + + const unsigned int new_fft_size = (new_size_index + m_zeroPadFactor < FFT_BLOCK_SIZES.size()) + ? FFT_BLOCK_SIZES[new_size_index + m_zeroPadFactor] + : FFT_BLOCK_SIZES.back(); - new_bins = new_fft_size / 2 +1; + const unsigned int new_bins = new_fft_size / 2 + 1; // Use m_reallocating to tell analyze() to avoid asking for the lock. This // is needed because under heavy load the FFT thread requests data lock so @@ -650,7 +646,8 @@ float SaProcessor::ampToYPixel(float amplitude, unsigned int height) const if (m_controls->m_logYModel.value()) { // logarithmic scale: convert linear amplitude to dB (relative to 1.0) - float amplitude_dB = 10 * log10(amplitude); + assert (amplitude >= 0); + float amplitude_dB = 10 * std::log10(std::max(amplitude, std::numeric_limits::min())); if (amplitude_dB < getAmpRangeMin()) { return height; diff --git a/plugins/SpectrumAnalyzer/SaProcessor.h b/plugins/SpectrumAnalyzer/SaProcessor.h index 66b79788d26..3903bf9d6a4 100644 --- a/plugins/SpectrumAnalyzer/SaProcessor.h +++ b/plugins/SpectrumAnalyzer/SaProcessor.h @@ -43,7 +43,7 @@ template class LocklessRingBuffer; class SaControls; - +class SampleFrame; //! Receives audio data, runs FFT analysis and stores the result. @@ -54,7 +54,7 @@ class SaProcessor virtual ~SaProcessor(); // analysis thread and a method to terminate it - void analyze(LocklessRingBuffer &ring_buffer); + void analyze(LocklessRingBuffer &ring_buffer); void terminate() {m_terminate = true;} // inform processor if any processing is actually required diff --git a/plugins/SpectrumAnalyzer/SaSpectrumView.cpp b/plugins/SpectrumAnalyzer/SaSpectrumView.cpp index 0d9c2af87a2..2d15da7f47b 100644 --- a/plugins/SpectrumAnalyzer/SaSpectrumView.cpp +++ b/plugins/SpectrumAnalyzer/SaSpectrumView.cpp @@ -302,7 +302,7 @@ void SaSpectrumView::refreshPaths() // part new, part old. At reasonable frame rate, such difference is invisible.. void SaSpectrumView::updateBuffers(const float *spectrum, float *displayBuffer, float *peakBuffer) { - for (int n = 0; n < m_processor->binCount(); n++) + for (auto n = std::size_t{0}; n < m_processor->binCount(); n++) { // Update the exponential average if enabled, or simply copy the value. if (!m_controls->m_pauseModel.value()) @@ -647,14 +647,13 @@ float SaSpectrumView::ampToYPixel(float amplitude, unsigned int height) std::vector> SaSpectrumView::makeLogFreqTics(int low, int high) { std::vector> result; - int i, j; auto a = std::array{10, 20, 50}; // sparse series multipliers auto b = std::array{14, 30, 70}; // additional (denser) series // generate main steps (powers of 10); use the series to specify smaller steps - for (i = 1; i <= high; i *= 10) + for (int i = 1; i <= high; i *= 10) { - for (j = 0; j < 3; j++) + for (int j = 0; j < 3; j++) { // insert a label from sparse series if it falls within bounds if (i * a[j] >= low && i * a[j] <= high) @@ -691,7 +690,7 @@ std::vector> SaSpectrumView::makeLogFreqTics(int low std::vector> SaSpectrumView::makeLinearFreqTics(int low, int high) { std::vector> result; - int i, increment; + int increment; // select a suitable increment based on zoom level if (high - low < 500) {increment = 50;} @@ -700,7 +699,7 @@ std::vector> SaSpectrumView::makeLinearFreqTics(int else {increment = 2000;} // generate steps based on increment, starting at 0 - for (i = 0; i <= high; i += increment) + for (int i = 0; i <= high; i += increment) { if (i >= low) { @@ -724,7 +723,6 @@ std::vector> SaSpectrumView::makeLinearFreqTics(int std::vector> SaSpectrumView::makeLogAmpTics(int low, int high) { std::vector> result; - float i; double increment; // Base zoom level on selected range and how close is the current height @@ -744,7 +742,7 @@ std::vector> SaSpectrumView::makeLogAmpTics(int lo // Generate n dB increments, start checking at -90 dB. Limits are tweaked // just a little bit to make sure float comparisons do not miss edges. - for (i = 0.000000001; 10 * log10(i) <= (high + 0.001); i *= increment) + for (float i = 0.000000001f; 10 * log10(i) <= (high + 0.001); i *= increment) { if (10 * log10(i) >= (low - 0.001)) { @@ -764,8 +762,6 @@ std::vector> SaSpectrumView::makeLogAmpTics(int lo std::vector> SaSpectrumView::makeLinearAmpTics(int low, int high) { std::vector> result; - double i, nearest; - // make about 5 labels when window is small, 10 if it is big float split = (float)height() / sizeHint().height() >= 1.5 ? 10.0 : 5.0; @@ -777,28 +773,28 @@ std::vector> SaSpectrumView::makeLinearAmpTics(int // multiples, just generate a few evenly spaced increments across the range, // paying attention only to the decimal places to keep labels short. // Limits are shifted a bit so that float comparisons do not miss edges. - for (i = 0; i <= (lin_high + 0.0001); i += (lin_high - lin_low) / split) + for (double i = 0; i <= (lin_high + 0.0001); i += (lin_high - lin_low) / split) { if (i >= (lin_low - 0.0001)) { if (i >= 9.99 && i < 99.9) { - nearest = std::round(i); + double nearest = std::round(i); result.emplace_back(nearest, std::to_string(nearest).substr(0, 2)); } else if (i >= 0.099) { // also covers numbers above 100 - nearest = std::round(i * 10) / 10; + double nearest = std::round(i * 10) / 10; result.emplace_back(nearest, std::to_string(nearest).substr(0, 3)); } else if (i >= 0.0099) { - nearest = std::round(i * 1000) / 1000; + double nearest = std::round(i * 1000) / 1000; result.emplace_back(nearest, std::to_string(nearest).substr(0, 4)); } else if (i >= 0.00099) { - nearest = std::round(i * 10000) / 10000; + double nearest = std::round(i * 10000) / 10000; result.emplace_back(nearest, std::to_string(nearest).substr(1, 4)); } else if (i > -0.01 && i < 0.01) diff --git a/plugins/SpectrumAnalyzer/SaWaterfallView.cpp b/plugins/SpectrumAnalyzer/SaWaterfallView.cpp index 598bad72551..5169a4b499f 100644 --- a/plugins/SpectrumAnalyzer/SaWaterfallView.cpp +++ b/plugins/SpectrumAnalyzer/SaWaterfallView.cpp @@ -213,17 +213,15 @@ float SaWaterfallView::yPixelToTime(float position, int height) std::vector> SaWaterfallView::makeTimeTics() { std::vector> result; - float i; // get time value of the last line float limit = yPixelToTime(m_displayBottom, m_displayHeight); // set increment to about 30 pixels (but min. 0.1 s) - float increment = std::round(10 * limit / (m_displayHeight / 30)) / 10; - if (increment < 0.1) {increment = 0.1;} + const float increment = std::max(std::round(10 * limit / (m_displayHeight / 30)) / 10, 0.1f); // NOTE: labels positions are rounded to match the (rounded) label value - for (i = 0; i <= limit; i += increment) + for (float i = 0; i <= limit; i += increment) { if (i > 99) { diff --git a/plugins/StereoEnhancer/StereoEnhancer.cpp b/plugins/StereoEnhancer/StereoEnhancer.cpp index a7937a2ec1d..f0cf830c52e 100644 --- a/plugins/StereoEnhancer/StereoEnhancer.cpp +++ b/plugins/StereoEnhancer/StereoEnhancer.cpp @@ -58,7 +58,7 @@ StereoEnhancerEffect::StereoEnhancerEffect( const Descriptor::SubPluginFeatures::Key * _key ) : Effect( &stereoenhancer_plugin_descriptor, _parent, _key ), m_seFX( DspEffectLibrary::StereoEnhancer( 0.0f ) ), - m_delayBuffer( new sampleFrame[DEFAULT_BUFFER_SIZE] ), + m_delayBuffer( new SampleFrame[DEFAULT_BUFFER_SIZE] ), m_currFrame( 0 ), m_bbControls( this ) { @@ -82,38 +82,23 @@ StereoEnhancerEffect::~StereoEnhancerEffect() -bool StereoEnhancerEffect::processAudioBuffer( sampleFrame * _buf, - const fpp_t _frames ) +Effect::ProcessStatus StereoEnhancerEffect::processImpl(SampleFrame* buf, const fpp_t frames) { - - // This appears to be used for determining whether or not to continue processing - // audio with this effect - double out_sum = 0.0; - - float width; - int frameIndex = 0; - - - if( !isEnabled() || !isRunning() ) - { - return( false ); - } - const float d = dryLevel(); const float w = wetLevel(); - for( fpp_t f = 0; f < _frames; ++f ) + for (fpp_t f = 0; f < frames; ++f) { // copy samples into the delay buffer - m_delayBuffer[m_currFrame][0] = _buf[f][0]; - m_delayBuffer[m_currFrame][1] = _buf[f][1]; + m_delayBuffer[m_currFrame][0] = buf[f][0]; + m_delayBuffer[m_currFrame][1] = buf[f][1]; // Get the width knob value from the Stereo Enhancer effect - width = m_seFX.wideCoeff(); + float width = m_seFX.wideCoeff(); // Calculate the correct sample frame for processing - frameIndex = m_currFrame - width; + int frameIndex = m_currFrame - width; if( frameIndex < 0 ) { @@ -121,27 +106,25 @@ bool StereoEnhancerEffect::processAudioBuffer( sampleFrame * _buf, frameIndex += DEFAULT_BUFFER_SIZE; } - //sample_t s[2] = { _buf[f][0], _buf[f][1] }; //Vanilla - auto s = std::array{_buf[f][0], m_delayBuffer[frameIndex][1]}; //Chocolate + //sample_t s[2] = { buf[f][0], buf[f][1] }; //Vanilla + auto s = std::array{buf[f][0], m_delayBuffer[frameIndex][1]}; //Chocolate m_seFX.nextSample( s[0], s[1] ); - _buf[f][0] = d * _buf[f][0] + w * s[0]; - _buf[f][1] = d * _buf[f][1] + w * s[1]; - out_sum += _buf[f][0]*_buf[f][0] + _buf[f][1]*_buf[f][1]; + buf[f][0] = d * buf[f][0] + w * s[0]; + buf[f][1] = d * buf[f][1] + w * s[1]; // Update currFrame m_currFrame += 1; m_currFrame %= DEFAULT_BUFFER_SIZE; } - checkGate( out_sum / _frames ); if( !isRunning() ) { clearMyBuffer(); } - return( isRunning() ); + return ProcessStatus::ContinueIfNotQuiet; } @@ -149,8 +132,7 @@ bool StereoEnhancerEffect::processAudioBuffer( sampleFrame * _buf, void StereoEnhancerEffect::clearMyBuffer() { - int i; - for (i = 0; i < DEFAULT_BUFFER_SIZE; i++) + for (auto i = std::size_t{0}; i < DEFAULT_BUFFER_SIZE; i++) { m_delayBuffer[i][0] = 0.0f; m_delayBuffer[i][1] = 0.0f; diff --git a/plugins/StereoEnhancer/StereoEnhancer.h b/plugins/StereoEnhancer/StereoEnhancer.h index 5872100d35d..3e27330add1 100644 --- a/plugins/StereoEnhancer/StereoEnhancer.h +++ b/plugins/StereoEnhancer/StereoEnhancer.h @@ -40,8 +40,8 @@ class StereoEnhancerEffect : public Effect StereoEnhancerEffect( Model * parent, const Descriptor::SubPluginFeatures::Key * _key ); ~StereoEnhancerEffect() override; - bool processAudioBuffer( sampleFrame * _buf, - const fpp_t _frames ) override; + + ProcessStatus processImpl(SampleFrame* buf, const fpp_t frames) override; EffectControls * controls() override { @@ -54,7 +54,7 @@ class StereoEnhancerEffect : public Effect private: DspEffectLibrary::StereoEnhancer m_seFX; - sampleFrame * m_delayBuffer; + SampleFrame* m_delayBuffer; int m_currFrame; StereoEnhancerControls m_bbControls; diff --git a/plugins/StereoMatrix/StereoMatrix.cpp b/plugins/StereoMatrix/StereoMatrix.cpp index b96d2e10791..038b560594b 100644 --- a/plugins/StereoMatrix/StereoMatrix.cpp +++ b/plugins/StereoMatrix/StereoMatrix.cpp @@ -64,44 +64,29 @@ StereoMatrixEffect::StereoMatrixEffect( -bool StereoMatrixEffect::processAudioBuffer( sampleFrame * _buf, - const fpp_t _frames ) +Effect::ProcessStatus StereoMatrixEffect::processImpl(SampleFrame* buf, const fpp_t frames) { - - // This appears to be used for determining whether or not to continue processing - // audio with this effect - if( !isEnabled() || !isRunning() ) - { - return( false ); - } - - double out_sum = 0.0; - - for( fpp_t f = 0; f < _frames; ++f ) + for (fpp_t f = 0; f < frames; ++f) { const float d = dryLevel(); const float w = wetLevel(); - sample_t l = _buf[f][0]; - sample_t r = _buf[f][1]; + sample_t l = buf[f][0]; + sample_t r = buf[f][1]; // Init with dry-mix - _buf[f][0] = l * d; - _buf[f][1] = r * d; + buf[f][0] = l * d; + buf[f][1] = r * d; // Add it wet - _buf[f][0] += ( m_smControls.m_llModel.value( f ) * l + + buf[f][0] += ( m_smControls.m_llModel.value( f ) * l + m_smControls.m_rlModel.value( f ) * r ) * w; - _buf[f][1] += ( m_smControls.m_lrModel.value( f ) * l + + buf[f][1] += ( m_smControls.m_lrModel.value( f ) * l + m_smControls.m_rrModel.value( f ) * r ) * w; - out_sum += _buf[f][0]*_buf[f][0] + _buf[f][1]*_buf[f][1]; - } - checkGate( out_sum / _frames ); - - return( isRunning() ); + return ProcessStatus::ContinueIfNotQuiet; } diff --git a/plugins/StereoMatrix/StereoMatrix.h b/plugins/StereoMatrix/StereoMatrix.h index ae7a59724d3..2b2b22f1aec 100644 --- a/plugins/StereoMatrix/StereoMatrix.h +++ b/plugins/StereoMatrix/StereoMatrix.h @@ -39,8 +39,8 @@ class StereoMatrixEffect : public Effect StereoMatrixEffect( Model * parent, const Descriptor::SubPluginFeatures::Key * _key ); ~StereoMatrixEffect() override = default; - bool processAudioBuffer( sampleFrame * _buf, - const fpp_t _frames ) override; + + ProcessStatus processImpl(SampleFrame* buf, const fpp_t frames) override; EffectControls* controls() override { diff --git a/plugins/Stk/Mallets/Mallets.cpp b/plugins/Stk/Mallets/Mallets.cpp index dd3b094940f..00ddbf422fb 100644 --- a/plugins/Stk/Mallets/Mallets.cpp +++ b/plugins/Stk/Mallets/Mallets.cpp @@ -37,7 +37,6 @@ #include "AudioEngine.h" #include "ConfigManager.h" #include "Engine.h" -#include "gui_templates.h" #include "GuiApplication.h" #include "InstrumentTrack.h" @@ -85,7 +84,7 @@ MalletsInstrument::MalletsInstrument( InstrumentTrack * _instrument_track ): // TODO: m_vibratoModel m_velocityModel(64.0f, 0.1f, 128.0f, 0.1f, this, tr( "Speed" )), m_strikeModel( true, this, tr( "Bowed" ) ), - m_presetsModel(this), + m_presetsModel(this, tr("Instrument")), m_spreadModel(0, 0, 255, 1, this, tr( "Spread" )), m_randomModel(0.0f, 0.0f, 1.0f, 0.01f, this, tr("Randomness")), m_versionModel( MALLETS_PRESET_VERSION, 0, MALLETS_PRESET_VERSION, this, "" ), @@ -115,7 +114,7 @@ MalletsInstrument::MalletsInstrument( InstrumentTrack * _instrument_track ): // TubeBell m_presetsModel.addItem( tr( "Tubular bells" ) ); - m_scalers.append( 1.8 ); + m_scalers.append(1.8f); // BandedWG m_presetsModel.addItem( tr( "Uniform bar" ) ); @@ -279,7 +278,7 @@ QString MalletsInstrument::nodeName() const void MalletsInstrument::playNote( NotePlayHandle * _n, - sampleFrame * _working_buffer ) + SampleFrame* _working_buffer ) { if( m_filesMissing ) { @@ -343,7 +342,7 @@ void MalletsInstrument::playNote( NotePlayHandle * _n, m_vibratoFreqModel.value(), p, (uint8_t) m_spreadModel.value(), - Engine::audioEngine()->processingSampleRate() ); + Engine::audioEngine()->outputSampleRate() ); } else if( p == 9 ) { @@ -356,7 +355,7 @@ void MalletsInstrument::playNote( NotePlayHandle * _n, m_lfoSpeedModel.value(), m_adsrModel.value(), (uint8_t) m_spreadModel.value(), - Engine::audioEngine()->processingSampleRate() ); + Engine::audioEngine()->outputSampleRate() ); } else { @@ -369,7 +368,7 @@ void MalletsInstrument::playNote( NotePlayHandle * _n, m_strikeModel.value() * 128.0, speed, (uint8_t) m_spreadModel.value(), - Engine::audioEngine()->processingSampleRate() ); + Engine::audioEngine()->outputSampleRate() ); } m.unlock(); static_cast(_n->m_pluginData)->setPresetIndex(p); @@ -450,7 +449,6 @@ MalletsInstrumentView::MalletsInstrumentView( MalletsInstrument * _instrument, m_presetsCombo = new ComboBox( this, tr( "Instrument" ) ); m_presetsCombo->setGeometry( 140, 50, 99, ComboBox::DEFAULT_HEIGHT ); - m_presetsCombo->setFont( pointSize<8>( m_presetsCombo->font() ) ); connect( &_instrument->m_presetsModel, SIGNAL( dataChanged() ), this, SLOT( changePreset() ) ); diff --git a/plugins/Stk/Mallets/Mallets.h b/plugins/Stk/Mallets/Mallets.h index 91e2dfce140..cf05ace6688 100644 --- a/plugins/Stk/Mallets/Mallets.h +++ b/plugins/Stk/Mallets/Mallets.h @@ -189,7 +189,7 @@ class MalletsInstrument : public Instrument ~MalletsInstrument() override = default; void playNote( NotePlayHandle * _n, - sampleFrame * _working_buffer ) override; + SampleFrame* _working_buffer ) override; void deleteNotePluginData( NotePlayHandle * _n ) override; diff --git a/plugins/TapTempo/TapTempoView.cpp b/plugins/TapTempo/TapTempoView.cpp index d6c24fcf550..ed451eaa50e 100644 --- a/plugins/TapTempo/TapTempoView.cpp +++ b/plugins/TapTempo/TapTempoView.cpp @@ -35,6 +35,7 @@ #include #include "Engine.h" +#include "FontHelper.h" #include "SamplePlayHandle.h" #include "Song.h" #include "TapTempo.h" @@ -47,11 +48,10 @@ TapTempoView::TapTempoView(TapTempo* plugin) setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); auto font = QFont(); - font.setPointSize(24); m_tapButton = new QPushButton(); m_tapButton->setFixedSize(200, 200); - m_tapButton->setFont(font); + m_tapButton->setFont(adjustedToPixelSize(font, 32)); m_tapButton->setText(tr("0")); auto precisionCheckBox = new QCheckBox(tr("Precision")); diff --git a/plugins/TripleOscillator/TripleOscillator.cpp b/plugins/TripleOscillator/TripleOscillator.cpp index 5b8f6e8ade6..f04cee81835 100644 --- a/plugins/TripleOscillator/TripleOscillator.cpp +++ b/plugins/TripleOscillator/TripleOscillator.cpp @@ -23,8 +23,8 @@ */ - #include +#include #include "TripleOscillator.h" #include "AudioEngine.h" @@ -35,9 +35,11 @@ #include "Knob.h" #include "NotePlayHandle.h" #include "Oscillator.h" +#include "PathUtil.h" #include "PixmapButton.h" #include "SampleBuffer.h" - +#include "SampleLoader.h" +#include "Song.h" #include "embed.h" #include "plugin_export.h" @@ -133,22 +135,13 @@ OscillatorObject::OscillatorObject( Model * _parent, int _idx ) : } - - - -OscillatorObject::~OscillatorObject() -{ - sharedObject::unref( m_sampleBuffer ); -} - - - - void OscillatorObject::oscUserDefWaveDblClick() { - QString af = m_sampleBuffer->openAndSetWaveformFile(); + auto af = gui::SampleLoader::openWaveformFile(); if( af != "" ) { + m_sampleBuffer = gui::SampleLoader::createBufferFromFile(af); + m_userAntiAliasWaveTable = Oscillator::generateAntiAliasUserWaveTable(m_sampleBuffer.get()); // TODO: //m_usrWaveBtn->setToolTip(m_sampleBuffer->audioFile()); } @@ -184,7 +177,7 @@ void OscillatorObject::updateDetuningLeft() { m_detuningLeft = powf( 2.0f, ( (float)m_coarseModel.value() * 100.0f + (float)m_fineLeftModel.value() ) / 1200.0f ) - / Engine::audioEngine()->processingSampleRate(); + / Engine::audioEngine()->outputSampleRate(); } @@ -194,7 +187,7 @@ void OscillatorObject::updateDetuningRight() { m_detuningRight = powf( 2.0f, ( (float)m_coarseModel.value() * 100.0f + (float)m_fineRightModel.value() ) / 1200.0f ) - / Engine::audioEngine()->processingSampleRate(); + / Engine::audioEngine()->outputSampleRate(); } @@ -289,8 +282,16 @@ void TripleOscillator::loadSettings( const QDomElement & _this ) "modalgo" + QString::number( i+1 ) ); m_osc[i]->m_useWaveTableModel.loadSettings( _this, "useWaveTable" + QString::number (i+1 ) ); - m_osc[i]->m_sampleBuffer->setAudioFile( _this.attribute( - "userwavefile" + is ) ); + + if (auto userWaveFile = _this.attribute("userwavefile" + is); !userWaveFile.isEmpty()) + { + if (QFileInfo(PathUtil::toAbsolute(userWaveFile)).exists()) + { + m_osc[i]->m_sampleBuffer = gui::SampleLoader::createBufferFromFile(userWaveFile); + m_osc[i]->m_userAntiAliasWaveTable = Oscillator::generateAntiAliasUserWaveTable(m_osc[i]->m_sampleBuffer.get()); + } + else { Engine::getSong()->collectError(QString("%1: %2").arg(tr("Sample not found"), userWaveFile)); } + } } } @@ -306,7 +307,7 @@ QString TripleOscillator::nodeName() const void TripleOscillator::playNote( NotePlayHandle * _n, - sampleFrame * _working_buffer ) + SampleFrame* _working_buffer ) { if (!_n->m_pluginData) { @@ -360,7 +361,8 @@ void TripleOscillator::playNote( NotePlayHandle * _n, oscs_l[i]->setUserWave( m_osc[i]->m_sampleBuffer ); oscs_r[i]->setUserWave( m_osc[i]->m_sampleBuffer ); - + oscs_l[i]->setUserAntiAliasWaveTable(m_osc[i]->m_userAntiAliasWaveTable); + oscs_r[i]->setUserAntiAliasWaveTable(m_osc[i]->m_userAntiAliasWaveTable); } _n->m_pluginData = new oscPtr; diff --git a/plugins/TripleOscillator/TripleOscillator.h b/plugins/TripleOscillator/TripleOscillator.h index f3290153b4c..fd6fc85ee3f 100644 --- a/plugins/TripleOscillator/TripleOscillator.h +++ b/plugins/TripleOscillator/TripleOscillator.h @@ -26,9 +26,13 @@ #ifndef _TRIPLE_OSCILLATOR_H #define _TRIPLE_OSCILLATOR_H +#include + #include "Instrument.h" #include "InstrumentView.h" #include "AutomatableModel.h" +#include "OscillatorConstants.h" +#include "SampleBuffer.h" namespace lmms { @@ -53,13 +57,9 @@ const int NUM_OF_OSCILLATORS = 3; class OscillatorObject : public Model { - MM_OPERATORS Q_OBJECT public: OscillatorObject( Model * _parent, int _idx ); - ~OscillatorObject() override; - - private: FloatModel m_volumeModel; FloatModel m_panModel; @@ -71,7 +71,8 @@ class OscillatorObject : public Model IntModel m_waveShapeModel; IntModel m_modulationAlgoModel; BoolModel m_useWaveTableModel; - SampleBuffer* m_sampleBuffer; + std::shared_ptr m_sampleBuffer = SampleBuffer::emptyBuffer(); + std::shared_ptr m_userAntiAliasWaveTable; float m_volumeLeft; float m_volumeRight; @@ -111,7 +112,7 @@ class TripleOscillator : public Instrument ~TripleOscillator() override = default; void playNote( NotePlayHandle * _n, - sampleFrame * _working_buffer ) override; + SampleFrame* _working_buffer ) override; void deleteNotePluginData( NotePlayHandle * _n ) override; @@ -120,9 +121,9 @@ class TripleOscillator : public Instrument QString nodeName() const override; - f_cnt_t desiredReleaseFrames() const override + float desiredReleaseTimeMs() const override { - return( 128 ); + return 3.f; } gui::PluginView* instantiateView( QWidget * _parent ) override; @@ -137,7 +138,6 @@ protected slots: struct oscPtr { - MM_OPERATORS Oscillator * oscLeft; Oscillator * oscRight; } ; @@ -168,7 +168,6 @@ class TripleOscillatorView : public InstrumentViewFixedSize struct OscillatorKnobs { - MM_OPERATORS OscillatorKnobs( Knob * v, Knob * p, Knob * c, diff --git a/plugins/Vectorscope/VecControlsDialog.cpp b/plugins/Vectorscope/VecControlsDialog.cpp index 9aa2cfd8d1f..cd280508980 100644 --- a/plugins/Vectorscope/VecControlsDialog.cpp +++ b/plugins/Vectorscope/VecControlsDialog.cpp @@ -64,7 +64,6 @@ VecControlsDialog::VecControlsDialog(VecControls *controls) : auto highQualityButton = new LedCheckBox(tr("HQ"), this); highQualityButton->setToolTip(tr("Double the resolution and simulate continuous analog-like trace.")); highQualityButton->setCheckable(true); - highQualityButton->setMinimumSize(70, 12); highQualityButton->setModel(&controls->m_highQualityModel); switch_layout->addWidget(highQualityButton); @@ -72,7 +71,6 @@ VecControlsDialog::VecControlsDialog(VecControls *controls) : auto logarithmicButton = new LedCheckBox(tr("Log. scale"), this); logarithmicButton->setToolTip(tr("Display amplitude on logarithmic scale to better see small values.")); logarithmicButton->setCheckable(true); - logarithmicButton->setMinimumSize(70, 12); logarithmicButton->setModel(&controls->m_logarithmicModel); switch_layout->addWidget(logarithmicButton); diff --git a/plugins/Vectorscope/VectorView.cpp b/plugins/Vectorscope/VectorView.cpp index f856f6429e0..a9b5e51b225 100644 --- a/plugins/Vectorscope/VectorView.cpp +++ b/plugins/Vectorscope/VectorView.cpp @@ -30,6 +30,7 @@ #include "ColorChooser.h" #include "GuiApplication.h" +#include "FontHelper.h" #include "MainWindow.h" #include "VecControls.h" @@ -37,7 +38,7 @@ namespace lmms::gui { -VectorView::VectorView(VecControls *controls, LocklessRingBuffer *inputBuffer, unsigned short displaySize, QWidget *parent) : +VectorView::VectorView(VecControls *controls, LocklessRingBuffer *inputBuffer, unsigned short displaySize, QWidget *parent) : QWidget(parent), m_controls(controls), m_inputBuffer(inputBuffer), @@ -89,7 +90,6 @@ void VectorView::paintEvent(QPaintEvent *event) painter.setRenderHint(QPainter::Antialiasing, true); QFont normalFont, boldFont; - boldFont.setPixelSize(26); boldFont.setBold(true); const int labelWidth = 26; const int labelHeight = 26; @@ -138,8 +138,6 @@ void VectorView::paintEvent(QPaintEvent *event) std::size_t frameCount = inBuffer.size(); // Draw new points on top - float left, right; - int x, y; const bool logScale = m_controls->m_logarithmicModel.value(); const unsigned short activeSize = hq ? m_displaySize : m_displaySize / 2; @@ -164,6 +162,8 @@ void VectorView::paintEvent(QPaintEvent *event) // The longer the line is, the dimmer, simulating real electron trace on luminescent screen. for (std::size_t frame = 0; frame < frameCount; frame++) { + float left = 0.0f; + float right = 0.0f; float inLeft = inBuffer[frame][0] * m_zoom; float inRight = inBuffer[frame][1] * m_zoom; // Scale left and right channel from (-1.0, 1.0) to display range @@ -185,8 +185,8 @@ void VectorView::paintEvent(QPaintEvent *event) } // Rotate display coordinates 45 degrees, flip Y axis and make sure the result stays within bounds - x = saturate(right - left + activeSize / 2.f); - y = saturate(activeSize - (right + left + activeSize / 2.f)); + int x = saturate(right - left + activeSize / 2.f); + int y = saturate(activeSize - (right + left + activeSize / 2.f)); // Estimate number of points needed to fill space between the old and new pixel. Cap at 100. unsigned char points = std::min((int)sqrt((m_oldX - x) * (m_oldX - x) + (m_oldY - y) * (m_oldY - y)), 100); @@ -222,6 +222,8 @@ void VectorView::paintEvent(QPaintEvent *event) // one full-color pixel per sample. for (std::size_t frame = 0; frame < frameCount; frame++) { + float left = 0.0f; + float right = 0.0f; float inLeft = inBuffer[frame][0] * m_zoom; float inRight = inBuffer[frame][1] * m_zoom; if (logScale) { @@ -235,8 +237,8 @@ void VectorView::paintEvent(QPaintEvent *event) left = inLeft * (activeSize - 1) / 4; right = inRight * (activeSize - 1) / 4; } - x = saturate(right - left + activeSize / 2.f); - y = saturate(activeSize - (right + left + activeSize / 2.f)); + int x = saturate(right - left + activeSize / 2.f); + int y = saturate(activeSize - (right + left + activeSize / 2.f)); ((QRgb*)m_displayBuffer.data())[x + y * activeSize] = m_controls->m_colorFG.rgb(); } } @@ -262,7 +264,7 @@ void VectorView::paintEvent(QPaintEvent *event) painter.drawLine(QPointF(centerX, centerY), QPointF(displayRight - gridCorner, displayTop + gridCorner)); painter.setPen(QPen(m_controls->m_colorLabels, 1, Qt::SolidLine, Qt::RoundCap, Qt::BevelJoin)); - painter.setFont(boldFont); + painter.setFont(adjustedToPixelSize(boldFont, 26)); painter.drawText(displayLeft + margin, displayTop, labelWidth, labelHeight, Qt::AlignLeft | Qt::AlignTop | Qt::TextDontClip, QString("L")); diff --git a/plugins/Vectorscope/VectorView.h b/plugins/Vectorscope/VectorView.h index 59ac99a7757..c828fd139e1 100644 --- a/plugins/Vectorscope/VectorView.h +++ b/plugins/Vectorscope/VectorView.h @@ -30,6 +30,7 @@ namespace lmms { class VecControls; +class SampleFrame; } //#define VEC_DEBUG @@ -43,7 +44,7 @@ class VectorView : public QWidget { Q_OBJECT public: - explicit VectorView(VecControls *controls, LocklessRingBuffer *inputBuffer, unsigned short displaySize, QWidget *parent = 0); + explicit VectorView(VecControls *controls, LocklessRingBuffer *inputBuffer, unsigned short displaySize, QWidget *parent = 0); ~VectorView() override = default; QSize sizeHint() const override {return QSize(300, 300);} @@ -59,8 +60,8 @@ private slots: private: VecControls *m_controls; - LocklessRingBuffer *m_inputBuffer; - LocklessRingBufferReader m_bufferReader; + LocklessRingBuffer *m_inputBuffer; + LocklessRingBufferReader m_bufferReader; std::vector m_displayBuffer; const unsigned short m_displaySize; diff --git a/plugins/Vectorscope/Vectorscope.cpp b/plugins/Vectorscope/Vectorscope.cpp index f843fc86d7b..106116c8469 100644 --- a/plugins/Vectorscope/Vectorscope.cpp +++ b/plugins/Vectorscope/Vectorscope.cpp @@ -58,18 +58,17 @@ Vectorscope::Vectorscope(Model *parent, const Plugin::Descriptor::SubPluginFeatu // Take audio data and store them for processing and display in the GUI thread. -bool Vectorscope::processAudioBuffer(sampleFrame *buffer, const fpp_t frame_count) +Effect::ProcessStatus Vectorscope::processImpl(SampleFrame* buf, const fpp_t frames) { - if (!isEnabled() || !isRunning ()) {return false;} - // Skip processing if the controls dialog isn't visible, it would only waste CPU cycles. if (m_controls.isViewVisible()) { // To avoid processing spikes on audio thread, data are stored in // a lockless ringbuffer and processed in a separate thread. - m_inputBuffer.write(buffer, frame_count); + m_inputBuffer.write(buf, frames); } - return isRunning(); + + return ProcessStatus::Continue; } diff --git a/plugins/Vectorscope/Vectorscope.h b/plugins/Vectorscope/Vectorscope.h index 54022ab9099..528b236905a 100644 --- a/plugins/Vectorscope/Vectorscope.h +++ b/plugins/Vectorscope/Vectorscope.h @@ -39,16 +39,17 @@ class Vectorscope : public Effect Vectorscope(Model *parent, const Descriptor::SubPluginFeatures::Key *key); ~Vectorscope() override = default; - bool processAudioBuffer(sampleFrame *buffer, const fpp_t frame_count) override; + ProcessStatus processImpl(SampleFrame* buf, const fpp_t frames) override; + EffectControls *controls() override {return &m_controls;} - LocklessRingBuffer *getBuffer() {return &m_inputBuffer;} + LocklessRingBuffer *getBuffer() {return &m_inputBuffer;} private: VecControls m_controls; // Maximum LMMS buffer size (hard coded, the actual constant is hard to get) const unsigned int m_maxBufferSize = 4096; - LocklessRingBuffer m_inputBuffer; + LocklessRingBuffer m_inputBuffer; }; diff --git a/plugins/Vestige/CMakeLists.txt b/plugins/Vestige/CMakeLists.txt index a51b051fd93..0a58478896a 100644 --- a/plugins/Vestige/CMakeLists.txt +++ b/plugins/Vestige/CMakeLists.txt @@ -1,14 +1,15 @@ -IF(LMMS_SUPPORT_VST) - INCLUDE(BuildPlugin) - LINK_DIRECTORIES("${CMAKE_CURRENT_BINARY_DIR}/..") - IF(LMMS_BUILD_LINUX) - LINK_LIBRARIES(-Wl,--enable-new-dtags) - SET(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE) - SET(CMAKE_INSTALL_RPATH "$ORIGIN") - ELSE() - SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${PLUGIN_DIR}") - ENDIF() - BUILD_PLUGIN(vestige Vestige.cpp Vestige.h MOCFILES Vestige.h EMBEDDED_RESOURCES "${CMAKE_CURRENT_SOURCE_DIR}/*.png") - TARGET_LINK_LIBRARIES(vestige vstbase) -ENDIF(LMMS_SUPPORT_VST) +if(NOT LMMS_HAVE_VST) + return() +endif() +include(BuildPlugin) +link_directories("${CMAKE_CURRENT_BINARY_DIR}/..") +if(LMMS_BUILD_LINUX) + link_libraries(-Wl,--enable-new-dtags) + set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE) + set(CMAKE_INSTALL_RPATH "$ORIGIN") +else() + set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${PLUGIN_DIR}") +endif() +build_plugin(vestige Vestige.cpp Vestige.h MOCFILES Vestige.h EMBEDDED_RESOURCES "${CMAKE_CURRENT_SOURCE_DIR}/*.png") +target_link_libraries(vestige vstbase) diff --git a/plugins/Vestige/Vestige.cpp b/plugins/Vestige/Vestige.cpp index ea4f4ade4bf..552f76406de 100644 --- a/plugins/Vestige/Vestige.cpp +++ b/plugins/Vestige/Vestige.cpp @@ -46,7 +46,7 @@ #include "Engine.h" #include "FileDialog.h" #include "GuiApplication.h" -#include "gui_templates.h" +#include "FontHelper.h" #include "InstrumentPlayHandle.h" #include "InstrumentTrack.h" #include "LocaleHelper.h" @@ -159,7 +159,7 @@ class VstInstrumentPlugin : public VstPlugin VestigeInstrument::VestigeInstrument( InstrumentTrack * _instrument_track ) : - Instrument( _instrument_track, &vestige_plugin_descriptor ), + Instrument(_instrument_track, &vestige_plugin_descriptor, nullptr, Flag::IsSingleStreamed | Flag::IsMidiBased), m_plugin( nullptr ), m_pluginMutex(), m_subWindow( nullptr ), @@ -233,7 +233,7 @@ void VestigeInstrument::loadSettings( const QDomElement & _this ) QStringList s_dumpValues; for( int i = 0; i < paramCount; i++ ) { - sprintf(paramStr.data(), "param%d", i); + std::snprintf(paramStr.data(), paramStr.size(), "param%d", i); s_dumpValues = dump[paramStr.data()].split(":"); knobFModel[i] = new FloatModel( 0.0f, 0.0f, 1.0f, 0.01f, this, QString::number(i) ); @@ -297,7 +297,7 @@ void VestigeInstrument::saveSettings( QDomDocument & _doc, QDomElement & _this ) for( int i = 0; i < paramCount; i++ ) { if (knobFModel[i]->isAutomated() || knobFModel[i]->controllerConnection()) { - sprintf(paramStr.data(), "param%d", i); + std::snprintf(paramStr.data(), paramStr.size(), "param%d", i); knobFModel[i]->saveSettings(_doc, _this, paramStr.data()); } @@ -402,7 +402,7 @@ void VestigeInstrument::loadFile( const QString & _file ) -void VestigeInstrument::play( sampleFrame * _buf ) +void VestigeInstrument::play( SampleFrame* _buf ) { if (!m_pluginMutex.tryLock(Engine::getSong()->isExporting() ? -1 : 0)) {return;} @@ -492,21 +492,11 @@ gui::PluginView * VestigeInstrument::instantiateView( QWidget * _parent ) namespace gui { -QPixmap * VestigeInstrumentView::s_artwork = nullptr; -QPixmap * ManageVestigeInstrumentView::s_artwork = nullptr; - - VestigeInstrumentView::VestigeInstrumentView( Instrument * _instrument, QWidget * _parent ) : InstrumentViewFixedSize( _instrument, _parent ), lastPosInMenu (0) { - if( s_artwork == nullptr ) - { - s_artwork = new QPixmap( PLUGIN_NAME::getIconPixmap( - "artwork" ) ); - } - m_openPluginButton = new PixmapButton( this, "" ); m_openPluginButton->setCheckable( false ); m_openPluginButton->setCursor( Qt::PointingHandCursor ); @@ -600,11 +590,10 @@ VestigeInstrumentView::VestigeInstrumentView( Instrument * _instrument, m_selPresetButton->setMenu(menu); - m_toggleGUIButton = new QPushButton( tr( "Show/hide GUI" ), this ); m_toggleGUIButton->setGeometry( 20, 130, 200, 24 ); m_toggleGUIButton->setIcon( embed::getIconPixmap( "zoom" ) ); - m_toggleGUIButton->setFont( pointSize<8>( m_toggleGUIButton->font() ) ); + m_toggleGUIButton->setFont(adjustedToPixelSize(m_toggleGUIButton->font(), LARGE_FONT_SIZE)); connect( m_toggleGUIButton, SIGNAL( clicked() ), this, SLOT( toggleGUI() ) ); @@ -613,7 +602,7 @@ VestigeInstrumentView::VestigeInstrumentView( Instrument * _instrument, this); note_off_all_btn->setGeometry( 20, 160, 200, 24 ); note_off_all_btn->setIcon( embed::getIconPixmap( "stop" ) ); - note_off_all_btn->setFont( pointSize<8>( note_off_all_btn->font() ) ); + note_off_all_btn->setFont(adjustedToPixelSize(note_off_all_btn->font(), LARGE_FONT_SIZE)); connect( note_off_all_btn, SIGNAL( clicked() ), this, SLOT( noteOffAll() ) ); @@ -888,7 +877,8 @@ void VestigeInstrumentView::paintEvent( QPaintEvent * ) { QPainter p( this ); - p.drawPixmap( 0, 0, *s_artwork ); + static auto s_artwork = PLUGIN_NAME::getIconPixmap("artwork"); + p.drawPixmap(0, 0, s_artwork); QString plugin_name = ( m_vi->m_plugin != nullptr ) ? m_vi->m_plugin->name()/* + QString::number( @@ -897,7 +887,7 @@ void VestigeInstrumentView::paintEvent( QPaintEvent * ) tr( "No VST plugin loaded" ); QFont f = p.font(); f.setBold( true ); - p.setFont( pointSize<10>( f ) ); + p.setFont(adjustedToPixelSize(f, DEFAULT_FONT_SIZE)); p.setPen( QColor( 255, 255, 255 ) ); p.drawText( 10, 100, plugin_name ); @@ -909,7 +899,7 @@ void VestigeInstrumentView::paintEvent( QPaintEvent * ) { p.setPen( QColor( 0, 0, 0 ) ); f.setBold( false ); - p.setFont( pointSize<8>( f ) ); + p.setFont(adjustedToPixelSize(f, SMALL_FONT_SIZE)); p.drawText( 10, 114, tr( "by " ) + m_vi->m_plugin->vendorString() ); p.setPen( QColor( 255, 255, 255 ) ); @@ -1004,7 +994,7 @@ ManageVestigeInstrumentView::ManageVestigeInstrumentView( Instrument * _instrume for( int i = 0; i < m_vi->paramCount; i++ ) { - sprintf(paramStr.data(), "param%d", i); + std::snprintf(paramStr.data(), paramStr.size(), "param%d", i); s_dumpValues = dump[paramStr.data()].split(":"); vstKnobs[ i ] = new CustomTextKnob( KnobType::Bright26, this, s_dumpValues.at( 1 ) ); @@ -1013,7 +1003,7 @@ ManageVestigeInstrumentView::ManageVestigeInstrumentView( Instrument * _instrume if( !hasKnobModel ) { - sprintf(paramStr.data(), "%d", i); + std::snprintf(paramStr.data(), paramStr.size(), "%d", i); m_vi->knobFModel[i] = new FloatModel(LocaleHelper::toFloat(s_dumpValues.at(2)), 0.0f, 1.0f, 0.01f, castModel(), paramStr.data()); } @@ -1069,7 +1059,6 @@ void ManageVestigeInstrumentView::syncPlugin( void ) auto paramStr = std::array{}; QStringList s_dumpValues; const QMap & dump = m_vi->m_plugin->parameterDump(); - float f_value; for( int i = 0; i < m_vi->paramCount; i++ ) { @@ -1077,9 +1066,9 @@ void ManageVestigeInstrumentView::syncPlugin( void ) // those auto-setted values are not jurnaled, tracked for undo / redo if( !( m_vi->knobFModel[ i ]->isAutomated() || m_vi->knobFModel[ i ]->controllerConnection() ) ) { - sprintf(paramStr.data(), "param%d", i); - s_dumpValues = dump[paramStr.data()].split(":"); - f_value = LocaleHelper::toFloat(s_dumpValues.at(2)); + std::snprintf(paramStr.data(), paramStr.size(), "param%d", i); + s_dumpValues = dump[paramStr.data()].split(":"); + float f_value = LocaleHelper::toFloat(s_dumpValues.at(2)); m_vi->knobFModel[ i ]->setAutomatedValue( f_value ); m_vi->knobFModel[ i ]->setInitValue( f_value ); } diff --git a/plugins/Vestige/Vestige.h b/plugins/Vestige/Vestige.h index f740913ead5..6a308ad2c20 100644 --- a/plugins/Vestige/Vestige.h +++ b/plugins/Vestige/Vestige.h @@ -61,7 +61,7 @@ class VestigeInstrument : public Instrument VestigeInstrument( InstrumentTrack * _instrument_track ); virtual ~VestigeInstrument(); - virtual void play( sampleFrame * _working_buffer ); + virtual void play( SampleFrame* _working_buffer ); virtual void saveSettings( QDomDocument & _doc, QDomElement & _parent ); virtual void loadSettings( const QDomElement & _this ); @@ -70,11 +70,6 @@ class VestigeInstrument : public Instrument virtual void loadFile( const QString & _file ); - virtual Flags flags() const - { - return Flag::IsSingleStreamed | Flag::IsMidiBased; - } - virtual bool handleMidiEvent( const MidiEvent& event, const TimePos& time, f_cnt_t offset = 0 ); virtual gui::PluginView* instantiateView( QWidget * _parent ); @@ -131,8 +126,6 @@ protected slots: private: - static QPixmap * s_artwork; - VestigeInstrument * m_vi; QWidget *widget; @@ -175,7 +168,6 @@ protected slots: private: virtual void modelChanged(); - static QPixmap * s_artwork; VestigeInstrument * m_vi; diff --git a/plugins/Vibed/Vibed.cpp b/plugins/Vibed/Vibed.cpp index ad6a3942af4..19b8ab1c06b 100644 --- a/plugins/Vibed/Vibed.cpp +++ b/plugins/Vibed/Vibed.cpp @@ -33,7 +33,6 @@ #include "InstrumentTrack.h" #include "NotePlayHandle.h" #include "VibratingString.h" -#include "MemoryManager.h" #include "base64.h" #include "CaptionMenu.h" #include "volume.h" @@ -67,18 +66,17 @@ Plugin::Descriptor PLUGIN_EXPORT vibedstrings_plugin_descriptor = class Vibed::StringContainer { - MM_OPERATORS public: StringContainer(float pitch, sample_rate_t sampleRate, int bufferLength) : m_pitch(pitch), m_sampleRate(sampleRate), m_bufferLength(bufferLength) {} ~StringContainer() = default; - void addString(int harm, float pick, float pickup, const float* impulse, float randomize, + void addString(std::size_t harm, float pick, float pickup, const float* impulse, float randomize, float stringLoss, float detune, int oversample, bool state, int id) { constexpr auto octave = std::array{0.25f, 0.5f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f}; - assert(harm >= 0 && harm < octave.size()); + assert(harm < octave.size()); m_strings[id] = VibratingString{m_pitch * octave[harm], pick, pickup, impulse, m_bufferLength, m_sampleRate, oversample, randomize, stringLoss, detune, state}; @@ -99,7 +97,7 @@ class Vibed::StringContainer }; Vibed::Vibed(InstrumentTrack* instrumentTrack) : - Instrument(instrumentTrack, &vibedstrings_plugin_descriptor) + Instrument(instrumentTrack, &vibedstrings_plugin_descriptor, nullptr, Flag::IsNotBendable) { for (int harm = 0; harm < s_stringCount; ++harm) { @@ -203,12 +201,12 @@ QString Vibed::nodeName() const return vibedstrings_plugin_descriptor.name; } -void Vibed::playNote(NotePlayHandle* n, sampleFrame* workingBuffer) +void Vibed::playNote(NotePlayHandle* n, SampleFrame* workingBuffer) { if (!n->m_pluginData) { const auto newContainer = new StringContainer{n->frequency(), - Engine::audioEngine()->processingSampleRate(), s_sampleLength}; + Engine::audioEngine()->outputSampleRate(), s_sampleLength}; n->m_pluginData = newContainer; diff --git a/plugins/Vibed/Vibed.h b/plugins/Vibed/Vibed.h index 18d334c4d5a..f02f810de58 100644 --- a/plugins/Vibed/Vibed.h +++ b/plugins/Vibed/Vibed.h @@ -57,7 +57,7 @@ class Vibed : public Instrument Vibed(InstrumentTrack* instrumentTrack); ~Vibed() override = default; - void playNote(NotePlayHandle* n, sampleFrame* workingBuffer) override; + void playNote(NotePlayHandle* n, SampleFrame* workingBuffer) override; void deleteNotePluginData(NotePlayHandle* n) override; void saveSettings(QDomDocument& doc, QDomElement& elem) override; @@ -65,8 +65,6 @@ class Vibed : public Instrument QString nodeName() const override; - Flags flags() const override { return Flag::IsNotBendable; } - gui::PluginView* instantiateView(QWidget* parent) override; private: diff --git a/plugins/Vibed/VibratingString.cpp b/plugins/Vibed/VibratingString.cpp index 44ade3c3a5c..e4bb760e255 100644 --- a/plugins/Vibed/VibratingString.cpp +++ b/plugins/Vibed/VibratingString.cpp @@ -26,6 +26,7 @@ #include "interpolation.h" #include "AudioEngine.h" #include "Engine.h" +#include "lmms_basics.h" #include #include @@ -75,12 +76,10 @@ std::unique_ptr VibratingString::initDelayLine(int l if (len > 0) { dl->data = std::make_unique(len); - float r; - float offset = 0.0f; for (int i = 0; i < dl->length; ++i) { - r = static_cast(std::rand()) / RAND_MAX; - offset = (m_randomize / 2.0f - m_randomize) * r; + float r = static_cast(std::rand()) / RAND_MAX; + float offset = (m_randomize / 2.0f - m_randomize) * r; dl->data[i] = offset; } } @@ -101,7 +100,7 @@ void VibratingString::resample(const float* src, f_cnt_t srcFrames, f_cnt_t dstF { const float srcFrameFloat = frame * static_cast(srcFrames) / dstFrames; const float fracPos = srcFrameFloat - static_cast(srcFrameFloat); - const f_cnt_t srcFrame = std::clamp(static_cast(srcFrameFloat), 1, srcFrames - 3); + const f_cnt_t srcFrame = std::clamp(static_cast(srcFrameFloat), f_cnt_t{1}, srcFrames - 3); m_impulse[frame] = cubicInterpolate( src[srcFrame - 1], src[srcFrame + 0], diff --git a/plugins/Vibed/VibratingString.h b/plugins/Vibed/VibratingString.h index efdaec28256..0ad5a6e6e47 100644 --- a/plugins/Vibed/VibratingString.h +++ b/plugins/Vibed/VibratingString.h @@ -49,8 +49,6 @@ class VibratingString sample_t nextSample() { - sample_t ym0; - sample_t ypM; for (int i = 0; i < m_oversample; ++i) { // Output at pickup position @@ -58,9 +56,9 @@ class VibratingString m_outsamp[i] += toBridgeAccess(m_toBridge.get(), m_pickupLoc); // Sample traveling into "bridge" - ym0 = toBridgeAccess(m_toBridge.get(), 1); + sample_t ym0 = toBridgeAccess(m_toBridge.get(), 1); // Sample to "nut" - ypM = fromBridgeAccess(m_fromBridge.get(), m_fromBridge->length - 2); + sample_t ypM = fromBridgeAccess(m_fromBridge.get(), m_fromBridge->length - 2); // String state update @@ -105,21 +103,18 @@ class VibratingString */ void setDelayLine(DelayLine* dl, int pick, const float* values, int len, float scale, bool state) { - float r; - float offset; - if (!state) { for (int i = 0; i < pick; ++i) { - r = static_cast(std::rand()) / RAND_MAX; - offset = (m_randomize / 2.0f - m_randomize) * r; + float r = static_cast(std::rand()) / RAND_MAX; + float offset = (m_randomize / 2.0f - m_randomize) * r; dl->data[i] = scale * values[dl->length - i - 1] + offset; } for (int i = pick; i < dl->length; ++i) { - r = static_cast(std::rand()) / RAND_MAX; - offset = (m_randomize / 2.0f - m_randomize) * r; + float r = static_cast(std::rand()) / RAND_MAX; + float offset = (m_randomize / 2.0f - m_randomize) * r; dl->data[i] = scale * values[i - pick] + offset; } } @@ -129,8 +124,8 @@ class VibratingString { for (int i = pick; i < dl->length; ++i) { - r = static_cast(std::rand()) / RAND_MAX; - offset = (m_randomize / 2.0f - m_randomize) * r; + float r = static_cast(std::rand()) / RAND_MAX; + float offset = (m_randomize / 2.0f - m_randomize) * r; dl->data[i] = scale * values[i - pick] + offset; } } @@ -138,8 +133,8 @@ class VibratingString { for (int i = 0; i < len; ++i) { - r = static_cast(std::rand()) / RAND_MAX; - offset = (m_randomize / 2.0f - m_randomize) * r; + float r = static_cast(std::rand()) / RAND_MAX; + float offset = (m_randomize / 2.0f - m_randomize) * r; dl->data[i+pick] = scale * values[i] + offset; } } diff --git a/plugins/VstBase/CMakeLists.txt b/plugins/VstBase/CMakeLists.txt index 8d3262b1a09..15d47200c96 100644 --- a/plugins/VstBase/CMakeLists.txt +++ b/plugins/VstBase/CMakeLists.txt @@ -1,4 +1,4 @@ -IF(NOT LMMS_SUPPORT_VST) +if(NOT LMMS_HAVE_VST) RETURN() ENDIF() @@ -33,6 +33,7 @@ set(export_variables "LMMS_BUILD_WIN32" "PLUGIN_DIR" "LMMS_HAVE_LIBRT" + "USE_WERROR" ) SET(EXTERNALPROJECT_CMAKE_ARGS @@ -47,11 +48,11 @@ foreach(var ${export_variables}) endforeach() # build 32 bit version of RemoteVstPlugin -IF(WANT_VST_32) +if(LMMS_HAVE_VST_32) INCLUDE("${CMAKE_CURRENT_LIST_DIR}/RemoteVstPlugin32.cmake") ENDIF() # build 64 bit version of RemoteVstPlugin -IF(WANT_VST_64) +if(LMMS_HAVE_VST_64) INCLUDE("${CMAKE_CURRENT_LIST_DIR}/RemoteVstPlugin64.cmake") ENDIF() diff --git a/plugins/VstBase/NativeLinuxRemoteVstPlugin64.cmake b/plugins/VstBase/NativeLinuxRemoteVstPlugin64.cmake index dc582360429..d9ef2897d52 100644 --- a/plugins/VstBase/NativeLinuxRemoteVstPlugin64.cmake +++ b/plugins/VstBase/NativeLinuxRemoteVstPlugin64.cmake @@ -1,11 +1,13 @@ IF(LMMS_BUILD_LINUX) + if(LMMS_HOST_X86_64) + set(CXX_FLAGS -m64) + endif() ExternalProject_Add(NativeLinuxRemoteVstPlugin64 "${EXTERNALPROJECT_ARGS}" CMAKE_ARGS "${EXTERNALPROJECT_CMAKE_ARGS}" - "-DCMAKE_CXX_FLAGS=-m64 -DNATIVE_LINUX_VST" + "-DCMAKE_CXX_FLAGS=${CXX_FLAGS} -DNATIVE_LINUX_VST" "-DCMAKE_C_FLAGS=-DNATIVE_LINUX_VST" ) INSTALL(PROGRAMS "${CMAKE_CURRENT_BINARY_DIR}/../NativeLinuxRemoteVstPlugin64" DESTINATION "${PLUGIN_DIR}") -ENDIF() - +ENDIF() \ No newline at end of file diff --git a/plugins/VstBase/RemoteVstPlugin.cpp b/plugins/VstBase/RemoteVstPlugin.cpp index 0ec60bea4fe..f8bf39a3755 100644 --- a/plugins/VstBase/RemoteVstPlugin.cpp +++ b/plugins/VstBase/RemoteVstPlugin.cpp @@ -87,11 +87,7 @@ #undef Unsorted #endif -#ifdef USE_MINGW_THREADS_REPLACEMENT -# include -#else -# include -#endif +#include #include #include @@ -191,7 +187,7 @@ class RemoteVstPlugin : public RemotePluginClient void hideEditor(); void destroyEditor(); - virtual void process( const sampleFrame * _in, sampleFrame * _out ); + virtual void process( const SampleFrame* _in, SampleFrame* _out ); virtual void processMidiEvent( const MidiEvent& event, const f_cnt_t offset ); @@ -269,7 +265,7 @@ class RemoteVstPlugin : public RemotePluginClient void saveChunkToFile( const std::string & _file ); // restore settings chunk of plugin from file - void loadChunkFromFile( const std::string & _file, int _len ); + void loadChunkFromFile(const std::string& _file, std::size_t _len); // restore settings chunk of plugin from file void loadPresetFile( const std::string & _file ); @@ -846,7 +842,6 @@ void RemoteVstPlugin::initEditor() #endif #else - XEvent e; Atom prop_atom, val_atom; if (m_display == nullptr) @@ -1027,7 +1022,7 @@ bool RemoteVstPlugin::load( const std::string & _plugin_file ) -void RemoteVstPlugin::process( const sampleFrame * _in, sampleFrame * _out ) +void RemoteVstPlugin::process( const SampleFrame* _in, SampleFrame* _out ) { // first we gonna post all MIDI-events we enqueued so far if( m_midiEvents.size() ) @@ -1307,7 +1302,7 @@ void RemoteVstPlugin::saveChunkToFile( const std::string & _file ) "Error opening file for saving chunk.\n" ); return; } - if ( fwrite( chunk, 1, len, fp ) != len ) + if (fwrite(chunk, 1, len, fp) != static_cast(len)) { fprintf( stderr, "Error saving chunk to file.\n" ); @@ -1545,7 +1540,7 @@ void RemoteVstPlugin::loadPresetFile( const std::string & _file ) unsigned int toUInt; float * pFloat; - if (m_plugin->uniqueID != pBank->fxID) { + if (static_cast(m_plugin->uniqueID) != pBank->fxID) { sendMessage( message( IdVstCurrentProgramName ). addString( "Error: Plugin UniqID not match" ) ); fclose( stream ); @@ -1581,7 +1576,7 @@ void RemoteVstPlugin::loadPresetFile( const std::string & _file ) else { auto toUIntArray = reinterpret_cast(chunk); - for (int i = 0; i < pBank->numPrograms; i++ ) + for (auto i = 0u; i < pBank->numPrograms; i++) { toUInt = endian_swap( toUIntArray[ i ] ); pFloat = ( float* ) &toUInt; @@ -1629,10 +1624,7 @@ void RemoteVstPlugin::loadPresetFile( const std::string & _file ) delete[] (char*)chunk; } - - - -void RemoteVstPlugin::loadChunkFromFile( const std::string & _file, int _len ) +void RemoteVstPlugin::loadChunkFromFile(const std::string& _file, std::size_t _len) { auto chunk = new char[_len]; @@ -2308,7 +2300,7 @@ void RemoteVstPlugin::guiEventLoop() { XNextEvent(m_display, &e); - if (e.type == ClientMessage && e.xclient.data.l[0] == m_wmDeleteMessage) + if (e.type == ClientMessage && static_cast(e.xclient.data.l[0]) == m_wmDeleteMessage) { hideEditor(); } diff --git a/plugins/VstBase/RemoteVstPlugin/CMakeLists.txt b/plugins/VstBase/RemoteVstPlugin/CMakeLists.txt index 3356ae5967d..3f861e2d566 100644 --- a/plugins/VstBase/RemoteVstPlugin/CMakeLists.txt +++ b/plugins/VstBase/RemoteVstPlugin/CMakeLists.txt @@ -1,4 +1,9 @@ -cmake_minimum_required(VERSION 3.8) +cmake_minimum_required(VERSION 3.13) + +if(POLICY "CMP0092") + cmake_policy(SET CMP0092 NEW) # MSVC warning flags are not in CMAKE__FLAGS by default. +endif() + project(RemoteVstPlugin LANGUAGES CXX) set(CMAKE_CXX_STANDARD 17) @@ -22,6 +27,12 @@ FOREACH( OUTPUTCONFIG ${CMAKE_CONFIGURATION_TYPES} ) SET("CMAKE_RUNTIME_OUTPUT_DIRECTORY_${OUTPUTCONFIG}" "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}") ENDFOREACH() +# Add warning and error flags +include(ErrorFlags) + +# Import of windows.h breaks min()/max() +add_definitions(-DNOMINMAX) + ADD_SUBDIRECTORY("${LMMS_SOURCE_DIR}/src/common" common) if(NOT IS_WIN) @@ -58,35 +69,11 @@ target_compile_definitions(${EXE_NAME} PRIVATE BUILD_REMOTE_PLUGIN_CLIENT) # Workaround for missing WinMain if(MSVC) - set_property(TARGET ${EXE_NAME} - APPEND - PROPERTY LINK_FLAGS "/entry:mainCRTStartup" -) -endif() - - -if(WIN32) - find_package(Qt5Core REQUIRED) - target_link_libraries(${EXE_NAME} Qt5::Core) + target_link_options(${EXE_NAME} PRIVATE "/entry:mainCRTStartup") endif() if(IS_MINGW) SET(CMAKE_REQUIRED_FLAGS "-std=c++17") - - CHECK_CXX_SOURCE_COMPILES(" - #include - int main(int argc, const char* argv[]) { - std::mutex m; - return 0; - } - " HAS_STD_MUTEX) - - if(NOT HAS_STD_MUTEX) - target_include_directories(${EXE_NAME} PRIVATE - "${LMMS_SOURCE_DIR}/src/3rdparty/mingw-std-threads") - target_compile_definitions(${EXE_NAME} PRIVATE - -DUSE_MINGW_THREADS_REPLACEMENT) - endif() endif() if(LMMS_BUILD_WIN32) @@ -96,7 +83,9 @@ if(LMMS_BUILD_WIN32) set(NOOP_COMMAND "${CMAKE_COMMAND}" "-E" "echo") endif() if(STRIP) - set(STRIP_COMMAND "$,${NOOP_COMMAND},${STRIP}>") + # TODO CMake 3.19: Now that CONFIG generator expressions support testing for + # multiple configurations, combine the OR into a single CONFIG expression. + set(STRIP_COMMAND "$,$>,${NOOP_COMMAND},${STRIP}>") else() set(STRIP_COMMAND "${NOOP_COMMAND}") endif() diff --git a/plugins/VstBase/RemoteVstPlugin32.cmake b/plugins/VstBase/RemoteVstPlugin32.cmake index f39bd93d06a..5afb7db8123 100644 --- a/plugins/VstBase/RemoteVstPlugin32.cmake +++ b/plugins/VstBase/RemoteVstPlugin32.cmake @@ -17,23 +17,6 @@ ENDMACRO() IF(LMMS_BUILD_WIN32 AND NOT LMMS_BUILD_WIN64) ADD_SUBDIRECTORY(RemoteVstPlugin) ELSEIF(LMMS_BUILD_WIN64 AND MSVC) - IF(NOT QT_32_PREFIX) - SET(LMMS_MSVC_YEAR_FOR_QT ${LMMS_MSVC_YEAR}) - - if(LMMS_MSVC_YEAR_FOR_QT EQUAL 2019 AND Qt5_VERSION VERSION_LESS "5.15") - SET(LMMS_MSVC_YEAR_FOR_QT 2017) # Qt only provides binaries for MSVC 2017, but 2019 is binary compatible - endif() - - GET_FILENAME_COMPONENT(QT_BIN_DIR ${QT_QMAKE_EXECUTABLE} DIRECTORY) - SET(QT_32_PREFIX "${QT_BIN_DIR}/../../msvc${LMMS_MSVC_YEAR_FOR_QT}") - ENDIF() - - #TODO: qt5 installed using vcpkg: I don't know how to detect if the user built the x86 version of qt5 from here. At least not cleanly. - #So for the moment, we'll allow the built. - IF(NOT (IS_DIRECTORY ${QT_32_PREFIX} AND EXISTS ${QT_32_PREFIX}/bin/qmake.exe)) - MESSAGE(WARNING "No Qt 32 bit installation found at ${QT_32_PREFIX}. If you're using VCPKG you can ignore this message if you've built x86-windows version of qt5") - ENDIF() - ExternalProject_Add(RemoteVstPlugin32 "${EXTERNALPROJECT_ARGS}" CMAKE_GENERATOR "${LMMS_MSVC_GENERATOR}" @@ -42,18 +25,10 @@ ELSEIF(LMMS_BUILD_WIN64 AND MSVC) CMAKE_ARGS "${EXTERNALPROJECT_CMAKE_ARGS}" "-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" - "-DCMAKE_PREFIX_PATH=${QT_32_PREFIX}" ) INSTALL_EXTERNAL_PROJECT(RemoteVstPlugin32) ELSEIF(LMMS_BUILD_LINUX) - # Use winegcc - INCLUDE(CheckWineGcc) - CheckWineGcc(32 "${WINEGCC}" WINEGCC_WORKING) - IF(NOT WINEGCC_WORKING) - MESSAGE(WARNING "winegcc fails to compile 32-bit binaries, please make sure you have 32-bit GCC libraries") - RETURN() - ENDIF() ExternalProject_Add(RemoteVstPlugin32 "${EXTERNALPROJECT_ARGS}" CMAKE_ARGS @@ -63,7 +38,6 @@ ELSEIF(LMMS_BUILD_LINUX) ) INSTALL(PROGRAMS "${CMAKE_CURRENT_BINARY_DIR}/../32/RemoteVstPlugin32" "${CMAKE_CURRENT_BINARY_DIR}/../32/RemoteVstPlugin32.exe.so" DESTINATION "${PLUGIN_DIR}/32") - ELSEIF(CMAKE_TOOLCHAIN_FILE_32) ExternalProject_Add(RemoteVstPlugin32 "${EXTERNALPROJECT_ARGS}" diff --git a/plugins/VstBase/RemoteVstPlugin64.cmake b/plugins/VstBase/RemoteVstPlugin64.cmake index 65b33a16251..2f4a745ac17 100644 --- a/plugins/VstBase/RemoteVstPlugin64.cmake +++ b/plugins/VstBase/RemoteVstPlugin64.cmake @@ -1,12 +1,6 @@ IF(LMMS_BUILD_WIN64) ADD_SUBDIRECTORY(RemoteVstPlugin) ELSEIF(LMMS_BUILD_LINUX) - INCLUDE(CheckWineGcc) - CheckWineGcc(64 "${WINEGCC}" WINEGCC_WORKING) - IF(NOT WINEGCC_WORKING) - MESSAGE(WARNING "winegcc fails to compile 64-bit binaries, please make sure you have 64-bit GCC libraries") - RETURN() - ENDIF() ExternalProject_Add(RemoteVstPlugin64 "${EXTERNALPROJECT_ARGS}" CMAKE_ARGS diff --git a/plugins/VstBase/VstPlugin.cpp b/plugins/VstBase/VstPlugin.cpp index b23ae39bf97..5dbe7a698ae 100644 --- a/plugins/VstBase/VstPlugin.cpp +++ b/plugins/VstBase/VstPlugin.cpp @@ -36,7 +36,7 @@ #ifdef LMMS_BUILD_LINUX # include -# include "X11EmbedContainer.h" +# include #endif #include @@ -338,7 +338,7 @@ void VstPlugin::updateSampleRate() { lock(); sendMessage( message( IdSampleRateInformation ). - addInt( Engine::audioEngine()->processingSampleRate() ) ); + addInt( Engine::audioEngine()->outputSampleRate() ) ); waitForMessage( IdInformationUpdated, true ); unlock(); } @@ -735,14 +735,12 @@ void VstPlugin::createUI( QWidget * parent ) QWidget* container = nullptr; -#if QT_VERSION >= 0x050100 if (m_embedMethod == "qt" ) { QWindow* vw = QWindow::fromWinId(m_pluginWindowID); container = QWidget::createWindowContainer(vw, parent ); container->installEventFilter(this); } else -#endif #ifdef LMMS_BUILD_WIN32 if (m_embedMethod == "win32" ) @@ -801,7 +799,6 @@ void VstPlugin::createUI( QWidget * parent ) bool VstPlugin::eventFilter(QObject *obj, QEvent *event) { -#if QT_VERSION >= 0x050100 if (embedMethod() == "qt" && obj == m_pluginWidget) { if (event->type() == QEvent::Show) { @@ -809,7 +806,6 @@ bool VstPlugin::eventFilter(QObject *obj, QEvent *event) } qDebug() << obj << event; } -#endif return false; } diff --git a/plugins/VstEffect/CMakeLists.txt b/plugins/VstEffect/CMakeLists.txt index 68ef141d984..3cbe8e8cc85 100644 --- a/plugins/VstEffect/CMakeLists.txt +++ b/plugins/VstEffect/CMakeLists.txt @@ -1,4 +1,7 @@ -IF(LMMS_SUPPORT_VST) +if(NOT LMMS_HAVE_VST) + return() +endif() + INCLUDE(BuildPlugin) INCLUDE_DIRECTORIES("${CMAKE_CURRENT_SOURCE_DIR}/../vst_base") LINK_DIRECTORIES("${CMAKE_CURRENT_BINARY_DIR}/..") @@ -12,6 +15,3 @@ ENDIF() BUILD_PLUGIN(vsteffect VstEffect.cpp VstEffectControls.cpp VstEffectControlDialog.cpp VstSubPluginFeatures.cpp VstEffect.h VstEffectControls.h VstEffectControlDialog.h VstSubPluginFeatures.h MOCFILES VstEffectControlDialog.h VstEffectControls.h EMBEDDED_RESOURCES *.png) TARGET_LINK_LIBRARIES(vsteffect vstbase) - -ENDIF(LMMS_SUPPORT_VST) - diff --git a/plugins/VstEffect/VstEffect.cpp b/plugins/VstEffect/VstEffect.cpp index bdbdea8060c..53de4f4cc59 100644 --- a/plugins/VstEffect/VstEffect.cpp +++ b/plugins/VstEffect/VstEffect.cpp @@ -65,63 +65,47 @@ VstEffect::VstEffect( Model * _parent, m_key( *_key ), m_vstControls( this ) { + bool loaded = false; if( !m_key.attributes["file"].isEmpty() ) { - openPlugin( m_key.attributes["file"] ); + loaded = openPlugin(m_key.attributes["file"]); } setDisplayName( m_key.attributes["file"].section( ".dll", 0, 0 ).isEmpty() ? m_key.name : m_key.attributes["file"].section( ".dll", 0, 0 ) ); + + setDontRun(!loaded); } -bool VstEffect::processAudioBuffer( sampleFrame * _buf, const fpp_t _frames ) +Effect::ProcessStatus VstEffect::processImpl(SampleFrame* buf, const fpp_t frames) { - if( !isEnabled() || !isRunning () ) + assert(m_plugin != nullptr); + static thread_local auto tempBuf = std::array(); + + std::memcpy(tempBuf.data(), buf, sizeof(SampleFrame) * frames); + if (m_pluginMutex.tryLock(Engine::getSong()->isExporting() ? -1 : 0)) { - return false; + m_plugin->process(tempBuf.data(), tempBuf.data()); + m_pluginMutex.unlock(); } - if( m_plugin ) + const float w = wetLevel(); + const float d = dryLevel(); + for (fpp_t f = 0; f < frames; ++f) { - const float d = dryLevel(); -#ifdef __GNUC__ - sampleFrame buf[_frames]; -#else - sampleFrame * buf = new sampleFrame[_frames]; -#endif - memcpy( buf, _buf, sizeof( sampleFrame ) * _frames ); - if (m_pluginMutex.tryLock(Engine::getSong()->isExporting() ? -1 : 0)) - { - m_plugin->process( buf, buf ); - m_pluginMutex.unlock(); - } - - double out_sum = 0.0; - const float w = wetLevel(); - for( fpp_t f = 0; f < _frames; ++f ) - { - _buf[f][0] = w*buf[f][0] + d*_buf[f][0]; - _buf[f][1] = w*buf[f][1] + d*_buf[f][1]; - } - for( fpp_t f = 0; f < _frames; ++f ) - { - out_sum += _buf[f][0]*_buf[f][0] + _buf[f][1]*_buf[f][1]; - } -#ifndef __GNUC__ - delete[] buf; -#endif - - checkGate( out_sum / _frames ); + buf[f][0] = w * tempBuf[f][0] + d * buf[f][0]; + buf[f][1] = w * tempBuf[f][1] + d * buf[f][1]; } - return isRunning(); + + return ProcessStatus::ContinueIfNotQuiet; } -void VstEffect::openPlugin( const QString & _plugin ) +bool VstEffect::openPlugin(const QString& plugin) { gui::TextFloat* tf = nullptr; if( gui::getGUI() != nullptr ) @@ -133,18 +117,19 @@ void VstEffect::openPlugin( const QString & _plugin ) } QMutexLocker ml( &m_pluginMutex ); Q_UNUSED( ml ); - m_plugin = QSharedPointer(new VstPlugin( _plugin )); + m_plugin = QSharedPointer(new VstPlugin(plugin)); if( m_plugin->failed() ) { m_plugin.clear(); delete tf; - collectErrorForUI( VstPlugin::tr( "The VST plugin %1 could not be loaded." ).arg( _plugin ) ); - return; + collectErrorForUI(VstPlugin::tr("The VST plugin %1 could not be loaded.").arg(plugin)); + return false; } delete tf; - m_key.attributes["file"] = _plugin; + m_key.attributes["file"] = plugin; + return true; } diff --git a/plugins/VstEffect/VstEffect.h b/plugins/VstEffect/VstEffect.h index 987b1ecc236..a8fbd410b78 100644 --- a/plugins/VstEffect/VstEffect.h +++ b/plugins/VstEffect/VstEffect.h @@ -45,8 +45,7 @@ class VstEffect : public Effect const Descriptor::SubPluginFeatures::Key * _key ); ~VstEffect() override = default; - bool processAudioBuffer( sampleFrame * _buf, - const fpp_t _frames ) override; + ProcessStatus processImpl(SampleFrame* buf, const fpp_t frames) override; EffectControls * controls() override { @@ -55,7 +54,8 @@ class VstEffect : public Effect private: - void openPlugin( const QString & _plugin ); + //! Returns true if plugin was loaded (m_plugin != nullptr) + bool openPlugin(const QString& plugin); void closePlugin(); QSharedPointer m_plugin; diff --git a/plugins/VstEffect/VstEffectControlDialog.cpp b/plugins/VstEffect/VstEffectControlDialog.cpp index 5bee94155d9..a5b67f5f33a 100644 --- a/plugins/VstEffect/VstEffectControlDialog.cpp +++ b/plugins/VstEffect/VstEffectControlDialog.cpp @@ -33,7 +33,7 @@ #include "PixmapButton.h" #include "embed.h" -#include "gui_templates.h" +#include "FontHelper.h" #include #include @@ -246,7 +246,7 @@ VstEffectControlDialog::VstEffectControlDialog( VstEffectControls * _ctl ) : tb->addWidget(space1); tbLabel = new QLabel( tr( "Effect by: " ), this ); - tbLabel->setFont( pointSize<7>( f ) ); + tbLabel->setFont(adjustedToPixelSize(f, SMALL_FONT_SIZE)); tbLabel->setTextFormat(Qt::RichText); tbLabel->setAlignment( Qt::AlignTop | Qt::AlignLeft ); tb->addWidget( tbLabel ); diff --git a/plugins/VstEffect/VstEffectControls.cpp b/plugins/VstEffect/VstEffectControls.cpp index cf0c831a6b8..ef8bd38d077 100644 --- a/plugins/VstEffect/VstEffectControls.cpp +++ b/plugins/VstEffect/VstEffectControls.cpp @@ -50,7 +50,6 @@ VstEffectControls::VstEffectControls( VstEffect * _eff ) : EffectControls( _eff ), m_effect( _eff ), m_subWindow( nullptr ), - knobFModel( nullptr ), ctrHandle( nullptr ), lastPosInMenu (0), m_vstGuiVisible ( true ) @@ -84,11 +83,11 @@ void VstEffectControls::loadSettings( const QDomElement & _this ) const QMap & dump = m_effect->m_plugin->parameterDump(); paramCount = dump.size(); auto paramStr = std::array{}; - knobFModel = new FloatModel *[ paramCount ]; + knobFModel.resize(paramCount); QStringList s_dumpValues; for( int i = 0; i < paramCount; i++ ) { - sprintf(paramStr.data(), "param%d", i); + std::snprintf(paramStr.data(), paramStr.size(), "param%d", i); s_dumpValues = dump[paramStr.data()].split(":"); knobFModel[i] = new FloatModel( 0.0f, 0.0f, 1.0f, 0.01f, this, QString::number(i) ); @@ -131,14 +130,14 @@ void VstEffectControls::saveSettings( QDomDocument & _doc, QDomElement & _this ) if( m_effect->m_plugin != nullptr ) { m_effect->m_plugin->saveSettings( _doc, _this ); - if (knobFModel != nullptr) { + if (!knobFModel.empty()) { const QMap & dump = m_effect->m_plugin->parameterDump(); paramCount = dump.size(); auto paramStr = std::array{}; for( int i = 0; i < paramCount; i++ ) { if (knobFModel[i]->isAutomated() || knobFModel[i]->controllerConnection()) { - sprintf(paramStr.data(), "param%d", i); + std::snprintf(paramStr.data(), paramStr.size(), "param%d", i); knobFModel[i]->saveSettings(_doc, _this, paramStr.data()); } } @@ -376,8 +375,9 @@ ManageVSTEffectView::ManageVSTEffectView( VstEffect * _eff, VstEffectControls * vstKnobs = new CustomTextKnob *[ m_vi->paramCount ]; bool hasKnobModel = true; - if (m_vi->knobFModel == nullptr) { - m_vi->knobFModel = new FloatModel *[ m_vi->paramCount ]; + if (m_vi->knobFModel.empty()) + { + m_vi->knobFModel.resize(m_vi->paramCount); hasKnobModel = false; } @@ -386,7 +386,7 @@ ManageVSTEffectView::ManageVSTEffectView( VstEffect * _eff, VstEffectControls * for( int i = 0; i < m_vi->paramCount; i++ ) { - sprintf(paramStr.data(), "param%d", i); + std::snprintf(paramStr.data(), paramStr.size(), "param%d", i); s_dumpValues = dump[paramStr.data()].split(":"); vstKnobs[ i ] = new CustomTextKnob( KnobType::Bright26, widget, s_dumpValues.at( 1 ) ); @@ -395,7 +395,7 @@ ManageVSTEffectView::ManageVSTEffectView( VstEffect * _eff, VstEffectControls * if( !hasKnobModel ) { - sprintf(paramStr.data(), "%d", i); + std::snprintf(paramStr.data(), paramStr.size(), "%d", i); m_vi->knobFModel[i] = new FloatModel(LocaleHelper::toFloat(s_dumpValues.at(2)), 0.0f, 1.0f, 0.01f, _eff, paramStr.data()); } @@ -452,7 +452,6 @@ void ManageVSTEffectView::syncPlugin() auto paramStr = std::array{}; QStringList s_dumpValues; const QMap & dump = m_effect->m_plugin->parameterDump(); - float f_value; for( int i = 0; i < m_vi2->paramCount; i++ ) { @@ -461,9 +460,9 @@ void ManageVSTEffectView::syncPlugin() if( !( m_vi2->knobFModel[ i ]->isAutomated() || m_vi2->knobFModel[ i ]->controllerConnection() ) ) { - sprintf(paramStr.data(), "param%d", i); + std::snprintf(paramStr.data(), paramStr.size(), "param%d", i); s_dumpValues = dump[paramStr.data()].split(":"); - f_value = LocaleHelper::toFloat(s_dumpValues.at(2)); + float f_value = LocaleHelper::toFloat(s_dumpValues.at(2)); m_vi2->knobFModel[ i ]->setAutomatedValue( f_value ); m_vi2->knobFModel[ i ]->setInitValue( f_value ); } @@ -543,7 +542,7 @@ void ManageVSTEffectView::syncParameterText() ManageVSTEffectView::~ManageVSTEffectView() { - if( m_vi2->knobFModel != nullptr ) + if (!m_vi2->knobFModel.empty()) { for( int i = 0; i < m_vi2->paramCount; i++ ) { @@ -558,11 +557,7 @@ ManageVSTEffectView::~ManageVSTEffectView() vstKnobs = nullptr; } - if( m_vi2->knobFModel != nullptr ) - { - delete [] m_vi2->knobFModel; - m_vi2->knobFModel = nullptr; - } + m_vi2->knobFModel.clear(); if( m_vi2->m_scrollArea != nullptr ) { diff --git a/plugins/VstEffect/VstEffectControls.h b/plugins/VstEffect/VstEffectControls.h index 42178b5b645..e2bea36e88c 100644 --- a/plugins/VstEffect/VstEffectControls.h +++ b/plugins/VstEffect/VstEffectControls.h @@ -89,7 +89,7 @@ protected slots: QMdiSubWindow * m_subWindow; QScrollArea * m_scrollArea; - FloatModel ** knobFModel; + std::vector knobFModel; int paramCount; QObject * ctrHandle; diff --git a/plugins/Watsyn/Watsyn.cpp b/plugins/Watsyn/Watsyn.cpp index 8e49942e16a..2749b2dafc9 100644 --- a/plugins/Watsyn/Watsyn.cpp +++ b/plugins/Watsyn/Watsyn.cpp @@ -74,8 +74,8 @@ WatsynObject::WatsynObject( float * _A1wave, float * _A2wave, m_fpp( _frames ), m_parent( _w ) { - m_abuf = new sampleFrame[_frames]; - m_bbuf = new sampleFrame[_frames]; + m_abuf = new SampleFrame[_frames]; + m_bbuf = new SampleFrame[_frames]; m_lphase[A1_OSC] = 0.0f; m_lphase[A2_OSC] = 0.0f; @@ -107,9 +107,9 @@ WatsynObject::~WatsynObject() void WatsynObject::renderOutput( fpp_t _frames ) { if( m_abuf == nullptr ) - m_abuf = new sampleFrame[m_fpp]; + m_abuf = new SampleFrame[m_fpp]; if( m_bbuf == nullptr ) - m_bbuf = new sampleFrame[m_fpp]; + m_bbuf = new SampleFrame[m_fpp]; for( fpp_t frame = 0; frame < _frames; frame++ ) { @@ -327,24 +327,24 @@ WatsynInstrument::WatsynInstrument( InstrumentTrack * _instrument_track ) : void WatsynInstrument::playNote( NotePlayHandle * _n, - sampleFrame * _working_buffer ) + SampleFrame* _working_buffer ) { if (!_n->m_pluginData) { auto w = new WatsynObject(&A1_wave[0], &A2_wave[0], &B1_wave[0], &B2_wave[0], m_amod.value(), m_bmod.value(), - Engine::audioEngine()->processingSampleRate(), _n, Engine::audioEngine()->framesPerPeriod(), this); + Engine::audioEngine()->outputSampleRate(), _n, Engine::audioEngine()->framesPerPeriod(), this); _n->m_pluginData = w; } const fpp_t frames = _n->framesLeftForCurrentPeriod(); const f_cnt_t offset = _n->noteOffset(); - sampleFrame * buffer = _working_buffer + offset; + SampleFrame* buffer = _working_buffer + offset; auto w = static_cast(_n->m_pluginData); - sampleFrame * abuf = w->abuf(); - sampleFrame * bbuf = w->bbuf(); + SampleFrame* abuf = w->abuf(); + SampleFrame* bbuf = w->bbuf(); w-> renderOutput( frames ); diff --git a/plugins/Watsyn/Watsyn.h b/plugins/Watsyn/Watsyn.h index 3a736e1621f..aebc74645f3 100644 --- a/plugins/Watsyn/Watsyn.h +++ b/plugins/Watsyn/Watsyn.h @@ -32,7 +32,6 @@ #include "AutomatableModel.h" #include "TempoSyncKnob.h" #include -#include "MemoryManager.h" namespace lmms { @@ -88,7 +87,6 @@ class WatsynView; class WatsynObject { - MM_OPERATORS public: WatsynObject( float * _A1wave, float * _A2wave, float * _B1wave, float * _B2wave, @@ -98,11 +96,11 @@ class WatsynObject void renderOutput( fpp_t _frames ); - inline sampleFrame * abuf() const + inline SampleFrame* abuf() const { return m_abuf; } - inline sampleFrame * bbuf() const + inline SampleFrame* bbuf() const { return m_bbuf; } @@ -122,8 +120,8 @@ class WatsynObject WatsynInstrument * m_parent; - sampleFrame * m_abuf; - sampleFrame * m_bbuf; + SampleFrame* m_abuf; + SampleFrame* m_bbuf; float m_lphase [NUM_OSCS]; float m_rphase [NUM_OSCS]; @@ -142,7 +140,7 @@ class WatsynInstrument : public Instrument ~WatsynInstrument() override = default; void playNote( NotePlayHandle * _n, - sampleFrame * _working_buffer ) override; + SampleFrame* _working_buffer ) override; void deleteNotePluginData( NotePlayHandle * _n ) override; @@ -152,9 +150,9 @@ class WatsynInstrument : public Instrument QString nodeName() const override; - f_cnt_t desiredReleaseFrames() const override + float desiredReleaseTimeMs() const override { - return( 64 ); + return 1.5f; } gui::PluginView* instantiateView( QWidget * _parent ) override; diff --git a/plugins/WaveShaper/WaveShaper.cpp b/plugins/WaveShaper/WaveShaper.cpp index acd5a933b07..f21a2dff77f 100644 --- a/plugins/WaveShaper/WaveShaper.cpp +++ b/plugins/WaveShaper/WaveShaper.cpp @@ -66,18 +66,11 @@ WaveShaperEffect::WaveShaperEffect( Model * _parent, -bool WaveShaperEffect::processAudioBuffer( sampleFrame * _buf, - const fpp_t _frames ) +Effect::ProcessStatus WaveShaperEffect::processImpl(SampleFrame* buf, const fpp_t frames) { - if( !isEnabled() || !isRunning () ) - { - return( false ); - } - // variables for effect int i = 0; - double out_sum = 0.0; const float d = dryLevel(); const float w = wetLevel(); float input = m_wsControls.m_inputModel.value(); @@ -94,9 +87,9 @@ bool WaveShaperEffect::processAudioBuffer( sampleFrame * _buf, const float *inputPtr = inputBuffer ? &( inputBuffer->values()[ 0 ] ) : &input; const float *outputPtr = outputBufer ? &( outputBufer->values()[ 0 ] ) : &output; - for( fpp_t f = 0; f < _frames; ++f ) + for (fpp_t f = 0; f < frames; ++f) { - auto s = std::array{_buf[f][0], _buf[f][1]}; + auto s = std::array{buf[f][0], buf[f][1]}; // apply input gain s[0] *= *inputPtr; @@ -138,17 +131,14 @@ bool WaveShaperEffect::processAudioBuffer( sampleFrame * _buf, s[1] *= *outputPtr; // mix wet/dry signals - _buf[f][0] = d * _buf[f][0] + w * s[0]; - _buf[f][1] = d * _buf[f][1] + w * s[1]; - out_sum += _buf[f][0] * _buf[f][0] + _buf[f][1] * _buf[f][1]; + buf[f][0] = d * buf[f][0] + w * s[0]; + buf[f][1] = d * buf[f][1] + w * s[1]; outputPtr += outputInc; inputPtr += inputInc; } - checkGate( out_sum / _frames ); - - return( isRunning() ); + return ProcessStatus::ContinueIfNotQuiet; } diff --git a/plugins/WaveShaper/WaveShaper.h b/plugins/WaveShaper/WaveShaper.h index 4c63d5806c0..773419de8c8 100644 --- a/plugins/WaveShaper/WaveShaper.h +++ b/plugins/WaveShaper/WaveShaper.h @@ -40,8 +40,8 @@ class WaveShaperEffect : public Effect WaveShaperEffect( Model * _parent, const Descriptor::SubPluginFeatures::Key * _key ); ~WaveShaperEffect() override = default; - bool processAudioBuffer( sampleFrame * _buf, - const fpp_t _frames ) override; + + ProcessStatus processImpl(SampleFrame* buf, const fpp_t frames) override; EffectControls * controls() override { diff --git a/plugins/Xpressive/CMakeLists.txt b/plugins/Xpressive/CMakeLists.txt index 366381e6228..f5f1e71612d 100644 --- a/plugins/Xpressive/CMakeLists.txt +++ b/plugins/Xpressive/CMakeLists.txt @@ -1,6 +1,5 @@ INCLUDE(BuildPlugin) -INCLUDE_DIRECTORIES(exprtk) SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Dexprtk_disable_sc_andor") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Dexprtk_disable_return_statement") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Dexprtk_disable_break_continue") @@ -8,7 +7,7 @@ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Dexprtk_disable_comments") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Dexprtk_disable_string_capabilities") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Dexprtk_disable_rtl_io_file") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Dexprtk_disable_rtl_vecops") -SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${WERROR_FLAGS} -fexceptions") +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fexceptions") IF(LMMS_BUILD_WIN32 AND NOT MSVC) SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wa,-mbig-obj -Dexprtk_disable_enhanced_features") @@ -16,13 +15,16 @@ ELSEIF(LMMS_BUILD_WIN32 AND MSVC) SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /bigobj") ENDIF() -BUILD_PLUGIN(xpressive +add_library(exprtk INTERFACE) +target_include_directories(exprtk INTERFACE exprtk) +set_target_properties(exprtk PROPERTIES SYSTEM TRUE) + +build_plugin(xpressive Xpressive.cpp ExprSynth.cpp Xpressive.h - exprtk/exprtk.hpp + ExprSynth.h MOCFILES Xpressive.h EMBEDDED_RESOURCES "${CMAKE_CURRENT_SOURCE_DIR}/*.png" ) - - +target_link_libraries(xpressive exprtk) diff --git a/plugins/Xpressive/ExprSynth.cpp b/plugins/Xpressive/ExprSynth.cpp index 991e0d3e6b2..e6783211d8e 100644 --- a/plugins/Xpressive/ExprSynth.cpp +++ b/plugins/Xpressive/ExprSynth.cpp @@ -34,9 +34,10 @@ #include "interpolation.h" #include "lmms_math.h" #include "NotePlayHandle.h" +#include "SampleFrame.h" -#include "exprtk.hpp" +#include #define WARN_EXPRTK qWarning("ExprTk exception") @@ -82,9 +83,10 @@ struct IntegrateFunction : public exprtk::ifunction IntegrateFunction(const unsigned int* frame, unsigned int sample_rate,unsigned int max_counters) : exprtk::ifunction(1), + m_firstValue(0), m_frame(frame), - m_sample_rate(sample_rate), - m_max_counters(max_counters), + m_sampleRate(sample_rate), + m_maxCounters(max_counters), m_nCounters(0), m_nCountersCalls(0), m_cc(0) @@ -95,15 +97,26 @@ struct IntegrateFunction : public exprtk::ifunction inline T operator()(const T& x) override { - if (*m_frame == 0) + if (m_frame) { - ++m_nCountersCalls; - if (m_nCountersCalls > m_max_counters) + if (m_nCountersCalls == 0) + { + m_firstValue = *m_frame; + } + if (m_firstValue == *m_frame) + { + ++m_nCountersCalls; + if (m_nCountersCalls > m_maxCounters) + { + return 0; + } + m_cc = m_nCounters; + ++m_nCounters; + } + else // we moved to the next frame { - return 0; + m_frame = 0; // this will indicate that we are no longer in init phase. } - m_cc = m_nCounters; - ++m_nCounters; } T res = 0; @@ -113,13 +126,16 @@ struct IntegrateFunction : public exprtk::ifunction m_counters[m_cc] += x; } m_cc = (m_cc + 1) % m_nCountersCalls; - return res / m_sample_rate; - } - - const unsigned int* const m_frame; - const unsigned int m_sample_rate; - const unsigned int m_max_counters; + return res / m_sampleRate; + } + unsigned int m_firstValue; + const unsigned int* m_frame; + const unsigned int m_sampleRate; + // number of counters allocated + const unsigned int m_maxCounters; + // number of integrate instances that has counters allocated unsigned int m_nCounters; + // real number of integrate instances unsigned int m_nCountersCalls; unsigned int m_cc; double *m_counters; @@ -146,13 +162,8 @@ struct LastSampleFunction : public exprtk::ifunction inline T operator()(const T& x) override { - if (!std::isnan(x) && !std::isinf(x)) - { - const int ix=(int)x; - if (ix>=1 && ix<=m_history_size) - { - return m_samples[(ix + m_pivot_last) % m_history_size]; - } + if (!std::isnan(x) && x >= 1 && x <= m_history_size) { + return m_samples[(static_cast(x) + m_pivot_last) % m_history_size]; } return 0; } @@ -322,14 +333,8 @@ struct RandomVectorSeedFunction : public exprtk::ifunction inline float operator()(const float& index,const float& seed) override { - int irseed; - if (seed < 0 || std::isnan(seed) || std::isinf(seed)) - { - irseed=0; - } - else - irseed=(int)seed; - return randv(index,irseed); + const int irseed = seed < 0 || std::isnan(seed) || std::isinf(seed) ? 0 : static_cast(seed); + return randv(index, irseed); } static const int data_size=sizeof(random_data)/sizeof(int); @@ -741,7 +746,7 @@ ExprSynth::~ExprSynth() } } -void ExprSynth::renderOutput(fpp_t frames, sampleFrame *buf) +void ExprSynth::renderOutput(fpp_t frames, SampleFrame* buf) { try { @@ -826,4 +831,4 @@ void ExprSynth::renderOutput(fpp_t frames, sampleFrame *buf) } -} // namespace lmms \ No newline at end of file +} // namespace lmms diff --git a/plugins/Xpressive/ExprSynth.h b/plugins/Xpressive/ExprSynth.h index f338b78fc38..3348ed9f46e 100644 --- a/plugins/Xpressive/ExprSynth.h +++ b/plugins/Xpressive/ExprSynth.h @@ -30,7 +30,6 @@ #include #include "AutomatableModel.h" #include "Graph.h" -#include "MemoryManager.h" namespace lmms { @@ -38,6 +37,7 @@ namespace lmms class ExprFrontData; class NotePlayHandle; +class SampleFrame; namespace gui { @@ -102,13 +102,12 @@ class WaveSample class ExprSynth { - MM_OPERATORS public: ExprSynth(const WaveSample* gW1, const WaveSample* gW2, const WaveSample* gW3, ExprFront* exprO1, ExprFront* exprO2, NotePlayHandle* nph, const sample_rate_t sample_rate, const FloatModel* pan1, const FloatModel* pan2, float rel_trans); virtual ~ExprSynth(); - void renderOutput(fpp_t frames, sampleFrame* buf ); + void renderOutput(fpp_t frames, SampleFrame* buf ); private: diff --git a/plugins/Xpressive/Xpressive.cpp b/plugins/Xpressive/Xpressive.cpp index babc372317a..5ee7dcf8d89 100644 --- a/plugins/Xpressive/Xpressive.cpp +++ b/plugins/Xpressive/Xpressive.cpp @@ -196,7 +196,7 @@ QString Xpressive::nodeName() const { return (xpressive_plugin_descriptor.name); } -void Xpressive::playNote(NotePlayHandle* nph, sampleFrame* working_buffer) { +void Xpressive::playNote(NotePlayHandle* nph, SampleFrame* working_buffer) { m_A1=m_parameterA1.value(); m_A2=m_parameterA2.value(); m_A3=m_parameterA3.value(); @@ -204,14 +204,14 @@ void Xpressive::playNote(NotePlayHandle* nph, sampleFrame* working_buffer) { if (!nph->m_pluginData) { auto exprO1 = new ExprFront(m_outputExpression[0].constData(), - Engine::audioEngine()->processingSampleRate()); // give the "last" function a whole second - auto exprO2 = new ExprFront(m_outputExpression[1].constData(), Engine::audioEngine()->processingSampleRate()); + Engine::audioEngine()->outputSampleRate()); // give the "last" function a whole second + auto exprO2 = new ExprFront(m_outputExpression[1].constData(), Engine::audioEngine()->outputSampleRate()); auto init_expression_step1 = [this, nph](ExprFront* e) { //lambda function to init exprO1 and exprO2 //add the constants and the variables to the expression. e->add_constant("key", nph->key());//the key that was pressed. e->add_constant("bnote", nph->instrumentTrack()->baseNote()); // the base note - e->add_constant("srate", Engine::audioEngine()->processingSampleRate());// sample rate of the audio engine + e->add_constant("srate", Engine::audioEngine()->outputSampleRate());// sample rate of the audio engine e->add_constant("v", nph->getVolume() / 255.0); //volume of the note. e->add_constant("tempo", Engine::getSong()->getTempo());//tempo of the song. e->add_variable("A1", m_A1);//A1,A2,A3: general purpose input controls. @@ -225,7 +225,7 @@ void Xpressive::playNote(NotePlayHandle* nph, sampleFrame* working_buffer) { m_W2.setInterpolate(m_interpolateW2.value()); m_W3.setInterpolate(m_interpolateW3.value()); nph->m_pluginData = new ExprSynth(&m_W1, &m_W2, &m_W3, exprO1, exprO2, nph, - Engine::audioEngine()->processingSampleRate(), &m_panning1, &m_panning2, m_relTransition.value()); + Engine::audioEngine()->outputSampleRate(), &m_panning1, &m_panning2, m_relTransition.value()); } auto ps = static_cast(nph->m_pluginData); @@ -256,13 +256,12 @@ void Xpressive::smooth(float smoothness,const graphModel * in,graphModel * out) auto const guassian = new float[guass_size]; float sum = 0.0f; float temp = 0.0f; - int i; - for (i = 0; i < guass_size; i++ ) + for (int i = 0; i < guass_size; i++) { temp = (i - guass_center) / delta; sum += guassian[i] = a * powf(F_E, -0.5f * temp * temp); } - for (i = 0; i < guass_size; i++ ) + for (int i = 0; i < guass_size; i++) { guassian[i] = guassian[i] / sum; } @@ -336,13 +335,6 @@ XpressiveView::XpressiveView(Instrument * _instrument, QWidget * _parent) : pal.setBrush(backgroundRole(), PLUGIN_NAME::getIconPixmap("wavegraph")); m_graph->setPalette(pal); - PixmapButton * m_w1Btn; - PixmapButton * m_w2Btn; - PixmapButton * m_w3Btn; - PixmapButton * m_o1Btn; - PixmapButton * m_o2Btn; - PixmapButton * m_helpBtn; - m_w1Btn = new PixmapButton(this, nullptr); m_w1Btn->move(3, ROW_BTN); m_w1Btn->setActiveGraphic(PLUGIN_NAME::getIconPixmap("w1_active")); @@ -561,7 +553,7 @@ void XpressiveView::expressionChanged() { ExprFront expr(text.constData(),sample_rate); float t=0; const float f=10,key=5,v=0.5; - unsigned int i; + unsigned int frame_counter = 0; expr.add_variable("t", t); if (m_output_expr) @@ -580,20 +572,24 @@ void XpressiveView::expressionChanged() { expr.add_cyclic_vector("W2",e->graphW2().samples(),e->graphW2().length()); expr.add_cyclic_vector("W3",e->graphW3().samples(),e->graphW3().length()); } - expr.setIntegrate(&i,sample_rate); + expr.setIntegrate(&frame_counter,sample_rate); expr.add_constant("srate",sample_rate); const bool parse_ok=expr.compile(); if (parse_ok) { e->exprValid().setValue(0); - const int length = m_raw_graph->length(); + const unsigned int length = static_cast(m_raw_graph->length()); auto const samples = new float[length]; - for (i = 0; i < length; i++) { - t = i / (float) length; - samples[i] = expr.evaluate(); - if (std::isinf(samples[i]) != 0 || std::isnan(samples[i]) != 0) - samples[i] = 0; + // frame_counter's reference is used in the integrate function. + for (frame_counter = 0; frame_counter < length; ++frame_counter) + { + t = frame_counter / (float) length; + samples[frame_counter] = expr.evaluate(); + if (std::isinf(samples[frame_counter]) != 0 || std::isnan(samples[frame_counter]) != 0) + { + samples[frame_counter] = 0; + } } m_raw_graph->setSamples(samples); delete[] samples; diff --git a/plugins/Xpressive/Xpressive.h b/plugins/Xpressive/Xpressive.h index b91957ac480..7dd8dcfaa7a 100644 --- a/plugins/Xpressive/Xpressive.h +++ b/plugins/Xpressive/Xpressive.h @@ -68,7 +68,7 @@ class Xpressive : public Instrument Xpressive(InstrumentTrack* instrument_track ); void playNote(NotePlayHandle* nph, - sampleFrame* working_buffer ) override; + SampleFrame* working_buffer ) override; void deleteNotePluginData( NotePlayHandle* nph ) override; @@ -190,6 +190,7 @@ protected slots: PixmapButton *m_w3Btn; PixmapButton *m_o1Btn; PixmapButton *m_o2Btn; + PixmapButton *m_helpBtn; PixmapButton *m_sinWaveBtn; PixmapButton *m_triangleWaveBtn; PixmapButton *m_sqrWaveBtn; diff --git a/plugins/ZynAddSubFx/CMakeLists.txt b/plugins/ZynAddSubFx/CMakeLists.txt index 3369a793865..cbd7326fe6b 100644 --- a/plugins/ZynAddSubFx/CMakeLists.txt +++ b/plugins/ZynAddSubFx/CMakeLists.txt @@ -12,7 +12,7 @@ set(CMAKE_POSITION_INDEPENDENT_CODE ON) # definitions for ZynAddSubFX IF(LMMS_BUILD_LINUX OR LMMS_BUILD_APPLE OR LMMS_BUILD_OPENBSD OR LMMS_BUILD_FREEBSD) FIND_PACKAGE(X11) - INCLUDE_DIRECTORIES(${X11_INCLUDE_DIR}) + include_directories(SYSTEM ${X11_INCLUDE_DIR}) ADD_DEFINITIONS(-DOS_LINUX) ELSE() ADD_DEFINITIONS(-DOS_WINDOWS) @@ -25,13 +25,9 @@ endif() # build ZynAddSubFX with full optimizations if(NOT MSVC) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2 -Wno-write-strings -Wno-deprecated-declarations -fpermissive") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2 -fpermissive") endif() -IF("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" AND NOT "${CMAKE_CXX_COMPILER_VERSION}" VERSION_LESS "6.0.0") - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-misleading-indentation") -ENDIF() - IF(MINGW_PREFIX) SET(FLTK_FLUID_EXECUTABLE "${MINGW_PREFIX}/bin/fluid") ENDIF() @@ -44,21 +40,21 @@ IF(NOT EXISTS ${FLTK_FLUID_EXECUTABLE}) ENDIF() ENDIF() -include_directories( +include_directories(SYSTEM "${FLTK_INCLUDE_DIR}" - "${CMAKE_CURRENT_SOURCE_DIR}" ${FFTW3F_INCLUDE_DIRS} +) +include_directories( + "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_BINARY_DIR}" "${CMAKE_BINARY_DIR}" - "${CMAKE_SOURCE_DIR}/src/3rdparty/mingw-std-threads" - "${CMAKE_CURRENT_SOURCE_DIR}/zynaddsubfx/src/UI" ) ADD_DEFINITIONS(-DPLUGINVERSION) # removes exit confirmation dialogs etc. in MasterUI.fl add_subdirectory(zynaddsubfx/src/Nio) add_subdirectory(zynaddsubfx/src/UI) -SET(zynaddsubfx_core_SRCS +add_library(zynaddsubfx_synth OBJECT zynaddsubfx/src/DSP/AnalogFilter.cpp zynaddsubfx/src/DSP/FFTwrapper.cpp zynaddsubfx/src/DSP/Filter.cpp @@ -107,13 +103,26 @@ SET(zynaddsubfx_core_SRCS zynaddsubfx/src/Synth/SUBnote.cpp ) -add_library(ZynAddSubFxCoreObjs OBJECT LocalZynAddSubFx.cpp ${zynaddsubfx_core_SRCS}) -add_library(ZynAddSubFxCore INTERFACE) -target_sources(ZynAddSubFxCore INTERFACE - $ - $ -) +set_target_properties(zynaddsubfx_nio PROPERTIES SYSTEM TRUE) +set_target_properties(zynaddsubfx_gui PROPERTIES SYSTEM TRUE) +set_target_properties(zynaddsubfx_synth PROPERTIES SYSTEM TRUE) + +# Relative include paths don't work automatically for the GUI, because the +# generated C++ files aren't in the source directory. Thus, add the expected +# source directory as an additional include directory. +target_include_directories(zynaddsubfx_gui PUBLIC zynaddsubfx/src/UI) +add_library(ZynAddSubFxCore STATIC + LocalZynAddSubFx.cpp +) +target_include_directories(ZynAddSubFxCore SYSTEM PUBLIC + zynaddsubfx/src + "${CMAKE_CURRENT_BINARY_DIR}/zynaddsubfx/src" +) +target_static_libraries(ZynAddSubFxCore PUBLIC + zynaddsubfx_nio + zynaddsubfx_synth +) target_link_libraries(ZynAddSubFxCore INTERFACE ${FFTW3F_LIBRARIES} ${QT_LIBRARIES} @@ -132,7 +141,7 @@ ELSE() SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${PLUGIN_DIR}") ENDIF() BUILD_PLUGIN(zynaddsubfx ZynAddSubFx.cpp ZynAddSubFx.h MOCFILES ZynAddSubFx.h EMBEDDED_RESOURCES artwork.png logo.png) -target_link_libraries(zynaddsubfx ZynAddSubFxCore) +target_static_libraries(zynaddsubfx ZynAddSubFxCore) if(MSVC) set(WINRC "${CMAKE_CURRENT_BINARY_DIR}/zynaddsubfx.rc") @@ -155,8 +164,8 @@ add_executable(RemoteZynAddSubFx RemoteZynAddSubFx.cpp ${LMMS_COMMON_SRCS} "${WINRC}" - $ ) +target_static_libraries(RemoteZynAddSubFx ZynAddSubFxCore zynaddsubfx_gui) INSTALL(TARGETS RemoteZynAddSubFx RUNTIME DESTINATION "${PLUGIN_DIR}") # Needed to deploy dependencies of RemoteZynAddSubFx SET_PROPERTY(GLOBAL APPEND PROPERTY PLUGINS_BUILT "RemoteZynAddSubFx") @@ -164,8 +173,8 @@ SET_PROPERTY(GLOBAL APPEND PROPERTY PLUGINS_BUILT "RemoteZynAddSubFx") TARGET_COMPILE_DEFINITIONS(RemoteZynAddSubFx PRIVATE BUILD_REMOTE_PLUGIN_CLIENT) IF(LMMS_BUILD_WIN32) - SET_TARGET_PROPERTIES(RemoteZynAddSubFx PROPERTIES LINK_FLAGS "${LINK_FLAGS} -mwindows") -ENDIF(LMMS_BUILD_WIN32) + target_link_options(RemoteZynAddSubFx PRIVATE "-mwindows") +ENDIF() # Remove useless dependencies from FLTK. Use fltk-config to avoid static library # in older environments @@ -176,7 +185,7 @@ IF(FLTK_CONFIG AND NOT (LMMS_BUILD_APPLE OR LMMS_BUILD_WIN32)) STRING(REPLACE " " ";" FLTK_FILTERED_LDFLAGS ${FLTK_FILTERED_LDFLAGS}) LIST(REMOVE_ITEM FLTK_FILTERED_LDFLAGS -lX11) ENDIF() -target_link_libraries(RemoteZynAddSubFx ZynAddSubFxCore ${FLTK_FILTERED_LDFLAGS}) +target_link_libraries(RemoteZynAddSubFx ${FLTK_FILTERED_LDFLAGS}) if(LMMS_HAVE_LIBRT) target_link_libraries(RemoteZynAddSubFx rt) diff --git a/plugins/ZynAddSubFx/LocalZynAddSubFx.cpp b/plugins/ZynAddSubFx/LocalZynAddSubFx.cpp index 83ef3e9a246..5dc8fb2052a 100644 --- a/plugins/ZynAddSubFx/LocalZynAddSubFx.cpp +++ b/plugins/ZynAddSubFx/LocalZynAddSubFx.cpp @@ -36,11 +36,12 @@ #endif #include "MidiEvent.h" +#include "SampleFrame.h" -#include "zynaddsubfx/src/Nio/NulEngine.h" -#include "zynaddsubfx/src/Misc/Master.h" -#include "zynaddsubfx/src/Misc/Part.h" -#include "zynaddsubfx/src/Misc/Util.h" +#include +#include +#include +#include // Global variable in zynaddsubfx/src/globals.h SYNTH_T* synth = nullptr; @@ -265,7 +266,7 @@ void LocalZynAddSubFx::processMidiEvent( const MidiEvent& event ) -void LocalZynAddSubFx::processAudio( sampleFrame * _out ) +void LocalZynAddSubFx::processAudio( SampleFrame* _out ) { #ifdef _MSC_VER const auto outputl = static_cast(_alloca(synth->buffersize * sizeof(float))); diff --git a/plugins/ZynAddSubFx/LocalZynAddSubFx.h b/plugins/ZynAddSubFx/LocalZynAddSubFx.h index f37a3e0f41f..5ef735f6472 100644 --- a/plugins/ZynAddSubFx/LocalZynAddSubFx.h +++ b/plugins/ZynAddSubFx/LocalZynAddSubFx.h @@ -25,6 +25,8 @@ #ifndef LOCAL_ZYNADDSUBFX_H #define LOCAL_ZYNADDSUBFX_H +#include + #include "Note.h" class Master; @@ -34,10 +36,12 @@ namespace lmms { class MidiEvent; +class SampleFrame; class LocalZynAddSubFx { + public: LocalZynAddSubFx(); ~LocalZynAddSubFx(); @@ -59,7 +63,7 @@ class LocalZynAddSubFx void processMidiEvent( const MidiEvent& event ); - void processAudio( sampleFrame * _out ); + void processAudio( SampleFrame* _out ); inline Master * master() { diff --git a/plugins/ZynAddSubFx/RemoteZynAddSubFx.cpp b/plugins/ZynAddSubFx/RemoteZynAddSubFx.cpp index c4d6b71a16b..d6b3b7b34c9 100644 --- a/plugins/ZynAddSubFx/RemoteZynAddSubFx.cpp +++ b/plugins/ZynAddSubFx/RemoteZynAddSubFx.cpp @@ -37,8 +37,8 @@ #include "RemotePluginClient.h" #include "LocalZynAddSubFx.h" -#include "zynaddsubfx/src/Nio/Nio.h" -#include "zynaddsubfx/src/UI/MasterUI.h" +#include +#include using namespace lmms; @@ -141,7 +141,7 @@ class RemoteZynAddSubFx : public RemotePluginClient, public LocalZynAddSubFx } - void process( const sampleFrame * _in, sampleFrame * _out ) override + void process( const SampleFrame* _in, SampleFrame* _out ) override { LocalZynAddSubFx::processAudio( _out ); } diff --git a/plugins/ZynAddSubFx/ThreadShims.h b/plugins/ZynAddSubFx/ThreadShims.h index 843b50fb58b..ff947b3d063 100644 --- a/plugins/ZynAddSubFx/ThreadShims.h +++ b/plugins/ZynAddSubFx/ThreadShims.h @@ -1,9 +1,3 @@ #include #include #include - -#if defined(__MINGW32__) && !defined(_GLIBCXX_HAS_GTHREADS) -# include -# include -# include -#endif diff --git a/plugins/ZynAddSubFx/ZynAddSubFx.cpp b/plugins/ZynAddSubFx/ZynAddSubFx.cpp index be38bcb7978..19864932d8a 100644 --- a/plugins/ZynAddSubFx/ZynAddSubFx.cpp +++ b/plugins/ZynAddSubFx/ZynAddSubFx.cpp @@ -40,7 +40,6 @@ #include "DataFile.h" #include "InstrumentPlayHandle.h" #include "InstrumentTrack.h" -#include "gui_templates.h" #include "Song.h" #include "StringPairDrag.h" #include "RemoteZynAddSubFx.h" @@ -49,6 +48,7 @@ #include "Clipboard.h" #include "embed.h" +#include "FontHelper.h" #include "plugin_export.h" namespace lmms @@ -104,12 +104,12 @@ bool ZynAddSubFxRemotePlugin::processMessage( const message & _m ) ZynAddSubFxInstrument::ZynAddSubFxInstrument( InstrumentTrack * _instrumentTrack ) : - Instrument( _instrumentTrack, &zynaddsubfx_plugin_descriptor ), + Instrument(_instrumentTrack, &zynaddsubfx_plugin_descriptor, nullptr, Flag::IsSingleStreamed | Flag::IsMidiBased), m_hasGUI( false ), m_plugin( nullptr ), m_remotePlugin( nullptr ), m_portamentoModel( 0, 0, 127, 1, this, tr( "Portamento" ) ), - m_filterFreqModel( 64, 0, 127, 1, this, tr( "Filter frequency" ) ), + m_filterFreqModel( 127, 0, 127, 1, this, tr( "Filter frequency" ) ), m_filterQModel( 64, 0, 127, 1, this, tr( "Filter resonance" ) ), m_bandwidthModel( 64, 0, 127, 1, this, tr( "Bandwidth" ) ), m_fmGainModel( 127, 0, 127, 1, this, tr( "FM gain" ) ), @@ -143,6 +143,11 @@ ZynAddSubFxInstrument::ZynAddSubFxInstrument( connect( instrumentTrack()->pitchRangeModel(), SIGNAL( dataChanged() ), this, SLOT( updatePitchRange() ), Qt::DirectConnection ); + + // ZynAddSubFX's internal value that LMMS's FREQ knob controls + // isn't set properly when the instrument is first loaded in, + // and doesn't update until the FREQ knob is moved + updateFilterFreq(); } @@ -311,7 +316,7 @@ void ZynAddSubFxInstrument::loadFile( const QString & _file ) m_pluginMutex.unlock(); } - instrumentTrack()->setName( QFileInfo( _file ).baseName().replace( QRegExp( "^[0-9]{4}-" ), QString() ) ); + instrumentTrack()->setName(QFileInfo(_file).baseName().replace(QRegularExpression("^[0-9]{4}-"), QString())); m_modifiedControllers.clear(); @@ -329,7 +334,7 @@ QString ZynAddSubFxInstrument::nodeName() const -void ZynAddSubFxInstrument::play( sampleFrame * _buf ) +void ZynAddSubFxInstrument::play( SampleFrame* _buf ) { if (!m_pluginMutex.tryLock(Engine::getSong()->isExporting() ? -1 : 0)) {return;} if( m_remotePlugin ) @@ -452,7 +457,7 @@ void ZynAddSubFxInstrument::initPlugin() QDir( ConfigManager::inst()->factoryPresetsDir() + "/ZynAddSubFX" ).absolutePath() ) ) ); - m_remotePlugin->updateSampleRate( Engine::audioEngine()->processingSampleRate() ); + m_remotePlugin->updateSampleRate( Engine::audioEngine()->outputSampleRate() ); // temporary workaround until the VST synchronization feature gets stripped out of the RemotePluginClient class // causing not to send buffer size information requests @@ -464,7 +469,7 @@ void ZynAddSubFxInstrument::initPlugin() else { m_plugin = new LocalZynAddSubFx; - m_plugin->setSampleRate( Engine::audioEngine()->processingSampleRate() ); + m_plugin->setSampleRate( Engine::audioEngine()->outputSampleRate() ); m_plugin->setBufferSize( Engine::audioEngine()->framesPerPeriod() ); } @@ -541,7 +546,9 @@ ZynAddSubFxView::ZynAddSubFxView( Instrument * _instrument, QWidget * _parent ) m_toggleUIButton->setCheckable( true ); m_toggleUIButton->setChecked( false ); m_toggleUIButton->setIcon( embed::getIconPixmap( "zoom" ) ); - m_toggleUIButton->setFont( pointSize<8>( m_toggleUIButton->font() ) ); + QFont f = m_toggleUIButton->font(); + m_toggleUIButton->setFont(adjustedToPixelSize(f, DEFAULT_FONT_SIZE)); + connect( m_toggleUIButton, SIGNAL( toggled( bool ) ), this, SLOT( toggleUI() ) ); diff --git a/plugins/ZynAddSubFx/ZynAddSubFx.h b/plugins/ZynAddSubFx/ZynAddSubFx.h index a391203f382..a35bc8f79ef 100644 --- a/plugins/ZynAddSubFx/ZynAddSubFx.h +++ b/plugins/ZynAddSubFx/ZynAddSubFx.h @@ -28,12 +28,12 @@ #include #include +#include + #include "AutomatableModel.h" #include "Instrument.h" #include "InstrumentView.h" #include "RemotePlugin.h" -#include "zynaddsubfx/src/globals.h" - class QPushButton; @@ -74,7 +74,7 @@ class ZynAddSubFxInstrument : public Instrument ZynAddSubFxInstrument( InstrumentTrack * _instrument_track ); ~ZynAddSubFxInstrument() override; - void play( sampleFrame * _working_buffer ) override; + void play( SampleFrame* _working_buffer ) override; bool handleMidiEvent( const MidiEvent& event, const TimePos& time = TimePos(), f_cnt_t offset = 0 ) override; @@ -86,11 +86,6 @@ class ZynAddSubFxInstrument : public Instrument QString nodeName() const override; - Flags flags() const override - { - return Flag::IsSingleStreamed | Flag::IsMidiBased; - } - gui::PluginView* instantiateView( QWidget * _parent ) override; diff --git a/plugins/ZynAddSubFx/zynaddsubfx b/plugins/ZynAddSubFx/zynaddsubfx index 7ad5663cbee..d958c3668cc 160000 --- a/plugins/ZynAddSubFx/zynaddsubfx +++ b/plugins/ZynAddSubFx/zynaddsubfx @@ -1 +1 @@ -Subproject commit 7ad5663cbeebc02d73fd3ad666e428c1287f2cda +Subproject commit d958c3668cc163805d581e97eb4d742168b6aad9 diff --git a/src/3rdparty/CMakeLists.txt b/src/3rdparty/CMakeLists.txt index a95332a0754..e5cb6252756 100644 --- a/src/3rdparty/CMakeLists.txt +++ b/src/3rdparty/CMakeLists.txt @@ -1,25 +1,32 @@ -IF(LMMS_BUILD_LINUX AND WANT_VST) +set_directory_properties(PROPERTIES SYSTEM TRUE) + +if(LMMS_BUILD_LINUX AND LMMS_HAVE_VST) set(BUILD_SHARED_LIBS OFF) add_subdirectory(qt5-x11embed) ENDIF() +add_library(jack_headers INTERFACE) +target_include_directories(jack_headers INTERFACE jack2/common) + ADD_SUBDIRECTORY(hiir) -ADD_SUBDIRECTORY(rpmalloc) ADD_SUBDIRECTORY(weakjack) -if(MINGW) - option(MINGW_STDTHREADS_GENERATE_STDHEADERS "" ON) - add_subdirectory(mingw-std-threads) - set(LMMS_USE_MINGW_STD_THREADS ON PARENT_SCOPE) -endif() - -# The lockless ring buffer library is compiled as part of the core -SET(RINGBUFFER_DIR "${CMAKE_SOURCE_DIR}/src/3rdparty/ringbuffer/") -SET(RINGBUFFER_DIR ${RINGBUFFER_DIR} PARENT_SCOPE) +# The lockless ring buffer library is linked as part of the core +add_library(ringbuffer OBJECT + ringbuffer/src/lib/ringbuffer.cpp +) +target_compile_features(ringbuffer PUBLIC cxx_std_17) +target_include_directories(ringbuffer PUBLIC + ringbuffer/include + "${CMAKE_CURRENT_BINARY_DIR}" +) # Create a dummy ringbuffer_export.h, since ringbuffer is not compiled as a library -FILE(WRITE ${CMAKE_BINARY_DIR}/src/ringbuffer_export.h - "#include \"${CMAKE_BINARY_DIR}/src/lmms_export.h\"\n - #define RINGBUFFER_EXPORT LMMS_EXPORT") +file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/ringbuffer_export.h.in" [[ + #include "${CMAKE_BINARY_DIR}/src/lmms_export.h" + #define RINGBUFFER_EXPORT LMMS_EXPORT +]]) +configure_file("${CMAKE_CURRENT_BINARY_DIR}/ringbuffer_export.h.in" ringbuffer_export.h) +target_compile_definitions(ringbuffer PRIVATE lmmsobjs_EXPORTS) # Enable MLOCK support for ringbuffer if available INCLUDE(CheckIncludeFiles) CHECK_INCLUDE_FILES(sys/mman.h HAVE_SYS_MMAN) @@ -29,5 +36,5 @@ ELSE() SET(USE_MLOCK OFF) ENDIF() # Generate ringbuffer configuration headers -CONFIGURE_FILE(${RINGBUFFER_DIR}/src/ringbuffer-config.h.in ${CMAKE_BINARY_DIR}/src/ringbuffer-config.h) -CONFIGURE_FILE(${RINGBUFFER_DIR}/src/ringbuffer-version.h.in ${CMAKE_BINARY_DIR}/src/ringbuffer-version.h) +configure_file(ringbuffer/src/ringbuffer-config.h.in ringbuffer-config.h) +configure_file(ringbuffer/src/ringbuffer-version.h.in ringbuffer-version.h) diff --git a/src/3rdparty/jack2 b/src/3rdparty/jack2 index db76dd6bb87..ac334fabfb5 160000 --- a/src/3rdparty/jack2 +++ b/src/3rdparty/jack2 @@ -1 +1 @@ -Subproject commit db76dd6bb879a0a24d73ec41cc2e6a21bca8ee08 +Subproject commit ac334fabfb56989e9115ee6e2a77c1f6162d14fb diff --git a/src/3rdparty/mingw-std-threads b/src/3rdparty/mingw-std-threads deleted file mode 160000 index 6c2061b7da4..00000000000 --- a/src/3rdparty/mingw-std-threads +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 6c2061b7da41d6aa1b2162ff4383ec3ece864bc6 diff --git a/src/3rdparty/rpmalloc/CMakeLists.txt b/src/3rdparty/rpmalloc/CMakeLists.txt deleted file mode 100644 index 047c32678c2..00000000000 --- a/src/3rdparty/rpmalloc/CMakeLists.txt +++ /dev/null @@ -1,49 +0,0 @@ -add_library(rpmalloc STATIC - rpmalloc/rpmalloc/rpmalloc.c - rpmalloc/rpmalloc/rpmalloc.h -) - -target_include_directories(rpmalloc PUBLIC - ${CMAKE_CURRENT_SOURCE_DIR}/rpmalloc/rpmalloc -) - -set_property(TARGET rpmalloc PROPERTY C_STANDARD 11) - -IF(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang") - target_compile_options(rpmalloc - PRIVATE -Wno-unused-variable - ) -endif() - -if (NOT LMMS_BUILD_WIN32) - target_compile_definitions(rpmalloc - PRIVATE -D_GNU_SOURCE - ) -endif() - -if(MINGW) - target_compile_definitions(rpmalloc - PRIVATE -D_WIN32_WINNT=0x600 - ) -endif() - -if (CMAKE_BUILD_TYPE STREQUAL "Debug") - # rpmalloc uses GCC builtin "__builtin_umull_overflow" with ENABLE_VALIDATE_ARGS, - # which is only available starting with GCC 5 - if (CMAKE_C_COMPILER_ID STREQUAL "GNU" AND CMAKE_C_COMPILER_VERSION VERSION_LESS 5) - set(ENABLE_VALIDATE_ARGS OFF) - else () - set(ENABLE_VALIDATE_ARGS ON) - endif() - target_compile_definitions(rpmalloc - PRIVATE -DENABLE_ASSERTS=1 -DENABLE_VALIDATE_ARGS=${ENABLE_VALIDATE_ARGS} - ) -endif() - -option(LMMS_ENABLE_MALLOC_STATS "Enables statistics for rpmalloc" OFF) - -if (LMMS_ENABLE_MALLOC_STATS) - target_compile_definitions(rpmalloc - PRIVATE -DENABLE_STATISTICS=1 - ) -endif() diff --git a/src/3rdparty/rpmalloc/rpmalloc b/src/3rdparty/rpmalloc/rpmalloc deleted file mode 160000 index 80daac0d539..00000000000 --- a/src/3rdparty/rpmalloc/rpmalloc +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 80daac0d539ab2a8edfd5ca24b1e0c77a4974bbb diff --git a/src/3rdparty/weakjack/CMakeLists.txt b/src/3rdparty/weakjack/CMakeLists.txt index 7600c3915ed..15c6d953e73 100644 --- a/src/3rdparty/weakjack/CMakeLists.txt +++ b/src/3rdparty/weakjack/CMakeLists.txt @@ -1,12 +1,14 @@ # Use weak jack library linking -IF(LMMS_HAVE_WEAKJACK) - SET(CMAKE_C_FLAGS "-std=c11") - +if(LMMS_HAVE_WEAKJACK) + add_library(weakjack STATIC + weakjack/weak_libjack.c + ) + target_include_directories(weakjack PUBLIC weakjack) + target_link_libraries(weakjack PUBLIC jack_headers ${CMAKE_DL_LIBS}) + target_compile_features(weakjack PRIVATE c_std_11) # Enable weakjack, disable metadata support - ADD_DEFINITIONS(-DUSE_WEAK_JACK=1 -DNO_JACK_METADATA=1) - - # Library stub for AppImages running on systems without jack - ADD_LIBRARY(weakjack MODULE weakjack/weak_libjack.c weakjack/weak_libjack.h) - TARGET_INCLUDE_DIRECTORIES(weakjack PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/weakjack ${JACK_INCLUDE_DIRS}) - INSTALL(TARGETS weakjack LIBRARY DESTINATION "${PLUGIN_DIR}/optional") -ENDIF() + target_compile_definitions(weakjack PUBLIC + USE_WEAK_JACK=1 + NO_JACK_METADATA=1 + ) +endif() diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index c074ea2ef5e..7645e49e34e 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -4,9 +4,9 @@ CONFIGURE_FILE("lmmsconfig.h.in" "${CMAKE_BINARY_DIR}/lmmsconfig.h") CONFIGURE_FILE("lmmsversion.h.in" "${CMAKE_BINARY_DIR}/lmmsversion.h") SET(LMMS_SRCS "") -SET(LMMS_UIS "") SET(CMAKE_AUTOMOC ON) +SET(CMAKE_AUTOUIC ON) SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) # Enable C++17 @@ -23,14 +23,12 @@ ADD_SUBDIRECTORY(tracks) LIST(APPEND LMMS_SRCS ${LMMS_COMMON_SRCS}) -QT5_WRAP_UI(LMMS_UI_OUT ${LMMS_UIS}) INCLUDE_DIRECTORIES( "${CMAKE_CURRENT_BINARY_DIR}" "${CMAKE_BINARY_DIR}" "${CMAKE_BINARY_DIR}/include" "${CMAKE_SOURCE_DIR}" "${CMAKE_SOURCE_DIR}/include" - "${RINGBUFFER_DIR}/include" ) IF(WIN32 AND MSVC) @@ -56,39 +54,27 @@ ADD_GEN_QRC(LMMS_RCC_OUT lmms.qrc FILE(RELATIVE_PATH LIB_DIR_RELATIVE "/${BIN_DIR}" "/${LIB_DIR}") FILE(RELATIVE_PATH PLUGIN_DIR_RELATIVE "/${BIN_DIR}" "/${PLUGIN_DIR}") ADD_DEFINITIONS(-DLIB_DIR="${LIB_DIR_RELATIVE}" -DPLUGIN_DIR="${PLUGIN_DIR_RELATIVE}" ${PULSEAUDIO_DEFINITIONS}) -INCLUDE_DIRECTORIES( +include_directories(SYSTEM ${JACK_INCLUDE_DIRS} ${SNDIO_INCLUDE_DIRS} ${FFTW3F_INCLUDE_DIRS} ) -IF(NOT LMMS_HAVE_SDL2 AND NOT ("${SDL_INCLUDE_DIR}" STREQUAL "")) - INCLUDE_DIRECTORIES("${SDL_INCLUDE_DIR}") -ENDIF() - -IF(LMMS_HAVE_WEAKJACK) - LIST(APPEND LMMS_SRCS "${WEAKJACK_INCLUDE_DIRS}/weak_libjack.c") - LIST(APPEND LMMS_INCLUDES "${WEAKJACK_INCLUDE_DIRS}/weak_libjack.h") - INCLUDE_DIRECTORIES("${WEAKJACK_INCLUDE_DIRS}") - ADD_DEFINITIONS(-DUSE_WEAK_JACK=1 -DNO_JACK_METADATA=1) -ENDIF() - IF(NOT ("${PULSEAUDIO_INCLUDE_DIR}" STREQUAL "")) - INCLUDE_DIRECTORIES("${PULSEAUDIO_INCLUDE_DIR}") + include_directories(SYSTEM "${PULSEAUDIO_INCLUDE_DIR}") ENDIF() IF(NOT ("${LV2_INCLUDE_DIRS}" STREQUAL "")) - INCLUDE_DIRECTORIES(${LV2_INCLUDE_DIRS}) + include_directories(SYSTEM ${LV2_INCLUDE_DIRS}) ENDIF() IF(NOT ("${LILV_INCLUDE_DIRS}" STREQUAL "")) - INCLUDE_DIRECTORIES(${LILV_INCLUDE_DIRS}) + include_directories(SYSTEM ${LILV_INCLUDE_DIRS}) ENDIF() IF(NOT ("${SUIL_INCLUDE_DIRS}" STREQUAL "")) - INCLUDE_DIRECTORIES(${SUIL_INCLUDE_DIRS}) + include_directories(SYSTEM ${SUIL_INCLUDE_DIRS}) ENDIF() -LIST(APPEND LMMS_SRCS "${RINGBUFFER_DIR}/src/lib/ringbuffer.cpp") # Use libraries in non-standard directories (e.g., another version of Qt) IF(LMMS_BUILD_LINUX) @@ -100,7 +86,6 @@ SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) ADD_LIBRARY(lmmsobjs OBJECT ${LMMS_SRCS} ${LMMS_INCLUDES} - ${LMMS_UI_OUT} ${LMMS_RCC_OUT} ) @@ -110,23 +95,20 @@ GENERATE_EXPORT_HEADER(lmmsobjs ADD_EXECUTABLE(lmms core/main.cpp - $ "${WINRC}" ) TARGET_INCLUDE_DIRECTORIES(lmms PUBLIC ${CMAKE_CURRENT_BINARY_DIR} ) +target_static_libraries(lmms PUBLIC lmmsobjs) # CMake doesn't define target_EXPORTS for OBJECT libraries. # See the documentation of DEFINE_SYMBOL for details. # Also add LMMS_STATIC_DEFINE for targets linking against it. TARGET_COMPILE_DEFINITIONS(lmmsobjs PRIVATE -Dlmmsobjs_EXPORTS - INTERFACE -DLMMS_STATIC_DEFINE -) -TARGET_COMPILE_DEFINITIONS(lmms - PRIVATE $ ) +target_static_definitions(lmmsobjs LMMS_STATIC_DEFINE) # Set Visual Studio startup project to lmms # https://stackoverflow.com/a/37994396/8166701 @@ -134,7 +116,7 @@ IF(NOT CMAKE_VERSION VERSION_LESS 3.6) SET_PROPERTY(DIRECTORY ${CMAKE_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT lmms) ENDIF() -SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${LMMS_RCC_OUT} ${LMMS_UI_OUT} lmmsconfig.h lmms.1.gz") +SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${LMMS_RCC_OUT} lmmsconfig.h lmms.1.gz") IF(LMMS_BUILD_WIN32) SET(EXTRA_LIBRARIES "winmm") @@ -168,10 +150,6 @@ if(LMMS_HAVE_OGGVORBIS) list(APPEND EXTRA_LIBRARIES Vorbis::vorbisenc Vorbis::vorbisfile) endif() -if(LMMS_USE_MINGW_STD_THREADS) - list(APPEND EXTRA_LIBRARIES mingw_stdthreads) -endif() - SET(LMMS_REQUIRED_LIBS ${LMMS_REQUIRED_LIBS} ${CMAKE_THREAD_LIBS_INIT} ${QT_LIBRARIES} @@ -186,46 +164,24 @@ SET(LMMS_REQUIRED_LIBS ${LMMS_REQUIRED_LIBS} ${SUIL_LIBRARIES} ${LILV_LIBRARIES} ${FFTW3F_LIBRARIES} - rpmalloc SampleRate::samplerate SndFile::sndfile ${EXTRA_LIBRARIES} ) -# Expose required libs for tests binary -SET(LMMS_REQUIRED_LIBS ${LMMS_REQUIRED_LIBS} PARENT_SCOPE) - -TARGET_LINK_LIBRARIES(lmms +target_link_libraries(lmmsobjs ${LMMS_REQUIRED_LIBS} ) - -FOREACH(LIB ${LMMS_REQUIRED_LIBS}) - IF(TARGET ${LIB}) - GET_TARGET_PROPERTY(INCLUDE_DIRS ${LIB} INTERFACE_INCLUDE_DIRECTORIES) - IF(INCLUDE_DIRS) - TARGET_INCLUDE_DIRECTORIES(lmmsobjs PRIVATE ${INCLUDE_DIRS}) - ENDIF() - ENDIF() -ENDFOREACH() +target_static_libraries(lmmsobjs ringbuffer) set_target_properties(lmms PROPERTIES ENABLE_EXPORTS ON + WIN32_EXECUTABLE $> ) -IF(LMMS_BUILD_WIN32) - IF(NOT MSVC) - SET_PROPERTY(TARGET lmms - APPEND_STRING PROPERTY LINK_FLAGS " -mwindows" - ) - ENDIF() - IF(LMMS_BUILD_MSYS) - # ENABLE_EXPORTS property has no effect in some MSYS2 configurations. - # Add the linker flag manually to create liblmms.dll.a import library - SET_PROPERTY(TARGET lmms - APPEND_STRING PROPERTY LINK_FLAGS " -Wl,--out-implib,liblmms.dll.a" - ) - ENDIF() -ELSE() +set_target_properties(lmmsobjs PROPERTIES AUTOUIC_SEARCH_PATHS "gui/modals") + +IF(NOT WIN32) if(CMAKE_INSTALL_MANDIR) SET(INSTALL_MANDIR ${CMAKE_INSTALL_MANDIR}) ELSE(CMAKE_INSTALL_MANDIR) diff --git a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt index 877bea3fcc8..9f349f09103 100644 --- a/src/common/CMakeLists.txt +++ b/src/common/CMakeLists.txt @@ -1,6 +1,7 @@ set(COMMON_SRCS RemotePluginBase.cpp SharedMemory.cpp + SystemSemaphore.cpp ) foreach(SRC ${COMMON_SRCS}) diff --git a/src/common/RemotePluginBase.cpp b/src/common/RemotePluginBase.cpp index a4739a63cf1..97ae8ac9ee7 100644 --- a/src/common/RemotePluginBase.cpp +++ b/src/common/RemotePluginBase.cpp @@ -34,23 +34,23 @@ namespace lmms #ifdef SYNC_WITH_SHM_FIFO -RemotePluginBase::RemotePluginBase( shmFifo * _in, shmFifo * _out ) : - m_in( _in ), - m_out( _out ) +RemotePluginBase::RemotePluginBase(shmFifo * _in, shmFifo * _out) : + m_in(_in), + m_out(_out) #else RemotePluginBase::RemotePluginBase() : - m_socket( -1 ), - m_invalid( false ) + m_socket(-1), + m_invalid(false) #endif { #ifdef LMMS_HAVE_LOCALE_H // make sure, we're using common ways to print/scan // floats to/from strings (',' vs. '.' for decimal point etc.) - setlocale( LC_NUMERIC, "C" ); + setlocale(LC_NUMERIC, "C"); #endif #ifndef SYNC_WITH_SHM_FIFO - pthread_mutex_init( &m_receiveMutex, nullptr ); - pthread_mutex_init( &m_sendMutex, nullptr ); + pthread_mutex_init(&m_receiveMutex, nullptr); + pthread_mutex_init(&m_sendMutex, nullptr); #endif } @@ -63,39 +63,39 @@ RemotePluginBase::~RemotePluginBase() delete m_in; delete m_out; #else - pthread_mutex_destroy( &m_receiveMutex ); - pthread_mutex_destroy( &m_sendMutex ); + pthread_mutex_destroy(&m_receiveMutex); + pthread_mutex_destroy(&m_sendMutex); #endif } -int RemotePluginBase::sendMessage( const message & _m ) +int RemotePluginBase::sendMessage(const message & _m) { #ifdef SYNC_WITH_SHM_FIFO m_out->lock(); - m_out->writeInt( _m.id ); - m_out->writeInt( _m.data.size() ); + m_out->writeInt(_m.id); + m_out->writeInt(_m.data.size()); int j = 8; - for( unsigned int i = 0; i < _m.data.size(); ++i ) + for (unsigned int i = 0; i < _m.data.size(); ++i) { - m_out->writeString( _m.data[i] ); + m_out->writeString(_m.data[i]); j += 4 + _m.data[i].size(); } m_out->unlock(); m_out->messageSent(); #else - pthread_mutex_lock( &m_sendMutex ); - writeInt( _m.id ); - writeInt( _m.data.size() ); + pthread_mutex_lock(&m_sendMutex); + writeInt(_m.id); + writeInt(_m.data.size()); int j = 8; for (const auto& str : _m.data) { writeString(str); j += 4 + str.size(); } - pthread_mutex_unlock( &m_sendMutex ); + pthread_mutex_unlock(&m_sendMutex); #endif return j; @@ -112,21 +112,21 @@ RemotePluginBase::message RemotePluginBase::receiveMessage() message m; m.id = m_in->readInt(); const int s = m_in->readInt(); - for( int i = 0; i < s; ++i ) + for (int i = 0; i < s; ++i) { - m.data.push_back( m_in->readString() ); + m.data.push_back(m_in->readString()); } m_in->unlock(); #else - pthread_mutex_lock( &m_receiveMutex ); + pthread_mutex_lock(&m_receiveMutex); message m; m.id = readInt(); const int s = readInt(); - for( int i = 0; i < s; ++i ) + for (int i = 0; i < s; ++i) { - m.data.push_back( readString() ); + m.data.push_back(readString()); } - pthread_mutex_unlock( &m_receiveMutex ); + pthread_mutex_unlock(&m_receiveMutex); #endif return m; } @@ -136,10 +136,10 @@ RemotePluginBase::message RemotePluginBase::receiveMessage() RemotePluginBase::message RemotePluginBase::waitForMessage( const message & _wm, - bool _busy_waiting ) + bool _busy_waiting) { #ifndef BUILD_REMOTE_PLUGIN_CLIENT - if( _busy_waiting ) + if (_busy_waiting) { // No point processing events outside of the main thread _busy_waiting = QThread::currentThread() == @@ -148,41 +148,41 @@ RemotePluginBase::message RemotePluginBase::waitForMessage( struct WaitDepthCounter { - WaitDepthCounter( int & depth, bool busy ) : - m_depth( depth ), - m_busy( busy ) + WaitDepthCounter(int & depth, bool busy) : + m_depth(depth), + m_busy(busy) { - if( m_busy ) { ++m_depth; } + if (m_busy) { ++m_depth; } } ~WaitDepthCounter() { - if( m_busy ) { --m_depth; } + if (m_busy) { --m_depth; } } int & m_depth; bool m_busy; }; - WaitDepthCounter wdc( waitDepthCounter(), _busy_waiting ); + WaitDepthCounter wdc(waitDepthCounter(), _busy_waiting); #endif - while( !isInvalid() ) + while (!isInvalid()) { #ifndef BUILD_REMOTE_PLUGIN_CLIENT - if( _busy_waiting && !messagesLeft() ) + if (_busy_waiting && !messagesLeft()) { QCoreApplication::processEvents( - QEventLoop::ExcludeUserInputEvents, 50 ); + QEventLoop::ExcludeUserInputEvents, 50); continue; } #endif message m = receiveMessage(); - processMessage( m ); - if( m.id == _wm.id ) + processMessage(m); + if (m.id == _wm.id) { return m; } - else if( m.id == IdUndefined ) + else if (m.id == IdUndefined) { return m; } diff --git a/src/common/SharedMemory.cpp b/src/common/SharedMemory.cpp index 005e726ed34..19d3dba1bbe 100644 --- a/src/common/SharedMemory.cpp +++ b/src/common/SharedMemory.cpp @@ -23,45 +23,44 @@ #include "SharedMemory.h" +#include +#include + #include "lmmsconfig.h" +#include "RaiiHelpers.h" #ifdef LMMS_HAVE_UNISTD_H # include #endif -#if _POSIX_SHARED_MEMORY_OBJECTS > 0 -# include -# +#if _POSIX_SHARED_MEMORY_OBJECTS > 0 || defined(LMMS_BUILD_APPLE) # include # include # include -# -# include "RaiiHelpers.h" +#elif defined(LMMS_BUILD_WIN32) +# include #else -# include -# -# include -# include +# error "No shared memory implementation available" #endif - namespace lmms::detail { -#if _POSIX_SHARED_MEMORY_OBJECTS > 0 - +#if _POSIX_SHARED_MEMORY_OBJECTS > 0 || defined(LMMS_BUILD_APPLE) namespace { +[[noreturn]] void throwSystemError(const char* message) +{ + throw std::system_error{errno, std::generic_category(), message}; +} + template int retryWhileInterrupted(F&& function) noexcept(std::is_nothrow_invocable_v) { - int result; - do - { - result = function(); + while (true) { + const auto result = function(); + if (result != -1 || errno != EINTR) { return result; } } - while (result == -1 && errno == EINTR); - return result; } void deleteFileDescriptor(int fd) noexcept { retryWhileInterrupted([fd]() noexcept { return close(fd); }); } @@ -82,22 +81,15 @@ class SharedMemoryImpl const auto fd = FileDescriptor{ retryWhileInterrupted([&]() noexcept { return shm_open(m_key.c_str(), openFlags, 0); }) }; - if (!fd) - { - throw std::system_error{errno, std::generic_category(), "SharedMemoryImpl: shm_open() failed"}; - } + if (!fd) { throwSystemError("SharedMemoryImpl: shm_open() failed"); } + auto stat = (struct stat){}; - if (fstat(fd.get(), &stat) == -1) - { - throw std::system_error{errno, std::generic_category(), "SharedMemoryImpl: fstat() failed"}; - } + if (fstat(fd.get(), &stat) == -1) { throwSystemError("SharedMemoryImpl: fstat() failed"); } m_size = stat.st_size; + const auto mappingProtection = readOnly ? PROT_READ : PROT_READ | PROT_WRITE; m_mapping = mmap(nullptr, m_size, mappingProtection, MAP_SHARED, fd.get(), 0); - if (m_mapping == MAP_FAILED) - { - throw std::system_error{errno, std::generic_category(), "SharedMemoryImpl: mmap() failed"}; - } + if (m_mapping == MAP_FAILED) { throwSystemError("SharedMemoryImpl: mmap() failed"); } } SharedMemoryImpl(const std::string& key, std::size_t size, bool readOnly) : @@ -107,21 +99,16 @@ class SharedMemoryImpl const auto fd = FileDescriptor{ retryWhileInterrupted([&]() noexcept { return shm_open(m_key.c_str(), O_RDWR | O_CREAT | O_EXCL, 0600); }) }; - if (fd.get() == -1) - { - throw std::system_error{errno, std::generic_category(), "SharedMemoryImpl: shm_open() failed"}; - } + if (fd.get() == -1) { throwSystemError("SharedMemoryImpl: shm_open() failed"); } m_object.reset(m_key.c_str()); - if (retryWhileInterrupted([&]() noexcept { return ftruncate(fd.get(), m_size); }) == -1) - { - throw std::system_error{errno, std::generic_category(), "SharedMemoryImpl: ftruncate() failed"}; + + if (retryWhileInterrupted([&]() noexcept { return ftruncate(fd.get(), m_size); }) == -1) { + throwSystemError("SharedMemoryImpl: ftruncate() failed"); } + const auto mappingProtection = readOnly ? PROT_READ : PROT_READ | PROT_WRITE; m_mapping = mmap(nullptr, m_size, mappingProtection, MAP_SHARED, fd.get(), 0); - if (m_mapping == MAP_FAILED) - { - throw std::system_error{errno, std::generic_category(), "SharedMemoryImpl: mmap() failed"}; - } + if (m_mapping == MAP_FAILED) { throwSystemError("SharedMemoryImpl: mmap() failed"); } } SharedMemoryImpl(const SharedMemoryImpl&) = delete; @@ -132,7 +119,7 @@ class SharedMemoryImpl munmap(m_mapping, m_size); } - void* get() { return m_mapping; } + auto get() const noexcept -> void* { return m_mapping; } private: std::string m_key; @@ -141,38 +128,68 @@ class SharedMemoryImpl ShmObject m_object; }; -#else +#elif defined(LMMS_BUILD_WIN32) + +namespace { + +template +auto sizeToHighAndLow(T size) -> std::pair +{ + if constexpr (sizeof(T) <= sizeof(DWORD)) { + return {0, size}; + } else { + return {static_cast(size >> 32), static_cast(size)}; + } +} + +[[noreturn]] void throwLastError(const char* message) +{ + throw std::system_error{static_cast(GetLastError()), std::system_category(), message}; +} + +using UniqueHandle = UniqueNullableResource; +using FileView = UniqueNullableResource; + +} // namespace class SharedMemoryImpl { public: - SharedMemoryImpl(const std::string& key, bool readOnly) : - m_shm{QString::fromStdString(key)} + SharedMemoryImpl(const std::string& key, bool readOnly) { - const auto mode = readOnly ? QSharedMemory::ReadOnly : QSharedMemory::ReadWrite; - if (!m_shm.attach(mode)) - { - throw std::runtime_error{"SharedMemoryImpl: QSharedMemory::attach() failed"}; - } + const auto access = readOnly ? FILE_MAP_READ : FILE_MAP_WRITE; + m_mapping.reset(OpenFileMappingA(access, false, key.c_str())); + if (!m_mapping) { throwLastError("SharedMemoryImpl: OpenFileMappingA() failed"); } + + m_view.reset(MapViewOfFile(m_mapping.get(), access, 0, 0, 0)); + if (!m_view) { throwLastError("SharedMemoryImpl: MapViewOfFile() failed"); } } - SharedMemoryImpl(const std::string& key, std::size_t size, bool readOnly) : - m_shm{QString::fromStdString(key)} + SharedMemoryImpl(const std::string& key, std::size_t size, bool readOnly) { - const auto mode = readOnly ? QSharedMemory::ReadOnly : QSharedMemory::ReadWrite; - if (!m_shm.create(size, mode)) - { - throw std::runtime_error{"SharedMemoryImpl: QSharedMemory::create() failed"}; + const auto [high, low] = sizeToHighAndLow(size); + m_mapping.reset(CreateFileMappingA(INVALID_HANDLE_VALUE, nullptr, PAGE_READWRITE, high, low, key.c_str())); + // This constructor is supposed to create a new shared memory object, + // but passing the name of an existing object causes CreateFileMappingA + // to succeed and return a handle to that object. Thus we have to check + // GetLastError() too. + if (!m_mapping || GetLastError() == ERROR_ALREADY_EXISTS) { + throwLastError("SharedMemoryImpl: CreateFileMappingA() failed"); } + + const auto access = readOnly ? FILE_MAP_READ : FILE_MAP_WRITE; + m_view.reset(MapViewOfFile(m_mapping.get(), access, 0, 0, 0)); + if (!m_view) { throwLastError("SharedMemoryImpl: MapViewOfFile() failed"); } } SharedMemoryImpl(const SharedMemoryImpl&) = delete; - SharedMemoryImpl& operator=(const SharedMemoryImpl&) = delete; + auto operator=(const SharedMemoryImpl&) -> SharedMemoryImpl& = delete; - void* get() { return m_shm.data(); } + auto get() const noexcept -> void* { return m_view.get(); } private: - QSharedMemory m_shm; + UniqueHandle m_mapping; + FileView m_view; }; #endif @@ -196,7 +213,7 @@ SharedMemoryData::~SharedMemoryData() = default; SharedMemoryData::SharedMemoryData(SharedMemoryData&& other) noexcept : m_key{std::move(other.m_key)}, m_impl{std::move(other.m_impl)}, - m_ptr{other.m_ptr} + m_ptr{std::exchange(other.m_ptr, nullptr)} { } } // namespace lmms::detail diff --git a/src/common/SystemSemaphore.cpp b/src/common/SystemSemaphore.cpp new file mode 100644 index 00000000000..02c9a28887a --- /dev/null +++ b/src/common/SystemSemaphore.cpp @@ -0,0 +1,181 @@ +/* + * SystemSemaphore.cpp + * + * Copyright (c) 2024 Dominic Clark + * + * This file is part of LMMS - https://lmms.io + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + */ + +#include "SystemSemaphore.h" + +#include +#include +#include +#include + +#include "lmmsconfig.h" +#include "RaiiHelpers.h" + +#ifdef LMMS_HAVE_UNISTD_H +# include +#endif + +#if (_POSIX_SEMAPHORES > 0 && !defined(__MINGW32__)) || defined(LMMS_BUILD_APPLE) +# include +# include +#elif defined(LMMS_BUILD_WIN32) +# include +#else +# error "No system semaphore implementation available" +#endif + +namespace lmms { + +namespace detail { + +#if (_POSIX_SEMAPHORES > 0 && !defined(__MINGW32__)) || defined(LMMS_BUILD_APPLE) + +namespace { + +[[noreturn]] void throwSystemError(const char* message) +{ + throw std::system_error{errno, std::generic_category(), message}; +} + +template +auto retryWhileInterrupted(F&& function, std::invoke_result_t error = -1) + noexcept(std::is_nothrow_invocable_v) -> auto +{ + while (true) + { + const auto result = function(); + if (result != error || errno != EINTR) { return result; } + } +} + +using UniqueSemaphore = UniqueNullableResource; + +} // namespace + +class SystemSemaphoreImpl +{ +public: + SystemSemaphoreImpl(const std::string& key, unsigned int value) : + m_key{"/" + key}, + m_sem{retryWhileInterrupted([&]() noexcept { + return sem_open(m_key.c_str(), O_CREAT | O_EXCL, 0600, value); + }, SEM_FAILED)} + { + if (m_sem == SEM_FAILED) { throwSystemError("SystemSemaphoreImpl: sem_open() failed"); } + m_ownedSemaphore.reset(m_key.c_str()); + } + + explicit SystemSemaphoreImpl(const std::string& key) : + m_key{"/" + key}, + m_sem{retryWhileInterrupted([&]() noexcept { + return sem_open(m_key.c_str(), 0); + }, SEM_FAILED)} + { + if (m_sem == SEM_FAILED) { throwSystemError("SystemSemaphoreImpl: sem_open() failed"); } + } + + ~SystemSemaphoreImpl() + { + // We can't use `UniqueNullableResource` for `m_sem`, as the null value + // (`SEM_FAILED`) is not a constant expression on macOS (it's defined as + // `(sem_t*) -1`), so can't be used as a template parameter. + sem_close(m_sem); + } + + auto acquire() noexcept -> bool + { + return retryWhileInterrupted([&]() noexcept { + return sem_wait(m_sem); + }) == 0; + } + + auto release() noexcept -> bool { return sem_post(m_sem) == 0; } + +private: + std::string m_key; + sem_t* m_sem; + UniqueSemaphore m_ownedSemaphore; +}; + +#elif defined(LMMS_BUILD_WIN32) + +namespace { + +[[noreturn]] void throwSystemError(const char* message) +{ + throw std::system_error{static_cast(GetLastError()), std::system_category(), message}; +} + +using UniqueHandle = UniqueNullableResource; + +} // namespace + +class SystemSemaphoreImpl +{ +public: + SystemSemaphoreImpl(const std::string& key, unsigned int value) : + m_sem{CreateSemaphoreA(nullptr, value, std::numeric_limits::max(), key.c_str())} + { + if (!m_sem || GetLastError() == ERROR_ALREADY_EXISTS) { + throwSystemError("SystemSemaphoreImpl: CreateSemaphoreA failed"); + } + } + + explicit SystemSemaphoreImpl(const std::string& key) : + m_sem{OpenSemaphoreA(SEMAPHORE_MODIFY_STATE | SYNCHRONIZE, false, key.c_str())} + { + if (!m_sem) { throwSystemError("SystemSemaphoreImpl: OpenSemaphoreA failed"); } + } + + auto acquire() noexcept -> bool { return WaitForSingleObject(m_sem.get(), INFINITE) == WAIT_OBJECT_0; } + auto release() noexcept -> bool { return ReleaseSemaphore(m_sem.get(), 1, nullptr); } + +private: + UniqueHandle m_sem; +}; + +#endif + +} // namespace detail + +SystemSemaphore::SystemSemaphore() noexcept = default; + +SystemSemaphore::SystemSemaphore(std::string key, unsigned int value) : + m_key{std::move(key)}, + m_impl{std::make_unique(m_key, value)} +{} + +SystemSemaphore::SystemSemaphore(std::string key) : + m_key{std::move(key)}, + m_impl{std::make_unique(m_key)} +{} + +SystemSemaphore::~SystemSemaphore() = default; + +SystemSemaphore::SystemSemaphore(SystemSemaphore&& other) noexcept = default; +auto SystemSemaphore::operator=(SystemSemaphore&& other) noexcept -> SystemSemaphore& = default; + +auto SystemSemaphore::acquire() noexcept -> bool { return m_impl->acquire(); } +auto SystemSemaphore::release() noexcept -> bool { return m_impl->release(); } + +} // namespace lmms diff --git a/src/core/AudioEngine.cpp b/src/core/AudioEngine.cpp index 47b42e11b9a..435fa38fa56 100644 --- a/src/core/AudioEngine.cpp +++ b/src/core/AudioEngine.cpp @@ -24,6 +24,7 @@ #include "AudioEngine.h" +#include "MixHelpers.h" #include "denormals.h" #include "lmmsconfig.h" @@ -36,7 +37,6 @@ #include "NotePlayHandle.h" #include "ConfigManager.h" #include "SamplePlayHandle.h" -#include "MemoryHelper.h" // platform-specific audio-interface-classes #include "AudioAlsa.h" @@ -66,8 +66,7 @@ namespace lmms using LocklessListElement = LocklessList::Element; -static thread_local bool s_renderingThread; -static thread_local bool s_runningChange; +static thread_local bool s_renderingThread = false; @@ -75,6 +74,7 @@ static thread_local bool s_runningChange; AudioEngine::AudioEngine( bool renderOnly ) : m_renderOnly( renderOnly ), m_framesPerPeriod( DEFAULT_BUFFER_SIZE ), + m_baseSampleRate(std::max(ConfigManager::inst()->value("audioengine", "samplerate").toInt(), 44100)), m_inputBufferRead( 0 ), m_inputBufferWrite( 1 ), m_outputBufferRead(nullptr), @@ -82,21 +82,20 @@ AudioEngine::AudioEngine( bool renderOnly ) : m_workers(), m_numWorkers( QThread::idealThreadCount()-1 ), m_newPlayHandles( PlayHandle::MaxNumber ), - m_qualitySettings( qualitySettings::Mode::Draft ), + m_qualitySettings(qualitySettings::Interpolation::Linear), m_masterGain( 1.0f ), m_audioDev( nullptr ), m_oldAudioDev( nullptr ), m_audioDevStartFailed( false ), m_profiler(), - m_metronomeActive(false), m_clearSignal(false) { for( int i = 0; i < 2; ++i ) { m_inputBufferFrames[i] = 0; m_inputBufferSize[i] = DEFAULT_BUFFER_SIZE * 100; - m_inputBuffer[i] = new sampleFrame[ DEFAULT_BUFFER_SIZE * 100 ]; - BufferManager::clear( m_inputBuffer[i], m_inputBufferSize[i] ); + m_inputBuffer[i] = new SampleFrame[ DEFAULT_BUFFER_SIZE * 100 ]; + zeroSampleFrames(m_inputBuffer[i], m_inputBufferSize[i]); } // determine FIFO size and number of frames per period @@ -136,12 +135,9 @@ AudioEngine::AudioEngine( bool renderOnly ) : // now that framesPerPeriod is fixed initialize global BufferManager BufferManager::init( m_framesPerPeriod ); - int outputBufferSize = m_framesPerPeriod * sizeof(surroundSampleFrame); - m_outputBufferRead = static_cast(MemoryHelper::alignedMalloc(outputBufferSize)); - m_outputBufferWrite = static_cast(MemoryHelper::alignedMalloc(outputBufferSize)); + m_outputBufferRead = std::make_unique(m_framesPerPeriod); + m_outputBufferWrite = std::make_unique(m_framesPerPeriod); - BufferManager::clear(m_outputBufferRead, m_framesPerPeriod); - BufferManager::clear(m_outputBufferWrite, m_framesPerPeriod); for( int i = 0; i < m_numWorkers+1; ++i ) { @@ -180,8 +176,6 @@ AudioEngine::~AudioEngine() delete m_midiClient; delete m_audioDev; - MemoryHelper::alignedFree(m_outputBufferRead); - MemoryHelper::alignedFree(m_outputBufferWrite); for (const auto& input : m_inputBuffer) { @@ -248,45 +242,6 @@ void AudioEngine::stopProcessing() -sample_rate_t AudioEngine::baseSampleRate() const -{ - sample_rate_t sr = ConfigManager::inst()->value( "audioengine", "samplerate" ).toInt(); - if( sr < 44100 ) - { - sr = 44100; - } - return sr; -} - - - - -sample_rate_t AudioEngine::outputSampleRate() const -{ - return m_audioDev != nullptr ? m_audioDev->sampleRate() : - baseSampleRate(); -} - - - - -sample_rate_t AudioEngine::inputSampleRate() const -{ - return m_audioDev != nullptr ? m_audioDev->sampleRate() : - baseSampleRate(); -} - - - - -sample_rate_t AudioEngine::processingSampleRate() const -{ - return outputSampleRate() * m_qualitySettings.sampleRateMultiplier(); -} - - - - bool AudioEngine::criticalXRuns() const { return cpuLoad() >= 99 && Engine::getSong()->isExporting() == false; @@ -295,19 +250,19 @@ bool AudioEngine::criticalXRuns() const -void AudioEngine::pushInputFrames( sampleFrame * _ab, const f_cnt_t _frames ) +void AudioEngine::pushInputFrames( SampleFrame* _ab, const f_cnt_t _frames ) { requestChangeInModel(); f_cnt_t frames = m_inputBufferFrames[ m_inputBufferWrite ]; - int size = m_inputBufferSize[ m_inputBufferWrite ]; - sampleFrame * buf = m_inputBuffer[ m_inputBufferWrite ]; + auto size = m_inputBufferSize[m_inputBufferWrite]; + SampleFrame* buf = m_inputBuffer[ m_inputBufferWrite ]; if( frames + _frames > size ) { size = std::max(size * 2, frames + _frames); - auto ab = new sampleFrame[size]; - memcpy( ab, buf, frames * sizeof( sampleFrame ) ); + auto ab = new SampleFrame[size]; + memcpy( ab, buf, frames * sizeof( SampleFrame ) ); delete [] buf; m_inputBufferSize[ m_inputBufferWrite ] = size; @@ -316,7 +271,7 @@ void AudioEngine::pushInputFrames( sampleFrame * _ab, const f_cnt_t _frames ) buf = ab; } - memcpy( &buf[ frames ], _ab, _frames * sizeof( sampleFrame ) ); + memcpy( &buf[ frames ], _ab, _frames * sizeof( SampleFrame ) ); m_inputBufferFrames[ m_inputBufferWrite ] += _frames; doneChangeInModel(); @@ -362,8 +317,6 @@ void AudioEngine::renderStageNoteSetup() Mixer * mixer = Engine::mixer(); mixer->prepareMasterMix(); - handleMetronome(); - // create play-handles for new notes, samples etc. Engine::getSong()->processNextBuffer(); @@ -431,9 +384,11 @@ void AudioEngine::renderStageMix() AudioEngineProfiler::Probe profilerProbe(m_profiler, AudioEngineProfiler::DetailType::Mixing); Mixer *mixer = Engine::mixer(); - mixer->masterMix(m_outputBufferWrite); + mixer->masterMix(m_outputBufferWrite.get()); + + MixHelpers::multiply(m_outputBufferWrite.get(), m_masterGain, m_framesPerPeriod); - emit nextAudioBuffer(m_outputBufferRead); + emit nextAudioBuffer(m_outputBufferRead.get()); // and trigger LFOs EnvelopeAndLfoParameters::instances()->trigger(); @@ -443,7 +398,7 @@ void AudioEngine::renderStageMix() -const surroundSampleFrame *AudioEngine::renderNextBuffer() +const SampleFrame* AudioEngine::renderNextBuffer() { const auto lock = std::lock_guard{m_changeMutex}; @@ -456,9 +411,9 @@ const surroundSampleFrame *AudioEngine::renderNextBuffer() renderStageMix(); // STAGE 3: do master mix in mixer s_renderingThread = false; - m_profiler.finishPeriod(processingSampleRate(), m_framesPerPeriod); + m_profiler.finishPeriod(outputSampleRate(), m_framesPerPeriod); - return m_outputBufferRead; + return m_outputBufferRead.get(); } @@ -471,58 +426,9 @@ void AudioEngine::swapBuffers() m_inputBufferFrames[m_inputBufferWrite] = 0; std::swap(m_outputBufferRead, m_outputBufferWrite); - BufferManager::clear(m_outputBufferWrite, m_framesPerPeriod); + zeroSampleFrames(m_outputBufferWrite.get(), m_framesPerPeriod); } - - - -void AudioEngine::handleMetronome() -{ - static tick_t lastMetroTicks = -1; - - Song * song = Engine::getSong(); - Song::PlayMode currentPlayMode = song->playMode(); - - bool metronomeSupported = - currentPlayMode == Song::PlayMode::MidiClip - || currentPlayMode == Song::PlayMode::Song - || currentPlayMode == Song::PlayMode::Pattern; - - if (!metronomeSupported || !m_metronomeActive || song->isExporting()) - { - return; - } - - // stop crash with metronome if empty project - if (song->countTracks() == 0) - { - return; - } - - tick_t ticks = song->getPlayPos(currentPlayMode).getTicks(); - tick_t ticksPerBar = TimePos::ticksPerBar(); - int numerator = song->getTimeSigModel().getNumerator(); - - if (ticks == lastMetroTicks) - { - return; - } - - if (ticks % (ticksPerBar / 1) == 0) - { - addPlayHandle(new SamplePlayHandle("misc/metronome02.ogg")); - } - else if (ticks % (ticksPerBar / numerator) == 0) - { - addPlayHandle(new SamplePlayHandle("misc/metronome01.ogg")); - } - - lastMetroTicks = ticks; -} - - - void AudioEngine::clear() { m_clearSignal = true; @@ -562,39 +468,12 @@ void AudioEngine::clearInternal() -AudioEngine::StereoSample AudioEngine::getPeakValues(sampleFrame * ab, const f_cnt_t frames) const -{ - sample_t peakLeft = 0.0f; - sample_t peakRight = 0.0f; - - for (f_cnt_t f = 0; f < frames; ++f) - { - float const absLeft = std::abs(ab[f][0]); - float const absRight = std::abs(ab[f][1]); - if (absLeft > peakLeft) - { - peakLeft = absLeft; - } - - if (absRight > peakRight) - { - peakRight = absRight; - } - } - - return StereoSample(peakLeft, peakRight); -} - - - - void AudioEngine::changeQuality(const struct qualitySettings & qs) { // don't delete the audio-device stopProcessing(); m_qualitySettings = qs; - m_audioDev->applyQualitySettings(); emit sampleRateChanged(); emit qualitySettingsChanged(); @@ -799,16 +678,14 @@ void AudioEngine::removePlayHandlesOfTypes(Track * track, PlayHandle::Types type void AudioEngine::requestChangeInModel() { - if (s_renderingThread || s_runningChange) { return; } + if (s_renderingThread) { return; } m_changeMutex.lock(); - s_runningChange = true; } void AudioEngine::doneChangeInModel() { - if (s_renderingThread || !s_runningChange) { return; } + if (s_renderingThread) { return; } m_changeMutex.unlock(); - s_runningChange = false; } bool AudioEngine::isAudioDevNameValid(QString name) @@ -1227,23 +1104,12 @@ void AudioEngine::fifoWriter::run() { disable_denormals(); -#if 0 -#if defined(LMMS_BUILD_LINUX) || defined(LMMS_BUILD_FREEBSD) -#ifdef LMMS_HAVE_SCHED_H - cpu_set_t mask; - CPU_ZERO( &mask ); - CPU_SET( 0, &mask ); - sched_setaffinity( 0, sizeof( mask ), &mask ); -#endif -#endif -#endif - const fpp_t frames = m_audioEngine->framesPerPeriod(); while( m_writing ) { - auto buffer = new surroundSampleFrame[frames]; - const surroundSampleFrame * b = m_audioEngine->renderNextBuffer(); - memcpy( buffer, b, frames * sizeof( surroundSampleFrame ) ); + auto buffer = new SampleFrame[frames]; + const SampleFrame* b = m_audioEngine->renderNextBuffer(); + memcpy(buffer, b, frames * sizeof(SampleFrame)); m_fifo->write(buffer); } diff --git a/src/core/AudioEngineWorkerThread.cpp b/src/core/AudioEngineWorkerThread.cpp index 528841c7128..70f7760419f 100644 --- a/src/core/AudioEngineWorkerThread.cpp +++ b/src/core/AudioEngineWorkerThread.cpp @@ -30,7 +30,6 @@ #include "denormals.h" #include "AudioEngine.h" -#include "MemoryManager.h" #include "ThreadableJob.h" #if __SSE__ @@ -80,7 +79,7 @@ void AudioEngineWorkerThread::JobQueue::run() while (processedJob && m_itemsDone < m_writeIndex) { processedJob = false; - for( int i = 0; i < m_writeIndex && i < JOB_QUEUE_SIZE; ++i ) + for (auto i = std::size_t{0}; i < m_writeIndex && i < JOB_QUEUE_SIZE; ++i) { ThreadableJob * job = m_items[i].exchange(nullptr); if( job ) @@ -167,7 +166,6 @@ void AudioEngineWorkerThread::startAndWaitForJobs() void AudioEngineWorkerThread::run() { - MemoryManager::ThreadGuard mmThreadGuard; Q_UNUSED(mmThreadGuard); disable_denormals(); QMutex m; diff --git a/src/core/AudioResampler.cpp b/src/core/AudioResampler.cpp new file mode 100644 index 00000000000..8fb7d95a2aa --- /dev/null +++ b/src/core/AudioResampler.cpp @@ -0,0 +1,69 @@ +/* + * AudioResampler.cpp - wrapper for libsamplerate + * + * Copyright (c) 2023 saker + * + * This file is part of LMMS - https://lmms.io + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#include "AudioResampler.h" + +#include +#include +#include + +namespace lmms { + +AudioResampler::AudioResampler(int interpolationMode, int channels) + : m_interpolationMode(interpolationMode) + , m_channels(channels) + , m_state(src_new(interpolationMode, channels, &m_error)) +{ + if (!m_state) + { + const auto errorMessage = std::string{src_strerror(m_error)}; + const auto fullMessage = std::string{"Failed to create an AudioResampler: "} + errorMessage; + throw std::runtime_error{fullMessage}; + } +} + +AudioResampler::~AudioResampler() +{ + src_delete(m_state); +} + +auto AudioResampler::resample(const float* in, long inputFrames, float* out, long outputFrames, double ratio) + -> ProcessResult +{ + auto data = SRC_DATA{}; + data.data_in = in; + data.input_frames = inputFrames; + data.data_out = out; + data.output_frames = outputFrames; + data.src_ratio = ratio; + data.end_of_input = 0; + return {src_process(m_state, &data), data.input_frames_used, data.output_frames_gen}; +} + +void AudioResampler::setRatio(double ratio) +{ + src_set_ratio(m_state, ratio); +} + +} // namespace lmms diff --git a/src/core/AutomatableModel.cpp b/src/core/AutomatableModel.cpp index e46a864f897..e006be651a4 100644 --- a/src/core/AutomatableModel.cpp +++ b/src/core/AutomatableModel.cpp @@ -97,8 +97,8 @@ bool AutomatableModel::isAutomated() const bool AutomatableModel::mustQuoteName(const QString& name) { - QRegExp reg("^[A-Za-z0-9._-]+$"); - return !reg.exactMatch(name); + QRegularExpression reg("^[A-Za-z0-9._-]+$"); + return !reg.match(name).hasMatch(); } void AutomatableModel::saveSettings( QDomDocument& doc, QDomElement& element, const QString& name ) @@ -350,19 +350,6 @@ float AutomatableModel::inverseScaledValue( float value ) const -//! @todo: this should be moved into a maths header -template -void roundAt( T& value, const T& where, const T& step_size ) -{ - if (std::abs(value - where) - < typeInfo::minEps() * std::abs(step_size)) - { - value = where; - } -} - - - template void AutomatableModel::roundAt( T& value, const T& where ) const @@ -583,7 +570,7 @@ float AutomatableModel::controllerValue( int frameOffset ) const "lacks implementation for a scale type"); break; } - if( typeInfo::isEqual( m_step, 1 ) && m_hasStrictStepSize ) + if (approximatelyEqual(m_step, 1) && m_hasStrictStepSize) { return std::round(v); } @@ -613,10 +600,9 @@ ValueBuffer * AutomatableModel::valueBuffer() float val = m_value; // make sure our m_value doesn't change midway - ValueBuffer * vb; if (m_controllerConnection && m_useControllerValue && m_controllerConnection->getController()->isSampleExact()) { - vb = m_controllerConnection->valueBuffer(); + auto vb = m_controllerConnection->valueBuffer(); if( vb ) { float * values = vb->values(); @@ -656,7 +642,7 @@ ValueBuffer * AutomatableModel::valueBuffer() if (lm && lm->controllerConnection() && lm->useControllerValue() && lm->controllerConnection()->getController()->isSampleExact()) { - vb = lm->valueBuffer(); + auto vb = lm->valueBuffer(); float * values = vb->values(); float * nvalues = m_valueBuffer.values(); for (int i = 0; i < vb->length(); i++) diff --git a/src/core/AutomationClip.cpp b/src/core/AutomationClip.cpp index 3bfc5cf8edd..dc496fa044a 100644 --- a/src/core/AutomationClip.cpp +++ b/src/core/AutomationClip.cpp @@ -189,7 +189,7 @@ const AutomatableModel * AutomationClip::firstObject() const return model; } - static FloatModel fm(0, DEFAULT_MIN_VALUE, DEFAULT_MAX_VALUE, 0.001); + static FloatModel fm(0, DEFAULT_MIN_VALUE, DEFAULT_MAX_VALUE, 0.001f); return &fm; } @@ -830,10 +830,10 @@ void AutomationClip::saveSettings( QDomDocument & _doc, QDomElement & _this ) _this.setAttribute( "prog", QString::number( static_cast(progressionType()) ) ); _this.setAttribute( "tens", QString::number( getTension() ) ); _this.setAttribute( "mute", QString::number( isMuted() ) ); - - if( usesCustomClipColor() ) + + if (const auto& c = color()) { - _this.setAttribute( "color", color().name() ); + _this.setAttribute("color", c->name()); } for( timeMap::const_iterator it = m_timeMap.begin(); @@ -919,10 +919,9 @@ void AutomationClip::loadSettings( const QDomElement & _this ) } } - if( _this.hasAttribute( "color" ) ) + if (_this.hasAttribute("color")) { - useCustomClipColor( true ); - setColor( _this.attribute( "color" ) ); + setColor(QColor{_this.attribute("color")}); } int len = _this.attribute( "len" ).toInt(); @@ -1223,11 +1222,9 @@ void AutomationClip::generateTangents(timeMap::iterator it, int numToGenerate) // TODO: This behavior means that a very small difference between the inValue and outValue can // result in a big change in the curve. In the future, allowing the user to manually adjust // the tangents would be better. - float inTangent; - float outTangent; if (OFFSET(it) == 0) { - inTangent = (INVAL(it + 1) - OUTVAL(it - 1)) / (POS(it + 1) - POS(it - 1)); + float inTangent = (INVAL(it + 1) - OUTVAL(it - 1)) / (POS(it + 1) - POS(it - 1)); it.value().setInTangent(inTangent); // inTangent == outTangent in this case it.value().setOutTangent(inTangent); @@ -1235,9 +1232,9 @@ void AutomationClip::generateTangents(timeMap::iterator it, int numToGenerate) else { // Calculate the left side of the curve - inTangent = (INVAL(it) - OUTVAL(it - 1)) / (POS(it) - POS(it - 1)); + float inTangent = (INVAL(it) - OUTVAL(it - 1)) / (POS(it) - POS(it - 1)); // Calculate the right side of the curve - outTangent = (INVAL(it + 1) - OUTVAL(it)) / (POS(it + 1) - POS(it)); + float outTangent = (INVAL(it + 1) - OUTVAL(it)) / (POS(it + 1) - POS(it)); it.value().setInTangent(inTangent); it.value().setOutTangent(outTangent); } diff --git a/src/core/BandLimitedWave.cpp b/src/core/BandLimitedWave.cpp index cb09dc5b8f5..060ff510a43 100644 --- a/src/core/BandLimitedWave.cpp +++ b/src/core/BandLimitedWave.cpp @@ -49,11 +49,11 @@ QDataStream& operator<< ( QDataStream &out, WaveMipMap &waveMipMap ) QDataStream& operator>> ( QDataStream &in, WaveMipMap &waveMipMap ) { - sample_t sample; for( int tbl = 0; tbl <= MAXTBL; tbl++ ) { for( int i = 0; i < TLENS[tbl]; i++ ) { + sample_t sample; in >> sample; waveMipMap.setSampleAt( tbl, i, sample ); } @@ -67,9 +67,8 @@ void BandLimitedWave::generateWaves() // don't generate if they already exist if( s_wavesGenerated ) return; - int i; -// set wavetable directory + // set wavetable directory s_wavetableDir = "data:wavetables/"; // set wavetable files @@ -89,7 +88,7 @@ void BandLimitedWave::generateWaves() } else { - for( i = 0; i <= MAXTBL; i++ ) + for (int i = 0; i <= MAXTBL; i++) { const int len = TLENS[i]; //const double om = 1.0 / len; @@ -131,7 +130,7 @@ void BandLimitedWave::generateWaves() } else { - for( i = 0; i <= MAXTBL; i++ ) + for (int i = 0; i <= MAXTBL; i++) { const int len = TLENS[i]; //const double om = 1.0 / len; @@ -172,7 +171,7 @@ void BandLimitedWave::generateWaves() } else { - for( i = 0; i <= MAXTBL; i++ ) + for (int i = 0; i <= MAXTBL; i++) { const int len = TLENS[i]; //const double om = 1.0 / len; @@ -215,7 +214,7 @@ void BandLimitedWave::generateWaves() } else { - for( i = 0; i <= MAXTBL; i++ ) + for (int i = 0; i <= MAXTBL; i++) { const int len = TLENS[i]; diff --git a/src/core/BufferManager.cpp b/src/core/BufferManager.cpp index ff35e6a194e..47598c63325 100644 --- a/src/core/BufferManager.cpp +++ b/src/core/BufferManager.cpp @@ -26,9 +26,10 @@ #include "BufferManager.h" +#include "SampleFrame.h" + #include -#include "MemoryManager.h" namespace lmms { @@ -41,28 +42,16 @@ void BufferManager::init( fpp_t fpp ) } -sampleFrame * BufferManager::acquire() -{ - return MM_ALLOC( s_framesPerPeriod ); -} - -void BufferManager::clear( sampleFrame *ab, const f_cnt_t frames, const f_cnt_t offset ) +SampleFrame* BufferManager::acquire() { - memset( ab + offset, 0, sizeof( *ab ) * frames ); + return new SampleFrame[s_framesPerPeriod]; } -#ifndef LMMS_DISABLE_SURROUND -void BufferManager::clear( surroundSampleFrame * ab, const f_cnt_t frames, - const f_cnt_t offset ) -{ - memset( ab + offset, 0, sizeof( *ab ) * frames ); -} -#endif -void BufferManager::release( sampleFrame * buf ) +void BufferManager::release( SampleFrame* buf ) { - MM_FREE( buf ); + delete[] buf; } } // namespace lmms diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt index 1155f5e0d22..1e2c4f3cfdb 100644 --- a/src/core/CMakeLists.txt +++ b/src/core/CMakeLists.txt @@ -4,6 +4,7 @@ set(LMMS_SRCS core/AudioEngine.cpp core/AudioEngineProfiler.cpp core/AudioEngineWorkerThread.cpp + core/AudioResampler.cpp core/AutomatableModel.cpp core/AutomationClip.cpp core/AutomationNode.cpp @@ -22,6 +23,7 @@ set(LMMS_SRCS core/Engine.cpp core/EnvelopeAndLfoParameters.cpp core/fft_helpers.cpp + core/FileSearch.cpp core/Mixer.cpp core/ImportFilter.cpp core/InlineAutomation.cpp @@ -37,9 +39,8 @@ set(LMMS_SRCS core/LfoController.cpp core/LinkedModelGroups.cpp core/LocklessAllocator.cpp - core/MemoryHelper.cpp - core/MemoryManager.cpp core/MeterModel.cpp + core/Metronome.cpp core/MicroTimer.cpp core/Microtuner.cpp core/MixHelpers.cpp @@ -65,8 +66,10 @@ set(LMMS_SRCS core/RemotePlugin.cpp core/RenderManager.cpp core/RingBuffer.cpp + core/Sample.cpp core/SampleBuffer.cpp core/SampleClip.cpp + core/SampleDecoder.cpp core/SamplePlayHandle.cpp core/SampleRecordHandle.cpp core/Scale.cpp @@ -74,6 +77,8 @@ set(LMMS_SRCS core/SerializingObject.cpp core/Song.cpp core/TempoSyncKnobModel.cpp + core/ThreadPool.cpp + core/Timeline.cpp core/TimePos.cpp core/ToolPlugin.cpp core/Track.cpp diff --git a/src/core/Clip.cpp b/src/core/Clip.cpp index db1200aae2d..b18391df169 100644 --- a/src/core/Clip.cpp +++ b/src/core/Clip.cpp @@ -48,9 +48,7 @@ Clip::Clip( Track * track ) : m_startPosition(), m_length(), m_mutedModel( false, this, tr( "Mute" ) ), - m_selectViewOnCreate( false ), - m_color( 128, 128, 128 ), - m_useCustomClipColor( false ) + m_selectViewOnCreate{false} { if( getTrack() ) { @@ -185,19 +183,10 @@ void Clip::setStartTimeOffset( const TimePos &startTimeOffset ) m_startTimeOffset = startTimeOffset; } - - -void Clip::useCustomClipColor( bool b ) +void Clip::setColor(const std::optional& color) { - if (b == m_useCustomClipColor) { return; } - m_useCustomClipColor = b; + m_color = color; emit colorChanged(); } - -bool Clip::hasColor() -{ - return usesCustomClipColor() || getTrack()->useColor(); -} - } // namespace lmms diff --git a/src/core/ComboBoxModel.cpp b/src/core/ComboBoxModel.cpp index f1b1c6b2e0f..80d1027deaf 100644 --- a/src/core/ComboBoxModel.cpp +++ b/src/core/ComboBoxModel.cpp @@ -29,20 +29,17 @@ namespace lmms { -using std::unique_ptr; -using std::move; - -void ComboBoxModel::addItem( QString item, unique_ptr loader ) +void ComboBoxModel::addItem(QString item, std::unique_ptr loader) { - m_items.emplace_back( move(item), move(loader) ); + m_items.emplace_back(std::move(item), std::move(loader)); setRange( 0, m_items.size() - 1 ); } -void ComboBoxModel::replaceItem(std::size_t index, QString item, unique_ptr loader) +void ComboBoxModel::replaceItem(std::size_t index, QString item, std::unique_ptr loader) { assert(index < m_items.size()); - m_items[index] = Item(move(item), move(loader)); + m_items[index] = Item(std::move(item), std::move(loader)); emit propertiesChanged(); } diff --git a/src/core/ConfigManager.cpp b/src/core/ConfigManager.cpp index 61d84770a13..d3c973020bf 100644 --- a/src/core/ConfigManager.cpp +++ b/src/core/ConfigManager.cpp @@ -188,13 +188,17 @@ QString ConfigManager::defaultVersion() const return LMMS_VERSION; } +bool ConfigManager::enableBlockedPlugins() +{ + const char* envVar = getenv("LMMS_ENABLE_BLOCKED_PLUGINS"); + return (envVar && *envVar); +} + QStringList ConfigManager::availableVstEmbedMethods() { QStringList methods; methods.append("none"); -#if QT_VERSION >= 0x050100 methods.append("qt"); -#endif #ifdef LMMS_BUILD_WIN32 methods.append("win32"); #endif @@ -514,7 +518,7 @@ void ConfigManager::loadConfigFile(const QString & configFile) cfg_file.close(); } - // Plugins are searched recursively, blacklist problematic locations + // Plugins are searched recursively, block problematic locations if( m_vstDir.isEmpty() || m_vstDir == QDir::separator() || m_vstDir == "/" || m_vstDir == ensureTrailingSlash( QDir::homePath() ) || !QDir( m_vstDir ).exists() ) diff --git a/src/core/Controller.cpp b/src/core/Controller.cpp index 3e1b596b8ca..9218e3238b1 100644 --- a/src/core/Controller.cpp +++ b/src/core/Controller.cpp @@ -149,7 +149,7 @@ unsigned int Controller::runningFrames() // Get position in seconds float Controller::runningTime() { - return runningFrames() / Engine::audioEngine()->processingSampleRate(); + return runningFrames() / Engine::audioEngine()->outputSampleRate(); } @@ -220,24 +220,12 @@ Controller * Controller::create( ControllerType _ct, Model * _parent ) Controller * Controller::create( const QDomElement & _this, Model * _parent ) { - Controller * c; - if( static_cast(_this.attribute( "type" ).toInt()) == ControllerType::Peak ) - { - c = PeakController::getControllerBySetting( _this ); - } - else - { - c = create( - static_cast( _this.attribute( "type" ).toInt() ), - _parent ); - } - - if( c != nullptr ) - { - c->restoreState( _this ); - } - - return( c ); + const auto controllerType = static_cast(_this.attribute("type").toInt()); + auto controller = controllerType == ControllerType::Peak + ? PeakController::getControllerBySetting(_this) + : create(controllerType, _parent); + if (controller) { controller->restoreState(_this); } + return controller; } diff --git a/src/core/ControllerConnection.cpp b/src/core/ControllerConnection.cpp index fea907942af..934ccc3f8ca 100644 --- a/src/core/ControllerConnection.cpp +++ b/src/core/ControllerConnection.cpp @@ -159,11 +159,10 @@ inline void ControllerConnection::setTargetName( const QString & _name ) */ void ControllerConnection::finalizeConnections() { - for( int i = 0; i < s_connections.size(); ++i ) + for (auto i = std::size_t{0}; i < s_connections.size(); ++i) { ControllerConnection * c = s_connections[i]; - if ( !c->isFinalized() && c->m_controllerId < - Engine::getSong()->controllers().size() ) + if (!c->isFinalized() && static_cast(c->m_controllerId) < Engine::getSong()->controllers().size()) { c->setController( Engine::getSong()-> controllers().at( c->m_controllerId ) ); @@ -221,7 +220,7 @@ void ControllerConnection::loadSettings( const QDomElement & _this ) if (!Engine::getSong()->isLoadingProject() && m_controllerId != -1 - && m_controllerId < Engine::getSong()->controllers().size()) + && static_cast(m_controllerId) < Engine::getSong()->controllers().size()) { setController( Engine::getSong()-> controllers().at( m_controllerId ) ); diff --git a/src/core/DataFile.cpp b/src/core/DataFile.cpp index a520e6bc5c9..8bd3a776bfc 100644 --- a/src/core/DataFile.cpp +++ b/src/core/DataFile.cpp @@ -35,6 +35,7 @@ #include #include #include +#include #include #include "base64.h" @@ -82,7 +83,9 @@ const std::vector DataFile::UPGRADE_METHODS = { &DataFile::upgrade_defaultTripleOscillatorHQ, &DataFile::upgrade_mixerRename , &DataFile::upgrade_bbTcoRename, &DataFile::upgrade_sampleAndHold , &DataFile::upgrade_midiCCIndexing, - &DataFile::upgrade_loopsRename , &DataFile::upgrade_noteTypes + &DataFile::upgrade_loopsRename , &DataFile::upgrade_noteTypes, + &DataFile::upgrade_fixCMTDelays , &DataFile::upgrade_fixBassLoopsTypo, + &DataFile::findProblematicLadspaPlugins }; // Vector of all versions that have upgrade routines. @@ -411,7 +414,7 @@ bool DataFile::writeFile(const QString& filename, bool withResources) if (!outfile.commit()) { showError(SongEditor::tr("Could not write file"), - SongEditor::tr("An unknown error has occured and the file could not be saved.")); + SongEditor::tr("An unknown error has occurred and the file could not be saved.")); return false; } @@ -638,6 +641,32 @@ void DataFile::cleanMetaNodes( QDomElement _de ) } } +void DataFile::mapSrcAttributeInElementsWithResources(const QMap& map) +{ + for (const auto& [elem, srcAttrs] : ELEMENTS_WITH_RESOURCES) + { + auto elements = elementsByTagName(elem); + + for (const auto& srcAttr : srcAttrs) + { + for (int i = 0; i < elements.length(); ++i) + { + auto item = elements.item(i).toElement(); + + if (item.isNull() || !item.hasAttribute(srcAttr)) { continue; } + + const QString srcVal = item.attribute(srcAttr); + + const auto it = map.constFind(srcVal); + if (it != map.constEnd()) + { + item.setAttribute(srcAttr, *it); + } + } + } + } +} + void DataFile::upgrade_0_2_1_20070501() { @@ -973,8 +1002,7 @@ void DataFile::upgrade_0_4_0_20080622() { QDomElement el = list.item( i ).toElement(); QString s = el.attribute( "name" ); - s.replace( QRegExp( "^Beat/Baseline " ), - "Beat/Bassline " ); + s.replace(QRegularExpression("^Beat/Baseline "), "Beat/Bassline"); el.setAttribute( "name", s ); } } @@ -1045,7 +1073,6 @@ void DataFile::upgrade_0_4_0_rc2() } } - void DataFile::upgrade_1_0_99() { jo_id_t last_assigned_id = 0; @@ -1109,7 +1136,7 @@ void DataFile::upgrade_1_1_91() { QDomElement el = list.item( i ).toElement(); QString s = el.attribute( "src" ); - s.replace( QRegExp("/samples/bassloopes/"), "/samples/bassloops/" ); + s.replace(QRegularExpression("/samples/bassloopes/"), "/samples/bassloops/"); el.setAttribute( "src", s ); } @@ -1157,7 +1184,7 @@ static void upgradeElement_1_2_0_rc2_42( QDomElement & el ) int syncmode = el.attribute( "syncmode" ).toInt(); QStringList names; QDomNamedNodeMap atts = el.attributes(); - for( uint i = 0; i < atts.length(); i++ ) + for (auto i = 0; i < atts.length(); i++) { QString name = atts.item( i ).nodeName(); if( name.endsWith( "_numerator" ) ) @@ -1194,12 +1221,11 @@ void DataFile::upgrade_1_2_0_rc3() "pattern" ); for( int j = 0; !patterns.item( j ).isNull(); ++j ) { - int patternLength, steps; QDomElement el = patterns.item( j ).toElement(); if( el.attribute( "len" ) != "" ) { - patternLength = el.attribute( "len" ).toInt(); - steps = patternLength / 12; + int patternLength = el.attribute( "len" ).toInt(); + int steps = patternLength / 12; el.setAttribute( "steps", steps ); } } @@ -1456,7 +1482,7 @@ void DataFile::upgrade_1_3_0() if(num == 4) { // don't modify port 4, but some other ones: - int zoom_port; + int zoom_port = 0; if (plugin == "Equalizer5Band") zoom_port = 36; else if (plugin == "Equalizer8Band") @@ -1685,6 +1711,44 @@ void DataFile::upgrade_noteTypes() } } +void DataFile::upgrade_fixCMTDelays() +{ + static const QMap nameMap { + { "delay_0,01s", "delay_0.01s" }, + { "delay_0,1s", "delay_0.1s" }, + { "fbdelay_0,01s", "fbdelay_0.01s" }, + { "fbdelay_0,1s", "fbdelay_0.1s" } + }; + + const auto effects = elementsByTagName("effect"); + + for (int i = 0; i < effects.size(); ++i) + { + auto effect = effects.item(i).toElement(); + + // We are only interested in LADSPA plugins + if (effect.attribute("name") != "ladspaeffect") { continue; } + + // Fetch all attributes (LMMS) beneath the LADSPA effect so that we can check the value of the plugin attribute (XML) + auto attributes = effect.elementsByTagName("attribute"); + for (int j = 0; j < attributes.size(); ++j) + { + auto attribute = attributes.item(j).toElement(); + + if (attribute.attribute("name") == "plugin") + { + const auto attributeValue = attribute.attribute("value"); + + const auto it = nameMap.constFind(attributeValue); + if (it != nameMap.constEnd()) + { + attribute.setAttribute("value", *it); + } + } + } + } +} + /** \brief Note range has been extended to match MIDI specification * @@ -1833,10 +1897,10 @@ void DataFile::upgrade_sampleAndHold() } -// Change loops' filenames in s -void DataFile::upgrade_loopsRename() +static QMap buildReplacementMap() { static constexpr auto loopBPMs = std::array{ + std::pair{"bassloops/briff01", "140"}, std::pair{"bassloops/briff01", "140"}, std::pair{"bassloops/rave_bass01", "180"}, std::pair{"bassloops/rave_bass02", "180"}, @@ -1866,39 +1930,31 @@ void DataFile::upgrade_loopsRename() std::pair{"latin/latin_guitar03", "120"}, }; - const QString prefix = "factorysample:", - extension = ".ogg"; + QMap namesToNamesWithBPMsMap; - // Replace loop sample names - for (const auto& [elem, srcAttrs] : ELEMENTS_WITH_RESOURCES) + auto insertEntry = [&namesToNamesWithBPMsMap](const QString& originalName, const QString& bpm, const QString& prefix = "", const QString& extension = "ogg") { - auto elements = elementsByTagName(elem); + const QString original = prefix + originalName + "." + extension; + const QString replacement = prefix + originalName + " - " + bpm + " BPM." + extension; - for (const auto& srcAttr : srcAttrs) - { - for (int i = 0; i < elements.length(); ++i) - { - auto item = elements.item(i).toElement(); - - if (item.isNull() || !item.hasAttribute(srcAttr)) { continue; } - for (const auto& cur : loopBPMs) - { - QString x = cur.first, // loop name - y = cur.second, // BPM - srcVal = item.attribute(srcAttr), - pattern = prefix + x + extension; + namesToNamesWithBPMsMap.insert(original, replacement); + }; - if (srcVal == pattern) - { - // Add " - X BPM" to filename - item.setAttribute(srcAttr, - prefix + x + " - " + y + " BPM" + - extension); - } - } - } - } + for (const auto & loopBPM : loopBPMs) + { + insertEntry(loopBPM.first, loopBPM.second); + insertEntry(loopBPM.first, loopBPM.second, "factorysample:"); } + + return namesToNamesWithBPMsMap; +} + +// Change loops' filenames in s +void DataFile::upgrade_loopsRename() +{ + static const QMap namesToNamesWithBPMsMap = buildReplacementMap(); + + mapSrcAttributeInElementsWithResources(namesToNamesWithBPMsMap); } //! Update MIDI CC indexes, so that they are counted from 0. Older releases of LMMS @@ -1923,6 +1979,57 @@ void DataFile::upgrade_midiCCIndexing() } } +void DataFile::findProblematicLadspaPlugins() +{ + // This is not an upgrade but a check for potentially problematic LADSPA + // controls. See #5738 for more details. + + const QDomNodeList ladspacontrols = elementsByTagName("ladspacontrols"); + + uint numberOfProblematicPlugins = 0; + + for (int i = 0; i < ladspacontrols.size(); ++i) + { + const QDomElement ladspacontrol = ladspacontrols.item(i).toElement(); + + const auto attributes = ladspacontrol.attributes(); + for (int j = 0; j < attributes.length(); ++j) + { + const auto attribute = attributes.item(j); + const auto name = attribute.nodeName(); + if (name != "ports" && name.startsWith("port")) + { + ++numberOfProblematicPlugins; + break; + } + } + } + + if (numberOfProblematicPlugins > 0) + { + QMessageBox::warning(nullptr, QObject::tr("LADSPA plugins"), + QObject::tr("The project contains %1 LADSPA plugin(s) which might have not been restored correctly! Please check the project.").arg(numberOfProblematicPlugins)); + } +} + +void DataFile::upgrade_fixBassLoopsTypo() +{ + static const QMap replacementMap = { + { "bassloopes/briff01.ogg", "bassloops/briff01 - 140 BPM.ogg" }, + { "bassloopes/rave_bass01.ogg", "bassloops/rave_bass01 - 180 BPM.ogg" }, + { "bassloopes/rave_bass02.ogg", "bassloops/rave_bass02 - 180 BPM.ogg" }, + { "bassloopes/tb303_01.ogg","bassloops/tb303_01 - 123 BPM.ogg" }, + { "bassloopes/techno_bass01.ogg", "bassloops/techno_bass01 - 140 BPM.ogg" }, + { "bassloopes/techno_bass02.ogg", "bassloops/techno_bass02 - 140 BPM.ogg" }, + { "bassloopes/techno_synth01.ogg", "bassloops/techno_synth01 - 140 BPM.ogg" }, + { "bassloopes/techno_synth02.ogg", "bassloops/techno_synth02 - 140 BPM.ogg" }, + { "bassloopes/techno_synth03.ogg", "bassloops/techno_synth03 - 130 BPM.ogg" }, + { "bassloopes/techno_synth04.ogg", "bassloops/techno_synth04 - 140 BPM.ogg" } + }; + + mapSrcAttributeInElementsWithResources(replacementMap); +} + void DataFile::upgrade() { // Runs all necessary upgrade methods diff --git a/src/core/DrumSynth.cpp b/src/core/DrumSynth.cpp index decc6bfa26d..f855639cb72 100644 --- a/src/core/DrumSynth.cpp +++ b/src/core/DrumSynth.cpp @@ -23,727 +23,954 @@ * */ - #include "DrumSynth.h" -#include -#include - -#include //sin(), exp(), etc. - #include - +#include +#include +#include #ifdef _MSC_VER -//not #if LMMS_BUILD_WIN32 because we have strncasecmp in mingw +// not #if LMMS_BUILD_WIN32 because we have strncasecmp in mingw #define strcasecmp _stricmp #endif // _MSC_VER -namespace lmms -{ - +namespace lmms { using namespace std; // const int Fs = 44100; -const float TwoPi = 6.2831853f; -const int MAX = 0; -const int ENV = 1; -const int PNT = 2; -const int dENV = 3; -const int NEXTT = 4; +const float TwoPi = 6.2831853f; +const int MAX = 0; +const int ENV = 1; +const int PNT = 2; +const int dENV = 3; +const int NEXTT = 4; // Bah, I'll move these into the class once I sepearate DrumsynthFile from DrumSynth // llama -float envpts[8][3][32]; //envelope/time-level/point -float envData[8][6]; //envelope running status -int chkOn[8], sliLev[8]; //section on/off and level -float timestretch; //overall time scaling +float envpts[8][3][32]; // envelope/time-level/point +float envData[8][6]; // envelope running status +int chkOn[8], sliLev[8]; // section on/off and level +float timestretch; // overall time scaling short DD[1200], clippoint; float DF[1200]; float phi[1200]; -long wavewords, wavemode=0; -float mem_t=1.0f, mem_o=1.0f, mem_n=1.0f, mem_b=1.0f, mem_tune=1.0f, mem_time=1.0f; - +long wavewords, wavemode = 0; +float mem_t = 1.0f, mem_o = 1.0f, mem_n = 1.0f, mem_b = 1.0f, mem_tune = 1.0f, mem_time = 1.0f; int DrumSynth::LongestEnv() { - long e, eon, p; - float l=0.f; - - for(e=1; e<7; e++) //3 - { - eon = e - 1; if(eon>2) eon=eon-1; - p = 0; - while (envpts[e][0][p + 1] >= 0.f) p++; - envData[e][MAX] = envpts[e][0][p] * timestretch; - if(chkOn[eon]==1) if(envData[e][MAX]>l) l=envData[e][MAX]; - } - //l *= timestretch; - - return 2400 + (1200 * (int)(l / 1200)); + float l = 0.f; + + for (long e = 1; e < 7; e++) // 3 + { + long eon = e - 1; + if (eon > 2) + { + eon = eon - 1; + } + long p = 0; + while (envpts[e][0][p + 1] >= 0.f) + { + p++; + } + envData[e][MAX] = envpts[e][0][p] * timestretch; + if (chkOn[eon] == 1 && envData[e][MAX] > l) + { + l = envData[e][MAX]; + } + } + // l *= timestretch; + + return 2400 + (1200 * static_cast(l / 1200)); } - float DrumSynth::LoudestEnv() { - float loudest=0.f; - int i=0; - - while (i<5) //2 - { - if(chkOn[i]==1) if(sliLev[i]>loudest) loudest=(float)sliLev[i]; - i++; - } - return (loudest * loudest); + float loudest = 0.f; + int i = 0; + + while (i < 5) // 2 + { + if ((chkOn[i] == 1) && (sliLev[i] > loudest)) + { + loudest = static_cast(sliLev[i]); + } + i++; + } + return loudest * loudest; } - void DrumSynth::UpdateEnv(int e, long t) { - float endEnv, dT; - //0.2's added - envData[e][NEXTT] = envpts[e][0][(long)(envData[e][PNT] + 1.f)] * timestretch; //get next point - if(envData[e][NEXTT] < 0) envData[e][NEXTT] = 442000 * timestretch; //if end point, hold - envData[e][ENV] = envpts[e][1][(long)(envData[e][PNT] + 0.f)] * 0.01f; //this level - endEnv = envpts[e][1][(long)(envData[e][PNT] + 1.f)] * 0.01f; //next level - dT = envData[e][NEXTT] - (float)t; - if(dT < 1.0) dT = 1.0; - envData[e][dENV] = (endEnv - envData[e][ENV]) / dT; - envData[e][PNT] = envData[e][PNT] + 1.0f; + // 0.2's added + envData[e][NEXTT] = envpts[e][0][static_cast(envData[e][PNT] + 1.f)] * timestretch; // get next point + if (envData[e][NEXTT] < 0) + { + envData[e][NEXTT] = 442000 * timestretch; // if end point, hold + } + envData[e][ENV] = envpts[e][1][static_cast(envData[e][PNT] + 0.f)] * 0.01f; // this level + float endEnv = envpts[e][1][static_cast(envData[e][PNT] + 1.f)] * 0.01f; // next level + float dT = envData[e][NEXTT] - static_cast(t); + if (dT < 1.0) + { + dT = 1.0; + } + envData[e][dENV] = (endEnv - envData[e][ENV]) / dT; + envData[e][PNT] = envData[e][PNT] + 1.0f; } - -void DrumSynth::GetEnv(int env, const char *sec, const char *key, QString ini) +void DrumSynth::GetEnv(int env, const char* sec, const char* key, QString ini) { - char en[256], s[8]; - int i=0, o=0, ep=0; - GetPrivateProfileString(sec, key, "0,0 100,0", en, sizeof(en), ini); - - //be safe! - en[255]=0; - s[0]=0; - - while(en[i]!=0) - { - if(en[i] == ',') - { - if(sscanf(s, "%f", &envpts[env][0][ep])==0) envpts[env][0][ep] = 0.f; - o=0; - } - else if(en[i] == ' ') - { - if(sscanf(s, "%f", &envpts[env][1][ep])==0) envpts[env][1][ep] = 0.f; - o=0; ep++; - } - else { s[o]=en[i]; o++; s[o]=0; } - i++; - } - if(sscanf(s, "%f", &envpts[env][1][ep])==0) envpts[env][1][ep] = 0.f; - envpts[env][0][ep + 1] = -1; - - envData[env][MAX] = envpts[env][0][ep]; + char en[256], s[8]; + int i = 0, o = 0, ep = 0; + GetPrivateProfileString(sec, key, "0,0 100,0", en, sizeof(en), ini); + + // be safe! + en[255] = 0; + s[0] = 0; + + while (en[i] != 0) + { + if (en[i] == ',') + { + if (sscanf(s, "%f", &envpts[env][0][ep]) == 0) + { + envpts[env][0][ep] = 0.f; + } + o = 0; + } + else if (en[i] == ' ') + { + if (sscanf(s, "%f", &envpts[env][1][ep]) == 0) + { + envpts[env][1][ep] = 0.f; + } + o = 0; + ep++; + } + else + { + s[o] = en[i]; + o++; + s[o] = 0; + } + i++; + } + if (sscanf(s, "%f", &envpts[env][1][ep]) == 0) + { + envpts[env][1][ep] = 0.f; + } + envpts[env][0][ep + 1] = -1; + + envData[env][MAX] = envpts[env][0][ep]; } - float DrumSynth::waveform(float ph, int form) { - float w; - - switch (form) - { - case 0: w = (float)sin(fmod(ph,TwoPi)); break; //sine - case 1: w = (float)fabs(2.0f*(float)sin(fmod(0.5f*ph,TwoPi)))-1.f; break; //sine^2 - case 2: while(ph1.f) w=2.f-w; - break; - case 3: w = ph - TwoPi * (float)(int)(ph / TwoPi); //saw - w = (0.3183098f * w) - 1.f; break; - default: w = (sin(fmod(ph,TwoPi))>0.0)? 1.f: -1.f; break; //square - } - - return w; + float w; + + switch (form) + { + case 0: + w = static_cast(sin(fmod(ph, TwoPi))); + break; // sine + case 1: + w = static_cast(fabs(2.0f * static_cast(sin(fmod(0.5f * ph, TwoPi))) - 1.f)); + break; // sine^2 + case 2: + while (ph < TwoPi) + { + ph += TwoPi; + } + w = 0.6366197f * static_cast(fmod(ph, TwoPi) - 1.f); // tri + if (w > 1.f) + { + w = 2.f - w; + } + break; + case 3: + w = ph - TwoPi * static_cast(static_cast(ph / TwoPi)); // saw + w = (0.3183098f * w) - 1.f; + break; + default: + w = (sin(fmod(ph, TwoPi)) > 0.0) ? 1.f : -1.f; + break; // square + } + + return w; } - -int DrumSynth::GetPrivateProfileString(const char *sec, const char *key, const char *def, char *buffer, int size, QString file) +int DrumSynth::GetPrivateProfileString( + const char* sec, const char* key, const char* def, char* buffer, int size, QString file) { - stringstream is; - bool inSection = false; - char *line; - char *k, *b; - int len = 0; - - line = (char*)malloc(200); - - // Use QFile to handle unicode file name on Windows - // Previously we used ifstream directly - QFile f(file); - f.open(QIODevice::ReadOnly); - QByteArray dat = f.readAll().constData(); - is.str(string(dat.constData(), dat.size())); - - while (is.good()) { - if (!inSection) { - is.ignore( numeric_limits::max(), '['); - - if (!is.eof()) { - is.getline(line, 200, ']'); - if (strcasecmp(line, sec)==0) { - inSection = true; - } - } - } - else if (!is.eof()) { - is.getline(line, 200); - if (line[0] == '[') - break; - - k = strtok(line, " \t="); - b = strtok(nullptr, "\n\r\0"); - - if (k != 0 && strcasecmp(k, key)==0) { - if (b==0) { - len = 0; - buffer[0] = 0; - } - else { - k = (char *)(b + strlen(b)-1); - while ( (k>=b) && (*k==' ' || *k=='\t') ) - --k; - *(k+1) = '\0'; - - len = strlen(b); - if (len > size-1) len = size-1; - strncpy(buffer, b, len+1); - } - break; - } - } - } - - if (len == 0) { - len = strlen(def); - strncpy(buffer, def, size); - } - - free(line); - - return len; + stringstream is; + bool inSection = false; + int len = 0; + + char* line = static_cast(malloc(200)); + + // Use QFile to handle unicode file name on Windows + // Previously we used ifstream directly + QFile f(file); + f.open(QIODevice::ReadOnly); + QByteArray dat = f.readAll().constData(); + is.str(string(dat.constData(), dat.size())); + + while (is.good()) + { + if (!inSection) + { + is.ignore(numeric_limits::max(), '['); + + if (!is.eof()) + { + is.getline(line, 200, ']'); + if (strcasecmp(line, sec) == 0) + { + inSection = true; + } + } + } + else if (!is.eof()) + { + is.getline(line, 200); + if (line[0] == '[') + { + break; + } + + char* k = strtok(line, " \t="); + char* b = strtok(nullptr, "\n\r\0"); + + if (k != 0 && strcasecmp(k, key) == 0) + { + if (b == 0) + { + len = 0; + buffer[0] = 0; + } + else + { + k = static_cast(b + strlen(b) - 1); + while ((k >= b) && (*k == ' ' || *k == '\t')) + { + --k; + } + *(k + 1) = '\0'; + + len = strlen(b); + if (len > size - 1) + { + len = size - 1; + } + strncpy(buffer, b, len + 1); + } + break; + } + } + } + + if (len == 0) + { + len = strlen(def); + strncpy(buffer, def, size); + } + + free(line); + + return len; } -int DrumSynth::GetPrivateProfileInt(const char *sec, const char *key, int def, QString file) +int DrumSynth::GetPrivateProfileInt(const char* sec, const char* key, int def, QString file) { - char tmp[16]; - int i=0; + char tmp[16]; + int i = 0; - GetPrivateProfileString(sec, key, "", tmp, sizeof(tmp), file); - sscanf(tmp, "%d", &i); if(tmp[0]==0) i=def; + GetPrivateProfileString(sec, key, "", tmp, sizeof(tmp), file); + sscanf(tmp, "%d", &i); + if (tmp[0] == 0) + { + i = def; + } - return i; + return i; } -float DrumSynth::GetPrivateProfileFloat(const char *sec, const char *key, float def, QString file) +float DrumSynth::GetPrivateProfileFloat(const char* sec, const char* key, float def, QString file) { - char tmp[16]; - float f=0.f; + char tmp[16]; + float f = 0.f; - GetPrivateProfileString(sec, key, "", tmp, sizeof(tmp), file); - sscanf(tmp, "%f", &f); if(tmp[0]==0) f=def; + GetPrivateProfileString(sec, key, "", tmp, sizeof(tmp), file); + sscanf(tmp, "%f", &f); + if (tmp[0] == 0) + { + f = def; + } - return f; + return f; } - // Constantly opening and scanning each file for the setting really sucks. // But, the original did this, and we know it works. Will store file into // an associative array or something once we have a datastructure to load in to. // llama -int DrumSynth::GetDSFileSamples(QString dsfile, int16_t *&wave, int channels, sample_rate_t Fs) +int DrumSynth::GetDSFileSamples(QString dsfile, int16_t*& wave, int channels, sample_rate_t Fs) { - //input file - char sec[32]; - char ver[32]; - char comment[256]; - int commentLen=0; - - //generation - long Length, tpos=0, tplus, totmp, t, i, j; - float x[3] = {0.f, 0.f, 0.f}; - float MasterTune; - constexpr float randmax = 1.f / static_cast(RAND_MAX); - constexpr float randmax2 = 2.f / static_cast(RAND_MAX); - int MainFilter, HighPass; - - long NON, NT, TON, DiON, TDroop=0, DStep; - float a, b=0.f, c=0.f, d=0.f, g, TT=0.f, TL, NL, F1, F2; - float TphiStart=0.f, Tphi, TDroopRate, ddF, DAtten, DGain; - - long BON, BON2, BFStep, BFStep2, botmp; - float BdF=0.f, BdF2=0.f, BPhi, BPhi2, BF, BF2, BQ, BQ2, BL, BL2; - - long OON, OF1Sync=0, OF2Sync=0, OMode, OW1, OW2; - float Ophi1, Ophi2, OF1, OF2, OL, Ot=0 /*PG: init */, OBal1, OBal2, ODrive; - float Ocf1, Ocf2, OcF, OcQ, OcA, Oc[6][2]; //overtone cymbal mode - float Oc0=0.0f, Oc1=0.0f, Oc2=0.0f; - - float MFfb, MFtmp, MFres, MFin=0.f, MFout=0.f; - float DownAve; - long DownStart, DownEnd, jj; - - - if(wavemode==0) //semi-real-time adjustments if working in memory!! - { - mem_t = 1.0f; - mem_o = 1.0f; - mem_n = 1.0f; - mem_b = 1.0f; - mem_tune = 0.0f; - mem_time = 1.0f; - } - - //try to read version from input file - strcpy(sec, "General"); - GetPrivateProfileString(sec,"Version","",ver,sizeof(ver),dsfile); - ver[9]=0; - if(strcasecmp(ver, "DrumSynth") != 0) {return 0;} //input fail - if(ver[11] != '1' && ver[11] != '2') {return 0;} //version fail - - - //read master parameters - GetPrivateProfileString(sec,"Comment","",comment,sizeof(comment),dsfile); - while((comment[commentLen]!=0) && (commentLen<254)) commentLen++; - if(commentLen==0) { comment[0]=32; comment[1]=0; commentLen=1;} - comment[commentLen+1]=0; commentLen++; - if((commentLen % 2)==1) commentLen++; - - timestretch = .01f * mem_time * GetPrivateProfileFloat(sec,"Stretch",100.0,dsfile); - if(timestretch<0.2f) timestretch=0.2f; - if(timestretch>10.f) timestretch=10.f; - // the unit of envelope lengths is a sample in 44100Hz sample rate, so correct it - timestretch *= Fs / 44100.f; - - DGain = 1.0f; //leave this here! - DGain = static_cast(std::pow(10.0, 0.05 * GetPrivateProfileFloat(sec,"Level",0,dsfile))); - - MasterTune = GetPrivateProfileFloat(sec,"Tuning",0.0,dsfile); - MasterTune = static_cast(std::pow(1.0594631f, MasterTune + mem_tune)); - MainFilter = 2 * GetPrivateProfileInt(sec,"Filter",0,dsfile); - MFres = 0.0101f * GetPrivateProfileFloat(sec,"Resonance",0.0,dsfile); - MFres = static_cast(std::pow(MFres, 0.5f)); - - HighPass = GetPrivateProfileInt(sec,"HighPass",0,dsfile); - GetEnv(7, sec, "FilterEnv", dsfile); - - - //read noise parameters - strcpy(sec, "Noise"); - chkOn[1] = GetPrivateProfileInt(sec,"On",0,dsfile); - sliLev[1] = GetPrivateProfileInt(sec,"Level",0,dsfile); - NT = GetPrivateProfileInt(sec,"Slope",0,dsfile); - GetEnv(2, sec, "Envelope", dsfile); - NON = chkOn[1]; - NL = (float)(sliLev[1] * sliLev[1]) * mem_n; - if(NT<0) - { a = 1.f + (NT / 105.f); d = -NT / 105.f; - g = (1.f + 0.0005f * NT * NT) * NL; } - else - { a = 1.f; b = -NT / 50.f; c = (float)fabs((float)NT) / 100.f; g = NL; } - - //if(GetPrivateProfileInt(sec,"FixedSeq",0,dsfile)!=0) - //srand(1); //fixed random sequence - - //read tone parameters - strcpy(sec, "Tone"); - chkOn[0] = GetPrivateProfileInt(sec,"On",0,dsfile); TON = chkOn[0]; - sliLev[0] = GetPrivateProfileInt(sec,"Level",128,dsfile); - TL = (float)(sliLev[0] * sliLev[0]) * mem_t; - GetEnv(1, sec, "Envelope", dsfile); - F1 = MasterTune * TwoPi * GetPrivateProfileFloat(sec,"F1",200.0,dsfile) / Fs; - if(fabs(F1)<0.001f) F1=0.001f; //to prevent overtone ratio div0 - F2 = MasterTune * TwoPi * GetPrivateProfileFloat(sec,"F2",120.0,dsfile) / Fs; - TDroopRate = GetPrivateProfileFloat(sec,"Droop",0.f,dsfile); - if(TDroopRate>0.f) - { - TDroopRate = static_cast(std::pow(10.0f, (TDroopRate - 20.0f) / 30.0f)); - TDroopRate = TDroopRate * -4.f / envData[1][MAX]; - TDroop = 1; - F2 = F1+((F2-F1)/(1.f-(float)exp(TDroopRate * envData[1][MAX]))); - ddF = F1 - F2; - } - else ddF = F2-F1; - - Tphi = GetPrivateProfileFloat(sec,"Phase",90.f,dsfile) / 57.29578f; //degrees>radians - - //read overtone parameters - strcpy(sec, "Overtones"); - chkOn[2] = GetPrivateProfileInt(sec,"On",0,dsfile); OON = chkOn[2]; - sliLev[2] = GetPrivateProfileInt(sec,"Level",128,dsfile); - OL = (float)(sliLev[2] * sliLev[2]) * mem_o; - GetEnv(3, sec, "Envelope1", dsfile); - GetEnv(4, sec, "Envelope2", dsfile); - OMode = GetPrivateProfileInt(sec,"Method",2,dsfile); - OF1 = MasterTune * TwoPi * GetPrivateProfileFloat(sec,"F1",200.0,dsfile) / Fs; - OF2 = MasterTune * TwoPi * GetPrivateProfileFloat(sec,"F2",120.0,dsfile) / Fs; - OW1 = GetPrivateProfileInt(sec,"Wave1",0,dsfile); - OW2 = GetPrivateProfileInt(sec,"Wave2",0,dsfile); - OBal2 = (float)GetPrivateProfileInt(sec,"Param",50,dsfile); - ODrive = static_cast(std::pow(OBal2, 3.0f)) / std::pow(50.0f, 3.0f); - OBal2 *= 0.01f; - OBal1 = 1.f - OBal2; - Ophi1 = Tphi; - Ophi2 = Tphi; - if(MainFilter==0) - MainFilter = GetPrivateProfileInt(sec,"Filter",0,dsfile); - if((GetPrivateProfileInt(sec,"Track1",0,dsfile)==1) && (TON==1)) - { OF1Sync = 1; OF1 = OF1 / F1; } - if((GetPrivateProfileInt(sec,"Track2",0,dsfile)==1) && (TON==1)) - { OF2Sync = 1; OF2 = OF2 / F1; } - - OcA = 0.28f + OBal1 * OBal1; //overtone cymbal mode - OcQ = OcA * OcA; - OcF = (1.8f - 0.7f * OcQ) * 0.92f; //multiply by env 2 - OcA *= 1.0f + 4.0f * OBal1; //level is a compromise! - Ocf1 = TwoPi / OF1; - Ocf2 = TwoPi / OF2; - for(i=0; i<6; i++) Oc[i][0] = Oc[i][1] = Ocf1 + (Ocf2 - Ocf1) * 0.2f * (float)i; - - //read noise band parameters - strcpy(sec, "NoiseBand"); - chkOn[3] = GetPrivateProfileInt(sec,"On",0,dsfile); BON = chkOn[3]; - sliLev[3] = GetPrivateProfileInt(sec,"Level",128,dsfile); - BL = (float)(sliLev[3] * sliLev[3]) * mem_b; - BF = MasterTune * TwoPi * GetPrivateProfileFloat(sec,"F",1000.0,dsfile) / Fs; - BPhi = TwoPi / 8.f; - GetEnv(5, sec, "Envelope", dsfile); - BFStep = GetPrivateProfileInt(sec,"dF",50,dsfile); - BQ = (float)BFStep; - BQ = BQ * BQ / (10000.f-6600.f*((float)sqrt(BF)-0.19f)); - BFStep = 1 + (int)((40.f - (BFStep / 2.5f)) / (BQ + 1.f + (1.f * BF))); - - strcpy(sec, "NoiseBand2"); - chkOn[4] = GetPrivateProfileInt(sec,"On",0,dsfile); BON2 = chkOn[4]; - sliLev[4] = GetPrivateProfileInt(sec,"Level",128,dsfile); - BL2 = (float)(sliLev[4] * sliLev[4]) * mem_b; - BF2 = MasterTune * TwoPi * GetPrivateProfileFloat(sec,"F",1000.0,dsfile) / Fs; - BPhi2 = TwoPi / 8.f; - GetEnv(6, sec, "Envelope", dsfile); - BFStep2 = GetPrivateProfileInt(sec,"dF",50,dsfile); - BQ2 = (float)BFStep2; - BQ2 = BQ2 * BQ2 / (10000.f-6600.f*((float)sqrt(BF2)-0.19f)); - BFStep2 = 1 + (int)((40 - (BFStep2 / 2.5)) / (BQ2 + 1 + (1 * BF2))); - - //read distortion parameters - strcpy(sec, "Distortion"); - chkOn[5] = GetPrivateProfileInt(sec,"On",0,dsfile); DiON = chkOn[5]; - DStep = 1 + GetPrivateProfileInt(sec,"Rate",0,dsfile); - if(DStep==7) DStep=20; - if(DStep==6) DStep=10; - if(DStep==5) DStep=8; - - clippoint = 32700; - DAtten = 1.0f; - - if(DiON==1) - { - DAtten = DGain * (short)LoudestEnv(); - if(DAtten>32700) clippoint=32700; else clippoint=(short)DAtten; - DAtten = static_cast(std::pow(2.0, 2.0 * GetPrivateProfileInt(sec,"Bits",0,dsfile))); - DGain = DAtten * DGain * static_cast(std::pow(10.0, 0.05 * GetPrivateProfileInt(sec,"Clipping",0,dsfile))); - } - - //prepare envelopes - for (i=1;i<8;i++) { envData[i][NEXTT]=0; envData[i][PNT]=0; } - Length = LongestEnv(); - - //allocate the buffer - //if(wave!=NULL) free(wave); - //wave = new int16_t[channels * (Length + 1280)]; //wave memory buffer - wave = new int16_t[channels * Length]; //wave memory buffer - if(wave==nullptr) {return 0;} - wavewords = 0; - - /* - if(wavemode==0) - { - //open output file - fp = fopen(wavfile, "wb"); - if(!fp) {return 3;} //output fail - - //set up INFO chunk - WI.list = 0x5453494C; - WI.listLength = 36 + commentLen; - WI.info = 0x4F464E49; - WI.isft = 0x54465349; - WI.isftLength = 16; - strcpy(WI.software, "DrumSynth v2.0 "); WI.software[15]=0; - WI.icmt = 0x544D4349; - WI.icmtLength = commentLen; - - //write WAV header - WH.riff = 0x46464952; - WH.riffLength = 36 + (2 * Length) + 44 + commentLen; - WH.wave = 0x45564157; - WH.fmt = 0x20746D66; - WH.waveLength = 16; - WH.wFormatTag = WAVE_FORMAT_PCM; - WH.nChannels = 1; - WH.nSamplesPerSec = Fs; - WH.nAvgBytesPerSec = 2 * Fs; - WH.nBlockAlign = 2; - WH.wBitsPerSample = 16; - WH.data = 0x61746164; - WH.dataLength = 2 * Length; - fwrite(&WH, 1, 44, fp); - } - */ - - //generate - tpos = 0; - while(tpos=envData[2][MAX]) NON=0; - } - else { - for(j=0; j<1200; j++) DF[j]=0.f; - } - - if(TON==1) //tone - { - TphiStart = Tphi; - if(TDroop==1) - { - for(t=tpos; t<=tplus; t++) - phi[t - tpos] = F2 + (ddF * (float)exp(t * TDroopRate)); - } - else - { - for(t=tpos; t<=tplus; t++) - phi[t - tpos] = F1 + (t / envData[1][MAX]) * ddF; - } - for(t=tpos; t<=tplus; t++) - { - totmp = t - tpos; - if(t < envData[1][NEXTT]) - envData[1][ENV] = envData[1][ENV] + envData[1][dENV]; - else UpdateEnv(1, t); - Tphi = Tphi + phi[totmp]; - DF[totmp] += TL * envData[1][ENV] * (float)sin(fmod(Tphi,TwoPi));//overflow? - } - if(t>=envData[1][MAX]) TON=0; - } - else for(j=0; j<1200; j++) phi[j]=F2; //for overtone sync - - if(BON==1) //noise band 1 - { - for(t=tpos; t<=tplus; t++) - { - if(t < envData[5][NEXTT]) - envData[5][ENV] = envData[5][ENV] + envData[5][dENV]; - else UpdateEnv(5, t); - if((t % BFStep) == 0) BdF = randmax * (float)rand() - 0.5f; - BPhi = BPhi + BF + BQ * BdF; - botmp = t - tpos; - DF[botmp] = DF[botmp] + (float)cos(fmod(BPhi,TwoPi)) * envData[5][ENV] * BL; - } - if(t>=envData[5][MAX]) BON=0; - } - - if(BON2==1) //noise band 2 - { - for(t=tpos; t<=tplus; t++) - { - if(t < envData[6][NEXTT]) - envData[6][ENV] = envData[6][ENV] + envData[6][dENV]; - else UpdateEnv(6, t); - if((t % BFStep2) == 0) BdF2 = randmax * (float)rand() - 0.5f; - BPhi2 = BPhi2 + BF2 + BQ2 * BdF2; - botmp = t - tpos; - DF[botmp] = DF[botmp] + (float)cos(fmod(BPhi2,TwoPi)) * envData[6][ENV] * BL2; - } - if(t>=envData[6][MAX]) BON2=0; - } - - - for (t=tpos; t<=tplus; t++) - { - if(OON==1) //overtones - { - if(t=envData[3][MAX]) //wait for OT2 - { - envData[3][ENV] = 0; - envData[3][dENV] = 0; - envData[3][NEXTT] = 999999; - } - else UpdateEnv(3, t); - } - // - if(t=envData[4][MAX]) //wait for OT1 - { - envData[4][ENV] = 0; - envData[4][dENV] = 0; - envData[4][NEXTT] = 999999; - } - else UpdateEnv(4, t); - } - // - TphiStart = TphiStart + phi[t - tpos]; - if(OF1Sync==1) Ophi1 = TphiStart * OF1; else Ophi1 = Ophi1 + OF1; - if(OF2Sync==1) Ophi2 = TphiStart * OF2; else Ophi2 = Ophi2 + OF2; - Ot=0.0f; - switch (OMode) - { - case 0: //add - Ot = OBal1 * envData[3][ENV] * waveform(Ophi1, OW1); - Ot = OL * (Ot + OBal2 * envData[4][ENV] * waveform(Ophi2, OW2)); - break; - - case 1: //FM - Ot = ODrive * envData[4][ENV] * waveform(Ophi2, OW2); - Ot = OL * envData[3][ENV] * waveform(Ophi1 + Ot, OW1); - break; - - case 2: //RM - Ot = (1 - ODrive / 8) + (((ODrive / 8) * envData[4][ENV]) * waveform(Ophi2, OW2)); - Ot = OL * envData[3][ENV] * waveform(Ophi1, OW1) * Ot; - break; - - case 3: //808 Cymbal - for(j=0; j<6; j++) - { - Oc[j][0] += 1.0f; - - if(Oc[j][0]>Oc[j][1]) - { - Oc[j][0] -= Oc[j][1]; - Ot = OL * envData[3][ENV]; - } - } - Ocf1 = envData[4][ENV] * OcF; //filter freq - Oc0 += Ocf1 * Oc1; - Oc1 += Ocf1 * (Ot + Oc2 - OcQ * Oc1 - Oc0); //bpf - Oc2 = Ot; - Ot = Oc1; - break; - } - } - - if(MainFilter==1) //filter overtones - { - if(t0.2f) - MFfb = 1.001f - static_cast(std::pow(10.0f, MFtmp - 1)); - else - MFfb = 0.999f - 0.7824f * MFtmp; - - MFtmp = Ot + MFres * (1.f + (1.f/MFfb)) * (MFin - MFout); - MFin = MFfb * (MFin - MFtmp) + MFtmp; - MFout = MFfb * (MFout - MFin) + MFin; - - DF[t - tpos] = DF[t - tpos] + (MFout - (HighPass * Ot)); - } - else if(MainFilter==2) //filter all - { - if(t0.2f) - MFfb = 1.001f - static_cast(std::pow(10.0f, MFtmp - 1)); - else - MFfb = 0.999f - 0.7824f * MFtmp; - - MFtmp = DF[t - tpos] + Ot + MFres * (1.f + (1.f/MFfb)) * (MFin - MFout); - MFin = MFfb * (MFin - MFtmp) + MFtmp; - MFout = MFfb * (MFout - MFin) + MFin; - - DF[t - tpos] = MFout - (HighPass * (DF[t - tpos] + Ot)); - } - // PG: Ot is uninitialized - else DF[t - tpos] = DF[t - tpos] + Ot; //no filter - } - - if(DiON==1) //bit resolution - { - for(j=0; j<1200; j++) - DF[j] = DGain * (int)(DF[j] / DAtten); - - for(j=0; j<1200; j+=DStep) //downsampling - { - DownAve = 0; - DownStart = j; - DownEnd = j + DStep - 1; - for(jj = DownStart; jj<=DownEnd; jj++) - DownAve = DownAve + DF[jj]; - DownAve = DownAve / DStep; - for(jj = DownStart; jj<=DownEnd; jj++) - DF[jj] = DownAve; - } - } - else for(j=0; j<1200; j++) DF[j] *= DGain; - - for(j = 0; j<1200; j++) //clipping + output - { - if(DF[j] > clippoint) - wave[wavewords++] = clippoint; - else if(DF[j] < -clippoint) - wave[wavewords++] = -clippoint; - else - wave[wavewords++] = (short)DF[j]; - - for (int c = 1; c < channels; c++) { - wave[wavewords] = wave[wavewords-1]; - wavewords++; - } - } - - tpos = tpos + 1200; - } - - /* - if(wavemode==0) - { - fwrite(wave, 2, Length, fp); //write data - fwrite(&WI, 1, 44, fp); //write INFO chunk - fwrite(&comment, 1, commentLen, fp); - fclose(fp); - } - wavemode = 0; //force compatibility!! - */ - - - return Length; + // input file + char sec[32]; + char ver[32]; + char comment[256]; + int commentLen = 0; + + // generation + long Length, tpos = 0, tplus, totmp, t, i, j; + float x[3] = {0.f, 0.f, 0.f}; + float MasterTune; + constexpr float randmax = 1.f / static_cast(RAND_MAX); + constexpr float randmax2 = 2.f / static_cast(RAND_MAX); + int MainFilter, HighPass; + + long NON, NT, TON, DiON, TDroop = 0, DStep; + float a, b = 0.f, c = 0.f, d = 0.f, g, TT = 0.f, TL, NL, F1, F2; + float TphiStart = 0.f, Tphi, TDroopRate, ddF, DAtten, DGain; + + long BON, BON2, BFStep, BFStep2, botmp; + float BdF = 0.f, BdF2 = 0.f, BPhi, BPhi2, BF, BF2, BQ, BQ2, BL, BL2; + + long OON, OF1Sync = 0, OF2Sync = 0, OMode, OW1, OW2; + float Ophi1, Ophi2, OF1, OF2, OL, Ot = 0 /*PG: init */, OBal1, OBal2, ODrive; + float Ocf1, Ocf2, OcF, OcQ, OcA, Oc[6][2]; // overtone cymbal mode + float Oc0 = 0.0f, Oc1 = 0.0f, Oc2 = 0.0f; + + float MFfb, MFtmp, MFres, MFin = 0.f, MFout = 0.f; + float DownAve; + long DownStart, DownEnd, jj; + + if (wavemode == 0) // semi-real-time adjustments if working in memory!! + { + mem_t = 1.0f; + mem_o = 1.0f; + mem_n = 1.0f; + mem_b = 1.0f; + mem_tune = 0.0f; + mem_time = 1.0f; + } + + // try to read version from input file + strcpy(sec, "General"); + GetPrivateProfileString(sec, "Version", "", ver, sizeof(ver), dsfile); + ver[9] = 0; + if ((strcasecmp(ver, "DrumSynth") != 0) // input fail + || (ver[11] != '1' && ver[11] != '2')) // version fail + { + return 0; + } + + // read master parameters + GetPrivateProfileString(sec, "Comment", "", comment, sizeof(comment), dsfile); + while ((comment[commentLen] != 0) && (commentLen < 254)) + { + commentLen++; + } + if (commentLen == 0) + { + comment[0] = 32; + comment[1] = 0; + commentLen = 1; + } + comment[commentLen + 1] = 0; + commentLen++; + if ((commentLen % 2) == 1) + { + commentLen++; + } + + timestretch = .01f * mem_time * GetPrivateProfileFloat(sec, "Stretch", 100.0, dsfile); + if (timestretch < 0.2f) + { + timestretch = 0.2f; + } + if (timestretch > 10.f) + { + timestretch = 10.f; + } + // the unit of envelope lengths is a sample in 44100Hz sample rate, so correct it + timestretch *= Fs / 44100.f; + + DGain = 1.0f; // leave this here! + DGain = static_cast(std::pow(10.0, 0.05 * GetPrivateProfileFloat(sec, "Level", 0, dsfile))); + + MasterTune = GetPrivateProfileFloat(sec, "Tuning", 0.0, dsfile); + MasterTune = static_cast(std::pow(1.0594631f, MasterTune + mem_tune)); + MainFilter = 2 * GetPrivateProfileInt(sec, "Filter", 0, dsfile); + MFres = 0.0101f * GetPrivateProfileFloat(sec, "Resonance", 0.0, dsfile); + MFres = static_cast(std::pow(MFres, 0.5f)); + + HighPass = GetPrivateProfileInt(sec, "HighPass", 0, dsfile); + GetEnv(7, sec, "FilterEnv", dsfile); + + // read noise parameters + strcpy(sec, "Noise"); + chkOn[1] = GetPrivateProfileInt(sec, "On", 0, dsfile); + sliLev[1] = GetPrivateProfileInt(sec, "Level", 0, dsfile); + NT = GetPrivateProfileInt(sec, "Slope", 0, dsfile); + GetEnv(2, sec, "Envelope", dsfile); + NON = chkOn[1]; + NL = static_cast(sliLev[1] * sliLev[1]) * mem_n; + if (NT < 0) + { + a = 1.f + (NT / 105.f); + d = -NT / 105.f; + g = (1.f + 0.0005f * NT * NT) * NL; + } + else + { + a = 1.f; + b = -NT / 50.f; + c = static_cast(fabs(static_cast(NT))) / 100.f; + g = NL; + } + + // if(GetPrivateProfileInt(sec,"FixedSeq",0,dsfile)!=0) + // srand(1); //fixed random sequence + + // read tone parameters + strcpy(sec, "Tone"); + chkOn[0] = GetPrivateProfileInt(sec, "On", 0, dsfile); + TON = chkOn[0]; + sliLev[0] = GetPrivateProfileInt(sec, "Level", 128, dsfile); + TL = static_cast(sliLev[0] * sliLev[0]) * mem_t; + GetEnv(1, sec, "Envelope", dsfile); + F1 = MasterTune * TwoPi * GetPrivateProfileFloat(sec, "F1", 200.0, dsfile) / Fs; + if (fabs(F1) < 0.001f) + { + F1 = 0.001f; // to prevent overtone ratio div0 + } + F2 = MasterTune * TwoPi * GetPrivateProfileFloat(sec, "F2", 120.0, dsfile) / Fs; + TDroopRate = GetPrivateProfileFloat(sec, "Droop", 0.f, dsfile); + if (TDroopRate > 0.f) + { + TDroopRate = static_cast(std::pow(10.0f, (TDroopRate - 20.0f) / 30.0f)); + TDroopRate = TDroopRate * -4.f / envData[1][MAX]; + TDroop = 1; + F2 = F1 + ((F2 - F1) / (1.f - static_cast(exp(TDroopRate * envData[1][MAX])))); + ddF = F1 - F2; + } + else + { + ddF = F2 - F1; + } + + Tphi = GetPrivateProfileFloat(sec, "Phase", 90.f, dsfile) / 57.29578f; // degrees>radians + + // read overtone parameters + strcpy(sec, "Overtones"); + chkOn[2] = GetPrivateProfileInt(sec, "On", 0, dsfile); + OON = chkOn[2]; + sliLev[2] = GetPrivateProfileInt(sec, "Level", 128, dsfile); + OL = static_cast(sliLev[2] * sliLev[2]) * mem_o; + GetEnv(3, sec, "Envelope1", dsfile); + GetEnv(4, sec, "Envelope2", dsfile); + OMode = GetPrivateProfileInt(sec, "Method", 2, dsfile); + OF1 = MasterTune * TwoPi * GetPrivateProfileFloat(sec, "F1", 200.0, dsfile) / Fs; + OF2 = MasterTune * TwoPi * GetPrivateProfileFloat(sec, "F2", 120.0, dsfile) / Fs; + OW1 = GetPrivateProfileInt(sec, "Wave1", 0, dsfile); + OW2 = GetPrivateProfileInt(sec, "Wave2", 0, dsfile); + OBal2 = static_cast(GetPrivateProfileInt(sec, "Param", 50, dsfile)); + ODrive = static_cast(std::pow(OBal2, 3.0f)) / std::pow(50.0f, 3.0f); + OBal2 *= 0.01f; + OBal1 = 1.f - OBal2; + Ophi1 = Tphi; + Ophi2 = Tphi; + if (MainFilter == 0) + { + MainFilter = GetPrivateProfileInt(sec, "Filter", 0, dsfile); + } + if ((GetPrivateProfileInt(sec, "Track1", 0, dsfile) == 1) && (TON == 1)) + { + OF1Sync = 1; + OF1 = OF1 / F1; + } + if ((GetPrivateProfileInt(sec, "Track2", 0, dsfile) == 1) && (TON == 1)) + { + OF2Sync = 1; + OF2 = OF2 / F1; + } + + OcA = 0.28f + OBal1 * OBal1; // overtone cymbal mode + OcQ = OcA * OcA; + OcF = (1.8f - 0.7f * OcQ) * 0.92f; // multiply by env 2 + OcA *= 1.0f + 4.0f * OBal1; // level is a compromise! + Ocf1 = TwoPi / OF1; + Ocf2 = TwoPi / OF2; + for (i = 0; i < 6; i++) + { + Oc[i][0] = Oc[i][1] = Ocf1 + (Ocf2 - Ocf1) * 0.2f * static_cast(i); + } + + // read noise band parameters + strcpy(sec, "NoiseBand"); + chkOn[3] = GetPrivateProfileInt(sec, "On", 0, dsfile); + BON = chkOn[3]; + sliLev[3] = GetPrivateProfileInt(sec, "Level", 128, dsfile); + BL = static_cast(sliLev[3] * sliLev[3]) * mem_b; + BF = MasterTune * TwoPi * GetPrivateProfileFloat(sec, "F", 1000.0, dsfile) / Fs; + BPhi = TwoPi / 8.f; + GetEnv(5, sec, "Envelope", dsfile); + BFStep = GetPrivateProfileInt(sec, "dF", 50, dsfile); + BQ = static_cast(BFStep); + BQ = BQ * BQ / (10000.f - 6600.f * (static_cast(sqrt(BF)) - 0.19f)); + BFStep = 1 + static_cast((40.f - (BFStep / 2.5f)) / (BQ + 1.f + (1.f * BF))); + + strcpy(sec, "NoiseBand2"); + chkOn[4] = GetPrivateProfileInt(sec, "On", 0, dsfile); + BON2 = chkOn[4]; + sliLev[4] = GetPrivateProfileInt(sec, "Level", 128, dsfile); + BL2 = static_cast(sliLev[4] * sliLev[4]) * mem_b; + BF2 = MasterTune * TwoPi * GetPrivateProfileFloat(sec, "F", 1000.0, dsfile) / Fs; + BPhi2 = TwoPi / 8.f; + GetEnv(6, sec, "Envelope", dsfile); + BFStep2 = GetPrivateProfileInt(sec, "dF", 50, dsfile); + BQ2 = static_cast(BFStep2); + BQ2 = BQ2 * BQ2 / (10000.f - 6600.f * (static_cast(sqrt(BF2)) - 0.19f)); + BFStep2 = 1 + static_cast((40 - (BFStep2 / 2.5)) / (BQ2 + 1 + (1 * BF2))); + + // read distortion parameters + strcpy(sec, "Distortion"); + chkOn[5] = GetPrivateProfileInt(sec, "On", 0, dsfile); + DiON = chkOn[5]; + DStep = 1 + GetPrivateProfileInt(sec, "Rate", 0, dsfile); + if (DStep == 7) { DStep = 20; } + if (DStep == 6) { DStep = 10; } + if (DStep == 5) { DStep = 8; } + + clippoint = 32700; + DAtten = 1.0f; + + if (DiON == 1) + { + DAtten = DGain * static_cast(LoudestEnv()); + clippoint = DAtten > 32700 ? 32700 : static_cast(DAtten); + DAtten = static_cast(std::pow(2.0, 2.0 * GetPrivateProfileInt(sec, "Bits", 0, dsfile))); + DGain = DAtten * DGain + * static_cast(std::pow(10.0, 0.05 * GetPrivateProfileInt(sec, "Clipping", 0, dsfile))); + } + + // prepare envelopes + for (i = 1; i < 8; i++) + { + envData[i][NEXTT] = 0; + envData[i][PNT] = 0; + } + Length = LongestEnv(); + + // allocate the buffer + // if(wave!=NULL) free(wave); + // wave = new int16_t[channels * (Length + 1280)]; //wave memory buffer + wave = new int16_t[channels * Length]; // wave memory buffer + if (wave == nullptr) + { + return 0; + } + wavewords = 0; + + /* + if(wavemode==0) + { + //open output file + fp = fopen(wavfile, "wb"); + if(!fp) {return 3;} //output fail + + //set up INFO chunk + WI.list = 0x5453494C; + WI.listLength = 36 + commentLen; + WI.info = 0x4F464E49; + WI.isft = 0x54465349; + WI.isftLength = 16; + strcpy(WI.software, "DrumSynth v2.0 "); WI.software[15]=0; + WI.icmt = 0x544D4349; + WI.icmtLength = commentLen; + + //write WAV header + WH.riff = 0x46464952; + WH.riffLength = 36 + (2 * Length) + 44 + commentLen; + WH.wave = 0x45564157; + WH.fmt = 0x20746D66; + WH.waveLength = 16; + WH.wFormatTag = WAVE_FORMAT_PCM; + WH.nChannels = 1; + WH.nSamplesPerSec = Fs; + WH.nAvgBytesPerSec = 2 * Fs; + WH.nBlockAlign = 2; + WH.wBitsPerSample = 16; + WH.data = 0x61746164; + WH.dataLength = 2 * Length; + fwrite(&WH, 1, 44, fp); + } + */ + + // generate + tpos = 0; + while (tpos < Length) + { + tplus = tpos + 1199; + + if (NON == 1) // noise + { + for (t = tpos; t <= tplus; t++) + { + if (t < envData[2][NEXTT]) + { + envData[2][ENV] = envData[2][ENV] + envData[2][dENV]; + } + else + { + UpdateEnv(2, t); + } + x[2] = x[1]; + x[1] = x[0]; + x[0] = (randmax2 * static_cast(rand())) - 1.f; + TT = a * x[0] + b * x[1] + c * x[2] + d * TT; + DF[t - tpos] = TT * g * envData[2][ENV]; + } + if (t >= envData[2][MAX]) + { + NON = 0; + } + } + else + { + for (j = 0; j < 1200; j++) + { + DF[j] = 0.f; + } + } + + if (TON == 1) // tone + { + TphiStart = Tphi; + if (TDroop == 1) + { + for (t = tpos; t <= tplus; t++) + { + phi[t - tpos] = F2 + (ddF * static_cast(exp(t * TDroopRate))); + } + } + else + { + for (t = tpos; t <= tplus; t++) + { + phi[t - tpos] = F1 + (t / envData[1][MAX]) * ddF; + } + } + for (t = tpos; t <= tplus; t++) + { + totmp = t - tpos; + if (t < envData[1][NEXTT]) + { + envData[1][ENV] = envData[1][ENV] + envData[1][dENV]; + } + else + { + UpdateEnv(1, t); + } + Tphi = Tphi + phi[totmp]; + DF[totmp] += TL * envData[1][ENV] * static_cast(sin(fmod(Tphi, TwoPi))); // overflow? + } + if (t >= envData[1][MAX]) + { + TON = 0; + } + } + else + { + for (j = 0; j < 1200; j++) + { + phi[j] = F2; // for overtone sync + } + } + + if (BON == 1) // noise band 1 + { + for (t = tpos; t <= tplus; t++) + { + if (t < envData[5][NEXTT]) + { + envData[5][ENV] = envData[5][ENV] + envData[5][dENV]; + } + else + { + UpdateEnv(5, t); + } + if ((t % BFStep) == 0) + { + BdF = randmax * static_cast(rand()) - 0.5f; + } + BPhi = BPhi + BF + BQ * BdF; + botmp = t - tpos; + DF[botmp] = DF[botmp] + static_cast(cos(fmod(BPhi, TwoPi))) * envData[5][ENV] * BL; + } + if (t >= envData[5][MAX]) + { + BON = 0; + } + } + + if (BON2 == 1) // noise band 2 + { + for (t = tpos; t <= tplus; t++) + { + if (t < envData[6][NEXTT]) + { + envData[6][ENV] = envData[6][ENV] + envData[6][dENV]; + } + else + { + UpdateEnv(6, t); + } + if ((t % BFStep2) == 0) + { + BdF2 = randmax * static_cast(rand()) - 0.5f; + } + BPhi2 = BPhi2 + BF2 + BQ2 * BdF2; + botmp = t - tpos; + DF[botmp] = DF[botmp] + static_cast(cos(fmod(BPhi2, TwoPi))) * envData[6][ENV] * BL2; + } + if (t >= envData[6][MAX]) + { + BON2 = 0; + } + } + + for (t = tpos; t <= tplus; t++) + { + if (OON == 1) // overtones + { + if (t < envData[3][NEXTT]) + { + envData[3][ENV] = envData[3][ENV] + envData[3][dENV]; + } + else + { + if (t >= envData[3][MAX]) // wait for OT2 + { + envData[3][ENV] = 0; + envData[3][dENV] = 0; + envData[3][NEXTT] = 999999; + } + else + { + UpdateEnv(3, t); + } + } + // + if (t < envData[4][NEXTT]) + { + envData[4][ENV] = envData[4][ENV] + envData[4][dENV]; + } + else + { + if (t >= envData[4][MAX]) // wait for OT1 + { + envData[4][ENV] = 0; + envData[4][dENV] = 0; + envData[4][NEXTT] = 999999; + } + else + { + UpdateEnv(4, t); + } + } + // + TphiStart = TphiStart + phi[t - tpos]; + if (OF1Sync == 1) + { + Ophi1 = TphiStart * OF1; + } + else + { + Ophi1 = Ophi1 + OF1; + } + if (OF2Sync == 1) + { + Ophi2 = TphiStart * OF2; + } + else + { + Ophi2 = Ophi2 + OF2; + } + Ot = 0.0f; + switch (OMode) + { + case 0: // add + Ot = OBal1 * envData[3][ENV] * waveform(Ophi1, OW1); + Ot = OL * (Ot + OBal2 * envData[4][ENV] * waveform(Ophi2, OW2)); + break; + + case 1: // FM + Ot = ODrive * envData[4][ENV] * waveform(Ophi2, OW2); + Ot = OL * envData[3][ENV] * waveform(Ophi1 + Ot, OW1); + break; + + case 2: // RM + Ot = (1 - ODrive / 8) + (((ODrive / 8) * envData[4][ENV]) * waveform(Ophi2, OW2)); + Ot = OL * envData[3][ENV] * waveform(Ophi1, OW1) * Ot; + break; + + case 3: // 808 Cymbal + for (j = 0; j < 6; j++) + { + Oc[j][0] += 1.0f; + + if (Oc[j][0] > Oc[j][1]) + { + Oc[j][0] -= Oc[j][1]; + Ot = OL * envData[3][ENV]; + } + } + Ocf1 = envData[4][ENV] * OcF; // filter freq + Oc0 += Ocf1 * Oc1; + Oc1 += Ocf1 * (Ot + Oc2 - OcQ * Oc1 - Oc0); // bpf + Oc2 = Ot; + Ot = Oc1; + break; + } + } + + if (MainFilter == 1) // filter overtones + { + if (t < envData[7][NEXTT]) + { + envData[7][ENV] = envData[7][ENV] + envData[7][dENV]; + } + else + { + UpdateEnv(7, t); + } + + MFtmp = envData[7][ENV]; + if (MFtmp > 0.2f) + { + MFfb = 1.001f - static_cast(std::pow(10.0f, MFtmp - 1)); + } + else + { + MFfb = 0.999f - 0.7824f * MFtmp; + } + + MFtmp = Ot + MFres * (1.f + (1.f / MFfb)) * (MFin - MFout); + MFin = MFfb * (MFin - MFtmp) + MFtmp; + MFout = MFfb * (MFout - MFin) + MFin; + + DF[t - tpos] = DF[t - tpos] + (MFout - (HighPass * Ot)); + } + else if (MainFilter == 2) // filter all + { + if (t < envData[7][NEXTT]) + { + envData[7][ENV] = envData[7][ENV] + envData[7][dENV]; + } + else + { + UpdateEnv(7, t); + } + + MFtmp = envData[7][ENV]; + if (MFtmp > 0.2f) + { + MFfb = 1.001f - static_cast(std::pow(10.0f, MFtmp - 1)); + } + else + { + MFfb = 0.999f - 0.7824f * MFtmp; + } + + MFtmp = DF[t - tpos] + Ot + MFres * (1.f + (1.f / MFfb)) * (MFin - MFout); + MFin = MFfb * (MFin - MFtmp) + MFtmp; + MFout = MFfb * (MFout - MFin) + MFin; + + DF[t - tpos] = MFout - (HighPass * (DF[t - tpos] + Ot)); + } + // PG: Ot is uninitialized + else + { + DF[t - tpos] = DF[t - tpos] + Ot; // no filter + } + } + + if (DiON == 1) // bit resolution + { + for (j = 0; j < 1200; j++) + { + DF[j] = DGain * static_cast(DF[j] / DAtten); + } + + for (j = 0; j < 1200; j += DStep) // downsampling + { + DownAve = 0; + DownStart = j; + DownEnd = j + DStep - 1; + for (jj = DownStart; jj <= DownEnd; jj++) + { + DownAve = DownAve + DF[jj]; + } + DownAve = DownAve / DStep; + for (jj = DownStart; jj <= DownEnd; jj++) + { + DF[jj] = DownAve; + } + } + } + else + { + for (j = 0; j < 1200; j++) + { + DF[j] *= DGain; + } + } + + for (j = 0; j < 1200; j++) // clipping + output + { + if (DF[j] > clippoint) + { + wave[wavewords++] = clippoint; + } + else if (DF[j] < -clippoint) + { + wave[wavewords++] = -clippoint; + } + else + { + wave[wavewords++] = static_cast(DF[j]); + } + + for (int c = 1; c < channels; c++) + { + wave[wavewords] = wave[wavewords - 1]; + wavewords++; + } + } + + tpos = tpos + 1200; + } + + /* + if(wavemode==0) + { + fwrite(wave, 2, Length, fp); //write data + fwrite(&WI, 1, 44, fp); //write INFO chunk + fwrite(&comment, 1, commentLen, fp); + fclose(fp); + } + wavemode = 0; //force compatibility!! + */ + + return Length; } - } // namespace lmms diff --git a/src/core/Effect.cpp b/src/core/Effect.cpp index 151eaf13e47..1fb0b71b5c1 100644 --- a/src/core/Effect.cpp +++ b/src/core/Effect.cpp @@ -31,6 +31,8 @@ #include "EffectView.h" #include "ConfigManager.h" +#include "SampleFrame.h" +#include "lmms_constants.h" namespace lmms { @@ -52,13 +54,19 @@ Effect::Effect( const Plugin::Descriptor * _desc, m_autoQuitModel( 1.0f, 1.0f, 8000.0f, 100.0f, 1.0f, this, tr( "Decay" ) ), m_autoQuitDisabled( false ) { + m_wetDryModel.setCenterValue(0); + m_srcState[0] = m_srcState[1] = nullptr; reinitSRC(); - + if( ConfigManager::inst()->value( "ui", "disableautoquit").toInt() ) { m_autoQuitDisabled = true; } + + // Call the virtual method onEnabledChanged so that effects can react to changes, + // e.g. by resetting state. + connect(&m_enabledModel, &BoolModel::dataChanged, [this] { onEnabledChanged(); }); } @@ -114,6 +122,41 @@ void Effect::loadSettings( const QDomElement & _this ) +bool Effect::processAudioBuffer(SampleFrame* buf, const fpp_t frames) +{ + if (!isOkay() || dontRun() || !isEnabled() || !isRunning()) + { + processBypassedImpl(); + return false; + } + + const auto status = processImpl(buf, frames); + switch (status) + { + case ProcessStatus::Continue: + break; + case ProcessStatus::ContinueIfNotQuiet: + { + double outSum = 0.0; + for (std::size_t idx = 0; idx < frames; ++idx) + { + outSum += buf[idx].sumOfSquaredAmplitudes(); + } + + checkGate(outSum / frames); + break; + } + case ProcessStatus::Sleep: + return false; + default: + break; + } + + return isRunning(); +} + + + Effect * Effect::instantiate( const QString& pluginName, Model * _parent, @@ -138,7 +181,7 @@ Effect * Effect::instantiate( const QString& pluginName, -void Effect::checkGate( double _out_sum ) +void Effect::checkGate(double outSum) { if( m_autoQuitDisabled ) { @@ -147,7 +190,7 @@ void Effect::checkGate( double _out_sum ) // Check whether we need to continue processing input. Restart the // counter if the threshold has been exceeded. - if( _out_sum - gate() <= typeInfo::minEps() ) + if (outSum - gate() <= F_EPSILON) { incrementBufferCount(); if( bufferCount() > timeout() ) @@ -193,9 +236,9 @@ void Effect::reinitSRC() -void Effect::resample( int _i, const sampleFrame * _src_buf, +void Effect::resample( int _i, const SampleFrame* _src_buf, sample_rate_t _src_sr, - sampleFrame * _dst_buf, sample_rate_t _dst_sr, + SampleFrame* _dst_buf, sample_rate_t _dst_sr, f_cnt_t _frames ) { if( m_srcState[_i] == nullptr ) @@ -208,8 +251,8 @@ void Effect::resample( int _i, const sampleFrame * _src_buf, m_srcData[_i].data_out = _dst_buf[0].data (); m_srcData[_i].src_ratio = (double) _dst_sr / _src_sr; m_srcData[_i].end_of_input = 0; - int error; - if( ( error = src_process( m_srcState[_i], &m_srcData[_i] ) ) ) + + if (int error = src_process(m_srcState[_i], &m_srcData[_i])) { qFatal( "Effect::resample(): error while resampling: %s\n", src_strerror( error ) ); diff --git a/src/core/EffectChain.cpp b/src/core/EffectChain.cpp index 4da5c519787..0a6a496f355 100644 --- a/src/core/EffectChain.cpp +++ b/src/core/EffectChain.cpp @@ -184,7 +184,7 @@ void EffectChain::moveUp( Effect * _effect ) -bool EffectChain::processAudioBuffer( sampleFrame * _buf, const fpp_t _frames, bool hasInputNoise ) +bool EffectChain::processAudioBuffer( SampleFrame* _buf, const fpp_t _frames, bool hasInputNoise ) { if( m_enabledModel.value() == false ) { diff --git a/src/core/Engine.cpp b/src/core/Engine.cpp index 6c810472179..9435eb69c06 100644 --- a/src/core/Engine.cpp +++ b/src/core/Engine.cpp @@ -126,15 +126,6 @@ void Engine::destroy() -bool Engine::ignorePluginBlacklist() -{ - const char* envVar = getenv("LMMS_IGNORE_BLACKLIST"); - return (envVar && *envVar); -} - - - - float Engine::framesPerTick(sample_rate_t sampleRate) { return sampleRate * 60.0f * 4 / @@ -146,7 +137,7 @@ float Engine::framesPerTick(sample_rate_t sampleRate) void Engine::updateFramesPerTick() { - s_framesPerTick = s_audioEngine->processingSampleRate() * 60.0f * 4 / DefaultTicksPerBar / s_song->getTempo(); + s_framesPerTick = s_audioEngine->outputSampleRate() * 60.0f * 4 / DefaultTicksPerBar / s_song->getTempo(); } @@ -171,4 +162,4 @@ void *Engine::pickDndPluginKey() Engine * Engine::s_instanceOfMe = nullptr; -} // namespace lmms \ No newline at end of file +} // namespace lmms diff --git a/src/core/EnvelopeAndLfoParameters.cpp b/src/core/EnvelopeAndLfoParameters.cpp index 0a9673c8e2c..a3c3bcf9184 100644 --- a/src/core/EnvelopeAndLfoParameters.cpp +++ b/src/core/EnvelopeAndLfoParameters.cpp @@ -22,13 +22,17 @@ * */ +#include "EnvelopeAndLfoParameters.h" + #include +#include -#include "EnvelopeAndLfoParameters.h" #include "AudioEngine.h" #include "Engine.h" #include "Oscillator.h" - +#include "PathUtil.h" +#include "SampleLoader.h" +#include "Song.h" namespace lmms { @@ -93,13 +97,13 @@ EnvelopeAndLfoParameters::EnvelopeAndLfoParameters( Model * _parent ) : Model( _parent ), m_used( false ), - m_predelayModel( 0.0, 0.0, 2.0, 0.001, this, tr( "Env pre-delay" ) ), - m_attackModel( 0.0, 0.0, 2.0, 0.001, this, tr( "Env attack" ) ), - m_holdModel( 0.5, 0.0, 2.0, 0.001, this, tr( "Env hold" ) ), - m_decayModel( 0.5, 0.0, 2.0, 0.001, this, tr( "Env decay" ) ), - m_sustainModel( 0.5, 0.0, 1.0, 0.001, this, tr( "Env sustain" ) ), - m_releaseModel( 0.1, 0.0, 2.0, 0.001, this, tr( "Env release" ) ), - m_amountModel( 0.0, -1.0, 1.0, 0.005, this, tr( "Env mod amount" ) ), + m_predelayModel(0.f, 0.f, 2.f, 0.001f, this, tr("Env pre-delay")), + m_attackModel(0.f, 0.f, 2.f, 0.001f, this, tr("Env attack")), + m_holdModel(0.5f, 0.f, 2.f, 0.001f, this, tr("Env hold")), + m_decayModel(0.5f, 0.f, 2.f, 0.001f, this, tr("Env decay")), + m_sustainModel(0.5f, 0.f, 1.f, 0.001f, this, tr("Env sustain")), + m_releaseModel(0.1f, 0.f, 2.f, 0.001f, this, tr("Env release")), + m_amountModel(0.f, -1.f, 1.f, 0.005f, this, tr("Env mod amount")), m_valueForZeroAmount( _value_for_zero_amount ), m_pahdFrames( 0 ), m_rFrames( 0 ), @@ -107,18 +111,18 @@ EnvelopeAndLfoParameters::EnvelopeAndLfoParameters( m_rEnv( nullptr ), m_pahdBufSize( 0 ), m_rBufSize( 0 ), - m_lfoPredelayModel( 0.0, 0.0, 1.0, 0.001, this, tr( "LFO pre-delay" ) ), - m_lfoAttackModel( 0.0, 0.0, 1.0, 0.001, this, tr( "LFO attack" ) ), - m_lfoSpeedModel( 0.1, 0.001, 1.0, 0.0001, - SECS_PER_LFO_OSCILLATION * 1000.0, this, - tr( "LFO frequency" ) ), - m_lfoAmountModel( 0.0, -1.0, 1.0, 0.005, this, tr( "LFO mod amount" ) ), + m_lfoPredelayModel(0.f, 0.f, 1.f, 0.001f, this, tr("LFO pre-delay")), + m_lfoAttackModel(0.f, 0.f, 1.f, 0.001f, this, tr("LFO attack")), + m_lfoSpeedModel(0.1f, 0.001f, 1.f, 0.0001f, + SECS_PER_LFO_OSCILLATION * 1000.f, this, + tr("LFO frequency")), + m_lfoAmountModel(0.f, -1.f, 1.f, 0.005f, this, tr("LFO mod amount")), m_lfoWaveModel( static_cast(LfoShape::SineWave), 0, NumLfoShapes, this, tr( "LFO wave shape" ) ), m_x100Model( false, this, tr( "LFO frequency x 100" ) ), m_controlEnvAmountModel( false, this, tr( "Modulate env amount" ) ), m_lfoFrame( 0 ), m_lfoAmountIsZero( false ), - m_lfoShapeData( nullptr ) + m_lfoShapeData(nullptr) { m_amountModel.setCenterValue( 0 ); m_lfoAmountModel.setCenterValue( 0 ); @@ -221,7 +225,7 @@ inline sample_t EnvelopeAndLfoParameters::lfoShapeSample( fpp_t _frame_offset ) shape_sample = Oscillator::sawSample( phase ); break; case LfoShape::UserDefinedWave: - shape_sample = m_userWave.userWaveSample( phase ); + shape_sample = Oscillator::userWaveSample(m_userWave.get(), phase); break; case LfoShape::RandomWave: if( frame == 0 ) @@ -295,11 +299,6 @@ void EnvelopeAndLfoParameters::fillLevel( float * _buf, f_cnt_t _frame, { QMutexLocker m(&m_paramMutex); - if( _frame < 0 || _release_begin < 0 ) - { - return; - } - fillLfoLevel( _buf, _frame, _frames ); for( fpp_t offset = 0; offset < _frames; ++offset, ++_buf, ++_frame ) @@ -354,7 +353,7 @@ void EnvelopeAndLfoParameters::saveSettings( QDomDocument & _doc, m_lfoAmountModel.saveSettings( _doc, _parent, "lamt" ); m_x100Model.saveSettings( _doc, _parent, "x100" ); m_controlEnvAmountModel.saveSettings( _doc, _parent, "ctlenvamt" ); - _parent.setAttribute( "userwavefile", m_userWave.audioFile() ); + _parent.setAttribute("userwavefile", m_userWave->audioFile()); } @@ -386,7 +385,14 @@ void EnvelopeAndLfoParameters::loadSettings( const QDomElement & _this ) m_sustainModel.setValue( 1.0 - m_sustainModel.value() ); } - m_userWave.setAudioFile( _this.attribute( "userwavefile" ) ); + if (const auto userWaveFile = _this.attribute("userwavefile"); !userWaveFile.isEmpty()) + { + if (QFileInfo(PathUtil::toAbsolute(userWaveFile)).exists()) + { + m_userWave = gui::SampleLoader::createBufferFromFile(_this.attribute("userwavefile")); + } + else { Engine::getSong()->collectError(QString("%1: %2").arg(tr("Sample not found"), userWaveFile)); } + } updateSampleVars(); } @@ -399,7 +405,7 @@ void EnvelopeAndLfoParameters::updateSampleVars() QMutexLocker m(&m_paramMutex); const float frames_per_env_seg = SECS_PER_ENV_SEGMENT * - Engine::audioEngine()->processingSampleRate(); + Engine::audioEngine()->outputSampleRate(); // TODO: Remove the expKnobVals, time should be linear const auto predelay_frames = static_cast(frames_per_env_seg * expKnobVal(m_predelayModel.value())); @@ -498,7 +504,7 @@ void EnvelopeAndLfoParameters::updateSampleVars() const float frames_per_lfo_oscillation = SECS_PER_LFO_OSCILLATION * - Engine::audioEngine()->processingSampleRate(); + Engine::audioEngine()->outputSampleRate(); m_lfoPredelayFrames = static_cast( frames_per_lfo_oscillation * expKnobVal( m_lfoPredelayModel.value() ) ); m_lfoAttackFrames = static_cast( frames_per_lfo_oscillation * diff --git a/src/core/FileSearch.cpp b/src/core/FileSearch.cpp new file mode 100644 index 00000000000..8a668360e2c --- /dev/null +++ b/src/core/FileSearch.cpp @@ -0,0 +1,92 @@ +/* + * FileSearch.cpp - File system search task + * + * Copyright (c) 2024 saker + * + * This file is part of LMMS - https://lmms.io + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#include "FileSearch.h" + +#include +#include +#include + +#include + +namespace lmms { +FileSearch::FileSearch(const QString& filter, const QStringList& paths, const QStringList& extensions, + const QStringList& excludedPaths, QDir::Filters dirFilters, QDir::SortFlags sortFlags) + : m_filter(filter) + , m_paths(paths) + , m_extensions(extensions) + , m_excludedPaths(excludedPaths) + , m_dirFilters(dirFilters) + , m_sortFlags(sortFlags) +{ +} + +void FileSearch::operator()() +{ + auto stack = QFileInfoList{}; + for (const auto& path : m_paths) + { + if (m_excludedPaths.contains(path)) { continue; } + + auto dir = QDir{path}; + stack.append(dir.entryInfoList(m_dirFilters, m_sortFlags)); + + while (!stack.empty()) + { + if (m_cancel.load(std::memory_order_relaxed)) { return; } + + const auto info = stack.takeFirst(); + const auto entryPath = info.absoluteFilePath(); + if (m_excludedPaths.contains(entryPath)) { continue; } + + const auto name = info.fileName(); + const auto validFile = info.isFile() && m_extensions.contains(info.suffix(), Qt::CaseInsensitive); + const auto passesFilter = name.contains(m_filter, Qt::CaseInsensitive); + + if ((validFile || info.isDir()) && passesFilter) + { + std::this_thread::sleep_for(std::chrono::milliseconds{MillisecondsBetweenResults}); + emit foundMatch(this, entryPath); + } + + if (info.isDir()) + { + dir.setPath(entryPath); + const auto entries = dir.entryInfoList(m_dirFilters, m_sortFlags); + + // Reverse to maintain the sorting within this directory when popped + std::for_each(entries.rbegin(), entries.rend(), [&stack](const auto& entry) { stack.push_front(entry); }); + } + } + } + + emit searchCompleted(this); +} + +void FileSearch::cancel() +{ + m_cancel.store(true, std::memory_order_relaxed); +} + +} // namespace lmms diff --git a/src/core/Instrument.cpp b/src/core/Instrument.cpp index a7cfc467ba4..9237ad70dbe 100644 --- a/src/core/Instrument.cpp +++ b/src/core/Instrument.cpp @@ -28,6 +28,7 @@ #include "DummyInstrument.h" #include "InstrumentTrack.h" +#include "lmms_basics.h" #include "lmms_constants.h" @@ -37,13 +38,15 @@ namespace lmms Instrument::Instrument(InstrumentTrack * _instrument_track, const Descriptor * _descriptor, - const Descriptor::SubPluginFeatures::Key *key) : + const Descriptor::SubPluginFeatures::Key *key, + Flags flags) : Plugin(_descriptor, nullptr/* _instrument_track*/, key), - m_instrumentTrack( _instrument_track ) + m_instrumentTrack( _instrument_track ), + m_flags(flags) { } -void Instrument::play( sampleFrame * ) +void Instrument::play( SampleFrame* ) { } @@ -87,7 +90,7 @@ bool Instrument::isFromTrack( const Track * _track ) const } // helper function for Instrument::applyFadeIn -static int countZeroCrossings(sampleFrame *buf, fpp_t start, fpp_t frames) +static int countZeroCrossings(SampleFrame* buf, fpp_t start, fpp_t frames) { // zero point crossing counts of all channels auto zeroCrossings = std::array{}; @@ -126,7 +129,7 @@ fpp_t getFadeInLength(float maxLength, fpp_t frames, int zeroCrossings) } -void Instrument::applyFadeIn(sampleFrame * buf, NotePlayHandle * n) +void Instrument::applyFadeIn(SampleFrame* buf, NotePlayHandle * n) { const static float MAX_FADE_IN_LENGTH = 85.0; f_cnt_t total = n->totalFramesPlayed(); @@ -177,13 +180,13 @@ void Instrument::applyFadeIn(sampleFrame * buf, NotePlayHandle * n) } } -void Instrument::applyRelease( sampleFrame * buf, const NotePlayHandle * _n ) +void Instrument::applyRelease( SampleFrame* buf, const NotePlayHandle * _n ) { const auto fpp = Engine::audioEngine()->framesPerPeriod(); const auto releaseFrames = desiredReleaseFrames(); const auto endFrame = _n->framesLeft(); - const auto startFrame = std::max(0, endFrame - releaseFrames); + const auto startFrame = endFrame - std::min(endFrame, releaseFrames); for (auto f = startFrame; f < endFrame && f < fpp; f++) { @@ -195,7 +198,16 @@ void Instrument::applyRelease( sampleFrame * buf, const NotePlayHandle * _n ) } } +float Instrument::computeReleaseTimeMsByFrameCount(f_cnt_t frames) const +{ + return frames / getSampleRate() * 1000.; +} + +sample_rate_t Instrument::getSampleRate() const +{ + return Engine::audioEngine()->outputSampleRate(); +} QString Instrument::fullDisplayName() const diff --git a/src/core/InstrumentFunctions.cpp b/src/core/InstrumentFunctions.cpp index 976363d3d08..3687c0b7445 100644 --- a/src/core/InstrumentFunctions.cpp +++ b/src/core/InstrumentFunctions.cpp @@ -31,6 +31,9 @@ #include "InstrumentTrack.h" #include "PresetPreviewPlayHandle.h" +#include +#include + namespace lmms { @@ -348,10 +351,11 @@ void InstrumentFunctionArpeggio::processNote( NotePlayHandle * _n ) _n->setMasterNote(); const int selected_arp = m_arpModel.value(); + const auto arpMode = static_cast(m_arpModeModel.value()); - ConstNotePlayHandleList cnphv = NotePlayHandle::nphsOfInstrumentTrack( _n->instrumentTrack() ); + ConstNotePlayHandleList cnphv = NotePlayHandle::nphsOfInstrumentTrack(_n->instrumentTrack()); - if( static_cast(m_arpModeModel.value()) != ArpMode::Free && cnphv.size() == 0 ) + if(arpMode != ArpMode::Free && cnphv.size() == 0 ) { // maybe we're playing only a preset-preview-note? cnphv = PresetPreviewPlayHandle::nphsOfInstrumentTrack( _n->instrumentTrack() ); @@ -363,23 +367,38 @@ void InstrumentFunctionArpeggio::processNote( NotePlayHandle * _n ) } } + // avoid playing same key for all + // currently playing notes if sort mode is enabled + if (arpMode == ArpMode::Sort && _n != cnphv.first()) { return; } + const InstrumentFunctionNoteStacking::ChordTable & chord_table = InstrumentFunctionNoteStacking::ChordTable::getInstance(); const int cur_chord_size = chord_table.chords()[selected_arp].size(); - const int range = static_cast(cur_chord_size * m_arpRangeModel.value() * m_arpRepeatsModel.value()); - const int total_range = range * cnphv.size(); + const int total_chord_size = cur_chord_size * cnphv.size(); + // how many notes are in a single chord (multiplied by range) + const int singleNoteRange = static_cast(cur_chord_size * m_arpRangeModel.value() * m_arpRepeatsModel.value()); + // how many notes are in the final chord + const int range = arpMode == ArpMode::Sort ? singleNoteRange * cnphv.size() : singleNoteRange; + + if (arpMode == ArpMode::Sort) + { + std::sort(cnphv.begin(), cnphv.end(), [](const NotePlayHandle* a, const NotePlayHandle* b) + { + return a->key() < b->key(); + }); + } // number of frames that every note should be played - const auto arp_frames = (f_cnt_t)(m_arpTimeModel.value() / 1000.0f * Engine::audioEngine()->processingSampleRate()); + const auto arp_frames = (f_cnt_t)(m_arpTimeModel.value() / 1000.0f * Engine::audioEngine()->outputSampleRate()); const auto gated_frames = (f_cnt_t)(m_arpGateModel.value() * arp_frames / 100.0f); // used for calculating remaining frames for arp-note, we have to add // arp_frames-1, otherwise the first arp-note will not be setup // correctly... -> arp_frames frames silence at the start of every note! - int cur_frame = ( ( static_cast(m_arpModeModel.value()) != ArpMode::Free ) ? + int cur_frame = (arpMode != ArpMode::Free ? cnphv.first()->totalFramesPlayed() : - _n->totalFramesPlayed() ) + arp_frames - 1; + _n->totalFramesPlayed()) + arp_frames - 1; // used for loop - f_cnt_t frames_processed = ( static_cast(m_arpModeModel.value()) != ArpMode::Free ) ? cnphv.first()->noteOffset() : _n->noteOffset(); + f_cnt_t frames_processed = arpMode != ArpMode::Free ? cnphv.first()->noteOffset() : _n->noteOffset(); while( frames_processed < Engine::audioEngine()->framesPerPeriod() ) { @@ -395,17 +414,6 @@ void InstrumentFunctionArpeggio::processNote( NotePlayHandle * _n ) frames_processed += remaining_frames_for_cur_arp; - // in sorted mode: is it our turn or do we have to be quiet for - // now? - if( static_cast(m_arpModeModel.value()) == ArpMode::Sort && - ( ( cur_frame / arp_frames ) % total_range ) / range != (f_cnt_t) _n->index() ) - { - // update counters - frames_processed += arp_frames; - cur_frame += arp_frames; - continue; - } - // Skip notes randomly if( m_arpSkipModel.value() ) { @@ -433,46 +441,28 @@ void InstrumentFunctionArpeggio::processNote( NotePlayHandle * _n ) int cur_arp_idx = 0; // process according to arpeggio-direction... - if( dir == ArpDirection::Up ) + if (dir == ArpDirection::Up || dir == ArpDirection::Down) { - cur_arp_idx = ( cur_frame / arp_frames ) % range; + cur_arp_idx = (cur_frame / arp_frames) % range; } - else if( dir == ArpDirection::Down ) - { - cur_arp_idx = range - ( cur_frame / arp_frames ) % - range - 1; - } - else if( dir == ArpDirection::UpAndDown && range > 1 ) + else if ((dir == ArpDirection::UpAndDown || dir == ArpDirection::DownAndUp) && range > 1) { // imagine, we had to play the arp once up and then // once down -> makes 2 * range possible notes... // because we don't play the lower and upper notes // twice, we have to subtract 2 - cur_arp_idx = ( cur_frame / arp_frames ) % ( range * 2 - 2 ); + cur_arp_idx = (cur_frame / arp_frames) % (range * 2 - (2 * static_cast(m_arpRepeatsModel.value()))); // if greater than range, we have to play down... // looks like the code for arp_dir==DOWN... :) - if( cur_arp_idx >= range ) + if (cur_arp_idx >= range) { - cur_arp_idx = range - cur_arp_idx % ( range - 1 ) - 1; + cur_arp_idx = range - cur_arp_idx % (range - 1) - static_cast(m_arpRepeatsModel.value()); } } - else if( dir == ArpDirection::DownAndUp && range > 1 ) - { - // copied from ArpDirection::UpAndDown above - cur_arp_idx = ( cur_frame / arp_frames ) % ( range * 2 - 2 ); - // if greater than range, we have to play down... - // looks like the code for arp_dir==DOWN... :) - if( cur_arp_idx >= range ) - { - cur_arp_idx = range - cur_arp_idx % ( range - 1 ) - 1; - } - // inverts direction - cur_arp_idx = range - cur_arp_idx - 1; - } else if( dir == ArpDirection::Random ) { // just pick a random chord-index - cur_arp_idx = (int)( range * ( (float) rand() / (float) RAND_MAX ) ); + cur_arp_idx = static_cast(range * static_cast(rand()) / static_cast(RAND_MAX)); } // Divide cur_arp_idx with wanted repeats. The repeat feature will not affect random notes. @@ -482,12 +472,33 @@ void InstrumentFunctionArpeggio::processNote( NotePlayHandle * _n ) if( m_arpCycleModel.value() && dir != ArpDirection::Random ) { cur_arp_idx *= m_arpCycleModel.value() + 1; - cur_arp_idx %= static_cast( range / m_arpRepeatsModel.value() ); + cur_arp_idx %= static_cast(range / m_arpRepeatsModel.value()); + } + + // If ArpDirection::Down or ArpDirection::DownAndUp, invert the final range. + if (dir == ArpDirection::Down || dir == ArpDirection::DownAndUp) + { + cur_arp_idx = static_cast(range / m_arpRepeatsModel.value()) - cur_arp_idx - 1; } // now calculate final key for our arp-note - const int sub_note_key = base_note_key + (cur_arp_idx / cur_chord_size ) * + int sub_note_key = 0; + if (arpMode != ArpMode::Sort) + { + sub_note_key = base_note_key + (cur_arp_idx / cur_chord_size) * KeysPerOctave + chord_table.chords()[selected_arp][cur_arp_idx % cur_chord_size]; + } + else + { + const auto octaveDiv = std::div(cur_arp_idx, total_chord_size); + const int octave = octaveDiv.quot; + const auto arpDiv = std::div(octaveDiv.rem, cnphv.size()); + const int arpIndex = arpDiv.rem; + const int chordIndex = arpDiv.quot; + sub_note_key = cnphv[arpIndex]->key() + + chord_table.chords()[selected_arp][chordIndex] + + octave * KeysPerOctave; + } // range-checking if( sub_note_key >= NumKeys || diff --git a/src/core/InstrumentPlayHandle.cpp b/src/core/InstrumentPlayHandle.cpp index 097719ad83d..afae852a067 100644 --- a/src/core/InstrumentPlayHandle.cpp +++ b/src/core/InstrumentPlayHandle.cpp @@ -40,30 +40,28 @@ InstrumentPlayHandle::InstrumentPlayHandle(Instrument * instrument, InstrumentTr setAudioPort(instrumentTrack->audioPort()); } -void InstrumentPlayHandle::play(sampleFrame * working_buffer) +void InstrumentPlayHandle::play(SampleFrame* working_buffer) { InstrumentTrack * instrumentTrack = m_instrument->instrumentTrack(); // ensure that all our nph's have been processed first auto nphv = NotePlayHandle::nphsOfInstrumentTrack(instrumentTrack, true); - + bool nphsLeft; do { nphsLeft = false; - for (const NotePlayHandle * constNotePlayHandle : nphv) + for (const auto& handle : nphv) { - if (constNotePlayHandle->state() != ThreadableJob::ProcessingState::Done && - !constNotePlayHandle->isFinished()) + if (handle->state() != ThreadableJob::ProcessingState::Done && !handle->isFinished()) { nphsLeft = true; - NotePlayHandle * notePlayHandle = const_cast(constNotePlayHandle); - notePlayHandle->process(); + const_cast(handle)->process(); } } } while (nphsLeft); - + m_instrument->play(working_buffer); // Process the audio buffer that the instrument has just worked on... diff --git a/src/core/InstrumentSoundShaping.cpp b/src/core/InstrumentSoundShaping.cpp index 07c3bbf7c0f..eca06f9a2bb 100644 --- a/src/core/InstrumentSoundShaping.cpp +++ b/src/core/InstrumentSoundShaping.cpp @@ -64,9 +64,9 @@ InstrumentSoundShaping::InstrumentSoundShaping( m_filterEnabledModel( false, this ), m_filterModel( this, tr( "Filter type" ) ), m_filterCutModel( 14000.0, 1.0, 14000.0, 1.0, this, tr( "Cutoff frequency" ) ), - m_filterResModel( 0.5, BasicFilters<>::minQ(), 10.0, 0.01, this, tr( "Q/Resonance" ) ) + m_filterResModel(0.5f, BasicFilters<>::minQ(), 10.f, 0.01f, this, tr("Q/Resonance")) { - for( int i = 0; i < NumTargets; ++i ) + for (auto i = std::size_t{0}; i < NumTargets; ++i) { float value_for_zero_amount = 0.0; if( static_cast(i) == Target::Volume ) @@ -127,7 +127,7 @@ float InstrumentSoundShaping::volumeLevel( NotePlayHandle* n, const f_cnt_t fram -void InstrumentSoundShaping::processAudioBuffer( sampleFrame* buffer, +void InstrumentSoundShaping::processAudioBuffer( SampleFrame* buffer, const fpp_t frames, NotePlayHandle* n ) { @@ -158,7 +158,7 @@ void InstrumentSoundShaping::processAudioBuffer( sampleFrame* buffer, if( n->m_filter == nullptr ) { - n->m_filter = std::make_unique>( Engine::audioEngine()->processingSampleRate() ); + n->m_filter = std::make_unique>( Engine::audioEngine()->outputSampleRate() ); } n->m_filter->setFilterType( static_cast::FilterType>(m_filterModel.value()) ); @@ -279,7 +279,7 @@ f_cnt_t InstrumentSoundShaping::envFrames( const bool _only_vol ) const if( _only_vol == false ) { - for( int i = static_cast(Target::Volume)+1; i < NumTargets; ++i ) + for (auto i = static_cast(Target::Volume) + 1; i < NumTargets; ++i) { if( m_envLfoParameters[i]->isUsed() && m_envLfoParameters[i]->PAHD_Frames() > ret_val ) @@ -303,7 +303,7 @@ f_cnt_t InstrumentSoundShaping::releaseFrames() const f_cnt_t ret_val = m_instrumentTrack->instrument()->desiredReleaseFrames(); - if( m_instrumentTrack->instrument()->flags().testFlag( Instrument::Flag::IsSingleStreamed ) ) + if (m_instrumentTrack->instrument()->isSingleStreamed()) { return ret_val; } @@ -313,7 +313,7 @@ f_cnt_t InstrumentSoundShaping::releaseFrames() const return m_envLfoParameters[static_cast(Target::Volume)]->releaseFrames(); } - for( int i = static_cast(Target::Volume)+1; i < NumTargets; ++i ) + for (auto i = static_cast(Target::Volume) + 1; i < NumTargets; ++i) { if( m_envLfoParameters[i]->isUsed() ) { @@ -333,7 +333,7 @@ void InstrumentSoundShaping::saveSettings( QDomDocument & _doc, QDomElement & _t m_filterResModel.saveSettings( _doc, _this, "fres" ); m_filterEnabledModel.saveSettings( _doc, _this, "fwet" ); - for( int i = 0; i < NumTargets; ++i ) + for (auto i = std::size_t{0}; i < NumTargets; ++i) { m_envLfoParameters[i]->saveState( _doc, _this ).setTagName( m_envLfoParameters[i]->nodeName() + @@ -356,7 +356,7 @@ void InstrumentSoundShaping::loadSettings( const QDomElement & _this ) { if( node.isElement() ) { - for( int i = 0; i < NumTargets; ++i ) + for (auto i = std::size_t{0}; i < NumTargets; ++i) { if( node.nodeName() == m_envLfoParameters[i]->nodeName() + diff --git a/src/core/Keymap.cpp b/src/core/Keymap.cpp index 6683919fe36..be422991a6b 100644 --- a/src/core/Keymap.cpp +++ b/src/core/Keymap.cpp @@ -147,7 +147,7 @@ void Keymap::loadSettings(const QDomElement &element) QDomNode node = element.firstChild(); m_map.clear(); - for (int i = 0; !node.isNull(); i++) + while (!node.isNull()) { m_map.push_back(node.toElement().attribute("value").toInt()); node = node.nextSibling(); diff --git a/src/core/LadspaManager.cpp b/src/core/LadspaManager.cpp index 064c928efd2..e4d472bd109 100644 --- a/src/core/LadspaManager.cpp +++ b/src/core/LadspaManager.cpp @@ -122,14 +122,8 @@ LadspaManager::~LadspaManager() LadspaManagerDescription * LadspaManager::getDescription( const ladspa_key_t & _plugin ) { - if( m_ladspaManagerMap.contains( _plugin ) ) - { - return( m_ladspaManagerMap[_plugin] ); - } - else - { - return( nullptr ); - } + auto const it = m_ladspaManagerMap.find(_plugin); + return it != m_ladspaManagerMap.end() ? *it : nullptr; } @@ -139,11 +133,7 @@ void LadspaManager::addPlugins( LADSPA_Descriptor_Function _descriptor_func, const QString & _file ) { - const LADSPA_Descriptor * descriptor; - - for( long pluginIndex = 0; - ( descriptor = _descriptor_func( pluginIndex ) ) != nullptr; - ++pluginIndex ) + for (long pluginIndex = 0; const auto descriptor = _descriptor_func(pluginIndex); ++pluginIndex) { ladspa_key_t key( _file, QString( descriptor->Label ) ); if( m_ladspaManagerMap.contains( key ) ) @@ -523,24 +513,16 @@ bool LadspaManager::isInteger( const ladspa_key_t & _plugin, bool LadspaManager::isEnum( const ladspa_key_t & _plugin, uint32_t _port ) { - if( m_ladspaManagerMap.contains( _plugin ) - && _port < getPortCount( _plugin ) ) + auto const * desc = getDescriptor(_plugin); + if (desc && _port < desc->PortCount) { - LADSPA_Descriptor_Function descriptorFunction = - m_ladspaManagerMap[_plugin]->descriptorFunction; - const LADSPA_Descriptor * descriptor = - descriptorFunction( - m_ladspaManagerMap[_plugin]->index ); LADSPA_PortRangeHintDescriptor hintDescriptor = - descriptor->PortRangeHints[_port].HintDescriptor; + desc->PortRangeHints[_port].HintDescriptor; // This is an LMMS extension to ladspa - return( LADSPA_IS_HINT_INTEGER( hintDescriptor ) && - LADSPA_IS_HINT_TOGGLED( hintDescriptor ) ); - } - else - { - return( false ); + return LADSPA_IS_HINT_INTEGER(hintDescriptor) && LADSPA_IS_HINT_TOGGLED(hintDescriptor); } + + return false; } @@ -566,22 +548,20 @@ const void * LadspaManager::getImplementationData( -const LADSPA_Descriptor * LadspaManager::getDescriptor( - const ladspa_key_t & _plugin ) +const LADSPA_Descriptor * LadspaManager::getDescriptor(const ladspa_key_t & _plugin) { - if( m_ladspaManagerMap.contains( _plugin ) ) - { - LADSPA_Descriptor_Function descriptorFunction = - m_ladspaManagerMap[_plugin]->descriptorFunction; - const LADSPA_Descriptor * descriptor = - descriptorFunction( - m_ladspaManagerMap[_plugin]->index ); - return( descriptor ); - } - else + auto const it = m_ladspaManagerMap.find(_plugin); + if (it != m_ladspaManagerMap.end()) { - return( nullptr ); + auto const plugin = *it; + + LADSPA_Descriptor_Function descriptorFunction = plugin->descriptorFunction; + const LADSPA_Descriptor* descriptor = descriptorFunction(plugin->index); + + return descriptor; } + + return nullptr; } diff --git a/src/core/LfoController.cpp b/src/core/LfoController.cpp index 88f64803c2b..96ea71f7b50 100644 --- a/src/core/LfoController.cpp +++ b/src/core/LfoController.cpp @@ -23,23 +23,25 @@ * */ -#include +#include "LfoController.h" +#include +#include -#include "LfoController.h" #include "AudioEngine.h" +#include "PathUtil.h" +#include "SampleLoader.h" #include "Song.h" - namespace lmms { LfoController::LfoController( Model * _parent ) : Controller( ControllerType::Lfo, _parent, tr( "LFO Controller" ) ), - m_baseModel( 0.5, 0.0, 1.0, 0.001, this, tr( "Base value" ) ), - m_speedModel( 2.0, 0.01, 20.0, 0.0001, 20000.0, this, tr( "Oscillator speed" ) ), - m_amountModel( 1.0, -1.0, 1.0, 0.005, this, tr( "Oscillator amount" ) ), + m_baseModel(0.5f, 0.f, 1.f, 0.001f, this, tr("Base value")), + m_speedModel(2.f, 0.01f, 20.f, 0.0001f, 20000.f, this, tr("Oscillator speed")), + m_amountModel(1.f, -1.f, 1.f, 0.005f, this, tr("Oscillator amount")), m_phaseModel( 0.0, 0.0, 360.0, 4.0, this, tr( "Oscillator phase" ) ), m_waveModel( static_cast(Oscillator::WaveShape::Sine), 0, Oscillator::NumWaveShapes, this, tr( "Oscillator waveform" ) ), @@ -48,7 +50,7 @@ LfoController::LfoController( Model * _parent ) : m_phaseOffset( 0 ), m_currentPhase( 0 ), m_sampleFunction( &Oscillator::sinSample ), - m_userDefSampleBuffer( new SampleBuffer ) + m_userDefSampleBuffer(std::make_shared()) { setSampleExact( true ); connect( &m_waveModel, SIGNAL(dataChanged()), @@ -74,7 +76,6 @@ LfoController::LfoController( Model * _parent ) : LfoController::~LfoController() { - sharedObject::unref( m_userDefSampleBuffer ); m_baseModel.disconnect( this ); m_speedModel.disconnect( this ); m_amountModel.disconnect( this ); @@ -122,7 +123,7 @@ void LfoController::updateValueBuffer() } case Oscillator::WaveShape::UserDefined: { - currentSample = m_userDefSampleBuffer->userWaveSample(phase); + currentSample = Oscillator::userWaveSample(m_userDefSampleBuffer.get(), phase); break; } default: @@ -154,7 +155,7 @@ void LfoController::updatePhase() void LfoController::updateDuration() { - float newDurationF = Engine::audioEngine()->processingSampleRate() * m_speedModel.value(); + float newDurationF = Engine::audioEngine()->outputSampleRate() * m_speedModel.value(); switch(m_multiplierModel.value() ) { @@ -222,7 +223,7 @@ void LfoController::saveSettings( QDomDocument & _doc, QDomElement & _this ) m_phaseModel.saveSettings( _doc, _this, "phase" ); m_waveModel.saveSettings( _doc, _this, "wave" ); m_multiplierModel.saveSettings( _doc, _this, "multiplier" ); - _this.setAttribute( "userwavefile" , m_userDefSampleBuffer->audioFile() ); + _this.setAttribute("userwavefile", m_userDefSampleBuffer->audioFile()); } @@ -237,7 +238,15 @@ void LfoController::loadSettings( const QDomElement & _this ) m_phaseModel.loadSettings( _this, "phase" ); m_waveModel.loadSettings( _this, "wave" ); m_multiplierModel.loadSettings( _this, "multiplier" ); - m_userDefSampleBuffer->setAudioFile( _this.attribute("userwavefile" ) ); + + if (const auto userWaveFile = _this.attribute("userwavefile"); !userWaveFile.isEmpty()) + { + if (QFileInfo(PathUtil::toAbsolute(userWaveFile)).exists()) + { + m_userDefSampleBuffer = gui::SampleLoader::createBufferFromFile(_this.attribute("userwavefile")); + } + else { Engine::getSong()->collectError(QString("%1: %2").arg(tr("Sample not found"), userWaveFile)); } + } updateSampleFunction(); } diff --git a/src/core/LinkedModelGroups.cpp b/src/core/LinkedModelGroups.cpp index 83bebc2a07e..c52bce43310 100644 --- a/src/core/LinkedModelGroups.cpp +++ b/src/core/LinkedModelGroups.cpp @@ -143,9 +143,7 @@ bool LinkedModelGroup::containsModel(const QString &name) const void LinkedModelGroups::linkAllModels() { LinkedModelGroup* first = getGroup(0); - LinkedModelGroup* cur; - - for (std::size_t i = 1; (cur = getGroup(i)); ++i) + for (size_t i = 1; auto cur = getGroup(i); ++i) { first->linkControls(cur); } @@ -172,8 +170,7 @@ void LinkedModelGroups::saveSettings(QDomDocument& doc, QDomElement& that) void LinkedModelGroups::loadSettings(const QDomElement& that) { QDomElement models = that.firstChildElement("models"); - LinkedModelGroup* grp0; - if (!models.isNull() && (grp0 = getGroup(0))) + if (auto grp0 = getGroup(0); !models.isNull() && grp0) { // only load the first group, the others are linked to the first grp0->loadValues(models); diff --git a/src/core/LocklessAllocator.cpp b/src/core/LocklessAllocator.cpp index 919093906c3..92eadd75128 100644 --- a/src/core/LocklessAllocator.cpp +++ b/src/core/LocklessAllocator.cpp @@ -71,8 +71,7 @@ LocklessAllocator::LocklessAllocator( size_t nmemb, size_t size ) LocklessAllocator::~LocklessAllocator() { - int available = m_available; - if( available != m_capacity ) + if (m_available != m_capacity) { fprintf( stderr, "LocklessAllocator: " "Destroying with elements still allocated\n" ); @@ -110,7 +109,7 @@ void * LocklessAllocator::alloc() // Some of these CAS loops could probably use relaxed atomics, as discussed // in http://en.cppreference.com/w/cpp/atomic/atomic/compare_exchange. // Let's use sequentially-consistent ops to be safe for now. - int available = m_available.load(); + auto available = m_available.load(); do { if( !available ) diff --git a/src/core/MemoryHelper.cpp b/src/core/MemoryHelper.cpp deleted file mode 100644 index de80ef7701d..00000000000 --- a/src/core/MemoryHelper.cpp +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright (c) 2014 Simon Symeonidis - * Copyright (c) 2008-2014 Tobias Doerffel - * - * This file is part of LMMS - https://lmms.io - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program (see COPYING); if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - */ - -#include - -#include "lmms_basics.h" -#include "MemoryHelper.h" - -namespace lmms -{ - - -/** - * Allocate a number of bytes and return them. - * @param byteNum is the number of bytes - */ -void* MemoryHelper::alignedMalloc( size_t byteNum ) -{ - char *ptr, *ptr2, *aligned_ptr; - int align_mask = LMMS_ALIGN_SIZE - 1; - - ptr = static_cast( malloc( byteNum + LMMS_ALIGN_SIZE + sizeof( int ) ) ); - - if( ptr == nullptr ) return nullptr; - - ptr2 = ptr + sizeof( int ); - aligned_ptr = ptr2 + ( LMMS_ALIGN_SIZE - ( ( size_t ) ptr2 & align_mask ) ); - - ptr2 = aligned_ptr - sizeof( int ); - *( ( int* ) ptr2 ) = ( int )( aligned_ptr - ptr ); - - return aligned_ptr; -} - - -/** - * Free an aligned buffer - * @param _buffer is the buffer to free - */ -void MemoryHelper::alignedFree( void* _buffer ) -{ - if( _buffer ) - { - int *ptr2 = static_cast( _buffer ) - 1; - _buffer = static_cast( _buffer ) - *ptr2; - free( _buffer ); - } -} - - -} // namespace lmms diff --git a/src/core/MemoryManager.cpp b/src/core/MemoryManager.cpp deleted file mode 100644 index bd3168f1487..00000000000 --- a/src/core/MemoryManager.cpp +++ /dev/null @@ -1,84 +0,0 @@ -/* - * MemoryManager.cpp - * - * Copyright (c) 2017 Lukas W - * - * This file is part of LMMS - https://lmms.io - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program (see COPYING); if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - */ - - -#include "MemoryManager.h" - -#include -#include "rpmalloc.h" - -namespace lmms -{ - - -/// Global static object handling rpmalloc intializing and finalizing -struct MemoryManagerGlobalGuard { - MemoryManagerGlobalGuard() { - rpmalloc_initialize(); - } - ~MemoryManagerGlobalGuard() { - rpmalloc_finalize(); - } -} static mm_global_guard; - - -namespace { -static thread_local size_t thread_guard_depth; -} - -MemoryManager::ThreadGuard::ThreadGuard() -{ - if (thread_guard_depth++ == 0) { - rpmalloc_thread_initialize(); - } -} - -MemoryManager::ThreadGuard::~ThreadGuard() -{ - if (--thread_guard_depth == 0) { - rpmalloc_thread_finalize(true); - } -} - -static thread_local MemoryManager::ThreadGuard local_mm_thread_guard{}; - -void* MemoryManager::alloc(size_t size) -{ - // Reference local thread guard to ensure it is initialized. - // Compilers may optimize the instance away otherwise. - Q_UNUSED(&local_mm_thread_guard); - Q_ASSERT_X(rpmalloc_is_thread_initialized(), "MemoryManager::alloc", "Thread not initialized"); - return rpmalloc(size); -} - - -void MemoryManager::free(void * ptr) -{ - Q_UNUSED(&local_mm_thread_guard); - Q_ASSERT_X(rpmalloc_is_thread_initialized(), "MemoryManager::free", "Thread not initialized"); - return rpfree(ptr); -} - - -} // namespace lmms diff --git a/src/core/Metronome.cpp b/src/core/Metronome.cpp new file mode 100644 index 00000000000..8afc6afa497 --- /dev/null +++ b/src/core/Metronome.cpp @@ -0,0 +1,41 @@ +/* + * Metronome.cpp + * + * Copyright (c) 2024 saker + * + * This file is part of LMMS - https://lmms.io + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#include "Metronome.h" + +#include "Engine.h" +#include "SamplePlayHandle.h" + +namespace lmms { +void Metronome::processTick(int currentTick, int ticksPerBar, int beatsPerBar, size_t bufferOffset) +{ + const auto ticksPerBeat = ticksPerBar / beatsPerBar; + if (currentTick % ticksPerBeat != 0 || !m_active) { return; } + + const auto handle = currentTick % ticksPerBar == 0 ? new SamplePlayHandle("misc/metronome02.ogg") + : new SamplePlayHandle("misc/metronome01.ogg"); + handle->setOffset(bufferOffset); + Engine::audioEngine()->addPlayHandle(handle); +} +} // namespace lmms diff --git a/src/core/Microtuner.cpp b/src/core/Microtuner.cpp index 9c5ab871bc8..46d83017fa2 100644 --- a/src/core/Microtuner.cpp +++ b/src/core/Microtuner.cpp @@ -126,14 +126,14 @@ int Microtuner::octaveSize() const */ void Microtuner::updateScaleList(int index) { - if (index >= 0 && index < MaxScaleCount) + if (index >= 0 && static_cast(index) < MaxScaleCount) { m_scaleModel.replaceItem(index, QString::number(index) + ": " + Engine::getSong()->getScale(index)->getDescription()); } else { - for (int i = 0; i < MaxScaleCount; i++) + for (auto i = std::size_t{0}; i < MaxScaleCount; i++) { m_scaleModel.replaceItem(i, QString::number(i) + ": " + Engine::getSong()->getScale(i)->getDescription()); @@ -147,14 +147,14 @@ void Microtuner::updateScaleList(int index) */ void Microtuner::updateKeymapList(int index) { - if (index >= 0 && index < MaxKeymapCount) + if (index >= 0 && static_cast(index) < MaxKeymapCount) { m_keymapModel.replaceItem(index, QString::number(index) + ": " + Engine::getSong()->getKeymap(index)->getDescription()); } else { - for (int i = 0; i < MaxKeymapCount; i++) + for (auto i = std::size_t{0}; i < MaxKeymapCount; i++) { m_keymapModel.replaceItem(i, QString::number(i) + ": " + Engine::getSong()->getKeymap(i)->getDescription()); diff --git a/src/core/MixHelpers.cpp b/src/core/MixHelpers.cpp index bc55419e9b6..01ea0386e58 100644 --- a/src/core/MixHelpers.cpp +++ b/src/core/MixHelpers.cpp @@ -32,6 +32,7 @@ #include #include "ValueBuffer.h" +#include "SampleFrame.h" @@ -43,7 +44,7 @@ namespace lmms::MixHelpers /*! \brief Function for applying MIXOP on all sample frames */ template -static inline void run( sampleFrame* dst, const sampleFrame* src, int frames, const MIXOP& OP ) +static inline void run( SampleFrame* dst, const SampleFrame* src, int frames, const MIXOP& OP ) { for( int i = 0; i < frames; ++i ) { @@ -53,18 +54,18 @@ static inline void run( sampleFrame* dst, const sampleFrame* src, int frames, co /*! \brief Function for applying MIXOP on all sample frames - split source */ template -static inline void run( sampleFrame* dst, const sample_t* srcLeft, const sample_t* srcRight, int frames, const MIXOP& OP ) +static inline void run( SampleFrame* dst, const sample_t* srcLeft, const sample_t* srcRight, int frames, const MIXOP& OP ) { for( int i = 0; i < frames; ++i ) { - const sampleFrame src = { srcLeft[i], srcRight[i] }; + const SampleFrame src = { srcLeft[i], srcRight[i] }; OP( dst[i], src ); } } -bool isSilent( const sampleFrame* src, int frames ) +bool isSilent( const SampleFrame* src, int frames ) { const float silenceThreshold = 0.0000001f; @@ -90,55 +91,49 @@ void setNaNHandler( bool use ) } /*! \brief Function for sanitizing a buffer of infs/nans - returns true if those are found */ -bool sanitize( sampleFrame * src, int frames ) +bool sanitize( SampleFrame* src, int frames ) { if( !useNaNHandler() ) { return false; } - bool found = false; - for( int f = 0; f < frames; ++f ) + for (int f = 0; f < frames; ++f) { - for( int c = 0; c < 2; ++c ) + auto& currentFrame = src[f]; + + if (currentFrame.containsInf() || currentFrame.containsNaN()) { - if( std::isinf( src[f][c] ) || std::isnan( src[f][c] ) ) - { - #ifdef LMMS_DEBUG + #ifdef LMMS_DEBUG // TODO don't use printf here printf("Bad data, clearing buffer. frame: "); - printf("%d: value %f\n", f, src[f][c]); - #endif - for( int f = 0; f < frames; ++f ) - { - for( int c = 0; c < 2; ++c ) - { - src[f][c] = 0.0f; - } - } - found = true; - return found; - } - else - { - src[f][c] = std::clamp(src[f][c], -1000.0f, 1000.0f); - } + printf("%d: value %f, %f\n", f, currentFrame.left(), currentFrame.right()); + #endif + + // Clear the whole buffer if a problem is found + zeroSampleFrames(src, frames); + + return true; } - } - return found; + else + { + currentFrame.clamp(sample_t(-1000.0), sample_t(1000.0)); + } + }; + + return false; } struct AddOp { - void operator()( sampleFrame& dst, const sampleFrame& src ) const + void operator()( SampleFrame& dst, const SampleFrame& src ) const { - dst[0] += src[0]; - dst[1] += src[1]; + dst += src; } } ; -void add( sampleFrame* dst, const sampleFrame* src, int frames ) +void add( SampleFrame* dst, const SampleFrame* src, int frames ) { run<>( dst, src, frames, AddOp() ); } @@ -149,17 +144,16 @@ struct AddMultipliedOp { AddMultipliedOp( float coeff ) : m_coeff( coeff ) { } - void operator()( sampleFrame& dst, const sampleFrame& src ) const + void operator()( SampleFrame& dst, const SampleFrame& src ) const { - dst[0] += src[0] * m_coeff; - dst[1] += src[1] * m_coeff; + dst += src * m_coeff; } const float m_coeff; } ; -void addMultiplied( sampleFrame* dst, const sampleFrame* src, float coeffSrc, int frames ) +void addMultiplied( SampleFrame* dst, const SampleFrame* src, float coeffSrc, int frames ) { run<>( dst, src, frames, AddMultipliedOp(coeffSrc) ); } @@ -169,7 +163,7 @@ struct AddSwappedMultipliedOp { AddSwappedMultipliedOp( float coeff ) : m_coeff( coeff ) { } - void operator()( sampleFrame& dst, const sampleFrame& src ) const + void operator()( SampleFrame& dst, const SampleFrame& src ) const { dst[0] += src[1] * m_coeff; dst[1] += src[0] * m_coeff; @@ -178,13 +172,21 @@ struct AddSwappedMultipliedOp const float m_coeff; }; -void addSwappedMultiplied( sampleFrame* dst, const sampleFrame* src, float coeffSrc, int frames ) +void multiply(SampleFrame* dst, float coeff, int frames) +{ + for (int i = 0; i < frames; ++i) + { + dst[i] *= coeff; + } +} + +void addSwappedMultiplied( SampleFrame* dst, const SampleFrame* src, float coeffSrc, int frames ) { run<>( dst, src, frames, AddSwappedMultipliedOp(coeffSrc) ); } -void addMultipliedByBuffer( sampleFrame* dst, const sampleFrame* src, float coeffSrc, ValueBuffer * coeffSrcBuf, int frames ) +void addMultipliedByBuffer( SampleFrame* dst, const SampleFrame* src, float coeffSrc, ValueBuffer * coeffSrcBuf, int frames ) { for( int f = 0; f < frames; ++f ) { @@ -193,7 +195,7 @@ void addMultipliedByBuffer( sampleFrame* dst, const sampleFrame* src, float coef } } -void addMultipliedByBuffers( sampleFrame* dst, const sampleFrame* src, ValueBuffer * coeffSrcBuf1, ValueBuffer * coeffSrcBuf2, int frames ) +void addMultipliedByBuffers( SampleFrame* dst, const SampleFrame* src, ValueBuffer * coeffSrcBuf1, ValueBuffer * coeffSrcBuf2, int frames ) { for( int f = 0; f < frames; ++f ) { @@ -203,7 +205,7 @@ void addMultipliedByBuffers( sampleFrame* dst, const sampleFrame* src, ValueBuff } -void addSanitizedMultipliedByBuffer( sampleFrame* dst, const sampleFrame* src, float coeffSrc, ValueBuffer * coeffSrcBuf, int frames ) +void addSanitizedMultipliedByBuffer( SampleFrame* dst, const SampleFrame* src, float coeffSrc, ValueBuffer * coeffSrcBuf, int frames ) { if ( !useNaNHandler() ) { @@ -219,7 +221,7 @@ void addSanitizedMultipliedByBuffer( sampleFrame* dst, const sampleFrame* src, f } } -void addSanitizedMultipliedByBuffers( sampleFrame* dst, const sampleFrame* src, ValueBuffer * coeffSrcBuf1, ValueBuffer * coeffSrcBuf2, int frames ) +void addSanitizedMultipliedByBuffers( SampleFrame* dst, const SampleFrame* src, ValueBuffer * coeffSrcBuf1, ValueBuffer * coeffSrcBuf2, int frames ) { if ( !useNaNHandler() ) { @@ -245,7 +247,7 @@ struct AddSanitizedMultipliedOp { AddSanitizedMultipliedOp( float coeff ) : m_coeff( coeff ) { } - void operator()( sampleFrame& dst, const sampleFrame& src ) const + void operator()( SampleFrame& dst, const SampleFrame& src ) const { dst[0] += ( std::isinf( src[0] ) || std::isnan( src[0] ) ) ? 0.0f : src[0] * m_coeff; dst[1] += ( std::isinf( src[1] ) || std::isnan( src[1] ) ) ? 0.0f : src[1] * m_coeff; @@ -254,7 +256,7 @@ struct AddSanitizedMultipliedOp const float m_coeff; }; -void addSanitizedMultiplied( sampleFrame* dst, const sampleFrame* src, float coeffSrc, int frames ) +void addSanitizedMultiplied( SampleFrame* dst, const SampleFrame* src, float coeffSrc, int frames ) { if ( !useNaNHandler() ) { @@ -275,7 +277,7 @@ struct AddMultipliedStereoOp m_coeffs[1] = coeffRight; } - void operator()( sampleFrame& dst, const sampleFrame& src ) const + void operator()( SampleFrame& dst, const SampleFrame& src ) const { dst[0] += src[0] * m_coeffs[0]; dst[1] += src[1] * m_coeffs[1]; @@ -285,7 +287,7 @@ struct AddMultipliedStereoOp } ; -void addMultipliedStereo( sampleFrame* dst, const sampleFrame* src, float coeffSrcLeft, float coeffSrcRight, int frames ) +void addMultipliedStereo( SampleFrame* dst, const SampleFrame* src, float coeffSrcLeft, float coeffSrcRight, int frames ) { run<>( dst, src, frames, AddMultipliedStereoOp(coeffSrcLeft, coeffSrcRight) ); @@ -303,7 +305,7 @@ struct MultiplyAndAddMultipliedOp m_coeffs[1] = coeffSrc; } - void operator()( sampleFrame& dst, const sampleFrame& src ) const + void operator()( SampleFrame& dst, const SampleFrame& src ) const { dst[0] = dst[0]*m_coeffs[0] + src[0]*m_coeffs[1]; dst[1] = dst[1]*m_coeffs[0] + src[1]*m_coeffs[1]; @@ -313,14 +315,14 @@ struct MultiplyAndAddMultipliedOp } ; -void multiplyAndAddMultiplied( sampleFrame* dst, const sampleFrame* src, float coeffDst, float coeffSrc, int frames ) +void multiplyAndAddMultiplied( SampleFrame* dst, const SampleFrame* src, float coeffDst, float coeffSrc, int frames ) { run<>( dst, src, frames, MultiplyAndAddMultipliedOp(coeffDst, coeffSrc) ); } -void multiplyAndAddMultipliedJoined( sampleFrame* dst, +void multiplyAndAddMultipliedJoined( SampleFrame* dst, const sample_t* srcLeft, const sample_t* srcRight, float coeffDst, float coeffSrc, int frames ) diff --git a/src/core/Mixer.cpp b/src/core/Mixer.cpp index 31212313d17..7e3fc1f60c5 100644 --- a/src/core/Mixer.cpp +++ b/src/core/Mixer.cpp @@ -43,8 +43,8 @@ namespace lmms MixerRoute::MixerRoute( MixerChannel * from, MixerChannel * to, float amount ) : m_from( from ), m_to( to ), - m_amount( amount, 0, 1, 0.001, nullptr, - tr( "Amount to send from channel %1 to channel %2" ).arg( m_from->m_channelIndex ).arg( m_to->m_channelIndex ) ) + m_amount(amount, 0, 1, 0.001f, nullptr, + tr("Amount to send from channel %1 to channel %2").arg(m_from->m_channelIndex).arg(m_to->m_channelIndex)) { //qDebug( "created: %d to %d", m_from->m_channelIndex, m_to->m_channelIndex ); // create send amount model @@ -64,17 +64,17 @@ MixerChannel::MixerChannel( int idx, Model * _parent ) : m_stillRunning( false ), m_peakLeft( 0.0f ), m_peakRight( 0.0f ), - m_buffer( new sampleFrame[Engine::audioEngine()->framesPerPeriod()] ), + m_buffer( new SampleFrame[Engine::audioEngine()->framesPerPeriod()] ), m_muteModel( false, _parent ), m_soloModel( false, _parent ), - m_volumeModel( 1.0, 0.0, 2.0, 0.001, _parent ), + m_volumeModel(1.f, 0.f, 2.f, 0.001f, _parent), m_name(), m_lock(), m_channelIndex( idx ), m_queued( false ), m_dependenciesMet(0) { - BufferManager::clear( m_buffer, Engine::audioEngine()->framesPerPeriod() ); + zeroSampleFrames(m_buffer, Engine::audioEngine()->framesPerPeriod()); } @@ -99,7 +99,7 @@ inline void MixerChannel::processed() void MixerChannel::incrementDeps() { - int i = m_dependenciesMet++ + 1; + const auto i = m_dependenciesMet++ + 1; if( i >= m_receives.size() && ! m_queued ) { m_queued = true; @@ -134,7 +134,7 @@ void MixerChannel::doProcessing() ValueBuffer * volBuf = sender->m_volumeModel.valueBuffer(); // mix it's output with this one's output - sampleFrame * ch_buf = sender->m_buffer; + SampleFrame* ch_buf = sender->m_buffer; // use sample-exact mixing if sample-exact values are available if( ! volBuf && ! sendBuf ) // neither volume nor send has sample-exact data... @@ -171,9 +171,9 @@ void MixerChannel::doProcessing() m_stillRunning = m_fxChain.processAudioBuffer( m_buffer, fpp, m_hasInput ); - AudioEngine::StereoSample peakSamples = Engine::audioEngine()->getPeakValues(m_buffer, fpp); - m_peakLeft = std::max(m_peakLeft, peakSamples.left * v); - m_peakRight = std::max(m_peakRight, peakSamples.right * v); + SampleFrame peakSamples = getAbsPeakValues(m_buffer, fpp); + m_peakLeft = std::max(m_peakLeft, peakSamples[0] * v); + m_peakRight = std::max(m_peakRight, peakSamples[1] * v); } else { @@ -235,7 +235,7 @@ int Mixer::createChannel() void Mixer::activateSolo() { - for (int i = 1; i < m_mixerChannels.size(); ++i) + for (auto i = std::size_t{1}; i < m_mixerChannels.size(); ++i) { m_mixerChannels[i]->m_muteBeforeSolo = m_mixerChannels[i]->m_muteModel.value(); m_mixerChannels[i]->m_muteModel.setValue( true ); @@ -244,7 +244,7 @@ void Mixer::activateSolo() void Mixer::deactivateSolo() { - for (int i = 1; i < m_mixerChannels.size(); ++i) + for (auto i = std::size_t{1}; i < m_mixerChannels.size(); ++i) { m_mixerChannels[i]->m_muteModel.setValue( m_mixerChannels[i]->m_muteBeforeSolo ); } @@ -260,7 +260,7 @@ void Mixer::toggledSolo() m_mixerChannels[m_lastSoloed]->m_soloModel.setValue( false ); } //determine the soloed channel - for (int i = 0; i < m_mixerChannels.size(); ++i) + for (auto i = std::size_t{0}; i < m_mixerChannels.size(); ++i) { if (m_mixerChannels[i]->m_soloModel.value() == true) soloedChan = i; @@ -355,7 +355,7 @@ void Mixer::deleteChannel( int index ) m_mixerChannels.erase(m_mixerChannels.begin() + index); delete ch; - for( int i = index; i < m_mixerChannels.size(); ++i ) + for (auto i = static_cast(index); i < m_mixerChannels.size(); ++i) { validateChannelName( i, i + 1 ); @@ -381,7 +381,7 @@ void Mixer::deleteChannel( int index ) void Mixer::moveChannelLeft( int index ) { // can't move master or first channel - if( index <= 1 || index >= m_mixerChannels.size() ) + if (index <= 1 || static_cast(index) >= m_mixerChannels.size()) { return; } @@ -596,7 +596,7 @@ FloatModel * Mixer::channelSendModel( mix_ch_t fromChannel, mix_ch_t toChannel ) -void Mixer::mixToChannel( const sampleFrame * _buf, mix_ch_t _ch ) +void Mixer::mixToChannel( const SampleFrame* _buf, mix_ch_t _ch ) { if( m_mixerChannels[_ch]->m_muteModel.value() == false ) { @@ -612,13 +612,12 @@ void Mixer::mixToChannel( const sampleFrame * _buf, mix_ch_t _ch ) void Mixer::prepareMasterMix() { - BufferManager::clear( m_mixerChannels[0]->m_buffer, - Engine::audioEngine()->framesPerPeriod() ); + zeroSampleFrames(m_mixerChannels[0]->m_buffer, Engine::audioEngine()->framesPerPeriod()); } -void Mixer::masterMix( sampleFrame * _buf ) +void Mixer::masterMix( SampleFrame* _buf ) { const int fpp = Engine::audioEngine()->framesPerPeriod(); @@ -685,8 +684,7 @@ void Mixer::masterMix( sampleFrame * _buf ) // reset channel process state for( int i = 0; i < numChannels(); ++i) { - BufferManager::clear( m_mixerChannels[i]->m_buffer, - Engine::audioEngine()->framesPerPeriod() ); + zeroSampleFrames(m_mixerChannels[i]->m_buffer, Engine::audioEngine()->framesPerPeriod()); m_mixerChannels[i]->reset(); m_mixerChannels[i]->m_queued = false; // also reset hasInput @@ -721,7 +719,7 @@ void Mixer::clearChannel(mix_ch_t index) ch->m_volumeModel.setDisplayName( ch->m_name + ">" + tr( "Volume" ) ); ch->m_muteModel.setDisplayName( ch->m_name + ">" + tr( "Mute" ) ); ch->m_soloModel.setDisplayName( ch->m_name + ">" + tr( "Solo" ) ); - ch->m_color = std::nullopt; + ch->setColor(std::nullopt); // send only to master if( index > 0) @@ -746,7 +744,7 @@ void Mixer::clearChannel(mix_ch_t index) void Mixer::saveSettings( QDomDocument & _doc, QDomElement & _this ) { // save channels - for( int i = 0; i < m_mixerChannels.size(); ++i ) + for (auto i = std::size_t{0}; i < m_mixerChannels.size(); ++i) { MixerChannel * ch = m_mixerChannels[i]; @@ -757,9 +755,9 @@ void Mixer::saveSettings( QDomDocument & _doc, QDomElement & _this ) ch->m_volumeModel.saveSettings( _doc, mixch, "volume" ); ch->m_muteModel.saveSettings( _doc, mixch, "muted" ); ch->m_soloModel.saveSettings( _doc, mixch, "soloed" ); - mixch.setAttribute( "num", i ); + mixch.setAttribute("num", static_cast(i)); mixch.setAttribute( "name", ch->m_name ); - if (ch->m_color.has_value()) { mixch.setAttribute("color", ch->m_color->name()); } + if (const auto& color = ch->color()) { mixch.setAttribute("color", color->name()); } // add the channel sends for (const auto& send : ch->m_sends) @@ -776,7 +774,8 @@ void Mixer::saveSettings( QDomDocument & _doc, QDomElement & _this ) // make sure we have at least num channels void Mixer::allocateChannelsTo(int num) { - while( num > m_mixerChannels.size() - 1 ) + if (num <= 0) { return; } + while (static_cast(num) > m_mixerChannels.size() - 1) { createChannel(); @@ -805,9 +804,9 @@ void Mixer::loadSettings( const QDomElement & _this ) m_mixerChannels[num]->m_muteModel.loadSettings( mixch, "muted" ); m_mixerChannels[num]->m_soloModel.loadSettings( mixch, "soloed" ); m_mixerChannels[num]->m_name = mixch.attribute( "name" ); - if( mixch.hasAttribute( "color" ) ) + if (mixch.hasAttribute("color")) { - m_mixerChannels[num]->m_color = QColor(mixch.attribute("color")); + m_mixerChannels[num]->setColor(QColor{mixch.attribute("color")}); } m_mixerChannels[num]->m_fxChain.restoreState( mixch.firstChildElement( @@ -815,7 +814,7 @@ void Mixer::loadSettings( const QDomElement & _this ) // mixer sends QDomNodeList chData = mixch.childNodes(); - for( unsigned int i=0; imidiNoteOn( *this ); } - if(m_instrumentTrack->instrument() && m_instrumentTrack->instrument()->flags() & Instrument::Flag::IsSingleStreamed ) + if (m_instrumentTrack->instrument() && m_instrumentTrack->instrument()->isSingleStreamed()) { setUsesBuffer( false ); } @@ -183,7 +183,7 @@ int NotePlayHandle::midiKey() const -void NotePlayHandle::play( sampleFrame * _working_buffer ) +void NotePlayHandle::play( SampleFrame* _working_buffer ) { if (m_muted) { @@ -568,7 +568,7 @@ void NotePlayHandle::processTimePos(const TimePos& time, float pitchValue, bool else { const float v = detuning()->automationClip()->valueAt(time - songGlobalParentOffset() - pos()); - if (!typeInfo::isEqual(v, m_baseDetuning->value())) + if (!approximatelyEqual(v, m_baseDetuning->value())) { m_baseDetuning->setValue(v); updateFrequency(); @@ -610,9 +610,9 @@ int NotePlayHandleManager::s_size; void NotePlayHandleManager::init() { - s_available = MM_ALLOC( INITIAL_NPH_CACHE ); + s_available = new NotePlayHandle*[INITIAL_NPH_CACHE]; - auto n = MM_ALLOC(INITIAL_NPH_CACHE); + auto n = static_cast(std::malloc(sizeof(NotePlayHandle) * INITIAL_NPH_CACHE)); for( int i=0; i < INITIAL_NPH_CACHE; ++i ) { @@ -655,11 +655,11 @@ void NotePlayHandleManager::release( NotePlayHandle * nph ) void NotePlayHandleManager::extend( int c ) { s_size += c; - auto tmp = MM_ALLOC(s_size); - MM_FREE( s_available ); + auto tmp = new NotePlayHandle*[s_size]; + delete[] s_available; s_available = tmp; - auto n = MM_ALLOC(c); + auto n = static_cast(std::malloc(sizeof(NotePlayHandle) * c)); for( int i=0; i < c; ++i ) { @@ -670,7 +670,7 @@ void NotePlayHandleManager::extend( int c ) void NotePlayHandleManager::free() { - MM_FREE(s_available); + delete[] s_available; } diff --git a/src/core/Oscillator.cpp b/src/core/Oscillator.cpp index 06033b63edb..a875cf2d4f4 100644 --- a/src/core/Oscillator.cpp +++ b/src/core/Oscillator.cpp @@ -77,11 +77,11 @@ Oscillator::Oscillator(const IntModel *wave_shape_model, -void Oscillator::update(sampleFrame* ab, const fpp_t frames, const ch_cnt_t chnl, bool modulator) +void Oscillator::update(SampleFrame* ab, const fpp_t frames, const ch_cnt_t chnl, bool modulator) { - if (m_freq >= Engine::audioEngine()->processingSampleRate() / 2) + if (m_freq >= Engine::audioEngine()->outputSampleRate() / 2) { - BufferManager::clear(ab, frames); + zeroSampleFrames(ab, frames); return; } // If this oscillator is used to PM or PF modulate another oscillator, take a note. @@ -182,19 +182,23 @@ void Oscillator::generateFromFFT(int bands, sample_t* table) normalize(s_sampleBuffer.data(), table, OscillatorConstants::WAVETABLE_LENGTH, 2*OscillatorConstants::WAVETABLE_LENGTH + 1); } -void Oscillator::generateAntiAliasUserWaveTable(SampleBuffer *sampleBuffer) +std::unique_ptr Oscillator::generateAntiAliasUserWaveTable(const SampleBuffer* sampleBuffer) { - if (sampleBuffer->m_userAntiAliasWaveTable == nullptr) {return;} - + auto userAntiAliasWaveTable = std::make_unique(); for (int i = 0; i < OscillatorConstants::WAVE_TABLES_PER_WAVEFORM_COUNT; ++i) { - for (int i = 0; i < OscillatorConstants::WAVETABLE_LENGTH; ++i) + // TODO: This loop seems to be doing the same thing for each iteration of the outer loop, + // and could probably be moved out of it + for (int j = 0; j < OscillatorConstants::WAVETABLE_LENGTH; ++j) { - s_sampleBuffer[i] = sampleBuffer->userWaveSample((float)i / (float)OscillatorConstants::WAVETABLE_LENGTH); + s_sampleBuffer[j] = Oscillator::userWaveSample( + sampleBuffer, static_cast(j) / OscillatorConstants::WAVETABLE_LENGTH); } fftwf_execute(s_fftPlan); - Oscillator::generateFromFFT(OscillatorConstants::MAX_FREQ / freqFromWaveTableBand(i), (*(sampleBuffer->m_userAntiAliasWaveTable))[i].data()); + Oscillator::generateFromFFT(OscillatorConstants::MAX_FREQ / freqFromWaveTableBand(i), (*userAntiAliasWaveTable)[i].data()); } + + return userAntiAliasWaveTable; } @@ -312,7 +316,7 @@ void Oscillator::generateWaveTables() -void Oscillator::updateNoSub( sampleFrame * _ab, const fpp_t _frames, +void Oscillator::updateNoSub( SampleFrame* _ab, const fpp_t _frames, const ch_cnt_t _chnl ) { switch( static_cast(m_waveShapeModel->value()) ) @@ -348,7 +352,7 @@ void Oscillator::updateNoSub( sampleFrame * _ab, const fpp_t _frames, -void Oscillator::updatePM( sampleFrame * _ab, const fpp_t _frames, +void Oscillator::updatePM( SampleFrame* _ab, const fpp_t _frames, const ch_cnt_t _chnl ) { switch( static_cast(m_waveShapeModel->value()) ) @@ -384,7 +388,7 @@ void Oscillator::updatePM( sampleFrame * _ab, const fpp_t _frames, -void Oscillator::updateAM( sampleFrame * _ab, const fpp_t _frames, +void Oscillator::updateAM( SampleFrame* _ab, const fpp_t _frames, const ch_cnt_t _chnl ) { switch( static_cast(m_waveShapeModel->value()) ) @@ -420,7 +424,7 @@ void Oscillator::updateAM( sampleFrame * _ab, const fpp_t _frames, -void Oscillator::updateMix( sampleFrame * _ab, const fpp_t _frames, +void Oscillator::updateMix( SampleFrame* _ab, const fpp_t _frames, const ch_cnt_t _chnl ) { switch( static_cast(m_waveShapeModel->value()) ) @@ -456,7 +460,7 @@ void Oscillator::updateMix( sampleFrame * _ab, const fpp_t _frames, -void Oscillator::updateSync( sampleFrame * _ab, const fpp_t _frames, +void Oscillator::updateSync( SampleFrame* _ab, const fpp_t _frames, const ch_cnt_t _chnl ) { switch( static_cast(m_waveShapeModel->value()) ) @@ -492,7 +496,7 @@ void Oscillator::updateSync( sampleFrame * _ab, const fpp_t _frames, -void Oscillator::updateFM( sampleFrame * _ab, const fpp_t _frames, +void Oscillator::updateFM( SampleFrame* _ab, const fpp_t _frames, const ch_cnt_t _chnl ) { switch( static_cast(m_waveShapeModel->value()) ) @@ -531,7 +535,7 @@ void Oscillator::updateFM( sampleFrame * _ab, const fpp_t _frames, // should be called every time phase-offset is changed... inline void Oscillator::recalcPhase() { - if( !typeInfo::isEqual( m_phaseOffset, m_ext_phaseOffset ) ) + if (!approximatelyEqual(m_phaseOffset, m_ext_phaseOffset)) { m_phase -= m_phaseOffset; m_phaseOffset = m_ext_phaseOffset; @@ -554,7 +558,7 @@ inline bool Oscillator::syncOk( float _osc_coeff ) -float Oscillator::syncInit( sampleFrame * _ab, const fpp_t _frames, +float Oscillator::syncInit( SampleFrame* _ab, const fpp_t _frames, const ch_cnt_t _chnl ) { if( m_subOsc != nullptr ) @@ -570,7 +574,7 @@ float Oscillator::syncInit( sampleFrame * _ab, const fpp_t _frames, // if we have no sub-osc, we can't do any modulation... just get our samples template -void Oscillator::updateNoSub( sampleFrame * _ab, const fpp_t _frames, +void Oscillator::updateNoSub( SampleFrame* _ab, const fpp_t _frames, const ch_cnt_t _chnl ) { recalcPhase(); @@ -588,7 +592,7 @@ void Oscillator::updateNoSub( sampleFrame * _ab, const fpp_t _frames, // do pm by using sub-osc as modulator template -void Oscillator::updatePM( sampleFrame * _ab, const fpp_t _frames, +void Oscillator::updatePM( SampleFrame* _ab, const fpp_t _frames, const ch_cnt_t _chnl ) { m_subOsc->update( _ab, _frames, _chnl, true ); @@ -609,7 +613,7 @@ void Oscillator::updatePM( sampleFrame * _ab, const fpp_t _frames, // do am by using sub-osc as modulator template -void Oscillator::updateAM( sampleFrame * _ab, const fpp_t _frames, +void Oscillator::updateAM( SampleFrame* _ab, const fpp_t _frames, const ch_cnt_t _chnl ) { m_subOsc->update( _ab, _frames, _chnl, false ); @@ -628,7 +632,7 @@ void Oscillator::updateAM( sampleFrame * _ab, const fpp_t _frames, // do mix by using sub-osc as mix-sample template -void Oscillator::updateMix( sampleFrame * _ab, const fpp_t _frames, +void Oscillator::updateMix( SampleFrame* _ab, const fpp_t _frames, const ch_cnt_t _chnl ) { m_subOsc->update( _ab, _frames, _chnl, false ); @@ -648,7 +652,7 @@ void Oscillator::updateMix( sampleFrame * _ab, const fpp_t _frames, // sync with sub-osc (every time sub-osc starts new period, we also start new // period) template -void Oscillator::updateSync( sampleFrame * _ab, const fpp_t _frames, +void Oscillator::updateSync( SampleFrame* _ab, const fpp_t _frames, const ch_cnt_t _chnl ) { const float sub_osc_coeff = m_subOsc->syncInit( _ab, _frames, _chnl ); @@ -671,13 +675,13 @@ void Oscillator::updateSync( sampleFrame * _ab, const fpp_t _frames, // do fm by using sub-osc as modulator template -void Oscillator::updateFM( sampleFrame * _ab, const fpp_t _frames, +void Oscillator::updateFM( SampleFrame* _ab, const fpp_t _frames, const ch_cnt_t _chnl ) { m_subOsc->update( _ab, _frames, _chnl, true ); recalcPhase(); const float osc_coeff = m_freq * m_detuning_div_samplerate; - const float sampleRateCorrection = 44100.0f / Engine::audioEngine()->processingSampleRate(); + const float sampleRateCorrection = 44100.0f / Engine::audioEngine()->outputSampleRate(); for( fpp_t frame = 0; frame < _frames; ++frame ) { @@ -693,7 +697,7 @@ void Oscillator::updateFM( sampleFrame * _ab, const fpp_t _frames, template<> inline sample_t Oscillator::getSample(const float sample) { - const float current_freq = m_freq * m_detuning_div_samplerate * Engine::audioEngine()->processingSampleRate(); + const float current_freq = m_freq * m_detuning_div_samplerate * Engine::audioEngine()->outputSampleRate(); if (!m_useWaveTable || current_freq < OscillatorConstants::MAX_FREQ) { @@ -807,13 +811,13 @@ template<> inline sample_t Oscillator::getSample( const float _sample ) { - if (m_useWaveTable && !m_isModulator) + if (m_useWaveTable && m_userAntiAliasWaveTable && !m_isModulator) { - return wtSample(m_userWave->m_userAntiAliasWaveTable, _sample); + return wtSample(m_userAntiAliasWaveTable.get(), _sample); } else { - return userWaveSample(_sample); + return userWaveSample(m_userWave.get(), _sample); } } diff --git a/src/core/PatternClip.cpp b/src/core/PatternClip.cpp index 1058da6ba38..15a1d1f543d 100644 --- a/src/core/PatternClip.cpp +++ b/src/core/PatternClip.cpp @@ -62,9 +62,9 @@ void PatternClip::saveSettings(QDomDocument& doc, QDomElement& element) element.setAttribute( "len", length() ); element.setAttribute("off", startTimeOffset()); element.setAttribute( "muted", isMuted() ); - if( usesCustomClipColor() ) + if (const auto& c = color()) { - element.setAttribute( "color", color().name() ); + element.setAttribute("color", c->name()); } } @@ -90,20 +90,14 @@ void PatternClip::loadSettings(const QDomElement& element) if (!element.hasAttribute("usestyle")) { // for colors saved in 1.3-onwards - setColor(element.attribute("color")); - useCustomClipColor(true); + setColor(QColor{element.attribute("color")}); } - else + else if (element.attribute("usestyle").toUInt() == 0) { // for colors saved before 1.3 - setColor(QColor(element.attribute("color").toUInt())); - useCustomClipColor(element.attribute("usestyle").toUInt() == 0); + setColor(QColor{element.attribute("color").toUInt()}); } } - else - { - useCustomClipColor(false); - } } diff --git a/src/core/PeakController.cpp b/src/core/PeakController.cpp index cfcd3765c43..1b819982a6c 100644 --- a/src/core/PeakController.cpp +++ b/src/core/PeakController.cpp @@ -80,9 +80,7 @@ void PeakController::updateValueBuffer() { if( m_coeffNeedsUpdate ) { - const float ratio = 44100.0f / Engine::audioEngine()->processingSampleRate(); - m_attackCoeff = 1.0f - powf( 2.0f, -0.3f * ( 1.0f - m_peakEffect->attackModel()->value() ) * ratio ); - m_decayCoeff = 1.0f - powf( 2.0f, -0.3f * ( 1.0f - m_peakEffect->decayModel()->value() ) * ratio ); + m_coeff = 100.0f / Engine::audioEngine()->outputSampleRate(); m_coeffNeedsUpdate = false; } @@ -97,14 +95,7 @@ void PeakController::updateValueBuffer() for( f_cnt_t f = 0; f < frames; ++f ) { const float diff = ( targetSample - m_currentSample ); - if( m_currentSample < targetSample ) // going up... - { - m_currentSample += diff * m_attackCoeff; - } - else if( m_currentSample > targetSample ) // going down - { - m_currentSample += diff * m_decayCoeff; - } + m_currentSample += diff * m_coeff; values[f] = m_currentSample; } } diff --git a/src/core/PlayHandle.cpp b/src/core/PlayHandle.cpp index 168121e0f58..134fcd31100 100644 --- a/src/core/PlayHandle.cpp +++ b/src/core/PlayHandle.cpp @@ -55,7 +55,7 @@ void PlayHandle::doProcessing() if( m_usesBuffer ) { m_bufferReleased = false; - BufferManager::clear(m_playHandleBuffer, Engine::audioEngine()->framesPerPeriod()); + zeroSampleFrames(m_playHandleBuffer, Engine::audioEngine()->framesPerPeriod()); play( buffer() ); } else @@ -70,9 +70,9 @@ void PlayHandle::releaseBuffer() m_bufferReleased = true; } -sampleFrame* PlayHandle::buffer() +SampleFrame* PlayHandle::buffer() { - return m_bufferReleased ? nullptr : reinterpret_cast(m_playHandleBuffer); + return m_bufferReleased ? nullptr : m_playHandleBuffer; }; } // namespace lmms \ No newline at end of file diff --git a/src/core/Plugin.cpp b/src/core/Plugin.cpp index 97391450187..f165ddf7509 100644 --- a/src/core/Plugin.cpp +++ b/src/core/Plugin.cpp @@ -226,8 +226,8 @@ Plugin * Plugin::instantiate(const QString& pluginName, Model * parent, } else { - InstantiationHook instantiationHook; - if ((instantiationHook = ( InstantiationHook ) pi.library->resolve( "lmms_plugin_main" ))) + auto instantiationHook = reinterpret_cast(pi.library->resolve("lmms_plugin_main")); + if (instantiationHook) { inst = instantiationHook(parent, data); if(!inst) { diff --git a/src/core/PluginIssue.cpp b/src/core/PluginIssue.cpp index c9cf3400faa..b40c4723ba4 100644 --- a/src/core/PluginIssue.cpp +++ b/src/core/PluginIssue.cpp @@ -1,7 +1,7 @@ /* - * PluginIssue.h - PluginIssue class + * PluginIssue.cpp - PluginIssue class implementation * - * Copyright (c) 2019 Johannes Lorenz + * Copyright (c) 2019-2024 Johannes Lorenz * * This file is part of LMMS - https://lmms.io * @@ -68,8 +68,8 @@ const char *PluginIssue::msgFor(const PluginIssueType &it) return "required feature not supported"; case PluginIssueType::BadPortType: return "unsupported port type"; - case PluginIssueType::Blacklisted: - return "blacklisted plugin"; + case PluginIssueType::Blocked: + return "blocked plugin"; case PluginIssueType::NoIssue: return nullptr; } diff --git a/src/core/PresetPreviewPlayHandle.cpp b/src/core/PresetPreviewPlayHandle.cpp index 0930de0de22..e7e67185ed2 100644 --- a/src/core/PresetPreviewPlayHandle.cpp +++ b/src/core/PresetPreviewPlayHandle.cpp @@ -175,7 +175,7 @@ PresetPreviewPlayHandle::PresetPreviewPlayHandle( const QString & _preset_file, // create note-play-handle for it m_previewNote = NotePlayHandleManager::acquire( s_previewTC->previewInstrumentTrack(), 0, - typeInfo::max() / 2, + std::numeric_limits::max() / 2, Note( 0, 0, DefaultKey, 100 ) ); setAudioPort( s_previewTC->previewInstrumentTrack()->audioPort() ); @@ -206,7 +206,7 @@ PresetPreviewPlayHandle::~PresetPreviewPlayHandle() -void PresetPreviewPlayHandle::play( sampleFrame * _working_buffer ) +void PresetPreviewPlayHandle::play( SampleFrame* _working_buffer ) { // Do nothing; the preview instrument is played by m_previewNote, which // has been added to the audio engine diff --git a/src/core/ProjectJournal.cpp b/src/core/ProjectJournal.cpp index fc77c98e65d..ae17b2aa8ab 100644 --- a/src/core/ProjectJournal.cpp +++ b/src/core/ProjectJournal.cpp @@ -23,11 +23,13 @@ */ #include +#include #include "ProjectJournal.h" #include "Engine.h" #include "JournallingObject.h" #include "Song.h" +#include "AutomationClip.h" namespace lmms { @@ -67,6 +69,12 @@ void ProjectJournal::undo() jo->restoreState( c.data.content().firstChildElement() ); setJournalling( prev ); Engine::getSong()->setModified(); + + // loading AutomationClip connections correctly + if (!c.data.content().elementsByTagName("automationclip").isEmpty()) + { + AutomationClip::resolveAllIDs(); + } break; } } diff --git a/src/core/ProjectRenderer.cpp b/src/core/ProjectRenderer.cpp index 3f101330aeb..c56c34068b4 100644 --- a/src/core/ProjectRenderer.cpp +++ b/src/core/ProjectRenderer.cpp @@ -159,18 +159,6 @@ void ProjectRenderer::startProcessing() void ProjectRenderer::run() { - MemoryManager::ThreadGuard mmThreadGuard; Q_UNUSED(mmThreadGuard); -#if 0 -#if defined(LMMS_BUILD_LINUX) || defined(LMMS_BUILD_FREEBSD) -#ifdef LMMS_HAVE_SCHED_H - cpu_set_t mask; - CPU_ZERO( &mask ); - CPU_SET( 0, &mask ); - sched_setaffinity( 0, sizeof( mask ), &mask ); -#endif -#endif -#endif - PerfLogTimer perfLog("Project Render"); Engine::getSong()->startExport(); @@ -222,7 +210,7 @@ void ProjectRenderer::abortProcessing() void ProjectRenderer::updateConsoleProgress() { - const int cols = 50; + constexpr int cols = 50; static int rot = 0; auto buf = std::array{}; auto prog = std::array{}; @@ -233,9 +221,9 @@ void ProjectRenderer::updateConsoleProgress() } prog[cols] = 0; - const auto activity = (const char*)"|/-\\"; + const auto activity = "|/-\\"; std::fill(buf.begin(), buf.end(), 0); - sprintf(buf.data(), "\r|%s| %3d%% %c ", prog.data(), m_progress, + std::snprintf(buf.data(), buf.size(), "\r|%s| %3d%% %c ", prog.data(), m_progress, activity[rot] ); rot = ( rot+1 ) % 4; diff --git a/src/core/RemotePlugin.cpp b/src/core/RemotePlugin.cpp index 088bc3cd868..dc26bf2b554 100644 --- a/src/core/RemotePlugin.cpp +++ b/src/core/RemotePlugin.cpp @@ -325,7 +325,7 @@ bool RemotePlugin::init(const QString &pluginExecutable, -bool RemotePlugin::process( const sampleFrame * _in_buf, sampleFrame * _out_buf ) +bool RemotePlugin::process( const SampleFrame* _in_buf, SampleFrame* _out_buf ) { const fpp_t frames = Engine::audioEngine()->framesPerPeriod(); @@ -333,7 +333,7 @@ bool RemotePlugin::process( const sampleFrame * _in_buf, sampleFrame * _out_buf { if( _out_buf != nullptr ) { - BufferManager::clear( _out_buf, frames ); + zeroSampleFrames(_out_buf, frames); } return false; } @@ -352,7 +352,7 @@ bool RemotePlugin::process( const sampleFrame * _in_buf, sampleFrame * _out_buf } if( _out_buf != nullptr ) { - BufferManager::clear( _out_buf, frames ); + zeroSampleFrames(_out_buf, frames); } return false; } @@ -376,11 +376,12 @@ bool RemotePlugin::process( const sampleFrame * _in_buf, sampleFrame * _out_buf } else if( inputs == DEFAULT_CHANNELS ) { - memcpy( m_audioBuffer.get(), _in_buf, frames * BYTES_PER_FRAME ); + auto target = m_audioBuffer.get(); + copyFromSampleFrames(target, _in_buf, frames); } else { - auto o = (sampleFrame*)m_audioBuffer.get(); + auto o = (SampleFrame*)m_audioBuffer.get(); for( ch_cnt_t ch = 0; ch < inputs; ++ch ) { for( fpp_t frame = 0; frame < frames; ++frame ) @@ -418,14 +419,14 @@ bool RemotePlugin::process( const sampleFrame * _in_buf, sampleFrame * _out_buf } else if( outputs == DEFAULT_CHANNELS ) { - memcpy( _out_buf, m_audioBuffer.get() + m_inputCount * frames, - frames * BYTES_PER_FRAME ); + auto source = m_audioBuffer.get() + m_inputCount * frames; + copyToSampleFrames(_out_buf, source, frames); } else { - auto o = (sampleFrame*)(m_audioBuffer.get() + m_inputCount * frames); + auto o = (SampleFrame*)(m_audioBuffer.get() + m_inputCount * frames); // clear buffer, if plugin didn't fill up both channels - BufferManager::clear( _out_buf, frames ); + zeroSampleFrames(_out_buf, frames); for (ch_cnt_t ch = 0; ch < std::min(DEFAULT_CHANNELS, outputs); ++ch) @@ -535,7 +536,7 @@ bool RemotePlugin::processMessage( const message & _m ) case IdSampleRateInformation: reply = true; - reply_message.addInt( Engine::audioEngine()->processingSampleRate() ); + reply_message.addInt( Engine::audioEngine()->outputSampleRate() ); break; case IdBufferSizeInformation: diff --git a/src/core/RenderManager.cpp b/src/core/RenderManager.cpp index 9f619203903..d375b95ee5a 100644 --- a/src/core/RenderManager.cpp +++ b/src/core/RenderManager.cpp @@ -23,6 +23,7 @@ */ #include +#include #include "RenderManager.h" @@ -182,7 +183,7 @@ QString RenderManager::pathForTrack(const Track *track, int num) { QString extension = ProjectRenderer::getFileExtensionFromFormat( m_format ); QString name = track->name(); - name = name.remove(QRegExp(FILENAME_FILTER)); + name = name.remove(QRegularExpression(FILENAME_FILTER)); name = QString( "%1_%2%3" ).arg( num ).arg( name ).arg( extension ); return QDir(m_outputPath).filePath(name); } diff --git a/src/core/RingBuffer.cpp b/src/core/RingBuffer.cpp index 3f1ee7236c1..652cd43dcf9 100644 --- a/src/core/RingBuffer.cpp +++ b/src/core/RingBuffer.cpp @@ -34,22 +34,22 @@ namespace lmms RingBuffer::RingBuffer( f_cnt_t size ) : m_fpp( Engine::audioEngine()->framesPerPeriod() ), - m_samplerate( Engine::audioEngine()->processingSampleRate() ), + m_samplerate( Engine::audioEngine()->outputSampleRate() ), m_size( size + m_fpp ) { - m_buffer = new sampleFrame[ m_size ]; - memset( m_buffer, 0, m_size * sizeof( sampleFrame ) ); + m_buffer = new SampleFrame[ m_size ]; + zeroSampleFrames(m_buffer, m_size); m_position = 0; } RingBuffer::RingBuffer( float size ) : m_fpp( Engine::audioEngine()->framesPerPeriod() ), - m_samplerate( Engine::audioEngine()->processingSampleRate() ) + m_samplerate( Engine::audioEngine()->outputSampleRate() ) { m_size = msToFrames( size ) + m_fpp; - m_buffer = new sampleFrame[ m_size ]; - memset( m_buffer, 0, m_size * sizeof( sampleFrame ) ); + m_buffer = new SampleFrame[ m_size ]; + zeroSampleFrames(m_buffer, m_size); m_position = 0; setSamplerateAware( true ); //qDebug( "m_size %d, m_position %d", m_size, m_position ); @@ -64,7 +64,7 @@ RingBuffer::~RingBuffer() void RingBuffer::reset() { - memset( m_buffer, 0, m_size * sizeof( sampleFrame ) ); + zeroSampleFrames(m_buffer, m_size); m_position = 0; } @@ -72,10 +72,10 @@ void RingBuffer::reset() void RingBuffer::changeSize( f_cnt_t size ) { size += m_fpp; - sampleFrame * tmp = m_buffer; + SampleFrame* tmp = m_buffer; m_size = size; - m_buffer = new sampleFrame[ m_size ]; - memset( m_buffer, 0, m_size * sizeof( sampleFrame ) ); + m_buffer = new SampleFrame[ m_size ]; + zeroSampleFrames(m_buffer, m_size); m_position = 0; delete[] tmp; } @@ -118,111 +118,109 @@ void RingBuffer::movePosition( float amount ) } -void RingBuffer::pop( sampleFrame * dst ) +void RingBuffer::pop( SampleFrame* dst ) { if( m_position + m_fpp <= m_size ) // we won't go over the edge so we can just memcpy here { - memcpy( dst, & m_buffer [ m_position ], m_fpp * sizeof( sampleFrame ) ); - memset( & m_buffer[m_position], 0, m_fpp * sizeof( sampleFrame ) ); + memcpy( dst, & m_buffer [ m_position ], m_fpp * sizeof( SampleFrame ) ); + zeroSampleFrames(&m_buffer[m_position], m_fpp); } else { f_cnt_t first = m_size - m_position; f_cnt_t second = m_fpp - first; - memcpy( dst, & m_buffer [ m_position ], first * sizeof( sampleFrame ) ); - memset( & m_buffer [m_position], 0, first * sizeof( sampleFrame ) ); + memcpy( dst, & m_buffer [ m_position ], first * sizeof( SampleFrame ) ); + zeroSampleFrames(&m_buffer[m_position], first); - memcpy( & dst [first], m_buffer, second * sizeof( sampleFrame ) ); - memset( m_buffer, 0, second * sizeof( sampleFrame ) ); + memcpy( & dst [first], m_buffer, second * sizeof( SampleFrame ) ); + zeroSampleFrames(m_buffer, second); } m_position = ( m_position + m_fpp ) % m_size; } -void RingBuffer::read( sampleFrame * dst, f_cnt_t offset ) +void RingBuffer::read( SampleFrame* dst, f_cnt_t offset ) { f_cnt_t pos = ( m_position + offset ) % m_size; - if( pos < 0 ) { pos += m_size; } if( pos + m_fpp <= m_size ) // we won't go over the edge so we can just memcpy here { - memcpy( dst, & m_buffer [pos], m_fpp * sizeof( sampleFrame ) ); + memcpy( dst, & m_buffer [pos], m_fpp * sizeof( SampleFrame ) ); } else { f_cnt_t first = m_size - pos; f_cnt_t second = m_fpp - first; - memcpy( dst, & m_buffer [pos], first * sizeof( sampleFrame ) ); + memcpy( dst, & m_buffer [pos], first * sizeof( SampleFrame ) ); - memcpy( & dst [first], m_buffer, second * sizeof( sampleFrame ) ); + memcpy( & dst [first], m_buffer, second * sizeof( SampleFrame ) ); } } -void RingBuffer::read( sampleFrame * dst, float offset ) +void RingBuffer::read( SampleFrame* dst, float offset ) { read( dst, msToFrames( offset ) ); } -void RingBuffer::read( sampleFrame * dst, f_cnt_t offset, f_cnt_t length ) +void RingBuffer::read( SampleFrame* dst, f_cnt_t offset, f_cnt_t length ) { f_cnt_t pos = ( m_position + offset ) % m_size; - if( pos < 0 ) { pos += m_size; } if( pos + length <= m_size ) // we won't go over the edge so we can just memcpy here { - memcpy( dst, & m_buffer [pos], length * sizeof( sampleFrame ) ); + memcpy( dst, & m_buffer [pos], length * sizeof( SampleFrame ) ); } else { f_cnt_t first = m_size - pos; f_cnt_t second = length - first; - memcpy( dst, & m_buffer [pos], first * sizeof( sampleFrame ) ); + memcpy( dst, & m_buffer [pos], first * sizeof( SampleFrame ) ); - memcpy( & dst [first], m_buffer, second * sizeof( sampleFrame ) ); + memcpy( & dst [first], m_buffer, second * sizeof( SampleFrame ) ); } } -void RingBuffer::read( sampleFrame * dst, float offset, f_cnt_t length ) +void RingBuffer::read( SampleFrame* dst, float offset, f_cnt_t length ) { read( dst, msToFrames( offset ), length ); } -void RingBuffer::write( sampleFrame * src, f_cnt_t offset, f_cnt_t length ) +void RingBuffer::write( SampleFrame* src, f_cnt_t offset, f_cnt_t length ) { const f_cnt_t pos = ( m_position + offset ) % m_size; if( length == 0 ) { length = m_fpp; } if( pos + length <= m_size ) // we won't go over the edge so we can just memcpy here { - memcpy( & m_buffer [pos], src, length * sizeof( sampleFrame ) ); + memcpy( & m_buffer [pos], src, length * sizeof( SampleFrame ) ); } else { f_cnt_t first = m_size - pos; f_cnt_t second = length - first; - memcpy( & m_buffer [pos], src, first * sizeof( sampleFrame ) ); + memcpy( & m_buffer [pos], src, first * sizeof( SampleFrame ) ); - memcpy( m_buffer, & src [first], second * sizeof( sampleFrame ) ); + memcpy( m_buffer, & src [first], second * sizeof( SampleFrame ) ); } } -void RingBuffer::write( sampleFrame * src, float offset, f_cnt_t length ) +void RingBuffer::write( SampleFrame* src, float offset, f_cnt_t length ) { write( src, msToFrames( offset ), length ); } -void RingBuffer::writeAdding( sampleFrame * src, f_cnt_t offset, f_cnt_t length ) +void RingBuffer::writeAdding( SampleFrame* src, f_cnt_t offset, f_cnt_t length ) { const f_cnt_t pos = ( m_position + offset ) % m_size; if( length == 0 ) { length = m_fpp; } @@ -243,13 +241,13 @@ void RingBuffer::writeAdding( sampleFrame * src, f_cnt_t offset, f_cnt_t length } -void RingBuffer::writeAdding( sampleFrame * src, float offset, f_cnt_t length ) +void RingBuffer::writeAdding( SampleFrame* src, float offset, f_cnt_t length ) { writeAdding( src, msToFrames( offset ), length ); } -void RingBuffer::writeAddingMultiplied( sampleFrame * src, f_cnt_t offset, f_cnt_t length, float level ) +void RingBuffer::writeAddingMultiplied( SampleFrame* src, f_cnt_t offset, f_cnt_t length, float level ) { const f_cnt_t pos = ( m_position + offset ) % m_size; //qDebug( "pos %d m_pos %d ofs %d siz %d", pos, m_position, offset, m_size ); @@ -271,14 +269,14 @@ void RingBuffer::writeAddingMultiplied( sampleFrame * src, f_cnt_t offset, f_cnt } -void RingBuffer::writeAddingMultiplied( sampleFrame * src, float offset, f_cnt_t length, float level ) +void RingBuffer::writeAddingMultiplied( SampleFrame* src, float offset, f_cnt_t length, float level ) { f_cnt_t ofs = msToFrames( offset ); writeAddingMultiplied( src, ofs, length, level ); } -void RingBuffer::writeSwappedAddingMultiplied( sampleFrame * src, f_cnt_t offset, f_cnt_t length, float level ) +void RingBuffer::writeSwappedAddingMultiplied( SampleFrame* src, f_cnt_t offset, f_cnt_t length, float level ) { const f_cnt_t pos = ( m_position + offset ) % m_size; if( length == 0 ) { length = m_fpp; } @@ -299,7 +297,7 @@ void RingBuffer::writeSwappedAddingMultiplied( sampleFrame * src, f_cnt_t offset } -void RingBuffer::writeSwappedAddingMultiplied( sampleFrame * src, float offset, f_cnt_t length, float level ) +void RingBuffer::writeSwappedAddingMultiplied( SampleFrame* src, float offset, f_cnt_t length, float level ) { writeSwappedAddingMultiplied( src, msToFrames( offset ), length, level ); } @@ -307,12 +305,12 @@ void RingBuffer::writeSwappedAddingMultiplied( sampleFrame * src, float offset, void RingBuffer::updateSamplerate() { - float newsize = static_cast( ( m_size - m_fpp ) * Engine::audioEngine()->processingSampleRate() ) / m_samplerate; + float newsize = static_cast( ( m_size - m_fpp ) * Engine::audioEngine()->outputSampleRate() ) / m_samplerate; m_size = static_cast( ceilf( newsize ) ) + m_fpp; - m_samplerate = Engine::audioEngine()->processingSampleRate(); + m_samplerate = Engine::audioEngine()->outputSampleRate(); delete[] m_buffer; - m_buffer = new sampleFrame[ m_size ]; - memset( m_buffer, 0, m_size * sizeof( sampleFrame ) ); + m_buffer = new SampleFrame[ m_size ]; + zeroSampleFrames(m_buffer, m_size); m_position = 0; } diff --git a/src/core/Sample.cpp b/src/core/Sample.cpp new file mode 100644 index 00000000000..3a1dbfcb256 --- /dev/null +++ b/src/core/Sample.cpp @@ -0,0 +1,253 @@ +/* + * Sample.cpp - State for container-class SampleBuffer + * + * Copyright (c) 2023 saker + * + * This file is part of LMMS - https://lmms.io + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#include "Sample.h" + +#include "lmms_math.h" + +#include + +namespace lmms { + +Sample::Sample(const QString& audioFile) + : m_buffer(std::make_shared(audioFile)) + , m_startFrame(0) + , m_endFrame(m_buffer->size()) + , m_loopStartFrame(0) + , m_loopEndFrame(m_buffer->size()) +{ +} + +Sample::Sample(const QByteArray& base64, int sampleRate) + : m_buffer(std::make_shared(base64, sampleRate)) + , m_startFrame(0) + , m_endFrame(m_buffer->size()) + , m_loopStartFrame(0) + , m_loopEndFrame(m_buffer->size()) +{ +} + +Sample::Sample(const SampleFrame* data, size_t numFrames, int sampleRate) + : m_buffer(std::make_shared(data, numFrames, sampleRate)) + , m_startFrame(0) + , m_endFrame(m_buffer->size()) + , m_loopStartFrame(0) + , m_loopEndFrame(m_buffer->size()) +{ +} + +Sample::Sample(std::shared_ptr buffer) + : m_buffer(buffer) + , m_startFrame(0) + , m_endFrame(m_buffer->size()) + , m_loopStartFrame(0) + , m_loopEndFrame(m_buffer->size()) +{ +} + +Sample::Sample(const Sample& other) + : m_buffer(other.m_buffer) + , m_startFrame(other.startFrame()) + , m_endFrame(other.endFrame()) + , m_loopStartFrame(other.loopStartFrame()) + , m_loopEndFrame(other.loopEndFrame()) + , m_amplification(other.amplification()) + , m_frequency(other.frequency()) + , m_reversed(other.reversed()) +{ +} + +Sample::Sample(Sample&& other) + : m_buffer(std::move(other.m_buffer)) + , m_startFrame(other.startFrame()) + , m_endFrame(other.endFrame()) + , m_loopStartFrame(other.loopStartFrame()) + , m_loopEndFrame(other.loopEndFrame()) + , m_amplification(other.amplification()) + , m_frequency(other.frequency()) + , m_reversed(other.reversed()) +{ +} + +auto Sample::operator=(const Sample& other) -> Sample& +{ + m_buffer = other.m_buffer; + m_startFrame = other.startFrame(); + m_endFrame = other.endFrame(); + m_loopStartFrame = other.loopStartFrame(); + m_loopEndFrame = other.loopEndFrame(); + m_amplification = other.amplification(); + m_frequency = other.frequency(); + m_reversed = other.reversed(); + + return *this; +} + +auto Sample::operator=(Sample&& other) -> Sample& +{ + m_buffer = std::move(other.m_buffer); + m_startFrame = other.startFrame(); + m_endFrame = other.endFrame(); + m_loopStartFrame = other.loopStartFrame(); + m_loopEndFrame = other.loopEndFrame(); + m_amplification = other.amplification(); + m_frequency = other.frequency(); + m_reversed = other.reversed(); + + return *this; +} + +bool Sample::play(SampleFrame* dst, PlaybackState* state, size_t numFrames, float desiredFrequency, Loop loopMode) const +{ + assert(numFrames > 0); + assert(desiredFrequency > 0); + + const auto pastBounds = state->m_frameIndex >= m_endFrame || (state->m_frameIndex < 0 && state->m_backwards); + if (loopMode == Loop::Off && pastBounds) { return false; } + + const auto outputSampleRate = Engine::audioEngine()->outputSampleRate() * m_frequency / desiredFrequency; + const auto inputSampleRate = m_buffer->sampleRate(); + const auto resampleRatio = outputSampleRate / inputSampleRate; + const auto marginSize = s_interpolationMargins[state->resampler().interpolationMode()]; + + state->m_frameIndex = std::max(m_startFrame, state->m_frameIndex); + + auto playBuffer = std::vector(numFrames / resampleRatio + marginSize); + playRaw(playBuffer.data(), playBuffer.size(), state, loopMode); + + state->resampler().setRatio(resampleRatio); + + const auto resampleResult + = state->resampler().resample(&playBuffer[0][0], playBuffer.size(), &dst[0][0], numFrames, resampleRatio); + advance(state, resampleResult.inputFramesUsed, loopMode); + + const auto outputFrames = static_cast(resampleResult.outputFramesGenerated); + if (outputFrames < numFrames) { std::fill_n(dst + outputFrames, numFrames - outputFrames, SampleFrame{}); } + + if (!approximatelyEqual(m_amplification, 1.0f)) + { + for (auto i = std::size_t{0}; i < numFrames; ++i) + { + dst[i][0] *= m_amplification; + dst[i][1] *= m_amplification; + } + } + + return true; +} + +auto Sample::sampleDuration() const -> std::chrono::milliseconds +{ + const auto numFrames = endFrame() - startFrame(); + const auto duration = numFrames / static_cast(m_buffer->sampleRate()) * 1000; + return std::chrono::milliseconds{static_cast(duration)}; +} + +void Sample::setAllPointFrames(int startFrame, int endFrame, int loopStartFrame, int loopEndFrame) +{ + setStartFrame(startFrame); + setEndFrame(endFrame); + setLoopStartFrame(loopStartFrame); + setLoopEndFrame(loopEndFrame); +} + +void Sample::playRaw(SampleFrame* dst, size_t numFrames, const PlaybackState* state, Loop loopMode) const +{ + if (m_buffer->size() < 1) { return; } + + auto index = state->m_frameIndex; + auto backwards = state->m_backwards; + + for (size_t i = 0; i < numFrames; ++i) + { + switch (loopMode) + { + case Loop::Off: + if (index < 0 || index >= m_endFrame) { return; } + break; + case Loop::On: + if (index < m_loopStartFrame && backwards) { index = m_loopEndFrame - 1; } + else if (index >= m_loopEndFrame) { index = m_loopStartFrame; } + break; + case Loop::PingPong: + if (index < m_loopStartFrame && backwards) + { + index = m_loopStartFrame; + backwards = false; + } + else if (index >= m_loopEndFrame) + { + index = m_loopEndFrame - 1; + backwards = true; + } + break; + default: + break; + } + + dst[i] = m_buffer->data()[m_reversed ? m_buffer->size() - index - 1 : index]; + backwards ? --index : ++index; + } +} + +void Sample::advance(PlaybackState* state, size_t advanceAmount, Loop loopMode) const +{ + state->m_frameIndex += (state->m_backwards ? -1 : 1) * advanceAmount; + if (loopMode == Loop::Off) { return; } + + const auto distanceFromLoopStart = std::abs(state->m_frameIndex - m_loopStartFrame); + const auto distanceFromLoopEnd = std::abs(state->m_frameIndex - m_loopEndFrame); + const auto loopSize = m_loopEndFrame - m_loopStartFrame; + if (loopSize == 0) { return; } + + switch (loopMode) + { + case Loop::On: + if (state->m_frameIndex < m_loopStartFrame && state->m_backwards) + { + state->m_frameIndex = m_loopEndFrame - 1 - distanceFromLoopStart % loopSize; + } + else if (state->m_frameIndex >= m_loopEndFrame) + { + state->m_frameIndex = m_loopStartFrame + distanceFromLoopEnd % loopSize; + } + break; + case Loop::PingPong: + if (state->m_frameIndex < m_loopStartFrame && state->m_backwards) + { + state->m_frameIndex = m_loopStartFrame + distanceFromLoopStart % loopSize; + state->m_backwards = false; + } + else if (state->m_frameIndex >= m_loopEndFrame) + { + state->m_frameIndex = m_loopEndFrame - 1 - distanceFromLoopEnd % loopSize; + state->m_backwards = true; + } + break; + default: + break; + } +} + +} // namespace lmms diff --git a/src/core/SampleBuffer.cpp b/src/core/SampleBuffer.cpp index 2a0076a283c..fda3f2f663e 100644 --- a/src/core/SampleBuffer.cpp +++ b/src/core/SampleBuffer.cpp @@ -23,1612 +23,74 @@ */ #include "SampleBuffer.h" -#include "Oscillator.h" +#include -#include - -#include -#include -#include -#include - - -#include - -#define OV_EXCLUDE_STATIC_CALLBACKS -#ifdef LMMS_HAVE_OGGVORBIS -#include -#endif - -#ifdef LMMS_HAVE_FLAC_STREAM_ENCODER_H -#include -#endif - -#ifdef LMMS_HAVE_FLAC_STREAM_DECODER_H -#include -#endif - - -#include "AudioEngine.h" -#include "base64.h" -#include "ConfigManager.h" -#include "DrumSynth.h" -#include "endian_handling.h" -#include "Engine.h" -#include "GuiApplication.h" -#include "Note.h" #include "PathUtil.h" +#include "SampleDecoder.h" +#include "lmms_basics.h" -#include "FileDialog.h" +namespace lmms { -namespace lmms +SampleBuffer::SampleBuffer(const SampleFrame* data, size_t numFrames, int sampleRate) + : m_data(data, data + numFrames) + , m_sampleRate(sampleRate) { - -SampleBuffer::SampleBuffer() : - m_userAntiAliasWaveTable(nullptr), - m_audioFile(""), - m_origData(nullptr), - m_origFrames(0), - m_data(nullptr), - m_frames(0), - m_startFrame(0), - m_endFrame(0), - m_loopStartFrame(0), - m_loopEndFrame(0), - m_amplification(1.0f), - m_reversed(false), - m_frequency(DefaultBaseFreq), - m_sampleRate(audioEngineSampleRate()) -{ - - connect(Engine::audioEngine(), SIGNAL(sampleRateChanged()), this, SLOT(sampleRateChanged())); - update(); } - - -SampleBuffer::SampleBuffer(const QString & audioFile, bool isBase64Data) - : SampleBuffer() +SampleBuffer::SampleBuffer(const QString& audioFile) { - if (isBase64Data) - { - loadFromBase64(audioFile); - } - else - { - m_audioFile = audioFile; - update(); - } -} - - + if (audioFile.isEmpty()) { throw std::runtime_error{"Failure loading audio file: Audio file path is empty."}; } + const auto absolutePath = PathUtil::toAbsolute(audioFile); - -SampleBuffer::SampleBuffer(const sampleFrame * data, const f_cnt_t frames) - : SampleBuffer() -{ - if (frames > 0) + if (auto decodedResult = SampleDecoder::decode(absolutePath)) { - m_origData = MM_ALLOC( frames); - memcpy(m_origData, data, frames * BYTES_PER_FRAME); - m_origFrames = frames; - update(); + auto& [data, sampleRate] = *decodedResult; + m_data = std::move(data); + m_sampleRate = sampleRate; + m_audioFile = PathUtil::toShortestRelative(audioFile); + return; } -} - - + throw std::runtime_error{ + "Failed to decode audio file: Either the audio codec is unsupported, or the file is corrupted."}; +} -SampleBuffer::SampleBuffer(const f_cnt_t frames) - : SampleBuffer() +SampleBuffer::SampleBuffer(const QString& base64, int sampleRate) + : m_sampleRate(sampleRate) { - if (frames > 0) - { - m_origData = MM_ALLOC( frames); - memset(m_origData, 0, frames * BYTES_PER_FRAME); - m_origFrames = frames; - update(); - } + // TODO: Replace with non-Qt equivalent + const auto bytes = QByteArray::fromBase64(base64.toUtf8()); + m_data.resize(bytes.size() / sizeof(SampleFrame)); + std::memcpy(reinterpret_cast(m_data.data()), bytes, m_data.size() * sizeof(SampleFrame)); } - - - -SampleBuffer::SampleBuffer(const SampleBuffer& orig) +SampleBuffer::SampleBuffer(std::vector data, int sampleRate) + : m_data(std::move(data)) + , m_sampleRate(sampleRate) { - orig.m_varLock.lockForRead(); - - m_audioFile = orig.m_audioFile; - m_origFrames = orig.m_origFrames; - m_origData = (m_origFrames > 0) ? MM_ALLOC( m_origFrames) : nullptr; - m_frames = orig.m_frames; - m_data = (m_frames > 0) ? MM_ALLOC( m_frames) : nullptr; - m_startFrame = orig.m_startFrame; - m_endFrame = orig.m_endFrame; - m_loopStartFrame = orig.m_loopStartFrame; - m_loopEndFrame = orig.m_loopEndFrame; - m_amplification = orig.m_amplification; - m_reversed = orig.m_reversed; - m_frequency = orig.m_frequency; - m_sampleRate = orig.m_sampleRate; - - //Deep copy m_origData and m_data from original - const auto origFrameBytes = m_origFrames * BYTES_PER_FRAME; - const auto frameBytes = m_frames * BYTES_PER_FRAME; - if (orig.m_origData != nullptr && origFrameBytes > 0) - { memcpy(m_origData, orig.m_origData, origFrameBytes); } - if (orig.m_data != nullptr && frameBytes > 0) - { memcpy(m_data, orig.m_data, frameBytes); } - - orig.m_varLock.unlock(); } - - - void swap(SampleBuffer& first, SampleBuffer& second) noexcept { using std::swap; - - // Lock both buffers for writing, with address as lock ordering - if (&first == &second) { return; } - else if (&first > &second) - { - first.m_varLock.lockForWrite(); - second.m_varLock.lockForWrite(); - } - else - { - second.m_varLock.lockForWrite(); - first.m_varLock.lockForWrite(); - } - - first.m_audioFile.swap(second.m_audioFile); - swap(first.m_origData, second.m_origData); swap(first.m_data, second.m_data); - swap(first.m_origFrames, second.m_origFrames); - swap(first.m_frames, second.m_frames); - swap(first.m_startFrame, second.m_startFrame); - swap(first.m_endFrame, second.m_endFrame); - swap(first.m_loopStartFrame, second.m_loopStartFrame); - swap(first.m_loopEndFrame, second.m_loopEndFrame); - swap(first.m_amplification, second.m_amplification); - swap(first.m_frequency, second.m_frequency); - swap(first.m_reversed, second.m_reversed); + swap(first.m_audioFile, second.m_audioFile); swap(first.m_sampleRate, second.m_sampleRate); - - // Unlock again - first.m_varLock.unlock(); - second.m_varLock.unlock(); -} - - - - -SampleBuffer& SampleBuffer::operator=(SampleBuffer that) -{ - swap(*this, that); - return *this; -} - - - - -SampleBuffer::~SampleBuffer() -{ - MM_FREE(m_origData); - MM_FREE(m_data); -} - - - -void SampleBuffer::sampleRateChanged() -{ - update(true); -} - -sample_rate_t SampleBuffer::audioEngineSampleRate() -{ - return Engine::audioEngine()->processingSampleRate(); -} - - -void SampleBuffer::update(bool keepSettings) -{ - const bool lock = (m_data != nullptr); - if (lock) - { - Engine::audioEngine()->requestChangeInModel(); - m_varLock.lockForWrite(); - MM_FREE(m_data); - } - - // File size and sample length limits - const int fileSizeMax = 300; // MB - const int sampleLengthMax = 90; // Minutes - - enum class FileLoadError - { - None, - ReadPermissionDenied, - TooLarge, - Invalid - }; - FileLoadError fileLoadError = FileLoadError::None; - - if (m_audioFile.isEmpty() && m_origData != nullptr && m_origFrames > 0) - { - // TODO: reverse- and amplification-property is not covered - // by following code... - m_data = MM_ALLOC( m_origFrames); - memcpy(m_data, m_origData, m_origFrames * BYTES_PER_FRAME); - if (keepSettings == false) - { - m_frames = m_origFrames; - m_loopStartFrame = m_startFrame = 0; - m_loopEndFrame = m_endFrame = m_frames; - } - } - else if (!m_audioFile.isEmpty()) - { - QString file = PathUtil::toAbsolute(m_audioFile); - int_sample_t * buf = nullptr; - sample_t * fbuf = nullptr; - ch_cnt_t channels = DEFAULT_CHANNELS; - sample_rate_t samplerate = audioEngineSampleRate(); - m_frames = 0; - - const QFileInfo fileInfo(file); - if (!fileInfo.isReadable()) - { - fileLoadError = FileLoadError::ReadPermissionDenied; - } - else if (fileInfo.size() > fileSizeMax * 1024 * 1024) - { - fileLoadError = FileLoadError::TooLarge; - } - else - { - // Use QFile to handle unicode file names on Windows - QFile f(file); - SNDFILE * sndFile = nullptr; - SF_INFO sfInfo; - sfInfo.format = 0; - - if (f.open(QIODevice::ReadOnly) && (sndFile = sf_open_fd(f.handle(), SFM_READ, &sfInfo, false))) - { - f_cnt_t frames = sfInfo.frames; - int rate = sfInfo.samplerate; - if (frames / rate > sampleLengthMax * 60) - { - fileLoadError = FileLoadError::TooLarge; - } - sf_close(sndFile); - } - f.close(); - } - - if (fileLoadError == FileLoadError::None) - { -#ifdef LMMS_HAVE_OGGVORBIS - // workaround for a bug in libsndfile or our libsndfile decoder - // causing some OGG files to be distorted -> try with OGG Vorbis - // decoder first if filename extension matches "ogg" - if (m_frames == 0 && fileInfo.suffix() == "ogg") - { - m_frames = decodeSampleOGGVorbis(file, buf, channels, samplerate); - } -#endif - if (m_frames == 0) - { - m_frames = decodeSampleSF(file, fbuf, channels, samplerate); - } -#ifdef LMMS_HAVE_OGGVORBIS - if (m_frames == 0) - { - m_frames = decodeSampleOGGVorbis(file, buf, channels, samplerate); - } -#endif - if (m_frames == 0) - { - m_frames = decodeSampleDS(file, buf, channels, samplerate); - } - - if (m_frames == 0) - { - fileLoadError = FileLoadError::Invalid; - } - } - - if (m_frames == 0 || fileLoadError != FileLoadError::None) // if still no frames, bail - { - // sample couldn't be decoded, create buffer containing - // one sample-frame - m_data = MM_ALLOC( 1); - memset(m_data, 0, sizeof(*m_data)); - m_frames = 1; - m_loopStartFrame = m_startFrame = 0; - m_loopEndFrame = m_endFrame = 1; - } - else // otherwise normalize sample rate - { - normalizeSampleRate(samplerate, keepSettings); - } - } - else - { - // neither an audio-file nor a buffer to copy from, so create - // buffer containing one sample-frame - m_data = MM_ALLOC( 1); - memset(m_data, 0, sizeof(*m_data)); - m_frames = 1; - m_loopStartFrame = m_startFrame = 0; - m_loopEndFrame = m_endFrame = 1; - } - - if (lock) - { - m_varLock.unlock(); - Engine::audioEngine()->doneChangeInModel(); - } - - emit sampleUpdated(); - - // allocate space for anti-aliased wave table - if (m_userAntiAliasWaveTable == nullptr) - { - m_userAntiAliasWaveTable = std::make_unique(); - } - Oscillator::generateAntiAliasUserWaveTable(this); - - if (fileLoadError != FileLoadError::None) - { - QString title = tr("Fail to open file"); - QString message; - - switch (fileLoadError) - { - case FileLoadError::None: - // present just to avoid a compiler warning - break; - - case FileLoadError::ReadPermissionDenied: - message = tr("Read permission denied"); - break; - - case FileLoadError::TooLarge: - message = tr("Audio files are limited to %1 MB " - "in size and %2 minutes of playing time" - ).arg(fileSizeMax).arg(sampleLengthMax); - break; - - case FileLoadError::Invalid: - message = tr("Invalid audio file"); - break; - } - - if (gui::getGUI() != nullptr) - { - QMessageBox::information(nullptr, title, message, QMessageBox::Ok); - } - else - { - fprintf(stderr, "%s\n", message.toUtf8().constData()); - } - } -} - - -void SampleBuffer::convertIntToFloat( - int_sample_t * & ibuf, - f_cnt_t frames, - int channels -) -{ - // following code transforms int-samples into float-samples and does amplifying & reversing - const float fac = 1 / OUTPUT_SAMPLE_MULTIPLIER; - m_data = MM_ALLOC( frames); - const int ch = (channels > 1) ? 1 : 0; - - // if reversing is on, we also reverse when scaling - bool isReversed = m_reversed; - int idx = isReversed ? (frames - 1) * channels : 0; - for (f_cnt_t frame = 0; frame < frames; ++frame) - { - m_data[frame][0] = ibuf[idx+0] * fac; - m_data[frame][1] = ibuf[idx+ch] * fac; - idx += isReversed ? -channels : channels; - } - - delete[] ibuf; -} - -void SampleBuffer::directFloatWrite( - sample_t * & fbuf, - f_cnt_t frames, - int channels -) -{ - - m_data = MM_ALLOC( frames); - const int ch = (channels > 1) ? 1 : 0; - - // if reversing is on, we also reverse when scaling - bool isReversed = m_reversed; - int idx = isReversed ? (frames - 1) * channels : 0; - for (f_cnt_t frame = 0; frame < frames; ++frame) - { - m_data[frame][0] = fbuf[idx+0]; - m_data[frame][1] = fbuf[idx+ch]; - idx += isReversed ? -channels : channels; - } - - delete[] fbuf; -} - - -void SampleBuffer::normalizeSampleRate(const sample_rate_t srcSR, bool keepSettings) -{ - const sample_rate_t oldRate = m_sampleRate; - // do samplerate-conversion to our default-samplerate - if (srcSR != audioEngineSampleRate()) - { - SampleBuffer * resampled = resample(srcSR, audioEngineSampleRate()); - - m_sampleRate = audioEngineSampleRate(); - MM_FREE(m_data); - m_frames = resampled->frames(); - m_data = MM_ALLOC( m_frames); - memcpy(m_data, resampled->data(), m_frames * sizeof(sampleFrame)); - delete resampled; - } - - if (keepSettings == false) - { - // update frame-variables - m_loopStartFrame = m_startFrame = 0; - m_loopEndFrame = m_endFrame = m_frames; - } - else if (oldRate != audioEngineSampleRate()) - { - auto oldRateToNewRateRatio = static_cast(audioEngineSampleRate()) / oldRate; - - m_startFrame = std::clamp(f_cnt_t(m_startFrame * oldRateToNewRateRatio), 0, m_frames); - m_endFrame = std::clamp(f_cnt_t(m_endFrame * oldRateToNewRateRatio), m_startFrame, m_frames); - m_loopStartFrame = std::clamp(f_cnt_t(m_loopStartFrame * oldRateToNewRateRatio), 0, m_frames); - m_loopEndFrame = std::clamp(f_cnt_t(m_loopEndFrame * oldRateToNewRateRatio), m_loopStartFrame, m_frames); - m_sampleRate = audioEngineSampleRate(); - } -} - - - - -f_cnt_t SampleBuffer::decodeSampleSF( - QString fileName, - sample_t * & buf, - ch_cnt_t & channels, - sample_rate_t & samplerate -) -{ - SNDFILE * sndFile; - SF_INFO sfInfo; - sfInfo.format = 0; - f_cnt_t frames = 0; - sf_count_t sfFramesRead; - - - // Use QFile to handle unicode file names on Windows - QFile f(fileName); - if (f.open(QIODevice::ReadOnly) && (sndFile = sf_open_fd(f.handle(), SFM_READ, &sfInfo, false))) - { - frames = sfInfo.frames; - - buf = new sample_t[sfInfo.channels * frames]; - sfFramesRead = sf_read_float(sndFile, buf, sfInfo.channels * frames); - - if (sfFramesRead < sfInfo.channels * frames) - { -#ifdef DEBUG_LMMS - qDebug("SampleBuffer::decodeSampleSF(): could not read" - " sample %s: %s", fileName, sf_strerror(nullptr)); -#endif - } - channels = sfInfo.channels; - samplerate = sfInfo.samplerate; - - sf_close(sndFile); - } - else - { -#ifdef DEBUG_LMMS - qDebug("SampleBuffer::decodeSampleSF(): could not load " - "sample %s: %s", fileName, sf_strerror(nullptr)); -#endif - } - f.close(); - - //write down either directly or convert i->f depending on file type - - if (frames > 0 && buf != nullptr) - { - directFloatWrite(buf, frames, channels); - } - - return frames; -} - - - - -#ifdef LMMS_HAVE_OGGVORBIS - -// callback-functions for reading ogg-file - -size_t qfileReadCallback(void * ptr, size_t size, size_t n, void * udata ) -{ - return static_cast(udata)->read((char*) ptr, size * n); -} - - - - -int qfileSeekCallback(void * udata, ogg_int64_t offset, int whence) -{ - auto f = static_cast(udata); - - if (whence == SEEK_CUR) - { - f->seek(f->pos() + offset); - } - else if (whence == SEEK_END) - { - f->seek(f->size() + offset); - } - else - { - f->seek(offset); - } - return 0; -} - - - - -int qfileCloseCallback(void * udata) -{ - delete static_cast(udata); - return 0; } - - - -long qfileTellCallback(void * udata) +QString SampleBuffer::toBase64() const { - return static_cast(udata)->pos(); + // TODO: Replace with non-Qt equivalent + const auto data = reinterpret_cast(m_data.data()); + const auto size = static_cast(m_data.size() * sizeof(SampleFrame)); + const auto byteArray = QByteArray{data, size}; + return byteArray.toBase64(); } - - - -f_cnt_t SampleBuffer::decodeSampleOGGVorbis( - QString fileName, - int_sample_t * & buf, - ch_cnt_t & channels, - sample_rate_t & samplerate -) -{ - static ov_callbacks callbacks = - { - qfileReadCallback, - qfileSeekCallback, - qfileCloseCallback, - qfileTellCallback - } ; - - OggVorbis_File vf; - - f_cnt_t frames = 0; - - auto f = new QFile(fileName); - if (f->open(QFile::ReadOnly) == false) - { - delete f; - return 0; - } - - int err = ov_open_callbacks(f, &vf, nullptr, 0, callbacks); - - if (err < 0) - { - switch (err) - { - case OV_EREAD: - printf("SampleBuffer::decodeSampleOGGVorbis():" - " media read error\n"); - break; - case OV_ENOTVORBIS: - printf("SampleBuffer::decodeSampleOGGVorbis():" - " not an Ogg Vorbis file\n"); - break; - case OV_EVERSION: - printf("SampleBuffer::decodeSampleOGGVorbis():" - " vorbis version mismatch\n"); - break; - case OV_EBADHEADER: - printf("SampleBuffer::decodeSampleOGGVorbis():" - " invalid Vorbis bitstream header\n"); - break; - case OV_EFAULT: - printf("SampleBuffer::decodeSampleOgg(): " - "internal logic fault\n"); - break; - } - delete f; - return 0; - } - - ov_pcm_seek(&vf, 0); - - channels = ov_info(&vf, -1)->channels; - samplerate = ov_info(&vf, -1)->rate; - - ogg_int64_t total = ov_pcm_total(&vf, -1); - - buf = new int_sample_t[total * channels]; - int bitstream = 0; - long bytesRead = 0; - - do - { - bytesRead = ov_read(&vf, - (char *) &buf[frames * channels], - (total - frames) * channels * BYTES_PER_INT_SAMPLE, - isLittleEndian() ? 0 : 1, - BYTES_PER_INT_SAMPLE, - 1, - &bitstream - ); - - if (bytesRead < 0) - { - break; - } - frames += bytesRead / (channels * BYTES_PER_INT_SAMPLE); - } - while (bytesRead != 0 && bitstream == 0); - - ov_clear(&vf); - - // if buffer isn't empty, convert it to float and write it down - if (frames > 0 && buf != nullptr) - { - convertIntToFloat(buf, frames, channels); - } - - return frames; -} -#endif // LMMS_HAVE_OGGVORBIS - - - - -f_cnt_t SampleBuffer::decodeSampleDS( - QString fileName, - int_sample_t * & buf, - ch_cnt_t & channels, - sample_rate_t & samplerate -) -{ - DrumSynth ds; - f_cnt_t frames = ds.GetDSFileSamples(fileName, buf, channels, samplerate); - - if (frames > 0 && buf != nullptr) - { - convertIntToFloat(buf, frames, channels); - } - - return frames; - -} - - - - -bool SampleBuffer::play( - sampleFrame * ab, - handleState * state, - const fpp_t frames, - const float freq, - const LoopMode loopMode -) -{ - f_cnt_t startFrame = m_startFrame; - f_cnt_t endFrame = m_endFrame; - f_cnt_t loopStartFrame = m_loopStartFrame; - f_cnt_t loopEndFrame = m_loopEndFrame; - - if (endFrame == 0 || frames == 0) - { - return false; - } - - // variable for determining if we should currently be playing backwards in a ping-pong loop - bool isBackwards = state->isBackwards(); - - // The SampleBuffer can play a given sample with increased or decreased pitch. However, only - // samples that contain a tone that matches the default base note frequency of 440 Hz will - // produce the exact requested pitch in [Hz]. - const double freqFactor = (double) freq / (double) m_frequency * - m_sampleRate / Engine::audioEngine()->processingSampleRate(); - - // calculate how many frames we have in requested pitch - const auto totalFramesForCurrentPitch = static_cast((endFrame - startFrame) / freqFactor); - - if (totalFramesForCurrentPitch == 0) - { - return false; - } - - - // this holds the index of the first frame to play - f_cnt_t playFrame = std::max(state->m_frameIndex, startFrame); - - if (loopMode == LoopMode::Off) - { - if (playFrame >= endFrame || (endFrame - playFrame) / freqFactor == 0) - { - // the sample is done being played - return false; - } - } - else if (loopMode == LoopMode::On) - { - playFrame = getLoopedIndex(playFrame, loopStartFrame, loopEndFrame); - } - else - { - playFrame = getPingPongIndex(playFrame, loopStartFrame, loopEndFrame); - } - - f_cnt_t fragmentSize = (f_cnt_t)(frames * freqFactor) + MARGIN[state->interpolationMode()]; - - sampleFrame * tmp = nullptr; - - // check whether we have to change pitch... - if (freqFactor != 1.0 || state->m_varyingPitch) - { - SRC_DATA srcData; - // Generate output - srcData.data_in = - getSampleFragment(playFrame, fragmentSize, loopMode, &tmp, &isBackwards, - loopStartFrame, loopEndFrame, endFrame )->data(); - srcData.data_out = ab->data(); - srcData.input_frames = fragmentSize; - srcData.output_frames = frames; - srcData.src_ratio = 1.0 / freqFactor; - srcData.end_of_input = 0; - int error = src_process(state->m_resamplingData, &srcData); - if (error) - { - printf("SampleBuffer: error while resampling: %s\n", - src_strerror(error)); - } - if (srcData.output_frames_gen > frames) - { - printf("SampleBuffer: not enough frames: %ld / %d\n", - srcData.output_frames_gen, frames); - } - // Advance - switch (loopMode) - { - case LoopMode::Off: - playFrame += srcData.input_frames_used; - break; - case LoopMode::On: - playFrame += srcData.input_frames_used; - playFrame = getLoopedIndex(playFrame, loopStartFrame, loopEndFrame); - break; - case LoopMode::PingPong: - { - f_cnt_t left = srcData.input_frames_used; - if (state->isBackwards()) - { - playFrame -= srcData.input_frames_used; - if (playFrame < loopStartFrame) - { - left -= (loopStartFrame - playFrame); - playFrame = loopStartFrame; - } - else left = 0; - } - playFrame += left; - playFrame = getPingPongIndex(playFrame, loopStartFrame, loopEndFrame); - break; - } - } - } - else - { - // we don't have to pitch, so we just copy the sample-data - // as is into pitched-copy-buffer - - // Generate output - memcpy(ab, - getSampleFragment(playFrame, frames, loopMode, &tmp, &isBackwards, - loopStartFrame, loopEndFrame, endFrame), - frames * BYTES_PER_FRAME); - // Advance - switch (loopMode) - { - case LoopMode::Off: - playFrame += frames; - break; - case LoopMode::On: - playFrame += frames; - playFrame = getLoopedIndex(playFrame, loopStartFrame, loopEndFrame); - break; - case LoopMode::PingPong: - { - f_cnt_t left = frames; - if (state->isBackwards()) - { - playFrame -= frames; - if (playFrame < loopStartFrame) - { - left -= (loopStartFrame - playFrame); - playFrame = loopStartFrame; - } - else left = 0; - } - playFrame += left; - playFrame = getPingPongIndex(playFrame, loopStartFrame, loopEndFrame); - break; - } - } - } - - if (tmp != nullptr) - { - MM_FREE(tmp); - } - - state->setBackwards(isBackwards); - state->setFrameIndex(playFrame); - - for (fpp_t i = 0; i < frames; ++i) - { - ab[i][0] *= m_amplification; - ab[i][1] *= m_amplification; - } - - return true; -} - - - - -sampleFrame * SampleBuffer::getSampleFragment( - f_cnt_t index, - f_cnt_t frames, - LoopMode loopMode, - sampleFrame * * tmp, - bool * backwards, - f_cnt_t loopStart, - f_cnt_t loopEnd, - f_cnt_t end -) const -{ - if (loopMode == LoopMode::Off) - { - if (index + frames <= end) - { - return m_data + index; - } - } - else if (loopMode == LoopMode::On) - { - if (index + frames <= loopEnd) - { - return m_data + index; - } - } - else - { - if (!*backwards && index + frames < loopEnd) - { - return m_data + index; - } - } - - *tmp = MM_ALLOC( frames); - - if (loopMode == LoopMode::Off) - { - f_cnt_t available = end - index; - memcpy(*tmp, m_data + index, available * BYTES_PER_FRAME); - memset(*tmp + available, 0, (frames - available) * BYTES_PER_FRAME); - } - else if (loopMode == LoopMode::On) - { - f_cnt_t copied = std::min(frames, loopEnd - index); - memcpy(*tmp, m_data + index, copied * BYTES_PER_FRAME); - f_cnt_t loopFrames = loopEnd - loopStart; - while (copied < frames) - { - f_cnt_t todo = std::min(frames - copied, loopFrames); - memcpy(*tmp + copied, m_data + loopStart, todo * BYTES_PER_FRAME); - copied += todo; - } - } - else - { - f_cnt_t pos = index; - bool currentBackwards = pos < loopStart - ? false - : *backwards; - f_cnt_t copied = 0; - - - if (currentBackwards) - { - copied = std::min(frames, pos - loopStart); - for (int i = 0; i < copied; i++) - { - (*tmp)[i][0] = m_data[pos - i][0]; - (*tmp)[i][1] = m_data[pos - i][1]; - } - pos -= copied; - if (pos == loopStart) { currentBackwards = false; } - } - else - { - copied = std::min(frames, loopEnd - pos); - memcpy(*tmp, m_data + pos, copied * BYTES_PER_FRAME); - pos += copied; - if (pos == loopEnd) { currentBackwards = true; } - } - - while (copied < frames) - { - if (currentBackwards) - { - f_cnt_t todo = std::min(frames - copied, pos - loopStart); - for (int i = 0; i < todo; i++) - { - (*tmp)[copied + i][0] = m_data[pos - i][0]; - (*tmp)[copied + i][1] = m_data[pos - i][1]; - } - pos -= todo; - copied += todo; - if (pos <= loopStart) { currentBackwards = false; } - } - else - { - f_cnt_t todo = std::min(frames - copied, loopEnd - pos); - memcpy(*tmp + copied, m_data + pos, todo * BYTES_PER_FRAME); - pos += todo; - copied += todo; - if (pos >= loopEnd) { currentBackwards = true; } - } - } - *backwards = currentBackwards; - } - - return *tmp; -} - - - - -f_cnt_t SampleBuffer::getLoopedIndex(f_cnt_t index, f_cnt_t startf, f_cnt_t endf) const -{ - if (index < endf) - { - return index; - } - return startf + (index - startf) % (endf - startf); -} - - -f_cnt_t SampleBuffer::getPingPongIndex(f_cnt_t index, f_cnt_t startf, f_cnt_t endf) const -{ - if (index < endf) - { - return index; - } - const f_cnt_t loopLen = endf - startf; - const f_cnt_t loopPos = (index - endf) % (loopLen * 2); - - return (loopPos < loopLen) - ? endf - loopPos - : startf + (loopPos - loopLen); -} - - -/* @brief Draws a sample buffer on the QRect given in the range [fromFrame, toFrame) - * @param QPainter p: Painter object for the painting operations - * @param QRect dr: QRect where the buffer will be drawn in - * @param QRect clip: QRect used for clipping - * @param f_cnt_t fromFrame: First frame of the range - * @param f_cnt_t toFrame: Last frame of the range non-inclusive - */ -void SampleBuffer::visualize( - QPainter & p, - const QRect & dr, - const QRect & clip, - f_cnt_t fromFrame, - f_cnt_t toFrame -) -{ - if (m_frames == 0) { return; } - - const bool focusOnRange = toFrame <= m_frames && 0 <= fromFrame && fromFrame < toFrame; - //TODO: If the clip QRect is not being used we should remove it - //p.setClipRect(clip); - const int w = dr.width(); - const int h = dr.height(); - - const int yb = h / 2 + dr.y(); - const float ySpace = h * 0.5f; - const int nbFrames = focusOnRange ? toFrame - fromFrame : m_frames; - - const double fpp = std::max(1., static_cast(nbFrames) / w); - // There are 2 possibilities: Either nbFrames is bigger than - // the width, so we will have width points, or nbFrames is - // smaller than the width (fpp = 1) and we will have nbFrames - // points - const int totalPoints = nbFrames > w - ? w - : nbFrames; - std::vector fEdgeMax(totalPoints); - std::vector fEdgeMin(totalPoints); - std::vector fRmsMax(totalPoints); - std::vector fRmsMin(totalPoints); - int curPixel = 0; - const int xb = dr.x(); - const int first = focusOnRange ? fromFrame : 0; - const int last = focusOnRange ? toFrame - 1 : m_frames - 1; - // When the number of frames isn't perfectly divisible by the - // width, the remaining frames don't fit the last pixel and are - // past the visible area. lastVisibleFrame is the index number of - // the last visible frame. - const int visibleFrames = (fpp * w); - const int lastVisibleFrame = focusOnRange - ? fromFrame + visibleFrames - 1 - : visibleFrames - 1; - - for (double frame = first; frame <= last && frame <= lastVisibleFrame; frame += fpp) - { - float maxData = -1; - float minData = 1; - - auto rmsData = std::array{}; - - // Find maximum and minimum samples within range - for (int i = 0; i < fpp && frame + i <= last; ++i) - { - for (int j = 0; j < 2; ++j) - { - auto curData = m_data[static_cast(frame) + i][j]; - - if (curData > maxData) { maxData = curData; } - if (curData < minData) { minData = curData; } - - rmsData[j] += curData * curData; - } - } - - const float trueRmsData = (rmsData[0] + rmsData[1]) / 2 / fpp; - const float sqrtRmsData = sqrt(trueRmsData); - const float maxRmsData = std::clamp(sqrtRmsData, minData, maxData); - const float minRmsData = std::clamp(-sqrtRmsData, minData, maxData); - - // If nbFrames >= w, we can use curPixel to calculate X - // but if nbFrames < w, we need to calculate it proportionally - // to the total number of points - auto x = nbFrames >= w - ? xb + curPixel - : xb + ((static_cast(curPixel) / nbFrames) * w); - // Partial Y calculation - auto py = ySpace * m_amplification; - fEdgeMax[curPixel] = QPointF(x, (yb - (maxData * py))); - fEdgeMin[curPixel] = QPointF(x, (yb - (minData * py))); - fRmsMax[curPixel] = QPointF(x, (yb - (maxRmsData * py))); - fRmsMin[curPixel] = QPointF(x, (yb - (minRmsData * py))); - ++curPixel; - } - - for (int i = 0; i < totalPoints; ++i) - { - p.drawLine(fEdgeMax[i], fEdgeMin[i]); - } - - p.setPen(p.pen().color().lighter(123)); - - for (int i = 0; i < totalPoints; ++i) - { - p.drawLine(fRmsMax[i], fRmsMin[i]); - } -} - - - - -QString SampleBuffer::openAudioFile() const -{ - gui::FileDialog ofd(nullptr, tr("Open audio file")); - - QString dir; - if (!m_audioFile.isEmpty()) - { - QString f = m_audioFile; - if (QFileInfo(f).isRelative()) - { - f = ConfigManager::inst()->userSamplesDir() + f; - if (QFileInfo(f).exists() == false) - { - f = ConfigManager::inst()->factorySamplesDir() + - m_audioFile; - } - } - dir = QFileInfo(f).absolutePath(); - } - else - { - dir = ConfigManager::inst()->userSamplesDir(); - } - // change dir to position of previously opened file - ofd.setDirectory(dir); - ofd.setFileMode(gui::FileDialog::ExistingFiles); - - // set filters - QStringList types; - types << tr("All Audio-Files (*.wav *.ogg " -#ifdef LMMS_HAVE_SNDFILE_MP3 - "*.mp3 " -#endif - "*.ds *.flac *.spx *.voc " - "*.aif *.aiff *.au *.raw)") - << tr("Wave-Files (*.wav)") - << tr("OGG-Files (*.ogg)") -#ifdef LMMS_HAVE_SNDFILE_MP3 - << tr("MP3-Files (*.mp3)") -#endif - << tr("DrumSynth-Files (*.ds)") - << tr("FLAC-Files (*.flac)") - << tr("SPEEX-Files (*.spx)") - //<< tr("MIDI-Files (*.mid)") - << tr("VOC-Files (*.voc)") - << tr("AIFF-Files (*.aif *.aiff)") - << tr("AU-Files (*.au)") - << tr("RAW-Files (*.raw)") - //<< tr("MOD-Files (*.mod)") - ; - ofd.setNameFilters(types); - if (!m_audioFile.isEmpty()) - { - // select previously opened file - ofd.selectFile(QFileInfo(m_audioFile).fileName()); - } - - if (ofd.exec () == QDialog::Accepted) - { - if (ofd.selectedFiles().isEmpty()) - { - return QString(); - } - return PathUtil::toShortestRelative(ofd.selectedFiles()[0]); - } - - return QString(); -} - - - - -QString SampleBuffer::openAndSetAudioFile() -{ - QString fileName = this->openAudioFile(); - - if(!fileName.isEmpty()) - { - this->setAudioFile(fileName); - } - - return fileName; -} - - -QString SampleBuffer::openAndSetWaveformFile() -{ - if (m_audioFile.isEmpty()) - { - m_audioFile = ConfigManager::inst()->factorySamplesDir() + "waveforms/10saw.flac"; - } - - QString fileName = this->openAudioFile(); - - if (!fileName.isEmpty()) - { - this->setAudioFile(fileName); - } - else - { - m_audioFile = ""; - } - - return fileName; -} - - - -#undef LMMS_HAVE_FLAC_STREAM_ENCODER_H /* not yet... */ -#undef LMMS_HAVE_FLAC_STREAM_DECODER_H - -#ifdef LMMS_HAVE_FLAC_STREAM_ENCODER_H -FLAC__StreamEncoderWriteStatus flacStreamEncoderWriteCallback( - const FLAC__StreamEncoder * /*encoder*/, - const FLAC__byte buffer[], - unsigned int /*samples*/, - unsigned int bytes, - unsigned int /*currentFrame*/, - void * clientData -) -{ -/* if (bytes == 0) - { - return FLAC__STREAM_ENCODER_WRITE_STATUS_OK; - }*/ - return (static_cast(clientData)->write( - (const char *) buffer, bytes) == (int) bytes) - ? FLAC__STREAM_ENCODER_WRITE_STATUS_OK - : FLAC__STREAM_ENCODER_WRITE_STATUS_FATAL_ERROR; -} - - -void flacStreamEncoderMetadataCallback( - const FLAC__StreamEncoder *, - const FLAC__StreamMetadata * metadata, - void * clientData -) -{ - QBuffer * b = static_cast(clientData); - b->seek(0); - b->write((const char *) metadata, sizeof(*metadata)); -} - -#endif // LMMS_HAVE_FLAC_STREAM_ENCODER_H - - - -QString & SampleBuffer::toBase64(QString & dst) const -{ -#ifdef LMMS_HAVE_FLAC_STREAM_ENCODER_H - const f_cnt_t FRAMES_PER_BUF = 1152; - - FLAC__StreamEncoder * flacEnc = FLAC__stream_encoder_new(); - FLAC__stream_encoder_set_channels(flacEnc, DEFAULT_CHANNELS); - FLAC__stream_encoder_set_blocksize(flacEnc, FRAMES_PER_BUF); -/* FLAC__stream_encoder_set_do_exhaustive_model_search(flacEnc, true); - FLAC__stream_encoder_set_do_mid_side_stereo(flacEnc, true);*/ - FLAC__stream_encoder_set_sample_rate(flacEnc, - Engine::audioEngine()->sampleRate()); - - QBuffer baWriter; - baWriter.open(QBuffer::WriteOnly); - - FLAC__stream_encoder_set_write_callback(flacEnc, - flacStreamEncoderWriteCallback); - FLAC__stream_encoder_set_metadata_callback(flacEnc, - flacStreamEncoderMetadataCallback); - FLAC__stream_encoder_set_client_data(flacEnc, &baWriter); - - if (FLAC__stream_encoder_init(flacEnc) != FLAC__STREAM_ENCODER_OK) - { - printf("Error within FLAC__stream_encoder_init()!\n"); - } - - f_cnt_t frameCnt = 0; - - while (frameCnt < m_frames) - { - f_cnt_t remaining = std::min(FRAMES_PER_BUF, m_frames - frameCnt); - FLAC__int32 buf[FRAMES_PER_BUF * DEFAULT_CHANNELS]; - for (f_cnt_t f = 0; f < remaining; ++f) - { - for (ch_cnt_t ch = 0; ch < DEFAULT_CHANNELS; ++ch) - { - buf[f*DEFAULT_CHANNELS+ch] = (FLAC__int32)( - AudioEngine::clip(m_data[f+frameCnt][ch]) * - OUTPUT_SAMPLE_MULTIPLIER); - } - } - FLAC__stream_encoder_process_interleaved(flacEnc, buf, remaining); - frameCnt += remaining; - } - FLAC__stream_encoder_finish(flacEnc); - FLAC__stream_encoder_delete(flacEnc); - printf("%d %d\n", frameCnt, (int)baWriter.size()); - baWriter.close(); - - base64::encode(baWriter.buffer().data(), baWriter.buffer().size(), dst); - -#else // LMMS_HAVE_FLAC_STREAM_ENCODER_H - - base64::encode((const char *) m_data, - m_frames * sizeof(sampleFrame), dst); - -#endif // LMMS_HAVE_FLAC_STREAM_ENCODER_H - - return dst; -} - - - - -SampleBuffer * SampleBuffer::resample(const sample_rate_t srcSR, const sample_rate_t dstSR ) -{ - sampleFrame * data = m_data; - const f_cnt_t frames = m_frames; - const auto dstFrames = static_cast((frames / (float)srcSR) * (float)dstSR); - auto dstSB = new SampleBuffer(dstFrames); - sampleFrame * dstBuf = dstSB->m_origData; - - // yeah, libsamplerate, let's rock with sinc-interpolation! - int error; - SRC_STATE * state; - if ((state = src_new(SRC_SINC_MEDIUM_QUALITY, DEFAULT_CHANNELS, &error)) != nullptr) - { - SRC_DATA srcData; - srcData.end_of_input = 1; - srcData.data_in = data->data(); - srcData.data_out = dstBuf->data(); - srcData.input_frames = frames; - srcData.output_frames = dstFrames; - srcData.src_ratio = (double) dstSR / srcSR; - if ((error = src_process(state, &srcData))) - { - printf("SampleBuffer: error while resampling: %s\n", src_strerror(error)); - } - src_delete(state); - } - else - { - printf("Error: src_new() failed in SampleBuffer.cpp!\n"); - } - dstSB->update(); - return dstSB; -} - - - - -void SampleBuffer::setAudioFile(const QString & audioFile) -{ - m_audioFile = PathUtil::toShortestRelative(audioFile); - update(); -} - - - -#ifdef LMMS_HAVE_FLAC_STREAM_DECODER_H - -struct flacStreamDecoderClientData -{ - QBuffer * readBuffer; - QBuffer * writeBuffer; -} ; - - - -FLAC__StreamDecoderReadStatus flacStreamDecoderReadCallback( - const FLAC__StreamDecoder * /*decoder*/, - FLAC__byte * buffer, - unsigned int * bytes, - void * clientData -) -{ - int res = static_cast( - clientData)->readBuffer->read((char *) buffer, *bytes); - - if (res > 0) - { - *bytes = res; - return FLAC__STREAM_DECODER_READ_STATUS_CONTINUE; - } - - *bytes = 0; - return FLAC__STREAM_DECODER_READ_STATUS_END_OF_STREAM; -} - - - - -FLAC__StreamDecoderWriteStatus flacStreamDecoderWriteCallback( - const FLAC__StreamDecoder * /*decoder*/, - const FLAC__Frame * frame, - const FLAC__int32 * const buffer[], - void * clientData -) -{ - if (frame->header.channels != 2) - { - printf("channels != 2 in flacStreamDecoderWriteCallback()\n"); - return FLAC__STREAM_DECODER_WRITE_STATUS_ABORT; - } - - if (frame->header.bits_per_sample != 16) - { - printf("bits_per_sample != 16 in flacStreamDecoderWriteCallback()\n"); - return FLAC__STREAM_DECODER_WRITE_STATUS_ABORT; - } - - const f_cnt_t numberOfFrames = frame->header.blocksize; - for (f_cnt_t f = 0; f < numberOfFrames; ++f) - { - sampleFrame sframe = { buffer[0][f] / OUTPUT_SAMPLE_MULTIPLIER, - buffer[1][f] / OUTPUT_SAMPLE_MULTIPLIER - } ; - static_cast( - clientData )->writeBuffer->write( - (const char *) sframe, sizeof(sframe)); - } - return FLAC__STREAM_DECODER_WRITE_STATUS_CONTINUE; -} - - -void flacStreamDecoderMetadataCallback( - const FLAC__StreamDecoder *, - const FLAC__StreamMetadata *, - void * /*clientData*/ -) -{ - printf("stream decoder metadata callback\n"); -/* QBuffer * b = static_cast(clientData); - b->seek(0); - b->write((const char *) metadata, sizeof(*metadata));*/ -} - - -void flacStreamDecoderErrorCallback( - const FLAC__StreamDecoder *, - FLAC__StreamDecoderErrorStatus status, - void * /*clientData*/ -) -{ - printf("error callback! %d\n", status); - // what to do now?? -} - -#endif // LMMS_HAVE_FLAC_STREAM_DECODER_H - - -void SampleBuffer::loadFromBase64(const QString & data) -{ - char * dst = nullptr; - int dsize = 0; - base64::decode(data, &dst, &dsize); - -#ifdef LMMS_HAVE_FLAC_STREAM_DECODER_H - - QByteArray origData = QByteArray::fromRawData(dst, dsize); - QBuffer baReader(&origData); - baReader.open(QBuffer::ReadOnly); - - QBuffer baWriter; - baWriter.open(QBuffer::WriteOnly); - - flacStreamDecoderClientData cdata = { &baReader, &baWriter } ; - - FLAC__StreamDecoder * flacDec = FLAC__stream_decoder_new(); - - FLAC__stream_decoder_set_read_callback(flacDec, - flacStreamDecoderReadCallback); - FLAC__stream_decoder_set_write_callback(flacDec, - flacStreamDecoderWriteCallback); - FLAC__stream_decoder_set_error_callback(flacDec, - flacStreamDecoderErrorCallback); - FLAC__stream_decoder_set_metadata_callback(flacDec, - flacStreamDecoderMetadataCallback); - FLAC__stream_decoder_set_client_data(flacDec, &cdata); - - FLAC__stream_decoder_init(flacDec); - - FLAC__stream_decoder_process_until_end_of_stream(flacDec); - - FLAC__stream_decoder_finish(flacDec); - FLAC__stream_decoder_delete(flacDec); - - baReader.close(); - - origData = baWriter.buffer(); - printf("%d\n", (int) origData.size()); - - m_origFrames = origData.size() / sizeof(sampleFrame); - MM_FREE(m_origData); - m_origData = MM_ALLOC( m_origFrames); - memcpy(m_origData, origData.data(), origData.size()); - -#else /* LMMS_HAVE_FLAC_STREAM_DECODER_H */ - - m_origFrames = dsize / sizeof(sampleFrame); - MM_FREE(m_origData); - m_origData = MM_ALLOC( m_origFrames); - memcpy(m_origData, dst, dsize); - -#endif // LMMS_HAVE_FLAC_STREAM_DECODER_H - - delete[] dst; - - m_audioFile = QString(); - update(); -} - - - - -void SampleBuffer::setStartFrame(const f_cnt_t s) -{ - m_startFrame = s; -} - - - - -void SampleBuffer::setEndFrame(const f_cnt_t e) -{ - m_endFrame = e; -} - - - - -void SampleBuffer::setAmplification(float a) -{ - m_amplification = a; - emit sampleUpdated(); -} - - - - -void SampleBuffer::setReversed(bool on) -{ - Engine::audioEngine()->requestChangeInModel(); - m_varLock.lockForWrite(); - if (m_reversed != on) { std::reverse(m_data, m_data + m_frames); } - m_reversed = on; - m_varLock.unlock(); - Engine::audioEngine()->doneChangeInModel(); - emit sampleUpdated(); -} - - - - - -SampleBuffer::handleState::handleState(bool varyingPitch, int interpolationMode) : - m_frameIndex(0), - m_varyingPitch(varyingPitch), - m_isBackwards(false) -{ - int error; - m_interpolationMode = interpolationMode; - - if ((m_resamplingData = src_new(interpolationMode, DEFAULT_CHANNELS, &error)) == nullptr) - { - qDebug("Error: src_new() failed in SampleBuffer.cpp!\n"); - } -} - - - - -SampleBuffer::handleState::~handleState() +auto SampleBuffer::emptyBuffer() -> std::shared_ptr { - src_delete(m_resamplingData); + static auto s_buffer = std::make_shared(); + return s_buffer; } } // namespace lmms diff --git a/src/core/SampleClip.cpp b/src/core/SampleClip.cpp index b09d7b3bb2b..5ef001e20d1 100644 --- a/src/core/SampleClip.cpp +++ b/src/core/SampleClip.cpp @@ -25,21 +25,22 @@ #include "SampleClip.h" #include +#include +#include "PathUtil.h" #include "SampleBuffer.h" #include "SampleClipView.h" +#include "SampleLoader.h" #include "SampleTrack.h" #include "TimeLineWidget.h" - namespace lmms { - -SampleClip::SampleClip( Track * _track ) : - Clip( _track ), - m_sampleBuffer( new SampleBuffer ), - m_isPlaying( false ) +SampleClip::SampleClip(Track* _track, Sample sample, bool isPlaying) + : Clip(_track) + , m_sample(std::move(sample)) + , m_isPlaying(false) { saveJournallingState( false ); setSampleFile( "" ); @@ -52,16 +53,10 @@ SampleClip::SampleClip( Track * _track ) : connect( Engine::getSong(), SIGNAL(timeSignatureChanged(int,int)), this, SLOT(updateLength())); - //care about positionmarker - gui::TimeLineWidget* timeLine = Engine::getSong()->getPlayPos( Song::PlayMode::Song ).m_timeLine; - if( timeLine ) - { - connect( timeLine, SIGNAL(positionMarkerMoved()), this, SLOT(playbackPositionChanged())); - } //playbutton clicked or space key / on Export Song set isPlaying to false connect( Engine::getSong(), SIGNAL(playbackStateChanged()), this, SLOT(playbackPositionChanged()), Qt::DirectConnection ); - //care about loops + //care about loops and jumps connect( Engine::getSong(), SIGNAL(updateSampleTracks()), this, SLOT(playbackPositionChanged()), Qt::DirectConnection ); //care about mute Clips @@ -87,14 +82,14 @@ SampleClip::SampleClip( Track * _track ) : updateTrackClips(); } +SampleClip::SampleClip(Track* track) + : SampleClip(track, Sample(), false) +{ +} + SampleClip::SampleClip(const SampleClip& orig) : - SampleClip(orig.getTrack()) + SampleClip(orig.getTrack(), orig.m_sample, orig.m_isPlaying) { - // TODO: This creates a new SampleBuffer for the new Clip, eating up memory - // & eventually causing performance issues. Letting tracks share buffers - // when they're identical would fix this, but isn't possible right now. - *m_sampleBuffer = *orig.m_sampleBuffer; - m_isPlaying = orig.m_isPlaying; } @@ -107,9 +102,6 @@ SampleClip::~SampleClip() { sampletrack->updateClips(); } - Engine::audioEngine()->requestChangeInModel(); - sharedObject::unref( m_sampleBuffer ); - Engine::audioEngine()->doneChangeInModel(); } @@ -120,36 +112,45 @@ void SampleClip::changeLength( const TimePos & _length ) Clip::changeLength(std::max(static_cast(_length), 1)); } +void SampleClip::changeLengthToSampleLength() +{ + int length = m_sample.sampleSize() / Engine::framesPerTick(); + changeLength(length); +} -const QString & SampleClip::sampleFile() const +const QString& SampleClip::sampleFile() const { - return m_sampleBuffer->audioFile(); + return m_sample.sampleFile(); } +bool SampleClip::hasSampleFileLoaded(const QString & filename) const +{ + return m_sample.sampleFile() == filename; +} - -void SampleClip::setSampleBuffer( SampleBuffer* sb ) +void SampleClip::setSampleBuffer(std::shared_ptr sb) { - Engine::audioEngine()->requestChangeInModel(); - sharedObject::unref( m_sampleBuffer ); - Engine::audioEngine()->doneChangeInModel(); - m_sampleBuffer = sb; + { + const auto guard = Engine::audioEngine()->requestChangesGuard(); + m_sample = Sample(std::move(sb)); + } updateLength(); emit sampleChanged(); -} - + Engine::getSong()->setModified(); +} -void SampleClip::setSampleFile(const QString & sf) +void SampleClip::setSampleFile(const QString& sf) { int length = 0; if (!sf.isEmpty()) { - m_sampleBuffer->setAudioFile(sf); + //Otherwise set it to the sample's length + m_sample = Sample(gui::SampleLoader::createBufferFromFile(sf)); length = sampleLength(); } @@ -221,6 +222,8 @@ void SampleClip::setIsPlaying(bool isPlaying) void SampleClip::updateLength() { emit sampleChanged(); + + Engine::getSong()->setModified(); } @@ -228,7 +231,7 @@ void SampleClip::updateLength() TimePos SampleClip::sampleLength() const { - return (int)( m_sampleBuffer->frames() / Engine::framesPerTick() ); + return static_cast(m_sample.sampleSize() / Engine::framesPerTick(m_sample.sampleRate())); } @@ -236,7 +239,7 @@ TimePos SampleClip::sampleLength() const void SampleClip::setSampleStartFrame(f_cnt_t startFrame) { - m_sampleBuffer->setStartFrame( startFrame ); + m_sample.setStartFrame(startFrame); } @@ -244,7 +247,7 @@ void SampleClip::setSampleStartFrame(f_cnt_t startFrame) void SampleClip::setSamplePlayLength(f_cnt_t length) { - m_sampleBuffer->setEndFrame( length ); + m_sample.setEndFrame(length); } @@ -267,15 +270,15 @@ void SampleClip::saveSettings( QDomDocument & _doc, QDomElement & _this ) if( sampleFile() == "" ) { QString s; - _this.setAttribute( "data", m_sampleBuffer->toBase64( s ) ); + _this.setAttribute("data", m_sample.toBase64()); } - _this.setAttribute( "sample_rate", m_sampleBuffer->sampleRate()); - if( usesCustomClipColor() ) + _this.setAttribute( "sample_rate", m_sample.sampleRate()); + if (const auto& c = color()) { - _this.setAttribute( "color", color().name() ); + _this.setAttribute("color", c->name()); } - if (m_sampleBuffer->reversed()) + if (m_sample.reversed()) { _this.setAttribute("reversed", "true"); } @@ -291,32 +294,36 @@ void SampleClip::loadSettings( const QDomElement & _this ) { movePosition( _this.attribute( "pos" ).toInt() ); } - setSampleFile( _this.attribute( "src" ) ); - if( sampleFile().isEmpty() && _this.hasAttribute( "data" ) ) + + if (const auto srcFile = _this.attribute("src"); !srcFile.isEmpty()) { - m_sampleBuffer->loadFromBase64( _this.attribute( "data" ) ); - if (_this.hasAttribute("sample_rate")) + if (QFileInfo(PathUtil::toAbsolute(srcFile)).exists()) { - m_sampleBuffer->setSampleRate(_this.attribute("sample_rate").toInt()); + setSampleFile(srcFile); } + else { Engine::getSong()->collectError(QString("%1: %2").arg(tr("Sample not found"), srcFile)); } + } + + if( sampleFile().isEmpty() && _this.hasAttribute( "data" ) ) + { + auto sampleRate = _this.hasAttribute("sample_rate") ? _this.attribute("sample_rate").toInt() : + Engine::audioEngine()->outputSampleRate(); + + auto buffer = gui::SampleLoader::createBufferFromBase64(_this.attribute("data"), sampleRate); + m_sample = Sample(std::move(buffer)); } changeLength( _this.attribute( "len" ).toInt() ); setMuted( _this.attribute( "muted" ).toInt() ); setStartTimeOffset( _this.attribute( "off" ).toInt() ); - if( _this.hasAttribute( "color" ) ) - { - useCustomClipColor( true ); - setColor( _this.attribute( "color" ) ); - } - else + if (_this.hasAttribute("color")) { - useCustomClipColor(false); + setColor(QColor{_this.attribute("color")}); } if(_this.hasAttribute("reversed")) { - m_sampleBuffer->setReversed(true); + m_sample.setReversed(true); emit wasReversed(); // tell SampleClipView to update the view } } diff --git a/src/core/SampleDecoder.cpp b/src/core/SampleDecoder.cpp new file mode 100644 index 00000000000..d3ee091f42a --- /dev/null +++ b/src/core/SampleDecoder.cpp @@ -0,0 +1,236 @@ +/* + * SampleDecoder.cpp - Decodes audio files in various formats + * + * Copyright (c) 2023 saker + * + * This file is part of LMMS - https://lmms.io + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#include "SampleDecoder.h" + +#include +#include +#include +#include +#include + +#ifdef LMMS_HAVE_OGGVORBIS +#include +#endif + +#include "AudioEngine.h" +#include "DrumSynth.h" +#include "Engine.h" +#include "lmms_basics.h" + +namespace lmms { + +namespace { + +using Decoder = std::optional (*)(const QString&); + +auto decodeSampleSF(const QString& audioFile) -> std::optional; +auto decodeSampleDS(const QString& audioFile) -> std::optional; +#ifdef LMMS_HAVE_OGGVORBIS +auto decodeSampleOggVorbis(const QString& audioFile) -> std::optional; +#endif + +static constexpr std::array decoders = {&decodeSampleSF, +#ifdef LMMS_HAVE_OGGVORBIS + &decodeSampleOggVorbis, +#endif + &decodeSampleDS}; + +auto decodeSampleSF(const QString& audioFile) -> std::optional +{ + SNDFILE* sndFile = nullptr; + auto sfInfo = SF_INFO{}; + + // TODO: Remove use of QFile + auto file = QFile{audioFile}; + if (!file.open(QIODevice::ReadOnly)) { return std::nullopt; } + + sndFile = sf_open_fd(file.handle(), SFM_READ, &sfInfo, false); + if (sf_error(sndFile) != 0) { return std::nullopt; } + + auto buf = std::vector(sfInfo.channels * sfInfo.frames); + sf_read_float(sndFile, buf.data(), buf.size()); + + sf_close(sndFile); + file.close(); + + auto result = std::vector(sfInfo.frames); + for (int i = 0; i < static_cast(result.size()); ++i) + { + if (sfInfo.channels == 1) + { + // Upmix from mono to stereo + result[i] = {buf[i], buf[i]}; + } + else if (sfInfo.channels > 1) + { + // TODO: Add support for higher number of channels (i.e., 5.1 channel systems) + // The current behavior assumes stereo in all cases excluding mono. + // This may not be the expected behavior, given some audio files with a higher number of channels. + result[i] = {buf[i * sfInfo.channels], buf[i * sfInfo.channels + 1]}; + } + } + + return SampleDecoder::Result{std::move(result), static_cast(sfInfo.samplerate)}; +} + +auto decodeSampleDS(const QString& audioFile) -> std::optional +{ + // Populated by DrumSynth::GetDSFileSamples + int_sample_t* dataPtr = nullptr; + + auto ds = DrumSynth{}; + const auto engineRate = Engine::audioEngine()->outputSampleRate(); + const auto frames = ds.GetDSFileSamples(audioFile, dataPtr, DEFAULT_CHANNELS, engineRate); + const auto data = std::unique_ptr{dataPtr}; // NOLINT, we have to use a C-style array here + + if (frames <= 0 || !data) { return std::nullopt; } + + auto result = std::vector(frames); + src_short_to_float_array(data.get(), &result[0][0], frames * DEFAULT_CHANNELS); + + return SampleDecoder::Result{std::move(result), static_cast(engineRate)}; +} + +#ifdef LMMS_HAVE_OGGVORBIS +auto decodeSampleOggVorbis(const QString& audioFile) -> std::optional +{ + static auto s_read = [](void* buffer, size_t size, size_t count, void* stream) -> size_t { + auto file = static_cast(stream); + return file->read(static_cast(buffer), size * count); + }; + + static auto s_seek = [](void* stream, ogg_int64_t offset, int whence) -> int { + auto file = static_cast(stream); + if (whence == SEEK_SET) { file->seek(offset); } + else if (whence == SEEK_CUR) { file->seek(file->pos() + offset); } + else if (whence == SEEK_END) { file->seek(file->size() + offset); } + else { return -1; } + return 0; + }; + + static auto s_close = [](void* stream) -> int { + auto file = static_cast(stream); + file->close(); + return 0; + }; + + static auto s_tell = [](void* stream) -> long { + auto file = static_cast(stream); + return file->pos(); + }; + + static ov_callbacks s_callbacks = {s_read, s_seek, s_close, s_tell}; + + // TODO: Remove use of QFile + auto file = QFile{audioFile}; + if (!file.open(QIODevice::ReadOnly)) { return std::nullopt; } + + auto vorbisFile = OggVorbis_File{}; + if (ov_open_callbacks(&file, &vorbisFile, nullptr, 0, s_callbacks) < 0) { return std::nullopt; } + + const auto vorbisInfo = ov_info(&vorbisFile, -1); + if (vorbisInfo == nullptr) { return std::nullopt; } + + const auto numChannels = vorbisInfo->channels; + const auto sampleRate = vorbisInfo->rate; + const auto numSamples = ov_pcm_total(&vorbisFile, -1); + if (numSamples < 0) { return std::nullopt; } + + auto buffer = std::vector(numSamples); + auto output = static_cast(nullptr); + + auto totalSamplesRead = 0; + while (true) + { + auto samplesRead = ov_read_float(&vorbisFile, &output, numSamples, 0); + + if (samplesRead < 0) { return std::nullopt; } + else if (samplesRead == 0) { break; } + + std::copy_n(*output, samplesRead, buffer.begin() + totalSamplesRead); + totalSamplesRead += samplesRead; + } + + auto result = std::vector(totalSamplesRead / numChannels); + for (auto i = std::size_t{0}; i < result.size(); ++i) + { + if (numChannels == 1) { result[i] = {buffer[i], buffer[i]}; } + else if (numChannels > 1) { result[i] = {buffer[i * numChannels], buffer[i * numChannels + 1]}; } + } + + ov_clear(&vorbisFile); + return SampleDecoder::Result{std::move(result), static_cast(sampleRate)}; +} +#endif // LMMS_HAVE_OGGVORBIS +} // namespace + +auto SampleDecoder::supportedAudioTypes() -> const std::vector& +{ + static const auto s_audioTypes = [] { + auto types = std::vector(); + + // Add DrumSynth by default since that support comes from us + types.push_back(AudioType{"DrumSynth", "ds"}); + + auto sfFormatInfo = SF_FORMAT_INFO{}; + auto simpleTypeCount = 0; + sf_command(nullptr, SFC_GET_SIMPLE_FORMAT_COUNT, &simpleTypeCount, sizeof(int)); + + // TODO: Ideally, this code should be iterating over the major formats, but some important extensions such as + // *.ogg are not included. This is planned for future versions of sndfile. + for (int simple = 0; simple < simpleTypeCount; ++simple) + { + sfFormatInfo.format = simple; + sf_command(nullptr, SFC_GET_SIMPLE_FORMAT, &sfFormatInfo, sizeof(sfFormatInfo)); + + auto it = std::find_if(types.begin(), types.end(), + [&](const AudioType& type) { return sfFormatInfo.extension == type.extension; }); + if (it != types.end()) { continue; } + + auto name = std::string{sfFormatInfo.extension}; + std::transform(name.begin(), name.end(), name.begin(), [](unsigned char ch) { return std::toupper(ch); }); + + types.push_back(AudioType{std::move(name), sfFormatInfo.extension}); + } + + std::sort(types.begin(), types.end(), [&](const AudioType& a, const AudioType& b) { return a.name < b.name; }); + return types; + }(); + return s_audioTypes; +} + +auto SampleDecoder::decode(const QString& audioFile) -> std::optional +{ + auto result = std::optional{}; + for (const auto& decoder : decoders) + { + result = decoder(audioFile); + if (result) { break; } + } + + return result; +} + +} // namespace lmms diff --git a/src/core/SamplePlayHandle.cpp b/src/core/SamplePlayHandle.cpp index ea27146cb07..f2ddc2a4a04 100644 --- a/src/core/SamplePlayHandle.cpp +++ b/src/core/SamplePlayHandle.cpp @@ -35,9 +35,9 @@ namespace lmms { -SamplePlayHandle::SamplePlayHandle( SampleBuffer* sampleBuffer , bool ownAudioPort ) : +SamplePlayHandle::SamplePlayHandle(Sample* sample, bool ownAudioPort) : PlayHandle( Type::SamplePlayHandle ), - m_sampleBuffer( sharedObject::ref( sampleBuffer ) ), + m_sample(sample), m_doneMayReturnTrue( true ), m_frame( 0 ), m_ownAudioPort( ownAudioPort ), @@ -56,16 +56,15 @@ SamplePlayHandle::SamplePlayHandle( SampleBuffer* sampleBuffer , bool ownAudioPo SamplePlayHandle::SamplePlayHandle( const QString& sampleFile ) : - SamplePlayHandle( new SampleBuffer( sampleFile ) , true) + SamplePlayHandle(new Sample(sampleFile), true) { - sharedObject::unref( m_sampleBuffer ); } SamplePlayHandle::SamplePlayHandle( SampleClip* clip ) : - SamplePlayHandle( clip->sampleBuffer() , false) + SamplePlayHandle(&clip->sample(), false) { m_track = clip->getTrack(); setAudioPort( ( (SampleTrack *)clip->getTrack() )->audioPort() ); @@ -76,33 +75,33 @@ SamplePlayHandle::SamplePlayHandle( SampleClip* clip ) : SamplePlayHandle::~SamplePlayHandle() { - sharedObject::unref( m_sampleBuffer ); if( m_ownAudioPort ) { delete audioPort(); + delete m_sample; } } -void SamplePlayHandle::play( sampleFrame * buffer ) +void SamplePlayHandle::play( SampleFrame* buffer ) { const fpp_t fpp = Engine::audioEngine()->framesPerPeriod(); //play( 0, _try_parallelizing ); if( framesDone() >= totalFrames() ) { - memset( buffer, 0, sizeof( sampleFrame ) * fpp ); + zeroSampleFrames(buffer, fpp); return; } - sampleFrame * workingBuffer = buffer; + SampleFrame* workingBuffer = buffer; f_cnt_t frames = fpp; // apply offset for the first period if( framesDone() == 0 ) { - memset( buffer, 0, sizeof( sampleFrame ) * offset() ); + zeroSampleFrames(buffer, offset()); workingBuffer += offset(); frames -= offset(); } @@ -115,9 +114,9 @@ void SamplePlayHandle::play( sampleFrame * buffer ) m_volumeModel->value() / DefaultVolume } };*/ // SamplePlayHandle always plays the sample at its original pitch; // it is used only for previews, SampleTracks and the metronome. - if (!m_sampleBuffer->play(workingBuffer, &m_state, frames, DefaultBaseFreq)) + if (!m_sample->play(workingBuffer, &m_state, frames, DefaultBaseFreq)) { - memset(workingBuffer, 0, frames * sizeof(sampleFrame)); + zeroSampleFrames(workingBuffer, frames); } } @@ -145,8 +144,8 @@ bool SamplePlayHandle::isFromTrack( const Track * _track ) const f_cnt_t SamplePlayHandle::totalFrames() const { - return ( m_sampleBuffer->endFrame() - m_sampleBuffer->startFrame() ) * - ( Engine::audioEngine()->processingSampleRate() / m_sampleBuffer->sampleRate() ); + return (m_sample->endFrame() - m_sample->startFrame()) * + (static_cast(Engine::audioEngine()->outputSampleRate()) / m_sample->sampleRate()); } diff --git a/src/core/SampleRecordHandle.cpp b/src/core/SampleRecordHandle.cpp index 10e970b8f3e..f7003f3beff 100644 --- a/src/core/SampleRecordHandle.cpp +++ b/src/core/SampleRecordHandle.cpp @@ -51,13 +51,8 @@ SampleRecordHandle::SampleRecordHandle( SampleClip* clip ) : SampleRecordHandle::~SampleRecordHandle() { - if( !m_buffers.empty() ) - { - SampleBuffer* sb; - createSampleBuffer( &sb ); - m_clip->setSampleBuffer( sb ); - } - + if (!m_buffers.empty()) { m_clip->setSampleBuffer(createSampleBuffer()); } + while( !m_buffers.empty() ) { delete[] m_buffers.front().first; @@ -69,9 +64,9 @@ SampleRecordHandle::~SampleRecordHandle() -void SampleRecordHandle::play( sampleFrame * /*_working_buffer*/ ) +void SampleRecordHandle::play( SampleFrame* /*_working_buffer*/ ) { - const sampleFrame * recbuf = Engine::audioEngine()->inputBuffer(); + const SampleFrame* recbuf = Engine::audioEngine()->inputBuffer(); const f_cnt_t frames = Engine::audioEngine()->inputBufferFrames(); writeBuffer( recbuf, frames ); m_framesRecorded += frames; @@ -111,36 +106,30 @@ f_cnt_t SampleRecordHandle::framesRecorded() const -void SampleRecordHandle::createSampleBuffer( SampleBuffer** sampleBuf ) +std::shared_ptr SampleRecordHandle::createSampleBuffer() { const f_cnt_t frames = framesRecorded(); // create buffer to store all recorded buffers in - auto data = new sampleFrame[frames]; - // make sure buffer is cleaned up properly at the end... - sampleFrame * data_ptr = data; - - - assert( data != nullptr ); + auto bigBuffer = std::vector(frames); // now copy all buffers into big buffer - for( bufferList::const_iterator it = m_buffers.begin(); it != m_buffers.end(); ++it ) + auto framesCopied = 0; + for (const auto& [buf, numFrames] : m_buffers) { - memcpy( data_ptr, ( *it ).first, ( *it ).second * - sizeof( sampleFrame ) ); - data_ptr += ( *it ).second; + std::copy_n(buf, numFrames, bigBuffer.begin() + framesCopied); + framesCopied += numFrames; } + // create according sample-buffer out of big buffer - *sampleBuf = new SampleBuffer( data, frames ); - ( *sampleBuf)->setSampleRate( Engine::audioEngine()->inputSampleRate() ); - delete[] data; + return std::make_shared(std::move(bigBuffer), Engine::audioEngine()->inputSampleRate()); } -void SampleRecordHandle::writeBuffer( const sampleFrame * _ab, const f_cnt_t _frames ) +void SampleRecordHandle::writeBuffer( const SampleFrame* _ab, const f_cnt_t _frames ) { - auto buf = new sampleFrame[_frames]; + auto buf = new SampleFrame[_frames]; for( f_cnt_t frame = 0; frame < _frames; ++frame ) { for( ch_cnt_t chnl = 0; chnl < DEFAULT_CHANNELS; ++chnl ) diff --git a/src/core/Scale.cpp b/src/core/Scale.cpp index df0effe6bca..93279f2bcba 100644 --- a/src/core/Scale.cpp +++ b/src/core/Scale.cpp @@ -116,7 +116,7 @@ void Scale::loadSettings(const QDomElement &element) QDomNode node = element.firstChild(); m_intervals.clear(); - for (int i = 0; !node.isNull(); i++) + while (!node.isNull()) { Interval temp; temp.restoreState(node.toElement()); diff --git a/src/core/Song.cpp b/src/core/Song.cpp index 3a735331c64..4e6bf6f583d 100644 --- a/src/core/Song.cpp +++ b/src/core/Song.cpp @@ -184,14 +184,9 @@ void Song::setTimeSignature() -void Song::savePos() +void Song::savePlayStartPosition() { - gui::TimeLineWidget* tl = getPlayPos().m_timeLine; - - if( tl != nullptr ) - { - tl->savePos( getPlayPos() ); - } + getTimeline().setPlayStartPosition(getPlayPos()); } @@ -240,9 +235,6 @@ void Song::processNextBuffer() return; } - // If we have no tracks to play, there is nothing to do - if (trackList.empty()) { return; } - // If the playback position is outside of the range [begin, end), move it to // begin and inform interested parties. // Returns true if the playback position was moved, else false. @@ -258,16 +250,17 @@ void Song::processNextBuffer() return false; }; - const auto timeline = getPlayPos().m_timeLine; - const auto loopEnabled = !m_exporting && timeline && timeline->loopPointsEnabled(); + const auto& timeline = getTimeline(); + const auto loopEnabled = !m_exporting && timeline.loopEnabled(); // Ensure playback begins within the loop if it is enabled - if (loopEnabled) { enforceLoop(timeline->loopBegin(), timeline->loopEnd()); } + if (loopEnabled) { enforceLoop(timeline.loopBegin(), timeline.loopEnd()); } - // Inform VST plugins if the user moved the play head + // Inform VST plugins and sample tracks if the user moved the play head if (getPlayPos().jumped()) { m_vstSyncController.setPlaybackJumped(true); + emit updateSampleTracks(); getPlayPos().setJumped(false); } @@ -301,13 +294,13 @@ void Song::processNextBuffer() } // Handle loop points, and inform VST plugins of the loop status - if (loopEnabled || (m_loopRenderRemaining > 1 && getPlayPos() >= timeline->loopBegin())) + if (loopEnabled || (m_loopRenderRemaining > 1 && getPlayPos() >= timeline.loopBegin())) { m_vstSyncController.startCycle( - timeline->loopBegin().getTicks(), timeline->loopEnd().getTicks()); + timeline.loopBegin().getTicks(), timeline.loopEnd().getTicks()); // Loop if necessary, and decrement the remaining loops if we did - if (enforceLoop(timeline->loopBegin(), timeline->loopEnd()) + if (enforceLoop(timeline.loopBegin(), timeline.loopEnd()) && m_loopRenderRemaining > 1) { m_loopRenderRemaining--; @@ -339,6 +332,8 @@ void Song::processNextBuffer() { // First frame of tick: process automation and play tracks processAutomations(trackList, getPlayPos(), framesToPlay); + processMetronome(frameOffsetInPeriod); + for (const auto track : trackList) { track->play(getPlayPos(), framesToPlay, frameOffsetInPeriod, clipNum); @@ -433,6 +428,17 @@ void Song::processAutomations(const TrackList &tracklist, TimePos timeStart, fpp } } +void Song::processMetronome(size_t bufferOffset) +{ + const auto currentPlayMode = playMode(); + const auto supported = currentPlayMode == PlayMode::MidiClip + || currentPlayMode == PlayMode::Song + || currentPlayMode == PlayMode::Pattern; + + if (!supported || m_exporting) { return; } + m_metronome.processTick(currentTick(), ticksPerBar(), m_timeSigModel.getNumerator(), bufferOffset); +} + void Song::setModified(bool value) { if( !m_loadingProject && m_modified != value) @@ -492,7 +498,7 @@ void Song::playSong() m_vstSyncController.setPlaybackState( true ); - savePos(); + savePlayStartPosition(); emit playbackStateChanged(); } @@ -531,7 +537,7 @@ void Song::playPattern() m_vstSyncController.setPlaybackState( true ); - savePos(); + savePlayStartPosition(); emit playbackStateChanged(); } @@ -556,7 +562,7 @@ void Song::playMidiClip( const MidiClip* midiClipToPlay, bool loop ) m_paused = false; } - savePos(); + savePlayStartPosition(); emit playbackStateChanged(); } @@ -566,6 +572,8 @@ void Song::playMidiClip( const MidiClip* midiClipToPlay, bool loop ) void Song::updateLength() { + if (m_loadingProject) { return; } + m_length = 0; m_tracksMutex.lockForRead(); for (auto track : tracks()) @@ -644,39 +652,31 @@ void Song::stop() // To avoid race conditions with the processing threads Engine::audioEngine()->requestChangeInModel(); - TimeLineWidget * tl = getPlayPos().m_timeLine; + auto& timeline = getTimeline(); m_paused = false; m_recording = true; + m_playing = false; - if( tl ) + switch (timeline.stopBehaviour()) { - switch( tl->behaviourAtStop() ) - { - case TimeLineWidget::BehaviourAtStopState::BackToZero: - getPlayPos().setTicks(0); - m_elapsedMilliSeconds[static_cast(m_playMode)] = 0; - break; + case Timeline::StopBehaviour::BackToZero: + getPlayPos().setTicks(0); + m_elapsedMilliSeconds[static_cast(m_playMode)] = 0; + break; - case TimeLineWidget::BehaviourAtStopState::BackToStart: - if( tl->savedPos() >= 0 ) - { - getPlayPos().setTicks(tl->savedPos().getTicks()); - setToTime(tl->savedPos()); + case Timeline::StopBehaviour::BackToStart: + if (timeline.playStartPosition() >= 0) + { + getPlayPos().setTicks(timeline.playStartPosition().getTicks()); + setToTime(timeline.playStartPosition()); - tl->savePos( -1 ); - } - break; + timeline.setPlayStartPosition(-1); + } + break; - case TimeLineWidget::BehaviourAtStopState::KeepStopPosition: - break; - } - } - else - { - getPlayPos().setTicks( 0 ); - m_elapsedMilliSeconds[static_cast(m_playMode)] = 0; + case Timeline::StopBehaviour::KeepPosition: + break; } - m_playing = false; m_elapsedMilliSeconds[static_cast(PlayMode::None)] = m_elapsedMilliSeconds[static_cast(m_playMode)]; getPlayPos(PlayMode::None).setTicks(getPlayPos().getTicks()); @@ -719,37 +719,35 @@ void Song::startExport() m_exporting = true; updateLength(); + const auto& timeline = getTimeline(PlayMode::Song); + if (m_renderBetweenMarkers) { - m_exportSongBegin = m_exportLoopBegin = getPlayPos(PlayMode::Song).m_timeLine->loopBegin(); - m_exportSongEnd = m_exportLoopEnd = getPlayPos(PlayMode::Song).m_timeLine->loopEnd(); + m_exportSongBegin = m_exportLoopBegin = timeline.loopBegin(); + m_exportSongEnd = m_exportLoopEnd = timeline.loopEnd(); - getPlayPos(PlayMode::Song).setTicks( getPlayPos(PlayMode::Song).m_timeLine->loopBegin().getTicks() ); + getPlayPos(PlayMode::Song).setTicks(timeline.loopBegin().getTicks()); } else { m_exportSongEnd = TimePos(m_length, 0); // Handle potentially ridiculous loop points gracefully. - if (m_loopRenderCount > 1 && getPlayPos(PlayMode::Song).m_timeLine->loopEnd() > m_exportSongEnd) + if (m_loopRenderCount > 1 && timeline.loopEnd() > m_exportSongEnd) { - m_exportSongEnd = getPlayPos(PlayMode::Song).m_timeLine->loopEnd(); + m_exportSongEnd = timeline.loopEnd(); } if (!m_exportLoop) m_exportSongEnd += TimePos(1,0); m_exportSongBegin = TimePos(0,0); - // FIXME: remove this check once we load timeline in headless mode - if (getPlayPos(PlayMode::Song).m_timeLine) - { - m_exportLoopBegin = getPlayPos(PlayMode::Song).m_timeLine->loopBegin() < m_exportSongEnd && - getPlayPos(PlayMode::Song).m_timeLine->loopEnd() <= m_exportSongEnd ? - getPlayPos(PlayMode::Song).m_timeLine->loopBegin() : TimePos(0,0); - m_exportLoopEnd = getPlayPos(PlayMode::Song).m_timeLine->loopBegin() < m_exportSongEnd && - getPlayPos(PlayMode::Song).m_timeLine->loopEnd() <= m_exportSongEnd ? - getPlayPos(PlayMode::Song).m_timeLine->loopEnd() : TimePos(0,0); - } + m_exportLoopBegin = timeline.loopBegin() < m_exportSongEnd && timeline.loopEnd() <= m_exportSongEnd + ? timeline.loopBegin() + : TimePos{0}; + m_exportLoopEnd = timeline.loopBegin() < m_exportSongEnd && timeline.loopEnd() <= m_exportSongEnd + ? timeline.loopEnd() + : TimePos{0}; getPlayPos(PlayMode::Song).setTicks( 0 ); } @@ -859,7 +857,7 @@ void Song::clearProject() stop(); } - for( int i = 0; i < PlayModeCount; i++ ) + for (auto i = std::size_t{0}; i < PlayModeCount; i++) { setPlayPos( 0, ( PlayMode )i ); } @@ -959,13 +957,12 @@ void Song::createNewProject() m_oldFileName = ""; setProjectFileName(""); - Track * t; - t = Track::create( Track::Type::Instrument, this ); - dynamic_cast( t )->loadInstrument( - "tripleoscillator" ); - t = Track::create(Track::Type::Instrument, Engine::patternStore()); - dynamic_cast( t )->loadInstrument( - "kicker" ); + auto tripleOscTrack = Track::create(Track::Type::Instrument, this); + dynamic_cast(tripleOscTrack)->loadInstrument("tripleoscillator"); + + auto kickerTrack = Track::create(Track::Type::Instrument, Engine::patternStore()); + dynamic_cast(kickerTrack)->loadInstrument("kicker"); + Track::create( Track::Type::Sample, this ); Track::create( Track::Type::Pattern, this ); Track::create( Track::Type::Automation, this ); @@ -978,7 +975,7 @@ void Song::createNewProject() QCoreApplication::instance()->processEvents(); m_loadingProject = false; - + updateLength(); Engine::patternStore()->updateAfterTrackAdd(); Engine::projectJournal()->setJournalling( true ); @@ -1080,11 +1077,7 @@ void Song::loadProject( const QString & fileName ) m_masterVolumeModel.loadSettings( dataFile.head(), "mastervol" ); m_masterPitchModel.loadSettings( dataFile.head(), "masterpitch" ); - if( getPlayPos(PlayMode::Song).m_timeLine ) - { - // reset loop-point-state - getPlayPos(PlayMode::Song).m_timeLine->toggleLoopPoints( 0 ); - } + getTimeline(PlayMode::Song).setLoopEnabled(false); if( !dataFile.content().firstChildElement( "track" ).isNull() ) { @@ -1167,9 +1160,9 @@ void Song::loadProject( const QString & fileName ) { getGUI()->getProjectNotes()->SerializingObject::restoreState( node.toElement() ); } - else if( node.nodeName() == getPlayPos(PlayMode::Song).m_timeLine->nodeName() ) + else if (node.nodeName() == getTimeline(PlayMode::Song).nodeName()) { - getPlayPos(PlayMode::Song).m_timeLine->restoreState( node.toElement() ); + getTimeline(PlayMode::Song).restoreState(node.toElement()); } } } @@ -1225,6 +1218,7 @@ void Song::loadProject( const QString & fileName ) } m_loadingProject = false; + updateLength(); setModified(false); m_loadOnLaunch = false; } @@ -1253,7 +1247,7 @@ bool Song::saveProjectFile(const QString & filename, bool withResources) getGUI()->pianoRoll()->saveState( dataFile, dataFile.content() ); getGUI()->automationEditor()->m_editor->saveState( dataFile, dataFile.content() ); getGUI()->getProjectNotes()->SerializingObject::saveState( dataFile, dataFile.content() ); - getPlayPos(PlayMode::Song).m_timeLine->saveState( dataFile, dataFile.content() ); + getTimeline(PlayMode::Song).saveState(dataFile, dataFile.content()); } saveControllerStates( dataFile, dataFile.content() ); @@ -1365,7 +1359,7 @@ void Song::restoreScaleStates(const QDomElement &element) { QDomNode node = element.firstChild(); - for (int i = 0; i < MaxScaleCount && !node.isNull() && !isCancelled(); i++) + for (auto i = std::size_t{0}; i < MaxScaleCount && !node.isNull() && !isCancelled(); i++) { m_scales[i]->restoreState(node.toElement()); node = node.nextSibling(); @@ -1390,7 +1384,7 @@ void Song::restoreKeymapStates(const QDomElement &element) { QDomNode node = element.firstChild(); - for (int i = 0; i < MaxKeymapCount && !node.isNull() && !isCancelled(); i++) + for (auto i = std::size_t{0}; i < MaxKeymapCount && !node.isNull() && !isCancelled(); i++) { m_keymaps[i]->restoreState(node.toElement()); node = node.nextSibling(); @@ -1561,6 +1555,4 @@ void Song::setKeymap(unsigned int index, std::shared_ptr newMap) emit keymapListChanged(index); Engine::audioEngine()->doneChangeInModel(); } - - } // namespace lmms diff --git a/src/core/ThreadPool.cpp b/src/core/ThreadPool.cpp new file mode 100644 index 00000000000..2e5f00df00b --- /dev/null +++ b/src/core/ThreadPool.cpp @@ -0,0 +1,85 @@ +/* + * ThreadPool.cpp + * + * Copyright (c) 2024 saker + * + * This file is part of LMMS - https://lmms.io + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ +#include "ThreadPool.h" + +#include +#include +#include + +namespace lmms { +ThreadPool::ThreadPool(size_t numWorkers) +{ + assert(numWorkers > 0); + + m_workers.reserve(numWorkers); + for (size_t i = 0; i < numWorkers; ++i) + { + m_workers.emplace_back([this] { run(); }); + } +} + +ThreadPool::~ThreadPool() +{ + { + const auto lock = std::unique_lock{m_runMutex}; + m_done = true; + } + + m_runCond.notify_all(); + + for (auto& worker : m_workers) + { + if (worker.joinable()) { worker.join(); } + } +} + +auto ThreadPool::numWorkers() const -> size_t +{ + return m_workers.size(); +} + +void ThreadPool::run() +{ + while (!m_done) + { + std::function task; + { + auto lock = std::unique_lock{m_runMutex}; + m_runCond.wait(lock, [this] { return !m_queue.empty() || m_done; }); + + if (m_done) { break; } + task = m_queue.front(); + m_queue.pop(); + } + task(); + } +} + +auto ThreadPool::instance() -> ThreadPool& +{ + static auto s_pool = ThreadPool{s_numWorkers}; + return s_pool; +} + +} // namespace lmms diff --git a/src/core/TimePos.cpp b/src/core/TimePos.cpp index 09c1019bcef..6e5e034fd23 100644 --- a/src/core/TimePos.cpp +++ b/src/core/TimePos.cpp @@ -43,20 +43,6 @@ TimeSig::TimeSig( const MeterModel &model ) : { } - -int TimeSig::numerator() const -{ - return m_num; -} - -int TimeSig::denominator() const -{ - return m_denom; -} - - - - TimePos::TimePos( const bar_t bar, const tick_t ticks ) : m_ticks( bar * s_ticksPerBar + ticks ) { @@ -86,140 +72,4 @@ TimePos TimePos::quantize(float bars) const return (lowPos + snapUp) * interval; } - -TimePos TimePos::toAbsoluteBar() const -{ - return getBar() * s_ticksPerBar; -} - - -TimePos& TimePos::operator+=( const TimePos& time ) -{ - m_ticks += time.m_ticks; - return *this; -} - - -TimePos& TimePos::operator-=( const TimePos& time ) -{ - m_ticks -= time.m_ticks; - return *this; -} - - -bar_t TimePos::getBar() const -{ - return m_ticks / s_ticksPerBar; -} - - -bar_t TimePos::nextFullBar() const -{ - return ( m_ticks + ( s_ticksPerBar - 1 ) ) / s_ticksPerBar; -} - - -void TimePos::setTicks( tick_t ticks ) -{ - m_ticks = ticks; -} - - -tick_t TimePos::getTicks() const -{ - return m_ticks; -} - - -TimePos::operator int() const -{ - return m_ticks; -} - - -tick_t TimePos::ticksPerBeat( const TimeSig &sig ) const -{ - // (number of ticks per bar) divided by (number of beats per bar) - return ticksPerBar(sig) / sig.numerator(); -} - - -tick_t TimePos::getTickWithinBar( const TimeSig &sig ) const -{ - return m_ticks % ticksPerBar( sig ); -} - -tick_t TimePos::getBeatWithinBar( const TimeSig &sig ) const -{ - return getTickWithinBar( sig ) / ticksPerBeat( sig ); -} - -tick_t TimePos::getTickWithinBeat( const TimeSig &sig ) const -{ - return getTickWithinBar( sig ) % ticksPerBeat( sig ); -} - - -f_cnt_t TimePos::frames( const float framesPerTick ) const -{ - // Before, step notes used to have negative length. This - // assert is a safeguard against negative length being - // introduced again (now using Note Types instead #5902) - assert(m_ticks >= 0); - return static_cast(m_ticks * framesPerTick); -} - -double TimePos::getTimeInMilliseconds( bpm_t beatsPerMinute ) const -{ - return ticksToMilliseconds( getTicks(), beatsPerMinute ); -} - -TimePos TimePos::fromFrames( const f_cnt_t frames, const float framesPerTick ) -{ - return TimePos( static_cast( frames / framesPerTick ) ); -} - - -tick_t TimePos::ticksPerBar() -{ - return s_ticksPerBar; -} - - -tick_t TimePos::ticksPerBar( const TimeSig &sig ) -{ - return DefaultTicksPerBar * sig.numerator() / sig.denominator(); -} - - -int TimePos::stepsPerBar() -{ - int steps = ticksPerBar() / DefaultBeatsPerBar; - return std::max(1, steps); -} - - -void TimePos::setTicksPerBar( tick_t tpb ) -{ - s_ticksPerBar = tpb; -} - - -TimePos TimePos::stepPosition( int step ) -{ - return step * ticksPerBar() / stepsPerBar(); -} - -double TimePos::ticksToMilliseconds( tick_t ticks, bpm_t beatsPerMinute ) -{ - return TimePos::ticksToMilliseconds( static_cast(ticks), beatsPerMinute ); -} - -double TimePos::ticksToMilliseconds(double ticks, bpm_t beatsPerMinute) -{ - // 60 * 1000 / 48 = 1250 - return ( ticks * 1250 ) / beatsPerMinute; -} - - } // namespace lmms diff --git a/src/core/Timeline.cpp b/src/core/Timeline.cpp new file mode 100644 index 00000000000..f6f30c21c67 --- /dev/null +++ b/src/core/Timeline.cpp @@ -0,0 +1,83 @@ +/* + * Timeline.cpp + * + * Copyright (c) 2023 Dominic Clark + * + * This file is part of LMMS - https://lmms.io + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + */ + +#include "Timeline.h" + +#include +#include + +#include +#include + +namespace lmms { + +void Timeline::setLoopBegin(TimePos begin) +{ + std::tie(m_loopBegin, m_loopEnd) = std::minmax(begin, TimePos{m_loopEnd}); +} + +void Timeline::setLoopEnd(TimePos end) +{ + std::tie(m_loopBegin, m_loopEnd) = std::minmax(TimePos{m_loopBegin}, end); +} + +void Timeline::setLoopPoints(TimePos begin, TimePos end) +{ + std::tie(m_loopBegin, m_loopEnd) = std::minmax(begin, end); +} + +void Timeline::setLoopEnabled(bool enabled) +{ + if (enabled != m_loopEnabled) { + m_loopEnabled = enabled; + emit loopEnabledChanged(m_loopEnabled); + } +} + +void Timeline::setStopBehaviour(StopBehaviour behaviour) +{ + if (behaviour != m_stopBehaviour) { + m_stopBehaviour = behaviour; + emit stopBehaviourChanged(m_stopBehaviour); + } +} + +void Timeline::saveSettings(QDomDocument& doc, QDomElement& element) +{ + element.setAttribute("lp0pos", static_cast(loopBegin())); + element.setAttribute("lp1pos", static_cast(loopEnd())); + element.setAttribute("lpstate", static_cast(loopEnabled())); + element.setAttribute("stopbehaviour", static_cast(stopBehaviour())); +} + +void Timeline::loadSettings(const QDomElement& element) +{ + setLoopPoints( + static_cast(element.attribute("lp0pos").toInt()), + static_cast(element.attribute("lp1pos").toInt()) + ); + setLoopEnabled(static_cast(element.attribute("lpstate").toInt())); + setStopBehaviour(static_cast(element.attribute("stopbehaviour", "1").toInt())); +} + +} // namespace lmms diff --git a/src/core/Track.cpp b/src/core/Track.cpp index 2d4a2d840e2..e44475d9374 100644 --- a/src/core/Track.cpp +++ b/src/core/Track.cpp @@ -63,9 +63,7 @@ Track::Track( Type type, TrackContainer * tc ) : m_name(), /*!< The track's name */ m_mutedModel( false, this, tr( "Mute" ) ), /*!< For controlling track muting */ m_soloModel( false, this, tr( "Solo" ) ), /*!< For controlling track soloing */ - m_simpleSerializingMode( false ), - m_clips(), /*!< The clips (segments) */ - m_color(std::nullopt) + m_clips() /*!< The clips (segments) */ { m_trackContainer->addTrack( this ); m_height = -1; @@ -175,10 +173,6 @@ Track* Track::clone() } - - - - /*! \brief Save this track's settings to file * * We save the track type and its muted state and solo state, then append the track- @@ -187,12 +181,13 @@ Track* Track::clone() * * \param doc The QDomDocument to use to save * \param element The The QDomElement to save into + * \param presetMode Describes whether to save the track as a preset or not. * \todo Does this accurately describe the parameters? I think not!? * \todo Save the track height */ -void Track::saveSettings( QDomDocument & doc, QDomElement & element ) +void Track::saveTrack(QDomDocument& doc, QDomElement& element, bool presetMode) { - if( !m_simpleSerializingMode ) + if (!presetMode) { element.setTagName( "track" ); } @@ -216,11 +211,10 @@ void Track::saveSettings( QDomDocument & doc, QDomElement & element ) QDomElement tsDe = doc.createElement( nodeName() ); // let actual track (InstrumentTrack, PatternTrack, SampleTrack etc.) save its settings element.appendChild( tsDe ); - saveTrackSpecificSettings( doc, tsDe ); + saveTrackSpecificSettings(doc, tsDe, presetMode); - if( m_simpleSerializingMode ) + if (presetMode) { - m_simpleSerializingMode = false; return; } @@ -231,9 +225,6 @@ void Track::saveSettings( QDomDocument & doc, QDomElement & element ) } } - - - /*! \brief Load the settings from a file * * We load the track's type and muted state and solo state, then clear out our @@ -244,9 +235,10 @@ void Track::saveSettings( QDomDocument & doc, QDomElement & element ) * one at a time. * * \param element the QDomElement to load track settings from + * \param presetMode Indicates if a preset or a full track is loaded * \todo Load the track height. */ -void Track::loadSettings( const QDomElement & element ) +void Track::loadTrack(const QDomElement& element, bool presetMode) { if( static_cast(element.attribute( "type" ).toInt()) != type() ) { @@ -263,17 +255,12 @@ void Track::loadSettings( const QDomElement & element ) // Older project files that didn't have this attribute will set the value to false (issue 5562) m_mutedBeforeSolo = QVariant( element.attribute( "mutedBeforeSolo", "0" ) ).toBool(); - if( element.hasAttribute( "color" ) ) - { - QColor newColor = QColor(element.attribute("color")); - setColor(newColor); - } - else + if (element.hasAttribute("color")) { - resetColor(); + setColor(QColor{element.attribute("color")}); } - if( m_simpleSerializingMode ) + if (presetMode) { QDomNode node = element.firstChild(); while( !node.isNull() ) @@ -285,14 +272,13 @@ void Track::loadSettings( const QDomElement & element ) } node = node.nextSibling(); } - m_simpleSerializingMode = false; + return; } - while( !m_clips.empty() ) { - delete m_clips.front(); -// m_clips.erase( m_clips.begin() ); + auto guard = Engine::audioEngine()->requestChangesGuard(); + deleteClips(); } QDomNode node = element.firstChild(); @@ -323,6 +309,28 @@ void Track::loadSettings( const QDomElement & element ) } } +void Track::savePreset(QDomDocument & doc, QDomElement & element) +{ + saveTrack(doc, element, true); +} + +void Track::loadPreset(const QDomElement & element) +{ + loadTrack(element, true); +} + +void Track::saveSettings(QDomDocument& doc, QDomElement& element) +{ + // Assume that everything should be saved if we are called through SerializingObject::saveSettings + saveTrack(doc, element, false); +} + +void Track::loadSettings(const QDomElement& element) +{ + // Assume that everything should be loaded if we are called through SerializingObject::loadSettings + loadTrack(element, false); +} + @@ -395,14 +403,14 @@ int Track::numOfClips() * \todo if we create a Clip here, should we somehow attach it to the * track? */ -Clip * Track::getClip( int clipNum ) +auto Track::getClip(std::size_t clipNum) -> Clip* { if( clipNum < m_clips.size() ) { return m_clips[clipNum]; } - printf( "called Track::getClip( %d ), " - "but Clip %d doesn't exist\n", clipNum, clipNum ); + printf( "called Track::getClip( %zu ), " + "but Clip %zu doesn't exist\n", clipNum, clipNum ); return createClip( clipNum * TimePos::ticksPerBar() ); } @@ -633,22 +641,30 @@ void Track::toggleSolo() } } -void Track::setColor(const QColor& c) +void Track::setColor(const std::optional& color) { - m_color = c; + m_color = color; emit colorChanged(); } -void Track::resetColor() +BoolModel *Track::getMutedModel() { - m_color = std::nullopt; - emit colorChanged(); + return &m_mutedModel; } - -BoolModel *Track::getMutedModel() +void Track::setName(const QString& newName) { - return &m_mutedModel; + if (m_name != newName) + { + m_name = newName; + + if (auto song = Engine::getSong()) + { + song->setModified(); + } + + emit nameChanged(); + } } } // namespace lmms diff --git a/src/core/VstSyncController.cpp b/src/core/VstSyncController.cpp index c4b59eb6fb6..79344a5b5e2 100644 --- a/src/core/VstSyncController.cpp +++ b/src/core/VstSyncController.cpp @@ -155,7 +155,7 @@ void VstSyncController::updateSampleRate() { if (!m_syncData) { return; } - m_syncData->m_sampleRate = Engine::audioEngine()->processingSampleRate(); + m_syncData->m_sampleRate = Engine::audioEngine()->outputSampleRate(); #ifdef VST_SNC_LATENCY m_syncData->m_latency = m_syncData->m_bufferSize * m_syncData->m_bpm / ( (float) m_syncData->m_sampleRate * 60 ); diff --git a/src/core/audio/AudioAlsa.cpp b/src/core/audio/AudioAlsa.cpp index 6e17ad0fed1..c41703e2271 100644 --- a/src/core/audio/AudioAlsa.cpp +++ b/src/core/audio/AudioAlsa.cpp @@ -39,7 +39,7 @@ AudioAlsa::AudioAlsa( bool & _success_ful, AudioEngine* _audioEngine ) : AudioDevice(std::clamp( ConfigManager::inst()->value("audioalsa", "channels").toInt(), DEFAULT_CHANNELS, - SURROUND_CHANNELS), _audioEngine), + DEFAULT_CHANNELS), _audioEngine), m_handle( nullptr ), m_hwParams( nullptr ), m_swParams( nullptr ), @@ -53,12 +53,7 @@ AudioAlsa::AudioAlsa( bool & _success_ful, AudioEngine* _audioEngine ) : "Could not avoid possible interception by PulseAudio\n" ); } - int err; - - if( ( err = snd_pcm_open( &m_handle, - probeDevice().toLatin1().constData(), - SND_PCM_STREAM_PLAYBACK, - 0 ) ) < 0 ) + if (int err = snd_pcm_open(&m_handle, probeDevice().toLatin1().constData(), SND_PCM_STREAM_PLAYBACK, 0); err < 0) { printf( "Playback open error: %s\n", snd_strerror( err ) ); return; @@ -67,14 +62,13 @@ AudioAlsa::AudioAlsa( bool & _success_ful, AudioEngine* _audioEngine ) : snd_pcm_hw_params_malloc( &m_hwParams ); snd_pcm_sw_params_malloc( &m_swParams ); - if( ( err = setHWParams( channels(), - SND_PCM_ACCESS_RW_INTERLEAVED ) ) < 0 ) + if (int err = setHWParams(channels(), SND_PCM_ACCESS_RW_INTERLEAVED); err < 0) { printf( "Setting of hwparams failed: %s\n", snd_strerror( err ) ); return; } - if( ( err = setSWParams() ) < 0 ) + if (int err = setSWParams(); err < 0) { printf( "Setting of swparams failed: %s\n", snd_strerror( err ) ); @@ -83,9 +77,8 @@ AudioAlsa::AudioAlsa( bool & _success_ful, AudioEngine* _audioEngine ) : // set FD_CLOEXEC flag for all file descriptors so forked processes // do not inherit them - struct pollfd * ufds; int count = snd_pcm_poll_descriptors_count( m_handle ); - ufds = new pollfd[count]; + auto ufds = new pollfd[count]; snd_pcm_poll_descriptors( m_handle, ufds, count ); for (int i = 0; i < std::max(3, count); ++i) { @@ -160,7 +153,7 @@ AudioAlsa::DeviceInfoCollection AudioAlsa::getAvailableDevices() { DeviceInfoCollection deviceInfos; - char **hints; + char** hints = nullptr; /* Enumerate sound devices */ int err = snd_device_name_hint(-1, "pcm", (void***)&hints); @@ -247,55 +240,9 @@ void AudioAlsa::stopProcessing() stopProcessingThread( this ); } - - - -void AudioAlsa::applyQualitySettings() -{ - if( hqAudio() ) - { - setSampleRate( Engine::audioEngine()->processingSampleRate() ); - - if( m_handle != nullptr ) - { - snd_pcm_close( m_handle ); - } - - int err; - if( ( err = snd_pcm_open( &m_handle, - probeDevice().toLatin1().constData(), - SND_PCM_STREAM_PLAYBACK, - 0 ) ) < 0 ) - { - printf( "Playback open error: %s\n", - snd_strerror( err ) ); - return; - } - - if( ( err = setHWParams( channels(), - SND_PCM_ACCESS_RW_INTERLEAVED ) ) < 0 ) - { - printf( "Setting of hwparams failed: %s\n", - snd_strerror( err ) ); - return; - } - if( ( err = setSWParams() ) < 0 ) - { - printf( "Setting of swparams failed: %s\n", - snd_strerror( err ) ); - return; - } - } - - AudioDevice::applyQualitySettings(); -} - - - - void AudioAlsa::run() { - auto temp = new surroundSampleFrame[audioEngine()->framesPerPeriod()]; + auto temp = new SampleFrame[audioEngine()->framesPerPeriod()]; auto outbuf = new int_sample_t[audioEngine()->framesPerPeriod() * channels()]; auto pcmbuf = new int_sample_t[m_periodSize * channels()]; @@ -323,10 +270,7 @@ void AudioAlsa::run() } outbuf_size = frames * channels(); - convertToS16( temp, frames, - audioEngine()->masterGain(), - outbuf, - m_convertEndian ); + convertToS16(temp, frames, outbuf, m_convertEndian); } int min_len = std::min(len, outbuf_size - outbuf_pos); memcpy( ptr, outbuf + outbuf_pos, @@ -373,10 +317,8 @@ void AudioAlsa::run() int AudioAlsa::setHWParams( const ch_cnt_t _channels, snd_pcm_access_t _access ) { - int err, dir; - // choose all parameters - if( ( err = snd_pcm_hw_params_any( m_handle, m_hwParams ) ) < 0 ) + if (int err = snd_pcm_hw_params_any(m_handle, m_hwParams); err < 0) { printf( "Broken configuration for playback: no configurations " "available: %s\n", snd_strerror( err ) ); @@ -384,8 +326,7 @@ int AudioAlsa::setHWParams( const ch_cnt_t _channels, snd_pcm_access_t _access ) } // set the interleaved read/write format - if( ( err = snd_pcm_hw_params_set_access( m_handle, m_hwParams, - _access ) ) < 0 ) + if (int err = snd_pcm_hw_params_set_access(m_handle, m_hwParams, _access); err < 0) { printf( "Access type not available for playback: %s\n", snd_strerror( err ) ); @@ -393,11 +334,9 @@ int AudioAlsa::setHWParams( const ch_cnt_t _channels, snd_pcm_access_t _access ) } // set the sample format - if( ( snd_pcm_hw_params_set_format( m_handle, m_hwParams, - SND_PCM_FORMAT_S16_LE ) ) < 0 ) + if (int err = snd_pcm_hw_params_set_format(m_handle, m_hwParams, SND_PCM_FORMAT_S16_LE); err < 0) { - if( ( snd_pcm_hw_params_set_format( m_handle, m_hwParams, - SND_PCM_FORMAT_S16_BE ) ) < 0 ) + if (int err = snd_pcm_hw_params_set_format(m_handle, m_hwParams, SND_PCM_FORMAT_S16_BE); err < 0) { printf( "Neither little- nor big-endian available for " "playback: %s\n", snd_strerror( err ) ); @@ -411,8 +350,7 @@ int AudioAlsa::setHWParams( const ch_cnt_t _channels, snd_pcm_access_t _access ) } // set the count of channels - if( ( err = snd_pcm_hw_params_set_channels( m_handle, m_hwParams, - _channels ) ) < 0 ) + if (int err = snd_pcm_hw_params_set_channels(m_handle, m_hwParams, _channels); err < 0) { printf( "Channel count (%i) not available for playbacks: %s\n" "(Does your soundcard not support surround?)\n", @@ -421,11 +359,9 @@ int AudioAlsa::setHWParams( const ch_cnt_t _channels, snd_pcm_access_t _access ) } // set the sample rate - if( ( err = snd_pcm_hw_params_set_rate( m_handle, m_hwParams, - sampleRate(), 0 ) ) < 0 ) + if (int err = snd_pcm_hw_params_set_rate(m_handle, m_hwParams, sampleRate(), 0); err < 0) { - if( ( err = snd_pcm_hw_params_set_rate( m_handle, m_hwParams, - audioEngine()->baseSampleRate(), 0 ) ) < 0 ) + if (int err = snd_pcm_hw_params_set_rate(m_handle, m_hwParams, audioEngine()->baseSampleRate(), 0); err < 0) { printf( "Could not set sample rate: %s\n", snd_strerror( err ) ); @@ -435,36 +371,29 @@ int AudioAlsa::setHWParams( const ch_cnt_t _channels, snd_pcm_access_t _access ) m_periodSize = audioEngine()->framesPerPeriod(); m_bufferSize = m_periodSize * 8; - dir = 0; - err = snd_pcm_hw_params_set_period_size_near( m_handle, m_hwParams, - &m_periodSize, &dir ); - if( err < 0 ) + int dir; + if (int err = snd_pcm_hw_params_set_period_size_near(m_handle, m_hwParams, &m_periodSize, &dir); err < 0) { printf( "Unable to set period size %lu for playback: %s\n", m_periodSize, snd_strerror( err ) ); return err; } dir = 0; - err = snd_pcm_hw_params_get_period_size( m_hwParams, &m_periodSize, - &dir ); - if( err < 0 ) + if (int err = snd_pcm_hw_params_get_period_size(m_hwParams, &m_periodSize, &dir); err < 0) { printf( "Unable to get period size for playback: %s\n", snd_strerror( err ) ); } dir = 0; - err = snd_pcm_hw_params_set_buffer_size_near( m_handle, m_hwParams, - &m_bufferSize ); - if( err < 0 ) + if (int err = snd_pcm_hw_params_set_buffer_size_near(m_handle, m_hwParams, &m_bufferSize); err < 0) { printf( "Unable to set buffer size %lu for playback: %s\n", m_bufferSize, snd_strerror( err ) ); return ( err ); } - err = snd_pcm_hw_params_get_buffer_size( m_hwParams, &m_bufferSize ); - if( 2 * m_periodSize > m_bufferSize ) + if (int err = snd_pcm_hw_params_get_buffer_size(m_hwParams, &m_bufferSize); 2 * m_periodSize > m_bufferSize) { printf( "buffer to small, could not use\n" ); return ( err ); @@ -472,8 +401,7 @@ int AudioAlsa::setHWParams( const ch_cnt_t _channels, snd_pcm_access_t _access ) // write the parameters to device - err = snd_pcm_hw_params( m_handle, m_hwParams ); - if( err < 0 ) + if (int err = snd_pcm_hw_params(m_handle, m_hwParams); err < 0) { printf( "Unable to set hw params for playback: %s\n", snd_strerror( err ) ); @@ -488,10 +416,8 @@ int AudioAlsa::setHWParams( const ch_cnt_t _channels, snd_pcm_access_t _access ) int AudioAlsa::setSWParams() { - int err; - // get the current swparams - if( ( err = snd_pcm_sw_params_current( m_handle, m_swParams ) ) < 0 ) + if (int err = snd_pcm_sw_params_current(m_handle, m_swParams); err < 0) { printf( "Unable to determine current swparams for playback: %s" "\n", snd_strerror( err ) ); @@ -499,8 +425,7 @@ int AudioAlsa::setSWParams() } // start the transfer when a period is full - if( ( err = snd_pcm_sw_params_set_start_threshold( m_handle, - m_swParams, m_periodSize ) ) < 0 ) + if (int err = snd_pcm_sw_params_set_start_threshold(m_handle, m_swParams, m_periodSize); err < 0) { printf( "Unable to set start threshold mode for playback: %s\n", snd_strerror( err ) ); @@ -509,8 +434,7 @@ int AudioAlsa::setSWParams() // allow the transfer when at least m_periodSize samples can be // processed - if( ( err = snd_pcm_sw_params_set_avail_min( m_handle, m_swParams, - m_periodSize ) ) < 0 ) + if (int err = snd_pcm_sw_params_set_avail_min(m_handle, m_swParams, m_periodSize); err < 0) { printf( "Unable to set avail min for playback: %s\n", snd_strerror( err ) ); @@ -530,7 +454,7 @@ int AudioAlsa::setSWParams() #endif // write the parameters to the playback device - if( ( err = snd_pcm_sw_params( m_handle, m_swParams ) ) < 0 ) + if (int err = snd_pcm_sw_params(m_handle, m_swParams); err < 0) { printf( "Unable to set sw params for playback: %s\n", snd_strerror( err ) ); diff --git a/src/core/audio/AudioDevice.cpp b/src/core/audio/AudioDevice.cpp index 5fb58a1b0bc..2047fffe98b 100644 --- a/src/core/audio/AudioDevice.cpp +++ b/src/core/audio/AudioDevice.cpp @@ -34,18 +34,11 @@ namespace lmms AudioDevice::AudioDevice( const ch_cnt_t _channels, AudioEngine* _audioEngine ) : m_supportsCapture( false ), - m_sampleRate( _audioEngine->processingSampleRate() ), + m_sampleRate( _audioEngine->outputSampleRate() ), m_channels( _channels ), m_audioEngine( _audioEngine ), - m_buffer( new surroundSampleFrame[audioEngine()->framesPerPeriod()] ) + m_buffer(new SampleFrame[audioEngine()->framesPerPeriod()]) { - int error; - if( ( m_srcState = src_new( - audioEngine()->currentQualitySettings().libsrcInterpolation(), - SURROUND_CHANNELS, &error ) ) == nullptr ) - { - printf( "Error: src_new() failed in audio_device.cpp!\n" ); - } } @@ -53,9 +46,7 @@ AudioDevice::AudioDevice( const ch_cnt_t _channels, AudioEngine* _audioEngine ) AudioDevice::~AudioDevice() { - src_delete( m_srcState ); delete[] m_buffer; - m_devMutex.tryLock(); unlock(); } @@ -66,49 +57,23 @@ AudioDevice::~AudioDevice() void AudioDevice::processNextBuffer() { const fpp_t frames = getNextBuffer( m_buffer ); - if( frames ) - { - writeBuffer( m_buffer, frames, audioEngine()->masterGain() ); - } + if (frames) { writeBuffer(m_buffer, frames); } else { m_inProcess = false; } } - - - -fpp_t AudioDevice::getNextBuffer( surroundSampleFrame * _ab ) +fpp_t AudioDevice::getNextBuffer(SampleFrame* _ab) { fpp_t frames = audioEngine()->framesPerPeriod(); - const surroundSampleFrame * b = audioEngine()->nextBuffer(); - if( !b ) - { - return 0; - } - - // make sure, no other thread is accessing device - lock(); - - // resample if necessary - if( audioEngine()->processingSampleRate() != m_sampleRate ) - { - frames = resample( b, frames, _ab, audioEngine()->processingSampleRate(), m_sampleRate ); - } - else - { - memcpy( _ab, b, frames * sizeof( surroundSampleFrame ) ); - } + const SampleFrame* b = audioEngine()->nextBuffer(); - // release lock - unlock(); + if (!b) { return 0; } - if( audioEngine()->hasFifoWriter() ) - { - delete[] b; - } + memcpy(_ab, b, frames * sizeof(SampleFrame)); + if (audioEngine()->hasFifoWriter()) { delete[] b; } return frames; } @@ -144,23 +109,6 @@ void AudioDevice::stopProcessingThread( QThread * thread ) - -void AudioDevice::applyQualitySettings() -{ - src_delete( m_srcState ); - - int error; - if( ( m_srcState = src_new( - audioEngine()->currentQualitySettings().libsrcInterpolation(), - SURROUND_CHANNELS, &error ) ) == nullptr ) - { - printf( "Error: src_new() failed in audio_device.cpp!\n" ); - } -} - - - - void AudioDevice::registerPort( AudioPort * ) { } @@ -179,51 +127,19 @@ void AudioDevice::renamePort( AudioPort * ) { } - - - -fpp_t AudioDevice::resample( const surroundSampleFrame * _src, - const fpp_t _frames, - surroundSampleFrame * _dst, - const sample_rate_t _src_sr, - const sample_rate_t _dst_sr ) -{ - if( m_srcState == nullptr ) - { - return _frames; - } - m_srcData.input_frames = _frames; - m_srcData.output_frames = _frames; - m_srcData.data_in = const_cast(_src[0].data()); - m_srcData.data_out = _dst[0].data (); - m_srcData.src_ratio = (double) _dst_sr / _src_sr; - m_srcData.end_of_input = 0; - int error; - if( ( error = src_process( m_srcState, &m_srcData ) ) ) - { - printf( "AudioDevice::resample(): error while resampling: %s\n", - src_strerror( error ) ); - } - return static_cast(m_srcData.output_frames_gen); -} - - - -int AudioDevice::convertToS16( const surroundSampleFrame * _ab, +int AudioDevice::convertToS16(const SampleFrame* _ab, const fpp_t _frames, - const float _master_gain, int_sample_t * _output_buffer, const bool _convert_endian ) { if( _convert_endian ) { - int_sample_t temp; for( fpp_t frame = 0; frame < _frames; ++frame ) { for( ch_cnt_t chnl = 0; chnl < channels(); ++chnl ) { - temp = static_cast( AudioEngine::clip( _ab[frame][chnl] * _master_gain ) * OUTPUT_SAMPLE_MULTIPLIER ); - + auto temp = static_cast(AudioEngine::clip(_ab[frame][chnl]) * OUTPUT_SAMPLE_MULTIPLIER); + ( _output_buffer + frame * channels() )[chnl] = ( temp & 0x00ff ) << 8 | ( temp & 0xff00 ) >> 8; @@ -236,11 +152,8 @@ int AudioDevice::convertToS16( const surroundSampleFrame * _ab, { for( ch_cnt_t chnl = 0; chnl < channels(); ++chnl ) { - ( _output_buffer + frame * channels() )[chnl] = - static_cast( - AudioEngine::clip( _ab[frame][chnl] * - _master_gain ) * - OUTPUT_SAMPLE_MULTIPLIER ); + (_output_buffer + frame * channels())[chnl] + = static_cast(AudioEngine::clip(_ab[frame][chnl]) * OUTPUT_SAMPLE_MULTIPLIER); } } } @@ -259,13 +172,4 @@ void AudioDevice::clearS16Buffer( int_sample_t * _outbuf, const fpp_t _frames ) memset( _outbuf, 0, _frames * channels() * BYTES_PER_INT_SAMPLE ); } - - - -bool AudioDevice::hqAudio() const -{ - return ConfigManager::inst()->value( "audioengine", "hqaudio" ).toInt(); -} - - } // namespace lmms \ No newline at end of file diff --git a/src/core/audio/AudioFileFlac.cpp b/src/core/audio/AudioFileFlac.cpp index af71003d18c..dfb97a6beba 100644 --- a/src/core/audio/AudioFileFlac.cpp +++ b/src/core/audio/AudioFileFlac.cpp @@ -89,7 +89,7 @@ bool AudioFileFlac::startEncoding() return true; } -void AudioFileFlac::writeBuffer(surroundSampleFrame const* _ab, fpp_t const frames, float master_gain) +void AudioFileFlac::writeBuffer(const SampleFrame* _ab, fpp_t const frames) { OutputSettings::BitDepth depth = getOutputSettings().getBitDepth(); float clipvalue = std::nextafterf( -1.0f, 0.0f ); @@ -104,7 +104,7 @@ void AudioFileFlac::writeBuffer(surroundSampleFrame const* _ab, fpp_t const fram // Clip the negative side to just above -1.0 in order to prevent it from changing sign // Upstream issue: https://github.com/erikd/libsndfile/issues/309 // When this commit is reverted libsndfile-1.0.29 must be made a requirement for FLAC - buf[frame*channels() + channel] = std::max(clipvalue, _ab[frame][channel] * master_gain); + buf[frame*channels() + channel] = std::max(clipvalue, _ab[frame][channel]); } } sf_writef_float(m_sf, static_cast(buf.data()), frames); @@ -112,7 +112,7 @@ void AudioFileFlac::writeBuffer(surroundSampleFrame const* _ab, fpp_t const fram else // integer PCM encoding { auto buf = std::vector(frames * channels()); - convertToS16(_ab, frames, master_gain, buf.data(), !isLittleEndian()); + convertToS16(_ab, frames, buf.data(), !isLittleEndian()); sf_writef_short(m_sf, static_cast(buf.data()), frames); } diff --git a/src/core/audio/AudioFileMP3.cpp b/src/core/audio/AudioFileMP3.cpp index ef067715229..4d1dbc02007 100644 --- a/src/core/audio/AudioFileMP3.cpp +++ b/src/core/audio/AudioFileMP3.cpp @@ -25,6 +25,8 @@ #include "AudioFileMP3.h" +#include "SampleFrame.h" + #ifdef LMMS_HAVE_MP3LAME @@ -53,21 +55,18 @@ AudioFileMP3::~AudioFileMP3() tearDownEncoder(); } -void AudioFileMP3::writeBuffer( const surroundSampleFrame * _buf, - const fpp_t _frames, - const float _master_gain ) +void AudioFileMP3::writeBuffer(const SampleFrame* _buf, const fpp_t _frames) { if (_frames < 1) { return; } - // TODO Why isn't the gain applied by the driver but inside the device? std::vector interleavedDataBuffer(_frames * 2); for (fpp_t i = 0; i < _frames; ++i) { - interleavedDataBuffer[2*i] = _buf[i][0] * _master_gain; - interleavedDataBuffer[2*i + 1] = _buf[i][1] * _master_gain; + interleavedDataBuffer[2*i] = _buf[i][0]; + interleavedDataBuffer[2*i + 1] = _buf[i][1]; } size_t minimumBufferSize = 1.25 * _frames + 7200; diff --git a/src/core/audio/AudioFileOgg.cpp b/src/core/audio/AudioFileOgg.cpp index d61e27da814..59b796730bf 100644 --- a/src/core/audio/AudioFileOgg.cpp +++ b/src/core/audio/AudioFileOgg.cpp @@ -156,7 +156,6 @@ bool AudioFileOgg::startEncoding() ogg_packet header_main; ogg_packet header_comments; ogg_packet header_codebooks; - int result; // Build the packets vorbis_analysis_headerout( &m_vd, m_comments, &header_main, @@ -167,14 +166,9 @@ bool AudioFileOgg::startEncoding() ogg_stream_packetin( &m_os, &header_comments ); ogg_stream_packetin( &m_os, &header_codebooks ); - while( ( result = ogg_stream_flush( &m_os, &m_og ) ) ) + while (ogg_stream_flush(&m_os, &m_og)) { - if( !result ) - { - break; - } - int ret = writePage(); - if( ret != m_og.header_len + m_og.body_len ) + if (int ret = writePage(); ret != m_og.header_len + m_og.body_len) { // clean up finishEncoding(); @@ -185,12 +179,7 @@ bool AudioFileOgg::startEncoding() return true; } - - - -void AudioFileOgg::writeBuffer( const surroundSampleFrame * _ab, - const fpp_t _frames, - const float _master_gain ) +void AudioFileOgg::writeBuffer(const SampleFrame* _ab, const fpp_t _frames) { int eos = 0; @@ -201,7 +190,7 @@ void AudioFileOgg::writeBuffer( const surroundSampleFrame * _ab, { for( ch_cnt_t chnl = 0; chnl < channels(); ++chnl ) { - buffer[chnl][frame] = _ab[frame][chnl] * _master_gain; + buffer[chnl][frame] = _ab[frame][chnl]; } } @@ -258,7 +247,7 @@ void AudioFileOgg::finishEncoding() if( m_ok ) { // just for flushing buffers... - writeBuffer( nullptr, 0, 0.0f ); + writeBuffer(nullptr, 0); // clean up ogg_stream_clear( &m_os ); diff --git a/src/core/audio/AudioFileWave.cpp b/src/core/audio/AudioFileWave.cpp index 9c51437ffe1..4b4b928c5be 100644 --- a/src/core/audio/AudioFileWave.cpp +++ b/src/core/audio/AudioFileWave.cpp @@ -93,12 +93,7 @@ bool AudioFileWave::startEncoding() return true; } - - - -void AudioFileWave::writeBuffer( const surroundSampleFrame * _ab, - const fpp_t _frames, - const float _master_gain ) +void AudioFileWave::writeBuffer(const SampleFrame* _ab, const fpp_t _frames) { OutputSettings::BitDepth bitDepth = getOutputSettings().getBitDepth(); @@ -109,8 +104,7 @@ void AudioFileWave::writeBuffer( const surroundSampleFrame * _ab, { for( ch_cnt_t chnl = 0; chnl < channels(); ++chnl ) { - buf[frame*channels()+chnl] = _ab[frame][chnl] * - _master_gain; + buf[frame * channels() + chnl] = _ab[frame][chnl]; } } sf_writef_float( m_sf, buf, _frames ); @@ -119,8 +113,7 @@ void AudioFileWave::writeBuffer( const surroundSampleFrame * _ab, else { auto buf = new int_sample_t[_frames * channels()]; - convertToS16( _ab, _frames, _master_gain, buf, - !isLittleEndian() ); + convertToS16(_ab, _frames, buf, !isLittleEndian()); sf_writef_short( m_sf, buf, _frames ); delete[] buf; diff --git a/src/core/audio/AudioJack.cpp b/src/core/audio/AudioJack.cpp index a4fd2c095de..bd5b8e514de 100644 --- a/src/core/audio/AudioJack.cpp +++ b/src/core/audio/AudioJack.cpp @@ -37,7 +37,6 @@ #include "LcdSpinBox.h" #include "MainWindow.h" #include "MidiJack.h" -#include "gui_templates.h" namespace lmms { @@ -49,7 +48,7 @@ AudioJack::AudioJack(bool& successful, AudioEngine* audioEngineParam) std::clamp( ConfigManager::inst()->value("audiojack", "channels").toInt(), DEFAULT_CHANNELS, - SURROUND_CHANNELS + DEFAULT_CHANNELS ), // clang-format on audioEngineParam) @@ -57,7 +56,7 @@ AudioJack::AudioJack(bool& successful, AudioEngine* audioEngineParam) , m_active(false) , m_midiClient(nullptr) , m_tempOutBufs(new jack_default_audio_sample_t*[channels()]) - , m_outBuf(new surroundSampleFrame[audioEngine()->framesPerPeriod()]) + , m_outBuf(new SampleFrame[audioEngine()->framesPerPeriod()]) , m_framesDoneInCurBuf(0) , m_framesToDoInCurBuf(0) { @@ -230,24 +229,6 @@ void AudioJack::stopProcessing() m_stopped = true; } - - - -void AudioJack::applyQualitySettings() -{ - if (hqAudio()) - { - setSampleRate(Engine::audioEngine()->processingSampleRate()); - - if (jack_get_sample_rate(m_client) != sampleRate()) { setSampleRate(jack_get_sample_rate(m_client)); } - } - - AudioDevice::applyQualitySettings(); -} - - - - void AudioJack::registerPort(AudioPort* port) { #ifdef AUDIO_PORT_SUPPORT @@ -344,13 +325,12 @@ int AudioJack::processCallback(jack_nframes_t nframes) while (done < nframes && !m_stopped) { jack_nframes_t todo = std::min(nframes - done, m_framesToDoInCurBuf - m_framesDoneInCurBuf); - const float gain = audioEngine()->masterGain(); for (int c = 0; c < channels(); ++c) { jack_default_audio_sample_t* o = m_tempOutBufs[c]; for (jack_nframes_t frame = 0; frame < todo; ++frame) { - o[done + frame] = m_outBuf[m_framesDoneInCurBuf + frame][c] * gain; + o[done + frame] = m_outBuf[m_framesDoneInCurBuf + frame][c]; } } done += todo; @@ -412,7 +392,7 @@ AudioJack::setupWidget::setupWidget(QWidget* parent) form->addRow(tr("Client name"), m_clientName); auto m = new gui::LcdSpinBoxModel(/* this */); - m->setRange(DEFAULT_CHANNELS, SURROUND_CHANNELS); + m->setRange(DEFAULT_CHANNELS, DEFAULT_CHANNELS); m->setStep(2); m->setValue(ConfigManager::inst()->value("audiojack", "channels").toInt()); diff --git a/src/core/audio/AudioOss.cpp b/src/core/audio/AudioOss.cpp index 8fedd3b2b9a..bd427523520 100644 --- a/src/core/audio/AudioOss.cpp +++ b/src/core/audio/AudioOss.cpp @@ -34,7 +34,6 @@ #include "LcdSpinBox.h" #include "AudioEngine.h" #include "Engine.h" -#include "gui_templates.h" #ifdef LMMS_HAVE_UNISTD_H #include @@ -73,7 +72,7 @@ AudioOss::AudioOss( bool & _success_ful, AudioEngine* _audioEngine ) : AudioDevice(std::clamp( ConfigManager::inst()->value("audiooss", "channels").toInt(), DEFAULT_CHANNELS, - SURROUND_CHANNELS), _audioEngine), + DEFAULT_CHANNELS), _audioEngine), m_convertEndian( false ) { _success_ful = false; @@ -100,10 +99,9 @@ AudioOss::AudioOss( bool & _success_ful, AudioEngine* _audioEngine ) : fcntl( m_audioFD, F_SETFD, fcntl( m_audioFD, F_GETFD ) | FD_CLOEXEC ); int frag_spec; - for( frag_spec = 0; static_cast( 0x01 << frag_spec ) < - audioEngine()->framesPerPeriod() * channels() * - BYTES_PER_INT_SAMPLE; - ++frag_spec ) + for (frag_spec = 0; + 1u << frag_spec < audioEngine()->framesPerPeriod() * channels() * BYTES_PER_INT_SAMPLE; + ++frag_spec) { } @@ -255,44 +253,9 @@ void AudioOss::stopProcessing() stopProcessingThread( this ); } - - - -void AudioOss::applyQualitySettings() -{ - if( hqAudio() ) - { - setSampleRate( Engine::audioEngine()->processingSampleRate() ); - - unsigned int value = sampleRate(); - if ( ioctl( m_audioFD, SNDCTL_DSP_SPEED, &value ) < 0 ) - { - perror( "SNDCTL_DSP_SPEED" ); - printf( "Couldn't set audio frequency\n" ); - return; - } - if( value != sampleRate() ) - { - value = audioEngine()->baseSampleRate(); - if ( ioctl( m_audioFD, SNDCTL_DSP_SPEED, &value ) < 0 ) - { - perror( "SNDCTL_DSP_SPEED" ); - printf( "Couldn't set audio frequency\n" ); - return; - } - setSampleRate( value ); - } - } - - AudioDevice::applyQualitySettings(); -} - - - - void AudioOss::run() { - auto temp = new surroundSampleFrame[audioEngine()->framesPerPeriod()]; + auto temp = new SampleFrame[audioEngine()->framesPerPeriod()]; auto outbuf = new int_sample_t[audioEngine()->framesPerPeriod() * channels()]; while( true ) @@ -303,7 +266,7 @@ void AudioOss::run() break; } - int bytes = convertToS16( temp, frames, audioEngine()->masterGain(), outbuf, m_convertEndian ); + int bytes = convertToS16(temp, frames, outbuf, m_convertEndian); if( write( m_audioFD, outbuf, bytes ) != bytes ) { break; @@ -327,7 +290,7 @@ AudioOss::setupWidget::setupWidget( QWidget * _parent ) : form->addRow(tr("Device"), m_device); auto m = new gui::LcdSpinBoxModel(/* this */); - m->setRange( DEFAULT_CHANNELS, SURROUND_CHANNELS ); + m->setRange(DEFAULT_CHANNELS, DEFAULT_CHANNELS); m->setStep( 2 ); m->setValue( ConfigManager::inst()->value( "audiooss", "channels" ).toInt() ); diff --git a/src/core/audio/AudioPort.cpp b/src/core/audio/AudioPort.cpp index 7bae3db1cf5..8efdd2c11a7 100644 --- a/src/core/audio/AudioPort.cpp +++ b/src/core/audio/AudioPort.cpp @@ -113,7 +113,7 @@ void AudioPort::doProcessing() const fpp_t fpp = Engine::audioEngine()->framesPerPeriod(); // clear the buffer - BufferManager::clear( m_portBuffer, fpp ); + zeroSampleFrames(m_portBuffer, fpp); //qDebug( "Playhandles: %d", m_playHandles.size() ); for( PlayHandle * ph : m_playHandles ) // now we mix all playhandle buffers into the audioport buffer diff --git a/src/core/audio/AudioPortAudio.cpp b/src/core/audio/AudioPortAudio.cpp index 3684a79a8d7..eb5058bc6b5 100644 --- a/src/core/audio/AudioPortAudio.cpp +++ b/src/core/audio/AudioPortAudio.cpp @@ -53,7 +53,6 @@ void AudioPortAudioSetupUtil::updateChannels() #include "Engine.h" #include "ConfigManager.h" -#include "gui_templates.h" #include "ComboBox.h" #include "AudioEngine.h" @@ -65,10 +64,10 @@ AudioPortAudio::AudioPortAudio( bool & _success_ful, AudioEngine * _audioEngine AudioDevice(std::clamp( ConfigManager::inst()->value("audioportaudio", "channels").toInt(), DEFAULT_CHANNELS, - SURROUND_CHANNELS), _audioEngine), + DEFAULT_CHANNELS), _audioEngine), m_paStream( nullptr ), m_wasPAInitError( false ), - m_outBuf( new surroundSampleFrame[audioEngine()->framesPerPeriod()] ), + m_outBuf(new SampleFrame[audioEngine()->framesPerPeriod()]), m_outBufPos( 0 ) { _success_ful = false; @@ -93,10 +92,9 @@ AudioPortAudio::AudioPortAudio( bool & _success_ful, AudioEngine * _audioEngine PaDeviceIndex inDevIdx = -1; PaDeviceIndex outDevIdx = -1; - const PaDeviceInfo * di; for( int i = 0; i < Pa_GetDeviceCount(); ++i ) { - di = Pa_GetDeviceInfo( i ); + const auto di = Pa_GetDeviceInfo(i); if( di->name == device && Pa_GetHostApiInfo( di->hostApi )->name == backend ) { @@ -231,46 +229,11 @@ void AudioPortAudio::stopProcessing() } - - -void AudioPortAudio::applyQualitySettings() -{ - if( hqAudio() ) - { - - setSampleRate( Engine::audioEngine()->processingSampleRate() ); - int samples = audioEngine()->framesPerPeriod(); - - PaError err = Pa_OpenStream( - &m_paStream, - supportsCapture() ? &m_inputParameters : nullptr, // The input parameter - &m_outputParameters, // The outputparameter - sampleRate(), - samples, - paNoFlag, // Don't use any flags - _process_callback, // our callback function - this ); - - if( err != paNoError ) - { - printf( "Couldn't open PortAudio: %s\n", Pa_GetErrorText( err ) ); - return; - } - } - - AudioDevice::applyQualitySettings(); -} - - - -int AudioPortAudio::process_callback( - const float *_inputBuffer, - float * _outputBuffer, - unsigned long _framesPerBuffer ) +int AudioPortAudio::process_callback(const float* _inputBuffer, float* _outputBuffer, f_cnt_t _framesPerBuffer) { if( supportsCapture() ) { - audioEngine()->pushInputFrames( (sampleFrame*)_inputBuffer, _framesPerBuffer ); + audioEngine()->pushInputFrames( (SampleFrame*)_inputBuffer, _framesPerBuffer ); } if( m_stopped ) @@ -295,18 +258,13 @@ int AudioPortAudio::process_callback( } m_outBufSize = frames; } - const int min_len = std::min(static_cast(_framesPerBuffer), - m_outBufSize - m_outBufPos); - - float master_gain = audioEngine()->masterGain(); + const auto min_len = std::min(_framesPerBuffer, m_outBufSize - m_outBufPos); for( fpp_t frame = 0; frame < min_len; ++frame ) { for( ch_cnt_t chnl = 0; chnl < channels(); ++chnl ) { - ( _outputBuffer + frame * channels() )[chnl] = - AudioEngine::clip( m_outBuf[frame][chnl] * - master_gain ); + (_outputBuffer + frame * channels())[chnl] = AudioEngine::clip(m_outBuf[frame][chnl]); } } @@ -348,10 +306,9 @@ void AudioPortAudioSetupUtil::updateBackends() return; } - const PaHostApiInfo * hi; for( int i = 0; i < Pa_GetHostApiCount(); ++i ) { - hi = Pa_GetHostApiInfo( i ); + const auto hi = Pa_GetHostApiInfo(i); m_backendModel.addItem( hi->name ); } @@ -372,10 +329,9 @@ void AudioPortAudioSetupUtil::updateDevices() // get active backend const QString& backend = m_backendModel.currentText(); int hostApi = 0; - const PaHostApiInfo * hi; for( int i = 0; i < Pa_GetHostApiCount(); ++i ) { - hi = Pa_GetHostApiInfo( i ); + const auto hi = Pa_GetHostApiInfo(i); if( backend == hi->name ) { hostApi = i; @@ -385,10 +341,9 @@ void AudioPortAudioSetupUtil::updateDevices() // get devices for selected backend m_deviceModel.clear(); - const PaDeviceInfo * di; for( int i = 0; i < Pa_GetDeviceCount(); ++i ) { - di = Pa_GetDeviceInfo( i ); + const auto di = Pa_GetDeviceInfo(i); if( di->hostApi == hostApi ) { m_deviceModel.addItem( di->name ); @@ -428,7 +383,7 @@ AudioPortAudio::setupWidget::setupWidget( QWidget * _parent ) : form->addRow(tr("Device"), m_device); /* LcdSpinBoxModel * m = new LcdSpinBoxModel( ); - m->setRange( DEFAULT_CHANNELS, SURROUND_CHANNELS ); + m->setRange( DEFAULT_CHANNELS, DEFAULT_CHANNELS ); m->setStep( 2 ); m->setValue( ConfigManager::inst()->value( "audioportaudio", "channels" ).toInt() ); diff --git a/src/core/audio/AudioPulseAudio.cpp b/src/core/audio/AudioPulseAudio.cpp index 3ca8764cc47..aa434487154 100644 --- a/src/core/audio/AudioPulseAudio.cpp +++ b/src/core/audio/AudioPulseAudio.cpp @@ -32,7 +32,6 @@ #include "ConfigManager.h" #include "LcdSpinBox.h" #include "AudioEngine.h" -#include "gui_templates.h" #include "Engine.h" namespace lmms @@ -50,7 +49,7 @@ AudioPulseAudio::AudioPulseAudio( bool & _success_ful, AudioEngine* _audioEngin AudioDevice(std::clamp( ConfigManager::inst()->value("audiopa", "channels").toInt(), DEFAULT_CHANNELS, - SURROUND_CHANNELS), _audioEngine), + DEFAULT_CHANNELS), _audioEngine), m_s( nullptr ), m_quit( false ), m_convertEndian( false ) @@ -110,22 +109,6 @@ void AudioPulseAudio::stopProcessing() } - - -void AudioPulseAudio::applyQualitySettings() -{ - if( hqAudio() ) - { -// setSampleRate( engine::audioEngine()->processingSampleRate() ); - - } - - AudioDevice::applyQualitySettings(); -} - - - - /* This routine is called whenever the stream state changes */ static void stream_state_callback( pa_stream *s, void * userdata ) { @@ -247,7 +230,7 @@ void AudioPulseAudio::run() else { const fpp_t fpp = audioEngine()->framesPerPeriod(); - auto temp = new surroundSampleFrame[fpp]; + auto temp = new SampleFrame[fpp]; while( getNextBuffer( temp ) ) { } @@ -266,7 +249,7 @@ void AudioPulseAudio::run() void AudioPulseAudio::streamWriteCallback( pa_stream *s, size_t length ) { const fpp_t fpp = audioEngine()->framesPerPeriod(); - auto temp = new surroundSampleFrame[fpp]; + auto temp = new SampleFrame[fpp]; auto pcmbuf = (int_sample_t*)pa_xmalloc(fpp * channels() * sizeof(int_sample_t)); size_t fd = 0; @@ -278,10 +261,7 @@ void AudioPulseAudio::streamWriteCallback( pa_stream *s, size_t length ) m_quit = true; break; } - int bytes = convertToS16( temp, frames, - audioEngine()->masterGain(), - pcmbuf, - m_convertEndian ); + int bytes = convertToS16(temp, frames, pcmbuf, m_convertEndian); if( bytes > 0 ) { pa_stream_write( m_s, pcmbuf, bytes, nullptr, 0, @@ -318,7 +298,7 @@ AudioPulseAudio::setupWidget::setupWidget( QWidget * _parent ) : form->addRow(tr("Device"), m_device); auto m = new gui::LcdSpinBoxModel(); - m->setRange( DEFAULT_CHANNELS, SURROUND_CHANNELS ); + m->setRange(DEFAULT_CHANNELS, DEFAULT_CHANNELS); m->setStep( 2 ); m->setValue( ConfigManager::inst()->value( "audiopa", "channels" ).toInt() ); diff --git a/src/core/audio/AudioSampleRecorder.cpp b/src/core/audio/AudioSampleRecorder.cpp index f60248c5014..0e51c9d2d6c 100644 --- a/src/core/audio/AudioSampleRecorder.cpp +++ b/src/core/audio/AudioSampleRecorder.cpp @@ -67,41 +67,27 @@ f_cnt_t AudioSampleRecorder::framesRecorded() const return frames; } - - - -void AudioSampleRecorder::createSampleBuffer( SampleBuffer** sampleBuf ) +std::shared_ptr AudioSampleRecorder::createSampleBuffer() { const f_cnt_t frames = framesRecorded(); // create buffer to store all recorded buffers in - auto data = new sampleFrame[frames]; - // make sure buffer is cleaned up properly at the end... - sampleFrame * data_ptr = data; - - - assert( data != nullptr ); + auto bigBuffer = std::vector(frames); // now copy all buffers into big buffer - for( BufferList::ConstIterator it = m_buffers.begin(); - it != m_buffers.end(); ++it ) + auto framesCopied = 0; + for (const auto& [buf, numFrames] : m_buffers) { - memcpy( data_ptr, ( *it ).first, ( *it ).second * - sizeof( sampleFrame ) ); - data_ptr += ( *it ).second; + std::copy_n(buf, numFrames, bigBuffer.begin() + framesCopied); + framesCopied += numFrames; } + // create according sample-buffer out of big buffer - *sampleBuf = new SampleBuffer( data, frames ); - ( *sampleBuf )->setSampleRate( sampleRate() ); - delete[] data; + return std::make_shared(std::move(bigBuffer), sampleRate()); } - - - -void AudioSampleRecorder::writeBuffer( const surroundSampleFrame * _ab, - const fpp_t _frames, const float ) +void AudioSampleRecorder::writeBuffer(const SampleFrame* _ab, const fpp_t _frames) { - auto buf = new sampleFrame[_frames]; + auto buf = new SampleFrame[_frames]; for( fpp_t frame = 0; frame < _frames; ++frame ) { for( ch_cnt_t chnl = 0; chnl < DEFAULT_CHANNELS; ++chnl ) diff --git a/src/core/audio/AudioSdl.cpp b/src/core/audio/AudioSdl.cpp index 12aa97d6385..8f533119c8a 100644 --- a/src/core/audio/AudioSdl.cpp +++ b/src/core/audio/AudioSdl.cpp @@ -23,35 +23,33 @@ */ #include "AudioSdl.h" +#include "lmms_basics.h" #ifdef LMMS_HAVE_SDL #include #include +#include #include #include "AudioEngine.h" #include "ConfigManager.h" -#include "gui_templates.h" namespace lmms { +constexpr auto SectionSDL = "audiosdl"; +constexpr auto PlaybackDeviceSDL = "device"; +constexpr auto InputDeviceSDL = "inputdevice"; + AudioSdl::AudioSdl( bool & _success_ful, AudioEngine* _audioEngine ) : AudioDevice( DEFAULT_CHANNELS, _audioEngine ), - m_outBuf( new surroundSampleFrame[audioEngine()->framesPerPeriod()] ) + m_outBuf(new SampleFrame[audioEngine()->framesPerPeriod()]) { _success_ful = false; -#ifdef LMMS_HAVE_SDL2 m_currentBufferFramesCount = 0; m_currentBufferFramePos = 0; -#else - m_convertedBufSize = audioEngine()->framesPerPeriod() * channels() - * sizeof( int_sample_t ); - m_convertedBufPos = 0; - m_convertedBuf = new Uint8[m_convertedBufSize]; -#endif if( SDL_Init( SDL_INIT_AUDIO | SDL_INIT_NOPARACHUTE ) < 0 ) { @@ -60,67 +58,63 @@ AudioSdl::AudioSdl( bool & _success_ful, AudioEngine* _audioEngine ) : } m_audioHandle.freq = sampleRate(); -#ifdef LMMS_HAVE_SDL2 m_audioHandle.format = AUDIO_F32SYS; // we want it in byte-order // of system, so we don't have // to convert the buffers -#else - m_audioHandle.format = AUDIO_S16SYS; // we want it in byte-order - // of system, so we don't have - // to convert the buffers -#endif + m_audioHandle.channels = channels(); - m_audioHandle.samples = std::max(1024, audioEngine()->framesPerPeriod() * 2); + m_audioHandle.samples = std::max(f_cnt_t{1024}, audioEngine()->framesPerPeriod() * 2); m_audioHandle.callback = sdlAudioCallback; m_audioHandle.userdata = this; SDL_AudioSpec actual; -#ifdef LMMS_HAVE_SDL2 - m_outputDevice = SDL_OpenAudioDevice (nullptr, - 0, - &m_audioHandle, - &actual, - 0); - if (m_outputDevice == 0) { - qCritical( "Couldn't open SDL-audio: %s\n", SDL_GetError() ); - return; - } -#else - // open the audio device, forcing the desired format - if( SDL_OpenAudio( &m_audioHandle, &actual ) < 0 ) + const auto playbackDevice = ConfigManager::inst()->value(SectionSDL, PlaybackDeviceSDL).toStdString(); + const bool isDefaultPlayback = playbackDevice.empty(); + + // Try with the configured device + const auto playbackDeviceCStr = isDefaultPlayback ? nullptr : playbackDevice.c_str(); + m_outputDevice = SDL_OpenAudioDevice(playbackDeviceCStr, 0, &m_audioHandle, &actual, 0); + + // If we did not get a device ID try again with the default device if we did not try that before + if (m_outputDevice == 0 && !isDefaultPlayback) { + m_outputDevice = SDL_OpenAudioDevice(nullptr, 0, &m_audioHandle, &actual, 0); + } + + if (m_outputDevice == 0) { qCritical( "Couldn't open SDL-audio: %s\n", SDL_GetError() ); return; } - m_outConvertEndian = ( m_audioHandle.format != actual.format ); -#endif - - _success_ful = true; -#ifdef LMMS_HAVE_SDL2 // Workaround for a race condition that causes SDL to segfault SDL_Delay(50); m_inputAudioHandle = m_audioHandle; m_inputAudioHandle.callback = sdlInputAudioCallback; - m_inputDevice = SDL_OpenAudioDevice (nullptr, - 1, - &m_inputAudioHandle, - &actual, - 0); + const auto inputDevice = ConfigManager::inst()->value(SectionSDL, InputDeviceSDL).toStdString(); + const bool isDefaultInput = inputDevice.empty(); + + // Try with the configured device + const auto inputDeviceCStr = isDefaultInput ? nullptr : inputDevice.c_str(); + m_inputDevice = SDL_OpenAudioDevice (inputDeviceCStr, 1, &m_inputAudioHandle, &actual, 0); + + // If we did not get a device ID try again with the default device if we did not try that before + if (m_inputDevice == 0 && !isDefaultInput) + { + m_inputDevice = SDL_OpenAudioDevice(nullptr, 1, &m_inputAudioHandle, &actual, 0); + } + if (m_inputDevice != 0) { m_supportsCapture = true; } else { m_supportsCapture = false; qWarning ( "Couldn't open SDL capture device: %s\n", SDL_GetError ()); } - -#endif } @@ -130,15 +124,10 @@ AudioSdl::~AudioSdl() { stopProcessing(); -#ifdef LMMS_HAVE_SDL2 if (m_inputDevice != 0) SDL_CloseAudioDevice(m_inputDevice); if (m_outputDevice != 0) SDL_CloseAudioDevice(m_outputDevice); -#else - SDL_CloseAudio(); - delete[] m_convertedBuf; -#endif SDL_Quit(); @@ -152,12 +141,8 @@ void AudioSdl::startProcessing() { m_stopped = false; -#ifdef LMMS_HAVE_SDL2 SDL_PauseAudioDevice (m_outputDevice, 0); SDL_PauseAudioDevice (m_inputDevice, 0); -#else - SDL_PauseAudio( 0 ); -#endif } @@ -165,13 +150,8 @@ void AudioSdl::startProcessing() void AudioSdl::stopProcessing() { -#ifdef LMMS_HAVE_SDL2 if( SDL_GetAudioDeviceStatus(m_outputDevice) == SDL_AUDIO_PLAYING ) -#else - if( SDL_GetAudioStatus() == SDL_AUDIO_PLAYING ) -#endif { -#ifdef LMMS_HAVE_SDL2 SDL_LockAudioDevice (m_inputDevice); SDL_LockAudioDevice (m_outputDevice); @@ -182,47 +162,9 @@ void AudioSdl::stopProcessing() SDL_UnlockAudioDevice (m_inputDevice); SDL_UnlockAudioDevice (m_outputDevice); -#else - SDL_LockAudio(); - m_stopped = true; - SDL_PauseAudio( 1 ); - SDL_UnlockAudio(); -#endif - } } - - - -void AudioSdl::applyQualitySettings() -{ - // Better than if (0) -#if 0 - if( 0 )//hqAudio() ) - { - SDL_CloseAudio(); - - setSampleRate( Engine::audioEngine()->processingSampleRate() ); - - m_audioHandle.freq = sampleRate(); - - SDL_AudioSpec actual; - - // open the audio device, forcing the desired format - if( SDL_OpenAudio( &m_audioHandle, &actual ) < 0 ) - { - qCritical( "Couldn't open SDL-audio: %s\n", SDL_GetError() ); - } - } -#endif - - AudioDevice::applyQualitySettings(); -} - - - - void AudioSdl::sdlAudioCallback( void * _udata, Uint8 * _buf, int _len ) { auto _this = static_cast(_udata); @@ -242,7 +184,6 @@ void AudioSdl::sdlAudioCallback( Uint8 * _buf, int _len ) } // SDL2: process float samples -#ifdef LMMS_HAVE_SDL2 while( _len ) { if( m_currentBufferFramePos == 0 ) @@ -257,58 +198,19 @@ void AudioSdl::sdlAudioCallback( Uint8 * _buf, int _len ) m_currentBufferFramesCount = frames; } - const uint min_frames_count = std::min(_len/sizeof(sampleFrame), + const uint min_frames_count = std::min(_len/sizeof(SampleFrame), m_currentBufferFramesCount - m_currentBufferFramePos); - const float gain = audioEngine()->masterGain(); - for (uint f = 0; f < min_frames_count; f++) - { - (m_outBuf + m_currentBufferFramePos)[f][0] *= gain; - (m_outBuf + m_currentBufferFramePos)[f][1] *= gain; - } - - memcpy( _buf, m_outBuf + m_currentBufferFramePos, min_frames_count*sizeof(sampleFrame) ); - _buf += min_frames_count*sizeof(sampleFrame); - _len -= min_frames_count*sizeof(sampleFrame); + memcpy( _buf, m_outBuf + m_currentBufferFramePos, min_frames_count*sizeof(SampleFrame) ); + _buf += min_frames_count*sizeof(SampleFrame); + _len -= min_frames_count*sizeof(SampleFrame); m_currentBufferFramePos += min_frames_count; m_currentBufferFramePos %= m_currentBufferFramesCount; } -#else - while( _len ) - { - if( m_convertedBufPos == 0 ) - { - // frames depend on the sample rate - const fpp_t frames = getNextBuffer( m_outBuf ); - if( !frames ) - { - m_stopped = true; - memset( _buf, 0, _len ); - return; - } - m_convertedBufSize = frames * channels() - * sizeof( int_sample_t ); - - convertToS16( m_outBuf, frames, - audioEngine()->masterGain(), - (int_sample_t *)m_convertedBuf, - m_outConvertEndian ); - } - const int min_len = std::min(_len, m_convertedBufSize - - m_convertedBufPos); - memcpy( _buf, m_convertedBuf + m_convertedBufPos, min_len ); - _buf += min_len; - _len -= min_len; - m_convertedBufPos += min_len; - m_convertedBufPos %= m_convertedBufSize; - } -#endif // LMMS_HAVE_SDL2 } -#ifdef LMMS_HAVE_SDL2 - void AudioSdl::sdlInputAudioCallback(void *_udata, Uint8 *_buf, int _len) { auto _this = static_cast(_udata); @@ -316,23 +218,31 @@ void AudioSdl::sdlInputAudioCallback(void *_udata, Uint8 *_buf, int _len) { } void AudioSdl::sdlInputAudioCallback(Uint8 *_buf, int _len) { - auto samples_buffer = (sampleFrame*)_buf; - fpp_t frames = _len / sizeof ( sampleFrame ); + auto samples_buffer = (SampleFrame*)_buf; + fpp_t frames = _len / sizeof ( SampleFrame ); audioEngine()->pushInputFrames (samples_buffer, frames); } -#endif +QString AudioSdl::setupWidget::s_systemDefaultDevice = AudioDeviceSetupWidget::tr("[System Default]"); AudioSdl::setupWidget::setupWidget( QWidget * _parent ) : AudioDeviceSetupWidget( AudioSdl::name(), _parent ) { QFormLayout * form = new QFormLayout(this); + form->setRowWrapPolicy(QFormLayout::WrapLongRows); + + m_playbackDeviceComboBox = new QComboBox(this); + + populatePlaybackDeviceComboBox(); + + form->addRow(tr("Playback device"), m_playbackDeviceComboBox); + + m_inputDeviceComboBox = new QComboBox(this); - QString dev = ConfigManager::inst()->value( "audiosdl", "device" ); - m_device = new QLineEdit( dev, this ); + populateInputDeviceComboBox(); - form->addRow(tr("Device"), m_device); + form->addRow(tr("Input device"), m_inputDeviceComboBox); } @@ -340,8 +250,68 @@ AudioSdl::setupWidget::setupWidget( QWidget * _parent ) : void AudioSdl::setupWidget::saveSettings() { - ConfigManager::inst()->setValue( "audiosdl", "device", - m_device->text() ); + const auto currentPlaybackDevice = m_playbackDeviceComboBox->currentText(); + if (currentPlaybackDevice == s_systemDefaultDevice) + { + // Represent the default playback device with an empty string + ConfigManager::inst()->setValue(SectionSDL, PlaybackDeviceSDL, ""); + } + else if (!currentPlaybackDevice.isEmpty()) + { + ConfigManager::inst()->setValue(SectionSDL, PlaybackDeviceSDL, currentPlaybackDevice); + } + + const auto currentInputDevice = m_inputDeviceComboBox->currentText(); + if (currentInputDevice == s_systemDefaultDevice) + { + // Represent the default input device with an empty string + ConfigManager::inst()->setValue(SectionSDL, InputDeviceSDL, ""); + } + else if (!currentInputDevice.isEmpty()) + { + ConfigManager::inst()->setValue(SectionSDL, InputDeviceSDL, currentInputDevice); + } +} + +void AudioSdl::setupWidget::populatePlaybackDeviceComboBox() +{ + m_playbackDeviceComboBox->addItem(s_systemDefaultDevice); + + QStringList playbackDevices; + const int numberOfPlaybackDevices = SDL_GetNumAudioDevices(0); + for (int i = 0; i < numberOfPlaybackDevices; ++i) + { + const QString deviceName = SDL_GetAudioDeviceName(i, 0); + playbackDevices.append(deviceName); + } + + playbackDevices.sort(); + + m_playbackDeviceComboBox->addItems(playbackDevices); + + const auto playbackDevice = ConfigManager::inst()->value(SectionSDL, PlaybackDeviceSDL); + m_playbackDeviceComboBox->setCurrentText(playbackDevice.isEmpty() ? s_systemDefaultDevice : playbackDevice); +} + +void AudioSdl::setupWidget::populateInputDeviceComboBox() +{ + m_inputDeviceComboBox->addItem(s_systemDefaultDevice); + + QStringList inputDevices; + const int numberOfInputDevices = SDL_GetNumAudioDevices(1); + for (int i = 0; i < numberOfInputDevices; ++i) + { + const QString deviceName = SDL_GetAudioDeviceName(i, 1); + inputDevices.append(deviceName); + } + + inputDevices.sort(); + + m_inputDeviceComboBox->addItems(inputDevices); + + // Set the current device to the one in the configuration + const auto inputDevice = ConfigManager::inst()->value(SectionSDL, InputDeviceSDL); + m_inputDeviceComboBox->setCurrentText(inputDevice.isEmpty() ? s_systemDefaultDevice : inputDevice); } diff --git a/src/core/audio/AudioSndio.cpp b/src/core/audio/AudioSndio.cpp index bb9b249f87b..95fab473a79 100644 --- a/src/core/audio/AudioSndio.cpp +++ b/src/core/audio/AudioSndio.cpp @@ -35,7 +35,6 @@ #include "LcdSpinBox.h" #include "AudioEngine.h" #include "Engine.h" -#include "gui_templates.h" #include "ConfigManager.h" @@ -47,7 +46,7 @@ AudioSndio::AudioSndio(bool & _success_ful, AudioEngine * _audioEngine) : AudioDevice(std::clamp( ConfigManager::inst()->value("audiosndio", "channels").toInt(), DEFAULT_CHANNELS, - SURROUND_CHANNELS), _audioEngine), + DEFAULT_CHANNELS), _audioEngine), m_convertEndian ( false ) { _success_ful = false; @@ -140,23 +139,9 @@ void AudioSndio::stopProcessing() stopProcessingThread( this ); } - -void AudioSndio::applyQualitySettings() -{ - if( hqAudio() ) - { - setSampleRate( Engine::audioEngine()->processingSampleRate() ); - - /* change sample rate to sampleRate() */ - } - - AudioDevice::applyQualitySettings(); -} - - void AudioSndio::run() { - surroundSampleFrame * temp = new surroundSampleFrame[audioEngine()->framesPerPeriod()]; + SampleFrame* temp = new SampleFrame[audioEngine()->framesPerPeriod()]; int_sample_t * outbuf = new int_sample_t[audioEngine()->framesPerPeriod() * channels()]; while( true ) @@ -167,8 +152,7 @@ void AudioSndio::run() break; } - uint bytes = convertToS16( temp, frames, - audioEngine()->masterGain(), outbuf, m_convertEndian ); + uint bytes = convertToS16(temp, frames, outbuf, m_convertEndian); if( sio_write( m_hdl, outbuf, bytes ) != bytes ) { break; @@ -189,7 +173,7 @@ AudioSndio::setupWidget::setupWidget( QWidget * _parent ) : form->addRow(tr("Device"), m_device); gui::LcdSpinBoxModel * m = new gui::LcdSpinBoxModel( /* this */ ); - m->setRange( DEFAULT_CHANNELS, SURROUND_CHANNELS ); + m->setRange(DEFAULT_CHANNELS, DEFAULT_CHANNELS); m->setStep( 2 ); m->setValue( ConfigManager::inst()->value( "audiosndio", "channels" ).toInt() ); diff --git a/src/core/audio/AudioSoundIo.cpp b/src/core/audio/AudioSoundIo.cpp index 36a1929dfdf..c7fa380e402 100644 --- a/src/core/audio/AudioSoundIo.cpp +++ b/src/core/audio/AudioSoundIo.cpp @@ -32,7 +32,6 @@ #include "Engine.h" #include "debug.h" #include "ConfigManager.h" -#include "gui_templates.h" #include "ComboBox.h" #include "AudioEngine.h" @@ -43,7 +42,7 @@ AudioSoundIo::AudioSoundIo( bool & outSuccessful, AudioEngine * _audioEngine ) : AudioDevice(std::clamp( ConfigManager::inst()->value("audiosoundio", "channels").toInt(), DEFAULT_CHANNELS, - SURROUND_CHANNELS), _audioEngine) + DEFAULT_CHANNELS), _audioEngine) { outSuccessful = false; m_soundio = nullptr; @@ -70,7 +69,6 @@ AudioSoundIo::AudioSoundIo( bool & outSuccessful, AudioEngine * _audioEngine ) : const QString& configDeviceId = ConfigManager::inst()->value( "audiosoundio", "out_device_id" ); const QString& configDeviceRaw = ConfigManager::inst()->value( "audiosoundio", "out_device_raw" ); - int err; int outDeviceCount = 0; int backendCount = soundio_backend_count(m_soundio); for (int i = 0; i < backendCount; i += 1) @@ -78,11 +76,7 @@ AudioSoundIo::AudioSoundIo( bool & outSuccessful, AudioEngine * _audioEngine ) : SoundIoBackend backend = soundio_get_backend(m_soundio, i); if (configBackend == soundio_backend_name(backend)) { - if ((err = soundio_connect_backend(m_soundio, backend))) - { - // error occurred, leave outDeviceCount 0 - } - else + if (!soundio_connect_backend(m_soundio, backend)) { soundio_flush_events(m_soundio); if (m_disconnectErr) @@ -99,7 +93,7 @@ AudioSoundIo::AudioSoundIo( bool & outSuccessful, AudioEngine * _audioEngine ) : if (outDeviceCount <= 0) { // try connecting to the default backend - if ((err = soundio_connect(m_soundio))) + if (int err = soundio_connect(m_soundio)) { fprintf(stderr, "Unable to initialize soundio: %s\n", soundio_strerror(err)); return; @@ -180,7 +174,7 @@ AudioSoundIo::AudioSoundIo( bool & outSuccessful, AudioEngine * _audioEngine ) : m_outstream->layout = *soundio_channel_layout_get_default(channels()); m_outstream->format = SoundIoFormatFloat32NE; - if ((err = soundio_outstream_open(m_outstream))) + if (int err = soundio_outstream_open(m_outstream)) { fprintf(stderr, "Unable to initialize soundio: %s\n", soundio_strerror(err)); return; @@ -215,17 +209,15 @@ AudioSoundIo::~AudioSoundIo() void AudioSoundIo::startProcessing() { - int err; - m_outBufFrameIndex = 0; m_outBufFramesTotal = 0; m_outBufSize = audioEngine()->framesPerPeriod(); - m_outBuf = new surroundSampleFrame[m_outBufSize]; + m_outBuf = new SampleFrame[m_outBufSize]; if (! m_outstreamStarted) { - if ((err = soundio_outstream_start(m_outstream))) + if (int err = soundio_outstream_start(m_outstream)) { fprintf(stderr, "AudioSoundIo::startProcessing() :: soundio unable to start stream: %s\n", @@ -237,7 +229,7 @@ void AudioSoundIo::startProcessing() m_stopped = false; - if ((err = soundio_outstream_pause(m_outstream, false))) + if (int err = soundio_outstream_pause(m_outstream, false)) { m_stopped = true; fprintf(stderr, @@ -248,12 +240,10 @@ void AudioSoundIo::startProcessing() void AudioSoundIo::stopProcessing() { - int err; - m_stopped = true; if (m_outstream) { - if ((err = soundio_outstream_pause(m_outstream, true))) + if (int err = soundio_outstream_pause(m_outstream, true)) { fprintf(stderr, "AudioSoundIo::stopProcessing() :: pausing result error: %s\n", @@ -282,18 +272,14 @@ void AudioSoundIo::writeCallback(int frameCountMin, int frameCountMax) { if (m_stopped) {return;} const struct SoundIoChannelLayout *layout = &m_outstream->layout; - SoundIoChannelArea *areas; + SoundIoChannelArea* areas; int bytesPerSample = m_outstream->bytes_per_sample; - int err; - - const float gain = audioEngine()->masterGain(); - int framesLeft = frameCountMax; while (framesLeft > 0) { int frameCount = framesLeft; - if ((err = soundio_outstream_begin_write(m_outstream, &areas, &frameCount))) + if (int err = soundio_outstream_begin_write(m_outstream, &areas, &frameCount)) { errorCallback(err); return; @@ -328,14 +314,14 @@ void AudioSoundIo::writeCallback(int frameCountMin, int frameCountMax) for (int channel = 0; channel < layout->channel_count; channel += 1) { - float sample = gain * m_outBuf[m_outBufFrameIndex][channel]; + float sample = m_outBuf[m_outBufFrameIndex][channel]; memcpy(areas[channel].ptr, &sample, bytesPerSample); areas[channel].ptr += areas[channel].step; } m_outBufFrameIndex += 1; } - if ((err = soundio_outstream_end_write(m_outstream))) + if (int err = soundio_outstream_end_write(m_outstream)) { errorCallback(err); return; @@ -375,11 +361,10 @@ void AudioSoundIo::setupWidget::reconnectSoundIo() soundio_disconnect(m_soundio); - int err; int backend_index = m_backendModel.findText(configBackend); if (backend_index < 0) { - if ((err = soundio_connect(m_soundio))) + if (int err = soundio_connect(m_soundio)) { fprintf(stderr, "soundio: unable to connect backend: %s\n", soundio_strerror(err)); return; @@ -390,11 +375,11 @@ void AudioSoundIo::setupWidget::reconnectSoundIo() else { SoundIoBackend backend = soundio_get_backend(m_soundio, backend_index); - if ((err = soundio_connect_backend(m_soundio, backend))) + if (int err = soundio_connect_backend(m_soundio, backend)) { fprintf(stderr, "soundio: unable to connect %s backend: %s\n", soundio_backend_name(backend), soundio_strerror(err)); - if ((err = soundio_connect(m_soundio))) + if (int err = soundio_connect(m_soundio)) { fprintf(stderr, "soundio: unable to connect backend: %s\n", soundio_strerror(err)); return; diff --git a/src/core/fft_helpers.cpp b/src/core/fft_helpers.cpp index 35906e8d3d1..c2431034170 100644 --- a/src/core/fft_helpers.cpp +++ b/src/core/fft_helpers.cpp @@ -122,13 +122,13 @@ int precomputeWindow(float *window, unsigned int length, FFTWindow type, bool no gain = 1; return 0; case FFTWindow::BlackmanHarris: - a0 = 0.35875; - a1 = 0.48829; - a2 = 0.14128; - a3 = 0.01168; + a0 = 0.35875f; + a1 = 0.48829f; + a2 = 0.14128f; + a3 = 0.01168f; break; case FFTWindow::Hamming: - a0 = 0.54; + a0 = 0.54f; a1 = 1.0 - a0; a2 = 0; a3 = 0; @@ -204,11 +204,11 @@ int compressbands(const float *absspec_buffer, float *compressedband, int num_ol float j_min = (i * ratio) + bottom; - if (j_min < 0) {j_min = bottom;} + if (j_min < 0) { j_min = static_cast(bottom); } float j_max = j_min + ratio; - for (float j = (int)j_min; j <= j_max; j++) + for (float j = std::floor(j_min); j <= j_max; j++) { compressedband[i] += absspec_buffer[(int)j]; } diff --git a/src/core/lv2/Lv2ControlBase.cpp b/src/core/lv2/Lv2ControlBase.cpp index 64cdc51fddc..0147ebd6e6b 100644 --- a/src/core/lv2/Lv2ControlBase.cpp +++ b/src/core/lv2/Lv2ControlBase.cpp @@ -59,7 +59,7 @@ Lv2ControlBase::Lv2ControlBase(Model* that, const QString &uri) : else { qCritical() << "No Lv2 plugin found for URI" << uri; - m_valid = false; + throw std::runtime_error("No Lv2 plugin found for given URI"); } } @@ -77,26 +77,14 @@ void Lv2ControlBase::init(Model* meAsModel) while (channelsLeft > 0) { std::unique_ptr newOne = std::make_unique(m_plugin, meAsModel); - if (newOne->isValid()) - { - channelsLeft -= std::max( - 1 + static_cast(newOne->inPorts().m_right), - 1 + static_cast(newOne->outPorts().m_right)); - Q_ASSERT(channelsLeft >= 0); - m_procs.push_back(std::move(newOne)); - } - else - { - qCritical() << "Failed instantiating LV2 processor"; - m_valid = false; - channelsLeft = 0; - } - } - if (m_valid) - { - m_channelsPerProc = DEFAULT_CHANNELS / m_procs.size(); - linkAllModels(); + channelsLeft -= std::max( + 1 + static_cast(newOne->inPorts().m_right), + 1 + static_cast(newOne->outPorts().m_right)); + Q_ASSERT(channelsLeft >= 0); + m_procs.push_back(std::move(newOne)); } + m_channelsPerProc = DEFAULT_CHANNELS / m_procs.size(); + linkAllModels(); } @@ -149,7 +137,7 @@ void Lv2ControlBase::copyModelsToLmms() const -void Lv2ControlBase::copyBuffersFromLmms(const sampleFrame *buf, fpp_t frames) { +void Lv2ControlBase::copyBuffersFromLmms(const SampleFrame* buf, fpp_t frames) { unsigned firstChan = 0; // tell the procs which channels they shall read from for (const auto& c : m_procs) { @@ -161,7 +149,7 @@ void Lv2ControlBase::copyBuffersFromLmms(const sampleFrame *buf, fpp_t frames) { -void Lv2ControlBase::copyBuffersToLmms(sampleFrame *buf, fpp_t frames) const { +void Lv2ControlBase::copyBuffersToLmms(SampleFrame* buf, fpp_t frames) const { unsigned firstChan = 0; // tell the procs which channels they shall write to for (const auto& c : m_procs) { c->copyBuffersToCore(buf, firstChan, m_channelsPerProc, frames); diff --git a/src/core/lv2/Lv2Evbuf.cpp b/src/core/lv2/Lv2Evbuf.cpp index acfb9b8aa62..486910feed1 100644 --- a/src/core/lv2/Lv2Evbuf.cpp +++ b/src/core/lv2/Lv2Evbuf.cpp @@ -34,7 +34,7 @@ #include #include -#include +#include namespace lmms { @@ -129,12 +129,11 @@ lv2_evbuf_next(LV2_Evbuf_Iterator iter) LV2_Evbuf* evbuf = iter.evbuf; uint32_t offset = iter.offset; - uint32_t size; - size = ((LV2_Atom_Event*) - ((char*)LV2_ATOM_CONTENTS(LV2_Atom_Sequence, &evbuf->buf.atom) - + offset))->body.size; - offset += lv2_evbuf_pad_size(sizeof(LV2_Atom_Event) + size); + const auto contents = static_cast(LV2_ATOM_CONTENTS(LV2_Atom_Sequence, &evbuf->buf.atom)) + offset; + const uint32_t size = reinterpret_cast(contents)->body.size; + + offset += lv2_evbuf_pad_size(sizeof(LV2_Atom_Event) + size); LV2_Evbuf_Iterator next = { evbuf, offset }; return next; } diff --git a/src/core/lv2/Lv2Manager.cpp b/src/core/lv2/Lv2Manager.cpp index 6a1b2a8af20..9807379e44c 100644 --- a/src/core/lv2/Lv2Manager.cpp +++ b/src/core/lv2/Lv2Manager.cpp @@ -1,7 +1,7 @@ /* * Lv2Manager.cpp - Implementation of Lv2Manager class * - * Copyright (c) 2018-2023 Johannes Lorenz + * Copyright (c) 2018-2024 Johannes Lorenz * * This file is part of LMMS - https://lmms.io * @@ -29,13 +29,14 @@ #include #include #include -#include -#include -#include +#include +#include +#include #include #include #include "AudioEngine.h" +#include "ConfigManager.h" #include "Engine.h" #include "Plugin.h" #include "Lv2ControlBase.h" @@ -47,7 +48,7 @@ namespace lmms { -const std::set Lv2Manager::pluginBlacklist = +const std::set Lv2Manager::unstablePlugins = { // github.com/calf-studio-gear/calf, #278 "http://calf.sourceforge.net/plugins/Analyzer", @@ -67,7 +68,13 @@ const std::set Lv2Manager::pluginBlacklist = "http://drobilla.net/plugins/blop/square", "http://drobilla.net/plugins/blop/triangle", - // Visualization, meters, and scopes etc., won't work until we have gui support + // unstable + "urn:juced:DrumSynth" +}; + +const std::set Lv2Manager::pluginsOnlyUsefulWithUi = +{ + // Visualization, meters, and scopes etc., won't work if UI is disabled "http://distrho.sf.net/plugins/ProM", "http://distrho.sf.net/plugins/glBars", "http://gareus.org/oss/lv2/meters#spectr30mono", @@ -132,13 +139,10 @@ const std::set Lv2Manager::pluginBlacklist = "urn:juce:TalFilter2", "urn:juce:Vex", "http://zynaddsubfx.sourceforge.net", - "http://geontime.com/geonkick/single", - - // unstable - "urn:juced:DrumSynth" + "http://geontime.com/geonkick/single" }; -const std::set Lv2Manager::pluginBlacklistBuffersizeLessThan32 = +const std::set Lv2Manager::unstablePluginsBuffersizeLessEqual32 = { "http://moddevices.com/plugins/mod-devel/2Voices", "http://moddevices.com/plugins/mod-devel/Capo", @@ -237,7 +241,7 @@ void Lv2Manager::initPlugins() QElapsedTimer timer; timer.start(); - unsigned blacklisted = 0; + unsigned blocked = 0; LILV_FOREACH(plugins, itr, plugins) { const LilvPlugin* curPlug = lilv_plugins_get(plugins, itr); @@ -266,9 +270,9 @@ void Lv2Manager::initPlugins() { if(std::any_of(issues.begin(), issues.end(), [](const PluginIssue& iss) { - return iss.type() == PluginIssueType::Blacklisted; })) + return iss.type() == PluginIssueType::Blocked; })) { - ++blacklisted; + ++blocked; } } ++pluginCount; @@ -295,19 +299,19 @@ void Lv2Manager::initPlugins() } // TODO: might be better in the LMMS core - if(Engine::ignorePluginBlacklist()) + if(ConfigManager::enableBlockedPlugins()) { qWarning() << - "WARNING! Plugin blacklist disabled! If you want to use the blacklist,\n" - " please set environment variable \"LMMS_IGNORE_BLACKLIST\" to empty or\n" + "WARNING! Blocked plugins enabled! If you want to disable them,\n" + " please set environment variable \"LMMS_ENABLE_BLOCKED_PLUGINS\" to empty or\n" " do not set it."; } - else if(blacklisted > 0) + else if(blocked > 0) { qDebug() << - "Lv2 Plugins blacklisted:" << blacklisted << "of" << pluginCount << "\n" - " If you want to ignore the blacklist (dangerous!), please set\n" - " environment variable \"LMMS_IGNORE_BLACKLIST\" to nonempty."; + "Blocked Lv2 Plugins:" << blocked << "of" << pluginCount << "\n" + " If you want to enable them (dangerous!), please set\n" + " environment variable \"LMMS_ENABLE_BLOCKED_PLUGINS\" to nonempty."; } } @@ -331,6 +335,14 @@ AutoLilvNodes Lv2Manager::findNodes(const LilvNode *subject, +bool Lv2Manager::wantUi() +{ + return false; +} + + + + // unused + untested yet bool Lv2Manager::isSubclassOf(const LilvPluginClass* clvss, const char* uriStr) { diff --git a/src/core/lv2/Lv2Ports.cpp b/src/core/lv2/Lv2Ports.cpp index a4625936e62..bdb0d4f006e 100644 --- a/src/core/lv2/Lv2Ports.cpp +++ b/src/core/lv2/Lv2Ports.cpp @@ -27,13 +27,14 @@ #ifdef LMMS_HAVE_LV2 -#include -#include +#include +#include #include "Engine.h" #include "Lv2Basics.h" #include "Lv2Manager.h" #include "Lv2Evbuf.h" +#include "SampleFrame.h" namespace lmms::Lv2Ports @@ -311,7 +312,7 @@ Audio::Audio(std::size_t bufferSize, bool isSidechain) -void Audio::copyBuffersFromCore(const sampleFrame *lmmsBuf, +void Audio::copyBuffersFromCore(const SampleFrame* lmmsBuf, unsigned channel, fpp_t frames) { for (std::size_t f = 0; f < static_cast(frames); ++f) @@ -323,7 +324,7 @@ void Audio::copyBuffersFromCore(const sampleFrame *lmmsBuf, -void Audio::averageWithBuffersFromCore(const sampleFrame *lmmsBuf, +void Audio::averageWithBuffersFromCore(const SampleFrame* lmmsBuf, unsigned channel, fpp_t frames) { for (std::size_t f = 0; f < static_cast(frames); ++f) @@ -335,7 +336,7 @@ void Audio::averageWithBuffersFromCore(const sampleFrame *lmmsBuf, -void Audio::copyBuffersToCore(sampleFrame *lmmsBuf, +void Audio::copyBuffersToCore(SampleFrame* lmmsBuf, unsigned channel, fpp_t frames) const { for (std::size_t f = 0; f < static_cast(frames); ++f) diff --git a/src/core/lv2/Lv2Proc.cpp b/src/core/lv2/Lv2Proc.cpp index 158196fdbd2..7cd9d3a509b 100644 --- a/src/core/lv2/Lv2Proc.cpp +++ b/src/core/lv2/Lv2Proc.cpp @@ -1,7 +1,7 @@ /* * Lv2Proc.cpp - Lv2 processor class * - * Copyright (c) 2019-2022 Johannes Lorenz + * Copyright (c) 2019-2024 Johannes Lorenz * * This file is part of LMMS - https://lmms.io * @@ -27,10 +27,10 @@ #ifdef LMMS_HAVE_LV2 #include -#include -#include -#include -#include +#include +#include +#include +#include #include #include #include @@ -38,6 +38,7 @@ #include "AudioEngine.h" #include "AutomatableModel.h" #include "ComboBoxModel.h" +#include "ConfigManager.h" #include "Engine.h" #include "Lv2Features.h" #include "Lv2Manager.h" @@ -74,21 +75,21 @@ Plugin::Type Lv2Proc::check(const LilvPlugin *plugin, const char* pluginUri = lilv_node_as_uri(lilv_plugin_get_uri(plugin)); //qDebug() << "Checking plugin" << pluginUri << "..."; - // TODO: manage a global blacklist outside of the code + // TODO: manage a global list of blocked plugins outside of the code // for now, this will help // this is only a fix for the meantime - if (!Engine::ignorePluginBlacklist()) + if (!ConfigManager::enableBlockedPlugins()) { - const auto& pluginBlacklist = Lv2Manager::getPluginBlacklist(); - const auto& pluginBlacklist32 = Lv2Manager::getPluginBlacklistBuffersizeLessThan32(); - if(pluginBlacklist.find(pluginUri) != pluginBlacklist.end()) + if( // plugin unstable? + Lv2Manager::pluginIsUnstable(pluginUri) || + // plugins only useful with UI? + (!Lv2Manager::wantUi() && + Lv2Manager::pluginIsOnlyUsefulWithUi(pluginUri)) || + // plugin unstable with 32 or less fpp? + (Engine::audioEngine()->framesPerPeriod() <= 32 && + Lv2Manager::pluginIsUnstableWithBuffersizeLessEqual32(pluginUri)) ) { - issues.emplace_back(PluginIssueType::Blacklisted); - } - else if(Engine::audioEngine()->framesPerPeriod() <= 32 && - pluginBlacklist32.find(pluginUri) != pluginBlacklist32.end()) - { - issues.emplace_back(PluginIssueType::Blacklisted); // currently no special blacklist category + issues.emplace_back(PluginIssueType::Blocked); } } @@ -324,7 +325,7 @@ void Lv2Proc::copyModelsToCore() -void Lv2Proc::copyBuffersFromCore(const sampleFrame *buf, +void Lv2Proc::copyBuffersFromCore(const SampleFrame* buf, unsigned firstChan, unsigned num, fpp_t frames) { @@ -349,7 +350,7 @@ void Lv2Proc::copyBuffersFromCore(const sampleFrame *buf, -void Lv2Proc::copyBuffersToCore(sampleFrame* buf, +void Lv2Proc::copyBuffersToCore(SampleFrame* buf, unsigned firstChan, unsigned num, fpp_t frames) const { @@ -425,12 +426,8 @@ void Lv2Proc::handleMidiInputEvent(const MidiEvent &event, const TimePos &time, AutomatableModel *Lv2Proc::modelAtPort(const QString &uri) { - // unused currently - AutomatableModel *mod; - auto itr = m_connectedModels.find(uri.toUtf8().data()); - if (itr != m_connectedModels.end()) { mod = itr->second; } - else { mod = nullptr; } - return mod; + const auto itr = m_connectedModels.find(uri.toUtf8().data()); + return itr != m_connectedModels.end() ? itr->second : nullptr; } @@ -443,14 +440,15 @@ void Lv2Proc::initPlugin() m_features.createFeatureVectors(); m_instance = lilv_plugin_instantiate(m_plugin, - Engine::audioEngine()->processingSampleRate(), + Engine::audioEngine()->outputSampleRate(), m_features.featurePointers()); if (m_instance) { const auto iface = static_cast( lilv_instance_get_extension_data(m_instance, LV2_WORKER__interface)); - if (iface) { + if (iface) + { m_worker->setHandle(lilv_instance_get_handle(m_instance)); m_worker->setInterface(iface); } @@ -467,7 +465,7 @@ void Lv2Proc::initPlugin() << "(URI:" << lilv_node_as_uri(lilv_plugin_get_uri(m_plugin)) << ")"; - m_valid = false; + throw std::runtime_error("Failed to create Lv2 processor"); } } @@ -476,16 +474,12 @@ void Lv2Proc::initPlugin() void Lv2Proc::shutdownPlugin() { - if (m_valid) - { - lilv_instance_deactivate(m_instance); - lilv_instance_free(m_instance); - m_instance = nullptr; + lilv_instance_deactivate(m_instance); + lilv_instance_free(m_instance); + m_instance = nullptr; - m_features.clear(); - m_options.clear(); - } - m_valid = true; + m_features.clear(); + m_options.clear(); } @@ -515,7 +509,7 @@ void Lv2Proc::initMOptions() re-initialize, and this code section will be executed again, creating a new option vector. */ - float sampleRate = Engine::audioEngine()->processingSampleRate(); + float sampleRate = Engine::audioEngine()->outputSampleRate(); int32_t blockLength = Engine::audioEngine()->framesPerPeriod(); int32_t sequenceSize = defaultEvbufSize(); @@ -539,7 +533,8 @@ void Lv2Proc::initPluginSpecificFeatures() // worker (if plugin has worker extension) Lv2Manager* mgr = Engine::getLv2Manager(); - if (lilv_plugin_has_extension_data(m_plugin, mgr->uri(LV2_WORKER__interface).get())) { + if (lilv_plugin_has_extension_data(m_plugin, mgr->uri(LV2_WORKER__interface).get())) + { bool threaded = !Engine::audioEngine()->renderOnly(); m_worker.emplace(&m_workLock, threaded); m_features[LV2_WORKER__schedule] = m_worker->feature(); @@ -576,7 +571,7 @@ void Lv2Proc::createPort(std::size_t portNum) { AutoLilvNode node(lilv_port_get_name(m_plugin, lilvPort)); QString dispName = lilv_node_as_string(node.get()); - sample_rate_t sr = Engine::audioEngine()->processingSampleRate(); + sample_rate_t sr = Engine::audioEngine()->outputSampleRate(); if(meta.def() < meta.min(sr) || meta.def() > meta.max(sr)) { qWarning() << "Warning: Plugin" @@ -693,7 +688,8 @@ void Lv2Proc::createPort(std::size_t portNum) AutoLilvNode rszMinimumSize = mgr->uri(LV2_RESIZE_PORT__minimumSize); AutoLilvNodes minSizeV(lilv_port_get_value(m_plugin, lilvPort, rszMinimumSize.get())); LilvNode* minSize = minSizeV ? lilv_nodes_get_first(minSizeV.get()) : nullptr; - if (minSize && lilv_node_is_int(minSize)) { + if (minSize && lilv_node_is_int(minSize)) + { minimumSize = std::max(minimumSize, lilv_node_as_int(minSize)); } } @@ -855,7 +851,8 @@ void Lv2Proc::dumpPort(std::size_t num) { struct DumpPortDetail : public Lv2Ports::ConstVisitor { - void visit(const Lv2Ports::Control& ctrl) override { + void visit(const Lv2Ports::Control& ctrl) override + { qDebug() << " control port"; // output ports may be uninitialized yet, only print inputs if (ctrl.m_flow == Lv2Ports::Flow::Input) @@ -863,7 +860,8 @@ void Lv2Proc::dumpPort(std::size_t num) qDebug() << " value:" << ctrl.m_val; } } - void visit(const Lv2Ports::Audio& audio) override { + void visit(const Lv2Ports::Audio& audio) override + { qDebug() << (audio.isSideChain() ? " audio port (sidechain)" : " audio port"); qDebug() << " buffer size:" << audio.bufferSize(); @@ -879,7 +877,7 @@ void Lv2Proc::dumpPort(std::size_t num) qDebug() << " visualization: " << Lv2Ports::toStr(port.m_vis); if (port.m_type == Lv2Ports::Type::Control || port.m_type == Lv2Ports::Type::Cv) { - sample_rate_t sr = Engine::audioEngine()->processingSampleRate(); + sample_rate_t sr = Engine::audioEngine()->outputSampleRate(); qDebug() << " default:" << port.def(); qDebug() << " min:" << port.min(sr); qDebug() << " max:" << port.max(sr); diff --git a/src/core/lv2/Lv2SubPluginFeatures.cpp b/src/core/lv2/Lv2SubPluginFeatures.cpp index 135da3e2a10..66abe2f2e5a 100644 --- a/src/core/lv2/Lv2SubPluginFeatures.cpp +++ b/src/core/lv2/Lv2SubPluginFeatures.cpp @@ -3,7 +3,7 @@ * Plugin::Descriptor::SubPluginFeatures for * hosting LV2 plugins * - * Copyright (c) 2018-2023 Johannes Lorenz + * Copyright (c) 2018-2024 Johannes Lorenz * * This file is part of LMMS - https://lmms.io * @@ -28,8 +28,10 @@ #ifdef LMMS_HAVE_LV2 +#include #include #include +#include #include "Engine.h" #include "Lv2Basics.h" @@ -39,8 +41,8 @@ namespace lmms { -const LilvPlugin *Lv2SubPluginFeatures::getPlugin( - const Plugin::Descriptor::SubPluginFeatures::Key &k) +const LilvPlugin* Lv2SubPluginFeatures::getPlugin( + const Plugin::Descriptor::SubPluginFeatures::Key& k) { const LilvPlugin* result = Engine::getLv2Manager()-> getPlugin(k.attributes["uri"]); @@ -51,7 +53,7 @@ const LilvPlugin *Lv2SubPluginFeatures::getPlugin( -QString Lv2SubPluginFeatures::pluginName(const LilvPlugin *plug) +QString Lv2SubPluginFeatures::pluginName(const LilvPlugin* plug) { return qStringFromPluginNode(plug, lilv_plugin_get_name); } @@ -67,61 +69,132 @@ Lv2SubPluginFeatures::Lv2SubPluginFeatures(Plugin::Type type) : -void Lv2SubPluginFeatures::fillDescriptionWidget(QWidget *parent, - const Key *k) const +static void addHbox(QWidget* parent, QString left, QString right) { - const LilvPlugin *plug = getPlugin(*k); + if (right.isEmpty()) { return; } - auto label = new QLabel(parent); - label->setText(QWidget::tr("Name: ") + pluginName(plug)); - - auto label2 = new QLabel(parent); - label2->setText(QWidget::tr("URI: ") + - lilv_node_as_uri(lilv_plugin_get_uri(plug))); - - auto maker = new QWidget(parent); - auto l = new QHBoxLayout(maker); + auto container = new QWidget(parent); + auto l = new QHBoxLayout(container); l->setContentsMargins(0, 0, 0, 0); l->setSpacing(0); - auto maker_label = new QLabel(maker); - maker_label->setText(QWidget::tr("Maker: ")); - maker_label->setAlignment(Qt::AlignTop); + auto leftLabel = new QLabel(container); + leftLabel->setText(left); + leftLabel->setAlignment(Qt::AlignTop); - auto maker_content = new QLabel(maker); - maker_content->setText( - qStringFromPluginNode(plug, lilv_plugin_get_author_name)); - maker_content->setWordWrap(true); + auto rightLabel = new QLabel(container); + if (right.startsWith("http") && !right.contains(' ') && !right.contains('\n')) + { + right = QString("%1").arg(right); + rightLabel->setTextInteractionFlags(rightLabel->textInteractionFlags() + | Qt::LinksAccessibleByMouse | Qt::LinksAccessibleByKeyboard); + rightLabel->setTextFormat(Qt::RichText); + rightLabel->setOpenExternalLinks(true); + } + rightLabel->setText(right); + rightLabel->setWordWrap(true); - l->addWidget(maker_label); - l->addWidget(maker_content, 1); + l->addWidget(leftLabel); + l->addWidget(rightLabel, 1); +} - auto copyright = new QWidget(parent); - l = new QHBoxLayout(copyright); - l->setContentsMargins(0, 0, 0, 0); - l->setSpacing(0); - copyright->setMinimumWidth(parent->minimumWidth()); - auto copyright_label = new QLabel(copyright); - copyright_label->setText(QWidget::tr("Copyright: ")); - copyright_label->setAlignment(Qt::AlignTop); - auto copyright_content = new QLabel(copyright); - copyright_content->setText(""); - copyright_content->setWordWrap(true); - l->addWidget(copyright_label); - l->addWidget(copyright_content, 1); - AutoLilvNodes extensions(lilv_plugin_get_extension_data(plug)); - (void)extensions; - // possibly TODO: version, project, plugin type, number of channels +static void addLabel(QWidget* parent, QString left, QString right) +{ + auto lbl = new QLabel(parent); + if (right.isEmpty()) { return; } + if (right.startsWith("http") && !right.contains(' ') && !right.contains('\n')) + { + right = QString("%1").arg(right); + lbl->setTextInteractionFlags(lbl->textInteractionFlags() + | Qt::LinksAccessibleByMouse | Qt::LinksAccessibleByKeyboard); + lbl->setTextFormat(Qt::RichText); + lbl->setOpenExternalLinks(true); + } + lbl->setText(left + right); +} + + + + +AutoLilvNodes pluginGetValues(const LilvPlugin* plug, const char* valueUri) +{ + assert(plug); + AutoLilvNode valueUriNode{Engine::getLv2Manager()->uri(valueUri)}; + return AutoLilvNodes{lilv_plugin_get_value(plug, valueUriNode.get())}; +} + + + + +void Lv2SubPluginFeatures::fillDescriptionWidget(QWidget* parent, + const Key* k) const +{ + const LilvPlugin* plug = getPlugin(*k); + + QString pluginNameAndVersion = "" + pluginName(plug) + ""; + { + AutoLilvNodes minorVersions = pluginGetValues(plug, LILV_NS_LV2 "minorVersion"); + AutoLilvNodes microVersions = pluginGetValues(plug, LILV_NS_LV2 "microVersion"); + if (minorVersions && microVersions) + { + QString min = lilv_node_as_string(lilv_nodes_get_first(minorVersions.get())); + QString mic = lilv_node_as_string(lilv_nodes_get_first(microVersions.get())); + pluginNameAndVersion += QString(" v%1.%2").arg(min).arg(mic); + } + } + + (new QLabel(parent))->setText(pluginNameAndVersion); + { + AutoLilvNodes comments = pluginGetValues(plug, LILV_NS_RDFS "comment"); + if (comments) + { + QString description{lilv_node_as_string(lilv_nodes_get_first(comments.get()))}; + auto descLabel = new QLabel(parent); + descLabel->setText("" + description.trimmed() + ""); + descLabel->setWordWrap(true); + } + } + + addLabel(parent, QObject::tr("URI: "), lilv_node_as_uri(lilv_plugin_get_uri(plug))); + addHbox(parent, QObject::tr("Project: "), + qStringFromPluginNode(plug, lilv_plugin_get_project)); + addHbox(parent, QObject::tr("Maker: "), + qStringFromPluginNode(plug, lilv_plugin_get_author_name)); + { + AutoLilvNodes homepages = pluginGetValues(plug, LILV_NS_DOAP "homepage"); + if (homepages) + { + const char* homepage = lilv_node_as_uri(lilv_nodes_get_first(homepages.get())); + QString homepageStr{homepage}; + addLabel(parent, QObject::tr("Homepage: "), homepageStr); + } + } + { + AutoLilvNodes licenses = pluginGetValues(plug, LILV_NS_DOAP "license"); + addLabel(parent, QObject::tr("License: "), + licenses + ? lilv_node_as_uri(lilv_nodes_get_first(licenses.get())) + : ""); + } + { + const LilvNode* libraryUriNode = lilv_plugin_get_bundle_uri(plug); + const char* libraryUri = lilv_node_as_uri(libraryUriNode); + auto filename = AutoLilvPtr(lilv_file_uri_parse(libraryUri, nullptr)); + if (filename) + { + new QLabel(QObject::tr("File: %1").arg(filename.get()), parent); + } + } } QString Lv2SubPluginFeatures::additionalFileExtensions( - const Plugin::Descriptor::SubPluginFeatures::Key &k) const + const Plugin::Descriptor::SubPluginFeatures::Key& k) const { (void)k; // lv2 only loads .lv2 files @@ -133,7 +206,7 @@ QString Lv2SubPluginFeatures::additionalFileExtensions( QString Lv2SubPluginFeatures::displayName( - const Plugin::Descriptor::SubPluginFeatures::Key &k) const + const Plugin::Descriptor::SubPluginFeatures::Key& k) const { return pluginName(getPlugin(k)); } @@ -142,30 +215,44 @@ QString Lv2SubPluginFeatures::displayName( QString Lv2SubPluginFeatures::description( - const Plugin::Descriptor::SubPluginFeatures::Key &k) const + const Plugin::Descriptor::SubPluginFeatures::Key& k) const { - (void)k; - return QString::fromUtf8("description not implemented yet"); // TODO + auto mgr = Engine::getLv2Manager(); + const LilvPlugin* plug = mgr->getPlugin(k.attributes["uri"]); + if (plug) + { + QString result; + AutoLilvNode rdfs_comment{mgr->uri(LILV_NS_RDFS "comment")}; + AutoLilvNodes comments{lilv_plugin_get_value(plug, rdfs_comment.get())}; + if (comments) + { + result += lilv_node_as_string(lilv_nodes_get_first(comments.get())); + result += "\n\n"; + } + result += lilv_node_as_uri(lilv_plugin_get_uri(plug)); + return result.trimmed(); + } + return QObject::tr("failed to load description"); } -const PixmapLoader *Lv2SubPluginFeatures::logo( - const Plugin::Descriptor::SubPluginFeatures::Key &k) const +const PixmapLoader* Lv2SubPluginFeatures::logo( + const Plugin::Descriptor::SubPluginFeatures::Key& k) const { - (void)k; // TODO - return nullptr; + (void)k; + return nullptr; // Lv2 currently does not support this } -void Lv2SubPluginFeatures::listSubPluginKeys(const Plugin::Descriptor *desc, - KeyList &kl) const +void Lv2SubPluginFeatures::listSubPluginKeys(const Plugin::Descriptor* desc, + KeyList& kl) const { - Lv2Manager *lv2Mgr = Engine::getLv2Manager(); - for (const auto &uriInfoPair : *lv2Mgr) + Lv2Manager* lv2Mgr = Engine::getLv2Manager(); + for (const auto& uriInfoPair : *lv2Mgr) { if (uriInfoPair.second.type() == m_type && uriInfoPair.second.isValid()) { diff --git a/src/core/lv2/Lv2UridCache.cpp b/src/core/lv2/Lv2UridCache.cpp index 746878afb96..7d3a14c9349 100644 --- a/src/core/lv2/Lv2UridCache.cpp +++ b/src/core/lv2/Lv2UridCache.cpp @@ -26,10 +26,10 @@ #ifdef LMMS_HAVE_LV2 -#include -#include -#include -#include +#include +#include +#include +#include #include #include "Lv2UridMap.h" diff --git a/src/core/lv2/Lv2UridMap.cpp b/src/core/lv2/Lv2UridMap.cpp index ecc28693fef..4aa9d11b41f 100644 --- a/src/core/lv2/Lv2UridMap.cpp +++ b/src/core/lv2/Lv2UridMap.cpp @@ -76,12 +76,12 @@ LV2_URID UridMap::map(const char *uri) if (itr == m_map.end()) { // 1 is the first free URID - std::size_t index = 1u + m_unMap.size(); + const auto index = static_cast(1u + m_unMap.size()); auto pr = m_map.emplace(std::move(uriStr), index); if (pr.second) { m_unMap.emplace_back(pr.first->first.c_str()); - result = static_cast(index); + result = index; } } else { result = itr->second; } diff --git a/src/core/main.cpp b/src/core/main.cpp index 25a6ab9c53e..3e6c2c85f06 100644 --- a/src/core/main.cpp +++ b/src/core/main.cpp @@ -43,10 +43,6 @@ #include #endif -#ifdef LMMS_HAVE_SCHED_H -#include "sched.h" -#endif - #ifdef LMMS_HAVE_PROCESS_H #include #endif @@ -55,6 +51,10 @@ #include #endif +#ifdef LMMS_HAVE_SYS_PRCTL_H +#include +#endif + #include #include "MainApplication.h" @@ -210,7 +210,6 @@ void printHelp() " -p, --profile Dump profiling information to file \n" " -s, --samplerate Specify output samplerate in Hz\n" " Range: 44100 (default) to 192000\n" - " -x, --oversampling Specify oversampling\n" " Possible values: 1, 2, 4, 8\n" " Default: 2\n\n", LMMS_VERSION, LMMS_PROJECT_COPYRIGHT ); @@ -254,6 +253,57 @@ int main( int argc, char * * argv ) { using namespace lmms; + bool coreOnly = false; + bool fullscreen = true; + bool exitAfterImport = false; + bool allowRoot = false; + bool renderLoop = false; + bool renderTracks = false; + QString fileToLoad, fileToImport, renderOut, profilerOutputFile, configFile; + + // first of two command-line parsing stages + for (int i = 1; i < argc; ++i) + { + QString arg = argv[i]; + + if (arg == "--help" || arg == "-h") + { + printHelp(); + return EXIT_SUCCESS; + } + else if (arg == "--version" || arg == "-v") + { + printVersion(argv[0]); + return EXIT_SUCCESS; + } + else if (arg == "render" || arg == "--render" || arg == "-r" ) + { + coreOnly = true; + } + else if (arg == "rendertracks" || arg == "--rendertracks") + { + coreOnly = true; + renderTracks = true; + } + else if (arg == "--allowroot") + { + allowRoot = true; + } + else if (arg == "--geometry" || arg == "-geometry") + { + if (arg == "--geometry") + { + // Delete the first "-" so Qt recognize the option + strcpy(argv[i], "-geometry"); + } + // option -geometry is filtered by Qt later, + // so we need to check its presence now to + // determine, if the application should run in + // fullscreen mode (default, no -geometry given). + fullscreen = false; + } + } + #ifdef LMMS_DEBUG_FPE // Enable exceptions for certain floating point results // FE_UNDERFLOW is disabled for the time being @@ -294,6 +344,15 @@ int main( int argc, char * * argv ) qInstallMessageHandler(consoleMessageHandler); #endif +#if defined(LMMS_HAVE_SYS_PRCTL_H) && defined(PR_SET_CHILD_SUBREAPER) + // Set the "child subreaper" attribute so that plugin child processes remain as lmms' + // children even when some wrapper process exits, as it may happen with wine + if (prctl(PR_SET_CHILD_SUBREAPER, 1)) + { + perror("prctl(PR_SET_CHILD_SUBREAPER)"); + } +#endif + // initialize memory managers NotePlayHandleManager::init(); @@ -302,49 +361,6 @@ int main( int argc, char * * argv ) disable_denormals(); - bool coreOnly = false; - bool fullscreen = true; - bool exitAfterImport = false; - bool allowRoot = false; - bool renderLoop = false; - bool renderTracks = false; - QString fileToLoad, fileToImport, renderOut, profilerOutputFile, configFile; - - // first of two command-line parsing stages - for( int i = 1; i < argc; ++i ) - { - QString arg = argv[i]; - - if( arg == "--help" || arg == "-h" || - arg == "--version" || arg == "-v" || - arg == "render" || arg == "--render" || arg == "-r" ) - { - coreOnly = true; - } - else if( arg == "rendertracks" || arg == "--rendertracks" ) - { - coreOnly = true; - renderTracks = true; - } - else if( arg == "--allowroot" ) - { - allowRoot = true; - } - else if( arg == "--geometry" || arg == "-geometry") - { - if( arg == "--geometry" ) - { - // Delete the first "-" so Qt recognize the option - strcpy(argv[i], "-geometry"); - } - // option -geometry is filtered by Qt later, - // so we need to check its presence now to - // determine, if the application should run in - // fullscreen mode (default, no -geometry given). - fullscreen = false; - } - } - #if !defined(LMMS_BUILD_WIN32) && !defined(LMMS_BUILD_HAIKU) if ( ( getuid() == 0 || geteuid() == 0 ) && !allowRoot ) { @@ -356,14 +372,12 @@ int main( int argc, char * * argv ) // don't let OS steal the menu bar. FIXME: only effective on Qt4 QCoreApplication::setAttribute( Qt::AA_DontUseNativeMenuBar ); #endif -#if QT_VERSION >= QT_VERSION_CHECK(5, 6, 0) QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); -#endif QCoreApplication * app = coreOnly ? new QCoreApplication( argc, argv ) : new gui::MainApplication(argc, argv); - AudioEngine::qualitySettings qs( AudioEngine::qualitySettings::Mode::HighQuality ); + AudioEngine::qualitySettings qs(AudioEngine::qualitySettings::Interpolation::Linear); OutputSettings os( 44100, OutputSettings::BitRateSettings(160, false), OutputSettings::BitDepth::Depth16Bit, OutputSettings::StereoMode::JointStereo ); ProjectRenderer::ExportFileFormat eff = ProjectRenderer::ExportFileFormat::Wave; @@ -372,17 +386,7 @@ int main( int argc, char * * argv ) { QString arg = argv[i]; - if( arg == "--version" || arg == "-v" ) - { - printVersion( argv[0] ); - return EXIT_SUCCESS; - } - else if( arg == "--help" || arg == "-h" ) - { - printHelp(); - return EXIT_SUCCESS; - } - else if( arg == "upgrade" || arg == "--upgrade" || arg == "-u") + if (arg == "upgrade" || arg == "--upgrade" || arg == "-u") { ++i; @@ -648,36 +652,6 @@ int main( int argc, char * * argv ) return usageError( QString( "Invalid interpolation method %1" ).arg( argv[i] ) ); } } - else if( arg == "--oversampling" || arg == "-x" ) - { - ++i; - - if( i == argc ) - { - return usageError( "No oversampling specified" ); - } - - - int o = QString( argv[i] ).toUInt(); - - switch( o ) - { - case 1: - qs.oversampling = AudioEngine::qualitySettings::Oversampling::None; - break; - case 2: - qs.oversampling = AudioEngine::qualitySettings::Oversampling::X2; - break; - case 4: - qs.oversampling = AudioEngine::qualitySettings::Oversampling::X4; - break; - case 8: - qs.oversampling = AudioEngine::qualitySettings::Oversampling::X8; - break; - default: - return usageError( QString( "Invalid oversampling %1" ).arg( argv[i] ) ); - } - } else if( arg == "--import" ) { ++i; @@ -763,29 +737,6 @@ int main( int argc, char * * argv ) // override it with bundled/custom one, if exists loadTranslation(QString("qt_") + pos, ConfigManager::inst()->localeDir()); - - // try to set realtime priority -#if defined(LMMS_BUILD_LINUX) || defined(LMMS_BUILD_FREEBSD) -#ifdef LMMS_HAVE_SCHED_H -#ifndef __OpenBSD__ - struct sched_param sparam; - sparam.sched_priority = ( sched_get_priority_max( SCHED_FIFO ) + - sched_get_priority_min( SCHED_FIFO ) ) / 2; - if( sched_setscheduler( 0, SCHED_FIFO, &sparam ) == -1 ) - { - printf( "Notice: could not set realtime priority.\n" ); - } -#endif -#endif // LMMS_HAVE_SCHED_H -#endif - -#ifdef LMMS_BUILD_WIN32 - if( !SetPriorityClass( GetCurrentProcess(), HIGH_PRIORITY_CLASS ) ) - { - printf( "Notice: could not set high priority.\n" ); - } -#endif - #if _POSIX_C_SOURCE >= 1 || _XOPEN_SOURCE || _POSIX_SOURCE struct sigaction sa; sa.sa_handler = SIG_IGN; @@ -906,19 +857,13 @@ int main( int argc, char * * argv ) mb.setWindowIcon( embed::getIconPixmap( "icon_small" ) ); mb.setWindowFlags( Qt::WindowCloseButtonHint ); - QPushButton * recover; - QPushButton * discard; - QPushButton * exit; - // setting all buttons to the same roles allows us // to have a custom layout - discard = mb.addButton( MainWindow::tr( "Discard" ), - QMessageBox::AcceptRole ); - recover = mb.addButton( MainWindow::tr( "Recover" ), - QMessageBox::AcceptRole ); + auto discard = mb.addButton(MainWindow::tr("Discard"), QMessageBox::AcceptRole); + auto recover = mb.addButton(MainWindow::tr("Recover"), QMessageBox::AcceptRole); // have a hidden exit button - exit = mb.addButton( "", QMessageBox::RejectRole); + auto exit = mb.addButton("", QMessageBox::RejectRole); exit->setVisible(false); // set icons diff --git a/src/core/midi/MidiAlsaRaw.cpp b/src/core/midi/MidiAlsaRaw.cpp index 23364fc01ef..f091b789fde 100644 --- a/src/core/midi/MidiAlsaRaw.cpp +++ b/src/core/midi/MidiAlsaRaw.cpp @@ -39,10 +39,7 @@ MidiAlsaRaw::MidiAlsaRaw() : m_outputp( &m_output ), m_quit( false ) { - int err; - if( ( err = snd_rawmidi_open( m_inputp, m_outputp, - probeDevice().toLatin1().constData(), - 0 ) ) < 0 ) + if (int err = snd_rawmidi_open(m_inputp, m_outputp, probeDevice().toLatin1().constData(), 0); err < 0) { printf( "cannot open MIDI-device: %s\n", snd_strerror( err ) ); return; @@ -111,29 +108,27 @@ void MidiAlsaRaw::run() { msleep( 5 ); // must do that, otherwise this thread takes // too much CPU-time, even with LowPriority... - int err = poll( m_pfds, m_npfds, 10000 ); - if( err < 0 && errno == EINTR ) + if (int err = poll(m_pfds, m_npfds, 10000); err < 0 && errno == EINTR) { printf( "MidiAlsaRaw::run(): Got EINTR while " "polling. Will stop polling MIDI-events from " "MIDI-port.\n" ); break; } - if( err < 0 ) + else if (err < 0) { printf( "poll failed: %s\nWill stop polling " "MIDI-events from MIDI-port.\n", strerror( errno ) ); break; } - if( err == 0 ) + else if (err == 0) { //printf( "there seems to be no active MIDI-device %d\n", ++cnt ); continue; } - unsigned short revents; - if( ( err = snd_rawmidi_poll_descriptors_revents( - m_input, m_pfds, m_npfds, &revents ) ) < 0 ) + unsigned short revents = 0; + if (int err = snd_rawmidi_poll_descriptors_revents(m_input, m_pfds, m_npfds, &revents); err < 0) { printf( "cannot get poll events: %s\nWill stop polling " "MIDI-events from MIDI-port.\n", @@ -149,25 +144,19 @@ void MidiAlsaRaw::run() { continue; } - err = snd_rawmidi_read(m_input, buf.data(), buf.size()); - if( err == -EAGAIN ) - { - continue; - } - if( err < 0 ) + + if (int err = snd_rawmidi_read(m_input, buf.data(), buf.size()); err == -EAGAIN) { continue; } + else if (err < 0) { printf( "cannot read from port \"%s\": %s\nWill stop " "polling MIDI-events from MIDI-port.\n", /*port_name*/"default", snd_strerror( err ) ); break; } - if( err == 0 ) - { - continue; - } - for( int i = 0; i < err; ++i ) + else if (err == 0) { continue; } + else { - parseData( buf[i] ); + for (int i = 0; i < err; ++i) { parseData(buf[i]); } } } diff --git a/src/core/midi/MidiAlsaSeq.cpp b/src/core/midi/MidiAlsaSeq.cpp index 0b3bab8195a..e0b8b486efc 100644 --- a/src/core/midi/MidiAlsaSeq.cpp +++ b/src/core/midi/MidiAlsaSeq.cpp @@ -78,10 +78,7 @@ MidiAlsaSeq::MidiAlsaSeq() : m_quit( false ), m_portListUpdateTimer( this ) { - int err; - if( ( err = snd_seq_open( &m_seqHandle, - probeDevice().toLatin1().constData(), - SND_SEQ_OPEN_DUPLEX, 0 ) ) < 0 ) + if (int err = snd_seq_open(&m_seqHandle, probeDevice().toLatin1().constData(), SND_SEQ_OPEN_DUPLEX, 0); err < 0) { fprintf( stderr, "cannot open sequencer: %s\n", snd_strerror( err ) ); diff --git a/src/core/midi/MidiApple.cpp b/src/core/midi/MidiApple.cpp index 444f093e533..14930ed8486 100644 --- a/src/core/midi/MidiApple.cpp +++ b/src/core/midi/MidiApple.cpp @@ -159,7 +159,7 @@ void MidiApple::removePort( MidiPort* port ) QString MidiApple::sourcePortName( const MidiEvent& event ) const { - qDebug("sourcePortName return '%s'?\n", event.sourcePort()); + qDebug("sourcePortName"); /* if( event.sourcePort() ) { @@ -501,7 +501,7 @@ void MidiApple::openDevices() void MidiApple::openMidiReference( MIDIEndpointRef reference, QString refName, bool isIn ) { char * registeredName = (char*) malloc(refName.length()+1); - sprintf(registeredName, "%s",refName.toLatin1().constData()); + std::snprintf(registeredName, refName.length() + 1, "%s",refName.toLatin1().constData()); qDebug("openMidiReference refName '%s'",refName.toLatin1().constData()); MIDIClientRef mClient = getMidiClientRef(); @@ -623,7 +623,7 @@ char * MidiApple::getFullName(MIDIEndpointRef &endpoint_ref) size_t deviceNameLen = deviceName == nullptr ? 0 : strlen(deviceName); size_t endPointNameLen = endPointName == nullptr ? 0 : strlen(endPointName); char * fullName = (char *)malloc(deviceNameLen + endPointNameLen + 2); - sprintf(fullName, "%s:%s", deviceName,endPointName); + std::snprintf(fullName, deviceNameLen + endPointNameLen + 2, "%s:%s", deviceName,endPointName); if (deviceName != nullptr) { free(deviceName); } if (endPointName != nullptr) { free(endPointName); } return fullName; diff --git a/src/core/midi/MidiClient.cpp b/src/core/midi/MidiClient.cpp index 030384c5e1e..a4e6ff097b2 100644 --- a/src/core/midi/MidiClient.cpp +++ b/src/core/midi/MidiClient.cpp @@ -24,8 +24,10 @@ */ #include "MidiClient.h" -#include "MidiPort.h" +#include + +#include "MidiPort.h" namespace lmms { @@ -309,4 +311,4 @@ int MidiClientRaw::eventLength( const unsigned char event ) return 1; } -} // namespace lmms \ No newline at end of file +} // namespace lmms diff --git a/src/core/midi/MidiController.cpp b/src/core/midi/MidiController.cpp index 0ae76d352c8..112d9d974b4 100644 --- a/src/core/midi/MidiController.cpp +++ b/src/core/midi/MidiController.cpp @@ -74,11 +74,11 @@ void MidiController::updateName() void MidiController::processInEvent(const MidiEvent& event, const TimePos& time, f_cnt_t offset) { - unsigned char controllerNum; switch(event.type()) { case MidiControlChange: - controllerNum = event.controllerNumber(); + { + unsigned char controllerNum = event.controllerNumber(); if (m_midiPort.inputController() == controllerNum && (m_midiPort.inputChannel() == event.channel() + 1 || m_midiPort.inputChannel() == 0)) @@ -89,7 +89,7 @@ void MidiController::processInEvent(const MidiEvent& event, const TimePos& time, emit valueChanged(); } break; - + } default: // Don't care - maybe add special cases for pitch and mod later break; diff --git a/src/core/midi/MidiJack.cpp b/src/core/midi/MidiJack.cpp index 145a72eccfe..29e7e27ec70 100644 --- a/src/core/midi/MidiJack.cpp +++ b/src/core/midi/MidiJack.cpp @@ -179,7 +179,6 @@ QString MidiJack::probeDevice() // we read data from jack void MidiJack::JackMidiRead(jack_nframes_t nframes) { - unsigned int i,b; void* port_buf = jack_port_get_buffer(m_input_port, nframes); jack_midi_event_t in_event; jack_nframes_t event_index = 0; @@ -188,13 +187,13 @@ void MidiJack::JackMidiRead(jack_nframes_t nframes) int rval = jack_midi_event_get(&in_event, port_buf, 0); if (rval == 0 /* 0 = success */) { - for(i=0; i 0; n--, p++) + for (char* p = buf; n > 0; n--, p++) { parseData( *p ); } diff --git a/src/gui/AudioAlsaSetupWidget.cpp b/src/gui/AudioAlsaSetupWidget.cpp index 7db822b4be8..43872a12fb8 100644 --- a/src/gui/AudioAlsaSetupWidget.cpp +++ b/src/gui/AudioAlsaSetupWidget.cpp @@ -31,7 +31,6 @@ #include "ConfigManager.h" #include "LcdSpinBox.h" -#include "gui_templates.h" namespace lmms::gui { @@ -71,7 +70,7 @@ AudioAlsaSetupWidget::AudioAlsaSetupWidget( QWidget * _parent ) : form->addRow(tr("Device"), m_deviceComboBox); auto m = new LcdSpinBoxModel(/* this */); - m->setRange( DEFAULT_CHANNELS, SURROUND_CHANNELS ); + m->setRange(DEFAULT_CHANNELS, DEFAULT_CHANNELS); m->setStep( 2 ); m->setValue( ConfigManager::inst()->value( "audioalsa", "channels" ).toInt() ); diff --git a/src/gui/CMakeLists.txt b/src/gui/CMakeLists.txt index bf389bd7ed5..d5e29e71f0b 100644 --- a/src/gui/CMakeLists.txt +++ b/src/gui/CMakeLists.txt @@ -28,14 +28,16 @@ SET(LMMS_SRCS gui/MicrotunerConfig.cpp gui/MidiCCRackView.cpp gui/MidiSetupWidget.cpp - gui/MixerLine.cpp + gui/MixerChannelView.cpp gui/MixerView.cpp gui/ModelView.cpp gui/PeakControllerDialog.cpp gui/PluginBrowser.cpp gui/ProjectNotes.cpp gui/RowTableView.cpp + gui/SampleLoader.cpp gui/SampleTrackWindow.cpp + gui/SampleWaveform.cpp gui/SendButtonIndicator.cpp gui/SideBar.cpp gui/SideBarWidget.cpp @@ -61,12 +63,14 @@ SET(LMMS_SRCS gui/editors/TrackContainerView.cpp gui/instrument/EnvelopeAndLfoView.cpp + gui/instrument/EnvelopeGraph.cpp gui/instrument/InstrumentFunctionViews.cpp gui/instrument/InstrumentMidiIOView.cpp gui/instrument/InstrumentTuningView.cpp gui/instrument/InstrumentSoundShapingView.cpp gui/instrument/InstrumentTrackWindow.cpp gui/instrument/InstrumentView.cpp + gui/instrument/LfoGraph.cpp gui/instrument/PianoView.cpp gui/menus/MidiPortMenu.cpp @@ -92,6 +96,7 @@ SET(LMMS_SRCS gui/tracks/TrackLabelButton.cpp gui/tracks/TrackOperationsWidget.cpp gui/tracks/TrackRenameLineEdit.cpp + gui/tracks/TrackGrip.cpp gui/tracks/TrackView.cpp gui/widgets/AutomatableButton.cpp @@ -112,9 +117,10 @@ SET(LMMS_SRCS gui/widgets/LedCheckBox.cpp gui/widgets/LeftRightNav.cpp gui/widgets/MeterDialog.cpp - gui/widgets/MixerLineLcdSpinBox.cpp + gui/widgets/MixerChannelLcdSpinBox.cpp gui/widgets/NStateButton.cpp gui/widgets/Oscilloscope.cpp + gui/widgets/PeakIndicator.cpp gui/widgets/PixmapButton.cpp gui/widgets/SimpleTextFloat.cpp gui/widgets/TabBar.cpp @@ -128,11 +134,3 @@ SET(LMMS_SRCS PARENT_SCOPE ) -set(LMMS_UIS - ${LMMS_UIS} - gui/modals/about_dialog.ui - gui/modals/EffectSelectDialog.ui - gui/modals/export_project.ui - - PARENT_SCOPE -) diff --git a/src/gui/ControlLayout.cpp b/src/gui/ControlLayout.cpp index 5e9a211014b..75133c8e3d8 100644 --- a/src/gui/ControlLayout.cpp +++ b/src/gui/ControlLayout.cpp @@ -101,8 +101,7 @@ ControlLayout::ControlLayout(QWidget *parent, int margin, int hSpacing, int vSpa ControlLayout::~ControlLayout() { - QLayoutItem *item; - while ((item = takeAt(0))) { delete item; } + while (auto item = takeAt(0)) { delete item; } } void ControlLayout::onTextChanged(const QString&) diff --git a/src/gui/ControllerRackView.cpp b/src/gui/ControllerRackView.cpp index dfde71cea88..c6bb7c6a936 100644 --- a/src/gui/ControllerRackView.cpp +++ b/src/gui/ControllerRackView.cpp @@ -26,6 +26,7 @@ #include "ControllerRackView.h" #include +#include #include #include #include @@ -69,8 +70,8 @@ ControllerRackView::ControllerRackView() this, SLOT(addController())); Song * song = Engine::getSong(); - connect( song, SIGNAL(controllerAdded(lmms::Controller*)), SLOT(onControllerAdded(lmms::Controller*))); - connect( song, SIGNAL(controllerRemoved(lmms::Controller*)), SLOT(onControllerRemoved(lmms::Controller*))); + connect(song, &Song::controllerAdded, this, qOverload(&ControllerRackView::addController)); + connect(song, &Song::controllerRemoved, this, &ControllerRackView::removeController); auto layout = new QVBoxLayout(); layout->addWidget( m_scrollArea ); @@ -133,17 +134,51 @@ void ControllerRackView::deleteController( ControllerView * _view ) song->removeController( c ); } +void ControllerRackView::moveUp(ControllerView* view) +{ + if (view == m_controllerViews.first()) { return; } + + const auto storedView = std::find(m_controllerViews.begin(), m_controllerViews.end(), view); + assert(storedView != m_controllerViews.end()); + + const auto index = std::distance(m_controllerViews.begin(), storedView); + + std::swap(m_controllerViews[index - 1], m_controllerViews[index]); + m_scrollAreaLayout->removeWidget(view); + m_scrollAreaLayout->insertWidget(index - 1, view); +} +void ControllerRackView::moveDown(ControllerView* view) +{ + if (view == m_controllerViews.last()) { return; } + const auto storedView = std::find(m_controllerViews.begin(), m_controllerViews.end(), view); + assert(storedView != m_controllerViews.end()); + moveUp(*std::next(storedView)); +} -void ControllerRackView::onControllerAdded( Controller * controller ) +void ControllerRackView::addController(Controller* controller) { QWidget * scrollAreaWidget = m_scrollArea->widget(); auto controllerView = new ControllerView(controller, scrollAreaWidget); - connect( controllerView, SIGNAL(deleteController(lmms::gui::ControllerView*)), - this, SLOT(deleteController(lmms::gui::ControllerView*)), Qt::QueuedConnection ); + connect(controllerView, &ControllerView::movedUp, this, &ControllerRackView::moveUp); + connect(controllerView, &ControllerView::movedDown, this, &ControllerRackView::moveDown); + connect(controllerView, &ControllerView::removedController, this, &ControllerRackView::deleteController, Qt::QueuedConnection); + + auto moveUpAction = new QAction(controllerView); + moveUpAction->setShortcut(Qt::Key_Up | Qt::AltModifier); + moveUpAction->setShortcutContext(Qt::WidgetShortcut); + connect(moveUpAction, &QAction::triggered, controllerView, &ControllerView::moveUp); + controllerView->addAction(moveUpAction); + + auto moveDownAction = new QAction(controllerView); + moveDownAction->setShortcut(Qt::Key_Down | Qt::AltModifier); + moveDownAction->setShortcutContext(Qt::WidgetShortcut); + connect(moveDownAction, &QAction::triggered, controllerView, &ControllerView::moveDown); + controllerView->addAction(moveDownAction); + m_controllerViews.append( controllerView ); m_scrollAreaLayout->insertWidget( m_nextIndex, controllerView ); @@ -154,7 +189,7 @@ void ControllerRackView::onControllerAdded( Controller * controller ) -void ControllerRackView::onControllerRemoved( Controller * removedController ) +void ControllerRackView::removeController(Controller* removedController) { ControllerView * viewOfRemovedController = 0; diff --git a/src/gui/ControllerView.cpp b/src/gui/ControllerView.cpp index d32e8d49c09..7f7c4729c67 100644 --- a/src/gui/ControllerView.cpp +++ b/src/gui/ControllerView.cpp @@ -53,6 +53,7 @@ ControllerView::ControllerView( Controller * _model, QWidget * _parent ) : { this->setFrameStyle( QFrame::StyledPanel ); this->setFrameShadow( QFrame::Raised ); + setFocusPolicy(Qt::StrongFocus); auto vBoxLayout = new QVBoxLayout(this); @@ -132,11 +133,11 @@ void ControllerView::closeControls() m_show = true; } +void ControllerView::moveUp() { emit movedUp(this); } -void ControllerView::deleteController() -{ - emit( deleteController( this ) ); -} +void ControllerView::moveDown() { emit movedDown(this); } + +void ControllerView::removeController() { emit removedController(this); } void ControllerView::renameController() { @@ -173,10 +174,13 @@ void ControllerView::modelChanged() void ControllerView::contextMenuEvent( QContextMenuEvent * ) { - QPointer contextMenu = new CaptionMenu( model()->displayName(), this ); - contextMenu->addAction( embed::getIconPixmap( "cancel" ), - tr( "&Remove this controller" ), - this, SLOT(deleteController())); + Controller* c = castModel(); + QPointer contextMenu = new CaptionMenu(c->name(), this); + contextMenu->addAction(embed::getIconPixmap("arp_up"), tr("Move &up"), this, &ControllerView::moveUp); + contextMenu->addAction(embed::getIconPixmap("arp_down"), tr("Move &down"), this, &ControllerView::moveDown); + contextMenu->addSeparator(); + contextMenu->addAction( + embed::getIconPixmap("cancel"), tr("&Remove this controller"), this, &ControllerView::removeController); contextMenu->addAction( tr("Re&name this controller"), this, SLOT(renameController())); contextMenu->addSeparator(); contextMenu->exec( QCursor::pos() ); diff --git a/src/gui/EffectRackView.cpp b/src/gui/EffectRackView.cpp index aa790d74dfc..b43ec7648b0 100644 --- a/src/gui/EffectRackView.cpp +++ b/src/gui/EffectRackView.cpp @@ -24,6 +24,7 @@ */ #include +#include #include #include #include @@ -170,13 +171,22 @@ void EffectRackView::update() if( i >= m_effectViews.size() ) { auto view = new EffectView(effect, w); - connect( view, SIGNAL(moveUp(lmms::gui::EffectView*)), - this, SLOT(moveUp(lmms::gui::EffectView*))); - connect( view, SIGNAL(moveDown(lmms::gui::EffectView*)), - this, SLOT(moveDown(lmms::gui::EffectView*))); - connect( view, SIGNAL(deletePlugin(lmms::gui::EffectView*)), - this, SLOT(deletePlugin(lmms::gui::EffectView*)), - Qt::QueuedConnection ); + connect(view, &EffectView::movedUp, this, &EffectRackView::moveUp); + connect(view, &EffectView::movedDown, this, &EffectRackView::moveDown); + connect(view, &EffectView::deletedPlugin, this, &EffectRackView::deletePlugin, Qt::QueuedConnection); + + QAction* moveUpAction = new QAction(view); + moveUpAction->setShortcut(Qt::Key_Up | Qt::AltModifier); + moveUpAction->setShortcutContext(Qt::WidgetShortcut); + connect(moveUpAction, &QAction::triggered, view, &EffectView::moveUp); + view->addAction(moveUpAction); + + QAction* moveDownAction = new QAction(view); + moveDownAction->setShortcut(Qt::Key_Down | Qt::AltModifier); + moveDownAction->setShortcutContext(Qt::WidgetShortcut); + connect(moveDownAction, &QAction::triggered, view, &EffectView::moveDown); + view->addAction(moveDownAction); + view->show(); m_effectViews.append( view ); if( i < view_map.size() ) @@ -213,7 +223,7 @@ void EffectRackView::update() } } - w->setFixedSize( EffectView::DEFAULT_WIDTH + 2*EffectViewMargin, m_lastY); + w->setFixedSize(EffectView::DEFAULT_WIDTH + 2 * EffectViewMargin, m_lastY); QWidget::update(); } @@ -263,4 +273,13 @@ void EffectRackView::modelChanged() +QSize EffectRackView::sizeHint() const +{ + // Use the formula from InstrumentTrackWindow.cpp + return QSize{EffectRackView::DEFAULT_WIDTH, 254 /* INSTRUMENT_HEIGHT */ - 4 - 1}; +} + + + + } // namespace lmms::gui diff --git a/src/gui/EffectView.cpp b/src/gui/EffectView.cpp index 7f7f9ee9df5..a5095ee6d13 100644 --- a/src/gui/EffectView.cpp +++ b/src/gui/EffectView.cpp @@ -34,7 +34,7 @@ #include "CaptionMenu.h" #include "embed.h" #include "GuiApplication.h" -#include "gui_templates.h" +#include "FontHelper.h" #include "Knob.h" #include "LedCheckBox.h" #include "MainWindow.h" @@ -53,6 +53,7 @@ EffectView::EffectView( Effect * _model, QWidget * _parent ) : m_dragging(false) { setFixedSize(EffectView::DEFAULT_WIDTH, EffectView::DEFAULT_HEIGHT); + setFocusPolicy(Qt::StrongFocus); // Disable effects that are of type "DummyEffect" bool isEnabled = !dynamic_cast( effect() ); @@ -90,7 +91,7 @@ EffectView::EffectView( Effect * _model, QWidget * _parent ) : { auto ctls_btn = new QPushButton(tr("Controls"), this); QFont f = ctls_btn->font(); - ctls_btn->setFont( pointSize<8>( f ) ); + ctls_btn->setFont(adjustedToPixelSize(f, DEFAULT_FONT_SIZE)); ctls_btn->setGeometry( 150, 14, 50, 20 ); connect( ctls_btn, SIGNAL(clicked()), this, SLOT(editControls())); @@ -162,7 +163,7 @@ void EffectView::editControls() void EffectView::moveUp() { - emit moveUp( this ); + emit movedUp(this); } @@ -170,14 +171,14 @@ void EffectView::moveUp() void EffectView::moveDown() { - emit moveDown( this ); + emit movedDown(this); } void EffectView::deletePlugin() { - emit deletePlugin( this ); + emit deletedPlugin(this); } @@ -257,7 +258,7 @@ void EffectView::paintEvent( QPaintEvent * ) QPainter p( this ); p.drawPixmap( 0, 0, m_bg ); - QFont f = pointSizeF( font(), 7.5f ); + QFont f = adjustedToPixelSize(font(), DEFAULT_FONT_SIZE); f.setBold( true ); p.setFont( f ); diff --git a/src/gui/FileBrowser.cpp b/src/gui/FileBrowser.cpp index dc16a3bacc1..e5168fac8bb 100644 --- a/src/gui/FileBrowser.cpp +++ b/src/gui/FileBrowser.cpp @@ -31,20 +31,22 @@ #include #include #include -#include -#include #include #include +#include #include +#include #include #include +#include +#include -#include "FileBrowser.h" #include "AudioEngine.h" #include "ConfigManager.h" #include "DataFile.h" -#include "embed.h" #include "Engine.h" +#include "FileBrowser.h" +#include "FileSearch.h" #include "GuiApplication.h" #include "ImportFilter.h" #include "Instrument.h" @@ -54,12 +56,16 @@ #include "PatternStore.h" #include "PluginFactory.h" #include "PresetPreviewPlayHandle.h" +#include "Sample.h" #include "SampleClip.h" +#include "SampleLoader.h" #include "SamplePlayHandle.h" #include "SampleTrack.h" #include "Song.h" #include "StringPairDrag.h" #include "TextFloat.h" +#include "ThreadPool.h" +#include "embed.h" namespace lmms::gui { @@ -72,50 +78,21 @@ enum TreeWidgetItemTypes } ; - -void FileBrowser::addContentCheckBox() -{ - auto filterWidget = new QWidget(contentParent()); - filterWidget->setFixedHeight(15); - auto filterWidgetLayout = new QHBoxLayout(filterWidget); - filterWidgetLayout->setContentsMargins(0, 0, 0, 0); - filterWidgetLayout->setSpacing(0); - - auto configCheckBox = [this, &filterWidgetLayout](QCheckBox* box) - { - box->setCheckState(Qt::Checked); - connect(box, SIGNAL(stateChanged(int)), this, SLOT(reloadTree())); - filterWidgetLayout->addWidget(box); - }; - - m_showUserContent = new QCheckBox(tr("User content")); - configCheckBox(m_showUserContent); - m_showFactoryContent = new QCheckBox(tr("Factory content")); - configCheckBox(m_showFactoryContent); - - addContentWidget(filterWidget); -}; - - FileBrowser::FileBrowser(const QString & directories, const QString & filter, const QString & title, const QPixmap & pm, - QWidget * parent, bool dirs_as_items, bool recurse, + QWidget * parent, bool dirs_as_items, const QString& userDir, const QString& factoryDir): SideBarWidget( title, pm, parent ), m_directories( directories ), m_filter( filter ), m_dirsAsItems( dirs_as_items ), - m_recurse( recurse ), m_userDir(userDir), m_factoryDir(factoryDir) { setWindowTitle( tr( "Browser" ) ); - if (!userDir.isEmpty() && !factoryDir.isEmpty()) - { - addContentCheckBox(); - } + addContentCheckBox(); auto searchWidget = new QWidget(contentParent()); searchWidget->setFixedHeight( 24 ); @@ -130,7 +107,6 @@ FileBrowser::FileBrowser(const QString & directories, const QString & filter, m_filterEdit->addAction(embed::getIconPixmap("zoom"), QLineEdit::LeadingPosition); connect(m_filterEdit, &QLineEdit::textEdited, this, &FileBrowser::onSearch); - connect(FileBrowserSearcher::instance(), &FileBrowserSearcher::searchComplete, this, &FileBrowser::buildSearchTree); auto reload_btn = new QPushButton(embed::getIconPixmap("reload"), QString(), searchWidget); reload_btn->setToolTip( tr( "Refresh list" ) ); @@ -149,6 +125,11 @@ FileBrowser::FileBrowser(const QString & directories, const QString & filter, m_searchTreeWidget->hide(); addContentWidget(m_searchTreeWidget); + m_searchIndicator = new QProgressBar(this); + m_searchIndicator->setMinimum(0); + m_searchIndicator->setMaximum(100); + addContentWidget(m_searchIndicator); + // Whenever the FileBrowser has focus, Ctrl+F should direct focus to its filter box. auto filterFocusShortcut = new QShortcut(QKeySequence(QKeySequence::Find), this, SLOT(giveFocusToFilter())); filterFocusShortcut->setContext(Qt::WidgetWithChildrenShortcut); @@ -159,9 +140,52 @@ FileBrowser::FileBrowser(const QString & directories, const QString & filter, show(); } -QDir::Filters FileBrowser::dirFilters() +void FileBrowser::addContentCheckBox() { - return QDir::AllDirs | QDir::Files | QDir::NoDotAndDotDot; + // user dir and factory dir checkboxes will display individually depending on whether they are empty. + const bool user_checkbox = !m_userDir.isEmpty(); + const bool factory = !m_factoryDir.isEmpty(); + + auto filterWidget = new QWidget(contentParent()); + + outerLayout = new QBoxLayout(QBoxLayout::Direction::TopToBottom, filterWidget); + outerLayout->setSpacing(0); + + if (user_checkbox || factory){ + filterWidgetLayout = new QBoxLayout(QBoxLayout::Direction::LeftToRight); + filterWidgetLayout->setContentsMargins(0, 0, 0, 0); + filterWidgetLayout->setSpacing(0); + + outerLayout->addLayout(filterWidgetLayout); + } + + hiddenWidgetLayout = new QBoxLayout(QBoxLayout::Direction::LeftToRight); + hiddenWidgetLayout->setContentsMargins(0, 0, 0, 0); + hiddenWidgetLayout->setSpacing(0); + + outerLayout->addLayout(hiddenWidgetLayout); + + auto configCheckBox = [this](QBoxLayout* boxLayout, QCheckBox* box, Qt::CheckState checkState) + { + box->setCheckState(checkState); + connect(box, SIGNAL(stateChanged(int)), this, SLOT(reloadTree())); + boxLayout->addWidget(box); + }; + + if (user_checkbox) { + m_showUserContent = new QCheckBox(tr("User content")); + configCheckBox(filterWidgetLayout, m_showUserContent, Qt::Checked); + } + + if (factory) { + m_showFactoryContent = new QCheckBox(tr("Factory content")); + configCheckBox(filterWidgetLayout, m_showFactoryContent, Qt::Checked); + } + + m_showHiddenContent = new QCheckBox(tr("Hidden content")); + configCheckBox(hiddenWidgetLayout, m_showHiddenContent, Qt::Unchecked); + + addContentWidget(filterWidget); } void FileBrowser::saveDirectoriesStates() @@ -171,167 +195,128 @@ void FileBrowser::saveDirectoriesStates() void FileBrowser::restoreDirectoriesStates() { - expandItems(nullptr, m_savedExpandedDirs); + expandItems(m_savedExpandedDirs); } -void FileBrowser::buildSearchTree(QStringList matches, QString id) +void FileBrowser::foundSearchMatch(FileSearch* search, const QString& match) { - if (title() != id) { return; } + assert(search != nullptr); + if (m_currentSearch.get() != search) { return; } - m_searchTreeWidget->clear(); - - const auto rootPaths = m_directories.split('*'); - for (const auto& rootPath : rootPaths) + auto basePath = QString{}; + for (const auto& path : m_directories.split('*')) { - const auto rootPathDir = QDir{rootPath}; - const auto absoluteRootPath = rootPathDir.absolutePath(); + if (!match.startsWith(QDir{path}.absolutePath())) { continue; } + basePath = path; + break; + } - for (const auto& match : matches) - { - if (!match.startsWith(absoluteRootPath)) { continue; } + if (basePath.isEmpty()) { return; } - const auto childInfo = QFileInfo{match}; - const auto childName = childInfo.fileName(); - const auto parentPath = childInfo.dir().path(); - auto childWidget = static_cast(nullptr); + const auto baseDir = QDir{basePath}; + const auto matchInfo = QFileInfo{match}; + const auto matchRelativeToBasePath = baseDir.relativeFilePath(match); - if (childInfo.isDir()) - { - auto dirChildWidget = new Directory(childName, parentPath, m_filter); - dirChildWidget->update(); - childWidget = dirChildWidget; - } - else if (childInfo.isFile()) { childWidget = new FileItem(childName, parentPath); } - else { continue; } + auto pathParts = QDir::cleanPath(matchRelativeToBasePath).split("/"); + auto currentItem = static_cast(nullptr); + auto currentDir = baseDir; + + for (const auto& pathPart : pathParts) + { + auto childCount = currentItem ? currentItem->childCount() : m_searchTreeWidget->topLevelItemCount(); + auto childItem = static_cast(nullptr); - const auto relativeParentPath = rootPathDir.relativeFilePath(parentPath); - if (relativeParentPath == ".") + for (int i = 0; i < childCount; ++i) + { + auto item = currentItem ? currentItem->child(i) : m_searchTreeWidget->topLevelItem(i); + if (item->text(0) == pathPart) { - m_searchTreeWidget->addTopLevelItem(childWidget); - if (childInfo.isDir()) { m_searchTreeWidget->expandItem(childWidget); } - continue; + childItem = item; + break; } - const auto grandParentPath = QFileInfo{parentPath}.dir().path(); - const auto parentItems = m_searchTreeWidget->findItems(relativeParentPath, Qt::MatchExactly); + } - if (parentItems.isEmpty()) + if (!childItem) + { + auto pathPartInfo = QFileInfo(currentDir, pathPart); + if (pathPartInfo.isDir()) + { + // Only update directory (i.e., add entries) when it is the matched directory (so do not update + // parents since entries would be added to them that did not match the filter) + const auto disablePopulation = pathParts.indexOf(pathPart) < pathParts.size() - 1; + + auto item = new Directory(pathPart, currentDir.path(), m_filter, disablePopulation); + currentItem ? currentItem->addChild(item) : m_searchTreeWidget->addTopLevelItem(item); + item->update(); + if (disablePopulation) { m_searchTreeWidget->expandItem(item); } + childItem = item; + } + else { - auto parentItem = new Directory(relativeParentPath, grandParentPath, m_filter); - parentItem->addChild(childWidget); - m_searchTreeWidget->addTopLevelItem(parentItem); - m_searchTreeWidget->expandItem(parentItem); + auto item = new FileItem(pathPart, currentDir.path()); + currentItem ? currentItem->addChild(item) : m_searchTreeWidget->addTopLevelItem(item); + childItem = item; } - else { parentItems[0]->addChild(childWidget); } } + + currentItem = childItem; + if (!currentDir.cd(pathPart)) { break; } } +} + +void FileBrowser::searchCompleted(FileSearch* search) +{ + assert(search != nullptr); + if (m_currentSearch.get() != search) { return; } - toggleSearch(true); + m_currentSearch.reset(); + m_searchIndicator->setMaximum(100); } - void FileBrowser::onSearch(const QString& filter) { - auto instance = FileBrowserSearcher::instance(); + if (m_currentSearch) { m_currentSearch->cancel(); } + if (filter.isEmpty()) { - toggleSearch(false); - instance->cancel(); + displaySearch(false); return; } - instance->search({m_directories, filter, dirFilters(), m_filter.split(' '), title()}); + + auto directories = m_directories.split('*'); + if (m_showUserContent && !m_showUserContent->isChecked()) { directories.removeAll(m_userDir); } + if (m_showFactoryContent && !m_showFactoryContent->isChecked()) { directories.removeAll(m_factoryDir); } + if (directories.isEmpty()) { return; } + + m_searchTreeWidget->clear(); + displaySearch(true); + + auto browserExtensions = m_filter; + const auto searchExtensions = browserExtensions.remove("*.").split(' '); + + auto search = std::make_shared( + filter, directories, searchExtensions, excludedPaths(), dirFilters(), sortFlags()); + connect(search.get(), &FileSearch::foundMatch, this, &FileBrowser::foundSearchMatch, Qt::QueuedConnection); + connect(search.get(), &FileSearch::searchCompleted, this, &FileBrowser::searchCompleted, Qt::QueuedConnection); + + m_currentSearch = search; + ThreadPool::instance().enqueue([search] { (*search)(); }); } -void FileBrowser::toggleSearch(bool on) +void FileBrowser::displaySearch(bool on) { if (on) { m_searchTreeWidget->show(); m_fileBrowserTreeWidget->hide(); + m_searchIndicator->setMaximum(0); return; } m_searchTreeWidget->hide(); m_fileBrowserTreeWidget->show(); -} - -bool FileBrowser::filterAndExpandItems(const QString & filter, QTreeWidgetItem * item) -{ - // Call with item = nullptr to filter the entire tree - - if (item == nullptr) - { - // First search character so need to save current expanded directories - if (m_previousFilterValue.isEmpty()) - { - saveDirectoriesStates(); - } - - m_previousFilterValue = filter; - } - - if (filter.isEmpty()) - { - // Restore previous expanded directories - if (item == nullptr) - { - restoreDirectoriesStates(); - } - - return false; - } - - bool anyMatched = false; - - int numChildren = item ? item->childCount() : m_fileBrowserTreeWidget->topLevelItemCount(); - - for (int i = 0; i < numChildren; ++i) - { - QTreeWidgetItem * it = item ? item->child( i ) : m_fileBrowserTreeWidget->topLevelItem(i); - - auto d = dynamic_cast(it); - if (d) - { - if (it->text(0).contains(filter, Qt::CaseInsensitive)) - { - it->setHidden(false); - it->setExpanded(true); - filterAndExpandItems(QString(), it); - anyMatched = true; - } - else - { - // Expanding is required when recursive to load in its contents, even if it's collapsed right afterward - it->setExpanded(true); - - bool didMatch = filterAndExpandItems(filter, it); - it->setHidden(!didMatch); - it->setExpanded(didMatch); - anyMatched = anyMatched || didMatch; - } - } - - else - { - auto f = dynamic_cast(it); - if (f) - { - // File - bool didMatch = it->text(0).contains(filter, Qt::CaseInsensitive); - it->setHidden(!didMatch); - anyMatched = anyMatched || didMatch; - } - - // A standard item (i.e. no file or directory item?) - else - { - // Hide if there's any filter - it->setHidden(!filter.isEmpty()); - } - } - } - - return anyMatched; + m_searchIndicator->setMaximum(100); } @@ -370,14 +355,16 @@ void FileBrowser::reloadTree() } else { - filterAndExpandItems(m_filterEdit->text()); + onSearch(m_filterEdit->text()); } } -void FileBrowser::expandItems(QTreeWidgetItem* item, QList expandedDirs) +void FileBrowser::expandItems(const QList& expandedDirs, QTreeWidgetItem* item) { + if (expandedDirs.isEmpty()) { return; } + int numChildren = item ? item->childCount() : m_fileBrowserTreeWidget->topLevelItemCount(); for (int i = 0; i < numChildren; ++i) { @@ -385,14 +372,10 @@ void FileBrowser::expandItems(QTreeWidgetItem* item, QList expandedDirs auto d = dynamic_cast(it); if (d) { - // Expanding is required when recursive to load in its contents, even if it's collapsed right afterward - if (m_recurse) { d->setExpanded(true); } - d->setExpanded(expandedDirs.contains(d->fullName())); - - if (m_recurse && it->childCount()) + if (it->childCount() > 0) { - expandItems(it, expandedDirs); + expandItems(expandedDirs, it); } } @@ -416,6 +399,8 @@ void FileBrowser::giveFocusToFilter() void FileBrowser::addItems(const QString & path ) { + if (FileBrowser::excludedPaths().contains(path)) { return; } + if( m_dirsAsItems ) { m_fileBrowserTreeWidget->addTopLevelItem( new Directory( path, QString(), m_filter ) ); @@ -426,10 +411,15 @@ void FileBrowser::addItems(const QString & path ) QDir cdir(path); if (!cdir.isReadable()) { return; } QFileInfoList entries = cdir.entryInfoList( - m_filter.split(' '), dirFilters(), QDir::LocaleAware | QDir::DirsFirst | QDir::Name | QDir::IgnoreCase); + m_filter.split(' '), + dirFilters(), + QDir::LocaleAware | QDir::DirsFirst | QDir::Name | QDir::IgnoreCase); for (const auto& entry : entries) { + if (FileBrowser::excludedPaths().contains(entry.absoluteFilePath())) { continue; } + QString fileName = entry.fileName(); + if (entry.isHidden() && m_showHiddenContent && !m_showHiddenContent->isChecked()) continue; if (entry.isDir()) { // Merge dir's together @@ -753,9 +743,12 @@ void FileBrowserTreeWidget::previewFileItem(FileItem* file) embed::getIconPixmap("sample_file", 24, 24), 0); // TODO: this can be removed once we do this outside the event thread qApp->processEvents(QEventLoop::ExcludeUserInputEvents); - auto s = new SamplePlayHandle(fileName); - s->setDoneMayReturnTrue(false); - newPPH = s; + if (auto buffer = SampleLoader::createBufferFromFile(fileName)) + { + auto s = new SamplePlayHandle(new lmms::Sample{std::move(buffer)}); + s->setDoneMayReturnTrue(false); + newPPH = s; + } delete tf; } else if ( @@ -1046,160 +1039,27 @@ void FileBrowserTreeWidget::updateDirectory(QTreeWidgetItem * item ) } } - - -FileBrowserSearcher::FileBrowserSearcher() - : m_worker([this] { run(); }) -{ -} - -FileBrowserSearcher::~FileBrowserSearcher() noexcept -{ - m_cancel = true; - { - const auto runLock = std::lock_guard{m_runMutex}; - m_stopped = true; - m_cancel = false; - } - m_runCond.notify_one(); - m_worker.join(); -} - -void FileBrowserSearcher::search(SearchTask task) -{ - m_cancel = true; - { - const auto runLock = std::lock_guard{m_runMutex}; - m_currentTask = std::move(task); - m_run = true; - m_cancel = false; - } - m_runCond.notify_one(); -} - -void FileBrowserSearcher::cancel() +Directory::Directory(const QString& filename, const QString& path, const QString& filter, bool disableEntryPopulation) + : QTreeWidgetItem(QStringList(filename), TypeDirectoryItem) + , m_directories(path) + , m_filter(filter) + , m_dirCount(0) + , m_disableEntryPopulation(disableEntryPopulation) { - m_cancel = true; -} - -void FileBrowserSearcher::run() -{ - while (true) - { - auto lock = std::unique_lock{m_runMutex}; - m_runCond.wait(lock, [this] { return m_run || m_stopped; }); - - if (m_stopped) { break; } - - filter(); - m_run = false; - } -} - -void FileBrowserSearcher::filter() -{ - const auto& [directories, userFilter, filters, nameFilters, id] = m_currentTask; - const auto paths = directories.split('*'); - auto matches = QStringList{}; - - for (const auto& path : paths) - { - auto it = QDirIterator{path, nameFilters, filters, QDirIterator::Subdirectories}; - while (it.hasNext()) - { - it.next(); - const auto name = it.fileName(); - const auto path = it.filePath(); - if (!inHiddenDirectory(path) && name.contains(userFilter, Qt::CaseInsensitive)) { matches.push_back(path); } - if (m_cancel) { return; } - } - } - - emit searchComplete(matches, id); -} - -FileBrowserSearcher* FileBrowserSearcher::instance() -{ - if (!s_instance) { s_instance = std::make_unique(); } - return s_instance.get(); -} - -bool FileBrowserSearcher::inHiddenDirectory(const QString& path) -{ - auto dir = QDir{path}; - while (!dir.isRoot()) - { - auto info = QFileInfo{dir.path()}; - if (info.isHidden()) { return true; } - dir.cdUp(); - } - return false; -} - - -QPixmap * Directory::s_folderPixmap = nullptr; -QPixmap * Directory::s_folderOpenedPixmap = nullptr; -QPixmap * Directory::s_folderLockedPixmap = nullptr; - - -Directory::Directory(const QString & filename, const QString & path, - const QString & filter ) : - QTreeWidgetItem( QStringList( filename ), TypeDirectoryItem ), - m_directories( path ), - m_filter( filter ), - m_dirCount( 0 ) -{ - initPixmaps(); - + setIcon(0, !QDir{fullName()}.isReadable() ? m_folderLockedPixmap : m_folderPixmap); setChildIndicatorPolicy( QTreeWidgetItem::ShowIndicator ); - - if( !QDir( fullName() ).isReadable() ) - { - setIcon( 0, *s_folderLockedPixmap ); - } - else - { - setIcon( 0, *s_folderPixmap ); - } } - - - -void Directory::initPixmaps() -{ - if( s_folderPixmap == nullptr ) - { - s_folderPixmap = new QPixmap( - embed::getIconPixmap( "folder" ) ); - } - - if( s_folderOpenedPixmap == nullptr ) - { - s_folderOpenedPixmap = new QPixmap( - embed::getIconPixmap( "folder_opened" ) ); - } - - if( s_folderLockedPixmap == nullptr ) - { - s_folderLockedPixmap = new QPixmap( - embed::getIconPixmap( "folder_locked" ) ); - } -} - - - - void Directory::update() { if( !isExpanded() ) { - setIcon( 0, *s_folderPixmap ); + setIcon(0, m_folderPixmap); return; } - setIcon( 0, *s_folderOpenedPixmap ); - if( !childCount() ) + setIcon(0, m_folderOpenedPixmap); + if (!m_disableEntryPopulation && !childCount()) { m_dirCount = 0; // for all paths leading here, add their items @@ -1232,17 +1092,19 @@ void Directory::update() bool Directory::addItems(const QString& path) { + if (FileBrowser::excludedPaths().contains(path)) { return false; } + QDir thisDir(path); if (!thisDir.isReadable()) { return false; } treeWidget()->setUpdatesEnabled(false); - QFileInfoList entries = thisDir.entryInfoList( - m_filter.split(' '), - QDir::AllDirs | QDir::Files | QDir::NoDotAndDotDot, - QDir::LocaleAware | QDir::DirsFirst | QDir::Name | QDir::IgnoreCase); + QFileInfoList entries + = thisDir.entryInfoList(m_filter.split(' '), FileBrowser::dirFilters(), FileBrowser::sortFlags()); for (const auto& entry : entries) { + if (FileBrowser::excludedPaths().contains(entry.absoluteFilePath())) { continue; } + QString fileName = entry.fileName(); if (entry.isDir()) { @@ -1266,15 +1128,6 @@ bool Directory::addItems(const QString& path) -QPixmap * FileItem::s_projectFilePixmap = nullptr; -QPixmap * FileItem::s_presetFilePixmap = nullptr; -QPixmap * FileItem::s_sampleFilePixmap = nullptr; -QPixmap * FileItem::s_soundfontFilePixmap = nullptr; -QPixmap * FileItem::s_vstPluginFilePixmap = nullptr; -QPixmap * FileItem::s_midiFilePixmap = nullptr; -QPixmap * FileItem::s_unknownFilePixmap = nullptr; - - FileItem::FileItem(QTreeWidget * parent, const QString & name, const QString & path ) : QTreeWidgetItem( parent, QStringList( name) , TypeFileItem ), @@ -1300,72 +1153,38 @@ FileItem::FileItem(const QString & name, const QString & path ) : void FileItem::initPixmaps() { - if( s_projectFilePixmap == nullptr ) - { - s_projectFilePixmap = new QPixmap( embed::getIconPixmap( - "project_file", 16, 16 ) ); - } - - if( s_presetFilePixmap == nullptr ) - { - s_presetFilePixmap = new QPixmap( embed::getIconPixmap( - "preset_file", 16, 16 ) ); - } - - if( s_sampleFilePixmap == nullptr ) - { - s_sampleFilePixmap = new QPixmap( embed::getIconPixmap( - "sample_file", 16, 16 ) ); - } - - if ( s_soundfontFilePixmap == nullptr ) - { - s_soundfontFilePixmap = new QPixmap( embed::getIconPixmap( - "soundfont_file", 16, 16 ) ); - } - - if ( s_vstPluginFilePixmap == nullptr ) - { - s_vstPluginFilePixmap = new QPixmap( embed::getIconPixmap( - "vst_plugin_file", 16, 16 ) ); - } - - if( s_midiFilePixmap == nullptr ) - { - s_midiFilePixmap = new QPixmap( embed::getIconPixmap( - "midi_file", 16, 16 ) ); - } - - if( s_unknownFilePixmap == nullptr ) - { - s_unknownFilePixmap = new QPixmap( embed::getIconPixmap( - "unknown_file" ) ); - } + static auto s_projectFilePixmap = embed::getIconPixmap("project_file", 16, 16); + static auto s_presetFilePixmap = embed::getIconPixmap("preset_file", 16, 16); + static auto s_sampleFilePixmap = embed::getIconPixmap("sample_file", 16, 16); + static auto s_soundfontFilePixmap = embed::getIconPixmap("soundfont_file", 16, 16); + static auto s_vstPluginFilePixmap = embed::getIconPixmap("vst_plugin_file", 16, 16); + static auto s_midiFilePixmap = embed::getIconPixmap("midi_file", 16, 16); + static auto s_unknownFilePixmap = embed::getIconPixmap("unknown_file"); switch( m_type ) { case FileType::Project: - setIcon( 0, *s_projectFilePixmap ); + setIcon(0, s_projectFilePixmap); break; case FileType::Preset: - setIcon( 0, *s_presetFilePixmap ); + setIcon(0, s_presetFilePixmap); break; case FileType::SoundFont: - setIcon( 0, *s_soundfontFilePixmap ); + setIcon(0, s_soundfontFilePixmap); break; case FileType::VstPlugin: - setIcon( 0, *s_vstPluginFilePixmap ); + setIcon(0, s_vstPluginFilePixmap); break; case FileType::Sample: case FileType::Patch: // TODO - setIcon( 0, *s_sampleFilePixmap ); + setIcon(0, s_sampleFilePixmap); break; case FileType::Midi: - setIcon( 0, *s_midiFilePixmap ); + setIcon(0, s_midiFilePixmap); break; case FileType::Unknown: default: - setIcon( 0, *s_unknownFilePixmap ); + setIcon(0, s_unknownFilePixmap); break; } } diff --git a/src/gui/GuiApplication.cpp b/src/gui/GuiApplication.cpp index 3370cbc6ebf..5c4bdd19a16 100644 --- a/src/gui/GuiApplication.cpp +++ b/src/gui/GuiApplication.cpp @@ -148,7 +148,7 @@ GuiApplication::GuiApplication() connect(m_songEditor, SIGNAL(destroyed(QObject*)), this, SLOT(childDestroyed(QObject*))); displayInitProgress(tr("Preparing mixer")); - m_mixerView = new MixerView; + m_mixerView = new MixerView(Engine::mixer()); connect(m_mixerView, SIGNAL(destroyed(QObject*)), this, SLOT(childDestroyed(QObject*))); displayInitProgress(tr("Preparing controller rack")); diff --git a/src/gui/LfoControllerDialog.cpp b/src/gui/LfoControllerDialog.cpp index 77362b169aa..559ac13360c 100644 --- a/src/gui/LfoControllerDialog.cpp +++ b/src/gui/LfoControllerDialog.cpp @@ -31,6 +31,7 @@ #include "Knob.h" #include "TempoSyncKnob.h" #include "PixmapButton.h" +#include "SampleLoader.h" namespace lmms::gui { @@ -210,14 +211,14 @@ LfoControllerDialog::~LfoControllerDialog() void LfoControllerDialog::askUserDefWave() { - SampleBuffer * sampleBuffer = dynamic_cast(this->model())-> - m_userDefSampleBuffer; - QString fileName = sampleBuffer->openAndSetWaveformFile(); - if( fileName.isEmpty() == false ) - { - // TODO: - m_userWaveBtn->setToolTip(sampleBuffer->audioFile()); - } + const auto fileName = SampleLoader::openWaveformFile(); + if (fileName.isEmpty()) { return; } + + auto lfoModel = dynamic_cast(model()); + auto& buffer = lfoModel->m_userDefSampleBuffer; + buffer = SampleLoader::createBufferFromFile(fileName); + + m_userWaveBtn->setToolTip(buffer->audioFile()); } diff --git a/src/gui/Lv2ViewBase.cpp b/src/gui/Lv2ViewBase.cpp index 77268bb9b75..d6a25af834b 100644 --- a/src/gui/Lv2ViewBase.cpp +++ b/src/gui/Lv2ViewBase.cpp @@ -31,14 +31,14 @@ #include #include #include -#include +#include #include "AudioEngine.h" #include "Controls.h" #include "Engine.h" #include "GuiApplication.h" #include "embed.h" -#include "gui_templates.h" +#include "FontHelper.h" #include "lmms_math.h" #include "Lv2ControlBase.h" #include "Lv2Manager.h" @@ -74,7 +74,7 @@ Lv2ViewProc::Lv2ViewProc(QWidget* parent, Lv2Proc* proc, int colNum) : break; case PortVis::Integer: { - sample_rate_t sr = Engine::audioEngine()->processingSampleRate(); + sample_rate_t sr = Engine::audioEngine()->outputSampleRate(); auto pMin = port.min(sr); auto pMax = port.max(sr); int numDigits = std::max(numDigitsAsInt(pMin), numDigitsAsInt(pMax)); @@ -157,8 +157,7 @@ Lv2ViewBase::Lv2ViewBase(QWidget* meAsWidget, Lv2ControlBase *ctrlBase) : m_toggleUIButton->setCheckable(true); m_toggleUIButton->setChecked(false); m_toggleUIButton->setIcon(embed::getIconPixmap("zoom")); - m_toggleUIButton->setFont( - pointSize<8>(m_toggleUIButton->font())); + m_toggleUIButton->setFont(adjustedToPixelSize(m_toggleUIButton->font(), SMALL_FONT_SIZE)); btnBox->addWidget(m_toggleUIButton, 0); } btnBox->addStretch(1); diff --git a/src/gui/MainApplication.cpp b/src/gui/MainApplication.cpp index d33ede4d260..48c400a24dd 100644 --- a/src/gui/MainApplication.cpp +++ b/src/gui/MainApplication.cpp @@ -92,7 +92,7 @@ bool MainApplication::winEventFilter(MSG* msg, long* result) switch(msg->message) { case WM_STYLECHANGING: - if(msg->wParam == GWL_EXSTYLE) + if (msg->wParam == static_cast(GWL_EXSTYLE)) { // Prevent plugins making the main window transparent STYLESTRUCT * style = reinterpret_cast(msg->lParam); diff --git a/src/gui/MainWindow.cpp b/src/gui/MainWindow.cpp index 6acaa4b86a6..c45ea14aca1 100644 --- a/src/gui/MainWindow.cpp +++ b/src/gui/MainWindow.cpp @@ -43,6 +43,7 @@ #include "ExportProjectDialog.h" #include "FileBrowser.h" #include "FileDialog.h" +#include "Metronome.h" #include "MixerView.h" #include "GuiApplication.h" #include "ImportFilter.h" @@ -115,27 +116,27 @@ MainWindow::MainWindow() : "*.mmp *.mmpz *.xml *.mid *.mpt", tr( "My Projects" ), embed::getIconPixmap( "project_file" ).transformed( QTransform().rotate( 90 ) ), - splitter, false, true, + splitter, false, confMgr->userProjectsDir(), confMgr->factoryProjectsDir())); sideBar->appendTab( new FileBrowser(confMgr->userSamplesDir() + "*" + confMgr->factorySamplesDir(), FileItem::defaultFilters(), tr("My Samples"), embed::getIconPixmap("sample_file").transformed(QTransform().rotate(90)), splitter, false, - true, confMgr->userSamplesDir(), confMgr->factorySamplesDir())); + confMgr->userSamplesDir(), confMgr->factorySamplesDir())); sideBar->appendTab( new FileBrowser( confMgr->userPresetsDir() + "*" + confMgr->factoryPresetsDir(), "*.xpf *.cs.xml *.xiz *.lv2", tr( "My Presets" ), embed::getIconPixmap( "preset_file" ).transformed( QTransform().rotate( 90 ) ), - splitter , false, true, + splitter , false, confMgr->userPresetsDir(), confMgr->factoryPresetsDir())); sideBar->appendTab(new FileBrowser(QDir::homePath(), FileItem::defaultFilters(), tr("My Home"), - embed::getIconPixmap("home").transformed(QTransform().rotate(90)), splitter, false, false)); + embed::getIconPixmap("home").transformed(QTransform().rotate(90)), splitter, false)); QStringList root_paths; - QString title = tr( "Root directory" ); + QString title = tr("Root Directory"); bool dirs_as_items = false; #ifdef LMMS_BUILD_APPLE @@ -226,8 +227,6 @@ MainWindow::MainWindow() : connect( Engine::getSong(), SIGNAL(playbackStateChanged()), this, SLOT(updatePlayPauseIcons())); - connect(Engine::getSong(), SIGNAL(stopped()), SLOT(onSongStopped())); - connect(Engine::getSong(), SIGNAL(modified()), SLOT(onSongModified())); connect(Engine::getSong(), SIGNAL(projectFileNameChanged()), SLOT(onProjectFileNameChanged())); @@ -326,10 +325,7 @@ void MainWindow::finalize() SLOT(onExportProjectMidi()), Qt::CTRL + Qt::Key_M ); -// Prevent dangling separator at end of menu per https://bugreports.qt.io/browse/QTBUG-40071 -#if !(defined(LMMS_BUILD_APPLE) && (QT_VERSION < 0x050600)) project_menu->addSeparator(); -#endif project_menu->addAction( embed::getIconPixmap( "exit" ), tr( "&Quit" ), qApp, SLOT(closeAllWindows()), Qt::CTRL + Qt::Key_Q ); @@ -402,10 +398,7 @@ void MainWindow::finalize() this, SLOT(help())); } -// Prevent dangling separator at end of menu per https://bugreports.qt.io/browse/QTBUG-40071 -#if !(defined(LMMS_BUILD_APPLE) && (QT_VERSION < 0x050600)) help_menu->addSeparator(); -#endif help_menu->addAction( embed::getIconPixmap( "icon_small" ), tr( "About" ), this, SLOT(aboutLMMS())); @@ -438,7 +431,7 @@ void MainWindow::finalize() this, SLOT(onToggleMetronome()), m_toolBar ); m_metronomeToggle->setCheckable(true); - m_metronomeToggle->setChecked(Engine::audioEngine()->isMetronomeActive()); + m_metronomeToggle->setChecked(Engine::getSong()->metronome().active()); m_toolBarLayout->setColumnMinimumWidth( 0, 5 ); m_toolBarLayout->addWidget( project_new, 0, 1 ); @@ -982,26 +975,21 @@ void MainWindow::toggleFullscreen() */ void MainWindow::refocus() { - QList editors; - editors - << getGUI()->songEditor()->parentWidget() - << getGUI()->patternEditor()->parentWidget() - << getGUI()->pianoRoll()->parentWidget() - << getGUI()->automationEditor()->parentWidget(); - - bool found = false; - QList::Iterator editor; - for( editor = editors.begin(); editor != editors.end(); ++editor ) - { - if( ! (*editor)->isHidden() ) { - (*editor)->setFocus(); - found = true; - break; + const auto gui = getGUI(); + + // Attempt to set the focus on the first of these editors that is not hidden... + for (auto editorParent : { gui->songEditor()->parentWidget(), gui->patternEditor()->parentWidget(), + gui->pianoRoll()->parentWidget(), gui->automationEditor()->parentWidget() }) + { + if (!editorParent->isHidden()) + { + editorParent->setFocus(); + return; } } - if( ! found ) - this->setFocus(); + // ... otherwise set the focus on the main window. + this->setFocus(); } @@ -1110,8 +1098,7 @@ void MainWindow::updateViewMenu() // Here we should put all look&feel -stuff from configmanager // that is safe to change on the fly. There is probably some // more elegant way to do this. - QAction *qa; - qa = new QAction(tr( "Volume as dBFS" ), this); + auto qa = new QAction(tr("Volume as dBFS"), this); qa->setData("displaydbfs"); qa->setCheckable( true ); qa->setChecked( ConfigManager::inst()->value( "app", "displaydbfs" ).toInt() ); @@ -1182,7 +1169,7 @@ void MainWindow::updateConfig( QAction * _who ) void MainWindow::onToggleMetronome() { - Engine::audioEngine()->setMetronomeActive( m_metronomeToggle->isChecked() ); + Engine::getSong()->metronome().setActive(m_metronomeToggle->isChecked()); } @@ -1606,42 +1593,6 @@ void MainWindow::onImportProject() } } -void MainWindow::onSongStopped() -{ - Song * song = Engine::getSong(); - Song::PlayPos const & playPos = song->getPlayPos(); - - TimeLineWidget * tl = playPos.m_timeLine; - - if( tl ) - { - SongEditorWindow* songEditor = getGUI()->songEditor(); - switch( tl->behaviourAtStop() ) - { - case TimeLineWidget::BehaviourAtStopState::BackToZero: - if( songEditor && ( tl->autoScroll() == TimeLineWidget::AutoScrollState::Enabled ) ) - { - songEditor->m_editor->updatePosition(0); - } - break; - - case TimeLineWidget::BehaviourAtStopState::BackToStart: - if( tl->savedPos() >= 0 ) - { - if(songEditor && ( tl->autoScroll() == TimeLineWidget::AutoScrollState::Enabled ) ) - { - songEditor->m_editor->updatePosition( TimePos(tl->savedPos().getTicks() ) ); - } - tl->savePos( -1 ); - } - break; - - case TimeLineWidget::BehaviourAtStopState::KeepStopPosition: - break; - } - } -} - void MainWindow::onSongModified() { // Only update the window title if the code is executed from the GUI main thread. diff --git a/src/gui/MicrotunerConfig.cpp b/src/gui/MicrotunerConfig.cpp index 4156b9e79df..20660df4110 100644 --- a/src/gui/MicrotunerConfig.cpp +++ b/src/gui/MicrotunerConfig.cpp @@ -31,7 +31,7 @@ #include #include #include -#include +#include #include #include "ComboBox.h" @@ -224,14 +224,14 @@ MicrotunerConfig::MicrotunerConfig() : */ void MicrotunerConfig::updateScaleList(int index) { - if (index >= 0 && index < MaxScaleCount) + if (index >= 0 && static_cast(index) < MaxScaleCount) { m_scaleComboModel.replaceItem(index, QString::number(index) + ": " + Engine::getSong()->getScale(index)->getDescription()); } else { - for (int i = 0; i < MaxScaleCount; i++) + for (auto i = std::size_t{0}; i < MaxScaleCount; i++) { m_scaleComboModel.replaceItem(i, QString::number(i) + ": " + Engine::getSong()->getScale(i)->getDescription()); @@ -246,14 +246,14 @@ void MicrotunerConfig::updateScaleList(int index) */ void MicrotunerConfig::updateKeymapList(int index) { - if (index >= 0 && index < MaxKeymapCount) + if (index >= 0 && static_cast(index) < MaxKeymapCount) { m_keymapComboModel.replaceItem(index, QString::number(index) + ": " + Engine::getSong()->getKeymap(index)->getDescription()); } else { - for (int i = 0; i < MaxKeymapCount; i++) + for (auto i = std::size_t{0}; i < MaxKeymapCount; i++) { m_keymapComboModel.replaceItem(i, QString::number(i) + ": " + Engine::getSong()->getKeymap(i)->getDescription()); @@ -342,7 +342,7 @@ bool MicrotunerConfig::validateScaleForm() { if (line.isEmpty()) {continue;} if (line[0] == '!') {continue;} // comment - QString firstSection = line.section(QRegExp("\\s+|/"), 0, 0, QString::SectionSkipEmpty); + QString firstSection = line.section(QRegularExpression("\\s+|/"), 0, 0, QString::SectionSkipEmpty); if (firstSection.contains('.')) // cent mode { bool ok = true; @@ -357,7 +357,7 @@ bool MicrotunerConfig::validateScaleForm() if (!ok) {fail(tr("Numerator of an interval defined as a ratio cannot be converted to a number")); return false;} if (line.contains('/')) { - den = line.split('/').at(1).section(QRegExp("\\s+"), 0, 0, QString::SectionSkipEmpty).toInt(&ok); + den = line.split('/').at(1).section(QRegularExpression("\\s+"), 0, 0, QString::SectionSkipEmpty).toInt(&ok); } if (!ok) {fail(tr("Denominator of an interval defined as a ratio cannot be converted to a number")); return false;} if (num * den < 0) {fail(tr("Interval defined as a ratio cannot be negative")); return false;} @@ -390,7 +390,7 @@ bool MicrotunerConfig::validateKeymapForm() { if (line.isEmpty()) {continue;} if (line[0] == '!') {continue;} // comment - QString firstSection = line.section(QRegExp("\\s+"), 0, 0, QString::SectionSkipEmpty); + QString firstSection = line.section(QRegularExpression("\\s+"), 0, 0, QString::SectionSkipEmpty); if (firstSection == "x") {continue;} // not mapped // otherwise must contain a number bool ok = true; @@ -424,7 +424,7 @@ bool MicrotunerConfig::applyScale() { if (line.isEmpty()) {continue;} if (line[0] == '!') {continue;} // comment - QString firstSection = line.section(QRegExp("\\s+|/"), 0, 0, QString::SectionSkipEmpty); + QString firstSection = line.section(QRegularExpression("\\s+|/"), 0, 0, QString::SectionSkipEmpty); if (firstSection.contains('.')) // cent mode { newIntervals.emplace_back(firstSection.toFloat()); @@ -435,7 +435,7 @@ bool MicrotunerConfig::applyScale() num = firstSection.toInt(); if (line.contains('/')) { - den = line.split('/').at(1).section(QRegExp("\\s+"), 0, 0, QString::SectionSkipEmpty).toInt(); + den = line.split('/').at(1).section(QRegularExpression("\\s+"), 0, 0, QString::SectionSkipEmpty).toInt(); } newIntervals.emplace_back(num, den); } @@ -470,7 +470,7 @@ bool MicrotunerConfig::applyKeymap() { if (line.isEmpty()) {continue;} if (line[0] == '!') {continue;} // comment - QString firstSection = line.section(QRegExp("\\s+"), 0, 0, QString::SectionSkipEmpty); + QString firstSection = line.section(QRegularExpression("\\s+"), 0, 0, QString::SectionSkipEmpty); if (firstSection == "x") { newMap.push_back(-1); // not mapped diff --git a/src/gui/MidiSetupWidget.cpp b/src/gui/MidiSetupWidget.cpp index 2385def02dd..0e6678727ce 100644 --- a/src/gui/MidiSetupWidget.cpp +++ b/src/gui/MidiSetupWidget.cpp @@ -28,7 +28,6 @@ #include #include "ConfigManager.h" -#include "gui_templates.h" namespace lmms::gui diff --git a/src/gui/MixerChannelView.cpp b/src/gui/MixerChannelView.cpp new file mode 100644 index 00000000000..1432a42cf53 --- /dev/null +++ b/src/gui/MixerChannelView.cpp @@ -0,0 +1,403 @@ +/* + * MixerChannelView.h - the mixer channel view + * + * Copyright (c) 2022 saker + * + * This file is part of LMMS - https://lmms.io + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#include "MixerChannelView.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "CaptionMenu.h" +#include "ColorChooser.h" +#include "ConfigManager.h" +#include "FontHelper.h" +#include "GuiApplication.h" +#include "Mixer.h" +#include "MixerView.h" +#include "PeakIndicator.h" +#include "Song.h" + +namespace lmms::gui { +MixerChannelView::MixerChannelView(QWidget* parent, MixerView* mixerView, int channelIndex) + : QWidget(parent) + , m_mixerView(mixerView) + , m_channelIndex(channelIndex) +{ + auto retainSizeWhenHidden = [](QWidget* widget) { + auto sizePolicy = widget->sizePolicy(); + sizePolicy.setRetainSizeWhenHidden(true); + widget->setSizePolicy(sizePolicy); + }; + + auto receiveArrowContainer = new QWidget{}; + auto receiveArrowLayout = new QVBoxLayout{receiveArrowContainer}; + m_receiveArrow = new QLabel{}; + m_receiveArrow->setPixmap(embed::getIconPixmap("receive_bg_arrow")); + receiveArrowLayout->setContentsMargins(0, 0, 0, 0); + receiveArrowLayout->setSpacing(0); + receiveArrowLayout->addWidget(m_receiveArrow, 0, Qt::AlignHCenter); + + auto sendButtonContainer = new QWidget{}; + auto sendButtonLayout = new QVBoxLayout{sendButtonContainer}; + m_sendButton = new SendButtonIndicator{this, this, mixerView}; + sendButtonLayout->setContentsMargins(0, 0, 0, 0); + sendButtonLayout->setSpacing(0); + sendButtonLayout->addWidget(m_sendButton, 0, Qt::AlignHCenter); + + m_receiveArrowOrSendButton = new QStackedWidget{this}; + m_receiveArrowStackedIndex = m_receiveArrowOrSendButton->addWidget(receiveArrowContainer); + m_sendButtonStackedIndex = m_receiveArrowOrSendButton->addWidget(sendButtonContainer); + retainSizeWhenHidden(m_receiveArrowOrSendButton); + + m_sendKnob = new Knob{KnobType::Bright26, this, tr("Channel send amount")}; + retainSizeWhenHidden(m_sendKnob); + + m_sendArrow = new QLabel{}; + m_sendArrow->setPixmap(embed::getIconPixmap("send_bg_arrow")); + retainSizeWhenHidden(m_sendArrow); + + m_channelNumberLcd = new LcdWidget{2, this}; + m_channelNumberLcd->setValue(channelIndex); + retainSizeWhenHidden(m_channelNumberLcd); + + const auto mixerChannel = Engine::mixer()->mixerChannel(channelIndex); + const auto mixerName = mixerChannel->m_name; + setToolTip(mixerName); + + m_renameLineEdit = new QLineEdit{mixerName, nullptr}; + m_renameLineEdit->setFixedWidth(65); + m_renameLineEdit->setFont(adjustedToPixelSize(font(), LARGE_FONT_SIZE)); + m_renameLineEdit->setReadOnly(true); + m_renameLineEdit->installEventFilter(this); + + auto renameLineEditScene = new QGraphicsScene{}; + m_renameLineEditView = new QGraphicsView{}; + m_renameLineEditView->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); + m_renameLineEditView->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); + m_renameLineEditView->setAttribute(Qt::WA_TransparentForMouseEvents, true); + m_renameLineEditView->setScene(renameLineEditScene); + + auto renameLineEditProxy = renameLineEditScene->addWidget(m_renameLineEdit); + renameLineEditProxy->setRotation(-90); + m_renameLineEditView->setFixedSize(m_renameLineEdit->height() + 5, m_renameLineEdit->width() + 5); + + m_muteButton = new PixmapButton(this, tr("Mute")); + m_muteButton->setModel(&mixerChannel->m_muteModel); + m_muteButton->setActiveGraphic(embed::getIconPixmap("led_off")); + m_muteButton->setInactiveGraphic(embed::getIconPixmap("led_green")); + m_muteButton->setCheckable(true); + m_muteButton->setToolTip(tr("Mute this channel")); + + m_soloButton = new PixmapButton(this, tr("Solo")); + m_soloButton->setModel(&mixerChannel->m_soloModel); + m_soloButton->setActiveGraphic(embed::getIconPixmap("led_red")); + m_soloButton->setInactiveGraphic(embed::getIconPixmap("led_off")); + m_soloButton->setCheckable(true); + m_soloButton->setToolTip(tr("Solo this channel")); + + auto soloMuteLayout = new QVBoxLayout(); + soloMuteLayout->setContentsMargins(0, 0, 0, 0); + soloMuteLayout->setSpacing(0); + soloMuteLayout->addWidget(m_soloButton, 0, Qt::AlignHCenter); + soloMuteLayout->addWidget(m_muteButton, 0, Qt::AlignHCenter); + + m_fader = new Fader{&mixerChannel->m_volumeModel, tr("Fader %1").arg(channelIndex), this}; + + m_peakIndicator = new PeakIndicator(this); + connect(m_fader, &Fader::peakChanged, m_peakIndicator, &PeakIndicator::updatePeak); + + m_effectRackView = new EffectRackView{&mixerChannel->m_fxChain, mixerView->m_racksWidget}; + m_effectRackView->setFixedWidth(EffectRackView::DEFAULT_WIDTH); + + auto mainLayout = new QVBoxLayout{this}; + mainLayout->setContentsMargins(4, 4, 4, 4); + mainLayout->setSpacing(2); + + mainLayout->addWidget(m_receiveArrowOrSendButton, 0, Qt::AlignHCenter); + mainLayout->addWidget(m_sendKnob, 0, Qt::AlignHCenter); + mainLayout->addWidget(m_sendArrow, 0, Qt::AlignHCenter); + mainLayout->addWidget(m_channelNumberLcd, 0, Qt::AlignHCenter); + mainLayout->addWidget(m_renameLineEditView, 0, Qt::AlignHCenter); + mainLayout->addLayout(soloMuteLayout); + mainLayout->addWidget(m_peakIndicator); + mainLayout->addWidget(m_fader, 1, Qt::AlignHCenter); + + connect(m_renameLineEdit, &QLineEdit::editingFinished, this, &MixerChannelView::renameFinished); +} + +void MixerChannelView::contextMenuEvent(QContextMenuEvent*) +{ + auto contextMenu = new CaptionMenu(mixerChannel()->m_name, this); + + if (!isMasterChannel()) // no move-options in master + { + contextMenu->addAction(tr("Move &left"), this, &MixerChannelView::moveChannelLeft); + contextMenu->addAction(tr("Move &right"), this, &MixerChannelView::moveChannelRight); + } + + contextMenu->addAction(tr("Rename &channel"), this, &MixerChannelView::renameChannel); + contextMenu->addSeparator(); + + if (!isMasterChannel()) // no remove-option in master + { + contextMenu->addAction( + embed::getIconPixmap("cancel"), tr("R&emove channel"), this, &MixerChannelView::removeChannel); + contextMenu->addSeparator(); + } + + contextMenu->addAction( + embed::getIconPixmap("cancel"), tr("Remove &unused channels"), this, &MixerChannelView::removeUnusedChannels); + contextMenu->addSeparator(); + + auto colorMenu = QMenu{tr("Color"), this}; + colorMenu.setIcon(embed::getIconPixmap("colorize")); + colorMenu.addAction(tr("Change"), this, &MixerChannelView::selectColor); + colorMenu.addAction(tr("Reset"), this, &MixerChannelView::resetColor); + colorMenu.addAction(tr("Pick random"), this, &MixerChannelView::randomizeColor); + contextMenu->addMenu(&colorMenu); + + contextMenu->exec(QCursor::pos()); + delete contextMenu; +} + +void MixerChannelView::paintEvent(QPaintEvent*) +{ + static constexpr auto innerBorderSize = 3; + static constexpr auto outerBorderSize = 1; + + const auto channel = mixerChannel(); + const auto isActive = m_mixerView->currentMixerChannel() == this; + const auto width = rect().width(); + const auto height = rect().height(); + auto painter = QPainter{this}; + + if (channel->color().has_value() && !channel->m_muteModel.value()) + { + painter.fillRect(rect(), channel->color()->darker(isActive ? 120 : 150)); + } + else { painter.fillRect(rect(), isActive ? backgroundActive().color() : painter.background().color()); } + + // inner border + painter.setPen(isActive ? strokeInnerActive() : strokeInnerInactive()); + painter.drawRect(1, 1, width - innerBorderSize, height - innerBorderSize); + + // outer border + painter.setPen(isActive ? strokeOuterActive() : strokeOuterInactive()); + painter.drawRect(0, 0, width - outerBorderSize, height - outerBorderSize); +} + +void MixerChannelView::mousePressEvent(QMouseEvent*) +{ + if (m_mixerView->currentMixerChannel() != this) { m_mixerView->setCurrentMixerChannel(this); } +} + +void MixerChannelView::mouseDoubleClickEvent(QMouseEvent*) +{ + renameChannel(); +} + +bool MixerChannelView::eventFilter(QObject*, QEvent* event) +{ + // If we are in a rename, capture the enter/return events and handle them + if (event->type() == QEvent::KeyPress) + { + auto keyEvent = static_cast(event); + if (keyEvent->key() == Qt::Key_Enter || keyEvent->key() == Qt::Key_Return) + { + if (m_inRename) + { + renameFinished(); + event->accept(); // Stop the event from propagating + return true; + } + } + } + return false; +} + +void MixerChannelView::setChannelIndex(int index) +{ + MixerChannel* mixerChannel = Engine::mixer()->mixerChannel(index); + m_fader->setModel(&mixerChannel->m_volumeModel); + m_muteButton->setModel(&mixerChannel->m_muteModel); + m_soloButton->setModel(&mixerChannel->m_soloModel); + m_effectRackView->setModel(&mixerChannel->m_fxChain); + m_channelNumberLcd->setValue(index); + m_renameLineEdit->setText(elideName(mixerChannel->m_name)); + m_channelIndex = index; +} + +void MixerChannelView::renameChannel() +{ + m_inRename = true; + setToolTip(""); + m_renameLineEdit->setReadOnly(false); + + m_channelNumberLcd->hide(); + m_renameLineEdit->setFixedWidth(m_renameLineEdit->width()); + m_renameLineEdit->setText(mixerChannel()->m_name); + + m_renameLineEditView->setFocus(); + m_renameLineEdit->selectAll(); + m_renameLineEdit->setFocus(); +} + +void MixerChannelView::renameFinished() +{ + m_inRename = false; + + m_renameLineEdit->deselect(); + m_renameLineEdit->setReadOnly(true); + m_renameLineEdit->setFixedWidth(m_renameLineEdit->width()); + m_channelNumberLcd->show(); + + auto newName = m_renameLineEdit->text(); + setFocus(); + + const auto mc = mixerChannel(); + if (!newName.isEmpty() && mc->m_name != newName) + { + mc->m_name = newName; + m_renameLineEdit->setText(elideName(newName)); + Engine::getSong()->setModified(); + } + + setToolTip(mc->m_name); +} + +void MixerChannelView::resetColor() +{ + mixerChannel()->setColor(std::nullopt); + Engine::getSong()->setModified(); + update(); +} + +void MixerChannelView::selectColor() +{ + const auto channel = mixerChannel(); + + const auto initialColor = channel->color().value_or(backgroundActive().color()); + const auto* colorChooser = ColorChooser{this}.withPalette(ColorChooser::Palette::Mixer); + const auto newColor = colorChooser->getColor(initialColor); + + if (!newColor.isValid()) { return; } + + channel->setColor(newColor); + + Engine::getSong()->setModified(); + update(); +} + +void MixerChannelView::randomizeColor() +{ + auto channel = mixerChannel(); + channel->setColor(ColorChooser::getPalette(ColorChooser::Palette::Mixer)[rand() % 48]); + Engine::getSong()->setModified(); + update(); +} + +bool MixerChannelView::confirmRemoval(int index) +{ + // if config variable is set to false, there is no need for user confirmation + bool needConfirm = ConfigManager::inst()->value("ui", "mixerchanneldeletionwarning", "1").toInt(); + if (!needConfirm) { return true; } + + // is the channel is not in use, there is no need for user confirmation + if (!getGUI()->mixerView()->getMixer()->isChannelInUse(index)) { return true; } + + QString messageRemoveTrack = tr("This Mixer Channel is being used.\n" + "Are you sure you want to remove this channel?\n\n" + "Warning: This operation can not be undone."); + + QString messageTitleRemoveTrack = tr("Confirm removal"); + QString askAgainText = tr("Don't ask again"); + auto askAgainCheckBox = new QCheckBox(askAgainText, nullptr); + connect(askAgainCheckBox, &QCheckBox::stateChanged, [](int state) { + // Invert button state, if it's checked we *shouldn't* ask again + ConfigManager::inst()->setValue("ui", "mixerchanneldeletionwarning", state ? "0" : "1"); + }); + + QMessageBox mb(this); + mb.setText(messageRemoveTrack); + mb.setWindowTitle(messageTitleRemoveTrack); + mb.setIcon(QMessageBox::Warning); + mb.addButton(QMessageBox::Cancel); + mb.addButton(QMessageBox::Ok); + mb.setCheckBox(askAgainCheckBox); + mb.setDefaultButton(QMessageBox::Cancel); + + int answer = mb.exec(); + + return answer == QMessageBox::Ok; +} + +void MixerChannelView::removeChannel() +{ + if (!confirmRemoval(m_channelIndex)) { return; } + auto mix = getGUI()->mixerView(); + mix->deleteChannel(m_channelIndex); +} + +void MixerChannelView::removeUnusedChannels() +{ + auto mix = getGUI()->mixerView(); + mix->deleteUnusedChannels(); +} + +void MixerChannelView::moveChannelLeft() +{ + auto mix = getGUI()->mixerView(); + mix->moveChannelLeft(m_channelIndex); +} + +void MixerChannelView::moveChannelRight() +{ + auto mix = getGUI()->mixerView(); + mix->moveChannelRight(m_channelIndex); +} + +QString MixerChannelView::elideName(const QString& name) +{ + const auto maxTextHeight = m_renameLineEdit->width(); + const auto metrics = QFontMetrics{m_renameLineEdit->font()}; + const auto elidedName = metrics.elidedText(name, Qt::ElideRight, maxTextHeight); + return elidedName; +} + +MixerChannel* MixerChannelView::mixerChannel() const +{ + return Engine::mixer()->mixerChannel(m_channelIndex); +} + +void MixerChannelView::reset() +{ + m_peakIndicator->resetPeakToMinusInf(); +} + +} // namespace lmms::gui diff --git a/src/gui/MixerLine.cpp b/src/gui/MixerLine.cpp deleted file mode 100644 index d3435787e0c..00000000000 --- a/src/gui/MixerLine.cpp +++ /dev/null @@ -1,465 +0,0 @@ -/* - * MixerLine.cpp - Mixer line widget - * - * Copyright (c) 2009 Andrew Kelley - * Copyright (c) 2014 Tobias Doerffel - * - * This file is part of LMMS - https://lmms.io - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program (see COPYING); if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301 USA. - * - */ - -#include "MixerLine.h" - -#include - -#include -#include -#include -#include - -#include "CaptionMenu.h" -#include "ColorChooser.h" -#include "embed.h" -#include "Knob.h" -#include "LcdWidget.h" -#include "Mixer.h" -#include "MixerView.h" -#include "gui_templates.h" -#include "GuiApplication.h" -#include "SendButtonIndicator.h" -#include "Song.h" - -namespace lmms::gui -{ - - -bool MixerLine::eventFilter( QObject *dist, QEvent *event ) -{ - // If we are in a rename, capture the enter/return events and handle them - if ( event->type() == QEvent::KeyPress ) - { - auto keyEvent = static_cast(event); - if( keyEvent->key() == Qt::Key_Enter || keyEvent->key() == Qt::Key_Return ) - { - if( m_inRename ) - { - renameFinished(); - event->accept(); // Stop the event from propagating - return true; - } - } - } - return false; -} - -const int MixerLine::MixerLineHeight = 287; -QPixmap * MixerLine::s_sendBgArrow = nullptr; -QPixmap * MixerLine::s_receiveBgArrow = nullptr; - -MixerLine::MixerLine( QWidget * _parent, MixerView * _mv, int _channelIndex ) : - QWidget( _parent ), - m_mv( _mv ), - m_channelIndex( _channelIndex ), - m_backgroundActive( Qt::SolidPattern ), - m_strokeOuterActive( 0, 0, 0 ), - m_strokeOuterInactive( 0, 0, 0 ), - m_strokeInnerActive( 0, 0, 0 ), - m_strokeInnerInactive( 0, 0, 0 ), - m_inRename( false ) -{ - if( !s_sendBgArrow ) - { - s_sendBgArrow = new QPixmap( embed::getIconPixmap( "send_bg_arrow", 29, 56 ) ); - } - if( !s_receiveBgArrow ) - { - s_receiveBgArrow = new QPixmap( embed::getIconPixmap( "receive_bg_arrow", 29, 56 ) ); - } - - setFixedSize( 33, MixerLineHeight ); - setAttribute( Qt::WA_OpaquePaintEvent, true ); - setCursor( QCursor( embed::getIconPixmap( "hand" ), 3, 3 ) ); - - // mixer sends knob - m_sendKnob = new Knob( KnobType::Bright26, this, tr( "Channel send amount" ) ); - m_sendKnob->move( 3, 22 ); - m_sendKnob->setVisible( false ); - - // send button indicator - m_sendBtn = new SendButtonIndicator( this, this, m_mv ); - m_sendBtn->move( 2, 2 ); - - // channel number - m_lcd = new LcdWidget( 2, this ); - m_lcd->setValue( m_channelIndex ); - m_lcd->move( 4, 58 ); - m_lcd->setMarginWidth( 1 ); - - QString name = Engine::mixer()->mixerChannel( m_channelIndex )->m_name; - setToolTip( name ); - - m_renameLineEdit = new QLineEdit(); - m_renameLineEdit->setText( name ); - m_renameLineEdit->setFixedWidth( 65 ); - m_renameLineEdit->setFont( pointSizeF( font(), 7.5f ) ); - m_renameLineEdit->setReadOnly( true ); - m_renameLineEdit->installEventFilter( this ); - - auto scene = new QGraphicsScene(); - scene->setSceneRect( 0, 0, 33, MixerLineHeight ); - - m_view = new QGraphicsView( this ); - m_view->setStyleSheet( "border-style: none; background: transparent;" ); - m_view->setHorizontalScrollBarPolicy( Qt::ScrollBarAlwaysOff ); - m_view->setVerticalScrollBarPolicy( Qt::ScrollBarAlwaysOff ); - m_view->setAttribute( Qt::WA_TransparentForMouseEvents, true ); - m_view->setScene( scene ); - - QGraphicsProxyWidget * proxyWidget = scene->addWidget( m_renameLineEdit ); - proxyWidget->setRotation( -90 ); - proxyWidget->setPos( 8, 145 ); - - connect( m_renameLineEdit, SIGNAL(editingFinished()), this, SLOT(renameFinished())); - connect( &Engine::mixer()->mixerChannel( m_channelIndex )->m_muteModel, SIGNAL(dataChanged()), this, SLOT(update())); -} - - - - -MixerLine::~MixerLine() -{ - delete m_sendKnob; - delete m_sendBtn; - delete m_lcd; -} - - - - -void MixerLine::setChannelIndex( int index ) -{ - m_channelIndex = index; - m_lcd->setValue( m_channelIndex ); - m_lcd->update(); -} - - - -void MixerLine::drawMixerLine( QPainter* p, const MixerLine *mixerLine, bool isActive, bool sendToThis, bool receiveFromThis ) -{ - auto channel = Engine::mixer()->mixerChannel( m_channelIndex ); - bool muted = channel->m_muteModel.value(); - QString name = channel->m_name; - QString elidedName = elideName( name ); - if( !m_inRename && m_renameLineEdit->text() != elidedName ) - { - m_renameLineEdit->setText( elidedName ); - } - - int width = mixerLine->rect().width(); - int height = mixerLine->rect().height(); - - if (channel->m_color.has_value() && !muted) - { - p->fillRect(mixerLine->rect(), channel->m_color->darker(isActive ? 120 : 150)); - } - else - { - p->fillRect( mixerLine->rect(), - isActive ? mixerLine->backgroundActive().color() : p->background().color() ); - } - - // inner border - p->setPen( isActive ? mixerLine->strokeInnerActive() : mixerLine->strokeInnerInactive() ); - p->drawRect( 1, 1, width-3, height-3 ); - - // outer border - p->setPen( isActive ? mixerLine->strokeOuterActive() : mixerLine->strokeOuterInactive() ); - p->drawRect( 0, 0, width-1, height-1 ); - - // draw the mixer send background - if( sendToThis ) - { - p->drawPixmap( 2, 0, 29, 56, *s_sendBgArrow ); - } - else if( receiveFromThis ) - { - p->drawPixmap( 2, 0, 29, 56, *s_receiveBgArrow ); - } -} - - - - -QString MixerLine::elideName( const QString & name ) -{ - const int maxTextHeight = 60; - QFontMetrics metrics( m_renameLineEdit->font() ); - QString elidedName = metrics.elidedText( name, Qt::ElideRight, maxTextHeight ); - return elidedName; -} - - - - -void MixerLine::paintEvent( QPaintEvent * ) -{ - bool sendToThis = Engine::mixer()->channelSendModel( m_mv->currentMixerLine()->m_channelIndex, m_channelIndex ) != nullptr; - bool receiveFromThis = Engine::mixer()->channelSendModel( m_channelIndex, m_mv->currentMixerLine()->m_channelIndex ) != nullptr; - QPainter painter; - painter.begin( this ); - drawMixerLine( &painter, this, m_mv->currentMixerLine() == this, sendToThis, receiveFromThis ); - painter.end(); -} - - - - -void MixerLine::mousePressEvent( QMouseEvent * ) -{ - m_mv->setCurrentMixerLine( this ); -} - - - - -void MixerLine::mouseDoubleClickEvent( QMouseEvent * ) -{ - renameChannel(); -} - - - - -void MixerLine::contextMenuEvent( QContextMenuEvent * ) -{ - QPointer contextMenu = new CaptionMenu( Engine::mixer()->mixerChannel( m_channelIndex )->m_name, this ); - if( m_channelIndex != 0 ) // no move-options in master - { - contextMenu->addAction( tr( "Move &left" ), this, SLOT(moveChannelLeft())); - contextMenu->addAction( tr( "Move &right" ), this, SLOT(moveChannelRight())); - } - contextMenu->addAction( tr( "Rename &channel" ), this, SLOT(renameChannel())); - contextMenu->addSeparator(); - - if( m_channelIndex != 0 ) // no remove-option in master - { - contextMenu->addAction( embed::getIconPixmap( "cancel" ), tr( "R&emove channel" ), this, SLOT(removeChannel())); - contextMenu->addSeparator(); - } - contextMenu->addAction( embed::getIconPixmap( "cancel" ), tr( "Remove &unused channels" ), this, SLOT(removeUnusedChannels())); - contextMenu->addSeparator(); - - QMenu colorMenu(tr("Color"), this); - colorMenu.setIcon(embed::getIconPixmap("colorize")); - colorMenu.addAction(tr("Change"), this, SLOT(selectColor())); - colorMenu.addAction(tr("Reset"), this, SLOT(resetColor())); - colorMenu.addAction(tr("Pick random"), this, SLOT(randomizeColor())); - contextMenu->addMenu(&colorMenu); - - contextMenu->exec( QCursor::pos() ); - delete contextMenu; -} - - - - -void MixerLine::renameChannel() -{ - m_inRename = true; - setToolTip( "" ); - m_renameLineEdit->setReadOnly( false ); - m_lcd->hide(); - m_renameLineEdit->setFixedWidth( 135 ); - m_renameLineEdit->setText( Engine::mixer()->mixerChannel( m_channelIndex )->m_name ); - m_view->setFocus(); - m_renameLineEdit->selectAll(); - m_renameLineEdit->setFocus(); -} - - - - -void MixerLine::renameFinished() -{ - m_inRename = false; - m_renameLineEdit->deselect(); - m_renameLineEdit->setReadOnly( true ); - m_renameLineEdit->setFixedWidth( 65 ); - m_lcd->show(); - QString newName = m_renameLineEdit->text(); - setFocus(); - if( !newName.isEmpty() && Engine::mixer()->mixerChannel( m_channelIndex )->m_name != newName ) - { - Engine::mixer()->mixerChannel( m_channelIndex )->m_name = newName; - m_renameLineEdit->setText( elideName( newName ) ); - Engine::getSong()->setModified(); - } - QString name = Engine::mixer()->mixerChannel( m_channelIndex )->m_name; - setToolTip( name ); -} - - - - -void MixerLine::removeChannel() -{ - MixerView * mix = getGUI()->mixerView(); - mix->deleteChannel( m_channelIndex ); -} - - - - -void MixerLine::removeUnusedChannels() -{ - MixerView * mix = getGUI()->mixerView(); - mix->deleteUnusedChannels(); -} - - - - -void MixerLine::moveChannelLeft() -{ - MixerView * mix = getGUI()->mixerView(); - mix->moveChannelLeft( m_channelIndex ); -} - - - - -void MixerLine::moveChannelRight() -{ - MixerView * mix = getGUI()->mixerView(); - mix->moveChannelRight( m_channelIndex ); -} - - - - -QBrush MixerLine::backgroundActive() const -{ - return m_backgroundActive; -} - - - - -void MixerLine::setBackgroundActive( const QBrush & c ) -{ - m_backgroundActive = c; -} - - - - -QColor MixerLine::strokeOuterActive() const -{ - return m_strokeOuterActive; -} - - - - -void MixerLine::setStrokeOuterActive( const QColor & c ) -{ - m_strokeOuterActive = c; -} - - - - -QColor MixerLine::strokeOuterInactive() const -{ - return m_strokeOuterInactive; -} - - - - -void MixerLine::setStrokeOuterInactive( const QColor & c ) -{ - m_strokeOuterInactive = c; -} - - - - -QColor MixerLine::strokeInnerActive() const -{ - return m_strokeInnerActive; -} - - - - -void MixerLine::setStrokeInnerActive( const QColor & c ) -{ - m_strokeInnerActive = c; -} - - - - -QColor MixerLine::strokeInnerInactive() const -{ - return m_strokeInnerInactive; -} - - - - -void MixerLine::setStrokeInnerInactive( const QColor & c ) -{ - m_strokeInnerInactive = c; -} - - -// Ask user for a color, and set it as the mixer line color -void MixerLine::selectColor() -{ - auto channel = Engine::mixer()->mixerChannel( m_channelIndex ); - auto new_color = ColorChooser(this).withPalette(ColorChooser::Palette::Mixer)->getColor(channel->m_color.value_or(backgroundActive().color())); - if(!new_color.isValid()) { return; } - channel->setColor (new_color); - Engine::getSong()->setModified(); - update(); -} - - -// Disable the usage of color on this mixer line -void MixerLine::resetColor() -{ - Engine::mixer()->mixerChannel(m_channelIndex)->m_color = std::nullopt; - Engine::getSong()->setModified(); - update(); -} - - -// Pick a random color from the mixer palette and set it as our color -void MixerLine::randomizeColor() -{ - auto channel = Engine::mixer()->mixerChannel( m_channelIndex ); - channel->setColor (ColorChooser::getPalette(ColorChooser::Palette::Mixer)[rand() % 48]); - Engine::getSong()->setModified(); - update(); -} - - -} // namespace lmms::gui diff --git a/src/gui/MixerView.cpp b/src/gui/MixerView.cpp index 9cf9fa53fdf..b28f78a3ead 100644 --- a/src/gui/MixerView.cpp +++ b/src/gui/MixerView.cpp @@ -22,20 +22,17 @@ * */ +#include "MixerView.h" -#include #include -#include #include #include #include #include #include "lmms_math.h" - -#include "MixerView.h" +#include "MixerChannelView.h" #include "Knob.h" -#include "MixerLine.h" #include "Mixer.h" #include "GuiApplication.h" #include "MainWindow.h" @@ -52,10 +49,11 @@ namespace lmms::gui { -MixerView::MixerView() +MixerView::MixerView(Mixer* mixer) : DetachableWidget{} , ModelView{nullptr, this} , SerializingObjectHook{} + , m_mixer{mixer} { #if QT_VERSION < 0x50C00 // Workaround for a bug in Qt versions below 5.12, @@ -67,55 +65,56 @@ MixerView::MixerView() using ::operator|; #endif - Mixer * m = Engine::mixer(); - m->setHook( this ); + mixer->setHook(this); //QPalette pal = palette(); - //pal.setColor( QPalette::Window, QColor( 72, 76, 88 ) ); - //setPalette( pal ); + //pal.setColor(QPalette::Window, QColor(72, 76, 88)); + //setPalette(pal); - setAutoFillBackground( true ); - setSizePolicy( QSizePolicy::Preferred, QSizePolicy::Fixed ); + setAutoFillBackground(true); - setWindowTitle( tr( "Mixer" ) ); - setWindowIcon( embed::getIconPixmap( "mixer" ) ); + setWindowTitle(tr("Mixer")); + setWindowIcon(embed::getIconPixmap("mixer")); // main-layout - auto ml = new QHBoxLayout; + auto ml = new QHBoxLayout{this}; // Set margins - ml->setContentsMargins( 0, 4, 0, 0 ); + ml->setContentsMargins(0, 4, 0, 0); // Channel area m_channelAreaWidget = new QWidget; - chLayout = new QHBoxLayout( m_channelAreaWidget ); - chLayout->setSizeConstraint( QLayout::SetMinimumSize ); - chLayout->setSpacing( 0 ); + chLayout = new QHBoxLayout(m_channelAreaWidget); + chLayout->setSizeConstraint(QLayout::SetMinimumSize); + chLayout->setSpacing(0); chLayout->setContentsMargins(0, 0, 0, 0); + chLayout->setAlignment(Qt::AlignLeft); m_channelAreaWidget->setLayout(chLayout); // create rack layout before creating the first channel m_racksWidget = new QWidget; - m_racksLayout = new QStackedLayout( m_racksWidget ); - m_racksLayout->setContentsMargins( 0, 0, 0, 0 ); - m_racksWidget->setLayout( m_racksLayout ); + m_racksLayout = new QStackedLayout(m_racksWidget); + m_racksLayout->setContentsMargins(0, 0, 0, 0); + m_racksWidget->setLayout(m_racksLayout); // add master channel - m_mixerChannelViews.resize( m->numChannels() ); - m_mixerChannelViews[0] = new MixerChannelView( this, this, 0 ); + m_mixerChannelViews.resize(mixer->numChannels()); + MixerChannelView * masterView = new MixerChannelView(this, this, 0); + connectToSoloAndMute(0); + m_mixerChannelViews[0] = masterView; - m_racksLayout->addWidget( m_mixerChannelViews[0]->m_rackView ); + m_racksLayout->addWidget(m_mixerChannelViews[0]->m_effectRackView); - MixerChannelView * masterView = m_mixerChannelViews[0]; - ml->addWidget( masterView->m_mixerLine, 0, Qt::AlignTop ); + ml->addWidget(masterView, 0); - QSize mixerLineSize = masterView->m_mixerLine->size(); + auto mixerChannelSize = masterView->sizeHint(); // add mixer channels - for( int i = 1; i < m_mixerChannelViews.size(); ++i ) + for (int i = 1; i < m_mixerChannelViews.size(); ++i) { m_mixerChannelViews[i] = new MixerChannelView(m_channelAreaWidget, this, i); - chLayout->addWidget( m_mixerChannelViews[i]->m_mixerLine ); + connectToSoloAndMute(i); + chLayout->addWidget(m_mixerChannelViews[i]); } // add the scrolling section to the main layout @@ -123,45 +122,48 @@ MixerView::MixerView() class ChannelArea : public QScrollArea { public: - ChannelArea( QWidget * parent, MixerView * mv ) : - QScrollArea( parent ), m_mv( mv ) {} + ChannelArea(QWidget* parent, MixerView* mv) : + QScrollArea(parent), m_mv(mv) {} ~ChannelArea() override = default; - void keyPressEvent( QKeyEvent * e ) override + void keyPressEvent(QKeyEvent* e) override { - m_mv->keyPressEvent( e ); + m_mv->keyPressEvent(e); } private: - MixerView * m_mv; + MixerView* m_mv; }; - channelArea = new ChannelArea( this, this ); - channelArea->setWidget( m_channelAreaWidget ); - channelArea->setVerticalScrollBarPolicy( Qt::ScrollBarAlwaysOff ); - channelArea->setFrameStyle( QFrame::NoFrame ); - channelArea->setMinimumWidth( mixerLineSize.width() * 6 ); - channelArea->setFixedHeight( mixerLineSize.height() + - style()->pixelMetric( QStyle::PM_ScrollBarExtent ) ); - ml->addWidget( channelArea, 1, Qt::AlignTop ); + channelArea = new ChannelArea(this, this); + channelArea->setWidget(m_channelAreaWidget); + channelArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); + channelArea->setFrameStyle(QFrame::NoFrame); + channelArea->setMinimumWidth(mixerChannelSize.width() * 6); + channelArea->setWidgetResizable(true); + + int const scrollBarExtent = style()->pixelMetric(QStyle::PM_ScrollBarExtent); + channelArea->setMinimumHeight(mixerChannelSize.height() + scrollBarExtent); + + ml->addWidget(channelArea, 1); // show the add new mixer channel button auto newChannelBtn = new QPushButton(embed::getIconPixmap("new_channel"), QString(), this); - newChannelBtn->setObjectName( "newChannelBtn" ); - newChannelBtn->setFixedSize( mixerLineSize ); - connect( newChannelBtn, SIGNAL(clicked()), this, SLOT(addNewChannel())); - ml->addWidget( newChannelBtn, 0, Qt::AlignTop ); + newChannelBtn->setObjectName("newChannelBtn"); + newChannelBtn->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Expanding); + newChannelBtn->setFixedWidth(mixerChannelSize.width()); + connect(newChannelBtn, SIGNAL(clicked()), this, SLOT(addNewChannel())); + ml->addWidget(newChannelBtn, 0); // add the stacked layout for the effect racks of mixer channels - ml->addWidget( m_racksWidget, 0, Qt::AlignTop | Qt::AlignRight ); + ml->addWidget(m_racksWidget); - setCurrentMixerLine( m_mixerChannelViews[0]->m_mixerLine ); + setCurrentMixerChannel(m_mixerChannelViews[0]); - setLayout( ml ); updateGeometry(); - // timer for updating faders - connect( getGUI()->mainWindow(), SIGNAL(periodicUpdate()), - this, SLOT(updateFaders())); + auto* mainWindow = getGUI()->mainWindow(); + // timer for updating faders + connect(mainWindow, &MainWindow::periodicUpdate, this, &MixerView::updateFaders); // adjust window size layout()->invalidate(); @@ -173,43 +175,32 @@ MixerView::MixerView() setFixedHeight(height()); // add ourself to workspace - QMdiSubWindow * subWin = getGUI()->mainWindow()->addWindowedWidget( this ); - Qt::WindowFlags flags = subWin->windowFlags(); - flags &= ~Qt::WindowMaximizeButtonHint; - subWin->setWindowFlags( flags ); - layout()->setSizeConstraint( QLayout::SetMinimumSize ); - subWin->layout()->setSizeConstraint( QLayout::SetMinAndMaxSize ); - subWin->setFixedHeight(subWin->height()); + QMdiSubWindow* subWin = mainWindow->addWindowedWidget(this); + layout()->setSizeConstraint(QLayout::SetMinimumSize); + subWin->layout()->setSizeConstraint(QLayout::SetMinAndMaxSize); - parentWidget()->setAttribute( Qt::WA_DeleteOnClose, false ); - parentWidget()->move( 5, 310 ); + parentWidget()->setAttribute(Qt::WA_DeleteOnClose, false); + parentWidget()->move(5, 310); // we want to receive dataChanged-signals in order to update - setModel( m ); + setModel(mixer); } -MixerView::~MixerView() -{ - for (auto mixerChannelView : m_mixerChannelViews) - { - delete mixerChannelView; - } -} int MixerView::addNewChannel() { // add new mixer channel and redraw the form. - Mixer * mix = Engine::mixer(); + Mixer * mix = getMixer(); int newChannelIndex = mix->createChannel(); - m_mixerChannelViews.push_back(new MixerChannelView(m_channelAreaWidget, this, - newChannelIndex)); - chLayout->addWidget( m_mixerChannelViews[newChannelIndex]->m_mixerLine ); - m_racksLayout->addWidget( m_mixerChannelViews[newChannelIndex]->m_rackView ); + m_mixerChannelViews.push_back(new MixerChannelView(m_channelAreaWidget, this, newChannelIndex)); + connectToSoloAndMute(newChannelIndex); + chLayout->addWidget(m_mixerChannelViews[newChannelIndex]); + m_racksLayout->addWidget(m_mixerChannelViews[newChannelIndex]->m_effectRackView); - updateMixerLine(newChannelIndex); + updateMixerChannel(newChannelIndex); updateMaxChannelSelector(); @@ -220,35 +211,37 @@ int MixerView::addNewChannel() void MixerView::refreshDisplay() { // delete all views and re-add them - for( int i = 1; iremoveWidget(m_mixerChannelViews[i]->m_mixerLine); - m_racksLayout->removeWidget( m_mixerChannelViews[i]->m_rackView ); - delete m_mixerChannelViews[i]->m_fader; - delete m_mixerChannelViews[i]->m_muteBtn; - delete m_mixerChannelViews[i]->m_soloBtn; - delete m_mixerChannelViews[i]->m_mixerLine; - delete m_mixerChannelViews[i]->m_rackView; - delete m_mixerChannelViews[i]; + // First disconnect from the solo/mute models. + disconnectFromSoloAndMute(i); + + auto * mixerChannelView = m_mixerChannelViews[i]; + chLayout->removeWidget(mixerChannelView); + m_racksLayout->removeWidget(mixerChannelView->m_effectRackView); + + delete mixerChannelView; } m_channelAreaWidget->adjustSize(); // re-add the views - m_mixerChannelViews.resize(Engine::mixer()->numChannels()); - for( int i = 1; i < m_mixerChannelViews.size(); ++i ) + m_mixerChannelViews.resize(getMixer()->numChannels()); + for (int i = 1; i < m_mixerChannelViews.size(); ++i) { m_mixerChannelViews[i] = new MixerChannelView(m_channelAreaWidget, this, i); - chLayout->addWidget(m_mixerChannelViews[i]->m_mixerLine); - m_racksLayout->addWidget( m_mixerChannelViews[i]->m_rackView ); + connectToSoloAndMute(i); + + chLayout->addWidget(m_mixerChannelViews[i]); + m_racksLayout->addWidget(m_mixerChannelViews[i]->m_effectRackView); } - // set selected mixer line to 0 - setCurrentMixerLine( 0 ); + // set selected mixer channel to 0 + setCurrentMixerChannel(0); // update all mixer lines - for( int i = 0; i < m_mixerChannelViews.size(); ++i ) + for (int i = 0; i < m_mixerChannelViews.size(); ++i) { - updateMixerLine( i ); + updateMixerChannel(i); } updateMaxChannelSelector(); @@ -282,122 +275,114 @@ void MixerView::updateMaxChannelSelector() } -void MixerView::saveSettings( QDomDocument & _doc, QDomElement & _this ) +void MixerView::saveSettings(QDomDocument& doc, QDomElement& domElement) { - MainWindow::saveWidgetState( this, _this ); + MainWindow::saveWidgetState(this, domElement); } -void MixerView::loadSettings( const QDomElement & _this ) +void MixerView::loadSettings(const QDomElement& domElement) { - MainWindow::restoreWidgetState( this, _this ); + MainWindow::restoreWidgetState(this, domElement); } -MixerView::MixerChannelView::MixerChannelView(QWidget * _parent, MixerView * _mv, - int channelIndex ) + + + +void MixerView::toggledSolo() { - m_mixerLine = new MixerLine(_parent, _mv, channelIndex); - - MixerChannel *mixerChannel = Engine::mixer()->mixerChannel(channelIndex); - - m_fader = new Fader( &mixerChannel->m_volumeModel, - tr( "Fader %1" ).arg( channelIndex ), m_mixerLine ); - m_fader->setLevelsDisplayedInDBFS(); - m_fader->setMinPeak(dbfsToAmp(-42)); - m_fader->setMaxPeak(dbfsToAmp(9)); - - m_fader->move( 16-m_fader->width()/2, - m_mixerLine->height()- - m_fader->height()-5 ); - - m_muteBtn = new PixmapButton( m_mixerLine, tr( "Mute" ) ); - m_muteBtn->setModel( &mixerChannel->m_muteModel ); - m_muteBtn->setActiveGraphic( - embed::getIconPixmap( "led_off" ) ); - m_muteBtn->setInactiveGraphic( - embed::getIconPixmap( "led_green" ) ); - m_muteBtn->setCheckable( true ); - m_muteBtn->move( 9, m_fader->y()-11); - m_muteBtn->setToolTip(tr("Mute this channel")); - - m_soloBtn = new PixmapButton( m_mixerLine, tr( "Solo" ) ); - m_soloBtn->setModel( &mixerChannel->m_soloModel ); - m_soloBtn->setActiveGraphic( - embed::getIconPixmap( "led_red" ) ); - m_soloBtn->setInactiveGraphic( - embed::getIconPixmap( "led_off" ) ); - m_soloBtn->setCheckable( true ); - m_soloBtn->move( 9, m_fader->y()-21); - connect(&mixerChannel->m_soloModel, SIGNAL(dataChanged()), - _mv, SLOT ( toggledSolo() ), Qt::DirectConnection ); - m_soloBtn->setToolTip(tr("Solo this channel")); - - // Create EffectRack for the channel - m_rackView = new EffectRackView( &mixerChannel->m_fxChain, _mv->m_racksWidget ); - m_rackView->setFixedSize( EffectRackView::DEFAULT_WIDTH, MixerLine::MixerLineHeight ); + getMixer()->toggledSolo(); + + updateAllMixerChannels(); } -void MixerView::MixerChannelView::setChannelIndex( int index ) +void MixerView::toggledMute() { - MixerChannel* mixerChannel = Engine::mixer()->mixerChannel( index ); + updateAllMixerChannels(); +} - m_fader->setModel( &mixerChannel->m_volumeModel ); - m_muteBtn->setModel( &mixerChannel->m_muteModel ); - m_soloBtn->setModel( &mixerChannel->m_soloModel ); - m_rackView->setModel( &mixerChannel->m_fxChain ); +Mixer* MixerView::getMixer() const +{ + return m_mixer; } +void MixerView::updateAllMixerChannels() +{ + for (int i = 0; i < m_mixerChannelViews.size(); ++i) + { + m_mixerChannelViews[i]->update(); + } +} -void MixerView::toggledSolo() +void MixerView::connectToSoloAndMute(int channelIndex) { - Engine::mixer()->toggledSolo(); + auto * mixerChannel = getMixer()->mixerChannel(channelIndex); + + connect(&mixerChannel->m_muteModel, &BoolModel::dataChanged, this, &MixerView::toggledMute, Qt::DirectConnection); + connect(&mixerChannel->m_soloModel, &BoolModel::dataChanged, this, &MixerView::toggledSolo, Qt::DirectConnection); } +void MixerView::disconnectFromSoloAndMute(int channelIndex) +{ + auto * mixerChannel = getMixer()->mixerChannel(channelIndex); + + disconnect(&mixerChannel->m_muteModel, &BoolModel::dataChanged, this, &MixerView::toggledMute); + disconnect(&mixerChannel->m_soloModel, &BoolModel::dataChanged, this, &MixerView::toggledSolo); +} -void MixerView::setCurrentMixerLine( MixerLine * _line ) +void MixerView::setCurrentMixerChannel(MixerChannelView* channel) { // select - m_currentMixerLine = _line; - m_racksLayout->setCurrentWidget( m_mixerChannelViews[ _line->channelIndex() ]->m_rackView ); + m_currentMixerChannel = channel; + m_racksLayout->setCurrentWidget(m_mixerChannelViews[channel->channelIndex()]->m_effectRackView); // set up send knob - for(int i = 0; i < m_mixerChannelViews.size(); ++i) + for (int i = 0; i < m_mixerChannelViews.size(); ++i) { - updateMixerLine(i); + updateMixerChannel(i); } } -void MixerView::updateMixerLine(int index) +void MixerView::updateMixerChannel(int index) { - Mixer * mix = Engine::mixer(); + const auto mixer = getMixer(); - // does current channel send to this channel? - int selIndex = m_currentMixerLine->channelIndex(); - MixerLine * thisLine = m_mixerChannelViews[index]->m_mixerLine; - thisLine->setToolTip( Engine::mixer()->mixerChannel( index )->m_name ); + const auto currentIndex = m_currentMixerChannel->channelIndex(); + const auto thisLine = m_mixerChannelViews[index]; + thisLine->setToolTip(getMixer()->mixerChannel(index)->m_name); - FloatModel * sendModel = mix->channelSendModel(selIndex, index); - if( sendModel == nullptr ) + const auto sendModelCurrentToThis = mixer->channelSendModel(currentIndex, index); + if (sendModelCurrentToThis == nullptr) { - // does not send, hide send knob thisLine->m_sendKnob->setVisible(false); + thisLine->m_sendArrow->setVisible(false); } else { - // it does send, show knob and connect thisLine->m_sendKnob->setVisible(true); - thisLine->m_sendKnob->setModel(sendModel); + thisLine->m_sendKnob->setModel(sendModelCurrentToThis); + thisLine->m_sendArrow->setVisible(true); } - // disable the send button if it would cause an infinite loop - thisLine->m_sendBtn->setVisible(! mix->isInfiniteLoop(selIndex, index)); - thisLine->m_sendBtn->updateLightStatus(); + const auto sendModelThisToCurrent = mixer->channelSendModel(index, currentIndex); + if (sendModelThisToCurrent) + { + thisLine->m_receiveArrowOrSendButton->setVisible(true); + thisLine->m_receiveArrowOrSendButton->setCurrentIndex(thisLine->m_receiveArrowStackedIndex); + } + else + { + thisLine->m_receiveArrowOrSendButton->setVisible(!mixer->isInfiniteLoop(currentIndex, index)); + thisLine->m_receiveArrowOrSendButton->setCurrentIndex(thisLine->m_sendButtonStackedIndex); + } + + thisLine->m_sendButton->updateLightStatus(); thisLine->update(); } @@ -405,41 +390,33 @@ void MixerView::updateMixerLine(int index) void MixerView::deleteChannel(int index) { // can't delete master - if( index == 0 ) return; + if (index == 0) return; - // if there is no user confirmation, do nothing - if (!confirmRemoval(index)) - { - return; - } + // Disconnect from the solo/mute models of the channel we are about to delete + disconnectFromSoloAndMute(index); // remember selected line - int selLine = m_currentMixerLine->channelIndex(); + int selLine = m_currentMixerChannel->channelIndex(); + Mixer* mixer = getMixer(); // in case the deleted channel is soloed or the remaining // channels will be left in a muted state - Engine::mixer()->clearChannel(index); + mixer->clearChannel(index); // delete the real channel - Engine::mixer()->deleteChannel(index); - - // delete the view - chLayout->removeWidget(m_mixerChannelViews[index]->m_mixerLine); - m_racksLayout->removeWidget(m_mixerChannelViews[index]->m_rackView); - delete m_mixerChannelViews[index]->m_fader; - delete m_mixerChannelViews[index]->m_muteBtn; - delete m_mixerChannelViews[index]->m_soloBtn; - // delete mixerLine later to prevent a crash when deleting from context menu - m_mixerChannelViews[index]->m_mixerLine->hide(); - m_mixerChannelViews[index]->m_mixerLine->deleteLater(); - delete m_mixerChannelViews[index]->m_rackView; - delete m_mixerChannelViews[index]; + mixer->deleteChannel(index); + + chLayout->removeWidget(m_mixerChannelViews[index]); + m_racksLayout->removeWidget(m_mixerChannelViews[index]); + // delete MixerChannelView later to prevent a crash when deleting from context menu + m_mixerChannelViews[index]->hide(); + m_mixerChannelViews[index]->deleteLater(); m_channelAreaWidget->adjustSize(); // make sure every channel knows what index it is for (int i = index + 1; i < m_mixerChannelViews.size(); ++i) { - m_mixerChannelViews[i]->m_mixerLine->setChannelIndex(i - 1); + m_mixerChannelViews[i]->setChannelIndex(i - 1); } m_mixerChannelViews.remove(index); @@ -448,55 +425,14 @@ void MixerView::deleteChannel(int index) { selLine = m_mixerChannelViews.size() - 1; } - setCurrentMixerLine(selLine); + setCurrentMixerChannel(selLine); updateMaxChannelSelector(); } -bool MixerView::confirmRemoval(int index) -{ - // if config variable is set to false, there is no need for user confirmation - bool needConfirm = ConfigManager::inst()->value("ui", "mixerchanneldeletionwarning", "1").toInt(); - if (!needConfirm) { return true; } - - Mixer* mix = Engine::mixer(); - - if (!mix->isChannelInUse(index)) - { - // is the channel is not in use, there is no need for user confirmation - return true; - } - - QString messageRemoveTrack = tr("This Mixer Channel is being used.\n" - "Are you sure you want to remove this channel?\n\n" - "Warning: This operation can not be undone."); - - QString messageTitleRemoveTrack = tr("Confirm removal"); - QString askAgainText = tr("Don't ask again"); - auto askAgainCheckBox = new QCheckBox(askAgainText, nullptr); - connect(askAgainCheckBox, &QCheckBox::stateChanged, [](int state) { - // Invert button state, if it's checked we *shouldn't* ask again - ConfigManager::inst()->setValue("ui", "mixerchanneldeletionwarning", state ? "0" : "1"); - }); - - QMessageBox mb(this); - mb.setText(messageRemoveTrack); - mb.setWindowTitle(messageTitleRemoveTrack); - mb.setIcon(QMessageBox::Warning); - mb.addButton(QMessageBox::Cancel); - mb.addButton(QMessageBox::Ok); - mb.setCheckBox(askAgainCheckBox); - mb.setDefaultButton(QMessageBox::Cancel); - - int answer = mb.exec(); - - return answer == QMessageBox::Ok; -} - - void MixerView::deleteUnusedChannels() { - Mixer* mix = Engine::mixer(); + Mixer* mix = getMixer(); // Check all channels except master, delete those with no incoming sends for (int i = m_mixerChannelViews.size() - 1; i > 0; --i) @@ -513,39 +449,39 @@ void MixerView::deleteUnusedChannels() void MixerView::moveChannelLeft(int index, int focusIndex) { // can't move master or first channel left or last channel right - if( index <= 1 || index >= m_mixerChannelViews.size() ) return; + if (index <= 1 || index >= m_mixerChannelViews.size()) return; - Mixer *m = Engine::mixer(); + Mixer *m = getMixer(); // Move instruments channels - m->moveChannelLeft( index ); + m->moveChannelLeft(index); // Update widgets models - m_mixerChannelViews[index]->setChannelIndex( index ); - m_mixerChannelViews[index - 1]->setChannelIndex( index - 1 ); + m_mixerChannelViews[index]->setChannelIndex(index); + m_mixerChannelViews[index - 1]->setChannelIndex(index - 1); // Focus on new position - setCurrentMixerLine( focusIndex ); + setCurrentMixerChannel(focusIndex); } void MixerView::moveChannelLeft(int index) { - moveChannelLeft( index, index - 1 ); + moveChannelLeft(index, index - 1); } void MixerView::moveChannelRight(int index) { - moveChannelLeft( index + 1, index + 1 ); + moveChannelLeft(index + 1, index + 1); } void MixerView::renameChannel(int index) { - m_mixerChannelViews[index]->m_mixerLine->renameChannel(); + m_mixerChannelViews[index]->renameChannel(); } @@ -555,32 +491,32 @@ void MixerView::keyPressEvent(QKeyEvent * e) switch(e->key()) { case Qt::Key_Delete: - deleteChannel(m_currentMixerLine->channelIndex()); + deleteChannel(m_currentMixerChannel->channelIndex()); break; case Qt::Key_Left: - if( e->modifiers() & Qt::AltModifier ) + if (e->modifiers() & Qt::AltModifier) { - moveChannelLeft( m_currentMixerLine->channelIndex() ); + moveChannelLeft(m_currentMixerChannel->channelIndex()); } else { // select channel to the left - setCurrentMixerLine( m_currentMixerLine->channelIndex()-1 ); + setCurrentMixerChannel(m_currentMixerChannel->channelIndex() - 1); } break; case Qt::Key_Right: - if( e->modifiers() & Qt::AltModifier ) + if (e->modifiers() & Qt::AltModifier) { - moveChannelRight( m_currentMixerLine->channelIndex() ); + moveChannelRight(m_currentMixerChannel->channelIndex()); } else { // select channel to the right - setCurrentMixerLine( m_currentMixerLine->channelIndex()+1 ); + setCurrentMixerChannel(m_currentMixerChannel->channelIndex() + 1); } break; case Qt::Key_Insert: - if ( e->modifiers() & Qt::ShiftModifier ) + if (e->modifiers() & Qt::ShiftModifier) { addNewChannel(); } @@ -588,18 +524,18 @@ void MixerView::keyPressEvent(QKeyEvent * e) case Qt::Key_Enter: case Qt::Key_Return: case Qt::Key_F2: - renameChannel( m_currentMixerLine->channelIndex() ); + renameChannel(m_currentMixerChannel->channelIndex()); break; } } -void MixerView::setCurrentMixerLine( int _line ) +void MixerView::setCurrentMixerChannel(int channel) { - if( _line >= 0 && _line < m_mixerChannelViews.size() ) + if (channel >= 0 && channel < m_mixerChannelViews.size()) { - setCurrentMixerLine( m_mixerChannelViews[_line]->m_mixerLine ); + setCurrentMixerChannel(m_mixerChannelViews[channel]); } } @@ -607,7 +543,10 @@ void MixerView::setCurrentMixerLine( int _line ) void MixerView::clear() { - Engine::mixer()->clear(); + for (auto i = m_mixerChannelViews.size() - 1; i > 0; --i) { deleteChannel(i); } + getMixer()->clearChannel(0); + + m_mixerChannelViews[0]->reset(); refreshDisplay(); } @@ -617,37 +556,33 @@ void MixerView::clear() void MixerView::updateFaders() { - Mixer * m = Engine::mixer(); - - // apply master gain - m->mixerChannel(0)->m_peakLeft *= Engine::audioEngine()->masterGain(); - m->mixerChannel(0)->m_peakRight *= Engine::audioEngine()->masterGain(); + Mixer * m = getMixer(); - for( int i = 0; i < m_mixerChannelViews.size(); ++i ) + for (int i = 0; i < m_mixerChannelViews.size(); ++i) { const float opl = m_mixerChannelViews[i]->m_fader->getPeak_L(); const float opr = m_mixerChannelViews[i]->m_fader->getPeak_R(); const float fallOff = 1.25; - if( m->mixerChannel(i)->m_peakLeft >= opl/fallOff ) + if (m->mixerChannel(i)->m_peakLeft >= opl/fallOff) { - m_mixerChannelViews[i]->m_fader->setPeak_L( m->mixerChannel(i)->m_peakLeft ); + m_mixerChannelViews[i]->m_fader->setPeak_L(m->mixerChannel(i)->m_peakLeft); // Set to -1 so later we'll know if this value has been refreshed yet. m->mixerChannel(i)->m_peakLeft = -1; } - else if( m->mixerChannel(i)->m_peakLeft != -1 ) + else if (m->mixerChannel(i)->m_peakLeft != -1) { - m_mixerChannelViews[i]->m_fader->setPeak_L( opl/fallOff ); + m_mixerChannelViews[i]->m_fader->setPeak_L(opl/fallOff); } - if( m->mixerChannel(i)->m_peakRight >= opr/fallOff ) + if (m->mixerChannel(i)->m_peakRight >= opr/fallOff) { - m_mixerChannelViews[i]->m_fader->setPeak_R( m->mixerChannel(i)->m_peakRight ); + m_mixerChannelViews[i]->m_fader->setPeak_R(m->mixerChannel(i)->m_peakRight); // Set to -1 so later we'll know if this value has been refreshed yet. m->mixerChannel(i)->m_peakRight = -1; } - else if( m->mixerChannel(i)->m_peakRight != -1 ) + else if (m->mixerChannel(i)->m_peakRight != -1) { - m_mixerChannelViews[i]->m_fader->setPeak_R( opr/fallOff ); + m_mixerChannelViews[i]->m_fader->setPeak_R(opr/fallOff); } } } diff --git a/src/gui/PluginBrowser.cpp b/src/gui/PluginBrowser.cpp index 963609c431c..2594bdab374 100644 --- a/src/gui/PluginBrowser.cpp +++ b/src/gui/PluginBrowser.cpp @@ -62,7 +62,7 @@ PluginBrowser::PluginBrowser( QWidget * _parent ) : auto hint = new QLabel( tr( "Drag an instrument " "into either the Song Editor, the " - "Pattern Editor or into an " + "Pattern Editor or an " "existing instrument track." ), m_view ); hint->setWordWrap( true ); diff --git a/src/gui/ProjectNotes.cpp b/src/gui/ProjectNotes.cpp index d180b63c8a2..97e466b75e1 100644 --- a/src/gui/ProjectNotes.cpp +++ b/src/gui/ProjectNotes.cpp @@ -107,10 +107,8 @@ void ProjectNotes::setText( const QString & _text ) void ProjectNotes::setupActions() { QToolBar * tb = addToolBar( tr( "Edit Actions" ) ); - QAction * a; - a = new QAction( embed::getIconPixmap( "edit_undo" ), tr( "&Undo" ), - this ); + auto a = new QAction(embed::getIconPixmap("edit_undo"), tr("&Undo"), this); a->setShortcut( tr( "%1+Z" ).arg(UI_CTRL_KEY) ); connect( a, SIGNAL(triggered()), m_edit, SLOT(undo())); tb->addAction( a ); diff --git a/src/gui/SampleLoader.cpp b/src/gui/SampleLoader.cpp new file mode 100644 index 00000000000..f2340852d77 --- /dev/null +++ b/src/gui/SampleLoader.cpp @@ -0,0 +1,126 @@ +/* + * SampleLoader.cpp - Static functions that open audio files + * + * Copyright (c) 2023 saker + * + * This file is part of LMMS - https://lmms.io + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#include "SampleLoader.h" + +#include +#include +#include + +#include "ConfigManager.h" +#include "FileDialog.h" +#include "GuiApplication.h" +#include "PathUtil.h" +#include "SampleDecoder.h" +#include "Song.h" + +namespace lmms::gui { +QString SampleLoader::openAudioFile(const QString& previousFile) +{ + auto openFileDialog = FileDialog(nullptr, QObject::tr("Open audio file")); + auto dir = !previousFile.isEmpty() ? PathUtil::toAbsolute(previousFile) : ConfigManager::inst()->userSamplesDir(); + + // change dir to position of previously opened file + openFileDialog.setDirectory(dir); + openFileDialog.setFileMode(FileDialog::ExistingFiles); + + // set filters + auto fileTypes = QStringList{}; + auto allFileTypes = QStringList{}; + auto nameFilters = QStringList{}; + const auto& supportedAudioTypes = SampleDecoder::supportedAudioTypes(); + + for (const auto& audioType : supportedAudioTypes) + { + const auto name = QString::fromStdString(audioType.name); + const auto extension = QString::fromStdString(audioType.extension); + const auto displayExtension = QString{"*.%1"}.arg(extension); + fileTypes.append(QString{"%1 (%2)"}.arg(FileDialog::tr("%1 files").arg(name), displayExtension)); + allFileTypes.append(displayExtension); + } + + nameFilters.append(QString{"%1 (%2)"}.arg(FileDialog::tr("All audio files"), allFileTypes.join(" "))); + nameFilters.append(fileTypes); + nameFilters.append(QString("%1 (*)").arg(FileDialog::tr("Other files"))); + + openFileDialog.setNameFilters(nameFilters); + + if (!previousFile.isEmpty()) + { + // select previously opened file + openFileDialog.selectFile(QFileInfo{previousFile}.fileName()); + } + + if (openFileDialog.exec() == QDialog::Accepted) + { + if (openFileDialog.selectedFiles().isEmpty()) { return ""; } + + return PathUtil::toShortestRelative(openFileDialog.selectedFiles()[0]); + } + + return ""; +} + +QString SampleLoader::openWaveformFile(const QString& previousFile) +{ + return openAudioFile( + previousFile.isEmpty() ? ConfigManager::inst()->factorySamplesDir() + "waveforms/10saw.flac" : previousFile); +} + +std::shared_ptr SampleLoader::createBufferFromFile(const QString& filePath) +{ + if (filePath.isEmpty()) { return SampleBuffer::emptyBuffer(); } + + try + { + return std::make_shared(filePath); + } + catch (const std::runtime_error& error) + { + if (getGUI()) { displayError(QString::fromStdString(error.what())); } + return SampleBuffer::emptyBuffer(); + } +} + +std::shared_ptr SampleLoader::createBufferFromBase64(const QString& base64, int sampleRate) +{ + if (base64.isEmpty()) { return SampleBuffer::emptyBuffer(); } + + try + { + return std::make_shared(base64, sampleRate); + } + catch (const std::runtime_error& error) + { + if (getGUI()) { displayError(QString::fromStdString(error.what())); } + return SampleBuffer::emptyBuffer(); + } +} + +void SampleLoader::displayError(const QString& message) +{ + QMessageBox::critical(nullptr, QObject::tr("Error loading sample"), message); +} + +} // namespace lmms::gui diff --git a/src/gui/SampleTrackWindow.cpp b/src/gui/SampleTrackWindow.cpp index f76cb8a211d..6e05c02fff7 100644 --- a/src/gui/SampleTrackWindow.cpp +++ b/src/gui/SampleTrackWindow.cpp @@ -21,7 +21,7 @@ * Boston, MA 02110-1301 USA. * */ - + #include "SampleTrackWindow.h" #include @@ -33,15 +33,13 @@ #include "EffectRackView.h" #include "embed.h" -#include "gui_templates.h" #include "GuiApplication.h" #include "Knob.h" #include "MainWindow.h" -#include "MixerLineLcdSpinBox.h" +#include "MixerChannelLcdSpinBox.h" #include "SampleTrackView.h" #include "Song.h" #include "SubWindow.h" -#include "TabWidget.h" #include "TrackLabelButton.h" namespace lmms::gui @@ -70,13 +68,9 @@ SampleTrackWindow::SampleTrackWindow(SampleTrackView* stv) vlayout->setContentsMargins(0, 0, 0, 0); vlayout->setSpacing(0); - auto generalSettingsWidget = new TabWidget(tr("GENERAL SETTINGS"), this); - + auto generalSettingsWidget = new QWidget(this); auto generalSettingsLayout = new QVBoxLayout(generalSettingsWidget); - generalSettingsLayout->setContentsMargins(8, 18, 8, 8); - generalSettingsLayout->setSpacing(6); - auto nameWidget = new QWidget(generalSettingsWidget); auto nameLayout = new QHBoxLayout(nameWidget); nameLayout->setContentsMargins(0, 0, 0, 0); @@ -98,7 +92,7 @@ SampleTrackWindow::SampleTrackWindow(SampleTrackView* stv) basicControlsLayout->setVerticalSpacing(0); basicControlsLayout->setContentsMargins(0, 0, 0, 0); - QString labelStyleSheet = "font-size: 6pt;"; + QString labelStyleSheet = "font-size: 10px;"; Qt::Alignment labelAlignment = Qt::AlignHCenter | Qt::AlignTop; Qt::Alignment widgetAlignment = Qt::AlignHCenter | Qt::AlignCenter; @@ -133,7 +127,7 @@ SampleTrackWindow::SampleTrackWindow(SampleTrackView* stv) // setup spinbox for selecting Mixer-channel - m_mixerChannelNumber = new MixerLineLcdSpinBox(2, nullptr, tr("Mixer channel"), m_stv); + m_mixerChannelNumber = new MixerChannelLcdSpinBox(2, nullptr, tr("Mixer channel"), m_stv); basicControlsLayout->addWidget(m_mixerChannelNumber, 0, 3); basicControlsLayout->setAlignment(m_mixerChannelNumber, widgetAlignment); diff --git a/src/gui/SampleWaveform.cpp b/src/gui/SampleWaveform.cpp new file mode 100644 index 00000000000..165ede4ee89 --- /dev/null +++ b/src/gui/SampleWaveform.cpp @@ -0,0 +1,95 @@ +/* + * SampleWaveform.cpp + * + * Copyright (c) 2023 saker + * + * This file is part of LMMS - https://lmms.io + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#include "SampleWaveform.h" + +namespace lmms::gui { + +void SampleWaveform::visualize(Parameters parameters, QPainter& painter, const QRect& rect) +{ + const int x = rect.x(); + const int height = rect.height(); + const int width = rect.width(); + const int centerY = rect.center().y(); + + const int halfHeight = height / 2; + + const auto color = painter.pen().color(); + const auto rmsColor = color.lighter(123); + + const float framesPerPixel = std::max(1.0f, static_cast(parameters.size) / width); + + constexpr float maxFramesPerPixel = 512.0f; + const float resolution = std::max(1.0f, framesPerPixel / maxFramesPerPixel); + const float framesPerResolution = framesPerPixel / resolution; + + size_t numPixels = std::min(parameters.size, static_cast(width)); + auto min = std::vector(numPixels, 1); + auto max = std::vector(numPixels, -1); + auto squared = std::vector(numPixels, 0); + + const size_t maxFrames = static_cast(numPixels * framesPerPixel); + + auto pixelIndex = std::size_t{0}; + + for (auto i = std::size_t{0}; i < maxFrames; i += static_cast(resolution)) + { + pixelIndex = i / framesPerPixel; + const auto frameIndex = !parameters.reversed ? i : maxFrames - i; + + const auto& frame = parameters.buffer[frameIndex]; + const auto value = frame.average(); + + if (value > max[pixelIndex]) { max[pixelIndex] = value; } + if (value < min[pixelIndex]) { min[pixelIndex] = value; } + + squared[pixelIndex] += value * value; + } + + if (pixelIndex < numPixels) + { + numPixels = pixelIndex; + } + + for (auto i = std::size_t{0}; i < numPixels; i++) + { + const int lineY1 = centerY - max[i] * halfHeight * parameters.amplification; + const int lineY2 = centerY - min[i] * halfHeight * parameters.amplification; + const int lineX = static_cast(i) + x; + painter.drawLine(lineX, lineY1, lineX, lineY2); + + const float rms = std::sqrt(squared[i] / framesPerResolution); + const float maxRMS = std::clamp(rms, min[i], max[i]); + const float minRMS = std::clamp(-rms, min[i], max[i]); + + const int rmsLineY1 = centerY - maxRMS * halfHeight * parameters.amplification; + const int rmsLineY2 = centerY - minRMS * halfHeight * parameters.amplification; + + painter.setPen(rmsColor); + painter.drawLine(lineX, rmsLineY1, lineX, rmsLineY2); + painter.setPen(color); + } +} + +} // namespace lmms::gui diff --git a/src/gui/SendButtonIndicator.cpp b/src/gui/SendButtonIndicator.cpp index cd1996c4564..4fb20cc315e 100644 --- a/src/gui/SendButtonIndicator.cpp +++ b/src/gui/SendButtonIndicator.cpp @@ -2,69 +2,53 @@ #include "embed.h" #include "Mixer.h" -#include "MixerLine.h" +#include "MixerChannelView.h" #include "MixerView.h" namespace lmms::gui { - -QPixmap * SendButtonIndicator::s_qpmOff = nullptr; -QPixmap * SendButtonIndicator::s_qpmOn = nullptr; - -SendButtonIndicator:: SendButtonIndicator( QWidget * _parent, MixerLine * _owner, - MixerView * _mv) : - QLabel( _parent ), - m_parent( _owner ), - m_mv( _mv ) +SendButtonIndicator:: SendButtonIndicator(QWidget* parent, MixerChannelView* owner, MixerView* mv) : + QLabel(parent), + m_parent(owner), + m_mv(mv) { - if( ! s_qpmOff ) - { - s_qpmOff = new QPixmap( embed::getIconPixmap( "mixer_send_off", 29, 20 ) ); - } - - if( ! s_qpmOn ) - { - s_qpmOn = new QPixmap( embed::getIconPixmap( "mixer_send_on", 29, 20 ) ); - } - - // don't do any initializing yet, because the MixerView and MixerLine + // don't do any initializing yet, because the MixerView and MixerChannelView // that were passed to this constructor are not done with their constructors // yet. - setPixmap( *s_qpmOff ); + setPixmap(m_qpmOff); } -void SendButtonIndicator::mousePressEvent( QMouseEvent * e ) +void SendButtonIndicator::mousePressEvent(QMouseEvent* e) { - Mixer * mix = Engine::mixer(); - int from = m_mv->currentMixerLine()->channelIndex(); + Mixer* mix = Engine::mixer(); + int from = m_mv->currentMixerChannel()->channelIndex(); int to = m_parent->channelIndex(); - FloatModel * sendModel = mix->channelSendModel(from, to); - if( sendModel == nullptr ) + FloatModel* sendModel = mix->channelSendModel(from, to); + if (sendModel == nullptr) { // not sending. create a mixer send. - mix->createChannelSend( from, to ); + mix->createChannelSend(from, to); } else { // sending. delete the mixer send. - mix->deleteChannelSend( from, to ); + mix->deleteChannelSend(from, to); } - m_mv->updateMixerLine(m_parent->channelIndex()); + m_mv->updateMixerChannel(m_parent->channelIndex()); updateLightStatus(); } -FloatModel * SendButtonIndicator::getSendModel() +FloatModel* SendButtonIndicator::getSendModel() { - Mixer * mix = Engine::mixer(); - return mix->channelSendModel( - m_mv->currentMixerLine()->channelIndex(), m_parent->channelIndex()); + Mixer* mix = Engine::mixer(); + return mix->channelSendModel(m_mv->currentMixerChannel()->channelIndex(), m_parent->channelIndex()); } void SendButtonIndicator::updateLightStatus() { - setPixmap( getSendModel() == nullptr ? *s_qpmOff : *s_qpmOn ); + setPixmap(!getSendModel() ? m_qpmOff : m_qpmOn); } diff --git a/src/gui/SideBarWidget.cpp b/src/gui/SideBarWidget.cpp index c218bedd335..5a73cb47166 100644 --- a/src/gui/SideBarWidget.cpp +++ b/src/gui/SideBarWidget.cpp @@ -29,6 +29,7 @@ #include #include "embed.h" +#include "FontHelper.h" namespace lmms::gui { @@ -63,8 +64,7 @@ void SideBarWidget::paintEvent( QPaintEvent * ) QFont f = p.font(); f.setBold( true ); f.setUnderline(false); - f.setPointSize( f.pointSize() + 2 ); - p.setFont( f ); + p.setFont(adjustedToPixelSize(f, LARGE_FONT_SIZE)); p.setPen( palette().highlightedText().color() ); diff --git a/src/gui/SubWindow.cpp b/src/gui/SubWindow.cpp index d22a337bf7b..607c8e7965b 100644 --- a/src/gui/SubWindow.cpp +++ b/src/gui/SubWindow.cpp @@ -59,7 +59,7 @@ SubWindow::SubWindow(QWidget *parent, Qt::WindowFlags windowFlags) : m_textShadowColor = Qt::black; m_borderColor = Qt::black; - // close, maximize, restore, and detach buttons + // close, maximize and restore (after maximizing), and detach buttons auto createButton = [this](const QIcon& icon, const QString& tooltip) -> QPushButton* { auto button = new QPushButton{icon, QString{}, this}; button->resize(m_buttonSize); @@ -93,10 +93,9 @@ SubWindow::SubWindow(QWidget *parent, Qt::WindowFlags windowFlags) : m_windowTitle->setAttribute( Qt::WA_TransparentForMouseEvents, true ); m_windowTitle->setGraphicsEffect( m_shadow ); - // disable the minimize button - setWindowFlags( Qt::SubWindow | Qt::WindowMaximizeButtonHint | - Qt::WindowSystemMenuHint | Qt::WindowCloseButtonHint | - Qt::CustomizeWindowHint ); + // Disable the minimize button and make sure that the custom window hint is set + setWindowFlags((this->windowFlags() & ~Qt::WindowMinimizeButtonHint) | Qt::CustomizeWindowHint); + connect( mdiArea(), SIGNAL(subWindowActivated(QMdiSubWindow*)), this, SLOT(focusChanged(QMdiSubWindow*))); } @@ -111,12 +110,14 @@ SubWindow::SubWindow(QWidget *parent, Qt::WindowFlags windowFlags) : */ void SubWindow::paintEvent( QPaintEvent * ) { + // Don't paint any of the other stuff if the sub window is maximized + // so that only its child content is painted. + if (isMaximized()) { return; } + QPainter p( this ); QRect rect( 0, 0, width(), m_titleBarHeight ); - bool isActive = mdiArea() - ? mdiArea()->activeSubWindow() == this - : false; + const bool isActive = windowState() & Qt::WindowActive; p.fillRect( rect, isActive ? activeColor() : p.pen().brush() ); @@ -363,9 +364,28 @@ void SubWindow::moveEvent( QMoveEvent * event ) */ void SubWindow::adjustTitleBar() { + // Don't show the title or any button if the sub window is maximized. Otherwise they + // might show up behind the actual maximized content of the child widget. + if (isMaximized()) + { + m_closeBtn->hide(); + m_maximizeBtn->hide(); + m_restoreBtn->hide(); + m_windowTitle->hide(); + + return; + } + + // The sub window is not maximized, i.e. the title must be shown + // as well as some buttons. + + // Title adjustments + m_windowTitle->show(); + // button adjustments m_maximizeBtn->hide(); m_restoreBtn->hide(); + m_closeBtn->show(); const int rightSpace = 3; const int buttonGap = 1; @@ -390,6 +410,8 @@ void SubWindow::adjustTitleBar() buttonBarWidth = buttonBarWidth + m_buttonSize.width() + buttonGap; m_maximizeBtn->move(buttonPos); m_restoreBtn->move(buttonPos); + // TODO: This may be incorrect: + m_maximizeBtn->setVisible(true); if (!isMaximized()) { m_maximizeBtn->show(); @@ -399,8 +421,10 @@ void SubWindow::adjustTitleBar() // we're keeping the restore button around if we open projects // from older versions that have saved minimized windows - if (isMaximized() || isMinimized()) + m_restoreBtn->setVisible(isMinimized()); + if (isMinimized()) { + // TODO: This may be incorrect: m_restoreBtn->show(); buttonPos -= buttonStep; } diff --git a/src/gui/clips/AutomationClipView.cpp b/src/gui/clips/AutomationClipView.cpp index 3e0e12b75d0..9b71bb74c74 100644 --- a/src/gui/clips/AutomationClipView.cpp +++ b/src/gui/clips/AutomationClipView.cpp @@ -44,8 +44,6 @@ namespace lmms::gui { -QPixmap * AutomationClipView::s_clip_rec = nullptr; - AutomationClipView::AutomationClipView( AutomationClip * _clip, TrackView * _parent ) : ClipView( _clip, _parent ), @@ -61,10 +59,6 @@ AutomationClipView::AutomationClipView( AutomationClip * _clip, setToolTip(m_clip->name()); setStyle( QApplication::style() ); - - if( s_clip_rec == nullptr ) { s_clip_rec = new QPixmap( embed::getIconPixmap( - "clip_rec" ) ); } - update(); } @@ -320,24 +314,17 @@ void AutomationClipView::paintEvent( QPaintEvent * ) // the outValue of the current node). When we have nodes with linear or cubic progression // the value of the end of the shape between the two nodes will be the inValue of // the next node. - float nextValue; - if( m_clip->progressionType() == AutomationClip::ProgressionType::Discrete ) - { - nextValue = OUTVAL(it); - } - else - { - nextValue = INVAL(it + 1); - } + float nextValue = m_clip->progressionType() == AutomationClip::ProgressionType::Discrete + ? OUTVAL(it) + : INVAL(it + 1); QPainterPath path; QPointF origin = QPointF(POS(it) * ppTick, 0.0f); path.moveTo( origin ); path.moveTo(QPointF(POS(it) * ppTick,values[0])); - float x; for (int i = POS(it) + 1; i < POS(it + 1); i++) { - x = i * ppTick; + float x = i * ppTick; if( x > ( width() - BORDER_WIDTH ) ) break; float value = values[i - POS(it)]; path.lineTo( QPointF( x, value ) ); @@ -379,7 +366,8 @@ void AutomationClipView::paintEvent( QPaintEvent * ) // recording icon for when recording automation if( m_clip->isRecording() ) { - p.drawPixmap( 1, rect().bottom() - s_clip_rec->height(), *s_clip_rec ); + static auto s_clipRec = embed::getIconPixmap("clip_rec"); + p.drawPixmap(1, rect().bottom() - s_clipRec.height(), s_clipRec); } // clip name diff --git a/src/gui/clips/ClipView.cpp b/src/gui/clips/ClipView.cpp index de7690d26e1..9eb6acb6b94 100644 --- a/src/gui/clips/ClipView.cpp +++ b/src/gui/clips/ClipView.cpp @@ -136,7 +136,7 @@ ClipView::ClipView( Clip * clip, connect(m_trackView->getTrack(), &Track::colorChanged, this, [this] { // redraw if clip uses track color - if (!m_clip->usesCustomClipColor()) { update(); } + if (!m_clip->color().has_value()) { update(); } }); m_trackView->getTrackContentWidget()->addClipView( this ); @@ -294,6 +294,17 @@ void ClipView::remove() // delete ourself close(); + + if (m_clip->getTrack()) + { + auto guard = Engine::audioEngine()->requestChangesGuard(); + m_clip->getTrack()->removeClip(m_clip); + } + + // TODO: Clip::~Clip should not be responsible for removing the Clip from the Track. + // One would expect that a call to Track::removeClip would already do that for you, as well + // as actually deleting the Clip with the deleteLater function. That being said, it shouldn't + // be possible to make a Clip without a Track (i.e., Clip::getTrack is never nullptr). m_clip->deleteLater(); } @@ -340,45 +351,35 @@ void ClipView::updatePosition() m_trackView->trackContainerView()->update(); } - - - void ClipView::selectColor() { // Get a color from the user - QColor new_color = ColorChooser( this ).withPalette( ColorChooser::Palette::Track )->getColor( m_clip->color() ); - if (new_color.isValid()) { setColor(&new_color); } + const auto newColor = ColorChooser{this} + .withPalette(ColorChooser::Palette::Track) + ->getColor(m_clip->color().value_or(palette().window().color())); + if (newColor.isValid()) { setColor(newColor); } } - - - void ClipView::randomizeColor() { - setColor(&ColorChooser::getPalette(ColorChooser::Palette::Mixer)[rand() % 48]); + setColor(ColorChooser::getPalette(ColorChooser::Palette::Mixer)[std::rand() % 48]); } - - - void ClipView::resetColor() { - setColor(nullptr); + setColor(std::nullopt); } - - - /*! \brief Change color of all selected clips * - * \param color The new QColor. Pass nullptr to use the Track's color. + * \param color The new color. */ -void ClipView::setColor(const QColor* color) +void ClipView::setColor(const std::optional& color) { std::set journaledTracks; auto selectedClips = getClickedClips(); - for (auto clipv: selectedClips) + for (auto clipv : selectedClips) { auto clip = clipv->getClip(); auto track = clip->getTrack(); @@ -397,25 +398,13 @@ void ClipView::setColor(const QColor* color) track->addJournalCheckPoint(); } - if (color) - { - clip->useCustomClipColor(true); - clip->setColor(*color); - } - else - { - clip->useCustomClipColor(false); - } + clip->setColor(color); clipv->update(); } Engine::getSong()->setModified(); } - - - - /*! \brief Change the ClipView's display when something * being dragged enters it. * @@ -545,8 +534,9 @@ DataFile ClipView::createClipDataFiles( { // Insert into the dom under the "clips" element Track* clipTrack = clipView->m_trackView->getTrack(); - int trackIndex = std::distance(tc->tracks().begin(), std::find(tc->tracks().begin(), tc->tracks().end(), clipTrack)); - assert(trackIndex != tc->tracks().size()); + const auto trackIt = std::find(tc->tracks().begin(), tc->tracks().end(), clipTrack); + assert(trackIt != tc->tracks().end()); + int trackIndex = std::distance(tc->tracks().begin(), trackIt); QDomElement clipElement = dataFile.createElement("clip"); clipElement.setAttribute( "trackIndex", trackIndex ); clipElement.setAttribute( "trackType", static_cast(clipTrack->type()) ); @@ -1483,11 +1473,7 @@ TimePos ClipView::quantizeSplitPos( TimePos midiPos, bool shiftMode ) QColor ClipView::getColorForDisplay( QColor defaultColor ) { // Get the pure Clip color - auto clipColor = m_clip->hasColor() - ? m_clip->usesCustomClipColor() - ? m_clip->color() - : m_clip->getTrack()->color() - : defaultColor; + auto clipColor = m_clip->color().value_or(m_clip->getTrack()->color().value_or(defaultColor)); // Set variables QColor c, mutedCustomColor; @@ -1498,7 +1484,7 @@ QColor ClipView::getColorForDisplay( QColor defaultColor ) // Change the pure color by state: selected, muted, colored, normal if( isSelected() ) { - c = m_clip->hasColor() + c = hasCustomColor() ? ( muted ? mutedCustomColor.darker( 350 ) : clipColor.darker( 150 ) ) @@ -1508,7 +1494,7 @@ QColor ClipView::getColorForDisplay( QColor defaultColor ) { if( muted ) { - c = m_clip->hasColor() + c = hasCustomColor() ? mutedCustomColor.darker( 250 ) : mutedBackgroundColor(); } @@ -1522,5 +1508,9 @@ QColor ClipView::getColorForDisplay( QColor defaultColor ) return c; } +auto ClipView::hasCustomColor() const -> bool +{ + return m_clip->color().has_value() || m_clip->getTrack()->color().has_value(); +} } // namespace lmms::gui diff --git a/src/gui/clips/MidiClipView.cpp b/src/gui/clips/MidiClipView.cpp index b13d6e00397..b735913e4d0 100644 --- a/src/gui/clips/MidiClipView.cpp +++ b/src/gui/clips/MidiClipView.cpp @@ -25,13 +25,16 @@ #include "MidiClipView.h" + #include #include #include #include #include #include +#include +#include "AutomationEditor.h" #include "ConfigManager.h" #include "DeprecationHelper.h" #include "GuiApplication.h" @@ -43,6 +46,7 @@ namespace lmms::gui { +constexpr int BeatStepButtonOffset = 4; MidiClipView::MidiClipView( MidiClip* clip, TrackView* parent ) : ClipView( clip, parent ), @@ -57,31 +61,6 @@ MidiClipView::MidiClipView( MidiClip* clip, TrackView* parent ) : { connect( getGUI()->pianoRoll(), SIGNAL(currentMidiClipChanged()), this, SLOT(update())); - - if( s_stepBtnOn0 == nullptr ) - { - s_stepBtnOn0 = new QPixmap( embed::getIconPixmap( - "step_btn_on_0" ) ); - } - - if( s_stepBtnOn200 == nullptr ) - { - s_stepBtnOn200 = new QPixmap( embed::getIconPixmap( - "step_btn_on_200" ) ); - } - - if( s_stepBtnOff == nullptr ) - { - s_stepBtnOff = new QPixmap( embed::getIconPixmap( - "step_btn_off" ) ); - } - - if( s_stepBtnOffLight == nullptr ) - { - s_stepBtnOffLight = new QPixmap( embed::getIconPixmap( - "step_btn_off_light" ) ); - } - update(); setStyle( QApplication::style() ); @@ -110,10 +89,11 @@ void MidiClipView::update() void MidiClipView::openInPianoRoll() { - getGUI()->pianoRoll()->setCurrentMidiClip( m_clip ); - getGUI()->pianoRoll()->parentWidget()->show(); - getGUI()->pianoRoll()->show(); - getGUI()->pianoRoll()->setFocus(); + auto pRoll = getGUI()->pianoRoll(); + pRoll->setCurrentMidiClip(m_clip); + pRoll->parentWidget()->show(); + pRoll->show(); + pRoll->setFocus(); } @@ -122,14 +102,21 @@ void MidiClipView::openInPianoRoll() void MidiClipView::setGhostInPianoRoll() { - getGUI()->pianoRoll()->setGhostMidiClip( m_clip ); - getGUI()->pianoRoll()->parentWidget()->show(); - getGUI()->pianoRoll()->show(); - getGUI()->pianoRoll()->setFocus(); + auto pRoll = getGUI()->pianoRoll(); + pRoll->setGhostMidiClip(m_clip); + pRoll->parentWidget()->show(); + pRoll->show(); + pRoll->setFocus(); } - - +void MidiClipView::setGhostInAutomationEditor() +{ + auto aEditor = getGUI()->automationEditor(); + aEditor->setGhostMidiClip(m_clip); + aEditor->parentWidget()->show(); + aEditor->show(); + aEditor->setFocus(); +} void MidiClipView::resetName() { m_clip->setName(""); } @@ -217,7 +204,13 @@ void MidiClipView::constructContextMenu( QMenu * _cm ) _cm->insertAction( _cm->actions()[1], b ); connect( b, SIGNAL(triggered(bool)), this, SLOT(setGhostInPianoRoll())); - _cm->insertSeparator( _cm->actions()[2] ); + + auto c = new QAction(embed::getIconPixmap("automation_ghost_note"), tr("Set as ghost in automation editor"), _cm); + if (m_clip->empty()) { c->setEnabled(false); } + _cm->insertAction(_cm->actions()[2], c); + connect(c, &QAction::triggered, this, &MidiClipView::setGhostInAutomationEditor); + + _cm->insertSeparator(_cm->actions()[3]); _cm->addSeparator(); _cm->addAction( embed::getIconPixmap( "edit_erase" ), @@ -253,9 +246,8 @@ void MidiClipView::constructContextMenu( QMenu * _cm ) void MidiClipView::mousePressEvent( QMouseEvent * _me ) { bool displayPattern = fixedClips() || (pixelsPerBar() >= 96 && m_legacySEPattern); - if( _me->button() == Qt::LeftButton && - m_clip->m_clipType == MidiClip::Type::BeatClip && - displayPattern && _me->y() > height() - s_stepBtnOff->height() ) + if (_me->button() == Qt::LeftButton && m_clip->m_clipType == MidiClip::Type::BeatClip && displayPattern + && _me->y() > BeatStepButtonOffset && _me->y() < BeatStepButtonOffset + m_stepBtnOff.height()) // when mouse button is pressed in pattern mode @@ -325,7 +317,7 @@ void MidiClipView::wheelEvent(QWheelEvent * we) { if(m_clip->m_clipType == MidiClip::Type::BeatClip && (fixedClips() || pixelsPerBar() >= 96) && - position(we).y() > height() - s_stepBtnOff->height()) + position(we).y() > height() - m_stepBtnOff.height()) { // get the step number that was wheeled on and // do calculations in floats to prevent rounding errors... @@ -340,7 +332,8 @@ void MidiClipView::wheelEvent(QWheelEvent * we) } Note * n = m_clip->noteAtStep( step ); - if(!n && we->angleDelta().y() > 0) + const int direction = (we->angleDelta().y() > 0 ? 1 : -1) * (we->inverted() ? -1 : 1); + if(!n && direction > 0) { n = m_clip->addStepNote( step ); n->setVolume( 0 ); @@ -348,8 +341,7 @@ void MidiClipView::wheelEvent(QWheelEvent * we) if( n != nullptr ) { int vol = n->getVolume(); - - if(we->angleDelta().y() > 0) + if(direction > 0) { n->setVolume( qMin( 100, vol + 5 ) ); } @@ -472,22 +464,14 @@ void MidiClipView::paintEvent( QPaintEvent * ) const int w = width() - 2 * BORDER_WIDTH; // scale step graphics to fit the beat clip length - stepon0 = s_stepBtnOn0->scaled(w / steps, - s_stepBtnOn0->height(), - Qt::IgnoreAspectRatio, - Qt::SmoothTransformation); - stepon200 = s_stepBtnOn200->scaled(w / steps, - s_stepBtnOn200->height(), - Qt::IgnoreAspectRatio, - Qt::SmoothTransformation); - stepoff = s_stepBtnOff->scaled(w / steps, - s_stepBtnOff->height(), - Qt::IgnoreAspectRatio, - Qt::SmoothTransformation); - stepoffl = s_stepBtnOffLight->scaled(w / steps, - s_stepBtnOffLight->height(), - Qt::IgnoreAspectRatio, - Qt::SmoothTransformation); + stepon0 + = m_stepBtnOn0.scaled(w / steps, m_stepBtnOn0.height(), Qt::IgnoreAspectRatio, Qt::SmoothTransformation); + stepon200 = m_stepBtnOn200.scaled( + w / steps, m_stepBtnOn200.height(), Qt::IgnoreAspectRatio, Qt::SmoothTransformation); + stepoff + = m_stepBtnOff.scaled(w / steps, m_stepBtnOff.height(), Qt::IgnoreAspectRatio, Qt::SmoothTransformation); + stepoffl = m_stepBtnOffLight.scaled( + w / steps, m_stepBtnOffLight.height(), Qt::IgnoreAspectRatio, Qt::SmoothTransformation); for (int it = 0; it < steps; it++) // go through all the steps in the beat clip { @@ -495,7 +479,7 @@ void MidiClipView::paintEvent( QPaintEvent * ) // figure out x and y coordinates for step graphic const int x = BORDER_WIDTH + static_cast(it * w / steps); - const int y = height() - s_stepBtnOff->height() - 1; + const int y = BeatStepButtonOffset; if (n) { @@ -596,7 +580,7 @@ void MidiClipView::paintEvent( QPaintEvent * ) QColor noteFillColor = muted ? getMutedNoteFillColor().lighter(200) : (c.lightness() > 175 ? getNoteFillColor().darker(400) : getNoteFillColor()); QColor noteBorderColor = muted ? getMutedNoteBorderColor() - : ( m_clip->hasColor() ? c.lighter( 200 ) : getNoteBorderColor() ); + : (hasCustomColor() ? c.lighter(200) : getNoteBorderColor()); bool const drawAsLines = height() < 64; if (drawAsLines) diff --git a/src/gui/clips/SampleClipView.cpp b/src/gui/clips/SampleClipView.cpp index e21a7e30be1..a7251be8de6 100644 --- a/src/gui/clips/SampleClipView.cpp +++ b/src/gui/clips/SampleClipView.cpp @@ -28,10 +28,13 @@ #include #include +#include "GuiApplication.h" +#include "AutomationEditor.h" #include "embed.h" #include "PathUtil.h" -#include "SampleBuffer.h" #include "SampleClip.h" +#include "SampleLoader.h" +#include "SampleWaveform.h" #include "Song.h" #include "StringPairDrag.h" @@ -60,9 +63,11 @@ void SampleClipView::updateSample() update(); // set tooltip to filename so that user can see what sample this // sample-clip contains - setToolTip(m_clip->m_sampleBuffer->audioFile() != "" ? - PathUtil::toAbsolute(m_clip->m_sampleBuffer->audioFile()) : - tr( "Double-click to open sample" ) ); + setToolTip( + !m_clip->m_sample.sampleFile().isEmpty() + ? PathUtil::toAbsolute(m_clip->m_sample.sampleFile()) + : tr("Double-click to open sample") + ); } @@ -83,6 +88,12 @@ void SampleClipView::constructContextMenu(QMenu* cm) SLOT(reverseSample()) ); + cm->addAction( + embed::getIconPixmap("automation_ghost_note"), + tr("Set as ghost in automation editor"), + this, + SLOT(setAutomationGhost()) + ); } @@ -112,12 +123,10 @@ void SampleClipView::dropEvent( QDropEvent * _de ) } else if( StringPairDrag::decodeKey( _de ) == "sampledata" ) { - m_clip->m_sampleBuffer->loadFromBase64( - StringPairDrag::decodeValue( _de ) ); + m_clip->setSampleBuffer(SampleLoader::createBufferFromBase64(StringPairDrag::decodeValue(_de))); m_clip->updateLength(); update(); _de->accept(); - Engine::getSong()->setModified(); } else { @@ -171,18 +180,21 @@ void SampleClipView::mouseReleaseEvent(QMouseEvent *_me) void SampleClipView::mouseDoubleClickEvent( QMouseEvent * ) { - QString af = m_clip->m_sampleBuffer->openAudioFile(); + const QString selectedAudioFile = SampleLoader::openAudioFile(); - if ( af.isEmpty() ) {} //Don't do anything if no file is loaded - else if ( af == m_clip->m_sampleBuffer->audioFile() ) - { //Instead of reloading the existing file, just reset the size - int length = (int) ( m_clip->m_sampleBuffer->frames() / Engine::framesPerTick() ); - m_clip->changeLength(length); + if (selectedAudioFile.isEmpty()) { return; } + + if (m_clip->hasSampleFileLoaded(selectedAudioFile)) + { + m_clip->changeLengthToSampleLength(); } else - { //Otherwise load the new file as ususal - m_clip->setSampleFile( af ); - Engine::getSong()->setModified(); + { + auto sampleBuffer = SampleLoader::createBufferFromFile(selectedAudioFile); + if (sampleBuffer != SampleBuffer::emptyBuffer()) + { + m_clip->setSampleBuffer(sampleBuffer); + } } } @@ -231,11 +243,7 @@ void SampleClipView::paintEvent( QPaintEvent * pe ) p.fillRect( rect(), c ); } - auto clipColor = m_clip->hasColor() - ? (m_clip->usesCustomClipColor() - ? m_clip->color() - : m_clip->getTrack()->color()) - : painter.pen().brush().color(); + auto clipColor = m_clip->color().value_or(m_clip->getTrack()->color().value_or(painter.pen().brush().color())); p.setPen(clipColor); @@ -263,9 +271,12 @@ void SampleClipView::paintEvent( QPaintEvent * pe ) float offset = m_clip->startTimeOffset() / ticksPerBar * pixelsPerBar(); QRect r = QRect( offset, spacing, qMax( static_cast( m_clip->sampleLength() * ppb / ticksPerBar ), 1 ), rect().bottom() - 2 * spacing ); - m_clip->m_sampleBuffer->visualize( p, r, pe->rect() ); - QString name = PathUtil::cleanName(m_clip->m_sampleBuffer->audioFile()); + const auto& sample = m_clip->m_sample; + const auto waveform = SampleWaveform::Parameters{sample.data(), sample.sampleSize(), sample.amplification(), sample.reversed()}; + SampleWaveform::visualize(waveform, p, r); + + QString name = PathUtil::cleanName(m_clip->m_sample.sampleFile()); paintTextLabel(name, p); // disable antialiasing for borders, since its not needed @@ -318,13 +329,22 @@ void SampleClipView::paintEvent( QPaintEvent * pe ) void SampleClipView::reverseSample() { - m_clip->sampleBuffer()->setReversed(!m_clip->sampleBuffer()->reversed()); + m_clip->m_sample.setReversed(!m_clip->m_sample.reversed()); + m_clip->setStartTimeOffset(m_clip->length() - m_clip->startTimeOffset() - m_clip->sampleLength()); Engine::getSong()->setModified(); update(); } +void SampleClipView::setAutomationGhost() +{ + auto aEditor = gui::getGUI()->automationEditor(); + aEditor->setGhostSample(m_clip); + aEditor->parentWidget()->show(); + aEditor->show(); + aEditor->setFocus(); +} //! Split this Clip. /*! \param pos the position of the split, relative to the start of the clip */ diff --git a/src/gui/editors/AutomationEditor.cpp b/src/gui/editors/AutomationEditor.cpp index 282c335dfe1..3dc0285d282 100644 --- a/src/gui/editors/AutomationEditor.cpp +++ b/src/gui/editors/AutomationEditor.cpp @@ -27,8 +27,6 @@ #include "AutomationEditor.h" -#include - #include #include #include @@ -38,6 +36,10 @@ #include #include #include +#include + +#include "SampleClip.h" +#include "SampleWaveform.h" #ifndef __USE_XOPEN #define __USE_XOPEN @@ -46,33 +48,27 @@ #include "ActionGroup.h" #include "AutomationNode.h" #include "ComboBox.h" -#include "debug.h" #include "DeprecationHelper.h" -#include "embed.h" +#include "DetuningHelper.h" #include "Engine.h" #include "GuiApplication.h" -#include "gui_templates.h" #include "Knob.h" #include "MainWindow.h" +#include "MidiClip.h" #include "PatternStore.h" #include "PianoRoll.h" #include "ProjectJournal.h" +#include "SampleBuffer.h" #include "StringPairDrag.h" #include "TextFloat.h" #include "TimeLineWidget.h" +#include "debug.h" +#include "embed.h" +#include "FontHelper.h" namespace lmms::gui { - -QPixmap * AutomationEditor::s_toolDraw = nullptr; -QPixmap * AutomationEditor::s_toolErase = nullptr; -QPixmap * AutomationEditor::s_toolDrawOut = nullptr; -QPixmap * AutomationEditor::s_toolEditTangents = nullptr; -QPixmap * AutomationEditor::s_toolMove = nullptr; -QPixmap * AutomationEditor::s_toolYFlip = nullptr; -QPixmap * AutomationEditor::s_toolXFlip = nullptr; - const std::array AutomationEditor::m_zoomXLevels = { 0.125f, 0.25f, 0.5f, 1.0f, 2.0f, 4.0f, 8.0f }; @@ -110,7 +106,8 @@ AutomationEditor::AutomationEditor() : m_nodeTangentLineColor(0, 0, 0), m_scaleColor(Qt::SolidPattern), m_crossColor(0, 0, 0), - m_backgroundShade(0, 0, 0) + m_backgroundShade(0, 0, 0), + m_ghostNoteColor(0, 0, 0) { connect( this, SIGNAL(currentClipChanged()), this, SLOT(updateAfterClipChange()), @@ -123,7 +120,7 @@ AutomationEditor::AutomationEditor() : //keeps the direction of the widget, undepended on the locale setLayoutDirection( Qt::LeftToRight ); - m_tensionModel = new FloatModel(1.0, 0.0, 1.0, 0.01); + m_tensionModel = new FloatModel(1.f, 0.f, 1.f, 0.01f); connect( m_tensionModel, SIGNAL(dataChanged()), this, SLOT(setTension())); @@ -135,25 +132,13 @@ AutomationEditor::AutomationEditor() : this, SLOT(setQuantization())); m_quantizeModel.setValue( m_quantizeModel.findText( "1/8" ) ); - if (s_toolYFlip == nullptr) - { - s_toolYFlip = new QPixmap( embed::getIconPixmap( - "flip_y" ) ); - } - if (s_toolXFlip == nullptr) - { - s_toolXFlip = new QPixmap( embed::getIconPixmap( - "flip_x" ) ); - } - // add time-line - m_timeLine = new TimeLineWidget( VALUES_WIDTH, 0, m_ppb, - Engine::getSong()->getPlayPos( - Song::PlayMode::AutomationClip ), - m_currentPosition, - Song::PlayMode::AutomationClip, this ); - connect( this, SIGNAL( positionChanged( const lmms::TimePos& ) ), - m_timeLine, SLOT( updatePosition( const lmms::TimePos& ) ) ); + m_timeLine = new TimeLineWidget(VALUES_WIDTH, 0, m_ppb, + Engine::getSong()->getPlayPos(Song::PlayMode::AutomationClip), + Engine::getSong()->getTimeline(Song::PlayMode::AutomationClip), + m_currentPosition, Song::PlayMode::AutomationClip, this + ); + connect(this, &AutomationEditor::positionChanged, m_timeLine, &TimeLineWidget::updatePosition); connect( m_timeLine, SIGNAL( positionChanged( const lmms::TimePos& ) ), this, SLOT( updatePosition( const lmms::TimePos& ) ) ); @@ -169,28 +154,6 @@ AutomationEditor::AutomationEditor() : connect( m_topBottomScroll, SIGNAL(valueChanged(int)), this, SLOT(verScrolled(int))); - // init pixmaps - if (s_toolDraw == nullptr) - { - s_toolDraw = new QPixmap(embed::getIconPixmap("edit_draw")); - } - if (s_toolErase == nullptr) - { - s_toolErase= new QPixmap(embed::getIconPixmap("edit_erase")); - } - if (s_toolDrawOut == nullptr) - { - s_toolDrawOut = new QPixmap(embed::getIconPixmap("edit_draw_outvalue")); - } - if (s_toolEditTangents == nullptr) - { - s_toolEditTangents = new QPixmap(embed::getIconPixmap("edit_tangent")); - } - if (s_toolMove == nullptr) - { - s_toolMove = new QPixmap(embed::getIconPixmap("edit_move")); - } - setCurrentClip(nullptr); setMouseTracking( true ); @@ -357,8 +320,6 @@ void AutomationEditor::drawLine( int x0In, float y0, int x1In, float y1 ) auto deltay = qAbs(y1 - y0); int x = x0; float y = y0; - int xstep; - int ystep; if( deltax < AutomationClip::quantization() ) { @@ -369,34 +330,14 @@ void AutomationEditor::drawLine( int x0In, float y0, int x1In, float y1 ) float yscale = deltay / ( deltax ); - if( x0 < x1 ) - { - xstep = AutomationClip::quantization(); - } - else - { - xstep = -( AutomationClip::quantization() ); - } + int xstep = (x0 < x1 ? 1 : -1) * AutomationClip::quantization(); + int ystep = y0 < y1 ? 1 : -1; + float lineAdjust = ystep * yscale; - float lineAdjust; - if( y0 < y1 ) - { - ystep = 1; - lineAdjust = yscale; - } - else - { - ystep = -1; - lineAdjust = -( yscale ); - } - - int i = 0; - while( i < deltax ) + for (int i = 0; i < deltax; ++i) { y = y0 + ( ystep * yscale * i ) + lineAdjust; - x += xstep; - i += 1; m_clip->removeNode(TimePos(x)); m_clip->putValue( TimePos( x ), y ); } @@ -1016,7 +957,6 @@ inline void AutomationEditor::drawCross( QPainter & p ) inline void AutomationEditor::drawAutomationPoint(QPainter & p, timeMap::iterator it) { int x = xCoordOfTick(POS(it)); - int y; // Below (m_ppb * AutomationClip::quantization() / 576) is used because: // 1 bar equals to 192/quantization() notes. Hence, to calculate the number of pixels // per note we would have (m_ppb * 1 bar / (192/quantization()) notes per bar), or @@ -1025,7 +965,7 @@ inline void AutomationEditor::drawAutomationPoint(QPainter & p, timeMap::iterato const int outerRadius = qBound(3, (m_ppb * AutomationClip::quantization()) / 576, 5); // Draw a circle for the outValue - y = yCoordOfLevel(OUTVAL(it)); + int y = yCoordOfLevel(OUTVAL(it)); p.setPen(QPen(m_nodeOutValueColor.lighter(200))); p.setBrush(QBrush(m_nodeOutValueColor)); p.drawEllipse(x - outerRadius, y - outerRadius, outerRadius * 2, outerRadius * 2); @@ -1043,7 +983,6 @@ inline void AutomationEditor::drawAutomationPoint(QPainter & p, timeMap::iterato inline void AutomationEditor::drawAutomationTangents(QPainter& p, timeMap::iterator it) { int x = xCoordOfTick(POS(it)); - int y, tx, ty; // The tangent value correlates the variation in the node value related to the increase // in ticks. So to have a proportionate drawing of the tangent line, we need to find the @@ -1057,9 +996,9 @@ inline void AutomationEditor::drawAutomationTangents(QPainter& p, timeMap::itera p.setPen(QPen(m_nodeTangentLineColor)); p.setBrush(QBrush(m_nodeTangentLineColor)); - y = yCoordOfLevel(INVAL(it)); - tx = x - 20; - ty = y + 20 * INTAN(it) * proportion; + int y = yCoordOfLevel(INVAL(it)); + int tx = x - 20; + int ty = y + 20 * INTAN(it) * proportion; p.drawLine(x, y, tx, ty); p.setBrush(QBrush(m_nodeTangentLineColor.darker(200))); p.drawEllipse(tx - 3, ty - 3, 6, 6); @@ -1074,8 +1013,19 @@ inline void AutomationEditor::drawAutomationTangents(QPainter& p, timeMap::itera p.drawEllipse(tx - 3, ty - 3, 6, 6); } +void AutomationEditor::setGhostMidiClip(MidiClip* newMidiClip) +{ + // Expects a pointer to a MIDI clip or nullptr. + m_ghostNotes = newMidiClip; + m_renderSample = false; +} - +void AutomationEditor::setGhostSample(SampleClip* newGhostSample) +{ + // Expects a pointer to a Sample buffer or nullptr. + m_ghostSample = newGhostSample; + m_renderSample = true; +} void AutomationEditor::paintEvent(QPaintEvent * pe ) { @@ -1090,8 +1040,7 @@ void AutomationEditor::paintEvent(QPaintEvent * pe ) QBrush bgColor = p.background(); p.fillRect( 0, 0, width(), height(), bgColor ); - // set font-size to 8 - p.setFont( pointSize<8>( p.font() ) ); + p.setFont(adjustedToPixelSize(p.font(), DEFAULT_FONT_SIZE)); int grid_height = height() - TOP_MARGIN - SCROLLBAR_SIZE; @@ -1127,7 +1076,6 @@ void AutomationEditor::paintEvent(QPaintEvent * pe ) } else { - int y; int level = (int) m_bottomLevel; int printable = qMax( 1, 5 * DEFAULT_Y_DELTA / m_y_delta ); @@ -1142,7 +1090,7 @@ void AutomationEditor::paintEvent(QPaintEvent * pe ) { const QString & label = m_clip->firstObject() ->displayValue( level ); - y = yCoordOfLevel( level ); + int y = yCoordOfLevel(level); p.setPen( QApplication::palette().color( QPalette::Active, QPalette::Shadow ) ); p.drawText( 1, y - font_height + 1, @@ -1165,7 +1113,7 @@ void AutomationEditor::paintEvent(QPaintEvent * pe ) if( m_clip ) { - int tick, x, q; + int q; int x_line_end = (int)( m_y_auto || m_topLevel < m_maxLevel ? TOP_MARGIN : grid_bottom - ( m_topLevel - m_bottomLevel ) * m_y_delta ); @@ -1189,10 +1137,8 @@ void AutomationEditor::paintEvent(QPaintEvent * pe ) // 3 independent loops, because quantization might not divide evenly into // exotic denominators (e.g. 7/11 time), which are allowed ATM. // First quantization grid... - for( tick = m_currentPosition - m_currentPosition % q, - x = xCoordOfTick( tick ); - x<=width(); - tick += q, x = xCoordOfTick( tick ) ) + for (int tick = m_currentPosition - m_currentPosition % q, x = xCoordOfTick(tick); x <= width(); + tick += q, x = xCoordOfTick(tick)) { p.setPen(m_lineColor); p.drawLine( x, grid_bottom, x, x_line_end ); @@ -1213,10 +1159,9 @@ void AutomationEditor::paintEvent(QPaintEvent * pe ) } else { - float y; for( int level = (int)m_bottomLevel; level <= m_topLevel; level++) { - y = yCoordOfLevel( (float)level ); + float y = yCoordOfLevel(static_cast(level)); p.setPen(level % 10 == 0 ? m_beatLineColor : m_lineColor); @@ -1252,20 +1197,96 @@ void AutomationEditor::paintEvent(QPaintEvent * pe ) int ticksPerBeat = DefaultTicksPerBar / Engine::getSong()->getTimeSigModel().getDenominator(); - for( tick = m_currentPosition - m_currentPosition % ticksPerBeat, - x = xCoordOfTick( tick ); - x<=width(); - tick += ticksPerBeat, x = xCoordOfTick( tick ) ) + for (int tick = m_currentPosition - m_currentPosition % ticksPerBeat, x = xCoordOfTick(tick); x <= width(); + tick += ticksPerBeat, x = xCoordOfTick(tick)) { p.setPen(m_beatLineColor); p.drawLine( x, grid_bottom, x, x_line_end ); } + // draw ghost sample + if (m_ghostSample != nullptr && m_ghostSample->sample().sampleSize() > 1 && m_renderSample) + { + int sampleFrames = m_ghostSample->sample().sampleSize(); + int length = static_cast(sampleFrames) / Engine::framesPerTick(); + int editorHeight = grid_bottom - TOP_MARGIN; + + int startPos = xCoordOfTick(0); + int sampleWidth = xCoordOfTick(length) - startPos; + int sampleHeight = std::min(editorHeight - SAMPLE_MARGIN, MAX_SAMPLE_HEIGHT); + int yOffset = (editorHeight - sampleHeight) / 2.0f + TOP_MARGIN; + + p.setPen(m_ghostSampleColor); + + const auto& sample = m_ghostSample->sample(); + const auto waveform = SampleWaveform::Parameters{ + sample.data(), sample.sampleSize(), sample.amplification(), sample.reversed()}; + const auto rect = QRect(startPos, yOffset, sampleWidth, sampleHeight); + SampleWaveform::visualize(waveform, p, rect); + } + + // draw ghost notes + if (m_ghostNotes != nullptr && !m_renderSample) + { + const NoteVector& notes = m_ghostNotes->notes(); + int minKey = 128; + int maxKey = 0; + int detuningOffset = 0; + const Note* detuningNote = nullptr; + + for (const Note* note : notes) + { + int noteKey = note->key(); + + if (note->detuning()->automationClip() == m_clip) { + detuningOffset = note->pos(); + detuningNote = note; + } + + maxKey = std::max(maxKey, noteKey); + minKey = std::min(minKey, noteKey); + } + + for (const Note* note : notes) + { + int lenTicks = note->length(); + int notePos = note->pos(); + + // offset note if detuning + if (notePos+lenTicks < detuningOffset) { continue; } + notePos -= detuningOffset; + + // remove/change after #5902 + if (lenTicks == 0) { continue; } + else if (lenTicks < 0) { lenTicks = 4; } + + int note_width = lenTicks * m_ppb / TimePos::ticksPerBar(); + int keyRange = maxKey - minKey; + + if (keyRange < MIN_NOTE_RANGE) + { + int padding = (MIN_NOTE_RANGE - keyRange) / 2.0f; + maxKey += padding; + minKey -= padding; + keyRange = MIN_NOTE_RANGE; + } + + float absNoteHeight = static_cast(note->key() - minKey) / (maxKey - minKey); + int graphHeight = grid_bottom - NOTE_HEIGHT - NOTE_MARGIN - TOP_MARGIN; + const int y = (graphHeight - graphHeight * absNoteHeight) + NOTE_HEIGHT / 2.0f + TOP_MARGIN; + const int x = xCoordOfTick(notePos); + + if (note == detuningNote) { + p.fillRect(x, y, note_width, NOTE_HEIGHT, m_detuningNoteColor); + } else { + p.fillRect(x, y, note_width, NOTE_HEIGHT, m_ghostNoteColor); + } + } + } + // and finally bars - for( tick = m_currentPosition - m_currentPosition % TimePos::ticksPerBar(), - x = xCoordOfTick( tick ); - x<=width(); - tick += TimePos::ticksPerBar(), x = xCoordOfTick( tick ) ) + for (int tick = m_currentPosition - m_currentPosition % TimePos::ticksPerBar(), x = xCoordOfTick(tick); + x <= width(); tick += TimePos::ticksPerBar(), x = xCoordOfTick(tick)) { p.setPen(m_barLineColor); p.drawLine( x, grid_bottom, x, x_line_end ); @@ -1311,15 +1332,9 @@ void AutomationEditor::paintEvent(QPaintEvent * pe ) // the outValue of the current node). When we have nodes with linear or cubic progression // the value of the end of the shape between the two nodes will be the inValue of // the next node. - float nextValue; - if( m_clip->progressionType() == AutomationClip::ProgressionType::Discrete ) - { - nextValue = OUTVAL(it); - } - else - { - nextValue = INVAL(it + 1); - } + float nextValue = m_clip->progressionType() == AutomationClip::ProgressionType::Discrete + ? OUTVAL(it) + : INVAL(it + 1); p.setRenderHints( QPainter::Antialiasing, true ); QPainterPath path; @@ -1367,16 +1382,16 @@ void AutomationEditor::paintEvent(QPaintEvent * pe ) } else { - QFont f = p.font(); + QFont f = font(); f.setBold( true ); - p.setFont( pointSize<14>( f ) ); + p.setFont(f); p.setPen( QApplication::palette().color( QPalette::Active, QPalette::BrightText ) ); p.drawText( VALUES_WIDTH + 20, TOP_MARGIN + 40, width() - VALUES_WIDTH - 20 - SCROLLBAR_SIZE, grid_height - 40, Qt::TextWordWrap, - tr( "Please open an automation clip with " - "the context menu of a control!" ) ); + tr( "Please open an automation clip by " + "double-clicking on it!" ) ); } // TODO: Get this out of paint event @@ -1400,26 +1415,26 @@ void AutomationEditor::paintEvent(QPaintEvent * pe ) { case EditMode::Draw: { - if (m_action == Action::EraseValues) { cursor = s_toolErase; } - else if (m_action == Action::MoveValue) { cursor = s_toolMove; } - else { cursor = s_toolDraw; } + if (m_action == Action::EraseValues) { cursor = &m_toolErase; } + else if (m_action == Action::MoveValue) { cursor = &m_toolMove; } + else { cursor = &m_toolDraw; } break; } case EditMode::Erase: { - cursor = s_toolErase; + cursor = &m_toolErase; break; } case EditMode::DrawOutValues: { - if (m_action == Action::ResetOutValues) { cursor = s_toolErase; } - else if (m_action == Action::MoveOutValue) { cursor = s_toolMove; } - else { cursor = s_toolDrawOut; } + if (m_action == Action::ResetOutValues) { cursor = &m_toolErase; } + else if (m_action == Action::MoveOutValue) { cursor = &m_toolMove; } + else { cursor = &m_toolDrawOut; } break; } case EditMode::EditTangents: { - cursor = m_action == Action::MoveTangent ? s_toolMove : s_toolEditTangents; + cursor = m_action == Action::MoveTangent ? &m_toolMove : &m_toolEditTangents; break; } } @@ -1469,25 +1484,11 @@ void AutomationEditor::drawLevelTick(QPainter & p, int tick, float value) || ( value > m_topLevel && m_topLevel >= 0 ) || ( value < m_bottomLevel && m_bottomLevel <= 0 ) ) { - int y_start = yCoordOfLevel( value ); - int rect_height; - - if( m_y_auto ) - { - int y_end = (int)( grid_bottom - + ( grid_bottom - TOP_MARGIN ) - * m_minLevel - / ( m_maxLevel - m_minLevel ) ); - - rect_height = y_end - y_start; - } - else - { - rect_height = (int)( value * m_y_delta ); - } + const int y_start = yCoordOfLevel(value); + const int y_end = grid_bottom + (grid_bottom - TOP_MARGIN) * m_minLevel / (m_maxLevel - m_minLevel); + const int rect_height = m_y_auto ? y_end - y_start : value * m_y_delta; QBrush currentColor = m_graphColor; - p.fillRect( x, y_start, rect_width, rect_height, currentColor ); } #ifdef LMMS_DEBUG @@ -1553,17 +1554,17 @@ void AutomationEditor::resizeEvent(QResizeEvent * re) } centerTopBottomScroll(); - if( Engine::getSong() ) - { - Engine::getSong()->getPlayPos( Song::PlayMode::AutomationClip - ).m_timeLine->setFixedWidth( width() ); - } + m_timeLine->setFixedWidth(width()); updateTopBottomLevels(); update(); } - +void AutomationEditor::adjustLeftRightScoll(int value) +{ + m_leftRightScroll->setValue(m_leftRightScroll->value() - + value * 0.3f / m_zoomXLevels[m_zoomingXModel.value()]); +} // TODO: Move this method up so it's closer to the other mouse events @@ -1628,13 +1629,11 @@ void AutomationEditor::wheelEvent(QWheelEvent * we ) // FIXME: Reconsider if determining orientation is necessary in Qt6. else if(abs(we->angleDelta().x()) > abs(we->angleDelta().y())) // scrolling is horizontal { - m_leftRightScroll->setValue(m_leftRightScroll->value() - - we->angleDelta().x() * 2 / 15); + adjustLeftRightScoll(we->angleDelta().x()); } else if(we->modifiers() & Qt::ShiftModifier) { - m_leftRightScroll->setValue(m_leftRightScroll->value() - - we->angleDelta().y() * 2 / 15); + adjustLeftRightScoll(we->angleDelta().y()); } else { @@ -1650,14 +1649,14 @@ float AutomationEditor::getLevel(int y ) { int level_line_y = height() - SCROLLBAR_SIZE - 1; // pressed level - float level = roundf( ( m_bottomLevel + ( m_y_auto ? + float level = std::roundf( ( m_bottomLevel + ( m_y_auto ? ( m_maxLevel - m_minLevel ) * ( level_line_y - y ) / (float)( level_line_y - ( TOP_MARGIN + 2 ) ) : ( level_line_y - y ) / (float)m_y_delta ) ) / m_step ) * m_step; // some range-checking-stuff - level = qBound( m_bottomLevel, level, m_topLevel ); + level = qBound(std::roundf(m_bottomLevel), level, std::roundf(m_topLevel)); - return( level ); + return level; } @@ -2110,7 +2109,7 @@ AutomationEditorWindow::AutomationEditorWindow() : for( float const & zoomLevel : m_editor->m_zoomXLevels ) { - m_editor->m_zoomingXModel.addItem( QString( "%1\%" ).arg( zoomLevel * 100 ) ); + m_editor->m_zoomingXModel.addItem(QString("%1%").arg(zoomLevel * 100)); } m_editor->m_zoomingXModel.setValue( m_editor->m_zoomingXModel.findText( "100%" ) ); @@ -2159,8 +2158,18 @@ AutomationEditorWindow::AutomationEditorWindow() : quantizationActionsToolBar->addWidget( quantize_lbl ); quantizationActionsToolBar->addWidget( m_quantizeComboBox ); + m_resetGhostNotes = new QPushButton(m_toolBar); + m_resetGhostNotes->setIcon(embed::getIconPixmap("clear_ghost_note")); + m_resetGhostNotes->setToolTip(tr("Clear ghost notes")); + m_resetGhostNotes->setEnabled(true); + + connect(m_resetGhostNotes, &QPushButton::pressed, m_editor, &AutomationEditor::resetGhostNotes); + + quantizationActionsToolBar->addSeparator(); + quantizationActionsToolBar->addWidget(m_resetGhostNotes); + // Setup our actual window - setFocusPolicy( Qt::StrongFocus ); + setFocusPolicy(Qt::StrongFocus); setFocus(); setWindowIcon( embed::getIconPixmap( "automation" ) ); setAcceptDrops( true ); diff --git a/src/gui/editors/PatternEditor.cpp b/src/gui/editors/PatternEditor.cpp index 5237690a7e7..2915786981d 100644 --- a/src/gui/editors/PatternEditor.cpp +++ b/src/gui/editors/PatternEditor.cpp @@ -135,10 +135,10 @@ void PatternEditor::dropEvent(QDropEvent* de) // Ensure pattern clips exist bool hasValidPatternClips = false; - if (t->getClips().size() == m_ps->numOfPatterns()) + if (t->getClips().size() == static_cast(m_ps->numOfPatterns())) { hasValidPatternClips = true; - for (int i = 0; i < t->getClips().size(); ++i) + for (auto i = std::size_t{0}; i < t->getClips().size(); ++i) { if (t->getClips()[i]->startPosition() != TimePos(i, 0)) { diff --git a/src/gui/editors/PianoRoll.cpp b/src/gui/editors/PianoRoll.cpp index 2d8f9cbc222..2193456e459 100644 --- a/src/gui/editors/PianoRoll.cpp +++ b/src/gui/editors/PianoRoll.cpp @@ -59,7 +59,7 @@ #include "DetuningHelper.h" #include "embed.h" #include "GuiApplication.h" -#include "gui_templates.h" +#include "FontHelper.h" #include "InstrumentTrack.h" #include "MainWindow.h" #include "MidiClip.h" @@ -119,15 +119,6 @@ const int INITIAL_START_KEY = Octave::Octave_4 + Key::C; const int NUM_EVEN_LENGTHS = 6; const int NUM_TRIPLET_LENGTHS = 5; - - -QPixmap * PianoRoll::s_toolDraw = nullptr; -QPixmap * PianoRoll::s_toolErase = nullptr; -QPixmap * PianoRoll::s_toolSelect = nullptr; -QPixmap * PianoRoll::s_toolMove = nullptr; -QPixmap * PianoRoll::s_toolOpen = nullptr; -QPixmap* PianoRoll::s_toolKnife = nullptr; - SimpleTextFloat * PianoRoll::s_textFloat = nullptr; static std::array s_noteStrings { @@ -170,6 +161,7 @@ PianoRoll::PianoRoll() : m_midiClip( nullptr ), m_currentPosition(), m_recording( false ), + m_doAutoQuantization(ConfigManager::inst()->value("midi", "autoquantize").toInt() != 0), m_currentNote( nullptr ), m_action( Action::None ), m_noteEditMode( NoteEditMode::Volume ), @@ -228,7 +220,7 @@ PianoRoll::PianoRoll() : m_noteEditMenu = new QMenu( this ); m_noteEditMenu->clear(); - for( int i = 0; i < m_nemStr.size(); ++i ) + for (auto i = std::size_t{0}; i < m_nemStr.size(); ++i) { auto act = new QAction(m_nemStr.at(i), this); connect( act, &QAction::triggered, [this, i](){ changeNoteEditMode(i); } ); @@ -250,6 +242,15 @@ PianoRoll::PianoRoll() : connect( markChordAction, &QAction::triggered, [this](){ markSemiTone(SemiToneMarkerAction::MarkCurrentChord); }); connect( unmarkAllAction, &QAction::triggered, [this](){ markSemiTone(SemiToneMarkerAction::UnmarkAll); }); connect( copyAllNotesAction, &QAction::triggered, [this](){ markSemiTone(SemiToneMarkerAction::CopyAllNotesOnKey); }); + connect(ConfigManager::inst(), &ConfigManager::valueChanged, + [this](QString const& cls, QString const& attribute, QString const& value) + { + if (!(cls == "midi" && attribute == "autoquantize")) + { + return; + } + this->m_doAutoQuantization = (value.toInt() != 0); + }); markScaleAction->setEnabled( false ); markChordAction->setEnabled( false ); @@ -264,32 +265,6 @@ PianoRoll::PianoRoll() : m_semiToneMarkerMenu->addAction( unmarkAllAction ); m_semiToneMarkerMenu->addAction( copyAllNotesAction ); - // init pixmaps - if( s_toolDraw == nullptr ) - { - s_toolDraw = new QPixmap( embed::getIconPixmap( "edit_draw" ) ); - } - if( s_toolErase == nullptr ) - { - s_toolErase= new QPixmap( embed::getIconPixmap( "edit_erase" ) ); - } - if( s_toolSelect == nullptr ) - { - s_toolSelect = new QPixmap( embed::getIconPixmap( "edit_select" ) ); - } - if( s_toolMove == nullptr ) - { - s_toolMove = new QPixmap( embed::getIconPixmap( "edit_move" ) ); - } - if( s_toolOpen == nullptr ) - { - s_toolOpen = new QPixmap( embed::getIconPixmap( "automation" ) ); - } - if (s_toolKnife == nullptr) - { - s_toolKnife = new QPixmap(embed::getIconPixmap("edit_knife")); - } - // init text-float if( s_textFloat == nullptr ) { @@ -300,12 +275,11 @@ PianoRoll::PianoRoll() : // add time-line m_timeLine = new TimeLineWidget(m_whiteKeyWidth, 0, m_ppb, - Engine::getSong()->getPlayPos( - Song::PlayMode::MidiClip ), - m_currentPosition, - Song::PlayMode::MidiClip, this ); - connect( this, SIGNAL( positionChanged( const lmms::TimePos& ) ), - m_timeLine, SLOT( updatePosition( const lmms::TimePos& ) ) ); + Engine::getSong()->getPlayPos(Song::PlayMode::MidiClip), + Engine::getSong()->getTimeline(Song::PlayMode::MidiClip), + m_currentPosition, Song::PlayMode::MidiClip, this + ); + connect(this, &PianoRoll::positionChanged, m_timeLine, &TimeLineWidget::updatePosition); connect( m_timeLine, SIGNAL( positionChanged( const lmms::TimePos& ) ), this, SLOT( updatePosition( const lmms::TimePos& ) ) ); @@ -317,10 +291,7 @@ PianoRoll::PianoRoll() : this, SLOT( updatePositionStepRecording( const lmms::TimePos& ) ) ); // update timeline when in record-accompany mode - connect( Engine::getSong()->getPlayPos( Song::PlayMode::Song ).m_timeLine, - SIGNAL( positionChanged( const lmms::TimePos& ) ), - this, - SLOT( updatePositionAccompany( const lmms::TimePos& ) ) ); + connect(m_timeLine, &TimeLineWidget::positionChanged, this, &PianoRoll::updatePositionAccompany); // TODO /* connect( engine::getSong()->getPlayPos( Song::PlayMode::Pattern ).m_timeLine, SIGNAL( positionChanged( const lmms::TimePos& ) ), @@ -344,7 +315,7 @@ PianoRoll::PianoRoll() : // setup zooming-stuff for( float const & zoomLevel : m_zoomLevels ) { - m_zoomingModel.addItem( QString( "%1\%" ).arg( zoomLevel * 100 ) ); + m_zoomingModel.addItem(QString("%1%").arg(zoomLevel * 100)); } m_zoomingModel.setValue( m_zoomingModel.findText( "100%" ) ); connect( &m_zoomingModel, SIGNAL(dataChanged()), @@ -353,7 +324,7 @@ PianoRoll::PianoRoll() : // zoom y for (float const & zoomLevel : m_zoomYLevels) { - m_zoomingYModel.addItem(QString( "%1\%" ).arg(zoomLevel * 100)); + m_zoomingYModel.addItem(QString("%1%").arg(zoomLevel * 100)); } m_zoomingYModel.setValue(m_zoomingYModel.findText("100%")); connect(&m_zoomingYModel, SIGNAL(dataChanged()), @@ -372,7 +343,7 @@ PianoRoll::PianoRoll() : // Set up note length model m_noteLenModel.addItem( tr( "Last note" ), std::make_unique( "edit_draw" ) ); - const auto pixmaps = std::array{"whole", "half", "quarter", "eighth", + const auto pixmaps = std::array{"whole", "half", "quarter", "eighth", "sixteenth", "thirtysecond", "triplethalf", "tripletquarter", "tripleteighth", "tripletsixteenth", "tripletthirtysecond"}; @@ -1058,7 +1029,7 @@ void PianoRoll::drawNoteRect( QPainter & p, int x, int y, QString noteKeyString = getNoteString(n->key()); QFont noteFont(p.font()); - noteFont.setPixelSize(noteTextHeight); + noteFont = adjustedToPixelSize(noteFont, noteTextHeight); QFontMetrics fontMetrics(noteFont); QSize textSize = fontMetrics.size(Qt::TextSingleLine, noteKeyString); @@ -1670,6 +1641,7 @@ void PianoRoll::mousePressEvent(QMouseEvent * me ) } detuningClip = n->detuning()->automationClip(); connect(detuningClip.data(), SIGNAL(dataChanged()), this, SLOT(update())); + getGUI()->automationEditor()->setGhostMidiClip(m_midiClip); getGUI()->automationEditor()->open(detuningClip); return; } @@ -2684,7 +2656,7 @@ void PianoRoll::mouseMoveEvent( QMouseEvent * me ) ) { // delete this note - m_midiClip->removeNote( note ); + it = m_midiClip->removeNote(it); Engine::getSong()->setModified(); } else @@ -3046,8 +3018,8 @@ void PianoRoll::paintEvent(QPaintEvent * pe ) // set font-size to 80% of key line height QFont f = p.font(); - f.setPixelSize(m_keyLineHeight * 0.8); - p.setFont(f); // font size doesn't change without this for some reason + int keyFontSize = m_keyLineHeight * 0.8; + p.setFont(adjustedToPixelSize(f, keyFontSize)); QFontMetrics fontMetrics(p.font()); // G-1 is one of the widest; plus one pixel margin for the shadow QRect const boundingRect = fontMetrics.boundingRect(QString("G-1")) + QMargins(0, 0, 1, 0); @@ -3068,10 +3040,9 @@ void PianoRoll::paintEvent(QPaintEvent * pe ) if (hasValidMidiClip()) { - int pianoAreaHeight, partialKeyVisible, topKey, topNote; - pianoAreaHeight = keyAreaBottom() - keyAreaTop(); + int pianoAreaHeight = keyAreaBottom() - keyAreaTop(); m_pianoKeysVisible = pianoAreaHeight / m_keyLineHeight; - partialKeyVisible = pianoAreaHeight % m_keyLineHeight; + int partialKeyVisible = pianoAreaHeight % m_keyLineHeight; // check if we're below the minimum key area size if (m_pianoKeysVisible * m_keyLineHeight < KEY_AREA_MIN_HEIGHT) { @@ -3096,8 +3067,8 @@ void PianoRoll::paintEvent(QPaintEvent * pe ) PR_TOP_MARGIN - PR_BOTTOM_MARGIN; partialKeyVisible = 0; } - topKey = qBound(0, m_startKey + m_pianoKeysVisible - 1, NumKeys - 1); - topNote = topKey % KeysPerOctave; + int topKey = std::clamp(m_startKey + m_pianoKeysVisible - 1, 0, NumKeys - 1); + int topNote = topKey % KeysPerOctave; // if not resizing the note edit area, we can change m_notesEditHeight if (m_action != Action::ResizeNoteEditArea && partialKeyVisible != 0) { @@ -3374,9 +3345,8 @@ void PianoRoll::paintEvent(QPaintEvent * pe ) m_whiteKeyWidth, noteEditBottom() - keyAreaBottom()), bgColor); // display note editing info - //QFont f = p.font(); - f.setBold( false ); - p.setFont( pointSize<10>( f ) ); + f.setBold(false); + p.setFont(adjustedToPixelSize(f, SMALL_FONT_SIZE)); p.setPen(m_noteModeColor); p.drawText( QRect( 0, keyAreaBottom(), m_whiteKeyWidth, noteEditBottom() - keyAreaBottom()), @@ -3637,9 +3607,9 @@ void PianoRoll::paintEvent(QPaintEvent * pe ) } else { - QFont f = p.font(); - f.setBold( true ); - p.setFont( pointSize<14>( f ) ); + QFont f = font(); + f.setBold(true); + p.setFont(f); p.setPen( QApplication::palette().color( QPalette::Active, QPalette::BrightText ) ); p.drawText(m_whiteKeyWidth + 20, PR_TOP_MARGIN + 40, @@ -3703,21 +3673,29 @@ void PianoRoll::paintEvent(QPaintEvent * pe ) case EditMode::Draw: if( m_mouseDownRight ) { - cursor = s_toolErase; + cursor = &m_toolErase; } else if( m_action == Action::MoveNote ) { - cursor = s_toolMove; + cursor = &m_toolMove; } else { - cursor = s_toolDraw; + cursor = &m_toolDraw; } break; - case EditMode::Erase: cursor = s_toolErase; break; - case EditMode::Select: cursor = s_toolSelect; break; - case EditMode::Detuning: cursor = s_toolOpen; break; - case EditMode::Knife: cursor = s_toolKnife; break; + case EditMode::Erase: + cursor = &m_toolErase; + break; + case EditMode::Select: + cursor = &m_toolSelect; + break; + case EditMode::Detuning: + cursor = &m_toolOpen; + break; + case EditMode::Knife: + cursor = &m_toolKnife; + break; } QPoint mousePosition = mapFromGlobal( QCursor::pos() ); if( cursor != nullptr && mousePosition.y() > keyAreaTop() && mousePosition.x() > noteEditLeft()) @@ -3760,12 +3738,17 @@ void PianoRoll::resizeEvent(QResizeEvent* re) { updatePositionLineHeight(); updateScrollbars(); - Engine::getSong()->getPlayPos(Song::PlayMode::MidiClip) - .m_timeLine->setFixedWidth(width()); + m_timeLine->setFixedWidth(width()); update(); } +void PianoRoll::adjustLeftRightScoll(int value) +{ + m_leftRightScroll->setValue(m_leftRightScroll->value() - + value * 0.3f / m_zoomLevels[m_zoomingModel.value()]); +} + void PianoRoll::wheelEvent(QWheelEvent * we ) @@ -3797,7 +3780,8 @@ void PianoRoll::wheelEvent(QWheelEvent * we ) } if( nv.size() > 0 ) { - const int step = we->angleDelta().y() > 0 ? 1 : -1; + const int step = (we->angleDelta().y() > 0 ? 1 : -1) * (we->inverted() ? -1 : 1); + if( m_noteEditMode == NoteEditMode::Volume ) { for ( Note * n : nv ) @@ -3897,13 +3881,11 @@ void PianoRoll::wheelEvent(QWheelEvent * we ) // FIXME: Reconsider if determining orientation is necessary in Qt6. else if(abs(we->angleDelta().x()) > abs(we->angleDelta().y())) // scrolling is horizontal { - m_leftRightScroll->setValue(m_leftRightScroll->value() - - we->angleDelta().x() * 2 / 15); + adjustLeftRightScoll(we->angleDelta().x()); } else if(we->modifiers() & Qt::ShiftModifier) { - m_leftRightScroll->setValue(m_leftRightScroll->value() - - we->angleDelta().y() * 2 / 15); + adjustLeftRightScoll(we->angleDelta().y()); } else { @@ -4084,7 +4066,7 @@ void PianoRoll::stop() { Engine::getSong()->stop(); m_recording = false; - m_scrollBack = ( m_timeLine->autoScroll() == TimeLineWidget::AutoScrollState::Enabled ); + m_scrollBack = m_timeLine->autoScroll() != TimeLineWidget::AutoScrollState::Disabled; } @@ -4141,8 +4123,13 @@ void PianoRoll::finishRecordNote(const Note & n ) Note n1(n.length(), it->pos(), it->key(), it->getVolume(), it->getPanning(), n.detuning()); - n1.quantizeLength( quantization() ); - m_midiClip->addNote( n1 ); + + if (m_doAutoQuantization) + { + n1.quantizeLength(quantization()); + n1.quantizePos(quantization()); + } + m_midiClip->addNote(n1, false); update(); m_recordingNotes.erase( it ); break; @@ -4480,30 +4467,36 @@ bool PianoRoll::deleteSelectedNotes() void PianoRoll::autoScroll( const TimePos & t ) { const int w = width() - m_whiteKeyWidth; - if( t > m_currentPosition + w * TimePos::ticksPerBar() / m_ppb ) + if (m_timeLine->autoScroll() == TimeLineWidget::AutoScrollState::Stepped) { - m_leftRightScroll->setValue( t.getBar() * TimePos::ticksPerBar() ); + if (t > m_currentPosition + w * TimePos::ticksPerBar() / m_ppb) + { + m_leftRightScroll->setValue(t.getBar() * TimePos::ticksPerBar()); + } + else if (t < m_currentPosition) + { + TimePos t2 = std::max(t - w * TimePos::ticksPerBar() * + TimePos::ticksPerBar() / m_ppb, static_cast(0)); + m_leftRightScroll->setValue(t2.getBar() * TimePos::ticksPerBar()); + } } - else if( t < m_currentPosition ) + else if (m_timeLine->autoScroll() == TimeLineWidget::AutoScrollState::Continuous) { - TimePos t2 = qMax( t - w * TimePos::ticksPerBar() * - TimePos::ticksPerBar() / m_ppb, (tick_t) 0 ); - m_leftRightScroll->setValue( t2.getBar() * TimePos::ticksPerBar() ); + m_leftRightScroll->setValue(std::max(t.getTicks() - w * TimePos::ticksPerBar() / m_ppb / 2, 0)); } m_scrollBack = false; } - -void PianoRoll::updatePosition( const TimePos & t ) +void PianoRoll::updatePosition(const TimePos & t) { - if( ( Engine::getSong()->isPlaying() + if ((Engine::getSong()->isPlaying() && Engine::getSong()->playMode() == Song::PlayMode::MidiClip - && m_timeLine->autoScroll() == TimeLineWidget::AutoScrollState::Enabled - ) || m_scrollBack ) + && m_timeLine->autoScroll() != TimeLineWidget::AutoScrollState::Disabled + ) || m_scrollBack) { - autoScroll( t ); + autoScroll(t); } // ticks relative to m_currentPosition // < 0 = outside viewport left @@ -4912,7 +4905,7 @@ PianoRollWindow::PianoRollWindow() : m_quantizeComboBox = new ComboBox( m_toolBar ); m_quantizeComboBox->setModel( &m_editor->m_quantizeModel ); - m_quantizeComboBox->setFixedSize( 64, ComboBox::DEFAULT_HEIGHT ); + m_quantizeComboBox->setFixedSize(85, ComboBox::DEFAULT_HEIGHT); m_quantizeComboBox->setToolTip( tr( "Quantization") ); // setup note-len-stuff @@ -4936,7 +4929,7 @@ PianoRollWindow::PianoRollWindow() : m_scaleComboBox = new ComboBox( m_toolBar ); m_scaleComboBox->setModel( &m_editor->m_scaleModel ); - m_scaleComboBox->setFixedSize( 105, ComboBox::DEFAULT_HEIGHT ); + m_scaleComboBox->setFixedSize(155, ComboBox::DEFAULT_HEIGHT); m_scaleComboBox->setToolTip( tr( "Scale") ); // setup chord-stuff @@ -4945,7 +4938,7 @@ PianoRollWindow::PianoRollWindow() : m_chordComboBox = new ComboBox( m_toolBar ); m_chordComboBox->setModel( &m_editor->m_chordModel ); - m_chordComboBox->setFixedSize( 105, ComboBox::DEFAULT_HEIGHT ); + m_chordComboBox->setFixedSize(125, ComboBox::DEFAULT_HEIGHT); m_chordComboBox->setToolTip( tr( "Chord" ) ); // setup snap-stuff @@ -4954,7 +4947,7 @@ PianoRollWindow::PianoRollWindow() : m_snapComboBox = new ComboBox(m_toolBar); m_snapComboBox->setModel(&m_editor->m_snapModel); - m_snapComboBox->setFixedSize(105, ComboBox::DEFAULT_HEIGHT); + m_snapComboBox->setFixedSize(96, ComboBox::DEFAULT_HEIGHT); m_snapComboBox->setToolTip(tr("Snap mode")); // -- Clear ghost MIDI clip button @@ -5193,7 +5186,8 @@ void PianoRollWindow::saveSettings( QDomDocument & doc, QDomElement & de ) de.appendChild(markedSemiTonesRoot); } - de.setAttribute("stopbehaviour", static_cast(m_editor->m_timeLine->behaviourAtStop())); + de.setAttribute("stopbehaviour", static_cast( + Engine::getSong()->getTimeline(Song::PlayMode::MidiClip).stopBehaviour())); MainWindow::saveWidgetState( this, de ); } @@ -5208,7 +5202,8 @@ void PianoRollWindow::loadSettings( const QDomElement & de ) MainWindow::restoreWidgetState( this, de ); - m_editor->m_timeLine->setBehaviourAtStop(de.attribute("stopbehaviour").toInt()); + Engine::getSong()->getTimeline(Song::PlayMode::MidiClip).setStopBehaviour( + static_cast(de.attribute("stopbehaviour").toInt())); // update margins here because we're later in the startup process // We can't earlier because everything is still starting with the diff --git a/src/gui/editors/PositionLine.cpp b/src/gui/editors/PositionLine.cpp index 8b938443d41..dda44e8f70a 100644 --- a/src/gui/editors/PositionLine.cpp +++ b/src/gui/editors/PositionLine.cpp @@ -93,7 +93,7 @@ void PositionLine::zoomChange(float zoom) { int playHeadPos = x() + width() - 1; - resize(8.0 * zoom, height()); + resize(std::max(8.0 * zoom, 1.0), height()); move(playHeadPos - width() + 1, y()); update(); diff --git a/src/gui/editors/SongEditor.cpp b/src/gui/editors/SongEditor.cpp index f5a328cfb43..fdbddcf6fe5 100644 --- a/src/gui/editors/SongEditor.cpp +++ b/src/gui/editors/SongEditor.cpp @@ -63,7 +63,7 @@ namespace lmms::gui namespace { -constexpr int MIN_PIXELS_PER_BAR = 2; +constexpr int MIN_PIXELS_PER_BAR = 4; constexpr int MAX_PIXELS_PER_BAR = 400; constexpr int ZOOM_STEPS = 200; @@ -97,14 +97,12 @@ SongEditor::SongEditor( Song * song ) : m_zoomingModel->setParent(this); m_snappingModel->setParent(this); - m_timeLine = new TimeLineWidget( m_trackHeadWidth, 32, - pixelsPerBar(), - m_song->getPlayPos(Song::PlayMode::Song), - m_currentPosition, - Song::PlayMode::Song, this ); - connect( this, SIGNAL( positionChanged( const lmms::TimePos& ) ), - m_song->getPlayPos(Song::PlayMode::Song).m_timeLine, - SLOT( updatePosition( const lmms::TimePos& ) ) ); + m_timeLine = new TimeLineWidget(m_trackHeadWidth, 32, pixelsPerBar(), + m_song->getPlayPos(Song::PlayMode::Song), + m_song->getTimeline(Song::PlayMode::Song), + m_currentPosition, Song::PlayMode::Song, this + ); + connect(this, &TrackContainerView::positionChanged, m_timeLine, &TimeLineWidget::updatePosition); connect( m_timeLine, SIGNAL( positionChanged( const lmms::TimePos& ) ), this, SLOT( updatePosition( const lmms::TimePos& ) ) ); connect( m_timeLine, SIGNAL(regionSelectedFromPixels(int,int)), @@ -144,17 +142,6 @@ SongEditor::SongEditor( Song * song ) : int tempoSpinBoxCol = getGUI()->mainWindow()->addWidgetToToolBar( m_tempoSpinBox, 0 ); -#if 0 - toolButton * hq_btn = new toolButton( embed::getIconPixmap( "hq_mode" ), - tr( "High quality mode" ), - nullptr, nullptr, tb ); - hq_btn->setCheckable( true ); - connect( hq_btn, SIGNAL(toggled(bool)), - this, SLOT(setHighQuality(bool))); - hq_btn->setFixedWidth( 42 ); - getGUI()->mainWindow()->addWidgetToToolBar( hq_btn, 1, col ); -#endif - getGUI()->mainWindow()->addWidgetToToolBar( new TimeDisplayWidget, 1, tempoSpinBoxCol ); getGUI()->mainWindow()->addSpacingToToolBar( 10 ); @@ -244,10 +231,10 @@ SongEditor::SongEditor( Song * song ) : static_cast( layout() )->insertWidget( 0, m_timeLine ); m_leftRightScroll = new QScrollBar( Qt::Horizontal, this ); - m_leftRightScroll->setMinimum( 0 ); - m_leftRightScroll->setMaximum( 0 ); - m_leftRightScroll->setSingleStep( 1 ); - m_leftRightScroll->setPageStep( 20 ); + m_leftRightScroll->setMinimum(0); + m_leftRightScroll->setMaximum(0); + m_leftRightScroll->setSingleStep(1); + m_leftRightScroll->setPageStep(20 * TimePos::ticksPerBar()); static_cast( layout() )->addWidget( m_leftRightScroll ); connect( m_leftRightScroll, SIGNAL(valueChanged(int)), this, SLOT(scrolled(int))); @@ -276,7 +263,7 @@ SongEditor::SongEditor( Song * song ) : m_snappingModel->addItem(QString("1/%1 Bar").arg(1 / bars)); } } - m_snappingModel->setInitValue( m_snappingModel->findText( "1 Bar" ) ); + m_snappingModel->setInitValue( m_snappingModel->findText( "1/4 Bar" ) ); setFocusPolicy( Qt::StrongFocus ); setFocus(); @@ -335,23 +322,10 @@ QString SongEditor::getSnapSizeString() const } } - - - -void SongEditor::setHighQuality( bool hq ) -{ - Engine::audioEngine()->changeQuality( AudioEngine::qualitySettings( - hq ? AudioEngine::qualitySettings::Mode::HighQuality : - AudioEngine::qualitySettings::Mode::Draft ) ); -} - - - - void SongEditor::scrolled( int new_pos ) { update(); - emit positionChanged( m_currentPosition = TimePos( new_pos, 0 ) ); + emit positionChanged(m_currentPosition = TimePos(new_pos)); } @@ -410,7 +384,7 @@ void SongEditor::updateRubberband() } //take care of the scrollbar position - int hs = (m_leftRightScroll->value() - m_scrollPos.x()) * pixelsPerBar(); + int hs = (m_leftRightScroll->value() - m_scrollPos.x()) * pixelsPerBar() / TimePos::ticksPerBar(); int vs = contentWidget()->verticalScrollBar()->value() - m_scrollPos.y(); //the adjusted origin point @@ -473,6 +447,8 @@ void SongEditor::toggleProportionalSnap() { m_proportionalSnap = !m_proportionalSnap; m_timeLine->setSnapSize(getSnapSize()); + + emit proportionalSnapChanged(); } @@ -540,14 +516,20 @@ void SongEditor::keyPressEvent( QKeyEvent * ke ) +void SongEditor::adjustLeftRightScoll(int value) +{ + m_leftRightScroll->setValue(m_leftRightScroll->value() + - value * DEFAULT_PIXELS_PER_BAR / pixelsPerBar()); +} + void SongEditor::wheelEvent( QWheelEvent * we ) { if ((we->modifiers() & Qt::ControlModifier) && (position(we).x() > m_trackHeadWidth)) { int x = position(we).x() - m_trackHeadWidth; - // bar based on the mouse x-position where the scroll wheel was used - int bar = x / pixelsPerBar(); + // tick based on the mouse x-position where the scroll wheel was used + int tick = x / pixelsPerBar() * TimePos::ticksPerBar(); // move zoom slider (pixelsPerBar will change automatically) int step = we->modifiers() & Qt::ShiftModifier ? 1 : 5; @@ -555,26 +537,24 @@ void SongEditor::wheelEvent( QWheelEvent * we ) int direction = (we->angleDelta().y() + we->angleDelta().x()) > 0 ? 1 : -1; m_zoomingModel->incValue(step * direction); - // scroll to zooming around cursor's bar - int newBar = static_cast(x / pixelsPerBar()); - m_leftRightScroll->setValue(m_leftRightScroll->value() + bar - newBar); + // scroll to zooming around cursor's tick + int newTick = static_cast(x / pixelsPerBar() * TimePos::ticksPerBar()); + m_leftRightScroll->setValue(m_leftRightScroll->value() + tick - newTick); // update timeline - m_song->getPlayPos(Song::PlayMode::Song).m_timeLine->setPixelsPerBar(pixelsPerBar()); + m_timeLine->setPixelsPerBar(pixelsPerBar()); // and make sure, all Clip's are resized and relocated realignTracks(); } // FIXME: Reconsider if determining orientation is necessary in Qt6. - else if(abs(we->angleDelta().x()) > abs(we->angleDelta().y())) // scrolling is horizontal + else if (std::abs(we->angleDelta().x()) > std::abs(we->angleDelta().y())) // scrolling is horizontal { - m_leftRightScroll->setValue(m_leftRightScroll->value() - - we->angleDelta().x() /30); + adjustLeftRightScoll(we->angleDelta().x()); } - else if(we->modifiers() & Qt::ShiftModifier) + else if (we->modifiers() & Qt::ShiftModifier) { - m_leftRightScroll->setValue(m_leftRightScroll->value() - - we->angleDelta().y() / 30); + adjustLeftRightScoll(we->angleDelta().y()); } else { @@ -720,9 +700,9 @@ void SongEditor::hideMasterPitchFloat( void ) -void SongEditor::updateScrollBar( int len ) +void SongEditor::updateScrollBar(int len) { - m_leftRightScroll->setMaximum( len ); + m_leftRightScroll->setMaximum(len * TimePos::ticksPerBar()); } @@ -761,40 +741,34 @@ static inline void animateScroll( QScrollBar *scrollBar, int newVal, bool smooth void SongEditor::updatePosition( const TimePos & t ) { - int widgetWidth, trackOpWidth; - if( ConfigManager::inst()->value( "ui", "compacttrackbuttons" ).toInt() ) - { - widgetWidth = DEFAULT_SETTINGS_WIDGET_WIDTH_COMPACT; - trackOpWidth = TRACK_OP_WIDTH_COMPACT; - } - else - { - widgetWidth = DEFAULT_SETTINGS_WIDGET_WIDTH; - trackOpWidth = TRACK_OP_WIDTH; - } + const bool compactTrackButtons = ConfigManager::inst()->value("ui", "compacttrackbuttons").toInt(); + const auto widgetWidth = compactTrackButtons ? DEFAULT_SETTINGS_WIDGET_WIDTH_COMPACT : DEFAULT_SETTINGS_WIDGET_WIDTH; + const auto trackOpWidth = compactTrackButtons ? TRACK_OP_WIDTH_COMPACT : TRACK_OP_WIDTH; - if( ( m_song->isPlaying() && m_song->m_playMode == Song::PlayMode::Song - && m_timeLine->autoScroll() == TimeLineWidget::AutoScrollState::Enabled) || - m_scrollBack == true ) + if ((m_song->isPlaying() && m_song->m_playMode == Song::PlayMode::Song) + || m_scrollBack) { m_smoothScroll = ConfigManager::inst()->value( "ui", "smoothscroll" ).toInt(); const int w = width() - widgetWidth - trackOpWidth - contentWidget()->verticalScrollBar()->width(); // width of right scrollbar - if( t > m_currentPosition + w * TimePos::ticksPerBar() / - pixelsPerBar() ) + + if (m_timeLine->autoScroll() == TimeLineWidget::AutoScrollState::Stepped) { - animateScroll( m_leftRightScroll, t.getBar(), m_smoothScroll ); + const auto nextPosition = m_currentPosition + w * TimePos::ticksPerBar() / pixelsPerBar(); + if (t > nextPosition || t < m_currentPosition) + { + animateScroll(m_leftRightScroll, t.getTicks(), m_smoothScroll); + } } - else if( t < m_currentPosition ) + else if (m_timeLine->autoScroll() == TimeLineWidget::AutoScrollState::Continuous) { - animateScroll( m_leftRightScroll, t.getBar(), m_smoothScroll ); + m_leftRightScroll->setValue(std::max(t.getTicks() - w * TimePos::ticksPerBar() / pixelsPerBar() / 2, 0.0f)); } m_scrollBack = false; } - const int x = m_song->getPlayPos(Song::PlayMode::Song).m_timeLine-> - markerX( t ) + 8; + const int x = m_timeLine->markerX(t); if( x >= trackOpWidth + widgetWidth -1 ) { m_positionLine->show(); @@ -857,7 +831,7 @@ void SongEditor::zoomingChanged() int ppb = calculatePixelsPerBar(); setPixelsPerBar(ppb); - m_song->getPlayPos(Song::PlayMode::Song).m_timeLine->setPixelsPerBar(ppb); + m_timeLine->setPixelsPerBar(ppb); realignTracks(); updateRubberband(); m_timeLine->setSnapSize(getSnapSize()); diff --git a/src/gui/editors/TimeLineWidget.cpp b/src/gui/editors/TimeLineWidget.cpp index 423485a2589..f75b1cabfac 100644 --- a/src/gui/editors/TimeLineWidget.cpp +++ b/src/gui/editors/TimeLineWidget.cpp @@ -27,11 +27,14 @@ #include #include +#include +#include #include #include #include #include +#include "ConfigManager.h" #include "embed.h" #include "GuiApplication.h" #include "NStateButton.h" @@ -45,58 +48,23 @@ namespace constexpr int MIN_BAR_LABEL_DISTANCE = 35; } - -QPixmap * TimeLineWidget::s_posMarkerPixmap = nullptr; - -TimeLineWidget::TimeLineWidget( const int xoff, const int yoff, const float ppb, - Song::PlayPos & pos, const TimePos & begin, Song::PlayMode mode, - QWidget * parent ) : - QWidget( parent ), - m_inactiveLoopColor( 52, 63, 53, 64 ), - m_inactiveLoopBrush( QColor( 255, 255, 255, 32 ) ), - m_inactiveLoopInnerColor( 255, 255, 255, 32 ), - m_activeLoopColor( 52, 63, 53, 255 ), - m_activeLoopBrush( QColor( 55, 141, 89 ) ), - m_activeLoopInnerColor( 74, 155, 100, 255 ), - m_loopRectangleVerticalPadding( 1 ), - m_barLineColor( 192, 192, 192 ), - m_barNumberColor( m_barLineColor.darker( 120 ) ), - m_autoScroll( AutoScrollState::Enabled ), - m_loopPoints( LoopPointState::Disabled ), - m_behaviourAtStop( BehaviourAtStopState::BackToZero ), - m_changedPosition( true ), - m_xOffset( xoff ), - m_posMarkerX( 0 ), - m_ppb( ppb ), - m_snapSize( 1.0 ), - m_pos( pos ), - m_begin( begin ), - m_mode( mode ), - m_savedPos( -1 ), - m_hint( nullptr ), - m_action( Action::NoAction ), - m_moveXOff( 0 ) +TimeLineWidget::TimeLineWidget(const int xoff, const int yoff, const float ppb, Song::PlayPos& pos, Timeline& timeline, + const TimePos& begin, Song::PlayMode mode, QWidget* parent) : + QWidget{parent}, + m_xOffset{xoff}, + m_ppb{ppb}, + m_pos{pos}, + m_timeline{&timeline}, + m_begin{begin}, + m_mode{mode} { - m_loopPos[0] = 0; - m_loopPos[1] = DefaultTicksPerBar; - - if( s_posMarkerPixmap == nullptr ) - { - s_posMarkerPixmap = new QPixmap( embed::getIconPixmap( - "playpos_marker" ) ); - } - setAttribute( Qt::WA_OpaquePaintEvent, true ); move( 0, yoff ); - m_xOffset -= s_posMarkerPixmap->width() / 2; - setMouseTracking(true); - m_pos.m_timeLine = this; auto updateTimer = new QTimer(this); - connect( updateTimer, SIGNAL(timeout()), - this, SLOT(updatePosition())); + connect(updateTimer, &QTimer::timeout, this, &TimeLineWidget::updatePosition); updateTimer->start( 1000 / 60 ); // 60 fps connect( Engine::getSong(), SIGNAL(timeSignatureChanged(int,int)), this, SLOT(update())); @@ -107,10 +75,6 @@ TimeLineWidget::TimeLineWidget( const int xoff, const int yoff, const float ppb, TimeLineWidget::~TimeLineWidget() { - if( getGUI()->songEditor() ) - { - m_pos.m_timeLine = nullptr; - } delete m_hint; } @@ -119,18 +83,15 @@ TimeLineWidget::~TimeLineWidget() void TimeLineWidget::setXOffset(const int x) { m_xOffset = x; - if (s_posMarkerPixmap != nullptr) { m_xOffset -= s_posMarkerPixmap->width() / 2; } } - - - void TimeLineWidget::addToolButtons( QToolBar * _tool_bar ) { auto autoScroll = new NStateButton(_tool_bar); - autoScroll->setGeneralToolTip( tr( "Auto scrolling" ) ); - autoScroll->addState( embed::getIconPixmap( "autoscroll_on" ) ); - autoScroll->addState( embed::getIconPixmap( "autoscroll_off" ) ); + autoScroll->setGeneralToolTip(tr("Auto scrolling")); + autoScroll->addState(embed::getIconPixmap("autoscroll_stepped_on"), tr("Stepped auto scrolling")); + autoScroll->addState(embed::getIconPixmap("autoscroll_continuous_on"), tr("Continuous auto scrolling")); + autoScroll->addState(embed::getIconPixmap("autoscroll_off"), tr("Auto scrolling disabled")); connect( autoScroll, SIGNAL(changedState(int)), this, SLOT(toggleAutoScroll(int))); @@ -138,10 +99,10 @@ void TimeLineWidget::addToolButtons( QToolBar * _tool_bar ) loopPoints->setGeneralToolTip( tr( "Loop points" ) ); loopPoints->addState( embed::getIconPixmap( "loop_points_off" ) ); loopPoints->addState( embed::getIconPixmap( "loop_points_on" ) ); - connect( loopPoints, SIGNAL(changedState(int)), this, - SLOT(toggleLoopPoints(int))); - connect( this, SIGNAL(loopPointStateLoaded(int)), loopPoints, - SLOT(changeState(int))); + connect(loopPoints, &NStateButton::changedState, m_timeline, &Timeline::setLoopEnabled); + connect(m_timeline, &Timeline::loopEnabledChanged, loopPoints, &NStateButton::changeState); + connect(m_timeline, &Timeline::loopEnabledChanged, this, static_cast(&QWidget::update)); + loopPoints->changeState(static_cast(m_timeline->loopEnabled())); auto behaviourAtStop = new NStateButton(_tool_bar); behaviourAtStop->addState( embed::getIconPixmap( "back_to_zero" ), @@ -153,90 +114,34 @@ void TimeLineWidget::addToolButtons( QToolBar * _tool_bar ) "started" ) ); behaviourAtStop->addState( embed::getIconPixmap( "keep_stop_position" ), tr( "After stopping keep position" ) ); - connect( behaviourAtStop, SIGNAL(changedState(int)), this, - SLOT(toggleBehaviourAtStop(int))); - connect( this, SIGNAL(loadBehaviourAtStop(int)), behaviourAtStop, - SLOT(changeState(int))); - behaviourAtStop->changeState( static_cast(BehaviourAtStopState::BackToStart) ); + connect(behaviourAtStop, &NStateButton::changedState, m_timeline, + [timeline = m_timeline](int value) { + timeline->setStopBehaviour(static_cast(value)); + } + ); + connect(m_timeline, &Timeline::stopBehaviourChanged, behaviourAtStop, + [button = behaviourAtStop](Timeline::StopBehaviour value) { + button->changeState(static_cast(value)); + } + ); + behaviourAtStop->changeState(static_cast(m_timeline->stopBehaviour())); _tool_bar->addWidget( autoScroll ); _tool_bar->addWidget( loopPoints ); _tool_bar->addWidget( behaviourAtStop ); } - - - -void TimeLineWidget::saveSettings( QDomDocument & _doc, QDomElement & _this ) +void TimeLineWidget::updatePosition() { - _this.setAttribute( "lp0pos", (int) loopBegin() ); - _this.setAttribute( "lp1pos", (int) loopEnd() ); - _this.setAttribute( "lpstate", static_cast(m_loopPoints) ); - _this.setAttribute( "stopbehaviour", static_cast(m_behaviourAtStop) ); -} - - - - -void TimeLineWidget::loadSettings( const QDomElement & _this ) -{ - m_loopPos[0] = _this.attribute( "lp0pos" ).toInt(); - m_loopPos[1] = _this.attribute( "lp1pos" ).toInt(); - m_loopPoints = static_cast( - _this.attribute( "lpstate" ).toInt() ); + emit positionChanged(m_pos); update(); - emit loopPointStateLoaded( static_cast(m_loopPoints) ); - - if( _this.hasAttribute( "stopbehaviour" ) ) - { - emit loadBehaviourAtStop( _this.attribute( "stopbehaviour" ).toInt() ); - } } - - - -void TimeLineWidget::updatePosition( const TimePos & ) -{ - const int new_x = markerX( m_pos ); - - if( new_x != m_posMarkerX ) - { - m_posMarkerX = new_x; - m_changedPosition = true; - emit positionChanged( m_pos ); - update(); - } -} - - - - void TimeLineWidget::toggleAutoScroll( int _n ) { m_autoScroll = static_cast( _n ); } - - - -void TimeLineWidget::toggleLoopPoints( int _n ) -{ - m_loopPoints = static_cast( _n ); - update(); -} - - - - -void TimeLineWidget::toggleBehaviourAtStop( int _n ) -{ - m_behaviourAtStop = static_cast( _n ); -} - - - - void TimeLineWidget::paintEvent( QPaintEvent * ) { QPainter p( this ); @@ -245,19 +150,18 @@ void TimeLineWidget::paintEvent( QPaintEvent * ) p.fillRect( 0, 0, width(), height(), p.background() ); // Clip so that we only draw everything starting from the offset - const int leftMargin = m_xOffset + s_posMarkerPixmap->width() / 2; - p.setClipRect(leftMargin, 0, width() - leftMargin, height() ); + p.setClipRect(m_xOffset, 0, width() - m_xOffset, height()); - // Draw the loop rectangle - int const & loopRectMargin = getLoopRectangleVerticalPadding(); + // Variables for the loop rectangle + int const loopRectMargin = getLoopRectangleVerticalPadding(); int const loopRectHeight = this->height() - 2 * loopRectMargin; - int const loopStart = markerX( loopBegin() ) + 8; - int const loopEndR = markerX( loopEnd() ) + 9; + int const loopStart = markerX(m_timeline->loopBegin()); + int const loopEndR = markerX(m_timeline->loopEnd()); int const loopRectWidth = loopEndR - loopStart; - bool const loopPointsActive = loopPointsEnabled(); + bool const loopPointsActive = m_timeline->loopEnabled(); - // Draw the main rectangle (inner fill only) + // Draw the main loop rectangle (inner fill only) QRect outerRectangle( loopStart, loopRectMargin, loopRectWidth - 1, loopRectHeight - 1 ); p.fillRect( outerRectangle, loopPointsActive ? getActiveLoopBrush() : getInactiveLoopBrush()); @@ -273,8 +177,7 @@ void TimeLineWidget::paintEvent( QPaintEvent * ) QColor const & barNumberColor = getBarNumberColor(); bar_t barNumber = m_begin.getBar(); - int const x = m_xOffset + s_posMarkerPixmap->width() / 2 - - ( ( static_cast( m_begin * m_ppb ) / TimePos::ticksPerBar() ) % static_cast( m_ppb ) ); + int const x = m_xOffset - ((static_cast(m_begin * m_ppb) / TimePos::ticksPerBar()) % static_cast(m_ppb)); // Double the interval between bar numbers until they are far enough appart int barLabelInterval = 1; @@ -295,137 +198,213 @@ void TimeLineWidget::paintEvent( QPaintEvent * ) } } - // Draw the main rectangle (outer border) + // Draw the loop rectangle's outer outline p.setPen( loopPointsActive ? getActiveLoopColor() : getInactiveLoopColor() ); p.setBrush( Qt::NoBrush ); p.drawRect( outerRectangle ); - // Draw the inner border outline (no fill) + // Draw the loop rectangle's inner outline QRect innerRectangle = outerRectangle.adjusted( 1, 1, -1, -1 ); p.setPen( loopPointsActive ? getActiveLoopInnerColor() : getInactiveLoopInnerColor() ); p.setBrush( Qt::NoBrush ); p.drawRect( innerRectangle ); + + // Draw loop handles if necessary + const auto handleMode = ConfigManager::inst()->value("app", "loopmarkermode") == "handles"; + if (handleMode && underMouse() && QGuiApplication::keyboardModifiers().testFlag(Qt::ShiftModifier)) + { + const auto handleWidth = std::min(m_loopHandleWidth, loopRectWidth / 2 - 1); + const auto leftHandle = QRectF(loopStart - .5, loopRectMargin - .5, handleWidth, loopRectHeight); + const auto rightHandle = QRectF(loopEndR - handleWidth - .5, loopRectMargin - .5, handleWidth, loopRectHeight); + const auto color = loopPointsActive ? m_activeLoopHandleColor : m_inactiveLoopHandleColor; + + p.fillRect(leftHandle, color); + p.fillRect(rightHandle, color); + } // Only draw the position marker if the position line is in view - if (m_posMarkerX >= m_xOffset && m_posMarkerX < width() - s_posMarkerPixmap->width() / 2) + if (markerX(m_pos) >= m_xOffset && markerX(m_pos) < width() - m_posMarkerPixmap.width() / 2) { // Let the position marker extrude to the left p.setClipping(false); p.setOpacity(0.6); - p.drawPixmap(m_posMarkerX, height() - s_posMarkerPixmap->height(), *s_posMarkerPixmap); + p.drawPixmap(markerX(m_pos) - (m_posMarkerPixmap.width() / 2), + height() - m_posMarkerPixmap.height(), m_posMarkerPixmap); } } +auto TimeLineWidget::getClickedTime(const int xPosition) const -> TimePos +{ + // How far into the timeline we clicked, measuring pixels from the leftmost part of the editor + const auto pixelDelta = std::max(xPosition - m_xOffset, 0); + return m_begin + static_cast(pixelDelta * TimePos::ticksPerBar() / m_ppb); +} +auto TimeLineWidget::getLoopAction(QMouseEvent* event) const -> TimeLineWidget::Action +{ + const auto mode = ConfigManager::inst()->value("app", "loopmarkermode"); + const auto xPos = event->x(); + const auto button = event->button(); + if (mode == "handles") + { + // Loop start and end pos, or closest edge of screen if loop extends off it + const auto leftMost = std::max(markerX(m_timeline->loopBegin()), m_xOffset); + const auto rightMost = std::min(markerX(m_timeline->loopEnd()), width()); + // Distance from click to handle, positive aimed towards center of loop + const auto deltaLeft = xPos - leftMost; + const auto deltaRight = rightMost - xPos; + + if (deltaLeft < 0 || deltaRight < 0) { return Action::NoAction; } // Clicked outside loop + else if (deltaLeft <= m_loopHandleWidth && deltaLeft < deltaRight) { return Action::MoveLoopBegin; } + else if (deltaRight <= m_loopHandleWidth) { return Action::MoveLoopEnd; } + else { return Action::MoveLoop; } + } + else if (mode == "closest") + { + const TimePos loopMid = (m_timeline->loopBegin() + m_timeline->loopEnd()) / 2; + return getClickedTime(xPos) < loopMid ? Action::MoveLoopBegin : Action::MoveLoopEnd; + } + else // Default to dual-button mode + { + if (button == Qt::LeftButton) { return Action::MoveLoopBegin; } + else if (button == Qt::RightButton) { return Action::MoveLoopEnd; } + return Action::NoAction; + } +} -void TimeLineWidget::mousePressEvent( QMouseEvent* event ) +auto TimeLineWidget::actionCursor(Action action) const -> QCursor { - if( event->x() < m_xOffset ) - { - return; + switch (action) { + case Action::MoveLoop: return Qt::SizeHorCursor; + case Action::MoveLoopBegin: return m_cursorSelectLeft; + case Action::MoveLoopEnd: return m_cursorSelectRight; + // Fall back to normal cursor if no action or action cursor not specified + default: return Qt::ArrowCursor; } - if( event->button() == Qt::LeftButton && !(event->modifiers() & Qt::ShiftModifier) ) +} + +void TimeLineWidget::mousePressEvent(QMouseEvent* event) +{ + if (event->x() < m_xOffset) { return; } + + const auto shift = event->modifiers() & Qt::ShiftModifier; + const auto ctrl = event->modifiers() & Qt::ControlModifier; + + if (shift) // loop marker manipulation { - m_action = Action::MovePositionMarker; - if( event->x() - m_xOffset < s_posMarkerPixmap->width() ) - { - m_moveXOff = event->x() - m_xOffset; - } - else + m_action = getLoopAction(event); + setCursor(actionCursor(m_action)); + + if (m_action == Action::MoveLoop) { - m_moveXOff = s_posMarkerPixmap->width() / 2; + m_dragStartPos = getClickedTime(event->x()); + m_oldLoopPos = {m_timeline->loopBegin(), m_timeline->loopEnd()}; } } - else if( event->button() == Qt::LeftButton && (event->modifiers() & Qt::ShiftModifier) ) + else if (event->button() == Qt::LeftButton && ctrl) // selection { m_action = Action::SelectSongClip; m_initalXSelect = event->x(); } - else if( event->button() == Qt::RightButton ) + else if (event->button() == Qt::LeftButton && !ctrl) // move playhead { - m_moveXOff = s_posMarkerPixmap->width() / 2; - const TimePos t = m_begin + static_cast( qMax( event->x() - m_xOffset - m_moveXOff, 0 ) * TimePos::ticksPerBar() / m_ppb ); - const TimePos loopMid = ( m_loopPos[0] + m_loopPos[1] ) / 2; - - m_action = t < loopMid ? Action::MoveLoopBegin : Action::MoveLoopEnd; - std::sort(std::begin(m_loopPos), std::end(m_loopPos)); - m_loopPos[( m_action == Action::MoveLoopBegin ) ? 0 : 1] = t; + m_action = Action::MovePositionMarker; } - if( m_action == Action::MoveLoopBegin || m_action == Action::MoveLoopEnd ) + if (m_action == Action::MoveLoopBegin || m_action == Action::MoveLoopEnd) { delete m_hint; - m_hint = TextFloat::displayMessage( tr( "Hint" ), - tr( "Press <%1> to disable magnetic loop points." ).arg(UI_CTRL_KEY), - embed::getIconPixmap( "hint" ), 0 ); + m_hint = TextFloat::displayMessage(tr("Hint"), + tr("Press <%1> to disable magnetic loop points.").arg(UI_CTRL_KEY), + embed::getIconPixmap("hint"), 0); } - mouseMoveEvent( event ); -} - + setContextMenuPolicy(m_action == Action::NoAction ? Qt::DefaultContextMenu : Qt::PreventContextMenu); + mouseMoveEvent(event); +} void TimeLineWidget::mouseMoveEvent( QMouseEvent* event ) { parentWidget()->update(); // essential for widgets that this timeline had taken their mouse move event from. - const TimePos t = m_begin + static_cast( qMax( event->x() - m_xOffset - m_moveXOff, 0 ) * TimePos::ticksPerBar() / m_ppb ); + + auto timeAtCursor = getClickedTime(event->x()); + const auto control = event->modifiers() & Qt::ControlModifier; switch( m_action ) { case Action::MovePositionMarker: - m_pos.setTicks(t.getTicks()); - Engine::getSong()->setToTime(t, m_mode); + m_pos.setTicks(timeAtCursor.getTicks()); + Engine::getSong()->setToTime(timeAtCursor, m_mode); if (!( Engine::getSong()->isPlaying())) { //Song::PlayMode::None is used when nothing is being played. - Engine::getSong()->setToTime(t, Song::PlayMode::None); + Engine::getSong()->setToTime(timeAtCursor, Song::PlayMode::None); } m_pos.setCurrentFrame( 0 ); m_pos.setJumped( true ); updatePosition(); - positionMarkerMoved(); break; case Action::MoveLoopBegin: case Action::MoveLoopEnd: { - const int i = m_action == Action::MoveLoopBegin ? 0 : 1; - const bool control = event->modifiers() & Qt::ControlModifier; + const auto otherPoint = m_action == Action::MoveLoopBegin + ? m_timeline->loopEnd() + : m_timeline->loopBegin(); if (control) { // no ctrl-press-hint when having ctrl pressed delete m_hint; m_hint = nullptr; - m_loopPos[i] = t; } else { - m_loopPos[i] = t.quantize(m_snapSize); + timeAtCursor = timeAtCursor.quantize(m_snapSize); } // Catch begin == end - if (m_loopPos[0] == m_loopPos[1]) + if (timeAtCursor == otherPoint) { const int offset = control ? 1 : m_snapSize * TimePos::ticksPerBar(); - // Note, swap 1 and 0 below and the behavior "skips" the other - // marking instead of pushing it. - if (m_action == Action::MoveLoopBegin) { m_loopPos[0] -= offset; } - else { m_loopPos[1] += offset; } + if (m_action == Action::MoveLoopBegin) { timeAtCursor -= offset; } + else { timeAtCursor += offset; } } + // Update m_action so we still move the correct point even if it is + // dragged past the other. + m_action = timeAtCursor < otherPoint ? Action::MoveLoopBegin : Action::MoveLoopEnd; + m_timeline->setLoopPoints(timeAtCursor, otherPoint); update(); break; } - case Action::SelectSongClip: + case Action::MoveLoop: + { + const TimePos dragDelta = timeAtCursor - m_dragStartPos; + auto loopPos = m_oldLoopPos; + for (auto& point : loopPos) + { + point += dragDelta; + if (!control) { point = point.quantize(m_snapSize); } + } + m_timeline->setLoopPoints(loopPos[0], loopPos[1]); + break; + } + case Action::SelectSongClip: emit regionSelectedFromPixels( m_initalXSelect , event->x() ); - break; + break; default: break; } -} - - + if (event->buttons() == Qt::NoButton) + { + setCursor(QGuiApplication::keyboardModifiers().testFlag(Qt::ShiftModifier) + ? actionCursor(getLoopAction(event)) + : Qt::ArrowCursor + ); + } +} void TimeLineWidget::mouseReleaseEvent( QMouseEvent* event ) { @@ -435,5 +414,45 @@ void TimeLineWidget::mouseReleaseEvent( QMouseEvent* event ) m_action = Action::NoAction; } +void TimeLineWidget::contextMenuEvent(QContextMenuEvent* event) +{ + if (event->x() < m_xOffset) { return; } + + auto menu = QMenu{}; + + menu.addAction(tr("Set loop begin here"), [this, event] { + auto begin = getClickedTime(event->x()); + const auto end = m_timeline->loopEnd(); + if (!QGuiApplication::keyboardModifiers().testFlag(Qt::ControlModifier)) { begin = begin.quantize(m_snapSize); } + if (begin == end) { m_timeline->setLoopEnd(end + m_snapSize * TimePos::ticksPerBar()); } + m_timeline->setLoopBegin(begin); + update(); + }); + menu.addAction(tr("Set loop end here"), [this, event] { + const auto begin = m_timeline->loopBegin(); + auto end = getClickedTime(event->x()); + if (!QGuiApplication::keyboardModifiers().testFlag(Qt::ControlModifier)) { end = end.quantize(m_snapSize); } + if (begin == end) { m_timeline->setLoopBegin(begin - m_snapSize * TimePos::ticksPerBar()); } + m_timeline->setLoopEnd(end); + update(); + }); + + menu.addSeparator(); + + const auto loopMenu = menu.addMenu(tr("Loop edit mode (hold shift)")); + const auto loopMode = ConfigManager::inst()->value("app", "loopmarkermode", "dual"); + const auto addLoopModeAction = [loopMenu, &loopMode](QString text, QString mode) { + const auto action = loopMenu->addAction(text, [mode] { + ConfigManager::inst()->setValue("app", "loopmarkermode", mode); + }); + action->setCheckable(true); + if (loopMode == mode) { action->setChecked(true); } + }; + addLoopModeAction(tr("Dual-button"), "dual"); + addLoopModeAction(tr("Grab closest"), "closest"); + addLoopModeAction(tr("Handles"), "handles"); + + menu.exec(event->globalPos()); +} } // namespace lmms::gui diff --git a/src/gui/editors/TrackContainerView.cpp b/src/gui/editors/TrackContainerView.cpp index 60a46838041..e85f4e86666 100644 --- a/src/gui/editors/TrackContainerView.cpp +++ b/src/gui/editors/TrackContainerView.cpp @@ -89,11 +89,15 @@ TrackContainerView::TrackContainerView( TrackContainer * _tc ) : m_tc->setHook( this ); //keeps the direction of the widget, undepended on the locale setLayoutDirection( Qt::LeftToRight ); + + // The main layout - by default it only contains the scroll area, + // but SongEditor uses the layout to add a TimeLineWidget on top auto layout = new QVBoxLayout(this); layout->setContentsMargins(0, 0, 0, 0); layout->setSpacing( 0 ); layout->addWidget( m_scrollArea ); + // The widget that will contain all TrackViews auto scrollContent = new QWidget; m_scrollLayout = new QVBoxLayout( scrollContent ); m_scrollLayout->setContentsMargins(0, 0, 0, 0); @@ -101,6 +105,7 @@ TrackContainerView::TrackContainerView( TrackContainer * _tc ) : m_scrollLayout->setSizeConstraint( QLayout::SetMinAndMaxSize ); m_scrollArea->setWidget( scrollContent ); + m_scrollArea->setWidgetResizable(true); m_scrollArea->show(); m_rubberBand->hide(); @@ -254,10 +259,6 @@ void TrackContainerView::scrollToTrackView( TrackView * _tv ) void TrackContainerView::realignTracks() { - m_scrollArea->widget()->setFixedWidth(width()); - m_scrollArea->widget()->setFixedHeight( - m_scrollArea->widget()->minimumSizeHint().height()); - for (const auto& trackView : m_trackViews) { trackView->show(); @@ -416,8 +417,8 @@ void TrackContainerView::dropEvent( QDropEvent * _de ) { DataFile dataFile( value ); auto it = dynamic_cast(Track::create(Track::Type::Instrument, m_tc)); - it->setSimpleSerializing(); - it->loadSettings( dataFile.content().toElement() ); + it->loadPreset(dataFile.content().toElement()); + //it->toggledInstrumentTrackButton( true ); _de->accept(); } @@ -447,15 +448,6 @@ void TrackContainerView::dropEvent( QDropEvent * _de ) -void TrackContainerView::resizeEvent( QResizeEvent * _re ) -{ - realignTracks(); - QWidget::resizeEvent( _re ); -} - - - - RubberBand *TrackContainerView::rubberBand() const { return m_rubberBand; diff --git a/src/gui/embed.cpp b/src/gui/embed.cpp index d934adcde64..e912fd6d4cd 100644 --- a/src/gui/embed.cpp +++ b/src/gui/embed.cpp @@ -22,68 +22,62 @@ * */ +#include "embed.h" + #include +#include #include #include #include -#include "embed.h" -namespace lmms::embed -{ +namespace lmms::embed { -QPixmap getIconPixmap(const QString& pixmapName, - int width, int height, const char** xpm ) +namespace { + +auto loadPixmap(const QString& name, int width, int height, const char* const* xpm) -> QPixmap { - QString cacheName; - if (width > 0 && height > 0) - { - cacheName = QString("%1_%2_%3").arg(pixmapName, width, height); - } - else - { - cacheName = pixmapName; - } + if (xpm) { return QPixmap{xpm}; } - // Return cached pixmap - QPixmap pixmap; - if( QPixmapCache::find(cacheName, &pixmap) ) - { - return pixmap; - } + const auto resourceName = QDir::isAbsolutePath(name) ? name : "artwork:" + name; + auto reader = QImageReader{resourceName}; + if (width > 0 && height > 0) { reader.setScaledSize(QSize{width, height}); } - if(xpm) - { - pixmap = QPixmap(xpm); + const auto pixmap = QPixmap::fromImageReader(&reader); + if (pixmap.isNull()) { + qWarning().nospace() << "Error loading icon pixmap " << name << ": " << reader.errorString(); + return QPixmap{1, 1}; } - else - { - QImageReader reader(QString("artwork:%1").arg(pixmapName)); + return pixmap; +} - if (width > 0 && height > 0) - { - reader.setScaledSize(QSize(width, height)); - } +} // namespace - pixmap = QPixmap::fromImageReader(&reader); +auto getIconPixmap(std::string_view name, int width, int height, const char* const* xpm) -> QPixmap +{ + if (name.empty()) { return QPixmap{}; } - if (pixmap.isNull()) - { - qWarning().nospace() << "Error loading icon pixmap " << pixmapName << ": " << - reader.errorString().toLocal8Bit().data(); - return QPixmap(1,1); - } - } + const auto pixmapName = QString::fromUtf8(name.data(), name.size()); + const auto cacheName = (width > 0 && height > 0) + ? QStringLiteral("%1_%2_%3").arg(pixmapName, width, height) + : pixmapName; - // Save to cache and return + // Return cached pixmap if it exists + if (auto pixmap = QPixmap{}; QPixmapCache::find(cacheName, &pixmap)) { return pixmap; } + + // Load the pixmap and cache it before returning + const auto pixmap = loadPixmap(pixmapName, width, height, xpm); QPixmapCache::insert(cacheName, pixmap); return pixmap; } - -QString getText( const char * name ) +auto getText(std::string_view name) -> QString { - return QString::fromUtf8( (const char*) QResource(QString(":/%1").arg(name)).data()); + const auto resource = QResource{":/" + QString::fromUtf8(name.data(), name.size())}; +#if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0) + return QString::fromUtf8(resource.uncompressedData()); +#else + return QString::fromUtf8(reinterpret_cast(resource.data()), resource.size()); +#endif } - } // namespace lmms::embed diff --git a/src/gui/instrument/EnvelopeAndLfoView.cpp b/src/gui/instrument/EnvelopeAndLfoView.cpp index edb6c99c797..95926450680 100644 --- a/src/gui/instrument/EnvelopeAndLfoView.cpp +++ b/src/gui/instrument/EnvelopeAndLfoView.cpp @@ -23,19 +23,19 @@ * */ -#include -#include - #include "EnvelopeAndLfoView.h" + +#include + +#include + +#include "EnvelopeGraph.h" +#include "LfoGraph.h" #include "EnvelopeAndLfoParameters.h" -#include "embed.h" -#include "Engine.h" -#include "gui_templates.h" +#include "SampleLoader.h" #include "Knob.h" #include "LedCheckBox.h" -#include "AudioEngine.h" #include "DataFile.h" -#include "Oscillator.h" #include "PixmapButton.h" #include "StringPairDrag.h" #include "TempoSyncKnob.h" @@ -45,196 +45,148 @@ namespace lmms { -extern const float SECS_PER_ENV_SEGMENT; -extern const float SECS_PER_LFO_OSCILLATION; - - namespace gui { - -const int ENV_GRAPH_X = 6; -const int ENV_GRAPH_Y = 6; - -const int ENV_KNOBS_Y = 43; -const int ENV_KNOBS_LBL_Y = ENV_KNOBS_Y+35; -const int KNOB_X_SPACING = 32; -const int PREDELAY_KNOB_X = 6; -const int ATTACK_KNOB_X = PREDELAY_KNOB_X+KNOB_X_SPACING; -const int HOLD_KNOB_X = ATTACK_KNOB_X+KNOB_X_SPACING; -const int DECAY_KNOB_X = HOLD_KNOB_X+KNOB_X_SPACING; -const int SUSTAIN_KNOB_X = DECAY_KNOB_X+KNOB_X_SPACING; -const int RELEASE_KNOB_X = SUSTAIN_KNOB_X+KNOB_X_SPACING; -const int AMOUNT_KNOB_X = RELEASE_KNOB_X+KNOB_X_SPACING; - -const int TIME_UNIT_WIDTH = 40; - -const int LFO_GRAPH_X = 6; -const int LFO_GRAPH_Y = ENV_KNOBS_LBL_Y+14; -const int LFO_KNOB_Y = LFO_GRAPH_Y-2; -const int LFO_PREDELAY_KNOB_X = LFO_GRAPH_X + 100; -const int LFO_ATTACK_KNOB_X = LFO_PREDELAY_KNOB_X+KNOB_X_SPACING; -const int LFO_SPEED_KNOB_X = LFO_ATTACK_KNOB_X+KNOB_X_SPACING; -const int LFO_AMOUNT_KNOB_X = LFO_SPEED_KNOB_X+KNOB_X_SPACING; -const int LFO_SHAPES_X = LFO_GRAPH_X;//PREDELAY_KNOB_X; -const int LFO_SHAPES_Y = LFO_GRAPH_Y + 50; - - -QPixmap * EnvelopeAndLfoView::s_envGraph = nullptr; -QPixmap * EnvelopeAndLfoView::s_lfoGraph = nullptr; - - - -EnvelopeAndLfoView::EnvelopeAndLfoView( QWidget * _parent ) : - QWidget( _parent ), - ModelView( nullptr, this ), - m_params( nullptr ) +EnvelopeAndLfoView::EnvelopeAndLfoView(QWidget * parent) : + QWidget(parent), + ModelView(nullptr, this), + m_params(nullptr) { - if( s_envGraph == nullptr ) + // Helper lambdas for consistent repeated buiding of certain widgets + auto buildKnob = [&](const QString& label, const QString& hintText) { - s_envGraph = new QPixmap( embed::getIconPixmap( "envelope_graph" ) ); - } - if( s_lfoGraph == nullptr ) + auto knob = new Knob(KnobType::Bright26, this); + knob->setLabel(label); + knob->setHintText(hintText, ""); + + return knob; + }; + + auto buildPixmapButton = [&](std::string_view activePixmap, std::string_view inactivePixmap) { - s_lfoGraph = new QPixmap( embed::getIconPixmap( "lfo_graph" ) ); - } + auto button = new PixmapButton(this, nullptr); + button->setActiveGraphic(embed::getIconPixmap(activePixmap)); + button->setInactiveGraphic(embed::getIconPixmap(inactivePixmap)); - m_predelayKnob = new Knob( KnobType::Bright26, this ); - m_predelayKnob->setLabel( tr( "DEL" ) ); - m_predelayKnob->move( PREDELAY_KNOB_X, ENV_KNOBS_Y ); - m_predelayKnob->setHintText( tr( "Pre-delay:" ), "" ); + return button; + }; + QVBoxLayout* mainLayout = new QVBoxLayout(this); + mainLayout->setContentsMargins(5, 5, 5, 5); - m_attackKnob = new Knob( KnobType::Bright26, this ); - m_attackKnob->setLabel( tr( "ATT" ) ); - m_attackKnob->move( ATTACK_KNOB_X, ENV_KNOBS_Y ); - m_attackKnob->setHintText( tr( "Attack:" ), "" ); + // Envelope + QVBoxLayout* envelopeLayout = new QVBoxLayout(); + mainLayout->addLayout(envelopeLayout); - m_holdKnob = new Knob( KnobType::Bright26, this ); - m_holdKnob->setLabel( tr( "HOLD" ) ); - m_holdKnob->move( HOLD_KNOB_X, ENV_KNOBS_Y ); - m_holdKnob->setHintText( tr( "Hold:" ), "" ); + QHBoxLayout* graphAndAmountLayout = new QHBoxLayout(); + envelopeLayout->addLayout(graphAndAmountLayout); + m_envelopeGraph = new EnvelopeGraph(this); + graphAndAmountLayout->addWidget(m_envelopeGraph); - m_decayKnob = new Knob( KnobType::Bright26, this ); - m_decayKnob->setLabel( tr( "DEC" ) ); - m_decayKnob->move( DECAY_KNOB_X, ENV_KNOBS_Y ); - m_decayKnob->setHintText( tr( "Decay:" ), "" ); + m_amountKnob = buildKnob(tr("AMT"), tr("Modulation amount:")); + graphAndAmountLayout->addWidget(m_amountKnob, 0, Qt::AlignCenter); + QHBoxLayout* envKnobsLayout = new QHBoxLayout(); + envelopeLayout->addLayout(envKnobsLayout); - m_sustainKnob = new Knob( KnobType::Bright26, this ); - m_sustainKnob->setLabel( tr( "SUST" ) ); - m_sustainKnob->move( SUSTAIN_KNOB_X, ENV_KNOBS_Y ); - m_sustainKnob->setHintText( tr( "Sustain:" ), "" ); + m_predelayKnob = buildKnob(tr("DEL"), tr("Pre-delay:")); + envKnobsLayout->addWidget(m_predelayKnob); + m_attackKnob = buildKnob(tr("ATT"), tr("Attack:")); + envKnobsLayout->addWidget(m_attackKnob); - m_releaseKnob = new Knob( KnobType::Bright26, this ); - m_releaseKnob->setLabel( tr( "REL" ) ); - m_releaseKnob->move( RELEASE_KNOB_X, ENV_KNOBS_Y ); - m_releaseKnob->setHintText( tr( "Release:" ), "" ); + m_holdKnob = buildKnob(tr("HOLD"), tr("Hold:")); + envKnobsLayout->addWidget(m_holdKnob); + m_decayKnob = buildKnob(tr("DEC"), tr("Decay:")); + envKnobsLayout->addWidget(m_decayKnob); - m_amountKnob = new Knob( KnobType::Bright26, this ); - m_amountKnob->setLabel( tr( "AMT" ) ); - m_amountKnob->move( AMOUNT_KNOB_X, ENV_GRAPH_Y ); - m_amountKnob->setHintText( tr( "Modulation amount:" ), "" ); + m_sustainKnob = buildKnob(tr("SUST"), tr("Sustain:")); + envKnobsLayout->addWidget(m_sustainKnob); + m_releaseKnob = buildKnob(tr("REL"), tr("Release:")); + envKnobsLayout->addWidget(m_releaseKnob); + // Add some space between the envelope and LFO section + mainLayout->addSpacing(10); - m_lfoPredelayKnob = new Knob( KnobType::Bright26, this ); - m_lfoPredelayKnob->setLabel( tr( "DEL" ) ); - m_lfoPredelayKnob->move( LFO_PREDELAY_KNOB_X, LFO_KNOB_Y ); - m_lfoPredelayKnob->setHintText( tr( "Pre-delay:" ), "" ); + // LFO - m_lfoAttackKnob = new Knob( KnobType::Bright26, this ); - m_lfoAttackKnob->setLabel( tr( "ATT" ) ); - m_lfoAttackKnob->move( LFO_ATTACK_KNOB_X, LFO_KNOB_Y ); - m_lfoAttackKnob->setHintText( tr( "Attack:" ), "" ); + QHBoxLayout* lfoLayout = new QHBoxLayout(); + mainLayout->addLayout(lfoLayout); + QVBoxLayout* graphAndTypesLayout = new QVBoxLayout(); + lfoLayout->addLayout(graphAndTypesLayout); - m_lfoSpeedKnob = new TempoSyncKnob( KnobType::Bright26, this ); - m_lfoSpeedKnob->setLabel( tr( "SPD" ) ); - m_lfoSpeedKnob->move( LFO_SPEED_KNOB_X, LFO_KNOB_Y ); - m_lfoSpeedKnob->setHintText( tr( "Frequency:" ), "" ); + m_lfoGraph = new LfoGraph(this); + graphAndTypesLayout->addWidget(m_lfoGraph); + QHBoxLayout* typesLayout = new QHBoxLayout(); + graphAndTypesLayout->addLayout(typesLayout); + typesLayout->setContentsMargins(0, 0, 0, 0); + typesLayout->setSpacing(0); - m_lfoAmountKnob = new Knob( KnobType::Bright26, this ); - m_lfoAmountKnob->setLabel( tr( "AMT" ) ); - m_lfoAmountKnob->move( LFO_AMOUNT_KNOB_X, LFO_KNOB_Y ); - m_lfoAmountKnob->setHintText( tr( "Modulation amount:" ), "" ); + auto sin_lfo_btn = buildPixmapButton("sin_wave_active", "sin_wave_inactive"); + auto triangle_lfo_btn = buildPixmapButton("triangle_wave_active", "triangle_wave_inactive"); + auto saw_lfo_btn = buildPixmapButton("saw_wave_active", "saw_wave_inactive"); + auto sqr_lfo_btn = buildPixmapButton("square_wave_active","square_wave_inactive"); + auto random_lfo_btn = buildPixmapButton("random_wave_active", "random_wave_inactive"); + m_userLfoBtn = buildPixmapButton("usr_wave_active", "usr_wave_inactive"); - auto sin_lfo_btn = new PixmapButton(this, nullptr); - sin_lfo_btn->move( LFO_SHAPES_X, LFO_SHAPES_Y ); - sin_lfo_btn->setActiveGraphic( embed::getIconPixmap( - "sin_wave_active" ) ); - sin_lfo_btn->setInactiveGraphic( embed::getIconPixmap( - "sin_wave_inactive" ) ); + connect(m_userLfoBtn, SIGNAL(toggled(bool)), this, SLOT(lfoUserWaveChanged())); - auto triangle_lfo_btn = new PixmapButton(this, nullptr); - triangle_lfo_btn->move( LFO_SHAPES_X+15, LFO_SHAPES_Y ); - triangle_lfo_btn->setActiveGraphic( embed::getIconPixmap( - "triangle_wave_active" ) ); - triangle_lfo_btn->setInactiveGraphic( embed::getIconPixmap( - "triangle_wave_inactive" ) ); + typesLayout->addWidget(sin_lfo_btn); + typesLayout->addWidget(triangle_lfo_btn); + typesLayout->addWidget(saw_lfo_btn); + typesLayout->addWidget(sqr_lfo_btn); + typesLayout->addWidget(random_lfo_btn); + typesLayout->addWidget(m_userLfoBtn); - auto saw_lfo_btn = new PixmapButton(this, nullptr); - saw_lfo_btn->move( LFO_SHAPES_X+30, LFO_SHAPES_Y ); - saw_lfo_btn->setActiveGraphic( embed::getIconPixmap( - "saw_wave_active" ) ); - saw_lfo_btn->setInactiveGraphic( embed::getIconPixmap( - "saw_wave_inactive" ) ); + m_lfoWaveBtnGrp = new automatableButtonGroup(this); + m_lfoWaveBtnGrp->addButton(sin_lfo_btn); + m_lfoWaveBtnGrp->addButton(triangle_lfo_btn); + m_lfoWaveBtnGrp->addButton(saw_lfo_btn); + m_lfoWaveBtnGrp->addButton(sqr_lfo_btn); + m_lfoWaveBtnGrp->addButton(m_userLfoBtn); + m_lfoWaveBtnGrp->addButton(random_lfo_btn); - auto sqr_lfo_btn = new PixmapButton(this, nullptr); - sqr_lfo_btn->move( LFO_SHAPES_X+45, LFO_SHAPES_Y ); - sqr_lfo_btn->setActiveGraphic( embed::getIconPixmap( - "square_wave_active" ) ); - sqr_lfo_btn->setInactiveGraphic( embed::getIconPixmap( - "square_wave_inactive" ) ); + QVBoxLayout* knobsAndCheckBoxesLayout = new QVBoxLayout(); + lfoLayout->addLayout(knobsAndCheckBoxesLayout); - m_userLfoBtn = new PixmapButton( this, nullptr ); - m_userLfoBtn->move( LFO_SHAPES_X+75, LFO_SHAPES_Y ); - m_userLfoBtn->setActiveGraphic( embed::getIconPixmap( - "usr_wave_active" ) ); - m_userLfoBtn->setInactiveGraphic( embed::getIconPixmap( - "usr_wave_inactive" ) ); + QHBoxLayout* lfoKnobsLayout = new QHBoxLayout(); + knobsAndCheckBoxesLayout->addLayout(lfoKnobsLayout); - connect( m_userLfoBtn, SIGNAL(toggled(bool)), - this, SLOT(lfoUserWaveChanged())); + m_lfoPredelayKnob = buildKnob(tr("DEL"), tr("Pre-delay:")); + lfoKnobsLayout->addWidget(m_lfoPredelayKnob); - auto random_lfo_btn = new PixmapButton(this, nullptr); - random_lfo_btn->move( LFO_SHAPES_X+60, LFO_SHAPES_Y ); - random_lfo_btn->setActiveGraphic( embed::getIconPixmap( - "random_wave_active" ) ); - random_lfo_btn->setInactiveGraphic( embed::getIconPixmap( - "random_wave_inactive" ) ); + m_lfoAttackKnob = buildKnob(tr("ATT"), tr("Attack:")); + lfoKnobsLayout->addWidget(m_lfoAttackKnob); - m_lfoWaveBtnGrp = new automatableButtonGroup( this ); - m_lfoWaveBtnGrp->addButton( sin_lfo_btn ); - m_lfoWaveBtnGrp->addButton( triangle_lfo_btn ); - m_lfoWaveBtnGrp->addButton( saw_lfo_btn ); - m_lfoWaveBtnGrp->addButton( sqr_lfo_btn ); - m_lfoWaveBtnGrp->addButton( m_userLfoBtn ); - m_lfoWaveBtnGrp->addButton( random_lfo_btn ); - - m_x100Cb = new LedCheckBox( tr( "FREQ x 100" ), this ); - m_x100Cb->setFont( pointSizeF( m_x100Cb->font(), 6.5 ) ); - m_x100Cb->move( LFO_PREDELAY_KNOB_X, LFO_GRAPH_Y + 36 ); - m_x100Cb->setToolTip(tr("Multiply LFO frequency by 100")); + m_lfoSpeedKnob = new TempoSyncKnob(KnobType::Bright26, this); + m_lfoSpeedKnob->setLabel(tr("SPD")); + m_lfoSpeedKnob->setHintText(tr("Frequency:"), ""); + lfoKnobsLayout->addWidget(m_lfoSpeedKnob); + m_lfoAmountKnob = buildKnob(tr("AMT"), tr("Modulation amount:")); + lfoKnobsLayout->addWidget(m_lfoAmountKnob); - m_controlEnvAmountCb = new LedCheckBox( tr( "MODULATE ENV AMOUNT" ), - this ); - m_controlEnvAmountCb->move( LFO_PREDELAY_KNOB_X, LFO_GRAPH_Y + 54 ); - m_controlEnvAmountCb->setFont( pointSizeF( m_controlEnvAmountCb->font(), 6.5 ) ); - m_controlEnvAmountCb->setToolTip( - tr( "Control envelope amount by this LFO" ) ); + QVBoxLayout* checkBoxesLayout = new QVBoxLayout(); + knobsAndCheckBoxesLayout->addLayout(checkBoxesLayout); + m_x100Cb = new LedCheckBox(tr("FREQ x 100"), this); + m_x100Cb->setToolTip(tr("Multiply LFO frequency by 100")); + checkBoxesLayout->addWidget(m_x100Cb); - setAcceptDrops( true ); + m_controlEnvAmountCb = new LedCheckBox(tr("MOD ENV AMOUNT"), this); + m_controlEnvAmountCb->setToolTip(tr("Control envelope amount by this LFO")); + checkBoxesLayout->addWidget(m_controlEnvAmountCb); + setAcceptDrops(true); } @@ -251,6 +203,7 @@ EnvelopeAndLfoView::~EnvelopeAndLfoView() void EnvelopeAndLfoView::modelChanged() { m_params = castModel(); + m_envelopeGraph->setModel(m_params); m_predelayKnob->setModel( &m_params->m_predelayModel ); m_attackKnob->setModel( &m_params->m_attackModel ); m_holdKnob->setModel( &m_params->m_holdModel ); @@ -258,6 +211,8 @@ void EnvelopeAndLfoView::modelChanged() m_sustainKnob->setModel( &m_params->m_sustainModel ); m_releaseKnob->setModel( &m_params->m_releaseModel ); m_amountKnob->setModel( &m_params->m_amountModel ); + + m_lfoGraph->setModel(m_params); m_lfoPredelayKnob->setModel( &m_params->m_lfoPredelayModel ); m_lfoAttackKnob->setModel( &m_params->m_lfoAttackModel ); m_lfoSpeedKnob->setModel( &m_params->m_lfoSpeedModel ); @@ -270,42 +225,6 @@ void EnvelopeAndLfoView::modelChanged() -void EnvelopeAndLfoView::mousePressEvent( QMouseEvent * _me ) -{ - if( _me->button() != Qt::LeftButton ) - { - return; - } - - if( QRect( ENV_GRAPH_X, ENV_GRAPH_Y, s_envGraph->width(), - s_envGraph->height() ).contains( _me->pos() ) == true ) - { - if( m_params->m_amountModel.value() < 1.0f ) - { - m_params->m_amountModel.setValue( 1.0f ); - } - else - { - m_params->m_amountModel.setValue( 0.0f ); - } - } - else if( QRect( LFO_GRAPH_X, LFO_GRAPH_Y, s_lfoGraph->width(), - s_lfoGraph->height() ).contains( _me->pos() ) == true ) - { - if( m_params->m_lfoAmountModel.value() < 1.0f ) - { - m_params->m_lfoAmountModel.setValue( 1.0f ); - } - else - { - m_params->m_lfoAmountModel.setValue( 0.0f ); - } - } -} - - - - void EnvelopeAndLfoView::dragEnterEvent( QDragEnterEvent * _dee ) { StringPairDrag::processDragEnterEvent( _dee, @@ -322,8 +241,7 @@ void EnvelopeAndLfoView::dropEvent( QDropEvent * _de ) QString value = StringPairDrag::decodeValue( _de ); if( type == "samplefile" ) { - m_params->m_userWave.setAudioFile( - StringPairDrag::decodeValue( _de ) ); + m_params->m_userWave = SampleLoader::createBufferFromFile(value); m_userLfoBtn->model()->setValue( true ); m_params->m_lfoWaveModel.setValue(static_cast(EnvelopeAndLfoParameters::LfoShape::UserDefinedWave)); _de->accept(); @@ -332,9 +250,10 @@ void EnvelopeAndLfoView::dropEvent( QDropEvent * _de ) else if( type == QString( "clip_%1" ).arg( static_cast(Track::Type::Sample) ) ) { DataFile dataFile( value.toUtf8() ); - m_params->m_userWave.setAudioFile( dataFile.content(). + auto file = dataFile.content(). firstChildElement().firstChildElement(). - firstChildElement().attribute( "src" ) ); + firstChildElement().attribute("src"); + m_params->m_userWave = SampleLoader::createBufferFromFile(file); m_userLfoBtn->model()->setValue( true ); m_params->m_lfoWaveModel.setValue(static_cast(EnvelopeAndLfoParameters::LfoShape::UserDefinedWave)); _de->accept(); @@ -345,182 +264,12 @@ void EnvelopeAndLfoView::dropEvent( QDropEvent * _de ) -void EnvelopeAndLfoView::paintEvent( QPaintEvent * ) -{ - QPainter p( this ); - p.setRenderHint( QPainter::Antialiasing ); - - // draw envelope-graph - p.drawPixmap( ENV_GRAPH_X, ENV_GRAPH_Y, *s_envGraph ); - // draw LFO-graph - p.drawPixmap( LFO_GRAPH_X, LFO_GRAPH_Y, *s_lfoGraph ); - - - p.setFont( pointSize<8>( p.font() ) ); - - const float gray_amount = 1.0f - fabsf( m_amountKnob->value() ); - - p.setPen( QPen( QColor( static_cast( 96 * gray_amount ), - static_cast( 255 - 159 * gray_amount ), - static_cast( 128 - 32 * gray_amount ) ), - 2 ) ); - - const QColor end_points_color( 0x99, 0xAF, 0xFF ); - const QColor end_points_bg_color( 0, 0, 2 ); - - const int y_base = ENV_GRAPH_Y + s_envGraph->height() - 3; - const int avail_height = s_envGraph->height() - 6; - - int x1 = static_cast( m_predelayKnob->value() * TIME_UNIT_WIDTH ); - int x2 = x1 + static_cast( m_attackKnob->value() * TIME_UNIT_WIDTH ); - int x3 = x2 + static_cast( m_holdKnob->value() * TIME_UNIT_WIDTH ); - int x4 = x3 + static_cast( ( m_decayKnob->value() * - ( 1 - m_sustainKnob->value() ) ) * TIME_UNIT_WIDTH ); - int x5 = x4 + static_cast( m_releaseKnob->value() * TIME_UNIT_WIDTH ); - - if( x5 > 174 ) - { - x1 = ( x1 * 174 ) / x5; - x2 = ( x2 * 174 ) / x5; - x3 = ( x3 * 174 ) / x5; - x4 = ( x4 * 174 ) / x5; - x5 = ( x5 * 174 ) / x5; - } - x1 += ENV_GRAPH_X + 2; - x2 += ENV_GRAPH_X + 2; - x3 += ENV_GRAPH_X + 2; - x4 += ENV_GRAPH_X + 2; - x5 += ENV_GRAPH_X + 2; - - p.drawLine( x1, y_base, x2, y_base - avail_height ); - p.fillRect( x1 - 1, y_base - 2, 4, 4, end_points_bg_color ); - p.fillRect( x1, y_base - 1, 2, 2, end_points_color ); - - p.drawLine( x2, y_base - avail_height, x3, y_base - avail_height ); - p.fillRect( x2 - 1, y_base - 2 - avail_height, 4, 4, - end_points_bg_color ); - p.fillRect( x2, y_base - 1 - avail_height, 2, 2, end_points_color ); - - p.drawLine( x3, y_base-avail_height, x4, static_cast( y_base - - avail_height + - ( 1 - m_sustainKnob->value() ) * avail_height ) ); - p.fillRect( x3 - 1, y_base - 2 - avail_height, 4, 4, - end_points_bg_color ); - p.fillRect( x3, y_base - 1 - avail_height, 2, 2, end_points_color ); - - p.drawLine( x4, static_cast( y_base - avail_height + - ( 1 - m_sustainKnob->value() ) * - avail_height ), x5, y_base ); - p.fillRect( x4 - 1, static_cast( y_base - avail_height + - ( 1 - m_sustainKnob->value() ) * - avail_height ) - 2, 4, 4, - end_points_bg_color ); - p.fillRect( x4, static_cast( y_base - avail_height + - ( 1 - m_sustainKnob->value() ) * - avail_height ) - 1, 2, 2, - end_points_color ); - p.fillRect( x5 - 1, y_base - 2, 4, 4, end_points_bg_color ); - p.fillRect( x5, y_base - 1, 2, 2, end_points_color ); - - - int LFO_GRAPH_W = s_lfoGraph->width() - 3; // subtract border - int LFO_GRAPH_H = s_lfoGraph->height() - 6; // subtract border - int graph_x_base = LFO_GRAPH_X + 2; - int graph_y_base = LFO_GRAPH_Y + 3 + LFO_GRAPH_H / 2; - - const float frames_for_graph = SECS_PER_LFO_OSCILLATION * - Engine::audioEngine()->baseSampleRate() / 10; - - const float lfo_gray_amount = 1.0f - fabsf( m_lfoAmountKnob->value() ); - p.setPen( QPen( QColor( static_cast( 96 * lfo_gray_amount ), - static_cast( 255 - 159 * lfo_gray_amount ), - static_cast( 128 - 32 * - lfo_gray_amount ) ), - 1.5 ) ); - - - float osc_frames = m_params->m_lfoOscillationFrames; - - if( m_params->m_x100Model.value() ) - { - osc_frames *= 100.0f; - } - - // userWaveSample() may be used, called out of loop for efficiency - m_params->m_userWave.dataReadLock(); - float old_y = 0; - for( int x = 0; x <= LFO_GRAPH_W; ++x ) - { - float val = 0.0; - float cur_sample = x * frames_for_graph / LFO_GRAPH_W; - if( static_cast( cur_sample ) > - m_params->m_lfoPredelayFrames ) - { - float phase = ( cur_sample -= - m_params->m_lfoPredelayFrames ) / - osc_frames; - switch( static_cast(m_params->m_lfoWaveModel.value()) ) - { - case EnvelopeAndLfoParameters::LfoShape::SineWave: - default: - val = Oscillator::sinSample( phase ); - break; - case EnvelopeAndLfoParameters::LfoShape::TriangleWave: - val = Oscillator::triangleSample( - phase ); - break; - case EnvelopeAndLfoParameters::LfoShape::SawWave: - val = Oscillator::sawSample( phase ); - break; - case EnvelopeAndLfoParameters::LfoShape::SquareWave: - val = Oscillator::squareSample( phase ); - break; - case EnvelopeAndLfoParameters::LfoShape::RandomWave: - if( x % (int)( 900 * m_lfoSpeedKnob->value() + 1 ) == 0 ) - { - m_randomGraph = Oscillator::noiseSample( 0.0f ); - } - val = m_randomGraph; - break; - case EnvelopeAndLfoParameters::LfoShape::UserDefinedWave: - val = m_params->m_userWave. - userWaveSample( phase ); - break; - } - if( static_cast( cur_sample ) <= - m_params->m_lfoAttackFrames ) - { - val *= cur_sample / m_params->m_lfoAttackFrames; - } - } - float cur_y = -LFO_GRAPH_H / 2.0f * val; - p.drawLine( QLineF( graph_x_base + x - 1, graph_y_base + old_y, - graph_x_base + x, - graph_y_base + cur_y ) ); - old_y = cur_y; - } - m_params->m_userWave.dataUnlock(); - - p.setPen( QColor( 201, 201, 225 ) ); - int ms_per_osc = static_cast( SECS_PER_LFO_OSCILLATION * - m_lfoSpeedKnob->value() * - 1000.0f ); - p.drawText( LFO_GRAPH_X + 4, LFO_GRAPH_Y + s_lfoGraph->height() - 6, - tr( "ms/LFO:" ) ); - p.drawText( LFO_GRAPH_X + 52, LFO_GRAPH_Y + s_lfoGraph->height() - 6, - QString::number( ms_per_osc ) ); - -} - - - - void EnvelopeAndLfoView::lfoUserWaveChanged() { if( static_cast(m_params->m_lfoWaveModel.value()) == EnvelopeAndLfoParameters::LfoShape::UserDefinedWave ) { - if( m_params->m_userWave.frames() <= 1 ) + if (m_params->m_userWave->size() <= 1) { TextFloat::displayMessage( tr( "Hint" ), tr( "Drag and drop a sample into this window." ), @@ -529,11 +278,6 @@ void EnvelopeAndLfoView::lfoUserWaveChanged() } } - - - - - } // namespace gui -} // namespace lmms \ No newline at end of file +} // namespace lmms diff --git a/src/gui/instrument/EnvelopeGraph.cpp b/src/gui/instrument/EnvelopeGraph.cpp new file mode 100644 index 00000000000..4cf5da74bfa --- /dev/null +++ b/src/gui/instrument/EnvelopeGraph.cpp @@ -0,0 +1,261 @@ +/* + * EnvelopeGraph.cpp - Displays envelope graphs + * + * Copyright (c) 2004-2014 Tobias Doerffel + * Copyright (c) 2024- Michael Gregorius + * + * This file is part of LMMS - https://lmms.io + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#include "EnvelopeGraph.h" + +#include +#include +#include + +#include "EnvelopeAndLfoParameters.h" +#include "lmms_math.h" +#include "ColorHelper.h" + +#include + + +namespace lmms +{ + +namespace gui +{ + +EnvelopeGraph::EnvelopeGraph(QWidget* parent) : + QWidget(parent), + ModelView(nullptr, this) +{ + setMinimumSize(m_envGraph.size()); +} + +void EnvelopeGraph::modelChanged() +{ + m_params = castModel(); +} + +void EnvelopeGraph::mousePressEvent(QMouseEvent* me) +{ + if (me->button() == Qt::LeftButton) { toggleAmountModel(); } +} + +void EnvelopeGraph::contextMenuEvent(QContextMenuEvent* event) +{ + QMenu menu(this); + QMenu* scalingMenu = menu.addMenu(tr("Scaling")); + scalingMenu->setToolTipsVisible(true); + + auto switchTo = [&](ScalingMode scaling) + { + if (m_scaling != scaling) + { + m_scaling = scaling; + update(); + } + }; + + auto addScalingEntry = [scalingMenu, &switchTo, this](const QString& text, const QString& toolTip, ScalingMode scaling) + { + QAction* action = scalingMenu->addAction(text, [&switchTo, scaling]() { switchTo(scaling); }); + action->setCheckable(true); + action->setChecked(m_scaling == scaling); + action->setToolTip(toolTip); + }; + + addScalingEntry( + tr("Dynamic"), + tr("Uses absolute spacings but switches to relative spacing if it's running out of space"), + ScalingMode::Dynamic); + addScalingEntry( + tr("Absolute"), + tr("Provides enough potential space for each segment but does not scale"), + ScalingMode::Absolute); + addScalingEntry( + tr("Relative"), + tr("Always uses all of the available space to display the envelope graph"), + ScalingMode::Relative); + + menu.exec(event->globalPos()); +} + +void EnvelopeGraph::paintEvent(QPaintEvent*) +{ + QPainter p{this}; + p.setRenderHint(QPainter::Antialiasing); + + // Draw the graph background + p.drawPixmap(rect(), m_envGraph); + + const auto* params = castModel(); + if (!params) { return; } + + // For the calculation of the percentages we will for now make use of the knowledge + // that the range goes from 0 to a positive max value, i.e. that it is in [0, max]. + const float amount = params->getAmountModel().value(); + + const float predelay = params->getPredelayModel().value(); + const float predelayPercentage = predelay / params->getPredelayModel().maxValue(); + + const float attack = params->getAttackModel().value(); + const float attackPercentage = attack / params->getAttackModel().maxValue(); + + const float hold = params->getHoldModel().value(); + const float holdPercentage = hold / params->getHoldModel().maxValue(); + + const float decay = params->getDecayModel().value(); + const float decayPercentage = decay / params->getDecayModel().maxValue(); + + const float sustain = params->getSustainModel().value(); + + const float release = params->getReleaseModel().value(); + const float releasePercentage = release / params->getReleaseModel().maxValue(); + + // The margin to the left and right so that we do not clip too much of the lines and markers + const float margin = 2.0; + const float availableWidth = width() - margin * 2; + + // Now determine the maximum width for one segment according to the scaling setting. + // The different scalings use different means to compute the maximum available width per segment. + const auto computeMaximumSegmentWidthAbsolute = [&]() -> float + { + return availableWidth / 5.; + }; + + const auto computeMaximumSegmentWidthRelative = [&]() -> float + { + const float sumOfSegments = predelayPercentage + attackPercentage + holdPercentage + decayPercentage + releasePercentage; + + return sumOfSegments != 0. + ? availableWidth / sumOfSegments + : computeMaximumSegmentWidthAbsolute(); + }; + + const auto computeMaximumSegmentWidthDynamic = [&]() -> float + { + const float sumOfSegments = predelayPercentage + attackPercentage + holdPercentage + decayPercentage + releasePercentage; + + float preliminarySegmentWidth = 80. / 182. * availableWidth; + + const float neededWidth = sumOfSegments * preliminarySegmentWidth; + + if (neededWidth > availableWidth && sumOfSegments != 0.) + { + return computeMaximumSegmentWidthRelative(); + } + + return preliminarySegmentWidth; + }; + + // This is the maximum width that each of the five segments (DAHDR) can occupy. + float maximumSegmentWidth; + + switch (m_scaling) + { + case ScalingMode::Absolute: + maximumSegmentWidth = computeMaximumSegmentWidthAbsolute(); + break; + case ScalingMode::Relative: + maximumSegmentWidth = computeMaximumSegmentWidthRelative(); + break; + case ScalingMode::Dynamic: + default: + maximumSegmentWidth = computeMaximumSegmentWidthDynamic(); + break; + } + + // Compute the actual widths that the segments occupy and add them to the + // previous x coordinates starting at the margin. + const float predelayX = margin + predelayPercentage * maximumSegmentWidth; + const float attackX = predelayX + attackPercentage * maximumSegmentWidth; + const float holdX = attackX + holdPercentage * maximumSegmentWidth; + const float decayX = holdX + (decayPercentage * (1 - sustain)) * maximumSegmentWidth; + const float releaseX = decayX + releasePercentage * maximumSegmentWidth; + + // Now compute the "full" points including y coordinates + const int yTop = 3; + const qreal yBase = height() - 3; + const int availableHeight = yBase - yTop; + + const QPointF predelayPoint{predelayX, yBase}; + const QPointF attackPoint{attackX, yTop}; + const QPointF holdPoint{holdX, yTop}; + const QPointF decayPoint{decayX, yTop + (1 - sustain) * availableHeight}; + const QPointF releasePoint{releaseX, yBase}; + + // Now that we have all points we can draw the lines + + // Compute the color of the lines based on the amount of the envelope + const float absAmount = std::abs(amount); + const QColor noAmountColor{96, 91, 96}; + const QColor fullAmountColor{0, 255, 128}; + const QColor lineColor{ColorHelper::interpolateInRgb(noAmountColor, fullAmountColor, absAmount)}; + + // Determine the line width so that it scales with the widget + // Use the minimum value of the current width and height to compute it. + const qreal lineWidth = std::min(width(), height()) / 20.; + const QPen linePen{lineColor, lineWidth}; + p.setPen(linePen); + + QPolygonF linePoly; + linePoly << predelayPoint << attackPoint << holdPoint << decayPoint << releasePoint; + p.drawPolyline(linePoly); + + // Now draw all marker on top of the lines + const QColor markerFillColor{153, 175, 255}; + const QColor markerOutlineColor{0, 0, 0}; + + QPen pen; + pen.setWidthF(lineWidth * 0.75); + pen.setBrush(markerOutlineColor); + p.setPen(pen); + p.setBrush(markerFillColor); + + // Compute the size of the circle we will draw based on the line width + const qreal baseRectSize = lineWidth * 3; + const QSizeF rectSize{baseRectSize, baseRectSize}; + + auto drawMarker = [&](const QPointF& point) + { + // Create a rectangle that has the given point at its center + QRectF bgRect{point + QPointF(-baseRectSize / 2, -baseRectSize / 2), rectSize}; + p.drawEllipse(bgRect); + }; + + drawMarker(predelayPoint); + drawMarker(attackPoint); + drawMarker(holdPoint); + drawMarker(decayPoint); + drawMarker(releasePoint); +} + +void EnvelopeGraph::toggleAmountModel() +{ + auto* params = castModel(); + auto& amountModel = params->getAmountModel(); + + amountModel.setValue(amountModel.value() < 1.0 ? 1.0 : 0.0); +} + +} // namespace gui + +} // namespace lmms diff --git a/src/gui/instrument/InstrumentFunctionViews.cpp b/src/gui/instrument/InstrumentFunctionViews.cpp index c9aa04272da..a60fa64f92d 100644 --- a/src/gui/instrument/InstrumentFunctionViews.cpp +++ b/src/gui/instrument/InstrumentFunctionViews.cpp @@ -30,7 +30,7 @@ #include "InstrumentFunctionViews.h" #include "ComboBox.h" #include "GroupBox.h" -#include "gui_templates.h" +#include "FontHelper.h" #include "Knob.h" #include "TempoSyncKnob.h" @@ -57,7 +57,7 @@ InstrumentFunctionNoteStackingView::InstrumentFunctionNoteStackingView( Instrume mainLayout->setVerticalSpacing( 1 ); auto chordLabel = new QLabel(tr("Chord:")); - chordLabel->setFont( pointSize<8>( chordLabel->font() ) ); + chordLabel->setFont(adjustedToPixelSize(chordLabel->font(), DEFAULT_FONT_SIZE)); m_chordRangeKnob->setLabel( tr( "RANGE" ) ); m_chordRangeKnob->setHintText( tr( "Chord range:" ), " " + tr( "octave(s)" ) ); @@ -146,13 +146,13 @@ InstrumentFunctionArpeggioView::InstrumentFunctionArpeggioView( InstrumentFuncti m_arpGateKnob->setHintText( tr( "Arpeggio gate:" ), tr( "%" ) ); auto arpChordLabel = new QLabel(tr("Chord:")); - arpChordLabel->setFont( pointSize<8>( arpChordLabel->font() ) ); + arpChordLabel->setFont(adjustedToPixelSize(arpChordLabel->font(), DEFAULT_FONT_SIZE)); auto arpDirectionLabel = new QLabel(tr("Direction:")); - arpDirectionLabel->setFont( pointSize<8>( arpDirectionLabel->font() ) ); + arpDirectionLabel->setFont(adjustedToPixelSize(arpDirectionLabel->font(), DEFAULT_FONT_SIZE)); auto arpModeLabel = new QLabel(tr("Mode:")); - arpModeLabel->setFont( pointSize<8>( arpModeLabel->font() ) ); + arpModeLabel->setFont(adjustedToPixelSize(arpModeLabel->font(), DEFAULT_FONT_SIZE)); mainLayout->addWidget( arpChordLabel, 0, 0 ); mainLayout->addWidget( m_arpComboBox, 1, 0 ); diff --git a/src/gui/instrument/InstrumentMidiIOView.cpp b/src/gui/instrument/InstrumentMidiIOView.cpp index fd9d6fc54b1..c6b58e09009 100644 --- a/src/gui/instrument/InstrumentMidiIOView.cpp +++ b/src/gui/instrument/InstrumentMidiIOView.cpp @@ -33,7 +33,6 @@ #include "Engine.h" #include "embed.h" #include "GroupBox.h" -#include "gui_templates.h" #include "LcdSpinBox.h" #include "MidiClient.h" @@ -144,28 +143,19 @@ InstrumentMidiIOView::InstrumentMidiIOView( QWidget* parent ) : midiOutputLayout->insertWidget( 0, m_wpBtn ); } - auto baseVelocityGroupBox = new GroupBox(tr("CUSTOM BASE VELOCITY")); + auto baseVelocityGroupBox = new GroupBox(tr("VELOCITY MAPPING")); + baseVelocityGroupBox->setLedButtonShown(false); layout->addWidget( baseVelocityGroupBox ); auto baseVelocityLayout = new QVBoxLayout(baseVelocityGroupBox); baseVelocityLayout->setContentsMargins( 8, 18, 8, 8 ); baseVelocityLayout->setSpacing( 6 ); - auto baseVelocityHelp - = new QLabel(tr("Specify the velocity normalization base for MIDI-based instruments at 100% note velocity.")); - baseVelocityHelp->setWordWrap( true ); - baseVelocityHelp->setFont( pointSize<8>( baseVelocityHelp->font() ) ); - - baseVelocityLayout->addWidget( baseVelocityHelp ); - m_baseVelocitySpinBox = new LcdSpinBox( 3, baseVelocityGroupBox ); - m_baseVelocitySpinBox->setLabel( tr( "BASE VELOCITY" ) ); - m_baseVelocitySpinBox->setEnabled( false ); + m_baseVelocitySpinBox->setLabel(tr("MIDI VELOCITY")); + m_baseVelocitySpinBox->setToolTip(tr("MIDI notes at this velocity correspond to 100% note velocity.")); baseVelocityLayout->addWidget( m_baseVelocitySpinBox ); - connect( baseVelocityGroupBox->ledButton(), SIGNAL(toggled(bool)), - m_baseVelocitySpinBox, SLOT(setEnabled(bool))); - layout->addStretch(); } diff --git a/src/gui/instrument/InstrumentSoundShapingView.cpp b/src/gui/instrument/InstrumentSoundShapingView.cpp index 1bfc166b342..45abace19f0 100644 --- a/src/gui/instrument/InstrumentSoundShapingView.cpp +++ b/src/gui/instrument/InstrumentSoundShapingView.cpp @@ -22,14 +22,16 @@ * */ +#include "InstrumentSoundShapingView.h" + #include +#include -#include "InstrumentSoundShapingView.h" #include "EnvelopeAndLfoParameters.h" #include "EnvelopeAndLfoView.h" #include "ComboBox.h" #include "GroupBox.h" -#include "gui_templates.h" +#include "FontHelper.h" #include "Knob.h" #include "TabWidget.h" @@ -37,69 +39,54 @@ namespace lmms::gui { -const int TARGETS_TABWIDGET_X = 4; -const int TARGETS_TABWIDGET_Y = 5; -const int TARGETS_TABWIDGET_WIDTH = 242; -const int TARGETS_TABWIDGET_HEIGTH = 175; - -const int FILTER_GROUPBOX_X = TARGETS_TABWIDGET_X; -const int FILTER_GROUPBOX_Y = TARGETS_TABWIDGET_Y+TARGETS_TABWIDGET_HEIGTH+5; -const int FILTER_GROUPBOX_WIDTH = TARGETS_TABWIDGET_WIDTH; -const int FILTER_GROUPBOX_HEIGHT = 245-FILTER_GROUPBOX_Y; - - - -InstrumentSoundShapingView::InstrumentSoundShapingView( QWidget * _parent ) : - QWidget( _parent ), - ModelView( nullptr, this ), - m_ss( nullptr ) +InstrumentSoundShapingView::InstrumentSoundShapingView(QWidget* parent) : + QWidget(parent), + ModelView(nullptr, this) { - m_targetsTabWidget = new TabWidget( tr( "TARGET" ), this ); - m_targetsTabWidget->setGeometry( TARGETS_TABWIDGET_X, - TARGETS_TABWIDGET_Y, - TARGETS_TABWIDGET_WIDTH, - TARGETS_TABWIDGET_HEIGTH ); + QVBoxLayout* mainLayout = new QVBoxLayout(this); + mainLayout->setContentsMargins(5, 5, 5, 5); - for( int i = 0; i < InstrumentSoundShaping::NumTargets; ++i ) + m_targetsTabWidget = new TabWidget(tr("TARGET"), this); + + for (auto i = std::size_t{0}; i < InstrumentSoundShaping::NumTargets; ++i) { - m_envLfoViews[i] = new EnvelopeAndLfoView( m_targetsTabWidget ); - m_targetsTabWidget->addTab( m_envLfoViews[i], - tr( InstrumentSoundShaping::targetNames[i][0] ), - nullptr ); + m_envLfoViews[i] = new EnvelopeAndLfoView(m_targetsTabWidget); + m_targetsTabWidget->addTab(m_envLfoViews[i], + tr(InstrumentSoundShaping::targetNames[i][0]), nullptr); } - - m_filterGroupBox = new GroupBox( tr( "FILTER" ), this ); - m_filterGroupBox->setGeometry( FILTER_GROUPBOX_X, FILTER_GROUPBOX_Y, - FILTER_GROUPBOX_WIDTH, - FILTER_GROUPBOX_HEIGHT ); + mainLayout->addWidget(m_targetsTabWidget, 1); - m_filterComboBox = new ComboBox( m_filterGroupBox ); - m_filterComboBox->setGeometry( 14, 22, 120, ComboBox::DEFAULT_HEIGHT ); - m_filterComboBox->setFont( pointSize<8>( m_filterComboBox->font() ) ); + m_filterGroupBox = new GroupBox(tr("FILTER"), this); + QHBoxLayout* filterLayout = new QHBoxLayout(m_filterGroupBox); + QMargins filterMargins = filterLayout->contentsMargins(); + filterMargins.setTop(18); + filterLayout->setContentsMargins(filterMargins); + m_filterComboBox = new ComboBox(m_filterGroupBox); + filterLayout->addWidget(m_filterComboBox); - m_filterCutKnob = new Knob( KnobType::Bright26, m_filterGroupBox ); - m_filterCutKnob->setLabel( tr( "FREQ" ) ); - m_filterCutKnob->move( 140, 18 ); - m_filterCutKnob->setHintText( tr( "Cutoff frequency:" ), " " + tr( "Hz" ) ); + m_filterCutKnob = new Knob(KnobType::Bright26, m_filterGroupBox); + m_filterCutKnob->setLabel(tr("FREQ")); + m_filterCutKnob->setHintText(tr("Cutoff frequency:"), " " + tr("Hz")); + filterLayout->addWidget(m_filterCutKnob); + m_filterResKnob = new Knob(KnobType::Bright26, m_filterGroupBox); + m_filterResKnob->setLabel(tr("Q/RESO")); + m_filterResKnob->setHintText(tr("Q/Resonance:"), ""); + filterLayout->addWidget(m_filterResKnob); - m_filterResKnob = new Knob( KnobType::Bright26, m_filterGroupBox ); - m_filterResKnob->setLabel( tr( "Q/RESO" ) ); - m_filterResKnob->move( 196, 18 ); - m_filterResKnob->setHintText( tr( "Q/Resonance:" ), "" ); + mainLayout->addWidget(m_filterGroupBox); - m_singleStreamInfoLabel = new QLabel( tr( "Envelopes, LFOs and filters are not supported by the current instrument." ), this ); - m_singleStreamInfoLabel->setWordWrap( true ); - m_singleStreamInfoLabel->setFont( pointSize<8>( m_singleStreamInfoLabel->font() ) ); + m_singleStreamInfoLabel = new QLabel(tr("Envelopes, LFOs and filters are not supported by the current instrument."), this); + m_singleStreamInfoLabel->setWordWrap(true); + // TODO Could also be rendered in system font size... + m_singleStreamInfoLabel->setFont(adjustedToPixelSize(m_singleStreamInfoLabel->font(), DEFAULT_FONT_SIZE)); + m_singleStreamInfoLabel->setFixedWidth(242); - m_singleStreamInfoLabel->setGeometry( TARGETS_TABWIDGET_X, - TARGETS_TABWIDGET_Y, - TARGETS_TABWIDGET_WIDTH, - TARGETS_TABWIDGET_HEIGTH ); + mainLayout->addWidget(m_singleStreamInfoLabel, 0, Qt::AlignTop); } @@ -128,7 +115,7 @@ void InstrumentSoundShapingView::modelChanged() m_filterComboBox->setModel( &m_ss->m_filterModel ); m_filterCutKnob->setModel( &m_ss->m_filterCutModel ); m_filterResKnob->setModel( &m_ss->m_filterResModel ); - for( int i = 0; i < InstrumentSoundShaping::NumTargets; ++i ) + for (auto i = std::size_t{0}; i < InstrumentSoundShaping::NumTargets; ++i) { m_envLfoViews[i]->setModel( m_ss->m_envLfoParameters[i] ); } diff --git a/src/gui/instrument/InstrumentTrackWindow.cpp b/src/gui/instrument/InstrumentTrackWindow.cpp index a2fcc1a2ec4..30b1a0041fe 100644 --- a/src/gui/instrument/InstrumentTrackWindow.cpp +++ b/src/gui/instrument/InstrumentTrackWindow.cpp @@ -42,9 +42,8 @@ #include "FileBrowser.h" #include "FileDialog.h" #include "GroupBox.h" -#include "MixerLineLcdSpinBox.h" +#include "MixerChannelLcdSpinBox.h" #include "GuiApplication.h" -#include "gui_templates.h" #include "Instrument.h" #include "InstrumentFunctions.h" #include "InstrumentFunctionViews.h" @@ -93,13 +92,9 @@ InstrumentTrackWindow::InstrumentTrackWindow( InstrumentTrackView * _itv ) : vlayout->setContentsMargins(0, 0, 0, 0); vlayout->setSpacing( 0 ); - auto generalSettingsWidget = new TabWidget(tr("GENERAL SETTINGS"), this); - + auto generalSettingsWidget = new QWidget(this); auto generalSettingsLayout = new QVBoxLayout(generalSettingsWidget); - generalSettingsLayout->setContentsMargins( 8, 18, 8, 8 ); - generalSettingsLayout->setSpacing( 6 ); - auto nameAndChangeTrackWidget = new QWidget(generalSettingsWidget); auto nameAndChangeTrackLayout = new QHBoxLayout(nameAndChangeTrackWidget); nameAndChangeTrackLayout->setContentsMargins( 0, 0, 0, 0 ); @@ -107,11 +102,10 @@ InstrumentTrackWindow::InstrumentTrackWindow( InstrumentTrackView * _itv ) : // setup line edit for changing instrument track name m_nameLineEdit = new QLineEdit; - m_nameLineEdit->setFont( pointSize<9>( m_nameLineEdit->font() ) ); connect( m_nameLineEdit, SIGNAL( textChanged( const QString& ) ), this, SLOT( textChanged( const QString& ) ) ); - m_nameLineEdit->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred)); + m_nameLineEdit->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed)); nameAndChangeTrackLayout->addWidget(m_nameLineEdit, 1); @@ -124,7 +118,7 @@ InstrumentTrackWindow::InstrumentTrackWindow( InstrumentTrackView * _itv ) : // m_leftRightNav->setShortcuts(); nameAndChangeTrackLayout->addWidget(m_leftRightNav); - + nameAndChangeTrackWidget->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); generalSettingsLayout->addWidget( nameAndChangeTrackWidget ); auto basicControlsLayout = new QGridLayout; @@ -143,7 +137,7 @@ InstrumentTrackWindow::InstrumentTrackWindow( InstrumentTrackView * _itv ) : #endif - QString labelStyleSheet = "font-size: 6pt;"; + QString labelStyleSheet = "font-size: 10px;"; Qt::Alignment labelAlignment = Qt::AlignHCenter | Qt::AlignTop; Qt::Alignment widgetAlignment = Qt::AlignHCenter | Qt::AlignCenter; @@ -206,7 +200,7 @@ InstrumentTrackWindow::InstrumentTrackWindow( InstrumentTrackView * _itv ) : // setup spinbox for selecting Mixer-channel - m_mixerChannelNumber = new MixerLineLcdSpinBox( 2, nullptr, tr( "Mixer channel" ), m_itv ); + m_mixerChannelNumber = new MixerChannelLcdSpinBox(2, nullptr, tr("Mixer channel"), m_itv); basicControlsLayout->addWidget( m_mixerChannelNumber, 0, 6 ); basicControlsLayout->setAlignment( m_mixerChannelNumber, widgetAlignment ); @@ -244,8 +238,8 @@ InstrumentTrackWindow::InstrumentTrackWindow( InstrumentTrackView * _itv ) : m_ssView = new InstrumentSoundShapingView( m_tabWidget ); // FUNC tab - auto instrumentFunctions = new QWidget(m_tabWidget); - auto instrumentFunctionsLayout = new QVBoxLayout(instrumentFunctions); + m_instrumentFunctionsView = new QWidget(m_tabWidget); + auto instrumentFunctionsLayout = new QVBoxLayout(m_instrumentFunctionsView); instrumentFunctionsLayout->setContentsMargins(5, 5, 5, 5); m_noteStackingView = new InstrumentFunctionNoteStackingView( &m_track->m_noteStacking ); m_arpeggioView = new InstrumentFunctionArpeggioView( &m_track->m_arpeggio ); @@ -265,21 +259,21 @@ InstrumentTrackWindow::InstrumentTrackWindow( InstrumentTrackView * _itv ) : m_tabWidget->addTab(m_ssView, tr("Envelope, filter & LFO"), "env_lfo_tab", 1); - m_tabWidget->addTab(instrumentFunctions, tr("Chord stacking & arpeggio"), "func_tab", 2); + m_tabWidget->addTab(m_instrumentFunctionsView, tr("Chord stacking & arpeggio"), "func_tab", 2); m_tabWidget->addTab(m_effectView, tr("Effects"), "fx_tab", 3); m_tabWidget->addTab(m_midiView, tr("MIDI"), "midi_tab", 4); m_tabWidget->addTab(m_tuningView, tr("Tuning and transposition"), "tuning_tab", 5); - adjustTabSize(m_ssView); - adjustTabSize(instrumentFunctions); - m_effectView->resize(EffectRackView::DEFAULT_WIDTH, INSTRUMENT_HEIGHT - 4 - 1); - adjustTabSize(m_midiView); - adjustTabSize(m_tuningView); // setup piano-widget m_pianoView = new PianoView( this ); m_pianoView->setMinimumHeight( PIANO_HEIGHT ); m_pianoView->setMaximumHeight( PIANO_HEIGHT ); + // setup sizes and policies + generalSettingsWidget->setMaximumHeight(90); + generalSettingsWidget->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); + m_tabWidget->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); + vlayout->addWidget( generalSettingsWidget ); // Use QWidgetItem explicitly to make the size hint change on instrument changes // QLayout::addWidget() uses QWidgetItemV2 with size hint caching @@ -287,13 +281,20 @@ InstrumentTrackWindow::InstrumentTrackWindow( InstrumentTrackView * _itv ) : vlayout->addWidget( m_pianoView ); setModel( _itv->model() ); + updateInstrumentView(); + QMdiSubWindow* subWin = getGUI()->mainWindow()->addWindowedWidget( this ); Qt::WindowFlags flags = subWin->windowFlags(); - flags |= Qt::MSWindowsFixedSizeDialogHint; + if (!m_instrumentView->isResizable()) { + flags |= Qt::MSWindowsFixedSizeDialogHint; + // any better way than this? + } else { + subWin->setMaximumSize(m_instrumentView->maximumHeight() + 12, m_instrumentView->maximumWidth() + 208); + subWin->setMinimumSize( m_instrumentView->minimumWidth() + 12, m_instrumentView->minimumHeight() + 208); + } flags &= ~Qt::WindowMaximizeButtonHint; subWin->setWindowFlags( flags ); - updateInstrumentView(); // Hide the Size and Maximize options from the system menu // since the dialog size is fixed. @@ -302,10 +303,18 @@ InstrumentTrackWindow::InstrumentTrackWindow( InstrumentTrackView * _itv ) : systemMenu->actions().at( 4 )->setVisible( false ); // Maximize subWin->setWindowIcon( embed::getIconPixmap( "instrument_track" ) ); - subWin->setMinimumSize( subWin->size() ); subWin->hide(); } +void InstrumentTrackWindow::resizeEvent(QResizeEvent * event) { + /* m_instrumentView->resize(QSize(size().width()-1, maxHeight)); */ + adjustTabSize(m_instrumentView); + adjustTabSize(m_instrumentFunctionsView); + adjustTabSize(m_ssView); + adjustTabSize(m_effectView); + adjustTabSize(m_midiView); + adjustTabSize(m_tuningView); +} @@ -356,7 +365,7 @@ void InstrumentTrackWindow::modelChanged() m_mixerChannelNumber->setModel( &m_track->m_mixerChannelModel ); m_pianoView->setModel( &m_track->m_piano ); - if( m_track->instrument() && m_track->instrument()->flags().testFlag( Instrument::Flag::IsNotBendable ) == false ) + if (m_track->instrument() && m_track->instrument()->isBendable()) { m_pitchKnob->setModel( &m_track->m_pitchModel ); m_pitchRangeSpinBox->setModel( &m_track->m_pitchRangeModel ); @@ -374,7 +383,7 @@ void InstrumentTrackWindow::modelChanged() m_pitchRangeLabel->hide(); } - if (m_track->instrument() && m_track->instrument()->flags().testFlag(Instrument::Flag::IsMidiBased)) + if (m_track->instrument() && m_track->instrument()->isMidiBased()) { m_tuningView->microtunerNotSupportedLabel()->show(); m_tuningView->microtunerGroupBox()->hide(); @@ -420,7 +429,7 @@ void InstrumentTrackWindow::saveSettingsBtnClicked() sfd.setDirectory(presetRoot + m_track->instrumentName()); sfd.setFileMode( FileDialog::AnyFile ); QString fname = m_track->name(); - sfd.selectFile(fname.remove(QRegExp(FILENAME_FILTER))); + sfd.selectFile(fname.remove(QRegularExpression(FILENAME_FILTER))); sfd.setDefaultSuffix( "xpf"); if( sfd.exec() == QDialog::Accepted && @@ -430,8 +439,7 @@ void InstrumentTrackWindow::saveSettingsBtnClicked() DataFile dataFile(DataFile::Type::InstrumentTrackSettings); QDomElement& content(dataFile.content()); - m_track->setSimpleSerializing(); - m_track->saveSettings(dataFile, content); + m_track->savePreset(dataFile, content); //We don't want to save muted & solo settings when we're saving a preset content.setAttribute("muted", 0); content.setAttribute("solo", 0); @@ -468,7 +476,7 @@ void InstrumentTrackWindow::updateInstrumentView() m_tabWidget->addTab( m_instrumentView, tr( "Plugin" ), "plugin_tab", 0 ); m_tabWidget->setActiveTab( 0 ); - m_ssView->setFunctionsHidden( m_track->m_instrument->flags().testFlag( Instrument::Flag::IsSingleStreamed ) ); + m_ssView->setFunctionsHidden(m_track->m_instrument->isSingleStreamed()); modelChanged(); // Get the instrument window to refresh m_track->dataChanged(); // Get the text on the trackButton to change @@ -681,6 +689,13 @@ void InstrumentTrackWindow::viewInstrumentInDirection(int d) } Q_ASSERT(bringToFront); bringToFront->getInstrumentTrackWindow()->setFocus(); + Qt::WindowFlags flags = windowFlags(); + if (!m_instrumentView->isResizable()) { + flags |= Qt::MSWindowsFixedSizeDialogHint; + } else { + flags &= ~Qt::MSWindowsFixedSizeDialogHint; + } + setWindowFlags( flags ); } void InstrumentTrackWindow::viewNextInstrument() @@ -697,7 +712,8 @@ void InstrumentTrackWindow::adjustTabSize(QWidget *w) // "-1" : // in "TabWidget::addTab", under "Position tab's window", the widget is // moved up by 1 pixel - w->setMinimumSize(INSTRUMENT_WIDTH - 4, INSTRUMENT_HEIGHT - 4 - 1); + w->resize(width() - 4, height() - 180); + w->update(); } diff --git a/src/gui/instrument/InstrumentTuningView.cpp b/src/gui/instrument/InstrumentTuningView.cpp index 355d7d18c73..06121502e8b 100644 --- a/src/gui/instrument/InstrumentTuningView.cpp +++ b/src/gui/instrument/InstrumentTuningView.cpp @@ -33,7 +33,7 @@ #include "ComboBox.h" #include "GroupBox.h" #include "GuiApplication.h" -#include "gui_templates.h" +#include "FontHelper.h" #include "InstrumentTrack.h" #include "LedCheckBox.h" #include "MainWindow.h" @@ -60,7 +60,7 @@ InstrumentTuningView::InstrumentTuningView(InstrumentTrack *it, QWidget *parent) auto tlabel = new QLabel(tr("Enables the use of global transposition")); tlabel->setWordWrap(true); - tlabel->setFont(pointSize<8>(tlabel->font())); + tlabel->setFont(adjustedToPixelSize(tlabel->font(), DEFAULT_FONT_SIZE)); masterPitchLayout->addWidget(tlabel); // Microtuner settings diff --git a/src/gui/instrument/InstrumentView.cpp b/src/gui/instrument/InstrumentView.cpp index fe2c04cfbcb..f7912444d96 100644 --- a/src/gui/instrument/InstrumentView.cpp +++ b/src/gui/instrument/InstrumentView.cpp @@ -35,6 +35,7 @@ namespace lmms::gui InstrumentView::InstrumentView( Instrument * _Instrument, QWidget * _parent ) : PluginView( _Instrument, _parent ) { + setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); setModel( _Instrument ); setAttribute( Qt::WA_DeleteOnClose, true ); } @@ -76,4 +77,4 @@ InstrumentTrackWindow * InstrumentView::instrumentTrackWindow() -} // namespace lmms::gui \ No newline at end of file +} // namespace lmms::gui diff --git a/src/gui/instrument/LfoGraph.cpp b/src/gui/instrument/LfoGraph.cpp new file mode 100644 index 00000000000..7444eeb4608 --- /dev/null +++ b/src/gui/instrument/LfoGraph.cpp @@ -0,0 +1,196 @@ +/* + * LfoGraph.cpp - Displays LFO graphs + * + * Copyright (c) 2004-2014 Tobias Doerffel + * Copyright (c) 2024- Michael Gregorius + * + * This file is part of LMMS - https://lmms.io + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#include "LfoGraph.h" + +#include +#include + +#include "EnvelopeAndLfoParameters.h" +#include "Oscillator.h" +#include "ColorHelper.h" + +#include "FontHelper.h" + +namespace lmms +{ + +extern const float SECS_PER_LFO_OSCILLATION; + +namespace gui +{ + +LfoGraph::LfoGraph(QWidget* parent) : + QWidget(parent), + ModelView(nullptr, this) +{ + setMinimumSize(m_lfoGraph.size()); +} + +void LfoGraph::mousePressEvent(QMouseEvent* me) +{ + if (me->button() == Qt::LeftButton) + { + toggleAmountModel(); + } +} + +void LfoGraph::paintEvent(QPaintEvent*) +{ + QPainter p{this}; + p.setRenderHint(QPainter::Antialiasing); + + // Draw the graph background + p.drawPixmap(rect(), m_lfoGraph); + + const auto* params = castModel(); + if (!params) { return; } + + const float amount = params->getLfoAmountModel().value(); + const float lfoSpeed = params->getLfoSpeedModel().value(); + const f_cnt_t predelayFrames = params->getLfoPredelayFrames(); + const f_cnt_t attackFrames = params->getLfoAttackFrames(); + const f_cnt_t oscillationFrames = params->getLfoOscillationFrames(); + const bool x100 = params->getX100Model().value(); + const int lfoWaveModel = params->getLfoWaveModel().value(); + const auto * userWave = params->getLfoUserWave().get(); + + const int margin = 3; + const int lfoGraphWidth = width() - margin; // subtract margin + const int lfoGraphHeight = height() - 2 * margin; // subtract margin + int graphBaseX = 2; + int graphBaseY = margin + lfoGraphHeight / 2; + + const float framesForGraph = + SECS_PER_LFO_OSCILLATION * Engine::audioEngine()->baseSampleRate() / 10; + + float oscFrames = oscillationFrames * (x100 ? 100. : 1.); + + QPolygonF polyLine; + polyLine << QPointF(graphBaseX - 1, graphBaseY); + + // Collect the points for the poly line by sampling the LFO according to its shape + for (int x = 0; x <= lfoGraphWidth; ++x) + { + float value = 0.0; + float currentSample = x * framesForGraph / lfoGraphWidth; + const auto sampleAsFrameCount = static_cast(currentSample); + if (sampleAsFrameCount > predelayFrames) + { + currentSample -= predelayFrames; + const float phase = currentSample / oscFrames; + + const auto lfoShape = static_cast(lfoWaveModel); + switch (lfoShape) + { + case EnvelopeAndLfoParameters::LfoShape::SineWave: + default: + value = Oscillator::sinSample(phase); + break; + case EnvelopeAndLfoParameters::LfoShape::TriangleWave: + value = Oscillator::triangleSample(phase); + break; + case EnvelopeAndLfoParameters::LfoShape::SawWave: + value = Oscillator::sawSample(phase); + break; + case EnvelopeAndLfoParameters::LfoShape::SquareWave: + value = Oscillator::squareSample(phase); + break; + case EnvelopeAndLfoParameters::LfoShape::RandomWave: + if (x % (int)(900 * lfoSpeed + 1) == 0) + { + m_randomGraph = Oscillator::noiseSample(0.0); + } + value = m_randomGraph; + break; + case EnvelopeAndLfoParameters::LfoShape::UserDefinedWave: + value = Oscillator::userWaveSample(userWave, phase); + break; + } + + if (sampleAsFrameCount <= attackFrames) + { + value *= currentSample / attackFrames; + } + } + + const float currentY = -lfoGraphHeight / 2.0f * value; + + polyLine << QPointF(graphBaseX + x, graphBaseY + currentY); + } + + // Compute the color of the lines based on the amount of the LFO + const float absAmount = std::abs(amount); + const QColor noAmountColor{96, 91, 96}; + const QColor fullAmountColor{0, 255, 128}; + const QColor lineColor{ColorHelper::interpolateInRgb(noAmountColor, fullAmountColor, absAmount)}; + + p.setPen(QPen(lineColor, 1.5)); + + p.drawPolyline(polyLine); + + drawInfoText(*params); +} + +void LfoGraph::drawInfoText(const EnvelopeAndLfoParameters& params) +{ + QPainter p(this); + + const float lfoSpeed = params.getLfoSpeedModel().value(); + const bool x100 = params.getX100Model().value(); + + const float hertz = 1. / (SECS_PER_LFO_OSCILLATION * lfoSpeed) * (x100 ? 100. : 1.); + const auto infoText = tr("%1 Hz").arg(hertz, 0, 'f', 3); + + // First configure the font so that we get correct results for the font metrics used below + QFont f = p.font(); + p.setFont(adjustedToPixelSize(f, height() * 0.2)); + + // This is the position where the text and its rectangle will be rendered + const QPoint textPosition(4, height() - 6); + + // Draw a slightly transparent black rectangle underneath the text to keep it legible + const QFontMetrics fontMetrics(f); + // This gives the bounding rectangle if the text was rendered at the origin ... + const auto boundingRect = fontMetrics.boundingRect(infoText); + // ... so we translate it to the actual position where the text will be rendered. + p.fillRect(boundingRect.translated(textPosition), QColor{0, 0, 0, 192}); + + // Now draw the actual info text + p.setPen(QColor(201, 201, 225)); + p.drawText(textPosition, infoText); +} + +void LfoGraph::toggleAmountModel() +{ + auto* params = castModel(); + auto& lfoAmountModel = params->getLfoAmountModel(); + + lfoAmountModel.setValue(lfoAmountModel.value() < 1.0 ? 1.0 : 0.0); +} + +} // namespace gui + +} // namespace lmms diff --git a/src/gui/instrument/PianoView.cpp b/src/gui/instrument/PianoView.cpp index d20cbcac52e..aeeb1fbbcd5 100644 --- a/src/gui/instrument/PianoView.cpp +++ b/src/gui/instrument/PianoView.cpp @@ -50,7 +50,7 @@ #include "CaptionMenu.h" #include "embed.h" #include "Engine.h" -#include "gui_templates.h" +#include "FontHelper.h" #include "InstrumentTrack.h" #include "Song.h" #include "StringPairDrag.h" @@ -67,21 +67,12 @@ auto WhiteKeys = std::array Key::C, Key::D, Key::E, Key::F, Key::G, Key::A, Key::H } ; - -QPixmap * PianoView::s_whiteKeyPm = nullptr; /*!< A white key released */ -QPixmap * PianoView::s_blackKeyPm = nullptr; /*!< A black key released */ -QPixmap * PianoView::s_whiteKeyPressedPm = nullptr; /*!< A white key pressed */ -QPixmap * PianoView::s_blackKeyPressedPm = nullptr; /*!< A black key pressed */ -QPixmap * PianoView::s_whiteKeyDisabledPm = nullptr; /*!< A white key disabled */ -QPixmap * PianoView::s_blackKeyDisabledPm = nullptr; /*!< A black key disabled */ - - const int PIANO_BASE = 11; /*!< The height of the root note display */ const int PW_WHITE_KEY_WIDTH = 10; /*!< The width of a white key */ const int PW_BLACK_KEY_WIDTH = 8; /*!< The width of a black key */ const int PW_WHITE_KEY_HEIGHT = 57; /*!< The height of a white key */ const int PW_BLACK_KEY_HEIGHT = 38; /*!< The height of a black key */ -const int LABEL_TEXT_SIZE = 7; /*!< The height of the key label text */ +const int LABEL_TEXT_SIZE = 8; /*!< The height of the key label text */ @@ -99,31 +90,6 @@ PianoView::PianoView(QWidget *parent) : m_lastKey(-1), /*!< The last key displayed? */ m_movedNoteModel(nullptr) /*!< Key marker which is being moved */ { - if (s_whiteKeyPm == nullptr) - { - s_whiteKeyPm = new QPixmap(embed::getIconPixmap("white_key")); - } - if (s_blackKeyPm == nullptr) - { - s_blackKeyPm = new QPixmap(embed::getIconPixmap("black_key")); - } - if (s_whiteKeyPressedPm == nullptr) - { - s_whiteKeyPressedPm = new QPixmap(embed::getIconPixmap("white_key_pressed")); - } - if (s_blackKeyPressedPm == nullptr) - { - s_blackKeyPressedPm = new QPixmap(embed::getIconPixmap("black_key_pressed")); - } - if (s_whiteKeyDisabledPm == nullptr) - { - s_whiteKeyDisabledPm = new QPixmap(embed::getIconPixmap("white_key_disabled")); - } - if (s_blackKeyDisabledPm == nullptr) - { - s_blackKeyDisabledPm = new QPixmap(embed::getIconPixmap("black_key_disabled")); - } - setAttribute(Qt::WA_OpaquePaintEvent, true); setFocusPolicy(Qt::StrongFocus); @@ -841,7 +807,7 @@ void PianoView::paintEvent( QPaintEvent * ) QPainter p( this ); // set smaller font for printing number of every octave - p.setFont( pointSize( p.font() ) ); + p.setFont(adjustedToPixelSize(p.font(), LABEL_TEXT_SIZE)); // draw bar above the keyboard (there will be the labels @@ -894,16 +860,16 @@ void PianoView::paintEvent( QPaintEvent * ) { if (m_piano && m_piano->isKeyPressed(cur_key)) { - p.drawPixmap(x, PIANO_BASE, *s_whiteKeyPressedPm); + p.drawPixmap(x, PIANO_BASE, m_whiteKeyPressedPm); } else { - p.drawPixmap(x, PIANO_BASE, *s_whiteKeyPm); + p.drawPixmap(x, PIANO_BASE, m_whiteKeyPm); } } else { - p.drawPixmap(x, PIANO_BASE, *s_whiteKeyDisabledPm); + p.drawPixmap(x, PIANO_BASE, m_whiteKeyDisabledPm); } x += PW_WHITE_KEY_WIDTH; @@ -928,16 +894,16 @@ void PianoView::paintEvent( QPaintEvent * ) { if (m_piano && m_piano->isKeyPressed(startKey)) { - p.drawPixmap(0 - PW_WHITE_KEY_WIDTH / 2, PIANO_BASE, *s_blackKeyPressedPm); + p.drawPixmap(0 - PW_WHITE_KEY_WIDTH / 2, PIANO_BASE, m_blackKeyPressedPm); } else { - p.drawPixmap(0 - PW_WHITE_KEY_WIDTH / 2, PIANO_BASE, *s_blackKeyPm); + p.drawPixmap(0 - PW_WHITE_KEY_WIDTH / 2, PIANO_BASE, m_blackKeyPm); } } else { - p.drawPixmap(0 - PW_WHITE_KEY_WIDTH / 2, PIANO_BASE, *s_blackKeyDisabledPm); + p.drawPixmap(0 - PW_WHITE_KEY_WIDTH / 2, PIANO_BASE, m_blackKeyDisabledPm); } } @@ -951,16 +917,16 @@ void PianoView::paintEvent( QPaintEvent * ) { if (m_piano && m_piano->isKeyPressed(cur_key)) { - p.drawPixmap(x + PW_WHITE_KEY_WIDTH / 2, PIANO_BASE, *s_blackKeyPressedPm); + p.drawPixmap(x + PW_WHITE_KEY_WIDTH / 2, PIANO_BASE, m_blackKeyPressedPm); } else { - p.drawPixmap(x + PW_WHITE_KEY_WIDTH / 2, PIANO_BASE, *s_blackKeyPm); + p.drawPixmap(x + PW_WHITE_KEY_WIDTH / 2, PIANO_BASE, m_blackKeyPm); } } else { - p.drawPixmap(x + PW_WHITE_KEY_WIDTH / 2, PIANO_BASE, *s_blackKeyDisabledPm); + p.drawPixmap(x + PW_WHITE_KEY_WIDTH / 2, PIANO_BASE, m_blackKeyDisabledPm); } x += PW_WHITE_KEY_WIDTH; white_cnt = 0; diff --git a/src/gui/menus/MidiPortMenu.cpp b/src/gui/menus/MidiPortMenu.cpp index b99c3a0b72f..6c573fdf5c3 100644 --- a/src/gui/menus/MidiPortMenu.cpp +++ b/src/gui/menus/MidiPortMenu.cpp @@ -24,7 +24,6 @@ */ #include "MidiPortMenu.h" -#include "gui_templates.h" namespace lmms::gui { diff --git a/src/gui/modals/ControllerConnectionDialog.cpp b/src/gui/modals/ControllerConnectionDialog.cpp index 4d1090d5c88..c7bdd28b4c7 100644 --- a/src/gui/modals/ControllerConnectionDialog.cpp +++ b/src/gui/modals/ControllerConnectionDialog.cpp @@ -295,13 +295,12 @@ ControllerConnectionDialog::~ControllerConnectionDialog() void ControllerConnectionDialog::selectController() { // Midi - if( m_midiGroupBox->model()->value() > 0 ) + if (m_midiGroupBox->model()->value()) { if( m_midiControllerSpinBox->model()->value() > 0 ) { - MidiController * mc; - mc = m_midiController->copyToMidiController( Engine::getSong() ); - + auto mc = m_midiController->copyToMidiController(Engine::getSong()); + /* if( m_targetModel->getTrack() && !m_targetModel->getTrack()->displayName().isEmpty() ) @@ -322,8 +321,7 @@ void ControllerConnectionDialog::selectController() // User else { - if( m_userGroupBox->model()->value() > 0 && - Engine::getSong()->controllers().size() ) + if (m_userGroupBox->model()->value() && Engine::getSong()->controllers().size()) { m_controller = Engine::getSong()->controllers().at( m_userController->model()->value() ); diff --git a/src/gui/modals/EffectSelectDialog.cpp b/src/gui/modals/EffectSelectDialog.cpp index 993052fab6a..65976059fca 100644 --- a/src/gui/modals/EffectSelectDialog.cpp +++ b/src/gui/modals/EffectSelectDialog.cpp @@ -2,6 +2,7 @@ * EffectSelectDialog.cpp - dialog to choose effect plugin * * Copyright (c) 2006-2009 Tobias Doerffel + * Copyright (c) 2023 Lost Robot * * This file is part of LMMS - https://lmms.io * @@ -23,63 +24,63 @@ */ #include "EffectSelectDialog.h" - -#include "ui_EffectSelectDialog.h" - #include "DummyEffect.h" #include "EffectChain.h" #include "embed.h" #include "PluginFactory.h" +#include +#include +#include #include +#include +#include +#include +#include namespace lmms::gui { - -EffectSelectDialog::EffectSelectDialog( QWidget * _parent ) : - QDialog( _parent ), - ui( new Ui::EffectSelectDialog ), +EffectSelectDialog::EffectSelectDialog(QWidget* parent) : + QDialog(parent), + m_effectKeys(), + m_currentSelection(), m_sourceModel(), m_model(), - m_descriptionWidget( nullptr ) + m_descriptionWidget(nullptr), + m_pluginList(new QTableView(this)), + m_scrollArea(new QScrollArea(this)) { - ui->setupUi( this ); - - setWindowIcon( embed::getIconPixmap( "setup_audio" ) ); - - // query effects + setWindowTitle(tr("Add effect")); + resize(640, 480); + + setWindowIcon(embed::getIconPixmap("setup_audio")); + // Query effects EffectKeyList subPluginEffectKeys; - - for (const Plugin::Descriptor* desc: getPluginFactory()->descriptors(Plugin::Type::Effect)) + for (const auto desc : getPluginFactory()->descriptors(Plugin::Type::Effect)) { - if( desc->subPluginFeatures ) + if (desc->subPluginFeatures) { - desc->subPluginFeatures->listSubPluginKeys( - desc, - subPluginEffectKeys ); + desc->subPluginFeatures->listSubPluginKeys(desc, subPluginEffectKeys); } else { - m_effectKeys << EffectKey( desc, desc->name ); - + m_effectKeys << EffectKey(desc, desc->name); } } - m_effectKeys += subPluginEffectKeys; - // and fill our source model - m_sourceModel.setHorizontalHeaderItem( 0, new QStandardItem( tr( "Name" ) ) ); - m_sourceModel.setHorizontalHeaderItem( 1, new QStandardItem( tr( "Type" ) ) ); + // Fill the source model + m_sourceModel.setHorizontalHeaderItem(0, new QStandardItem(tr("Name"))); + m_sourceModel.setHorizontalHeaderItem(1, new QStandardItem(tr("Type"))); int row = 0; - for( EffectKeyList::ConstIterator it = m_effectKeys.begin(); - it != m_effectKeys.end(); ++it ) + for (EffectKeyList::ConstIterator it = m_effectKeys.begin(); it != m_effectKeys.end(); ++it) { QString name; QString type; - if( it->desc->subPluginFeatures ) + if (it->desc->subPluginFeatures) { name = it->displayName(); type = it->desc->displayName; @@ -89,114 +90,153 @@ EffectSelectDialog::EffectSelectDialog( QWidget * _parent ) : name = it->desc->displayName; type = "LMMS"; } - m_sourceModel.setItem( row, 0, new QStandardItem( name ) ); - m_sourceModel.setItem( row, 1, new QStandardItem( type ) ); + m_sourceModel.setItem(row, 0, new QStandardItem(name)); + m_sourceModel.setItem(row, 1, new QStandardItem(type)); ++row; } - // setup filtering - m_model.setSourceModel( &m_sourceModel ); - m_model.setFilterCaseSensitivity( Qt::CaseInsensitive ); - - ui->filterEdit->setPlaceholderText(tr("Search")); - ui->filterEdit->setClearButtonEnabled(true); - ui->filterEdit->addAction(embed::getIconPixmap("zoom"), QLineEdit::LeadingPosition); + // Setup filtering + m_model.setSourceModel(&m_sourceModel); + m_model.setFilterCaseSensitivity(Qt::CaseInsensitive); - connect(ui->filterEdit, &QLineEdit::textChanged, &m_model, &QSortFilterProxyModel::setFilterFixedString); - connect(ui->filterEdit, &QLineEdit::textChanged, this, &EffectSelectDialog::updateSelection); - connect(ui->filterEdit, &QLineEdit::textChanged, this, &EffectSelectDialog::sortAgain); + QHBoxLayout* mainLayout = new QHBoxLayout(this); - ui->pluginList->setModel( &m_model ); + QVBoxLayout* leftSectionLayout = new QVBoxLayout(); - // setup selection model - auto selectionModel = new QItemSelectionModel(&m_model); - ui->pluginList->setSelectionModel( selectionModel ); - connect( selectionModel, SIGNAL( currentRowChanged( const QModelIndex&, - const QModelIndex & ) ), - SLOT( rowChanged( const QModelIndex &, const QModelIndex& ) ) ); - connect( ui->pluginList, SIGNAL( doubleClicked( const QModelIndex& ) ), - SLOT(acceptSelection())); - - // try to accept current selection when pressing "OK" - connect( ui->buttonBox, SIGNAL(accepted()), - this, SLOT(acceptSelection())); - - ui->filterEdit->setClearButtonEnabled( true ); - ui->pluginList->verticalHeader()->setSectionResizeMode( - QHeaderView::ResizeToContents ); - ui->pluginList->verticalHeader()->hide(); - ui->pluginList->horizontalHeader()->setSectionResizeMode( 0, - QHeaderView::Stretch ); - ui->pluginList->horizontalHeader()->setSectionResizeMode( 1, - QHeaderView::ResizeToContents ); - ui->pluginList->sortByColumn( 0, Qt::AscendingOrder ); + QStringList buttonLabels = { tr("All"), "LMMS", "LADSPA", "LV2", "VST" }; + QStringList buttonSearchString = { "", "LMMS", "LADSPA", "LV2", "VST" }; - updateSelection(); - show(); -} + for (int i = 0; i < buttonLabels.size(); ++i) + { + const QString& label = buttonLabels[i]; + const QString& searchString = buttonSearchString[i]; + + QPushButton* button = new QPushButton(label, this); + button->setFixedSize(50, 50); + button->setFocusPolicy(Qt::NoFocus); + leftSectionLayout->addWidget(button); + + connect(button, &QPushButton::clicked, this, [this, searchString] { + m_model.setEffectTypeFilter(searchString); + updateSelection(); + }); + } + leftSectionLayout->addStretch();// Add stretch to the button layout to push buttons to the top + mainLayout->addLayout(leftSectionLayout); + + m_filterEdit = new QLineEdit(this); + connect(m_filterEdit, &QLineEdit::textChanged, this, [this](const QString &text) { +// TODO: Cleanup when we don't support Qt5 anymore +#if (QT_VERSION >= QT_VERSION_CHECK(5,12,0)) + m_model.setFilterRegularExpression(QRegularExpression(text, QRegularExpression::CaseInsensitiveOption)); +#else + m_model.setFilterRegExp(QRegExp(text, Qt::CaseInsensitive)); +#endif + }); + connect(m_filterEdit, &QLineEdit::textChanged, this, &EffectSelectDialog::updateSelection); + m_filterEdit->setFocus(); + m_filterEdit->setFocusPolicy(Qt::StrongFocus); + m_filterEdit->setPlaceholderText(tr("Search")); + m_filterEdit->setClearButtonEnabled(true); + m_filterEdit->addAction(embed::getIconPixmap("zoom"), QLineEdit::LeadingPosition); + + m_pluginList->setModel(&m_model); + m_pluginList->setEditTriggers(QAbstractItemView::NoEditTriggers); + m_pluginList->setSelectionBehavior(QAbstractItemView::SelectRows); + m_pluginList->setSelectionMode(QAbstractItemView::SingleSelection); + m_pluginList->setSortingEnabled(true); + m_pluginList->sortByColumn(0, Qt::AscendingOrder); // Initial sort by column 0 (Name) + m_pluginList->verticalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents); + m_pluginList->verticalHeader()->hide(); + m_pluginList->horizontalHeader()->setSectionResizeMode(0, QHeaderView::Stretch); + m_pluginList->horizontalHeader()->setSectionResizeMode(1, QHeaderView::ResizeToContents); + m_pluginList->setFocusPolicy(Qt::NoFocus); + + // Scroll Area + m_scrollArea->setWidgetResizable(true); + QWidget* scrollAreaWidgetContents = new QWidget(m_scrollArea); + scrollAreaWidgetContents->setObjectName("scrollAreaWidgetContents"); + m_scrollArea->setWidget(scrollAreaWidgetContents); + m_scrollArea->setMaximumHeight(180); + m_scrollArea->setFocusPolicy(Qt::NoFocus); + + // Button Box + QDialogButtonBox* buttonBox = new QDialogButtonBox(Qt::Horizontal, this); + buttonBox->setStandardButtons(QDialogButtonBox::Cancel | QDialogButtonBox::Ok); + buttonBox->setFocusPolicy(Qt::NoFocus); + connect(buttonBox, &QDialogButtonBox::accepted, this, &EffectSelectDialog::acceptSelection); + connect(buttonBox, &QDialogButtonBox::rejected, this, &EffectSelectDialog::reject); + + QVBoxLayout* rightSectionLayout = new QVBoxLayout(); + rightSectionLayout->addWidget(m_filterEdit); + rightSectionLayout->addWidget(m_pluginList); + rightSectionLayout->addWidget(m_scrollArea); + rightSectionLayout->addWidget(buttonBox); + mainLayout->addLayout(rightSectionLayout); + + setLayout(mainLayout); + auto selectionModel = new QItemSelectionModel(&m_model); + m_pluginList->setSelectionModel(selectionModel); + connect(selectionModel, &QItemSelectionModel::currentRowChanged, + this, &EffectSelectDialog::rowChanged); + connect(m_pluginList, &QTableView::doubleClicked, + this, &EffectSelectDialog::acceptSelection); + + setModal(true); + installEventFilter(this); -EffectSelectDialog::~EffectSelectDialog() -{ - delete ui; + updateSelection(); + show(); } - - -Effect * EffectSelectDialog::instantiateSelectedPlugin( EffectChain * _parent ) +Effect* EffectSelectDialog::instantiateSelectedPlugin(EffectChain* parent) { Effect* result = nullptr; - if(!m_currentSelection.name.isEmpty() && m_currentSelection.desc) + if (!m_currentSelection.name.isEmpty() && m_currentSelection.desc) { - result = Effect::instantiate(m_currentSelection.desc->name, - _parent, &m_currentSelection); + result = Effect::instantiate(m_currentSelection.desc->name, parent, &m_currentSelection); } - if(!result) + if (!result) { - result = new DummyEffect(_parent, QDomElement()); + result = new DummyEffect(parent, QDomElement()); } return result; } - - - void EffectSelectDialog::acceptSelection() { - if( m_currentSelection.isValid() ) + if (m_currentSelection.isValid()) { accept(); } } - - - -void EffectSelectDialog::rowChanged( const QModelIndex & _idx, - const QModelIndex & ) +void EffectSelectDialog::rowChanged(const QModelIndex& idx, const QModelIndex&) { delete m_descriptionWidget; m_descriptionWidget = nullptr; - if( m_model.mapToSource( _idx ).row() < 0 ) + if (m_model.mapToSource(idx).row() < 0) { - // invalidate current selection + // Invalidate current selection m_currentSelection = Plugin::Descriptor::SubPluginFeatures::Key(); } else { - m_currentSelection = m_effectKeys[m_model.mapToSource( _idx ).row()]; + m_currentSelection = m_effectKeys[m_model.mapToSource(idx).row()]; } - if( m_currentSelection.desc ) + if (m_currentSelection.desc) { m_descriptionWidget = new QWidget; auto hbox = new QHBoxLayout(m_descriptionWidget); + hbox->setAlignment(Qt::AlignTop); - Plugin::Descriptor const & descriptor = *( m_currentSelection.desc ); + Plugin::Descriptor const& descriptor = *(m_currentSelection.desc); const PixmapLoader* pixLoa = m_currentSelection.logo(); if (pixLoa) @@ -204,76 +244,88 @@ void EffectSelectDialog::rowChanged( const QModelIndex & _idx, auto logoLabel = new QLabel(m_descriptionWidget); logoLabel->setPixmap(pixLoa->pixmap()); logoLabel->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum); + logoLabel->setMaximumSize(64, 64); - hbox->addWidget( logoLabel ); - hbox->setAlignment( logoLabel, Qt::AlignTop); + hbox->addWidget(logoLabel); } auto textualInfoWidget = new QWidget(m_descriptionWidget); - hbox->addWidget(textualInfoWidget); auto textWidgetLayout = new QVBoxLayout(textualInfoWidget); textWidgetLayout->setContentsMargins(4, 4, 4, 4); - textWidgetLayout->setSpacing( 0 ); + textWidgetLayout->setSpacing(8); - if ( m_currentSelection.desc->subPluginFeatures ) + if (m_currentSelection.desc->subPluginFeatures) { auto subWidget = new QWidget(textualInfoWidget); auto subLayout = new QVBoxLayout(subWidget); - subLayout->setContentsMargins(4, 4, 4, 4); - subLayout->setSpacing( 0 ); + subLayout->setContentsMargins(0, 0, 0, 0); + subLayout->setSpacing(8); + m_currentSelection.desc->subPluginFeatures-> - fillDescriptionWidget( subWidget, &m_currentSelection ); - for( QWidget * w : subWidget->findChildren() ) + fillDescriptionWidget(subWidget, &m_currentSelection); + for (QWidget* w : subWidget->findChildren()) { - if( w->parent() == subWidget ) + if (w->parent() == subWidget) { - subLayout->addWidget( w ); + subLayout->addWidget(w); + subLayout->setAlignment(w, QFlags(Qt::AlignTop | Qt::AlignLeft)); } } - textWidgetLayout->addWidget(subWidget); } else { auto label = new QLabel(m_descriptionWidget); QString labelText = "

" + tr("Name") + ": " + QString::fromUtf8(descriptor.displayName) + "

"; - labelText += "

" + tr("Description") + ": " + qApp->translate( "PluginBrowser", descriptor.description ) + "

"; + labelText += "

" + tr("Description") + ": " + qApp->translate("PluginBrowser", descriptor.description) + "

"; labelText += "

" + tr("Author") + ": " + QString::fromUtf8(descriptor.author) + "

"; label->setText(labelText); + label->setWordWrap(true); + textWidgetLayout->addWidget(label); } - ui->scrollArea->setWidget( m_descriptionWidget ); + m_scrollArea->setWidget(m_descriptionWidget); m_descriptionWidget->show(); } } - - - -void EffectSelectDialog::sortAgain() +void EffectSelectDialog::updateSelection() { - ui->pluginList->setSortingEnabled( ui->pluginList->isSortingEnabled() ); + // No valid selection anymore due to changed filter? + if (m_pluginList->selectionModel()->selection().size() <= 0) + { + // Then select our first item + m_pluginList->selectionModel()-> + select(m_model.index(0, 0), QItemSelectionModel::ClearAndSelect | QItemSelectionModel::Rows); + rowChanged(m_model.index(0, 0), QModelIndex()); + } } - - - -void EffectSelectDialog::updateSelection() +bool EffectSelectDialog::eventFilter(QObject *obj, QEvent *event) { - // no valid selection anymore due to changed filter? - if( ui->pluginList->selectionModel()->selection().size() <= 0 ) + if (obj == this && event->type() == QEvent::KeyPress) { - // then select our first item - ui->pluginList->selectionModel()->select( m_model.index( 0, 0 ), - QItemSelectionModel::ClearAndSelect - | QItemSelectionModel::Rows ); - rowChanged( m_model.index( 0, 0 ), QModelIndex() ); + QKeyEvent *keyEvent = static_cast(event); + if (keyEvent->key() == Qt::Key_Up || keyEvent->key() == Qt::Key_Down) + { + QItemSelectionModel* selectionModel = m_pluginList->selectionModel(); + int currentRow = selectionModel->currentIndex().row(); + int newRow = (keyEvent->key() == Qt::Key_Up) ? currentRow - 1 : currentRow + 1; + int rowCount = m_pluginList->model()->rowCount(); + newRow = qBound(0, newRow, rowCount - 1); + + selectionModel->setCurrentIndex(m_pluginList->model()->index(newRow, 0), + QItemSelectionModel::ClearAndSelect | QItemSelectionModel::Rows); + m_pluginList->scrollTo(m_pluginList->model()->index(newRow, 0)); + return true; + } } -} + return QDialog::eventFilter(obj, event); +} } // namespace lmms::gui diff --git a/src/gui/modals/EffectSelectDialog.ui b/src/gui/modals/EffectSelectDialog.ui deleted file mode 100644 index b0433e66cef..00000000000 --- a/src/gui/modals/EffectSelectDialog.ui +++ /dev/null @@ -1,109 +0,0 @@ - - - EffectSelectDialog - - - - 0 - 0 - 585 - 550 - - - - Add effect - - - true - - - - 10 - - - - - - - - - 500 - 250 - - - - QAbstractItemView::NoEditTriggers - - - Qt::ScrollBarAlwaysOff - - - QAbstractItemView::SelectRows - - - QAbstractItemView::SingleSelection - - - false - - - true - - - - - - - QFrame::NoFrame - - - - - 0 - 0 - 497 - 109 - - - - - - - - - Qt::Horizontal - - - QDialogButtonBox::Cancel|QDialogButtonBox::Ok - - - - - - - - - buttonBox - rejected() - EffectSelectDialog - reject() - - - 316 - 260 - - - 286 - 274 - - - - - - - RowTableView - QTableView -
RowTableView.h
-
-
-
diff --git a/src/gui/modals/ExportProjectDialog.cpp b/src/gui/modals/ExportProjectDialog.cpp index fe39082e450..1f989841f3b 100644 --- a/src/gui/modals/ExportProjectDialog.cpp +++ b/src/gui/modals/ExportProjectDialog.cpp @@ -56,7 +56,7 @@ ExportProjectDialog::ExportProjectDialog( const QString & _file_name, } int cbIndex = 0; - for( int i = 0; i < ProjectRenderer::NumFileFormats; ++i ) + for (auto i = std::size_t{0}; i < ProjectRenderer::NumFileFormats; ++i) { if( ProjectRenderer::fileEncodeDevices[i].isAvailable() ) { @@ -154,11 +154,8 @@ OutputSettings::StereoMode mapToStereoMode(int index) void ExportProjectDialog::startExport() { - AudioEngine::qualitySettings qs = - AudioEngine::qualitySettings( - static_cast(interpolationCB->currentIndex()), - static_cast(oversamplingCB->currentIndex()) ); - + auto qs = AudioEngine::qualitySettings( + static_cast(interpolationCB->currentIndex())); const auto samplerates = std::array{44100, 48000, 88200, 96000, 192000}; const auto bitrates = std::array{64, 128, 160, 192, 256, 320}; @@ -271,7 +268,7 @@ void ExportProjectDialog::startBtnClicked() } // Find proper file extension. - for( int i = 0; i < ProjectRenderer::NumFileFormats; ++i ) + for (auto i = std::size_t{0}; i < ProjectRenderer::NumFileFormats; ++i) { if (m_ft == ProjectRenderer::fileEncodeDevices[i].m_fileFormat) { diff --git a/src/gui/modals/SetupDialog.cpp b/src/gui/modals/SetupDialog.cpp index 209422563bc..d71ede03f53 100644 --- a/src/gui/modals/SetupDialog.cpp +++ b/src/gui/modals/SetupDialog.cpp @@ -37,7 +37,6 @@ #include "embed.h" #include "Engine.h" #include "FileDialog.h" -#include "gui_templates.h" #include "MainWindow.h" #include "MidiSetupWidget.h" #include "ProjectJournal.h" @@ -120,6 +119,7 @@ SetupDialog::SetupDialog(ConfigTab tab_to_open) : "app", "disablebackup").toInt()), m_openLastProject(ConfigManager::inst()->value( "app", "openlastproject").toInt()), + m_loopMarkerMode{ConfigManager::inst()->value("app", "loopmarkermode", "dual")}, m_lang(ConfigManager::inst()->value( "app", "language")), m_saveInterval( ConfigManager::inst()->value( @@ -142,10 +142,10 @@ SetupDialog::SetupDialog(ConfigTab tab_to_open) : "ui", "disableautoquit", "1").toInt()), m_NaNHandler(ConfigManager::inst()->value( "app", "nanhandler", "1").toInt()), - m_hqAudioDev(ConfigManager::inst()->value( - "audioengine", "hqaudio").toInt()), m_bufferSize(ConfigManager::inst()->value( "audioengine", "framesperaudiobuffer").toInt()), + m_midiAutoQuantize(ConfigManager::inst()->value( + "midi", "autoquantize", "0").toInt() != 0), m_workingDir(QDir::toNativeSeparators(ConfigManager::inst()->workingDir())), m_vstDir(QDir::toNativeSeparators(ConfigManager::inst()->vstDir())), m_ladspaDir(QDir::toNativeSeparators(ConfigManager::inst()->ladspaDir())), @@ -159,8 +159,7 @@ SetupDialog::SetupDialog(ConfigTab tab_to_open) : { setWindowIcon(embed::getIconPixmap("setup_general")); setWindowTitle(tr("Settings")); - // TODO: Equivalent to the new setWindowFlag(Qt::WindowContextHelpButtonHint, false) - setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint); + setWindowFlag(Qt::WindowContextHelpButtonHint, false); setModal(true); Engine::projectJournal()->setJournalling(false); @@ -255,6 +254,19 @@ SetupDialog::SetupDialog(ConfigTab tab_to_open) : addCheckBox(tr("Show warning when deleting a mixer channel that is in use"), guiGroupBox, guiGroupLayout, m_mixerChannelDeletionWarning, SLOT(toggleMixerChannelDeletionWarning(bool)), false); + m_loopMarkerComboBox = new QComboBox{guiGroupBox}; + + m_loopMarkerComboBox->addItem(tr("Dual-button"), "dual"); + m_loopMarkerComboBox->addItem(tr("Grab closest"), "closest"); + m_loopMarkerComboBox->addItem(tr("Handles"), "handles"); + + m_loopMarkerComboBox->setCurrentIndex(m_loopMarkerComboBox->findData(m_loopMarkerMode)); + connect(m_loopMarkerComboBox, qOverload(&QComboBox::currentIndexChanged), + this, &SetupDialog::loopMarkerModeChanged); + + guiGroupLayout->addWidget(new QLabel{tr("Loop edit mode"), guiGroupBox}); + guiGroupLayout->addWidget(m_loopMarkerComboBox); + generalControlsLayout->addWidget(guiGroupBox); generalControlsLayout->addSpacing(10); @@ -546,17 +558,13 @@ SetupDialog::SetupDialog(ConfigTab tab_to_open) : // audio_layout->addWidget(useNaNHandler); // useNaNHandler->setChecked(m_NaNHandler); - // HQ mode checkbox - auto hqaudio = addCheckBox(tr("HQ mode for output audio device"), audioInterfaceBox, nullptr, - m_hqAudioDev, SLOT(toggleHQAudioDev(bool)), false); - // Buffer size group QGroupBox * bufferSizeBox = new QGroupBox(tr("Buffer size"), audio_w); QVBoxLayout * bufferSizeLayout = new QVBoxLayout(bufferSizeBox); QHBoxLayout * bufferSizeSubLayout = new QHBoxLayout(); m_bufferSizeSlider = new QSlider(Qt::Horizontal, bufferSizeBox); - m_bufferSizeSlider->setRange(1, 128); + m_bufferSizeSlider->setRange(1, MAXIMUM_BUFFER_SIZE / BUFFERSIZE_RESOLUTION); m_bufferSizeSlider->setTickInterval(8); m_bufferSizeSlider->setPageStep(8); m_bufferSizeSlider->setValue(m_bufferSize / BUFFERSIZE_RESOLUTION); @@ -591,7 +599,6 @@ SetupDialog::SetupDialog(ConfigTab tab_to_open) : // Audio layout ordering. audio_layout->addWidget(audioInterfaceBox); audio_layout->addWidget(as_w); - audio_layout->addWidget(hqaudio); audio_layout->addWidget(bufferSizeBox); audio_layout->addStretch(); @@ -703,10 +710,22 @@ SetupDialog::SetupDialog(ConfigTab tab_to_open) : m_assignableMidiDevices->setCurrentIndex(current); } + // MIDI Recording tab + auto* midiRecordingTab = new QGroupBox(tr("Behavior when recording"), midi_w); + auto* midiRecordingLayout = new QVBoxLayout(midiRecordingTab); + { + auto *box = addCheckBox(tr("Auto-quantize notes in Piano Roll"), + midiRecordingTab, midiRecordingLayout, + m_midiAutoQuantize, SLOT(toggleMidiAutoQuantization(bool)), + false); + box->setToolTip(tr("If enabled, notes will be automatically quantized when recording them from a MIDI controller. If disabled, they are always recorded at the highest possible resolution.")); + } + // MIDI layout ordering. midi_layout->addWidget(midiInterfaceBox); midi_layout->addWidget(ms_w); midi_layout->addWidget(midiAutoAssignBox); + midi_layout->addWidget(midiRecordingTab); midi_layout->addStretch(); @@ -922,6 +941,7 @@ void SetupDialog::accept() QString::number(!m_disableBackup)); ConfigManager::inst()->setValue("app", "openlastproject", QString::number(m_openLastProject)); + ConfigManager::inst()->setValue("app", "loopmarkermode", m_loopMarkerMode); ConfigManager::inst()->setValue("app", "language", m_lang); ConfigManager::inst()->setValue("ui", "saveinterval", QString::number(m_saveInterval)); @@ -943,14 +963,13 @@ void SetupDialog::accept() m_audioIfaceNames[m_audioInterfaces->currentText()]); ConfigManager::inst()->setValue("app", "nanhandler", QString::number(m_NaNHandler)); - ConfigManager::inst()->setValue("audioengine", "hqaudio", - QString::number(m_hqAudioDev)); ConfigManager::inst()->setValue("audioengine", "framesperaudiobuffer", QString::number(m_bufferSize)); ConfigManager::inst()->setValue("audioengine", "mididev", m_midiIfaceNames[m_midiInterfaces->currentText()]); ConfigManager::inst()->setValue("midi", "midiautoassign", m_assignableMidiDevices->currentText()); + ConfigManager::inst()->setValue("midi", "autoquantize", QString::number(m_midiAutoQuantize)); ConfigManager::inst()->setWorkingDir(QDir::fromNativeSeparators(m_workingDir)); @@ -1061,6 +1080,12 @@ void SetupDialog::toggleOpenLastProject(bool enabled) } +void SetupDialog::loopMarkerModeChanged() +{ + m_loopMarkerMode = m_loopMarkerComboBox->currentData().toString(); +} + + void SetupDialog::setLanguage(int lang) { m_lang = m_languages[lang]; @@ -1140,17 +1165,6 @@ void SetupDialog::toggleDisableAutoQuit(bool enabled) m_disableAutoQuit = enabled; } - - - -// Audio settings slots. - -void SetupDialog::toggleHQAudioDev(bool enabled) -{ - m_hqAudioDev = enabled; -} - - void SetupDialog::audioInterfaceChanged(const QString & iface) { for(AswMap::iterator it = m_audioIfaceSetupWidgets.begin(); @@ -1209,7 +1223,7 @@ void SetupDialog::setBufferSize(int value) m_bufferSize = value * BUFFERSIZE_RESOLUTION; m_bufferSizeLbl->setText(tr("Frames: %1\nLatency: %2 ms").arg(m_bufferSize).arg( - 1000.0f * m_bufferSize / Engine::audioEngine()->processingSampleRate(), 0, 'f', 1)); + 1000.0f * m_bufferSize / Engine::audioEngine()->outputSampleRate(), 0, 'f', 1)); updateBufferSizeWarning(m_bufferSize); } @@ -1233,6 +1247,11 @@ void SetupDialog::midiInterfaceChanged(const QString & iface) m_midiIfaceSetupWidgets[m_midiIfaceNames[iface]]->show(); } +void SetupDialog::toggleMidiAutoQuantization(bool enabled) +{ + m_midiAutoQuantize = enabled; +} + // Paths settings slots. diff --git a/src/gui/modals/VersionedSaveDialog.cpp b/src/gui/modals/VersionedSaveDialog.cpp index 0c61df9f2ba..c8e1c682120 100644 --- a/src/gui/modals/VersionedSaveDialog.cpp +++ b/src/gui/modals/VersionedSaveDialog.cpp @@ -89,9 +89,9 @@ VersionedSaveDialog::VersionedSaveDialog( QWidget *parent, bool VersionedSaveDialog::changeFileNameVersion(QString &fileName, bool increment ) { - static QRegExp regexp( "[- ]\\d+(\\.\\w+)?$" ); + static QRegularExpression regex( "[- ]\\d+(\\.\\w+)?$" ); - int idx = regexp.indexIn( fileName ); + int idx = regex.match(fileName).capturedStart(); // For file names without extension (no ".mmpz") int insertIndex = fileName.lastIndexOf( '.' ); if ( insertIndex < idx+1 ) diff --git a/src/gui/modals/export_project.ui b/src/gui/modals/export_project.ui index 6b175de78d6..797ae07901c 100644 --- a/src/gui/modals/export_project.ui +++ b/src/gui/modals/export_project.ui @@ -404,37 +404,6 @@
- - - - Oversampling: - - - - - - - - 1x (None) - - - - - 2x - - - - - 4x - - - - - 8x - - - - diff --git a/src/gui/tracks/InstrumentTrackView.cpp b/src/gui/tracks/InstrumentTrackView.cpp index 87c0f044944..1d9991c3107 100644 --- a/src/gui/tracks/InstrumentTrackView.cpp +++ b/src/gui/tracks/InstrumentTrackView.cpp @@ -40,7 +40,7 @@ #include "Mixer.h" #include "MixerView.h" #include "GuiApplication.h" -#include "InstrumentTrack.h" +#include "Instrument.h" #include "InstrumentTrackWindow.h" #include "MainWindow.h" #include "MidiClient.h" @@ -62,7 +62,7 @@ InstrumentTrackView::InstrumentTrackView( InstrumentTrack * _it, TrackContainerV m_tlb = new TrackLabelButton( this, getTrackSettingsWidget() ); m_tlb->setCheckable( true ); - m_tlb->setIcon( embed::getIconPixmap( "instrument_track" ) ); + m_tlb->setIcon(determinePixmap(_it)); m_tlb->show(); connect( m_tlb, SIGNAL(toggled(bool)), @@ -74,7 +74,7 @@ InstrumentTrackView::InstrumentTrackView( InstrumentTrack * _it, TrackContainerV connect(ConfigManager::inst(), SIGNAL(valueChanged(QString,QString,QString)), this, SLOT(handleConfigChange(QString,QString,QString))); - m_mixerChannelNumber = new MixerLineLcdSpinBox(2, getTrackSettingsWidget(), tr("Mixer channel"), this); + m_mixerChannelNumber = new MixerChannelLcdSpinBox(2, getTrackSettingsWidget(), tr("Mixer channel"), this); m_mixerChannelNumber->show(); m_volumeKnob = new Knob( KnobType::Small17, getTrackSettingsWidget(), @@ -142,7 +142,9 @@ InstrumentTrackView::InstrumentTrackView( InstrumentTrack * _it, TrackContainerV m_activityIndicator->setFixedSize(8, 28); m_activityIndicator->show(); - auto layout = new QHBoxLayout(getTrackSettingsWidget()); + auto masterLayout = new QVBoxLayout(getTrackSettingsWidget()); + masterLayout->setContentsMargins(0, 1, 0, 0); + auto layout = new QHBoxLayout(); layout->setContentsMargins(0, 0, 0, 0); layout->setSpacing(0); layout->addWidget(m_tlb); @@ -150,6 +152,8 @@ InstrumentTrackView::InstrumentTrackView( InstrumentTrack * _it, TrackContainerV layout->addWidget(m_activityIndicator); layout->addWidget(m_volumeKnob); layout->addWidget(m_panningKnob); + masterLayout->addLayout(layout); + masterLayout->addSpacerItem(new QSpacerItem(0, 0, QSizePolicy::Minimum, QSizePolicy::Expanding)); connect( m_activityIndicator, SIGNAL(pressed()), this, SLOT(activityIndicatorPressed())); @@ -227,7 +231,7 @@ void InstrumentTrackView::createMixerLine() auto channel = Engine::mixer()->mixerChannel(channelIndex); channel->m_name = getTrack()->name(); - if (getTrack()->useColor()) { channel->setColor (getTrack()->color()); } + channel->setColor(getTrack()->color()); assignMixerLine(channelIndex); } @@ -240,7 +244,7 @@ void InstrumentTrackView::assignMixerLine(int channelIndex) { model()->mixerChannelModel()->setValue( channelIndex ); - getGUI()->mixerView()->setCurrentMixerLine( channelIndex ); + getGUI()->mixerView()->setCurrentMixerChannel(channelIndex); } @@ -392,5 +396,27 @@ QMenu * InstrumentTrackView::createMixerMenu(QString title, QString newMixerLabe return mixerMenu; } +QPixmap InstrumentTrackView::determinePixmap(InstrumentTrack* instrumentTrack) +{ + if (instrumentTrack) + { + Instrument* instrument = instrumentTrack->instrument(); + + if (instrument && instrument->descriptor()) + { + const PixmapLoader* pl = instrument->key().isValid() + ? instrument->key().logo() + : instrument->descriptor()->logo; + + if (pl) + { + return pl->pixmap(); + } + } + } + + return embed::getIconPixmap("instrument_track"); +} + } // namespace lmms::gui diff --git a/src/gui/tracks/PatternTrackView.cpp b/src/gui/tracks/PatternTrackView.cpp index be039ba79e5..ac0b42e2dcc 100644 --- a/src/gui/tracks/PatternTrackView.cpp +++ b/src/gui/tracks/PatternTrackView.cpp @@ -26,6 +26,7 @@ #include "Engine.h" #include "GuiApplication.h" +#include "MainWindow.h" #include "PatternEditor.h" #include "PatternStore.h" #include "PatternTrack.h" @@ -74,8 +75,7 @@ bool PatternTrackView::close() void PatternTrackView::clickedTrackLabel() { Engine::patternStore()->setCurrentPattern(m_patternTrack->patternIndex()); - getGUI()->patternEditor()->parentWidget()->show(); - getGUI()->patternEditor()->setFocus(Qt::ActiveWindowFocusReason); + getGUI()->mainWindow()->togglePatternEditorWin(true); } diff --git a/src/gui/tracks/SampleTrackView.cpp b/src/gui/tracks/SampleTrackView.cpp index 8516eb5c2a9..8475f7fa9e1 100644 --- a/src/gui/tracks/SampleTrackView.cpp +++ b/src/gui/tracks/SampleTrackView.cpp @@ -21,7 +21,7 @@ * Boston, MA 02110-1301 USA. * */ - + #include "SampleTrackView.h" #include @@ -58,7 +58,7 @@ SampleTrackView::SampleTrackView( SampleTrack * _t, TrackContainerView* tcv ) : m_tlb->setIcon(embed::getIconPixmap("sample_track")); m_tlb->show(); - m_mixerChannelNumber = new MixerLineLcdSpinBox(2, getTrackSettingsWidget(), tr("Mixer channel"), this); + m_mixerChannelNumber = new MixerChannelLcdSpinBox(2, getTrackSettingsWidget(), tr("Mixer channel"), this); m_mixerChannelNumber->show(); m_volumeKnob = new Knob( KnobType::Small17, getTrackSettingsWidget(), @@ -86,7 +86,9 @@ SampleTrackView::SampleTrackView( SampleTrack * _t, TrackContainerView* tcv ) : m_activityIndicator->setFixedSize(8, 28); m_activityIndicator->show(); - auto layout = new QHBoxLayout(getTrackSettingsWidget()); + auto masterLayout = new QVBoxLayout(getTrackSettingsWidget()); + masterLayout->setContentsMargins(0, 1, 0, 0); + auto layout = new QHBoxLayout(); layout->setContentsMargins(0, 0, 0, 0); layout->setSpacing(0); layout->addWidget(m_tlb); @@ -94,6 +96,8 @@ SampleTrackView::SampleTrackView( SampleTrack * _t, TrackContainerView* tcv ) : layout->addWidget(m_activityIndicator); layout->addWidget(m_volumeKnob); layout->addWidget(m_panningKnob); + masterLayout->addLayout(layout); + masterLayout->addSpacerItem(new QSpacerItem(0, 0, QSizePolicy::Minimum, QSizePolicy::Expanding)); connect(_t, SIGNAL(playingChanged()), this, SLOT(updateIndicator())); @@ -228,7 +232,7 @@ void SampleTrackView::createMixerLine() auto channel = Engine::mixer()->mixerChannel(channelIndex); channel->m_name = getTrack()->name(); - if (getTrack()->useColor()) { channel->setColor (getTrack()->color()); } + channel->setColor(getTrack()->color()); assignMixerLine(channelIndex); } @@ -241,7 +245,7 @@ void SampleTrackView::assignMixerLine(int channelIndex) { model()->mixerChannelModel()->setValue(channelIndex); - getGUI()->mixerView()->setCurrentMixerLine(channelIndex); + getGUI()->mixerView()->setCurrentMixerChannel(channelIndex); } diff --git a/src/gui/tracks/TrackContentWidget.cpp b/src/gui/tracks/TrackContentWidget.cpp index 619eff8317b..1926ffeef92 100644 --- a/src/gui/tracks/TrackContentWidget.cpp +++ b/src/gui/tracks/TrackContentWidget.cpp @@ -43,14 +43,15 @@ #include "ClipView.h" #include "TrackView.h" - namespace lmms::gui { /*! Alternate between a darker and a lighter background color every 4 bars */ const int BARS_PER_GROUP = 4; - +/* Lines between bars will disappear if zoomed too far out (i.e + if there are less than 4 pixels between lines)*/ +const int MIN_PIXELS_BETWEEN_LINES = 4; /*! \brief Create a new trackContentWidget * @@ -65,8 +66,15 @@ TrackContentWidget::TrackContentWidget( TrackView * parent ) : m_trackView( parent ), m_darkerColor( Qt::SolidPattern ), m_lighterColor( Qt::SolidPattern ), - m_gridColor( Qt::SolidPattern ), - m_embossColor( Qt::SolidPattern ) + m_coarseGridColor( Qt::SolidPattern ), + m_fineGridColor( Qt::SolidPattern ), + m_horizontalColor( Qt::SolidPattern ), + m_embossColor( Qt::SolidPattern ), + m_coarseGridWidth(2), + m_fineGridWidth(1), + m_horizontalWidth(1), + m_embossWidth(0), + m_embossOffset(0) { setAcceptDrops( true ); @@ -74,6 +82,14 @@ TrackContentWidget::TrackContentWidget( TrackView * parent ) : SIGNAL( positionChanged( const lmms::TimePos& ) ), this, SLOT( changePosition( const lmms::TimePos& ) ) ); + // Update background if snap size changes + connect(getGUI()->songEditor()->m_editor->snappingModel(), &Model::dataChanged, + this, &TrackContentWidget::updateBackground); + + // Also update background if proportional snap is enabled/disabled + connect(getGUI()->songEditor()->m_editor, &SongEditor::proportionalSnapChanged, + this, &TrackContentWidget::updateBackground); + setStyle( QApplication::style() ); updateBackground(); @@ -82,16 +98,30 @@ TrackContentWidget::TrackContentWidget( TrackView * parent ) : - - - void TrackContentWidget::updateBackground() -{ +{ + // use snapSize to determine number of lines to draw + float snapSize = getGUI()->songEditor()->m_editor->getSnapSize(); + const TrackContainerView * tcv = m_trackView->trackContainerView(); // Assume even-pixels-per-bar. Makes sense, should be like this anyways int ppb = static_cast( tcv->pixelsPerBar() ); + // Coarse grid appears every bar (less frequently if quantization > 1 bar) + float coarseGridResolution = (snapSize >= 1) ? snapSize : 1; + // Fine grid appears within bars + float fineGridResolution = snapSize; + // Increase fine grid resolution (size between lines) if it results in less than + // 4 pixels between each line to avoid cluttering + float pixelsBetweenLines = ppb * snapSize; + if (pixelsBetweenLines < MIN_PIXELS_BETWEEN_LINES) { + // Scale fineGridResolution so that there are enough pixels between lines + // scaleFactor should be a power of 2 + int scaleFactor = 1 << static_cast( std::ceil( std::log2( MIN_PIXELS_BETWEEN_LINES / pixelsBetweenLines ) ) ); + fineGridResolution *= scaleFactor; + } + int w = ppb * BARS_PER_GROUP; int h = height(); m_background = QPixmap( w * 2, height() ); @@ -101,22 +131,29 @@ void TrackContentWidget::updateBackground() pmp.fillRect( w, 0, w , h, lighterColor() ); // draw lines - // vertical lines - pmp.setPen( QPen( gridColor(), 1 ) ); - for( float x = 0; x < w * 2; x += ppb ) + // draw fine grid + pmp.setPen( QPen( fineGridColor(), fineGridWidth() ) ); + for (float x = 0; x < w * 2; x += ppb * fineGridResolution) + { + pmp.drawLine( QLineF( x, 0.0, x, h ) ); + } + + // draw coarse grid + pmp.setPen( QPen( coarseGridColor(), coarseGridWidth() ) ); + for (float x = 0; x < w * 2; x += ppb * coarseGridResolution) { pmp.drawLine( QLineF( x, 0.0, x, h ) ); } - pmp.setPen( QPen( embossColor(), 1 ) ); - for( float x = 1.0; x < w * 2; x += ppb ) + pmp.setPen( QPen( embossColor(), embossWidth() ) ); + for (float x = (coarseGridWidth() + embossOffset()); x < w * 2; x += ppb * coarseGridResolution) { pmp.drawLine( QLineF( x, 0.0, x, h ) ); } - // horizontal line - pmp.setPen( QPen( gridColor(), 1 ) ); - pmp.drawLine( 0, h-1, w*2, h-1 ); + // draw horizontal line + pmp.setPen( QPen( horizontalColor(), horizontalWidth() ) ); + pmp.drawLine(0, h - (horizontalWidth() + 1) / 2, w * 2, h - (horizontalWidth() + 1) / 2); pmp.end(); @@ -255,6 +292,7 @@ void TrackContentWidget::changePosition( const TimePos & newPos ) setUpdatesEnabled( true ); // redraw background + updateBackground(); // update(); } @@ -376,7 +414,7 @@ bool TrackContentWidget::canPasteSelection( TimePos clipPos, const QMimeData* md int finalTrackIndex = trackIndex + currentTrackIndex - initialTrackIndex; // Track must be in TrackContainer's tracks - if( finalTrackIndex < 0 || finalTrackIndex >= tracks.size() ) + if (finalTrackIndex < 0 || static_cast(finalTrackIndex) >= tracks.size()) { return false; } @@ -591,8 +629,8 @@ void TrackContentWidget::paintEvent( QPaintEvent * pe ) // Don't draw background on Pattern Editor if (m_trackView->trackContainerView() != getGUI()->patternEditor()->m_editor) { - p.drawTiledPixmap( rect(), m_background, QPoint( - tcv->currentPosition().getBar() * ppb, 0 ) ); + p.drawTiledPixmap(rect(), m_background, QPoint( + tcv->currentPosition().getTicks() * ppb / TimePos::ticksPerBar(), 0)); } } @@ -690,13 +728,41 @@ QBrush TrackContentWidget::lighterColor() const { return m_lighterColor; } //! \brief CSS theming qproperty access method -QBrush TrackContentWidget::gridColor() const -{ return m_gridColor; } +QBrush TrackContentWidget::coarseGridColor() const +{ return m_coarseGridColor; } + +//! \brief CSS theming qproperty access method +QBrush TrackContentWidget::fineGridColor() const +{ return m_fineGridColor; } + +//! \brief CSS theming qproperty access method +QBrush TrackContentWidget::horizontalColor() const +{ return m_horizontalColor; } //! \brief CSS theming qproperty access method QBrush TrackContentWidget::embossColor() const { return m_embossColor; } +//! \brief CSS theming qproperty access method +int TrackContentWidget::coarseGridWidth() const +{ return m_coarseGridWidth; } + +//! \brief CSS theming qproperty access method +int TrackContentWidget::fineGridWidth() const +{ return m_fineGridWidth; } + +//! \brief CSS theming qproperty access method +int TrackContentWidget::horizontalWidth() const +{ return m_horizontalWidth; } + +//! \brief CSS theming qproperty access method +int TrackContentWidget::embossWidth() const +{ return m_embossWidth; } + +//! \brief CSS theming qproperty access method +int TrackContentWidget::embossOffset() const +{ return m_embossOffset; } + //! \brief CSS theming qproperty access method void TrackContentWidget::setDarkerColor( const QBrush & c ) { m_darkerColor = c; } @@ -706,12 +772,39 @@ void TrackContentWidget::setLighterColor( const QBrush & c ) { m_lighterColor = c; } //! \brief CSS theming qproperty access method -void TrackContentWidget::setGridColor( const QBrush & c ) -{ m_gridColor = c; } +void TrackContentWidget::setCoarseGridColor( const QBrush & c ) +{ m_coarseGridColor = c; } + +//! \brief CSS theming qproperty access method +void TrackContentWidget::setFineGridColor( const QBrush & c ) +{ m_fineGridColor = c; } + +//! \brief CSS theming qproperty access method +void TrackContentWidget::setHorizontalColor( const QBrush & c ) +{ m_horizontalColor = c; } //! \brief CSS theming qproperty access method void TrackContentWidget::setEmbossColor( const QBrush & c ) { m_embossColor = c; } +//! \brief CSS theming qproperty access method +void TrackContentWidget::setCoarseGridWidth(int c) +{ m_coarseGridWidth = c; } + +//! \brief CSS theming qproperty access method +void TrackContentWidget::setFineGridWidth(int c) +{ m_fineGridWidth = c; } + +//! \brief CSS theming qproperty access method +void TrackContentWidget::setHorizontalWidth(int c) +{ m_horizontalWidth = c; } + +//! \brief CSS theming qproperty access method +void TrackContentWidget::setEmbossWidth(int c) +{ m_embossWidth = c; } + +//! \brief CSS theming qproperty access method +void TrackContentWidget::setEmbossOffset(int c) +{ m_embossOffset = c; } } // namespace lmms::gui diff --git a/src/gui/tracks/TrackGrip.cpp b/src/gui/tracks/TrackGrip.cpp new file mode 100644 index 00000000000..6133c6e962d --- /dev/null +++ b/src/gui/tracks/TrackGrip.cpp @@ -0,0 +1,106 @@ +/* + * TrackGrip.cpp - Grip that can be used to move tracks + * + * Copyright (c) 2024- Michael Gregorius + * + * This file is part of LMMS - https://lmms.io + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#include "TrackGrip.h" + +#include "embed.h" +#include "Track.h" + +#include +#include +#include + + +namespace lmms::gui +{ + +QPixmap* TrackGrip::s_grabbedPixmap = nullptr; +QPixmap* TrackGrip::s_releasedPixmap = nullptr; + +constexpr int c_margin = 2; + +TrackGrip::TrackGrip(Track* track, QWidget* parent) : + QWidget(parent), + m_track(track) +{ + if (!s_grabbedPixmap) + { + s_grabbedPixmap = new QPixmap(embed::getIconPixmap("track_op_grip_c")); + } + + if (!s_releasedPixmap) + { + s_releasedPixmap = new QPixmap(embed::getIconPixmap("track_op_grip")); + } + + setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Expanding); + + setCursor(Qt::OpenHandCursor); + + setFixedWidth(std::max(s_grabbedPixmap->width(), s_releasedPixmap->width()) + 2 * c_margin); +} + +void TrackGrip::mousePressEvent(QMouseEvent* m) +{ + m->accept(); + + m_isGrabbed = true; + setCursor(Qt::ClosedHandCursor); + + emit grabbed(); + + update(); +} + +void TrackGrip::mouseReleaseEvent(QMouseEvent* m) +{ + m->accept(); + + m_isGrabbed = false; + setCursor(Qt::OpenHandCursor); + + emit released(); + + update(); +} + +void TrackGrip::paintEvent(QPaintEvent*) +{ + QPainter p(this); + + // Check if the color of the track should be used for the background + const auto color = m_track->color(); + const auto muted = m_track->getMutedModel()->value(); + + if (color.has_value() && !muted) + { + p.fillRect(rect(), color.value()); + } + + // Paint the pixmap + auto r = rect().marginsRemoved(QMargins(c_margin, c_margin, c_margin, c_margin)); + p.drawTiledPixmap(r, m_isGrabbed ? *s_grabbedPixmap : *s_releasedPixmap); +} + +} // namespace lmms::gui diff --git a/src/gui/tracks/TrackLabelButton.cpp b/src/gui/tracks/TrackLabelButton.cpp index 2a50a4aa254..dd19f3d19fc 100644 --- a/src/gui/tracks/TrackLabelButton.cpp +++ b/src/gui/tracks/TrackLabelButton.cpp @@ -30,13 +30,13 @@ #include "ConfigManager.h" #include "embed.h" -#include "Engine.h" +#include "InstrumentTrackView.h" #include "Instrument.h" #include "InstrumentTrack.h" #include "RenameDialog.h" -#include "Song.h" #include "TrackRenameLineEdit.h" #include "TrackView.h" +#include "Track.h" namespace lmms::gui { @@ -50,18 +50,17 @@ TrackLabelButton::TrackLabelButton( TrackView * _tv, QWidget * _parent ) : setAcceptDrops( true ); setCursor( QCursor( embed::getIconPixmap( "hand" ), 3, 3 ) ); setToolButtonStyle( Qt::ToolButtonTextBesideIcon ); + m_renameLineEdit = new TrackRenameLineEdit( this ); m_renameLineEdit->hide(); - if( ConfigManager::inst()->value( "ui", "compacttrackbuttons" ).toInt() ) + if (isInCompactMode()) { setFixedSize( 32, 29 ); } else { setFixedSize( 160, 29 ); - m_renameLineEdit->move( 30, ( height() / 2 ) - ( m_renameLineEdit->sizeHint().height() / 2 ) ); - m_renameLineEdit->setFixedWidth( width() - 33 ); connect( m_renameLineEdit, SIGNAL(editingFinished()), this, SLOT(renameFinished())); } @@ -77,7 +76,7 @@ TrackLabelButton::TrackLabelButton( TrackView * _tv, QWidget * _parent ) : void TrackLabelButton::rename() { - if( ConfigManager::inst()->value( "ui", "compacttrackbuttons" ).toInt() ) + if (isInCompactMode()) { QString txt = m_trackView->getTrack()->name(); RenameDialog renameDlg( txt ); @@ -85,16 +84,26 @@ void TrackLabelButton::rename() if( txt != text() ) { m_trackView->getTrack()->setName( txt ); - Engine::getSong()->setModified(); } } else { - QString txt = m_trackView->getTrack()->name(); - m_renameLineEdit->show(); - m_renameLineEdit->setText( txt ); + const auto & trackName = m_trackView->getTrack()->name(); + m_renameLineEdit->setText(trackName); m_renameLineEdit->selectAll(); m_renameLineEdit->setFocus(); + + // Make sure that the rename line edit uses the same font as the widget + // which is set via style sheets + m_renameLineEdit->setFont(font()); + + // Move the line edit to the correct position by taking the size of the + // icon into account. + const auto iconWidth = iconSize().width(); + m_renameLineEdit->move(iconWidth + 1, (height() / 2 - m_renameLineEdit->sizeHint().height() / 2) + 1); + m_renameLineEdit->setFixedWidth(width() - (iconWidth + 6)); + + m_renameLineEdit->show(); } } @@ -103,7 +112,7 @@ void TrackLabelButton::rename() void TrackLabelButton::renameFinished() { - if( !( ConfigManager::inst()->value( "ui", "compacttrackbuttons" ).toInt() ) ) + if (!isInCompactMode()) { m_renameLineEdit->clearFocus(); m_renameLineEdit->hide(); @@ -113,7 +122,6 @@ void TrackLabelButton::renameFinished() { setText( elideName( m_renameLineEdit->text() ) ); m_trackView->getTrack()->setName( m_renameLineEdit->text() ); - Engine::getSong()->setModified(); } } } @@ -183,37 +191,33 @@ void TrackLabelButton::mouseReleaseEvent( QMouseEvent *_me ) } - - -void TrackLabelButton::paintEvent( QPaintEvent * _pe ) +void TrackLabelButton::paintEvent(QPaintEvent* pe) { - if( m_trackView->getTrack()->type() == Track::Type::Instrument ) + if (m_trackView->getTrack()->type() == Track::Type::Instrument) { auto it = dynamic_cast(m_trackView->getTrack()); - const PixmapLoader * pl; + const PixmapLoader* pl; auto get_logo = [](InstrumentTrack* it) -> const PixmapLoader* { return it->instrument()->key().isValid() ? it->instrument()->key().logo() : it->instrument()->descriptor()->logo; }; - if( it && it->instrument() && + if (it && it->instrument() && it->instrument()->descriptor() && - ( pl = get_logo(it) ) ) + (pl = get_logo(it))) { - if( pl->pixmapName() != m_iconName ) + if (pl->pixmapName() != m_iconName) { m_iconName = pl->pixmapName(); - setIcon( pl->pixmap() ); + setIcon(pl->pixmap()); } } } - QToolButton::paintEvent( _pe ); + QToolButton::paintEvent(pe); } - - void TrackLabelButton::resizeEvent(QResizeEvent *_re) { setText( elideName( m_trackView->getTrack()->displayName() ) ); @@ -237,5 +241,9 @@ QString TrackLabelButton::elideName( const QString &name ) return elidedName; } +bool TrackLabelButton::isInCompactMode() const +{ + return ConfigManager::inst()->value("ui", "compacttrackbuttons").toInt(); +} } // namespace lmms::gui diff --git a/src/gui/tracks/TrackOperationsWidget.cpp b/src/gui/tracks/TrackOperationsWidget.cpp index 31edc4949a0..6aca6628242 100644 --- a/src/gui/tracks/TrackOperationsWidget.cpp +++ b/src/gui/tracks/TrackOperationsWidget.cpp @@ -24,6 +24,7 @@ #include "TrackOperationsWidget.h" +#include #include #include #include @@ -38,13 +39,13 @@ #include "DataFile.h" #include "embed.h" #include "Engine.h" -#include "gui_templates.h" #include "InstrumentTrackView.h" #include "PixmapButton.h" #include "Song.h" #include "StringPairDrag.h" #include "Track.h" #include "TrackContainerView.h" +#include "TrackGrip.h" #include "TrackView.h" namespace lmms::gui @@ -69,41 +70,86 @@ TrackOperationsWidget::TrackOperationsWidget( TrackView * parent ) : setObjectName( "automationEnabled" ); + auto layout = new QHBoxLayout(this); + layout->setContentsMargins(0, 0, 0, 0); + layout->setSpacing(0); + layout->setAlignment(Qt::AlignTop); - m_trackOps = new QPushButton( this ); - m_trackOps->move( 12, 1 ); + m_trackGrip = new TrackGrip(m_trackView->getTrack(), this); + layout->addWidget(m_trackGrip); + + // This widget holds the gear icon and the mute and solo + // buttons in a layout. + auto operationsWidget = new QWidget(this); + auto operationsLayout = new QHBoxLayout(operationsWidget); + operationsLayout->setContentsMargins(0, 0, 0, 0); + operationsLayout->setSpacing(0); + + m_trackOps = new QPushButton(operationsWidget); m_trackOps->setFocusPolicy( Qt::NoFocus ); m_trackOps->setMenu( toMenu ); m_trackOps->setToolTip(tr("Actions")); + // This helper lambda wraps a PixmapButton in a QWidget. This is necessary due to some strange effect where the + // PixmapButtons are resized to a size that's larger than their minimum/fixed size when the method "show" is called + // in "TrackContainerView::realignTracks". Specifically, with the default theme the buttons are resized from + // (16, 14) to (26, 26). This then makes them behave not as expected in layouts. + // The resizing is not done for QWidgets. Therefore we wrap the PixmapButton in a QWidget which is set to a + // fixed size that will be able to show the active and inactive pixmap. We can then use the QWidget in layouts + // without any disturbances. + // + // The resizing only seems to affect the track view hierarchy and is triggered by Qt's internal mechanisms. + // For example the buttons in the mixer view do not seem to be affected. + // If you want to debug this simply override "PixmapButton::resizeEvent" and trigger a break point in there. + auto buildPixmapButtonWrappedInWidget = [](QWidget* parent, const QString& toolTip, + std::string_view activeGraphic, std::string_view inactiveGraphic, PixmapButton*& pixmapButton) + { + const auto activePixmap = embed::getIconPixmap(activeGraphic); + const auto inactivePixmap = embed::getIconPixmap(inactiveGraphic); + + auto necessarySize = activePixmap.size().expandedTo(inactivePixmap.size()); + + auto wrapperWidget = new QWidget(parent); + wrapperWidget->setFixedSize(necessarySize); + + auto button = new PixmapButton(wrapperWidget, toolTip); + button->setCheckable(true); + button->setActiveGraphic(activePixmap); + button->setInactiveGraphic(inactivePixmap); + button->setToolTip(toolTip); - m_muteBtn = new PixmapButton( this, tr( "Mute" ) ); - m_muteBtn->setActiveGraphic( embed::getIconPixmap( "led_off" ) ); - m_muteBtn->setInactiveGraphic( embed::getIconPixmap( "led_green" ) ); - m_muteBtn->setCheckable( true ); + pixmapButton = button; - m_soloBtn = new PixmapButton( this, tr( "Solo" ) ); - m_soloBtn->setActiveGraphic( embed::getIconPixmap( "led_red" ) ); - m_soloBtn->setInactiveGraphic( embed::getIconPixmap( "led_off" ) ); - m_soloBtn->setCheckable( true ); + return wrapperWidget; + }; + + auto muteWidget = buildPixmapButtonWrappedInWidget(operationsWidget, tr("Mute"), "led_off", "led_green", m_muteBtn); + auto soloWidget = buildPixmapButtonWrappedInWidget(operationsWidget, tr("Solo"), "led_red", "led_off", m_soloBtn); + + operationsLayout->addWidget(m_trackOps, Qt::AlignCenter); + operationsLayout->addSpacing(5); if( ConfigManager::inst()->value( "ui", "compacttrackbuttons" ).toInt() ) { - m_muteBtn->move( 46, 0 ); - m_soloBtn->move( 46, 16 ); + auto vlayout = new QVBoxLayout(); + vlayout->setContentsMargins(0, 0, 0, 0); + vlayout->setSpacing(0); + vlayout->addStretch(1); + vlayout->addWidget(muteWidget); + vlayout->addWidget(soloWidget); + vlayout->addStretch(1); + operationsLayout->addLayout(vlayout); } else { - m_muteBtn->move( 46, 8 ); - m_soloBtn->move( 62, 8 ); + operationsLayout->addWidget(muteWidget, Qt::AlignCenter); + operationsLayout->addWidget(soloWidget, Qt::AlignCenter); } - m_muteBtn->show(); - m_muteBtn->setToolTip(tr("Mute")); + operationsLayout->addStretch(1); - m_soloBtn->show(); - m_soloBtn->setToolTip(tr("Solo")); + layout->addWidget(operationsWidget, 0, Qt::AlignTop); connect( this, SIGNAL(trackRemovalScheduled(lmms::gui::TrackView*)), m_trackView->trackContainerView(), @@ -155,31 +201,17 @@ void TrackOperationsWidget::mousePressEvent( QMouseEvent * me ) -/*! \brief Repaint the trackOperationsWidget - * - * If we're not moving, and in the Pattern Editor, then turn - * automation on or off depending on its previous state and show - * ourselves. +/*! + * \brief Repaint the trackOperationsWidget * - * Otherwise, hide ourselves. - * - * \todo Flesh this out a bit - is it correct? - * \param pe The paint event to respond to + * Only things that's done for now is to paint the background + * with the brush of the window from the palette. */ -void TrackOperationsWidget::paintEvent( QPaintEvent * pe ) +void TrackOperationsWidget::paintEvent(QPaintEvent*) { QPainter p( this ); p.fillRect(rect(), palette().brush(QPalette::Window)); - - if( m_trackView->getTrack()->useColor() && ! m_trackView->getTrack()->getMutedModel()->value() ) - { - QRect coloredRect( 0, 0, 10, m_trackView->getTrack()->getHeight() ); - - p.fillRect( coloredRect, m_trackView->getTrack()->color() ); - } - - p.drawPixmap(2, 2, embed::getIconPixmap(m_trackView->isMovingTrack() ? "track_op_grip_c" : "track_op_grip")); } @@ -237,6 +269,12 @@ void TrackOperationsWidget::cloneTrack() tcView->moveTrackView( newTrackView, i - 1 ); i--; } + + if (m_soloBtn->model()->value()) + { + // if this track was solo, make the new track the new solo + newTrack->toggleSolo(); + } } @@ -265,15 +303,15 @@ void TrackOperationsWidget::removeTrack() void TrackOperationsWidget::selectTrackColor() { - QColor new_color = ColorChooser( this ).withPalette( ColorChooser::Palette::Track )-> \ - getColor( m_trackView->getTrack()->color() ); + const auto newColor = ColorChooser{this} + .withPalette(ColorChooser::Palette::Track) + ->getColor(m_trackView->getTrack()->color().value_or(Qt::white)); - if( ! new_color.isValid() ) - { return; } + if (!newColor.isValid()) { return; } - auto track = m_trackView->getTrack(); + const auto track = m_trackView->getTrack(); track->addJournalCheckPoint(); - track->setColor(new_color); + track->setColor(newColor); Engine::getSong()->setModified(); } @@ -281,7 +319,7 @@ void TrackOperationsWidget::resetTrackColor() { auto track = m_trackView->getTrack(); track->addJournalCheckPoint(); - track->resetColor(); + track->setColor(std::nullopt); Engine::getSong()->setModified(); } @@ -298,16 +336,13 @@ void TrackOperationsWidget::resetClipColors() { auto track = m_trackView->getTrack(); track->addJournalCheckPoint(); - for (auto clip: track->getClips()) + for (auto clip : track->getClips()) { - clip->useCustomClipColor(false); + clip->setColor(std::nullopt); } Engine::getSong()->setModified(); } - - - /*! \brief Update the trackOperationsWidget context menu * * For all track types, we have the Clone and Remove options. diff --git a/src/gui/tracks/TrackView.cpp b/src/gui/tracks/TrackView.cpp index 426be7e3626..ecd397975f1 100644 --- a/src/gui/tracks/TrackView.cpp +++ b/src/gui/tracks/TrackView.cpp @@ -41,6 +41,7 @@ #include "PixmapButton.h" #include "StringPairDrag.h" #include "Track.h" +#include "TrackGrip.h" #include "TrackContainerView.h" #include "ClipView.h" @@ -102,6 +103,10 @@ TrackView::TrackView( Track * track, TrackContainerView * tcv ) : connect( &m_track->m_soloModel, SIGNAL(dataChanged()), m_track, SLOT(toggleSolo()), Qt::DirectConnection ); + + auto trackGrip = m_trackOperationsWidget.getTrackGrip(); + connect(trackGrip, &TrackGrip::grabbed, this, &TrackView::onTrackGripGrabbed); + connect(trackGrip, &TrackGrip::released, this, &TrackView::onTrackGripReleased); // create views for already existing clips for (const auto& clip : m_track->m_clips) @@ -284,22 +289,6 @@ void TrackView::mousePressEvent( QMouseEvent * me ) QCursor c( Qt::SizeVerCursor); QApplication::setOverrideCursor( c ); } - else - { - if( me->x()>10 ) // 10 = The width of the grip + 2 pixels to the left and right. - { - QWidget::mousePressEvent( me ); - return; - } - - m_action = Action::Move; - - QCursor c( Qt::SizeVerCursor ); - QApplication::setOverrideCursor( c ); - // update because in move-mode, all elements in - // track-op-widgets are hidden as a visual feedback - m_trackOperationsWidget.update(); - } me->accept(); } @@ -364,9 +353,7 @@ void TrackView::mouseMoveEvent( QMouseEvent * me ) } else if( m_action == Action::Resize ) { - setFixedHeight( qMax( me->y(), MINIMAL_TRACK_HEIGHT ) ); - m_trackContainerView->realignTracks(); - m_track->setHeight( height() ); + resizeToHeight(me->y()); } if( height() < DEFAULT_TRACK_HEIGHT ) @@ -393,6 +380,23 @@ void TrackView::mouseReleaseEvent( QMouseEvent * me ) QWidget::mouseReleaseEvent( me ); } +void TrackView::wheelEvent(QWheelEvent* we) +{ + // Note: we add the values because one of them will be 0. If the alt modifier + // is pressed x is non-zero and otherwise y. + const int deltaY = we->angleDelta().x() + we->angleDelta().y(); + int const direction = deltaY < 0 ? -1 : 1; + + auto const modKeys = we->modifiers(); + int stepSize = modKeys == (Qt::ControlModifier | Qt::AltModifier) ? 1 : modKeys == (Qt::ShiftModifier | Qt::AltModifier) ? 5 : 0; + + if (stepSize != 0) + { + resizeToHeight(height() + stepSize * direction); + we->accept(); + } +} + @@ -436,6 +440,16 @@ void TrackView::muteChanged() } +void TrackView::onTrackGripGrabbed() +{ + m_action = Action::Move; +} + +void TrackView::onTrackGripReleased() +{ + m_action = Action::None; +} + void TrackView::setIndicatorMute(FadeButton* indicator, bool muted) @@ -445,4 +459,12 @@ void TrackView::setIndicatorMute(FadeButton* indicator, bool muted) } +void TrackView::resizeToHeight(int h) +{ + setFixedHeight(qMax(h, MINIMAL_TRACK_HEIGHT)); + m_trackContainerView->realignTracks(); + m_track->setHeight(height()); +} + + } // namespace lmms::gui diff --git a/src/gui/widgets/BarModelEditor.cpp b/src/gui/widgets/BarModelEditor.cpp index 4b02c963461..ae224530d7a 100644 --- a/src/gui/widgets/BarModelEditor.cpp +++ b/src/gui/widgets/BarModelEditor.cpp @@ -86,7 +86,7 @@ void BarModelEditor::paintEvent(QPaintEvent *event) // Paint the bar // Compute the percentage as: // min + x * (max - min) = v <=> x = (v - min) / (max - min) - auto const percentage = range == 0 ? 1. : (mod->value() - minValue) / range; + auto const percentage = range == 0 ? 1. : (model()->inverseScaledValue(model()->value()) - minValue) / range; int const margin = 3; QMargins const margins(margin, margin, margin, margin); diff --git a/src/gui/widgets/ComboBox.cpp b/src/gui/widgets/ComboBox.cpp index 2377a37abf8..945d30aa390 100644 --- a/src/gui/widgets/ComboBox.cpp +++ b/src/gui/widgets/ComboBox.cpp @@ -26,23 +26,22 @@ #include "ComboBox.h" -#include -#include #include #include #include +#include #include "CaptionMenu.h" -#include "embed.h" -#include "gui_templates.h" +#include "FontHelper.h" + +#define QT_SUPPORTS_WIDGET_SCREEN (QT_VERSION >= QT_VERSION_CHECK(5,14,0)) +#if !QT_SUPPORTS_WIDGET_SCREEN +#include +#include +#endif namespace lmms::gui { - -QPixmap * ComboBox::s_background = nullptr; -QPixmap * ComboBox::s_arrow = nullptr; -QPixmap * ComboBox::s_arrowSelected = nullptr; - const int CB_ARROW_BTN_WIDTH = 18; @@ -54,22 +53,7 @@ ComboBox::ComboBox( QWidget * _parent, const QString & _name ) : { setFixedHeight( ComboBox::DEFAULT_HEIGHT ); - if( s_background == nullptr ) - { - s_background = new QPixmap( embed::getIconPixmap( "combobox_bg" ) ); - } - - if( s_arrow == nullptr ) - { - s_arrow = new QPixmap( embed::getIconPixmap( "combobox_arrow" ) ); - } - - if( s_arrowSelected == nullptr ) - { - s_arrowSelected = new QPixmap( embed::getIconPixmap( "combobox_arrow_selected" ) ); - } - - setFont( pointSize<9>( font() ) ); + setFont(adjustedToPixelSize(font(), DEFAULT_FONT_SIZE)); connect( &m_menu, SIGNAL(triggered(QAction*)), this, SLOT(setItem(QAction*))); @@ -136,15 +120,23 @@ void ComboBox::mousePressEvent( QMouseEvent* event ) a->setData( i ); } - QPoint gpos = mapToGlobal( QPoint( 0, height() ) ); - if( gpos.y() + m_menu.sizeHint().height() < qApp->desktop()->height() ) + QPoint gpos = mapToGlobal(QPoint(0, height())); + + #if (QT_SUPPORTS_WIDGET_SCREEN) + bool const menuCanBeFullyShown = screen()->geometry().contains(QRect(gpos, m_menu.sizeHint())); + #else + bool const menuCanBeFullyShown = gpos.y() + m_menu.sizeHint().height() < qApp->desktop()->height(); + #endif + + if (menuCanBeFullyShown) { - m_menu.exec( gpos ); + m_menu.exec(gpos); } else { - m_menu.exec( mapToGlobal( QPoint( width(), 0 ) ) ); + m_menu.exec(mapToGlobal(QPoint(width(), 0))); } + m_pressed = false; update(); } @@ -172,7 +164,7 @@ void ComboBox::paintEvent( QPaintEvent * _pe ) { QPainter p( this ); - p.fillRect( 2, 2, width()-2, height()-4, *s_background ); + p.fillRect(2, 2, width() - 2, height() - 4, m_background); QColor shadow = palette().shadow().color(); QColor highlight = palette().highlight().color(); @@ -194,9 +186,9 @@ void ComboBox::paintEvent( QPaintEvent * _pe ) style()->drawPrimitive( QStyle::PE_Frame, &opt, &p, this ); - QPixmap * arrow = m_pressed ? s_arrowSelected : s_arrow; + auto arrow = m_pressed ? m_arrowSelected : m_arrow; - p.drawPixmap( width() - CB_ARROW_BTN_WIDTH + 3, 4, *arrow ); + p.drawPixmap(width() - CB_ARROW_BTN_WIDTH + 3, 4, arrow); if( model() && model()->size() > 0 ) { @@ -228,7 +220,8 @@ void ComboBox::wheelEvent( QWheelEvent* event ) { if( model() ) { - model()->setInitValue(model()->value() + ((event->angleDelta().y() < 0) ? 1 : -1)); + const int direction = (event->angleDelta().y() < 0 ? 1 : -1) * (event->inverted() ? -1 : 1); + model()->setInitValue(model()->value() + direction); update(); event->accept(); } diff --git a/src/gui/widgets/Fader.cpp b/src/gui/widgets/Fader.cpp index dcf648c37e3..a647df416cf 100644 --- a/src/gui/widgets/Fader.cpp +++ b/src/gui/widgets/Fader.cpp @@ -49,6 +49,7 @@ #include #include #include +#include #include "lmms_math.h" #include "embed.h" @@ -59,118 +60,60 @@ namespace lmms::gui { +SimpleTextFloat* Fader::s_textFloat = nullptr; -SimpleTextFloat * Fader::s_textFloat = nullptr; -QPixmap * Fader::s_back = nullptr; -QPixmap * Fader::s_leds = nullptr; -QPixmap * Fader::s_knob = nullptr; - -Fader::Fader( FloatModel * _model, const QString & _name, QWidget * _parent ) : - QWidget( _parent ), - FloatModelView( _model, this ), - m_fPeakValue_L( 0.0 ), - m_fPeakValue_R( 0.0 ), - m_persistentPeak_L( 0.0 ), - m_persistentPeak_R( 0.0 ), - m_fMinPeak( 0.01f ), - m_fMaxPeak( 1.1 ), - m_levelsDisplayedInDBFS(false), - m_moveStartPoint( -1 ), - m_startValue( 0 ), - m_peakGreen( 0, 0, 0 ), - m_peakRed( 0, 0, 0 ), - m_peakYellow( 0, 0, 0 ) +Fader::Fader(FloatModel* model, const QString& name, QWidget* parent) : + QWidget(parent), + FloatModelView(model, this) { - if( s_textFloat == nullptr ) + if (s_textFloat == nullptr) { s_textFloat = new SimpleTextFloat; } - if( ! s_back ) - { - s_back = new QPixmap( embed::getIconPixmap( "fader_background" ) ); - } - if( ! s_leds ) - { - s_leds = new QPixmap( embed::getIconPixmap( "fader_leds" ) ); - } - if( ! s_knob ) - { - s_knob = new QPixmap( embed::getIconPixmap( "fader_knob" ) ); - } - m_back = s_back; - m_leds = s_leds; - m_knob = s_knob; - - init(_model, _name); + setWindowTitle(name); + setAttribute(Qt::WA_OpaquePaintEvent, false); + // For now resize the widget to the size of the previous background image "fader_background.png" as it was found in the classic and default theme + constexpr QSize minimumSize(23, 116); + setMinimumSize(minimumSize); + resize(minimumSize); + setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding); + setModel(model); + setHintText("Volume:", "%"); m_conversionFactor = 100.0; } -Fader::Fader( FloatModel * model, const QString & name, QWidget * parent, QPixmap * back, QPixmap * leds, QPixmap * knob ) : - QWidget( parent ), - FloatModelView( model, this ), - m_fPeakValue_L( 0.0 ), - m_fPeakValue_R( 0.0 ), - m_persistentPeak_L( 0.0 ), - m_persistentPeak_R( 0.0 ), - m_fMinPeak( 0.01f ), - m_fMaxPeak( 1.1 ), - m_levelsDisplayedInDBFS(false), - m_moveStartPoint( -1 ), - m_startValue( 0 ), - m_peakGreen( 0, 0, 0 ), - m_peakRed( 0, 0, 0 ) +Fader::Fader(FloatModel* model, const QString& name, QWidget* parent, const QPixmap& knob) : + Fader(model, name, parent) { - if( s_textFloat == nullptr ) - { - s_textFloat = new SimpleTextFloat; - } - - m_back = back; - m_leds = leds; m_knob = knob; - - init(model, name); -} - -void Fader::init(FloatModel * model, QString const & name) -{ - setWindowTitle( name ); - setAttribute( Qt::WA_OpaquePaintEvent, false ); - QSize backgroundSize = m_back->size(); - setMinimumSize( backgroundSize ); - setMaximumSize( backgroundSize ); - resize( backgroundSize ); - setModel( model ); - setHintText( "Volume:","%"); } - -void Fader::contextMenuEvent( QContextMenuEvent * _ev ) +void Fader::contextMenuEvent(QContextMenuEvent* ev) { - CaptionMenu contextMenu( windowTitle() ); - addDefaultActions( &contextMenu ); - contextMenu.exec( QCursor::pos() ); - _ev->accept(); + CaptionMenu contextMenu(windowTitle()); + addDefaultActions(&contextMenu); + contextMenu.exec(QCursor::pos()); + ev->accept(); } -void Fader::mouseMoveEvent( QMouseEvent *mouseEvent ) +void Fader::mouseMoveEvent(QMouseEvent* mouseEvent) { - if( m_moveStartPoint >= 0 ) + if (m_moveStartPoint >= 0) { int dy = m_moveStartPoint - mouseEvent->globalY(); - float delta = dy * ( model()->maxValue() - model()->minValue() ) / (float) ( height() - ( *m_knob ).height() ); + float delta = dy * (model()->maxValue() - model()->minValue()) / (float)(height() - (m_knob).height()); const auto step = model()->step(); - float newValue = static_cast( static_cast( ( m_startValue + delta ) / step + 0.5 ) ) * step; - model()->setValue( newValue ); + float newValue = static_cast(static_cast((m_startValue + delta) / step + 0.5)) * step; + model()->setValue(newValue); updateTextFloat(); } @@ -179,19 +122,19 @@ void Fader::mouseMoveEvent( QMouseEvent *mouseEvent ) -void Fader::mousePressEvent( QMouseEvent* mouseEvent ) +void Fader::mousePressEvent(QMouseEvent* mouseEvent) { - if( mouseEvent->button() == Qt::LeftButton && - ! ( mouseEvent->modifiers() & Qt::ControlModifier ) ) + if (mouseEvent->button() == Qt::LeftButton && + !(mouseEvent->modifiers() & Qt::ControlModifier)) { - AutomatableModel *thisModel = model(); - if( thisModel ) + AutomatableModel* thisModel = model(); + if (thisModel) { thisModel->addJournalCheckPoint(); - thisModel->saveJournallingState( false ); + thisModel->saveJournallingState(false); } - if( mouseEvent->y() >= knobPosY() - ( *m_knob ).height() && mouseEvent->y() < knobPosY() ) + if (mouseEvent->y() >= knobPosY() - (m_knob).height() && mouseEvent->y() < knobPosY()) { updateTextFloat(); s_textFloat->show(); @@ -208,39 +151,36 @@ void Fader::mousePressEvent( QMouseEvent* mouseEvent ) } else { - AutomatableModelView::mousePressEvent( mouseEvent ); + AutomatableModelView::mousePressEvent(mouseEvent); } } -void Fader::mouseDoubleClickEvent( QMouseEvent* mouseEvent ) +void Fader::mouseDoubleClickEvent(QMouseEvent* mouseEvent) { bool ok; - float newValue; - // TODO: dbV handling - newValue = QInputDialog::getDouble( this, tr( "Set value" ), - tr( "Please enter a new value between %1 and %2:" ). - arg( model()->minValue() * m_conversionFactor ). - arg( model()->maxValue() * m_conversionFactor ), - model()->getRoundedValue() * m_conversionFactor, - model()->minValue() * m_conversionFactor, - model()->maxValue() * m_conversionFactor, model()->getDigitCount(), &ok ) / m_conversionFactor; - - if( ok ) + // TODO: dbFS handling + auto minv = model()->minValue() * m_conversionFactor; + auto maxv = model()->maxValue() * m_conversionFactor; + float enteredValue = QInputDialog::getDouble(this, tr("Set value"), + tr("Please enter a new value between %1 and %2:").arg(minv).arg(maxv), + model()->getRoundedValue() * m_conversionFactor, minv, maxv, model()->getDigitCount(), &ok); + + if (ok) { - model()->setValue( newValue ); + model()->setValue(enteredValue / m_conversionFactor); } } -void Fader::mouseReleaseEvent( QMouseEvent * mouseEvent ) +void Fader::mouseReleaseEvent(QMouseEvent* mouseEvent) { - if( mouseEvent && mouseEvent->button() == Qt::LeftButton ) + if (mouseEvent && mouseEvent->button() == Qt::LeftButton) { - AutomatableModel *thisModel = model(); - if( thisModel ) + AutomatableModel* thisModel = model(); + if (thisModel) { thisModel->restoreJournallingState(); } @@ -250,20 +190,14 @@ void Fader::mouseReleaseEvent( QMouseEvent * mouseEvent ) } -void Fader::wheelEvent ( QWheelEvent *ev ) +void Fader::wheelEvent (QWheelEvent* ev) { ev->accept(); + const int direction = (ev->angleDelta().y() > 0 ? 1 : -1) * (ev->inverted() ? -1 : 1); - if (ev->angleDelta().y() > 0) - { - model()->incValue( 1 ); - } - else - { - model()->incValue( -1 ); - } + model()->incValue(direction); updateTextFloat(); - s_textFloat->setVisibilityTimeOut( 1000 ); + s_textFloat->setVisibilityTimeOut(1000); } @@ -271,47 +205,40 @@ void Fader::wheelEvent ( QWheelEvent *ev ) /// /// Set peak value (0.0 .. 1.0) /// -void Fader::setPeak( float fPeak, float &targetPeak, float &persistentPeak, QElapsedTimer &lastPeakTimer ) +void Fader::setPeak(float fPeak, float& targetPeak, float& persistentPeak, QElapsedTimer& lastPeakTimer) { - if( fPeak < m_fMinPeak ) - { - fPeak = m_fMinPeak; - } - else if( fPeak > m_fMaxPeak ) - { - fPeak = m_fMaxPeak; - } - - if( targetPeak != fPeak) + if (targetPeak != fPeak) { targetPeak = fPeak; - if( targetPeak >= persistentPeak ) + if (targetPeak >= persistentPeak) { persistentPeak = targetPeak; lastPeakTimer.restart(); + emit peakChanged(persistentPeak); } update(); } - if( persistentPeak > 0 && lastPeakTimer.elapsed() > 1500 ) + if (persistentPeak > 0 && lastPeakTimer.elapsed() > 1500) { - persistentPeak = qMax( 0, persistentPeak-0.05 ); + persistentPeak = qMax(0, persistentPeak-0.05); + emit peakChanged(persistentPeak); update(); } } -void Fader::setPeak_L( float fPeak ) +void Fader::setPeak_L(float fPeak) { - setPeak( fPeak, m_fPeakValue_L, m_persistentPeak_L, m_lastPeakTimer_L ); + setPeak(fPeak, m_fPeakValue_L, m_persistentPeak_L, m_lastPeakTimer_L); } -void Fader::setPeak_R( float fPeak ) +void Fader::setPeak_R(float fPeak) { - setPeak( fPeak, m_fPeakValue_R, m_persistentPeak_R, m_lastPeakTimer_R ); + setPeak(fPeak, m_fPeakValue_R, m_persistentPeak_R, m_lastPeakTimer_R); } @@ -319,169 +246,191 @@ void Fader::setPeak_R( float fPeak ) // update tooltip showing value and adjust position while changing fader value void Fader::updateTextFloat() { - if( ConfigManager::inst()->value( "app", "displaydbfs" ).toInt() && m_conversionFactor == 100.0 ) + if (ConfigManager::inst()->value("app", "displaydbfs").toInt() && m_conversionFactor == 100.0) { - s_textFloat->setText( QString("Volume: %1 dBFS"). - arg( ampToDbfs( model()->value() ), 3, 'f', 2 ) ); + QString label(tr("Volume: %1 dBFS")); + + auto const modelValue = model()->value(); + if (modelValue <= 0.) + { + s_textFloat->setText(label.arg("-∞")); + } + else + { + s_textFloat->setText(label.arg(ampToDbfs(modelValue), 3, 'f', 2)); + } } else { - s_textFloat->setText( m_description + " " + QString("%1 ").arg( model()->value() * m_conversionFactor ) + " " + m_unit ); + s_textFloat->setText(m_description + " " + QString("%1 ").arg(model()->value() * m_conversionFactor) + " " + m_unit); } s_textFloat->moveGlobal(this, QPoint(width() + 2, knobPosY() - s_textFloat->height() / 2)); } -inline int Fader::calculateDisplayPeak( float fPeak ) -{ - int peak = (int)( m_back->height() - ( fPeak / ( m_fMaxPeak - m_fMinPeak ) ) * m_back->height() ); - - return qMin( peak, m_back->height() ); -} - - -void Fader::paintEvent( QPaintEvent * ev) +void Fader::paintEvent(QPaintEvent* ev) { QPainter painter(this); - // Draw the background - painter.drawPixmap( ev->rect(), *m_back, ev->rect() ); - // Draw the levels with peaks - if (getLevelsDisplayedInDBFS()) - { - paintDBFSLevels(ev, painter); - } - else - { - paintLinearLevels(ev, painter); - } + paintLevels(ev, painter, !m_levelsDisplayedInDBFS); // Draw the knob - painter.drawPixmap( 0, knobPosY() - m_knob->height(), *m_knob ); + painter.drawPixmap((width() - m_knob.width()) / 2, knobPosY() - m_knob.height(), m_knob); } -void Fader::paintDBFSLevels(QPaintEvent * ev, QPainter & painter) +void Fader::paintLevels(QPaintEvent* ev, QPainter& painter, bool linear) { - int height = m_back->height(); - int width = m_back->width() / 2; - int center = m_back->width() - width; + const auto mapper = linear + ? +[](float value) -> float { return value; } + : +[](float value) -> float { return ampToDbfs(qMax(0.0001f, value)); }; - float const maxDB(ampToDbfs(m_fMaxPeak)); - float const minDB(ampToDbfs(m_fMinPeak)); + const float mappedMinPeak = mapper(m_fMinPeak); + const float mappedMaxPeak = mapper(m_fMaxPeak); + const float mappedPeakL = mapper(m_fPeakValue_L); + const float mappedPeakR = mapper(m_fPeakValue_R); + const float mappedPersistentPeakL = mapper(m_persistentPeak_L); + const float mappedPersistentPeakR = mapper(m_persistentPeak_R); + const float mappedUnity = mapper(1.f); - // We will need to divide by the span between min and max several times. It's more - // efficient to calculate the reciprocal once and then to multiply. - float const fullSpanReciprocal = 1 / (maxDB - minDB); + painter.save(); + const QRect baseRect = rect(); - // Draw left levels - float const leftSpan = ampToDbfs(qMax(0.0001, m_fPeakValue_L)) - minDB; - int peak_L = height * leftSpan * fullSpanReciprocal; - QRect drawRectL( 0, height - peak_L, width, peak_L ); // Source and target are identical - painter.drawPixmap( drawRectL, *m_leds, drawRectL ); - - float const persistentLeftPeakDBFS = ampToDbfs(qMax(0.0001, m_persistentPeak_L)); - int persistentPeak_L = height * (1 - (persistentLeftPeakDBFS - minDB) * fullSpanReciprocal); - // the LED's have a 4px padding and we don't want the peaks - // to draw on the fader background - if( persistentPeak_L <= 4 ) - { - persistentPeak_L = 4; - } - if( persistentLeftPeakDBFS > minDB ) - { - QColor const & peakColor = clips(m_persistentPeak_L) ? peakRed() : - persistentLeftPeakDBFS >= -6 ? peakYellow() : peakGreen(); - painter.fillRect( QRect( 2, persistentPeak_L, 7, 1 ), peakColor ); - } + const int height = baseRect.height(); + const int margin = 1; + const int distanceBetweenMeters = 2; - // Draw right levels - float const rightSpan = ampToDbfs(qMax(0.0001, m_fPeakValue_R)) - minDB; - int peak_R = height * rightSpan * fullSpanReciprocal; - QRect const drawRectR( center, height - peak_R, width, peak_R ); // Source and target are identical - painter.drawPixmap( drawRectR, *m_leds, drawRectR ); - - float const persistentRightPeakDBFS = ampToDbfs(qMax(0.0001, m_persistentPeak_R)); - int persistentPeak_R = height * (1 - (persistentRightPeakDBFS - minDB) * fullSpanReciprocal); - // the LED's have a 4px padding and we don't want the peaks - // to draw on the fader background - if( persistentPeak_R <= 4 ) - { - persistentPeak_R = 4; - } - if( persistentRightPeakDBFS > minDB ) - { - QColor const & peakColor = clips(m_persistentPeak_R) ? peakRed() : - persistentRightPeakDBFS >= -6 ? peakYellow() : peakGreen(); - painter.fillRect( QRect( 14, persistentPeak_R, 7, 1 ), peakColor ); - } -} + const int numberOfMeters = 2; -void Fader::paintLinearLevels(QPaintEvent * ev, QPainter & painter) -{ - // peak leds - //float fRange = abs( m_fMaxPeak ) + abs( m_fMinPeak ); + // Compute the width of a single meter by removing the margins and the space between meters + const int leftAndRightMargin = 2 * margin; + const int pixelsBetweenAllMeters = distanceBetweenMeters * (numberOfMeters - 1); + const int remainingPixelsForMeters = baseRect.width() - leftAndRightMargin - pixelsBetweenAllMeters; + const int meterWidth = remainingPixelsForMeters / numberOfMeters; - int height = m_back->height(); - int width = m_back->width() / 2; - int center = m_back->width() - width; + QRect leftMeterOutlineRect(margin, margin, meterWidth, height - 2 * margin); + QRect rightMeterOutlineRect(baseRect.width() - margin - meterWidth, margin, meterWidth, height - 2 * margin); - int peak_L = calculateDisplayPeak( m_fPeakValue_L - m_fMinPeak ); - int persistentPeak_L = qMax( 3, calculateDisplayPeak( m_persistentPeak_L - m_fMinPeak ) ); - painter.drawPixmap( QRect( 0, peak_L, width, height - peak_L ), *m_leds, QRect( 0, peak_L, width, height - peak_L ) ); + QMargins removedMargins(1, 1, 1, 1); + QRect leftMeterRect = leftMeterOutlineRect.marginsRemoved(removedMargins); + QRect rightMeterRect = rightMeterOutlineRect.marginsRemoved(removedMargins); - if( m_persistentPeak_L > 0.05 ) + QPainterPath path; + qreal radius = 2; + path.addRoundedRect(leftMeterOutlineRect, radius, radius); + path.addRoundedRect(rightMeterOutlineRect, radius, radius); + painter.fillPath(path, Qt::black); + + // Now clip everything to the paths of the meters + painter.setClipPath(path); + + // This linear map performs the following mapping: + // Value (dbFS or linear) -> window coordinates of the widget + // It is for example used to determine the height of peaks, markers and to define the gradient for the levels + const LinearMap valuesToWindowCoordinates(mappedMaxPeak, leftMeterRect.y(), mappedMinPeak, leftMeterRect.y() + leftMeterRect.height()); + + // This lambda takes a value (in dbFS or linear) and a rectangle and computes a rectangle + // that represent the value within the rectangle. It is for example used to compute the unity indicators. + const auto computeLevelMarkerRect = [&valuesToWindowCoordinates](const QRect& rect, float peak) -> QRect { - painter.fillRect( QRect( 2, persistentPeak_L, 7, 1 ), ( m_persistentPeak_L < 1.0 ) - ? peakGreen() - : peakRed() ); - } + return QRect(rect.x(), valuesToWindowCoordinates.map(peak), rect.width(), 1); + }; - int peak_R = calculateDisplayPeak( m_fPeakValue_R - m_fMinPeak ); - int persistentPeak_R = qMax( 3, calculateDisplayPeak( m_persistentPeak_R - m_fMinPeak ) ); - painter.drawPixmap( QRect( center, peak_R, width, height - peak_R ), *m_leds, QRect( center, peak_R, width, height - peak_R ) ); + // This lambda takes a peak value (in dbFS or linear) and a rectangle and computes a rectangle + // that represent the peak value within the rectangle. It's used to compute the peak indicators + // which "dance" on top of the level meters. + const auto computePeakRect = [&valuesToWindowCoordinates](const QRect& rect, float peak) -> QRect + { + return QRect(rect.x(), valuesToWindowCoordinates.map(peak), rect.width(), 1); + }; - if( m_persistentPeak_R > 0.05 ) + // This lambda takes a peak value (in dbFS or linear) and a rectangle and returns an adjusted copy of the + // rectangle that represents the peak value. It is used to compute the level meters themselves. + const auto computeLevelRect = [&valuesToWindowCoordinates](const QRect& rect, float peak) -> QRect { - painter.fillRect( QRect( 14, persistentPeak_R, 7, 1 ), ( m_persistentPeak_R < 1.0 ) - ? peakGreen() - : peakRed() ); - } -} + QRect result(rect); + result.setTop(valuesToWindowCoordinates.map(peak)); + return result; + }; -QColor const & Fader::peakGreen() const -{ - return m_peakGreen; -} + // Draw left and right level markers for the unity lines (0 dbFS, 1.0 amplitude) + if (getRenderUnityLine()) + { + const auto unityRectL = computeLevelMarkerRect(leftMeterRect, mappedUnity); + painter.fillRect(unityRectL, m_unityMarker); -QColor const & Fader::peakRed() const -{ - return m_peakRed; -} + const auto unityRectR = computeLevelMarkerRect(rightMeterRect, mappedUnity); + painter.fillRect(unityRectR, m_unityMarker); + } -QColor const & Fader::peakYellow() const -{ - return m_peakYellow; -} + // These values define where the gradient changes values, i.e. the ranges + // for clipping, warning and ok. + // Please ensure that "clip starts" is the maximum value and that "ok ends" + // is the minimum value and that all other values lie inbetween. Otherwise + // there will be warnings when the gradient is defined. + const float mappedClipStarts = mapper(dbfsToAmp(0.f)); + const float mappedWarnEnd = mapper(dbfsToAmp(-0.01f)); + const float mappedWarnStart = mapper(dbfsToAmp(-6.f)); + const float mappedOkEnd = mapper(dbfsToAmp(-12.f)); + + // Prepare the gradient for the meters + // + // The idea is the following. We want to be able to render arbitrary ranges of min and max values. + // Therefore we first compute the start and end point of the gradient in window coordinates. + // The gradient is assumed to start with the clip color and to end with the ok color with warning values in between. + // We know the min and max peaks that map to a rectangle where we draw the levels. We can use the values of the min and max peaks + // as well as the Y-coordinates of the rectangle to compute a map which will give us the coordinates of the value where the clipping + // starts and where the ok area end. These coordinates are used to initialize the gradient. Please note that the gradient might thus + // extend the rectangle into which we paint. + float clipStartYCoord = valuesToWindowCoordinates.map(mappedClipStarts); + float okEndYCoord = valuesToWindowCoordinates.map(mappedOkEnd); + + QLinearGradient linearGrad(0, clipStartYCoord, 0, okEndYCoord); + + // We already know for the gradient that the clip color will be at 0 and that the ok color is at 1. + // What's left to do is to map the inbetween values into the interval [0,1]. + const LinearMap mapBetweenClipAndOk(mappedClipStarts, 0.f, mappedOkEnd, 1.f); + + linearGrad.setColorAt(0, m_peakClip); + linearGrad.setColorAt(mapBetweenClipAndOk.map(mappedWarnEnd), m_peakWarn); + linearGrad.setColorAt(mapBetweenClipAndOk.map(mappedWarnStart), m_peakWarn); + linearGrad.setColorAt(1, m_peakOk); -void Fader::setPeakGreen( const QColor & c ) -{ - m_peakGreen = c; -} + // Draw left levels + if (mappedPeakL > mappedMinPeak) + { + QPainterPath leftMeterPath; + leftMeterPath.addRoundedRect(computeLevelRect(leftMeterRect, mappedPeakL), radius, radius); + painter.fillPath(leftMeterPath, linearGrad); + } -void Fader::setPeakRed( const QColor & c ) -{ - m_peakRed = c; -} + // Draw left peaks + if (mappedPersistentPeakL > mappedMinPeak) + { + const auto peakRectL = computePeakRect(leftMeterRect, mappedPersistentPeakL); + painter.fillRect(peakRectL, linearGrad); + } -void Fader::setPeakYellow( const QColor & c ) -{ - m_peakYellow = c; -} + // Draw right levels + if (mappedPeakR > mappedMinPeak) + { + QPainterPath rightMeterPath; + rightMeterPath.addRoundedRect(computeLevelRect(rightMeterRect, mappedPeakR), radius, radius); + painter.fillPath(rightMeterPath, linearGrad); + } + // Draw right peaks + if (mappedPersistentPeakR > mappedMinPeak) + { + const auto peakRectR = computePeakRect(rightMeterRect, mappedPersistentPeakR); + painter.fillRect(peakRectR, linearGrad); + } + + painter.restore(); +} } // namespace lmms::gui diff --git a/src/gui/widgets/FloatModelEditorBase.cpp b/src/gui/widgets/FloatModelEditorBase.cpp index 7421908e2d2..ebd0d3d9dc7 100644 --- a/src/gui/widgets/FloatModelEditorBase.cpp +++ b/src/gui/widgets/FloatModelEditorBase.cpp @@ -326,6 +326,11 @@ void FloatModelEditorBase::wheelEvent(QWheelEvent * we) } } + // Handle "natural" scrolling, which is common on trackpads and touch devices + if (we->inverted()) { + direction = -direction; + } + // Compute the number of steps but make sure that we always do at least one step const float stepMult = std::max(range / numberOfStepsForFullSweep / step, 1.f); const int inc = direction * stepMult; @@ -388,12 +393,15 @@ void FloatModelEditorBase::enterValue() if (isVolumeKnob() && ConfigManager::inst()->value("app", "displaydbfs").toInt()) { + auto const initalValue = model()->getRoundedValue() / 100.0; + auto const initialDbValue = initalValue > 0. ? ampToDbfs(initalValue) : -96; + new_val = QInputDialog::getDouble( this, tr("Set value"), tr("Please enter a new value between " "-96.0 dBFS and 6.0 dBFS:"), - ampToDbfs(model()->getRoundedValue() / 100.0), - -96.0, 6.0, model()->getDigitCount(), &ok); + initialDbValue, -96.0, 6.0, model()->getDigitCount(), &ok); + if (new_val <= -96.0) { new_val = 0.0f; @@ -439,9 +447,12 @@ QString FloatModelEditorBase::displayValue() const if (isVolumeKnob() && ConfigManager::inst()->value("app", "displaydbfs").toInt()) { - return m_description.trimmed() + QString(" %1 dBFS"). - arg(ampToDbfs(model()->getRoundedValue() / volumeRatio()), - 3, 'f', 2); + auto const valueToVolumeRatio = model()->getRoundedValue() / volumeRatio(); + return m_description.trimmed() + ( + valueToVolumeRatio == 0. + ? QString(" -∞ dBFS") + : QString(" %1 dBFS").arg(ampToDbfs(valueToVolumeRatio), 3, 'f', 2) + ); } return m_description.trimmed() + QString(" %1"). diff --git a/src/gui/widgets/Graph.cpp b/src/gui/widgets/Graph.cpp index 9972209a842..0781d4f1113 100644 --- a/src/gui/widgets/Graph.cpp +++ b/src/gui/widgets/Graph.cpp @@ -26,6 +26,7 @@ #include #include "Graph.h" +#include "SampleLoader.h" #include "StringPairDrag.h" #include "SampleBuffer.h" #include "Oscillator.h" @@ -588,21 +589,16 @@ void graphModel::setWaveToNoise() QString graphModel::setWaveToUser() { - auto sampleBuffer = new SampleBuffer; - QString fileName = sampleBuffer->openAndSetWaveformFile(); + QString fileName = gui::SampleLoader::openWaveformFile(); if( fileName.isEmpty() == false ) { - sampleBuffer->dataReadLock(); + auto sampleBuffer = gui::SampleLoader::createBufferFromFile(fileName); for( int i = 0; i < length(); i++ ) { - m_samples[i] = sampleBuffer->userWaveSample( - i / static_cast( length() ) ); + m_samples[i] = Oscillator::userWaveSample(sampleBuffer.get(), i / static_cast(length())); } - sampleBuffer->dataUnlock(); } - sharedObject::unref( sampleBuffer ); - emit samplesChanged( 0, length() - 1 ); return fileName; }; @@ -647,11 +643,10 @@ void graphModel::convolve(const float *convolution, // store values in temporary array QVector temp = m_samples; const int graphLength = length(); - float sum; // make a cyclic convolution for ( int i = 0; i < graphLength; i++ ) { - sum = 0; + float sum = 0.0f; for ( int j = 0; j < convolutionLength; j++ ) { sum += convolution[j] * temp[( i + j ) % graphLength]; diff --git a/src/gui/widgets/GroupBox.cpp b/src/gui/widgets/GroupBox.cpp index b5187de2572..e55052823ec 100644 --- a/src/gui/widgets/GroupBox.cpp +++ b/src/gui/widgets/GroupBox.cpp @@ -31,7 +31,7 @@ #include "GroupBox.h" #include "embed.h" -#include "gui_templates.h" +#include "FontHelper.h" namespace lmms::gui @@ -72,13 +72,23 @@ void GroupBox::modelChanged() } +bool GroupBox::ledButtonShown() const +{ + return m_led->isVisible(); +} + + +void GroupBox::setLedButtonShown(bool value) +{ + m_led->setVisible(value); +} void GroupBox::mousePressEvent( QMouseEvent * _me ) { - if( _me->y() > 1 && _me->y() < 13 && _me->button() == Qt::LeftButton ) + if (ledButtonShown() && _me->y() > 1 && _me->y() < 13 && _me->button() == Qt::LeftButton) { - model()->setValue( !model()->value() ); + model()->setValue(!model()->value()); } } @@ -101,8 +111,10 @@ void GroupBox::paintEvent( QPaintEvent * pe ) // draw text p.setPen( palette().color( QPalette::Active, QPalette::Text ) ); - p.setFont( pointSize<8>( font() ) ); - p.drawText( 22, m_titleBarHeight, m_caption ); + p.setFont(adjustedToPixelSize(font(), DEFAULT_FONT_SIZE)); + + int const captionX = ledButtonShown() ? 22 : 6; + p.drawText(captionX, m_titleBarHeight, m_caption); } diff --git a/src/gui/widgets/Knob.cpp b/src/gui/widgets/Knob.cpp index 00a9363c87f..8941dcc29d4 100644 --- a/src/gui/widgets/Knob.cpp +++ b/src/gui/widgets/Knob.cpp @@ -33,7 +33,7 @@ #include "lmms_math.h" #include "DeprecationHelper.h" #include "embed.h" -#include "gui_templates.h" +#include "FontHelper.h" namespace lmms::gui @@ -139,7 +139,7 @@ void Knob::setLabel( const QString & txt ) if( m_knobPixmap ) { setFixedSize(qMax( m_knobPixmap->width(), - horizontalAdvance(QFontMetrics(pointSizeF(font(), 6.5)), m_label)), + horizontalAdvance(QFontMetrics(adjustedToPixelSize(font(), SMALL_FONT_SIZE)), m_label)), m_knobPixmap->height() + 10); } @@ -459,7 +459,7 @@ void Knob::paintEvent( QPaintEvent * _me ) { if (!m_isHtmlLabel) { - p.setFont(pointSizeF(p.font(), 6.5)); + p.setFont(adjustedToPixelSize(p.font(), SMALL_FONT_SIZE)); p.setPen(textColor()); p.drawText(width() / 2 - horizontalAdvance(p.fontMetrics(), m_label) / 2, @@ -467,7 +467,8 @@ void Knob::paintEvent( QPaintEvent * _me ) } else { - m_tdRenderer->setDefaultFont(pointSizeF(p.font(), 6.5)); + // TODO setHtmlLabel is never called so this will never be executed. Remove functionality? + m_tdRenderer->setDefaultFont(adjustedToPixelSize(p.font(), SMALL_FONT_SIZE)); p.translate((width() - m_tdRenderer->idealWidth()) / 2, (height() - m_tdRenderer->pageSize().height()) / 2); m_tdRenderer->drawContents(&p); } diff --git a/src/gui/widgets/LcdFloatSpinBox.cpp b/src/gui/widgets/LcdFloatSpinBox.cpp index c7e20467a5b..37d262e4ba6 100644 --- a/src/gui/widgets/LcdFloatSpinBox.cpp +++ b/src/gui/widgets/LcdFloatSpinBox.cpp @@ -41,7 +41,7 @@ #include "DeprecationHelper.h" #include "embed.h" #include "GuiApplication.h" -#include "gui_templates.h" +#include "FontHelper.h" #include "MainWindow.h" namespace lmms::gui @@ -245,7 +245,7 @@ void LcdFloatSpinBox::paintEvent(QPaintEvent*) // Label if (!m_label.isEmpty()) { - p.setFont(pointSizeF(p.font(), 6.5)); + p.setFont(adjustedToPixelSize(p.font(), DEFAULT_FONT_SIZE)); p.setPen(m_wholeDisplay.textShadowColor()); p.drawText(width() / 2 - p.fontMetrics().boundingRect(m_label).width() / 2 + 1, height(), m_label); p.setPen(m_wholeDisplay.textColor()); diff --git a/src/gui/widgets/LcdSpinBox.cpp b/src/gui/widgets/LcdSpinBox.cpp index b53d7ddb5b0..3f12360ccdc 100644 --- a/src/gui/widgets/LcdSpinBox.cpp +++ b/src/gui/widgets/LcdSpinBox.cpp @@ -141,7 +141,9 @@ void LcdSpinBox::mouseReleaseEvent(QMouseEvent*) void LcdSpinBox::wheelEvent(QWheelEvent * we) { we->accept(); - model()->setValue(model()->value() + ((we->angleDelta().y() > 0) ? 1 : -1) * model()->step()); + const int direction = (we->angleDelta().y() > 0 ? 1 : -1) * (we->inverted() ? -1 : 1); + + model()->setValue(model()->value() + direction * model()->step()); emit manualChange(); } diff --git a/src/gui/widgets/LcdWidget.cpp b/src/gui/widgets/LcdWidget.cpp index b8afcd46d19..4b07af6f73b 100644 --- a/src/gui/widgets/LcdWidget.cpp +++ b/src/gui/widgets/LcdWidget.cpp @@ -31,7 +31,7 @@ #include "LcdWidget.h" #include "DeprecationHelper.h" #include "embed.h" -#include "gui_templates.h" +#include "FontHelper.h" namespace lmms::gui @@ -66,17 +66,6 @@ LcdWidget::LcdWidget(int numDigits, const QString& style, QWidget* parent, const initUi( name, style ); } - - - -LcdWidget::~LcdWidget() -{ - delete m_lcdPixmap; -} - - - - void LcdWidget::setValue(int value) { QString s = m_textForValue[value]; @@ -89,20 +78,26 @@ void LcdWidget::setValue(int value) } } - m_display = s; + if (m_display != s) + { + m_display = s; - update(); + update(); + } } void LcdWidget::setValue(float value) { - if (value < 0 && value > -1) + if (-1 < value && value < 0) { QString s = QString::number(static_cast(value)); s.prepend('-'); - m_display = s; - update(); + if (m_display != s) + { + m_display = s; + update(); + } } else { @@ -162,11 +157,8 @@ void LcdWidget::paintEvent( QPaintEvent* ) { p.translate(margin, margin); // Left Margin - p.drawPixmap( - cellRect, - *m_lcdPixmap, - QRect(QPoint(charsPerPixmap * m_cellWidth, isEnabled() ? 0 : m_cellHeight), cellSize) - ); + p.drawPixmap(cellRect, m_lcdPixmap, + QRect(QPoint(charsPerPixmap * m_cellWidth, isEnabled() ? 0 : m_cellHeight), cellSize)); p.translate(m_marginWidth, 0); } @@ -174,8 +166,7 @@ void LcdWidget::paintEvent( QPaintEvent* ) // Padding for( int i=0; i < m_numDigits - m_display.length(); i++ ) { - p.drawPixmap( cellRect, *m_lcdPixmap, - QRect( QPoint( 10 * m_cellWidth, isEnabled()?0:m_cellHeight) , cellSize ) ); + p.drawPixmap(cellRect, m_lcdPixmap, QRect(QPoint(10 * m_cellWidth, isEnabled() ? 0 : m_cellHeight), cellSize)); p.translate( m_cellWidth, 0 ); } @@ -189,19 +180,14 @@ void LcdWidget::paintEvent( QPaintEvent* ) else val = 10; } - p.drawPixmap( cellRect, *m_lcdPixmap, - QRect( QPoint( val*m_cellWidth, - isEnabled()?0:m_cellHeight ), - cellSize ) ); + p.drawPixmap(cellRect, m_lcdPixmap, QRect(QPoint(val * m_cellWidth, isEnabled() ? 0 : m_cellHeight), cellSize)); p.translate( m_cellWidth, 0 ); } // Right Margin - p.drawPixmap(QRect(0, 0, m_seamlessRight ? 0 : m_marginWidth - 1, m_cellHeight), - *m_lcdPixmap, + p.drawPixmap(QRect(0, 0, m_seamlessRight ? 0 : m_marginWidth - 1, m_cellHeight), m_lcdPixmap, QRect(charsPerPixmap * m_cellWidth, isEnabled() ? 0 : m_cellHeight, m_cellWidth / 2, m_cellHeight)); - p.restore(); // Border @@ -223,7 +209,7 @@ void LcdWidget::paintEvent( QPaintEvent* ) // Label if( !m_label.isEmpty() ) { - p.setFont( pointSizeF( p.font(), 6.5 ) ); + p.setFont(adjustedToPixelSize(p.font(), DEFAULT_FONT_SIZE)); p.setPen( textShadowColor() ); p.drawText(width() / 2 - horizontalAdvance(p.fontMetrics(), m_label) / 2 + 1, @@ -275,7 +261,7 @@ void LcdWidget::updateSize() setFixedSize( qMax( m_cellWidth * m_numDigits + marginX1 + marginX2, - horizontalAdvance(QFontMetrics(pointSizeF(font(), 6.5)), m_label) + horizontalAdvance(QFontMetrics(adjustedToPixelSize(font(), DEFAULT_FONT_SIZE)), m_label) ), m_cellHeight + (2 * marginY) + 9 ); @@ -294,12 +280,12 @@ void LcdWidget::initUi(const QString& name , const QString& style) setWindowTitle( name ); // We should make a factory for these or something. - //m_lcdPixmap = new QPixmap( embed::getIconPixmap( QString( "lcd_" + style ).toUtf8().constData() ) ); - //m_lcdPixmap = new QPixmap( embed::getIconPixmap( "lcd_19green" ) ); // TODO!! - m_lcdPixmap = new QPixmap( embed::getIconPixmap( QString( "lcd_" + style ).toUtf8().constData() ) ); + //m_lcdPixmap = embed::getIconPixmap(QString("lcd_" + style).toUtf8().constData()); + //m_lcdPixmap = embed::getIconPixmap("lcd_19green"); // TODO!! - m_cellWidth = m_lcdPixmap->size().width() / LcdWidget::charsPerPixmap; - m_cellHeight = m_lcdPixmap->size().height() / 2; + m_lcdPixmap = embed::getIconPixmap(QString("lcd_" + style).toUtf8().constData()); + m_cellWidth = m_lcdPixmap.size().width() / LcdWidget::charsPerPixmap; + m_cellHeight = m_lcdPixmap.size().height() / 2; m_marginWidth = m_cellWidth / 2; diff --git a/src/gui/widgets/LedCheckBox.cpp b/src/gui/widgets/LedCheckBox.cpp index 75e73328fce..85039335633 100644 --- a/src/gui/widgets/LedCheckBox.cpp +++ b/src/gui/widgets/LedCheckBox.cpp @@ -22,14 +22,15 @@ * */ +#include "LedCheckBox.h" #include #include +#include -#include "LedCheckBox.h" #include "DeprecationHelper.h" #include "embed.h" -#include "gui_templates.h" +#include "FontHelper.h" namespace lmms::gui { @@ -61,17 +62,6 @@ LedCheckBox::LedCheckBox( QWidget * _parent, { } - - -LedCheckBox::~LedCheckBox() -{ - delete m_ledOnPixmap; - delete m_ledOffPixmap; -} - - - - void LedCheckBox::setText( const QString &s ) { m_text = s; @@ -100,14 +90,10 @@ void LedCheckBox::initUi( LedColor _color ) { setCheckable( true ); - m_ledOnPixmap = new QPixmap( embed::getIconPixmap( - names[static_cast(_color)].toUtf8().constData() ) ); - m_ledOffPixmap = new QPixmap( embed::getIconPixmap( "led_off" ) ); + m_ledOnPixmap = embed::getIconPixmap(names[static_cast(_color)].toUtf8().constData()); + m_ledOffPixmap = embed::getIconPixmap("led_off"); - if (m_legacyMode) - { - setFont( pointSize<7>( font() ) ); - } + if (m_legacyMode){ setFont(adjustedToPixelSize(font(), DEFAULT_FONT_SIZE)); } setText( m_text ); } @@ -119,8 +105,8 @@ void LedCheckBox::onTextUpdated() { QFontMetrics const fm = fontMetrics(); - int const width = m_ledOffPixmap->width() + 5 + horizontalAdvance(fm, text()); - int const height = m_legacyMode ? m_ledOffPixmap->height() : qMax(m_ledOffPixmap->height(), fm.height()); + int const width = m_ledOffPixmap.width() + 5 + horizontalAdvance(fm, text()); + int const height = m_legacyMode ? m_ledOffPixmap.height() : qMax(m_ledOffPixmap.height(), fm.height()); setFixedSize(width, height); } @@ -128,33 +114,26 @@ void LedCheckBox::onTextUpdated() void LedCheckBox::paintLegacy(QPaintEvent * pe) { QPainter p( this ); - p.setFont( pointSize<7>( font() ) ); + p.setFont(adjustedToPixelSize(font(), DEFAULT_FONT_SIZE)); - if( model()->value() == true ) - { - p.drawPixmap( 0, 0, *m_ledOnPixmap ); - } - else - { - p.drawPixmap( 0, 0, *m_ledOffPixmap ); - } + p.drawPixmap(0, 0, model()->value() ? m_ledOnPixmap : m_ledOffPixmap); p.setPen( QColor( 64, 64, 64 ) ); - p.drawText( m_ledOffPixmap->width() + 4, 11, text() ); + p.drawText(m_ledOffPixmap.width() + 4, 11, text()); p.setPen( QColor( 255, 255, 255 ) ); - p.drawText( m_ledOffPixmap->width() + 3, 10, text() ); + p.drawText(m_ledOffPixmap.width() + 3, 10, text()); } void LedCheckBox::paintNonLegacy(QPaintEvent * pe) { QPainter p(this); - QPixmap * drawnPixmap = model()->value() ? m_ledOnPixmap : m_ledOffPixmap; + auto drawnPixmap = model()->value() ? m_ledOnPixmap : m_ledOffPixmap; - p.drawPixmap( 0, rect().height() / 2 - drawnPixmap->height() / 2, *drawnPixmap); + p.drawPixmap(0, rect().height() / 2 - drawnPixmap.height() / 2, drawnPixmap); QRect r = rect(); - r -= QMargins(m_ledOffPixmap->width() + 5, 0, 0, 0); + r -= QMargins(m_ledOffPixmap.width() + 5, 0, 0, 0); p.drawText(r, text()); } diff --git a/src/gui/widgets/MeterDialog.cpp b/src/gui/widgets/MeterDialog.cpp index ced08382ef1..d01dca9a866 100644 --- a/src/gui/widgets/MeterDialog.cpp +++ b/src/gui/widgets/MeterDialog.cpp @@ -30,7 +30,6 @@ #include "MeterDialog.h" #include "MeterModel.h" -#include "gui_templates.h" #include "LcdSpinBox.h" namespace lmms::gui @@ -60,7 +59,6 @@ MeterDialog::MeterDialog( QWidget * _parent, bool _simple ) : { auto num_label = new QLabel(tr("Meter Numerator"), num); QFont f = num_label->font(); - num_label->setFont( pointSize<7>( f ) ); num_layout->addSpacing( 5 ); num_layout->addWidget( num_label ); } @@ -84,7 +82,6 @@ MeterDialog::MeterDialog( QWidget * _parent, bool _simple ) : { auto den_label = new QLabel(tr("Meter Denominator"), den); QFont f = den_label->font(); - den_label->setFont( pointSize<7>( f ) ); den_layout->addSpacing( 5 ); den_layout->addWidget( den_label ); } diff --git a/src/gui/widgets/MixerLineLcdSpinBox.cpp b/src/gui/widgets/MixerChannelLcdSpinBox.cpp similarity index 64% rename from src/gui/widgets/MixerLineLcdSpinBox.cpp rename to src/gui/widgets/MixerChannelLcdSpinBox.cpp index 06eb823c01c..73e21b479b4 100644 --- a/src/gui/widgets/MixerLineLcdSpinBox.cpp +++ b/src/gui/widgets/MixerChannelLcdSpinBox.cpp @@ -1,5 +1,5 @@ /* - * MixerLineLcdSpinBox.cpp - a specialization of LcdSpnBox for setting mixer channels + * MixerChannelLcdSpinBox.cpp - a specialization of LcdSpnBox for setting mixer channels * * Copyright (c) 2004-2014 Tobias Doerffel * @@ -22,7 +22,10 @@ * */ -#include "MixerLineLcdSpinBox.h" +#include "MixerChannelLcdSpinBox.h" + +#include +#include #include "CaptionMenu.h" #include "MixerView.h" @@ -33,14 +36,21 @@ namespace lmms::gui { -void MixerLineLcdSpinBox::setTrackView(TrackView * tv) +void MixerChannelLcdSpinBox::setTrackView(TrackView * tv) { m_tv = tv; } -void MixerLineLcdSpinBox::mouseDoubleClickEvent(QMouseEvent* event) +void MixerChannelLcdSpinBox::mouseDoubleClickEvent(QMouseEvent* event) { - getGUI()->mixerView()->setCurrentMixerLine(model()->value()); + if (!(event->modifiers() & Qt::ShiftModifier) && + !(event->modifiers() & Qt::ControlModifier)) + { + enterValue(); + return; + } + + getGUI()->mixerView()->setCurrentMixerChannel(model()->value()); getGUI()->mixerView()->parentWidget()->show(); getGUI()->mixerView()->show();// show Mixer window @@ -48,7 +58,7 @@ void MixerLineLcdSpinBox::mouseDoubleClickEvent(QMouseEvent* event) //engine::getMixerView()->raise(); } -void MixerLineLcdSpinBox::contextMenuEvent(QContextMenuEvent* event) +void MixerChannelLcdSpinBox::contextMenuEvent(QContextMenuEvent* event) { // for the case, the user clicked right while pressing left mouse- // button, the context-menu appears while mouse-cursor is still hidden @@ -69,5 +79,18 @@ void MixerLineLcdSpinBox::contextMenuEvent(QContextMenuEvent* event) contextMenu->exec(QCursor::pos()); } +void MixerChannelLcdSpinBox::enterValue() +{ + const auto val = model()->value(); + const auto min = model()->minValue(); + const auto max = model()->maxValue(); + const auto step = model()->step(); + const auto label = tr("Please enter a new value between %1 and %2:").arg(min).arg(max); + + auto ok = false; + const auto newVal = QInputDialog::getInt(this, tr("Set value"), label, val, min, max, step, &ok); + + if (ok) { model()->setValue(newVal); } +} } // namespace lmms::gui diff --git a/src/gui/widgets/NStateButton.cpp b/src/gui/widgets/NStateButton.cpp index 4fbcc0d6563..4dc0252fc26 100644 --- a/src/gui/widgets/NStateButton.cpp +++ b/src/gui/widgets/NStateButton.cpp @@ -67,34 +67,27 @@ void NStateButton::addState( const QPixmap & _pm, const QString & _tooltip ) -void NStateButton::changeState( int _n ) +void NStateButton::changeState(int state) { - if( _n >= 0 && _n < (int) m_states.size() ) + if (state >= 0 && state < m_states.size() && state != m_curState) { - m_curState = _n; + m_curState = state; - const QString & _tooltip = - ( m_states[m_curState].second != "" ) ? - m_states[m_curState].second : - m_generalToolTip; - setToolTip(_tooltip); + const auto& [icon, tooltip] = m_states[m_curState]; + setToolTip(tooltip.isEmpty() ? m_generalToolTip : tooltip); + setIcon(icon); - setIcon( m_states[m_curState].first ); - - emit changedState( m_curState ); + emit changedState(m_curState); } } - - -void NStateButton::mousePressEvent( QMouseEvent * _me ) +void NStateButton::mousePressEvent(QMouseEvent* me) { - if( _me->button() == Qt::LeftButton && m_states.size() ) + if (me->button() == Qt::LeftButton && !m_states.empty()) { - changeState( ( ++m_curState ) % m_states.size() ); + changeState((m_curState + 1) % m_states.size()); } - ToolButton::mousePressEvent( _me ); + ToolButton::mousePressEvent(me); } - -} // namespace lmms::gui \ No newline at end of file +} // namespace lmms::gui diff --git a/src/gui/widgets/Oscilloscope.cpp b/src/gui/widgets/Oscilloscope.cpp index bec45c1627f..28ddff93841 100644 --- a/src/gui/widgets/Oscilloscope.cpp +++ b/src/gui/widgets/Oscilloscope.cpp @@ -28,7 +28,7 @@ #include "Oscilloscope.h" #include "GuiApplication.h" -#include "gui_templates.h" +#include "FontHelper.h" #include "MainWindow.h" #include "AudioEngine.h" #include "Engine.h" @@ -45,7 +45,9 @@ Oscilloscope::Oscilloscope( QWidget * _p ) : m_background( embed::getIconPixmap( "output_graph" ) ), m_points( new QPointF[Engine::audioEngine()->framesPerPeriod()] ), m_active( false ), - m_normalColor(71, 253, 133), + m_leftChannelColor(71, 253, 133), + m_rightChannelColor(71, 253, 133), + m_otherChannelsColor(71, 253, 133), m_clippingColor(255, 64, 64) { setFixedSize( m_background.width(), m_background.height() ); @@ -53,9 +55,9 @@ Oscilloscope::Oscilloscope( QWidget * _p ) : setActive( ConfigManager::inst()->value( "ui", "displaywaveform").toInt() ); const fpp_t frames = Engine::audioEngine()->framesPerPeriod(); - m_buffer = new sampleFrame[frames]; + m_buffer = new SampleFrame[frames]; - BufferManager::clear( m_buffer, frames ); + zeroSampleFrames(m_buffer, frames); setToolTip(tr("Oscilloscope")); @@ -73,12 +75,12 @@ Oscilloscope::~Oscilloscope() -void Oscilloscope::updateAudioBuffer( const surroundSampleFrame * buffer ) +void Oscilloscope::updateAudioBuffer(const SampleFrame* buffer) { if( !Engine::getSong()->isExporting() ) { const fpp_t fpp = Engine::audioEngine()->framesPerPeriod(); - memcpy( m_buffer, buffer, sizeof( surroundSampleFrame ) * fpp ); + memcpy(m_buffer, buffer, sizeof(SampleFrame) * fpp); } } @@ -94,8 +96,8 @@ void Oscilloscope::setActive( bool _active ) SIGNAL(periodicUpdate()), this, SLOT(update())); connect( Engine::audioEngine(), - SIGNAL(nextAudioBuffer(const lmms::surroundSampleFrame*)), - this, SLOT(updateAudioBuffer(const lmms::surroundSampleFrame*)) ); + SIGNAL(nextAudioBuffer(const lmms::SampleFrame*)), + this, SLOT(updateAudioBuffer(const lmms::SampleFrame*))); } else { @@ -103,8 +105,8 @@ void Oscilloscope::setActive( bool _active ) SIGNAL(periodicUpdate()), this, SLOT(update())); disconnect( Engine::audioEngine(), - SIGNAL( nextAudioBuffer( const lmms::surroundSampleFrame* ) ), - this, SLOT( updateAudioBuffer( const lmms::surroundSampleFrame* ) ) ); + SIGNAL(nextAudioBuffer(const lmms::SampleFrame*)), + this, SLOT(updateAudioBuffer(const lmms::SampleFrame*))); // we have to update (remove last waves), // because timer doesn't do that anymore update(); @@ -112,14 +114,34 @@ void Oscilloscope::setActive( bool _active ) } -QColor const & Oscilloscope::normalColor() const +QColor const & Oscilloscope::leftChannelColor() const { - return m_normalColor; + return m_leftChannelColor; } -void Oscilloscope::setNormalColor(QColor const & normalColor) +void Oscilloscope::setLeftChannelColor(QColor const & leftChannelColor) { - m_normalColor = normalColor; + m_leftChannelColor = leftChannelColor; +} + +QColor const & Oscilloscope::rightChannelColor() const +{ + return m_rightChannelColor; +} + +void Oscilloscope::setRightChannelColor(QColor const & rightChannelColor) +{ + m_rightChannelColor = rightChannelColor; +} + +QColor const & Oscilloscope::otherChannelsColor() const +{ + return m_otherChannelsColor; +} + +void Oscilloscope::setOtherChannelsColor(QColor const & otherChannelsColor) +{ + m_otherChannelsColor = otherChannelsColor; } QColor const & Oscilloscope::clippingColor() const @@ -143,28 +165,32 @@ void Oscilloscope::paintEvent( QPaintEvent * ) { AudioEngine const * audioEngine = Engine::audioEngine(); - float master_output = audioEngine->masterGain(); + float masterOutput = audioEngine->masterGain(); const fpp_t frames = audioEngine->framesPerPeriod(); - AudioEngine::StereoSample peakValues = audioEngine->getPeakValues(m_buffer, frames); - const float max_level = qMax( peakValues.left, peakValues.right ); + SampleFrame peakValues = getAbsPeakValues(m_buffer, frames); - // Set the color of the line according to the maximum level - float const maxLevelWithAppliedMasterGain = max_level * master_output; - p.setPen(QPen(determineLineColor(maxLevelWithAppliedMasterGain), 0.7)); + auto const leftChannelClips = clips(peakValues.left() * masterOutput); + auto const rightChannelClips = clips(peakValues.right() * masterOutput); p.setRenderHint( QPainter::Antialiasing ); // now draw all that stuff int w = width() - 4; const qreal xd = static_cast(w) / frames; - const qreal half_h = -( height() - 6 ) / 3.0 * static_cast(master_output) - 1; + const qreal half_h = -(height() - 6) / 3.0 * static_cast(masterOutput) - 1; int x_base = 2; const qreal y_base = height() / 2 - 0.5; + qreal const width = 0.7; for( ch_cnt_t ch = 0; ch < DEFAULT_CHANNELS; ++ch ) { - for( int frame = 0; frame < frames; ++frame ) + QColor color = ch == 0 ? (leftChannelClips ? clippingColor() : leftChannelColor()) : // Check left channel + ch == 1 ? (rightChannelClips ? clippingColor() : rightChannelColor()) : // Check right channel + otherChannelsColor(); // Any other channel + p.setPen(QPen(color, width)); + + for (auto frame = std::size_t{0}; frame < frames; ++frame) { sample_t const clippedSample = AudioEngine::clip(m_buffer[frame][ch]); m_points[frame] = QPointF( @@ -177,7 +203,7 @@ void Oscilloscope::paintEvent( QPaintEvent * ) else { p.setPen( QColor( 192, 192, 192 ) ); - p.setFont( pointSize<7>( p.font() ) ); + p.setFont(adjustedToPixelSize(p.font(), DEFAULT_FONT_SIZE)); p.drawText( 6, height()-5, tr( "Click to enable" ) ); } } @@ -193,17 +219,9 @@ void Oscilloscope::mousePressEvent( QMouseEvent * _me ) } } - -QColor const & Oscilloscope::determineLineColor(float level) const +bool Oscilloscope::clips(float level) const { - if( level <= 1.0f ) - { - return normalColor(); - } - else - { - return clippingColor(); - } + return level > 1.0f; } diff --git a/src/gui/widgets/PeakIndicator.cpp b/src/gui/widgets/PeakIndicator.cpp new file mode 100644 index 00000000000..e1278b7ff2d --- /dev/null +++ b/src/gui/widgets/PeakIndicator.cpp @@ -0,0 +1,84 @@ +/* + * PeakIndicator.cpp - Peak indicator widget + * + * Copyright (c) 2024- Michael Gregorius + * + * This file is part of LMMS - https://lmms.io + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#include "PeakIndicator.h" + +#include "lmms_math.h" + +#include +#include + + +namespace lmms::gui +{ + +PeakIndicator::PeakIndicator(QWidget* parent) : + QLabel(parent), + m_peak(0.f) +{ + setAlignment(Qt::AlignCenter); + + updatePeakDisplay(); +} + +void PeakIndicator::resetPeakToMinusInf() +{ + m_peak = 0; + updatePeakDisplay(); +} + +void PeakIndicator::updatePeak(float peak) +{ + if (peak > m_peak) + { + m_peak = peak; + updatePeakDisplay(); + } +} + +void PeakIndicator::mousePressEvent(QMouseEvent* e) +{ + if (e->buttons() & Qt::LeftButton) + { + resetPeakToMinusInf(); + } +} + +void PeakIndicator::updatePeakDisplay() +{ + // Treat everything below -144 dbFS as -inf. Otherwise some residual signals show up + // in the form of very small dbFS values, e.g. -857.1 dbFS. + // TODO Make the threshold configurable in the settings? + if (m_peak <= dbfsToAmp(-144.)) + { + setText(tr("-inf")); + } + else + { + auto dbfs = ampToDbfs(m_peak); + setText(QString::number(dbfs, 'f', 1)); + } +} + +} // namespace lmms::gui diff --git a/src/gui/widgets/PixmapButton.cpp b/src/gui/widgets/PixmapButton.cpp index 13c09c52ee9..5f2e01b3d24 100644 --- a/src/gui/widgets/PixmapButton.cpp +++ b/src/gui/widgets/PixmapButton.cpp @@ -50,20 +50,15 @@ PixmapButton::PixmapButton( QWidget * _parent, const QString & _name ) : -void PixmapButton::paintEvent( QPaintEvent * ) +void PixmapButton::paintEvent(QPaintEvent*) { - QPainter p( this ); + QPainter p(this); - if( ( model() != nullptr && model()->value() ) || m_pressed ) - { - if( !m_activePixmap.isNull() ) - { - p.drawPixmap( 0, 0, m_activePixmap ); - } - } - else if( !m_inactivePixmap.isNull() ) + QPixmap* pixmapToDraw = isActive() ? &m_activePixmap : &m_inactivePixmap; + + if (!pixmapToDraw->isNull()) { - p.drawPixmap( 0, 0, m_inactivePixmap ); + p.drawPixmap(0, 0, *pixmapToDraw); } } @@ -129,15 +124,17 @@ void PixmapButton::setInactiveGraphic( const QPixmap & _pm, bool _update ) QSize PixmapButton::sizeHint() const { - if( ( model() != nullptr && model()->value() ) || m_pressed ) - { - return m_activePixmap.size() / devicePixelRatio(); - } - else - { - return m_inactivePixmap.size() / devicePixelRatio(); - } + return minimumSizeHint(); +} + +QSize PixmapButton::minimumSizeHint() const +{ + return m_activePixmap.size().expandedTo(m_inactivePixmap.size()); } +bool PixmapButton::isActive() const +{ + return (model() != nullptr && model()->value()) || m_pressed; +} } // namespace lmms::gui diff --git a/src/gui/widgets/TabBar.cpp b/src/gui/widgets/TabBar.cpp index e2949455138..d77573a9218 100644 --- a/src/gui/widgets/TabBar.cpp +++ b/src/gui/widgets/TabBar.cpp @@ -25,7 +25,6 @@ #include "TabBar.h" #include "TabButton.h" -#include "gui_templates.h" namespace lmms::gui @@ -90,8 +89,6 @@ TabButton * TabBar::addTab( QWidget * _w, const QString & _text, int _id, _w->setFixedSize( _w->parentWidget()->size() ); } - b->setFont( pointSize<8>( b->font() ) ); - return( b ); } diff --git a/src/gui/widgets/TabWidget.cpp b/src/gui/widgets/TabWidget.cpp index 5ab56fee71c..81fae1c043a 100644 --- a/src/gui/widgets/TabWidget.cpp +++ b/src/gui/widgets/TabWidget.cpp @@ -33,23 +33,24 @@ #include "DeprecationHelper.h" #include "embed.h" -#include "gui_templates.h" +#include "FontHelper.h" namespace lmms::gui { -TabWidget::TabWidget(const QString & caption, QWidget * parent, bool usePixmap, +TabWidget::TabWidget(const QString& caption, QWidget* parent, bool usePixmap, bool resizable) : - QWidget( parent ), - m_resizable( resizable ), - m_activeTab( 0 ), - m_caption( caption ), - m_usePixmap( usePixmap ), - m_tabText( 0, 0, 0 ), - m_tabTitleText( 0, 0, 0 ), - m_tabSelected( 0, 0, 0 ), - m_tabBackground( 0, 0, 0 ), - m_tabBorder( 0, 0, 0 ) + QWidget(parent), + m_resizable(resizable), + m_activeTab(0), + m_caption(caption), + m_usePixmap(usePixmap), + m_tabText(0, 0, 0), + m_tabTitleText(0, 0, 0), + m_tabSelected(0, 0, 0), + m_tabTextSelected(0, 0, 0), + m_tabBackground(0, 0, 0), + m_tabBorder(0, 0, 0) { // Create taller tabbar when it's to display artwork tabs @@ -57,24 +58,22 @@ TabWidget::TabWidget(const QString & caption, QWidget * parent, bool usePixmap, m_tabheight = caption.isEmpty() ? m_tabbarHeight - 3 : m_tabbarHeight - 4; - setFont( pointSize<8>( font() ) ); + setFont(adjustedToPixelSize(font(), DEFAULT_FONT_SIZE)); - setAutoFillBackground( true ); - QColor bg_color = QApplication::palette().color( QPalette::Active, QPalette::Window ). darker( 132 ); + setAutoFillBackground(true); + QColor bg_color = QApplication::palette().color(QPalette::Active, QPalette::Window).darker(132); QPalette pal = palette(); - pal.setColor( QPalette::Window, bg_color ); - setPalette( pal ); + pal.setColor(QPalette::Window, bg_color); + setPalette(pal); } -void TabWidget::addTab( QWidget * w, const QString & name, const char *pixmap, int idx ) +void TabWidget::addTab(QWidget* w, const QString& name, const char* pixmap, int idx) { - setFont( pointSize<8>( font() ) ); - // Append tab when position is not given - if( idx < 0/* || m_widgets.contains( idx ) == true*/ ) + if (idx < 0/* || m_widgets.contains(idx) == true*/) { - while( m_widgets.contains( ++idx ) == true ) + while(m_widgets.contains(++idx) == true) { } } @@ -83,19 +82,19 @@ void TabWidget::addTab( QWidget * w, const QString & name, const char *pixmap, i int tab_width = horizontalAdvance(fontMetrics(), name) + 10; // Register new tab - widgetDesc d = { w, pixmap, name, tab_width }; + widgetDesc d = {w, pixmap, name, tab_width}; m_widgets[idx] = d; // Position tab's window if (!m_resizable) { - w->setFixedSize( width() - 4, height() - m_tabbarHeight ); + w->setFixedSize(width() - 4, height() - m_tabbarHeight); } - w->move( 2, m_tabbarHeight - 1 ); + w->move(2, m_tabbarHeight - 1); w->hide(); // Show tab's window if it's active - if( m_widgets.contains( m_activeTab ) ) + if (m_widgets.contains(m_activeTab)) { // make sure new tab doesn't overlap current widget m_widgets[m_activeTab].w->show(); @@ -106,15 +105,15 @@ void TabWidget::addTab( QWidget * w, const QString & name, const char *pixmap, i -void TabWidget::setActiveTab( int idx ) +void TabWidget::setActiveTab(int idx) { - if( m_widgets.contains( idx ) ) + if (m_widgets.contains(idx)) { int old_active = m_activeTab; m_activeTab = idx; m_widgets[m_activeTab].w->raise(); m_widgets[m_activeTab].w->show(); - if( old_active != idx && m_widgets.contains( old_active ) ) + if (old_active != idx && m_widgets.contains(old_active)) { m_widgets[old_active].w->hide(); } @@ -124,42 +123,44 @@ void TabWidget::setActiveTab( int idx ) // Return the index of the tab at position "pos" -int TabWidget::findTabAtPos( const QPoint *pos ) +int TabWidget::findTabAtPos(const QPoint* pos) { - if( pos->y() > 1 && pos->y() < m_tabbarHeight - 1 ) + if (pos->y() > 1 && pos->y() < m_tabbarHeight - 1) { int cx = ((m_caption == "") ? 4 : 14) + horizontalAdvance(fontMetrics(), m_caption); - for( widgetStack::iterator it = m_widgets.begin(); it != m_widgets.end(); ++it ) + for (widgetStack::iterator it = m_widgets.begin(); it != m_widgets.end(); ++it) { - if( pos->x() >= cx && pos->x() <= cx + ( *it ).nwidth ) + int const currentWidgetWidth = it->nwidth; + + if (pos->x() >= cx && pos->x() <= cx + currentWidgetWidth) { - return( it.key() ); + return(it.key()); } - cx += ( *it ).nwidth; + cx += currentWidgetWidth; } } // Haven't found any tab at position "pos" - return( -1 ); + return(-1); } // Overload the QWidget::event handler to display tooltips (from https://doc.qt.io/qt-4.8/qt-widgets-tooltips-example.html) -bool TabWidget::event(QEvent *event) +bool TabWidget::event(QEvent* event) { - if ( event->type() == QEvent::ToolTip ) + if (event->type() == QEvent::ToolTip) { auto helpEvent = static_cast(event); - int idx = findTabAtPos( & helpEvent->pos() ); + int idx = findTabAtPos(& helpEvent->pos()); - if ( idx != -1 ) + if (idx != -1) { // Display tab's tooltip - QToolTip::showText( helpEvent->globalPos(), m_widgets[idx].name ); + QToolTip::showText(helpEvent->globalPos(), m_widgets[idx].name); } else { @@ -177,17 +178,17 @@ bool TabWidget::event(QEvent *event) // Activate tab when clicked -void TabWidget::mousePressEvent( QMouseEvent * me ) +void TabWidget::mousePressEvent(QMouseEvent* me) { // Find index of tab that has been clicked QPoint pos = me->pos(); - int idx = findTabAtPos( &pos ); + int idx = findTabAtPos(&pos); // When found, activate tab that has been clicked - if ( idx != -1 ) + if (idx != -1) { - setActiveTab( idx ); + setActiveTab(idx); update(); return; } @@ -196,7 +197,7 @@ void TabWidget::mousePressEvent( QMouseEvent * me ) -void TabWidget::resizeEvent( QResizeEvent * ) +void TabWidget::resizeEvent(QResizeEvent*) { if (!m_resizable) { @@ -210,28 +211,27 @@ void TabWidget::resizeEvent( QResizeEvent * ) -void TabWidget::paintEvent( QPaintEvent * pe ) +void TabWidget::paintEvent(QPaintEvent* pe) { - QPainter p( this ); - p.setFont( pointSize<7>( font() ) ); + QPainter p(this); + p.setFont(adjustedToPixelSize(font(), DEFAULT_FONT_SIZE)); // Draw background QBrush bg_color = p.background(); - p.fillRect( 0, 0, width() - 1, height() - 1, bg_color ); + p.fillRect(0, 0, width() - 1, height() - 1, bg_color); // Draw external borders - p.setPen( tabBorder() ); - p.drawRect( 0, 0, width() - 1, height() - 1 ); + p.setPen(tabBorder()); + p.drawRect(0, 0, width() - 1, height() - 1); // Draw tabs' bar background - p.fillRect( 1, 1, width() - 2, m_tabheight + 2, tabBackground() ); + p.fillRect(1, 1, width() - 2, m_tabheight + 2, tabBackground()); // Draw title, if any - if( ! m_caption.isEmpty() ) + if (!m_caption.isEmpty()) { - p.setFont( pointSize<8>( p.font() ) ); - p.setPen( tabTitleText() ); - p.drawText( 5, 11, m_caption ); + p.setPen(tabTitleText()); + p.drawText(5, 11, m_caption); } // Calculate the tabs' x (tabs are painted next to the caption) @@ -241,47 +241,54 @@ void TabWidget::paintEvent( QPaintEvent * pe ) widgetStack::iterator first = m_widgets.begin(); widgetStack::iterator last = m_widgets.end(); int tab_width = width(); - if ( first != last ) + if (first != last) { - tab_width = ( width() - tab_x_offset ) / std::distance( first, last ); + tab_width = (width() - tab_x_offset) / std::distance(first, last); } // Draw all tabs - p.setPen( tabText() ); - for( widgetStack::iterator it = first ; it != last ; ++it ) + p.setPen(tabText()); + for (widgetStack::iterator it = first ; it != last ; ++it) { + auto & currentWidgetDesc = *it; + // Draw a text tab or a artwork tab. - if( m_usePixmap ) + if (m_usePixmap) { // Fixes tab's width, because original size is only correct for text tabs - ( *it ).nwidth = tab_width; + currentWidgetDesc.nwidth = tab_width; // Get artwork - QPixmap artwork( embed::getIconPixmap( ( *it ).pixmap ) ); + QPixmap artwork(embed::getIconPixmap(currentWidgetDesc.pixmap)); // Highlight active tab - if( it.key() == m_activeTab ) + if (it.key() == m_activeTab) { - p.fillRect( tab_x_offset, 0, ( *it ).nwidth, m_tabbarHeight - 1, tabSelected() ); + p.fillRect(tab_x_offset, 0, currentWidgetDesc.nwidth, m_tabbarHeight - 1, tabSelected()); } // Draw artwork - p.drawPixmap(tab_x_offset + ( ( *it ).nwidth - artwork.width() ) / 2, 1, artwork ); + p.drawPixmap(tab_x_offset + (currentWidgetDesc.nwidth - artwork.width()) / 2, 1, artwork); } else { // Highlight tab when active - if( it.key() == m_activeTab ) + if (it.key() == m_activeTab) { - p.fillRect( tab_x_offset, 2, ( *it ).nwidth - 6, m_tabbarHeight - 4, tabSelected() ); + p.fillRect(tab_x_offset, 2, currentWidgetDesc.nwidth - 6, m_tabbarHeight - 4, tabSelected()); + p.setPen(tabTextSelected()); + p.drawText(tab_x_offset + 3, m_tabheight + 1, currentWidgetDesc.name); + } + else + { + // Draw text + p.setPen(tabText()); + p.drawText(tab_x_offset + 3, m_tabheight + 1, currentWidgetDesc.name); } - - // Draw text - p.drawText( tab_x_offset + 3, m_tabheight + 1, ( *it ).name ); } // Next tab's horizontal position - tab_x_offset += ( *it ).nwidth; + tab_x_offset += currentWidgetDesc.nwidth; } } @@ -289,9 +296,9 @@ void TabWidget::paintEvent( QPaintEvent * pe ) // Switch between tabs with mouse wheel -void TabWidget::wheelEvent( QWheelEvent * we ) +void TabWidget::wheelEvent(QWheelEvent* we) { - if(position(we).y() > m_tabheight) + if (position(we).y() > m_tabheight) { return; } @@ -299,15 +306,15 @@ void TabWidget::wheelEvent( QWheelEvent * we ) we->accept(); int dir = (we->angleDelta().y() < 0) ? 1 : -1; int tab = m_activeTab; - while( tab > -1 && static_cast( tab ) < m_widgets.count() ) + while(tab > -1 && static_cast(tab) < m_widgets.count()) { tab += dir; - if( m_widgets.contains( tab ) ) + if (m_widgets.contains(tab)) { break; } } - setActiveTab( tab ); + setActiveTab(tab); } @@ -363,7 +370,7 @@ QColor TabWidget::tabTitleText() const } // Set the color to be used to draw a TabWidget's title text (if any) -void TabWidget::setTabTitleText( const QColor & c ) +void TabWidget::setTabTitleText(const QColor& c) { m_tabTitleText = c; } @@ -375,7 +382,7 @@ QColor TabWidget::tabText() const } // Set the color to be used to draw a TabWidget's text (if any) -void TabWidget::setTabText( const QColor & c ) +void TabWidget::setTabText(const QColor& c) { m_tabText = c; } @@ -387,11 +394,23 @@ QColor TabWidget::tabSelected() const } // Set the color to be used to highlight a TabWidget'selected tab (if any) -void TabWidget::setTabSelected( const QColor & c ) +void TabWidget::setTabSelected(const QColor& c) { m_tabSelected = c; } +// Return the text color of the selected tab +QColor TabWidget::tabTextSelected() const +{ + return m_tabTextSelected; +} + +// Set the text color of the selected tab +void TabWidget::setTabTextSelected(const QColor& c) +{ + m_tabTextSelected = c; +} + // Return the color to be used for the TabWidget's background QColor TabWidget::tabBackground() const { @@ -399,7 +418,7 @@ QColor TabWidget::tabBackground() const } // Set the color to be used for the TabWidget's background -void TabWidget::setTabBackground( const QColor & c ) +void TabWidget::setTabBackground(const QColor& c) { m_tabBackground = c; } @@ -411,7 +430,7 @@ QColor TabWidget::tabBorder() const } // Set the color to be used for the TabWidget's borders -void TabWidget::setTabBorder( const QColor & c ) +void TabWidget::setTabBorder(const QColor& c) { m_tabBorder = c; } diff --git a/src/gui/widgets/TimeDisplayWidget.cpp b/src/gui/widgets/TimeDisplayWidget.cpp index 3dad6b1b022..92eaf1efe2a 100644 --- a/src/gui/widgets/TimeDisplayWidget.cpp +++ b/src/gui/widgets/TimeDisplayWidget.cpp @@ -91,24 +91,25 @@ void TimeDisplayWidget::updateTime() switch( m_displayMode ) { case DisplayMode::MinutesSeconds: - int msec; - msec = s->getMilliseconds(); + { + int msec = s->getMilliseconds(); m_majorLCD.setValue(msec / 60000); m_minorLCD.setValue((msec / 1000) % 60); m_milliSecondsLCD.setValue(msec % 1000); break; - + } case DisplayMode::BarsTicks: - int tick; - tick = s->getPlayPos().getTicks(); + { + int tick = s->getPlayPos().getTicks(); m_majorLCD.setValue((int)(tick / s->ticksPerBar()) + 1); m_minorLCD.setValue((tick % s->ticksPerBar()) / (s->ticksPerBar() / s->getTimeSigModel().getNumerator() ) +1); m_milliSecondsLCD.setValue((tick % s->ticksPerBar()) % (s->ticksPerBar() / s->getTimeSigModel().getNumerator())); break; - - default: break; + } + default: + break; } } diff --git a/src/lmmsconfig.h.in b/src/lmmsconfig.h.in index 89db21a7bfb..867a04a4535 100644 --- a/src/lmmsconfig.h.in +++ b/src/lmmsconfig.h.in @@ -31,7 +31,6 @@ #cmakedefine LMMS_HAVE_SOUNDIO #cmakedefine LMMS_HAVE_PULSEAUDIO #cmakedefine LMMS_HAVE_SDL -#cmakedefine LMMS_HAVE_SDL2 #cmakedefine LMMS_HAVE_STK #cmakedefine LMMS_HAVE_VST #cmakedefine LMMS_HAVE_SF_COMPLEVEL @@ -45,6 +44,7 @@ #cmakedefine LMMS_HAVE_SEMAPHORE_H #cmakedefine LMMS_HAVE_SYS_TIME_H #cmakedefine LMMS_HAVE_SYS_TIMES_H +#cmakedefine LMMS_HAVE_SYS_PRCTL_H #cmakedefine LMMS_HAVE_SCHED_H #cmakedefine LMMS_HAVE_SYS_SOUNDCARD_H #cmakedefine LMMS_HAVE_SOUNDCARD_H diff --git a/src/tracks/AutomationTrack.cpp b/src/tracks/AutomationTrack.cpp index e353197f877..1ff30ac7680 100644 --- a/src/tracks/AutomationTrack.cpp +++ b/src/tracks/AutomationTrack.cpp @@ -66,8 +66,7 @@ Clip* AutomationTrack::createClip(const TimePos & pos) -void AutomationTrack::saveTrackSpecificSettings( QDomDocument & _doc, - QDomElement & _this ) +void AutomationTrack::saveTrackSpecificSettings(QDomDocument& doc, QDomElement& _this, bool presetMode) { } diff --git a/src/tracks/InstrumentTrack.cpp b/src/tracks/InstrumentTrack.cpp index 4b00e0d79e6..66992bc4f6d 100644 --- a/src/tracks/InstrumentTrack.cpp +++ b/src/tracks/InstrumentTrack.cpp @@ -220,7 +220,7 @@ InstrumentTrack::~InstrumentTrack() -void InstrumentTrack::processAudioBuffer( sampleFrame* buf, const fpp_t frames, NotePlayHandle* n ) +void InstrumentTrack::processAudioBuffer( SampleFrame* buf, const fpp_t frames, NotePlayHandle* n ) { // we must not play the sound if this InstrumentTrack is muted... if( isMuted() || ( Engine::getSong()->playMode() != Song::PlayMode::MidiClip && @@ -233,8 +233,7 @@ void InstrumentTrack::processAudioBuffer( sampleFrame* buf, const fpp_t frames, // We could do that in all other cases as well but the overhead for silence test is bigger than // what we potentially save. While playing a note, a NotePlayHandle-driven instrument will produce sound in // 99 of 100 cases so that test would be a waste of time. - if( m_instrument->flags().testFlag( Instrument::Flag::IsSingleStreamed ) && - MixHelpers::isSilent( buf, frames ) ) + if (m_instrument->isSingleStreamed() && MixHelpers::isSilent(buf, frames)) { // at least pass one silent buffer to allow if( m_silentBuffersProcessed ) @@ -263,7 +262,7 @@ void InstrumentTrack::processAudioBuffer( sampleFrame* buf, const fpp_t frames, // instruments using instrument-play-handles will call this method // without any knowledge about notes, so they pass NULL for n, which // is no problem for us since we just bypass the envelopes+LFOs - if( m_instrument->flags().testFlag( Instrument::Flag::IsSingleStreamed ) == false && n != nullptr ) + if (!m_instrument->isSingleStreamed() && n != nullptr) { const f_cnt_t offset = n->noteOffset(); m_soundShaping.processAudioBuffer( buf + offset, frames - offset, n ); @@ -343,7 +342,7 @@ void InstrumentTrack::processInEvent( const MidiEvent& event, const TimePos& tim NotePlayHandle* nph = NotePlayHandleManager::acquire( this, offset, - typeInfo::max() / 2, + std::numeric_limits::max() / 2, Note(TimePos(), Engine::getSong()->getPlayPos(Engine::getSong()->playMode()), event.key(), event.volume(midiPort()->baseVelocity())), nullptr, event.channel(), @@ -568,7 +567,7 @@ f_cnt_t InstrumentTrack::beatLen( NotePlayHandle * _n ) const -void InstrumentTrack::playNote( NotePlayHandle* n, sampleFrame* workingBuffer ) +void InstrumentTrack::playNote( NotePlayHandle* n, SampleFrame* workingBuffer ) { // Note: under certain circumstances the working buffer is a nullptr. // These cases are triggered in PlayHandle::doProcessing when the play method is called with a nullptr. @@ -772,17 +771,17 @@ bool InstrumentTrack::play( const TimePos & _start, const fpp_t _frames, } } - Note * cur_note; - while( nit != notes.end() && - ( cur_note = *nit )->pos() == cur_start ) + while (nit != notes.end() && (*nit)->pos() == cur_start) { + const auto currentNote = *nit; + // If the note is a Step Note, frames will be 0 so the NotePlayHandle // plays for the whole length of the sample - const auto note_frames = cur_note->type() == Note::Type::Step + const auto noteFrames = currentNote->type() == Note::Type::Step ? 0 - : cur_note->length().frames(frames_per_tick); + : currentNote->length().frames(frames_per_tick); - NotePlayHandle* notePlayHandle = NotePlayHandleManager::acquire( this, _offset, note_frames, *cur_note ); + NotePlayHandle* notePlayHandle = NotePlayHandleManager::acquire(this, _offset, noteFrames, *currentNote); notePlayHandle->setPatternTrack(pattern_track); // are we playing global song? if( _clip_num < 0 ) @@ -822,7 +821,7 @@ gui::TrackView* InstrumentTrack::createView( gui::TrackContainerView* tcv ) -void InstrumentTrack::saveTrackSpecificSettings( QDomDocument& doc, QDomElement & thisElement ) +void InstrumentTrack::saveTrackSpecificSettings(QDomDocument& doc, QDomElement& thisElement, bool presetMode) { m_volumeModel.saveSettings( doc, thisElement, "vol" ); m_panningModel.saveSettings( doc, thisElement, "pan" ); @@ -859,15 +858,21 @@ void InstrumentTrack::saveTrackSpecificSettings( QDomDocument& doc, QDomElement m_noteStacking.saveState( doc, thisElement ); m_arpeggio.saveState( doc, thisElement ); - // Don't save midi port info if the user chose to. - if (Engine::getSong()->isSavingProject() - && !Engine::getSong()->getSaveOptions().discardMIDIConnections.value()) + // Save the midi port info if we are not in song saving mode, e.g. in + // track cloning mode or if we are in song saving mode and the user + // has chosen not to discard the MIDI connections. + if (!Engine::getSong()->isSavingProject() || + !Engine::getSong()->getSaveOptions().discardMIDIConnections.value()) { // Don't save auto assigned midi device connection bool hasAuto = m_hasAutoMidiDev; autoAssignMidiDevice(false); - m_midiPort.saveState( doc, thisElement ); + // Only save the MIDI port information if we are not saving a preset. + if (!presetMode) + { + m_midiPort.saveState(doc, thisElement); + } autoAssignMidiDevice(hasAuto); } @@ -1006,14 +1011,13 @@ void InstrumentTrack::replaceInstrument(DataFile dataFile) int mixerChannel = mixerChannelModel()->value(); InstrumentTrack::removeMidiPortNode(dataFile); - setSimpleSerializing(); //Replacing an instrument shouldn't change the solo/mute state. bool oldMute = isMuted(); bool oldSolo = isSolo(); bool oldMutedBeforeSolo = isMutedBeforeSolo(); - loadSettings(dataFile.content().toElement()); + loadPreset(dataFile.content().toElement()); setMuted(oldMute); setSolo(oldSolo); diff --git a/src/tracks/MidiClip.cpp b/src/tracks/MidiClip.cpp index 087079dc867..409fb60aefe 100644 --- a/src/tracks/MidiClip.cpp +++ b/src/tracks/MidiClip.cpp @@ -39,13 +39,6 @@ namespace lmms { -QPixmap * gui::MidiClipView::s_stepBtnOn0 = nullptr; -QPixmap * gui::MidiClipView::s_stepBtnOn200 = nullptr; -QPixmap * gui::MidiClipView::s_stepBtnOff = nullptr; -QPixmap * gui::MidiClipView::s_stepBtnOffLight = nullptr; - - - MidiClip::MidiClip( InstrumentTrack * _instrument_track ) : Clip( _instrument_track ), m_instrumentTrack( _instrument_track ), @@ -215,16 +208,30 @@ Note * MidiClip::addNote( const Note & _new_note, const bool _quant_pos ) -void MidiClip::removeNote( Note * _note_to_del ) +NoteVector::const_iterator MidiClip::removeNote(NoteVector::const_iterator it) { instrumentTrack()->lock(); + delete *it; + auto new_it = m_notes.erase(it); + instrumentTrack()->unlock(); - m_notes.erase(std::remove_if(m_notes.begin(), m_notes.end(), [&](Note* note) + checkType(); + updateLength(); + + emit dataChanged(); + return new_it; +} + +NoteVector::const_iterator MidiClip::removeNote(Note* note) +{ + instrumentTrack()->lock(); + + auto it = std::find(m_notes.begin(), m_notes.end(), note); + if (it != m_notes.end()) { - auto shouldRemove = note == _note_to_del; - if (shouldRemove) { delete note; } - return shouldRemove; - }), m_notes.end()); + delete *it; + it = m_notes.erase(it); + } instrumentTrack()->unlock(); @@ -232,6 +239,7 @@ void MidiClip::removeNote( Note * _note_to_del ) updateLength(); emit dataChanged(); + return it; } @@ -367,9 +375,9 @@ void MidiClip::saveSettings( QDomDocument & _doc, QDomElement & _this ) _this.setAttribute( "type", static_cast(m_clipType) ); _this.setAttribute( "name", name() ); - if( usesCustomClipColor() ) + if (const auto& c = color()) { - _this.setAttribute( "color", color().name() ); + _this.setAttribute("color", c->name()); } // as the target of copied/dragged MIDI clip is always an existing // MIDI clip, we must not store actual position, instead we store -1 @@ -401,17 +409,12 @@ void MidiClip::loadSettings( const QDomElement & _this ) m_clipType = static_cast( _this.attribute( "type" ).toInt() ); setName( _this.attribute( "name" ) ); - - if( _this.hasAttribute( "color" ) ) - { - useCustomClipColor( true ); - setColor( _this.attribute( "color" ) ); - } - else + + if (_this.hasAttribute("color")) { - useCustomClipColor(false); + setColor(QColor{_this.attribute("color")}); } - + if( _this.attribute( "pos" ).toInt() >= 0 ) { movePosition( _this.attribute( "pos" ).toInt() ); @@ -470,9 +473,9 @@ MidiClip * MidiClip::nextMidiClip() const MidiClip * MidiClip::adjacentMidiClipByOffset(int offset) const { auto& clips = m_instrumentTrack->getClips(); - int clipNum = m_instrumentTrack->getClipNum(this); - if (clipNum < 0 || clipNum > clips.size() - 1) { return nullptr; } - return dynamic_cast(clips[clipNum + offset]); + int clipNum = m_instrumentTrack->getClipNum(this) + offset; + if (clipNum < 0 || static_cast(clipNum) >= clips.size()) { return nullptr; } + return dynamic_cast(clips[clipNum]); } diff --git a/src/tracks/PatternTrack.cpp b/src/tracks/PatternTrack.cpp index bdde4780c50..697a7c2a8fb 100644 --- a/src/tracks/PatternTrack.cpp +++ b/src/tracks/PatternTrack.cpp @@ -154,7 +154,7 @@ Clip* PatternTrack::createClip(const TimePos & pos) -void PatternTrack::saveTrackSpecificSettings(QDomDocument& doc, QDomElement& _this) +void PatternTrack::saveTrackSpecificSettings(QDomDocument& doc, QDomElement& _this, bool presetMode) { // _this.setAttribute( "icon", m_trackLabel->pixmapFile() ); /* _this.setAttribute( "current", s_infoMap[this] == diff --git a/src/tracks/SampleTrack.cpp b/src/tracks/SampleTrack.cpp index 876cb307fdd..8ad75799dd0 100644 --- a/src/tracks/SampleTrack.cpp +++ b/src/tracks/SampleTrack.cpp @@ -108,10 +108,10 @@ bool SampleTrack::play( const TimePos & _start, const fpp_t _frames, { if( sClip->isPlaying() == false && _start >= (sClip->startPosition() + sClip->startTimeOffset()) ) { - auto bufferFramesPerTick = Engine::framesPerTick (sClip->sampleBuffer ()->sampleRate ()); + auto bufferFramesPerTick = Engine::framesPerTick(sClip->sample().sampleRate()); f_cnt_t sampleStart = bufferFramesPerTick * ( _start - sClip->startPosition() - sClip->startTimeOffset() ); f_cnt_t clipFrameLength = bufferFramesPerTick * ( sClip->endPosition() - sClip->startPosition() - sClip->startTimeOffset() ); - f_cnt_t sampleBufferLength = sClip->sampleBuffer()->frames(); + f_cnt_t sampleBufferLength = sClip->sample().sampleSize(); //if the Clip smaller than the sample length we play only until Clip end //else we play the sample to the end but nothing more f_cnt_t samplePlayLength = clipFrameLength > sampleBufferLength ? sampleBufferLength : clipFrameLength; @@ -188,13 +188,9 @@ Clip * SampleTrack::createClip(const TimePos & pos) -void SampleTrack::saveTrackSpecificSettings( QDomDocument & _doc, - QDomElement & _this ) +void SampleTrack::saveTrackSpecificSettings(QDomDocument& _doc, QDomElement& _this, bool presetMode) { m_audioPort.effects()->saveState( _doc, _this ); -#if 0 - _this.setAttribute( "icon", tlb->pixmapFile() ); -#endif m_volumeModel.saveSettings( _doc, _this, "vol" ); m_panningModel.saveSettings( _doc, _this, "pan" ); m_mixerChannelModel.saveSettings( _doc, _this, "mixch" ); diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index ddf9e29621b..625601a3ebb 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -1,34 +1,32 @@ -INCLUDE_DIRECTORIES("${CMAKE_CURRENT_SOURCE_DIR}") -INCLUDE_DIRECTORIES("${CMAKE_CURRENT_BINARY_DIR}") -INCLUDE_DIRECTORIES("${CMAKE_SOURCE_DIR}/include") -INCLUDE_DIRECTORIES("${CMAKE_BINARY_DIR}") -INCLUDE_DIRECTORIES("${CMAKE_BINARY_DIR}/src") +include(CTest) -SET(CMAKE_CXX_STANDARD 17) - -SET(CMAKE_AUTOMOC ON) - -# FIXME: remove this once we export include directories for LMMS -IF(LMMS_BUILD_APPLE) -INCLUDE_DIRECTORIES("/usr/local/include") -ENDIF() - -ADD_EXECUTABLE(tests - EXCLUDE_FROM_ALL - main.cpp - QTestSuite.cpp - $ +set(CMAKE_INCLUDE_CURRENT_DIR ON) +set(CMAKE_AUTOMOC ON) +set(LMMS_TESTS src/core/ArrayVectorTest.cpp src/core/AutomatableModelTest.cpp src/core/MathTest.cpp src/core/ProjectVersionTest.cpp src/core/RelativePathsTest.cpp - src/tracks/AutomationTrackTest.cpp ) -TARGET_COMPILE_DEFINITIONS(tests - PRIVATE $ -) -TARGET_LINK_LIBRARIES(tests ${QT_LIBRARIES} ${QT_QTTEST_LIBRARY}) -TARGET_LINK_LIBRARIES(tests ${LMMS_REQUIRED_LIBS}) + +foreach(LMMS_TEST_SRC IN LISTS LMMS_TESTS) + # TODO CMake 3.20: Use cmake_path + get_filename_component(LMMS_TEST_NAME ${LMMS_TEST_SRC} NAME_WE) + + add_executable(${LMMS_TEST_NAME} ${LMMS_TEST_SRC}) + add_test(NAME ${LMMS_TEST_NAME} COMMAND ${LMMS_TEST_NAME}) + + # TODO CMake 3.12: Propagate usage requirements by linking to lmmsobjs + target_include_directories(${LMMS_TEST_NAME} PRIVATE $) + + target_static_libraries("${LMMS_TEST_NAME}" PRIVATE lmmsobjs) + target_link_libraries(${LMMS_TEST_NAME} PRIVATE + ${QT_LIBRARIES} + ${QT_QTTEST_LIBRARY} + ) + + target_compile_features(${LMMS_TEST_NAME} PRIVATE cxx_std_17) +endforeach() diff --git a/tests/QTestSuite.cpp b/tests/QTestSuite.cpp deleted file mode 100644 index a5a49fd20b1..00000000000 --- a/tests/QTestSuite.cpp +++ /dev/null @@ -1,19 +0,0 @@ -#include "QTestSuite.h" - -QList QTestSuite::m_suites; - -QTestSuite::QTestSuite(QObject *parent) : QObject(parent) -{ - m_suites << this; -} - -QTestSuite::~QTestSuite() -{ - m_suites.removeAll(this); -} - -QList QTestSuite::suites() -{ - return m_suites; -} - diff --git a/tests/QTestSuite.h b/tests/QTestSuite.h deleted file mode 100644 index 6cd27f5aa5a..00000000000 --- a/tests/QTestSuite.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef QTESTSUITE_H -#define QTESTSUITE_H - -#include -#include -#include - -class QTestSuite : public QObject -{ - Q_OBJECT -public: - explicit QTestSuite(QObject *parent = 0); - ~QTestSuite() override; - - static QList suites(); - -private: - static QList m_suites; -}; - -#endif // QTESTSUITE_H diff --git a/tests/main.cpp b/tests/main.cpp deleted file mode 100644 index c1a5b5a1016..00000000000 --- a/tests/main.cpp +++ /dev/null @@ -1,23 +0,0 @@ -#include "QTestSuite.h" - -#include - -#include - -#include "Engine.h" - -int main(int argc, char* argv[]) -{ - new QCoreApplication(argc, argv); - lmms::Engine::init(true); - - int numsuites = QTestSuite::suites().size(); - qDebug() << ">> Will run" << numsuites << "test suites"; - int failed = 0; - for (QTestSuite*& suite : QTestSuite::suites()) - { - if (QTest::qExec(suite, argc, argv) != 0) { ++failed; } - } - qDebug() << "<<" << failed << "out of"<\n' ' \n' @@ -64,7 +63,10 @@ class ScriptTest(): def run(self, expected_returncode: int = 1): # default: something goes wrong ("to the safe side") """Run the script, check the exit code and store the result""" - self.result = subprocess.run([str(self.scriptpath)], capture_output=True, text=True) + command = [str(self.scriptpath)] + if os.name == 'nt': + command.insert(0, sys.executable) + self.result = subprocess.run(command, capture_output=True, text=True) print('--->8--- Script output BEGIN --->8---') print(self.result.stdout) print('--->8--- Script output END --->8---') @@ -102,22 +104,6 @@ with tempfile.TemporaryDirectory() as tmpdir: test.run(0) # exitcode 0 - no errors expected test.expect('0 errors') - with ScriptTest(check_strings) as test: - create_file('data/locale/fr.ts', - '\n' - ' \n' - ' TestClass\n' - ' \n' - ' \n' - ' About LMMS\n' - ' À propos de LMMS\n' - ' \n' - '\n' - '\n') - test.run() - test.expect('Error: data/locale: Source file does not exist: ../../src/core/non-existent.cpp') - test.expect('1 errors') - with ScriptTest(check_strings) as test: create_file('data/locale/fr.ts', '\n' @@ -143,24 +129,6 @@ with tempfile.TemporaryDirectory() as tmpdir: test.expect('Error: data/themes/classic/style.css: Class does not exist in source code: NonExistentClass') test.expect('1 errors') - with ScriptTest(check_strings) as test: - create_file('debian/patches/clang.patch', '/plugins/non-existent-file') - test.run() - test.expect('Error: debian/patches/clang.patch: Source file does not exist: plugins/non-existent-file') - test.expect('1 errors') - - with ScriptTest(check_strings) as test: - create_file('debian/lmms-common.docs', '/plugins/caps.html') - test.run() - test.expect('Error: debian/lmms-common.docs: Path does not exist: /plugins/caps.html') - test.expect('1 errors') - - with ScriptTest(check_strings) as test: - create_file('debian/copyright', 'Files: NonExistent') - test.run() - test.expect('Error: debian/copyright: Glob/Path does not exist: NonExistent') - test.expect('1 errors') - with ScriptTest(check_namespace) as test: # minimal working example test.run(0) # exitcode 0 - no errors expected diff --git a/tests/src/core/ArrayVectorTest.cpp b/tests/src/core/ArrayVectorTest.cpp index c72790d1a4d..40ce4d00163 100644 --- a/tests/src/core/ArrayVectorTest.cpp +++ b/tests/src/core/ArrayVectorTest.cpp @@ -24,11 +24,11 @@ #include "ArrayVector.h" +#include +#include #include #include -#include "QTestSuite.h" - using lmms::ArrayVector; struct ShouldNotConstruct @@ -59,10 +59,9 @@ struct DestructorCheck bool* destructed; }; -class ArrayVectorTest : QTestSuite +class ArrayVectorTest : public QObject { Q_OBJECT - private slots: void defaultConstructorTest() { @@ -227,9 +226,19 @@ private slots: { { // Self-assignment should not change the contents + //// Please note the following: + //// https://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2468 + //// https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81159 auto v = ArrayVector{1, 2, 3}; const auto oldValue = v; +#if __GNUC__ >= 13 +# pragma GCC diagnostic push +# pragma GCC diagnostic ignored "-Wself-move" +#endif v = std::move(v); +#if __GNUC__ >= 13 +# pragma GCC diagnostic pop +#endif QCOMPARE(v, oldValue); } { @@ -826,6 +835,7 @@ private slots: QVERIFY(!(e != v)); QVERIFY(g != v); } -} ArrayVectorTests; +}; +QTEST_GUILESS_MAIN(ArrayVectorTest) #include "ArrayVectorTest.moc" diff --git a/tests/src/core/AutomatableModelTest.cpp b/tests/src/core/AutomatableModelTest.cpp index 78b9069b5e8..6e8a28116d8 100644 --- a/tests/src/core/AutomatableModelTest.cpp +++ b/tests/src/core/AutomatableModelTest.cpp @@ -22,15 +22,16 @@ * */ -#include "QTestSuite.h" +#include #include "AutomatableModel.h" #include "ComboBoxModel.h" +#include "Engine.h" -class AutomatableModelTest : QTestSuite +class AutomatableModelTest : public QObject { Q_OBJECT - +public: bool m1Changed, m2Changed; void resetChanged() { m1Changed = m2Changed = false; } @@ -41,6 +42,19 @@ private slots: // helper slots private slots: // tests //! Test that upcast and exact casts work, //! but no downcast or any other casts + + void initTestCase() + { + using namespace lmms; + Engine::init(true); + } + + void cleanupTestCase() + { + using namespace lmms; + Engine::destroy(); + } + void CastTests() { using namespace lmms; @@ -100,6 +114,7 @@ private slots: // tests QVERIFY(m2.value()); QVERIFY(!m3.value()); } -} AutomatableModelTests; +}; +QTEST_GUILESS_MAIN(AutomatableModelTest) #include "AutomatableModelTest.moc" diff --git a/tests/src/core/MathTest.cpp b/tests/src/core/MathTest.cpp index 2b6404cfd5c..00694c44fba 100644 --- a/tests/src/core/MathTest.cpp +++ b/tests/src/core/MathTest.cpp @@ -22,13 +22,13 @@ * */ -#include "QTestSuite.h" +#include +#include +#include #include "lmms_math.h" -#include - -class MathTest : QTestSuite +class MathTest : public QObject { Q_OBJECT private slots: @@ -48,6 +48,7 @@ private slots: QCOMPARE(numDigitsAsInt(900000000), 9); QCOMPARE(numDigitsAsInt(-900000000), 10); } -} MathTests; +}; +QTEST_GUILESS_MAIN(MathTest) #include "MathTest.moc" diff --git a/tests/src/core/ProjectVersionTest.cpp b/tests/src/core/ProjectVersionTest.cpp index 387d9005660..03b6895414b 100644 --- a/tests/src/core/ProjectVersionTest.cpp +++ b/tests/src/core/ProjectVersionTest.cpp @@ -22,11 +22,11 @@ * */ -#include "QTestSuite.h" - #include "ProjectVersion.h" -class ProjectVersionTest : QTestSuite +#include + +class ProjectVersionTest : public QObject { Q_OBJECT private slots: @@ -75,6 +75,7 @@ private slots: //An identifier of the form "-x" is non-numeric, not negative QVERIFY(ProjectVersion("1.0.0-alpha.-1") > "1.0.0-alpha.1"); } -} ProjectVersionTests; +}; +QTEST_GUILESS_MAIN(ProjectVersionTest) #include "ProjectVersionTest.moc" diff --git a/tests/src/core/RelativePathsTest.cpp b/tests/src/core/RelativePathsTest.cpp index 3b5d023d041..089ab2e8ae0 100644 --- a/tests/src/core/RelativePathsTest.cpp +++ b/tests/src/core/RelativePathsTest.cpp @@ -22,15 +22,15 @@ * */ -#include "QTestSuite.h" +#include +#include +#include #include "ConfigManager.h" -#include "SampleBuffer.h" #include "PathUtil.h" +#include "SampleBuffer.h" -#include - -class RelativePathsTest : QTestSuite +class RelativePathsTest : public QObject { Q_OBJECT private slots: @@ -66,6 +66,7 @@ private slots: QCOMPARE(PathUtil::toAbsolute(""), empty); QCOMPARE(PathUtil::toShortestRelative(""), empty); } -} RelativePathTests; +}; +QTEST_GUILESS_MAIN(RelativePathsTest) #include "RelativePathsTest.moc" diff --git a/tests/src/tracks/AutomationTrackTest.cpp b/tests/src/tracks/AutomationTrackTest.cpp index 05f345f8b8f..b4f6effd9e4 100644 --- a/tests/src/tracks/AutomationTrackTest.cpp +++ b/tests/src/tracks/AutomationTrackTest.cpp @@ -22,7 +22,7 @@ * */ -#include "QTestSuite.h" +#include #include "QCoreApplication" @@ -39,12 +39,20 @@ #include "Engine.h" #include "Song.h" -class AutomationTrackTest : QTestSuite +class AutomationTrackTest : public QObject { Q_OBJECT private slots: void initTestCase() { + using namespace lmms; + Engine::init(true); + } + + void cleanupTestCase() + { + using namespace lmms; + Engine::destroy(); } void testClipLinear() @@ -148,12 +156,11 @@ private slots: auto song = Engine::getSong(); - InstrumentTrack* instrumentTrack = - dynamic_cast(Track::create(Track::Type::Instrument, song)); + InstrumentTrack instrumentTrack(song); - MidiClip* midiClip = dynamic_cast(instrumentTrack->createClip(0)); - midiClip->changeLength(TimePos(4, 0)); - Note* note = midiClip->addNote(Note(TimePos(4, 0)), false); + MidiClip midiClip(&instrumentTrack); + midiClip.changeLength(TimePos(4, 0)); + Note* note = midiClip.addNote(Note(TimePos(4, 0)), false); note->createDetuning(); DetuningHelper* dh = note->detuning(); @@ -175,10 +182,11 @@ private slots: auto song = Engine::getSong(); auto patternStore = Engine::patternStore(); PatternTrack patternTrack(song); - Track* automationTrack = Track::create(Track::Type::Automation, patternStore); + AutomationTrack automationTrack(patternStore); + automationTrack.createClipsForPattern(patternStore->numOfPatterns() - 1); - QVERIFY(automationTrack->numOfClips()); - AutomationClip* c1 = dynamic_cast(automationTrack->getClip(0)); + QVERIFY(automationTrack.numOfClips()); + auto c1 = dynamic_cast(automationTrack.getClip(0)); QVERIFY(c1); FloatModel model; @@ -232,6 +240,7 @@ private slots: QCOMPARE(song->automatedValuesAt(0)[&model], 50.0f); } -} AutomationTrackTest; +}; +QTEST_GUILESS_MAIN(AutomationTrackTest) #include "AutomationTrackTest.moc" diff --git a/vcpkg.json b/vcpkg.json index 48a3e3c28c3..1f64409344f 100644 --- a/vcpkg.json +++ b/vcpkg.json @@ -1,14 +1,13 @@ { "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg.schema.json", + "name": "lmms", "dependencies": [ { "name": "fftw3", "default-features": false, "features": [ "sse", - "sse2", - "avx", - "avx2" + "sse2" ] }, { @@ -64,10 +63,7 @@ }, { "name": "sdl2", - "default-features": false, - "features": [ - "base" - ] + "default-features": false }, { "name": "zlib",