188386ba2e
In detail, changes are as follows: - Changed .gitignore to ignore VS-specific files and directories. - VS uses a global settings file for the CMake build process: CMakeSettings.json. This is a text file, which is conceptually equivalent to the Makefile used to invoke CMake through Make. This file might need to be changed on an individual user basis, if dependencies are not installed in default paths. - New cmake macros to copy files in build\CopyFilesMacros.cmake. The code is from https://cmake.org/pipermail/cmake/2009-March/027892.html - Pre-compiled headers: Visual Studio requires to create pre-compiled headers per-project (a general per-solution PCH file, although possible, is extremely problematic and not recommended). Therefore, the new macro vstudio_pch in CreatePrecompiledHeader.cmake was created to add the pre-compiled header creation step to an existing target (similar to what is done for XCode). The existing macro precompiled_header was modified to set the values for a group of variables. As part of this, the empty file all.cpp was added to the root of the source tree, as VS requires a source file to create pre-compiled headers (the header file alone can not be compiled). - all.h is not copied to binary dir for MSVC, as I could determine no need to do this. Because of this, and the differences in PCH handling, the pseudo-targets mops1 and mops2 are not created for MSVC. - Revised all steps conditional on toolchain, and added MSVC paths as needed. In many instances, the MSVC path is the same as the MINGW path, but not always. - The manual (genManual) target used the getopt() functionality defined in POSIX libraries, which is not available on Windows. An LGPL'd port of getopt() for Windows was added in manual\getopt. The original source is in GitHub: nanoporetech/getopt-win32, based on a CodeProject article: https://www.codeproject.com/KB/cpp/getopt4win.aspx?msg=3987371. The corresponding CMakeLists.txt file was modified to include this files when compiling with MSVC. - Changes in CMakeLists.txt files to create valid MSVC targets. The changes, always conditional on the MSVC toolchain, consist of: x Setting target properties for MSVC x Using all.h in source dir x Adding pre-compiled headers to target x Removing dependency from mops1 and mops2 Notes: - The INSTALL target has NOT BEEN UPDATED for MSVC. |
||
---|---|---|
.. | ||
stops | ||
addsynth.cpp | ||
addsynth.h | ||
aeolus.cpp | ||
aeolus.h | ||
aeolus_gui.ui | ||
aeolusgui.cpp | ||
aeolusgui.h | ||
asection.cpp | ||
asection.h | ||
audio.cpp | ||
AUTHORS | ||
callbacks.h | ||
CMakeLists.txt | ||
COPYING | ||
division.cpp | ||
division.h | ||
exp2ap.cpp | ||
global.h | ||
messages.h | ||
model.cpp | ||
model.h | ||
prbsgen.h | ||
rankwave.cpp | ||
rankwave.h | ||
README | ||
README.mscore | ||
README.mscore1 | ||
rngen.cpp | ||
rngen.h | ||
scales.cpp | ||
scales.h | ||
sparm.cpp | ||
sparm.h | ||
sparm_p.h | ||
TODO |
AEOLUS 0.8.4 RELEASE NOTES 14/03/2010 ============================ * Five new temperaments provided by Hanno Hoffstadt and Adam Sampson. * Added -s option to select Jack server. * Now using libclalsdrv-2.0.0. * Compiles without warnings with gcc-4.4.3. AEOLUS 0.8.0 RELEASE NOTES 29/01/2008 ============================ **** Experimental release. **** * Requires JACK >= 0.109 * Receives MIDI over JACK and via ALSA sequencer. * -C option has been removed, use AmbDec instead. * -B option via ALSA removed. AEOLUS 0.6.6 RELEASE NOTES ============================ 1. The stops directory ---------------------- The aeolus binary itself is a generic organ synth and does not define any instrument. In order to use Aeolus you need a directory containing definitions of stops and of an instrument. The one supplied with the current release has this structure: stops-0.3.0 | |___ Aeolus | | | |____ definition | |____ presets | |___ Aeolus1 | | | |____ definition | |____ presets | |___ Aeolus2 | | | |____ definition | |____ presets | |___ ***.ae0 |___ ***.ae0 |___ ***.ae0 |___ ... | |___ waves | |___ ***.ae1 |___ ***.ae1 |___ ***.ae1 |___ ... The 'Aeolus' directory is the default instrument directory. It contains two files: a 'definition' file that specifies the layout of the organ, and 'presets' that contains registration and midi presets. There can be more than one instrument definition directory (in fact there are two more examples in the supplied stops-0.3.0). These can be selected with a command line option (see below). The data in 'presets' only makes sense for one particular instrument, and that's why these files are kept together with the corresponding instrument definition. For binary distributions, there is a configuration option that will make Aeolus save the presets in the users's home (see below). This will allow the user to save presets for one instrument. The *.ae0 files contain parameters for the additive synthesis. There is one such file for each rank of pipes in the organ. These are binary files and they should not be edited. 'Power users' can use the built-in synthesis editor to modify them (see section 5). The waves directory will be empty initially. When Aeolus starts up, it will compute wavetables, one for each pipe. This is indicated by the flashing stop buttons. The same will happen whenever the tuning or temperament is changed. These wavetables can be saved (so Aeolus will be ready for use much faster next time), but only if the stops directory is writeable for the user. This will not be the case for a binary installation as the stops dir will be system-wide (e.g. /usr/share/Aeolus/stops-0.3.0). In order to be able to save wavetables or edited stops the stops directory must be copied to a location where it can be modified by the user, (e.g. ~/stops-0.3.0). 2. Run-time configuration ------------------------- Aeolus takes run-time options from three sources: * the file /etc/aeolus.conf * the file ~/.aeolusrc * command line options Apart from empty lines and comments (lines starting with '#') either of the files should just contain the command line options you want to use, on a single line (examples given below). If the file in the home directory exists (even empty) then the one in /etc is not used. Options given on the command line override those given in either file. Command line options are: (audio interface) -J Use JACK. This is also the default. The option can be used to override a -A in the files. -A Use ALSA. Aeolus should work with the "default" device, but in recent ALSA releases this has a very large buffer size, and this may result in excessive latency. Use of a hardware device and the options below is recommended. Sub-options for ALSA and their defaults are: -d <device> (default) -r <sample rate> (48000) -p <period size> (1024) -n <number of periods> (2) (output channels) -C <number of channels> The default is 2 (stereo). Other legal values are 4 for four speakers in a square and 8 for eight speaker in cube setup. The built-in Ambisonics decoder used for the latter two formats is quite primitive and will be removed in future versions, to be replaced with a much better external application. Speaker order for -C 4 is clockwise starting at front-left. For -C 8 the first four outputs are the 'bottom' speakers, and the next four the 'top' ones, each of them in the same order as for -C 4. -B This options selects direct Ambisionics first order B-format output, to be used for recording or with an external decoder. (resources) -S <stops directory> The default is ./stops. -I <instrument directory> This is relative to the stops directory. The default is 'Aeolus'. -W <waves directory> This is relative to the stops directory. The default is 'waves'. This options mainly exists for use during development and should not be used. -u This option is for use with binary distributions only. When used, the presets file will be stored into the user's home directory instead of within the system wide instrument directory. (general) -t Selects the text mode user interface. With this option Aeolus does not in any way depend on X11. In the current version the text mode UI is just an empty stub and should not be used. -h Prints version information and a summary of all command line options. For example if you always use Aeolus with ALSA device hw:0, using 3 periods of 512 frames and a sample rate of 44.1 kHz, and you have copied the stops directory to your home, then your ~/.aeolusrc could look like this: # Aeolus default options -A -d hw:0 -n 2 -p 512 -r 44100 -S /home/login/stops-0.3.0 where 'login' is your login name. 3. Binary packages ------------------ This release permits packagers to install a working Aeolus without touching a users's home directory, as follows. * Install the aeolus binary in /usr/bin and the two plugins in /usr/lib. * Install the stops directory in /usr/share/Aeolus. * Install this README into /usr/share/doc/packages/Aeolus. * Create the file /etc/aeolus.conf containing: # Aeolus default options -u -A -S /usr/share/Aeolus/stops-0.3.0 This will use the default instrument 'Aeolus', and save the presets in .aeolus-presets in the users's home directory. 4. A quick tour of the GUI -------------------------- 4.1 The main window TBC 4.2 The instrument window TBC 4.3 The audio window TBC 4.4 The midi window TBC 5. Editing the synthesis parameters ----------------------------------- TBC 6. Midi control of stop buttons ------------------------------- The protocol uses one controller number. The default is #98, but you can change this in global.h. The message is accepted only on channels enabled for control in the midi matrix. The value is interpreted as follows: v = 01mm0ggg This type of messages (bit 6 set) selects a group, and either resets all stops in that group or sets the mode for the second form below. mm = mode. This can be: 00 disabled, also resets all elements in the group. 01 set off 10 set on 11 toggle ggg = group, one of the button groups as defined in the instrument definition. In the GUI groups start at the top, the first one (for division III) being group #0. The values of mm and ggg are stored and need not be repeated unless they change. v = 000bbbbb According to the current state of mode, this command switches a stop on or off, or toggles its state, or does nothing at all. bbbbb = button index within the group. Buttons are numbered left to right, top to bottom within each group. The first one is #0. EOF