Giter VIP home page Giter VIP logo

powertab / powertabeditor Goto Github PK

View Code? Open in Web Editor NEW
512.0 54.0 68.0 6.72 MB

View and edit guitar tablature.

Home Page: https://powertab.github.io

License: GNU General Public License v3.0

CMake 1.59% C++ 94.35% HTML 1.76% Objective-C++ 0.16% C 0.53% Inno Setup 1.53% PowerShell 0.08%
guitar-tabs music-composition c-plus-plus guitar cross-platform music music-notation qt audio tablature

powertabeditor's Introduction

Power Tab Editor

Guitar tablature viewer and editor

Visit our website

Build Status

Translation status

Get it from the Snap Store Download on Flathub

Table of Contents

About Power Tab Editor

Power Tab Editor 2.0 - A powerful cross platform guitar tablature viewer and editor inspired by the ceased development and missing source code from the original Power Tab Editor. This project is open-source and written from scratch so that your favorite tabbing platform can continuously grow with your needs.

Key Features

  • Cross platform - Windows, Mac, & Linux
  • Tabbed layout for opening multiple files at the same time
  • Mixer interface for adjusting volumes during playback
  • Complete customization of keyboard shortcuts
  • Importing of Guitar Pro tabs

Supported File Types

  • .pt2
  • .ptb
  • .gp3, .gp4, .gp5
  • .gpx
  • .gp

Users

Developers

  • Development help is very welcome! If you're interested in contributing, the issue tracker has a list of good first issues that are easier to dive into!
  • Feel free to ask development-related questions on the discussions page or on Discord
  • See below for instructions on how to compile and run the project:

Dependencies:

  • CMake >= 3.12
  • Boost >= 1.65
    • algorithm
    • date_time
    • endian
    • functional
    • iostreams
    • operators
    • rational
    • signals2
    • stacktrace
  • Qt >= 5.10 version or greater
  • nlohmann-json >= 3.7.3
  • RtMidi >= 4.0
  • pugixml
  • minizip
  • doctest
  • (Linux only) - ALSA library (e.g. libasound2-dev)
  • (Linux only) - MIDI sequencer (e.g. timidity-daemon)
  • A compiler with C++17 support.

Building:

Windows:

  • Install Git - see https://help.github.com/articles/set-up-git
  • Install vcpkg and run vcpkg install --triplet x64-windows boost-algorithm boost-date-time boost-endian boost-functional boost-iostreams boost-rational boost-signals2 boost-stacktrace doctest minizip nlohmann-json pugixml to install dependencies.
  • Install Qt by running vcpkg install --triplet x64-windows qt5-base qt5-tools (this may take a while), or install a binary release from the Qt website or https://github.com/miurahr/aqtinstall.
  • Open the project folder in Visual Studio and build.
    • If running CMake manually, set CMAKE_TOOLCHAIN_FILE to [vcpkg root]\scripts\buildsystems\vcpkg.cmake
PowerShell Installation Scripts
  • For a more installation streamlined process
    • with at least PowerShell 5.1 is installed on your machine
    • Run these powershell scripts in your powershell terminal with your shell working directory as your cloned project
.\scripts\Get-Dependencies.ps1 -vcpkg_exe_path "your/path/to/your/vcpkg.exe" -python_exe_path "your/path/to/your/python.exe";
.\scripts\Run-CMakeBuild.ps1 -vcpkg_dir "your/path/to/your/vcpkg" -qt_path "your/path/to/qt";

You'll have to update the variables for your specific paths to $vcpkg_exe_path, $python_exe_path, and $qt_path

Linux:

  • These instructions assume a recent Ubuntu/Debian-based system, but the package names should be similar for other package managers.
  • Install dependencies:
    • sudo apt update
    • sudo apt install cmake qtbase5-dev qttools5-dev libboost-dev libboost-date-time-dev libboost-iostreams-dev nlohmann-json3-dev libasound2-dev librtmidi-dev libpugixml-dev libminizip-dev doctest-dev
    • sudo apt-get install timidity-daemon - timidity is not required for building, but is a good sequencer for MIDI playback.
    • Optionally, use Ninja instead of make (sudo apt install ninja-build)
  • Build:
    • mkdir build && cd build
    • cmake ..
      • Add -DCMAKE_INSTALL_PREFIX=/some/path to customize the install directory.
      • Add -DCMAKE_BUILD_TYPE=Debug for a debug build instead of a Release build.
      • Add -DCMAKE_CXX_COMPILER=clang++ to compile with Clang.
      • Add -G Ninja to generate Ninja build files.
    • make -j8 or ninja
  • Run:
    • ./bin/powertabeditor
    • ./bin/pte_tests to run the unit tests.
  • Install:
    • make install or ninja install

OS X:

  • Install Xcode along with its Command Line Tools.
  • Install dependencies:
    • brew install boost cmake doctest minizip ninja nlohmann-json pugixml qt@5 pugixml rtmidi
  • Build:
    • mkdir build && cd build
    • cmake -G Ninja -DCMAKE_BUILD_TYPE=Debug -DCMAKE_PREFIX_PATH=/usr/local/opt/qt@5/lib/cmake ..
      • To generate an Xcode project, switch to -G Xcode and then open and build build/powertabeditor.xcodeproj
    • ninja
  • Run:
    • open ./bin/Power\ Tab\ Editor.app
    • ./bin/pte_tests to run the unit tests.
    • For Xcode, select Product/Scheme/powertabeditor and then Product/Run.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.