Skip to content

Commit 4d5a793

Browse files
committed
Remove QLinkHut
This allow to remove the dependency on Qt. For testing LinkHut is good enough as it provides the same functionality.
1 parent b2b8a74 commit 4d5a793

13 files changed

+49
-799
lines changed

.appveyor.yml

+1-18
Original file line numberDiff line numberDiff line change
@@ -15,50 +15,34 @@ environment:
1515
- AUDIO_DRIVER: Asio
1616
CONFIGURATION: Release
1717
GENERATOR: Visual Studio 12 2013
18-
QT_VERSION: 5.6
19-
QT: msvc2013
2018
# Visual Studio 2013, 64-bit Release, Asio driver
2119
- AUDIO_DRIVER: Asio
2220
CONFIGURATION: Release
2321
GENERATOR: Visual Studio 12 2013 Win64
24-
QT_VERSION: 5.10
25-
QT: msvc2013_64
2622
# Visual Studio 2013, 64-bit Debug, Wasapi driver
2723
- AUDIO_DRIVER: Wasapi
2824
CONFIGURATION: Debug
2925
GENERATOR: Visual Studio 12 2013 Win64
30-
QT_VERSION: 5.10
31-
QT: msvc2013_64
3226
# Visual Studio 2015, 32-bit Release, Asio driver
3327
- AUDIO_DRIVER: Asio
3428
CONFIGURATION: Release
3529
GENERATOR: Visual Studio 14 2015
36-
QT_VERSION: 5.10
37-
QT: msvc2015
3830
# Visual Studio 2015, 64-bit Debug, Asio driver
3931
- AUDIO_DRIVER: Asio
4032
CONFIGURATION: Debug
4133
GENERATOR: Visual Studio 14 2015 Win64
42-
QT_VERSION: 5.10
43-
QT: msvc2015_64
4434
# Visual Studio 2015, 64-bit Release, Asio driver
4535
- AUDIO_DRIVER: Asio
4636
CONFIGURATION: Release
4737
GENERATOR: Visual Studio 14 2015 Win64
48-
QT_VERSION: 5.10
49-
QT: msvc2015_64
5038
# Visual Studio 2015, 64-bit Release, Wasapi driver
5139
- AUDIO_DRIVER: Wasapi
5240
CONFIGURATION: Release
5341
GENERATOR: Visual Studio 14 2015 Win64
54-
QT_VERSION: 5.10
55-
QT: msvc2015_64
5642
# Visual Studio 2017, 64-bit Release, Asio driver
5743
- AUDIO_DRIVER: Asio
5844
CONFIGURATION: Release
5945
GENERATOR: Visual Studio 15 2017 Win64
60-
QT_VERSION: 5.10
61-
QT: msvc2017_64
6246

6347
matrix:
6448
exclude:
@@ -75,10 +59,9 @@ matrix:
7559

7660
install:
7761
- git submodule update --init --recursive
78-
- set PATH=%PATH%;C:\Qt\%QT_VERSION%\%QT%\bin
7962

8063
build_script:
81-
- python ci/configure.py -q -a %AUDIO_DRIVER% -g "%GENERATOR%"
64+
- python ci/configure.py -a %AUDIO_DRIVER% -g "%GENERATOR%"
8265
- python ci/build.py --configuration %CONFIGURATION%
8366

8467
test_script:

.travis.yml

+4-15
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ matrix:
4545
packages: ['clang-3.6', 'g++-5', 'valgrind', 'portaudio19-dev']
4646
env: COMPILER=clang++-3.6 WORDSIZE=64 CONFIGURATION=Debug AUDIO=Alsa
4747

48-
# Linux with Clang 3.6, 64-bit Release, Jack
48+
# Linux with Clang 3.8, 64-bit Release, Jack
4949
- os: linux
5050
dist: trusty
5151
compiler: clang
@@ -116,15 +116,7 @@ before_install:
116116
- CXX=$COMPILER
117117

118118
# Install homebrew packages for Mac OS X
119-
- if [ "$TRAVIS_OS_NAME" = "osx" ]; then HOMEBREW_NO_AUTO_UPDATE=1 brew install qt5 && brew update && brew install ninja; fi
120-
121-
# Install QT for Linux
122-
- |
123-
if [ "$TRAVIS_OS_NAME" = "linux" ]; then
124-
sudo apt-add-repository -y ppa:beineri/opt-qt-5.10.1-trusty
125-
sudo apt-get -qy update
126-
sudo apt-get -qy install qtdeclarative5-dev
127-
fi
119+
- if [ "$TRAVIS_OS_NAME" = "osx" ]; then brew update && brew install ninja; fi
128120

