Page 1 of 2

Looking for MIDI-Library

Posted: Sat Apr 10, 2010 12:07 pm
by Animal
Im looking for a PureBasic Midi-Library to control my synthesizer. Any hints?

Config: PB 4.50beta2 and iMac 10.5.8 Intel

Re: Looking for MIDI-Library

Posted: Mon May 03, 2010 2:01 pm
by Niffo
+1

Re: Looking for MIDI-Library

Posted: Mon May 03, 2010 6:14 pm
by dobro
my lib ! :)

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
;)

Re: Looking for MIDI-Library

Posted: Mon May 03, 2010 6:20 pm
by dobro
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

Posted: Mon May 03, 2010 6:21 pm
by dobro
and an Midifile player with my lib :D


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

Posted: Fri Aug 05, 2011 10:06 am
by wmorton
Hi Dobro,

I can't find your MIDI library at your link - is it still available?

hanks!

Re: Looking for MIDI-Library

Posted: Fri Aug 05, 2011 11:08 am
by dobro

Re: Looking for MIDI-Library

Posted: Fri Aug 05, 2011 11:11 am
by wmorton
Brilliant, thank you very much!

Re: Looking for MIDI-Library

Posted: Thu Apr 19, 2012 12:39 am
by electrochrisso

Re: Looking for MIDI-Library

Posted: Thu Apr 19, 2012 8:42 am
by morosh
+1

Re: Looking for MIDI-Library

Posted: Sat Aug 11, 2012 4:38 am
by karmacomposer
Anyone know where this went. I am looking to create virtual instruments and midi apps with PureBasic. Can this be done?

Mike

Re: Looking for MIDI-Library

Posted: Sat Aug 11, 2012 10:35 pm
by dobro
electrochrisso wrote:Hi dobro, http://michel.dobro.free.fr/download.php?view.18 not working for me. :cry:

ho sorry , it should run now :)

Re: Looking for MIDI-Library

Posted: Sun Aug 12, 2012 2:39 am
by electrochrisso
Worked for me now dobro, thanks. :)

Re: Looking for MIDI-Library

Posted: Sun Aug 12, 2012 4:46 pm
by karmacomposer
Thank you.

Mike

Re: Looking for MIDI-Library

Posted: Sun Aug 12, 2012 10:35 pm
by karmacomposer
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