Third-party notices
The third-party open source components Setliner ships, and their licenses, as Section 10.2 of the End User License Agreement promises. This is the same list the app shows in Settings > Third-party notices, and the app's builds fail if a shipped library is missing from it or listed at the wrong version. The licence and NOTICE texts those licences require are linked from each row; the Apache License 2.0 text most of the list is under is here.
Components shipped in the app
| Component | License | Source / license text |
|---|---|---|
| Kotlin Standard Library 2.4.20 (desktop, Android, iOS) — its kotlin.time package includes code from ThreeTen-BP | Apache License 2.0; ThreeTen-BP code under the BSD 3-Clause License | Apache License 2.0 text; ThreeTen-BP licence |
| Kotlin/Native runtime 2.4.20 (iOS) — linked into the iOS app by the Kotlin compiler; includes code from Apache Harmony and Unicode character data | Apache License 2.0; Unicode data under the Unicode licence | Kotlin/Native notice; Apache License 2.0 text; upstream https://github.com/JetBrains/kotlin |
| Kotlin Reflect 2.0.21 (desktop) | Apache License 2.0 | Apache License 2.0 text |
| JetBrains Java Annotations 23.0.0 (desktop, Android) | Apache License 2.0 | Apache License 2.0 text |
| kotlinx.coroutines 1.9.0 (desktop, Android, iOS) | Apache License 2.0 | Apache License 2.0 text |
| kotlinx.serialization 1.11.0 (desktop, Android, iOS) | Apache License 2.0 | Apache License 2.0 text |
| kotlinx-datetime 0.7.1 (desktop, iOS) | Apache License 2.0 | Apache License 2.0 text |
| kotlinx-io 0.5.4 (desktop, Android, iOS) | Apache License 2.0 | Apache License 2.0 text |
| kotlinx atomicfu 0.28.0 (desktop, iOS) | Apache License 2.0 | Apache License 2.0 text |
| Compose Multiplatform Material 3 1.9.0 (desktop, Android, iOS) | Apache License 2.0 | Apache License 2.0 text |
| Compose Multiplatform 1.11.1 / 1.10.0 / 1.9.1 (desktop, Android, iOS) — runtime, UI, foundation, animation, resources and desktop; some internal modules resolve at 1.10.0 or 1.9.1 | Apache License 2.0 | Apache License 2.0 text |
| JetBrains Lifecycle and SavedState for Compose Multiplatform 2.9.6 / 1.3.6 (desktop, Android, iOS) — Lifecycle 2.9.6, SavedState 1.3.6 | Apache License 2.0 | Apache License 2.0 text |
| Skiko 0.144.6 (desktop, iOS) — Kotlin bindings for Skia, which it bundles with Skia's own third-party libraries (notices below) | Apache License 2.0 | Skia and bundled libraries notice; upstream https://github.com/JetBrains/skiko |
| JetBrains Runtime API 1.9.0 (desktop) | Apache License 2.0 | Apache License 2.0 text |
| AndroidX Compose Material 3 1.4.0 (Android) | Apache License 2.0 | Apache License 2.0 text |
| AndroidX Compose Material Icons 1.7.8 (Android) | Apache License 2.0 | Apache License 2.0 text |
| AndroidX Compose 1.12.1 / 1.11.2 (desktop, Android, iOS) — runtime, UI, foundation and animation; desktop and iOS take the runtime at 1.11.2 through Compose Multiplatform | Apache License 2.0 | Apache License 2.0 text |
| AndroidX Activity 1.13.0 (Android) | Apache License 2.0 | Apache License 2.0 text |
| AndroidX Annotation 1.10.0 / 1.9.1 / 1.4.1 (desktop, Android, iOS) | Apache License 2.0 | Apache License 2.0 text |
| AndroidX Arch Core 2.2.0 (desktop, Android) | Apache License 2.0 | Apache License 2.0 text |
| AndroidX Autofill 1.0.0 (Android) | Apache License 2.0 | Apache License 2.0 text |
| AndroidX Collection 1.5.0 (desktop, Android, iOS) | Apache License 2.0 | Apache License 2.0 text |
| AndroidX Concurrent 1.1.0 (Android) | Apache License 2.0 | Apache License 2.0 text |
| AndroidX Core 1.19.1 / 1.0.0 (Android) | Apache License 2.0 | Apache License 2.0 text |
| AndroidX CustomView PoolingContainer 1.0.0 (Android) | Apache License 2.0 | Apache License 2.0 text |
| AndroidX DocumentFile 1.1.0 (Android) | Apache License 2.0 | Apache License 2.0 text |
| AndroidX Emoji2 1.4.0 (Android) | Apache License 2.0 | Apache License 2.0 text |
| AndroidX Graphics Path 1.0.1 (Android) | Apache License 2.0 | Apache License 2.0 text |
| AndroidX Interpolator 1.0.0 (Android) | Apache License 2.0 | Apache License 2.0 text |
| AndroidX Lifecycle 2.11.0 / 2.9.4 (desktop, Android, iOS) | Apache License 2.0 | Apache License 2.0 text |
| AndroidX Navigation 2.10.2 (Android) | Apache License 2.0 | Apache License 2.0 text |
| AndroidX NavigationEvent 1.1.2 / 1.0.1 (desktop, Android, iOS) | Apache License 2.0 | Apache License 2.0 text |
| AndroidX ProfileInstaller 1.4.1 (Android) | Apache License 2.0 | Apache License 2.0 text |
| AndroidX SavedState 1.5.0 / 1.4.0 (desktop, Android, iOS) | Apache License 2.0 | Apache License 2.0 text |
| AndroidX Startup 1.1.1 (Android) | Apache License 2.0 | Apache License 2.0 text |
| AndroidX Tracing 1.2.0 (Android) | Apache License 2.0 | Apache License 2.0 text |
| AndroidX VersionedParcelable 1.1.1 (Android) | Apache License 2.0 | Apache License 2.0 text |
| AndroidX Window 1.5.0 (Android) | Apache License 2.0 | Apache License 2.0 text |
| Guava ListenableFuture 1.0 (Android) | Apache License 2.0 | Apache License 2.0 text |
| JSpecify 1.0.0 (desktop, Android) | Apache License 2.0 | Apache License 2.0 text |
| Ktor 3.0.3 (desktop, Android, iOS) — client on every platform; server and its Netty engine on desktop | Apache License 2.0 | Apache License 2.0 text; upstream https://github.com/ktorio/ktor |
| Netty 4.1.137.Final (desktop) | Apache License 2.0 | Netty NOTICE; upstream https://netty.io/ |
| Typesafe Config 1.4.3 (desktop) | Apache License 2.0 | Apache License 2.0 text |
| Jansi 2.4.1 (desktop) | Apache License 2.0 | Apache License 2.0 text |
| Jetty ALPN API 1.1.3.v20160715 (desktop) | Apache License 2.0 (dual-licensed with EPL 1.0; used under Apache 2.0) | Apache License 2.0 text |
| SLF4J API 2.0.16 (desktop, Android) | MIT License | licence text; upstream https://www.slf4j.org/ |
| Java-WebSocket 1.6.0 (desktop, Android) | MIT License | licence text; upstream https://github.com/TooTallNate/Java-WebSocket |
| Bouncy Castle 1.85 (desktop, Android) — bcprov, bcpkix and bcutil | Bouncy Castle Licence (MIT) | licence text; upstream https://www.bouncycastle.org/licence.html |
| ZXing 3.5.4 (desktop, Android) | Apache License 2.0 | Apache License 2.0 text; upstream https://github.com/zxing/zxing |
| ZXing Android Embedded 4.3.0 (Android) | Apache License 2.0 | Apache License 2.0 text; upstream https://github.com/zxing/zxing |
| JmDNS 3.6.3 (desktop) | Apache License 2.0 | Apache License 2.0 text; upstream https://github.com/jmdns/jmdns/blob/v3.6.3/LICENSE |
| Apache PDFBox and FontBox 2.0.37 (desktop) | Apache License 2.0 | PDFBox NOTICE; FontBox NOTICE; upstream https://pdfbox.apache.org/ |
| Apache Commons Logging 1.2 (desktop) | Apache License 2.0 | Commons Logging NOTICE |
| PdfBox-Android 2.0.27.0 (Android) — an Android port of Apache PDFBox, whose notice is above | Apache License 2.0 | Apache License 2.0 text; upstream https://github.com/TomRoush/PdfBox-Android |
| Tesseract OCR 5.5.3 and Leptonica 1.87.0 (desktop, Android) — the picture-reading engine and its image library, through the JavaCPP Presets (5.5.3-1.5.14 and 1.87.0-1.5.14), which supply their Java classes; Tesseract is built without libcurl and libarchive so it holds no network code; Leptonica's native build includes zlib 1.3.2, giflib 5.2.2, libjpeg-turbo 3.0.1, libpng 1.6.53, libtiff 4.7.1, libwebp 1.6.0 and OpenJPEG 2.5.4 (licences in the notice) | Apache License 2.0 (Tesseract); Leptonica licence (BSD 2-clause style); bundled libraries under zlib, MIT, IJG/BSD, libpng, libtiff, BSD licences | Leptonica and bundled libraries notice; Apache License 2.0 text; upstream https://github.com/tesseract-ocr/tesseract and https://github.com/DanBloomberg/leptonica |
| Tesseract OCR 5.5.3 and Leptonica 1.87.0 (iOS build) — compiled from source by Setliner into the iPad app, without libcurl, libarchive or any image file library, so they hold no network code and decode no files | Apache License 2.0 (Tesseract); Leptonica licence (BSD 2-clause style) | Leptonica notice (its first licence; the bundled libraries after it are not in the iOS build); Apache License 2.0 text |
| JavaCPP and JavaCPP Presets (Samuel Audet and contributors) 1.5.14 (desktop, Android) — loads the native Tesseract and Leptonica libraries | Apache License 2.0 (offered alongside the GPL with the Classpath Exception; Setliner uses the Apache License 2.0 option) | JavaCPP notice; Apache License 2.0 text; upstream https://github.com/bytedeco/javacpp |
| Tesseract English model (tessdata_fast eng.traineddata), modified (desktop, Android, iOS) — from github.com/tesseract-ocr/tessdata_fast; modified by Setliner: its three dictionary components (lstm-punc-dawg, lstm-word-dawg and lstm-number-dawg) were removed, so the model reads characters without a word list | Apache License 2.0 | modification notice; Apache License 2.0 text; upstream https://github.com/tesseract-ocr/tessdata_fast |
| Basic Pitch (Spotify) 0.4.0 (desktop, Android, iOS) — the network, its constant-Q kernels and its training code, ported to Kotlin for practice note recognition; the trained weights are Setliner's own (next entry) | Apache License 2.0 | Basic Pitch NOTICE; upstream https://github.com/spotify/basic-pitch |
| Basic Pitch weights: Setliner's retrain B2 (desktop, Android, iOS) — trained on GuitarSet, Slakh2100, VocalSet, MUSAN, the BUT Speech@FIT Reverb Database and OpenSLR room responses; the data is not included | Setliner's own; trained on CC BY 4.0, CC BY 3.0, Apache 2.0 and public-domain data | training data credits |
| nnAudio CQT2010v2 (desktop, Android, iOS) — Basic Pitch's constant-Q transform is ported from nnAudio, and Setliner's port of it reproduces that code | MIT License | licence text; upstream https://github.com/KinWaiCheuk/nnAudio |
| Noto Emoji (Google) subset of six glyphs (desktop, Android, iOS) — embedded in exported PDFs so an emoji annotation prints | SIL Open Font License 1.1 | licenses/NotoEmoji-OFL.txt; upstream https://github.com/google/fonts/tree/main/ofl/notoemoji |
| Carlito (Google Fonts) 1.104 (desktop) — stand-in for Calibri when drawing PowerPoint slides; from github.com/google/fonts | SIL Open Font License 1.1 | licenses/Carlito-OFL.txt; upstream https://github.com/google/fonts/tree/main/ofl/carlito |
| Caladea (Huerta Tipografica, via Google Fonts) 1.001 (desktop) — stand-in for Cambria when drawing PowerPoint slides; from github.com/google/fonts | SIL Open Font License 1.1 | licenses/Caladea-OFL.txt; upstream https://github.com/google/fonts/tree/main/ofl/caladea |
| Gelasio (Sorkin Type, via Google Fonts) 1.008 (desktop) — stand-in for Georgia when drawing PowerPoint slides; from github.com/google/fonts | SIL Open Font License 1.1 | licenses/Gelasio-OFL.txt; upstream https://github.com/google/fonts/tree/main/ofl/gelasio |
| Liberation Sans and Liberation Serif (Red Hat) 2.1.5 (desktop) — stand-ins for Arial/Helvetica and Times New Roman when drawing PowerPoint slides; from github.com/liberationfonts/liberation-fonts | SIL Open Font License 1.1 | licenses/Liberation-OFL.txt; upstream https://github.com/liberationfonts/liberation-fonts |
| Montserrat (Julieta Ulanovsky, via Google Fonts) 9.000 (desktop) — for PowerPoint slides that use it; from github.com/google/fonts | SIL Open Font License 1.1 | licenses/Montserrat-OFL.txt; upstream https://github.com/google/fonts/tree/main/ofl/montserrat |
| Open Sans (Google Fonts) 3.003 (desktop) — for PowerPoint slides that use it; from github.com/google/fonts | SIL Open Font License 1.1 | licenses/OpenSans-OFL.txt; upstream https://github.com/google/fonts/tree/main/ofl/opensans |
| Oswald (Vernon Adams, via Google Fonts) 4.103 (desktop) — for PowerPoint slides that use it; from github.com/google/fonts | SIL Open Font License 1.1 | licenses/Oswald-OFL.txt; upstream https://github.com/google/fonts/tree/main/ofl/oswald |
| Bebas Neue (Dharma Type, via Google Fonts) 2.000 (desktop) — for PowerPoint slides that use it; from github.com/google/fonts | SIL Open Font License 1.1 | licenses/BebasNeue-OFL.txt; upstream https://github.com/google/fonts/tree/main/ofl/bebasneue |
| Material Symbols (Google) (desktop, Android, iOS) — icons vendored from github.com/google/material-design-icons: the desktop's icons, and Practice's microphone and save icons | Apache License 2.0 | Apache License 2.0 text; upstream https://github.com/google/material-design-icons/blob/master/LICENSE |
| Material Icons path data (Google) (desktop, Android, iOS) — from AndroidX Compose Material Icons 1.7.8: the iOS top bar's icons, and Practice's arrow, layout, close and gauge icons | Apache License 2.0 | Apache License 2.0 text; upstream https://github.com/google/material-design-icons/blob/master/LICENSE |
| Atkinson Hyperlegible (Braille Institute, via Google Fonts) 1.006 (desktop, Android, iOS) — a chart font choice; from github.com/google/fonts | SIL Open Font License 1.1 | licenses/AtkinsonHyperlegible-OFL.txt; upstream https://github.com/google/fonts/tree/main/ofl/atkinsonhyperlegible |
| Lexend (The Lexend Project) 1.008 (desktop, Android, iOS) — a chart font choice; from github.com/googlefonts/lexend | SIL Open Font License 1.1 | licenses/Lexend-OFL.txt; upstream https://github.com/googlefonts/lexend |
| OpenDyslexic (Abbie Gonzalez) 0.990 (desktop, Android, iOS) — a chart font choice; from github.com/antijingoist/opendyslexic | SIL Open Font License 1.1 | licenses/OpenDyslexic-OFL.txt; upstream https://github.com/antijingoist/opendyslexic |
| Java runtime (OpenJDK: Eclipse Temurin) 25.0.4.1, 21.0.12.1 (desktop) — bundled with the desktop installers: Eclipse Temurin 25 on Windows, macOS and Linux (25.0.4.1+1 in the 2.2.41, 2.2.42 and 2.2.44 Windows, macOS and Linux installers) (the 2.2.33 installers: Temurin 21.0.12.1+1 on Windows and macOS, Ubuntu's openjdk-21 21.0.12.1+1-1~26.04.4 on Linux); its own licence files are installed with it, in the runtime's legal folder | GNU General Public License v2 with the Classpath Exception | runtime notice and written offer; complete source, versions and sha256 |
| jpackage application launcher (OpenJDK) 21.0.12.1 (desktop) — the program that starts Setliner (Setliner.exe on Windows, the launcher in Setliner.app on macOS, bin/Setliner and libapplauncher.so on Linux), from the same JDK as the runtime | GNU General Public License v2 with the Classpath Exception | launcher notice; complete source, versions and sha256 |
| jpackage installer helper and dialog (wixhelper.dll, InstallDirNotEmptyDlg; OpenJDK) 21.0.12.1 (desktop) — a custom action, and an installer dialog with its strings, inside the Windows installer, used only while installing | GNU General Public License v2 with the Classpath Exception | notice; complete source, versions and sha256 |
| WiX Toolset custom actions and dialogs (WixUtilExtension, WixUIExtension) 3.14.1 (desktop) — custom actions, dialogs and their images inside the Windows installer, used only while installing | Microsoft Reciprocal License (MS-RL) | WiX notice and MS-RL text; complete source, versions and sha256 |
Basic Pitch weights and the data they were trained on
Setliner's note-recognition weights are its own: retrained from random initialisation on licence-clean data, replacing Spotify's published weights. The network and training code remain Basic Pitch's (Apache License 2.0, above). None of the data below is included in the app; only the trained numbers are. The credits the CC BY data asks for, also shown in the app:
- GuitarSet (v1.1.0) by Qingyang Xi, Rachel M. Bittner, Johan Pauwels, Xuzhou Ye and Juan P. Bello, https://doi.org/10.5281/zenodo.3371780, licensed under CC BY 4.0.
- Slakh2100 (redux) by Ethan Manilow, Gordon Wichern, Prem Seetharaman and Jonathan Le Roux, https://doi.org/10.5281/zenodo.4599666, licensed under CC BY 4.0; its MIDI derives from the Lakh MIDI Dataset by Colin Raffel, CC BY 4.0. Guitar and bass stems used.
- VocalSet (v1.1) by Julia Wilkins, Prem Seetharaman, Alison Wahl and Bryan Pardo, https://doi.org/10.5281/zenodo.1442513, licensed under CC BY 4.0. Mixed in as singing interference.
- MUSAN by David Snyder, Guoguo Chen and Daniel Povey, https://www.openslr.org/17/, licensed under CC BY 4.0. Noise and speech mixed in as background; 63 SoundBible noise files are CC BY 3.0, credited one by one in the app's notices.
- BUT Speech@FIT Reverb Database (release 19_06) by Igor Szöke, Miroslav Skácel, Ladislav Mošner, Jakub Paliesek and Jan Černocký, Brno University of Technology, https://speech.fit.vut.cz/software/but-speech-fit-reverb-database, licensed under CC BY 4.0. Room impulse responses.
- Simulated room impulse responses from OpenSLR SLR26 and SLR28 (Ko, Peddinti, Povey, Seltzer and Khudanpur), https://www.openslr.org/26/ and https://www.openslr.org/28/, licensed under the Apache License 2.0.
Data used by our website (not shipped in the app)
Our website's visit counters look up a visitor's country from the IP address at the moment of the visit, on our own server, and keep only the country (Privacy Policy, Section 13). The country data:
- IP Geolocation by DB-IP: the IP to Country Lite database by DB-IP.com, https://db-ip.com/db/download/ip-to-country-lite, licensed under CC BY 4.0. We convert each monthly release into a lookup table, merge neighbouring ranges with the same country, and leave out reserved and placeholder ranges; we make no other change. Nothing from it is in the app.
Build tools (not shipped in the app)
| Component | License | Source / license text |
|---|---|---|
Android Gradle Plugin (com.android.application, .library, .test), version 8.13.0 | Apache License 2.0 | https://developer.android.com/studio/releases/gradle-plugin |
Kotlin Gradle Plugin (org.jetbrains.kotlin.android, .jvm, .multiplatform, .plugin.serialization, .plugin.compose), version 2.4.10 | Apache License 2.0 | https://github.com/JetBrains/kotlin/blob/master/LICENSE |
JetBrains Compose Gradle Plugin (org.jetbrains.compose), version 1.11.1 | Apache License 2.0 | https://github.com/JetBrains/compose-multiplatform/blob/master/LICENSE.txt |
AndroidX Baseline Profile Gradle Plugin (androidx.baselineprofile), version 1.4.1 | Apache License 2.0 | https://developer.android.com/jetpack/androidx/releases/benchmark |
Kotlin Test (JUnit 5 facade, kotlin("test-junit5")), bundled with Kotlin 2.4.10 | Apache License 2.0 | https://github.com/JetBrains/kotlin/blob/master/LICENSE |
JUnit 5 (Jupiter) engine (org.junit.jupiter:junit-jupiter-engine), version 5.10.2 — test only | Eclipse Public License 2.0 | https://github.com/junit-team/junit5/blob/main/LICENSE.md |
JUnit 4 (junit:junit), version 4.13.2 — Android instrumented/unit tests only | Eclipse Public License 1.0 | https://github.com/junit-team/junit4/blob/main/LICENSE.txt |
Mockito (org.mockito:mockito-core), version 5.23.0 — Android unit tests only | MIT License | https://github.com/mockito/mockito/blob/main/LICENSE |
AndroidX Test JUnit extension (androidx.test.ext:junit), version 1.3.0 — :baselineprofile only | Apache License 2.0 | https://developer.android.com/jetpack/androidx/releases/test |
AndroidX Test Espresso (androidx.test.espresso:espresso-core), version 3.7.0 — :baselineprofile only | Apache License 2.0 | https://developer.android.com/jetpack/androidx/releases/test |
AndroidX Test UI Automator (androidx.test.uiautomator:uiautomator), version 2.4.0 — :baselineprofile only | Apache License 2.0 | https://developer.android.com/jetpack/androidx/releases/test |
AndroidX Benchmark Macro (androidx.benchmark:benchmark-macro-junit4), version 1.4.1 — :baselineprofile only | Apache License 2.0 | https://developer.android.com/jetpack/androidx/releases/benchmark |
Corrections welcome: if a license here is wrong or a component is missing, contact support@setliner.com.