129121
install:
130122
- git submodule update --init --recursive
@@ -144,19 +136,16 @@ script:
144136
idf.py build
145137
else
146138
if [ "$TRAVIS_OS_NAME" = "osx" ]; then
147-
PATH=`brew --prefix qt5`/bin:${PATH}
148139
if [ "$WORDSIZE" -eq 64 ]; then
149-
python ci/configure.py --configuration $CONFIGURATION --generator Ninja --with-qt
140+
python ci/configure.py --configuration $CONFIGURATION --generator Ninja
150141
else
151142
python ci/configure.py --configuration $CONFIGURATION --generator Ninja --flags "\-DCMAKE_OSX_ARCHITECTURES=i386"
152143
fi
153144
python ci/build.py --configuration $CONFIGURATION --arguments "all -v"
154145
else
155146
if [ "$WORDSIZE" -eq 64 ]; then
156-
PATH=$PWD/5.5/gcc_64:${PATH}
157-
python ci/configure.py --configuration $CONFIGURATION --with-qt -a $AUDIO
147+
python ci/configure.py --configuration $CONFIGURATION -a $AUDIO
158148
else
159-
PATH=$PWD/5.5/gcc:${PATH}
160149
python ci/configure.py --configuration $CONFIGURATION -a $AUDIO --flags "\-DCMAKE_CXX_FLAGS=\"\-m32\""
161150
fi
162151
python ci/build.py --configuration $CONFIGURATION --arguments "VERBOSE=1 -j8"

CMakeLists.txt

-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
1111
# |_|
1212

1313
# Note: Please use the LINK_* prefix for all project-specific options
14-
option(LINK_BUILD_QT_EXAMPLES "Build examples (Requires Qt)" OFF)
1514

1615
if(UNIX)
1716
option(LINK_ENABLE_ASAN "Build with Address Sanitizier (ASan)" OFF)

README.md

