Seite 2 von 3

Verfasst: 08.12.2005 16:19
von Batze
NicTheQuick hat geschrieben:@Batze: Was genau funktioniert bei dir denn nicht?
Gibt keinen Ton von sich. Sonst geht alles. :wink:

Verfasst: 09.12.2005 17:37
von NicTheQuick
@Batze: Hat deine Soundkarte überhaupt einen Sythesizer? Also kannst
du in dem Requester am Anfang einen Output auswählen? Oder hast du
vielleicht im Mixer den MIDI-Out nicht hochgedreht oder sonstwas?

Verfasst: 12.12.2005 00:53
von NicTheQuick
Es gibt wieder eine neue Version des Interfaces. Jetzt sind es schon stolze
1935 Zeilen bei 70,3 kB. Die Datei befindet sich hier.

Meine Daten für das Interface beziehe ich übrigens von hier.

Das Interface selbst ist 648 Bytes groß, die dazugehörige Struktur 748
Bytes und die zwei Zusatzstrukturen für den Callback und anderes
nochmal 4 und 29 Bytes. Wenn man das Interface also einmal erstellt,
werden direkt 748 Bytes reserviert. Zum Glück macht man das im
Normalfall nur einmal, weil man ja nicht hunderte Synthesizer ansprechen
will.

Verfasst: 12.12.2005 17:37
von Batze
NicTheQuick hat geschrieben:Oder hast du vielleicht im Mixer den MIDI-Out nicht hochgedreht oder sonstwas?
Gott bin ich blöd. Hatte den Ton für Midis aus. :freak: :oops:

Verfasst: 15.12.2005 18:57
von NicTheQuick
Ich habe hier nochmal alle 207 Befehle, die ich bisher umgesetzt habe mit Parametern aufgelistet:

Code: Alles auswählen

