Skip to content

Commit

Permalink
v0.2.0
Browse files Browse the repository at this point in the history
  • Loading branch information
stoneface86 committed Jun 16, 2021
1 parent abbf43e commit bee9c6b
Show file tree
Hide file tree
Showing 9 changed files with 48 additions and 18 deletions.
Binary file added .github/demo.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed .github/newui.png
Binary file not shown.
Binary file removed .github/pattern_editor_demo.gif
Binary file not shown.
Binary file removed .github/wave_editor_demo.gif
Binary file not shown.
32 changes: 32 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,38 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]
* Choose which channels to export when exporting to WAV
* Option to export each channel as separate WAV files
* Color configuration for the pattern editor and other editors
* Note previews when entering notes in the pattern editor
* Keyboard binding configuration for the pattern editor
* Loop pattern playback functionality
* Row playback
* MIDI Support
* Pattern compiler - export module data to assembly
* Export to .gbs
* Visualizers - scopes and peak meters


## [0.2.0] - 2021-06-15
The project has changed dramatically since the last release so changes will
not be listed for this version.
Here's a quick list of features:
* Open/save modules, can have multiple modules open at once
* Edit pattern data via keyboard (OpenMPT style keybindings, will be configurable in later versions)
* Transpose selection by note/octave or by a custom semitone offset (Ctrl+T)
* Reverse selected rows (Ctrl+R)
* Cut/Copy/Paste pattern data using system clipboard
* Mix paste (only the unset columns get set to the pasted data)
* Move pattern data via drag n drop
* Music playback, pattern cursor follows the current playing row
* Edit waveforms visually via a graph control, by selecting a preset or by manually entering waveram data
* Edit instrument sequences visually
* Instruments and Waveforms can be previewed using the piano control (or by keyboard).
* Undo/Redo functionality for song order and pattern editing.
* Audio diagnostics dialog (Help > Audio Diagnostics) for debugging sound output / buffer issues.


## [0.1.0] - 2020-09-20
### Added
Expand Down
3 changes: 2 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ set(CMAKE_USER_MAKE_RULES_OVERRIDE "${CMAKE_CURRENT_LIST_DIR}/CompilerOverrides.

project (
trackerboy
VERSION "0.1.0"
VERSION "0.2.0"
LANGUAGES C CXX
)

Expand All @@ -40,6 +40,7 @@ else ()
set(DEBUG_BUILD FALSE)
endif ()


# abort if compiler is 32-bit
if (${CMAKE_SIZEOF_VOID_P} EQUAL 4)
message(FATAL_ERROR "32-bit builds are not supported")
Expand Down
15 changes: 2 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,20 +24,9 @@ My tag is stoneface#7646 or you can join the server, https://discord.gg/m6wcAK3

## Status

v0.2.0 is in progress and will be the first "functional" version of trackerboy. This version
will feature a usable pattern editor.
v0.2.0 is now available.

### UI redo
The UI is being redesigned to be less cluttered than the old one, as well as adding MDI support
![Pattern Editor Demo](/.github/newui.png)

The library is (almost) finished and the UI is being worked on now.

Here is a general list of what needs to be completed:
* Instrument editor (in progress)
* ~~Wave editor~~
* ~~Pattern editor / Tracker grid~~
* Export to WAV
![Demo](/.github/demo.gif)

Post-release features:
* Sound effects
Expand Down
10 changes: 6 additions & 4 deletions ui/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ project(ui CXX)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
find_package(Qt5 COMPONENTS Widgets REQUIRED)

if (WIN32)
set(GUI_TYPE WIN32)
set(WINDOWS_APPICON_RC "resources/icons/app/appicon.rc")
Expand Down Expand Up @@ -93,6 +94,11 @@ target_link_libraries(ui PUBLIC
Qt5::Widgets
)

if (NOT ${DEBUG_BUILD})
target_compile_definitions(ui PUBLIC QT_NO_INFO_OUTPUT QT_NO_DEBUG_OUTPUT)
endif ()


#
# Target for the main ui, trackerboy_ui. We cannot use trackerboy as that name is used
# for libtrackerboy. However, the resulting executable is named trackerboy, not trackerboy_ui
Expand All @@ -102,10 +108,6 @@ target_link_libraries(trackerboy_ui PRIVATE ui)
# output executable is "trackerboy" and not "trackerboy_ui"
set_target_properties(trackerboy_ui PROPERTIES OUTPUT_NAME "trackerboy")

# no info or debug output via qDebug for release builds
if (NOT DEBUG_BUILD)
target_compile_definitions(trackerboy_ui PRIVATE QT_NO_INFO_OUTPUT QT_NO_DEBUG_OUTPUT)
endif ()

#
# test programs
Expand Down
6 changes: 6 additions & 0 deletions ui/core/model/ModuleModel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -317,10 +317,16 @@ void ModuleModel::setCurrentDocument(int index) {
// benchmark this for usability reasons
// if it's too high then the user experience will suffer, switching
// tabs should be instantaneous
#ifndef QT_NO_DEBUG_OUTPUT
QElapsedTimer timer;
timer.start();
#endif

emit currentDocumentChanged(doc);

#ifndef QT_NO_DEBUG_OUTPUT
qDebug() << "Document switched in" << timer.elapsed() << "milliseconds";
#endif
}
}

Expand Down

0 comments on commit bee9c6b

Please sign in to comment.