Compare commits

...

11 Commits

Author SHA1 Message Date
Dave Griffiths 43bd1eff3e added liblo to mac build instructions 2022-09-26 12:14:13 +01:00
Dave Griffiths f521ccafc9 removed ci script 2022-09-26 12:03:38 +01:00
Dave Griffiths 11ed7413b3 fixed broken link duh fixes: #35 2022-09-26 12:01:40 +01:00
Dave Griffiths 0af0d8e20c new binaries added 2022-09-26 10:46:24 +01:00
dave griffiths dcdf481a02 Merge branch 'packaging/flatpak' into 'main'
packaging: Add support for building a Flatpak

See merge request then-try-this/samplebrain!4
2022-09-26 07:45:38 +00:00
Dave Griffiths e741246b1f turned off ci runner thing 2022-09-26 08:42:13 +01:00
dave griffiths 6241b1030d Merge branch 'development' into 'main'
fix build instructions and add mac deps list

See merge request then-try-this/samplebrain!5
2022-09-26 07:41:02 +00:00
Andrew Teta 70a277afb8 fix build instructions and add mac deps list 2022-09-25 22:07:30 -06:00
Owen D'Aprile 129b6ea416
linux: add a Flatpak manifest
This manifest will build a Flatpak from the current local source
directory.
2022-09-25 16:43:21 -04:00
Owen D'Aprile 9d7931c8c2
linux: don't use hardcoded path for Exec and Icon
Desktop files respect $PATH and $XDG_DATA_DIRS, so the full path does
not need to be specified to either.

This fixes the Flatpak build by allowing Flatpak to rewrite these to
match the app ID.
2022-09-25 16:21:17 -04:00
Owen D'Aprile 74b00570dd
build: allow setting installation prefix
Allow $PREFIX to be set during compilation, changing where the app is
installed.

This is used to change where the app is installed inside the Flatpak
sandbox.
2022-09-25 16:21:07 -04:00
6 changed files with 182 additions and 80 deletions

View File

@ -1,46 +0,0 @@
# This file is a template, and might need editing before it works on your project.
# This is a sample GitLab CI/CD configuration file that should run without any modifications.
# It demonstrates a basic 3 stage CI/CD pipeline. Instead of real tests or scripts,
# it uses echo commands to simulate the pipeline execution.
#
# A pipeline is composed of independent jobs that run scripts, grouped into stages.
# Stages run in sequential order, but jobs within stages run in parallel.
#
# For more information, see: https://docs.gitlab.com/ee/ci/yaml/index.html#stages
#
# You can copy and paste this template into a new `.gitlab-ci.yml` file.
# You should not add this template to an existing `.gitlab-ci.yml` file by using the `include:` keyword.
#
# To contribute improvements to CI/CD templates, please follow the Development guide at:
# https://docs.gitlab.com/ee/development/cicd/templates.html
# This specific template is located at:
# https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Getting-Started.gitlab-ci.yml
# see also https://docs.gitlab.com/ee/ci/runners/saas/macos_saas_runner.html
.macos_saas_runners:
tags:
- shared-macos-amd64
image: macos-11-xcode-12
stages:
- build
- test
before_script:
- echo "started by ${GITLAB_USER_NAME}"
build:
extends:
- .macos_saas_runners
stage: build
script:
- echo "running scripts in the build job"
test:
extends:
- .macos_saas_runners
stage: test
script:
- echo "running scripts in the test job"

View File

