alanbodhi escribió: ↑Lun Dic 31, 2018 1:56 am
Hola, Que tal.
Estuve experimentando con valores que veia en los ejemplos de Yuzo Koshiro ya que con la documentacion con la que viene no me quedo claro como funcionan algunas cosas.
Estoy intentando entender la duracion de las notas y encontre 2 formas mas aparte del ejemplo que subio ChristleVania (ej. c^^^^). Aun no lo comprendo del todo pero lo comparto por si alguien mas lo llega a entender.
Les dejo 5 ejercicios/ejemplos que realize
Hola Alan, gracias por tus ejemplos iniciales en Discord y gracias por venir al foro a compartir tus ejercicios. Yo tambien acabo de ver que Koshiro usa numeros junto a las notas para la duracion. Aunque ambas maneras funcionas, creo que la numerica seria la mejor
Acá les dejo una version simplificada del "sampl1.muc" incluido en MUCOM88 con notas de que hace cada parte del codigo. Algunas cosas las saque de "MUCOM88_REF.txt", otras del
datasheet del YM2608 y otras leyendo de diversos lugares y atando cabos. La melodía original es más compleja pero a simple vista puede ser abrumadora, así que solo dejé los canales A, B y K que eran lo minimo necesario.
Código: Seleccionar todo
#mucom88 1.5
#title sampl1 (Explicado)
#composer Yuzo Koshiro
#author ChristleVania
#voice voice.dat
#pcm mucompcm.bin
#date 2018/12/31
#comment
; Explicando "sampl1.muc"
;
; This program 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 <https://www.gnu.org/licenses/>.
;
; =================================================================================
;
; & = Legato
;
; Se le conoce como "Legato" a la accion de ligar 2 notas sin que haya un silencio entre ellas.
; Un ejemplo es cuando se practican escalas para calentar la voz. Usualmente no se corta
; el sonido entre notas, sino que se conectan las notas, creando un sonido ininterrumpido.
;
; Ejemplo 1: a&b (Legato de La a Si)
; Ejemplo 2: c&e&g&e&c (Legato del arpegio Do Mi Sol Mi Do)
;
; q[valor] = Staccato
;
; Se le conoce como "Staccato" al acto de acortar las notas deliberadamente para crear una
; clara separacion entre ellas. En MUCOM88 el "Staccato" se especifica al momento de configurar
; el canal que se está utilizando.
;
; Ejemplo 1: q1 (estacato discreto)
; Ejemplo 2: q8 (estacato marcado)
;
; Entre mas alto el valor del "Staccato", mas cortas seran las notas. Hay que tomar en cuenta que
; si se acorta una nota el mismo tiempo que su duracion, esta dejara de producir sonido.
; Cabe aclarar que el "Staccato" no afecta la duracion de una nota (matematicamente hablando),
; solo al sonido que produce.
;
; L = Loop Global (Repetir voz indefinidamente)
;
; l = Longitud por defecto de cada nota.
; Ejemplo 1: l16 (cada nota dura 1/16)
; Ejemplo 2: l8 (cada nota dura 1/8)
;
; M[valor 1],[valor 2],[valor 2],[valor 4] = Control por software de la oscilacion de baja frecuencia (LFO).
;
; Dicho de manera muy simplificada, un LFO sirve para crear efectos como ecos, vibratos, tremolos, etc.
; MUCOM88 configura el LFO con 4 valores, siendo estos
;
; > Phase Modulation Sensitivity o PMS (Delay)
; > LFO Frequency (Vibrato)
; > Amplitude Modulation Sensitivity o AMS (Tremolo)
; > Numero de cambios o AMON (Efecto WOWOW) respectivamente.
;
; Ejemplo: M10,2,6,12
; (PMS = 10
; LFO FREQ = 2
; AMS = 6
; AMON = 12)
;
; yDR,[valor 1],[valor 2] = Modificar directamente el Decay Rate
;
; Se puede configurar directamente los valores del sonido (Attack, Decay, Sustain y Release) sin necesidad de
; ingresar al Voice Editor (V.EDIT). En este caso, al utilizar "yDR" a configurar un canal, podemos elegir
; cual de los 4 operadores (OP) queremos editar (primer valor) y que valor queremos insertar (valor 2). De esta
; manera no tenemos que utilizar el Voice Editor para hacer cambios simples a una voz.
;
; Ejemplo: yDR,2,7 (Modificar el valor del Decay Rate a "7" en el operador 2)
;
; ([valor] y )[valor] = Designacion relativa del volumen
; NOTA: No entiendo bien que hace esto (la documentacion no es muy explicita).
;
; []{valor} = Loop local
;
; Para ahorrar espacio en memoria es una mejor practica utilizar loops cuando vamos a repetir exactamente la misma
; secuencia de notas o ritmos varias veces (o a veces durante toda la composicion). De esta manera solo escribimos
; 1 sola linea de codigo y ahorramos preciada memoria.
;
; Ejemplo 1: [c d e f g a b]4
; Esto repite esta secuencia 4 veces.
;
; Ejemplo 2: [c&d e^ f8 g a b]8
; Esto repite esta secuencia 8 veces.
;
; / = Salida del Loop local
;
; Es posible que nuestra melodia o ritmo tenga algun cambio ligero en algun momento que requiere codigo
; distinto al de nuestro loop, como un remate en el ritmo o una terminacion distinta en la melodia. Es aqui cuando
; utilizamos "/" para decirle a MUCOM88 que en nuestra ultima iteracion del loop no ejecute el codigo completo. Esto
; nos permite reutilizar el codigo justo hasta el punto donde es repetitivo y salir solamente para ejecutar el cambio.
;
; Ejemplo: [c d e /f g a b]4 e d e d
; Esto repite las notas 4 veces, pero la 4ta vez solo llega hasta "e" y saldra para ejecutar "e d e d".
;
; K = Canal ADPCM
;
; ADPCM son las siglas de Adaptive Differential Pulse-Code Modulation y en terminos muy simples es una tecnica
; de digitilaziacion de audio que nos permite tener sonidos de la vida real en medios digitales (llamados "samples").
; El canal "K" del YM2608 es un canal ADPCM, y nos permite agregar "samples" a nuestras composiciones.
;
; En este canal los parametros de configuracion tienen algunos valores distintos al resto de los canales:
;
; > El volumen "v" tiene un rango de 0 a 255.
; > La octava "o1" es la octava natural, y aumentarla hace mas grave el sonido.
; > En consecuencia, "<" aumenta 1 octava y ">" disminuye 1 octava.
; > La numeracion de las voces definidas por "@" son distintas y estan especificadas en MUCOM88_REF.txt
; en la seccion ADPCM.
;
; Con este canal podemos utilzar percusiones mas realistas.
;
; NOTA: Es necesario que nuestro archivo ".muc" se encuentre en la misma ruta que "mucompcm.bin" (incluido con MUCOM88),
; o de lo contrario no habra sonido en el canal. Esto aplica tambien si se esta utilizando cualquier otro archivo de samples
(por ejemplo "bare2pcm.bin" incluido en los samples proporcionados por Yuzo Koshiro).
;======================
; MELODIA
;======================
A C192 o6 t200 L @78 v9 l16 q4 M20,1,12,4 yDR,4,3
A e8 r4.r4
A e d c8 d8.g&g2 ; Este "Legato" es para hacer que la nota comience sin vibrato y lo agregue despues.
A g8 f8 e4 r4 r4
A c d e8 e8.f8.c8 c8.d8 r<g8> ; El ultimo ">" asegura que el siguiente loop regrese a su octava original.
;======================
; BAJO
;======================
B C192 L @31 o4 v11 q7 l16
B c8 r c&c4 c8 r c8 e f8
B g8 r g&g4 g8 r g&g4
B a8 r a&a4 a8 r a&a4
B f8 r f&f4 g8 r g&g4
;======================
; PERCUSION
;======================
K C192 o1 L v50 l16
K [@1 c8)50 @11 c(50 @1 c8 /c)50 @11 c8(50]16 ; Repite 15 veces completas y sale antes de "/c" en la numero 16.
K @11)50 ccc(50 ; Parte que reemplaza lo faltante del loop
En un esfuerzo de dejar más claro el concepto de "Staccato", recomiendo escuchar el bajo en la canción "All Around the World" de Red Hot Chili Peppers:
https://www.youtube.com/watch?v=a9eNQZbjpJk.
También les dejo este video que explica con voz Legato, Stacatto y otros
https://www.youtube.com/watch?v=SHtZ01-ZiE8.
Update 31/12/18 1:10PM: Añadí un par de links de interés.