This is an old revision of the document!
Real drives
Drive letter | Function |
---|---|
C: | Windows drive |
D: | Sync work drive here + other work related stuff |
E: | Sync all media here (foto, music, video) |
Mapped drives
Drive letter | Function |
---|---|
I: | Active projects: |
Audio | |
Photo | |
Visual | |
VJ | |
Web | |
M: | Music |
P: | Files for software (settings, adons) |
F: | Personal files |
From the command line:
subst A: /d
Replace A with drive you want deleted
Using VisualSubst
Put this .ps1 file in any local location on your pc, navigate to your Windows startup folder (shell:startup), right-click →new→shortcut, and instert this into the textbox:
powershell.exe -NoProfile -ExecutionPolicy Bypass -File “C:\Users\flori\4_StartupScript_MoveToVirtualDesktop1.ps1”
MusicBee: Ensure that MusicBee is consistently exporting the “M:\iTunes Music Library.xml” file on close. You’ve already set this up,
but double-check under MusicBee’s Preferences > Library > “export the library as an iTunes formatted XML file” is enabled and pointing to “M:\iTunes
Music Library.xml”.
Traktor: In Traktor Preferences → File Management:
Set the “iTunes/Music Library” path to “M:\iTunes Music Library.xml”. This ensures Traktor always looks at your MusicBee-exported XML.
Enable “Import Music-Folders at Startup” and add the folder(s) where your actual music files reside (e.g., M:\Music\ or wherever your tracks are
stored). This keeps the Track Collection updated with new files, though it won’t handle playlists directly.
Fire up the Python script:
It enambles synchronisation of playlists from any iTunes.xml compatible music library to any DJ software of your choice.
Here's what it does:
Key features:
The script runs through three main steps:
This allows a you to maintain a playlists in iTunes/Musicbee while having those same tracks available in any DJ software in the preferred format.
Template: YYYY-MM-DD_Location_Subject(abbreviated, PubLib (Public Library))_FileVersion.Extention
Example: 2020-12-19_Zele_PubLib_001.jpg
CamelCaps, geen spaties, underscores/streepjes enkel gebruiken bij opdeling filenaam.
Maak genoeg iteraties van je bestand, zodat je steeds een versie terug kan gaan, moest er iets mislopen.
Export files (FBX, OBJ) hebben steeds zelfde versienummer als work file (Blender, Maya).
Afkortingen:
Template: Project_SceneNumber_Modeltype-ModelName_FileVersion.Extension
Example: Silver_000_CH-Nora_v001.blend
Export files (PNG, JPG) hebben steeds zelfde versienummer als work files (Substance, Photoshop) Afkortingen:
Template: Project_SceneNumber_TextureName_FileVersion_TextureType.Extension
Example: Silver_010_NoraHair_v001_DIFF.PNG
The count of scenes starts from 010, models with the scene number 000 are not restricted to one scene.
Template: Project_SceneNumber-Description_FileVersion.Extension
Example: Silver_010-MudWorld_v001.blend
Max 5 letters voor afkortingen
Afkortingen:
Template: Type_Name_PolyType
Example: GRP_Nora_LP
For my collection of reference images, I only use broad categories as folders, the other information I put in the name and metadata.
I'm using a combination of tools, including Advanced Renamer, digiKam, Python and a tool from GitHub called taggui.
First, I will change the name with Advanced Renamer.
Using TagGUI, I will then let the program generate captions into seperate text files, wich are named after the image they are describing.
Now we need the Python script to take the information from the text file, and add it to the metadata of the images.
For clean organisation, I opted to convert all files to .jpg. This to make sure the metadata is displayed in a clean way.
CATEGORY_SUBJECT_inc Nr
A description/caption in the images “Title” and “Subject” fields.
import os from PIL import Image as PilImage, PngImagePlugin from pyexiv2 import Image as Pyexiv2Image def add_text_to_image_metadata(image_folder): try: # Iterate through all files in the specified folder for filename in os.listdir(image_folder): image_path = os.path.join(image_folder, filename) text_file_path = os.path.join(image_folder, f"{os.path.splitext(filename)[0]}.txt") print(f"Processing {image_path}") # Debugging line if os.path.exists(text_file_path): # Read the content from the text file with open(text_file_path, 'r') as file: caption_text = file.read() # Convert filename to lowercase for extension checking filename_lower = filename.lower() if filename_lower.endswith(('.jpg', '.jpeg')): # Load the image's metadata image = Pyexiv2Image(image_path) # Add the caption to the image's EXIF UserComment and ImageDescription fields image.modify_exif({'Exif.Photo.UserComment': caption_text, 'Exif.Image.ImageDescription': caption_text}) elif filename_lower.endswith('.png'): # Convert the PNG image to JPEG image = PilImage.open(image_path) rgb_image = image.convert('RGB') rgb_image.save(os.path.splitext(image_path)[0] + '.jpg', 'JPEG') # Load the image's metadata image = Pyexiv2Image(os.path.splitext(image_path)[0] + '.jpg') # Add the caption to the image's EXIF UserComment and ImageDescription fields image.modify_exif({'Exif.Photo.UserComment': caption_text, 'Exif.Image.ImageDescription': caption_text}) # Delete the original PNG image os.remove(image_path) # Delete the text file os.remove(text_file_path) print("Processing completed for all images.") except Exception as e: print(f"Error: {e}") # Example usage: Specify the folder containing your images image_folder_path = '/path/to/your/source/folder' add_text_to_image_metadata(image_folder_path) }();