InglêsFrancêsEspanhol

favicon do OnWorks

gramophone2 - Online na nuvem

Execute o gramophone2 no provedor de hospedagem gratuita OnWorks no Ubuntu Online, Fedora Online, emulador online do Windows ou emulador online do MAC OS

Este é o comando gramophone2 que pode ser executado no provedor de hospedagem gratuita OnWorks usando uma de nossas várias estações de trabalho online gratuitas, como Ubuntu Online, Fedora Online, emulador online do Windows ou emulador online do MAC OS

PROGRAMA:

NOME


gramophone2 - GRAMophone é um gerador algorítmico de composição musical.

SINOPSE


gramofone2 [-c | -d] arquivo de origem [midifile]

OPÇÕES


-c é uma opção que permite controlar a sintaxe da fonte sem gerar
contemporânea.

-d é uma opção que permite ativar o modo de depuração, com saída de vídeo do
composição e parâmetros do jogador mais as notas geradas.

DESCRIÇÃO


No GRAMophone, a música é gerada usando dois tipos de gramática formal: a regular de Chomsky
gramática (ou Tipo 3) para uma abordagem de cima para baixo para a composição e uma versão reduzida de
Gramática de Lindenmayer para uma abordagem BOTTOM UP.

BASIC CONCEITO OF Gramofone


GRAMophone é parcialmente baseado em uma ideia de Jon McCormack, que inventou a ideia de um
jogador virtual (músico virtual). O jogador em questão está associado a uma faixa MIDI,
e interpreta instruções dizendo o que fazer. Geralmente, eles dizem tocar notas (enviar
Mensagens MIDI). Os músicos de GRAMophone juntos formam uma orquestra, que toca um
composição.

Qualquer número de jogadores pode tocar uma composição, mas na prática o hardware usado pode
impor um limite superior.

Em geral, cada jogador toca um instrumento e cada um tem um conjunto diferente de regras gramaticais.
Um jogador individual é caracterizado por um conjunto de parâmetros que são compartilhados por todo
orquestra e / ou um conjunto de parâmetros pessoal.

Os parâmetros da orquestra consistem em:

o tipo de gramática usada (Chomsky ou Lindenmayer);

o metrônomo;

a medida;

o número de iterações usadas no processo de produção.

Os parâmetros de cada jogador individual consistem em:

o tipo de gramática usada (Chomsky ou Lindenmayer);

o instrumento;

o canal MIDI associado ao reprodutor;

o número de iterações usadas no processo de produção;

As notas de um jogador têm um estado atual que consiste em:

oitava

volume

duração

liberar

Essas características podem ser controladas parametricamente por um jogador declarando seu
variáveis ​​associadas. GRAMophone, então, permite a geração não determinística de
música, usando a gramática de Chomsky ou Lindenmayer.

GUIA TO Gramofone


