# Java - 921 characters I build up each string seperately, storing each string in an array. Then loop through the array and print out each line. public class D{public static void main(String[] args){char[] z=args[0].toCharArray(); char[] y=new char[3]; y[0]=('H'==z[0]||'L'==z[0])?z[0]:'N'; int o=(y[0]=='N')?0:1; y[1]=z[o++]; y[2]=z.length>o?z[o]:'!'; int n=y[1]<'C'?((int) (y[1] - 'A')) + 6:((int) (y[1] - 'C')) + 1; n=(y[0]=='N')?n+7:(y[0]=='H'?n+14:n); String s=" "; String b=" --- "; String[] q=new String[22]; for (int i=1;i<=21;i+=2){q[i]=s;} for (int i=10;i<=18;i+=2){q[i]="-----";} q[20]=n>19?b:s; q[2]=n<3?b:s; q[4]=n<5?b:s; q[6]=n<7?b:s; q[8]=n<9?b:s; char c=q[n].charAt(0); char e=q[n].charAt(1); char[] h=new char[]{c,y[2]=='!'?e:y[2],'O',e,c}; q[n]=new String(h); for (int i=0;i<22;i++){if (n<14&&i-n<4&&i>n) q[i]=q[i]!=null?q[i].substring(0,3)+"|"+q[i].charAt(4):s; else if (n>13&&n-i<4&&n>i) q[i]=q[i]!=null?q[i].substring(0,3)+"|"+q[i].charAt(4):s;} for (int i=21;i>=0;i--) if (!(i>n&&i>18||i<n&&i<10)) System.out.println((q[i]==null)?s:q[i]);}} Oh please don't hate me, it's my first time. I coulnd't find any faq/introduction so I hope my posting format is ok. Not sure how serious people got about character counts.... normal version of the code - extra is linebreak/spaces (1313 characters): public class DisplayNote { public static void main(String[] args) { char[] z=args[0].toCharArray(); char[] y=new char[3]; y[0]=('H'==z[0]||'L'==z[0])?z[0]:'N'; int o=(y[0]=='N')?0:1; y[1]=z[o++]; y[2]=z.length>o?z[o]:'!'; int noteValue=y[1]<'C'?((int) (y[1] - 'A')) + 6:((int) (y[1] - 'C')) + 1; noteValue=(y[0]=='N')?noteValue+7:(y[0]=='H'?noteValue+14:noteValue); String s=" "; String b=" --- "; String[] out=new String[22]; for (int i=1;i<=21;i+=2){out[i]=s;} for (int i=10;i<=18;i+=2){out[i]="-----";} out[20]=noteValue>19?b:s; out[2]=noteValue<3?b:s; out[4]=noteValue<5?b:s; out[6]=noteValue<7?b:s; out[8]=noteValue<9?b:s; char c=out[noteValue].charAt(0); char e=out[noteValue].charAt(1); char[] h=new char[]{c,y[2]=='!'?e:y[2],'O',e,c}; out[noteValue]=new String(h); for (int i=0;i<22;i++) { if (noteValue<14&&i-noteValue<4&&i>noteValue) out[i]=out[i]!=null?out[i].substring(0,3)+"|"+out[i].charAt(4):s; else if (noteValue>13&¬eValue-i<4&¬eValue>i) out[i]=out[i]!=null?out[i].substring(0,3)+"|"+out[i].charAt(4):s; } for (int i=21;i>=0;i--) if (!(i>noteValue&&i>18||i<noteValue&&i<10)) System.out.println((out[i]==null)?s:out[i]); } }