[31m-- Author      : Manuel De Girardi[m
[31m-- Date        : 2010/12/9[m
[31m-- Version     : 0.0.0pre-alpha_010[m
[31m-- Description : artificial neural network generator for MidiSurf[m
[31m-------------------------------------------------------------------------------[m

[01;34mwith[m Ada[31m.[mText_Io[31m;[m
[01;34muse[m Ada[31m.[mText_Io[31m;[m
[01;34mwith[m Ada[31m.[mStrings[31m,[m Ada[31m.[mStrings[31m.[mFixed[31m;[m
[01;34muse[m Ada[31m.[mStrings[31m,[m Ada[31m.[mStrings[31m.[mFixed[31m;[m
[01;34mpackage[m [01;34mbody[m Libsens[31m.[mNeural_Chord[31m.[mIo [01;34mis[m
      
   [01;34mprocedure[m [01;30mRead_From_File[m[31m([mFilename [31m:[m [01;34min[m [32mString[m[31m;[m  Target [31m:[m [01;34min[m [32mstring[m[31m)[m [01;34mis[m
   [01;34mbegin[m      
      [01;34mbegin[m
	 [01;30mOpen[m[31m([mData_File[31m,[m In_File[31m,[m Filename[31m);[m
	 Register_Io[31m.[m[01;30mcreate[m[31m([mReg_File[31m,[m Register_Io[31m.[mOut_File[31m,[m Target [31m&[m [31m".bin"[m[31m);[m
	 Buffer_Length [31m:=[m [35m0[m[31m;[m
	 The_Index [31m:=[m [35m0[m[31m;[m
	 Position [31m:=[m [35m1[m[31m;[m
	 [01;34mwhile[m [01;34mnot[m [01;30mEnd_Of_File[m[31m([mData_File[31m)[m [01;34mloop[m
	    [01;30mGet_line[m[31m([mData_File[31m,[m The_Line[31m,[m last[31m);[m
	 [01;34mend[m [01;34mloop[m[31m;[m

	 [01;34mloop[m
	    The_Index [31m:=[m [01;30mIndex[m[31m([m[01;30mThe_Line[m[31m([m[35m1[m[31m..[mLast[31m),[m [31m","[m[31m,[m position[31m,[m Forward[31m);[m
	    [01;34mexit[m [01;34mwhen[m The_Index [31m=[m [35m0[m[31m;[m
	    [01;30mBuffer[m[31m([mBuffer_Length[31m+[m[35m1[m[31m)[m [31m:=[m
	      [32mInteger[m'[01;30mValue[m[31m([m[01;30mThe_Line[m[31m([mPosition[31m..[mThe_Index[31m-[m[35m1[m[31m));[m
	    Position [31m:=[m The_Index[31m+[m[35m1[m[31m;[m
	    Buffer_Length [31m:=[m Buffer_Length [31m+[m [35m1[m[31m;[m
	 [01;34mend[m [01;34mloop[m[31m;[m
	 [01;34mfor[m I [01;34min[m [35m0[m[31m..[mBuffer_Length[31m-[m[35m1[m [01;34mloop[m
	    The_Bbyte [31m:=[m [31m([m[01;34mothers[m [31m=>[m False[31m);[m
	    The_Bbyte [31m:=[m [01;30mTo_bbyte[m[31m([m[01;30mBuffer[m[31m([mI[31m+[m[35m1[m[31m));[m
	    [01;34mfor[m J [01;34min[m [35m1[m[31m..[m[35m7[m [01;34mloop[m
	       [01;34mif[m [01;30mThe_Bbyte[m[31m([mJ[31m)[m [01;34mthen[m
		  [01;30mRegister[m[31m([m[35m7[m[31m*[mI[31m+[mJ[31m)[m [31m:=[m [35m1.0[m[31m;[m
	       [01;34mend[m [01;34mif[m[31m;[m
	    [01;34mend[m [01;34mloop[m[31m;[m
	 [01;34mend[m [01;34mloop[m[31m;[m
	 Register_Io[31m.[mWrite
	   [31m([mReg_File[31m,[m Register[31m,[m Register_io[31m.[m[31m"+"[m[31m([mRegister_Io[31m.[m[01;30mSize[m[31m([mReg_File[31m),[m[35m1[m[31m));[m
	 First [31m:=[m Register[31m;[m
	 [01;30mReset[m[31m([mData_File[31m);[m
	 [01;34mloop[m
	    Buffer_Length [31m:=[m [35m0[m[31m;[m
	    The_Index [31m:=[m [35m0[m[31m;[m
	    Position [31m:=[m [35m1[m[31m;[m
	    [01;30mGet_line[m[31m([mData_File[31m,[m The_Line[31m,[m last[31m);[m

	    [01;34mloop[m
	       The_Index [31m:=[m [01;30mIndex[m[31m([m[01;30mThe_Line[m[31m([m[35m1[m[31m..[mLast[31m),[m [31m","[m[31m,[m position[31m,[m Forward[31m);[m
	       [01;34mexit[m [01;34mwhen[m The_Index [31m=[m [35m0[m[31m;[m
	       [01;30mBuffer[m[31m([mBuffer_Length[31m+[m[35m1[m[31m)[m [31m:=[m
		 [32mInteger[m'[01;30mValue[m[31m([m[01;30mThe_Line[m[31m([mPosition[31m..[mThe_Index[31m-[m[35m1[m[31m));[m
	       Position [31m:=[m The_Index[31m+[m[35m1[m[31m;[m
	       Buffer_Length [31m:=[m Buffer_Length [31m+[m [35m1[m[31m;[m
	       [01;30mPut[m[31m([m[32mInteger[m'[01;30mImage[m[31m([m[01;30mBuffer[m[31m([mBuffer_Length[31m))[m [31m&[m [31m", "[m[31m);[m
	    [01;34mend[m [01;34mloop[m[31m;[m
	    New_Line[31m;[m
	    [01;34mfor[m I [01;34min[m [35m0[m[31m..[mBuffer_Length[31m-[m[35m1[m [01;34mloop[m
	       The_Bbyte [31m:=[m [31m([m[01;34mothers[m [31m=>[m False[31m);[m
	       The_Bbyte [31m:=[m [01;30mTo_bbyte[m[31m([m[01;30mBuffer[m[31m([mI[31m+[m[35m1[m[31m));[m
	       [01;34mfor[m J [01;34min[m [35m1[m[31m..[m[35m7[m [01;34mloop[m
		  [01;34mif[m [01;30mThe_Bbyte[m[31m([mJ[31m)[m [01;34mthen[m
		     [01;30mRegister[m[31m([m[35m7[m[31m*[mI[31m+[mJ[31m)[m [31m:=[m [35m1.0[m[31m;[m
		  [01;34mend[m [01;34mif[m[31m;[m
	       [01;34mend[m [01;34mloop[m[31m;[m
	    [01;34mend[m [01;34mloop[m[31m;[m

	    Register_Io[31m.[mWrite
	      [31m([mReg_File[31m,[m Register[31m,[m Register_io[31m.[m[31m"+"[m[31m([mRegister_Io[31m.[m[01;30mSize[m[31m([mReg_File[31m),[m[35m1[m[31m));[m
	    [01;34mexit[m [01;34mwhen[m [01;30mEnd_Of_File[m[31m([mData_File[31m);[m
	    Register_Io[31m.[mWrite
	      [31m([mReg_File[31m,[m Register[31m,[m Register_io[31m.[m[31m"+"[m[31m([mRegister_Io[31m.[m[01;30mSize[m[31m([mReg_File[31m),[m[35m1[m[31m));[m

	    Data_Length [31m:=[m Data_Length [31m+[m [35m1[m[31m;[m
	    Register [31m:=[m [31m([m[01;34mothers[m [31m=>[m [35m0.0[m[31m);[m

	 [01;34mend[m [01;34mloop[m[31m;[m

	 Register_Io[31m.[mWrite
	   [31m([mReg_File[31m,[m first[31m,[m Register_io[31m.[m[31m"+"[m[31m([mRegister_Io[31m.[m[01;30mSize[m[31m([mReg_File[31m),[m[35m1[m[31m));[m
	 Data_Length [31m:=[m Data_Length [31m+[m [35m1[m[31m;[m
	 [01;30mClose[m[31m([mData_File[31m);[m
	 Register_Io[31m.[m[01;30mClose[m[31m([mReg_File[31m);[m


      [01;34mexception[m
	 
	 [01;34mwhen[m Name_Error [31m=>[m
	    [01;34mraise[m Arg_Error[31m;[m
      [01;34mend[m[31m;[m      
   [01;34mend[m Read_From_File[31m;[m
[01;34mend[m Libsens[31m.[mNeural_Chord[31m.[mIo[31m;[m