"Give Me A" (O "Hello, World!" De GRAMophone ")

Para apresentá-lo às idéias básicas, aqui está a composição algorítmica mais simples que pode
ser gerado com GRAMophone: esta composição simplesmente gera a nota A e é
apresentado através dos métodos de Chomsky e Lindenmayer.

composição "Give Me A" de "Schroeder" {

// esta composição gera a nota A com a gramática de Chomsky

gramática chomsky
ritmo 120
assinatura_hora 4/4
%
jogador Schroeder {
instrumento 0
%
@ composição-> A [,,,];
}
}

composição "Give Me A" de "Schroeder" {
// esta composição gera a nota A com a gramática de Lindenmayer
gramática lindenmayer
ritmo 120
assinatura_hora 4/4
%
jogador Schroeder {
instrumento 0
%
axioma-> A [,,,];
}
}

AS PALAVRAS-CHAVE composição E de

Todas as composições devem começar com a composição da palavra-chave seguida por uma string (em sentido inverso
vírgulas) contendo o nome da composição. Deve ser seguido pela palavra-chave de
em seguida, outra corda contendo os direitos autorais da peça.

O BLOCO DE COMPOSIÇÃO

O bloco de composição é colocado entre colchetes. Está subdividido em três seções: uma
seção define os parâmetros da composição, um declara e inicia qualquer global
variáveis ​​e uma seção de orquestra onde os músicos que vão 'tocar' a peça são
definiram. As primeiras duas seções são separadas pelo símbolo%.

A PALAVRA-CHAVE do jogador

Cada jogador é definido com a palavra-chave player, seguida por um identificador.

O BLOCO DE jogador

O bloco do jogador é colocado entre colchetes e é dividido em três seções: uma seção
define os parâmetros da pista associada ao jogador, declara-se qualquer local
variáveis ​​para o jogador e uma é para as regras formais. As primeiras duas seções são
separados pelo símbolo%.

COMENTÁRIOS

No GRAMophone, os comentários são semelhantes a C: eles devem começar com o par de caracteres '/ *' e terminar
com o par de caracteres '*/.'Não deve haver espaço entre o asterisco e a barra.
Tudo entre esses pares de símbolos será ignorado pelo analisador GRAMophone. Todo
linhas de comentários também podem ser incluídas. As linhas de comentários começam com o símbolo // e terminam
no final da linha, como nos dois exemplos iniciais.

Seção que define os parâmetros da composição

Os parâmetros compartilhados por todos os músicos da orquestra são declarados aqui. Os parametros
que podem ser declarados são:

gramática

resolução

iterações

tempo

assinatura_hora

Esta seção deve terminar com o símbolo%.

gramática

Este parâmetro é obrigatório e define o tipo de gramática a ser usada na geração.
Pode ser chomsky ou lindenmayer.

resolução

Este parâmetro define o número de unidades de tempo de 1/4 de duração. Se omitido, o padrão
o valor 480 será usado.

iterações

Este parâmetro define o número de iterações contidas na geração. Seu significado
depende do tipo de gramática escolhida, conforme explicado a seguir. Se omitido, o valor padrão 1
será usada.

tempo

Este parâmetro define o ritmo da composição. Se omitido, o valor padrão 120 será
usava.

assinatura_hora

Este parâmetro define a medida da composição. Se omitido, o valor padrão 4/4 será
ser usado.

Seção que declara as variáveis ​​globais da composição

As variáveis ​​controlam os parâmetros dos atributos de uma nota, conforme explicado a seguir.

Seção que define os parâmetros do jogador

Os parâmetros e variáveis ​​pessoais de cada jogador são declarados aqui. Os parâmetros pessoais
que podem ser declarados são:

instrumento

canal

iterações

Esta seção deve terminar com o símbolo%.

instrumento

Este parâmetro indica o tipo de instrumento do jogador. O conjunto de instrumentos do GRAMophone é o
igual ao do General MIDI. O intervalo de valores aceitável é de 0 a 127; existem
portanto, 128 instrumentos para escolher. Uma tabela mostrando os códigos do instrumento aparece
abaixo:

0 Plano

1 Piano Brite

2 Martelo Piano

3 Honkey Tonks

4 novos dentes

5 Piano Digital

6 cravo

7 Clavi

8 celesta

9 sinos

10 Caixa de Música

11 vibrações

12 marimba

13 Xilofonte

14 Sino Tubular

15 Santur

16 Órgão Completo

17 Órgão Percussivo

18 Órgão BX-3

19 Órgão da Igreja

20 Positivo

21 musette

22 gaita

23 tango

24 Guitarra Clássica

25 violão

26 guitarra jazz

27 Guitarra Limpa

28 guitarra muda

29 guitarra overdrive

30 guitarra distorcida

31 Harmônicas

32 Baixo Jazz

33 baixo profundo

34 Escolha baixo

35 Baixo Fretless

36 Contrabaixo 1

37 Contrabaixo 2

38 Baixo Sintetizado 1

39 Baixo Sintetizado 2

40 violino

41 roxo

42 violoncelo

43 Contra Baixo

44 Corda Tremolo

45 pizzicato

46 Harpa

47 tímpanos

48 Marcado

49 Corda Lenta

50 Pad Analógico

51 Almofada de Corda

52 Coro

53 Voz Doo

54 vozes

55 Sucesso de orquestra

56 trombeta

57 trombone

58 Tuba

59 Trompete Mudo

60 trompa francesa

61 Seção de latão

62 Latão Sintetizado 1

63 Latão Sintetizado 2

64 Sax soprano

65 sax alto

66 Sax Tenor

67 Barítono Sax

68 Sweet Oboé

69 trompa inglesa

70 fagote oboé

71 clarinete

72 Piccolo

73 flauta

Gravador 74

75 Flauta de Pã

Garrafa 76

77 Shakhukuhachi

78 apito

79 Ocarina

80 Chumbo Quadrado

81 serra chumbo

82 Chumbo Caliope

Chiff 83

84 Chumbo Charang

85 Coro Aéreo

86 Rezzo4ths

87 baixo e chumbo

88 Fantasia

89 almofada quente

Almofada de sintetizador poli 90

91 Almofada Fantasma

92 Almofada curvada

93 Almofada de Metal

94 Almofada de halo

95 Almofada de Varredura

96 Chuva de Gelo

97 Soundtrack

98 Cristal

99 Atmosfera

100 brilho

101 Duende

102 Queda de Eco

Tema de 103 estrelas

104 cítara

105 banjo

106 Shamisen

107 Koto

108 Kalimba

109 Escócia

110 violino

111 Shanai

112 Sino Metálico

113 atrás

114 Tambores de Aço

115 Bloco de Madeira

116 Tambor Taiko

117 Tom melódico

118 Sintetizador

119 Prato Reverso

Ruído de 120 trastes

121 Chiff de Ruído

122 Beira-mar

123 pássaros

Telefone 124

125 helicóptero

126 Stadium !!

127 tiro

Se omitido, o valor padrão do instrumento 0 é usado.

canal

Este parâmetro define qual canal Midi será associado ao reprodutor. São 16
canais possíveis. O canal 10 é reservado para instrumentos de percussão. Se omitido, o
o valor 1 do canal padrão é usado.

iterações

Este parâmetro define o número de iterações na geração. Seu significado depende de
o tipo de gramática escolhida, conforme explicado a seguir. Se o parâmetro iterations foi
incluídas nas declarações de composição, a última declaração será ignorada.

Seção que declara as variáveis ​​locais do jogador

As variáveis ​​controlam os parâmetros dos atributos de uma nota, conforme explicado a seguir.

Notas no GRAMofone

COMO AS NOTAS SÃO ESCRITAS NO GRAMofone

As notas são a primeira categoria de símbolos terminais GRAMofone.

GRAMophone usa a notação em inglês para notas:

ABCDEFG

Os nomes das notas devem ser escritos em letras maiúsculas. Os símbolos planos e pontiagudos são
representado por 'b' e '#' respectivamente; nenhum espaço deve aparecer entre esses símbolos e
o nome da nota: A #, Gb, etc.

ATRIBUTOS DE NOTA

As notas podem ter quatro atributos no GRAMofone: oitava, velocidade, duração e liberação. o
O atributo de oitava varia entre -2 e 8, enquanto os atributos de velocidade e liberação variam
de 0 a 127. Se a nota for escrita sem atributos, o seguinte padrão
os valores são usados: 3 para oitava, 64 para velocidade e liberação. O valor padrão atual para
a duração é uma crotchet. No exemplo, "Dê-me A" é escrito simplesmente como A [,,,]. Esse
significa que um A é gerado na terceira oitava, com uma duração de 1/4 e uma velocidade
e lançamento de 64.

DEFININDO OS ATRIBUTOS DE UMA NOTA

Os atributos de uma nota são definidos escrevendo-os dentro dos colchetes que
segue o nome da nota, sem espaços. Uma nota pode ter no máximo quatro atributos e
cada tipo de atributo pode ter apenas um valor.

Os atributos devem ser definidos na seguinte ordem:

oitava

velocidade

duração

liberar

Se todos os três atributos não forem definidos, o valor padrão será usado para os que faltam.

Aqui estão alguns exemplos de notas com atributos:

C [2, 50 + 60/2, 240 * 4,] - toca um C na segunda oitava, com uma velocidade de 80,
duração de 960 (mínimo com uma resolução de 480) e uma versão de 64 (padrão
valor);

Db [4 ,,,] - toca um Ré bemol na quarta oitava, usando os valores padrão para
velocidade, duração e liberação;

F # [,,,] - usa os valores padrão para todos os atributos;

Exemplos incorretos são:

Db [3, 127, 960, 64, x] - muitos atributos (x é uma variável).

PAUSE

As pausas são outra categoria de símbolo de terminal no GRAMofone. Eles são indicados pelo
letra R e só leva um atributo de tipo de duração. Se não for especificado, a resolução padrão
valor é usado. Os atributos são definidos da mesma forma que as notas.

Aqui estão alguns exemplos de pausas:

R [480/2] - pausa com duração de 240;

R [] - use o valor padrão para o atributo de duração do tipo.

ACORDOS

Os acordes são a categoria final do símbolo de terminal usado no GRAMophone. Um acorde é uma série
de notas tocadas simultaneamente. No GRAMophone, as notas tocadas em um acorde são incluídas
entre dois símbolos '^'.

Aqui estão alguns exemplos de acordes:

^ C [,,,] E [,,,] G [,,,] ^ - toca um acorde Dó maior, usando os valores padrão de cada nota.

^ A [2,80,240,] C [2,, 240,] E [2,, 240,] ^ - toca um acorde Lá menor com duração 1/8, com
todas as notas na segunda oitava e velocidade 64 (valor padrão), com a primeira nota
do acorde tocado com uma velocidade de 80 e os dois restantes com uma velocidade de 64
(valor padrão).

O PAPEL DE R EM CORDOS COMPLEXOS

As notas de um acorde nem sempre têm a mesma duração. Por exemplo é possível
que, enquanto a nota C [2, 1920,] de duração 4/4 está tocando, o músico tem que tocar quatro
crotchets na seguinte ordem: C [,,,], E [,,,], G [,,,], Bb [,,,]. Tem que haver um jeito
de dizer ao GRAMophone que as notas C [2,, 1920,] e C [,,,] devem começar ao mesmo tempo,
que E [,,,] deve começar após uma pausa de 1/4, G [,,,] após 2/4 e Bb [,,,] após 3/4. No
GRAMofone é escrito da seguinte forma:

^ C [2,, 1920,] C [,,,] R [] E [,,,] R [960] G [,,,] R [1440] Bb [,,,] ^

Em outras palavras, cada nota do acorde pode ser precedida por uma definição de pausa que representa
o tempo de espera antes de tocar a nota. Não importa a ordem em que você escreve
as notas em um acorde. O acorde no exemplo acima também pode ser escrito:

^ R [] E [,,,] C [2,, 1920,] R [1440] Bb [,,,] C [,,,] R [960] G [,,,] ^

IDENTIFICADORES

Algumas das entidades de linguagem do GRAMophone, variáveis, macros e símbolos não terminais em
A gramática de Chomsky, por exemplo, deve ter nomes pelos quais possam ser identificados. Esses nomes
são chamados de identificadores e são escolhidos pelo compositor. Os identificadores de GRAMophone seguem
o sistema de identificadores usado na linguagem de programação Pascal. Na verdade, um identificador
é composto por uma letra seguida por uma sequência de letras ou dígitos. Do GRAMofone
identificadores também devem ser escritos em minúsculas.

Gramática de Chomsky

SÍMBOLOS NÃO TERMINAIS

Na gramática de Chomsky, os símbolos não terminais são usados ​​para dar uma estrutura ou 'estilo' ao
composição musical. Eles são escritos com um '@' imediatamente seguido por um identificador.
A gramática de Chomsky usada pelo GRAMophone é livre de contexto, então o chefe da produção pode
ser apenas um não terminal.

O SÍMBOLO NÃO TERMINAL @composition

Este símbolo não terminal, que corresponde à composição final de um único jogador,
é obrigatório.

OPERADOR DE PRODUÇÃO

Isso é definido pela sequência de caracteres '->' e separa o chefe da produção
do corpo.

CORPO DA PRODUÇÃO

Isso pode conter sequências de terminais (notas, pausas e acordes) e não terminais
símbolos. Cada produção deve terminar com um ponto e vírgula.

| (OU) OPERADOR

Uma produção pode ser não determinística: ou seja, pode apresentar duas ou mais escolhas
durante a geração. O corpo de uma produção não determinística é feito de várias
escolhas separadas por | operador. Por exemplo

@ non_det-> A [,,,] B [,,,] @ Seq1 | ^ A [,,,] B [,,,] C [,,,] ^ @ Seq2R [] C [,,,];

é uma produção não determinística.

SIGNIFICADO DA ITERAÇÃO NO GRAMÁTICO CHOMSKY

Na gramática de Chomsky, uma produção pode incluir ciclos, ou seja, corpos de produção contendo
símbolos terminais que se referem à produção realmente sendo produzida. Por exemplo:

@ Sequenza1-> B [,,,] A [,,,] C [,,,] @ Sequenza1;

Para evitar um loop infinito durante a geração, o símbolo não terminal @ Sequenza1 é
processado um número igual de vezes para o parâmetro iterations.

Gramática de Lindenmayer

A gramática de Lindenmayer lida apenas com símbolos terminais e a versão do GRAMophone pode ser
livre de contexto ou trabalhar em um contexto polifônico. Portanto, notas únicas ou acordes podem aparecer
à frente da produção. Todas as produções são separadas por ponto e vírgula.

AXIOM

Esta é a produção inicial a partir da qual a geração começa. É obrigatório. PRODUÇÃO
OPERADOR

Isso é definido pela sequência de caracteres '->' e separa o chefe da produção
do corpo.

| (OU) OPERADOR

Uma produção pode ser não determinística: ou seja, pode apresentar duas ou mais escolhas
durante a geração. O corpo de uma produção não determinística é feito de várias
escolhas separadas por | operador. Por exemplo

A [,,,] -> A [,,,] B [,,,] | C [,,,] D [,,,];

é uma produção não determinística.

SIGNIFICADO DAS ITERAÇÕES NO GRAMÁTICA LINDENMAYER

A cada passo, todas as produções da gramática são aplicadas simultaneamente à seqüência de notas.
Neste caso, o parâmetro iterations representa o número de etapas a serem realizadas.

Uso de variáveis

DECLARAÇÃO E INICIALIZAÇÃO DE VARIÁVEIS

GRAMophone é capaz de controlar os atributos de uma nota parametricamente através do uso de
variáveis. Essas variáveis ​​são declaradas na seção de declaração do jogador e podem ser de
os seguintes tipos: oitava, velocidade, duração e msb. Uma variável é declarada por escrito
seu tipo seguido por um ou mais identificadores separados por uma vírgula. A declaração deve
termine com um ponto e vírgula. O identificador de um jogador deve ser declarado apenas uma vez.

A seguir estão as declarações corretas:

velocidade x, y;

oitava oitava, z;

duração w;

O que se segue são declarações incorretas:

velocidade x, x;

oitava z;

duração z;

Após a seção de declaração e antes da gramática, é possível inicializar
variáveis ​​por meio do operador =.

A seguir está um exemplo de declaração e inicialização:

velocidade x;

x = 0;

USANDO VARIÁVEIS COM NOTAS

Variáveis ​​são usadas em expressões de atributos de notas. GRAMophone controla os tipos dentro
expressões, portanto, não é possível adicionar uma variável de oitava a uma variável de velocidade, para
exemplo.

A seguir está um exemplo de uma variável de nota:

velocidade x;

duração z, w;

A [4, x, z + w,].

EXEMPLO
composição "Crescendo" de "Schroeder" {

// esta composição gera notas de 64 A com uma velocidade crescente

gramática chomsky
ritmo 120
assinatura_hora 4/4
iterações 64
%
jogador Schroeder {
instrumento 40
%
velocidade x = 0;

@ composição-> A [, x = x + 1 ,,] @ composição;
}
}

CONDIÇÕES

Nas gramáticas de Chomsky e Lindenmayer, é possível definir condições para o
variáveis ​​no corpo de produção. Se a condição for verdadeira, a produção é executada;
caso contrário, não é. Uma condição é definida imediatamente após o nome da produção
por meio do '?' símbolo, seguido por uma ou mais expressões booleanas.

Os operadores booleanos são:

! não

&& e

|| ou

Os operadores relacionais são:

== guale

! = diverso

<menor

> maggiore

<= minore o uguale

> = maggiore o uguale

A seguir está um exemplo de uma produção condicional.

@battuta? x! = 0-> A [, x = x-10 ,,] @ battuta;

o que significa: enquanto x não for igual a zero, gere a produção de @battuta; caso contrário, faça
não.

Discografia, biblioteca do GRAMophone

GRAMophone pode incluir bibliotecas externas, chamadas discografias. Para incluir um
discografia em um arquivo de origem, use a palavra-chave discografia seguida do nome do arquivo. UMA
a discografia pode ser incluída em qualquer ponto do arquivo de origem, desde que seu conteúdo corresponda
a posição da fonte onde foi incluída.

Macros

As macros podem ser definidas usando a palavra-chave define, seguida por um identificador em minúsculas e um
string colocada entre vírgulas invertidas. As macros devem ser definidas no início da fonte
composição, antes da palavra-chave composição. Por exemplo, para simplesmente escrever um
em vez de A [,,,], a seguinte macro deve ser definida: definir um "A [,,,]"

Funções no GRAMophone

A FUNÇÃO repeat ()

A função repeat () leva um valor de tipo msb mais uma sequência de Chomsky ou Lindenmayer. Isto
permite que a sequência incluída seja repetida um número de vezes igual ao msb
digite o valor.

A FUNÇÃO rand ()

A função rand () recebe uma expressão e retorna um valor aleatório que é menor que o
valor da expressão.

Operadores melódicos em GRAMophone

transpor()

O operador transpose () assume um valor do tipo msb mais uma sequência de Chomsky ou Lindenmayer.
Ele gera uma sequência em que todas as notas na sequência relevante são transpostas por
um número de semitons igual ao valor do tipo msb.

inversão ()

O operador inversion () pega uma sequência de Chomsky ou Lindenmayer. Ele gera uma sequência
em que os intervalos entre a primeira e as outras notas na sequência feita são
calculado ao contrário.

retrógrado()

O operador retrógrado () usa uma sequência de Chomsky ou Lindenmayer. Ele gera uma sequência
que é o contrário da seqüência inserida.

Use gramophone2 online usando serviços onworks.net


Servidores e estações de trabalho gratuitos

Baixar aplicativos Windows e Linux

Comandos Linux

Ad