Retro Sound

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Avatar de l’utilisateur
flaith
Messages : 1487
Inscription : jeu. 07/avr./2005 1:06
Localisation : Rennes
Contact :

Retro Sound

Message par flaith »

Un petit programme (fait à la va-vite) façon "old school" qui joue une partition, ici c'est PACMAN :wink:

Code : Tout sélectionner

; *************************
; ***                   ***
; *** Retro Sound 8Bits ***
; ***                   ***
; *************************
;
; Flaith 23.02.09
;
; Procedure Makesound from GPI modified for my needs
; (GPI:  http://www.purebasic.fr/english/viewtopic.php?p=25292#25292 )

; On commence à octave 2
#TON      = 2

#__C = 262/#TON
#_CD = 277/#TON
#__D = 294/#TON
#_DD = 311/#TON
#__E = 330/#TON
#__F = 349/#TON
#_FD = 370/#TON
#__G = 392/#TON
#_GD = 415/#TON
#__A = 440/#TON
#_AD = 466/#TON
#__B = 494/#TON

#WAVE_FORMAT_PCM  = $0001
#MONO             = $0001
#SAMPLE_RATE      = 8000                  ; 8000, 11025, 22050, or 44100
#RIFF_ID          = "RIFF"
#WAVE_ID          = "WAVE"
#FMT_ID           = "fmt "
#DATA_ID          = "data"

Structure TNOTE
  note1.s
  note2.s
  note3.s
  note4.s
EndStructure

Structure TWAVE
  wFormatTag.w
  nChannels.w
  nSamplesPerSec.i
  nAvgBytesPerSec.i
  nBlockAlign.w
  wBitsPerSample.w
  cbSize.w
EndStructure

Global *new_snd

Global C2.i,Cd2.i,D2.i,Dd2.i,E2.i,F2.i,Fd2.i,G2.i,Gd2.i,A2.i,Ad2.i,B2.i
Global C3.i,Cd3.i,D3.i,Dd3.i,E3.i,F3.i,Fd3.i,G3.i,Gd3.i,A3.i,Ad3.i,B3.i
Global C4.i,Cd4.i,D4.i,Dd4.i,E4.i,F4.i,Fd4.i,G4.i,Gd4.i,A4.i,Ad4.i,B4.i
Global C5.i,Cd5.i,D5.i,Dd5.i,E5.i,F5.i,Fd5.i,G5.i,Gd5.i,A5.i,Ad5.i,B5.i
Global C6.i,Cd6.i,D6.i,Dd6.i,E6.i,F6.i,Fd6.i,G6.i,Gd6.i,A6.i,Ad6.i,B6.i

Procedure MakeSound(Frequency.f, Duration.i)
  Protected SoundValue.b
  Protected nr.i
  Protected TWaveFormat.i
  Protected w.f                                      ; omega ( 2 * pi * frequency)
  Protected DataCount.i, RiffCount.i
  Protected *MS.i

  WaveFormatEx.TWAVE
  WaveFormatEx\wFormatTag      = #WAVE_FORMAT_PCM
  WaveFormatEx\nChannels       = #MONO
  WaveFormatEx\nSamplesPerSec  = #SAMPLE_RATE
  WaveFormatEx\wBitsPerSample  = $0008
  WaveFormatEx\nBlockAlign     = (WaveFormatEx\nChannels * WaveFormatEx\wBitsPerSample) / 8
  WaveFormatEx\nAvgBytesPerSec = WaveFormatEx\nSamplesPerSec * WaveFormatEx\nBlockAlign
  WaveFormatEx\cbSize          = 0
 
  DataCount = (Duration * #SAMPLE_RATE)/1000          ; sound data
  RiffCount = 4 + 4 + 4 + SizeOf(TWAVE) + 4 + 4 + DataCount
 
  *new_snd=AllocateMemory(RiffCount+100)
  *MS=*new_snd
 
  PokeS(*MS,#RIFF_ID):*MS+4                           ; 'RIFF'
  PokeL(*MS,RiffCount):*MS+4                          ; file Data size
  PokeS(*MS,#WAVE_ID):*MS+4                           ; 'WAVE'
  PokeS(*MS,#FMT_ID):*MS+4                            ; 'fmt '
  TWaveFormat = SizeOf(TWAVE)
  PokeL(*MS,TWaveFormat):*MS+4                        ; TWaveFormat data size
 
  PokeW(*MS,WaveFormatEx\wFormatTag):*MS+2            ; WaveFormatEx record
  PokeW(*MS,WaveFormatEx\nChannels):*MS+2
  PokeL(*MS,WaveFormatEx\nSamplesPerSec):*MS+4
  PokeL(*MS,WaveFormatEx\nAvgBytesPerSec):*MS+4
  PokeW(*MS,WaveFormatEx\nBlockAlign):*MS+2
  PokeW(*MS,WaveFormatEx\wBitsPerSample):*MS+2
  PokeW(*MS,WaveFormatEx\cbSize):*MS+2
 
  PokeS(*MS,#DATA_ID):*MS+4                           ; 'data'
  PokeL(*MS,DataCount):*MS+4                          ; sound data size
 
  ; Calculate And write out the tone signal : now the Data values
  w = 2 * #PI * Frequency                             ; omega

  For i = 0 To DataCount - 1
    ;SoundValue = Frequency * Pow(2,(i / Duration))
    SoundValue = 127 + 127 * Sin(i * w / #SAMPLE_RATE)
    PokeB(*MS,SoundValue)
    *MS+1
  Next
 
  nr = CatchSound(#PB_Any,*new_snd)
  FreeMemory(*new_snd)
  ProcedureReturn nr

EndProcedure

Procedure QuitSound(sound)
 StopSound(sound)
 FreeSound(sound)
EndProcedure

Procedure InitInstrument(DURATION.i)
  C2 = MakeSound(#__C,DURATION)
  Cd2= MakeSound(#_CD,DURATION)
  D2 = MakeSound(#__D,DURATION)
  Dd2= MakeSound(#_DD,DURATION)
  E2 = MakeSound(#__E,DURATION)
  F2 = MakeSound(#__F,DURATION)
  Fd2= MakeSound(#_FD,DURATION)
  G2 = MakeSound(#__G,DURATION)
  Gd2= MakeSound(#_GD,DURATION)
  A2 = MakeSound(#__A,DURATION)
  Ad2= MakeSound(#_AD,DURATION)
  B2 = MakeSound(#__B,DURATION)
  
  C3 = MakeSound(#__C*2,DURATION)
  Cd3= MakeSound(#_CD*2,DURATION)
  D3 = MakeSound(#__D*2,DURATION)
  Dd3= MakeSound(#_DD*2,DURATION)
  E3 = MakeSound(#__E*2,DURATION)
  F3 = MakeSound(#__F*2,DURATION)
  Fd3= MakeSound(#_FD*2,DURATION)
  G3 = MakeSound(#__G*2,DURATION)
  Gd3= MakeSound(#_GD*2,DURATION)
  A3 = MakeSound(#__A*2,DURATION)
  Ad3= MakeSound(#_AD*2,DURATION)
  B3 = MakeSound(#__B*2,DURATION)
  
  C4 = MakeSound(#__C*3,DURATION)
  Cd4= MakeSound(#_CD*3,DURATION)
  D4 = MakeSound(#__D*3,DURATION)
  Dd4= MakeSound(#_DD*3,DURATION)
  E4 = MakeSound(#__E*3,DURATION)
  F4 = MakeSound(#__F*3,DURATION)
  Fd4= MakeSound(#_FD*3,DURATION)
  G4 = MakeSound(#__G*3,DURATION)
  Gd4= MakeSound(#_GD*3,DURATION)
  A4 = MakeSound(#__A*3,DURATION)
  Ad4= MakeSound(#_AD*3,DURATION)
  B4 = MakeSound(#__B*3,DURATION)
  
  C5 = MakeSound(#__C*4,DURATION)
  Cd5= MakeSound(#_CD*4,DURATION)
  D5 = MakeSound(#__D*4,DURATION)
  Dd5= MakeSound(#_DD*4,DURATION)
  E5 = MakeSound(#__E*4,DURATION)
  F5 = MakeSound(#__F*4,DURATION)
  Fd5= MakeSound(#_FD*4,DURATION)
  G5 = MakeSound(#__G*4,DURATION)
  Gd5= MakeSound(#_GD*4,DURATION)
  A5 = MakeSound(#__A*4,DURATION)
  Ad5= MakeSound(#_AD*4,DURATION)
  B5 = MakeSound(#__B*4,DURATION)
  
  C6 = MakeSound(#__C*5,DURATION)
  Cd6= MakeSound(#_CD*5,DURATION)
  D6 = MakeSound(#__D*5,DURATION)
  Dd6= MakeSound(#_DD*5,DURATION)
  E6 = MakeSound(#__E*5,DURATION)
  F6 = MakeSound(#__F*5,DURATION)
  Fd6= MakeSound(#_FD*5,DURATION)
  G6 = MakeSound(#__G*5,DURATION)
  Gd6= MakeSound(#_GD*5,DURATION)
  A6 = MakeSound(#__A*5,DURATION)
  Ad6= MakeSound(#_AD*5,DURATION)
  B6 = MakeSound(#__B*5,DURATION)
EndProcedure

Procedure.i getNote(note.s)
Protected valnote.i

  Select note
    Case "---": valnote = -1

    Case "C2" : valnote = C2
    Case "C#2": valnote = Cd2
    Case "D2" : valnote = D2
    Case "D#2": valnote = Dd2
    Case "E2" : valnote = E2
    Case "F2" : valnote = F2
    Case "F#2": valnote = Fd2
    Case "G2" : valnote = G2
    Case "G#2": valnote = Gd2
    Case "A2" : valnote = A2
    Case "A#2": valnote = Ad2
    Case "B2" : valnote = B2

    Case "C3" : valnote = C3
    Case "C#3": valnote = Cd3
    Case "D3" : valnote = D3
    Case "D#3": valnote = Dd3
    Case "E3" : valnote = E3
    Case "F3" : valnote = F3
    Case "F#3": valnote = Fd3
    Case "G3" : valnote = G3
    Case "G#3": valnote = Gd3
    Case "A3" : valnote = A3
    Case "A#3": valnote = Ad3
    Case "B3" : valnote = B3

    Case "C4" : valnote = C4
    Case "C#4": valnote = Cd4
    Case "D4" : valnote = D4
    Case "D#4": valnote = Dd4
    Case "E4" : valnote = E4
    Case "F4" : valnote = F4
    Case "F#4": valnote = Fd4
    Case "G4" : valnote = G4
    Case "G#4": valnote = Gd4
    Case "A4" : valnote = A4
    Case "A#4": valnote = Ad4
    Case "B4" : valnote = B4

    Case "C5" : valnote = C5
    Case "C#5": valnote = Cd5
    Case "D5" : valnote = D5
    Case "D#5": valnote = Dd5
    Case "E5" : valnote = E5
    Case "F5" : valnote = F5
    Case "F#5": valnote = Fd5
    Case "G5" : valnote = G5
    Case "G#5": valnote = Gd5
    Case "A5" : valnote = A5
    Case "A#5": valnote = Ad5
    Case "B5" : valnote = B5

    Case "C6" : valnote = C6
    Case "C#6": valnote = Cd6
    Case "D6" : valnote = D6
    Case "D#6": valnote = Dd6
    Case "E6" : valnote = E6
    Case "F6" : valnote = F6
    Case "F#6": valnote = Fd6
    Case "G6" : valnote = G6
    Case "G#6": valnote = Gd6
    Case "A6" : valnote = A6
    Case "A#6": valnote = Ad6
    Case "B6" : valnote = B6
  EndSelect

  ProcedureReturn valnote
EndProcedure

Global DURATION.i
Global Duree.i

InitSound()

Global note1.i, note2.i, note3.i, note4.i
Global NewList channel.TNOTE()

; Restore zelda:
; Restore ghostbuster:
Restore pacman:
; Restore mario:

Read.i DURATION
Read.i Duree

InitInstrument(DURATION*Duree)

Read.s tmp$
While tmp$ <> "END"
  Read.s tmp1$
  Read.s tmp2$
  Read.s tmp3$

  AddElement(channel())
    channel()\note1  = tmp$
    channel()\note2  = tmp1$
    channel()\note3  = tmp2$
    channel()\note4  = tmp3$
  Read.s tmp$
Wend

OpenConsole()

ForEach channel()
  note1 = getNote(channel()\note1)
  note2 = getNote(channel()\note2)
  note3 = getNote(channel()\note3)
  note4 = getNote(channel()\note4)

  PrintN(LSet(channel()\note1,3," ")+" "+LSet(channel()\note2,3," ")+" "+LSet(channel()\note3,3," ")+" "+LSet(channel()\note4,3," "))

  If note1 >= 0
    PlaySound(note1,#PB_Sound_MultiChannel)
  EndIf

  If note2 >= 0
    PlaySound(note2,#PB_Sound_MultiChannel)
  EndIf

  If note3 >= 0
    PlaySound(note3,#PB_Sound_MultiChannel)
  EndIf

  If note4 >= 0
    PlaySound(note4,#PB_Sound_MultiChannel)
  EndIf

  Delay(DURATION*duree)
Next

Print("Hit a key"):Input()
CloseConsole()
End

DataSection
;-pacman:
pacman:
    Data.i 60,1
    Data.s "B2" ,"B4" ,"---","---"    ;0
    Data.s "---","---","---","---"    ;1
    Data.s "---","B5" ,"---","---"    ;2
    Data.s "---","---","---","---"    ;3
    Data.s "B3" ,"F#5","---","---"    ;4
    Data.s "---","---","---","---"    ;5
    Data.s "---","D5" ,"---","---"    ;6
    Data.s "---","---","---","---"    ;7
    Data.s "B2" ,"---","---","---"    ;8
    Data.s "---","B5" ,"---","---"    ;9
    Data.s "---","---","---","---"    ;0
    Data.s "---","F#5","---","---"    ;1
    Data.s "B3" ,"---","---","---"    ;2
    Data.s "---","D5" ,"---","---"    ;3
    Data.s "---","---","---","---"    ;4
    Data.s "---","---","---","---"    ;5
    Data.s "---","C5" ,"---","---"    ;6
    Data.s "C3" ,"---","---","---"    ;7
    Data.s "---","C6" ,"---","---"    ;8
    Data.s "---","---","---","---"    ;9
    Data.s "---","G6" ,"---","---"    ;0
    Data.s "C4" ,"---","---","---"    ;1
    Data.s "---","E6" ,"---","---"    ;2
    Data.s "---","---","---","---"    ;3
    Data.s "---","---","---","---"    ;4
    Data.s "C3" ,"C6" ,"---","---"    ;5
    Data.s "---","---","---","---"    ;6
    Data.s "---","G6" ,"---","---"    ;7
    Data.s "---","---","---","---"    ;8
    Data.s "C4" ,"E6" ,"---","---"    ;9
    Data.s "---","---","---","---"    ;0
    Data.s "---","---","---","---"    ;1
    Data.s "---","---","---","---"    ;2
    Data.s "B2" ,"B4" ,"---","---"    ;3
    Data.s "---","---","---","---"    ;4
    Data.s "---","B5" ,"---","---"    ;5
    Data.s "---","---","---","---"    ;6
    Data.s "B3" ,"F#5","---","---"    ;7
    Data.s "---","---","---","---"    ;8
    Data.s "---","D#5","---","---"    ;9
    Data.s "---","---","---","---"    ;0
    Data.s "B3" ,"---","---","---"    ;1
    Data.s "---","B5" ,"---","---"    ;2
    Data.s "---","---","---","---"    ;3
    Data.s "---","F#5","---","---"    ;4
    Data.s "B3" ,"---","---","---"    ;5
    Data.s "---","D#5","---","---"    ;6
    Data.s "---","---","---","---"    ;7
    Data.s "---","---","---","---"    ;8
    Data.s "F#3","D#5","---","---"    ;9
    Data.s "---","E5" ,"---","---"    ;0
    Data.s "---","F5" ,"---","---"    ;1
    Data.s "---","F5" ,"---","---"    ;2
    Data.s "G#3","F#5","---","---"    ;3
    Data.s "---","---","---","---"    ;4
    Data.s "---","G5" ,"---","---"    ;5
    Data.s "---","G5" ,"---","---"    ;6
    Data.s "A#3","G#5","---","---"    ;7
    Data.s "---","---","---","---"    ;8
    Data.s "---","A5" ,"---","---"    ;9
    Data.s "---","A5" ,"---","---"    ;0
    Data.s "B3" ,"A#5","---","---"    ;1
    Data.s "---","B2" ,"---","---"    ;2
    Data.s "---","---","---","---"    ;3
    Data.s "---","---","---","---"    ;4
    Data.s "END"
EndDataSection
Dernière modification par flaith le lun. 23/févr./2009 19:26, modifié 2 fois.
Anonyme

Message par Anonyme »

Excellentissime Flaith :D

Un brainfuck tout de même pour composé :D
Avatar de l’utilisateur
Ar-S
Messages : 9477
Inscription : dim. 09/oct./2005 16:51
Contact :

Message par Ar-S »

j'adore ce genre de prog. Mais c'est vrai que composer avec ça c'est violent :).
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

Excellent :D
Avatar de l’utilisateur
flaith
Messages : 1487
Inscription : jeu. 07/avr./2005 1:06
Localisation : Rennes
Contact :

Message par flaith »

:D merci les gars
pour info la tablature vient de ce site : http://tabnabber.com/directory_song.asp?artist=Pac-man
Anonyme

Message par Anonyme »

Merci flaith , j'ai fait joujou avec ton code :

Mario :

Code : Tout sélectionner

; *************************
; ***                   ***
; *** Retro Sound 8Bits ***
; ***                   ***
; *************************
;
; Flaith 23.02.09
;
; Procedure Makesound from GPI modified for my needs
; (GPI:  http://www.purebasic.fr/english/viewtopic.php?p=25292#25292 )

#DURATION = 50
#TON      = 1

; On commence à octave 2
#__C = 262/#TON
#_CD = 277/#TON
#__D = 294/#TON
#_DD = 311/#TON
#__E = 330/#TON
#__F = 349/#TON
#_FD = 370/#TON
#__G = 392/#TON
#_GD = 415/#TON
#__A = 440/#TON
#_AD = 466/#TON
#__B = 494/#TON

#WAVE_FORMAT_PCM  = $0001
#MONO             = $0001
#SAMPLE_RATE      = 8000                  ; 8000, 11025, 22050, or 44100
#RIFF_ID          = "RIFF"
#WAVE_ID          = "WAVE"
#FMT_ID           = "fmt "
#DATA_ID          = "data"

Structure TNOTE
  note1.s
  note2.s
  note3.s
  note4.s
EndStructure

Structure TWAVE
  wFormatTag.w
  nChannels.w
  nSamplesPerSec.i
  nAvgBytesPerSec.i
  nBlockAlign.w
  wBitsPerSample.w
  cbSize.w
EndStructure

Global *new_snd

Global C2.i,Cd2.i,D2.i,Dd2.i,E2.i,F2.i,Fd2.i,G2.i,Gd2.i,A2.i,Ad2.i,B2.i
Global C3.i,Cd3.i,D3.i,Dd3.i,E3.i,F3.i,Fd3.i,G3.i,Gd3.i,A3.i,Ad3.i,B3.i
Global C4.i,Cd4.i,D4.i,Dd4.i,E4.i,F4.i,Fd4.i,G4.i,Gd4.i,A4.i,Ad4.i,B4.i
Global C5.i,Cd5.i,D5.i,Dd5.i,E5.i,F5.i,Fd5.i,G5.i,Gd5.i,A5.i,Ad5.i,B5.i
Global C6.i,Cd6.i,D6.i,Dd6.i,E6.i,F6.i,Fd6.i,G6.i,Gd6.i,A6.i,Ad6.i,B6.i

Procedure MakeSound(Frequency.f, Duration.i)
  Protected SoundValue.b
  Protected nr.i
  Protected TWaveFormat.i
  Protected w.f                                      ; omega ( 2 * pi * frequency)
  Protected DataCount.i, RiffCount.i
  Protected *MS.i

  WaveFormatEx.TWAVE
  WaveFormatEx\wFormatTag      = #WAVE_FORMAT_PCM
  WaveFormatEx\nChannels       = #MONO
  WaveFormatEx\nSamplesPerSec  = #SAMPLE_RATE
  WaveFormatEx\wBitsPerSample  = $0008
  WaveFormatEx\nBlockAlign     = (WaveFormatEx\nChannels * WaveFormatEx\wBitsPerSample) / 8
  WaveFormatEx\nAvgBytesPerSec = WaveFormatEx\nSamplesPerSec * WaveFormatEx\nBlockAlign
  WaveFormatEx\cbSize          = 0
 
  DataCount = (Duration * #SAMPLE_RATE)/1000          ; sound data
  RiffCount = 4 + 4 + 4 + SizeOf(TWAVE) + 4 + 4 + DataCount
 
  *new_snd=AllocateMemory(RiffCount+100)
  *MS=*new_snd
 
  PokeS(*MS,#RIFF_ID):*MS+4                           ; 'RIFF'
  PokeL(*MS,RiffCount):*MS+4                          ; file Data size
  PokeS(*MS,#WAVE_ID):*MS+4                           ; 'WAVE'
  PokeS(*MS,#FMT_ID):*MS+4                            ; 'fmt '
  TWaveFormat = SizeOf(TWAVE)
  PokeL(*MS,TWaveFormat):*MS+4                        ; TWaveFormat data size
 
  PokeW(*MS,WaveFormatEx\wFormatTag):*MS+2            ; WaveFormatEx record
  PokeW(*MS,WaveFormatEx\nChannels):*MS+2
  PokeL(*MS,WaveFormatEx\nSamplesPerSec):*MS+4
  PokeL(*MS,WaveFormatEx\nAvgBytesPerSec):*MS+4
  PokeW(*MS,WaveFormatEx\nBlockAlign):*MS+2
  PokeW(*MS,WaveFormatEx\wBitsPerSample):*MS+2
  PokeW(*MS,WaveFormatEx\cbSize):*MS+2
 
  PokeS(*MS,#DATA_ID):*MS+4                           ; 'data'
  PokeL(*MS,DataCount):*MS+4                          ; sound data size
 
  ; Calculate And write out the tone signal : now the Data values
  w = 2 * #PI * Frequency                             ; omega

  For i = 0 To DataCount - 1
    
    SoundValue = 127 + 127 * Sin(i * w / #SAMPLE_RATE)
    PokeB(*MS,SoundValue)
    *MS+1
  Next
 
  nr = CatchSound(#PB_Any,*new_snd)
  FreeMemory(*new_snd)
  ProcedureReturn nr

EndProcedure

Procedure QuitSound(sound)
 StopSound(sound)
 FreeSound(sound)
EndProcedure

Procedure InitInstrument()
  C2 = MakeSound(#__C,#DURATION)
  Cd2= MakeSound(#_CD,#DURATION)
  D2 = MakeSound(#__D,#DURATION)
  Dd2= MakeSound(#_DD,#DURATION)
  E2 = MakeSound(#__E,#DURATION)
  F2 = MakeSound(#__F,#DURATION)
  Fd2= MakeSound(#_FD,#DURATION)
  G2 = MakeSound(#__G,#DURATION)
  Gd2= MakeSound(#_GD,#DURATION)
  A2 = MakeSound(#__A,#DURATION)
  Ad2= MakeSound(#_AD,#DURATION)
  B2 = MakeSound(#__B,#DURATION)
 
  C3 = MakeSound(#__C*2,#DURATION)
  Cd3= MakeSound(#_CD*2,#DURATION)
  D3 = MakeSound(#__D*2,#DURATION)
  Dd3= MakeSound(#_DD*2,#DURATION)
  E3 = MakeSound(#__E*2,#DURATION)
  F3 = MakeSound(#__F*2,#DURATION)
  Fd3= MakeSound(#_FD*2,#DURATION)
  G3 = MakeSound(#__G*2,#DURATION)
  Gd3= MakeSound(#_GD*2,#DURATION)
  A3 = MakeSound(#__A*2,#DURATION)
  Ad3= MakeSound(#_AD*2,#DURATION)
  B3 = MakeSound(#__B*2,#DURATION)
 
  C4 = MakeSound(#__C*3,#DURATION)
  Cd4= MakeSound(#_CD*3,#DURATION)
  D4 = MakeSound(#__D*3,#DURATION)
  Dd4= MakeSound(#_DD*3,#DURATION)
  E4 = MakeSound(#__E*3,#DURATION)
  F4 = MakeSound(#__F*3,#DURATION)
  Fd4= MakeSound(#_FD*3,#DURATION)
  G4 = MakeSound(#__G*3,#DURATION)
  Gd4= MakeSound(#_GD*3,#DURATION)
  A4 = MakeSound(#__A*3,#DURATION)
  Ad4= MakeSound(#_AD*3,#DURATION)
  B4 = MakeSound(#__B*3,#DURATION)
 
  C5 = MakeSound(#__C*4,#DURATION)
  Cd5= MakeSound(#_CD*4,#DURATION)
  D5 = MakeSound(#__D*4,#DURATION)
  Dd5= MakeSound(#_DD*4,#DURATION)
  E5 = MakeSound(#__E*4,#DURATION)
  F5 = MakeSound(#__F*4,#DURATION)
  Fd5= MakeSound(#_FD*4,#DURATION)
  G5 = MakeSound(#__G*4,#DURATION)
  Gd5= MakeSound(#_GD*4,#DURATION)
  A5 = MakeSound(#__A*4,#DURATION)
  Ad5= MakeSound(#_AD*4,#DURATION)
  B5 = MakeSound(#__B*4,#DURATION)
 
  C6 = MakeSound(#__C*5,#DURATION)
  Cd6= MakeSound(#_CD*5,#DURATION)
  D6 = MakeSound(#__D*5,#DURATION)
  Dd6= MakeSound(#_DD*5,#DURATION)
  E6 = MakeSound(#__E*5,#DURATION)
  F6 = MakeSound(#__F*5,#DURATION)
  Fd6= MakeSound(#_FD*5,#DURATION)
  G6 = MakeSound(#__G*5,#DURATION)
  Gd6= MakeSound(#_GD*5,#DURATION)
  A6 = MakeSound(#__A*5,#DURATION)
  Ad6= MakeSound(#_AD*5,#DURATION)
  B6 = MakeSound(#__B*5,#DURATION)
EndProcedure

Procedure.i getNote(note.s)
Protected valnote.i

  Select note
    Case "---": valnote = -1

    Case "C2" : valnote = C2
    Case "C#2": valnote = Cd2
    Case "D2" : valnote = D2
    Case "D#2": valnote = Dd2
    Case "E2" : valnote = E2
    Case "F2" : valnote = F2
    Case "F#2": valnote = Fd2
    Case "G2" : valnote = G2
    Case "G#2": valnote = Gd2
    Case "A2" : valnote = A2
    Case "A#2": valnote = Ad2
    Case "B2" : valnote = B2

    Case "C3" : valnote = C3
    Case "C#3": valnote = Cd3
    Case "D3" : valnote = D3
    Case "D#3": valnote = Dd3
    Case "E3" : valnote = E3
    Case "F3" : valnote = F3
    Case "F#3": valnote = Fd3
    Case "G3" : valnote = G3
    Case "G#3": valnote = Gd3
    Case "A3" : valnote = A3
    Case "A#3": valnote = Ad3
    Case "B3" : valnote = B3

    Case "C4" : valnote = C4
    Case "C#4": valnote = Cd4
    Case "D4" : valnote = D4
    Case "D#4": valnote = Dd4
    Case "E4" : valnote = E4
    Case "F4" : valnote = F4
    Case "F#4": valnote = Fd4
    Case "G4" : valnote = G4
    Case "G#4": valnote = Gd4
    Case "A4" : valnote = A4
    Case "A#4": valnote = Ad4
    Case "B4" : valnote = B4

    Case "C5" : valnote = C5
    Case "C#5": valnote = Cd5
    Case "D5" : valnote = D5
    Case "D#5": valnote = Dd5
    Case "E5" : valnote = E5
    Case "F5" : valnote = F5
    Case "F#5": valnote = Fd5
    Case "G5" : valnote = G5
    Case "G#5": valnote = Gd5
    Case "A5" : valnote = A5
    Case "A#5": valnote = Ad5
    Case "B5" : valnote = B5

    Case "C6" : valnote = C6
    Case "C#6": valnote = Cd6
    Case "D6" : valnote = D6
    Case "D#6": valnote = Dd6
    Case "E6" : valnote = E6
    Case "F6" : valnote = F6
    Case "F#6": valnote = Fd6
    Case "G6" : valnote = G6
    Case "G#6": valnote = Gd6
    Case "A6" : valnote = A6
    Case "A#6": valnote = Ad6
    Case "B6" : valnote = B6
  EndSelect

  ProcedureReturn valnote
EndProcedure

InitSound()
InitInstrument()

Global note1.i, note2.i, note3.i, note4.i
Global NewList channel.TNOTE()

Restore partition
Read.s tmp$
While tmp$ <> "END"
  Read.s tmp1$
  Read.s tmp2$
  Read.s tmp3$

  AddElement(channel())
    channel()\note1  = tmp$
    channel()\note2  = tmp1$
    channel()\note3  = tmp2$
    channel()\note4  = tmp3$
  Read.s tmp$
Wend

OpenConsole()
duree = 1

ForEach channel()
  note1 = getNote(channel()\note1)
  note2 = getNote(channel()\note2)
  note3 = getNote(channel()\note3)
  note4 = getNote(channel()\note4)

  PrintN(LSet(channel()\note1,3," ")+" "+LSet(channel()\note2,3," ")+" "+LSet(channel()\note3,3," ")+" "+LSet(channel()\note4,3," "))

  If note1 >= 0
    PlaySound(note1,#PB_Sound_MultiChannel)
  EndIf

  If note2 >= 0
    PlaySound(note2,#PB_Sound_MultiChannel)
  EndIf

  If note3 >= 0
    PlaySound(note3,#PB_Sound_MultiChannel)
  EndIf

  If note4 >= 0
    PlaySound(note4,#PB_Sound_MultiChannel)
  EndIf

  Delay(#DURATION*duree)
Next

Print("Hit a key"):Input()
CloseConsole()
End

DataSection
  partition:


;           LH    RH    LH    RH
Data.s "---","---","---","---"
Data.s "---","---","E3","---"
Data.s "---","---","---","---"
Data.s "---","---","E3","---"
Data.s "---","---","---","---"
Data.s "---","---","E3","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","C3","---"
Data.s "---","---","---","---"
Data.s "---","---","E3","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","G3","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","G2","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","C3","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","G2","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","E2","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","A2","---","---"
Data.s "---","---","---","---"
Data.s "---","B2","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","A2","---","---"
Data.s "---","---","---","---"
Data.s "---","A2","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","G2","---","---"
Data.s "---","---","---","---"
Data.s "---","---","E3","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","G3","---"
Data.s "---","---","---","---"
Data.s "---","---","A3","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","F3","---"
Data.s "---","---","---","---"
Data.s "---","---","G3","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","E3","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","C3","---"
Data.s "---","---","---","---"
Data.s "---","---","D3","---"
Data.s "---","---","---","---"
Data.s "---","B2","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","C3","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","G2","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","E2","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","A2","---","---"
Data.s "---","---","---","---"
Data.s "---","B2","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","A2","---","---"
Data.s "---","---","---","---"
Data.s "---","A2","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","G2","---","---"
Data.s "---","---","---","---"
Data.s "---","---","E3","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","G3","---"
Data.s "---","---","---","---"
Data.s "---","---","A3","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","F3","---"
Data.s "---","---","---","---"
Data.s "---","---","G3","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","E3","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","C3","---"
Data.s "---","---","---","---"
Data.s "---","---","D3","---"
Data.s "---","---","---","---"
Data.s "---","B2","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","G3","---"
Data.s "---","---","---","---"
Data.s "---","---","F3","---"
Data.s "---","---","---","---"
Data.s "---","---","F3","---"
Data.s "---","---","---","---"
Data.s "---","---","D3","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","E3","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","G2","---","---"
Data.s "---","---","---","---"
Data.s "---","A2","---","---"
Data.s "---","---","---","---"
Data.s "---","---","C3","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","A2","---","---"
Data.s "---","---","---","---"
Data.s "---","---","C3","---"
Data.s "---","---","---","---"
Data.s "---","---","D3","---"
Data.s "---","---","---","---"
Data.s "---","---","G3","---"
Data.s "---","---","---","---"
Data.s "---","---","F3","---"
Data.s "---","---","---","---"
Data.s "---","---","F3","---"
Data.s "---","---","---","---"
Data.s "---","---","D3","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","E3","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","C4"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","C4"
Data.s "---","---","---","---"
Data.s "---","---","---","C4"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","G3","---"
Data.s "---","---","---","---"
Data.s "---","---","F3","---"
Data.s "---","---","---","---"
Data.s "---","---","F3","---"
Data.s "---","---","---","---"
Data.s "---","---","D3","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","E3","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","G2","---","---"
Data.s "---","---","---","---"
Data.s "---","A2","---","---"
Data.s "---","---","---","---"
Data.s "---","---","C3","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","A2","---","---"
Data.s "---","---","---","---"
Data.s "---","---","C3","---"
Data.s "---","---","---","---"
Data.s "---","---","D3","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","D3","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","D3","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","C3","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","C3","---"
Data.s "---","---","---","---"
Data.s "---","---","C3","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","C3","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","C3","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","D3","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","E3","---"
Data.s "---","---","---","---"
Data.s "---","---","C3","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","A2","---","---"
Data.s "---","---","---","---"
Data.s "---","G2","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","C3","---"
Data.s "---","---","---","---"
Data.s "---","---","C3","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","C3","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","C3","---"
Data.s "---","---","---","---"
Data.s "---","---","D3","---"
Data.s "---","---","---","---"
Data.s "---","---","E3","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","C3","---"
Data.s "---","---","---","---"
Data.s "---","---","C3","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","C3","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","C3","---"
Data.s "---","---","---","---"
Data.s "---","---","D3","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","E3","---"
Data.s "---","---","---","---"
Data.s "---","---","C3","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","A2","---","---"
Data.s "---","---","---","---"
Data.s "---","G2","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","E3","---"
Data.s "---","---","---","---"
Data.s "---","---","E3","---"
Data.s "---","---","---","---"
Data.s "---","---","E3","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","C3","---"
Data.s "---","---","---","---"
Data.s "---","---","E3","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","G3","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","G2","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","E3","---"
Data.s "---","---","---","---"
Data.s "---","---","C3","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","G2","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","G2","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","A2","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","F3","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","F3","---"
Data.s "---","---","---","---"
Data.s "---","A2","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","B2","---","---"
Data.s "---","---","---","---"
Data.s "---","---","A3","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","A3","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","A3","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","G3","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","F3","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","E3","---"
Data.s "---","---","---","---"
Data.s "---","---","C3","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","A2","---","---"
Data.s "---","---","---","---"
Data.s "---","G2","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","E3","---"
Data.s "---","---","---","---"
Data.s "---","---","C3","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","G2","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","G2","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","A2","---","---"
Data.s "---","---","---","---"
Data.s "---","---","F3","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","F3","---"
Data.s "---","---","---","---"
Data.s "---","A2","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","B2","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","F3","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","F3","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","F3","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","E3","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","D3","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","C3","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","C3","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","G2","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","E2","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","A2","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","B2","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","A2","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","G2","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","A2","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","G2","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","E2","---","---"
Data.s "---","---","---","---"
Data.s "---","D2","---","---"
Data.s "---","---","---","---"
Data.s "---","E2","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"
Data.s "---","---","---","---"


    
    Data.s "END"
EndDataSection
Avatar de l’utilisateur
flaith
Messages : 1487
Inscription : jeu. 07/avr./2005 1:06
Localisation : Rennes
Contact :

Message par flaith »

Pas mal :D

Ajout de ZELDA

Code : Tout sélectionner

;-zelda:
zelda:
    Data.i 50,1
; Legend Of Zelda Twilight Princess
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "A4" ,"---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "E4" ,"---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "E4" ,"---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "A4" ,"---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "G4" ,"---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "F4" ,"---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "G4" ,"---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "A4" ,"---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "E4" ,"---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "E4" ,"---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "A4" ,"---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "G4" ,"---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "F4" ,"---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "G4" ,"---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "A4" ,"---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "D4" ,"---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "D4" ,"---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "A4" ,"---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "G4" ,"---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "F4" ,"---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "E4" ,"---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "C4" ,"---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "D4" ,"---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "A4" ,"---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "F4" ,"---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "F4" ,"---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","C5" ,"---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "E4" ,"---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "D4" ,"---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "E4" ,"---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "A3" ,"---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "A#3","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","C4" ,"---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","D4" ,"---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","E4" ,"---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","F4" ,"---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","G4" ,"---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","A4" ,"---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","D4" ,"---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","D4" ,"---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","A4" ,"---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","G4" ,"---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","F4" ,"---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","E4" ,"---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "C4" ,"---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "D4" ,"---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "E4" ,"---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "F4" ,"---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "E4" ,"---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "F4" ,"---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "G4" ,"---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "F4" ,"---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "G4" ,"---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","C5" ,"---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "G4" ,"---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "F4" ,"---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "G4" ,"---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","C5" ,"---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","C5" ,"---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","D5" ,"---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "D4" ,"---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "A4" ,"---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "E4" ,"---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "D4" ,"---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "A4" ,"---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "E4" ,"---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "D4" ,"---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "A4" ,"---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "F4" ,"---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "G4" ,"---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "F4" ,"---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "E4" ,"---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;
    Data.s "---","---","---","---"    ;

    Data.s "END"
Anonyme

Message par Anonyme »

Héhé , ca me rappelle l'époque des tracker ( FT209 ) :D
j'vais bricolé un gadget :D
Avatar de l’utilisateur
flaith
Messages : 1487
Inscription : jeu. 07/avr./2005 1:06
Localisation : Rennes
Contact :

Message par flaith »

Cpl.Bator a écrit :Héhé , ca me rappelle l'époque des tracker ( FT209 ) :D
j'vais bricolé un gadget :D
Cool :mrgreen:
Anonyme

Message par Anonyme »

flaith a écrit :
Cpl.Bator a écrit :Héhé , ca me rappelle l'époque des tracker ( FT209 ) :D
j'vais bricolé un gadget :D
Cool :mrgreen:
Voilà ce que ca donne pour le moment :

Code : Tout sélectionner





Structure TrackerRect
x.i : y.i
EndStructure

Structure TrackerValue
  IsSelected.b
  SoundID.i
  ;Filters.i ; on ajoute se que l'on veut
EndStructure


Structure Tracker_Track
  Value.TrackerValue[8]
EndStructure

Structure TrackerGadget

  TrackerEntry.TrackerValue[257] ; Liens vers la banque de son
  SelectedLine.b[257] ; Pour la multiselection
  
  NbTrack.c
  
  GadgetSize.TrackerRect

  
  Image.i
  Surface.i
  ScrollArea.i
  Thread.i
  WindowParent.i
  
  BackgroundColor.i
  ForegroundColor.i
  SelectedLineColor.i
  SelectedItemColor.i

EndStructure


Procedure TrackerGadgetThread(*Tracker.TrackerGadget)
  Repeat
    With *Tracker
       
       
       
       
       
       StartDrawing(ImageOutput(\Image))
       
       Marge = 2
       TrackSize = ((\GadgetSize\x-21-40) / \NbTrack) 
       
       
       ;Dessin du Fond
       Box(0,0,\GadgetSize\x ,5120,\BackgroundColor)
                        
                        
      For i =  0 To \NbTrack -1                 
                        
          For Sector = 0 To 255
              
            
              
              Line(0,Sector*20,\GadgetSize\x ,0,RGB(192,192,192))
              Hexa$ =  RSet(Hex(Sector,2),2,"0")
              DrawingMode(#PB_2DDrawing_Transparent)
              DrawText(0,(Sector*20)+Marge,Hexa$,\ForegroundColor)
              DrawText(\GadgetSize\x-40,(Sector*20)+Marge,Hexa$,\ForegroundColor)
              
              
              ;Selection a la souris
              
              MouseGadgetX = (WindowMouseX(\WindowParent) - GadgetX(\ScrollArea)) + GetGadgetAttribute(\ScrollArea,#PB_ScrollArea_X)
              MouseGadgetY = (WindowMouseY(\WindowParent) - GadgetY(\ScrollArea)) + GetGadgetAttribute(\ScrollArea,#PB_ScrollArea_Y)
              
;                 ; La ligne est selectionné
;               If \SelectedLine[Sector] = #True
;                       Box(24,2,\GadgetSize\x-4-21-40,16,\SelectedLineColor)
;               EndIf
              
              If MouseGadgetX > TrackSize*i+20+2 And MouseGadgetX < (TrackSize*i+20+2)+TrackSize-4 And MouseGadgetY > Sector*20+2 And MouseGadgetY < (Sector*20+2)+16
                           Box( TrackSize*i+20+2,Sector*20+2,TrackSize-4,16,$FF0000)
              EndIf
              
              
              
              
              
              
              
          Next 
       Next 
       
       
       For i =  0 To \NbTrack                  
           ; Dessin du séparateur de track
          Box( 20 + (i*TrackSize),0,Marge,5120,RGB(192,192,192))
       Next 
       
     

          
          
          
          
        StopDrawing()
        
        
        
        
      SetGadgetState(\Surface,ImageID(\Image))
      EndWith
      
    Delay(10)
 ForEver
EndProcedure




Procedure.i TrackerGadget(x,y,width,height,NbTrack)

*Tracker.TrackerGadget = AllocateMemory(SizeOf(TrackerGadget))
  If *Tracker = #Null
    MessageRequester("Error","Can't make Tracker Gadget , not enough memory")
      End
        EndIf 

    With *Tracker


      \Image         = CreateImage(#PB_Any,width,5120)
      \ScrollArea  = ScrollAreaGadget(#PB_Any,x,y,width,height,width-21,5120)
      \Surface      = ImageGadget(#PB_Any,0,0,width,5100,ImageID(\Image)) : CloseGadgetList()
      \WindowParent = GetActiveWindow()

      \GadgetSize\x = width 
      \GadgetSize\y = height
      
      \BackgroundColor = $0
      \ForegroundColor  = $00AA00
      \SelectedLineColor       = $004400
      \SelectedItemColor       = $884400
      \NbTrack                 = NbTrack
      
      \SelectedLine[1] = #True
      
      \Thread = CreateThread(@TrackerGadgetThread(),*Tracker)

    EndWith
    
    
ProcedureReturn *Tracker
EndProcedure




OpenWindow(0,0,0,1024,768,"PureTracker")
; SetWindowColor(0,$AA0011)

TrackerGadget(10,412,1004,346,8)



Repeat
event = WindowEvent()
SmartWindowRefresh(0,1)

Delay(10)
Until event = #PB_Event_CloseWindow
Avatar de l’utilisateur
Ar-S
Messages : 9477
Inscription : dim. 09/oct./2005 16:51
Contact :

Message par Ar-S »

Argh Cpl.Bator, ENORME :P :P :P :P :P
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Anonyme

Message par Anonyme »

Flaith , peut tu me donner une liste des notes complètes ?

de ce style :

Image


là mon gadget commence a avoir de la gueule :D
Faut que je lui mette des notes dans le c.. pour voir les bugs :D
Anonyme

Message par Anonyme »

A B C D E F G
LA SI DO RE MI FA SOL
j'ai trouvé ca , mais comme je suis une quiche en solfège , dès fois on voit :

G#5 ou G5 le 5 & le # Correspondent à quoi exactement ?
Avatar de l’utilisateur
flaith
Messages : 1487
Inscription : jeu. 07/avr./2005 1:06
Localisation : Rennes
Contact :

Message par flaith »

Cpl.Bator a écrit :
A B C D E F G
LA SI DO RE MI FA SOL
j'ai trouvé ca , mais comme je suis une quiche en solfège , dès fois on voit :

G#5 ou G5 le 5 & le # Correspondent à quoi exactement ?
prend le clavier d'un piano, les touche blanches sont C D E F G A B
les touches noires C# D# - F# G# A# -

Donc C est DO, et C# est DO dièse

et les chiffres correspondent aux octaves ou, si tu préfères la partie du piano, le + a gauche est l'octave 1, jusqu'à l'octave 6

Code : Tout sélectionner

|--- Octave 1 ---|--- Octave 2 ---| ... etc
   # #   # # #      # #   # # #
  C D E F G A B    C D E F G A B
Image

:D
Anonyme

Message par Anonyme »

Manque pas des touches sur ton piano ? le mi-dièse ? il fait la sieste ? :D

Merci pour ta lanterne ! :)
Répondre