Peinture Poesie Musique

Alètheia ( ἀλήθεια )

Espace programmation

Première page Page précédente Page suivante Dernière page

KandiskyScore 1.0.0 (Janvier 2024)

(This documentation is currently being updated) Translation width DeepL. Certainly to improve.

Fr

Presentation

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

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.

Table of contents

Menu

Les objets

Les greffons Faust

La Spacialisation

L'export et les scripts d'importation dans Reaper et Ardour

La création d'un nouveau studio

Configuration





History

Kandiskyscore 1.0.0 change from janvier 2024

  • Development of Kansdiskyscore on Electron
  • Generation of deliverables for macOS (archive zip), Windows 64 (archive zip et installateur windows), Linux (archive zip , deb, rpm)
  • Numerous bugs fixed
  • Choice of interface language (D,En,Es,Fr,I). Certainly needs improving, but the functionality is there.
  • New resources made possible by extended Node.js file management.
  • Possibility of printing the score by generating PDF files.
  • Trajectory management for spatialising objects.
  • Integration of an interface for creating personal studios for spatialization in sequencers. Generates a .DSP file for Faust that can be compiled in Faust in Grame's Faust Web IDE. You can then use this generated plugin (lv2, vst...) in your sequencer like any other plugin to manage the spatialization of your objects.
  • Importing and inserting objects into Ardour ou Reaper
  • Complete application configuration and theme management.

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

Création d'un studio personnel

Change from 30 juillet 2023

  • Bug fixes.
  • Spatialisation window improved. You can now define trajectories for your audio sources and view them both in pseudo-3D and in the 3D openGl window.
  • New reverb hat uses the webAudio API convolution method with Impulse Response files. The list includes 33 files that you can extend with your own files.
  • The Reaper import script will be adapted next month

Change from 27 juin 2023

  • Improved rendering.
  • Minor bug fixes.
  • New pseudo-3D spatialization window that also allows score tracking.
  • New 3D openGl window for spatialization, with the option of varying the viewing angle. This application uses Three.js, so for the time being it will only be available if you are using a local server (javascript module constraints).

Change from 29 mai 2023

  • All audio renditions are now available
    Audio rendering of objects, groups and the interval between the "start" and "end" markers uses the MediaRecorder function. Track or score rendering uses the startRendering function of an OfflineAudioContext.
  • You can render a selection of objects or a group of objects in SVG.
  • The Tempo entry in the Atelier menu is used to render a variation in the playback speed of the active object while preserving its pitch.
  • The Kandiskyscore interface has been improved.
  • You can define your own theme for the application and save it.

Change from 29 avril 2023

  • All audio objects are now available
  • Much better SVG rendering of the score
  • It is now possible to render the audio of individual objects, groups of objects, etc.
  • You can export a group of objects or the score to a sequencer
  • The LUA (Reascript) script for Reaper is functional. It retrieves all the audio parameters defined in KandiskyScore.
  • The LUA script for Ardour is also available. It can be used to import renderings of objects or groups of objects that can be used directly.

Installation

General

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.

MacOS installation

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.

Windows installation

For Windows you have two options: :

  • A zip archiveto be unzipped in a user folder of your choice. From this folder, you can create a launcher using kandiskyscore.exe as the application.
  • You can use the Windows installer by unpacking this archive and running kandisky-score-1.0.0 Setup.exe

Linux installation

For Linux you have three options:

  • Use a zip archive that you can decompress in a user folder of your choice and by creating a launcher on the executable (kandiskyscore) in this folder
  • .
  • You can use one of the Linux package managers:: deb ou rpm.

Main application window


Espace de travail

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.

Floating menu

Menu flottantThe 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.

Palette

palette

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.

Barre de lecture

Menu

File

NewResets the workspace for a new project.
Interface settings are not reset.
Open ProjectLoads all audio files and descriptors for the project.
New SpaceOpens 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 GroupSaves 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 GroupImports 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.
ExportUtilities for exporting an object, groups of objects or the score, for integration in a sequencer.
Exit

