DVD-quality lessons (including tabs/sheet music) available for immediate viewing on any device.
Take your playing to the next level with the help of a local or online banjo teacher.
Weekly newsletter includes free lessons, favorite member content, banjo news and more.
|
Please note this is an archived topic, so it is locked and unable to be replied to. You may, however, start a new topic and refer to this topic with a link: http://www.banjohangout.org/archive/218387
J-Walk - Posted - 10/18/2011: 15:43:15
Based on my collection of about 11,000 tracks, here are the most common titles (after cleaning them up for consistency).
No surprises, really -- except for Cumberland Gap. I had no idea I had that many recordings of that tune.

vrteach - Posted - 10/18/2011: 15:48:08
Hmm.
Is that a single version of "Liza Jane" or several tunes/songs by that name?
edit: reading your post again I think I know the answer
I'm suprised to see "Shelvin Rock" in the list, "Lady of the Lake," too.
Edited by - vrteach on 10/18/2011 15:49:52
J-Walk - Posted - 10/18/2011: 16:03:39
I made no effort to distinguish different tunes with the same name, or the same tune with different names. That would have taken all month!
BANJOJUDY - Posted - 10/18/2011: 18:36:41
You have way too much time on your hands.
Of course, I probably do too. Just counted 70 on my Cumberland Gap list and only 44 Cluck Old Hen.
Someone told me that Cluck Old Hen was the most recorded old time tune - maybe he was wrong - looks as though Cumberland Gap is winning the race hands down.
37 for Sally Ann .
You obviously have more recordings than I do - my total tunes on iTunes numbers 51545.
What number of tunes do YOU have (not just J-Walk - all of you) stored on your computer?
J-Walk - Posted - 10/18/2011: 18:46:46
Imagine those tunes in a jam. Somebody calls...
Cumberland Gap. Which key? How many parts?
OK, Cluck Old Hen. The one popularized by Milliner & Koken, or the real one?
Never mind, let's go with Sally Ann. Which key? That's like Great Big Taters, right?
OK, it's Forked Deer. Is that same as Forky Deer?
Next tune, Arkansas Traveler. Everyone agrees on that one. Key of D.
Lost Indian? Take you pick from 4-5 tunes with that name.
Soldier's Joy. More agreement. Everybody plays in in D, except for those who play it in G.
Shady Grove? Take you pick from two minor keys. Is there a B part??
Cripple Creek. More agreement. Except for the key. Is it A or G?
John Henry... Is this bluegrass jam, or what?
June Apple. Finally! Complete agreement. Key of A. Except for that fiddler who insists on playing it like what's his name played it.
John Brown's Dream... Yep, key of A. But do you play the C part once or twice?
Blah, blah, blah...
J-Walk - Posted - 10/18/2011: 18:51:29
You have way too much time on your hands.
That's what people say when they are jealous! :)
Yeah, I have plenty of free time. I have 56,785 tracks in my library. About 12,00 of them are old-time tracks. We should swap back-up drives, Judy. There's probably a lot of overlap, but there's also probably a lot of non-overlap.
earlsgranada - Posted - 10/18/2011: 19:01:39
I think it's Clarence Ashley's "Cuckoo Bird" that #1. Just a thought.
~Craig
BANJOJUDY - Posted - 10/18/2011: 19:10:23
quote:
Originally posted by J-Walk
You have way too much time on your hands.
That's what people say when they are jealous! :)
Yeah, I have plenty of free time. I have 56,785 tracks in my library. About 12,00 of them are old-time tracks. We should swap back-up drives, Judy. There's probably a lot of overlap, but there's also probably a lot of non-overlap.
OK - I am willing to consolidate your drive with mine. You can bring it to ABQ and then we could play. Marc Robert is moving up here in a few weeks. You know him, correct? Anyway, if I couldnt' get you here for Adam Hurt, maybe I can get you here for a drive swap....sweet.
Judy
maryzcox - Posted - 10/18/2011: 19:12:41
quote:
Originally posted by J-Walk
Based on my collection of about 11,000 tracks, here are the most common titles (after cleaning them up for consistency).
No surprises, really -- except for Cumberland Gap. I had no idea I had that many recordings of that tune.
Thanks for putting this up--I find it very helpful. :)
Best wishes,
Mary Z. Cox
J-Walk - Posted - 10/18/2011: 19:21:17
If you think that's helpful, just wait until you see my post tomorrow: A word frequency count!
For the first time, you will know the post popular words used in OT tunes. Stay tuned.
ScottK - Posted - 10/18/2011: 20:50:27
My first reaction to this list was, "That's a great list of tunes for folk who want to start getting out to jams!" We get that question all the time on BHO. "What tunes should I learn to prepare for going out to jams?" I know (as in I can play them from memory) almost all the tunes on the list, like all of them, and have followed the handful that I don't know at various times at jams and festivals.
My second reaction to this list was, "On the other hand, I hosted a picking party Sunday and we played tunes from about 1:00pm 'til 10:00pm (taking breaks to eat here and there) and we only hit about a half dozen tunes on that list." In case you're curious, the tunes we hit (as best I can recall) were Big Scioty, Boatman, Breaking Up Christmas, Angeline the Baker, Liza Jane, and Julianne Johnson.
So go figure. If you're contemplating getting out to jams, my advice is always, "Get out there ASAP so you can start learning the local repertoire."
Waiting with bated breath to see where chickens and rabbits show up in the word frequency count. :-)
Scott
carlb - Posted - 10/19/2011: 06:49:37
from: ibiblio.org/folkindex/
I'm not checking if a few are really book references but some have quite a few tablature references; thus numbers then represent recorded and published.
Liberty - 64
Cumberland Gap - 116
Cripple Creek - 171
St. Anne's Reel - 68
Soldier's Joy - 227
Old Joe Clark - 246
John Henry - 275
Chicken Reel - 57
Cindy - 94
I leave it to someone else to subtract the published versions to lower these numbers to only recorded versions.
mojo_monk - Posted - 10/19/2011: 07:34:41
Great project!
I've always wanted to somehow catalog my collection (+15k OT files), but I haven't found the right program to do it. iTunes sucks WAYYY too much memory for my liking so I've pretty well sworn that one off the list.
Any other suggestions?
-Sean
J-Walk - Posted - 10/19/2011: 08:05:54
If you have a copy of Excel, this might work:
spreadsheetpage.com/index.php/...e_lister/
BANJOJUDY - Posted - 10/19/2011: 08:28:59
quote:
Originally posted by J-Walk
If you have a copy of Excel, this might work:
spreadsheetpage.com/index.php/...e_lister/
I tried this - enabled editing, etc., and the darned spreadsheet hangs at about 604. Any ideas? I am using 2010 Excel for Windows on a OS 7 machine.
J-Walk - Posted - 10/19/2011: 09:05:40
If it hangs on the same MP3 file every time, it could be a corrupt file. Also, sometimes it appears to crash (i.e., "no responding" appears in the title bar) but if you just let it go, it eventually recovers.
I'd like to see a tally of the 12,982 tracks uploaded to Banjo Hangout. I guess I could write a program to scrape the data from 130 pages of listings, but there should be an easier way.
BANJOJUDY - Posted - 10/19/2011: 09:13:18
Option Explicit
' By John Walkenbach
' Maybe be distributed freely, but not sold
'API declarations
Declare Function SHGetPathFromIDList Lib "shell32.dll" _
Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long
Declare Function SHBrowseForFolder Lib "shell32.dll" _
Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long
Public Type BROWSEINFO
hOwner As Long
pidlRoot As Long
pszDisplayName As String
lpszTitle As String
ulFlags As Long
lpfn As Long
lParam As Long
iImage As Long
End Type
Sub GetAllFiles()
Dim Msg As String
Dim Directory As String
Msg = "Select the directory that contains the MP3 files. All subdirectories will be included."
Directory = GetDirectory(Msg)
If Directory = "" Then Exit Sub
If Right(Directory, 1) <> "\" Then Directory = Directory & "\"
Worksheets("Sheet1").Activate
Cells.Clear
Call RecursiveDir(Directory)
End Sub
Function GetDirectory(Optional Msg) As String
Dim bInfo As BROWSEINFO
Dim path As String
Dim r As Long, x As Long, pos As Integer
' Root folder = Desktop
bInfo.pidlRoot = 0&
' Title in the dialog
If IsMissing(Msg) Then
bInfo.lpszTitle = "Select a folder."
Else
bInfo.lpszTitle = Msg
End If
' Type of directory to return
bInfo.ulFlags = &H1
' Display the dialog
x = SHBrowseForFolder(bInfo)
' Parse the result
path = Space$(512)
r = SHGetPathFromIDList(ByVal x, ByVal path)
If r Then
pos = InStr(path, Chr$(0))
GetDirectory = Left(path, pos - 1)
Else
GetDirectory = ""
End If
End Function
Public Sub RecursiveDir(ByVal currdir As String)
Dim Dirs() As String
Dim NumDirs As Long
Dim filename As String
Dim PathAndName As String
Dim i As Long
Dim Row As Long
' Make sure path ends in backslash
If Right(currdir, 1) <> "\" Then currdir = currdir & "\"
Application.ScreenUpdating = False
' Put column headings on active sheet
Cells(1, 1) = "Path"
Cells(1, 2) = "Filename"
Cells(1, 3) = "Artist"
Cells(1, 4) = "Album"
Cells(1, 5) = "Title"
Cells(1, 6) = "Track#"
Cells(1, 7) = "Genre"
Cells(1, 8) = "Duration"
Cells(1, 9) = "Size"
Range("A1:I1").Font.Bold = True
' Get files
filename = Dir(currdir & "*.*", vbDirectory)
Do While Len(filename) <> 0
If Left$(filename, 1) <> "." Then 'Current dir
PathAndName = currdir & filename
If (GetAttr(PathAndName) And vbDirectory) = vbDirectory Then
'store found directories
ReDim Preserve Dirs(0 To NumDirs) As String
Dirs(NumDirs) = PathAndName
NumDirs = NumDirs + 1
Else
If UCase(Right(filename, 3)) = "MP3" Then
Row = WorksheetFunction.CountA(Range("A:A")) + 1
Cells(Row, 1) = currdir 'path
Cells(Row, 2) = filename 'filename
Cells(Row, 3) = FileInfo(currdir, filename, 20) 'artist
Cells(Row, 4) = FileInfo(currdir, filename, 14) 'album
Cells(Row, 5) = FileInfo(currdir, filename, 21) 'title
Cells(Row, 6) = FileInfo(currdir, filename, 26) 'track
Cells(Row, 7) = FileInfo(currdir, filename, 16) 'genre
Cells(Row, 8) = FileInfo(currdir, filename, 27) 'duration
Cells(Row, 9) = Application.Round(FileLen(currdir & filename) / 1024, 0) 'size
Application.StatusBar = Row
End If
End If
End If
filename = Dir()
Loop
' Process the found directories, recursively
For i = 0 To NumDirs - 1
RecursiveDir Dirs(i)
Next i
Application.StatusBar = False
End Sub
Function FileInfo(path, filename, item) As Variant
Dim objShell As IShellDispatch4
Dim objFolder As Folder3
Dim objFolderItem As FolderItem2
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(path)
Set objFolderItem = objFolder.ParseName(filename)
FileInfo = objFolder.GetDetailsOf(objFolderItem, item)
Set objShell = Nothing
Set objFolder = Nothing
Set objFolderItem = Nothing
End Function
this line came up as an error in yellow:
If (GetAttr(PathAndName) And vbDirectory) = vbDirectory Then
J-Walk - Posted - 10/19/2011: 09:54:09
If you hold the cursor over PathAndName, you should see the current value of that variable. That would be the file that's causing the problem. Try temporarily moving it to a different location on your hard drive.
robertsart - Posted - 10/19/2011: 10:07:37
Jeez... And you think J-Walk has too much time on his hands?!?
quote:
Originally posted by BANJOJUDY
Option Explicit
' By John Walkenbach
' Maybe be distributed freely, but not sold
'API declarations
Declare Function SHGetPathFromIDList Lib "shell32.dll" _
Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long
Declare Function SHBrowseForFolder Lib "shell32.dll" _
Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long
Public Type BROWSEINFO
hOwner As Long
pidlRoot As Long
pszDisplayName As String
lpszTitle As String
ulFlags As Long
lpfn As Long
lParam As Long
iImage As Long
End Type
Sub GetAllFiles()
Dim Msg As String
Dim Directory As String
Msg = "Select the directory that contains the MP3 files. All subdirectories will be included."
Directory = GetDirectory(Msg)
If Directory = "" Then Exit Sub
If Right(Directory, 1) <> "\" Then Directory = Directory & "\"
Worksheets("Sheet1").Activate
Cells.Clear
Call RecursiveDir(Directory)
End Sub
Function GetDirectory(Optional Msg) As String
Dim bInfo As BROWSEINFO
Dim path As String
Dim r As Long, x As Long, pos As Integer
' Root folder = Desktop
bInfo.pidlRoot = 0&
' Title in the dialog
If IsMissing(Msg) Then
bInfo.lpszTitle = "Select a folder."
Else
bInfo.lpszTitle = Msg
End If
' Type of directory to return
bInfo.ulFlags = &H1
' Display the dialog
x = SHBrowseForFolder(bInfo)
' Parse the result
path = Space$(512)
r = SHGetPathFromIDList(ByVal x, ByVal path)
If r Then
pos = InStr(path, Chr$(0))
GetDirectory = Left(path, pos - 1)
Else
GetDirectory = ""
End If
End Function
Public Sub RecursiveDir(ByVal currdir As String)
Dim Dirs() As String
Dim NumDirs As Long
Dim filename As String
Dim PathAndName As String
Dim i As Long
Dim Row As Long
' Make sure path ends in backslash
If Right(currdir, 1) <> "\" Then currdir = currdir & "\"
Application.ScreenUpdating = False
' Put column headings on active sheet
Cells(1, 1) = "Path"
Cells(1, 2) = "Filename"
Cells(1, 3) = "Artist"
Cells(1, 4) = "Album"
Cells(1, 5) = "Title"
Cells(1, 6) = "Track#"
Cells(1, 7) = "Genre"
Cells(1, 8) = "Duration"
Cells(1, 9) = "Size"
Range("A1:I1").Font.Bold = True
' Get files
filename = Dir(currdir & "*.*", vbDirectory)
Do While Len(filename) <> 0
If Left$(filename, 1) <> "." Then 'Current dir
PathAndName = currdir & filename
If (GetAttr(PathAndName) And vbDirectory) = vbDirectory Then
'store found directories
ReDim Preserve Dirs(0 To NumDirs) As String
Dirs(NumDirs) = PathAndName
NumDirs = NumDirs + 1
Else
If UCase(Right(filename, 3)) = "MP3" Then
Row = WorksheetFunction.CountA(Range("A:A")) + 1
Cells(Row, 1) = currdir 'path
Cells(Row, 2) = filename 'filename
Cells(Row, 3) = FileInfo(currdir, filename, 20) 'artist
Cells(Row, 4) = FileInfo(currdir, filename, 14) 'album
Cells(Row, 5) = FileInfo(currdir, filename, 21) 'title
Cells(Row, 6) = FileInfo(currdir, filename, 26) 'track
Cells(Row, 7) = FileInfo(currdir, filename, 16) 'genre
Cells(Row, 8) = FileInfo(currdir, filename, 27) 'duration
Cells(Row, 9) = Application.Round(FileLen(currdir & filename) / 1024, 0) 'size
Application.StatusBar = Row
End If
End If
End If
filename = Dir()
Loop
' Process the found directories, recursively
For i = 0 To NumDirs - 1
RecursiveDir Dirs(i)
Next i
Application.StatusBar = False
End Sub
Function FileInfo(path, filename, item) As Variant
Dim objShell As IShellDispatch4
Dim objFolder As Folder3
Dim objFolderItem As FolderItem2
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(path)
Set objFolderItem = objFolder.ParseName(filename)
FileInfo = objFolder.GetDetailsOf(objFolderItem, item)
Set objShell = Nothing
Set objFolder = Nothing
Set objFolderItem = Nothing
End Function
this line came up as an error in yellow:
If (GetAttr(PathAndName) And vbDirectory) = vbDirectory Then
Pine Cone - Posted - 10/19/2011: 10:20:31
Mostly worked for me. I'm running Excel 2003 on a Windows XP machine. I'll try it with Excel 2010 next.
Columns have slightly different contents than your headings, but most of what I cataloged are not commercial MP3s. Path and filename are correct, Artist = Genre, Album is mostly what looks like a bunch of hex, Title = Duration, Track# is blank, Genre = Artist, Duration is blank, and Size looks correct.
Nice to see another VBA coder around here. I'll do some debugging later today or this evening.
Thanks!
Edited by - Pine Cone on 10/19/2011 10:21:57
J-Walk - Posted - 10/19/2011: 11:00:18
This is an example of where to start your debugging:
Cells(Row, 3) = FileInfo(currdir, filename, 20) 'artist
Just vary the 3rd argument for FileInfo and see what you get.
Apparently the data you get depends on the version of Widows. Microsoft added a whole bunch of new file attributes beginning with Windows Vista (I think). Unfortunately, they didn't keep the old ones consistent.
Pine Cone - Posted - 10/19/2011: 11:09:34
Already figured it out while you were posting... here is the revised subroutine that works on my version of Windows and Excel.
Public Sub RecursiveDir(ByVal currdir As String)
Dim Dirs() As String
Dim NumDirs As Long
Dim filename As String
Dim PathAndName As String
Dim i As Long
Dim iCol As Long
Dim Row As Long
' Make sure path ends in backslash
If Right(currdir, 1) <> "\" Then currdir = currdir & "\"
Application.ScreenUpdating = False
' Put column headings on active sheet
Cells(1, 1) = "Path"
Cells(1, 2) = "Filename"
Cells(1, 3) = "Artist"
Cells(1, 4) = "Album"
Cells(1, 5) = "Title"
Cells(1, 6) = "Track#"
Cells(1, 7) = "Genre"
Cells(1, 8) = "Duration"
Cells(1, 9) = "Size"
Range("A1:I1").Font.Bold = True
'
' Get files
filename = Dir(currdir & "*.*", vbDirectory)
Do While Len(filename) <> 0
If Left$(filename, 1) <> "." Then 'Current dir
PathAndName = currdir & filename
If (GetAttr(PathAndName) And vbDirectory) = vbDirectory Then
'store found directories
ReDim Preserve Dirs(0 To NumDirs) As String
Dirs(NumDirs) = PathAndName
NumDirs = NumDirs + 1
Else
If UCase(Right(filename, 3)) = "MP3" Then
Row = WorksheetFunction.CountA(Range("A:A")) + 1
Cells(Row, 1) = currdir 'path
Cells(Row, 2) = filename 'filename
'Original columns here...
'Cells(Row, 3) = FileInfo(currdir, filename, 20) 'artist
'Cells(Row, 4) = FileInfo(currdir, filename, 14) 'album
'Cells(Row, 5) = FileInfo(currdir, filename, 21) 'title
'Cells(Row, 6) = FileInfo(currdir, filename, 26) 'track
'Cells(Row, 7) = FileInfo(currdir, filename, 16) 'genre
'Cells(Row, 8) = FileInfo(currdir, filename, 27) 'duration
'Revised Column numbers here....
Cells(Row, 3) = FileInfo(currdir, filename, 16) 'artist
Cells(Row, 4) = FileInfo(currdir, filename, 17) 'album
Cells(Row, 5) = FileInfo(currdir, filename, 10) 'title
Cells(Row, 6) = FileInfo(currdir, filename, 19) 'track
Cells(Row, 7) = FileInfo(currdir, filename, 12) 'genre
Cells(Row, 8) = FileInfo(currdir, filename, 21) 'duration
Cells(Row, 9) = Application.Round(FileLen(currdir & filename) / 1024, 0) 'size
'
'
Application.StatusBar = Row
End If
End If
End If
filename = Dir()
Loop
' Process the found directories, recursively
For i = 0 To NumDirs - 1
RecursiveDir Dirs(i)
Next i
Application.StatusBar = False
End Sub
Now it works great! Thanks for sharing this
Mark Johnson - Posted - 10/19/2011: 11:23:58
A few random thoughts:
-You've got Cotton Eyed Joe on there twice, JWalk. Once with 25, once with 32, no obvious spelling differences etc. Curious.
-If pressed to play these tunes on command, I could probably only manage about 15 of them. It hadn't really occurred to me before, but I've spent most of my playing time either chasing random songs that grab my attention or just jamming without really knowing the tune. Consequently, I could play you a lovely version of a tune you've never heard, or jam with you on Forked Deer, but I couldn't play you Forked Deer solo if my life depended on it. I'm currently trying to decide if I'm bothered by this or not...
-I love this place. Spreadsheet nerdiness and banjos all in one big lump! This is great.
J-Walk - Posted - 10/19/2011: 12:08:23
Good eye, Mark. One of them has a space at the end -- an error on my part when cleaning up the titles.
So that puts Cotton Eyed Joe in the #3 spot.
blockader - Posted - 10/19/2011: 12:21:54
Sally Anne really shouldn't be on there at all since each of the 53 examples is very likely completely unique and should therefore be counted as an individual tune. ![]()
-justin
BANJOJUDY - Posted - 10/19/2011: 12:30:37
quote:
Originally posted by J-Walk
If you have a copy of Excel, this might work:
spreadsheetpage.com/index.php/...e_lister/
J-Walk -
If you could revise this spreadsheet to also include MPEG4 format, that would help on my end.
When and if you get a revision that will work for me (cause I have no idea how to fix whatever bug showed up for the mp3 version), please post the link here - ok?
This is really great stuff - love having banjo and computer nerds on the Hangout.
J-Walk - Posted - 10/19/2011: 13:02:55
Judy, try changing that IF statement to:
If (UCase(Right(filename, 3)) = "MP3") Or (UCase(Right(filename, 3)) = "MP4") Then
That assumes your MPEG4 files have an MP4 extension.
BANJOJUDY - Posted - 10/19/2011: 13:10:28
quote:
Originally posted by J-Walk
Judy, try changing that IF statement to:
If (UCase(Right(filename, 3)) = "MP3") Or (UCase(Right(filename, 3)) = "MP4") Then
That assumes your MPEG4 files have an MP4 extension.
Thanks for the advice, but I have no idea where to insert all this information into the Excel spreadsheet - never done this stuff - help! I am into simple SUMS and easy FORMULAS, but not actually inputting these statements.
J-Walk - Posted - 10/19/2011: 13:28:17
You copied the code, so you know how to access the VBA module, right?
Just make the change there.
BANJOJUDY - Posted - 10/19/2011: 13:37:58
quote:
Originally posted by J-Walk
You copied the code, so you know how to access the VBA module, right?
Just make the change there.
I copied the code because it popped up on my screen. I have no idea how to access the VBA module from 'scratch.'
BANJOJUDY - Posted - 10/19/2011: 14:23:36
quote:
Originally posted by J-Walk
You copied the code, so you know how to access the VBA module, right?
Just make the change there.
I found out where to locate the VBA module - but I cannot figure out how to save the new information - ok - help!
BANJOJUDY - Posted - 10/19/2011: 16:17:18
quote:
Originally posted by J-Walk
Judy, try changing that IF statement to:
If (UCase(Right(filename, 3)) = "MP3") Or (UCase(Right(filename, 3)) = "MP4") Then
That assumes your MPEG4 files have an MP4 extension.
I suppose while editing, one could add Or (UCase (Right (filename, 3)) = "WAV") Then
HELP! I am anxious to get the Excel program that will find ALL the music files - WAV and MP3 and MP4.
Judy
J-Walk - Posted - 10/19/2011: 16:55:29
After you replace that statement, just click the Save icon. Then press Alt+F11 to return to Excel.
Yes, you can add any number of OR clauses to get different types of files. WAV files don't have an embedded info, so you won't see any data for them. And it might generate an error.
carlb - Posted - 10/20/2011: 07:54:42
quote:
Originally posted by blockader
Sally Anne really shouldn't be on there at all since each of the 53 examples is very likely completely unique and should therefore be counted as an individual tune.
Using the link from my previous post:
Sally Ann/Anne - 121
blockader - Posted - 10/20/2011: 09:02:35
quote:
Originally posted by carlb
quote:
Originally posted by blockader
Sally Anne really shouldn't be on there at all since each of the 53 examples is very likely completely unique and should therefore be counted as an individual tune.![]()
Using the link from my previous post:
Sally Ann/Anne - 121
ah, i was just making an apparently not very funny reference to the seemingly countless permutations of Sally Ann.
Terms of Use | Privacy Policy | Privacy Consent (EU/GDPR Only)
Copyright 2026 Banjo Hangout. All Rights Reserved.