Automated generation of contrapuntal musical compositions using probabilistic logic in Derive

  • Authors:
  • Gabriel Aguilera;José Luis Galán;Rafael Madrid;Antonio Manuel Martínez;Yolanda Padilla;Pedro Rodríguez

  • Affiliations:
  • Department of Applied Mathematics, University of Málaga, Spain;Department of Applied Mathematics, University of Málaga, Spain;Department of Applied Mathematics, University of Málaga, Spain;Department of Applied Mathematics, University of Málaga, Spain;Department of Applied Mathematics, University of Málaga, Spain;Department of Applied Mathematics, University of Málaga, Spain

  • Venue:
  • Mathematics and Computers in Simulation
  • Year:
  • 2010

Quantified Score

Hi-index 0.00

Visualization

Abstract

In this work, we present a new application developed in Derive 6 to compose counterpoint for a given melody (''cantus firmus''). The result is non-deterministic, so different counterpoints can be generated for a fixed melody, all of them obeying classical rules of counterpoint. In the case where the counterpoint cannot be generated in a first step, backtracking techniques have been implemented in order to improve the likelihood of obtaining a result. The contrapuntal rules are specified in Derive using probabilistic rules of a probabilistic logic, and the result can be generated for both voices (above and below) of first species counterpoint. The main goal of this work is not to obtain a ''professional'' counterpoint generator but to show an application of a probabilistic logic using a CAS tool. Thus, the algorithm developed does not take into account stylistic melodic characteristics of species counterpoint, but rather focuses on the harmonic aspect. The work developed can be summarized in the following steps: (1)Development of a probabilistic algorithm in order to obtain a non-deterministic counterpoint for a given melody. (2)Implementation of the algorithm in Derive 6 using probabilistic Logic. (3)Implementation in Java of a program to deal with the input (''cantus firmus'') and with the output (counterpoint) through inter-communication with the module developed in Derive. This program also allows users to listen to the result obtained.