From 2e29859e1c12e58b9debbba3dd4ae83e3191e2f2 Mon Sep 17 00:00:00 2001 From: Marco van Dijk Date: Wed, 7 Jul 2021 18:38:45 +0200 Subject: [PATCH] Initial Commit of prototype --- .gitignore | 1 + fonts/CourierPrime-Bold.ttf | Bin 0 -> 69768 bytes fonts/CourierPrime-BoldItalic.ttf | Bin 0 -> 77384 bytes fonts/CourierPrime-Italic.ttf | Bin 0 -> 76496 bytes fonts/CourierPrime-Regular.ttf | Bin 0 -> 68128 bytes lib/__init__.py | 0 lib/chordFinder.py | 11 ++ lib/dataStructures.py | 183 ++++++++++++++++++++++++++++++ lib/initSongs.py | 42 +++++++ lib/transpose.py | 10 ++ main.py | 24 ++++ output2img.py | 122 ++++++++++++++++++++ 12 files changed, 393 insertions(+) create mode 100644 .gitignore create mode 100644 fonts/CourierPrime-Bold.ttf create mode 100644 fonts/CourierPrime-BoldItalic.ttf create mode 100644 fonts/CourierPrime-Italic.ttf create mode 100644 fonts/CourierPrime-Regular.ttf create mode 100644 lib/__init__.py create mode 100644 lib/chordFinder.py create mode 100644 lib/dataStructures.py create mode 100644 lib/initSongs.py create mode 100644 lib/transpose.py create mode 100644 main.py create mode 100644 output2img.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c18dd8d --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +__pycache__/ diff --git a/fonts/CourierPrime-Bold.ttf b/fonts/CourierPrime-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..91d6de4f34673fd3030df55c98016ba84e5c8283 GIT binary patch literal 69768 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 literal 0 HcmV?d00001 diff --git a/fonts/CourierPrime-Italic.ttf b/fonts/CourierPrime-Italic.ttf new file mode 100644 index 0000000000000000000000000000000000000000..f8a20bd097284f65ea89f88f742f6d2278df9215 GIT binary patch literal 76496 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®noDRk&?P2sT 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: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 Zml!TZoI3*L5^T`t!ca@8AE_7F{|CV3TfqPT literal 0 HcmV?d00001 diff --git a/lib/__init__.py b/lib/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/lib/chordFinder.py b/lib/chordFinder.py new file mode 100644 index 0000000..b0bc480 --- /dev/null +++ b/lib/chordFinder.py @@ -0,0 +1,11 @@ +# This file returns tablature for chords in different positions and voicings + +# TODO: we need to itemize all chords in the song and major/minor/diminshed/augmented/dom7/maj7/etc (we can support more voicings as we go) +# then for each chord, get location for each (C A G E D) shape +# for each shape, generate finger position tab, like so: +# B x24442 +# C#m x46654 +# Amaj7 x02120 +# F#m 244222 +# Am6 x04555 +# diff --git a/lib/dataStructures.py b/lib/dataStructures.py new file mode 100644 index 0000000..38e3435 --- /dev/null +++ b/lib/dataStructures.py @@ -0,0 +1,183 @@ +# !/usr/bin/python +# This file hosts the classes for storing song data +import re + +# TODO: move to separate file with helper functions like this +def stripEmptyLines(inputString): + nonEmptyLines = "" + lines = inputString.split("\n") + for line in lines: + if line.strip() != "": + nonEmptyLines += line + "\r\n" + return nonEmptyLines +# read .txt input TODO: move to separate input functions if we want to support multiple types of inputs some day, like web or PDF +def readSourceFile(inputFile): + with open(inputFile, 'r') as file: + return file.read() + +def isChordType(inputString): + if not inputString: + return + #print("Checking '{}' for line type".format(inputString)) + # Assume CHORD line if any NUMBER character + if any(char.isdigit() for char in inputString): + #print("'{}' is a CHORD line, since it contains a number".format(inputString)) + return True + # Assume CHORD line if any character {/, #, (, ), } + chordSpecificCharacterString = r"/#" + if any(elem in inputString for elem in chordSpecificCharacterString): + #print("'{}' is a CHORD line, since it contains a chord specific character".format(inputString)) + return True + # Assume LYRIC line if any TEXT character OTHER THAN {a, b, c, d, e, f, g, h, b, x, m} + lyricSpecificCharacterString = r"abcdefghbxm" + for char in inputString: + if char.isalpha(): + if not char.lower() in lyricSpecificCharacterString: + #print("'{}' is a LYRIC line, since it contains lyric specific text characters".format(inputString)) + return False + # Assume LYRIC line if any character {.} + lyricSpecialChars = r"." + if any(elem in inputString for elem in lyricSpecialChars): + #print("'{}' is a LYRIC line, since it contains lyric specific special characters".format(inputString)) + return False + # Else warn and assume chord line + #print("Unable to identify if '{}' is a lyric or chord line. Assuming it is a chord line. Please improve the isChordType function".format(inputString)) + return True + + +class Section: + def __init__(self): + # List of lines of lyrics strings + self.lyrics = [] + # List of lines of chord strings + self.chords = [] + # section type string + self.header = "" + # string of chord and lyric data + self.rawData = "" + # Flag for succesfully parsed + self.isParsed = False + + # Parses self.rawData into lyrics and chord strings + def parseMe(self): + isFirstLine = True + # Input sections may have chord-only or lyric-only sections + # So we have to insert empty lines if we have subsequent chord or lyric lines + lines = self.rawData.split('\r\n') + for line in lines: + # Determine lyric or chord line + currentIsChord = isChordType(line) + # Initially just fill in the first line correctly + if isFirstLine: + isFirstLine = False + if currentIsChord: + self.chords.append(line) + else: + self.lyrics.append(line) + # We want alternating lines, so if the prev is of the same type + # we need to insert an empty line of the other type + elif currentIsChord == prevWasChord: + if currentIsChord: + #print("Inserting empty Lyric line") + self.chords.append(line) + self.lyrics.append("") + else: + #print("Inserting empty Chord line") + self.lyrics.append(line) + self.chords.append("") + # also insert the current line + elif currentIsChord: + #print("Inserting empty Lyric line") + self.chords.append(line) + else: + self.lyrics.append(line) + + prevWasChord = currentIsChord + # Simple check to see if it worked + if abs(len(self.lyrics) - len(self.chords)) > 1: + print("Unable to parse section, since there is a mismatch between the amount of chord and lyric lines.") + return + # Add a final empty line if necessary + elif len(self.lyrics) > len(self.chords): + self.chords.append("") + elif len(self.lyrics) < len(self.chords): + self.lyrics.append("") + self.isParsed = True + + +class Song: + def __init__(self): + # Src file + self.inputFile = "" + # Path to folder + self.outputLocation = "" + # Title - based on input file + self.title = "" + # List of Section objects + self.sections = [] + # Meta info: the text before the first section + self.metadata = "" + # String of entire input + self.rawData = "" + # Flag for succesfully parsed + self.isParsed = False + + # Parses self.rawData into Section objects and metadata + def parseMe(self): + # Fill raw data + self.rawData = readSourceFile(self.inputFile) + # Clean up input + parseData = stripEmptyLines(self.rawData) + #print("Clean data='{}'\n".format(parseData)) + # While !EOF: build sections (untill []). + delimiterIndex = parseData.find("[") + if delimiterIndex == -1: + print("Cannot parse input file, since it is not delimited by '[]' entries") + return + # Start with metadata + self.metadata = parseData[:delimiterIndex] + #print("Set '{}' as metadata".format(self.metadata)) + parseData = parseData[delimiterIndex:] + # We are now at the start of the first section, at the '[' character + while parseData: + thisSection = Section() + # Get first line + delimiterIndex = parseData.find("]\r\n") + if delimiterIndex == -1: + print("Cannot parse input file, delimitor did not match '[]'") + return + # Set header to first line + thisSection.header = parseData[:delimiterIndex+3] + parseData = parseData[delimiterIndex+3:] + # Find next section + delimiterIndex = parseData.find("[") + # If EOF, current buffer is final section + if delimiterIndex == -1: + # Set current section data to remaining buffer + thisSection.rawData = parseData + parseData = "" + else: + # Set thisSection's data and remove it from the buffer + thisSection.rawData = parseData[:delimiterIndex] + #print("set rawData of '{}' to this section".format(thisSection.rawData)) + parseData = parseData[delimiterIndex:] + # Finally parse section data + thisSection.parseMe() + if thisSection.isParsed: + self.sections.append(thisSection) + else: + print("Aborting parse due to section not being parseable.") + return + self.isParsed = True + + + + + + + + + + + + diff --git a/lib/initSongs.py b/lib/initSongs.py new file mode 100644 index 0000000..500948d --- /dev/null +++ b/lib/initSongs.py @@ -0,0 +1,42 @@ +# !/usr/bin/python +# Iterate through input folders and create a list of Song objects +import lib.dataStructures +import os + +# For now manually whitelist folders to convert +whitelist = ["/mnt/koios/Band/1-sugmesties", "/mnt/koios/Band/2-oefenen", "/mnt/koios/Band/3-uitgewerkt"] + +def initSong(filePath): + thisSong = lib.dataStructures.Song() + thisSong.inputFile = filePath + # set base folder name - depending on selected outputs the output folder name changes + thisSong.outputLocation = filePath[:filePath.rfind('.')] + # title is just the name of the .txt file + thisSong.title = thisSong.outputLocation[filePath.rfind('/')+1:] + #print("Finished init for input file '{}'.\nBase output folder is '{}'\nSong title is '{}'\n".format(thisSong.inputFile, thisSong.outputLocation, thisSong.title)) + return thisSong + + +def getSongObjects(): + # path to song folders, which MAY contain a .txt source file + txtFileLocations = [] + # list of Song objects + songList = [] + + # get all subdirectories + for inputFolder in whitelist: + for root, dirs, files in os.walk(inputFolder): + for name in files: + if(name[name.rfind('.'):] == ".txt"): + filePath = os.path.join(root, name) + #print("Found .txt file '{}'".format(filePath)) + txtFileLocations.append(filePath) + #else: + #print("Skipping file '{}' for it is not a .txt file".format(name)) + + # go through all input locations. find .txt files. for each .txt file initSong. return list + while(txtFileLocations): + filePath = txtFileLocations.pop() + if (filePath != ""): + songList.append(initSong(filePath)) + return songList diff --git a/lib/transpose.py b/lib/transpose.py new file mode 100644 index 0000000..518d8f4 --- /dev/null +++ b/lib/transpose.py @@ -0,0 +1,10 @@ +# This file takes a string corresponding to chord data and transposes it + +slider = ['E', 'F', 'Gb', 'G', 'Ab', 'A', 'Bb', 'B', 'C', 'Db', 'D', 'Eb'] +# TODO: take a line of chord data, for each string enclosed in whitespace or tabs: + # ignore if its in major or minor, just take the ROOT of the chord + # then get its index in the slider + # then add/subtract transposition amount and loop around the slider if it goes over + # make sure to keep line width persistent: + # if from E to Eb for example, remove a whitespace + # if from Eb to D for example, add a whitespace diff --git a/main.py b/main.py new file mode 100644 index 0000000..8f2c756 --- /dev/null +++ b/main.py @@ -0,0 +1,24 @@ +# !/usr/bin/python +# This program converts all songs in a given directory to a printable format +import lib.chordFinder +import lib.dataStructures +import lib.initSongs +import lib.transpose +import output2img + +def main(): + # Init Song objects for all songs with compatible inputs + songs = lib.initSongs.getSongObjects() + # Convert all songs into sections + for song in songs: + song.parseMe() + # Parse as PNG a4 + if song.isParsed: + # Create subdirectory where we will output our images + targetDirectory = song.outputLocation + "-a4-png" + print("Successfully parsed '{}' file. Writing output to '{}'".format(song.inputFile, targetDirectory)) + # Write out metadata and sections, as many as can fit on one page + output2img.outputToImage(targetDirectory, song) + +if __name__ == "__main__": + main() diff --git a/output2img.py b/output2img.py new file mode 100644 index 0000000..9846d00 --- /dev/null +++ b/output2img.py @@ -0,0 +1,122 @@ +# !/usr/bin/python +# This program converts Song objects to imgs printable on A4 paper +import os +import lib.dataStructures +from PIL import Image, ImageDraw, ImageFont + +# size and font of metadata +metaFontFamily = 'fonts/CourierPrime-Regular.ttf' +metaFontWeight = 8 + +# size and font of chord and lyric text +lyricFontFamily = 'fonts/CourierPrime-Regular.ttf' +chordFontFamily = 'fonts/CourierPrime-Bold.ttf' +songFontWeight = 14 + +# image properties +imageWidth, imageHeight = (595, 842) # A4 at 72dpi +background = (255, 255, 255) +fontMetadata = ImageFont.truetype(metaFontFamily, metaFontWeight) +fontLyrics = ImageFont.truetype(lyricFontFamily, songFontWeight) +fontChords = ImageFont.truetype(chordFontFamily, songFontWeight) +fontColour = () +topMargin = 10 +leftMargin = 25 + +# return expected height of rendering the complete current section +def calcSectionHeight(section): + lineIterator = 0 + amountOfLines = len(section.lyrics) + heightSum = 0 + # add section title + headerWidth, headerHeight = fontChords.getsize(section.header) + heightSum += headerHeight + while lineIterator < amountOfLines: + # Get chord&lyric line + lyricTextWidth, lyricTextHeight = fontLyrics.getsize(section.lyrics[lineIterator]) + chordTextWidth, chordTextHeight = fontChords.getsize(section.chords[lineIterator]) + heightSum += lyricTextHeight + chordTextHeight + lineIterator += 1 + + return heightSum + +def outputToImage(folderLocation, songObj): + # Create target Directory if don't exist + if not os.path.exists(folderLocation): + os.mkdir(folderLocation) + print("Directory " , folderLocation , " Created ") + #else: + #print("Directory " , folderLocation , " already exists") + + # Init image info + imageNumber = 1 + currentHeight = topMargin + + # New Image + a4image = Image.new('RGB',(imageWidth, imageHeight),(background)) + draw = ImageDraw.Draw(a4image) + + # Write metadata + for line in songObj.metadata.split('\n'): + # remove any unwanted characters from metadat + line = line.rstrip() + if not line: + continue + #print("meta line '{}'".format(line)) + metadataTextWidth, metadataTextHeight = fontMetadata.getsize(line) + draw.text((leftMargin,currentHeight), line, fill=(128, 128, 128), font=fontMetadata) + currentHeight += metadataTextHeight + + currentHeight += topMargin + + for section in songObj.sections: + lineIterator = 0 + amountOfLines = len(section.lyrics) + if (amountOfLines != len(section.chords)): + print("Cannot write this section to file, since it was not processed correctly. There are {} chord lines and {} lyric lines. Aborting...".format(len(section.chords), amountOfLines)) + return + # See if it can fit on the current page - if it does not, write & reset + if currentHeight + calcSectionHeight(section) > imageHeight: + #print("overflow! starting with a new image") + outputLocation = folderLocation + "/" + str(imageNumber) + ".png" + imageNumber += 1 + a4image.save(outputLocation) + currentHeight = topMargin + a4image = Image.new('RGB',(imageWidth, imageHeight),(background)) + draw = ImageDraw.Draw(a4image) + + # add section title + headerWidth, headerHeight = fontChords.getsize(section.header) + draw.text((leftMargin,currentHeight), section.header, fill=(0, 0, 0), font=fontChords) + currentHeight += headerHeight + while lineIterator < amountOfLines: + #print("Printing chord line {} and lyrics line {}".format(section.chords[lineIterator], section.lyrics[lineIterator])) + # Get chord&lyric line + lyricTextWidth, lyricTextHeight = fontLyrics.getsize(section.lyrics[lineIterator]) + chordTextWidth, chordTextHeight = fontChords.getsize(section.chords[lineIterator]) + # add to image file + draw.text((leftMargin,currentHeight), section.chords[lineIterator], fill=(0, 0, 0), font=fontChords) + currentHeight += chordTextHeight + draw.text((leftMargin,currentHeight), section.lyrics[lineIterator], fill=(0, 0, 0), font=fontLyrics) + currentHeight += lyricTextHeight + lineIterator += 1 + #print("currentheight={}".format(currentHeight)) + currentHeight += topMargin + + # Write remaining image to file as well + outputLocation = folderLocation + "/" + str(imageNumber) + ".png" + a4image.save(outputLocation) + + + + + + + + + + + + + +