KandiskyScore is a graphical editor for analysing and creating electroacoustic/acousmatic music.
It is now an Electron application.
Electron integrates Chromium and Node.js to enable Web developers to create desktop applications. Compatible with and Linux, Electron applications run on all supported architectures.
Kandiskyscore uses the WebAudio API for sound generation and the GRAME Faust language for 3D spatialization plug-ins for external sequencers. It also allows you to export a graphic score in SVG format, which you can then modify using vector graphics software such as Inkscape or LibreOffice-draw, as well as a PDF presentation of the score for printing.
This programme can be used to create sound objects or scores that can be exported in .wav format for audio. It is also possible to spatialise sound using the tools provided by webAudioAPI.
You can manipulate four types of object: audio objects (stereo), groups, symbols and text.
KandiskyScore is not intended to replace traditional sequencers such as Reaper or Ardour.
It is based on a different way of approaching electroacoustic composition through the manipulation of symbolic objects that can be combined to form complex assemblies such as formal logics.
The aim of this tool is to provide an environment that will support the composer as he develops his work. They will still be able to finalise it in the sequencer of their choice.
The ReaScript named importKandiScore.lua and insertKandiScore.lua, available in the <$home>/kandiskyscore/Scripts folder after installation, allow you to import all Kandiskyscore audio parameters into Reaper.
The same scripts are available for Ardour.
You can see a representation of a work by Ligeti, Artikulation, which illustrates this point. This work was produced by Rainer Wehinger in the 1970s. You can also look at Atmosphère, which combines a graphic representation of the structure of the work, traditional notation and audio graphics.
This work is inspired by the following research: :
Denis Dufour, P.Manoury, Ana Dall’Ara-Majek, Noémie Sprenger-Ohana, et bien d'autres, have also written on this subject.
This programme is licensed under GNU General Public License.
Warning: backup files from versions prior to 1.0.0 are not compatible with those in the new version. You will need to adapt them manually.
Création d'un studio personnel
As Kandiskyscore is now an Electron application, you can install it on macOS, Windows and Linux
The first time you launch the application, files (menuDefault.js and config.js) will be created in your OS configuration folder: for example /"home-user"/.config/kandiskyscore on Linux. Similarly, a /"home-user"/kandiskyscore folder will be created in your user space, and the Pdf, Scripts and DSP folders will be copied there. You'll find out what they do later.
You can then use this folder to store your projects.
You have an archive archive (zip) to unzip in a folder on your Mac. This archive contains a kandiskyscore.app folder to install on your system.
For Windows you have two options: :
For Linux you have three options:
Right-clicking opens a floating menu. You can make it disappear by moving the mouse outside this menu or by right-clicking again on the background of your workspace.
The Group and Ungroup functions are used to manage groups. The Group function is used to group objects in complex sets, such as aggregates, after ungrouping them (see group management). These functions are also available in the Edit menu. |
The internal windows you can open in the workspace can be moved by clicking and dragging the mouse over the name bar at the top.
Audio objects are graphic objects for which we can associate an audio file.
Symbols cannot have audio files associated with them. They are purely descriptive elements.
New | Resets the workspace for a new project. Interface settings are not reset. |
Open Project | Loads all audio files and descriptors for the project. |
New Space | Opens a new window with a standalone KandiskyScore.You can copy groups of objects from one window to another. |
Save
Sava as | Saves the current project descriptor file (.xml). |
Save Group | Saves a group of objects for possible insertion elsewhere in the current project or in another project. You must encapsulate your objects in a group. |
Import Group | Imports a group descriptor file into the current project. Allows you to view the audio files used. |
Audio list | Allows you to view the audio files used. |
Export | Utilities for exporting an object, groups of objects or the score, for integration in a sequencer. |
Exit |
Cut | Deletes an object. |
Copy | Copies an object or group of objects. |
Paste | Paste an object or group of objects. |
Group | Defines a frame for objects. |
Ungroup | Deletes a frame. |
Regroup | Allows objects in a pre-defined group. |
Ungroup All | Allows you to ungroup everything. |
Group colour | Changes the colour of all the objects in a group. |
Group shape | Change the shape of all the objects in a group. |
Scale | Changes the scale of the objects in a group. |
Alignment | Allows you to align the objects in a group. |
Shift | Sets the depth at which objects are superimposed. |
Zoom | Zoom of the workspace. |
Fenêtre | Window size. |
Augm.Dim | Copies a group by applying a variation in height and/or position. |
Permut.Horiz. | Permutes an object in time (horizontal plane). |
Palindrome | Creates a palidrome (non-retrogradable structure so dear to O.Messian) |
Inclusion | Allows you to include a group of objects in another. Start by selecting a group, then click on this menu item and finally on the group you want to insert. A little experimentation will help you understand how this works. |
Reverse | Copies the reversal of objects in a group. |
Backwards | Copies objects starting from the last and working backwards. |
Rev.backwards | Copies the reversal of the backwards. |
Tempo | Varies the playback speed of the active object while preserving its height, and saves it as a rendition. |
New studio | Creates a new studio for spatialization in sequencers. |
Svg | Svg Utilities for creating SVG images of objects, groups or the score, which you can then edit in Inkscape ou LibreOffice-draw and integrate into the score. |
Creation of PDF files for printing. | |
Audio | Same thing for audio |
Configuration | Application configuration. |
Save Theme | Saves the current interface configuration as a theme. |
Select Theme | Loads a theme. |
Objects are introduced into your workspace by left-clicking on them in the palette. You can then move them around, change their parameters and listen to them.
The limits specify the start and end of audio playback between 0.01 and 1.
The actual duration is calculated as a function of the sample duration and the transposition. The Resulting duration button provides a slider for viewing the actual length of the audio in order to adapt the scale of the graphical element if necessary.
MuseScore lets you export svg images of the score. These images can be directly integrated into Kandiskyscore with the corresponding audio rendering.
Graphical parameters vary according to the nature of the objects.
They can have a border, a background and a frame.
Groups are abstract structures used to bring together objects in a specific framework. They have their own interface. They have no particular existence for audio.
To create a group, use the selector by clicking on the background of your workspace. By holding down the left mouse button and moving the mouse, a frame bordered by a line of dashes will adapt to the movements of the mouse. If you overlap several audio objects and release the button, you can right-click on the workspace and in the floating menu that appears you can choose the Group option. This will generate a frame for your group. Now, if you want to move an element in the group, you move the group itself. If you want to modify an element, you need to select the group and from the floating menu, select Ungroup.
The selector will only remain on the screen if you have selected at least two elements.
There are four predefined groups with their own interface:
This interface is used to define the graphic and audio parameters for all the objects included. Be careful to validate the modifications, otherwise the audio parameters will not be modified.
You can Ungroup these groups and modify each component object individually: transposition, position, etc. and then regroup them. In this way, you do not lose the parameters of the frame.
The Regroup function is only available for these predefined groups.
The palette contains 6 panels from which you can select symbols. To open a panel, simply click on its name. Then click on an object, which is then inserted into your workspace. It is then up to you to set the parameters for this symbol.
The interface for configuring symbols is identical to that for audio objects, without the option of associating an audio file.
You can also add images in .png format and import new symbols in .svg format.
With libreOffice-Draw you can create a frame in which you can write your text. Simply select this frame and go to the File => Export menu and choose svg (scalable vector graphic .svg), remembering to tick the Selection box on the left of the window and confirm. Next, import the file saved with the text button without assigning an audio file to it.
The result is a text like this that you can manipulate like any other image:
The svg file must be in the folder defined in your project configuration.
You can choose from 19 plug-ins to modify the sound. These plug-ins have been written in theFaust language . Each DSP has been compiled for integration with the webAudio API. You can combine up to 7 of them for a single source. Each plug-in has its own interface, which you can access by clicking on this icon: . |
The static parameters of the webAudio API concerning spatialization can be defined in the Configuration menu in the corresponding tab.
To fully understand the settings, please refer to the documentation available online.
The square cursors are used to position the object in 3D space. The slider on the blue disc is used to adjust the apparent distance.
Clicking on this icon opens the openGL window, which displays objects in 3D space. You can rotate this space by clicking on the window and moving the mouse. You can also adjust the zoom using the mouse wheel. |
This opens a small window in which you can add the points of your object's trajectory on the time axis. This positioning is relative to the duration of the audio. You can then move them around in the main window to specify the position of each point in 3D space. Of course, you don't have to add any points, in which case your object will be static. |
The WebAudio API allows you to manage spatialization in HRTF mode, so you can listen to your work binaurally. You need to configure the Panning Model accordingly in the configuration interface.
To link up with sequencers, you have scripts for Reaper and Ardour.
These scripts can be found in the Scripts folder in your (user home)/kandiskyscore/Scripts folder.
Vous devrez utiliser d'éditeur de script LUA de votre séquenceur pour les activer.
Scripts prefixed with import are used to import all objects exported from Kandiskyscore into the sequencer.
Scripts prefixed with insert are used to insert these same objects at the playback cursor position in your sequencer.
Objects that are not associated with an audio file will not be exported.
The export request creates a rendering of each audio file in your project in the ./audios/exports subfolder. These are the files that will be imported into the sequencers.
For both sequencers, you need to prepare a new session with a Master that has the same number of outputs as the spatialization plugin you want to use. So, if you want to use the ZKM 23 plug-in, you will need 23 outputs on your Master. See the multiSpace3D documentation. This assumes that the selected plugin is available in your plugins folder. The spatialization plugin is automatically loaded on each track.
You must also define the name of the plugin you want to use and the number of outputs in the Configuration menu.
Then run the script in your sequencer.
During import, Ardour's panner is bypassed so as not to interfere with the 3D spatialization plug-in.
Dans tous les cas, vous devrez configurer le routage de vos pistes en fonction de votre configuration.
If, for one reason or another, you don't have the DSP folder in (user home)/kandiskyscore, you can unzip this archive into that folder.
This folder also contains configuration templates for your sequencers.
Whatever their configuration, these plug-ins all have the same interface. Only their internal workings change depending on the number and layout of the loudspeakers.
Automation values can be defined for each of these parameters. This is how the trajectory points are defined.
These plugins do not use RFE. You will therefore need to add the corresponding channels to your sequencer before exporting your multichannel file if you wish. Always specify in a reading note how your channels are defined in relation to the speakers in your studio with an explanatory graphic if possible..
The name of the devices is a reference to existing systems, but the coordinates of the speakers are not very precise because we do not always have the necessary information. It’s up to you to adapt them to your needs.
First you need to import a dsp file into the IDE. Then you can test it. Be careful, in the web IDE you may get an error message if your DSP has more than 32 output channels. This is due to the WeAudio API limitation of 32 channels. This limitation does not exist if you export your dsp for compilation.
In the window that then opens, you must choose your operating system then the type of plugin you want. Once compiled, you can download your plugin and install it in the appropriate folder.
You must define this plugin in your project configuration as well as the number of channels so that the export scripts take it into account.
You absolutely must define the folders of your project as well as the name and number of channels of your spatialization plugin for the sequencers otherwise you will have malfunctions.
Each panel allows you to adjust the parameters per domain independently of each other. Don't forget to validate, otherwise the changes will not be taken into account, particularly for the configuration of the interface and the palette.
This Architecture section is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; If not, see http://www.gnu.org/licenses.