1, 2, 4, 6, 12, 24, 36, 48, 60, 120, 180, 240, 360, 720, 840, 1260, 1680, 2520, 5040, 7560
4 is in the sequence because it has 3 divisors (namely 1, 2, 4), whereas 3 only has 2 divisors, 2 also has 2 divisors, and 1 has 1 divisors.
Given a positive integer input n, output either the n-th highly composite number or the first n highly composite numbers, at your choice (but the choice must be the same for every input n).
The program or function should theoretically work for arbitrarily large inputs given infinite time and memory, and without considering data type limitations. Essentially, this means no hardcoding a finite number of values.
In practice, the program or function should run in a reasonable amount of time, say less than 1 minute, for n up to 20. Maximum input or output may be limited by your language standard data type (but again, the algorithm should theoretically work for arbitrarily large numbers).
Any reasonable input and output format is allowed, including unary.
Code golf. Fewest bytes wins.