+3-25
Original file line numberDiff line numberDiff line change
@@ -32,28 +32,8 @@ $ cmake ..
3232
$ cmake --build .
3333
```
3434

35-
In order to build the GUI example application **QLinkHut**, the [Qt][qt] installation
36-
path must be set in the system PATH and `LINK_BUILD_QT_EXAMPLES` must be set:
37-
38-
```
39-
$ mkdir build
40-
$ cd build
41-
$ cmake -DLINK_BUILD_QT_EXAMPLES=ON ..
42-
$ cmake --build .
43-
```
44-
4535
The output binaries for the example applications and the unit-tests will be placed in a
46-
`bin` subdirectory of the CMake binary directory. Also note that the word size of the Qt
47-
installation must match how Link has been configured. Look for the value of
48-
`LINK_WORD_SIZE` in the CMake output to verify that the word size matches Qt's.
49-
50-
When running QLinkHut on Windows, the Qt binary path must be in the system `PATH` before
51-
launching the executable. So to launch QLinkHut from Visual Studio, one must go to the
52-
QLinkHut Properties -> Debugging -> Environment, and set it to:
53-
54-
```
55-
PATH=$(Path);C:\path\to\Qt\5.5\msvc64_bin\bin
56-
```
36+
`bin` subdirectory of the CMake binary directory.
5737

5838
# Integrating Link in your Application
5939

@@ -100,7 +80,6 @@ insight as to the compiler flags needed to build Link.
10080

10181
| Platform | Minimum Required | Optional (only required for examples) |
10282
|----------|----------------------|---------------------------------------|
103-
| **All** | CMake 3.0 | Qt 5.5 |
10483
| Windows | MSVC 2013 | Steinberg ASIO SDK 2.3 |
10584
| Mac | Xcode 7.0 | |
10685
| Linux | Clang 3.6 or GCC 5.2 | libportaudio19-dev |
@@ -115,8 +94,8 @@ information on the LinkKit SDK for iOS.
11594

11695
An overview of Link concepts can be found at http://ableton.github.io/link. Those that
11796
are new to Link should start there. The [Link.hpp](include/ableton/Link.hpp) header
118-
contains the full Link public interface. See the LinkHut and QLinkHut projects in this
119-
repo for an example usage of the `Link` type.
97+
contains the full Link public interface. See the LinkHut projects in this repo for an
98+
example usage of the `Link` type.
12099

121100
## Time and Clocks
122101

@@ -175,4 +154,3 @@ example apps.
175154
[catch]: https://github.com/philsquared/Catch
176155
[cmake]: https://www.cmake.org
177156
[license]: LICENSE.md
178-
[qt]: https://www.qt.io

TEST-PLAN.md

+41-37
Original file line numberDiff line numberDiff line change
@@ -6,53 +6,58 @@ behave consistently with respect to these test cases. ## Tempo Changes
66

77
### TEMPO-1: Tempo changes should be transmitted between connected apps.
88

9-
- Open LinkHut, press **Play**, when using QLinkHut click the **Link** button to enable
10-
Link. - Open App and **enable** Link. - Without starting to play, change tempo in App
11-
**⇒** LinkHut clicks should speed up or slow down to match the tempo specified in
12-
the App. - Start playing in the App **⇒** App and LinkHut should be in sync - Change
13-
tempo in App and in LinkHut **⇒** App and LinkHut should remain in sync
9+
- Open LinkHut, press **Play** and **enable** Link.
10+
- Open App and **enable** Link.
11+
- Without starting to play, change tempo in App **⇒** LinkHut clicks should speed up or slow down to match the tempo specified in
12+
the App.
13+
- Start playing in the App **⇒** App and LinkHut should be in sync
14+
- Change tempo in App and in LinkHut **⇒** App and LinkHut should remain in sync
1415

1516
### TEMPO-2: Opening an app with Link enabled should not change the tempo of an existing Link session.
1617

17-
- Open App and **enable** Link. - Set App tempo to 100bpm. - Terminate App. - Open
18-
LinkHut, press **Play** and **enable** Link. - Set LinkHut tempo to 130bpm. - Open App
19-
and **enable** Link. **⇒** Link should be connected (“1 Link”) and the App and
18+
- Open App and **enable** Link.
19+
- Set App tempo to 100bpm.
20+
- Terminate App.
21+
- Open LinkHut, press **Play** and **enable** Link.
22+
- Set LinkHut tempo to 130bpm.
23+
- Open App and **enable** Link. **⇒** Link should be connected (“1 Link”) and the App and
2024
LinkHut’s tempo should both be 130bpm.
2125

2226
### TEMPO-3: When connected, loading a new document should not change the Link session tempo.
2327

24-
- Open LinkHut, press **Play**, when using QLinkHut click the **Link** button to enable
25-
Link. - Set LinkHut tempo to 130bpm. - Open App and **enable** Link **⇒** LinkHut’s
26-
tempo should not change. - Load new Song/Set/Session with a tempo other than 130bpm
27-
**⇒** App and LinkHut tempo should both be 130bpm.
28+
- Open LinkHut, press **Play** and **enable** Link.
29+
- Set LinkHut tempo to 130bpm.
30+
- Open App and **enable** Link **⇒** LinkHut’s tempo should not change.
31+
- Load new Song/Set/Session with a tempo other than 130bpm **⇒** App and LinkHut tempo should both be 130bpm.
2832

2933
### TEMPO-4: Tempo range handling.
3034

31-
- Open LinkHut, press **Play**, when using QLinkHut click the **Link** button to enable
32-
Link. - Open App, start Audio, and **enable** Link. - Change tempo in LinkHut to
33-
**20bpm** **⇒** App and LinkHut should stay in sync. - Change Tempo in LinkHut to
34-
**999bpm** **⇒** App and LinkHut should stay in sync. - If App does not support the
35-
full range of tempos supported by Link, it should stay in sync by switching to a multiple
36-
of the Link session tempo.
35+
- Open LinkHut, press **Play**, enable Link.
36+
- Open App, start Audio, and **enable** Link.
37+
- Change tempo in LinkHut to **20bpm** **⇒** App and LinkHut should stay in sync.
38+
- Change Tempo in LinkHut to **999bpm** **⇒** App and LinkHut should stay in sync.
39+
- If App does not support the full range of tempos supported by Link, it should stay in sync by switching to a multiple of the Link session tempo.
3740

3841
### TEMPO-5: Enabling Link does not change app's tempo if there is no Link session to join.
39-
- Open App, start playing. - Change App tempo to something other than the default.
40-
- **Enable** Link **⇒** App's tempo should not change. - Change App tempo to a new
41-
value (not the default). - **Disable** Link **⇒** App's tempo should not change.
42+
- Open App, start playing.
43+
- Change App tempo to something other than the default.
44+
- **Enable** Link **⇒** App's tempo should not change.
45+
- Change App tempo to a new value (not the default).
46+
- **Disable** Link **⇒** App's tempo should not change.
4247

4348
## Beat Time
4449

4550
These cases verify the continuity of beat time across Link operations.
4651

4752
### BEATTIME-1: Enabling Link does not change app's beat time if there is no Link session to join.
48-
- Open App, start playing. - **Enable** Link **⇒** No beat time jump or
49-
audible discontinuity should occur. - **Disable** Link **⇒** No beat time jump or
50-
audible discontinuity should occur.
53+
- Open App, start playing.
54+
- **Enable** Link **⇒** No beat time jump or audible discontinuity should occur.
55+
- **Disable** Link **⇒** No beat time jump or audible discontinuity should occur.
5156

5257
### BEATTIME-2: App's beat time does not change if another participant joins its session.
53-
- Open App and **enable** Link. - Start playing. - Open LinkHut, when using QLinkHut
54-
**enable** Link **⇒** No beat time jump or audible discontinuity should occur in the
55-
App.
58+
- Open App and **enable** Link.
59+
- Start playing.
60+
- Open LinkHut and **enable** Link **⇒** No beat time jump or audible discontinuity should occur in the App.
5661

5762
**Note**: When joining an existing Link session, an app should adjust to the existing
5863
session's tempo and phase, which will usually result in a beat time jump. Apps that are
@@ -63,13 +68,11 @@ a new participant joins the session.
6368

6469
### STARTSTOPSTATE-1: Listening to start/stop commands from other peers.
6570
- Open App, set Link and Start Stop Sync to **Enabled**.
66-
- Open LinkHut and set Start Stop Sync to **Enabled**. When using QLinkHut click the **Link** button to enable
67-
Link. Press **Play** **⇒** App should start playing according to its quantization.
71+
- Open LinkHut, **enable** Link and Start Stop Sync and press **Play** **⇒** App should start playing according to its quantization.
6872
- Stop playback in LinkHut **⇒** App should stop playing.
6973

7074
### STARTSTOPSTATE-2: Sending start/stop commands to other peers.
71-
- Open LinkHut and set Start Stop Sync to **Enabled**. When using QLinkHut click the **Link** button to enable
72-
Link. Press **Play**.
75+
- Open LinkHut, **enable** Link and Start Stop Sync and press **Play**.
7376
- Open App, set Link and Start Stop Sync to **Enabled** **⇒** App should not be
7477
playing while LinkHut continues playing.
7578
- Start playback in App **⇒** App should join playing according to its quantization.
@@ -84,10 +87,11 @@ audio engine.
8487

8588
### AUDIOENGINE-1: Correct alignment of app audio with shared session
8689

87-
- Connect the audio out of your computer to the audio in. Alternatively use
90+
- Connect the audio out of your computer to the audio in. Alternatively use
8891
[SoundFlower](https://github.com/mattingalls/Soundflower) to be able to record the output
89-
of your app and LinkHut. - Open LinkHut, press **Play**, , when using QLinkHut click the
90-
**Link** button to enable Link. - Open App and **enable** Link. - Start playing audio
91-
(preferably a short, click-like sample) with notes on the same beats as LinkHut. - Record
92-
audio within application of choice. - Validate whether onset of the sample aligns with
93-
the pulse generated by LinkHut (tolerance: less than 3 ms).
92+
of your app and LinkHut.
93+
- Open LinkHut, **enable** Link and press **Play**.
94+
- Open App and **enable** Link.
95+
- Start playing audio (preferably a short, click-like sample) with notes on the same beats as LinkHut.
96+
- Record audio within application of choice.
97+
- Validate whether onset of the sample aligns with the pulse generated by LinkHut (tolerance: less than 3 ms).

ci/configure.py

-8
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,6 @@ def parse_args():
2626
'-c', '--configuration',
2727
help='Build configuration to use (not supported by IDE generators)')
2828

29-
arg_parser.add_argument(
30-
'-q', '--with-qt',
31-
help='Build Qt example apps',
32-
action='store_true')
33-
3429
arg_parser.add_argument(
3530
'-g', '--generator',
3631
help='CMake generator to use (default: Determined by CMake)')
@@ -54,9 +49,6 @@ def build_cmake_args(args):
5449
cmake_args.append('-G')
5550
cmake_args.append(args.generator)
5651

57-
if args.with_qt:
58-
cmake_args.append('-DLINK_BUILD_QT_EXAMPLES=ON')
59-
6052
if args.configuration is not None:
6153
cmake_args.append('-DCMAKE_BUILD_TYPE=' + args.configuration)
6254

0 commit comments

Comments
 (0)