OpenOutputDevice.l(DeviceID.l)
CloseOutputDevice.l()
OpenInputDevice.l(DeviceID.l, Callback.l, UserData.l)
CloseInputDevice.l()
StartInput.l()
StopInput.l()
ResetInput.l()
ProgramChange.l(Channel.b, Voice.b)
NoteOn.l(Channel.b, Note.b, Velocity.b)
NoteOff.l(Channel.b, Note.b, Velocity.b)
NoteOffAlternate.l(Channel.b, Note.b)
ChangeController.l(Channel.b, Controller.b, Value.b)
ChannelPressure.l(Channel.b, Value.b)
KeyAftertouch.l(Channel.b, Note.b, Value.b)
PitchWheel.l(Channel.b, Value.w)
SysEx.l(*SysEx, Length.l)
Master_Tune.l(Tune.l)
Master_Volume_Realtime.l(Volume.b)
Master_Volume.l(Volume.b)
Master_Transpose.l(Transpose.b)
Drum_Setup_Reset.l(Drum_Setup.b)
XG_System_On.l()
All_Parameter_Reset.l()
TG300B_Reset.l()
General_Midi_On.l()
Bank_Select_MSB.l(Channel.b, Bank.b)
Bank_Select_LSB.l(Channel.b, Bank.b)
Volume.l(Channel.b, Volume.b)
Panorama.l(Channel.b, Panorama.b)
Modulation.l(Channel.b, Modulation.b)
Expression.l(Channel.b, Expression.b)
Reverb_Send_Level.l(Channel.b, Reverb.b)
Chorus_Send_Level.l(Channel.b, Chorus.b)
Variation_Effect_Send_Level.l(Channel.b, Variation_Effect.b)
Portamento.l(Channel.b, OnOff.b)
Portamento_Time.l(Channel.b, Time.b)
Portamento_Control.l(Channel.b, Note.b)
Filter_Frequency.l(Channel.b, Offset.b)
Filter_Resonance.l(Channel.b, Offset.b)
EG_Attack_Time.l(Channel.b, Offset.b)
EG_Release_Time.l(Channel.b, Offset.b)
Hold_Pedal.l(Channel.b, OnOff.b)
Sostenuto_Pedal.l(Channel.b, OnOff.b)
Soft_Pedal.l(Channel.b, OnOff.b)
All_Sounds_Off.l(Channel.b)
Reset_All_Controllers.l(Channel.b)
All_Notes_Off.l(Channel.b)
Omni_Off.l(Channel.b)
Omni_On.l(Channel.b)
Mono_Mode.l(Channel.b)
Poly_Mode.l(Channel.b)
Set_NRPN_MSBLSB.l(Channel.b, MSB.b, LSB.b)
Vibrato_Rate.l(Channel.b, Offset.b)
Vibrato_Depth.l(Channel.b, Offset.b)
Vibrato_Delay.l(Channel.b, Offset.b)
Filter_CutOff_Frequency.l(Channel.b, Offset.b)
Filter_Resonance_2.l(Channel.b, Offset.b)
EG_Attack_Time_2.l(Channel.b, Offset.b)
EG_Decay_Time.l(Channel.b, Offset.b)
EG_Release_Time_2.l(Channel.b, Offset.b)
DI_Filter_CutOff_Frequency.l(Channel.b, Note.b, Offset.b)
DI_Filter_Resonance.l(Channel.b, Note.b, Offset.b)
DI_EG_Attack_Rate.l(Channel.b, Note.b, Offset.b)
DI_EG_Decay_Rate.l(Channel.b, Note.b, Offset.b)
DI_Pitch_Coarse.l(Channel.b, Note.b, Offset.b)
DI_Pitch_Fine.l(Channel.b, Note.b, Offset.b)
DI_Level.l(Channel.b, Note.b, Level.b)
DI_Panorama.l(Channel.b, Note.b, Panorama.b)
DI_Reverb_Send_Level.l(Channel.b, Note.b, Reverb.b)
DI_Chorus_Send_Level.l(Channel.b, Note.b, Chorus.b)
DI_Variation_Effect_Send_Level.l(Channel.b, Note.b, Variation_Effect.b)
Set_RPN_MSBLSB(Channel.b, MSB.b, LSB.b)
Pitch_Bend_Sensivity.l(Channel.b, Offset.b)
Fine_Tuning.l(Channel.b, Offset.b)
Coarse_Tuning.l(Channel.b, Offset.b)
P_ChangeController.l(Controller.b, Part.b, Value.b)
P_Part_Mode.l(Part.b, Mode.b)
P_Receive_Midi_Channel.l(Part.b, Channel.b)
P_Element_Reserve.l(Part.b, Elements.b)
P_Same_Note_Number_Key_On_Assign.l(Part.b, Value.b)
P_MonoPoly_Mode.l(Part.b, Value.b)
P_Bank_Select_MSB.l(Part.b, MSB.b)
P_Bank_Select_LSB.l(Part.l, LSB.b)
P_Program_Number.l(Part.b, Program.b)
P_Volume.l(Part.b, Volume.b)
P_Dry_Level.l(Part.b, Level.b)
P_Panorama.l(Part.b, Panorama.b)
P_Reverb_Send.l(Part.b, Reverb.b)
P_Chorus_Send.l(Part.b, Chorus.b)
P_Variation_Send.l(Part.b, Variation.b)
P_Note_Shift.l(Part.b, Shift.b)
P_Detune.l(Part.b, Detune.b)
P_Vibrato_Depth.l(Part.b, Depth.b)
P_Pitch_EG_Inital_Level.l(Part.b, Level.b)
P_Pitch_EG_Attack_Time.l(Part.b, Time.b)
P_Pitch_EG_Release_Level.l(Part.b, Level.b)
P_Pitch_EG_Release_Time.l(Part.b, Time.b)
P_Filter_CutOff_Frequency.l(Part.b, Offset.b)
P_Filter_Resonance.l(Part.b, Offset.b)
P_Vibrato_Rate.l(Part.b, Rate.b)
P_Vibrato_Delay.l(Part.b, Delay.b)
P_EG_Attack_Time.l(Part.b, Time.b)
P_EG_Decay_Time.l(Part.b, Time.b)
P_EG_Relase_Time.l(Part.b, Time.b)
P_Portamento_Switch.l(Part.b, OnOff.b)
P_Portamento_Time.l(Part.b, Time.b)
P_Note_Limit_Low.l(Part.b, Note.b)
P_Note_Limit_High.l(Part.b, Note.b)
P_Velocity_Sense_Depth.l(Part.b, Offset.b)
P_Velocity_Sense_Offset.l(Part.b, Offset.b)
P_Velocity_Limit_Low.l(Part.b, Note.b)
P_Velocity_Limit_High.l(Part.b, Note.b)
P_MW_Pitch_Control.l(Part.b, Offset.b)
P_MW_Filter_Control.l(Part.b, Offset.b)
P_MW_Amplitude_Control.l(Part.b, Offset.b)
P_MW_LFO_Pitch_Modulation_Depth.l(Part.b, Depth.b)
P_MW_LFO_Filter_Modulation_Depth.l(Part.b, Depth.b)
P_MW_LFO_Amplitude_Modulation_Depth.l(Part.b, Depth.b)
P_BEND_Pitch_Control.l(Part.b, Offset.b)
P_BEND_Filter_Control.l(Part.b, Offset.b)
P_BEND_Amplitude_Control.l(Part.b, Offset.b)
P_BEND_LFO_Pitch_Modulation_Depth.l(Part.b, Depth.b)
P_BEND_LFO_Filter_Modulation_Depth.l(Part.b, Depth.b)
P_BEND_LFO_Amplitude_Modulation_Depth.l(Part.b, Depth.b)
P_Receive_Pitch_Bend.l(Part.b, OnOff.b)
P_Receive_Channel_After_Touch.l(Part.b, OnOff.b)
P_Receive_Program_Change.l(Part.b, OnOff.b)
P_Receive_Control_Change.l(Part.b, OnOff.b)
P_Receive_Poly_After_Touch.l(Part.b, OnOff.b)
P_Receive_Note_Messages.l(Part.b, OnOff.b)
P_Receive_RPN.l(Part.b, OnOff.b)
P_Receive_NRPM.l(Part.b, OnOff.b)
P_Receive_Modulation.l(Part.b, OnOff.b)
P_Receive_Volume.l(Part.b, OnOff.b)
P_Receive_Pan.l(Part.b, OnOff.b)
P_Receive_Expression.l(Part.b, OnOff.b)
P_Receive_Hold_Pedal.l(Part.b, OnOff.b)
P_Receive_Portamento.l(Part.b, OnOff.b)
P_Receive_Sostenuto_Pedal.l(Part.b, OnOff.b)
P_Receive_Soft_Pedal.l(Part.b, OnOff.b)
P_Receive_Bank_Select.l(Part.b, OnOff.b)
P_Scale_Tuning.l(Part.b, Note.b, Offset.b)
D_ChangeController.l(Controller.b, Drum_Setup.b, Note.b, Value.b)
D_Pitch_Coarse.l(Drum_Setup.b, Note.b, Offset.b)
D_Pitch_Fine.l(Drum_Setup.b, Note.b, Pitch.b)
D_Level.l(Drum_Setup.b, Note.b, Level.b)
D_Alternate_Group.l(Drum_Setup.b, Note.b, Group.b)
D_Panorama.l(Drum_Setup.b, Note.b, Panorama)
D_Reverb_Send.l(Drum_Setup.b, Note.b, Reverb.b)
D_Chorus_Send.l(Drum_Setup.b, Note.b, Chorus.b)
D_Variation_Send.l(Drum_Setup.b, Note.b, Variation.b)
D_Key_Assign.l(Drum_Setup.b, Note.b, Value.b)
D_Receive_Note_Off.l(Drum_Setup.b, Note.b, OnOff.b)
D_Receive_Note_On.l(Drum_Setup.b, Note.b, OnOff.b)
D_Filter_CutOff_Frequency.l(Drum_Setup.b, Note.b, Offset.b)
D_Filter_Resonance.l(Drum_Setup.b, Note.b, Offset.b)
D_EG_Attack_Rate.l(Drum_Setup.b, Note.b, Rate.b)
D_D_EG_Decay1_Rate.l(Drum_Setup.b, Note.b, Rate.b)
D_EG_Decay2_Rate.l(Drum_Setup.b, Note.b, Rate.b)
E_ChangeController_1.l(Controller.b, Value.b)
E_ChangeController_2.l(Controller.b, Value1.b, Value2.b)
R_Reverb_Typ.l(Typ.l)
R_Reverb_Time(Time.b)
R_Diffusion.l(Diffusion.b)
R_Initial_Delay.l(Delay.b)
R_HPF_CutOff.l(Offset.b)
R_LPF_CutOff.l(Offset.b)
R_DryWet.l(Offset.b)
R_Reverb_Return.l(Value.b)
R_Reverb_Panorama.l(Panorama.b)
R_Reverb_Delay(Delay.b)
R_Density(Value.b)
R_Early_Reflection(Value.b)
R_Feedback_Level(Level.b)
R_Width(Width.b)
R_Height(Height.b)
R_Depth(Depth.b)
R_Wall_Variation(Variation.b)
C_Chorus_Typ.l(Typ.l)
C_LFO_Frequency.l(Offset.b)
C_LFO_Phase_Modulation_Depth.l(Offset.b)
C_Feedback_Level.l(Level.b)
C_EQ_Low_Frequency.l(Offset.b)
C_EQ_Low_Gain.l(Gain.b)
C_EQ_High_Frequency.l(Offset.b)
C_EQ_High_Gain.l(Gain.b)
C_DryWet.l(Offset.b)
C_Chorus_Return.l(Value.b)
C_Chorus_Panorama.l(Panorama.b)
C_Send_Chorus_To_Reverb.l(Value.b)
C_Delay_Offset.l(Offset.b)
C_Input_Mode.l(Mode.b)
C_LFO_Phase_Difference(Offset.b)
V_Variation_Return.l(Level.b)
V_Variation_Panorama.l(Panorama.b)
V_Send_Variation_To_Reverb.l(Reverb.b)
V_Send_Variation_To_Chorus.l(Chorus.b)
V_Variation_Connection.l(Value.b)
V_Variation_Part.l(Part.b)
V_Modulation_Wheel.l(Offset.b)
V_Pitch_Bend_Wheel.l(Offset.b)
V_Channel_After_Touch.l(Offset.b)
V_AC1.l(Offset.b)
V_AC2.l(Offset.b)
V_Effect_Turned_Off.l()
V_Effect_Thru.l()
V_Variation_Typ.l(Typ.l)
Jetzt fehlen noch alle Variationeffekte des XG-Synth.
Danach schaue ich mich mal nach SysEx-Messages für Roland um. Dann
kann ich das Interface noch weiter ausbauen.

