Jerry, i deleted the old auto Elite plugin and i just instaled the new modified one EliteknRider,And still doesn't work, for some reason It stops loading the skins from the skins folder.
If you can find out why is not working properly, will you fix it? Again!!!
I also wanted to tell you about Hal singing, Being that you are one of the people who has worked on Hal the most and that you know about scripting. I found a script or code to make virtual singer work. I was wondering if you can take a look at this code and tell me if somethiunthing like this would work to make Hal sing mp3 kareoke style.
Posted - 09/14/2006 : 22:30:43
--------------------------------------------------------------------------------
People who know about scripting Might be able to help me on this one.
I think we might be able to use some of this script to make hal sing like virtual singer, ( as far as I understand virtual singer works like a Kareokee machine, It will red the lyrics hidding in the song behind all the instruments and what vistual singer does,?; it follows the staff to look for tuning.
Here it is:
Include "MSDefine.mys"
Include "MSLibrary.mys"
Include "Set Staff Metrics.mys"
Include "Overlapping Notes and Rests.mys"
Include "Adjust Lyrics.mys"
function MergeBarbershopStyle()
local myScore
local firstStaff
local secStaff
local thirdStaff
local fourthStaff
local maxNrLyrics
local lyricsHeight
function AlertAndHelp(S)
myDialog=CreateDialog("AlertAndHelp.myc")
if myDialog == nil then Alert("Script Error, could not open Dialog") return(false) end
-- initialize dialog
myDialog.GetItem("AlertMessage").Value = S
-- wait for button
repeat
item=myDialog.Select()
if item ~= nil then
if item.Name=="Help" then
OpenFileWithDefaultApplication(GetCurrentPath() .. "barbershop merge.htm")
end
end
until item ~= nil and item.Name=="Ok"
myDialog.Dispose() --done with this dialog
end
function CheckStaff(myStaff, Nr)
if myStaff==nil then
if Nr==1 then
AlertAndHelp("The are no staves with lyrics in this score, 4 staves with lyrics are required for this script")
return(false)
else
AlertAndHelp("Staff nr " .. Nr .. " doesn't exist, 4 staves with lyrics are required for this script")
return(false)
end
end
if myStaff.IsLyrics==false then
AlertAndHelp("Staff " .. myStaff.Title .. " has no lyrics")
return(false)
end
if myStaff.FirstSymbol == nil then
AlertAndHelp("Staff " .. myStaff.Title .. " has no notes")
return(false)
end
myStaff.IsLyricsFrame = false
return(true)
end
function CheckClefAndKey(highStaff)
if highStaff.FirstBarSetting.Clef.Type==highStaff.Next.FirstBarSetting.Clef.Type and highStaff.FirstBarSetting.Clef.OctaveOffset==highStaff.Next.FirstBarSetting.Clef.OctaveOffset then
if highStaff.FirstBarSetting.KeySignature.Name==highStaff.Next.FirstBarSetting.KeySignature.Name then
return(true)
else
Alert( "Staff 1/2 and staff 3/4 should have the same key")
return(false)
end
else
Alert(" Staff 1/2 and staff 3/4 should have the same clef")
return(false)
end
end
------------------------------------------
-- MergeBarbershopStyle()
-------------------------------------------
orgScore=FrontScore()
if (orgScore==nil) then Alert("Please load Score") myScore.Dispose(false) return(false) end
orgScore.Preserve("Merge barber shop")
myScore=NewScore(false)
orgScore.CopyTo(myScore) -- we work on a copy of the score
firstStaff=myScore.FirstStaff
while firstStaff ~= nil and firstStaff.IsLyrics==false do firstStaff=firstStaff.Next end -- skip the first non-lyrics staves
if CheckStaff(firstStaff,1)==true then secStaff=firstStaff.Next else myScore.Dispose(false) return(false) end
if CheckStaff(secStaff,2)==true then thirdStaff=secStaff.Next else myScore.Dispose(false) return(false) end
if CheckStaff(thirdStaff,3)==true then fourthStaff=thirdStaff.Next else myScore.Dispose(false) return(false) end
if CheckStaff(fourthStaff,4)==false then myScore.Dispose(false) return(false) end
if CheckClefAndKey(firstStaff) == false then myScore.Dispose(false) return(false) end
if CheckClefAndKey(thirdStaff) == false then myScore.Dispose(false) return(false) end
-- we have four consequetive staves with attached lyrics
-- create dialog
myDialog=CreateDialog("Barbershop Style Merge.myc")
if myDialog == nil then Alert("Script Error, could not open Dialog") myScore.Dispose(false) return(false) end
-- initialize dialog
myDialog.GetItem("RadioNotSave").Value = true
myDialog.GetItem("firstStaff").Caption = firstStaff.Title
myDialog.GetItem("secStaff").Caption = secStaff.Title
myDialog.GetItem("thirdStaff").Caption = thirdStaff.Title
myDialog.GetItem("fourthStaff").Caption = fourthStaff.Title
if strlen(myDialog.GetItem("firstStaff").Caption) >= 4 then
if strlower(strsub(myDialog.GetItem("firstStaff").Caption,1,4))=="sopr" then myDialog.GetItem("firstStaff").Value=true
else myDialog.GetItem("secStaff").Value=true end
else myDialog.GetItem("secStaff").Value=true
end
-- wait for OK button
repeat
item=myDialog.Select()
if item ~= nil and item.Name=="Help" then
OpenFileWithDefaultApplication(GetCurrentPath() .. "barbershop merge.htm")
end
until item ~= nil and (item.Name=="Ok" or item.Name=="Cancel")
if item.Name~="Ok" then myScore.Dispose(false) return(false) end -- we will not execute the script
-- collect info from dialog
justPrint=myDialog.GetItem("RadioPrint").Value == true
justSave=myDialog.GetItem("RadioSave").Value == true
justOpen=myDialog.GetItem("RadioNotSave").Value == true
maxNrLyrics=myDialog.GetItem("NrLyricLines").Value
lyricsHeight=myDialog.GetItem("LyricsHeight").Value + 10
if myDialog.GetItem("firstStaff").Value==true then sourceStaff = firstStaff
elseif myDialog.GetItem("secStaff").Value==true then sourceStaff = secStaff
elseif myDialog.GetItem("thirdStaff").Value==true then sourceStaff = thirdStaff
else sourceStaff = fourthStaff end
myDialog.Dispose() --done with this dialog
-- first we move overlapping notes and rests
ProgressBar.Open("Resolving overlapping notes and rests in top staffs", 100)
OverlappingNotesAndRests(firstStaff)
ProgressBar.Write("Resolving overlapping notes and rests in bottom staffs")
if ProgressBar.Status(15)==true then myScore.Dispose(false) return(false) end
OverlappingNotesAndRests(thirdStaff)
-- remove "double" parts of the lyrics
if firstStaff ~= sourceStaff then
ProgressBar.Write("Adjusting lyrics in " .. firstStaff.Title .. " Staff")
if ProgressBar.Status(30)==true then myScore.Dispose(false) return(false) end
TailorLyrics(sourceStaff, firstStaff)
end
if secStaff ~= sourceStaff then
ProgressBar.Write("Adjusting lyrics in " .. secStaff.Title .. " Staff")
if ProgressBar.Status(30)==true then myScore.Dispose(false) return(false) end
TailorLyrics(sourceStaff, secStaff)
end
if thirdStaff ~= sourceStaff then
ProgressBar.Write("Adjusting lyrics in " .. thirdStaff.Title .. " Staff")
if ProgressBar.Status(40)==true then myScore.Dispose(false) return(false) end
TailorLyrics(sourceStaff, thirdStaff)
end
if fourthStaff ~= sourceStaff then
ProgressBar.Write("Adjusting lyrics in " .. fourthStaff.Title .. " Staff")
if ProgressBar.Status(50)==true then myScore.Dispose(false) return(false) end
TailorLyrics(sourceStaff, fourthStaff)
end
-- move the lyrics to the correct position in the staff space
ProgressBar.Write("Calculate Needed Staff height top staffs, please wait ....")
if ProgressBar.Status(60)==true then myScore.Dispose(false) return(false) end
SetStaffMetrics(firstStaff, maxNrLyrics, lyricsHeight, sourceStaff,0)
ProgressBar.Write("Calculate Needed Staff height bottom staffs, please wait ....")
if ProgressBar.Status(80)==true then myScore.Dispose(false) return(false) end
SetStaffMetrics(thirdStaff, maxNrLyrics, lyricsHeight, sourceStaff,1)
-- and merge
ProgressBar.Close()
firstStaff.MergeWithNext()
thirdStaff.MergeWithNext()
-- final handling
if justPrint==true then myScore.Print() myScore.Dispose(false)
elseif justSave==true then myScore.CopyTo(orgScore) orgScore.Save() myScore.Dispose(false) orgScore.Dispose(false)
elseif justOpen==true then myScore.CopyTo(orgScore) myScore.Dispose(false) orgScore.FirstStaff.Title=orgScore.FirstStaff.Title
else Alert("Script Error: nothing Selected") return(false) end
return(true) -- script succesfully executed
end -- of function MergeBarbershopStyle()
if MergeBarbershopStyle()==false then Message("Script not executed, Score left unchanged") end
Sergio
[

]