update docs to mention cross-platform support, and recommend FatBoy soundfont
This commit is contained in:
parent
db7d6003de
commit
7a0e0ed69d
|
@ -32,6 +32,8 @@ If you cannot open juicysfplugin.app, try _right-clicking_ it, and choose Open f
|
|||
|
||||
Here's some soundfonts to get you started:
|
||||
|
||||
- Fatboy (no specific license stated, but described as "free")
|
||||
- https://fatboy.site/
|
||||
- MuseScore's recommended soundfonts (includes MIT, GPL, other licenses)
|
||||
- https://musescore.org/en/handbook/soundfonts-and-sfz-files#list
|
||||
- FlameStudios' guitar soundfonts (GPL-licensed)
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
A lot of thrashing was involved.
|
||||
|
||||
So first I'll list the steps that I _know_ are necessary.
|
||||
Then after that I'll list the steps which were problem unnecessary.
|
||||
Then after that I'll list the steps which were probably unnecessary.
|
||||
|
||||
# Definitely necessary
|
||||
|
||||
|
@ -21,7 +21,7 @@ C:\SDKs\VST_SDK\VST3_SDK
|
|||
|
||||
https://shop.juce.com/get-juce
|
||||
|
||||
JUCE should be installed to `C:\\Juce`
|
||||
JUCE should be installed to `C:\Juce`
|
||||
|
||||
_Note: the only thing we actually need from here is `C:\Juce\modules`. I've copied that into the repository now, so soon I'll be able to make that step skippable._
|
||||
|
||||
|
@ -111,6 +111,8 @@ $ ldd /mingw64/bin/libfluidsynth-1.dll
|
|||
…
|
||||
```
|
||||
|
||||
Side-note: [fuslogvw](https://docs.microsoft.com/en-us/dotnet/framework/tools/fuslogvw-exe-assembly-binding-log-viewer) helps you debug .NET's run-time linker. Not relevant to juicysfplugin (because it's not managed code), but it's a useful tool for Windows developers to know about.
|
||||
|
||||
# Prefer CLion?
|
||||
|
||||
We don't have Windows support in our CMake project (I could add it by using Projucer to generate a CODE::Blocks exporter, but I don't want to maintain that).
|
||||
|
|
35
README.md
35
README.md
|
@ -1,12 +1,16 @@
|
|||
<img width="436" alt="image" src="https://user-images.githubusercontent.com/6141784/40509932-f424abb4-5f92-11e8-85ae-61050955dc97.png">
|
||||
|
||||
Latest release: https://github.com/Birch-san/juicysfplugin/releases
|
||||
Latest stable release:
|
||||
|
||||
- macOS [1.0.6](https://github.com/Birch-san/juicysfplugin/releases/tag/1.0.6)
|
||||
- Windows x64 [1.0.8](https://github.com/Birch-san/juicysfplugin/releases/tag/1.0.8)
|
||||
- Linux is [supported as of 1.0.8](https://github.com/Birch-san/juicysfplugin/commit/db7d6003de97d7af8eb634191ac3260f0e0b4804), but you will need to build from source
|
||||
|
||||
Demo track: [mp3](https://github.com/Birch-san/juicysfplugin/releases/download/1.0.5/Demo_track.mp3), [FLAC](https://github.com/Birch-san/juicysfplugin/releases/download/1.0.5/Demo_track.flac), [FLAC +Soundgoodizer](https://github.com/Birch-san/juicysfplugin/releases/download/1.0.5/Demo_track_soundgoodizer.flac)
|
||||
|
||||
# What
|
||||
|
||||
juicysfplugin is a macOS audio plugin for playing MIDI music through a soundfont synthesizer.
|
||||
juicysfplugin is a cross-platform audio plugin for playing MIDI music through a soundfont synthesizer.
|
||||
|
||||
It's well-suited for making videogame music. If you have a soundfont of your favourite game, you can write your own melodies with its instruments.
|
||||
|
||||
|
@ -17,7 +21,7 @@ Supports SF2 and SF3 soundfont formats.
|
|||
|
||||
**Mode 1: standalone application**
|
||||
|
||||
juicysfplugin.app is a standalone application, for playing around.
|
||||
juicysfplugin.app (or .exe on Windows) is a standalone application, for playing around.
|
||||
|
||||
You can plugin your hardware MIDI keyboard, or play with the software MIDI keyboard. Or route MIDI messages into it from a virtual MIDI controller (e.g. the [macOS IAC Bus](http://re-compose.desk.com/customer/portal/articles/1382244-setting-up-the-iac-bus-on-a-mac)).
|
||||
|
||||
|
@ -68,6 +72,7 @@ You must drag-and-drop a soundfont into the file picker.
|
|||
|
||||
Here's some soundfonts to get you started:
|
||||
|
||||
- [Fatboy](https://fatboy.site/) (no specific license stated, but described as "free")
|
||||
- MuseScore's [recommended soundfonts](https://musescore.org/en/handbook/soundfonts-and-sfz-files#list) (includes MIT, GPL, other licenses)
|
||||
- FlameStudios' GPL-licensed [guitar soundfonts](http://www.flamestudios.org/free/Soundfonts)
|
||||
|
||||
|
@ -101,7 +106,7 @@ Input audio device doesn't matter. We only use MIDI as input.
|
|||
|
||||
<img width="515" alt="image" src="https://user-images.githubusercontent.com/6141784/37062266-d723c984-218d-11e8-9ded-9dc5eb701199.png">
|
||||
|
||||
# Building from source
|
||||
# Building from source (macOS)
|
||||
|
||||
Install XCode and XCode command line tools. Accept terms.
|
||||
|
||||
|
@ -120,6 +125,8 @@ Build & run the "juicysfplugin - Standalone Plugin" target.
|
|||
All the libs we link against are project-local (see `juicysfplugin/Builds/MacOSX/lib_relinked`).
|
||||
I have used `install_name_tool` to give these libs relative install names. This ensures that any product you build will be portable.
|
||||
|
||||
See my [blog post](https://birchlabs.co.uk/blog/alex/juicysfplugin/synth/cpp/2019/01/05/a-soundfont-vst-for-macos.html) for a deeper explanation as to how juicysfplugin is linked for portable distribution on macOS.
|
||||
|
||||
## Testing VST/AU plugins inside an audio plugin host
|
||||
|
||||
You'll notice that the schemes for [VST, VST3, AU, AUv3] targets are configured such that "Run" launches the executable `AudioPluginHost.app`. This lets you run the audio plugin as though it were hosted inside a DAW.
|
||||
|
@ -144,6 +151,8 @@ Known working with:
|
|||
- VST3 Audio Plug-Ins SDK 3.6.9
|
||||
- fluidsynth 1.1.11
|
||||
|
||||
There is a [fluidsynth 2](https://github.com/Birch-san/juicysfplugin/tree/fluidsynth2) branch. It works, but there's no strong reason to justify switching to it – we have no burning need for any FS2 features (well, except perhaps the [modluators API](https://github.com/Birch-san/juicysfplugin/issues/2#issuecomment-397872150)), and it'd generate some extra work to get the Windows release to parity.
|
||||
|
||||
# Making releases
|
||||
|
||||
Follow the steps in [Building from source](#building-from-source) to output a product to the build folder.
|
||||
|
@ -165,20 +174,4 @@ Whichever flavor you built _most recently_, wins.
|
|||
|
||||
Overall, juicysfplugin is GPLv3.
|
||||
|
||||
See [licenses for all libraries and frameworks](https://github.com/Birch-san/juicysfplugin/tree/master/licenses_of_dependencies).
|
||||
|
||||
# Questions
|
||||
|
||||
## Windows/Linux/Android/iOS version?
|
||||
|
||||
No _big_ barriers. The source code and all its dependencies are cross-platform. The main friction is setting up a dev environment, and learning how to link dynamic libraries on that OS (i.e. we need to link to libfluidsynth).
|
||||
|
||||
Some thoughts that come to mind:
|
||||
|
||||
- Bundling libraries portably is far easier on Windows than on macOS
|
||||
- Just throw a dll next to the executable
|
||||
- .NET assembly binding can be debugged using [fuslogvw](https://docs.microsoft.com/en-us/dotnet/framework/tools/fuslogvw-exe-assembly-binding-log-viewer)
|
||||
- Windows already has plenty of free, nice soundfont plugins
|
||||
- It's probably pretty hard to bundle fluidsynth into mobile apps
|
||||
- Bundling would be easier if I used static linking
|
||||
- Static linking is hard
|
||||
See [licenses for all libraries and frameworks](https://github.com/Birch-san/juicysfplugin/tree/master/licenses_of_dependencies).
|
Loading…
Reference in New Issue
Block a user