Música en QL

Subforo oficial del Sinclair QL: realiza aquí las consultas relativas a tu QL.

Moderador: Sir Cilve Sinclair

Responder
Avatar de Usuario
radastan
Phantomas
Mensajes: 2232
Registrado: Lun May 07, 2007 5:34 pm
Contactar:

Música en QL

Mensaje por radastan » Jue Oct 30, 2008 6:15 pm

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
_________________________________________

afx
Sabreman
Mensajes: 396
Registrado: Dom Feb 24, 2008 10:56 pm

Re: Música en QL

Mensaje por afx » Sab Nov 01, 2008 6:38 pm

radastan escribió:... la potencia sonora del QL ...

¡Asi se habla! ... ((¡Esos son los términos que hay que emplar cuando se habla del QL!! 8) ... :D ))

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

Avatar de Usuario
radastan
Phantomas
Mensajes: 2232
Registrado: Lun May 07, 2007 5:34 pm
Contactar:

Re: Música en QL

Mensaje por radastan » Sab Nov 01, 2008 8:36 pm

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... :lol:
_________________________________________
Hay otras páginas.... pero no son Bytemaniacos
http://www.bytemaniacos.com
Orgullo de 8 bits
_________________________________________

Avatar de Usuario
badaman
Sabreman
Mensajes: 499
Registrado: Mar Ene 29, 2008 10:58 am
Contactar:

Re: Música en QL

Mensaje por badaman » Sab Nov 01, 2008 8:59 pm

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
Sinclair QL, la respuesta profesional de los 80

Zerover
Jack The Nipper
Mensajes: 112
Registrado: Mar Abr 08, 2008 9:00 am

Re: Música en QL

Mensaje por Zerover » Sab Nov 01, 2008 10:44 pm

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.

Avatar de Usuario
radastan
Phantomas
Mensajes: 2232
Registrado: Lun May 07, 2007 5:34 pm
Contactar:

Re: Música en QL

Mensaje por radastan » Dom Nov 02, 2008 9:43 am

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
_________________________________________

Avatar de Usuario
badaman
Sabreman
Mensajes: 499
Registrado: Mar Ene 29, 2008 10:58 am
Contactar:

Re: Música en QL

Mensaje por badaman » Lun Nov 03, 2008 11:35 pm

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.

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

Avatar de Usuario
badaman
Sabreman
Mensajes: 499
Registrado: Mar Ene 29, 2008 10:58 am
Contactar:

Re: Música en QL

Mensaje por badaman » Lun Nov 03, 2008 11:58 pm

Un programa para componer música y mostrar su partitura de la mano de Miguel Ángel Hdez.

Imagen

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

Responder

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 5 invitados