This repository was archived by the owner on Oct 28, 2024. It is now read-only.

Description
I am not joking.
I recommend you to use my SimpleTypeChecker.jl to scan your files, which can capture typing error more easily.
- Declare global variables in
const.jl as const
white_keys, black_keys should be declared with const xxx = .... Otherwise they are inferred as Any because they can be assigned with arbitrary values. This impacts a lot of functions.
- Reduce unnecessary use of
.... Mostly of time, there is no necessary to convert an iterator to a Vector, because it supports iterator protocol.
findfirst at const.jl:335 return Union{Nothing, ...}. All find functions return Union..., it's a good habit to check nothing and prevent usage of a Union{Nothing}
- In
const.jl, const Fingering = SortedDict{Note, Finger} is an abstract type.
Defined it as const Fingering = SortedDict{Note, Finger, Base.Order.ForwardOrdering}
- In
split.jl:77, split_length = ceil(notes_length / threads_num), ceil returns a Floating Number. You need to cast it to a Integer. Because it's reassigned with an Integer in the following code.
If you are unsure of what I have just said, please commit in this issue.