home *** CD-ROM | disk | FTP | other *** search
Java Source | 2017-09-21 | 3.5 KB | 122 lines |
- public class CLayer {
-
- final int RYMOD_CONSTANT=0;
- final int RYMOD_BETWEEN=1;
- final int RYMOD_PERIODIC=2;
- final int RYMOD_NONE=3;
- final int NUM_RYMODS=4;
- final char MID_C = 60;
-
- CScale Scale()
- { return m_pstzParent.sclGetScale();
- }
-
- public boolean bSetChordMatch (boolean bMatch/*=1*/)
- { m_bMatchChord = bMatch; return true; }
- public boolean bMatchChord () { return m_bMatchChord; }
-
- public boolean bSetRhythm (CRhythm pRthm)
- { m_pRhythm = pRthm; return true; }
- public CRhythm pRhythm () { return m_pRhythm; }
-
- public boolean bSetRthmStatus (int rymod)
- { m_rymod = rymod; return true; }
- public int rymodRthmStatus () { return m_rymod; }
-
- public boolean bSetRthmStatusArg2 (double fArg)
- { m_fRymodArg = fArg; return true; }
- //---------------------------
- public boolean bSetRthmStatusArg (char pvArg)
- { switch (m_rymod) {
- case RYMOD_CONSTANT:
- return bSetRthmStatusArg2((double)(1 + (int)(pvArg)/16));
- case RYMOD_BETWEEN:
- return bSetRthmStatusArg2((double)(pvArg)/127.0);
- case RYMOD_PERIODIC:
- return bSetRthmStatusArg2((double)(2 + (int)(pvArg)/8));
- default: //assert(0); // no break;
- case RYMOD_NONE: return false;
- }
- }
- //---------------------------
-
- public double fRthmStatusArg () { return m_fRymodArg; }
- //---------------------------
- public char pvRthmStatusArg ()
- { switch (m_rymod) {
- case RYMOD_CONSTANT:
- return (char)(int)((fRthmStatusArg()-1.0) * 16.0);
- case RYMOD_BETWEEN:
- return (char)(int)(fRthmStatusArg()*127.0);
- case RYMOD_PERIODIC:
- return (char)(int)((fRthmStatusArg()-2.0) * 8.0);
- default: //assert(0); break;
- case RYMOD_NONE: break;
- }
- return 0;
- }
- //---------------------------
-
- public boolean bSetActive (boolean bActive/*=1*/)
- { m_bActive=bActive; return true; }
- public boolean bActive () { return m_bActive; }
-
- public boolean bSetConsonance (char pvCons)
- { m_pvConsonance = pvCons; return true; }
- public char pvConsonance () { return m_pvConsonance; }
-
- public boolean bSetDirection (char pvDir)
- { m_pvDirection = pvDir; return true; }
- public char pvDirection () { return m_pvDirection; }
-
- public boolean bSetInstrument (char pvInst)
- { m_pvInstrument = pvInst; return true; }
- public char pvInstrument () { return m_pvInstrument; }
-
- public boolean bSetPitchMagnet (char pvMag)
- { m_pvPitchMagnet = pvMag; return true; }
- public char pvPitchMagnet () { return m_pvPitchMagnet; }
-
- // Members
- CStanza m_pstzParent;
- boolean m_bMatchChord;
- char m_pvConsonance; // How important is KeyPriority?
- char m_pvDirection; // Which way does the pitch go?
- char m_pvInstrument; // MIDI instrument program number.
- char m_pvPitchMagnet; // Central MIDI note number.
-
- CRhythm m_pRhythm;
- int m_rymod;
- double m_fRymodArg;
-
- boolean m_bActive;
-
- // Construction/Destruction:
- //---------------------------
- CLayer (CStanza pstzParent, CRhythm pRthm/*=0*/)
- {
- m_pstzParent=pstzParent;
- m_bMatchChord=true; m_pvConsonance=64;
- m_pvDirection=64; m_pvInstrument=0; m_pvPitchMagnet=MID_C;
- m_pRhythm=pRthm; m_rymod=RYMOD_NONE; m_fRymodArg=0;
- m_bActive=true;
- }
- //---------------------------
- public CLayer Set (CLayer lyr)
- {
- m_bMatchChord = lyr.m_bMatchChord;
-
- m_pvConsonance = lyr.m_pvConsonance;
- m_pvDirection = lyr.m_pvDirection;
- m_pvInstrument = lyr.m_pvInstrument;
- m_pvPitchMagnet = lyr.m_pvPitchMagnet;
-
- m_pRhythm = lyr.m_pRhythm;
- m_rymod = lyr.m_rymod;
- m_fRymodArg = lyr.m_fRymodArg;
-
- m_bActive = lyr.m_bActive;
- return this;
- }
-
- } // end CLayer