6#define AUDIO_METADATA_TAGS 1
7#define PRESET_FILENAME_TAGS 0
36 float computeSimilarity(
const std::vector<float>& queryEmbedding,
const std::vector<float>& resultEmbedding)
const;
45 StringArray
combineSearch(
const String& searchTerm,
const StringArray& classicResults,
const StringArray& ttpResults, std::map<String, std::vector<float>>& embeddingsCache,
const size_t& maxResults = 25);
95 for (
size_t i = 0, j = 0; i < input.length(); i += 2, j++)
97 std::string byteStr = input.substr(i, 2);
98 unsigned int byteValue;
99 std::istringstream(byteStr) >> std::hex >> byteValue;
100 byteArray[j] =
static_cast<unsigned char>(byteValue);
131 std::vector<float>
destringify(String stringWithNumbers);
140 template <
class T> String
stringify(std::vector<T> numbers);
175 StringArray
excludeTerms{
"Woje",
"woje",
"SNDBTS_CAS1",
"SNDBTS_CAS4",
".wav",
"wav",
"kaf",
".kaf",
176 "sndbts",
"krotos",
"krt",
"krts",
"mf",
"ks",
"mono",
"stereo",
177 "ambisonic",
"and",
"in",
"on",
"up",
"or",
"i",
"ii",
178 "type1",
"type2",
"type3",
"type4",
"type5"};
194 SharedResourcePointer<UniversalCategorySystem>
m_UCS;
241 TimeSliceThread
thread{
" Directory Watcher Thread"};
directory watcher class for text to preset module to process data when there is changes in the rpeset...
Definition TextToPreset.h:222
int useTimeSlice() override
timeslice thread checks for modufication dir date and handles it accordingly
Definition TextToPreset.cpp:945
File m_directory
Definition TextToPreset.h:250
bool handleContentUpdate()
handles content update and triggers ttp embeddings calculation accordingly
Definition TextToPreset.cpp:869
DirectoryWatcher(const File &dirToWatch)
Definition TextToPreset.cpp:844
void getAllPresetFiles(const File &directory, Array< File > &fileArray)
gets all presets under a directory recursivelly
Definition TextToPreset.cpp:928
String m_dirModificationDate
Definition TextToPreset.h:247
Array< File > m_presetFilesToProcess
Definition TextToPreset.h:262
~DirectoryWatcher() override
Definition TextToPreset.cpp:850
TextToPresetShared m_textToPresetSharedInstance
Definition TextToPreset.h:253
TimeSliceThread thread
Definition TextToPreset.h:241
StringArray m_presetsWithEmbeddings
Definition TextToPreset.h:259
Array< File > m_presetFilesArray
Definition TextToPreset.h:256
text to preset class for text to preset embeddings calculation and dictionary creation
Definition TextToPreset.h:26
bool calculateEmbeddingsForPresetFile(File presetFile)
create text embeddings file for the given preset file
Definition TextToPreset.cpp:74
unsigned char m_data[BUFFER_SIZE]
Definition TextToPreset.h:206
String assetPathsDelimiter
Definition TextToPreset.h:182
~TextToPreset()
Definition TextToPreset.cpp:22
bool processFileList(Array< File > &filesToProcess)
processes a file list to create text embeddings
Definition TextToPreset.cpp:41
KDTreeND m_kNN
Definition TextToPreset.h:197
StringArray m_sampleFilenames
Definition TextToPreset.h:157
bool m_modelFileAvailable
Definition TextToPreset.h:209
StringArray m_samplePaths
Definition TextToPreset.h:154
TextToPreset()
Definition TextToPreset.cpp:9
File m_presetFile
Definition TextToPreset.h:160
StringArray m_presetTags
Definition TextToPreset.h:166
StringArray excludeTerms
Definition TextToPreset.h:175
SentenceTransformer m_sentenceTransformer
Definition TextToPreset.h:191
StringArray combineSearch(const String &searchTerm, const StringArray &classicResults, const StringArray &ttpResults, std::map< String, std::vector< float > > &embeddingsCache, const size_t &maxResults=25)
combine multiple StringArrays, megre and rerank the items based on cosine similarity
Definition TextToPreset.cpp:470
void searchForTagAndProperty(ValueTree &root, Identifier tag, Identifier property)
this will recursivelly search in a preset ValueTree structure for a given idendtifier and property na...
Definition TextToPreset.cpp:426
String m_logString
Definition TextToPreset.h:112
std::vector< float > destringify(String stringWithNumbers)
destrignifies embeddings
Definition TextToPreset.cpp:576
bool readFromFile(File file)
load embeddings from file
Definition TextToPreset.cpp:637
String delimiters
Definition TextToPreset.h:188
void getPresetAssetNames(ValueTree &root)
will get preset asset paths and names to the m_samplePaths and m_sampleFilenames arrays
Definition TextToPreset.cpp:421
std::vector< String > m_presetNames
Definition TextToPreset.h:200
void clear()
clears internal data
Definition TextToPreset.cpp:32
void loadEmbeddings()
will load embeddings data from file to all modules that need it
Definition TextToPreset.cpp:801
StringArray performSearch(String query)
performs search based on text embeddings and KNN
Definition TextToPreset.cpp:823
std::string getPresetPath(std::string presetNameToLoad) const
return the preset path
Definition TextToPreset.h:58
float computeSimilarity(const std::vector< float > &queryEmbedding, const std::vector< float > &resultEmbedding) const
compute cosine similarity based of result to query
Definition TextToPreset.cpp:536
String m_presetName
Definition TextToPreset.h:163
std::map< String, Data > m_presetData
Definition TextToPreset.h:169
std::map< std::string, std::string > m_presetNameAndPresetPathMap
Definition TextToPreset.h:172
StringArray m_treatedAssetPaths
Definition TextToPreset.h:185
String stringify(std::vector< T > numbers)
Definition TextToPreset.cpp:566
SharedResourcePointer< UniversalCategorySystem > m_UCS
Definition TextToPreset.h:194
bool appendDataToEmbeddingsFile()
appends data to the main embeddings file
Definition TextToPreset.cpp:685
String logString() const
returns the log string
Definition TextToPreset.h:64
bool assetNamesToTags(bool eliminateDuplicates)
Splits the asset names, in respect to the excluded terms, and pushes the remaining terms into a new s...
Definition TextToPreset.cpp:104
void run() override
Definition TextToPreset.cpp:24
File createFilePath(String filename)
creates the path for the embeddings file
Definition TextToPreset.cpp:590
bool saveToFile(File file)
saves embeddings to file
Definition TextToPreset.cpp:595
void getSampleMetadata(const std::string &input, unsigned char *byteArray)
Definition TextToPreset.h:93
CriticalSection m_cs
Definition TextToPreset.h:203
StringArray findClosestPresets(String searchTerm, int maxNumPresetsToFind) const
returns a String array that contains K closest presets,
Definition TextToPreset.cpp:548
wrapper class for text to preset module shared resource pointer
Definition TextToPreset.h:214
SharedResourcePointer< TextToPreset > m_textToPreset
Definition TextToPreset.h:216
Definition AirAbsorptionFilter.cpp:2
constexpr size_t IV_SIZE
Definition TextToPreset.h:21
constexpr char tagsNameField[]
Definition TextToPreset.h:16
constexpr char ttpStatusDateProperty[]
Definition TextToPreset.h:11
constexpr char ttpNumericalMetadata[]
Definition TextToPreset.h:12
constexpr char embeddingsNameField[]
Definition TextToPreset.h:15
static constexpr size_t BUF_SIZE
Definition TextToPreset.h:19
constexpr char wavMetadataFieldInFile[]
Definition TextToPreset.h:13
constexpr char ttpStatusFileName[]
Definition TextToPreset.h:10
constexpr char presetNameField[]
Definition TextToPreset.h:14
static const String ttpThreadName
Definition TextToPreset.h:17
constexpr char embeddingsFileName[]
Definition TextToPreset.h:9
constexpr size_t BUFFER_SIZE
Definition TextToPreset.h:20
Definition TextToPreset.h:144
std::vector< float > embeddings
Definition TextToPreset.h:146
Data(StringArray tags=StringArray(), std::vector< float > embeddings=std::vector< float >())
Definition TextToPreset.h:147
StringArray tags
Definition TextToPreset.h:145