I have found a solution to the problem of getting an infile into saol,
but I an not sure if it is the right one. It works for the example file
in.saol for a stereo infile, and writing to a stereo outfile.
The code in question is in saol_sched.c: start_send_instrs()
the current source does this:
/* figure out the number of channels in the bus (YYY) */
    ct = 0;
    for (nl = sl->s->busses,ct=0;nl && nl->n; nl=nl->next)
        ct += get_bus(sa->all->g->bus,nl->n->name)->width;
    id = (instr_decl
*)(get_instr_decl(sa->all->g->sym,sl->s->instr)->defn);	
    ct = id->inchan;
The problem is that id->inchan is zero, so that though ct has counted to
2, as I want,
the value is obliterated on the following assignment.
Given that the original count is against get_bus()->width, 
      and that id->width IS set to 2,
a solution with works, so far, is to modify that line to:
    ct = MAX(ct,id->width);		       /* 1 */
If id->inchan is meant to be used, 
should it have been set to 2 earlier?          /* 2 */ 
OR:
        ct = MIN(ct,id->width);                /* 3 */
OR: should the line  be simply
    ct += id->inchan;                          /* 4 */
OR
    should that line just be omitted?	       /* 5  */
OR
    is the solution soemthing else entirely?   /* 6 */   
I just haven't learned the functioning of the code well enough to answer
this confidently myself, and it also depends on what is meant to happen,
which I am not sure of either!
I am using  the first solution at the moment, but I will abide by a
majority verdict!
        
Richard Dobson
-- Test your DAW with my Soundcard Attrition Page! http://wkweb5.cableinet.co.uk/rwd (LU: 23rd August 1999) CDP: http://www.bath.ac.uk/~masjpf/CDP/CDP.htm (LU: 14th June 1999)
This archive was generated by hypermail 2b29 : Wed May 10 2000 - 12:15:35 EDT