Preparing report...

Report for github.com/gomidi/midi

A+    Excellent!    Found 47 issues across 220 files

Tweet

gofmt96%

Gofmt formats Go programs. We run gofmt -s on your code, where -s is for the "simplify" command


go_vet100%

go vet examines Go source code and reports suspicious constructs, such as Printf calls whose arguments do not align with the format string.

No problems detected. Good job!


gocyclo98%

Gocyclo calculates cyclomatic complexities of functions in Go source code. The cyclomatic complexity of a function is calculated according to the following rules: 1 is the base complexity of a function +1 for each 'if', 'for', 'case', '&&' or '||' Go Report Card warns on functions with cyclomatic complexity > 15.

    • midi/v2/msgtype.go
    • Line 498: warning: cyclomatic complexity 25 of function GetChannelMsgType() is high (> 15) (gocyclo)
    • Line 406: warning: cyclomatic complexity 22 of function (MsgType).String() is high (> 15) (gocyclo)

golint84%

Golint is a linter for Go source code.

    • midi/reader/smf.go
    • Line 58: warning: exported function ReadSMFFrom should have comment or be unexported (golint)
    • Line 76: warning: comment on exported function ReadSMF should be of the form "ReadSMF ..." (golint)
    • midi/writer/smf.go
    • Line 15: warning: comment on exported type SMF should be of the form "SMF ..." (with optional leading article) (golint)
    • Line 26: warning: exported method SMF.Delta should have comment or be unexported (golint)
    • Line 32: warning: receiver name w should be consistent with previous receiver name wr for SMF (golint)
    • Line 37: warning: exported method SMF.Header should have comment or be unexported (golint)
    • Line 41: warning: exported method SMF.WriteHeader should have comment or be unexported (golint)
    • Line 46: warning: receiver name w should be consistent with previous receiver name wr for SMF (golint)
    • Line 85: warning: exported function BackupTimeline should have comment or be unexported (golint)
    • Line 89: warning: exported function RestoreTimeline should have comment or be unexported (golint)
    • midi/v2/smf/writer.go
    • Line 36: warning: exported method SMF.WriteFile should have comment or be unexported (golint)
    • Line 55: warning: exported method SMF.WriteTo should have comment or be unexported (golint)
    • midi/smf/smftimeline/smftimeline.go
    • Line 10: warning: exported function New should have comment or be unexported (golint)
    • Line 16: warning: exported type TimeLine should have comment or be unexported (golint)
    • Line 123: warning: exported method TimeLine.Ticks should have comment or be unexported (golint)
    • Line 174: warning: exported method TimeLine.FinishPlanned should have comment or be unexported (golint)
    • midi/v2/internal/utils/utils.go
    • Line 101: warning: exported function ReadText should have comment or be unexported (golint)
    • Line 123: warning: comment on exported function VlqEncode should be of the form "VlqEncode ..." (golint)
    • Line 148: warning: comment on exported function VlqDecode should be of the form "VlqDecode ..." (golint)
    • Line 171: warning: exported function ParseTwoUint7 should have comment or be unexported (golint)
    • Line 175: warning: exported function ParseUint7 should have comment or be unexported (golint)
    • Line 179: warning: exported function ParsePitchWheelVals should have comment or be unexported (golint)
    • Line 204: warning: comment on exported function MsbLsbUnsigned should be of the form "MsbLsbUnsigned ..." (golint)
    • midi/writer/messages.go
    • Line 18: warning: comment on exported function RTActivesense should be of the form "RTActivesense ..." (golint)
    • Line 23: warning: comment on exported function RTContinue should be of the form "RTContinue ..." (golint)
    • Line 28: warning: comment on exported function RTReset should be of the form "RTReset ..." (golint)
    • Line 33: warning: comment on exported function RTStart should be of the form "RTStart ..." (golint)
    • Line 38: warning: comment on exported function RTStop should be of the form "RTStop ..." (golint)
    • Line 43: warning: comment on exported function RTTick should be of the form "RTTick ..." (golint)
    • Line 48: warning: comment on exported function RTClock should be of the form "RTClock ..." (golint)
    • Line 91: warning: comment on exported function Undefined should be of the form "Undefined ..." (golint)
    • Line 171: warning: comment on exported function TempoBPM should be of the form "TempoBPM ..." (golint)
    • Line 212: warning: exported function Channel should have comment or be unexported (golint)
    • Line 307: warning: comment on exported function FineTuningRPN should be of the form "FineTuningRPN ..." (golint)
    • Line 312: warning: comment on exported function CoarseTuningRPN should be of the form "CoarseTuningRPN ..." (golint)
    • Line 317: warning: comment on exported function TuningProgramSelectRPN should be of the form "TuningProgramSelectRPN ..." (golint)
    • Line 322: warning: comment on exported function TuningBankSelectRPN should be of the form "TuningBankSelectRPN ..." (golint)
    • Line 336: warning: exported function WriteMessages should have comment or be unexported (golint)
    • Line 355: warning: exported function RPNIncrement should have comment or be unexported (golint)
    • Line 363: warning: exported function RPNDecrement should have comment or be unexported (golint)
    • Line 371: warning: exported function NRPNIncrement should have comment or be unexported (golint)
    • Line 379: warning: exported function NRPNDecrement should have comment or be unexported (golint)
    • midi/v2/smf/reader.go
    • Line 15: warning: exported type Logger should have comment or be unexported (golint)
    • Line 34: warning: comment on exported function ReadAll should be of the form "ReadAll ..." (golint)
    • Line 63: warning: comment on exported function NewReader should be of the form "NewReader ..." (golint)
    • Line 83: warning: exported method Reader.ReadHeader should have comment or be unexported (golint)
    • Line 104: warning: exported type Reader should have comment or be unexported (golint)
    • Line 135: warning: exported method Reader.ReadTracks should have comment or be unexported (golint)
    • midi/reader/reader.go
    • Line 15: warning: exported function ReadFrom should have comment or be unexported (golint)
    • Line 84: warning: don't use underscores in Go names; struct field channelRPN_NRPN should be channelRPNNRPN (golint)
    • Line 98: warning: exported method Reader.Track should have comment or be unexported (golint)
    • Line 102: warning: exported method Reader.Delta should have comment or be unexported (golint)
    • Line 106: warning: exported method Reader.Header should have comment or be unexported (golint)
    • Line 110: warning: exported method Reader.ReadHeader should have comment or be unexported (golint)
    • Line 260: warning: exported method Reader.Callback should have comment or be unexported (golint)
    • Line 298: warning: don't use underscores in Go names; method _RPN_NRPN_Reset should be _RPNNRPNReset (golint)
    • midi/v2/msgtype.go
    • Line 7: warning: exported type MsgType should have comment or be unexported (golint)
    • Line 193: warning: comment on exported const TuneMsg should be of the form "TuneMsg ..." (golint)
    • midi/gm/percussionkeys.go
    • Line 5: warning: exported type DrumKey should have comment or be unexported (golint)
    • Line 7: warning: exported method DrumKey.Key should have comment or be unexported (golint)
    • Line 12: warning: don't use underscores in Go names; const DrumKey_AcousticBassDrum should be DrumKeyAcousticBassDrum (golint)
    • Line 12: warning: exported const DrumKey_AcousticBassDrum should have comment (or a comment on this block) or be unexported (golint)
    • Line 13: warning: don't use underscores in Go names; const DrumKey_BassDrum1 should be DrumKeyBassDrum1 (golint)
    • Line 14: warning: don't use underscores in Go names; const DrumKey_SideStick should be DrumKeySideStick (golint)
    • Line 15: warning: don't use underscores in Go names; const DrumKey_AcousticSnare should be DrumKeyAcousticSnare (golint)
    • Line 16: warning: don't use underscores in Go names; const DrumKey_HandClap should be DrumKeyHandClap (golint)
    • Line 17: warning: don't use underscores in Go names; const DrumKey_ElectricSnare should be DrumKeyElectricSnare (golint)
    • Line 18: warning: don't use underscores in Go names; const DrumKey_LowFloorTom should be DrumKeyLowFloorTom (golint)
    • Line 19: warning: don't use underscores in Go names; const DrumKey_ClosedHiHat should be DrumKeyClosedHiHat (golint)
    • Line 20: warning: don't use underscores in Go names; const DrumKey_HighFloorTom should be DrumKeyHighFloorTom (golint)
    • Line 21: warning: don't use underscores in Go names; const DrumKey_PedalHiHat should be DrumKeyPedalHiHat (golint)
    • Line 22: warning: don't use underscores in Go names; const DrumKey_LowTom should be DrumKeyLowTom (golint)
    • Line 23: warning: don't use underscores in Go names; const DrumKey_OpenHiHat should be DrumKeyOpenHiHat (golint)
    • Line 24: warning: don't use underscores in Go names; const DrumKey_LowMidTom should be DrumKeyLowMidTom (golint)
    • Line 25: warning: don't use underscores in Go names; const DrumKey_HiMidTom should be DrumKeyHiMidTom (golint)
    • Line 26: warning: don't use underscores in Go names; const DrumKey_CrashCymbal1 should be DrumKeyCrashCymbal1 (golint)
    • Line 27: warning: don't use underscores in Go names; const DrumKey_HighTom should be DrumKeyHighTom (golint)
    • Line 28: warning: don't use underscores in Go names; const DrumKey_RideCymbal1 should be DrumKeyRideCymbal1 (golint)
    • Line 29: warning: don't use underscores in Go names; const DrumKey_ChineseCymbal should be DrumKeyChineseCymbal (golint)
    • Line 30: warning: don't use underscores in Go names; const DrumKey_RideBell should be DrumKeyRideBell (golint)
    • Line 31: warning: don't use underscores in Go names; const DrumKey_Tambourine should be DrumKeyTambourine (golint)
    • Line 32: warning: don't use underscores in Go names; const DrumKey_SplashCymbal should be DrumKeySplashCymbal (golint)
    • Line 33: warning: don't use underscores in Go names; const DrumKey_Cowbell should be DrumKeyCowbell (golint)
    • Line 34: warning: don't use underscores in Go names; const DrumKey_CrashCymbal2 should be DrumKeyCrashCymbal2 (golint)
    • Line 35: warning: don't use underscores in Go names; const DrumKey_Vibraslap should be DrumKeyVibraslap (golint)
    • Line 36: warning: don't use underscores in Go names; const DrumKey_RideCymbal2 should be DrumKeyRideCymbal2 (golint)
    • Line 37: warning: don't use underscores in Go names; const DrumKey_HiBongo should be DrumKeyHiBongo (golint)
    • Line 38: warning: don't use underscores in Go names; const DrumKey_LowBongo should be DrumKeyLowBongo (golint)
    • Line 39: warning: don't use underscores in Go names; const DrumKey_MuteHiConga should be DrumKeyMuteHiConga (golint)
    • Line 40: warning: don't use underscores in Go names; const DrumKey_OpenHiConga should be DrumKeyOpenHiConga (golint)
    • Line 41: warning: don't use underscores in Go names; const DrumKey_LowConga should be DrumKeyLowConga (golint)
    • Line 42: warning: don't use underscores in Go names; const DrumKey_HighTimbale should be DrumKeyHighTimbale (golint)
    • Line 43: warning: don't use underscores in Go names; const DrumKey_LowTimbale should be DrumKeyLowTimbale (golint)
    • Line 44: warning: don't use underscores in Go names; const DrumKey_HighAgogo should be DrumKeyHighAgogo (golint)
    • Line 45: warning: don't use underscores in Go names; const DrumKey_LowAgogo should be DrumKeyLowAgogo (golint)
    • Line 46: warning: don't use underscores in Go names; const DrumKey_Cabasa should be DrumKeyCabasa (golint)
    • Line 47: warning: don't use underscores in Go names; const DrumKey_Maracas should be DrumKeyMaracas (golint)
    • Line 48: warning: don't use underscores in Go names; const DrumKey_ShortWhistle should be DrumKeyShortWhistle (golint)
    • Line 49: warning: don't use underscores in Go names; const DrumKey_LongWhistle should be DrumKeyLongWhistle (golint)
    • Line 50: warning: don't use underscores in Go names; const DrumKey_ShortGuiro should be DrumKeyShortGuiro (golint)
    • Line 51: warning: don't use underscores in Go names; const DrumKey_LongGuiro should be DrumKeyLongGuiro (golint)
    • Line 52: warning: don't use underscores in Go names; const DrumKey_Claves should be DrumKeyClaves (golint)
    • Line 53: warning: don't use underscores in Go names; const DrumKey_HiWoodBlock should be DrumKeyHiWoodBlock (golint)
    • Line 54: warning: don't use underscores in Go names; const DrumKey_LowWoodBlock should be DrumKeyLowWoodBlock (golint)
    • Line 55: warning: don't use underscores in Go names; const DrumKey_MuteCuica should be DrumKeyMuteCuica (golint)
    • Line 56: warning: don't use underscores in Go names; const DrumKey_OpenCuica should be DrumKeyOpenCuica (golint)
    • Line 57: warning: don't use underscores in Go names; const DrumKey_MuteTriangle should be DrumKeyMuteTriangle (golint)
    • Line 58: warning: don't use underscores in Go names; const DrumKey_OpenTriangle should be DrumKeyOpenTriangle (golint)
    • midi/gm/drumkits.go
    • Line 3: warning: exported type DrumKit should have comment or be unexported (golint)
    • Line 5: warning: exported method DrumKit.Value should have comment or be unexported (golint)
    • Line 10: warning: don't use underscores in Go names; const DrumKit_Standard should be DrumKitStandard (golint)
    • Line 10: warning: exported const DrumKit_Standard should have comment (or a comment on this block) or be unexported (golint)
    • Line 11: warning: don't use underscores in Go names; const DrumKit_Standard1 should be DrumKitStandard1 (golint)
    • Line 12: warning: don't use underscores in Go names; const DrumKit_Standard2 should be DrumKitStandard2 (golint)
    • Line 13: warning: don't use underscores in Go names; const DrumKit_Standard3 should be DrumKitStandard3 (golint)
    • Line 14: warning: don't use underscores in Go names; const DrumKit_Standard4 should be DrumKitStandard4 (golint)
    • Line 15: warning: don't use underscores in Go names; const DrumKit_Standard5 should be DrumKitStandard5 (golint)
    • Line 16: warning: don't use underscores in Go names; const DrumKit_Standard6 should be DrumKitStandard6 (golint)
    • Line 17: warning: don't use underscores in Go names; const DrumKit_Standard7 should be DrumKitStandard7 (golint)
    • Line 18: warning: don't use underscores in Go names; const DrumKit_Room should be DrumKitRoom (golint)
    • Line 19: warning: don't use underscores in Go names; const DrumKit_Room1 should be DrumKitRoom1 (golint)
    • Line 20: warning: don't use underscores in Go names; const DrumKit_Room2 should be DrumKitRoom2 (golint)
    • Line 21: warning: don't use underscores in Go names; const DrumKit_Room3 should be DrumKitRoom3 (golint)
    • Line 22: warning: don't use underscores in Go names; const DrumKit_Room4 should be DrumKitRoom4 (golint)
    • Line 23: warning: don't use underscores in Go names; const DrumKit_Room5 should be DrumKitRoom5 (golint)
    • Line 24: warning: don't use underscores in Go names; const DrumKit_Room6 should be DrumKitRoom6 (golint)
    • Line 25: warning: don't use underscores in Go names; const DrumKit_Room7 should be DrumKitRoom7 (golint)
    • Line 26: warning: don't use underscores in Go names; const DrumKit_Power should be DrumKitPower (golint)
    • Line 27: warning: don't use underscores in Go names; const DrumKit_Power1 should be DrumKitPower1 (golint)
    • Line 28: warning: don't use underscores in Go names; const DrumKit_Power2 should be DrumKitPower2 (golint)
    • Line 29: warning: don't use underscores in Go names; const DrumKit_Power3 should be DrumKitPower3 (golint)
    • Line 30: warning: don't use underscores in Go names; const DrumKit_Power4 should be DrumKitPower4 (golint)
    • Line 31: warning: don't use underscores in Go names; const DrumKit_Power5 should be DrumKitPower5 (golint)
    • Line 32: warning: don't use underscores in Go names; const DrumKit_Power6 should be DrumKitPower6 (golint)
    • Line 33: warning: don't use underscores in Go names; const DrumKit_Power7 should be DrumKitPower7 (golint)
    • Line 34: warning: don't use underscores in Go names; const DrumKit_Electronic should be DrumKitElectronic (golint)
    • Line 35: warning: don't use underscores in Go names; const DrumKit_Electronic1 should be DrumKitElectronic1 (golint)
    • Line 36: warning: don't use underscores in Go names; const DrumKit_Electronic2 should be DrumKitElectronic2 (golint)
    • Line 37: warning: don't use underscores in Go names; const DrumKit_Electronic3 should be DrumKitElectronic3 (golint)
    • Line 38: warning: don't use underscores in Go names; const DrumKit_Electronic4 should be DrumKitElectronic4 (golint)
    • Line 39: warning: don't use underscores in Go names; const DrumKit_Electronic5 should be DrumKitElectronic5 (golint)
    • Line 40: warning: don't use underscores in Go names; const DrumKit_Electronic6 should be DrumKitElectronic6 (golint)
    • Line 41: warning: don't use underscores in Go names; const DrumKit_Electronic7 should be DrumKitElectronic7 (golint)
    • Line 42: warning: don't use underscores in Go names; const DrumKit_Tr808 should be DrumKitTr808 (golint)
    • Line 43: warning: don't use underscores in Go names; const DrumKit_Jazz should be DrumKitJazz (golint)
    • Line 44: warning: don't use underscores in Go names; const DrumKit_Jazz1 should be DrumKitJazz1 (golint)
    • Line 45: warning: don't use underscores in Go names; const DrumKit_Jazz2 should be DrumKitJazz2 (golint)
    • Line 46: warning: don't use underscores in Go names; const DrumKit_Jazz3 should be DrumKitJazz3 (golint)
    • Line 47: warning: don't use underscores in Go names; const DrumKit_Jazz4 should be DrumKitJazz4 (golint)
    • Line 48: warning: don't use underscores in Go names; const DrumKit_Jazz5 should be DrumKitJazz5 (golint)
    • Line 49: warning: don't use underscores in Go names; const DrumKit_Jazz6 should be DrumKitJazz6 (golint)
    • Line 50: warning: don't use underscores in Go names; const DrumKit_Jazz7 should be DrumKitJazz7 (golint)
    • Line 51: warning: don't use underscores in Go names; const DrumKit_Brush should be DrumKitBrush (golint)
    • Line 52: warning: don't use underscores in Go names; const DrumKit_Brush1 should be DrumKitBrush1 (golint)
    • Line 53: warning: don't use underscores in Go names; const DrumKit_Brush2 should be DrumKitBrush2 (golint)
    • Line 54: warning: don't use underscores in Go names; const DrumKit_Brush3 should be DrumKitBrush3 (golint)
    • Line 55: warning: don't use underscores in Go names; const DrumKit_Brush4 should be DrumKitBrush4 (golint)
    • Line 56: warning: don't use underscores in Go names; const DrumKit_Brush5 should be DrumKitBrush5 (golint)
    • Line 57: warning: don't use underscores in Go names; const DrumKit_Brush6 should be DrumKitBrush6 (golint)
    • Line 58: warning: don't use underscores in Go names; const DrumKit_Brush7 should be DrumKitBrush7 (golint)
    • Line 59: warning: don't use underscores in Go names; const DrumKit_Orchestra should be DrumKitOrchestra (golint)
    • Line 60: warning: don't use underscores in Go names; const DrumKit_Orchestra1 should be DrumKitOrchestra1 (golint)
    • Line 61: warning: don't use underscores in Go names; const DrumKit_Orchestra2 should be DrumKitOrchestra2 (golint)
    • Line 62: warning: don't use underscores in Go names; const DrumKit_Orchestra3 should be DrumKitOrchestra3 (golint)
    • Line 63: warning: don't use underscores in Go names; const DrumKit_Orchestra4 should be DrumKitOrchestra4 (golint)
    • Line 64: warning: don't use underscores in Go names; const DrumKit_Orchestra5 should be DrumKitOrchestra5 (golint)
    • Line 65: warning: don't use underscores in Go names; const DrumKit_Orchestra6 should be DrumKitOrchestra6 (golint)
    • Line 66: warning: don't use underscores in Go names; const DrumKit_Orchestra7 should be DrumKitOrchestra7 (golint)
    • Line 67: warning: don't use underscores in Go names; const DrumKit_SoundFX should be DrumKitSoundFX (golint)
    • Line 68: warning: don't use underscores in Go names; const DrumKit_SoundFX1 should be DrumKitSoundFX1 (golint)
    • Line 69: warning: don't use underscores in Go names; const DrumKit_SoundFX2 should be DrumKitSoundFX2 (golint)
    • Line 70: warning: don't use underscores in Go names; const DrumKit_SoundFX3 should be DrumKitSoundFX3 (golint)
    • Line 71: warning: don't use underscores in Go names; const DrumKit_SoundFX4 should be DrumKitSoundFX4 (golint)
    • Line 72: warning: don't use underscores in Go names; const DrumKit_SoundFX5 should be DrumKitSoundFX5 (golint)
    • Line 73: warning: don't use underscores in Go names; const DrumKit_SoundFX6 should be DrumKitSoundFX6 (golint)
    • Line 74: warning: don't use underscores in Go names; const DrumKit_SoundFX7 should be DrumKitSoundFX7 (golint)
    • midi/rpn/rpn.go
    • Line 14: warning: exported type Channel should have comment or be unexported (golint)
    • Line 25: warning: comment on exported method Channel.FineTuning should be of the form "FineTuning ..." (golint)
    • Line 30: warning: comment on exported method Channel.CoarseTuning should be of the form "CoarseTuning ..." (golint)
    • Line 35: warning: comment on exported method Channel.TuningProgramSelect should be of the form "TuningProgramSelect ..." (golint)
    • Line 40: warning: comment on exported method Channel.TuningBankSelect should be of the form "TuningBankSelect ..." (golint)
    • Line 64: warning: exported method Channel.Increment should have comment or be unexported (golint)
    • Line 73: warning: exported method Channel.Decrement should have comment or be unexported (golint)
    • midi/midimessage/channel/channel.go
    • Line 8: warning: comment on exported const Channel0 should be of the form "Channel0 ..." (golint)
    • Line 11: warning: comment on exported const Channel1 should be of the form "Channel1 ..." (golint)
    • Line 14: warning: comment on exported const Channel2 should be of the form "Channel2 ..." (golint)
    • Line 17: warning: comment on exported const Channel3 should be of the form "Channel3 ..." (golint)
    • Line 20: warning: comment on exported const Channel4 should be of the form "Channel4 ..." (golint)
    • Line 23: warning: comment on exported const Channel5 should be of the form "Channel5 ..." (golint)
    • Line 26: warning: comment on exported const Channel6 should be of the form "Channel6 ..." (golint)
    • Line 29: warning: comment on exported const Channel7 should be of the form "Channel7 ..." (golint)
    • Line 32: warning: comment on exported const Channel8 should be of the form "Channel8 ..." (golint)
    • Line 35: warning: comment on exported const Channel9 should be of the form "Channel9 ..." (golint)
    • Line 38: warning: comment on exported const Channel10 should be of the form "Channel10 ..." (golint)
    • Line 41: warning: comment on exported const Channel11 should be of the form "Channel11 ..." (golint)
    • Line 44: warning: comment on exported const Channel12 should be of the form "Channel12 ..." (golint)
    • Line 47: warning: comment on exported const Channel13 should be of the form "Channel13 ..." (golint)
    • Line 50: warning: comment on exported const Channel14 should be of the form "Channel14 ..." (golint)
    • Line 53: warning: comment on exported const Channel15 should be of the form "Channel15 ..." (golint)
    • Line 57: warning: exported function SetChannel should have comment or be unexported (golint)
    • midi/testdrv/driver.go
    • Line 21: warning: exported type Driver should have comment or be unexported (golint)
    • Line 31: warning: exported function New should have comment or be unexported (golint)
    • Line 41: warning: exported method Driver.Close should have comment or be unexported (golint)
    • Line 42: warning: exported method Driver.Ins should have comment or be unexported (golint)
    • Line 43: warning: exported method Driver.Outs should have comment or be unexported (golint)
    • midi/v2/drivers/testdrv/driver.go
    • Line 24: warning: exported type Driver should have comment or be unexported (golint)
    • Line 33: warning: exported function New should have comment or be unexported (golint)
    • Line 42: warning: exported method Driver.Close should have comment or be unexported (golint)
    • Line 43: warning: exported method Driver.Ins should have comment or be unexported (golint)
    • Line 44: warning: exported method Driver.Outs should have comment or be unexported (golint)
    • midi/driver.go
    • Line 10: warning: exported function RegisterDriver should have comment or be unexported (golint)
    • midi/reader/io.go
    • Line 63: warning: comment on exported method Reader.TempoBPM should be of the form "TempoBPM ..." (golint)
    • midi/v2/drivers/midicatdrv/in.go
    • Line 126: warning: receiver name i should be consistent with previous receiver name o for in (golint)
    • Line 131: warning: receiver name i should be consistent with previous receiver name o for in (golint)
    • Line 138: warning: receiver name i should be consistent with previous receiver name o for in (golint)
    • Line 143: warning: receiver name i should be consistent with previous receiver name o for in (golint)
    • Line 158: warning: receiver name i should be consistent with previous receiver name o for in (golint)
    • Line 181: warning: receiver name i should be consistent with previous receiver name o for in (golint)
    • Line 221: warning: receiver name i should be consistent with previous receiver name o for in (golint)
    • midi/gm/instruments.go
    • Line 12: warning: exported type Instr should have comment or be unexported (golint)
    • Line 14: warning: exported method Instr.Value should have comment or be unexported (golint)
    • Line 23: warning: don't use underscores in Go names; const Instr_AcousticGrandPiano should be InstrAcousticGrandPiano (golint)
    • Line 23: warning: exported const Instr_AcousticGrandPiano should have comment (or a comment on this block) or be unexported (golint)
    • Line 24: warning: don't use underscores in Go names; const Instr_BrightAcousticPiano should be InstrBrightAcousticPiano (golint)
    • Line 25: warning: don't use underscores in Go names; const Instr_ElectricGrandPiano should be InstrElectricGrandPiano (golint)
    • Line 26: warning: don't use underscores in Go names; const Instr_HonkytonkPiano should be InstrHonkytonkPiano (golint)
    • Line 27: warning: don't use underscores in Go names; const Instr_ElectricPiano1 should be InstrElectricPiano1 (golint)
    • Line 28: warning: don't use underscores in Go names; const Instr_ElectricPiano2 should be InstrElectricPiano2 (golint)
    • Line 29: warning: don't use underscores in Go names; const Instr_Harpsichord should be InstrHarpsichord (golint)
    • Line 30: warning: don't use underscores in Go names; const Instr_Clavi should be InstrClavi (golint)
    • Line 31: warning: don't use underscores in Go names; const Instr_Celesta should be InstrCelesta (golint)
    • Line 32: warning: don't use underscores in Go names; const Instr_Glockenspiel should be InstrGlockenspiel (golint)
    • Line 33: warning: don't use underscores in Go names; const Instr_MusicBox should be InstrMusicBox (golint)
    • Line 34: warning: don't use underscores in Go names; const Instr_Vibraphone should be InstrVibraphone (golint)
    • Line 35: warning: don't use underscores in Go names; const Instr_Marimba should be InstrMarimba (golint)
    • Line 36: warning: don't use underscores in Go names; const Instr_Xylophone should be InstrXylophone (golint)
    • Line 37: warning: don't use underscores in Go names; const Instr_TubularBells should be InstrTubularBells (golint)
    • Line 38: warning: don't use underscores in Go names; const Instr_Dulcimer should be InstrDulcimer (golint)
    • Line 39: warning: don't use underscores in Go names; const Instr_DrawbarOrgan should be InstrDrawbarOrgan (golint)
    • Line 40: warning: don't use underscores in Go names; const Instr_PercussiveOrgan should be InstrPercussiveOrgan (golint)
    • Line 41: warning: don't use underscores in Go names; const Instr_RockOrgan should be InstrRockOrgan (golint)
    • Line 42: warning: don't use underscores in Go names; const Instr_ChurchOrgan should be InstrChurchOrgan (golint)
    • Line 43: warning: don't use underscores in Go names; const Instr_ReedOrgan should be InstrReedOrgan (golint)
    • Line 44: warning: don't use underscores in Go names; const Instr_Accordion should be InstrAccordion (golint)
    • Line 45: warning: don't use underscores in Go names; const Instr_Harmonica should be InstrHarmonica (golint)
    • Line 46: warning: don't use underscores in Go names; const Instr_TangoAccordion should be InstrTangoAccordion (golint)
    • Line 47: warning: don't use underscores in Go names; const Instr_AcousticGuitarNylon should be InstrAcousticGuitarNylon (golint)
    • Line 48: warning: don't use underscores in Go names; const Instr_AcousticGuitarSteel should be InstrAcousticGuitarSteel (golint)
    • Line 49: warning: don't use underscores in Go names; const Instr_ElectricGuitarJazz should be InstrElectricGuitarJazz (golint)
    • Line 50: warning: don't use underscores in Go names; const Instr_ElectricGuitarClean should be InstrElectricGuitarClean (golint)
    • Line 51: warning: don't use underscores in Go names; const Instr_ElectricGuitarMuted should be InstrElectricGuitarMuted (golint)
    • Line 52: warning: don't use underscores in Go names; const Instr_OverdrivenGuitar should be InstrOverdrivenGuitar (golint)
    • Line 53: warning: don't use underscores in Go names; const Instr_DistortionGuitar should be InstrDistortionGuitar (golint)
    • Line 54: warning: don't use underscores in Go names; const Instr_Guitarharmonics should be InstrGuitarharmonics (golint)
    • Line 55: warning: don't use underscores in Go names; const Instr_AcousticBass should be InstrAcousticBass (golint)
    • Line 56: warning: don't use underscores in Go names; const Instr_ElectricBassFinger should be InstrElectricBassFinger (golint)
    • Line 57: warning: don't use underscores in Go names; const Instr_ElectricBassPick should be InstrElectricBassPick (golint)
    • Line 58: warning: don't use underscores in Go names; const Instr_FretlessBass should be InstrFretlessBass (golint)
    • Line 59: warning: don't use underscores in Go names; const Instr_SlapBass1 should be InstrSlapBass1 (golint)
    • Line 60: warning: don't use underscores in Go names; const Instr_SlapBass2 should be InstrSlapBass2 (golint)
    • Line 61: warning: don't use underscores in Go names; const Instr_SynthBass1 should be InstrSynthBass1 (golint)
    • Line 62: warning: don't use underscores in Go names; const Instr_SynthBass2 should be InstrSynthBass2 (golint)
    • Line 63: warning: don't use underscores in Go names; const Instr_Violin should be InstrViolin (golint)
    • Line 64: warning: don't use underscores in Go names; const Instr_Viola should be InstrViola (golint)
    • Line 65: warning: don't use underscores in Go names; const Instr_Cello should be InstrCello (golint)
    • Line 66: warning: don't use underscores in Go names; const Instr_Contrabass should be InstrContrabass (golint)
    • Line 67: warning: don't use underscores in Go names; const Instr_TremoloStrings should be InstrTremoloStrings (golint)
    • Line 68: warning: don't use underscores in Go names; const Instr_PizzicatoStrings should be InstrPizzicatoStrings (golint)
    • Line 69: warning: don't use underscores in Go names; const Instr_OrchestralHarp should be InstrOrchestralHarp (golint)
    • Line 70: warning: don't use underscores in Go names; const Instr_Timpani should be InstrTimpani (golint)
    • Line 71: warning: don't use underscores in Go names; const Instr_StringEnsemble1 should be InstrStringEnsemble1 (golint)
    • Line 72: warning: don't use underscores in Go names; const Instr_StringEnsemble2 should be InstrStringEnsemble2 (golint)
    • Line 73: warning: don't use underscores in Go names; const Instr_SynthStrings1 should be InstrSynthStrings1 (golint)
    • Line 74: warning: don't use underscores in Go names; const Instr_SynthStrings2 should be InstrSynthStrings2 (golint)
    • Line 75: warning: don't use underscores in Go names; const Instr_ChoirAahs should be InstrChoirAahs (golint)
    • Line 76: warning: don't use underscores in Go names; const Instr_VoiceOohs should be InstrVoiceOohs (golint)
    • Line 77: warning: don't use underscores in Go names; const Instr_SynthVoice should be InstrSynthVoice (golint)
    • Line 78: warning: don't use underscores in Go names; const Instr_OrchestraHit should be InstrOrchestraHit (golint)
    • Line 79: warning: don't use underscores in Go names; const Instr_Trumpet should be InstrTrumpet (golint)
    • Line 80: warning: don't use underscores in Go names; const Instr_Trombone should be InstrTrombone (golint)
    • Line 81: warning: don't use underscores in Go names; const Instr_Tuba should be InstrTuba (golint)
    • Line 82: warning: don't use underscores in Go names; const Instr_MutedTrumpet should be InstrMutedTrumpet (golint)
    • Line 83: warning: don't use underscores in Go names; const Instr_FrenchHorn should be InstrFrenchHorn (golint)
    • Line 84: warning: don't use underscores in Go names; const Instr_BrassSection should be InstrBrassSection (golint)
    • Line 85: warning: don't use underscores in Go names; const Instr_SynthBrass1 should be InstrSynthBrass1 (golint)
    • Line 86: warning: don't use underscores in Go names; const Instr_SynthBrass2 should be InstrSynthBrass2 (golint)
    • Line 87: warning: don't use underscores in Go names; const Instr_SopranoSax should be InstrSopranoSax (golint)
    • Line 88: warning: don't use underscores in Go names; const Instr_AltoSax should be InstrAltoSax (golint)
    • Line 89: warning: don't use underscores in Go names; const Instr_TenorSax should be InstrTenorSax (golint)
    • Line 90: warning: don't use underscores in Go names; const Instr_BaritoneSax should be InstrBaritoneSax (golint)
    • Line 91: warning: don't use underscores in Go names; const Instr_Oboe should be InstrOboe (golint)
    • Line 92: warning: don't use underscores in Go names; const Instr_EnglishHorn should be InstrEnglishHorn (golint)
    • Line 93: warning: don't use underscores in Go names; const Instr_Bassoon should be InstrBassoon (golint)
    • Line 94: warning: don't use underscores in Go names; const Instr_Clarinet should be InstrClarinet (golint)
    • Line 95: warning: don't use underscores in Go names; const Instr_Piccolo should be InstrPiccolo (golint)
    • Line 96: warning: don't use underscores in Go names; const Instr_Flute should be InstrFlute (golint)
    • Line 97: warning: don't use underscores in Go names; const Instr_Recorder should be InstrRecorder (golint)
    • Line 98: warning: don't use underscores in Go names; const Instr_PanFlute should be InstrPanFlute (golint)
    • Line 99: warning: don't use underscores in Go names; const Instr_BlownBottle should be InstrBlownBottle (golint)
    • Line 100: warning: don't use underscores in Go names; const Instr_Shakuhachi should be InstrShakuhachi (golint)
    • Line 101: warning: don't use underscores in Go names; const Instr_Whistle should be InstrWhistle (golint)
    • Line 102: warning: don't use underscores in Go names; const Instr_Ocarina should be InstrOcarina (golint)
    • Line 103: warning: don't use underscores in Go names; const Instr_Lead1Square should be InstrLead1Square (golint)
    • Line 104: warning: don't use underscores in Go names; const Instr_Lead2Sawtooth should be InstrLead2Sawtooth (golint)
    • Line 105: warning: don't use underscores in Go names; const Instr_Lead3Calliope should be InstrLead3Calliope (golint)
    • Line 106: warning: don't use underscores in Go names; const Instr_Lead4Chiff should be InstrLead4Chiff (golint)
    • Line 107: warning: don't use underscores in Go names; const Instr_Lead5Charang should be InstrLead5Charang (golint)
    • Line 108: warning: don't use underscores in Go names; const Instr_Lead6Voice should be InstrLead6Voice (golint)
    • Line 109: warning: don't use underscores in Go names; const Instr_Lead7Fifths should be InstrLead7Fifths (golint)
    • Line 110: warning: don't use underscores in Go names; const Instr_Lead8Basslead should be InstrLead8Basslead (golint)
    • Line 111: warning: don't use underscores in Go names; const Instr_Pad1Newage should be InstrPad1Newage (golint)
    • Line 112: warning: don't use underscores in Go names; const Instr_Pad2Warm should be InstrPad2Warm (golint)
    • Line 113: warning: don't use underscores in Go names; const Instr_Pad3Polysynth should be InstrPad3Polysynth (golint)
    • Line 114: warning: don't use underscores in Go names; const Instr_Pad4Choir should be InstrPad4Choir (golint)
    • Line 115: warning: don't use underscores in Go names; const Instr_Pad5Bowed should be InstrPad5Bowed (golint)
    • Line 116: warning: don't use underscores in Go names; const Instr_Pad6Metallic should be InstrPad6Metallic (golint)
    • Line 117: warning: don't use underscores in Go names; const Instr_Pad7Halo should be InstrPad7Halo (golint)
    • Line 118: warning: don't use underscores in Go names; const Instr_Pad8Sweep should be InstrPad8Sweep (golint)
    • Line 119: warning: don't use underscores in Go names; const Instr_FX1Rain should be InstrFX1Rain (golint)
    • Line 120: warning: don't use underscores in Go names; const Instr_FX2Soundtrack should be InstrFX2Soundtrack (golint)
    • Line 121: warning: don't use underscores in Go names; const Instr_FX3Crystal should be InstrFX3Crystal (golint)
    • Line 122: warning: don't use underscores in Go names; const Instr_FX4Atmosphere should be InstrFX4Atmosphere (golint)
    • Line 123: warning: don't use underscores in Go names; const Instr_FX5Brightness should be InstrFX5Brightness (golint)
    • Line 124: warning: don't use underscores in Go names; const Instr_FX6Goblins should be InstrFX6Goblins (golint)
    • Line 125: warning: don't use underscores in Go names; const Instr_FX7Echoes should be InstrFX7Echoes (golint)
    • Line 126: warning: don't use underscores in Go names; const Instr_FX8Scifi should be InstrFX8Scifi (golint)
    • Line 127: warning: don't use underscores in Go names; const Instr_Sitar should be InstrSitar (golint)
    • Line 128: warning: don't use underscores in Go names; const Instr_Banjo should be InstrBanjo (golint)
    • Line 129: warning: don't use underscores in Go names; const Instr_Shamisen should be InstrShamisen (golint)
    • Line 130: warning: don't use underscores in Go names; const Instr_Koto should be InstrKoto (golint)
    • Line 131: warning: don't use underscores in Go names; const Instr_Kalimba should be InstrKalimba (golint)
    • Line 132: warning: don't use underscores in Go names; const Instr_Bagpipe should be InstrBagpipe (golint)
    • Line 133: warning: don't use underscores in Go names; const Instr_Fiddle should be InstrFiddle (golint)
    • Line 134: warning: don't use underscores in Go names; const Instr_Shanai should be InstrShanai (golint)
    • Line 135: warning: don't use underscores in Go names; const Instr_TinkleBell should be InstrTinkleBell (golint)
    • Line 136: warning: don't use underscores in Go names; const Instr_Agogo should be InstrAgogo (golint)
    • Line 137: warning: don't use underscores in Go names; const Instr_SteelDrums should be InstrSteelDrums (golint)
    • Line 138: warning: don't use underscores in Go names; const Instr_Woodblock should be InstrWoodblock (golint)
    • Line 139: warning: don't use underscores in Go names; const Instr_TaikoDrum should be InstrTaikoDrum (golint)
    • Line 140: warning: don't use underscores in Go names; const Instr_MelodicTom should be InstrMelodicTom (golint)
    • Line 141: warning: don't use underscores in Go names; const Instr_SynthDrum should be InstrSynthDrum (golint)
    • Line 142: warning: don't use underscores in Go names; const Instr_ReverseCymbal should be InstrReverseCymbal (golint)
    • Line 143: warning: don't use underscores in Go names; const Instr_GuitarFretNoise should be InstrGuitarFretNoise (golint)
    • Line 144: warning: don't use underscores in Go names; const Instr_BreathNoise should be InstrBreathNoise (golint)
    • Line 145: warning: don't use underscores in Go names; const Instr_Seashore should be InstrSeashore (golint)
    • Line 146: warning: don't use underscores in Go names; const Instr_BirdTweet should be InstrBirdTweet (golint)
    • Line 147: warning: don't use underscores in Go names; const Instr_TelephoneRing should be InstrTelephoneRing (golint)
    • Line 148: warning: don't use underscores in Go names; const Instr_Helicopter should be InstrHelicopter (golint)
    • Line 149: warning: don't use underscores in Go names; const Instr_Applause should be InstrApplause (golint)
    • Line 150: warning: don't use underscores in Go names; const Instr_Gunshot should be InstrGunshot (golint)
    • midi/writer/writer.go
    • Line 21: warning: exported type ChannelWriter should have comment or be unexported (golint)
    • Line 30: warning: exported function Wrap should have comment or be unexported (golint)
    • Line 52: warning: exported method Writer.Channel should have comment or be unexported (golint)
    • midi/cc/cc.go
    • Line 4: warning: exported const Off should have comment (or a comment on this block) or be unexported (golint)
    • Line 82: warning: comment on exported var Name should be of the form "Name ..." (golint)
    • midi/nrpn/nrpn.go
    • Line 8: warning: exported type Channel should have comment or be unexported (golint)
    • Line 22: warning: exported method Channel.Increment should have comment or be unexported (golint)
    • Line 31: warning: exported method Channel.Decrement should have comment or be unexported (golint)
    • midi/v2/meta.go
    • Line 13: warning: exported function ReadMetaData should have comment or be unexported (golint)
    • Line 64: warning: exported function MetaMessage should have comment or be unexported (golint)
    • midi/v2/smf/smf.go
    • Line 9: warning: exported type Track should have comment or be unexported (golint)
    • Line 14: warning: exported function NewTrack should have comment or be unexported (golint)
    • Line 18: warning: exported method Track.IsEmpty should have comment or be unexported (golint)
    • Line 25: warning: exported method Track.Close should have comment or be unexported (golint)
    • Line 33: warning: exported method Track.Add should have comment or be unexported (golint)
    • Line 43: warning: exported method Track.SendTo should have comment or be unexported (golint)
    • Line 53: warning: exported type Event should have comment or be unexported (golint)
    • Line 58: warning: exported method Event.Message should have comment or be unexported (golint)
    • Line 62: warning: exported method Event.MsgType should have comment or be unexported (golint)
    • Line 66: warning: exported type TempoChange should have comment or be unexported (golint)
    • Line 71: warning: exported type TempoChanges should have comment or be unexported (golint)
    • Line 85: warning: exported method SMF.Format should have comment or be unexported (golint)
    • Line 108: warning: exported function ReadTracks should have comment or be unexported (golint)
    • Line 170: warning: exported type SMF should have comment or be unexported (golint)
    • Line 196: warning: exported method SMF.TempoChanges should have comment or be unexported (golint)
    • Line 200: warning: exported method SMF.Tracks should have comment or be unexported (golint)
    • Line 204: warning: exported method SMF.NumTracks should have comment or be unexported (golint)
    • Line 241: warning: exported method TempoChanges.TempoAt should have comment or be unexported (golint)
    • midi/v2/drivers/webmididrv/in.go
    • Line 31: warning: receiver name i should be consistent with previous receiver name o for in (golint)
    • Line 36: warning: receiver name i should be consistent with previous receiver name o for in (golint)
    • Line 43: warning: receiver name i should be consistent with previous receiver name o for in (golint)
    • Line 48: warning: receiver name i should be consistent with previous receiver name o for in (golint)
    • Line 61: warning: receiver name i should be consistent with previous receiver name o for in (golint)
    • Line 82: warning: receiver name i should be consistent with previous receiver name o for in (golint)
    • Line 158: warning: receiver name i should be consistent with previous receiver name o for in (golint)
    • midi/reader/callbacks.go
    • Line 8: warning: exported function SMFHeader should have comment or be unexported (golint)
    • Line 42: warning: comment on exported function TimeSig should be of the form "TimeSig ..." (golint)
    • Line 148: warning: comment on exported function DeprecatedChannel should be of the form "DeprecatedChannel ..." (golint)
    • Line 155: warning: comment on exported function DeprecatedPort should be of the form "DeprecatedPort ..." (golint)
    • Line 212: warning: comment on exported function ControlChange should be of the form "ControlChange ..." (golint)
    • Line 224: warning: comment on exported function RpnMSB should be of the form "RpnMSB ..." (golint)
    • Line 231: warning: comment on exported function RpnLSB should be of the form "RpnLSB ..." (golint)
    • Line 238: warning: comment on exported function RpnIncrement should be of the form "RpnIncrement ..." (golint)
    • Line 245: warning: comment on exported function RpnDecrement should be of the form "RpnDecrement ..." (golint)
    • Line 252: warning: comment on exported function RpnReset should be of the form "RpnReset ..." (golint)
    • Line 262: warning: comment on exported function NrpnMSB should be of the form "NrpnMSB ..." (golint)
    • Line 269: warning: comment on exported function NrpnLSB should be of the form "NrpnLSB ..." (golint)
    • Line 276: warning: comment on exported function NrpnIncrement should be of the form "NrpnIncrement ..." (golint)
    • Line 283: warning: comment on exported function NrpnDecrement should be of the form "NrpnDecrement ..." (golint)
    • Line 290: warning: comment on exported function NrpnReset should be of the form "NrpnReset ..." (golint)
    • Line 300: warning: comment on exported function RTClock should be of the form "RTClock ..." (golint)
    • Line 307: warning: comment on exported function RTTick should be of the form "RTTick ..." (golint)
    • Line 314: warning: comment on exported function RTActivesense should be of the form "RTActivesense ..." (golint)
    • Line 321: warning: comment on exported function RTStart should be of the form "RTStart ..." (golint)
    • Line 328: warning: comment on exported function RTStop should be of the form "RTStop ..." (golint)
    • Line 335: warning: comment on exported function RTContinue should be of the form "RTContinue ..." (golint)
    • Line 342: warning: comment on exported function RTReset should be of the form "RTReset ..." (golint)
    • Line 384: warning: comment on exported function SysEx should be of the form "SysEx ..." (golint)
    • Line 391: warning: comment on exported function SysExStart should be of the form "SysExStart ..." (golint)
    • Line 398: warning: comment on exported function SysExContinue should be of the form "SysExContinue ..." (golint)
    • Line 405: warning: comment on exported function SysExEnd should be of the form "SysExEnd ..." (golint)
    • Line 412: warning: comment on exported function SysExEscape should be of the form "SysExEscape ..." (golint)

