Música en QL
Moderador: Sir Cilve Sinclair
- radastan
- Phantomas
- Mensajes: 2232
- Registrado: Lun May 07, 2007 5:34 pm
- Contactar:
Música en QL
Ya puestos con el tema de los gráficos me ha dado por pensar que no estaría mal tampoco algún ejemplo de la potencia sonora del QL. ¿Alguna demo? más que nada para ver como suena ese generador de ondas.
_________________________________________
Hay otras páginas.... pero no son Bytemaniacos
http://www.bytemaniacos.com
Orgullo de 8 bits
_________________________________________
Hay otras páginas.... pero no son Bytemaniacos
http://www.bytemaniacos.com
Orgullo de 8 bits
_________________________________________
-
- Sabreman
- Mensajes: 396
- Registrado: Dom Feb 24, 2008 10:56 pm
Re: Música en QL
radastan escribió:... la potencia sonora del QL ...
¡Asi se habla! ... ((¡Esos son los términos que hay que emplar cuando se habla del QL!! ... ))
Aqui va un ejemplo de un simple programa que emula un piano simplón con el teclado del QL. Al menos sirve para extraer las frecuencias de una escala musical cromática.
(Encontrado en ftp://ftp.uwasa.fi/ql/)
Código: Seleccionar todo
100 CLEAR:aika=DATE:bon=-1
110 p_varilogo "PIANO","21.10.85"
120 :
130 n=13
140 DIM kork(2*n)
150 REMark C C# D D# E F F#
160 DATA 77 ,72, 67 ,63, 59 , 55 ,51
170 REMark G G# A A# B C
180 DATA 47 ,44, 41 ,38, 35 , 33
190 DATA 33 ,31, 28 ,26, 24 , 22 ,20
200 DATA 18 ,17, 15 ,14, 12 , 11
210 :
220 DIM nuotti$(2*n,2)
230 DATA "C C#D D#E F F#G G#A A#B C "
240 :
250 FOR i=1 TO 2*n:READ kork(i)
260 READ a$
270 FOR i=1 TO n
280 nuotti$(i)=a$(2*i-1 TO 2*i)
290 nuotti$(n+i)=a$(2*i-1 TO 2*i)
300 END FOR i
310 :
320 vari=7:kesto=5000
330 CLS:INK vari
340 PRINT™"Esc to end, tab ";"for new color"
350 PRINT"Change duration 4 ja 5"
360 PRINT"Play: Two lowest ";"keyboard rows"
370 PRINT"Octaves: 1 2"™" "
380 :
390 okt = 1
400 lask=0
410 key$="zsxdcvgbhnjm,12"
420 REPeat soita
430 c$=INKEY$:IF c$="":GO TO 430
440 c=CODE(c$)
450 IF c=27:EXIT soita
460 IF c= 9:p_vari:REMark 2000
470 IF c=52:kesto=-1
480 IF c=53:kesto=5000
490 c=c$ INSTR key$
500 IF c=0 THEN GO TO 430
510 IF c>n:okt=key$(c):GO TO 430
520 k = (okt-1)*n+c
530 BEEP
540 IF bon:BEEP kesto,kork(k)
550 lask=lask+1
560 PRINT nuotti$(k);" ";
570 IF lask >=12 THEN
580 PRINT
590 lask=0
600 END IF
610 END REPeat soita
620 BEEP
630 :
640 p_valmis 0
650 STOP
660 :
2000 DEFine PROCedure p_vari
2010 SELect ON vari
2020 =7:vari=2
2030 =2:vari=4
2040 =4:vari=6
2050 =6:vari=5
2060 =5:vari=7
2070 END SELect
2080 INK vari
2090 END DEFine p_vari
2100 :
20000 DEFine PROCedure p_varilogo(ohj$,tpvm$):REMark 09.09.85
20010 LOCal pv$,vsi,v$,i,j,k,k$
20020 MODE 256
20030 OPEN#3,scr_513x256a0x0:PAPER#3,1:CLS#3:CLOSE#3
20040 WINDOW#1,448,200,32,16
20050 PAPER#1,0:INK#1,4:CLS#1
20060 CSIZE 3,1:CURSOR 224-8*10,70
20070 PRINT "Timo Salmi":INK 7
20080 CURSOR 224-8*LEN(ohj$),110
20090 FOR i=1 TO LEN(ohj$)
20100 k=0:INK 3
20110 k$="AEIOSTNHJKLMPRUVYŽDWXQZBCFG”"
20120 FOR j=1 TO LEN(k$):IF ohj$(i)=k$(j):k=-1:GO TO 20130
20130 IF k THEN INK 6
20140 PRINT ohj$(i);:INK 3
20150 END FOR i
20160 CSIZE 2,0
20170 CURSOR 222-6*LEN(tpvm$),90
20180 INK 1:PRINT tpvm$:INK 5
20190 pv$=DATE$:vsi=pv$(1 TO 4)
20200 AT 0,0:PRINT DAY$!DATE$
20210 INK 2:AT 19,0:INPUT("CONTINUE: PRESS ENTER?")!v$:INK 7
20220 END DEFine p_varilogo
20230 :
30000 DEFine PROCedure p_valmis (ch)
30010 REMark 13.09.85
30020 LOCal t,m,s:INK 7:FLASH 0
30030 PRINT#ch:PRINT#ch,"READY, elapsed";
30040 s=DATE-aika
30050 t=INT(s/3600):s=s-t*3600
30060 m=INT(s/60):s=s-60*m
30070 IF t>0 THEN PRINT#ch,!t!"h";
30080 IF m>0 THEN PRINT#ch,!m!"min";
30090 PRINT#ch,!s!"sec"
30100 END DEFine p_valmis
30110 :
31990 STOP
32000 resave 1:STOP
32010 resave 2:STOP
32020 DEFine PROCedure resave (dr)
32030 LOCal a$:a$="piano"
32040 IF dr=1:a$="ram1_"&a$
32050 IF dr=2:a$="ram2_"&a$
32060 DELETE a$:SAVE a$
32070 PRINT#0,"Saved"!a$
32080 END DEFine
- radastan
- Phantomas
- Mensajes: 2232
- Registrado: Lun May 07, 2007 5:34 pm
- Contactar:
Re: Música en QL
Mmmmmm... por lo que estoy escuchando entre tu aportación y la de Badaman en otro hilo, el QL tiene sólo un canal pero con una flexibilidad muy grande.
Estoy pensando si no sería posible una especie de tracker que sumara las frecuencias de cada canal y resultase en algo con apariencia de multicanal. Por lo que estoy viendo no es ninguna locura, y encima con la ventaja que no llevaría mucho tiempo de procesador y se puede ejecutar en segundo plano gracias a la multitarea del QL.
Pero primero tengo que meterle mano al MUD... y pillar un QL real... otra vez...
Estoy pensando si no sería posible una especie de tracker que sumara las frecuencias de cada canal y resultase en algo con apariencia de multicanal. Por lo que estoy viendo no es ninguna locura, y encima con la ventaja que no llevaría mucho tiempo de procesador y se puede ejecutar en segundo plano gracias a la multitarea del QL.
Pero primero tengo que meterle mano al MUD... y pillar un QL real... otra vez...
_________________________________________
Hay otras páginas.... pero no son Bytemaniacos
http://www.bytemaniacos.com
Orgullo de 8 bits
_________________________________________
Hay otras páginas.... pero no son Bytemaniacos
http://www.bytemaniacos.com
Orgullo de 8 bits
_________________________________________
- badaman
- Sabreman
- Mensajes: 499
- Registrado: Mar Ene 29, 2008 10:58 am
- Contactar:
Re: Música en QL
Claro que solo hay un canal. Es un zumbador y poco más. Lo de mezclar dos notas ya lo hace el propio comando BEEP.
Parámetros (Texto extraido de la guía de palabras clave del Sinclair QL):
BEEP duración,frecuencia,fecuencia_2,grad_x,grad_y,envolvente,emborronamiento,aleatorio
Duración: (Valores de -32768 a 32767) Especifica la duración del sonido en unidades de 72 microsegundos. Una duración de 0 continua el sonido hasta finalizarlo con otra instrucción BEEP.
Frecuencia: (0 a 255) Especifica la frecuencia de sonido (tono). Una frecuencia de 1 es alta y una de 255 baja.
Frecuencia_2: (0 a 255) Especifica un nivel de frecuencia superior sobre el cual oscila el sonido.
Grad_x: (0 a 32768 a 32767) Especifica la velocidad con la que el sonido grad_y oscila entre las dos frecuencias especificadas.
Grad_y: (8 a 7)
Envolvente: (0 a 15) Fuerza el sonido a oscilar sobre si mismo el número de veces especificado. Si wrap es igual a 15, el sonido oscilará de un modo indefinido.
Emborronamiento: (0 a 15) Define la cantidad que debe añadirse al sonido.
Aleatorio: (0 a 15) Define la cantidad que debe añadirse al sonido.
Para más información RTFM!
http://sinclairql.es > Utilidades > Manuales > Sinclair QL Guía del Usuario
o bien:
http://www.speccy.org/sinclairql/man/sqlgu.htm
Consultar concretamente las secciones "guia de referencia de palabras claves", páginas 5 y 6, y la "guia de referencia de conceptos", páginas 52 y 53
Parámetros (Texto extraido de la guía de palabras clave del Sinclair QL):
BEEP duración,frecuencia,fecuencia_2,grad_x,grad_y,envolvente,emborronamiento,aleatorio
Duración: (Valores de -32768 a 32767) Especifica la duración del sonido en unidades de 72 microsegundos. Una duración de 0 continua el sonido hasta finalizarlo con otra instrucción BEEP.
Frecuencia: (0 a 255) Especifica la frecuencia de sonido (tono). Una frecuencia de 1 es alta y una de 255 baja.
Frecuencia_2: (0 a 255) Especifica un nivel de frecuencia superior sobre el cual oscila el sonido.
Grad_x: (0 a 32768 a 32767) Especifica la velocidad con la que el sonido grad_y oscila entre las dos frecuencias especificadas.
Grad_y: (8 a 7)
Envolvente: (0 a 15) Fuerza el sonido a oscilar sobre si mismo el número de veces especificado. Si wrap es igual a 15, el sonido oscilará de un modo indefinido.
Emborronamiento: (0 a 15) Define la cantidad que debe añadirse al sonido.
Aleatorio: (0 a 15) Define la cantidad que debe añadirse al sonido.
Para más información RTFM!
http://sinclairql.es > Utilidades > Manuales > Sinclair QL Guía del Usuario
o bien:
http://www.speccy.org/sinclairql/man/sqlgu.htm
Consultar concretamente las secciones "guia de referencia de palabras claves", páginas 5 y 6, y la "guia de referencia de conceptos", páginas 52 y 53
Sinclair QL, la respuesta profesional de los 80
-
- Jack The Nipper
- Mensajes: 112
- Registrado: Mar Abr 08, 2008 9:00 am
Re: Música en QL
radastan escribió:el QL tiene sólo un canal pero con una flexibilidad muy grande.
Un solo canal y siempre con forma de onda cuadrada. Lo único que dominamos de verdad es la variación de frecuencias.
radastan escribió:...no llevaría mucho tiempo de procesador y se puede ejecutar en segundo plano gracias a la multitarea del QL.
No es gracias a la multitarea, es gracias al coprocesador 8049. Si fuera por la multitarea, al final el trabajo se lo cargaba el 68008.
- radastan
- Phantomas
- Mensajes: 2232
- Registrado: Lun May 07, 2007 5:34 pm
- Contactar:
Re: Música en QL
Zerover escribió:radastan escribió:el QL tiene sólo un canal pero con una flexibilidad muy grande.
Un solo canal y siempre con forma de onda cuadrada. Lo único que dominamos de verdad es la variación de frecuencias.
Que no es poco, es todo un avance respecto al buzzer del Spectrum 16/48K, no llega a ser el AY, pero puedes conseguir casi los mismos efectos con ingenio.
Zerover escribió:radastan escribió:...no llevaría mucho tiempo de procesador y se puede ejecutar en segundo plano gracias a la multitarea del QL.
No es gracias a la multitarea, es gracias al coprocesador 8049. Si fuera por la multitarea, al final el trabajo se lo cargaba el 68008.
Se que el 8049 se lleva el trabajo, con lo de la multitarea me refiero a que es posible crear un tracker que suene de fondo, e incluso controlado desde BASIC, sin gastar mucho tiempo de CPU gracias al coprocesador.
_________________________________________
Hay otras páginas.... pero no son Bytemaniacos
http://www.bytemaniacos.com
Orgullo de 8 bits
_________________________________________
Hay otras páginas.... pero no son Bytemaniacos
http://www.bytemaniacos.com
Orgullo de 8 bits
_________________________________________
- badaman
- Sabreman
- Mensajes: 499
- Registrado: Mar Ene 29, 2008 10:58 am
- Contactar:
Re: Música en QL
En el programa Piano, las lineas siguientes aparecerán con la marca "Mistake" al principio de línea, lo que indica que el interprete no comprende esa línea al cargar el programa.
El código debe cambiarse por este para que el programa funcione:
El problema está en este símbolo "™" que seguramente se ha colado al ser escrito el programa en un QL nórdico.
El símbolo "\" imprime un salto de línea.
Código: Seleccionar todo
340 PRINT™"Esc to end, tab ";"for new color"
..
370 PRINT"Octaves: 1 2"™" "
El código debe cambiarse por este para que el programa funcione:
Código: Seleccionar todo
340 PRINT\"Esc to end, tab ";"for new color"
..
370 PRINT"Octaves: 1 2"\" "
El problema está en este símbolo "™" que seguramente se ha colado al ser escrito el programa en un QL nórdico.
El símbolo "\" imprime un salto de línea.
Sinclair QL, la respuesta profesional de los 80
- badaman
- Sabreman
- Mensajes: 499
- Registrado: Mar Ene 29, 2008 10:58 am
- Contactar:
Re: Música en QL
Un programa para componer música y mostrar su partitura de la mano de Miguel Ángel Hdez.
http://web.mac.com/miguelahernandez1/iW ... dades.html
Descarga directa:
http://web.mac.com/miguelahernandez1/iW ... musica.bas
Renombrar a musica_bas y empezar a componer.
http://web.mac.com/miguelahernandez1/iW ... dades.html
Descarga directa:
http://web.mac.com/miguelahernandez1/iW ... musica.bas
Renombrar a musica_bas y empezar a componer.
Sinclair QL, la respuesta profesional de los 80
¿Quién está conectado?
Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 5 invitados