@ -11,46 +11,53 @@ to play in realtime.
This allows you to interpret a sound with a different one. As we
worked on it (during 2015 and 2016) we gradually added more and more
tweakable parameters until it became slightly out of control.
![](docs/pics/screenshot.png)
Quick start:
1. Load a bunch of samples into the brain
2. Click (re)generate brain
3. Load a loop sample into the target
4. Click (re)generate target
4. Click (re)generate blocks
5. Press play
6. Tweak brain
The default block size (3000) is really high to prevent CPU glitches -
500 to 1000 is a better range.
# [Demo brain session](https://static.thentrythis.org/samplebrain/demo.samplebrain)
# [Demo brain session](https://static.thentrythis.org/samplebrain/demo.samplebrain)
Load this file using "load session" not "load brain" (sessions contain
both the target and brain samples).
# [Manual](docs/manual.md)
Full description of all the parameters and a bit of the thinking
behind it.
# Binaries
* **Windows**: [samplebrain_0.18_win.zip](https://static.thentrythis.org/samplebrain/samplebrain_0.18_win.zip)
* **Mac (intel)**: [samplebrain_0.18_macintel.zip](https://static.thentrythis.org/samplebrain/samplebrain_0.18_macintel.zip)
* **Mac (m1 VERSION 2!)**: [samplebrain_0.18_m1_v2.dmg](https://static.thentrythis.org/samplebrain/samplebrain_0.18_m1_v2.dmg)
Thank you to [Nik Gaffney](http://fo.am) for help with the Apple builds.
# Binaries
* **Windows**: (new fix for ridiculous CPU usage) [samplebrain_0.18.1_win.zip](https://static.thentrythis.org/samplebrain/samplebrain_0.18.1_win.zip)
* **Mac (new fix for silence/should work on m1)**: [samplebrain_0.18.1_macintel.zip](https://static.thentrythis.org/samplebrain/samplebrain_0.18.1_macintel.app.zip)
Thank you to [Nik Gaffney](http://fo.am) for help with the Apple builds
Mac note: As this software is not on the apple store, to run the
binary you need to tell your mac it's ok: Go to System Preferences >
Security & Privacy > General. At the bottom of the window, select
"Allow apps to be downloaded from Anywhere".
Windows note: Some people are reporting problems with windows 11.
# Old/broken/spurious binaries
* **Windows* *: [samplebrain_0.18_win.zip](https://static.thentrythis.org/samplebrain/samplebrain_0.18_win.zip)
* **Mac (intel)**: [samplebrain_0.18_macintel.zip](https://static.thentrythis.org/samplebrain/samplebrain_0.18_macintel.zip)
* **Mac (m1)**: [samplebrain_0.18_m1_v2.dmg](https://static.thentrythis.org/samplebrain/samplebrain_0.18_m1_v2.dmg)
**Linux install (Ubuntu)**
$ sudo add-apt-repository ppa:thentrythis/samplebrain
$ sudo apt update
$ sudo apt install samplebrain
@ -58,21 +65,41 @@ Security & Privacy > General. At the bottom of the window, select
If you'd like the right font, optionally:
$ sudo apt install ttf-mscorefonts-installer
# Building from source
# Building from source
## Linux (Ubuntu)
Install libraries for the sample engine (use brew on mac, MinGW on win):
$ sudo apt install libsndfile1-dev portaudio19-dev liblo-dev libfftw3-dev
Install dependancies for the interface:
$ sudo apt install build-essential qtcreator qt5-default
Build & run it:
$ cd app
$ qmake
$ mkdir build
$ cd build
$ qmake ..
$ make
$ sudo make install
$ samplebrain
## Mac
Install libraries for sample engine:
$ brew install fftw portaudio liblo
Install dependancies for the interface:
$ brew install qt
$ brew link qt
Build & run it:
$ mkdir build
$ cd build
$ qmake ..
$ make
$ sudo make install
$ samplebrain
@ -80,11 +107,23 @@ Build & run it:
# Mac build additions
To make a mac app bundle:
* Run `macdeployqt` to copy all dependancies inside the app.
* Copy desktop/samplebrain.icns (the icon) to the Resources directory in the bundle.
* Edit Info.plist to add samplebrain.icns to CFBundleIconFile.
Run `macdeployqt` to copy all dependencies inside the app.
Create Mac app bundle:
$ cd build
$ macdeployqt
Copy desktop/samplebrain.icns (the icon) to the Resources directory in the bundle.
$ cp ../desktop/samplebrain.icns samplebrain.app/Contents/Resources
Edit Info.plist to add samplebrain.icns to CFBundleIconFile. Key `CFBundleIconFile` should match:
<key>CFBundleIconFile</key>
<string>samplebrain.icns</string>
## What's here
1. brain:
@ -98,11 +137,11 @@ To make a mac app bundle:
4. cooking:
* some sketches and ideas
* proof of concept written in python
* brief initial (abandoned) attempt at clojure version
* brief initial (abandoned) attempt at clojure version
MFCC algo courtesy of the Aquila library by Zbigniew Siciarz MIT/X11
licence 2007-2014 (see brain/src/aquila/LICENCE)
This program is free software licenced under GNU General Public
License version 2 (see LICENCE).

View File

@ -0,0 +1,31 @@
# Flatpak Build Instructions
## Prerequisites
To build the Flatpak, install the `flatpak` and `flatpak-builder` packages
from your repositories. Then, [add Flathub](https://flatpak.org/setup/).
Now, install the KDE SDK:
```sh
flatpak install flathub org.kde.Sdk//5.15-22.08
```
## Building and installing
To build and install the app locally:
```sh
flatpak-builder --force-clean --install --user builddir build-aux/flatpak/org.thentrythis.Samplebrain.yaml
```
## Building and exporting
To build and export a Flatpak bundle:
```sh
flatpak-builder --force-clean --repo=repo builddir build-aux/flatpak/org.thentrythis.Samplebrain.yaml
flatpak build-bundle repo org.thentrythis.Samplebrain.flatpak org.thentrythis.Samplebrain
```
To install the bundle:
```sh
flatpak install org.thentrythis.Samplebrain.flatpak
```

View File

@ -0,0 +1,73 @@
id: org.thentrythis.Samplebrain
runtime: org.kde.Platform
runtime-version: "5.15-22.08"
sdk: org.kde.Sdk
rename-desktop-file: samplebrain.desktop
rename-icon: samplebrain
command: samplebrain
finish-args:
- "--share=ipc"
- "--socket=wayland"
- "--socket=fallback-x11"
- "--socket=pulseaudio"
- "--device=dri"
- "--share=network"
cleanup:
- "/include"
- "/lib/cmake"
- "/lib/pkgconfig"
- "/share/doc"
modules:
- name: libsndfile
buildsystem: cmake-ninja
config-opts:
- "-DCMAKE_BUILD_TYPE=Release"
- "-DBUILD_SHARED_LIBS=ON"
- "-DENABLE_EXTERNAL_LIBS=NO"
- "-DENABLE_CPACK=NO"
- "-DBUILD_PROGRAMS=OFF"
- "-DBUILD_EXAMPLES=OFF"
sources:
- type: archive
url: https://github.com/libsndfile/libsndfile/releases/download/1.1.0/libsndfile-1.1.0.tar.xz
sha256: 0f98e101c0f7c850a71225fb5feaf33b106227b3d331333ddc9bacee190bcf41
- name: portaudio
buildsystem: autotools
config-opts:
- "--with-alsa"
- "--without-jack"
- "--without-oss"
- "--without-asihpi"
sources:
- type: archive
url: http://files.portaudio.com/archives/pa_stable_v190700_20210406.tgz
sha256: 47efbf42c77c19a05d22e627d42873e991ec0c1357219c0d74ce6a2948cb2def
- name: liblo
buildsystem: autotools
config-opts:
- "--disable-tests"
- "--disable-network-tests"
- "--disable-tools"
- "--disable-examples"
sources:
- type: archive
url: https://versaweb.dl.sourceforge.net/project/liblo/liblo/0.31/liblo-0.31.tar.gz
sha256: 2b4f446e1220dcd624ecd8405248b08b7601e9a0d87a0b94730c2907dbccc750
- name: samplebrain
buildsystem: qmake
build-options:
env:
PREFIX: /app
config-opts:
- "LIBS+=-L/app/lib"
sources:
- type: dir
path: ../../

View File

@ -3,8 +3,8 @@ Encoding=UTF-8
Type=Application
Name=Samplebrain
Comment=A sample masher designed by Aphex Twin
Exec=/usr/bin/samplebrain
Icon=/usr/share/icons/hicolor/scalable/apps/samplebrain.svg
Exec=samplebrain
Icon=samplebrain
Terminal=false
Categories=GNOME;Application;
StartupNotify=true

View File

@ -51,10 +51,15 @@ QMAKE_CXXFLAGS += -O3 -Wall -Wno-unused -std=c++11
# assets
RESOURCES = app/samplebrain.qrc
unix:desktopfile.path = /usr/share/applications/
PREFIX = $$(PREFIX)
isEmpty(PREFIX) {
PREFIX = /usr
}
unix:desktopfile.path = $$PREFIX/share/applications/
unix:desktopfile.files = desktop/samplebrain.desktop
unix:iconfile.path = /usr/share/icons/hicolor/scalable/apps
unix:iconfile.path = $$PREFIX/share/icons/hicolor/scalable/apps
unix:iconfile.files = desktop/samplebrain.svg
target.path = /usr/bin
target.path = $$PREFIX/bin
INSTALLS += target desktopfile iconfile