Skip to content

Commit 83498d5

Browse files
md stuff
1 parent 46d27c1 commit 83498d5

File tree

1 file changed

+9
-10
lines changed

1 file changed

+9
-10
lines changed

src/Midinette.Elektron/Elektron.MachineDrum.fs

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -930,8 +930,8 @@ module Sysex =
930930
0x00uy
931931
|]
932932

933-
type MachineDrum(inPort: IMidiInput<_>, outPort: IMidiOutput<_>) =
934-
let helpGetMDSysex maxMessage (timeout: TimeSpan) (request: MachineDrumSysexRequests) (inPort: IMidiInput<_>) : Async<MachineDrumSysexResponses option> =
933+
type MachineDrum(inPort: IMidiInput<int>, outPort: IMidiOutput<int>, getSysexNowTimestamp: unit -> int) =
934+
let helpGetMDSysex maxMessage (timeout: TimeSpan) (request: MachineDrumSysexRequests) inPort : Async<MachineDrumSysexResponses option> =
935935
#if FABLE_COMPILER
936936
failwithf "TODO FABLE"
937937
#else
@@ -940,13 +940,14 @@ type MachineDrum(inPort: IMidiInput<_>, outPort: IMidiOutput<_>) =
940940

941941
let performSysExRequest (requestMessage: MachineDrumSysexRequests) =
942942
if requestMessage.ExpectResponses then
943+
let timeout = TimeSpan.FromMilliseconds(2000.)
943944
#if FABLE_COMPILER
944-
helpGetMDSysex 5 (TimeSpan.FromMilliseconds(2000.)) requestMessage inPort |> Async.RunSynchronously
945+
helpGetMDSysex 5 timeout requestMessage inPort |> Async.RunSynchronously
945946
#else
946947
let task =
947-
helpGetMDSysex 5 (TimeSpan.FromMilliseconds(2000.)) requestMessage inPort
948+
helpGetMDSysex 5 timeout requestMessage inPort
948949
|> Async.StartAsTask
949-
requestMessage.Sysex |> outPort.WriteSysex 0
950+
requestMessage.Sysex |> outPort.WriteSysex (getSysexNowTimestamp())
950951
task.Result
951952
#endif
952953
else
@@ -958,8 +959,6 @@ type MachineDrum(inPort: IMidiInput<_>, outPort: IMidiOutput<_>) =
958959

959960
member x.Dump dumpRequest =
960961
performSysExRequest dumpRequest
961-
member x.QueryStatus statusType =
962-
performSysExRequest (QueryStatus statusType)
963962
member x.CurrentGlobalSettingsSlot =
964963
match x.Dump (QueryStatus(MachineDrumStatusType.GlobalSlot)) with
965964
| Some (MachineDrumSysexResponses.StatusResponse(GlobalSlot, slot)) -> Some slot
@@ -988,7 +987,7 @@ type MachineDrum(inPort: IMidiInput<_>, outPort: IMidiOutput<_>) =
988987

989988
member x.AssignMachine track machine mode =
990989
(AssignMachine (track, machine, mode)).Sysex
991-
|> outPort.WriteSysex 0
990+
|> outPort.WriteSysex (getSysexNowTimestamp())
992991

993992
(*
994993
member x.DumpKit kit =
@@ -1034,7 +1033,7 @@ type TimestampedMessage<'t> = {
10341033
Message: 't
10351034
}
10361035

1037-
type MachineDrumEventListener(md: MachineDrum, getTimestamp) =
1036+
type MachineDrumEventListener(md: MachineDrum, getTimestamp : unit -> int) =
10381037
let mutable mdGlobalSettings = md.CurrentGlobalSettings
10391038
let midiIn = md.MidiOutPort
10401039
//let mutable lastKit = {Timestamp = 0; Message = None }
@@ -1131,7 +1130,7 @@ type MachineDrumEventListener(md: MachineDrum, getTimestamp) =
11311130

11321131
let channelMessageListener = midiIn.ChannelMessageReceived.Subscribe(fun m ->
11331132
let message = onChannelMessage m
1134-
{ Timestamp = m.Timestamp; Message = message } |> event.Trigger
1133+
{ Timestamp = (m.Timestamp); Message = message } |> event.Trigger
11351134
)
11361135
let sysexListener = midiIn.SysexReceived.Subscribe(fun m ->
11371136
// TODO TODO

0 commit comments

Comments
 (0)