Looking for MIDI-Library
Looking for MIDI-Library
Im looking for a PureBasic Midi-Library to control my synthesizer. Any hints?
Config: PB 4.50beta2 and iMac 10.5.8 Intel
Config: PB 4.50beta2 and iMac 10.5.8 Intel
PureBasic 4.50 beta2 (Mac OS X - Intel)
Computer: iMac (24", Dual Core Intel, 3GB RAM, 300 GB HD, DVD) mit Mac OS X Intel 10.5.8 (Leopard)
Computer: iMac (24", Dual Core Intel, 3GB RAM, 300 GB HD, DVD) mit Mac OS X Intel 10.5.8 (Leopard)
Re: Looking for MIDI-Library
my lib ! 
http://michel.dobro.free.fr/download.php?view.18
sample : Melodie and chords ! (with my lib "midi_lib")
------------------------------------------------------------------------------
For play chord
Midi_play_chord(instrument general-midi,name_chord$,time$,octave,arpegio,velocitydown ,velocityup,speed)
name_chord$: "c_maj" or "c_min" c#_maj" or "c#_min" (c,d,e,f,g,a)
time$:"ronde","blanche","noire","croche","double_croche","triple_croche","quadruple_croche"
velocitydown/up (0 to 127)
Speed is a speed of total music (60,120,150...etc)
--------------------------------------------------------------------------------------
for play note
midi_play(#instrument,name_note$,time$,octave,velocitydown,velocityup,speed)
name_note$ :"c"/"c#"/"d"/"d#"/"e"/"f"/"f#"/"g"/"g#"/"a"/"a#"/"b"
time$::ronde","blanche","noire","croche","double_croche","triple_croche","quadruple_croche"
octave (0 to 6)
velocitydown/up (0 to 127)
Speed is a speed of total music (60,120,150...etc)
--------------------------------------------------------------------------------------
for Drummer
midi_batterie (name_of_element_of_drum,time$,velocitydown,velocityup,speed)
time$::ronde","blanche","noire","croche","double_croche","triple_croche","quadruple_croche"
velocitydown/up (0 to 127)
Speed is a speed of total music (60,120,150...etc)
--------------------------------------------------------------------------------------
my library also contains functions
to read files midifile
and mp3

http://michel.dobro.free.fr/download.php?view.18
sample : Melodie and chords ! (with my lib "midi_lib")
; ***********************************************************************************************************
Enumeration
#Acoustic_Grand_Piano
#Bright_Acoustic_Piano
#Electric_Grand_Piano
#Honky_tonk_Piano
#Electric_Piano_1
#Electric_Piano_2
#Harpsichord
#Clavinette
#celesta
#glockenspiel
#music_box
#vibraphone
#marimba
#xylophone
#Tubular_Bells
#dulcimer
#Drawbar_Organ
#Percussive_Organ
#rock_organ
#church_organ
#reed_organ
#Accordion
#harmonica
#Tango_Accordion
#Acoustic_Guitar_nylon
#Acoustic_Guitar_steel
#Electric_Guitar_jazz
#Electric_Guitar_clean
#Electric_Guitar_muted
#Overdriven_Guitar
#Distortion_Guitar
#Guitar_harmonics
#Acoustic_bass
#Electric_Bass_finger
#Electric_Bass_pick
#fretless_bass
#Slap_bass_1
#Slap_bass_2
#Synth_bass_1
#Synth_bass_2
#violin
#viola
#cello
#Contrabass
#Tremolo_Strings
#Pizzicato_Strings
#Orchestral_Harp
#timpani
#String_Ensemble_1
#String_Ensemble_2
#SynthStrings_1
#SynthStrings_2
#choir_Aahs
#voice_Oohs
#Synth_voice
#orchestra_hit
#Trumpet
#trombone
#tuba
#muted_Trumpet
#french_horn
#Brass_Section
#SynthBrass_1
#SynthBrass_2
#Soprano_Sax
#Alto_Sax
#Tenor_Sax
#Baritone_Sax
#oboe
#english_horn
#Bassoon
#Clarinet
#piccolo
#flute
#recorder
#Pan_Flute ;66
#blown_bottle
#shakuhachi
#whistle
#ocarina ;70
#Lead_1_square
#Lead_2_sawtooth
#Lead_3_calliope
#Lead_4_chiff
#Lead_5_charang
#Lead_6_voice
#Lead_7_fifths
#Lead_8_bass_Lead
#Pad_1_newage
#Pad_2_warm
#Pad_3_polysynth
#Pad_4_choir
#Pad_5_bowed
#Pad_6_metallic
#Pad_7_halo
#Pad_8_sweep
#FX_1_rain
#FX_2_soundtrack ;98
#FX_3_crystal
#FX_4_atmosphere ;100
#FX_5_brightnes ;101
#FX_6_goblins ;102
#FX_7_echoes
#FX_8_scifi
#sitar
#banjo ;106
#Shamisens
#koto
#Kalimba
#bag_pipe
#fiddle
#shanai
#tinkle_bell
#agogo
#steel_drums
#Wood_block
#taiko_Drum
#Melodic_Tom ; 118
#Synth_Drumer
#Reverse_Cymbal ;120
#Guitar_Fret_noise ;121
#breath_noise ;122
#seashore ;123
#bird_Tweet ;124
#Telephone_Ring ;125
#Helicopt ;126
#applause ;127
#Gunshot ;128
EndEnumeration
Enumeration 35
#Acoustic_Bass_Drum
#Bass_Drum_1
#Side_Stick
#Acoustic_Snare
#Hand_Clap
#Electric_Snare
#Low_Floor_Tom
#Closed_Hi_Hat
#High_Floor_Tom
#Pedal_Hi_Hat
#Low_Tom
#Open_Hi_Hat
#Low_Mid_Tom
#Hi_Mid_Tom
#Crash_Cymbal_1
#High_Tom
#Ride_Cymbal_1
#Chinese_Cymbal
#Ride_Bell
#Tambourine
#Splash_Cymbal
#Cowbell
#Crash_Cymbal_2
#Vibraslap
#Ride_Cymbal_2
#Hi_Bongo
#Low_Bongo
#Mute_Hi_Conga
#Open_Hi_Conga
#Low_Conga
#High_Timbale
#Low_Timbale
#High_Agogo
#Low_Agogo
#Cabasa
#Maracas
#Short_Whistle
#Long_Whistle
#Short_Guiro
#Long_Guiro
#Claves
#Hi_Wood_Block
#Low_Wood_Block
#Mute_Cuica
#Open_Cuica
#Mute_Triangle
#Open_Triangle
EndEnumeration
; ******** initialisation obligatoire ***********
MIDIOpen() ; ouvre le midi
Charge_Instrument_accord(0, #Acoustic_Grand_Piano ) : #piano =0 ; defini le canal, et l'instrument utilisé
Charge_Instrument_accord(2, #String_Ensemble_1 ) : #piano2 =2 ; defini le canal, et l'instrument utilisé
Charge_Instrument_accord(3, #applause ) : #apl =3 ; defini le canal, et l'instrument utilisé
Charge_Instrument_melodie(1, #voice_Oohs ): #voix =1
vitesse=160
; *******************************************
; the aphrodites child (Rain and Tears)
; ********************************************
; pour qu'un accords sonne , il faut le faire suivre soit d'une note , soit d'une attente !
For i=1 To 2
Midi_play_chord( #piano , "c_maj" , "noire" ,4,0,127,127,vitesse) ;
Midi_batterie( #Acoustic_Bass_Drum , "" ,127,127,vitesse)
Midi_play( #voix , "e" , "blanche" ,6,127,127,vitesse)
Midi_play( #voix , "C" , "blanche" ,6,127,127,vitesse)
Midi_batterie( #Pedal_Hi_Hat , "" ,127,127,vitesse)
Midi_play_chord( #piano , "g_maj" , "blanche" ,4,0,127,127,vitesse)
Midi_batterie( #Acoustic_Bass_Drum , "" ,127,127,vitesse)
Midi_play( #voix , "g" , "blanche" ,6,127,127,vitesse)
Midi_play( #voix , "d" , "blanche" ,5,127,127,vitesse)
Midi_play_chord( #piano , "a_min" , "blanche" ,4,0,127,127,vitesse)
Midi_batterie( #Acoustic_Bass_Drum , "" ,127,127,vitesse)
Midi_play( #voix , "c" , "blanche" ,6,127,127,vitesse)
Midi_play( #voix , "a" , "blanche" ,6,127,127,vitesse)
Midi_play_chord( #piano , "e_min" , "blanche" ,4,0,127,127,vitesse)
Midi_batterie( #Acoustic_Bass_Drum , "" ,127,127,vitesse)
Midi_play( #voix , "E" , "blanche" ,6,127,127,vitesse)
Midi_play( #voix , "e" , "blanche" ,5,127,127,vitesse)
Midi_play_chord( #piano , "f_maj" , "blanche" ,4,0,127,127,vitesse)
Midi_batterie( #Acoustic_Bass_Drum , "" ,127,127,vitesse)
Midi_play( #voix , "c" , "blanche" ,5,127,127,vitesse)
Midi_play( #voix , "a" , "blanche" ,5,127,127,vitesse)
Midi_play_chord( #piano , "c_maj" , "blanche" ,4,0,127,127,vitesse)
Midi_batterie( #Acoustic_Bass_Drum , "" ,127,127,vitesse)
Midi_play( #voix , "c" , "blanche" ,5,127,127,vitesse)
Midi_play( #voix , "e" , "blanche" ,4,127,127,vitesse)
Midi_play_chord( #piano , "c_maj" , "blanche" ,4,0,127,127,vitesse)
Midi_batterie( #Acoustic_Bass_Drum , "" ,127,127,vitesse)
Midi_play( #voix , "e" , "noire" ,5,127,127,vitesse)
Midi_play( #voix , "f" , "noire" ,5,127,127,vitesse)
Midi_play_chord( #piano , "c_maj" , "blanche" ,4,0,127,127,vitesse)
Midi_batterie( #Acoustic_Bass_Drum , "" ,127,127,vitesse)
Midi_play( #voix , "e" , "noire" ,5,127,127,vitesse)
Midi_play( #voix , "f" , "noire" ,5,127,127,vitesse)
Midi_play( #voix , "e" , "noire" ,5,127,127,vitesse)
Midi_play_chord( #piano , "g_maj" , "blanche" ,4,0,127,127,vitesse)
Midi_batterie( #Acoustic_Bass_Drum , "" ,127,127,vitesse)
Midi_play( #voix , "g" , "croche" ,5,127,127,vitesse)
Midi_play( #voix , "f" , "croche" ,5,127,127,vitesse)
Midi_play( #voix , "e" , "noire" ,5,127,127,vitesse)
Midi_play_chord( #piano , "g_maj" , "blanche" ,4,0,127,127,vitesse)
Midi_batterie( #Acoustic_Bass_Drum , "" ,127,127,vitesse)
Midi_play( #voix , "d" , "blanche_p" ,5,127,127,vitesse)
; avec arpeges : o)
Midi_play_chord( #piano2 , "c_maj" , "blanche" ,5,1,127,127,vitesse) ;C
Midi_play( #voix , "e" , "blanche" ,6,127,127,vitesse)
Midi_play( #voix , "C" , "blanche" ,6,127,127,vitesse)
Midi_play_chord( #piano2 , "g_maj" , "blanche" ,5,1,127,127,vitesse)
Midi_play( #voix , "g" , "blanche" ,6,127,127,vitesse)
Midi_play( #voix , "d" , "blanche" ,5,127,127,vitesse)
Midi_play_chord( #piano2 , "a_min" , "blanche" ,5,1,127,127,vitesse)
Midi_play( #voix , "c" , "blanche" ,6,127,127,vitesse)
Midi_play( #voix , "a" , "blanche" ,6,127,127,vitesse)
Midi_play_chord( #piano2 , "e_min" , "blanche" ,5,1,127,127,vitesse)
Midi_play( #voix , "E" , "blanche" ,6,127,127,vitesse)
Midi_play( #voix , "e" , "blanche" ,5,127,127,vitesse)
Midi_play_chord( #piano2 , "f_maj" , "blanche" ,5,1,127,127,vitesse)
Midi_play( #voix , "c" , "blanche" ,5,127,127,vitesse)
Midi_play( #voix , "a" , "blanche" ,5,127,127,vitesse)
Midi_play_chord( #piano2 , "c_maj" , "blanche" ,5,1,127,127,vitesse)
Midi_play( #voix , "c" , "blanche" ,5,127,127,vitesse)
Midi_play( #voix , "e" , "blanche" ,4,127,127,vitesse)
Midi_play_chord( #piano2 , "c_maj" , "noire" ,4,0,127,127,vitesse)
Midi_play( #voix , "e" , "noire" ,5,127,127,vitesse)
Midi_play( #voix , "f" , "noire" ,5,127,127,vitesse)
Midi_stop_chord( #piano2 , "c_maj" ,4)
Midi_play_chord( #piano2 , "c_maj" , "noire" ,4,0,127,127,vitesse)
Midi_play( #voix , "e" , "noire" ,5,127,127,vitesse)
Midi_play( #voix , "f" , "noire" ,5,127,127,vitesse)
Midi_play( #voix , "e" , "noire" ,5,127,127,vitesse)
Midi_stop_chord( #piano2 , "c_maj" ,4)
Midi_play_chord( #piano2 , "g_maj" , "noire" ,4,0,127,127,vitesse)
Midi_play( #voix , "g" , "croche" ,5,127,127,vitesse)
Midi_play( #voix , "f" , "croche" ,5,127,127,vitesse)
Midi_play( #voix , "e" , "noire" ,5,127,127,vitesse)
Midi_stop_chord( #piano2 , "g_maj" ,4)
Midi_play_chord( #piano2 , "g_maj" , "blanche" ,4,0,127,127,vitesse)
Midi_play( #voix , "d" , "blanche" ,5,127,127,vitesse)
Midi_stop_chord( #piano2 , "g_maj" ,4)
Next i
Midi_play( #apl , "c" , "ronde" ,5,127,127,vitesse)
delay (Midi_tempo(vitesse, "ronde" ))
------------------------------------------------------------------------------
For play chord
Midi_play_chord( #piano , "c_maj" , "noire" ,4,0,127,127,vitesse) ;
Midi_play_chord(instrument general-midi,name_chord$,time$,octave,arpegio,velocitydown ,velocityup,speed)
name_chord$: "c_maj" or "c_min" c#_maj" or "c#_min" (c,d,e,f,g,a)
time$:"ronde","blanche","noire","croche","double_croche","triple_croche","quadruple_croche"
velocitydown/up (0 to 127)
Speed is a speed of total music (60,120,150...etc)
--------------------------------------------------------------------------------------
for play note
Midi_play( #voix , "e" , "blanche" ,6,127,127,vitesse)
midi_play(#instrument,name_note$,time$,octave,velocitydown,velocityup,speed)
name_note$ :"c"/"c#"/"d"/"d#"/"e"/"f"/"f#"/"g"/"g#"/"a"/"a#"/"b"
time$::ronde","blanche","noire","croche","double_croche","triple_croche","quadruple_croche"
octave (0 to 6)
velocitydown/up (0 to 127)
Speed is a speed of total music (60,120,150...etc)
--------------------------------------------------------------------------------------
for Drummer
Midi_batterie( #Acoustic_Bass_Drum , "" ,127,127,vitesse)
midi_batterie (name_of_element_of_drum,time$,velocitydown,velocityup,speed)
time$::ronde","blanche","noire","croche","double_croche","triple_croche","quadruple_croche"
velocitydown/up (0 to 127)
Speed is a speed of total music (60,120,150...etc)
--------------------------------------------------------------------------------------
my library also contains functions
to read files midifile
and mp3

Last edited by dobro on Mon May 03, 2010 6:26 pm, edited 1 time in total.
Re: Looking for MIDI-Library
and an Mp3 player with my lib 

Declare WindowCallback( windowid ,message,wParam,lParam)
Declare OpenWindow_Window_0()
Enumeration
#Window_0
EndEnumeration
Enumeration
#Button_play
#Button_pause
#Button_stop
#TrackBar
#Titre
#Button_charge
#TrackBar_volume
EndEnumeration
Enumeration
#Font_Titre
EndEnumeration
Global pause,volume,pos,play,taille,change_position,track
OpenWindow_Window_0()
; ******************** Boucle principale ***********************
Repeat
Event= waitwindowevent (10)
Select Event
;Case #WM_LBUTTONUP ; on a relaché le bouton gauche de la souris
Case #PB_Event_Gadget
event_gadget= eventgadget ()
Select event_gadget
Case #Button_play
If track=1 ; on a touché au trackbar de position
track=0
mp3_Play_file_segment(change_position,taille) ; on lance la lecture a la position recuperé plus bas
Else ; c'est une lecture normale
If pause=1 ; on a fait une pause
mp3_Resume_file() ; on relance la lecture apres pause
pause=0
EndIf
mp3_Play_file()
mp3_Set_volume_file(volume)
EndIf
play=1
Case #Button_pause
If pause=0: pause=1: Else :pause=0: EndIf ; bouton poussoir
If pause=1
mp3_Pause_file() ; on met en pause
Else
mp3_Play_file()
EndIf
Case #Button_stop
mp3_Stop_file() ; on stop la lecture
mp3_Free()
Case #TrackBar
track=1 :play=0
change_position= getgadgetstate ( #TrackBar ) ; recup la position du trackbar
mp3_Stop_file() ; stop la musique
Case #Titre
Case #Button_charge
mp3_Stop_file() ; on stop une lecture precedente (si a lieu)
mp3_Free() ; libere la memoire
File.s= openfilerequester ( "charger un fichier midifile" , "c:\" , "*.mp3" ,1)
mp3_load_file(File.s) ; noms de fichier
taille=mp3_Size () ; la taille du fichier en milliseconde
setgadgetattribute ( #TrackBar , #PB_TrackBar_Maximum ,taille)
Case #TrackBar_volume
volume= getgadgetstate ( #TrackBar_volume )
mp3_Set_volume_file(volume)
EndSelect
Case #PB_Event_CloseWindow
Select eventwindow ()
Case #Window_0
closewindow ( #Window_0 )
Break²
EndSelect
EndSelect
If play=1 ; ça joue
pos=mp3_position() ; recupe la position de la lecture
Debug str (pos)+ " / " + str (taille)
setgadgetstate ( #TrackBar ,pos) ; change la position du tracbar
EndIf
ForEver
; **********************************************
; ***************** Zone des Procedures *************************************
; *************************************************************************
Procedure OpenWindow_Window_0()
If openwindow ( #Window_0 , 390, 142, 400, 125, "exemple by Dobro" , #PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget|#PB_Window_TitleBar )
buttongadget ( #Button_play , 15, 45, 55, 35, "play" )
buttongadget ( #Button_pause , 75, 45, 55, 35, "pause" )
buttongadget ( #Button_stop , 135, 45, 55, 35, "stop" )
trackbargadget ( #TrackBar , 15, 90, 355, 20, 0,taille, #PB_TrackBar_Ticks )
textgadget ( #Titre , 15, 5, 250, 35, "Player MP3" )
buttongadget ( #Button_charge , 335, 10, 55, 35, "charge" )
trackbargadget ( #TrackBar_volume , 375, 55, 20, 60, 0, 1000, #PB_TrackBar_Ticks|#PB_TrackBar_Vertical )
setgadgetstate ( #TrackBar_volume ,1000/2):volume=1000/2
setgadgetfont ( #Titre , loadfont ( #Font_Titre , "Comic Sans MS" , 14, 16))
EndIf
EndProcedure
Re: Looking for MIDI-Library
and an Midifile player with my lib 

Declare WindowCallback( windowid ,message,wParam,lParam)
Declare OpenWindow_Window_0()
Enumeration
#Window_0
EndEnumeration
Enumeration
#Button_play
#Button_pause
#Button_stop
#TrackBar
#Titre
#Button_charge
#TrackBar_tempo
#Titre1
#tempo
EndEnumeration
Enumeration
#Font_Titre
EndEnumeration
Global pause,tempo,pos,play,taille,change_position,track
OpenWindow_Window_0()
; ******************** Boucle principale ***********************
Repeat
Event= waitwindowevent (10)
Select Event
;Case #WM_LBUTTONUP ; on a relaché le bouton gauche de la souris
Case #PB_Event_Gadget
event_gadget= eventgadget ()
Select event_gadget
Case #Button_play
If track=1 ; on a touché au trackbar de position
track=0
midi_Play_file_segment(change_position,taille) ; on lance la lecture a la position recuperé plus bas
Else ; c'est une lecture normale
If pause=1 ; on a fait une pause
midi_Resume_file() ; on relance la lecture apres pause
pause=0
EndIf
midi_Play_file()
midi_Set_Tempo_file(tempo)
EndIf
play=1
Case #Button_pause
If pause=0: pause=1: Else :pause=0: EndIf ; bouton poussoir
If pause=1
midi_Pause_file() ; on met en pause
Else
midi_Play_file()
EndIf
Case #Button_stop
midi_Stop_file() ; on stop la lecture
midi_Free()
Case #TrackBar
track=1 :play=0
change_position= getgadgetstate ( #TrackBar ) ; recup la position du trackbar
midi_Stop_file() ; stop la musique
Case #Titre
Case #Button_charge
midi_Stop_file() ; on stop une lecture precedente (si a lieu)
midi_Free() ; libere la memoire
File.s= openfilerequester ( "charger un fichier midifile" , "c:\" , "*.mid" ,1)
midi_Load_file(File.s) ; noms de fichier
taille=midi_Size () ; la taille du fichier en milliseconde
setgadgetattribute ( #TrackBar , #PB_TrackBar_Maximum ,taille)
tempo=midi_get_Tempo_file() ; recupere le tempo du morceau
Debug "tempo= " + str (tempo)
setgadgettext ( #tempo , str (tempo))
Case #TrackBar_tempo
tempo= getgadgetstate ( #TrackBar_tempo )
midi_Set_Tempo_file(tempo)
setgadgettext ( #tempo , str (tempo))
EndSelect
Case #PB_Event_CloseWindow
Select eventwindow ()
Case #Window_0
closewindow ( #Window_0 )
Break
EndSelect
EndSelect
If play=1 ; ça joue
pos=midi_position() ; recupe la position de la lecture
Debug str (pos)+ " / " + str (taille)
setgadgetstate ( #TrackBar ,pos) ; change la position du tracbar
EndIf
ForEver
; **********************************************
; ***************** Zone des Procedures *************************************
; *************************************************************************
Procedure OpenWindow_Window_0()
If openwindow ( #Window_0 , 390, 142, 400, 125, "exemple by Dobro" , #PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget|#PB_Window_TitleBar )
buttongadget ( #Button_play , 15, 45, 55, 35, "play" )
buttongadget ( #Button_pause , 75, 45, 55, 35, "pause" )
buttongadget ( #Button_stop , 135, 45, 55, 35, "stop" )
trackbargadget ( #TrackBar , 15, 90, 355, 20, 0,taille, #PB_TrackBar_Ticks )
textgadget ( #Titre , 15, 5, 250, 35, "Player Midifile" )
textgadget ( #Titre1 , 220, 45, 250, 35, "Tempo :" ): textgadget ( #tempo ,270, 45, 250, 35, "" )
buttongadget ( #Button_charge , 335, 10, 55, 35, "charge" )
trackbargadget ( #TrackBar_tempo , 375, 55, 20, 60, 0, 250, #PB_TrackBar_Ticks|#PB_TrackBar_Vertical )
setgadgetstate ( #TrackBar_tempo ,250/2):tempo=250/2
setgadgetfont ( #Titre , loadfont ( #Font_Titre , "Comic Sans MS" , 14, 16))
EndIf
EndProcedure
Re: Looking for MIDI-Library
Hi Dobro,
I can't find your MIDI library at your link - is it still available?
hanks!
I can't find your MIDI library at your link - is it still available?
hanks!
Re: Looking for MIDI-Library
Brilliant, thank you very much!
- electrochrisso
- Addict
- Posts: 989
- Joined: Mon May 14, 2007 2:13 am
- Location: Darling River
Re: Looking for MIDI-Library
Hi dobro, http://michel.dobro.free.fr/download.php?view.18 not working for me. 

PureBasic! Purely the best 

-
- Enthusiast
- Posts: 113
- Joined: Sun Jul 29, 2012 2:51 pm
Re: Looking for MIDI-Library
Anyone know where this went. I am looking to create virtual instruments and midi apps with PureBasic. Can this be done?
Mike
Mike
Re: Looking for MIDI-Library
electrochrisso wrote:Hi dobro, http://michel.dobro.free.fr/download.php?view.18 not working for me.
ho sorry , it should run now

- electrochrisso
- Addict
- Posts: 989
- Joined: Mon May 14, 2007 2:13 am
- Location: Darling River
-
- Enthusiast
- Posts: 113
- Joined: Sun Jul 29, 2012 2:51 pm
Re: Looking for MIDI-Library
Thank you.
Mike
Mike
-
- Enthusiast
- Posts: 113
- Joined: Sun Jul 29, 2012 2:51 pm
Re: Looking for MIDI-Library
I know you included an installer, but it's in french and I don't speak it. I tried to translate it - still don't get it. What is the installer looking for? If it's looking for the PureBasic folder, I did that and it said, I think, that the installation was terminated.
So, how do I install this lib?
Mike
So, how do I install this lib?
Mike