Edit

CutDeletes an object.
CopyCopies an object or group of objects.
PastePaste an object or group of objects.
GroupDefines a frame for objects.
UngroupDeletes a frame.
RegroupAllows objects in a pre-defined group.
Ungroup AllAllows you to ungroup everything.
Group colour Changes the colour of all the objects in a group.
Group shapeChange the shape of all the objects in a group.
ScaleChanges the scale of the objects in a group.
AlignmentAllows you to align the objects in a group.
ShiftSets the depth at which objects are superimposed.
ZoomZoom of the workspace.
FenêtreWindow size.

The workshop

Augm.DimCopies a group by applying a variation in height and/or position.
Permut.Horiz.Permutes an object in time (horizontal plane).
PalindromeCreates a palidrome (non-retrogradable structure so dear to O.Messian)
InclusionAllows 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.
ReverseCopies the reversal of objects in a group.
BackwardsCopies objects starting from the last and working backwards.
Rev.backwards Copies the reversal of the backwards.
TempoVaries the playback speed of the active object while preserving its height, and saves it as a rendition.
New studioCreates a new studio for spatialization in sequencers.

Rendering

SvgSvg 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.
PDFCreation of PDF files for printing.
AudioSame thing for audio

Preferences

ConfigurationApplication configuration.
Save ThemeSaves the current interface configuration as a theme.
Select ThemeLoads a theme.

Renderings use the Webaudio API's OfflineAudioRecorder interface de la Webaudio API so as not to be disturbed by the effects plug-ins.
For the score, we use the OfflineAudioRecorder interface. This introduces an inescapable delay of at least 4 seconds at the start of rendering. This is a constraint that must be taken into account. This can be exacerbated if you use certain Faust plug-ins such as the Granulator.

Objects

L'audio

palette

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.

The graphic appearance of objects

Graphical parameters vary according to the nature of the objects.

palette

They can have a border, a background and a frame.

Les groupes

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.

palette

Predefined groups

Groupe prédefinis

There are four predefined groups with their own interface:

Groupe prédefinis

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.

Symbols

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.

palette

You can also add images in .png format and import new symbols in .svg format.

Text

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 texte without assigning an audio file to it.

The result is a text like this that you can manipulate like any other image:

texte LibreOffice

The svg file must be in the folder defined in your project configuration.

Les greffons FX Faust

Menu flottantYou 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: fx.

Spatialization

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.

palette

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.

palette

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.

Export and import scripts in Reaper and Ardour

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.



Spatialization plug-ins for sequencers

Interface

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.

Groupe prédefinis

  • X,Y,Z are used to describe the position of the object in a 3D space with Cartesian coordinates.
  • D specifies the apparent distance of the object
  • Hot spot defines the gain at the centre of the reference space.

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..

Devices

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.

  • Surround et Auro3D
  • Présentation du système Auro.

  • Micadome(16)

    micadome

  • 17.1 (17)

    M17

  • Dominium 18

    dominium

  • NHK22.2 (22)

    nhk22.2

  • ZKM (dôme 23)

    dominium

  • Ircam Studio (dôme 24)

    dominium

  • Radio France studio 115 ( cube 29)

    dominium

  • Satosphère(dôme 31)

    dominium

  • ZKM Klangdom (dôme 43)

    dominium

  • 4D Sound (réseau 48) Ref (Réseau multidirectionnel): 4D sound MONOM

    réseau 64

  • 4D Sound (réseau 64) (MONOM)>
  • Dispositif64 (cube 64)

    dispositif 64

    dispositif 64

  • Faust Web IDE

    Groupe prédefinis


    Groupe prédefinis

    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.



    La création d'un nouveau studio


    KandiskyScore



    Configuration


    KandiskyScore


    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.


    License

    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.

    Première page Page précédente Page suivante Dernière page