license100%

Checks whether your project has a LICENSE file.

No problems detected. Good job!


ineffassign100%

IneffAssign detects ineffectual assignments in Go code.

No problems detected. Good job!


misspell94%

Misspell Finds commonly misspelled English words

    • midi/v2/internal/utils/utils.go
    • Line 29: warning: "Wass" is a misspelling of "Was" (misspell)
    • Line 50: warning: "Wass" is a misspelling of "Was" (misspell)
    • Line 68: warning: "Wass" is a misspelling of "Was" (misspell)
    • Line 251: warning: "Wass" is a misspelling of "Was" (misspell)
    • Line 270: warning: "Wass" is a misspelling of "Was" (misspell)
    • Line 298: warning: "Wass" is a misspelling of "Was" (misspell)
    • midi/internal/midilib/derived.go
    • Line 11: warning: "Wass" is a misspelling of "Was" (misspell)
    • Line 19: warning: "Wass" is a misspelling of "Was" (misspell)
    • Line 37: warning: "Wass" is a misspelling of "Was" (misspell)
    • Line 56: warning: "Wass" is a misspelling of "Was" (misspell)
    • Line 76: warning: "Wass" is a misspelling of "Was" (misspell)
    • Line 109: warning: "Wass" is a misspelling of "Was" (misspell)
    • Line 137: warning: "Wass" is a misspelling of "Was" (misspell)
    • Line 149: warning: "Wass" is a misspelling of "Was" (misspell)
    • Line 157: warning: "Wass" is a misspelling of "Was" (misspell)
    • Line 165: warning: "Wass" is a misspelling of "Was" (misspell)
    • Line 188: warning: "Wass" is a misspelling of "Was" (misspell)
    • midi/reader/smf.go
    • Line 19: warning: "infomation" is a misspelling of "information" (misspell)
    • Line 87: warning: "infomation" is a misspelling of "information" (misspell)