Code:
#!/usr/bin/perl
use strict;
use warnings;
use Text::CSV;
my %num2note = (
0 => 'C-5',
1 => 'C#-5',
2 => 'D-5',
3 => 'D#-5',
4 => 'E-5',
5 => 'F-5',
6 => 'F#-5',
7 => 'G-5',
8 => 'G#-5',
9 => 'A-5',
10 => 'A#-5',
11 => 'B-5',
12 => 'C-4',
13 => 'C#-4',
14 => 'D-4',
15 => 'D#-4',
16 => 'E-4',
17 => 'F-4',
18 => 'F#-4',
19 => 'G-4',
20 => 'G#-4',
21 => 'A-4',
22 => 'A#-4',
23 => 'B-4',
24 => 'C-3',
25 => 'C#-3',
26 => 'D-3',
27 => 'D#-3',
28 => 'E-3',
29 => 'F-3',
30 => 'F#-3',
31 => 'G-3',
32 => 'G#-3',
33 => 'A-3',
34 => 'A#-3',
35 => 'B-3',
36 => 'C-2',
37 => 'C#-2',
38 => 'D-2',
39 => 'D#-2',
40 => 'E-2',
41 => 'F-2',
42 => 'F#-2',
43 => 'G-2',
44 => 'G#-2',
45 => 'A-2',
46 => 'A#-2',
47 => 'B-2',
48 => 'C-1',
49 => 'C#-1',
50 => 'D-1',
51 => 'D#-1',
52 => 'E-1',
53 => 'F-1',
54 => 'F#-1',
55 => 'G-1',
56 => 'G#-1',
57 => 'A-1',
58 => 'A#-1',
59 => 'B-1',
60 => 'C0',
61 => 'C#0',
62 => 'D0',
63 => 'D#0',
64 => 'E0',
65 => 'F0',
66 => 'F#0',
67 => 'G0',
68 => 'G#0',
69 => 'A0',
70 => 'A#0',
71 => 'B0',
72 => 'C1',
73 => 'C#1',
74 => 'D1',
75 => 'D#1',
76 => 'E1',
77 => 'F1',
78 => 'F#1',
79 => 'G1',
80 => 'G#1',
81 => 'A1',
82 => 'A#1',
83 => 'B1',
84 => 'C2',
85 => 'C#2',
86 => 'D2',
87 => 'D#2',
88 => 'E2',
89 => 'F2',
90 => 'F#2',
91 => 'G2',
92 => 'G#2',
93 => 'A2',
94 => 'A#2',
95 => 'B2',
96 => 'C3',
97 => 'C#3',
98 => 'D3',
99 => 'D#3',
100 => 'E3',
101 => 'F3',
102 => 'F#3',
103 => 'G3',
104 => 'G#3',
105 => 'A3',
106 => 'A#3',
107 => 'B3',
108 => 'C4',
109 => 'C#4',
110 => 'D4',
111 => 'D#4',
112 => 'E4',
113 => 'F4',
114 => 'F#4',
115 => 'G4',
116 => 'G#4',
117 => 'A4',
118 => 'A#4',
119 => 'B4',
120 => 'C5',
121 => 'C#5',
122 => 'D5',
123 => 'D#5',
124 => 'E5',
125 => 'F5',
126 => 'F#5',
127 => 'G5',
);
my $file = 'out.csv';
my $csv = Text::CSV->new( {eol => "\n"} );
#open (CSV, "<", $file) or die $!;
while (<DATA>) {
#next if ($. == 1);
if ($csv->parse($_)) {
my @columns = $csv->fields();
s/^\s+|\s+$//g for @columns;
$columns[4] = $num2note{$columns[4]} if $columns[2] =~ /^Note/;
$csv->print(\*STDOUT, \@columns);
} else {
my $err = $csv->error_input;
print "Failed to parse '$_': $err";
}
}
#close CSV;
__DATA__
2, 0, Pitch_bend_c, 0, 8242
2, 0, Control_c, 0, 11, 38
2, 0, Note_on_c, 0, 36, 71
Output of D:\test>