Ich bin mal gespannt, wer mit diesem Interface überhaupt etwas
anfangen kann. :lol: Also ich und meine Band schon. <) Aber es wenn ich
es fertig gestellt habe, fange ich mal mit der Hilfe an. Aber dazu brauche
ich dann sowieso wieder eure Hilfe, weil ich nämlich nicht weiß, was ich da
am besten benutzen kann und sollte, damit ich es übersichtlich gestalten
kann. :|

Verfasst: 27.06.2006 18:37
von Sebastian
Bei mir funktioniert es nicht. Es liegt wohl an dem | bei obenwindow. Das scheint pb 4.0 nicht zu kennen oder so. Wozu dient der | eigentlich? Vermutlich um mehrere Konstanten zu übergeben? Wie muss ich es für pb 4.0 umschreiben?

Verfasst: 27.06.2006 18:51
von edel
Das ist schon richtig so , allerdings hat man die Parameter in 4.0 verdreht , also erst den Titel dann die Flags.

Code: Alles auswählen

WinID = OpenWindow(#PB_Any, 0, 0, Width, 270, "MIDI-Requester", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) 

#PB_Event_CloseWindow
#PB_Event_Gadget
EventGadget()

Verfasst: 28.06.2006 14:17
von Sebastian
Nee. Leider funktioniert das Beispiel auch nicht, wenn ich diesen Punkt ändere. Könnte das Beispiel nicht für 4.0 umgesetzt werden?

Verfasst: 28.06.2006 14:30
von Kiffi
> Nee. Leider funktioniert das Beispiel auch nicht, wenn ich diesen Punkt
> ändere.

edel hat mehrere Punkte aufgelistet.

Im übrigen ist es immer von Vorteil, wenn Du die Fehlermeldung mitpostest.
Ein 'funktioniert nicht' ist nicht sehr informativ.

> Könnte das Beispiel nicht für 4.0 umgesetzt werden?

das sind insgesamt 4 kleine Änderungen, die vorgenommen werden müssen.
Das wirst Du doch noch hinkriegen, oder?

Grüße ... Kiffi

Verfasst: 10.01.2007 16:44
von NicTheQuick
Hallo, ich habe auf Grund eines anstehenden Projektes wieder einen schönen
Codeschnipsel für euch.

Erstens habe ich meine DirectMIDI-Include auf PB 4.0 angepasst, wodurch
sie beträchtlich geschrumpft ist und nicht mehr soviel Speicher bei der
Ausführung benötigt.

Und zweitens ist noch ein kleines Mausklavier dabei, dass die
DirectMIDI-Include nutzt und selbst auch wieder ein handliches Interface ist.

Bevor JO_Keys.pb gestartet wird, bitte nicht vergessen die DirectMIDI.pbi zu
includieren. Wenn jemand ein MIDI-Keyboard sein Eigen nennt und es an den
PC angeschlossen hat, kann er beim MIDI-Requester auch einen Input
wählen und sieht seine gespielten Tasten auf dem Mausklavier.

///Edit: Hier auch nochmal als EXE: JO_Keys.exe

Viel Spaß damit! :allright:

///Edit:
Links erneuert!