' ************************************************************ ' * * ' ************************************************************ #INCLUDE THIS ONCE ' declarations for g_har.dll #IF NOT %DEF(%g_har_inc) ' export declarations block '--- chordnumber harmony funcs and procs in g_crd.inc: ' declare HARM_GEN module DECLARE FUNCTION AddChords LIB "g_har.dll" (BYVAL cnr1%, BYVAL cnr2%) AS INTEGER DECLARE FUNCTION AddNoteInChord LIB "g_har.dll" (BYVAL cnr%, BYVAL note AS BYTE) AS INTEGER DECLARE FUNCTION Cnr2Ctp LIB "g_har.dll" (BYVAL c%, BYVAL Tc%) AS LONG DECLARE FUNCTION ComChords LIB "g_har.dll" (BYVAL cnr1%, BYVAL cnr2%) AS INTEGER DECLARE FUNCTION Ctp2Cnr LIB "g_har.dll" (BYVAL ChordType&, BYVAL n%) AS INTEGER DECLARE FUNCTION DelNoteInChord LIB "g_har.dll" (BYVAL cnr%, BYVAL note AS BYTE) AS INTEGER DECLARE FUNCTION DifChords LIB "g_har.dll" (BYVAL cnr1%, BYVAL cnr2%) AS INTEGER DECLARE FUNCTION Get3Kadens LIB "g_har.dll" (BYVAL cn1%, BYVAL cn2%, BYVAL cn3%, BYVAL cn4%) AS SINGLE DECLARE FUNCTION GetNrNotes LIB "g_har.dll" (BYVAL cnr%)AS INTEGER DECLARE FUNCTION GetRndNote LIB "g_har.dll" (BYVAL modus%, BYVAL Tc%)AS INTEGER DECLARE FUNCTION GetScaleCnr LIB "g_har.dll" (BYVAL modus%, BYVAL Tc%) AS INTEGER DECLARE FUNCTION GetTc LIB "g_har.dll" (BYVAL cnr%) AS INTEGER DECLARE FUNCTION IsNoteInChord LIB "g_har.dll" (BYVAL cnr%, BYVAL note%)AS INTEGER DECLARE FUNCTION MakeHarmChord LIB "g_har.dll" (BYVAL cnr%, BYVAL modus%, BYVAL harmsystem%)AS INTEGER DECLARE FUNCTION MakeChordNum LIB "g_har.dll" (BYVAL a%, BYVAL b%, BYVAL c%, BYVAL d%, BYVAL e%, BYVAL f%,_ BYVAL g%, BYVAL h%, BYVAL i%, BYVAL j%, BYVAL k%, BYVAL l%) AS INTEGER DECLARE FUNCTION Make3ChordNum LIB "g_har.dll" (BYVAL a%, BYVAL b%, BYVAL c%) AS INTEGER DECLARE FUNCTION Make4ChordNum LIB "g_har.dll" (BYVAL a%, BYVAL b%, BYVAL c%, BYVAL d%)AS INTEGER DECLARE FUNCTION MirCnr LIB "g_har.dll" (BYVAL cnr%, BYVAL note%) AS INTEGER DECLARE FUNCTION Neg LIB "g_har.dll" (BYVAL cnr%)AS INTEGER DECLARE FUNCTION NxNt LIB "g_har.dll" (BYVAL modus%, BYVAL Tc%, BYVAL note%, BYVAL sg%)AS INTEGER DECLARE FUNCTION ParConChord LIB "g_har.dll" (BYVAL t%, BYVAL c!, BYVAL tol!) AS INTEGER DECLARE FUNCTION ParaChord LIB "g_har.dll" (BYVAL t%, BYVAL d!, BYVAL c!, BYVAL tol!) AS INTEGER DECLARE FUNCTION ParDisChord LIB "g_har.dll" (BYVAL t%, BYVAL d!, BYVAL tol!) AS INTEGER DECLARE FUNCTION Rol LIB "g_har.dll" (BYVAL cnr%, BYVAL n%) AS INTEGER DECLARE FUNCTION Ror LIB "g_har.dll" (BYVAL cnr%, BYVAL n%) AS INTEGER DECLARE FUNCTION SameChord LIB "g_har.dll" (BYVAL Cnr1 AS INTEGER, BYVAL Cnr2 AS INTEGER) AS WORD ' 29.11.1999 DECLARE FUNCTION SetTc LIB "g_har.dll" (BYVAL cnr%, BYVAL Tc%) AS INTEGER DECLARE FUNCTION SolveCnr LIB "g_har.dll" (BYVAL Cnr AS INTEGER, BYVAL tc AS INTEGER) AS INTEGER ' 07.12.1999/24.10.2004 DECLARE FUNCTION TransChordNum LIB "g_har.dll" (BYVAL cnr%,BYVAL n%) AS INTEGER DECLARE FUNCTION TransChordType LIB "g_har.dll" (BYVAL ChordType&, BYVAL n%) AS LONG DECLARE FUNCTION VarChord LIB "g_har.dll" (BYVAL cnr%,BYVAL modus%) AS INTEGER 'procedures and function in g_har.bas DECLARE SUB GetDefaultFuzzyHarValues LIB "g_har.dll" (BYREF FuzInt() AS SINGLE) DECLARE FUNCTION DisHar LIB "g_har.dll" (BYVAL b1%, BYVAL b2%) AS SINGLE ' to be changed DECLARE FUNCTION DisHar3 LIB "g_har.dll" (BYVAL b1%, BYVAL b2%, BYVAL b3%) AS SINGLE ' to be changed DECLARE SUB GetFuzzyData LIB "g_har.dll" (f AS STRING, FuzInt() AS SINGLE) DECLARE SUB ShowHarmFuz LIB "g_har.dll" (BYVAL b%) '04.02.1999 DECLARE FUNCTION Richt LIB "g_har.dll" (BYVAL b1 AS CUR, BYVAL b2 AS CUR) AS INTEGER DECLARE FUNCTION HarmFrameQual LIB "g_har.dll" (Hm%(), BYVAL s%) AS SINGLE DECLARE FUNCTION HarmQual LIB "g_har.dll" (Hm%()) AS SINGLE DECLARE FUNCTION Cons LIB "g_har.dll" (BYVAL crd%) AS INTEGER ' to be changed DECLARE FUNCTION FuzFrameVar LIB "g_har.dll" (Hm%(), BYVAL SIZE%) AS SINGLE DECLARE FUNCTION GetConsonance LIB "g_har.dll" (BYVAL cnr%) AS SINGLE DECLARE FUNCTION GetDissonance LIB "g_har.dll" (BYVAL cnr%) AS SINGLE DECLARE SUB AddCnr2Har LIB "g_har.dll" (H AS HarmType, BYVAL Cnr%, BYVAL l%, BYVAL h%, BYVAL v%) DECLARE SUB AddShNo2Har LIB "g_har.dll" (H AS HarmType, BYVAL n AS BYTE, BYVAL v AS BYTE) DECLARE FUNCTION CommonHar$ LIB "g_har.dll" (H1 AS HarmType, H2 AS HarmType) DECLARE FUNCTION ConvergeHar$ LIB "g_har.dll" (H AS HarmType, BYVAL refnote%, BYVAL faktor!) DECLARE FUNCTION Fit2Mode$ LIB "g_har.dll" (H AS HarmType, BYVAL mode%, BYVAL tc%) DECLARE SUB AddNote2Har LIB "g_har.dll" (H AS HarmType, BYVAL n AS BYTE, BYVAL v AS BYTE) DECLARE SUB AddNote2QHar LIB "g_har.dll" (QH AS QHarmType, BYVAL n AS SINGLE, BYVAL v AS BYTE) '17.03.2007 DECLARE FUNCTION ComplementHar$ LIB "g_har.dll" (H AS HarmType, BYVAL ltes AS BYTE, BYVAL htes AS BYTE) ' 26.02.2000 DECLARE FUNCTION AbsDifHar$ LIB "g_har.dll" (H1 AS HarmType, H2 AS HarmType) DECLARE FUNCTION IsNoteInHar LIB "g_har.dll" (h AS Harmtype, BYVAL n AS BYTE) AS LONG ' 11.06.2001 DECLARE FUNCTION IsNoteInOktHar LIB "g_har.dll" (h AS Harmtype, BYVAL n AS BYTE) AS WORD ' 28.11.2012 DECLARE SUB DelNote2Har LIB "g_har.dll" (H AS HarmType, BYVAL n AS BYTE) DECLARE SUB DelShNo2Har LIB "g_har.dll" (H AS HarmType, BYVAL n AS BYTE) DECLARE FUNCTION GetNrInt LIB "g_har.dll" (H AS HarmType, BYVAL interval%, BYVAL norm!) AS INTEGER DECLARE FUNCTION GetNrNotesInHar LIB "g_har.dll" (H AS HarmType) AS DWORD DECLARE FUNCTION GetHighestNote LIB "g_har.dll" (h AS Harmtype, BYVAL low AS BYTE, BYVAL high AS BYTE) AS INTEGER DECLARE FUNCTION GetLowestNote LIB "g_har.dll" (h AS Harmtype, BYVAL low AS BYTE, BYVAL high AS BYTE) AS INTEGER DECLARE FUNCTION GetStrongest LIB "g_har.dll" (H AS HarmType, BYVAL n%) AS INTEGER ' returns cnr! DECLARE FUNCTION GetStrongestNoteVelo LIB "g_har.dll" (H AS HarmType) AS INTEGER ' added 27.02.2011 DECLARE FUNCTION GetStrongestQNote LIB "g_har.dll" (Qh AS QHarmType, velo AS BYTE, BYVAL lolim AS CUR, BYVAL hilim AS CUR) AS CUR ' 13.07.2013 DECLARE FUNCTION Har2Cnr LIB "g_har.dll" (H AS HarmType, BYVAL norm!) AS INTEGER DECLARE FUNCTION SolveHar$ LIB "g_har.dll" (H AS HarmType, BYVAL n%, BYVAL norm!) DECLARE FUNCTION SolveMaj2$ LIB "g_har.dll" (H AS HarmType, BYVAL n%, BYVAL norm!) DECLARE FUNCTION SolveMin2$ LIB "g_har.dll" (H AS HarmType, BYVAL n%, BYVAL norm!) DECLARE FUNCTION SolveTrit$ LIB "g_har.dll" (H AS HarmType, BYVAL n%, BYVAL norm!) DECLARE FUNCTION StealNoteFromHar LIB "g_har.dll" (H AS HarmType, BYVAL oldnoot%, BYVAL Lowtes%, BYVAL Hites%) AS INTEGER DECLARE SUB SubstNtInHar LIB "g_har.dll" (H AS HarmType, BYVAL n1%, BYVAL n2%) DECLARE FUNCTION SumHar$ LIB "g_har.dll" (H1 AS HarmType, H2 AS HarmType) DECLARE FUNCTION MirHar$ LIB "g_har.dll" (H AS HarmType, BYVAL n%) DECLARE FUNCTION SymDimHar$ LIB "g_har.dll" (H AS HarmType, BYVAL tc AS BYTE, BYVAL sg%) DECLARE FUNCTION MorfHar$ LIB "g_har.dll" (H1 AS HarmType, H2 AS HarmType, BYVAL modus%, BYVAL tc%, BYVAL INTEGER) DECLARE FUNCTION ReturnStrongestInHar LIB "g_har.dll" (h AS harmtype, BYVAL number AS LONG) AS STRING '02.07.2001 DECLARE FUNCTION ReturnStrongestInQhar LIB "g_har.dll" (qh AS Qharmtype, BYVAL number AS LONG) AS STRING '13.07.2013 DECLARE FUNCTION DifHar$ LIB "g_har.dll" (H1 AS HarmType, H2 AS HarmType) DECLARE FUNCTION InbetweenHar$ LIB "g_har.dll" (H1 AS HarmType, H2 AS HarmType) DECLARE FUNCTION InBetweenHarDown$ LIB "g_har.dll" (H1 AS HarmType, H2 AS HarmType) DECLARE FUNCTION InBetweenHarUp$ LIB "g_har.dll" (H1 AS HarmType, H2 AS HarmType) DECLARE FUNCTION DimIntInHar$ LIB "g_har.dll" (H AS HarmType, BYVAL tc%, BYVAL mode%, BYVAL degree%, BYVAL sg%) DECLARE FUNCTION DiminuteHar$ LIB "g_har.dll" (H AS HarmType, BYVAL tc%, BYVAL mode%, BYVAL steps%) DECLARE SUB ShiftdownStrongest LIB "g_har.dll" (H1 AS HarmType, H2 AS HarmType) DECLARE SUB TransHarm LIB "g_har.dll" (h AS Harmtype, BYVAL n AS INTEGER) ' 03.12.99 DECLARE SUB TransQHarm LIB "g_har.dll" (h AS Qharmtype, BYVAL n AS INTEGER) ' 01.04.2011 DECLARE SUB ShiftHar LIB "g_har.dll" (H1 AS HarmType, H2 AS HarmType, BYVAL v%) DECLARE FUNCTION QuestTcHar LIB "g_har.dll" (h AS harmtype, BYVAL norm AS SINGLE) AS INTEGER '04.12.1999 DECLARE FUNCTION LimitHar LIB "g_har.dll" (h AS harmtype, BYVAL lowlimit AS BYTE, BYVAL highlimit AS BYTE) AS STRING '06.09.2003 DECLARE FUNCTION ReScaleHarvel LIB "g_har.dll" (h AS harmtype, faktor AS SINGLE) AS STRING '05.11.2004 DECLARE FUNCTION GetScaleHar$ LIB "g_har.dll" (BYVAL mode%, BYVAL tc%, BYVAL vel%) DECLARE FUNCTION BuildJazzchord LIB "g_har.dll" (Tc AS INTEGER, BYVAL melnote AS BYTE, BYVAL v AS BYTE, OPTIONAL BYVAL span AS BYTE) AS STRING ' 28.11.2012 'DECLARE SUB GetJazzScale LIB "g_har.dll" (Tc AS INTEGER, BYVAL modus AS LONG, BYREF ladder() AS INTEGER) ' 29.11.2012 DECLARE SUB GetJazzScale LIB "g_har.dll" (Tc AS INTEGER, BYVAL modus AS LONG, BYVAL pladder AS INTEGER PTR) ' 01.12.2012 DECLARE SUB GetJazzHarScale LIB "g_har.dll" (Tc AS INTEGER, n AS INTEGER, BYVAL pl AS INTEGER PTR) ' 03.12.2012 ' added since version V4.04: DECLARE SUB SortChordsOnDissonance LIB "g_har.dll" (BYREF Akk() AS INTEGER, BYVAL param AS WORD, BYVAL velo AS BYTE) DECLARE SUB SortChordsOnConsonance LIB "g_har.dll" (BYREF Akk() AS INTEGER, BYVAL param AS WORD, BYVAL velo AS BYTE) ' fundamental functions for acoustics based harmony: DECLARE FUNCTION GetDipoleDis LIB "g_har.dll" (BYVAL f1%, BYVAL v1%, BYVAL f2%, BYVAL v2%) AS SINGLE ' moved here 16.01.07 DECLARE FUNCTION GetDipoleKon LIB "g_har.dll" (BYVAL f1 AS SINGLE, BYVAL v1%, BYVAL f2 AS SINGLE, BYVAL v2%) AS SINGLE '16.01.2007 DECLARE FUNCTION GetDipAkuDis LIB "g_har.dll" (BYVAL n1 AS CUR, BYVAL v1%, BYVAL n2 AS CUR, BYVAL v2%) AS SINGLE ' spectral DECLARE SUB FillHarType LIB "g_har.dll" (Har AS HarmType, OPTIONAL BYVAL flag AS DWORD) ' quartertone functions added after 16.01.2007 DECLARE FUNCTION F2QT LIB "g_har.dll" (BYVAL f!) AS SINGLE '21.06.2003 DECLARE FUNCTION QDipDis LIB "g_har.dll" (BYVAL n1 AS CUR, BYVAL v1 AS INTEGER, BYVAL n2 AS CUR, BYVAL v2 AS INTEGER) AS SINGLE DECLARE FUNCTION QDipKon LIB "g_har.dll" (BYVAL n1 AS CUR, BYVAL v1 AS INTEGER, BYVAL n2 AS CUR, BYVAL v2 AS INTEGER) AS SINGLE DECLARE FUNCTION QtriadDis LIB "g_har.dll" (BYVAL n1 AS CUR, BYVAL n2 AS CUR, BYVAL n3 AS CUR) AS SINGLE '01.10.2006 DECLARE FUNCTION QtriadKons LIB "g_har.dll" (BYVAL n1 AS CUR, BYVAL n2 AS CUR, BYVAL n3 AS CUR) AS SINGLE '01.10.2006 DECLARE FUNCTION LimitQHar LIB "g_har.dll" (h AS Qharmtype, BYVAL lowlimit AS CUR, BYVAL highlimit AS CUR) AS STRING '01.10.2006 DECLARE FUNCTION GetNrNotesInQHar LIB "g_har.dll" (H AS QHarmType) AS DWORD '01.10.2006 DECLARE FUNCTION QHarProps LIB "g_har.dll" (QHar AS QHarmtype, OPTIONAL BYVAL flag AS DWORD) AS SINGLE ' does dis and kons DECLARE FUNCTION Har2Qhar LIB "g_har.dll" (h AS harmtype, qh AS Qharmtype, OPTIONAL BYVAL trans AS LONG)AS LONG ' 01.10.2006 DECLARE SUB FillQHarType LIB "g_har.dll" (QHar AS QHarmType, OPTIONAL BYVAL flag AS DWORD) DECLARE FUNCTION IsNoteInQHar LIB "g_har.dll" (Qh AS QHarmtype, BYVAL n AS CUR) AS LONG ' returns velo DECLARE FUNCTION SumQHar$ LIB "g_har.dll" (H1 AS QHarmType, H2 AS QHarmType) ' returns string! DECLARE SUB QHar2LinSpec LIB "g_har.dll" (h AS QHarmType, Sp!()) DECLARE SUB QHar2Samp LIB "g_har.dll" (h AS QHarmType, Samp!()) DECLARE SUB LinSpec2QHar LIB "g_har.dll" (Sp!(), h AS QHarmType, BYVAL unitbandwidth AS SINGLE) DECLARE SUB Samp2QHar LIB "g_har.dll" (Samp!(), h AS QHarmType) DECLARE SUB SplitQhar LIB "g_har.dll" (qh AS QharmType, hl AS harmtype, hh AS harmtype) DECLARE SUB SubstNtInQHar LIB "g_har.dll" (h AS QHarmType, BYVAL n1 AS CUR, BYVAL n2 AS CUR) ' 23.01.2007 DECLARE FUNCTION QHarMod LIB "g_har.dll" (QHar AS QHarmtype,BYVAL param AS LONG, OPTIONAL BYVAL flag AS DWORD)AS LONG DECLARE SUB DelNote2Qhar LIB "g_har.dll" (Har AS Qharmtype, BYVAL n AS SINGLE) '05.09.2007 DECLARE SUB GetPsiQChord LIB "g_har.dll" (QHar AS QHarmType) 'DECLARE FUNCTION GetQAkuDis LIB "g_har.dll" (Har AS QHarmType) AS SINGLE DECLARE FUNCTION GetAkuCons LIB "g_har.dll" (Har AS HarmType, OPTIONAL BYVAL flag AS DWORD) AS SINGLE DECLARE FUNCTION GetAkuDis LIB "g_har.dll" (Har AS HarmType, OPTIONAL BYVAL flag AS DWORD) AS SINGLE ' existing since 2001. extended now. ' added 04.02.2008: gwr. DECLARE FUNCTION HH_DipDis LIB "g_har.dll" (BYVAL n1 AS SINGLE, BYVAL n2 AS SINGLE, OPTIONAL BYVAL w AS LONG) AS SINGLE ' generalized application functions: [added and debugged 10.02.2008 gwr] DECLARE FUNCTION HH_Diad LIB "g_har.dll" (BYVAL cents AS DWORD, BYVAL n1 AS CUR, BYREF n2 AS CUR, BYVAL d AS SINGLE) AS SINGLE DECLARE FUNCTION HH_Triad LIB "g_har.dll" (BYVAL cents AS DWORD, BYVAL n1 AS CUR, BYREF n2 AS CUR, BYREF n3 AS CUR, BYVAL d AS SINGLE) AS SINGLE DECLARE FUNCTION HH_Tetrad LIB "g_har.dll" (BYVAL cents AS DWORD, BYVAL n1 AS CUR, BYREF n2 AS CUR, BYREF n3 AS CUR, BYREF n4 AS CUR, BYVAL d AS SINGLE) AS SINGLE DECLARE FUNCTION HH_Chord_Progres LIB "g_har.dll" (BYVAL cents AS DWORD, BYREF ni()AS CUR, BYREF no() AS CUR, BYVAL d AS SINGLE) AS SINGLE ' functions usefull in any context (fractional midi generalized harmony) DECLARE FUNCTION CountPar5ths LIB "g_har.dll" (BYVAL cents AS DWORD, BYREF ni() AS CUR, BYREF no() AS CUR) AS LONG ' functions to mimize the number of parallel fifth movements in the voicing. Result returned in no() DECLARE FUNCTION MinPar5ths LIB "g_har.dll" (BYVAL cents AS DWORD, BYREF ni() AS CUR, BYREF no() AS CUR) AS LONG DECLARE FUNCTION Par5thInQHar LIB "g_har.dll" (h1 AS Qharmtype, h2 AS Qharmtype) AS LONG ' function to remove octave doublings in Qhar strings DECLARE FUNCTION ReduceQHar LIB "g_har.dll" (h1 AS Qharmtype, OPTIONAL BYREF n() AS CUR) AS LONG ' support for the tone clock: DECLARE FUNCTION ToneClockChord LIB "g_har.dll" (BYVAL tc AS WORD, BYVAL velo AS WORD, BYVAL hour AS WORD, BYVAL omkering AS WORD, OPTIONAL BYVAL ligging AS WORD) AS STRING DECLARE FUNCTION Har2Hour LIB "g_har.dll" (h AS harmtype, OPTIONAL treshold AS SINGLE) AS INTEGER DECLARE FUNCTION ToneClockSeries LIB "g_har.dll" (BYVAL tc AS INTEGER, BYVAL uur AS INTEGER, BYVAL vari AS INTEGER, BYREF n() AS INTEGER) AS WORD DECLARE FUNCTION SteeringHour LIB "g_har.dll" (uur AS INTEGER) AS STRING DECLARE FUNCTION SteeredHour LIB "g_har.dll" (uur AS INTEGER) AS STRING %True = 1 #ELSE ' - chordnumber funcs in g_crd.inc: DECLARE FUNCTION AddChords (BYVAL cnr1%, BYVAL cnr2%) AS INTEGER DECLARE FUNCTION AddNoteInChord (BYVAL cnr%, BYVAL note AS BYTE) AS INTEGER DECLARE FUNCTION Cnr2Ctp (BYVAL c%, BYVAL Tc%) AS LONG DECLARE FUNCTION ComChords (BYVAL cnr1%, BYVAL cnr2%) AS INTEGER DECLARE FUNCTION Ctp2Cnr (BYVAL ChordType&, BYVAL n%) AS INTEGER DECLARE FUNCTION DelNoteInChord (BYVAL cnr%, BYVAL note AS BYTE) AS INTEGER DECLARE FUNCTION DifChords (BYVAL cnr1%, BYVAL cnr2%) AS INTEGER DECLARE FUNCTION Get3Kadens (BYVAL cn1%, BYVAL cn2%, BYVAL cn3%, BYVAL cn4%) AS SINGLE 'DECLARE FUNCTION GetChordType (BYVAL cnr%, BYVAL Tc%) AS LONG ' where did this one get lost??? DECLARE FUNCTION GetNrNotes (BYVAL cnr%)AS INTEGER DECLARE FUNCTION GetRndNote (BYVAL modus%, BYVAL Tc%)AS INTEGER DECLARE FUNCTION GetScaleCnr (BYVAL modus%, BYVAL Tc%) AS INTEGER DECLARE FUNCTION GetTc (BYVAL cnr%) AS INTEGER DECLARE FUNCTION IsNoteInChord (BYVAL cnr%, BYVAL note%)AS INTEGER DECLARE FUNCTION MakeHarmChord (BYVAL cnr%, BYVAL modus%, BYVAL harmsystem%)AS INTEGER DECLARE FUNCTION MakeChordNum (BYVAL a%, BYVAL b%, BYVAL c%, BYVAL d%, BYVAL e%, BYVAL f%,_ BYVAL g%, BYVAL h%, BYVAL i%, BYVAL j%, BYVAL k%, BYVAL l%) AS INTEGER DECLARE FUNCTION Make3ChordNum (BYVAL a%, BYVAL b%, BYVAL c%) AS INTEGER DECLARE FUNCTION Make4ChordNum (BYVAL a%, BYVAL b%, BYVAL c%, BYVAL d%)AS INTEGER DECLARE FUNCTION MirCnr (BYVAL cnr%, BYVAL note%) AS INTEGER DECLARE FUNCTION Neg (BYVAL cnr%)AS INTEGER DECLARE FUNCTION NxNt (BYVAL modus%, BYVAL Tc%, BYVAL note%, BYVAL sg%)AS INTEGER DECLARE FUNCTION ParConChord (BYVAL t%, BYVAL c!, BYVAL tol!) AS INTEGER DECLARE FUNCTION ParaChord (BYVAL t%, BYVAL d!, BYVAL c!, BYVAL tol!) AS INTEGER DECLARE FUNCTION ParDisChord (BYVAL t%, BYVAL d!, BYVAL tol!) AS INTEGER DECLARE FUNCTION Rol (BYVAL cnr%, BYVAL n%) AS INTEGER DECLARE FUNCTION Ror (BYVAL cnr%, BYVAL n%) AS INTEGER DECLARE FUNCTION SameChord (BYVAL Cnr1 AS INTEGER, BYVAL Cnr2 AS INTEGER) AS WORD ' 29.11.1999 DECLARE FUNCTION SetTc (BYVAL cnr%, BYVAL Tc%) AS INTEGER DECLARE FUNCTION SolveCnr (BYVAL Cnr AS INTEGER, BYVAL tc AS INTEGER) AS INTEGER ' 07.12.1999/24.10.2004 DECLARE FUNCTION TransChordNum (BYVAL cnr%,BYVAL n%) AS INTEGER DECLARE FUNCTION TransChordType (BYVAL ChordType&, BYVAL n%) AS LONG DECLARE FUNCTION VarChord (BYVAL cnr%,BYVAL modus%) AS INTEGER '------------------------------------ DECLARE SUB GetDefaultFuzzyHarValues (BYREF FuzInt() AS SINGLE) DECLARE FUNCTION DisHar (BYVAL b1%, BYVAL b2%) AS SINGLE DECLARE FUNCTION DisHar3 (BYVAL b1%, BYVAL b2%, BYVAL b3%) AS SINGLE DECLARE FUNCTION DifHar$ (H1 AS HarmType, H2 AS HarmType) DECLARE FUNCTION ComplementHar$ (H AS HarmType, BYVAL ltes AS BYTE, BYVAL htes AS BYTE) ' 26.02.2000 DECLARE SUB GetFuzzyData (f AS STRING, FuzInt() AS SINGLE) DECLARE SUB ShowHarmFuz (BYVAL b%) '04.02.1999 DECLARE FUNCTION Richt (BYVAL b1 AS CUR, BYVAL b2 AS CUR) AS INTEGER DECLARE FUNCTION HarmFrameQual (Hm%(), BYVAL SIZE%) AS SINGLE DECLARE FUNCTION HarmQual (Hm%()) AS SINGLE DECLARE FUNCTION Cons (BYVAL crd%) AS INTEGER DECLARE FUNCTION FuzFrameVar (Hm%(), BYVAL SIZE%) AS SINGLE DECLARE FUNCTION GetConsonance (BYVAL cnr%) AS SINGLE DECLARE FUNCTION GetDissonance (BYVAL cnr%) AS SINGLE DECLARE FUNCTION GetScaleHar$ (BYVAL mode%, BYVAL tc%, BYVAL vel%) DECLARE SUB AddCnr2Har (H AS HarmType, BYVAL Cnr%, BYVAL l%, BYVAL h%, BYVAL v%) DECLARE FUNCTION AbsDifHar$ (H1 AS HarmType, H2 AS HarmType) DECLARE SUB AddNote2Har (H AS HarmType, BYVAL n AS BYTE, BYVAL v AS BYTE) DECLARE SUB AddNote2QHar (QH AS QHarmType, BYVAL n AS SINGLE, BYVAL v AS BYTE) DECLARE SUB AddShNo2Har (H AS HarmType, BYVAL n AS BYTE, BYVAL v AS BYTE) DECLARE FUNCTION CommonHar$ (H1 AS HarmType, H2 AS HarmType) DECLARE FUNCTION ConvergeHar$ (H AS HarmType, BYVAL refnote%, BYVAL faktor!) DECLARE FUNCTION Fit2Mode$ (H AS HarmType, BYVAL mode%, BYVAL tc%) DECLARE FUNCTION IsNoteInHar (h AS Harmtype, BYVAL n AS BYTE) AS LONG ' 11.06.2001 / modif. 20.01.2007 DECLARE FUNCTION IsNoteInOktHar (h AS Harmtype, BYVAL n AS BYTE) AS WORD ' 28.11.2012 DECLARE SUB DelNote2Har (H AS HarmType, BYVAL n AS BYTE) DECLARE SUB DelShNo2Har (H AS HarmType, BYVAL n AS BYTE) DECLARE SUB DelNote2Qhar (Har AS Qharmtype, BYVAL n AS SINGLE) '05.09.2007 DECLARE FUNCTION GetNrInt (H AS HarmType, BYVAL interval%, BYVAL norm!) AS INTEGER DECLARE FUNCTION GetNrNotesInHar (H AS HarmType) AS DWORD DECLARE FUNCTION GetHighestNote (h AS Harmtype, BYVAL low AS BYTE, BYVAL high AS BYTE) AS INTEGER DECLARE FUNCTION GetLowestNote (h AS Harmtype, BYVAL low AS BYTE, BYVAL high AS BYTE) AS INTEGER DECLARE FUNCTION GetStrongest (H AS HarmType, BYVAL n%) AS INTEGER DECLARE FUNCTION GetStrongestNoteVelo (H AS HarmType) AS INTEGER DECLARE FUNCTION GetStrongestQNote (H AS QHarmType, velo AS BYTE, BYVAL lolim AS CUR, BYVAL hilim AS CUR) AS CUR DECLARE FUNCTION Har2Cnr (H AS HarmType, BYVAL norm!) AS INTEGER DECLARE FUNCTION SolveHar$ (H AS HarmType, BYVAL n%, BYVAL norm!) DECLARE FUNCTION SolveMaj2$ (H AS HarmType, BYVAL n%, BYVAL norm!) DECLARE FUNCTION SolveMin2$ (H AS HarmType, BYVAL n%, BYVAL norm!) DECLARE FUNCTION SolveTrit$ (H AS HarmType, BYVAL n%, BYVAL norm!) DECLARE FUNCTION SymDimHar$ (H AS HarmType, BYVAL tc AS BYTE, BYVAL sg%) DECLARE FUNCTION MorfHar$ (H1 AS HarmType, H2 AS HarmType, BYVAL modus%, BYVAL tc%, BYVAL DBr%) DECLARE FUNCTION StealNoteFromHar (H AS HarmType, BYVAL oldnoot%, BYVAL Lowtes%, BYVAL Hites%) AS INTEGER DECLARE SUB SubstNtInHar (H AS HarmType, BYVAL n1%, BYVAL n2%) DECLARE FUNCTION SumHar$ (H1 AS HarmType, H2 AS HarmType) DECLARE FUNCTION MirHar$ (H AS HarmType, BYVAL n%) DECLARE FUNCTION ReturnStrongestInHar (h AS harmtype, BYVAL number AS LONG) AS STRING '02.07.2001 DECLARE FUNCTION ReturnStrongestInQhar (qh AS Qharmtype, BYVAL number AS LONG) AS STRING '13.07.2013 DECLARE FUNCTION InbetweenHar$ (H1 AS HarmType, H2 AS HarmType) DECLARE FUNCTION InBetweenHarDown$ (H1 AS HarmType, H2 AS HarmType) DECLARE FUNCTION InBetweenHarUp$ (H1 AS HarmType, H2 AS HarmType) DECLARE FUNCTION DimIntInHar$ (H AS HarmType, BYVAL tc%, BYVAL mode%, BYVAL degree%, BYVAL sg%) DECLARE FUNCTION DiminuteHar$ (H AS HarmType, BYVAL tc%, BYVAL mode%, BYVAL steps%) DECLARE SUB ShiftdownStrongest (H1 AS HarmType, H2 AS HarmType) DECLARE SUB TransHarm (h AS Harmtype, BYVAL n AS INTEGER) ' 03.12.99 DECLARE SUB TransQHarm (h AS Qharmtype, BYVAL n AS INTEGER) ' 01.04.2011 DECLARE SUB ShiftHar (H1 AS HarmType, H2 AS HarmType, BYVAL v%) DECLARE FUNCTION LimitHar (h AS harmtype, BYVAL lowlimit AS BYTE, BYVAL highlimit AS BYTE) AS STRING '06.09.2003 DECLARE FUNCTION ReScaleHarvel (h AS harmtype, faktor AS SINGLE) AS STRING '05.11.2004 DECLARE FUNCTION QuestTcHar (h AS harmtype, BYVAL norm AS SINGLE) AS INTEGER '04.12.1999 ' added since version V4.04: DECLARE SUB SortChordsOnDissonance (BYREF Akk() AS INTEGER, BYVAL param AS WORD, BYVAL velo AS BYTE) DECLARE SUB SortChordsOnConsonance (BYREF Akk() AS INTEGER, BYVAL param AS WORD, BYVAL velo AS BYTE) ' fundamental acoustics based harmony functions: DECLARE FUNCTION GetDipoleDis (BYVAL f1%, BYVAL v1%, BYVAL f2%, BYVAL v2%) AS SINGLE DECLARE FUNCTION GetDipoleKon (BYVAL f1 AS SINGLE, BYVAL v1%, BYVAL f2 AS SINGLE, BYVAL v2%) AS SINGLE ' 16.01.2007 DECLARE FUNCTION GetDipAkuDis (BYVAL n1 AS CUR, BYVAL v1%, BYVAL n2 AS CUR, BYVAL v2%) AS SINGLE ' spectral DECLARE SUB FillHarType (Har AS harmtype, OPTIONAL BYVAL flag AS DWORD) ' extended 20.01.2007 ' quartertone functions added 16.01.2007 DECLARE FUNCTION F2QT (BYVAL f!) AS SINGLE '21.06.2003 DECLARE FUNCTION QDipDis (BYVAL n1 AS CUR, BYVAL v1 AS INTEGER, BYVAL n2 AS CUR, BYVAL v2 AS INTEGER) AS SINGLE DECLARE FUNCTION QDipKon (BYVAL n1 AS CUR, BYVAL v1 AS INTEGER, BYVAL n2 AS CUR, BYVAL v2 AS INTEGER) AS SINGLE DECLARE FUNCTION LimitQHar (h AS Qharmtype, BYVAL lowlimit AS CUR, BYVAL highlimit AS CUR) AS STRING '01.10.2006 DECLARE FUNCTION GetNrNotesInQHar (H AS QHarmType) AS DWORD ' 01.10.2006 DECLARE FUNCTION Har2Qhar (h AS harmtype, qh AS Qharmtype, OPTIONAL BYVAL trans AS LONG) AS LONG ' 01.10.2006 DECLARE SUB FillQHarType (QHar AS QHarmType, OPTIONAL BYVAL flag AS DWORD) ' 19.01.2007 DECLARE FUNCTION QHarProps (QHar AS QHarmtype, OPTIONAL BYVAL flag AS DWORD) AS SINGLE ' 30.09.2006 DECLARE FUNCTION IsNoteInQHar (Qh AS QHarmtype, BYVAL n AS CUR) AS LONG ' 18.01.2007 DECLARE FUNCTION SumQHar$ (H1 AS QHarmType, H2 AS QHarmType) ' 18.01.2007 returns string! DECLARE SUB QHar2LinSpec (h AS QHarmType, Sp!()) ' 18.01.2007 DECLARE SUB QHar2Samp (h AS QHarmType, Samp!()) DECLARE SUB LinSpec2QHar (Sp!(), h AS QHarmType, BYVAL unitbandwidth AS SINGLE) DECLARE SUB Samp2QHar (Samp!(), h AS QHarmType) DECLARE SUB SplitQhar (qh AS QharmType, hl AS harmtype, hh AS harmtype) DECLARE SUB SubstNtInQHar(h AS QHarmType, BYVAL n1 AS CUR, BYVAL n2 AS CUR) ' 23.01.2007 DECLARE FUNCTION QHarMod (QHar AS QHarmtype,BYVAL param AS LONG, OPTIONAL BYVAL flag AS DWORD)AS LONG DECLARE FUNCTION GetQAkuDis (Har AS QHarmType) AS SINGLE ' added 04.02.2008 DECLARE FUNCTION HH_DipDis (BYVAL n1 AS SINGLE, BYVAL n2 AS SINGLE, OPTIONAL BYVAL w AS LONG) AS SINGLE ' generalized versions: [ gwr 10.02.2008] DECLARE FUNCTION HH_Diad (BYVAL cents AS DWORD, BYVAL n1 AS CUR, BYREF n2 AS CUR, BYVAL d AS SINGLE) AS SINGLE DECLARE FUNCTION HH_Triad (BYVAL cents AS DWORD, BYVAL n1 AS CUR, BYREF n2 AS CUR, BYREF n3 AS CUR, BYVAL d AS SINGLE) AS SINGLE DECLARE FUNCTION HH_Tetrad (BYVAL cents AS DWORD, BYVAL n1 AS CUR, BYREF n2 AS CUR, BYREF n3 AS CUR, BYREF n4 AS CUR, BYVAL d AS SINGLE) AS SINGLE DECLARE FUNCTION HH_Chord_Progres (BYVAL cents AS DWORD, BYREF ni()AS CUR, BYREF no() AS CUR, BYVAL d AS SINGLE) AS SINGLE DECLARE FUNCTION CountPar5ths (BYVAL cents AS DWORD, BYREF ni() AS CUR, BYREF no() AS CUR) AS LONG ' functions to mimize the number of parallel fifth movements in the voicing. Result returned in no() DECLARE FUNCTION MinPar5ths (BYVAL cents AS DWORD, BYREF ni() AS CUR, BYREF no() AS CUR) AS LONG DECLARE FUNCTION Par5thInQHar (h1 AS Qharmtype, h2 AS Qharmtype) AS LONG DECLARE FUNCTION ReduceQHar (h1 AS Qharmtype, OPTIONAL BYREF n() AS CUR) AS LONG ' toneclock procedures: (09.12.2011) DECLARE FUNCTION ToneClockChord (BYVAL tc AS WORD, BYVAL velo AS WORD, BYVAL hour AS WORD, BYVAL omkering AS WORD, OPTIONAL BYVAL ligging AS WORD) AS STRING DECLARE FUNCTION Har2Hour (h AS harmtype, OPTIONAL treshold AS SINGLE) AS INTEGER DECLARE FUNCTION ToneClockSeries (BYVAL tc AS INTEGER, BYVAL uur AS INTEGER, BYVAL vari AS INTEGER, BYREF n() AS INTEGER) AS WORD DECLARE FUNCTION SteeringHour (uur AS INTEGER) AS STRING DECLARE FUNCTION SteeredHour (uur AS INTEGER) AS STRING ' jazz-harmony functions DECLARE FUNCTION BuildJazzchord (Tc AS INTEGER, BYVAL melnote AS BYTE, BYVAL v AS BYTE, OPTIONAL BYVAL span AS BYTE) AS STRING ' 28.11.2012 'DECLARE SUB GetJazzScale (Tc AS INTEGER, BYVAL modus AS LONG, BYREF ladder() AS INTEGER) ' 29.11.2012 DECLARE SUB GetJazzScale (Tc AS INTEGER, BYVAL modus AS LONG, BYVAL pl AS INTEGER PTR) ' 01.12.2012 DECLARE SUB GetJazzHarScale (Tc AS INTEGER, n AS INTEGER, BYVAL pl AS INTEGER PTR) ' 03.12.2012 %True = 1 ' not exported functions and procedures: DECLARE SUB GetPsiQChord (QHar AS QHarmType) ' now exported DECLARE SUB GetQIntProp (QHar AS QHarmType) DECLARE FUNCTION GetConPsy (H AS HarmType) AS SINGLE ' used by fillhartype with flag= %use_fuzzypsy DECLARE FUNCTION GetDisPsy (H AS HarmType) AS SINGLE DECLARE FUNCTION QDip () AS SINGLE ' creates and holds the lookup for dipoles DECLARE FUNCTION GetAkuCons (Har AS HarmType, OPTIONAL BYVAL flag AS DWORD) AS SINGLE DECLARE FUNCTION GetAkuDis (Har AS HarmType, OPTIONAL BYVAL flag AS DWORD) AS SINGLE ' existing since 2001. extended now. DECLARE SUB GetIntProp (H AS HarmType) DECLARE SUB GetPsiChord (H AS HarmType) #ENDIF