You need to pick whether you want to order the songs in an album alphabetically (not likely IMHO) or by number (much more likely, since I wouldn't want to listen to Dark Side of the Moon in any order other than the original intention). As I alluded to in a comment above, you can't do both.
To sort by number:
SELECT Title, Singer, Album
FROM dbo.Songs
ORDER BY Singer, Album,
CONVERT(INT, SUBSTRING(Title, 1, CHARINDEX('.', Title)));
To sort the title alphabetically:
SELECT Title, Singer, Album
FROM dbo.Songs
ORDER BY Singer, Album,
SUBSTRING(Title, CHARINDEX('.', Title) + 1, 255);
-- 255 or whatever the column is defined as
A lot of people will suggest LEN(Title) but to me that's a calculation that's unnecessary. The only case where it would be justified, IMHO, is in cases where the schema is evolving rapidly and the max length of that column could not be considered "stable." In those cases I might still suggest just using a higher number that is likely to accommodate any future size increases for that column, say 4000.
As @a1ex07 hinted, you should consider storing the number and the title separately. You can do this as follows:
ALTER TABLE dbo.Songs ADD SongNumber TINYINT;
ALTER TABLE dbo.Songs ADD SongTitle VARCHAR(255);
UPDATE dbo.Songs SET
SongNumber = CONVERT(TINYINT, SUBSTRING(Title, 1, CHARINDEX('.', Title))),
SongTitle = SUBSTRING(Title, CHARINDEX('.', Title) + 1, 255);
-- once you've verified:
ALTER TABLE dbo.Songs DROP COLUMN Title;
You'll also have to update any processes that access this table (or create a view and point them at the view). Now if you want to sort by SongNumber or SongTitle, your ORDER BY clause is much simpler. (But you still won't be able to sort by both, and it makes a lot of sense if you think about it.)