diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..e69de29
diff --git a/NEWYamitracker/Yamitracker/build/Desktop-Debug/.qtc_clangd/compile_commands.json b/NEWYamitracker/Yamitracker/build/Desktop-Debug/.qtc_clangd/compile_commands.json
new file mode 100644
index 0000000..0637a08
--- /dev/null
+++ b/NEWYamitracker/Yamitracker/build/Desktop-Debug/.qtc_clangd/compile_commands.json
@@ -0,0 +1 @@
+[]
\ No newline at end of file
diff --git a/Yamitracker/Yamitracker.pro.user b/OtherPush/yamitraherIlyaEdit/Yamitracker/.qtcreator/Yamitracker.pro.user
similarity index 100%
rename from Yamitracker/Yamitracker.pro.user
rename to OtherPush/yamitraherIlyaEdit/Yamitracker/.qtcreator/Yamitracker.pro.user
diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/Yamitracker.pro b/OtherPush/yamitraherIlyaEdit/Yamitracker/Yamitracker.pro
new file mode 100644
index 0000000..d5d042f
--- /dev/null
+++ b/OtherPush/yamitraherIlyaEdit/Yamitracker/Yamitracker.pro
@@ -0,0 +1,22 @@
+QT += core gui widgets multimedia
+
+CONFIG += c++17
+
+SOURCES += \
+ main.cpp \
+ yamitracker.cpp \
+ simplewavwriter.cpp \
+ brrconverter.cpp
+
+HEADERS += \
+ yamitracker.h \
+ simplewavwriter.h \
+ brrconverter.h
+
+FORMS += \
+ yamitracker.ui
+
+# Default rules for deployment.
+qnx: target.path = /tmp/$${TARGET}/bin
+else: unix:!android: target.path = /opt/$${TARGET}/bin
+!isEmpty(target.path): INSTALLS += target
\ No newline at end of file
diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/Yamitracker.pro.user b/OtherPush/yamitraherIlyaEdit/Yamitracker/Yamitracker.pro.user
new file mode 100644
index 0000000..fcac744
--- /dev/null
+++ b/OtherPush/yamitraherIlyaEdit/Yamitracker/Yamitracker.pro.user
@@ -0,0 +1,263 @@
+
+
+
+
+
+ EnvironmentId
+ {6395eb3f-fc2a-4125-bb4f-a9c51f02958b}
+
+
+ ProjectExplorer.Project.ActiveTarget
+ 0
+
+
+ ProjectExplorer.Project.EditorSettings
+
+ true
+ false
+ true
+
+ Cpp
+
+ CppGlobal
+
+
+
+ QmlJS
+
+ QmlJSGlobal
+
+
+ 2
+ UTF-8
+ false
+ 4
+ false
+ 80
+ true
+ true
+ 1
+ false
+ true
+ false
+ 0
+ true
+ true
+ 0
+ 8
+ true
+ false
+ 1
+ true
+ true
+ true
+ *.md, *.MD, Makefile
+ false
+ true
+
+
+
+ ProjectExplorer.Project.PluginSettings
+
+
+ true
+ false
+ true
+ true
+ true
+ true
+
+
+ 0
+ true
+
+ true
+ Builtin.BuildSystem
+
+ true
+ true
+ Builtin.DefaultTidyAndClazy
+ 4
+
+
+
+ true
+
+
+
+
+ ProjectExplorer.Project.Target.0
+
+ Desktop
+ Desktop
+ Desktop
+ {0acbc229-4897-4c6e-a23f-ae7c45394b0c}
+ 0
+ 0
+ 0
+
+ 0
+ /home/acer1117/build-Yamitracker-Desktop-Debug
+ /home/acer1117/build-Yamitracker-Desktop-Debug
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+ false
+
+ Отладка
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 2
+
+
+ /home/acer1117/build-Yamitracker-Desktop-Release
+ /home/acer1117/build-Yamitracker-Desktop-Release
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+ false
+
+ Выпуск
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 0
+
+
+ 0
+ /home/acer1117/build-Yamitracker-Desktop-Profile
+ /home/acer1117/build-Yamitracker-Desktop-Profile
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ 2
+ Сборка
+ Сборка
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+ clean
+
+ 1
+ Очистка
+ Очистка
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+ false
+
+ Профилирование
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 0
+ 0
+
+ 3
+
+
+ 0
+ Развёртывание
+ Развёртывание
+ ProjectExplorer.BuildSteps.Deploy
+
+ 1
+
+ false
+ ProjectExplorer.DefaultDeployConfiguration
+
+ 1
+
+ true
+ true
+ true
+
+ 2
+
+ Qt4ProjectManager.Qt4RunConfiguration:/home/acer1117/Yamitracker/Yamitracker.pro
+ /home/acer1117/Yamitracker/Yamitracker.pro
+ false
+ true
+ true
+ false
+ true
+ /home/acer1117/build-Yamitracker-Desktop-Debug
+
+ 1
+
+
+
+ ProjectExplorer.Project.TargetCount
+ 1
+
+
+ ProjectExplorer.Project.Updater.FileVersion
+ 22
+
+
+ Version
+ 22
+
+
diff --git a/Yamitracker/Yamitracker_ru_RU.ts b/OtherPush/yamitraherIlyaEdit/Yamitracker/Yamitracker_ru_RU.ts
similarity index 100%
rename from Yamitracker/Yamitracker_ru_RU.ts
rename to OtherPush/yamitraherIlyaEdit/Yamitracker/Yamitracker_ru_RU.ts
diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/brrconverter.cpp b/OtherPush/yamitraherIlyaEdit/Yamitracker/brrconverter.cpp
new file mode 100644
index 0000000..eed5c96
--- /dev/null
+++ b/OtherPush/yamitraherIlyaEdit/Yamitracker/brrconverter.cpp
@@ -0,0 +1,340 @@
+#include "brrconverter.h"
+#include
+
+BrrConverter::BrrConverter(QObject *parent) : QObject(parent)
+{
+}
+
+bool BrrConverter::convertWavToBrr(const QString &wavFilePath, const QString &brrFilePath)
+{
+ QFile wavFile(wavFilePath);
+ if (!wavFile.open(QIODevice::ReadOnly)) {
+ qDebug() << "Cannot open WAV file:" << wavFilePath;
+ return false;
+ }
+
+ int sampleRate, channels, bitsPerSample, dataSize;
+ if (!decodeWavHeader(wavFile, sampleRate, channels, bitsPerSample, dataSize)) {
+ qDebug() << "Invalid WAV file format";
+ wavFile.close();
+ return false;
+ }
+
+ // Читаем аудиоданные
+ QByteArray audioData = wavFile.read(dataSize);
+ wavFile.close();
+
+ // Конвертируем в 16-bit моно
+ QVector samples;
+ int bytesPerSample = bitsPerSample / 8;
+ int totalSamples = dataSize / (bytesPerSample * channels);
+
+ for (int i = 0; i < totalSamples; ++i) {
+ int32_t sample = 0;
+
+ for (int ch = 0; ch < channels; ++ch) {
+ int32_t channelSample = 0;
+ int offset = (i * channels + ch) * bytesPerSample;
+
+ if (bitsPerSample == 8) {
+ channelSample = (int8_t)audioData[offset];
+ channelSample = (channelSample - 128) * 256;
+ } else if (bitsPerSample == 16) {
+ channelSample = (int16_t)((audioData[offset + 1] << 8) | audioData[offset]);
+ } else if (bitsPerSample == 24) {
+ channelSample = (int32_t)((audioData[offset + 2] << 16) |
+ (audioData[offset + 1] << 8) |
+ audioData[offset]);
+ if (channelSample & 0x800000) channelSample |= 0xFF000000;
+ channelSample >>= 8;
+ } else if (bitsPerSample == 32) {
+ channelSample = (int32_t)((audioData[offset + 3] << 24) |
+ (audioData[offset + 2] << 16) |
+ (audioData[offset + 1] << 8) |
+ audioData[offset]);
+ channelSample >>= 16;
+ }
+
+ sample += channelSample;
+ }
+
+ // Микшируем каналы
+ sample /= channels;
+ samples.append(clamp16(sample));
+ }
+
+ // Понижаем частоту дискретизации для SNES (макс 32kHz -> 16kHz)
+ if (sampleRate > 16000) {
+ int ratio = sampleRate / 16000;
+ QVector downsampled;
+ for (int i = 0; i < samples.size(); i += ratio) {
+ downsampled.append(samples[i]);
+ }
+ samples = downsampled;
+ } else if (sampleRate < 16000) {
+ // Если частота ниже, повышаем (простое повторение)
+ int ratio = 16000 / sampleRate;
+ QVector upsampled;
+ for (int i = 0; i < samples.size(); ++i) {
+ for (int j = 0; j < ratio; ++j) {
+ upsampled.append(samples[i]);
+ }
+ }
+ samples = upsampled;
+ }
+
+ // Открываем BRR файл для записи
+ QFile brrFile(brrFilePath);
+ if (!brrFile.open(QIODevice::WriteOnly)) {
+ qDebug() << "Cannot open BRR file for writing:" << brrFilePath;
+ return false;
+ }
+
+ ADPCMState state;
+ QVector blockSamples;
+
+ // Конвертируем в BRR блоками по 16 сэмплов
+ for (int i = 0; i < samples.size(); ++i) {
+ int encoded = encodeADPCMNibble(samples[i], state);
+ blockSamples.append(encoded);
+
+ if (blockSamples.size() == 32) { // 32 ниббла = 16 сэмплов
+ writeBrrBlock(brrFile, blockSamples, false);
+ blockSamples.clear();
+ }
+ }
+
+ // Записываем последний неполный блок
+ if (!blockSamples.isEmpty()) {
+ // Дополняем до 32 нибблов
+ while (blockSamples.size() < 32) {
+ blockSamples.append(0);
+ }
+ writeBrrBlock(brrFile, blockSamples, true); // Последний блок с флагом loop
+ } else if (samples.size() > 0) {
+ // Если был полный последний блок, помечаем его как loop
+ brrFile.seek(brrFile.size() - BRR_BLOCK_SIZE);
+ unsigned char header = 0x03; // Фильтр 0, loop flag = 1
+ brrFile.write((char*)&header, 1);
+ }
+
+ brrFile.close();
+ qDebug() << "BRR file created:" << brrFilePath << "samples:" << samples.size() << "sample rate:" << sampleRate;
+ return true;
+}
+
+bool BrrConverter::convertMidiToBrr(const QString &midiFilePath, const QString &brrFilePath)
+{
+ qDebug() << "MIDI to BRR conversion requires MIDI synthesizer";
+ qDebug() << "Please convert MIDI to WAV first, then use WAV to BRR";
+
+ return false;
+}
+
+bool BrrConverter::decodeWavHeader(QFile &file, int &sampleRate, int &channels, int &bitsPerSample, int &dataSize)
+{
+ char buffer[44];
+ if (file.read(buffer, 44) != 44) {
+ return false;
+ }
+
+ // Проверяем RIFF заголовок
+ if (buffer[0] != 'R' || buffer[1] != 'I' || buffer[2] != 'F' || buffer[3] != 'F') {
+ return false;
+ }
+
+ // Проверяем WAVE формат
+ if (buffer[8] != 'W' || buffer[9] != 'A' || buffer[10] != 'V' || buffer[11] != 'E') {
+ return false;
+ }
+
+ // Проверяем fmt chunk
+ if (buffer[12] != 'f' || buffer[13] != 'm' || buffer[14] != 't' || buffer[15] != ' ') {
+ return false;
+ }
+
+ // Читаем параметры
+ int fmtSize = *(int*)(buffer + 16);
+ if (fmtSize < 16) return false;
+
+ int audioFormat = *(short*)(buffer + 20);
+ if (audioFormat != 1) return false; // Только PCM
+
+ channels = *(short*)(buffer + 22);
+ sampleRate = *(int*)(buffer + 24);
+ bitsPerSample = *(short*)(buffer + 34);
+
+ // Ищем data chunk
+ int offset = 36;
+ while (offset < file.size()) {
+ file.seek(offset);
+ char chunkId[4];
+ if (file.read(chunkId, 4) != 4) break;
+
+ int chunkSize;
+ if (file.read((char*)&chunkSize, 4) != 4) break;
+
+ if (chunkId[0] == 'd' && chunkId[1] == 'a' && chunkId[2] == 't' && chunkId[3] == 'a') {
+ dataSize = chunkSize;
+ file.seek(offset + 8);
+ return true;
+ }
+
+ offset += 8 + chunkSize;
+ }
+
+ return false;
+}
+
+int16_t BrrConverter::clamp16(int sample)
+{
+ if (sample > 32767) return 32767;
+ if (sample < -32768) return -32768;
+ return (int16_t)sample;
+}
+
+int BrrConverter::encodeADPCMNibble(int sample, ADPCMState &state)
+{
+ int diff = sample - state.prev_sample;
+ int step = step_table[state.prev_index];
+
+ // Квантование
+ int nibble = 0;
+ int predicted = state.prev_sample;
+
+ // Применяем фильтр (простейший - без фильтра)
+ int filtered = predicted;
+
+ diff = sample - filtered;
+
+ // Находим наилучший nibble
+ int best_nibble = 0;
+ int best_error = INT_MAX;
+
+ for (int n = 0; n < 16; ++n) {
+ int step_index = state.prev_index + ((n & 7) * 2 - 7);
+ if (step_index < 0) step_index = 0;
+ if (step_index > 88) step_index = 88;
+
+ int current_step = step_table[step_index];
+ int delta = (n & 8) ? -current_step : current_step;
+
+ int current_sample = filtered + delta;
+ int error = abs(sample - current_sample);
+
+ if (error < best_error) {
+ best_error = error;
+ best_nibble = n;
+ }
+ }
+
+ // Декодируем выбранный nibble для обновления состояния
+ int step_index = state.prev_index + ((best_nibble & 7) * 2 - 7);
+ if (step_index < 0) step_index = 0;
+ if (step_index > 88) step_index = 88;
+
+ int current_step = step_table[step_index];
+ int delta = (best_nibble & 8) ? -current_step : current_step;
+
+ state.prev_sample = filtered + delta;
+ state.prev_index = step_index;
+
+ // Ограничиваем индекс
+ if (state.prev_index < 0) state.prev_index = 0;
+ if (state.prev_index > 88) state.prev_index = 88;
+
+ // Ограничиваем сэмпл
+ state.prev_sample = clamp16(state.prev_sample);
+
+ return best_nibble;
+}
+
+void BrrConverter::writeBrrBlock(QFile &file, const QVector &samples, bool loop)
+{
+ if (samples.size() != 32) {
+ qDebug() << "Invalid sample count for BRR block:" << samples.size();
+ return;
+ }
+
+ unsigned char header = 0x00;
+ if (loop) {
+ header = 0x03; // Фильтр 0 + loop
+ }
+
+ file.write((char*)&header, 1);
+
+ // Упаковываем 32 ниббла в 8 байт
+ for (int i = 0; i < 16; ++i) {
+ unsigned char byte = (samples[i * 2] << 4) | (samples[i * 2 + 1] & 0x0F);
+ file.write((char*)&byte, 1);
+ }
+}
+
+int BrrConverter::decodeADPCMNibble(int nibble, ADPCMState &state)
+{
+ int step = step_table[state.prev_index];
+ int delta = step >> 3;
+
+ if (nibble & 1) delta += step >> 2;
+ if (nibble & 2) delta += step >> 1;
+ if (nibble & 4) delta += step;
+
+ if (nibble & 8) delta = -delta;
+
+ // Применяем фильтр (простейший)
+ int sample = state.prev_sample + delta;
+
+ // Ограничиваем
+ sample = clamp16(sample);
+
+ // Обновляем индекс
+ state.prev_index += ((nibble & 7) * 2 - 7);
+ if (state.prev_index < 0) state.prev_index = 0;
+ if (state.prev_index > 88) state.prev_index = 88;
+
+ state.prev_sample = sample;
+
+ return sample;
+}
+
+QVector BrrConverter::decodeBrrFile(const QString &brrFilePath)
+{
+ QVector samples;
+ QFile file(brrFilePath);
+
+ if (!file.open(QIODevice::ReadOnly)) {
+ qDebug() << "Cannot open BRR file for reading:" << brrFilePath;
+ return samples;
+ }
+
+ ADPCMState state;
+
+ while (!file.atEnd()) {
+ unsigned char header;
+ if (file.read((char*)&header, 1) != 1) break;
+
+ unsigned char data[8];
+ if (file.read((char*)data, 8) != 8) break;
+
+ // Извлекаем нибблы
+ for (int i = 0; i < 8; ++i) {
+ unsigned char byte = data[i];
+ int nibble1 = (byte >> 4) & 0x0F;
+ int nibble2 = byte & 0x0F;
+
+ int sample1 = decodeADPCMNibble(nibble1, state);
+ int sample2 = decodeADPCMNibble(nibble2, state);
+
+ samples.append(sample1);
+ samples.append(sample2);
+ }
+
+ // Проверяем конец
+ if (header & 0x01) {
+ break; // Конец сэмпла
+ }
+ }
+
+ file.close();
+ return samples;
+}
\ No newline at end of file
diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/brrconverter.h b/OtherPush/yamitraherIlyaEdit/Yamitracker/brrconverter.h
new file mode 100644
index 0000000..175879a
--- /dev/null
+++ b/OtherPush/yamitraherIlyaEdit/Yamitracker/brrconverter.h
@@ -0,0 +1,54 @@
+#ifndef BRRCONVERTER_H
+#define BRRCONVERTER_H
+
+#include
+#include
+#include
+#include
+#include
+
+class BrrConverter : public QObject
+{
+ Q_OBJECT
+
+public:
+ BrrConverter(QObject *parent = nullptr);
+
+ bool convertWavToBrr(const QString &wavFilePath, const QString &brrFilePath);
+ bool convertMidiToBrr(const QString &midiFilePath, const QString &brrFilePath);
+
+private:
+ struct ADPCMState {
+ int prev_sample;
+ int prev_index;
+
+ ADPCMState() : prev_sample(0), prev_index(0) {}
+ };
+
+ struct BRRBlock {
+ unsigned char header;
+ unsigned char data[8];
+ };
+
+ bool decodeWavHeader(QFile &file, int &sampleRate, int &channels, int &bitsPerSample, int &dataSize);
+ int16_t clamp16(int sample);
+ int encodeADPCMNibble(int sample, ADPCMState &state);
+ void writeBrrBlock(QFile &file, const QVector &samples, bool loop = false);
+ int decodeADPCMNibble(int nibble, ADPCMState &state);
+ QVector decodeBrrFile(const QString &brrFilePath);
+
+ static const int BRR_BLOCK_SIZE = 9;
+ static const int SAMPLES_PER_BLOCK = 16;
+ static const int FILTER_TYPES = 4;
+
+ const int step_table[89] = {
+ 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 19, 21, 23, 25, 28, 31, 34, 37, 41, 45,
+ 50, 55, 60, 66, 73, 80, 88, 97, 107, 118, 130, 143, 157, 173, 190, 209, 230,
+ 253, 279, 307, 337, 371, 408, 449, 494, 544, 598, 658, 724, 796, 876, 963,
+ 1060, 1166, 1282, 1411, 1552, 1707, 1878, 2066, 2272, 2499, 2749, 3024, 3327,
+ 3660, 4026, 4428, 4871, 5358, 5894, 6484, 7132, 7845, 8630, 9493, 10442, 11487,
+ 12635, 13899, 15289, 16818, 18500, 20350, 22385, 24623, 27086, 29794, 32767
+ };
+};
+
+#endif
\ No newline at end of file
diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build/.qmake.stash b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/.qmake.stash
new file mode 100644
index 0000000..99e66aa
--- /dev/null
+++ b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/.qmake.stash
@@ -0,0 +1,23 @@
+QMAKE_CXX.QT_COMPILER_STDCXX = 201703L
+QMAKE_CXX.QMAKE_GCC_MAJOR_VERSION = 13
+QMAKE_CXX.QMAKE_GCC_MINOR_VERSION = 3
+QMAKE_CXX.QMAKE_GCC_PATCH_VERSION = 0
+QMAKE_CXX.COMPILER_MACROS = \
+ QT_COMPILER_STDCXX \
+ QMAKE_GCC_MAJOR_VERSION \
+ QMAKE_GCC_MINOR_VERSION \
+ QMAKE_GCC_PATCH_VERSION
+QMAKE_CXX.INCDIRS = \
+ /usr/include/c++/13 \
+ /usr/include/x86_64-linux-gnu/c++/13 \
+ /usr/include/c++/13/backward \
+ /usr/lib/gcc/x86_64-linux-gnu/13/include \
+ /usr/local/include \
+ /usr/include/x86_64-linux-gnu \
+ /usr/include
+QMAKE_CXX.LIBDIRS = \
+ /usr/lib/gcc/x86_64-linux-gnu/13 \
+ /usr/lib/x86_64-linux-gnu \
+ /usr/lib \
+ /lib/x86_64-linux-gnu \
+ /lib
diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build/Makefile b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/Makefile
new file mode 100644
index 0000000..40ccdcb
--- /dev/null
+++ b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/Makefile
@@ -0,0 +1,458 @@
+#############################################################################
+# Makefile for building: Yamitracker
+# Generated by qmake (3.1) (Qt 5.15.13)
+# Project: ../Yamitracker.pro
+# Template: app
+# Command: /usr/lib/qt5/bin/qmake -o Makefile ../Yamitracker.pro
+#############################################################################
+
+MAKEFILE = Makefile
+
+EQ = =
+
+####### Compiler, tools and options
+
+CC = gcc
+CXX = g++
+DEFINES = -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_MULTIMEDIA_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB
+CFLAGS = -pipe -O2 -Wall -Wextra -D_REENTRANT -fPIC $(DEFINES)
+CXXFLAGS = -pipe -O2 -std=gnu++1z -Wall -Wextra -D_REENTRANT -fPIC $(DEFINES)
+INCPATH = -I../../Yamitracker -I. -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtMultimedia -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I. -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++
+QMAKE = /usr/lib/qt5/bin/qmake
+DEL_FILE = rm -f
+CHK_DIR_EXISTS= test -d
+MKDIR = mkdir -p
+COPY = cp -f
+COPY_FILE = cp -f
+COPY_DIR = cp -f -R
+INSTALL_FILE = install -m 644 -p
+INSTALL_PROGRAM = install -m 755 -p
+INSTALL_DIR = cp -f -R
+QINSTALL = /usr/lib/qt5/bin/qmake -install qinstall
+QINSTALL_PROGRAM = /usr/lib/qt5/bin/qmake -install qinstall -exe
+DEL_FILE = rm -f
+SYMLINK = ln -f -s
+DEL_DIR = rmdir
+MOVE = mv -f
+TAR = tar -cf
+COMPRESS = gzip -9f
+DISTNAME = Yamitracker1.0.0
+DISTDIR = /home/sofft328/progs/Yamitracker/Yamitracker5.beta/Yamitracker4/Yamitracker/build/.tmp/Yamitracker1.0.0
+LINK = g++
+LFLAGS = -Wl,-O1
+LIBS = $(SUBLIBS) /usr/lib/x86_64-linux-gnu/libQt5Widgets.so /usr/lib/x86_64-linux-gnu/libQt5Multimedia.so /usr/lib/x86_64-linux-gnu/libQt5Gui.so /usr/lib/x86_64-linux-gnu/libQt5Network.so /usr/lib/x86_64-linux-gnu/libQt5Core.so -lGL -lpthread
+AR = ar cqs
+RANLIB =
+SED = sed
+STRIP = strip
+
+####### Output directory
+
+OBJECTS_DIR = ./
+
+####### Files
+
+SOURCES = ../main.cpp \
+ ../yamitracker.cpp \
+ ../simplewavwriter.cpp \
+ ../brrconverter.cpp moc_yamitracker.cpp \
+ moc_simplewavwriter.cpp \
+ moc_brrconverter.cpp
+OBJECTS = main.o \
+ yamitracker.o \
+ simplewavwriter.o \
+ brrconverter.o \
+ moc_yamitracker.o \
+ moc_simplewavwriter.o \
+ moc_brrconverter.o
+DIST = /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_multimedia.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_multimediawidgets.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf \
+ ../.qmake.stash \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/uic.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf \
+ ../../Yamitracker.pro ../yamitracker.h \
+ ../simplewavwriter.h \
+ ../brrconverter.h ../main.cpp \
+ ../yamitracker.cpp \
+ ../simplewavwriter.cpp \
+ ../brrconverter.cpp
+QMAKE_TARGET = Yamitracker
+DESTDIR =
+TARGET = Yamitracker
+
+
+first: all
+####### Build rules
+
+Yamitracker: ui_yamitracker.h $(OBJECTS)
+ $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS)
+
+Makefile: ../Yamitracker.pro /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_multimedia.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_multimediawidgets.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf \
+ .qmake.stash \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/uic.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf \
+ ../Yamitracker.pro
+ $(QMAKE) -o Makefile ../Yamitracker.pro
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_multimedia.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_multimediawidgets.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf:
+.qmake.stash:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/uic.prf:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf:
+../Yamitracker.pro:
+qmake: FORCE
+ @$(QMAKE) -o Makefile ../Yamitracker.pro
+
+qmake_all: FORCE
+
+
+all: Makefile Yamitracker
+
+dist: distdir FORCE
+ (cd `dirname $(DISTDIR)` && $(TAR) $(DISTNAME).tar $(DISTNAME) && $(COMPRESS) $(DISTNAME).tar) && $(MOVE) `dirname $(DISTDIR)`/$(DISTNAME).tar.gz . && $(DEL_FILE) -r $(DISTDIR)
+
+distdir: FORCE
+ @test -d $(DISTDIR) || mkdir -p $(DISTDIR)
+ $(COPY_FILE) --parents $(DIST) $(DISTDIR)/
+ $(COPY_FILE) --parents /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp $(DISTDIR)/
+ $(COPY_FILE) --parents ../yamitracker.h ../simplewavwriter.h ../brrconverter.h $(DISTDIR)/
+ $(COPY_FILE) --parents ../main.cpp ../yamitracker.cpp ../simplewavwriter.cpp ../brrconverter.cpp $(DISTDIR)/
+ $(COPY_FILE) --parents ../yamitracker.ui $(DISTDIR)/
+
+
+clean: compiler_clean
+ -$(DEL_FILE) $(OBJECTS)
+ -$(DEL_FILE) *~ core *.core
+
+
+distclean: clean
+ -$(DEL_FILE) $(TARGET)
+ -$(DEL_FILE) .qmake.stash
+ -$(DEL_FILE) Makefile
+
+
+####### Sub-libraries
+
+mocclean: compiler_moc_header_clean compiler_moc_objc_header_clean compiler_moc_source_clean
+
+mocables: compiler_moc_header_make_all compiler_moc_objc_header_make_all compiler_moc_source_make_all
+
+check: first
+
+benchmark: first
+
+compiler_rcc_make_all:
+compiler_rcc_clean:
+compiler_moc_predefs_make_all: moc_predefs.h
+compiler_moc_predefs_clean:
+ -$(DEL_FILE) moc_predefs.h
+moc_predefs.h: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp
+ g++ -pipe -O2 -std=gnu++1z -Wall -Wextra -dM -E -o moc_predefs.h /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp
+
+compiler_moc_header_make_all: moc_yamitracker.cpp moc_simplewavwriter.cpp moc_brrconverter.cpp
+compiler_moc_header_clean:
+ -$(DEL_FILE) moc_yamitracker.cpp moc_simplewavwriter.cpp moc_brrconverter.cpp
+moc_yamitracker.cpp: ../yamitracker.h \
+ ../simplewavwriter.h \
+ ../brrconverter.h \
+ moc_predefs.h \
+ /usr/lib/qt5/bin/moc
+ /usr/lib/qt5/bin/moc $(DEFINES) --include /home/sofft328/progs/Yamitracker/Yamitracker5.beta/Yamitracker4/Yamitracker/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/sofft328/progs/Yamitracker/Yamitracker5.beta/Yamitracker4/Yamitracker -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtMultimedia -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/13 -I/usr/include/x86_64-linux-gnu/c++/13 -I/usr/include/c++/13/backward -I/usr/lib/gcc/x86_64-linux-gnu/13/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../yamitracker.h -o moc_yamitracker.cpp
+
+moc_simplewavwriter.cpp: ../simplewavwriter.h \
+ moc_predefs.h \
+ /usr/lib/qt5/bin/moc
+ /usr/lib/qt5/bin/moc $(DEFINES) --include /home/sofft328/progs/Yamitracker/Yamitracker5.beta/Yamitracker4/Yamitracker/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/sofft328/progs/Yamitracker/Yamitracker5.beta/Yamitracker4/Yamitracker -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtMultimedia -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/13 -I/usr/include/x86_64-linux-gnu/c++/13 -I/usr/include/c++/13/backward -I/usr/lib/gcc/x86_64-linux-gnu/13/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../simplewavwriter.h -o moc_simplewavwriter.cpp
+
+moc_brrconverter.cpp: ../brrconverter.h \
+ moc_predefs.h \
+ /usr/lib/qt5/bin/moc
+ /usr/lib/qt5/bin/moc $(DEFINES) --include /home/sofft328/progs/Yamitracker/Yamitracker5.beta/Yamitracker4/Yamitracker/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/sofft328/progs/Yamitracker/Yamitracker5.beta/Yamitracker4/Yamitracker -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtMultimedia -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/13 -I/usr/include/x86_64-linux-gnu/c++/13 -I/usr/include/c++/13/backward -I/usr/lib/gcc/x86_64-linux-gnu/13/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../brrconverter.h -o moc_brrconverter.cpp
+
+compiler_moc_objc_header_make_all:
+compiler_moc_objc_header_clean:
+compiler_moc_source_make_all:
+compiler_moc_source_clean:
+compiler_uic_make_all: ui_yamitracker.h
+compiler_uic_clean:
+ -$(DEL_FILE) ui_yamitracker.h
+ui_yamitracker.h: ../yamitracker.ui \
+ /usr/lib/qt5/bin/uic
+ /usr/lib/qt5/bin/uic ../yamitracker.ui -o ui_yamitracker.h
+
+compiler_yacc_decl_make_all:
+compiler_yacc_decl_clean:
+compiler_yacc_impl_make_all:
+compiler_yacc_impl_clean:
+compiler_lex_make_all:
+compiler_lex_clean:
+compiler_clean: compiler_moc_predefs_clean compiler_moc_header_clean compiler_uic_clean
+
+####### Compile
+
+main.o: ../main.cpp ../yamitracker.h \
+ ../simplewavwriter.h \
+ ../brrconverter.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o main.o ../main.cpp
+
+yamitracker.o: ../yamitracker.cpp ../yamitracker.h \
+ ../simplewavwriter.h \
+ ../brrconverter.h \
+ ui_yamitracker.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o yamitracker.o ../yamitracker.cpp
+
+simplewavwriter.o: ../simplewavwriter.cpp ../simplewavwriter.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o simplewavwriter.o ../simplewavwriter.cpp
+
+brrconverter.o: ../brrconverter.cpp ../brrconverter.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o brrconverter.o ../brrconverter.cpp
+
+moc_yamitracker.o: moc_yamitracker.cpp
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_yamitracker.o moc_yamitracker.cpp
+
+moc_simplewavwriter.o: moc_simplewavwriter.cpp
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_simplewavwriter.o moc_simplewavwriter.cpp
+
+moc_brrconverter.o: moc_brrconverter.cpp
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_brrconverter.o moc_brrconverter.cpp
+
+####### Install
+
+install_target: first FORCE
+ @test -d $(INSTALL_ROOT)/opt/Yamitracker/bin || mkdir -p $(INSTALL_ROOT)/opt/Yamitracker/bin
+ $(QINSTALL_PROGRAM) $(QMAKE_TARGET) $(INSTALL_ROOT)/opt/Yamitracker/bin/$(QMAKE_TARGET)
+ -$(STRIP) $(INSTALL_ROOT)/opt/Yamitracker/bin/$(QMAKE_TARGET)
+
+uninstall_target: FORCE
+ -$(DEL_FILE) $(INSTALL_ROOT)/opt/Yamitracker/bin/$(QMAKE_TARGET)
+ -$(DEL_DIR) $(INSTALL_ROOT)/opt/Yamitracker/bin/
+
+
+install: install_target FORCE
+
+uninstall: uninstall_target FORCE
+
+FORCE:
+
diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build/Yamitracker b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/Yamitracker
new file mode 100644
index 0000000..153aed1
Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/Yamitracker differ
diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build/a.s b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/a.s
new file mode 100644
index 0000000..0225c2e
--- /dev/null
+++ b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/a.s
@@ -0,0 +1,139 @@
+; Generated by Yamitracker
+; Date: 2025-12-17 14:14:41
+; Tracks: 2
+
+music_inst_table:
+ INST PLING_8, 3, 10, 1, 0, 31, 19, 15, 2
+ INST PLING_8, 3, 10, 1, 0, 31, 19, 15, 2
+
+pently_patterns:
+ .addr PPDAT_track0
+ .addr PPDAT_track1
+
+PPDAT_track0:
+ .byt D_D8
+ .byt D_D8
+ .byt D_D8
+ .byt D_D2
+ .byt N_EH|D_D2
+ .byt N_EH|D_D8
+ .byt D_D4
+ .byt N_GH|D_D2
+ .byt N_GH|D_D8
+ .byt N_EH|D_D2
+ .byt N_EH|D_D8
+ .byt D_D8
+ .byt D_1
+ .byt N_GH|D_D2
+ .byt N_GH|D_D8
+ .byt D_D4
+ .byt N_EH|D_D2
+ .byt N_EH|D_D8
+ .byt D_D4
+ .byt N_GH|D_D2
+ .byt N_GH|D_D8
+ .byt D_D8
+ .byt D_D4
+ .byt N_EH|D_D2
+ .byt N_EH|D_D8
+ .byt D_D8
+ .byt D_D2
+ .byt N_GH|D_D2
+ .byt N_GH|D_D8
+ .byt PATEND
+
+PPDAT_track1:
+ .byt D_D8
+ .byt D_D8
+ .byt N_AH|D_D2
+ .byt N_AH|D_D2
+ .byt D_D2
+ .byt N_AH|D_1
+ .byt N_AH|D_D2
+ .byt D_1
+ .byt N_AH|D_D2
+ .byt N_AH|D_D4
+ .byt D_1
+ .byt N_AH|D_D2
+ .byt N_AH|D_D2
+ .byt D_1
+ .byt N_AH|D_D2
+ .byt N_AH|D_D4
+ .byt D_1
+ .byt N_AH|D_D2
+ .byt N_AH|D_D2
+ .byt D_1
+ .byt N_AH|D_D2
+ .byt N_AH|D_D2
+ .byt D_D2
+ .byt N_AH|D_D2
+ .byt N_AH|D_D2
+ .byt D_D2
+ .byt N_AH|D_D2
+ .byt N_AH|D_D2
+ .byt D_D2
+ .byt N_AH|D_D2
+ .byt N_AH|D_D2
+ .byt D_1
+ .byt N_AH|D_D2
+ .byt N_AH|D_D8
+ .byt D_D2
+ .byt N_AH|D_D2
+ .byt N_AH|D_D2
+ .byt D_1
+ .byt N_AH|D_D2
+ .byt N_AH|D_D2
+ .byt D_1
+ .byt N_AH|D_D2
+ .byt N_AH|D_D2
+ .byt D_D2
+ .byt N_AH|D_D2
+ .byt N_AH|D_D2
+ .byt D_D8
+ .byt D_D8
+ .byt D_D2
+ .byt N_AH|D_D2
+ .byt N_AH|D_D4
+ .byt D_D8
+ .byt D_D2
+ .byt N_AH|D_D8
+ .byt N_AH|D_D2
+ .byt D_D8
+ .byt D_D4
+ .byt N_AH|D_D2
+ .byt N_AH|D_D8
+ .byt D_D8
+ .byt D_D2
+ .byt N_AH|D_D2
+ .byt N_AH|D_D4
+ .byt D_D8
+ .byt D_D4
+ .byt N_AH|D_D2
+ .byt N_AH|D_D4
+ .byt D_D8
+ .byt D_D4
+ .byt N_AH|D_D2
+ .byt N_AH|D_D2
+ .byt D_D8
+ .byt D_D8
+ .byt D_D4
+ .byt N_AH|D_D2
+ .byt N_AH|D_D4
+ .byt PATEND
+
+pently_songs:
+ .addr PSDAT_main_song
+
+PSDAT_main_song:
+ setTempo 1000
+ playPat 0, 0, 23, PLING_8
+ playPat 1, 1, 23, PLING_8
+ waitRows 255
+ stopPat 0
+ stopPat 1
+ dalSegno
+
+; ÐÐÐ ÐÐÐЧÐÐÐЯ PENTLY:
+; - ÐакÑималÑÐ½Ð°Ñ Ð´Ð»Ð¸ÑелÑноÑÑÑ Ð·Ð°Ð´ÐµÑжки: D_D8 (255 Ñиков)
+; - ÐакÑималÑнÑй waitRows: 255 Ñиков
+; - ÐлиÑелÑнÑе паÑÐ·Ñ ÑазбиваÑÑÑÑ Ð½Ð° неÑколÑко D_D8
diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build/brrconverter.o b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/brrconverter.o
new file mode 100644
index 0000000..149ec06
Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/brrconverter.o differ
diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build/main.o b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/main.o
new file mode 100644
index 0000000..ff2db7a
Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/main.o differ
diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build/moc_brrconverter.cpp b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/moc_brrconverter.cpp
new file mode 100644
index 0000000..a11b9fc
--- /dev/null
+++ b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/moc_brrconverter.cpp
@@ -0,0 +1,95 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'brrconverter.h'
+**
+** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.13)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include
+#include "../brrconverter.h"
+#include
+#include
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'brrconverter.h' doesn't include ."
+#elif Q_MOC_OUTPUT_REVISION != 67
+#error "This file was generated using the moc from 5.15.13. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+QT_WARNING_PUSH
+QT_WARNING_DISABLE_DEPRECATED
+struct qt_meta_stringdata_BrrConverter_t {
+ QByteArrayData data[1];
+ char stringdata0[13];
+};
+#define QT_MOC_LITERAL(idx, ofs, len) \
+ Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
+ qptrdiff(offsetof(qt_meta_stringdata_BrrConverter_t, stringdata0) + ofs \
+ - idx * sizeof(QByteArrayData)) \
+ )
+static const qt_meta_stringdata_BrrConverter_t qt_meta_stringdata_BrrConverter = {
+ {
+QT_MOC_LITERAL(0, 0, 12) // "BrrConverter"
+
+ },
+ "BrrConverter"
+};
+#undef QT_MOC_LITERAL
+
+static const uint qt_meta_data_BrrConverter[] = {
+
+ // content:
+ 8, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 0, 0, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+ 0, // flags
+ 0, // signalCount
+
+ 0 // eod
+};
+
+void BrrConverter::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
+{
+ (void)_o;
+ (void)_id;
+ (void)_c;
+ (void)_a;
+}
+
+QT_INIT_METAOBJECT const QMetaObject BrrConverter::staticMetaObject = { {
+ QMetaObject::SuperData::link(),
+ qt_meta_stringdata_BrrConverter.data,
+ qt_meta_data_BrrConverter,
+ qt_static_metacall,
+ nullptr,
+ nullptr
+} };
+
+
+const QMetaObject *BrrConverter::metaObject() const
+{
+ return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
+}
+
+void *BrrConverter::qt_metacast(const char *_clname)
+{
+ if (!_clname) return nullptr;
+ if (!strcmp(_clname, qt_meta_stringdata_BrrConverter.stringdata0))
+ return static_cast(this);
+ return QObject::qt_metacast(_clname);
+}
+
+int BrrConverter::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+ _id = QObject::qt_metacall(_c, _id, _a);
+ return _id;
+}
+QT_WARNING_POP
+QT_END_MOC_NAMESPACE
diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build/moc_brrconverter.o b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/moc_brrconverter.o
new file mode 100644
index 0000000..fa3b784
Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/moc_brrconverter.o differ
diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build/moc_predefs.h b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/moc_predefs.h
new file mode 100644
index 0000000..f29ad61
--- /dev/null
+++ b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/moc_predefs.h
@@ -0,0 +1,464 @@
+#define __DBL_MIN_EXP__ (-1021)
+#define __cpp_nontype_template_parameter_auto 201606L
+#define __UINT_LEAST16_MAX__ 0xffff
+#define __FLT16_HAS_QUIET_NAN__ 1
+#define __ATOMIC_ACQUIRE 2
+#define __FLT128_MAX_10_EXP__ 4932
+#define __FLT_MIN__ 1.17549435082228750796873653722224568e-38F
+#define __GCC_IEC_559_COMPLEX 2
+#define __cpp_aggregate_nsdmi 201304L
+#define __UINT_LEAST8_TYPE__ unsigned char
+#define __SIZEOF_FLOAT80__ 16
+#define __BFLT16_DENORM_MIN__ 9.18354961579912115600575419704879436e-41BF16
+#define __INTMAX_C(c) c ## L
+#define __CHAR_BIT__ 8
+#define __UINT8_MAX__ 0xff
+#define __SCHAR_WIDTH__ 8
+#define __WINT_MAX__ 0xffffffffU
+#define __FLT32_MIN_EXP__ (-125)
+#define __cpp_static_assert 201411L
+#define __BFLT16_MIN_10_EXP__ (-37)
+#define __ORDER_LITTLE_ENDIAN__ 1234
+#define __WCHAR_MAX__ 0x7fffffff
+#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1
+#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1
+#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1
+#define __GCC_ATOMIC_CHAR_LOCK_FREE 2
+#define __GCC_IEC_559 2
+#define __FLT32X_DECIMAL_DIG__ 17
+#define __FLT_EVAL_METHOD__ 0
+#define __cpp_binary_literals 201304L
+#define __FLT64_DECIMAL_DIG__ 17
+#define __CET__ 3
+#define __cpp_noexcept_function_type 201510L
+#define __GCC_ATOMIC_CHAR32_T_LOCK_FREE 2
+#define __cpp_variadic_templates 200704L
+#define __UINT_FAST64_MAX__ 0xffffffffffffffffUL
+#define __SIG_ATOMIC_TYPE__ int
+#define __DBL_MIN_10_EXP__ (-307)
+#define __FINITE_MATH_ONLY__ 0
+#define __cpp_variable_templates 201304L
+#define __FLT32X_MAX_EXP__ 1024
+#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1
+#define __FLT32_HAS_DENORM__ 1
+#define __UINT_FAST8_MAX__ 0xff
+#define __cpp_rvalue_reference 200610L
+#define __cpp_nested_namespace_definitions 201411L
+#define __DEC64_MAX_EXP__ 385
+#define __INT8_C(c) c
+#define __LDBL_HAS_INFINITY__ 1
+#define __INT_LEAST8_WIDTH__ 8
+#define __cpp_variadic_using 201611L
+#define __UINT_LEAST64_MAX__ 0xffffffffffffffffUL
+#define __INT_LEAST8_MAX__ 0x7f
+#define __cpp_attributes 200809L
+#define __cpp_capture_star_this 201603L
+#define __SHRT_MAX__ 0x7fff
+#define __LDBL_MAX__ 1.18973149535723176502126385303097021e+4932L
+#define __FLT64X_MAX_10_EXP__ 4932
+#define __cpp_if_constexpr 201606L
+#define __BFLT16_MAX_10_EXP__ 38
+#define __BFLT16_MAX_EXP__ 128
+#define __LDBL_IS_IEC_60559__ 1
+#define __FLT64X_HAS_QUIET_NAN__ 1
+#define __UINT_LEAST8_MAX__ 0xff
+#define __GCC_ATOMIC_BOOL_LOCK_FREE 2
+#define __FLT128_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966F128
+#define __UINTMAX_TYPE__ long unsigned int
+#define __cpp_nsdmi 200809L
+#define __BFLT16_DECIMAL_DIG__ 4
+#define __linux 1
+#define __DEC32_EPSILON__ 1E-6DF
+#define __FLT_EVAL_METHOD_TS_18661_3__ 0
+#define __OPTIMIZE__ 1
+#define __UINT32_MAX__ 0xffffffffU
+#define __GXX_EXPERIMENTAL_CXX0X__ 1
+#define __DBL_DENORM_MIN__ double(4.94065645841246544176568792868221372e-324L)
+#define __FLT128_MIN_EXP__ (-16381)
+#define __WINT_MIN__ 0U
+#define __FLT128_MIN_10_EXP__ (-4931)
+#define __FLT32X_IS_IEC_60559__ 1
+#define __INT_LEAST16_WIDTH__ 16
+#define __SCHAR_MAX__ 0x7f
+#define __FLT128_MANT_DIG__ 113
+#define __WCHAR_MIN__ (-__WCHAR_MAX__ - 1)
+#define __INT64_C(c) c ## L
+#define __SSP_STRONG__ 3
+#define __GCC_ATOMIC_POINTER_LOCK_FREE 2
+#define __ATOMIC_SEQ_CST 5
+#define _FORTIFY_SOURCE 3
+#define __unix 1
+#define __INT_LEAST64_MAX__ 0x7fffffffffffffffL
+#define __FLT32X_MANT_DIG__ 53
+#define __GCC_ATOMIC_CHAR16_T_LOCK_FREE 2
+#define __cpp_aligned_new 201606L
+#define __FLT32_MAX_10_EXP__ 38
+#define __FLT64X_EPSILON__ 1.08420217248550443400745280086994171e-19F64x
+#define __STDC_HOSTED__ 1
+#define __DEC64_MIN_EXP__ (-382)
+#define __cpp_decltype_auto 201304L
+#define __DBL_DIG__ 15
+#define __FLT_EPSILON__ 1.19209289550781250000000000000000000e-7F
+#define __GXX_WEAK__ 1
+#define __SHRT_WIDTH__ 16
+#define __FLT32_IS_IEC_60559__ 1
+#define __LDBL_MIN__ 3.36210314311209350626267781732175260e-4932L
+#define __DBL_IS_IEC_60559__ 1
+#define __DEC32_MAX__ 9.999999E96DF
+#define __cpp_threadsafe_static_init 200806L
+#define __cpp_enumerator_attributes 201411L
+#define __FLT64X_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951F64x
+#define __FLT32X_HAS_INFINITY__ 1
+#define __unix__ 1
+#define __INT_WIDTH__ 32
+#define __STDC_IEC_559__ 1
+#define __STDC_ISO_10646__ 201706L
+#define __DECIMAL_DIG__ 21
+#define __STDC_IEC_559_COMPLEX__ 1
+#define __FLT64_EPSILON__ 2.22044604925031308084726333618164062e-16F64
+#define __gnu_linux__ 1
+#define __INT16_MAX__ 0x7fff
+#define __FLT64_MIN_EXP__ (-1021)
+#define __FLT64X_MIN_10_EXP__ (-4931)
+#define __LDBL_HAS_QUIET_NAN__ 1
+#define __cpp_return_type_deduction 201304L
+#define __FLT16_MIN_EXP__ (-13)
+#define __FLT64_MANT_DIG__ 53
+#define __FLT64X_MANT_DIG__ 64
+#define __BFLT16_DIG__ 2
+#define __GNUC__ 13
+#define __GXX_RTTI 1
+#define __pie__ 2
+#define __MMX__ 1
+#define __FLT_HAS_DENORM__ 1
+#define __SIZEOF_LONG_DOUBLE__ 16
+#define __BIGGEST_ALIGNMENT__ 16
+#define __STDC_UTF_16__ 1
+#define __FLT64_MAX_10_EXP__ 308
+#define __BFLT16_IS_IEC_60559__ 0
+#define __FLT16_MAX_10_EXP__ 4
+#define __cpp_delegating_constructors 200604L
+#define __DBL_MAX__ double(1.79769313486231570814527423731704357e+308L)
+#define __cpp_raw_strings 200710L
+#define __INT_FAST32_MAX__ 0x7fffffffffffffffL
+#define __DBL_HAS_INFINITY__ 1
+#define __INT64_MAX__ 0x7fffffffffffffffL
+#define __SIZEOF_FLOAT__ 4
+#define __HAVE_SPECULATION_SAFE_VALUE 1
+#define __cpp_fold_expressions 201603L
+#define __DEC32_MIN_EXP__ (-94)
+#define __INTPTR_WIDTH__ 64
+#define __UINT_LEAST32_MAX__ 0xffffffffU
+#define __FLT32X_HAS_DENORM__ 1
+#define __INT_FAST16_TYPE__ long int
+#define __MMX_WITH_SSE__ 1
+#define __LDBL_HAS_DENORM__ 1
+#define __SEG_GS 1
+#define __BFLT16_EPSILON__ 7.81250000000000000000000000000000000e-3BF16
+#define __cplusplus 201703L
+#define __cpp_ref_qualifiers 200710L
+#define __DEC32_MIN__ 1E-95DF
+#define __DEPRECATED 1
+#define __cpp_rvalue_references 200610L
+#define __DBL_MAX_EXP__ 1024
+#define __WCHAR_WIDTH__ 32
+#define __FLT32_MAX__ 3.40282346638528859811704183484516925e+38F32
+#define __DEC128_EPSILON__ 1E-33DL
+#define __FLT16_DECIMAL_DIG__ 5
+#define __SSE2_MATH__ 1
+#define __ATOMIC_HLE_RELEASE 131072
+#define __PTRDIFF_MAX__ 0x7fffffffffffffffL
+#define __amd64 1
+#define __ATOMIC_HLE_ACQUIRE 65536
+#define __GNUG__ 13
+#define __LONG_LONG_MAX__ 0x7fffffffffffffffLL
+#define __SIZEOF_SIZE_T__ 8
+#define __BFLT16_HAS_INFINITY__ 1
+#define __FLT64X_MIN_EXP__ (-16381)
+#define __SIZEOF_WINT_T__ 4
+#define __FLT32X_DIG__ 15
+#define __LONG_LONG_WIDTH__ 64
+#define __cpp_initializer_lists 200806L
+#define __FLT32_MAX_EXP__ 128
+#define __cpp_hex_float 201603L
+#define __GXX_ABI_VERSION 1018
+#define __FLT_MIN_EXP__ (-125)
+#define __GCC_HAVE_DWARF2_CFI_ASM 1
+#define __x86_64 1
+#define __cpp_lambdas 200907L
+#define __INT_FAST64_TYPE__ long int
+#define __BFLT16_MAX__ 3.38953138925153547590470800371487867e+38BF16
+#define __FLT64_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F64
+#define __cpp_template_auto 201606L
+#define __FLT16_DENORM_MIN__ 5.96046447753906250000000000000000000e-8F16
+#define __FLT128_EPSILON__ 1.92592994438723585305597794258492732e-34F128
+#define __FLT64X_NORM_MAX__ 1.18973149535723176502126385303097021e+4932F64x
+#define __SIZEOF_POINTER__ 8
+#define __SIZE_TYPE__ long unsigned int
+#define __LP64__ 1
+#define __DBL_HAS_QUIET_NAN__ 1
+#define __FLT32X_EPSILON__ 2.22044604925031308084726333618164062e-16F32x
+#define __LDBL_MAX_EXP__ 16384
+#define __DECIMAL_BID_FORMAT__ 1
+#define __FLT64_MIN_10_EXP__ (-307)
+#define __FLT16_MIN_10_EXP__ (-4)
+#define __FLT64X_DECIMAL_DIG__ 21
+#define __DEC128_MIN__ 1E-6143DL
+#define __REGISTER_PREFIX__
+#define __UINT16_MAX__ 0xffff
+#define __FLT128_HAS_INFINITY__ 1
+#define __FLT32_MIN__ 1.17549435082228750796873653722224568e-38F32
+#define __UINT8_TYPE__ unsigned char
+#define __FLT_DIG__ 6
+#define __DEC_EVAL_METHOD__ 2
+#define __FLT_MANT_DIG__ 24
+#define __LDBL_DECIMAL_DIG__ 21
+#define __VERSION__ "13.3.0"
+#define __UINT64_C(c) c ## UL
+#define __cpp_unicode_characters 201411L
+#define _STDC_PREDEF_H 1
+#define __INT_LEAST32_MAX__ 0x7fffffff
+#define __GCC_ATOMIC_INT_LOCK_FREE 2
+#define __FLT128_MAX_EXP__ 16384
+#define __FLT32_MANT_DIG__ 24
+#define __FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__
+#define __FLT32X_MIN_EXP__ (-1021)
+#define __STDC_IEC_60559_COMPLEX__ 201404L
+#define __cpp_aggregate_bases 201603L
+#define __BFLT16_MIN__ 1.17549435082228750796873653722224568e-38BF16
+#define __FLT128_HAS_DENORM__ 1
+#define __FLT32_DECIMAL_DIG__ 9
+#define __FLT128_DIG__ 33
+#define __INT32_C(c) c
+#define __DEC64_EPSILON__ 1E-15DD
+#define __ORDER_PDP_ENDIAN__ 3412
+#define __DEC128_MIN_EXP__ (-6142)
+#define __DEC128_MAX__ 9.999999999999999999999999999999999E6144DL
+#define __INT_FAST32_TYPE__ long int
+#define __UINT_LEAST16_TYPE__ short unsigned int
+#define __DEC128_MAX_EXP__ 6145
+#define unix 1
+#define __DBL_HAS_DENORM__ 1
+#define __cpp_rtti 199711L
+#define __UINT64_MAX__ 0xffffffffffffffffUL
+#define __FLT_IS_IEC_60559__ 1
+#define __GNUC_WIDE_EXECUTION_CHARSET_NAME "UTF-32LE"
+#define __FLT64X_DIG__ 18
+#define __INT8_TYPE__ signed char
+#define __cpp_digit_separators 201309L
+#define __ELF__ 1
+#define __GCC_ASM_FLAG_OUTPUTS__ 1
+#define __UINT32_TYPE__ unsigned int
+#define __BFLT16_HAS_QUIET_NAN__ 1
+#define __FLT_RADIX__ 2
+#define __INT_LEAST16_TYPE__ short int
+#define __LDBL_EPSILON__ 1.08420217248550443400745280086994171e-19L
+#define __UINTMAX_C(c) c ## UL
+#define __FLT16_DIG__ 3
+#define __k8 1
+#define __FLT32X_MIN__ 2.22507385850720138309023271733240406e-308F32x
+#define __SIG_ATOMIC_MAX__ 0x7fffffff
+#define __cpp_constexpr 201603L
+#define __GCC_ATOMIC_WCHAR_T_LOCK_FREE 2
+#define __USER_LABEL_PREFIX__
+#define __STDC_IEC_60559_BFP__ 201404L
+#define __SIZEOF_PTRDIFF_T__ 8
+#define __FLT64X_HAS_INFINITY__ 1
+#define __SIZEOF_LONG__ 8
+#define __LDBL_DIG__ 18
+#define __FLT64_IS_IEC_60559__ 1
+#define __x86_64__ 1
+#define __FLT16_IS_IEC_60559__ 1
+#define __FLT16_MAX_EXP__ 16
+#define __DEC32_SUBNORMAL_MIN__ 0.000001E-95DF
+#define __INT_FAST16_MAX__ 0x7fffffffffffffffL
+#define __GCC_CONSTRUCTIVE_SIZE 64
+#define __FLT64_DIG__ 15
+#define __UINT_FAST32_MAX__ 0xffffffffffffffffUL
+#define __UINT_LEAST64_TYPE__ long unsigned int
+#define __FLT16_EPSILON__ 9.76562500000000000000000000000000000e-4F16
+#define __FLT_HAS_QUIET_NAN__ 1
+#define __FLT_MAX_10_EXP__ 38
+#define __LONG_MAX__ 0x7fffffffffffffffL
+#define __FLT64X_HAS_DENORM__ 1
+#define __DEC128_SUBNORMAL_MIN__ 0.000000000000000000000000000000001E-6143DL
+#define __FLT_HAS_INFINITY__ 1
+#define __GNUC_EXECUTION_CHARSET_NAME "UTF-8"
+#define __cpp_unicode_literals 200710L
+#define __UINT_FAST16_TYPE__ long unsigned int
+#define __DEC64_MAX__ 9.999999999999999E384DD
+#define __INT_FAST32_WIDTH__ 64
+#define __CHAR16_TYPE__ short unsigned int
+#define __PRAGMA_REDEFINE_EXTNAME 1
+#define __SIZE_WIDTH__ 64
+#define __SEG_FS 1
+#define __INT_LEAST16_MAX__ 0x7fff
+#define __FLT16_NORM_MAX__ 6.55040000000000000000000000000000000e+4F16
+#define __DEC64_MANT_DIG__ 16
+#define __FLT32_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F32
+#define __SIG_ATOMIC_WIDTH__ 32
+#define __INT_LEAST64_TYPE__ long int
+#define __INT16_TYPE__ short int
+#define __INT_LEAST8_TYPE__ signed char
+#define __FLT16_MAX__ 6.55040000000000000000000000000000000e+4F16
+#define __FLT128_MIN__ 3.36210314311209350626267781732175260e-4932F128
+#define __cpp_structured_bindings 201606L
+#define __SIZEOF_INT__ 4
+#define __DEC32_MAX_EXP__ 97
+#define __INT_FAST8_MAX__ 0x7f
+#define __FLT128_MAX__ 1.18973149535723176508575932662800702e+4932F128
+#define __INTPTR_MAX__ 0x7fffffffffffffffL
+#define __cpp_sized_deallocation 201309L
+#define __cpp_guaranteed_copy_elision 201606L
+#define linux 1
+#define __FLT64_HAS_QUIET_NAN__ 1
+#define __FLT32_MIN_10_EXP__ (-37)
+#define __EXCEPTIONS 1
+#define __UINT16_C(c) c
+#define __PTRDIFF_WIDTH__ 64
+#define __LDBL_MANT_DIG__ 64
+#define __cpp_range_based_for 201603L
+#define __INT_FAST16_WIDTH__ 64
+#define __FLT64_HAS_INFINITY__ 1
+#define __FLT64X_MAX__ 1.18973149535723176502126385303097021e+4932F64x
+#define __FLT16_HAS_INFINITY__ 1
+#define __STDCPP_DEFAULT_NEW_ALIGNMENT__ 16
+#define __SIG_ATOMIC_MIN__ (-__SIG_ATOMIC_MAX__ - 1)
+#define __code_model_small__ 1
+#define __GCC_ATOMIC_LONG_LOCK_FREE 2
+#define __cpp_nontype_template_args 201411L
+#define __DEC32_MANT_DIG__ 7
+#define __k8__ 1
+#define __INTPTR_TYPE__ long int
+#define __UINT16_TYPE__ short unsigned int
+#define __WCHAR_TYPE__ int
+#define __pic__ 2
+#define __UINTPTR_MAX__ 0xffffffffffffffffUL
+#define __INT_FAST64_WIDTH__ 64
+#define __cpp_decltype 200707L
+#define __INT_FAST64_MAX__ 0x7fffffffffffffffL
+#define __GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1
+#define __FLT_NORM_MAX__ 3.40282346638528859811704183484516925e+38F
+#define __FLT32_HAS_INFINITY__ 1
+#define __FLT64X_MAX_EXP__ 16384
+#define __UINT_FAST64_TYPE__ long unsigned int
+#define __cpp_inline_variables 201606L
+#define __BFLT16_MIN_EXP__ (-125)
+#define __INT_MAX__ 0x7fffffff
+#define __linux__ 1
+#define __INT64_TYPE__ long int
+#define __FLT_MAX_EXP__ 128
+#define __ORDER_BIG_ENDIAN__ 4321
+#define __DBL_MANT_DIG__ 53
+#define __cpp_inheriting_constructors 201511L
+#define __SIZEOF_FLOAT128__ 16
+#define __BFLT16_MANT_DIG__ 8
+#define __DEC64_MIN__ 1E-383DD
+#define __WINT_TYPE__ unsigned int
+#define __UINT_LEAST32_TYPE__ unsigned int
+#define __SIZEOF_SHORT__ 2
+#define __FLT32_NORM_MAX__ 3.40282346638528859811704183484516925e+38F32
+#define __SSE__ 1
+#define __LDBL_MIN_EXP__ (-16381)
+#define __FLT64_MAX__ 1.79769313486231570814527423731704357e+308F64
+#define __amd64__ 1
+#define __WINT_WIDTH__ 32
+#define __INT_LEAST64_WIDTH__ 64
+#define __FLT32X_MAX_10_EXP__ 308
+#define __cpp_namespace_attributes 201411L
+#define __SIZEOF_INT128__ 16
+#define __FLT16_MIN__ 6.10351562500000000000000000000000000e-5F16
+#define __FLT64X_IS_IEC_60559__ 1
+#define __LDBL_MAX_10_EXP__ 4932
+#define __ATOMIC_RELAXED 0
+#define __DBL_EPSILON__ double(2.22044604925031308084726333618164062e-16L)
+#define __INT_LEAST32_TYPE__ int
+#define _LP64 1
+#define __UINT8_C(c) c
+#define __FLT64_MAX_EXP__ 1024
+#define __SIZEOF_WCHAR_T__ 4
+#define __GNUC_PATCHLEVEL__ 0
+#define __FLT128_NORM_MAX__ 1.18973149535723176508575932662800702e+4932F128
+#define __FLT64_NORM_MAX__ 1.79769313486231570814527423731704357e+308F64
+#define __FLT128_HAS_QUIET_NAN__ 1
+#define __INTMAX_MAX__ 0x7fffffffffffffffL
+#define __INT_FAST8_TYPE__ signed char
+#define __FLT64X_MIN__ 3.36210314311209350626267781732175260e-4932F64x
+#define __STDCPP_THREADS__ 1
+#define __BFLT16_HAS_DENORM__ 1
+#define __GNUC_STDC_INLINE__ 1
+#define __FLT64_HAS_DENORM__ 1
+#define __FLT32_EPSILON__ 1.19209289550781250000000000000000000e-7F32
+#define __FLT16_HAS_DENORM__ 1
+#define __DBL_DECIMAL_DIG__ 17
+#define __STDC_UTF_32__ 1
+#define __INT_FAST8_WIDTH__ 8
+#define __FXSR__ 1
+#define __FLT32X_MAX__ 1.79769313486231570814527423731704357e+308F32x
+#define __DBL_NORM_MAX__ double(1.79769313486231570814527423731704357e+308L)
+#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__
+#define __GCC_DESTRUCTIVE_SIZE 64
+#define __INTMAX_WIDTH__ 64
+#define __cpp_runtime_arrays 198712L
+#define __FLT32_DIG__ 6
+#define __UINT64_TYPE__ long unsigned int
+#define __UINT32_C(c) c ## U
+#define __cpp_alias_templates 200704L
+#define __FLT_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F
+#define __FLT128_IS_IEC_60559__ 1
+#define __INT8_MAX__ 0x7f
+#define __LONG_WIDTH__ 64
+#define __DBL_MIN__ double(2.22507385850720138309023271733240406e-308L)
+#define __PIC__ 2
+#define __INT32_MAX__ 0x7fffffff
+#define __UINT_FAST32_TYPE__ long unsigned int
+#define __FLT16_MANT_DIG__ 11
+#define __FLT32X_NORM_MAX__ 1.79769313486231570814527423731704357e+308F32x
+#define __CHAR32_TYPE__ unsigned int
+#define __FLT_MAX__ 3.40282346638528859811704183484516925e+38F
+#define __SSE2__ 1
+#define __cpp_deduction_guides 201703L
+#define __BFLT16_NORM_MAX__ 3.38953138925153547590470800371487867e+38BF16
+#define __INT32_TYPE__ int
+#define __SIZEOF_DOUBLE__ 8
+#define __cpp_exceptions 199711L
+#define __FLT_MIN_10_EXP__ (-37)
+#define __FLT64_MIN__ 2.22507385850720138309023271733240406e-308F64
+#define __INT_LEAST32_WIDTH__ 32
+#define __INTMAX_TYPE__ long int
+#define __GLIBCXX_BITSIZE_INT_N_0 128
+#define __FLT32X_HAS_QUIET_NAN__ 1
+#define __ATOMIC_CONSUME 1
+#define __GNUC_MINOR__ 3
+#define __GLIBCXX_TYPE_INT_N_0 __int128
+#define __UINTMAX_MAX__ 0xffffffffffffffffUL
+#define __PIE__ 2
+#define __FLT32X_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F32x
+#define __cpp_template_template_args 201611L
+#define __DBL_MAX_10_EXP__ 308
+#define __LDBL_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951L
+#define __INT16_C(c) c
+#define __STDC__ 1
+#define __PTRDIFF_TYPE__ long int
+#define __FLT32X_MIN_10_EXP__ (-307)
+#define __UINTPTR_TYPE__ long unsigned int
+#define __DEC64_SUBNORMAL_MIN__ 0.000000000000001E-383DD
+#define __DEC128_MANT_DIG__ 34
+#define __LDBL_MIN_10_EXP__ (-4931)
+#define __cpp_generic_lambdas 201304L
+#define __SSE_MATH__ 1
+#define __SIZEOF_LONG_LONG__ 8
+#define __cpp_user_defined_literals 200809L
+#define __FLT128_DECIMAL_DIG__ 36
+#define __GCC_ATOMIC_LLONG_LOCK_FREE 2
+#define __FLT32_HAS_QUIET_NAN__ 1
+#define __FLT_DECIMAL_DIG__ 9
+#define __UINT_FAST16_MAX__ 0xffffffffffffffffUL
+#define __LDBL_NORM_MAX__ 1.18973149535723176502126385303097021e+4932L
+#define __GCC_ATOMIC_SHORT_LOCK_FREE 2
+#define __SIZE_MAX__ 0xffffffffffffffffUL
+#define __UINT_FAST8_TYPE__ unsigned char
+#define _GNU_SOURCE 1
+#define __cpp_init_captures 201304L
+#define __ATOMIC_ACQ_REL 4
+#define __ATOMIC_RELEASE 3
diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build/moc_simplewavwriter.cpp b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/moc_simplewavwriter.cpp
new file mode 100644
index 0000000..cde09b3
--- /dev/null
+++ b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/moc_simplewavwriter.cpp
@@ -0,0 +1,155 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'simplewavwriter.h'
+**
+** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.13)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include
+#include "../simplewavwriter.h"
+#include
+#include
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'simplewavwriter.h' doesn't include ."
+#elif Q_MOC_OUTPUT_REVISION != 67
+#error "This file was generated using the moc from 5.15.13. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+QT_WARNING_PUSH
+QT_WARNING_DISABLE_DEPRECATED
+struct qt_meta_stringdata_SimpleWavWriter_t {
+ QByteArrayData data[6];
+ char stringdata0[69];
+};
+#define QT_MOC_LITERAL(idx, ofs, len) \
+ Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
+ qptrdiff(offsetof(qt_meta_stringdata_SimpleWavWriter_t, stringdata0) + ofs \
+ - idx * sizeof(QByteArrayData)) \
+ )
+static const qt_meta_stringdata_SimpleWavWriter_t qt_meta_stringdata_SimpleWavWriter = {
+ {
+QT_MOC_LITERAL(0, 0, 15), // "SimpleWavWriter"
+QT_MOC_LITERAL(1, 16, 12), // "trackUpdated"
+QT_MOC_LITERAL(2, 29, 0), // ""
+QT_MOC_LITERAL(3, 30, 5), // "track"
+QT_MOC_LITERAL(4, 36, 22), // "recordingStatusChanged"
+QT_MOC_LITERAL(5, 59, 9) // "recording"
+
+ },
+ "SimpleWavWriter\0trackUpdated\0\0track\0"
+ "recordingStatusChanged\0recording"
+};
+#undef QT_MOC_LITERAL
+
+static const uint qt_meta_data_SimpleWavWriter[] = {
+
+ // content:
+ 8, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 2, 14, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+ 0, // flags
+ 2, // signalCount
+
+ // signals: name, argc, parameters, tag, flags
+ 1, 1, 24, 2, 0x06 /* Public */,
+ 4, 1, 27, 2, 0x06 /* Public */,
+
+ // signals: parameters
+ QMetaType::Void, QMetaType::Int, 3,
+ QMetaType::Void, QMetaType::Bool, 5,
+
+ 0 // eod
+};
+
+void SimpleWavWriter::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
+{
+ if (_c == QMetaObject::InvokeMetaMethod) {
+ auto *_t = static_cast(_o);
+ (void)_t;
+ switch (_id) {
+ case 0: _t->trackUpdated((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 1: _t->recordingStatusChanged((*reinterpret_cast< bool(*)>(_a[1]))); break;
+ default: ;
+ }
+ } else if (_c == QMetaObject::IndexOfMethod) {
+ int *result = reinterpret_cast(_a[0]);
+ {
+ using _t = void (SimpleWavWriter::*)(int );
+ if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SimpleWavWriter::trackUpdated)) {
+ *result = 0;
+ return;
+ }
+ }
+ {
+ using _t = void (SimpleWavWriter::*)(bool );
+ if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SimpleWavWriter::recordingStatusChanged)) {
+ *result = 1;
+ return;
+ }
+ }
+ }
+}
+
+QT_INIT_METAOBJECT const QMetaObject SimpleWavWriter::staticMetaObject = { {
+ QMetaObject::SuperData::link(),
+ qt_meta_stringdata_SimpleWavWriter.data,
+ qt_meta_data_SimpleWavWriter,
+ qt_static_metacall,
+ nullptr,
+ nullptr
+} };
+
+
+const QMetaObject *SimpleWavWriter::metaObject() const
+{
+ return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
+}
+
+void *SimpleWavWriter::qt_metacast(const char *_clname)
+{
+ if (!_clname) return nullptr;
+ if (!strcmp(_clname, qt_meta_stringdata_SimpleWavWriter.stringdata0))
+ return static_cast(this);
+ return QObject::qt_metacast(_clname);
+}
+
+int SimpleWavWriter::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+ _id = QObject::qt_metacall(_c, _id, _a);
+ if (_id < 0)
+ return _id;
+ if (_c == QMetaObject::InvokeMetaMethod) {
+ if (_id < 2)
+ qt_static_metacall(this, _c, _id, _a);
+ _id -= 2;
+ } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
+ if (_id < 2)
+ *reinterpret_cast(_a[0]) = -1;
+ _id -= 2;
+ }
+ return _id;
+}
+
+// SIGNAL 0
+void SimpleWavWriter::trackUpdated(int _t1)
+{
+ void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) };
+ QMetaObject::activate(this, &staticMetaObject, 0, _a);
+}
+
+// SIGNAL 1
+void SimpleWavWriter::recordingStatusChanged(bool _t1)
+{
+ void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) };
+ QMetaObject::activate(this, &staticMetaObject, 1, _a);
+}
+QT_WARNING_POP
+QT_END_MOC_NAMESPACE
diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build/moc_simplewavwriter.o b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/moc_simplewavwriter.o
new file mode 100644
index 0000000..5291ccc
Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/moc_simplewavwriter.o differ
diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build/moc_yamitracker.cpp b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/moc_yamitracker.cpp
new file mode 100644
index 0000000..08ee157
--- /dev/null
+++ b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/moc_yamitracker.cpp
@@ -0,0 +1,503 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'yamitracker.h'
+**
+** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.13)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include
+#include "../yamitracker.h"
+#include
+#include
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'yamitracker.h' doesn't include ."
+#elif Q_MOC_OUTPUT_REVISION != 67
+#error "This file was generated using the moc from 5.15.13. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+QT_WARNING_PUSH
+QT_WARNING_DISABLE_DEPRECATED
+struct qt_meta_stringdata_SerialReader_t {
+ QByteArrayData data[13];
+ char stringdata0[145];
+};
+#define QT_MOC_LITERAL(idx, ofs, len) \
+ Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
+ qptrdiff(offsetof(qt_meta_stringdata_SerialReader_t, stringdata0) + ofs \
+ - idx * sizeof(QByteArrayData)) \
+ )
+static const qt_meta_stringdata_SerialReader_t qt_meta_stringdata_SerialReader = {
+ {
+QT_MOC_LITERAL(0, 0, 12), // "SerialReader"
+QT_MOC_LITERAL(1, 13, 14), // "noteOnReceived"
+QT_MOC_LITERAL(2, 28, 0), // ""
+QT_MOC_LITERAL(3, 29, 4), // "data"
+QT_MOC_LITERAL(4, 34, 8), // "velocity"
+QT_MOC_LITERAL(5, 43, 15), // "noteOffReceived"
+QT_MOC_LITERAL(6, 59, 5), // "error"
+QT_MOC_LITERAL(7, 65, 7), // "message"
+QT_MOC_LITERAL(8, 73, 23), // "connectionStatusChanged"
+QT_MOC_LITERAL(9, 97, 9), // "connected"
+QT_MOC_LITERAL(10, 107, 18), // "deviceInfoReceived"
+QT_MOC_LITERAL(11, 126, 12), // "manufacturer"
+QT_MOC_LITERAL(12, 139, 5) // "model"
+
+ },
+ "SerialReader\0noteOnReceived\0\0data\0"
+ "velocity\0noteOffReceived\0error\0message\0"
+ "connectionStatusChanged\0connected\0"
+ "deviceInfoReceived\0manufacturer\0model"
+};
+#undef QT_MOC_LITERAL
+
+static const uint qt_meta_data_SerialReader[] = {
+
+ // content:
+ 8, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 5, 14, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+ 0, // flags
+ 5, // signalCount
+
+ // signals: name, argc, parameters, tag, flags
+ 1, 2, 39, 2, 0x06 /* Public */,
+ 5, 1, 44, 2, 0x06 /* Public */,
+ 6, 1, 47, 2, 0x06 /* Public */,
+ 8, 1, 50, 2, 0x06 /* Public */,
+ 10, 2, 53, 2, 0x06 /* Public */,
+
+ // signals: parameters
+ QMetaType::Void, QMetaType::QString, QMetaType::Int, 3, 4,
+ QMetaType::Void, QMetaType::QString, 3,
+ QMetaType::Void, QMetaType::QString, 7,
+ QMetaType::Void, QMetaType::Bool, 9,
+ QMetaType::Void, QMetaType::QString, QMetaType::QString, 11, 12,
+
+ 0 // eod
+};
+
+void SerialReader::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
+{
+ if (_c == QMetaObject::InvokeMetaMethod) {
+ auto *_t = static_cast(_o);
+ (void)_t;
+ switch (_id) {
+ case 0: _t->noteOnReceived((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break;
+ case 1: _t->noteOffReceived((*reinterpret_cast< const QString(*)>(_a[1]))); break;
+ case 2: _t->error((*reinterpret_cast< const QString(*)>(_a[1]))); break;
+ case 3: _t->connectionStatusChanged((*reinterpret_cast< bool(*)>(_a[1]))); break;
+ case 4: _t->deviceInfoReceived((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< const QString(*)>(_a[2]))); break;
+ default: ;
+ }
+ } else if (_c == QMetaObject::IndexOfMethod) {
+ int *result = reinterpret_cast(_a[0]);
+ {
+ using _t = void (SerialReader::*)(const QString & , int );
+ if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::noteOnReceived)) {
+ *result = 0;
+ return;
+ }
+ }
+ {
+ using _t = void (SerialReader::*)(const QString & );
+ if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::noteOffReceived)) {
+ *result = 1;
+ return;
+ }
+ }
+ {
+ using _t = void (SerialReader::*)(const QString & );
+ if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::error)) {
+ *result = 2;
+ return;
+ }
+ }
+ {
+ using _t = void (SerialReader::*)(bool );
+ if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::connectionStatusChanged)) {
+ *result = 3;
+ return;
+ }
+ }
+ {
+ using _t = void (SerialReader::*)(const QString & , const QString & );
+ if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::deviceInfoReceived)) {
+ *result = 4;
+ return;
+ }
+ }
+ }
+}
+
+QT_INIT_METAOBJECT const QMetaObject SerialReader::staticMetaObject = { {
+ QMetaObject::SuperData::link(),
+ qt_meta_stringdata_SerialReader.data,
+ qt_meta_data_SerialReader,
+ qt_static_metacall,
+ nullptr,
+ nullptr
+} };
+
+
+const QMetaObject *SerialReader::metaObject() const
+{
+ return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
+}
+
+void *SerialReader::qt_metacast(const char *_clname)
+{
+ if (!_clname) return nullptr;
+ if (!strcmp(_clname, qt_meta_stringdata_SerialReader.stringdata0))
+ return static_cast(this);
+ return QThread::qt_metacast(_clname);
+}
+
+int SerialReader::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+ _id = QThread::qt_metacall(_c, _id, _a);
+ if (_id < 0)
+ return _id;
+ if (_c == QMetaObject::InvokeMetaMethod) {
+ if (_id < 5)
+ qt_static_metacall(this, _c, _id, _a);
+ _id -= 5;
+ } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
+ if (_id < 5)
+ *reinterpret_cast(_a[0]) = -1;
+ _id -= 5;
+ }
+ return _id;
+}
+
+// SIGNAL 0
+void SerialReader::noteOnReceived(const QString & _t1, int _t2)
+{
+ void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))), const_cast(reinterpret_cast(std::addressof(_t2))) };
+ QMetaObject::activate(this, &staticMetaObject, 0, _a);
+}
+
+// SIGNAL 1
+void SerialReader::noteOffReceived(const QString & _t1)
+{
+ void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) };
+ QMetaObject::activate(this, &staticMetaObject, 1, _a);
+}
+
+// SIGNAL 2
+void SerialReader::error(const QString & _t1)
+{
+ void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) };
+ QMetaObject::activate(this, &staticMetaObject, 2, _a);
+}
+
+// SIGNAL 3
+void SerialReader::connectionStatusChanged(bool _t1)
+{
+ void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) };
+ QMetaObject::activate(this, &staticMetaObject, 3, _a);
+}
+
+// SIGNAL 4
+void SerialReader::deviceInfoReceived(const QString & _t1, const QString & _t2)
+{
+ void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))), const_cast(reinterpret_cast(std::addressof(_t2))) };
+ QMetaObject::activate(this, &staticMetaObject, 4, _a);
+}
+struct qt_meta_stringdata_Yamitracker_t {
+ QByteArrayData data[51];
+ char stringdata0[896];
+};
+#define QT_MOC_LITERAL(idx, ofs, len) \
+ Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
+ qptrdiff(offsetof(qt_meta_stringdata_Yamitracker_t, stringdata0) + ofs \
+ - idx * sizeof(QByteArrayData)) \
+ )
+static const qt_meta_stringdata_Yamitracker_t qt_meta_stringdata_Yamitracker = {
+ {
+QT_MOC_LITERAL(0, 0, 11), // "Yamitracker"
+QT_MOC_LITERAL(1, 12, 13), // "onPlayClicked"
+QT_MOC_LITERAL(2, 26, 0), // ""
+QT_MOC_LITERAL(3, 27, 14), // "onPauseClicked"
+QT_MOC_LITERAL(4, 42, 13), // "onStopClicked"
+QT_MOC_LITERAL(5, 56, 22), // "onSaveRecordingClicked"
+QT_MOC_LITERAL(6, 79, 21), // "onConvertToBrrClicked"
+QT_MOC_LITERAL(7, 101, 22), // "onSaveMusicFileClicked"
+QT_MOC_LITERAL(8, 124, 23), // "onRefreshDevicesClicked"
+QT_MOC_LITERAL(9, 148, 21), // "onLoadMidiFileClicked"
+QT_MOC_LITERAL(10, 170, 21), // "onPlayMidiFileClicked"
+QT_MOC_LITERAL(11, 192, 20), // "onRecordFromMidiFile"
+QT_MOC_LITERAL(12, 213, 25), // "onSelectedMidiFileChanged"
+QT_MOC_LITERAL(13, 239, 25), // "onSelectFileForConversion"
+QT_MOC_LITERAL(14, 265, 23), // "onSelectFileForPlayback"
+QT_MOC_LITERAL(15, 289, 16), // "onNoteOnReceived"
+QT_MOC_LITERAL(16, 306, 4), // "data"
+QT_MOC_LITERAL(17, 311, 8), // "velocity"
+QT_MOC_LITERAL(18, 320, 17), // "onNoteOffReceived"
+QT_MOC_LITERAL(19, 338, 25), // "onConnectionStatusChanged"
+QT_MOC_LITERAL(20, 364, 9), // "connected"
+QT_MOC_LITERAL(21, 374, 7), // "onError"
+QT_MOC_LITERAL(22, 382, 7), // "message"
+QT_MOC_LITERAL(23, 390, 20), // "onDeviceInfoReceived"
+QT_MOC_LITERAL(24, 411, 12), // "manufacturer"
+QT_MOC_LITERAL(25, 424, 5), // "model"
+QT_MOC_LITERAL(26, 430, 21), // "onCurrentTrackChanged"
+QT_MOC_LITERAL(27, 452, 5), // "index"
+QT_MOC_LITERAL(28, 458, 17), // "onAddTrackClicked"
+QT_MOC_LITERAL(29, 476, 20), // "onRemoveTrackClicked"
+QT_MOC_LITERAL(30, 497, 19), // "onClearTrackClicked"
+QT_MOC_LITERAL(31, 517, 18), // "onCopyTrackClicked"
+QT_MOC_LITERAL(32, 536, 20), // "onMergeTracksClicked"
+QT_MOC_LITERAL(33, 557, 23), // "onLoadWavToTrackClicked"
+QT_MOC_LITERAL(34, 581, 18), // "onPlayTrackClicked"
+QT_MOC_LITERAL(35, 600, 22), // "onPlayAllTracksClicked"
+QT_MOC_LITERAL(36, 623, 21), // "onStopPlaybackClicked"
+QT_MOC_LITERAL(37, 645, 18), // "onPlaybackFinished"
+QT_MOC_LITERAL(38, 664, 18), // "onMuteTrackClicked"
+QT_MOC_LITERAL(39, 683, 18), // "onSoloTrackClicked"
+QT_MOC_LITERAL(40, 702, 20), // "onTrackVolumeChanged"
+QT_MOC_LITERAL(41, 723, 5), // "value"
+QT_MOC_LITERAL(42, 729, 18), // "onTrackNameChanged"
+QT_MOC_LITERAL(43, 748, 24), // "onTrackInstrumentChanged"
+QT_MOC_LITERAL(44, 773, 22), // "onPlaybackSpeedChanged"
+QT_MOC_LITERAL(45, 796, 19), // "onBassVolumeChanged"
+QT_MOC_LITERAL(46, 816, 16), // "attemptReconnect"
+QT_MOC_LITERAL(47, 833, 23), // "handleAudioStateChanged"
+QT_MOC_LITERAL(48, 857, 13), // "QAudio::State"
+QT_MOC_LITERAL(49, 871, 5), // "state"
+QT_MOC_LITERAL(50, 877, 18) // "clearStatusMessage"
+
+ },
+ "Yamitracker\0onPlayClicked\0\0onPauseClicked\0"
+ "onStopClicked\0onSaveRecordingClicked\0"
+ "onConvertToBrrClicked\0onSaveMusicFileClicked\0"
+ "onRefreshDevicesClicked\0onLoadMidiFileClicked\0"
+ "onPlayMidiFileClicked\0onRecordFromMidiFile\0"
+ "onSelectedMidiFileChanged\0"
+ "onSelectFileForConversion\0"
+ "onSelectFileForPlayback\0onNoteOnReceived\0"
+ "data\0velocity\0onNoteOffReceived\0"
+ "onConnectionStatusChanged\0connected\0"
+ "onError\0message\0onDeviceInfoReceived\0"
+ "manufacturer\0model\0onCurrentTrackChanged\0"
+ "index\0onAddTrackClicked\0onRemoveTrackClicked\0"
+ "onClearTrackClicked\0onCopyTrackClicked\0"
+ "onMergeTracksClicked\0onLoadWavToTrackClicked\0"
+ "onPlayTrackClicked\0onPlayAllTracksClicked\0"
+ "onStopPlaybackClicked\0onPlaybackFinished\0"
+ "onMuteTrackClicked\0onSoloTrackClicked\0"
+ "onTrackVolumeChanged\0value\0"
+ "onTrackNameChanged\0onTrackInstrumentChanged\0"
+ "onPlaybackSpeedChanged\0onBassVolumeChanged\0"
+ "attemptReconnect\0handleAudioStateChanged\0"
+ "QAudio::State\0state\0clearStatusMessage"
+};
+#undef QT_MOC_LITERAL
+
+static const uint qt_meta_data_Yamitracker[] = {
+
+ // content:
+ 8, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 39, 14, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+ 0, // flags
+ 0, // signalCount
+
+ // slots: name, argc, parameters, tag, flags
+ 1, 0, 209, 2, 0x08 /* Private */,
+ 3, 0, 210, 2, 0x08 /* Private */,
+ 4, 0, 211, 2, 0x08 /* Private */,
+ 5, 0, 212, 2, 0x08 /* Private */,
+ 6, 0, 213, 2, 0x08 /* Private */,
+ 7, 0, 214, 2, 0x08 /* Private */,
+ 8, 0, 215, 2, 0x08 /* Private */,
+ 9, 0, 216, 2, 0x08 /* Private */,
+ 10, 0, 217, 2, 0x08 /* Private */,
+ 11, 0, 218, 2, 0x08 /* Private */,
+ 12, 0, 219, 2, 0x08 /* Private */,
+ 13, 0, 220, 2, 0x08 /* Private */,
+ 14, 0, 221, 2, 0x08 /* Private */,
+ 15, 2, 222, 2, 0x08 /* Private */,
+ 18, 1, 227, 2, 0x08 /* Private */,
+ 19, 1, 230, 2, 0x08 /* Private */,
+ 21, 1, 233, 2, 0x08 /* Private */,
+ 23, 2, 236, 2, 0x08 /* Private */,
+ 26, 1, 241, 2, 0x08 /* Private */,
+ 28, 0, 244, 2, 0x08 /* Private */,
+ 29, 0, 245, 2, 0x08 /* Private */,
+ 30, 0, 246, 2, 0x08 /* Private */,
+ 31, 0, 247, 2, 0x08 /* Private */,
+ 32, 0, 248, 2, 0x08 /* Private */,
+ 33, 0, 249, 2, 0x08 /* Private */,
+ 34, 0, 250, 2, 0x08 /* Private */,
+ 35, 0, 251, 2, 0x08 /* Private */,
+ 36, 0, 252, 2, 0x08 /* Private */,
+ 37, 0, 253, 2, 0x08 /* Private */,
+ 38, 0, 254, 2, 0x08 /* Private */,
+ 39, 0, 255, 2, 0x08 /* Private */,
+ 40, 1, 256, 2, 0x08 /* Private */,
+ 42, 0, 259, 2, 0x08 /* Private */,
+ 43, 1, 260, 2, 0x08 /* Private */,
+ 44, 1, 263, 2, 0x08 /* Private */,
+ 45, 1, 266, 2, 0x08 /* Private */,
+ 46, 0, 269, 2, 0x08 /* Private */,
+ 47, 1, 270, 2, 0x08 /* Private */,
+ 50, 0, 273, 2, 0x08 /* Private */,
+
+ // slots: parameters
+ QMetaType::Void,
+ QMetaType::Void,
+ QMetaType::Void,
+ QMetaType::Void,
+ QMetaType::Void,
+ QMetaType::Void,
+ QMetaType::Void,
+ QMetaType::Void,
+ QMetaType::Void,
+ QMetaType::Void,
+ QMetaType::Void,
+ QMetaType::Void,
+ QMetaType::Void,
+ QMetaType::Void, QMetaType::QString, QMetaType::Int, 16, 17,
+ QMetaType::Void, QMetaType::QString, 16,
+ QMetaType::Void, QMetaType::Bool, 20,
+ QMetaType::Void, QMetaType::QString, 22,
+ QMetaType::Void, QMetaType::QString, QMetaType::QString, 24, 25,
+ QMetaType::Void, QMetaType::Int, 27,
+ QMetaType::Void,
+ QMetaType::Void,
+ QMetaType::Void,
+ QMetaType::Void,
+ QMetaType::Void,
+ QMetaType::Void,
+ QMetaType::Void,
+ QMetaType::Void,
+ QMetaType::Void,
+ QMetaType::Void,
+ QMetaType::Void,
+ QMetaType::Void,
+ QMetaType::Void, QMetaType::Int, 41,
+ QMetaType::Void,
+ QMetaType::Void, QMetaType::Int, 27,
+ QMetaType::Void, QMetaType::Int, 41,
+ QMetaType::Void, QMetaType::Int, 41,
+ QMetaType::Void,
+ QMetaType::Void, 0x80000000 | 48, 49,
+ QMetaType::Void,
+
+ 0 // eod
+};
+
+void Yamitracker::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
+{
+ if (_c == QMetaObject::InvokeMetaMethod) {
+ auto *_t = static_cast(_o);
+ (void)_t;
+ switch (_id) {
+ case 0: _t->onPlayClicked(); break;
+ case 1: _t->onPauseClicked(); break;
+ case 2: _t->onStopClicked(); break;
+ case 3: _t->onSaveRecordingClicked(); break;
+ case 4: _t->onConvertToBrrClicked(); break;
+ case 5: _t->onSaveMusicFileClicked(); break;
+ case 6: _t->onRefreshDevicesClicked(); break;
+ case 7: _t->onLoadMidiFileClicked(); break;
+ case 8: _t->onPlayMidiFileClicked(); break;
+ case 9: _t->onRecordFromMidiFile(); break;
+ case 10: _t->onSelectedMidiFileChanged(); break;
+ case 11: _t->onSelectFileForConversion(); break;
+ case 12: _t->onSelectFileForPlayback(); break;
+ case 13: _t->onNoteOnReceived((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break;
+ case 14: _t->onNoteOffReceived((*reinterpret_cast< const QString(*)>(_a[1]))); break;
+ case 15: _t->onConnectionStatusChanged((*reinterpret_cast< bool(*)>(_a[1]))); break;
+ case 16: _t->onError((*reinterpret_cast< const QString(*)>(_a[1]))); break;
+ case 17: _t->onDeviceInfoReceived((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< const QString(*)>(_a[2]))); break;
+ case 18: _t->onCurrentTrackChanged((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 19: _t->onAddTrackClicked(); break;
+ case 20: _t->onRemoveTrackClicked(); break;
+ case 21: _t->onClearTrackClicked(); break;
+ case 22: _t->onCopyTrackClicked(); break;
+ case 23: _t->onMergeTracksClicked(); break;
+ case 24: _t->onLoadWavToTrackClicked(); break;
+ case 25: _t->onPlayTrackClicked(); break;
+ case 26: _t->onPlayAllTracksClicked(); break;
+ case 27: _t->onStopPlaybackClicked(); break;
+ case 28: _t->onPlaybackFinished(); break;
+ case 29: _t->onMuteTrackClicked(); break;
+ case 30: _t->onSoloTrackClicked(); break;
+ case 31: _t->onTrackVolumeChanged((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 32: _t->onTrackNameChanged(); break;
+ case 33: _t->onTrackInstrumentChanged((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 34: _t->onPlaybackSpeedChanged((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 35: _t->onBassVolumeChanged((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 36: _t->attemptReconnect(); break;
+ case 37: _t->handleAudioStateChanged((*reinterpret_cast< QAudio::State(*)>(_a[1]))); break;
+ case 38: _t->clearStatusMessage(); break;
+ default: ;
+ }
+ } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
+ switch (_id) {
+ default: *reinterpret_cast(_a[0]) = -1; break;
+ case 37:
+ switch (*reinterpret_cast(_a[1])) {
+ default: *reinterpret_cast(_a[0]) = -1; break;
+ case 0:
+ *reinterpret_cast(_a[0]) = qRegisterMetaType< QAudio::State >(); break;
+ }
+ break;
+ }
+ }
+}
+
+QT_INIT_METAOBJECT const QMetaObject Yamitracker::staticMetaObject = { {
+ QMetaObject::SuperData::link(),
+ qt_meta_stringdata_Yamitracker.data,
+ qt_meta_data_Yamitracker,
+ qt_static_metacall,
+ nullptr,
+ nullptr
+} };
+
+
+const QMetaObject *Yamitracker::metaObject() const
+{
+ return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
+}
+
+void *Yamitracker::qt_metacast(const char *_clname)
+{
+ if (!_clname) return nullptr;
+ if (!strcmp(_clname, qt_meta_stringdata_Yamitracker.stringdata0))
+ return static_cast(this);
+ return QMainWindow::qt_metacast(_clname);
+}
+
+int Yamitracker::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+ _id = QMainWindow::qt_metacall(_c, _id, _a);
+ if (_id < 0)
+ return _id;
+ if (_c == QMetaObject::InvokeMetaMethod) {
+ if (_id < 39)
+ qt_static_metacall(this, _c, _id, _a);
+ _id -= 39;
+ } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
+ if (_id < 39)
+ qt_static_metacall(this, _c, _id, _a);
+ _id -= 39;
+ }
+ return _id;
+}
+QT_WARNING_POP
+QT_END_MOC_NAMESPACE
diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build/moc_yamitracker.o b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/moc_yamitracker.o
new file mode 100644
index 0000000..ed24d47
Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/moc_yamitracker.o differ
diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build/music_20251217_102436.s b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/music_20251217_102436.s
new file mode 100644
index 0000000..2aba0bd
--- /dev/null
+++ b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/music_20251217_102436.s
@@ -0,0 +1,137 @@
+; Generated by Yamitracker
+; Date: 2025-12-17 10:24:38
+; Tracks: 2
+
+music_inst_table:
+ INST PLING_8, 3, 10, 1, 0, 31, 19, 15, 2
+ INST PLING_8, 3, 10, 1, 0, 31, 19, 15, 2
+
+pently_patterns:
+ .addr PPDAT_track0
+ .addr PPDAT_track1
+
+PPDAT_track0:
+ .byt D_D2
+ .byt N_C|D_D4
+ .byt N_C|D_D16
+ .byt D_2
+ .byt N_D|D_D16
+ .byt N_D|D_D4
+ .byt N_E|D_D16
+ .byt N_E|D_D4
+ .byt N_F|D_D16
+ .byt N_F|D_D4
+ .byt N_G|D_D2
+ .byt N_G|D_D16
+ .byt D_D4
+ .byt N_A|D_D16
+ .byt N_A|D_D4
+ .byt N_B|D_D16
+ .byt N_B|D_D4
+ .byt N_CH|D_D16
+ .byt N_CH|D_D4
+ .byt D_D4
+ .byt N_CH|D_D16
+ .byt N_CH|D_D8
+ .byt N_B|D_D16
+ .byt N_B|D_D4
+ .byt N_A|D_D16
+ .byt N_A|D_D2
+ .byt D_4
+ .byt N_G|D_D16
+ .byt N_G|D_D2
+ .byt N_F|D_D16
+ .byt N_F|D_2
+ .byt D_D4
+ .byt N_F|D_D16
+ .byt N_F|D_D4
+ .byt N_E|D_D16
+ .byt N_E|D_D4
+ .byt N_D|D_D16
+ .byt N_D|D_D4
+ .byt N_C|D_D16
+ .byt N_C|D_D4
+ .byt PATEND
+
+PPDAT_track1:
+ .byt D_2
+ .byt N_DSH|D_D16
+ .byt N_DSH|D_D8
+ .byt N_CSH|D_D16
+ .byt N_CSH|D_D8
+ .byt N_FS|D_D8
+ .byt N_FS|D_D16
+ .byt D_D4
+ .byt N_AS|D_D16
+ .byt N_AS|D_D8
+ .byt N_FSH|D_D16
+ .byt N_FSH|D_D16
+ .byt D_D4
+ .byt N_FSH|D_D16
+ .byt N_FSH|D_D8
+ .byt N_AS|D_D16
+ .byt N_AS|D_D8
+ .byt D_D4
+ .byt N_DSH|D_D16
+ .byt N_DSH|D_D8
+ .byt N_CSH|D_D16
+ .byt N_CSH|D_D8
+ .byt D_2
+ .byt N_FS|D_D16
+ .byt N_FS|D_D8
+ .byt D_D8
+ .byt N_AS|D_D16
+ .byt N_AS|D_D8
+ .byt N_FSH|D_D16
+ .byt N_FSH|D_D16
+ .byt D_D8
+ .byt N_FSH|D_D8
+ .byt N_FSH|D_D16
+ .byt N_AS|D_D8
+ .byt N_AS|D_D16
+ .byt D_D4
+ .byt N_DSH|D_D16
+ .byt N_DSH|D_D8
+ .byt N_CSH|D_D16
+ .byt N_CSH|D_D8
+ .byt N_FS|D_D16
+ .byt N_FS|D_D8
+ .byt D_D8
+ .byt N_FSH|D_D16
+ .byt N_FSH|D_D8
+ .byt N_AS|D_D16
+ .byt N_AS|D_D8
+ .byt D_D8
+ .byt N_DS|D_D4
+ .byt N_DS|D_D16
+ .byt D_D8
+ .byt N_FSH|D_D16
+ .byt N_FSH|D_D8
+ .byt N_AS|D_D16
+ .byt N_AS|D_D8
+ .byt D_D8
+ .byt N_CS|D_D16
+ .byt N_CS|D_D4
+ .byt D_D4
+ .byt N_AS|D_D16
+ .byt N_AS|D_D8
+ .byt N_FH|D_D16
+ .byt N_FH|D_D8
+ .byt D_D8
+ .byt N_FH|D_D16
+ .byt N_FH|D_D8
+ .byt N_AS|D_D16
+ .byt N_AS|D_D16
+ .byt PATEND
+
+pently_songs:
+ .addr PSDAT_main_song
+
+PSDAT_main_song:
+ setTempo 1000
+ playPat 0, 0, 23, PLING_8
+ playPat 1, 1, 23, PLING_8
+ waitRows 19320
+ stopPat 0
+ stopPat 1
+ dalSegno
diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build/recording_20251217_102051.wav b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/recording_20251217_102051.wav
new file mode 100644
index 0000000..21dc0bd
Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/recording_20251217_102051.wav differ
diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build/recording_20251217_102218.wav b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/recording_20251217_102218.wav
new file mode 100644
index 0000000..96888a4
Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/recording_20251217_102218.wav differ
diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build/recording_20251217_102347.wav b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/recording_20251217_102347.wav
new file mode 100644
index 0000000..39758e6
Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/recording_20251217_102347.wav differ
diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build/simplewavwriter.o b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/simplewavwriter.o
new file mode 100644
index 0000000..1478c0f
Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/simplewavwriter.o differ
diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build/ui_yamitracker.h b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/ui_yamitracker.h
new file mode 100644
index 0000000..3c73051
--- /dev/null
+++ b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/ui_yamitracker.h
@@ -0,0 +1,930 @@
+/********************************************************************************
+** Form generated from reading UI file 'yamitracker.ui'
+**
+** Created by: Qt User Interface Compiler version 5.15.13
+**
+** WARNING! All changes made in this file will be lost when recompiling UI file!
+********************************************************************************/
+
+#ifndef UI_YAMITRACKER_H
+#define UI_YAMITRACKER_H
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+QT_BEGIN_NAMESPACE
+
+class Ui_Yamitracker
+{
+public:
+ QWidget *centralwidget;
+ QVBoxLayout *verticalLayout;
+ QHBoxLayout *horizontalLayout;
+ QLabel *statusLabel;
+ QSpacerItem *horizontalSpacer;
+ QLabel *deviceLabel;
+ QHBoxLayout *horizontalLayout_2;
+ QLabel *keysInfoLabel;
+ QProgressBar *volumeBar;
+ QGroupBox *groupBox;
+ QHBoxLayout *horizontalLayout_3;
+ QPushButton *playButton;
+ QPushButton *pauseButton;
+ QPushButton *stopButton;
+ QPushButton *saveRecordingButton;
+ QPushButton *convertButton;
+ QPushButton *saveMusicButton;
+ QGroupBox *groupBox_4;
+ QHBoxLayout *horizontalLayout_7;
+ QPushButton *playTrackButton;
+ QPushButton *playAllButton;
+ QPushButton *stopPlaybackButton;
+ QSpacerItem *horizontalSpacer_13;
+ QPushButton *loadWavButton;
+ QGroupBox *groupBox_3;
+ QHBoxLayout *horizontalLayout_6;
+ QLabel *label_3;
+ QComboBox *trackComboBox;
+ QPushButton *addTrackButton;
+ QPushButton *removeTrackButton;
+ QPushButton *clearTrackButton;
+ QPushButton *copyTrackButton;
+ QPushButton *mergeTrackButton;
+ QSpacerItem *horizontalSpacer_12;
+ QLabel *trackInfoLabel;
+ QScrollArea *scrollArea;
+ QWidget *scrollAreaWidgetContents;
+ QVBoxLayout *verticalLayout_4;
+ QLabel *label_4;
+ QGroupBox *groupBox_2;
+ QVBoxLayout *verticalLayout_3;
+ QHBoxLayout *horizontalLayout_4;
+ QLabel *label;
+ QComboBox *instrumentComboBox;
+ QSpacerItem *horizontalSpacer_20;
+ QLabel *speedLabel;
+ QSlider *playbackSpeedSlider;
+ QLabel *volumeLabel;
+ QSlider *bassVolumeSlider;
+ QPushButton *refreshDevicesButton;
+ QHBoxLayout *horizontalLayout_5;
+ QPushButton *loadMidiButton;
+ QPushButton *playMidiButton;
+ QPushButton *recordFromMidiButton;
+ QPushButton *selectFileButton;
+ QPushButton *playFileButton;
+ QLabel *label_2;
+ QListWidget *midiFilesList;
+ QWidget *pianoWidget;
+ QVBoxLayout *verticalLayout_2;
+ QHBoxLayout *whiteKeysLayout;
+ QPushButton *key_C1;
+ QPushButton *key_D1;
+ QPushButton *key_E1;
+ QPushButton *key_F1;
+ QPushButton *key_G1;
+ QPushButton *key_A1;
+ QPushButton *key_B1;
+ QPushButton *key_C2;
+ QPushButton *key_D2;
+ QPushButton *key_E2;
+ QPushButton *key_F2;
+ QPushButton *key_G2;
+ QPushButton *key_A2;
+ QPushButton *key_B2;
+ QPushButton *key_C3;
+ QPushButton *key_D3;
+ QPushButton *key_E3;
+ QPushButton *key_F3;
+ QPushButton *key_G3;
+ QPushButton *key_A3;
+ QPushButton *key_B3;
+ QPushButton *key_C4;
+ QPushButton *key_D4;
+ QPushButton *key_E4;
+ QPushButton *key_F4;
+ QPushButton *key_G4;
+ QPushButton *key_A4;
+ QPushButton *key_B4;
+ QPushButton *key_C5;
+ QPushButton *key_D5;
+ QPushButton *key_E5;
+ QPushButton *key_F5;
+ QPushButton *key_G5;
+ QPushButton *key_A5;
+ QPushButton *key_B5;
+ QPushButton *key_C6;
+ QHBoxLayout *blackKeysLayout;
+ QSpacerItem *horizontalSpacer_1;
+ QPushButton *key_Cs1;
+ QPushButton *key_Ds1;
+ QSpacerItem *horizontalSpacer_22;
+ QPushButton *key_Fs1;
+ QPushButton *key_Gs1;
+ QPushButton *key_As1;
+ QSpacerItem *horizontalSpacer_3;
+ QPushButton *key_Cs2;
+ QPushButton *key_Ds2;
+ QSpacerItem *horizontalSpacer_4;
+ QPushButton *key_Fs2;
+ QPushButton *key_Gs2;
+ QPushButton *key_As2;
+ QSpacerItem *horizontalSpacer_5;
+ QPushButton *key_Cs3;
+ QPushButton *key_Ds3;
+ QSpacerItem *horizontalSpacer_6;
+ QPushButton *key_Fs3;
+ QPushButton *key_Gs3;
+ QPushButton *key_As3;
+ QSpacerItem *horizontalSpacer_7;
+ QPushButton *key_Cs4;
+ QPushButton *key_Ds4;
+ QSpacerItem *horizontalSpacer_8;
+ QPushButton *key_Fs4;
+ QPushButton *key_Gs4;
+ QPushButton *key_As4;
+ QSpacerItem *horizontalSpacer_9;
+ QPushButton *key_Cs5;
+ QPushButton *key_Ds5;
+ QSpacerItem *horizontalSpacer_10;
+ QPushButton *key_Fs5;
+ QPushButton *key_Gs5;
+ QPushButton *key_As5;
+ QSpacerItem *horizontalSpacer_11;
+
+ void setupUi(QMainWindow *Yamitracker)
+ {
+ if (Yamitracker->objectName().isEmpty())
+ Yamitracker->setObjectName(QString::fromUtf8("Yamitracker"));
+ Yamitracker->resize(1400, 1000);
+ centralwidget = new QWidget(Yamitracker);
+ centralwidget->setObjectName(QString::fromUtf8("centralwidget"));
+ verticalLayout = new QVBoxLayout(centralwidget);
+ verticalLayout->setObjectName(QString::fromUtf8("verticalLayout"));
+ horizontalLayout = new QHBoxLayout();
+ horizontalLayout->setObjectName(QString::fromUtf8("horizontalLayout"));
+ statusLabel = new QLabel(centralwidget);
+ statusLabel->setObjectName(QString::fromUtf8("statusLabel"));
+
+ horizontalLayout->addWidget(statusLabel);
+
+ horizontalSpacer = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
+
+ horizontalLayout->addItem(horizontalSpacer);
+
+ deviceLabel = new QLabel(centralwidget);
+ deviceLabel->setObjectName(QString::fromUtf8("deviceLabel"));
+
+ horizontalLayout->addWidget(deviceLabel);
+
+
+ verticalLayout->addLayout(horizontalLayout);
+
+ horizontalLayout_2 = new QHBoxLayout();
+ horizontalLayout_2->setObjectName(QString::fromUtf8("horizontalLayout_2"));
+ keysInfoLabel = new QLabel(centralwidget);
+ keysInfoLabel->setObjectName(QString::fromUtf8("keysInfoLabel"));
+
+ horizontalLayout_2->addWidget(keysInfoLabel);
+
+ volumeBar = new QProgressBar(centralwidget);
+ volumeBar->setObjectName(QString::fromUtf8("volumeBar"));
+ volumeBar->setValue(0);
+
+ horizontalLayout_2->addWidget(volumeBar);
+
+
+ verticalLayout->addLayout(horizontalLayout_2);
+
+ groupBox = new QGroupBox(centralwidget);
+ groupBox->setObjectName(QString::fromUtf8("groupBox"));
+ horizontalLayout_3 = new QHBoxLayout(groupBox);
+ horizontalLayout_3->setObjectName(QString::fromUtf8("horizontalLayout_3"));
+ playButton = new QPushButton(groupBox);
+ playButton->setObjectName(QString::fromUtf8("playButton"));
+
+ horizontalLayout_3->addWidget(playButton);
+
+ pauseButton = new QPushButton(groupBox);
+ pauseButton->setObjectName(QString::fromUtf8("pauseButton"));
+ pauseButton->setEnabled(false);
+
+ horizontalLayout_3->addWidget(pauseButton);
+
+ stopButton = new QPushButton(groupBox);
+ stopButton->setObjectName(QString::fromUtf8("stopButton"));
+
+ horizontalLayout_3->addWidget(stopButton);
+
+ saveRecordingButton = new QPushButton(groupBox);
+ saveRecordingButton->setObjectName(QString::fromUtf8("saveRecordingButton"));
+
+ horizontalLayout_3->addWidget(saveRecordingButton);
+
+ convertButton = new QPushButton(groupBox);
+ convertButton->setObjectName(QString::fromUtf8("convertButton"));
+
+ horizontalLayout_3->addWidget(convertButton);
+
+ saveMusicButton = new QPushButton(groupBox);
+ saveMusicButton->setObjectName(QString::fromUtf8("saveMusicButton"));
+
+ horizontalLayout_3->addWidget(saveMusicButton);
+
+
+ verticalLayout->addWidget(groupBox);
+
+ groupBox_4 = new QGroupBox(centralwidget);
+ groupBox_4->setObjectName(QString::fromUtf8("groupBox_4"));
+ horizontalLayout_7 = new QHBoxLayout(groupBox_4);
+ horizontalLayout_7->setObjectName(QString::fromUtf8("horizontalLayout_7"));
+ playTrackButton = new QPushButton(groupBox_4);
+ playTrackButton->setObjectName(QString::fromUtf8("playTrackButton"));
+
+ horizontalLayout_7->addWidget(playTrackButton);
+
+ playAllButton = new QPushButton(groupBox_4);
+ playAllButton->setObjectName(QString::fromUtf8("playAllButton"));
+
+ horizontalLayout_7->addWidget(playAllButton);
+
+ stopPlaybackButton = new QPushButton(groupBox_4);
+ stopPlaybackButton->setObjectName(QString::fromUtf8("stopPlaybackButton"));
+
+ horizontalLayout_7->addWidget(stopPlaybackButton);
+
+ horizontalSpacer_13 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
+
+ horizontalLayout_7->addItem(horizontalSpacer_13);
+
+ loadWavButton = new QPushButton(groupBox_4);
+ loadWavButton->setObjectName(QString::fromUtf8("loadWavButton"));
+
+ horizontalLayout_7->addWidget(loadWavButton);
+
+
+ verticalLayout->addWidget(groupBox_4);
+
+ groupBox_3 = new QGroupBox(centralwidget);
+ groupBox_3->setObjectName(QString::fromUtf8("groupBox_3"));
+ horizontalLayout_6 = new QHBoxLayout(groupBox_3);
+ horizontalLayout_6->setObjectName(QString::fromUtf8("horizontalLayout_6"));
+ label_3 = new QLabel(groupBox_3);
+ label_3->setObjectName(QString::fromUtf8("label_3"));
+
+ horizontalLayout_6->addWidget(label_3);
+
+ trackComboBox = new QComboBox(groupBox_3);
+ trackComboBox->setObjectName(QString::fromUtf8("trackComboBox"));
+
+ horizontalLayout_6->addWidget(trackComboBox);
+
+ addTrackButton = new QPushButton(groupBox_3);
+ addTrackButton->setObjectName(QString::fromUtf8("addTrackButton"));
+
+ horizontalLayout_6->addWidget(addTrackButton);
+
+ removeTrackButton = new QPushButton(groupBox_3);
+ removeTrackButton->setObjectName(QString::fromUtf8("removeTrackButton"));
+
+ horizontalLayout_6->addWidget(removeTrackButton);
+
+ clearTrackButton = new QPushButton(groupBox_3);
+ clearTrackButton->setObjectName(QString::fromUtf8("clearTrackButton"));
+
+ horizontalLayout_6->addWidget(clearTrackButton);
+
+ copyTrackButton = new QPushButton(groupBox_3);
+ copyTrackButton->setObjectName(QString::fromUtf8("copyTrackButton"));
+
+ horizontalLayout_6->addWidget(copyTrackButton);
+
+ mergeTrackButton = new QPushButton(groupBox_3);
+ mergeTrackButton->setObjectName(QString::fromUtf8("mergeTrackButton"));
+
+ horizontalLayout_6->addWidget(mergeTrackButton);
+
+ horizontalSpacer_12 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
+
+ horizontalLayout_6->addItem(horizontalSpacer_12);
+
+ trackInfoLabel = new QLabel(groupBox_3);
+ trackInfoLabel->setObjectName(QString::fromUtf8("trackInfoLabel"));
+
+ horizontalLayout_6->addWidget(trackInfoLabel);
+
+
+ verticalLayout->addWidget(groupBox_3);
+
+ scrollArea = new QScrollArea(centralwidget);
+ scrollArea->setObjectName(QString::fromUtf8("scrollArea"));
+ scrollArea->setWidgetResizable(true);
+ scrollAreaWidgetContents = new QWidget();
+ scrollAreaWidgetContents->setObjectName(QString::fromUtf8("scrollAreaWidgetContents"));
+ scrollAreaWidgetContents->setGeometry(QRect(0, 0, 1380, 300));
+ verticalLayout_4 = new QVBoxLayout(scrollAreaWidgetContents);
+ verticalLayout_4->setObjectName(QString::fromUtf8("verticalLayout_4"));
+ label_4 = new QLabel(scrollAreaWidgetContents);
+ label_4->setObjectName(QString::fromUtf8("label_4"));
+
+ verticalLayout_4->addWidget(label_4);
+
+ scrollArea->setWidget(scrollAreaWidgetContents);
+
+ verticalLayout->addWidget(scrollArea);
+
+ groupBox_2 = new QGroupBox(centralwidget);
+ groupBox_2->setObjectName(QString::fromUtf8("groupBox_2"));
+ verticalLayout_3 = new QVBoxLayout(groupBox_2);
+ verticalLayout_3->setObjectName(QString::fromUtf8("verticalLayout_3"));
+ horizontalLayout_4 = new QHBoxLayout();
+ horizontalLayout_4->setObjectName(QString::fromUtf8("horizontalLayout_4"));
+ label = new QLabel(groupBox_2);
+ label->setObjectName(QString::fromUtf8("label"));
+
+ horizontalLayout_4->addWidget(label);
+
+ instrumentComboBox = new QComboBox(groupBox_2);
+ instrumentComboBox->setObjectName(QString::fromUtf8("instrumentComboBox"));
+
+ horizontalLayout_4->addWidget(instrumentComboBox);
+
+ horizontalSpacer_20 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
+
+ horizontalLayout_4->addItem(horizontalSpacer_20);
+
+ speedLabel = new QLabel(groupBox_2);
+ speedLabel->setObjectName(QString::fromUtf8("speedLabel"));
+
+ horizontalLayout_4->addWidget(speedLabel);
+
+ playbackSpeedSlider = new QSlider(groupBox_2);
+ playbackSpeedSlider->setObjectName(QString::fromUtf8("playbackSpeedSlider"));
+ playbackSpeedSlider->setOrientation(Qt::Horizontal);
+ playbackSpeedSlider->setMinimum(50);
+ playbackSpeedSlider->setMaximum(200);
+ playbackSpeedSlider->setValue(100);
+
+ horizontalLayout_4->addWidget(playbackSpeedSlider);
+
+ volumeLabel = new QLabel(groupBox_2);
+ volumeLabel->setObjectName(QString::fromUtf8("volumeLabel"));
+
+ horizontalLayout_4->addWidget(volumeLabel);
+
+ bassVolumeSlider = new QSlider(groupBox_2);
+ bassVolumeSlider->setObjectName(QString::fromUtf8("bassVolumeSlider"));
+ bassVolumeSlider->setOrientation(Qt::Horizontal);
+ bassVolumeSlider->setMinimum(100);
+ bassVolumeSlider->setMaximum(400);
+ bassVolumeSlider->setValue(200);
+
+ horizontalLayout_4->addWidget(bassVolumeSlider);
+
+ refreshDevicesButton = new QPushButton(groupBox_2);
+ refreshDevicesButton->setObjectName(QString::fromUtf8("refreshDevicesButton"));
+
+ horizontalLayout_4->addWidget(refreshDevicesButton);
+
+
+ verticalLayout_3->addLayout(horizontalLayout_4);
+
+ horizontalLayout_5 = new QHBoxLayout();
+ horizontalLayout_5->setObjectName(QString::fromUtf8("horizontalLayout_5"));
+ loadMidiButton = new QPushButton(groupBox_2);
+ loadMidiButton->setObjectName(QString::fromUtf8("loadMidiButton"));
+
+ horizontalLayout_5->addWidget(loadMidiButton);
+
+ playMidiButton = new QPushButton(groupBox_2);
+ playMidiButton->setObjectName(QString::fromUtf8("playMidiButton"));
+
+ horizontalLayout_5->addWidget(playMidiButton);
+
+ recordFromMidiButton = new QPushButton(groupBox_2);
+ recordFromMidiButton->setObjectName(QString::fromUtf8("recordFromMidiButton"));
+
+ horizontalLayout_5->addWidget(recordFromMidiButton);
+
+ selectFileButton = new QPushButton(groupBox_2);
+ selectFileButton->setObjectName(QString::fromUtf8("selectFileButton"));
+
+ horizontalLayout_5->addWidget(selectFileButton);
+
+ playFileButton = new QPushButton(groupBox_2);
+ playFileButton->setObjectName(QString::fromUtf8("playFileButton"));
+
+ horizontalLayout_5->addWidget(playFileButton);
+
+
+ verticalLayout_3->addLayout(horizontalLayout_5);
+
+ label_2 = new QLabel(groupBox_2);
+ label_2->setObjectName(QString::fromUtf8("label_2"));
+
+ verticalLayout_3->addWidget(label_2);
+
+ midiFilesList = new QListWidget(groupBox_2);
+ midiFilesList->setObjectName(QString::fromUtf8("midiFilesList"));
+
+ verticalLayout_3->addWidget(midiFilesList);
+
+
+ verticalLayout->addWidget(groupBox_2);
+
+ pianoWidget = new QWidget(centralwidget);
+ pianoWidget->setObjectName(QString::fromUtf8("pianoWidget"));
+ verticalLayout_2 = new QVBoxLayout(pianoWidget);
+ verticalLayout_2->setObjectName(QString::fromUtf8("verticalLayout_2"));
+ whiteKeysLayout = new QHBoxLayout();
+ whiteKeysLayout->setObjectName(QString::fromUtf8("whiteKeysLayout"));
+ key_C1 = new QPushButton(pianoWidget);
+ key_C1->setObjectName(QString::fromUtf8("key_C1"));
+
+ whiteKeysLayout->addWidget(key_C1);
+
+ key_D1 = new QPushButton(pianoWidget);
+ key_D1->setObjectName(QString::fromUtf8("key_D1"));
+
+ whiteKeysLayout->addWidget(key_D1);
+
+ key_E1 = new QPushButton(pianoWidget);
+ key_E1->setObjectName(QString::fromUtf8("key_E1"));
+
+ whiteKeysLayout->addWidget(key_E1);
+
+ key_F1 = new QPushButton(pianoWidget);
+ key_F1->setObjectName(QString::fromUtf8("key_F1"));
+
+ whiteKeysLayout->addWidget(key_F1);
+
+ key_G1 = new QPushButton(pianoWidget);
+ key_G1->setObjectName(QString::fromUtf8("key_G1"));
+
+ whiteKeysLayout->addWidget(key_G1);
+
+ key_A1 = new QPushButton(pianoWidget);
+ key_A1->setObjectName(QString::fromUtf8("key_A1"));
+
+ whiteKeysLayout->addWidget(key_A1);
+
+ key_B1 = new QPushButton(pianoWidget);
+ key_B1->setObjectName(QString::fromUtf8("key_B1"));
+
+ whiteKeysLayout->addWidget(key_B1);
+
+ key_C2 = new QPushButton(pianoWidget);
+ key_C2->setObjectName(QString::fromUtf8("key_C2"));
+
+ whiteKeysLayout->addWidget(key_C2);
+
+ key_D2 = new QPushButton(pianoWidget);
+ key_D2->setObjectName(QString::fromUtf8("key_D2"));
+
+ whiteKeysLayout->addWidget(key_D2);
+
+ key_E2 = new QPushButton(pianoWidget);
+ key_E2->setObjectName(QString::fromUtf8("key_E2"));
+
+ whiteKeysLayout->addWidget(key_E2);
+
+ key_F2 = new QPushButton(pianoWidget);
+ key_F2->setObjectName(QString::fromUtf8("key_F2"));
+
+ whiteKeysLayout->addWidget(key_F2);
+
+ key_G2 = new QPushButton(pianoWidget);
+ key_G2->setObjectName(QString::fromUtf8("key_G2"));
+
+ whiteKeysLayout->addWidget(key_G2);
+
+ key_A2 = new QPushButton(pianoWidget);
+ key_A2->setObjectName(QString::fromUtf8("key_A2"));
+
+ whiteKeysLayout->addWidget(key_A2);
+
+ key_B2 = new QPushButton(pianoWidget);
+ key_B2->setObjectName(QString::fromUtf8("key_B2"));
+
+ whiteKeysLayout->addWidget(key_B2);
+
+ key_C3 = new QPushButton(pianoWidget);
+ key_C3->setObjectName(QString::fromUtf8("key_C3"));
+
+ whiteKeysLayout->addWidget(key_C3);
+
+ key_D3 = new QPushButton(pianoWidget);
+ key_D3->setObjectName(QString::fromUtf8("key_D3"));
+
+ whiteKeysLayout->addWidget(key_D3);
+
+ key_E3 = new QPushButton(pianoWidget);
+ key_E3->setObjectName(QString::fromUtf8("key_E3"));
+
+ whiteKeysLayout->addWidget(key_E3);
+
+ key_F3 = new QPushButton(pianoWidget);
+ key_F3->setObjectName(QString::fromUtf8("key_F3"));
+
+ whiteKeysLayout->addWidget(key_F3);
+
+ key_G3 = new QPushButton(pianoWidget);
+ key_G3->setObjectName(QString::fromUtf8("key_G3"));
+
+ whiteKeysLayout->addWidget(key_G3);
+
+ key_A3 = new QPushButton(pianoWidget);
+ key_A3->setObjectName(QString::fromUtf8("key_A3"));
+
+ whiteKeysLayout->addWidget(key_A3);
+
+ key_B3 = new QPushButton(pianoWidget);
+ key_B3->setObjectName(QString::fromUtf8("key_B3"));
+
+ whiteKeysLayout->addWidget(key_B3);
+
+ key_C4 = new QPushButton(pianoWidget);
+ key_C4->setObjectName(QString::fromUtf8("key_C4"));
+
+ whiteKeysLayout->addWidget(key_C4);
+
+ key_D4 = new QPushButton(pianoWidget);
+ key_D4->setObjectName(QString::fromUtf8("key_D4"));
+
+ whiteKeysLayout->addWidget(key_D4);
+
+ key_E4 = new QPushButton(pianoWidget);
+ key_E4->setObjectName(QString::fromUtf8("key_E4"));
+
+ whiteKeysLayout->addWidget(key_E4);
+
+ key_F4 = new QPushButton(pianoWidget);
+ key_F4->setObjectName(QString::fromUtf8("key_F4"));
+
+ whiteKeysLayout->addWidget(key_F4);
+
+ key_G4 = new QPushButton(pianoWidget);
+ key_G4->setObjectName(QString::fromUtf8("key_G4"));
+
+ whiteKeysLayout->addWidget(key_G4);
+
+ key_A4 = new QPushButton(pianoWidget);
+ key_A4->setObjectName(QString::fromUtf8("key_A4"));
+
+ whiteKeysLayout->addWidget(key_A4);
+
+ key_B4 = new QPushButton(pianoWidget);
+ key_B4->setObjectName(QString::fromUtf8("key_B4"));
+
+ whiteKeysLayout->addWidget(key_B4);
+
+ key_C5 = new QPushButton(pianoWidget);
+ key_C5->setObjectName(QString::fromUtf8("key_C5"));
+
+ whiteKeysLayout->addWidget(key_C5);
+
+ key_D5 = new QPushButton(pianoWidget);
+ key_D5->setObjectName(QString::fromUtf8("key_D5"));
+
+ whiteKeysLayout->addWidget(key_D5);
+
+ key_E5 = new QPushButton(pianoWidget);
+ key_E5->setObjectName(QString::fromUtf8("key_E5"));
+
+ whiteKeysLayout->addWidget(key_E5);
+
+ key_F5 = new QPushButton(pianoWidget);
+ key_F5->setObjectName(QString::fromUtf8("key_F5"));
+
+ whiteKeysLayout->addWidget(key_F5);
+
+ key_G5 = new QPushButton(pianoWidget);
+ key_G5->setObjectName(QString::fromUtf8("key_G5"));
+
+ whiteKeysLayout->addWidget(key_G5);
+
+ key_A5 = new QPushButton(pianoWidget);
+ key_A5->setObjectName(QString::fromUtf8("key_A5"));
+
+ whiteKeysLayout->addWidget(key_A5);
+
+ key_B5 = new QPushButton(pianoWidget);
+ key_B5->setObjectName(QString::fromUtf8("key_B5"));
+
+ whiteKeysLayout->addWidget(key_B5);
+
+ key_C6 = new QPushButton(pianoWidget);
+ key_C6->setObjectName(QString::fromUtf8("key_C6"));
+
+ whiteKeysLayout->addWidget(key_C6);
+
+
+ verticalLayout_2->addLayout(whiteKeysLayout);
+
+ blackKeysLayout = new QHBoxLayout();
+ blackKeysLayout->setObjectName(QString::fromUtf8("blackKeysLayout"));
+ horizontalSpacer_1 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
+
+ blackKeysLayout->addItem(horizontalSpacer_1);
+
+ key_Cs1 = new QPushButton(pianoWidget);
+ key_Cs1->setObjectName(QString::fromUtf8("key_Cs1"));
+
+ blackKeysLayout->addWidget(key_Cs1);
+
+ key_Ds1 = new QPushButton(pianoWidget);
+ key_Ds1->setObjectName(QString::fromUtf8("key_Ds1"));
+
+ blackKeysLayout->addWidget(key_Ds1);
+
+ horizontalSpacer_22 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
+
+ blackKeysLayout->addItem(horizontalSpacer_22);
+
+ key_Fs1 = new QPushButton(pianoWidget);
+ key_Fs1->setObjectName(QString::fromUtf8("key_Fs1"));
+
+ blackKeysLayout->addWidget(key_Fs1);
+
+ key_Gs1 = new QPushButton(pianoWidget);
+ key_Gs1->setObjectName(QString::fromUtf8("key_Gs1"));
+
+ blackKeysLayout->addWidget(key_Gs1);
+
+ key_As1 = new QPushButton(pianoWidget);
+ key_As1->setObjectName(QString::fromUtf8("key_As1"));
+
+ blackKeysLayout->addWidget(key_As1);
+
+ horizontalSpacer_3 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
+
+ blackKeysLayout->addItem(horizontalSpacer_3);
+
+ key_Cs2 = new QPushButton(pianoWidget);
+ key_Cs2->setObjectName(QString::fromUtf8("key_Cs2"));
+
+ blackKeysLayout->addWidget(key_Cs2);
+
+ key_Ds2 = new QPushButton(pianoWidget);
+ key_Ds2->setObjectName(QString::fromUtf8("key_Ds2"));
+
+ blackKeysLayout->addWidget(key_Ds2);
+
+ horizontalSpacer_4 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
+
+ blackKeysLayout->addItem(horizontalSpacer_4);
+
+ key_Fs2 = new QPushButton(pianoWidget);
+ key_Fs2->setObjectName(QString::fromUtf8("key_Fs2"));
+
+ blackKeysLayout->addWidget(key_Fs2);
+
+ key_Gs2 = new QPushButton(pianoWidget);
+ key_Gs2->setObjectName(QString::fromUtf8("key_Gs2"));
+
+ blackKeysLayout->addWidget(key_Gs2);
+
+ key_As2 = new QPushButton(pianoWidget);
+ key_As2->setObjectName(QString::fromUtf8("key_As2"));
+
+ blackKeysLayout->addWidget(key_As2);
+
+ horizontalSpacer_5 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
+
+ blackKeysLayout->addItem(horizontalSpacer_5);
+
+ key_Cs3 = new QPushButton(pianoWidget);
+ key_Cs3->setObjectName(QString::fromUtf8("key_Cs3"));
+
+ blackKeysLayout->addWidget(key_Cs3);
+
+ key_Ds3 = new QPushButton(pianoWidget);
+ key_Ds3->setObjectName(QString::fromUtf8("key_Ds3"));
+
+ blackKeysLayout->addWidget(key_Ds3);
+
+ horizontalSpacer_6 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
+
+ blackKeysLayout->addItem(horizontalSpacer_6);
+
+ key_Fs3 = new QPushButton(pianoWidget);
+ key_Fs3->setObjectName(QString::fromUtf8("key_Fs3"));
+
+ blackKeysLayout->addWidget(key_Fs3);
+
+ key_Gs3 = new QPushButton(pianoWidget);
+ key_Gs3->setObjectName(QString::fromUtf8("key_Gs3"));
+
+ blackKeysLayout->addWidget(key_Gs3);
+
+ key_As3 = new QPushButton(pianoWidget);
+ key_As3->setObjectName(QString::fromUtf8("key_As3"));
+
+ blackKeysLayout->addWidget(key_As3);
+
+ horizontalSpacer_7 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
+
+ blackKeysLayout->addItem(horizontalSpacer_7);
+
+ key_Cs4 = new QPushButton(pianoWidget);
+ key_Cs4->setObjectName(QString::fromUtf8("key_Cs4"));
+
+ blackKeysLayout->addWidget(key_Cs4);
+
+ key_Ds4 = new QPushButton(pianoWidget);
+ key_Ds4->setObjectName(QString::fromUtf8("key_Ds4"));
+
+ blackKeysLayout->addWidget(key_Ds4);
+
+ horizontalSpacer_8 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
+
+ blackKeysLayout->addItem(horizontalSpacer_8);
+
+ key_Fs4 = new QPushButton(pianoWidget);
+ key_Fs4->setObjectName(QString::fromUtf8("key_Fs4"));
+
+ blackKeysLayout->addWidget(key_Fs4);
+
+ key_Gs4 = new QPushButton(pianoWidget);
+ key_Gs4->setObjectName(QString::fromUtf8("key_Gs4"));
+
+ blackKeysLayout->addWidget(key_Gs4);
+
+ key_As4 = new QPushButton(pianoWidget);
+ key_As4->setObjectName(QString::fromUtf8("key_As4"));
+
+ blackKeysLayout->addWidget(key_As4);
+
+ horizontalSpacer_9 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
+
+ blackKeysLayout->addItem(horizontalSpacer_9);
+
+ key_Cs5 = new QPushButton(pianoWidget);
+ key_Cs5->setObjectName(QString::fromUtf8("key_Cs5"));
+
+ blackKeysLayout->addWidget(key_Cs5);
+
+ key_Ds5 = new QPushButton(pianoWidget);
+ key_Ds5->setObjectName(QString::fromUtf8("key_Ds5"));
+
+ blackKeysLayout->addWidget(key_Ds5);
+
+ horizontalSpacer_10 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
+
+ blackKeysLayout->addItem(horizontalSpacer_10);
+
+ key_Fs5 = new QPushButton(pianoWidget);
+ key_Fs5->setObjectName(QString::fromUtf8("key_Fs5"));
+
+ blackKeysLayout->addWidget(key_Fs5);
+
+ key_Gs5 = new QPushButton(pianoWidget);
+ key_Gs5->setObjectName(QString::fromUtf8("key_Gs5"));
+
+ blackKeysLayout->addWidget(key_Gs5);
+
+ key_As5 = new QPushButton(pianoWidget);
+ key_As5->setObjectName(QString::fromUtf8("key_As5"));
+
+ blackKeysLayout->addWidget(key_As5);
+
+ horizontalSpacer_11 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
+
+ blackKeysLayout->addItem(horizontalSpacer_11);
+
+
+ verticalLayout_2->addLayout(blackKeysLayout);
+
+
+ verticalLayout->addWidget(pianoWidget);
+
+ Yamitracker->setCentralWidget(centralwidget);
+
+ retranslateUi(Yamitracker);
+
+ QMetaObject::connectSlotsByName(Yamitracker);
+ } // setupUi
+
+ void retranslateUi(QMainWindow *Yamitracker)
+ {
+ Yamitracker->setWindowTitle(QCoreApplication::translate("Yamitracker", "Yamaha PSR-E333 Monitor - Multitrack Recording", nullptr));
+ statusLabel->setText(QCoreApplication::translate("Yamitracker", "\320\241\321\202\320\260\321\202\321\203\321\201: \320\223\320\276\321\202\320\276\320\262", nullptr));
+ deviceLabel->setText(QCoreApplication::translate("Yamitracker", "\320\243\321\201\321\202\321\200\320\276\320\271\321\201\321\202\320\262\320\276: \320\235\320\265 \320\277\320\276\320\264\320\272\320\273\321\216\321\207\320\265\320\275\320\276", nullptr));
+ keysInfoLabel->setText(QCoreApplication::translate("Yamitracker", "\320\235\320\260\320\266\320\260\321\202\320\276 \320\272\320\273\320\260\320\262\320\270\321\210: 0", nullptr));
+ groupBox->setTitle(QCoreApplication::translate("Yamitracker", "\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265 \320\267\320\260\320\277\320\270\321\201\321\214\321\216", nullptr));
+ playButton->setText(QCoreApplication::translate("Yamitracker", "\342\226\266 \320\227\320\260\320\277\320\270\321\201\321\214 \321\201 \321\201\320\270\320\275\321\202\320\265\320\267\320\260\321\202\320\276\321\200\320\260", nullptr));
+ pauseButton->setText(QCoreApplication::translate("Yamitracker", "\342\217\270 \320\237\320\260\321\203\320\267\320\260", nullptr));
+ stopButton->setText(QCoreApplication::translate("Yamitracker", "\342\217\271 \320\241\321\202\320\276\320\277", nullptr));
+ saveRecordingButton->setText(QCoreApplication::translate("Yamitracker", "\360\237\222\276 \320\241\320\276\321\205\321\200\320\260\320\275\320\270\321\202\321\214 \320\267\320\260\320\277\320\270\321\201\321\214", nullptr));
+ convertButton->setText(QCoreApplication::translate("Yamitracker", "\360\237\224\204 \320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\270\321\200\320\276\320\262\320\260\321\202\321\214 \320\262 BRR", nullptr));
+ saveMusicButton->setText(QCoreApplication::translate("Yamitracker", "\360\237\216\265 \320\241\320\276\321\205\321\200\320\260\320\275\320\270\321\202\321\214 \320\274\321\203\320\267\321\213\320\272\321\203 (Pently)", nullptr));
+ groupBox_4->setTitle(QCoreApplication::translate("Yamitracker", "\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265 \320\262\320\276\321\201\320\277\321\200\320\276\320\270\320\267\320\262\320\265\320\264\320\265\320\275\320\270\320\265\320\274", nullptr));
+ playTrackButton->setText(QCoreApplication::translate("Yamitracker", "\342\226\266 \320\242\320\265\320\272\321\203\321\211\320\260\321\217 \320\264\320\276\321\200\320\276\320\266\320\272\320\260", nullptr));
+ playAllButton->setText(QCoreApplication::translate("Yamitracker", "\342\226\266\342\226\266 \320\222\321\201\320\265 \320\264\320\276\321\200\320\276\320\266\320\272\320\270", nullptr));
+ stopPlaybackButton->setText(QCoreApplication::translate("Yamitracker", "\342\217\271 \320\241\321\202\320\276\320\277 \320\262\320\276\321\201\320\277\321\200\320\276\320\270\320\267\320\262\320\265\320\264\320\265\320\275\320\270\320\265", nullptr));
+ loadWavButton->setText(QCoreApplication::translate("Yamitracker", "\360\237\223\202 \320\227\320\260\320\263\321\200\321\203\320\267\320\270\321\202\321\214 WAV \320\262 \320\264\320\276\321\200\320\276\320\266\320\272\321\203", nullptr));
+ groupBox_3->setTitle(QCoreApplication::translate("Yamitracker", "\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265 \320\264\320\276\321\200\320\276\320\266\320\272\320\260\320\274\320\270", nullptr));
+ label_3->setText(QCoreApplication::translate("Yamitracker", "\320\242\320\265\320\272\321\203\321\211\320\260\321\217 \320\264\320\276\321\200\320\276\320\266\320\272\320\260:", nullptr));
+ addTrackButton->setText(QCoreApplication::translate("Yamitracker", "\342\236\225 \320\235\320\276\320\262\320\260\321\217 \320\264\320\276\321\200\320\276\320\266\320\272\320\260", nullptr));
+ removeTrackButton->setText(QCoreApplication::translate("Yamitracker", "\360\237\227\221 \320\243\320\264\320\260\320\273\320\270\321\202\321\214 \320\264\320\276\321\200\320\276\320\266\320\272\321\203", nullptr));
+ clearTrackButton->setText(QCoreApplication::translate("Yamitracker", "\360\237\227\221 \320\236\321\207\320\270\321\201\321\202\320\270\321\202\321\214 \320\264\320\276\321\200\320\276\320\266\320\272\321\203", nullptr));
+ copyTrackButton->setText(QCoreApplication::translate("Yamitracker", "\360\237\223\213 \320\232\320\276\320\277\320\270\321\200\320\276\320\262\320\260\321\202\321\214 \320\264\320\276\321\200\320\276\320\266\320\272\321\203", nullptr));
+ mergeTrackButton->setText(QCoreApplication::translate("Yamitracker", "\360\237\224\200 \320\236\320\261\321\212\320\265\320\264\320\270\320\275\320\270\321\202\321\214 \320\264\320\276\321\200\320\276\320\266\320\272\320\270", nullptr));
+ trackInfoLabel->setText(QCoreApplication::translate("Yamitracker", "\320\224\320\276\321\200\320\276\320\266\320\272\320\260 1: 0 \320\275\320\276\321\202", nullptr));
+ label_4->setText(QCoreApplication::translate("Yamitracker", "\320\237\320\260\320\275\320\265\320\273\321\214 \321\203\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\321\217 \320\264\320\276\321\200\320\276\320\266\320\272\320\260\320\274\320\270:", nullptr));
+ groupBox_2->setTitle(QCoreApplication::translate("Yamitracker", "\320\240\320\260\320\261\320\276\321\202\320\260 \321\201 MIDI \321\204\320\260\320\271\320\273\320\260\320\274\320\270", nullptr));
+ label->setText(QCoreApplication::translate("Yamitracker", "\320\230\320\275\321\201\321\202\321\200\321\203\320\274\320\265\320\275\321\202:", nullptr));
+ speedLabel->setText(QCoreApplication::translate("Yamitracker", "\320\241\320\272\320\276\321\200\320\276\321\201\321\202\321\214: 100%", nullptr));
+ volumeLabel->setText(QCoreApplication::translate("Yamitracker", "\320\221\320\260\321\201: 200%", nullptr));
+ refreshDevicesButton->setText(QCoreApplication::translate("Yamitracker", "\360\237\224\203 \320\236\320\261\320\275\320\276\320\262\320\270\321\202\321\214 \321\203\321\201\321\202\321\200\320\276\320\271\321\201\321\202\320\262\320\260", nullptr));
+ loadMidiButton->setText(QCoreApplication::translate("Yamitracker", "\360\237\223\202 \320\227\320\260\320\263\321\200\321\203\320\267\320\270\321\202\321\214 MIDI \321\204\320\260\320\271\320\273", nullptr));
+ playMidiButton->setText(QCoreApplication::translate("Yamitracker", "\342\226\266 \320\222\320\276\321\201\320\277\321\200\320\276\320\270\320\267\320\262\320\265\321\201\321\202\320\270 MIDI", nullptr));
+ recordFromMidiButton->setText(QCoreApplication::translate("Yamitracker", "\342\227\217 \320\227\320\260\320\277\320\270\321\201\320\260\321\202\321\214 \320\270\320\267 MIDI", nullptr));
+ selectFileButton->setText(QCoreApplication::translate("Yamitracker", "\360\237\223\201 \320\222\321\213\320\261\321\200\320\260\321\202\321\214 \321\204\320\260\320\271\320\273 \320\264\320\273\321\217 \320\272\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\320\270", nullptr));
+ playFileButton->setText(QCoreApplication::translate("Yamitracker", "\342\226\266 \320\222\320\276\321\201\320\277\321\200\320\276\320\270\320\267\320\262\320\265\321\201\321\202\320\270 WAV", nullptr));
+ label_2->setText(QCoreApplication::translate("Yamitracker", "\320\224\320\276\321\201\321\202\321\203\320\277\320\275\321\213\320\265 MIDI \321\204\320\260\320\271\320\273\321\213:", nullptr));
+ key_C1->setText(QCoreApplication::translate("Yamitracker", "C1", nullptr));
+ key_D1->setText(QCoreApplication::translate("Yamitracker", "D1", nullptr));
+ key_E1->setText(QCoreApplication::translate("Yamitracker", "E1", nullptr));
+ key_F1->setText(QCoreApplication::translate("Yamitracker", "F1", nullptr));
+ key_G1->setText(QCoreApplication::translate("Yamitracker", "G1", nullptr));
+ key_A1->setText(QCoreApplication::translate("Yamitracker", "A1", nullptr));
+ key_B1->setText(QCoreApplication::translate("Yamitracker", "B1", nullptr));
+ key_C2->setText(QCoreApplication::translate("Yamitracker", "C2", nullptr));
+ key_D2->setText(QCoreApplication::translate("Yamitracker", "D2", nullptr));
+ key_E2->setText(QCoreApplication::translate("Yamitracker", "E2", nullptr));
+ key_F2->setText(QCoreApplication::translate("Yamitracker", "F2", nullptr));
+ key_G2->setText(QCoreApplication::translate("Yamitracker", "G2", nullptr));
+ key_A2->setText(QCoreApplication::translate("Yamitracker", "A2", nullptr));
+ key_B2->setText(QCoreApplication::translate("Yamitracker", "B2", nullptr));
+ key_C3->setText(QCoreApplication::translate("Yamitracker", "C3", nullptr));
+ key_D3->setText(QCoreApplication::translate("Yamitracker", "D3", nullptr));
+ key_E3->setText(QCoreApplication::translate("Yamitracker", "E3", nullptr));
+ key_F3->setText(QCoreApplication::translate("Yamitracker", "F3", nullptr));
+ key_G3->setText(QCoreApplication::translate("Yamitracker", "G3", nullptr));
+ key_A3->setText(QCoreApplication::translate("Yamitracker", "A3", nullptr));
+ key_B3->setText(QCoreApplication::translate("Yamitracker", "B3", nullptr));
+ key_C4->setText(QCoreApplication::translate("Yamitracker", "C4", nullptr));
+ key_D4->setText(QCoreApplication::translate("Yamitracker", "D4", nullptr));
+ key_E4->setText(QCoreApplication::translate("Yamitracker", "E4", nullptr));
+ key_F4->setText(QCoreApplication::translate("Yamitracker", "F4", nullptr));
+ key_G4->setText(QCoreApplication::translate("Yamitracker", "G4", nullptr));
+ key_A4->setText(QCoreApplication::translate("Yamitracker", "A4", nullptr));
+ key_B4->setText(QCoreApplication::translate("Yamitracker", "B4", nullptr));
+ key_C5->setText(QCoreApplication::translate("Yamitracker", "C5", nullptr));
+ key_D5->setText(QCoreApplication::translate("Yamitracker", "D5", nullptr));
+ key_E5->setText(QCoreApplication::translate("Yamitracker", "E5", nullptr));
+ key_F5->setText(QCoreApplication::translate("Yamitracker", "F5", nullptr));
+ key_G5->setText(QCoreApplication::translate("Yamitracker", "G5", nullptr));
+ key_A5->setText(QCoreApplication::translate("Yamitracker", "A5", nullptr));
+ key_B5->setText(QCoreApplication::translate("Yamitracker", "B5", nullptr));
+ key_C6->setText(QCoreApplication::translate("Yamitracker", "C6", nullptr));
+ key_Cs1->setText(QCoreApplication::translate("Yamitracker", "C#1", nullptr));
+ key_Ds1->setText(QCoreApplication::translate("Yamitracker", "D#1", nullptr));
+ key_Fs1->setText(QCoreApplication::translate("Yamitracker", "F#1", nullptr));
+ key_Gs1->setText(QCoreApplication::translate("Yamitracker", "G#1", nullptr));
+ key_As1->setText(QCoreApplication::translate("Yamitracker", "A#1", nullptr));
+ key_Cs2->setText(QCoreApplication::translate("Yamitracker", "C#2", nullptr));
+ key_Ds2->setText(QCoreApplication::translate("Yamitracker", "D#2", nullptr));
+ key_Fs2->setText(QCoreApplication::translate("Yamitracker", "F#2", nullptr));
+ key_Gs2->setText(QCoreApplication::translate("Yamitracker", "G#2", nullptr));
+ key_As2->setText(QCoreApplication::translate("Yamitracker", "A#2", nullptr));
+ key_Cs3->setText(QCoreApplication::translate("Yamitracker", "C#3", nullptr));
+ key_Ds3->setText(QCoreApplication::translate("Yamitracker", "D#3", nullptr));
+ key_Fs3->setText(QCoreApplication::translate("Yamitracker", "F#3", nullptr));
+ key_Gs3->setText(QCoreApplication::translate("Yamitracker", "G#3", nullptr));
+ key_As3->setText(QCoreApplication::translate("Yamitracker", "A#3", nullptr));
+ key_Cs4->setText(QCoreApplication::translate("Yamitracker", "C#4", nullptr));
+ key_Ds4->setText(QCoreApplication::translate("Yamitracker", "D#4", nullptr));
+ key_Fs4->setText(QCoreApplication::translate("Yamitracker", "F#4", nullptr));
+ key_Gs4->setText(QCoreApplication::translate("Yamitracker", "G#4", nullptr));
+ key_As4->setText(QCoreApplication::translate("Yamitracker", "A#4", nullptr));
+ key_Cs5->setText(QCoreApplication::translate("Yamitracker", "C#5", nullptr));
+ key_Ds5->setText(QCoreApplication::translate("Yamitracker", "D#5", nullptr));
+ key_Fs5->setText(QCoreApplication::translate("Yamitracker", "F#5", nullptr));
+ key_Gs5->setText(QCoreApplication::translate("Yamitracker", "G#5", nullptr));
+ key_As5->setText(QCoreApplication::translate("Yamitracker", "A#5", nullptr));
+ } // retranslateUi
+
+};
+
+namespace Ui {
+ class Yamitracker: public Ui_Yamitracker {};
+} // namespace Ui
+
+QT_END_NAMESPACE
+
+#endif // UI_YAMITRACKER_H
diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build/yamitracker.o b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/yamitracker.o
new file mode 100644
index 0000000..5b084d9
Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/Yamitracker/build/yamitracker.o differ
diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/.qmake.stash b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/.qmake.stash
new file mode 100644
index 0000000..99e66aa
--- /dev/null
+++ b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/.qmake.stash
@@ -0,0 +1,23 @@
+QMAKE_CXX.QT_COMPILER_STDCXX = 201703L
+QMAKE_CXX.QMAKE_GCC_MAJOR_VERSION = 13
+QMAKE_CXX.QMAKE_GCC_MINOR_VERSION = 3
+QMAKE_CXX.QMAKE_GCC_PATCH_VERSION = 0
+QMAKE_CXX.COMPILER_MACROS = \
+ QT_COMPILER_STDCXX \
+ QMAKE_GCC_MAJOR_VERSION \
+ QMAKE_GCC_MINOR_VERSION \
+ QMAKE_GCC_PATCH_VERSION
+QMAKE_CXX.INCDIRS = \
+ /usr/include/c++/13 \
+ /usr/include/x86_64-linux-gnu/c++/13 \
+ /usr/include/c++/13/backward \
+ /usr/lib/gcc/x86_64-linux-gnu/13/include \
+ /usr/local/include \
+ /usr/include/x86_64-linux-gnu \
+ /usr/include
+QMAKE_CXX.LIBDIRS = \
+ /usr/lib/gcc/x86_64-linux-gnu/13 \
+ /usr/lib/x86_64-linux-gnu \
+ /usr/lib \
+ /lib/x86_64-linux-gnu \
+ /lib
diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/Makefile b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/Makefile
new file mode 100644
index 0000000..d726afa
--- /dev/null
+++ b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/Makefile
@@ -0,0 +1,442 @@
+#############################################################################
+# Makefile for building: Yamitracker
+# Generated by qmake (3.1) (Qt 5.15.13)
+# Project: ../Yamitracker.pro
+# Template: app
+# Command: /usr/lib/qt5/bin/qmake -o Makefile ../Yamitracker.pro
+#############################################################################
+
+MAKEFILE = Makefile
+
+EQ = =
+
+####### Compiler, tools and options
+
+CC = gcc
+CXX = g++
+DEFINES = -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB
+CFLAGS = -pipe -O2 -Wall -Wextra -D_REENTRANT -fPIC $(DEFINES)
+CXXFLAGS = -pipe -O2 -std=gnu++1z -Wall -Wextra -D_REENTRANT -fPIC $(DEFINES)
+INCPATH = -I../../Yamitracker -I. -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I. -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++
+QMAKE = /usr/lib/qt5/bin/qmake
+DEL_FILE = rm -f
+CHK_DIR_EXISTS= test -d
+MKDIR = mkdir -p
+COPY = cp -f
+COPY_FILE = cp -f
+COPY_DIR = cp -f -R
+INSTALL_FILE = install -m 644 -p
+INSTALL_PROGRAM = install -m 755 -p
+INSTALL_DIR = cp -f -R
+QINSTALL = /usr/lib/qt5/bin/qmake -install qinstall
+QINSTALL_PROGRAM = /usr/lib/qt5/bin/qmake -install qinstall -exe
+DEL_FILE = rm -f
+SYMLINK = ln -f -s
+DEL_DIR = rmdir
+MOVE = mv -f
+TAR = tar -cf
+COMPRESS = gzip -9f
+DISTNAME = Yamitracker1.0.0
+DISTDIR = /home/sofft328/progs/Yamitracker/Yamitracker2/Yamitracker/build_wav/.tmp/Yamitracker1.0.0
+LINK = g++
+LFLAGS = -Wl,-O1
+LIBS = $(SUBLIBS) /usr/lib/x86_64-linux-gnu/libQt5Widgets.so /usr/lib/x86_64-linux-gnu/libQt5Gui.so /usr/lib/x86_64-linux-gnu/libQt5Core.so -lGL -lpthread
+AR = ar cqs
+RANLIB =
+SED = sed
+STRIP = strip
+
+####### Output directory
+
+OBJECTS_DIR = ./
+
+####### Files
+
+SOURCES = ../main.cpp \
+ ../yamitracker.cpp \
+ ../simplewavwriter.cpp \
+ ../brrconverter.cpp moc_yamitracker.cpp \
+ moc_brrconverter.cpp
+OBJECTS = main.o \
+ yamitracker.o \
+ simplewavwriter.o \
+ brrconverter.o \
+ moc_yamitracker.o \
+ moc_brrconverter.o
+DIST = /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf \
+ ../.qmake.stash \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/uic.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf \
+ ../../Yamitracker.pro ../yamitracker.h \
+ ../simplewavwriter.h \
+ ../brrconverter.h ../main.cpp \
+ ../yamitracker.cpp \
+ ../simplewavwriter.cpp \
+ ../brrconverter.cpp
+QMAKE_TARGET = Yamitracker
+DESTDIR =
+TARGET = Yamitracker
+
+
+first: all
+####### Build rules
+
+Yamitracker: ui_yamitracker.h $(OBJECTS)
+ $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS)
+
+Makefile: ../Yamitracker.pro /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf \
+ .qmake.stash \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/uic.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf \
+ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf \
+ ../Yamitracker.pro
+ $(QMAKE) -o Makefile ../Yamitracker.pro
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf:
+.qmake.stash:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/uic.prf:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf:
+/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf:
+../Yamitracker.pro:
+qmake: FORCE
+ @$(QMAKE) -o Makefile ../Yamitracker.pro
+
+qmake_all: FORCE
+
+
+all: Makefile Yamitracker
+
+dist: distdir FORCE
+ (cd `dirname $(DISTDIR)` && $(TAR) $(DISTNAME).tar $(DISTNAME) && $(COMPRESS) $(DISTNAME).tar) && $(MOVE) `dirname $(DISTDIR)`/$(DISTNAME).tar.gz . && $(DEL_FILE) -r $(DISTDIR)
+
+distdir: FORCE
+ @test -d $(DISTDIR) || mkdir -p $(DISTDIR)
+ $(COPY_FILE) --parents $(DIST) $(DISTDIR)/
+ $(COPY_FILE) --parents /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp $(DISTDIR)/
+ $(COPY_FILE) --parents ../yamitracker.h ../simplewavwriter.h ../brrconverter.h $(DISTDIR)/
+ $(COPY_FILE) --parents ../main.cpp ../yamitracker.cpp ../simplewavwriter.cpp ../brrconverter.cpp $(DISTDIR)/
+ $(COPY_FILE) --parents ../yamitracker.ui $(DISTDIR)/
+
+
+clean: compiler_clean
+ -$(DEL_FILE) $(OBJECTS)
+ -$(DEL_FILE) *~ core *.core
+
+
+distclean: clean
+ -$(DEL_FILE) $(TARGET)
+ -$(DEL_FILE) .qmake.stash
+ -$(DEL_FILE) Makefile
+
+
+####### Sub-libraries
+
+mocclean: compiler_moc_header_clean compiler_moc_objc_header_clean compiler_moc_source_clean
+
+mocables: compiler_moc_header_make_all compiler_moc_objc_header_make_all compiler_moc_source_make_all
+
+check: first
+
+benchmark: first
+
+compiler_rcc_make_all:
+compiler_rcc_clean:
+compiler_moc_predefs_make_all: moc_predefs.h
+compiler_moc_predefs_clean:
+ -$(DEL_FILE) moc_predefs.h
+moc_predefs.h: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp
+ g++ -pipe -O2 -std=gnu++1z -Wall -Wextra -dM -E -o moc_predefs.h /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp
+
+compiler_moc_header_make_all: moc_yamitracker.cpp moc_brrconverter.cpp
+compiler_moc_header_clean:
+ -$(DEL_FILE) moc_yamitracker.cpp moc_brrconverter.cpp
+moc_yamitracker.cpp: ../yamitracker.h \
+ ../simplewavwriter.h \
+ ../brrconverter.h \
+ moc_predefs.h \
+ /usr/lib/qt5/bin/moc
+ /usr/lib/qt5/bin/moc $(DEFINES) --include /home/sofft328/progs/Yamitracker/Yamitracker2/Yamitracker/build_wav/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/sofft328/progs/Yamitracker/Yamitracker2/Yamitracker -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/13 -I/usr/include/x86_64-linux-gnu/c++/13 -I/usr/include/c++/13/backward -I/usr/lib/gcc/x86_64-linux-gnu/13/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../yamitracker.h -o moc_yamitracker.cpp
+
+moc_brrconverter.cpp: ../brrconverter.h \
+ moc_predefs.h \
+ /usr/lib/qt5/bin/moc
+ /usr/lib/qt5/bin/moc $(DEFINES) --include /home/sofft328/progs/Yamitracker/Yamitracker2/Yamitracker/build_wav/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/sofft328/progs/Yamitracker/Yamitracker2/Yamitracker -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/13 -I/usr/include/x86_64-linux-gnu/c++/13 -I/usr/include/c++/13/backward -I/usr/lib/gcc/x86_64-linux-gnu/13/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include ../brrconverter.h -o moc_brrconverter.cpp
+
+compiler_moc_objc_header_make_all:
+compiler_moc_objc_header_clean:
+compiler_moc_source_make_all:
+compiler_moc_source_clean:
+compiler_uic_make_all: ui_yamitracker.h
+compiler_uic_clean:
+ -$(DEL_FILE) ui_yamitracker.h
+ui_yamitracker.h: ../yamitracker.ui \
+ /usr/lib/qt5/bin/uic
+ /usr/lib/qt5/bin/uic ../yamitracker.ui -o ui_yamitracker.h
+
+compiler_yacc_decl_make_all:
+compiler_yacc_decl_clean:
+compiler_yacc_impl_make_all:
+compiler_yacc_impl_clean:
+compiler_lex_make_all:
+compiler_lex_clean:
+compiler_clean: compiler_moc_predefs_clean compiler_moc_header_clean compiler_uic_clean
+
+####### Compile
+
+main.o: ../main.cpp ../yamitracker.h \
+ ../simplewavwriter.h \
+ ../brrconverter.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o main.o ../main.cpp
+
+yamitracker.o: ../yamitracker.cpp ../yamitracker.h \
+ ../simplewavwriter.h \
+ ../brrconverter.h \
+ ui_yamitracker.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o yamitracker.o ../yamitracker.cpp
+
+simplewavwriter.o: ../simplewavwriter.cpp ../simplewavwriter.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o simplewavwriter.o ../simplewavwriter.cpp
+
+brrconverter.o: ../brrconverter.cpp ../brrconverter.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o brrconverter.o ../brrconverter.cpp
+
+moc_yamitracker.o: moc_yamitracker.cpp
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_yamitracker.o moc_yamitracker.cpp
+
+moc_brrconverter.o: moc_brrconverter.cpp
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_brrconverter.o moc_brrconverter.cpp
+
+####### Install
+
+install_target: first FORCE
+ @test -d $(INSTALL_ROOT)/opt/Yamitracker/bin || mkdir -p $(INSTALL_ROOT)/opt/Yamitracker/bin
+ $(QINSTALL_PROGRAM) $(QMAKE_TARGET) $(INSTALL_ROOT)/opt/Yamitracker/bin/$(QMAKE_TARGET)
+ -$(STRIP) $(INSTALL_ROOT)/opt/Yamitracker/bin/$(QMAKE_TARGET)
+
+uninstall_target: FORCE
+ -$(DEL_FILE) $(INSTALL_ROOT)/opt/Yamitracker/bin/$(QMAKE_TARGET)
+ -$(DEL_DIR) $(INSTALL_ROOT)/opt/Yamitracker/bin/
+
+
+install: install_target FORCE
+
+uninstall: uninstall_target FORCE
+
+FORCE:
+
diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/Yamitracker b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/Yamitracker
new file mode 100644
index 0000000..984eec7
Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/Yamitracker differ
diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/brrconverter.o b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/brrconverter.o
new file mode 100644
index 0000000..149ec06
Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/brrconverter.o differ
diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/main.o b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/main.o
new file mode 100644
index 0000000..edc2e30
Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/main.o differ
diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/moc_brrconverter.cpp b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/moc_brrconverter.cpp
new file mode 100644
index 0000000..a11b9fc
--- /dev/null
+++ b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/moc_brrconverter.cpp
@@ -0,0 +1,95 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'brrconverter.h'
+**
+** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.13)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include
+#include "../brrconverter.h"
+#include
+#include
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'brrconverter.h' doesn't include ."
+#elif Q_MOC_OUTPUT_REVISION != 67
+#error "This file was generated using the moc from 5.15.13. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+QT_WARNING_PUSH
+QT_WARNING_DISABLE_DEPRECATED
+struct qt_meta_stringdata_BrrConverter_t {
+ QByteArrayData data[1];
+ char stringdata0[13];
+};
+#define QT_MOC_LITERAL(idx, ofs, len) \
+ Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
+ qptrdiff(offsetof(qt_meta_stringdata_BrrConverter_t, stringdata0) + ofs \
+ - idx * sizeof(QByteArrayData)) \
+ )
+static const qt_meta_stringdata_BrrConverter_t qt_meta_stringdata_BrrConverter = {
+ {
+QT_MOC_LITERAL(0, 0, 12) // "BrrConverter"
+
+ },
+ "BrrConverter"
+};
+#undef QT_MOC_LITERAL
+
+static const uint qt_meta_data_BrrConverter[] = {
+
+ // content:
+ 8, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 0, 0, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+ 0, // flags
+ 0, // signalCount
+
+ 0 // eod
+};
+
+void BrrConverter::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
+{
+ (void)_o;
+ (void)_id;
+ (void)_c;
+ (void)_a;
+}
+
+QT_INIT_METAOBJECT const QMetaObject BrrConverter::staticMetaObject = { {
+ QMetaObject::SuperData::link(),
+ qt_meta_stringdata_BrrConverter.data,
+ qt_meta_data_BrrConverter,
+ qt_static_metacall,
+ nullptr,
+ nullptr
+} };
+
+
+const QMetaObject *BrrConverter::metaObject() const
+{
+ return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
+}
+
+void *BrrConverter::qt_metacast(const char *_clname)
+{
+ if (!_clname) return nullptr;
+ if (!strcmp(_clname, qt_meta_stringdata_BrrConverter.stringdata0))
+ return static_cast(this);
+ return QObject::qt_metacast(_clname);
+}
+
+int BrrConverter::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+ _id = QObject::qt_metacall(_c, _id, _a);
+ return _id;
+}
+QT_WARNING_POP
+QT_END_MOC_NAMESPACE
diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/moc_brrconverter.o b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/moc_brrconverter.o
new file mode 100644
index 0000000..fa3b784
Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/moc_brrconverter.o differ
diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/moc_predefs.h b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/moc_predefs.h
new file mode 100644
index 0000000..f29ad61
--- /dev/null
+++ b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/moc_predefs.h
@@ -0,0 +1,464 @@
+#define __DBL_MIN_EXP__ (-1021)
+#define __cpp_nontype_template_parameter_auto 201606L
+#define __UINT_LEAST16_MAX__ 0xffff
+#define __FLT16_HAS_QUIET_NAN__ 1
+#define __ATOMIC_ACQUIRE 2
+#define __FLT128_MAX_10_EXP__ 4932
+#define __FLT_MIN__ 1.17549435082228750796873653722224568e-38F
+#define __GCC_IEC_559_COMPLEX 2
+#define __cpp_aggregate_nsdmi 201304L
+#define __UINT_LEAST8_TYPE__ unsigned char
+#define __SIZEOF_FLOAT80__ 16
+#define __BFLT16_DENORM_MIN__ 9.18354961579912115600575419704879436e-41BF16
+#define __INTMAX_C(c) c ## L
+#define __CHAR_BIT__ 8
+#define __UINT8_MAX__ 0xff
+#define __SCHAR_WIDTH__ 8
+#define __WINT_MAX__ 0xffffffffU
+#define __FLT32_MIN_EXP__ (-125)
+#define __cpp_static_assert 201411L
+#define __BFLT16_MIN_10_EXP__ (-37)
+#define __ORDER_LITTLE_ENDIAN__ 1234
+#define __WCHAR_MAX__ 0x7fffffff
+#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1
+#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1
+#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1
+#define __GCC_ATOMIC_CHAR_LOCK_FREE 2
+#define __GCC_IEC_559 2
+#define __FLT32X_DECIMAL_DIG__ 17
+#define __FLT_EVAL_METHOD__ 0
+#define __cpp_binary_literals 201304L
+#define __FLT64_DECIMAL_DIG__ 17
+#define __CET__ 3
+#define __cpp_noexcept_function_type 201510L
+#define __GCC_ATOMIC_CHAR32_T_LOCK_FREE 2
+#define __cpp_variadic_templates 200704L
+#define __UINT_FAST64_MAX__ 0xffffffffffffffffUL
+#define __SIG_ATOMIC_TYPE__ int
+#define __DBL_MIN_10_EXP__ (-307)
+#define __FINITE_MATH_ONLY__ 0
+#define __cpp_variable_templates 201304L
+#define __FLT32X_MAX_EXP__ 1024
+#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1
+#define __FLT32_HAS_DENORM__ 1
+#define __UINT_FAST8_MAX__ 0xff
+#define __cpp_rvalue_reference 200610L
+#define __cpp_nested_namespace_definitions 201411L
+#define __DEC64_MAX_EXP__ 385
+#define __INT8_C(c) c
+#define __LDBL_HAS_INFINITY__ 1
+#define __INT_LEAST8_WIDTH__ 8
+#define __cpp_variadic_using 201611L
+#define __UINT_LEAST64_MAX__ 0xffffffffffffffffUL
+#define __INT_LEAST8_MAX__ 0x7f
+#define __cpp_attributes 200809L
+#define __cpp_capture_star_this 201603L
+#define __SHRT_MAX__ 0x7fff
+#define __LDBL_MAX__ 1.18973149535723176502126385303097021e+4932L
+#define __FLT64X_MAX_10_EXP__ 4932
+#define __cpp_if_constexpr 201606L
+#define __BFLT16_MAX_10_EXP__ 38
+#define __BFLT16_MAX_EXP__ 128
+#define __LDBL_IS_IEC_60559__ 1
+#define __FLT64X_HAS_QUIET_NAN__ 1
+#define __UINT_LEAST8_MAX__ 0xff
+#define __GCC_ATOMIC_BOOL_LOCK_FREE 2
+#define __FLT128_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966F128
+#define __UINTMAX_TYPE__ long unsigned int
+#define __cpp_nsdmi 200809L
+#define __BFLT16_DECIMAL_DIG__ 4
+#define __linux 1
+#define __DEC32_EPSILON__ 1E-6DF
+#define __FLT_EVAL_METHOD_TS_18661_3__ 0
+#define __OPTIMIZE__ 1
+#define __UINT32_MAX__ 0xffffffffU
+#define __GXX_EXPERIMENTAL_CXX0X__ 1
+#define __DBL_DENORM_MIN__ double(4.94065645841246544176568792868221372e-324L)
+#define __FLT128_MIN_EXP__ (-16381)
+#define __WINT_MIN__ 0U
+#define __FLT128_MIN_10_EXP__ (-4931)
+#define __FLT32X_IS_IEC_60559__ 1
+#define __INT_LEAST16_WIDTH__ 16
+#define __SCHAR_MAX__ 0x7f
+#define __FLT128_MANT_DIG__ 113
+#define __WCHAR_MIN__ (-__WCHAR_MAX__ - 1)
+#define __INT64_C(c) c ## L
+#define __SSP_STRONG__ 3
+#define __GCC_ATOMIC_POINTER_LOCK_FREE 2
+#define __ATOMIC_SEQ_CST 5
+#define _FORTIFY_SOURCE 3
+#define __unix 1
+#define __INT_LEAST64_MAX__ 0x7fffffffffffffffL
+#define __FLT32X_MANT_DIG__ 53
+#define __GCC_ATOMIC_CHAR16_T_LOCK_FREE 2
+#define __cpp_aligned_new 201606L
+#define __FLT32_MAX_10_EXP__ 38
+#define __FLT64X_EPSILON__ 1.08420217248550443400745280086994171e-19F64x
+#define __STDC_HOSTED__ 1
+#define __DEC64_MIN_EXP__ (-382)
+#define __cpp_decltype_auto 201304L
+#define __DBL_DIG__ 15
+#define __FLT_EPSILON__ 1.19209289550781250000000000000000000e-7F
+#define __GXX_WEAK__ 1
+#define __SHRT_WIDTH__ 16
+#define __FLT32_IS_IEC_60559__ 1
+#define __LDBL_MIN__ 3.36210314311209350626267781732175260e-4932L
+#define __DBL_IS_IEC_60559__ 1
+#define __DEC32_MAX__ 9.999999E96DF
+#define __cpp_threadsafe_static_init 200806L
+#define __cpp_enumerator_attributes 201411L
+#define __FLT64X_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951F64x
+#define __FLT32X_HAS_INFINITY__ 1
+#define __unix__ 1
+#define __INT_WIDTH__ 32
+#define __STDC_IEC_559__ 1
+#define __STDC_ISO_10646__ 201706L
+#define __DECIMAL_DIG__ 21
+#define __STDC_IEC_559_COMPLEX__ 1
+#define __FLT64_EPSILON__ 2.22044604925031308084726333618164062e-16F64
+#define __gnu_linux__ 1
+#define __INT16_MAX__ 0x7fff
+#define __FLT64_MIN_EXP__ (-1021)
+#define __FLT64X_MIN_10_EXP__ (-4931)
+#define __LDBL_HAS_QUIET_NAN__ 1
+#define __cpp_return_type_deduction 201304L
+#define __FLT16_MIN_EXP__ (-13)
+#define __FLT64_MANT_DIG__ 53
+#define __FLT64X_MANT_DIG__ 64
+#define __BFLT16_DIG__ 2
+#define __GNUC__ 13
+#define __GXX_RTTI 1
+#define __pie__ 2
+#define __MMX__ 1
+#define __FLT_HAS_DENORM__ 1
+#define __SIZEOF_LONG_DOUBLE__ 16
+#define __BIGGEST_ALIGNMENT__ 16
+#define __STDC_UTF_16__ 1
+#define __FLT64_MAX_10_EXP__ 308
+#define __BFLT16_IS_IEC_60559__ 0
+#define __FLT16_MAX_10_EXP__ 4
+#define __cpp_delegating_constructors 200604L
+#define __DBL_MAX__ double(1.79769313486231570814527423731704357e+308L)
+#define __cpp_raw_strings 200710L
+#define __INT_FAST32_MAX__ 0x7fffffffffffffffL
+#define __DBL_HAS_INFINITY__ 1
+#define __INT64_MAX__ 0x7fffffffffffffffL
+#define __SIZEOF_FLOAT__ 4
+#define __HAVE_SPECULATION_SAFE_VALUE 1
+#define __cpp_fold_expressions 201603L
+#define __DEC32_MIN_EXP__ (-94)
+#define __INTPTR_WIDTH__ 64
+#define __UINT_LEAST32_MAX__ 0xffffffffU
+#define __FLT32X_HAS_DENORM__ 1
+#define __INT_FAST16_TYPE__ long int
+#define __MMX_WITH_SSE__ 1
+#define __LDBL_HAS_DENORM__ 1
+#define __SEG_GS 1
+#define __BFLT16_EPSILON__ 7.81250000000000000000000000000000000e-3BF16
+#define __cplusplus 201703L
+#define __cpp_ref_qualifiers 200710L
+#define __DEC32_MIN__ 1E-95DF
+#define __DEPRECATED 1
+#define __cpp_rvalue_references 200610L
+#define __DBL_MAX_EXP__ 1024
+#define __WCHAR_WIDTH__ 32
+#define __FLT32_MAX__ 3.40282346638528859811704183484516925e+38F32
+#define __DEC128_EPSILON__ 1E-33DL
+#define __FLT16_DECIMAL_DIG__ 5
+#define __SSE2_MATH__ 1
+#define __ATOMIC_HLE_RELEASE 131072
+#define __PTRDIFF_MAX__ 0x7fffffffffffffffL
+#define __amd64 1
+#define __ATOMIC_HLE_ACQUIRE 65536
+#define __GNUG__ 13
+#define __LONG_LONG_MAX__ 0x7fffffffffffffffLL
+#define __SIZEOF_SIZE_T__ 8
+#define __BFLT16_HAS_INFINITY__ 1
+#define __FLT64X_MIN_EXP__ (-16381)
+#define __SIZEOF_WINT_T__ 4
+#define __FLT32X_DIG__ 15
+#define __LONG_LONG_WIDTH__ 64
+#define __cpp_initializer_lists 200806L
+#define __FLT32_MAX_EXP__ 128
+#define __cpp_hex_float 201603L
+#define __GXX_ABI_VERSION 1018
+#define __FLT_MIN_EXP__ (-125)
+#define __GCC_HAVE_DWARF2_CFI_ASM 1
+#define __x86_64 1
+#define __cpp_lambdas 200907L
+#define __INT_FAST64_TYPE__ long int
+#define __BFLT16_MAX__ 3.38953138925153547590470800371487867e+38BF16
+#define __FLT64_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F64
+#define __cpp_template_auto 201606L
+#define __FLT16_DENORM_MIN__ 5.96046447753906250000000000000000000e-8F16
+#define __FLT128_EPSILON__ 1.92592994438723585305597794258492732e-34F128
+#define __FLT64X_NORM_MAX__ 1.18973149535723176502126385303097021e+4932F64x
+#define __SIZEOF_POINTER__ 8
+#define __SIZE_TYPE__ long unsigned int
+#define __LP64__ 1
+#define __DBL_HAS_QUIET_NAN__ 1
+#define __FLT32X_EPSILON__ 2.22044604925031308084726333618164062e-16F32x
+#define __LDBL_MAX_EXP__ 16384
+#define __DECIMAL_BID_FORMAT__ 1
+#define __FLT64_MIN_10_EXP__ (-307)
+#define __FLT16_MIN_10_EXP__ (-4)
+#define __FLT64X_DECIMAL_DIG__ 21
+#define __DEC128_MIN__ 1E-6143DL
+#define __REGISTER_PREFIX__
+#define __UINT16_MAX__ 0xffff
+#define __FLT128_HAS_INFINITY__ 1
+#define __FLT32_MIN__ 1.17549435082228750796873653722224568e-38F32
+#define __UINT8_TYPE__ unsigned char
+#define __FLT_DIG__ 6
+#define __DEC_EVAL_METHOD__ 2
+#define __FLT_MANT_DIG__ 24
+#define __LDBL_DECIMAL_DIG__ 21
+#define __VERSION__ "13.3.0"
+#define __UINT64_C(c) c ## UL
+#define __cpp_unicode_characters 201411L
+#define _STDC_PREDEF_H 1
+#define __INT_LEAST32_MAX__ 0x7fffffff
+#define __GCC_ATOMIC_INT_LOCK_FREE 2
+#define __FLT128_MAX_EXP__ 16384
+#define __FLT32_MANT_DIG__ 24
+#define __FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__
+#define __FLT32X_MIN_EXP__ (-1021)
+#define __STDC_IEC_60559_COMPLEX__ 201404L
+#define __cpp_aggregate_bases 201603L
+#define __BFLT16_MIN__ 1.17549435082228750796873653722224568e-38BF16
+#define __FLT128_HAS_DENORM__ 1
+#define __FLT32_DECIMAL_DIG__ 9
+#define __FLT128_DIG__ 33
+#define __INT32_C(c) c
+#define __DEC64_EPSILON__ 1E-15DD
+#define __ORDER_PDP_ENDIAN__ 3412
+#define __DEC128_MIN_EXP__ (-6142)
+#define __DEC128_MAX__ 9.999999999999999999999999999999999E6144DL
+#define __INT_FAST32_TYPE__ long int
+#define __UINT_LEAST16_TYPE__ short unsigned int
+#define __DEC128_MAX_EXP__ 6145
+#define unix 1
+#define __DBL_HAS_DENORM__ 1
+#define __cpp_rtti 199711L
+#define __UINT64_MAX__ 0xffffffffffffffffUL
+#define __FLT_IS_IEC_60559__ 1
+#define __GNUC_WIDE_EXECUTION_CHARSET_NAME "UTF-32LE"
+#define __FLT64X_DIG__ 18
+#define __INT8_TYPE__ signed char
+#define __cpp_digit_separators 201309L
+#define __ELF__ 1
+#define __GCC_ASM_FLAG_OUTPUTS__ 1
+#define __UINT32_TYPE__ unsigned int
+#define __BFLT16_HAS_QUIET_NAN__ 1
+#define __FLT_RADIX__ 2
+#define __INT_LEAST16_TYPE__ short int
+#define __LDBL_EPSILON__ 1.08420217248550443400745280086994171e-19L
+#define __UINTMAX_C(c) c ## UL
+#define __FLT16_DIG__ 3
+#define __k8 1
+#define __FLT32X_MIN__ 2.22507385850720138309023271733240406e-308F32x
+#define __SIG_ATOMIC_MAX__ 0x7fffffff
+#define __cpp_constexpr 201603L
+#define __GCC_ATOMIC_WCHAR_T_LOCK_FREE 2
+#define __USER_LABEL_PREFIX__
+#define __STDC_IEC_60559_BFP__ 201404L
+#define __SIZEOF_PTRDIFF_T__ 8
+#define __FLT64X_HAS_INFINITY__ 1
+#define __SIZEOF_LONG__ 8
+#define __LDBL_DIG__ 18
+#define __FLT64_IS_IEC_60559__ 1
+#define __x86_64__ 1
+#define __FLT16_IS_IEC_60559__ 1
+#define __FLT16_MAX_EXP__ 16
+#define __DEC32_SUBNORMAL_MIN__ 0.000001E-95DF
+#define __INT_FAST16_MAX__ 0x7fffffffffffffffL
+#define __GCC_CONSTRUCTIVE_SIZE 64
+#define __FLT64_DIG__ 15
+#define __UINT_FAST32_MAX__ 0xffffffffffffffffUL
+#define __UINT_LEAST64_TYPE__ long unsigned int
+#define __FLT16_EPSILON__ 9.76562500000000000000000000000000000e-4F16
+#define __FLT_HAS_QUIET_NAN__ 1
+#define __FLT_MAX_10_EXP__ 38
+#define __LONG_MAX__ 0x7fffffffffffffffL
+#define __FLT64X_HAS_DENORM__ 1
+#define __DEC128_SUBNORMAL_MIN__ 0.000000000000000000000000000000001E-6143DL
+#define __FLT_HAS_INFINITY__ 1
+#define __GNUC_EXECUTION_CHARSET_NAME "UTF-8"
+#define __cpp_unicode_literals 200710L
+#define __UINT_FAST16_TYPE__ long unsigned int
+#define __DEC64_MAX__ 9.999999999999999E384DD
+#define __INT_FAST32_WIDTH__ 64
+#define __CHAR16_TYPE__ short unsigned int
+#define __PRAGMA_REDEFINE_EXTNAME 1
+#define __SIZE_WIDTH__ 64
+#define __SEG_FS 1
+#define __INT_LEAST16_MAX__ 0x7fff
+#define __FLT16_NORM_MAX__ 6.55040000000000000000000000000000000e+4F16
+#define __DEC64_MANT_DIG__ 16
+#define __FLT32_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F32
+#define __SIG_ATOMIC_WIDTH__ 32
+#define __INT_LEAST64_TYPE__ long int
+#define __INT16_TYPE__ short int
+#define __INT_LEAST8_TYPE__ signed char
+#define __FLT16_MAX__ 6.55040000000000000000000000000000000e+4F16
+#define __FLT128_MIN__ 3.36210314311209350626267781732175260e-4932F128
+#define __cpp_structured_bindings 201606L
+#define __SIZEOF_INT__ 4
+#define __DEC32_MAX_EXP__ 97
+#define __INT_FAST8_MAX__ 0x7f
+#define __FLT128_MAX__ 1.18973149535723176508575932662800702e+4932F128
+#define __INTPTR_MAX__ 0x7fffffffffffffffL
+#define __cpp_sized_deallocation 201309L
+#define __cpp_guaranteed_copy_elision 201606L
+#define linux 1
+#define __FLT64_HAS_QUIET_NAN__ 1
+#define __FLT32_MIN_10_EXP__ (-37)
+#define __EXCEPTIONS 1
+#define __UINT16_C(c) c
+#define __PTRDIFF_WIDTH__ 64
+#define __LDBL_MANT_DIG__ 64
+#define __cpp_range_based_for 201603L
+#define __INT_FAST16_WIDTH__ 64
+#define __FLT64_HAS_INFINITY__ 1
+#define __FLT64X_MAX__ 1.18973149535723176502126385303097021e+4932F64x
+#define __FLT16_HAS_INFINITY__ 1
+#define __STDCPP_DEFAULT_NEW_ALIGNMENT__ 16
+#define __SIG_ATOMIC_MIN__ (-__SIG_ATOMIC_MAX__ - 1)
+#define __code_model_small__ 1
+#define __GCC_ATOMIC_LONG_LOCK_FREE 2
+#define __cpp_nontype_template_args 201411L
+#define __DEC32_MANT_DIG__ 7
+#define __k8__ 1
+#define __INTPTR_TYPE__ long int
+#define __UINT16_TYPE__ short unsigned int
+#define __WCHAR_TYPE__ int
+#define __pic__ 2
+#define __UINTPTR_MAX__ 0xffffffffffffffffUL
+#define __INT_FAST64_WIDTH__ 64
+#define __cpp_decltype 200707L
+#define __INT_FAST64_MAX__ 0x7fffffffffffffffL
+#define __GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1
+#define __FLT_NORM_MAX__ 3.40282346638528859811704183484516925e+38F
+#define __FLT32_HAS_INFINITY__ 1
+#define __FLT64X_MAX_EXP__ 16384
+#define __UINT_FAST64_TYPE__ long unsigned int
+#define __cpp_inline_variables 201606L
+#define __BFLT16_MIN_EXP__ (-125)
+#define __INT_MAX__ 0x7fffffff
+#define __linux__ 1
+#define __INT64_TYPE__ long int
+#define __FLT_MAX_EXP__ 128
+#define __ORDER_BIG_ENDIAN__ 4321
+#define __DBL_MANT_DIG__ 53
+#define __cpp_inheriting_constructors 201511L
+#define __SIZEOF_FLOAT128__ 16
+#define __BFLT16_MANT_DIG__ 8
+#define __DEC64_MIN__ 1E-383DD
+#define __WINT_TYPE__ unsigned int
+#define __UINT_LEAST32_TYPE__ unsigned int
+#define __SIZEOF_SHORT__ 2
+#define __FLT32_NORM_MAX__ 3.40282346638528859811704183484516925e+38F32
+#define __SSE__ 1
+#define __LDBL_MIN_EXP__ (-16381)
+#define __FLT64_MAX__ 1.79769313486231570814527423731704357e+308F64
+#define __amd64__ 1
+#define __WINT_WIDTH__ 32
+#define __INT_LEAST64_WIDTH__ 64
+#define __FLT32X_MAX_10_EXP__ 308
+#define __cpp_namespace_attributes 201411L
+#define __SIZEOF_INT128__ 16
+#define __FLT16_MIN__ 6.10351562500000000000000000000000000e-5F16
+#define __FLT64X_IS_IEC_60559__ 1
+#define __LDBL_MAX_10_EXP__ 4932
+#define __ATOMIC_RELAXED 0
+#define __DBL_EPSILON__ double(2.22044604925031308084726333618164062e-16L)
+#define __INT_LEAST32_TYPE__ int
+#define _LP64 1
+#define __UINT8_C(c) c
+#define __FLT64_MAX_EXP__ 1024
+#define __SIZEOF_WCHAR_T__ 4
+#define __GNUC_PATCHLEVEL__ 0
+#define __FLT128_NORM_MAX__ 1.18973149535723176508575932662800702e+4932F128
+#define __FLT64_NORM_MAX__ 1.79769313486231570814527423731704357e+308F64
+#define __FLT128_HAS_QUIET_NAN__ 1
+#define __INTMAX_MAX__ 0x7fffffffffffffffL
+#define __INT_FAST8_TYPE__ signed char
+#define __FLT64X_MIN__ 3.36210314311209350626267781732175260e-4932F64x
+#define __STDCPP_THREADS__ 1
+#define __BFLT16_HAS_DENORM__ 1
+#define __GNUC_STDC_INLINE__ 1
+#define __FLT64_HAS_DENORM__ 1
+#define __FLT32_EPSILON__ 1.19209289550781250000000000000000000e-7F32
+#define __FLT16_HAS_DENORM__ 1
+#define __DBL_DECIMAL_DIG__ 17
+#define __STDC_UTF_32__ 1
+#define __INT_FAST8_WIDTH__ 8
+#define __FXSR__ 1
+#define __FLT32X_MAX__ 1.79769313486231570814527423731704357e+308F32x
+#define __DBL_NORM_MAX__ double(1.79769313486231570814527423731704357e+308L)
+#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__
+#define __GCC_DESTRUCTIVE_SIZE 64
+#define __INTMAX_WIDTH__ 64
+#define __cpp_runtime_arrays 198712L
+#define __FLT32_DIG__ 6
+#define __UINT64_TYPE__ long unsigned int
+#define __UINT32_C(c) c ## U
+#define __cpp_alias_templates 200704L
+#define __FLT_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F
+#define __FLT128_IS_IEC_60559__ 1
+#define __INT8_MAX__ 0x7f
+#define __LONG_WIDTH__ 64
+#define __DBL_MIN__ double(2.22507385850720138309023271733240406e-308L)
+#define __PIC__ 2
+#define __INT32_MAX__ 0x7fffffff
+#define __UINT_FAST32_TYPE__ long unsigned int
+#define __FLT16_MANT_DIG__ 11
+#define __FLT32X_NORM_MAX__ 1.79769313486231570814527423731704357e+308F32x
+#define __CHAR32_TYPE__ unsigned int
+#define __FLT_MAX__ 3.40282346638528859811704183484516925e+38F
+#define __SSE2__ 1
+#define __cpp_deduction_guides 201703L
+#define __BFLT16_NORM_MAX__ 3.38953138925153547590470800371487867e+38BF16
+#define __INT32_TYPE__ int
+#define __SIZEOF_DOUBLE__ 8
+#define __cpp_exceptions 199711L
+#define __FLT_MIN_10_EXP__ (-37)
+#define __FLT64_MIN__ 2.22507385850720138309023271733240406e-308F64
+#define __INT_LEAST32_WIDTH__ 32
+#define __INTMAX_TYPE__ long int
+#define __GLIBCXX_BITSIZE_INT_N_0 128
+#define __FLT32X_HAS_QUIET_NAN__ 1
+#define __ATOMIC_CONSUME 1
+#define __GNUC_MINOR__ 3
+#define __GLIBCXX_TYPE_INT_N_0 __int128
+#define __UINTMAX_MAX__ 0xffffffffffffffffUL
+#define __PIE__ 2
+#define __FLT32X_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F32x
+#define __cpp_template_template_args 201611L
+#define __DBL_MAX_10_EXP__ 308
+#define __LDBL_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951L
+#define __INT16_C(c) c
+#define __STDC__ 1
+#define __PTRDIFF_TYPE__ long int
+#define __FLT32X_MIN_10_EXP__ (-307)
+#define __UINTPTR_TYPE__ long unsigned int
+#define __DEC64_SUBNORMAL_MIN__ 0.000000000000001E-383DD
+#define __DEC128_MANT_DIG__ 34
+#define __LDBL_MIN_10_EXP__ (-4931)
+#define __cpp_generic_lambdas 201304L
+#define __SSE_MATH__ 1
+#define __SIZEOF_LONG_LONG__ 8
+#define __cpp_user_defined_literals 200809L
+#define __FLT128_DECIMAL_DIG__ 36
+#define __GCC_ATOMIC_LLONG_LOCK_FREE 2
+#define __FLT32_HAS_QUIET_NAN__ 1
+#define __FLT_DECIMAL_DIG__ 9
+#define __UINT_FAST16_MAX__ 0xffffffffffffffffUL
+#define __LDBL_NORM_MAX__ 1.18973149535723176502126385303097021e+4932L
+#define __GCC_ATOMIC_SHORT_LOCK_FREE 2
+#define __SIZE_MAX__ 0xffffffffffffffffUL
+#define __UINT_FAST8_TYPE__ unsigned char
+#define _GNU_SOURCE 1
+#define __cpp_init_captures 201304L
+#define __ATOMIC_ACQ_REL 4
+#define __ATOMIC_RELEASE 3
diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/moc_yamitracker.cpp b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/moc_yamitracker.cpp
new file mode 100644
index 0000000..868459e
--- /dev/null
+++ b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/moc_yamitracker.cpp
@@ -0,0 +1,360 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'yamitracker.h'
+**
+** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.13)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include
+#include "../yamitracker.h"
+#include
+#include
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'yamitracker.h' doesn't include ."
+#elif Q_MOC_OUTPUT_REVISION != 67
+#error "This file was generated using the moc from 5.15.13. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+QT_WARNING_PUSH
+QT_WARNING_DISABLE_DEPRECATED
+struct qt_meta_stringdata_SerialReader_t {
+ QByteArrayData data[13];
+ char stringdata0[145];
+};
+#define QT_MOC_LITERAL(idx, ofs, len) \
+ Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
+ qptrdiff(offsetof(qt_meta_stringdata_SerialReader_t, stringdata0) + ofs \
+ - idx * sizeof(QByteArrayData)) \
+ )
+static const qt_meta_stringdata_SerialReader_t qt_meta_stringdata_SerialReader = {
+ {
+QT_MOC_LITERAL(0, 0, 12), // "SerialReader"
+QT_MOC_LITERAL(1, 13, 14), // "noteOnReceived"
+QT_MOC_LITERAL(2, 28, 0), // ""
+QT_MOC_LITERAL(3, 29, 4), // "note"
+QT_MOC_LITERAL(4, 34, 8), // "velocity"
+QT_MOC_LITERAL(5, 43, 15), // "noteOffReceived"
+QT_MOC_LITERAL(6, 59, 5), // "error"
+QT_MOC_LITERAL(7, 65, 7), // "message"
+QT_MOC_LITERAL(8, 73, 23), // "connectionStatusChanged"
+QT_MOC_LITERAL(9, 97, 9), // "connected"
+QT_MOC_LITERAL(10, 107, 18), // "deviceInfoReceived"
+QT_MOC_LITERAL(11, 126, 12), // "manufacturer"
+QT_MOC_LITERAL(12, 139, 5) // "model"
+
+ },
+ "SerialReader\0noteOnReceived\0\0note\0"
+ "velocity\0noteOffReceived\0error\0message\0"
+ "connectionStatusChanged\0connected\0"
+ "deviceInfoReceived\0manufacturer\0model"
+};
+#undef QT_MOC_LITERAL
+
+static const uint qt_meta_data_SerialReader[] = {
+
+ // content:
+ 8, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 5, 14, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+ 0, // flags
+ 5, // signalCount
+
+ // signals: name, argc, parameters, tag, flags
+ 1, 2, 39, 2, 0x06 /* Public */,
+ 5, 1, 44, 2, 0x06 /* Public */,
+ 6, 1, 47, 2, 0x06 /* Public */,
+ 8, 1, 50, 2, 0x06 /* Public */,
+ 10, 2, 53, 2, 0x06 /* Public */,
+
+ // signals: parameters
+ QMetaType::Void, QMetaType::QString, QMetaType::Int, 3, 4,
+ QMetaType::Void, QMetaType::QString, 3,
+ QMetaType::Void, QMetaType::QString, 7,
+ QMetaType::Void, QMetaType::Bool, 9,
+ QMetaType::Void, QMetaType::QString, QMetaType::QString, 11, 12,
+
+ 0 // eod
+};
+
+void SerialReader::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
+{
+ if (_c == QMetaObject::InvokeMetaMethod) {
+ auto *_t = static_cast(_o);
+ (void)_t;
+ switch (_id) {
+ case 0: _t->noteOnReceived((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break;
+ case 1: _t->noteOffReceived((*reinterpret_cast< const QString(*)>(_a[1]))); break;
+ case 2: _t->error((*reinterpret_cast< const QString(*)>(_a[1]))); break;
+ case 3: _t->connectionStatusChanged((*reinterpret_cast< bool(*)>(_a[1]))); break;
+ case 4: _t->deviceInfoReceived((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< const QString(*)>(_a[2]))); break;
+ default: ;
+ }
+ } else if (_c == QMetaObject::IndexOfMethod) {
+ int *result = reinterpret_cast(_a[0]);
+ {
+ using _t = void (SerialReader::*)(const QString & , int );
+ if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::noteOnReceived)) {
+ *result = 0;
+ return;
+ }
+ }
+ {
+ using _t = void (SerialReader::*)(const QString & );
+ if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::noteOffReceived)) {
+ *result = 1;
+ return;
+ }
+ }
+ {
+ using _t = void (SerialReader::*)(const QString & );
+ if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::error)) {
+ *result = 2;
+ return;
+ }
+ }
+ {
+ using _t = void (SerialReader::*)(bool );
+ if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::connectionStatusChanged)) {
+ *result = 3;
+ return;
+ }
+ }
+ {
+ using _t = void (SerialReader::*)(const QString & , const QString & );
+ if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&SerialReader::deviceInfoReceived)) {
+ *result = 4;
+ return;
+ }
+ }
+ }
+}
+
+QT_INIT_METAOBJECT const QMetaObject SerialReader::staticMetaObject = { {
+ QMetaObject::SuperData::link(),
+ qt_meta_stringdata_SerialReader.data,
+ qt_meta_data_SerialReader,
+ qt_static_metacall,
+ nullptr,
+ nullptr
+} };
+
+
+const QMetaObject *SerialReader::metaObject() const
+{
+ return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
+}
+
+void *SerialReader::qt_metacast(const char *_clname)
+{
+ if (!_clname) return nullptr;
+ if (!strcmp(_clname, qt_meta_stringdata_SerialReader.stringdata0))
+ return static_cast(this);
+ return QThread::qt_metacast(_clname);
+}
+
+int SerialReader::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+ _id = QThread::qt_metacall(_c, _id, _a);
+ if (_id < 0)
+ return _id;
+ if (_c == QMetaObject::InvokeMetaMethod) {
+ if (_id < 5)
+ qt_static_metacall(this, _c, _id, _a);
+ _id -= 5;
+ } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
+ if (_id < 5)
+ *reinterpret_cast(_a[0]) = -1;
+ _id -= 5;
+ }
+ return _id;
+}
+
+// SIGNAL 0
+void SerialReader::noteOnReceived(const QString & _t1, int _t2)
+{
+ void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))), const_cast(reinterpret_cast(std::addressof(_t2))) };
+ QMetaObject::activate(this, &staticMetaObject, 0, _a);
+}
+
+// SIGNAL 1
+void SerialReader::noteOffReceived(const QString & _t1)
+{
+ void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) };
+ QMetaObject::activate(this, &staticMetaObject, 1, _a);
+}
+
+// SIGNAL 2
+void SerialReader::error(const QString & _t1)
+{
+ void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) };
+ QMetaObject::activate(this, &staticMetaObject, 2, _a);
+}
+
+// SIGNAL 3
+void SerialReader::connectionStatusChanged(bool _t1)
+{
+ void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))) };
+ QMetaObject::activate(this, &staticMetaObject, 3, _a);
+}
+
+// SIGNAL 4
+void SerialReader::deviceInfoReceived(const QString & _t1, const QString & _t2)
+{
+ void *_a[] = { nullptr, const_cast(reinterpret_cast(std::addressof(_t1))), const_cast(reinterpret_cast(std::addressof(_t2))) };
+ QMetaObject::activate(this, &staticMetaObject, 4, _a);
+}
+struct qt_meta_stringdata_Yamitracker_t {
+ QByteArrayData data[19];
+ char stringdata0[264];
+};
+#define QT_MOC_LITERAL(idx, ofs, len) \
+ Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
+ qptrdiff(offsetof(qt_meta_stringdata_Yamitracker_t, stringdata0) + ofs \
+ - idx * sizeof(QByteArrayData)) \
+ )
+static const qt_meta_stringdata_Yamitracker_t qt_meta_stringdata_Yamitracker = {
+ {
+QT_MOC_LITERAL(0, 0, 11), // "Yamitracker"
+QT_MOC_LITERAL(1, 12, 16), // "onNoteOnReceived"
+QT_MOC_LITERAL(2, 29, 0), // ""
+QT_MOC_LITERAL(3, 30, 4), // "note"
+QT_MOC_LITERAL(4, 35, 8), // "velocity"
+QT_MOC_LITERAL(5, 44, 17), // "onNoteOffReceived"
+QT_MOC_LITERAL(6, 62, 7), // "onError"
+QT_MOC_LITERAL(7, 70, 7), // "message"
+QT_MOC_LITERAL(8, 78, 13), // "onPlayClicked"
+QT_MOC_LITERAL(9, 92, 13), // "onStopClicked"
+QT_MOC_LITERAL(10, 106, 21), // "onConvertToBrrClicked"
+QT_MOC_LITERAL(11, 128, 18), // "clearStatusMessage"
+QT_MOC_LITERAL(12, 147, 25), // "onConnectionStatusChanged"
+QT_MOC_LITERAL(13, 173, 9), // "connected"
+QT_MOC_LITERAL(14, 183, 16), // "attemptReconnect"
+QT_MOC_LITERAL(15, 200, 20), // "onDeviceInfoReceived"
+QT_MOC_LITERAL(16, 221, 12), // "manufacturer"
+QT_MOC_LITERAL(17, 234, 5), // "model"
+QT_MOC_LITERAL(18, 240, 23) // "onRefreshDevicesClicked"
+
+ },
+ "Yamitracker\0onNoteOnReceived\0\0note\0"
+ "velocity\0onNoteOffReceived\0onError\0"
+ "message\0onPlayClicked\0onStopClicked\0"
+ "onConvertToBrrClicked\0clearStatusMessage\0"
+ "onConnectionStatusChanged\0connected\0"
+ "attemptReconnect\0onDeviceInfoReceived\0"
+ "manufacturer\0model\0onRefreshDevicesClicked"
+};
+#undef QT_MOC_LITERAL
+
+static const uint qt_meta_data_Yamitracker[] = {
+
+ // content:
+ 8, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 11, 14, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+ 0, // flags
+ 0, // signalCount
+
+ // slots: name, argc, parameters, tag, flags
+ 1, 2, 69, 2, 0x08 /* Private */,
+ 5, 1, 74, 2, 0x08 /* Private */,
+ 6, 1, 77, 2, 0x08 /* Private */,
+ 8, 0, 80, 2, 0x08 /* Private */,
+ 9, 0, 81, 2, 0x08 /* Private */,
+ 10, 0, 82, 2, 0x08 /* Private */,
+ 11, 0, 83, 2, 0x08 /* Private */,
+ 12, 1, 84, 2, 0x08 /* Private */,
+ 14, 0, 87, 2, 0x08 /* Private */,
+ 15, 2, 88, 2, 0x08 /* Private */,
+ 18, 0, 93, 2, 0x08 /* Private */,
+
+ // slots: parameters
+ QMetaType::Void, QMetaType::QString, QMetaType::Int, 3, 4,
+ QMetaType::Void, QMetaType::QString, 3,
+ QMetaType::Void, QMetaType::QString, 7,
+ QMetaType::Void,
+ QMetaType::Void,
+ QMetaType::Void,
+ QMetaType::Void,
+ QMetaType::Void, QMetaType::Bool, 13,
+ QMetaType::Void,
+ QMetaType::Void, QMetaType::QString, QMetaType::QString, 16, 17,
+ QMetaType::Void,
+
+ 0 // eod
+};
+
+void Yamitracker::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
+{
+ if (_c == QMetaObject::InvokeMetaMethod) {
+ auto *_t = static_cast(_o);
+ (void)_t;
+ switch (_id) {
+ case 0: _t->onNoteOnReceived((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break;
+ case 1: _t->onNoteOffReceived((*reinterpret_cast< const QString(*)>(_a[1]))); break;
+ case 2: _t->onError((*reinterpret_cast< const QString(*)>(_a[1]))); break;
+ case 3: _t->onPlayClicked(); break;
+ case 4: _t->onStopClicked(); break;
+ case 5: _t->onConvertToBrrClicked(); break;
+ case 6: _t->clearStatusMessage(); break;
+ case 7: _t->onConnectionStatusChanged((*reinterpret_cast< bool(*)>(_a[1]))); break;
+ case 8: _t->attemptReconnect(); break;
+ case 9: _t->onDeviceInfoReceived((*reinterpret_cast< const QString(*)>(_a[1])),(*reinterpret_cast< const QString(*)>(_a[2]))); break;
+ case 10: _t->onRefreshDevicesClicked(); break;
+ default: ;
+ }
+ }
+}
+
+QT_INIT_METAOBJECT const QMetaObject Yamitracker::staticMetaObject = { {
+ QMetaObject::SuperData::link(),
+ qt_meta_stringdata_Yamitracker.data,
+ qt_meta_data_Yamitracker,
+ qt_static_metacall,
+ nullptr,
+ nullptr
+} };
+
+
+const QMetaObject *Yamitracker::metaObject() const
+{
+ return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
+}
+
+void *Yamitracker::qt_metacast(const char *_clname)
+{
+ if (!_clname) return nullptr;
+ if (!strcmp(_clname, qt_meta_stringdata_Yamitracker.stringdata0))
+ return static_cast(this);
+ return QMainWindow::qt_metacast(_clname);
+}
+
+int Yamitracker::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+ _id = QMainWindow::qt_metacall(_c, _id, _a);
+ if (_id < 0)
+ return _id;
+ if (_c == QMetaObject::InvokeMetaMethod) {
+ if (_id < 11)
+ qt_static_metacall(this, _c, _id, _a);
+ _id -= 11;
+ } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
+ if (_id < 11)
+ *reinterpret_cast(_a[0]) = -1;
+ _id -= 11;
+ }
+ return _id;
+}
+QT_WARNING_POP
+QT_END_MOC_NAMESPACE
diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/moc_yamitracker.o b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/moc_yamitracker.o
new file mode 100644
index 0000000..94c6f3d
Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/moc_yamitracker.o differ
diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/recording_20251206_130314.wav b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/recording_20251206_130314.wav
new file mode 100644
index 0000000..3e8acba
Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/recording_20251206_130314.wav differ
diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/recording_20251206_130330.wav b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/recording_20251206_130330.wav
new file mode 100644
index 0000000..9d43abb
Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/recording_20251206_130330.wav differ
diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/recording_20251206_130335.wav b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/recording_20251206_130335.wav
new file mode 100644
index 0000000..f7ef2a0
Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/recording_20251206_130335.wav differ
diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/recording_20251206_130350.wav b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/recording_20251206_130350.wav
new file mode 100644
index 0000000..2ec0a92
Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/recording_20251206_130350.wav differ
diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/recording_20251206_133027.wav b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/recording_20251206_133027.wav
new file mode 100644
index 0000000..7f87b07
Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/recording_20251206_133027.wav differ
diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/recording_20251206_133032.wav b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/recording_20251206_133032.wav
new file mode 100644
index 0000000..fde0bfe
Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/recording_20251206_133032.wav differ
diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/recording_20251206_133042.wav b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/recording_20251206_133042.wav
new file mode 100644
index 0000000..1097ef8
Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/recording_20251206_133042.wav differ
diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/recording_20251206_133048.brr b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/recording_20251206_133048.brr
new file mode 100644
index 0000000..a475539
Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/recording_20251206_133048.brr differ
diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/recording_20251206_133048.wav b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/recording_20251206_133048.wav
new file mode 100644
index 0000000..c296e1b
Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/recording_20251206_133048.wav differ
diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/recording_20251206_133558.brr b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/recording_20251206_133558.brr
new file mode 100644
index 0000000..940aec5
Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/recording_20251206_133558.brr differ
diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/recording_20251206_133558.wav b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/recording_20251206_133558.wav
new file mode 100644
index 0000000..512d392
Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/recording_20251206_133558.wav differ
diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/simplewavwriter.o b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/simplewavwriter.o
new file mode 100644
index 0000000..46d7f52
Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/simplewavwriter.o differ
diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/ui_yamitracker.h b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/ui_yamitracker.h
new file mode 100644
index 0000000..b1f1096
--- /dev/null
+++ b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/ui_yamitracker.h
@@ -0,0 +1,625 @@
+/********************************************************************************
+** Form generated from reading UI file 'yamitracker.ui'
+**
+** Created by: Qt User Interface Compiler version 5.15.13
+**
+** WARNING! All changes made in this file will be lost when recompiling UI file!
+********************************************************************************/
+
+#ifndef UI_YAMITRACKER_H
+#define UI_YAMITRACKER_H
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+QT_BEGIN_NAMESPACE
+
+class Ui_Yamitracker
+{
+public:
+ QWidget *centralwidget;
+ QVBoxLayout *verticalLayout;
+ QLabel *statusLabel;
+ QLabel *deviceLabel;
+ QLabel *keysInfoLabel;
+ QProgressBar *volumeBar;
+ QHBoxLayout *controlLayout;
+ QPushButton *playButton;
+ QPushButton *stopButton;
+ QPushButton *convertButton;
+ QPushButton *refreshDevicesButton;
+ QWidget *pianoWidget;
+ QVBoxLayout *verticalLayout_2;
+ QHBoxLayout *whiteKeysLayout;
+ QPushButton *key_C1;
+ QPushButton *key_D1;
+ QPushButton *key_E1;
+ QPushButton *key_F1;
+ QPushButton *key_G1;
+ QPushButton *key_A1;
+ QPushButton *key_B1;
+ QPushButton *key_C2;
+ QPushButton *key_D2;
+ QPushButton *key_E2;
+ QPushButton *key_F2;
+ QPushButton *key_G2;
+ QPushButton *key_A2;
+ QPushButton *key_B2;
+ QPushButton *key_C3;
+ QPushButton *key_D3;
+ QPushButton *key_E3;
+ QPushButton *key_F3;
+ QPushButton *key_G3;
+ QPushButton *key_A3;
+ QPushButton *key_B3;
+ QPushButton *key_C4;
+ QPushButton *key_D4;
+ QPushButton *key_E4;
+ QPushButton *key_F4;
+ QPushButton *key_G4;
+ QPushButton *key_A4;
+ QPushButton *key_B4;
+ QPushButton *key_C5;
+ QPushButton *key_D5;
+ QPushButton *key_E5;
+ QPushButton *key_F5;
+ QPushButton *key_G5;
+ QPushButton *key_A5;
+ QPushButton *key_B5;
+ QPushButton *key_C6;
+ QHBoxLayout *blackKeysLayout;
+ QSpacerItem *horizontalSpacer_1;
+ QPushButton *key_Cs1;
+ QPushButton *key_Ds1;
+ QSpacerItem *horizontalSpacer_2;
+ QPushButton *key_Fs1;
+ QPushButton *key_Gs1;
+ QPushButton *key_As1;
+ QSpacerItem *horizontalSpacer_3;
+ QPushButton *key_Cs2;
+ QPushButton *key_Ds2;
+ QSpacerItem *horizontalSpacer_4;
+ QPushButton *key_Fs2;
+ QPushButton *key_Gs2;
+ QPushButton *key_As2;
+ QSpacerItem *horizontalSpacer_5;
+ QPushButton *key_Cs3;
+ QPushButton *key_Ds3;
+ QSpacerItem *horizontalSpacer_6;
+ QPushButton *key_Fs3;
+ QPushButton *key_Gs3;
+ QPushButton *key_As3;
+ QSpacerItem *horizontalSpacer_7;
+ QPushButton *key_Cs4;
+ QPushButton *key_Ds4;
+ QSpacerItem *horizontalSpacer_8;
+ QPushButton *key_Fs4;
+ QPushButton *key_Gs4;
+ QPushButton *key_As4;
+ QSpacerItem *horizontalSpacer_9;
+ QPushButton *key_Cs5;
+ QPushButton *key_Ds5;
+ QSpacerItem *horizontalSpacer_10;
+ QPushButton *key_Fs5;
+ QPushButton *key_Gs5;
+ QPushButton *key_As5;
+ QSpacerItem *horizontalSpacer_11;
+
+ void setupUi(QMainWindow *Yamitracker)
+ {
+ if (Yamitracker->objectName().isEmpty())
+ Yamitracker->setObjectName(QString::fromUtf8("Yamitracker"));
+ Yamitracker->resize(1200, 600);
+ centralwidget = new QWidget(Yamitracker);
+ centralwidget->setObjectName(QString::fromUtf8("centralwidget"));
+ verticalLayout = new QVBoxLayout(centralwidget);
+ verticalLayout->setObjectName(QString::fromUtf8("verticalLayout"));
+ statusLabel = new QLabel(centralwidget);
+ statusLabel->setObjectName(QString::fromUtf8("statusLabel"));
+
+ verticalLayout->addWidget(statusLabel);
+
+ deviceLabel = new QLabel(centralwidget);
+ deviceLabel->setObjectName(QString::fromUtf8("deviceLabel"));
+
+ verticalLayout->addWidget(deviceLabel);
+
+ keysInfoLabel = new QLabel(centralwidget);
+ keysInfoLabel->setObjectName(QString::fromUtf8("keysInfoLabel"));
+
+ verticalLayout->addWidget(keysInfoLabel);
+
+ volumeBar = new QProgressBar(centralwidget);
+ volumeBar->setObjectName(QString::fromUtf8("volumeBar"));
+ volumeBar->setValue(0);
+
+ verticalLayout->addWidget(volumeBar);
+
+ controlLayout = new QHBoxLayout();
+ controlLayout->setObjectName(QString::fromUtf8("controlLayout"));
+ playButton = new QPushButton(centralwidget);
+ playButton->setObjectName(QString::fromUtf8("playButton"));
+
+ controlLayout->addWidget(playButton);
+
+ stopButton = new QPushButton(centralwidget);
+ stopButton->setObjectName(QString::fromUtf8("stopButton"));
+
+ controlLayout->addWidget(stopButton);
+
+ convertButton = new QPushButton(centralwidget);
+ convertButton->setObjectName(QString::fromUtf8("convertButton"));
+
+ controlLayout->addWidget(convertButton);
+
+ refreshDevicesButton = new QPushButton(centralwidget);
+ refreshDevicesButton->setObjectName(QString::fromUtf8("refreshDevicesButton"));
+
+ controlLayout->addWidget(refreshDevicesButton);
+
+
+ verticalLayout->addLayout(controlLayout);
+
+ pianoWidget = new QWidget(centralwidget);
+ pianoWidget->setObjectName(QString::fromUtf8("pianoWidget"));
+ verticalLayout_2 = new QVBoxLayout(pianoWidget);
+ verticalLayout_2->setObjectName(QString::fromUtf8("verticalLayout_2"));
+ whiteKeysLayout = new QHBoxLayout();
+ whiteKeysLayout->setObjectName(QString::fromUtf8("whiteKeysLayout"));
+ key_C1 = new QPushButton(pianoWidget);
+ key_C1->setObjectName(QString::fromUtf8("key_C1"));
+
+ whiteKeysLayout->addWidget(key_C1);
+
+ key_D1 = new QPushButton(pianoWidget);
+ key_D1->setObjectName(QString::fromUtf8("key_D1"));
+
+ whiteKeysLayout->addWidget(key_D1);
+
+ key_E1 = new QPushButton(pianoWidget);
+ key_E1->setObjectName(QString::fromUtf8("key_E1"));
+
+ whiteKeysLayout->addWidget(key_E1);
+
+ key_F1 = new QPushButton(pianoWidget);
+ key_F1->setObjectName(QString::fromUtf8("key_F1"));
+
+ whiteKeysLayout->addWidget(key_F1);
+
+ key_G1 = new QPushButton(pianoWidget);
+ key_G1->setObjectName(QString::fromUtf8("key_G1"));
+
+ whiteKeysLayout->addWidget(key_G1);
+
+ key_A1 = new QPushButton(pianoWidget);
+ key_A1->setObjectName(QString::fromUtf8("key_A1"));
+
+ whiteKeysLayout->addWidget(key_A1);
+
+ key_B1 = new QPushButton(pianoWidget);
+ key_B1->setObjectName(QString::fromUtf8("key_B1"));
+
+ whiteKeysLayout->addWidget(key_B1);
+
+ key_C2 = new QPushButton(pianoWidget);
+ key_C2->setObjectName(QString::fromUtf8("key_C2"));
+
+ whiteKeysLayout->addWidget(key_C2);
+
+ key_D2 = new QPushButton(pianoWidget);
+ key_D2->setObjectName(QString::fromUtf8("key_D2"));
+
+ whiteKeysLayout->addWidget(key_D2);
+
+ key_E2 = new QPushButton(pianoWidget);
+ key_E2->setObjectName(QString::fromUtf8("key_E2"));
+
+ whiteKeysLayout->addWidget(key_E2);
+
+ key_F2 = new QPushButton(pianoWidget);
+ key_F2->setObjectName(QString::fromUtf8("key_F2"));
+
+ whiteKeysLayout->addWidget(key_F2);
+
+ key_G2 = new QPushButton(pianoWidget);
+ key_G2->setObjectName(QString::fromUtf8("key_G2"));
+
+ whiteKeysLayout->addWidget(key_G2);
+
+ key_A2 = new QPushButton(pianoWidget);
+ key_A2->setObjectName(QString::fromUtf8("key_A2"));
+
+ whiteKeysLayout->addWidget(key_A2);
+
+ key_B2 = new QPushButton(pianoWidget);
+ key_B2->setObjectName(QString::fromUtf8("key_B2"));
+
+ whiteKeysLayout->addWidget(key_B2);
+
+ key_C3 = new QPushButton(pianoWidget);
+ key_C3->setObjectName(QString::fromUtf8("key_C3"));
+
+ whiteKeysLayout->addWidget(key_C3);
+
+ key_D3 = new QPushButton(pianoWidget);
+ key_D3->setObjectName(QString::fromUtf8("key_D3"));
+
+ whiteKeysLayout->addWidget(key_D3);
+
+ key_E3 = new QPushButton(pianoWidget);
+ key_E3->setObjectName(QString::fromUtf8("key_E3"));
+
+ whiteKeysLayout->addWidget(key_E3);
+
+ key_F3 = new QPushButton(pianoWidget);
+ key_F3->setObjectName(QString::fromUtf8("key_F3"));
+
+ whiteKeysLayout->addWidget(key_F3);
+
+ key_G3 = new QPushButton(pianoWidget);
+ key_G3->setObjectName(QString::fromUtf8("key_G3"));
+
+ whiteKeysLayout->addWidget(key_G3);
+
+ key_A3 = new QPushButton(pianoWidget);
+ key_A3->setObjectName(QString::fromUtf8("key_A3"));
+
+ whiteKeysLayout->addWidget(key_A3);
+
+ key_B3 = new QPushButton(pianoWidget);
+ key_B3->setObjectName(QString::fromUtf8("key_B3"));
+
+ whiteKeysLayout->addWidget(key_B3);
+
+ key_C4 = new QPushButton(pianoWidget);
+ key_C4->setObjectName(QString::fromUtf8("key_C4"));
+
+ whiteKeysLayout->addWidget(key_C4);
+
+ key_D4 = new QPushButton(pianoWidget);
+ key_D4->setObjectName(QString::fromUtf8("key_D4"));
+
+ whiteKeysLayout->addWidget(key_D4);
+
+ key_E4 = new QPushButton(pianoWidget);
+ key_E4->setObjectName(QString::fromUtf8("key_E4"));
+
+ whiteKeysLayout->addWidget(key_E4);
+
+ key_F4 = new QPushButton(pianoWidget);
+ key_F4->setObjectName(QString::fromUtf8("key_F4"));
+
+ whiteKeysLayout->addWidget(key_F4);
+
+ key_G4 = new QPushButton(pianoWidget);
+ key_G4->setObjectName(QString::fromUtf8("key_G4"));
+
+ whiteKeysLayout->addWidget(key_G4);
+
+ key_A4 = new QPushButton(pianoWidget);
+ key_A4->setObjectName(QString::fromUtf8("key_A4"));
+
+ whiteKeysLayout->addWidget(key_A4);
+
+ key_B4 = new QPushButton(pianoWidget);
+ key_B4->setObjectName(QString::fromUtf8("key_B4"));
+
+ whiteKeysLayout->addWidget(key_B4);
+
+ key_C5 = new QPushButton(pianoWidget);
+ key_C5->setObjectName(QString::fromUtf8("key_C5"));
+
+ whiteKeysLayout->addWidget(key_C5);
+
+ key_D5 = new QPushButton(pianoWidget);
+ key_D5->setObjectName(QString::fromUtf8("key_D5"));
+
+ whiteKeysLayout->addWidget(key_D5);
+
+ key_E5 = new QPushButton(pianoWidget);
+ key_E5->setObjectName(QString::fromUtf8("key_E5"));
+
+ whiteKeysLayout->addWidget(key_E5);
+
+ key_F5 = new QPushButton(pianoWidget);
+ key_F5->setObjectName(QString::fromUtf8("key_F5"));
+
+ whiteKeysLayout->addWidget(key_F5);
+
+ key_G5 = new QPushButton(pianoWidget);
+ key_G5->setObjectName(QString::fromUtf8("key_G5"));
+
+ whiteKeysLayout->addWidget(key_G5);
+
+ key_A5 = new QPushButton(pianoWidget);
+ key_A5->setObjectName(QString::fromUtf8("key_A5"));
+
+ whiteKeysLayout->addWidget(key_A5);
+
+ key_B5 = new QPushButton(pianoWidget);
+ key_B5->setObjectName(QString::fromUtf8("key_B5"));
+
+ whiteKeysLayout->addWidget(key_B5);
+
+ key_C6 = new QPushButton(pianoWidget);
+ key_C6->setObjectName(QString::fromUtf8("key_C6"));
+
+ whiteKeysLayout->addWidget(key_C6);
+
+
+ verticalLayout_2->addLayout(whiteKeysLayout);
+
+ blackKeysLayout = new QHBoxLayout();
+ blackKeysLayout->setObjectName(QString::fromUtf8("blackKeysLayout"));
+ horizontalSpacer_1 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
+
+ blackKeysLayout->addItem(horizontalSpacer_1);
+
+ key_Cs1 = new QPushButton(pianoWidget);
+ key_Cs1->setObjectName(QString::fromUtf8("key_Cs1"));
+
+ blackKeysLayout->addWidget(key_Cs1);
+
+ key_Ds1 = new QPushButton(pianoWidget);
+ key_Ds1->setObjectName(QString::fromUtf8("key_Ds1"));
+
+ blackKeysLayout->addWidget(key_Ds1);
+
+ horizontalSpacer_2 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
+
+ blackKeysLayout->addItem(horizontalSpacer_2);
+
+ key_Fs1 = new QPushButton(pianoWidget);
+ key_Fs1->setObjectName(QString::fromUtf8("key_Fs1"));
+
+ blackKeysLayout->addWidget(key_Fs1);
+
+ key_Gs1 = new QPushButton(pianoWidget);
+ key_Gs1->setObjectName(QString::fromUtf8("key_Gs1"));
+
+ blackKeysLayout->addWidget(key_Gs1);
+
+ key_As1 = new QPushButton(pianoWidget);
+ key_As1->setObjectName(QString::fromUtf8("key_As1"));
+
+ blackKeysLayout->addWidget(key_As1);
+
+ horizontalSpacer_3 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
+
+ blackKeysLayout->addItem(horizontalSpacer_3);
+
+ key_Cs2 = new QPushButton(pianoWidget);
+ key_Cs2->setObjectName(QString::fromUtf8("key_Cs2"));
+
+ blackKeysLayout->addWidget(key_Cs2);
+
+ key_Ds2 = new QPushButton(pianoWidget);
+ key_Ds2->setObjectName(QString::fromUtf8("key_Ds2"));
+
+ blackKeysLayout->addWidget(key_Ds2);
+
+ horizontalSpacer_4 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
+
+ blackKeysLayout->addItem(horizontalSpacer_4);
+
+ key_Fs2 = new QPushButton(pianoWidget);
+ key_Fs2->setObjectName(QString::fromUtf8("key_Fs2"));
+
+ blackKeysLayout->addWidget(key_Fs2);
+
+ key_Gs2 = new QPushButton(pianoWidget);
+ key_Gs2->setObjectName(QString::fromUtf8("key_Gs2"));
+
+ blackKeysLayout->addWidget(key_Gs2);
+
+ key_As2 = new QPushButton(pianoWidget);
+ key_As2->setObjectName(QString::fromUtf8("key_As2"));
+
+ blackKeysLayout->addWidget(key_As2);
+
+ horizontalSpacer_5 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
+
+ blackKeysLayout->addItem(horizontalSpacer_5);
+
+ key_Cs3 = new QPushButton(pianoWidget);
+ key_Cs3->setObjectName(QString::fromUtf8("key_Cs3"));
+
+ blackKeysLayout->addWidget(key_Cs3);
+
+ key_Ds3 = new QPushButton(pianoWidget);
+ key_Ds3->setObjectName(QString::fromUtf8("key_Ds3"));
+
+ blackKeysLayout->addWidget(key_Ds3);
+
+ horizontalSpacer_6 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
+
+ blackKeysLayout->addItem(horizontalSpacer_6);
+
+ key_Fs3 = new QPushButton(pianoWidget);
+ key_Fs3->setObjectName(QString::fromUtf8("key_Fs3"));
+
+ blackKeysLayout->addWidget(key_Fs3);
+
+ key_Gs3 = new QPushButton(pianoWidget);
+ key_Gs3->setObjectName(QString::fromUtf8("key_Gs3"));
+
+ blackKeysLayout->addWidget(key_Gs3);
+
+ key_As3 = new QPushButton(pianoWidget);
+ key_As3->setObjectName(QString::fromUtf8("key_As3"));
+
+ blackKeysLayout->addWidget(key_As3);
+
+ horizontalSpacer_7 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
+
+ blackKeysLayout->addItem(horizontalSpacer_7);
+
+ key_Cs4 = new QPushButton(pianoWidget);
+ key_Cs4->setObjectName(QString::fromUtf8("key_Cs4"));
+
+ blackKeysLayout->addWidget(key_Cs4);
+
+ key_Ds4 = new QPushButton(pianoWidget);
+ key_Ds4->setObjectName(QString::fromUtf8("key_Ds4"));
+
+ blackKeysLayout->addWidget(key_Ds4);
+
+ horizontalSpacer_8 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
+
+ blackKeysLayout->addItem(horizontalSpacer_8);
+
+ key_Fs4 = new QPushButton(pianoWidget);
+ key_Fs4->setObjectName(QString::fromUtf8("key_Fs4"));
+
+ blackKeysLayout->addWidget(key_Fs4);
+
+ key_Gs4 = new QPushButton(pianoWidget);
+ key_Gs4->setObjectName(QString::fromUtf8("key_Gs4"));
+
+ blackKeysLayout->addWidget(key_Gs4);
+
+ key_As4 = new QPushButton(pianoWidget);
+ key_As4->setObjectName(QString::fromUtf8("key_As4"));
+
+ blackKeysLayout->addWidget(key_As4);
+
+ horizontalSpacer_9 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
+
+ blackKeysLayout->addItem(horizontalSpacer_9);
+
+ key_Cs5 = new QPushButton(pianoWidget);
+ key_Cs5->setObjectName(QString::fromUtf8("key_Cs5"));
+
+ blackKeysLayout->addWidget(key_Cs5);
+
+ key_Ds5 = new QPushButton(pianoWidget);
+ key_Ds5->setObjectName(QString::fromUtf8("key_Ds5"));
+
+ blackKeysLayout->addWidget(key_Ds5);
+
+ horizontalSpacer_10 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
+
+ blackKeysLayout->addItem(horizontalSpacer_10);
+
+ key_Fs5 = new QPushButton(pianoWidget);
+ key_Fs5->setObjectName(QString::fromUtf8("key_Fs5"));
+
+ blackKeysLayout->addWidget(key_Fs5);
+
+ key_Gs5 = new QPushButton(pianoWidget);
+ key_Gs5->setObjectName(QString::fromUtf8("key_Gs5"));
+
+ blackKeysLayout->addWidget(key_Gs5);
+
+ key_As5 = new QPushButton(pianoWidget);
+ key_As5->setObjectName(QString::fromUtf8("key_As5"));
+
+ blackKeysLayout->addWidget(key_As5);
+
+ horizontalSpacer_11 = new QSpacerItem(15, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
+
+ blackKeysLayout->addItem(horizontalSpacer_11);
+
+
+ verticalLayout_2->addLayout(blackKeysLayout);
+
+
+ verticalLayout->addWidget(pianoWidget);
+
+ Yamitracker->setCentralWidget(centralwidget);
+
+ retranslateUi(Yamitracker);
+
+ QMetaObject::connectSlotsByName(Yamitracker);
+ } // setupUi
+
+ void retranslateUi(QMainWindow *Yamitracker)
+ {
+ Yamitracker->setWindowTitle(QCoreApplication::translate("Yamitracker", "Yamaha PSR-E333 Monitor", nullptr));
+ statusLabel->setText(QCoreApplication::translate("Yamitracker", "\320\241\321\202\320\260\321\202\321\203\321\201: \320\223\320\276\321\202\320\276\320\262", nullptr));
+ deviceLabel->setText(QCoreApplication::translate("Yamitracker", "\320\243\321\201\321\202\321\200\320\276\320\271\321\201\321\202\320\262\320\276: \320\235\320\265 \320\277\320\276\320\264\320\272\320\273\321\216\321\207\320\265\320\275\320\276", nullptr));
+ keysInfoLabel->setText(QCoreApplication::translate("Yamitracker", "\320\235\320\260\320\266\320\260\321\202\320\276 \320\272\320\273\320\260\320\262\320\270\321\210: 0", nullptr));
+ playButton->setText(QCoreApplication::translate("Yamitracker", "\320\227\320\260\320\277\320\270\321\201\321\214 (Play)", nullptr));
+ stopButton->setText(QCoreApplication::translate("Yamitracker", "\320\241\321\202\320\276\320\277", nullptr));
+ convertButton->setText(QCoreApplication::translate("Yamitracker", "\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\270\321\200\320\276\320\262\320\260\321\202\321\214 \320\262 BRR", nullptr));
+ refreshDevicesButton->setText(QCoreApplication::translate("Yamitracker", "\320\236\320\261\320\275\320\276\320\262\320\270\321\202\321\214 \321\203\321\201\321\202\321\200\320\276\320\271\321\201\321\202\320\262\320\260", nullptr));
+ key_C1->setText(QCoreApplication::translate("Yamitracker", "C1", nullptr));
+ key_D1->setText(QCoreApplication::translate("Yamitracker", "D1", nullptr));
+ key_E1->setText(QCoreApplication::translate("Yamitracker", "E1", nullptr));
+ key_F1->setText(QCoreApplication::translate("Yamitracker", "F1", nullptr));
+ key_G1->setText(QCoreApplication::translate("Yamitracker", "G1", nullptr));
+ key_A1->setText(QCoreApplication::translate("Yamitracker", "A1", nullptr));
+ key_B1->setText(QCoreApplication::translate("Yamitracker", "B1", nullptr));
+ key_C2->setText(QCoreApplication::translate("Yamitracker", "C2", nullptr));
+ key_D2->setText(QCoreApplication::translate("Yamitracker", "D2", nullptr));
+ key_E2->setText(QCoreApplication::translate("Yamitracker", "E2", nullptr));
+ key_F2->setText(QCoreApplication::translate("Yamitracker", "F2", nullptr));
+ key_G2->setText(QCoreApplication::translate("Yamitracker", "G2", nullptr));
+ key_A2->setText(QCoreApplication::translate("Yamitracker", "A2", nullptr));
+ key_B2->setText(QCoreApplication::translate("Yamitracker", "B2", nullptr));
+ key_C3->setText(QCoreApplication::translate("Yamitracker", "C3", nullptr));
+ key_D3->setText(QCoreApplication::translate("Yamitracker", "D3", nullptr));
+ key_E3->setText(QCoreApplication::translate("Yamitracker", "E3", nullptr));
+ key_F3->setText(QCoreApplication::translate("Yamitracker", "F3", nullptr));
+ key_G3->setText(QCoreApplication::translate("Yamitracker", "G3", nullptr));
+ key_A3->setText(QCoreApplication::translate("Yamitracker", "A3", nullptr));
+ key_B3->setText(QCoreApplication::translate("Yamitracker", "B3", nullptr));
+ key_C4->setText(QCoreApplication::translate("Yamitracker", "C4", nullptr));
+ key_D4->setText(QCoreApplication::translate("Yamitracker", "D4", nullptr));
+ key_E4->setText(QCoreApplication::translate("Yamitracker", "E4", nullptr));
+ key_F4->setText(QCoreApplication::translate("Yamitracker", "F4", nullptr));
+ key_G4->setText(QCoreApplication::translate("Yamitracker", "G4", nullptr));
+ key_A4->setText(QCoreApplication::translate("Yamitracker", "A4", nullptr));
+ key_B4->setText(QCoreApplication::translate("Yamitracker", "B4", nullptr));
+ key_C5->setText(QCoreApplication::translate("Yamitracker", "C5", nullptr));
+ key_D5->setText(QCoreApplication::translate("Yamitracker", "D5", nullptr));
+ key_E5->setText(QCoreApplication::translate("Yamitracker", "E5", nullptr));
+ key_F5->setText(QCoreApplication::translate("Yamitracker", "F5", nullptr));
+ key_G5->setText(QCoreApplication::translate("Yamitracker", "G5", nullptr));
+ key_A5->setText(QCoreApplication::translate("Yamitracker", "A5", nullptr));
+ key_B5->setText(QCoreApplication::translate("Yamitracker", "B5", nullptr));
+ key_C6->setText(QCoreApplication::translate("Yamitracker", "C6", nullptr));
+ key_Cs1->setText(QCoreApplication::translate("Yamitracker", "C#1", nullptr));
+ key_Ds1->setText(QCoreApplication::translate("Yamitracker", "D#1", nullptr));
+ key_Fs1->setText(QCoreApplication::translate("Yamitracker", "F#1", nullptr));
+ key_Gs1->setText(QCoreApplication::translate("Yamitracker", "G#1", nullptr));
+ key_As1->setText(QCoreApplication::translate("Yamitracker", "A#1", nullptr));
+ key_Cs2->setText(QCoreApplication::translate("Yamitracker", "C#2", nullptr));
+ key_Ds2->setText(QCoreApplication::translate("Yamitracker", "D#2", nullptr));
+ key_Fs2->setText(QCoreApplication::translate("Yamitracker", "F#2", nullptr));
+ key_Gs2->setText(QCoreApplication::translate("Yamitracker", "G#2", nullptr));
+ key_As2->setText(QCoreApplication::translate("Yamitracker", "A#2", nullptr));
+ key_Cs3->setText(QCoreApplication::translate("Yamitracker", "C#3", nullptr));
+ key_Ds3->setText(QCoreApplication::translate("Yamitracker", "D#3", nullptr));
+ key_Fs3->setText(QCoreApplication::translate("Yamitracker", "F#3", nullptr));
+ key_Gs3->setText(QCoreApplication::translate("Yamitracker", "G#3", nullptr));
+ key_As3->setText(QCoreApplication::translate("Yamitracker", "A#3", nullptr));
+ key_Cs4->setText(QCoreApplication::translate("Yamitracker", "C#4", nullptr));
+ key_Ds4->setText(QCoreApplication::translate("Yamitracker", "D#4", nullptr));
+ key_Fs4->setText(QCoreApplication::translate("Yamitracker", "F#4", nullptr));
+ key_Gs4->setText(QCoreApplication::translate("Yamitracker", "G#4", nullptr));
+ key_As4->setText(QCoreApplication::translate("Yamitracker", "A#4", nullptr));
+ key_Cs5->setText(QCoreApplication::translate("Yamitracker", "C#5", nullptr));
+ key_Ds5->setText(QCoreApplication::translate("Yamitracker", "D#5", nullptr));
+ key_Fs5->setText(QCoreApplication::translate("Yamitracker", "F#5", nullptr));
+ key_Gs5->setText(QCoreApplication::translate("Yamitracker", "G#5", nullptr));
+ key_As5->setText(QCoreApplication::translate("Yamitracker", "A#5", nullptr));
+ } // retranslateUi
+
+};
+
+namespace Ui {
+ class Yamitracker: public Ui_Yamitracker {};
+} // namespace Ui
+
+QT_END_NAMESPACE
+
+#endif // UI_YAMITRACKER_H
diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/yamitracker.o b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/yamitracker.o
new file mode 100644
index 0000000..f0f9d45
Binary files /dev/null and b/OtherPush/yamitraherIlyaEdit/Yamitracker/build_wav/yamitracker.o differ
diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/main.cpp b/OtherPush/yamitraherIlyaEdit/Yamitracker/main.cpp
new file mode 100644
index 0000000..742d76f
--- /dev/null
+++ b/OtherPush/yamitraherIlyaEdit/Yamitracker/main.cpp
@@ -0,0 +1,11 @@
+// main.cpp
+#include "yamitracker.h"
+#include
+
+int main(int argc, char *argv[])
+{
+ QApplication a(argc, argv);
+ Yamitracker w;
+ w.show();
+ return a.exec();
+}
\ No newline at end of file
diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/music_20251210_151146.s b/OtherPush/yamitraherIlyaEdit/Yamitracker/music_20251210_151146.s
new file mode 100644
index 0000000..450ec43
--- /dev/null
+++ b/OtherPush/yamitraherIlyaEdit/Yamitracker/music_20251210_151146.s
@@ -0,0 +1,329 @@
+; ÐÑзÑкалÑÐ½Ð°Ñ ÐºÐ¾Ð¼Ð¿Ð¾Ð·Ð¸ÑиÑ, ÑгенеÑиÑÐ¾Ð²Ð°Ð½Ð½Ð°Ñ Yamitracker
+; ФоÑмаÑ: Pently-like Ñ Ð´Ð¾Ñожками
+; ÐÑÐµÐ¼Ñ ÑозданиÑ: 2025-12-10 15:11:48
+
+.include "pentlyseq.inc"
+.segment "SPCIMAGE"
+
+; ТаблиÑа инÑÑÑÑменÑов
+music_inst_table:
+ ; name lv rv frq smp att dec sus lvl
+ INST KICK, 11, 10, 3, 6, 31, 17, 0, 8
+ INST SNARE, 10, 15, 3, 7, 31, 17, 0, 8
+ INST HAT, 3, 5, 3, 5, 31, 17, 0, 8
+ INST PLING_8, 3, 10, 1, 0, 31, 19, 15, 2
+ INST PLING_4, 7, 7, 1, 1, 31, 19, 15, 2
+ INST PLING_2, 9, 6, 1, 2, 31, 17, 15, 2
+ INST BASSGUITAR, 12, 12, 1, 4, 31, 17, 15, 8
+ INST BASSCLAR, 12, 12, 1, 2, 21, 21, 27, 4
+ INST HORNBLAT, 3, 9, 1, 0, 21, 21, 27, 4
+ INST XYLSHORT, 10, 6, 1, 2, 31, 23, 20, 2
+ INST XYLMED, 10, 6, 1, 2, 31, 19, 17, 2
+
+pently_patterns:
+PPDAT_track0_pattern0:
+ .byt N_C|D_16
+ .byt PATEND
+PPDAT_track0_pattern1:
+ .byt N_E|D_D32
+ .byt PATEND
+PPDAT_track0_pattern2:
+ .byt N_F|D_16
+ .byt PATEND
+PPDAT_track0_pattern3:
+ .byt N_C|D_16
+ .byt PATEND
+PPDAT_track0_pattern4:
+ .byt N_E|D_D32
+ .byt PATEND
+PPDAT_track0_pattern5:
+ .byt N_F|D_D32
+ .byt PATEND
+PPDAT_track0_pattern6:
+ .byt N_C|D_D32
+ .byt PATEND
+PPDAT_track0_pattern7:
+ .byt N_E|D_D32
+ .byt PATEND
+PPDAT_track0_pattern8:
+ .byt N_F|D_D32
+ .byt PATEND
+PPDAT_track0_pattern9:
+ .byt N_C|D_16
+ .byt PATEND
+PPDAT_track0_pattern10:
+ .byt N_E|D_D32
+ .byt PATEND
+PPDAT_track0_pattern11:
+ .byt N_F|D_16
+ .byt N_C|D_D32
+ .byt PATEND
+PPDAT_track0_pattern12:
+ .byt N_E|D_D32
+ .byt PATEND
+PPDAT_track0_pattern13:
+ .byt N_F|D_16
+ .byt PATEND
+PPDAT_track0_pattern14:
+ .byt N_C|D_16
+ .byt PATEND
+PPDAT_track0_pattern15:
+ .byt N_E|D_D32
+ .byt PATEND
+PPDAT_track0_pattern16:
+ .byt N_F|D_D32
+ .byt PATEND
+PPDAT_track0_pattern17:
+ .byt N_C|D_16
+ .byt PATEND
+PPDAT_track0_pattern18:
+ .byt N_E|D_D32
+ .byt PATEND
+PPDAT_track0_pattern19:
+ .byt N_F|D_D32
+ .byt PATEND
+PPDAT_track0_pattern20:
+ .byt N_C|D_16
+ .byt PATEND
+PPDAT_track0_pattern21:
+ .byt N_E|D_D32
+ .byt PATEND
+PPDAT_track0_pattern22:
+ .byt N_E|D_D32
+ .byt PATEND
+PPDAT_track0_pattern23:
+ .byt N_F|D_16
+ .byt N_C|D_16
+ .byt PATEND
+PPDAT_track0_pattern24:
+ .byt N_E|D_D32
+ .byt PATEND
+PPDAT_track0_pattern25:
+ .byt N_E|D_D32
+ .byt PATEND
+PPDAT_track0_pattern26:
+ .byt N_C|D_D32
+ .byt PATEND
+PPDAT_track0_pattern27:
+ .byt N_F|D_D32
+ .byt PATEND
+PPDAT_track0_pattern28:
+ .byt N_F|D_D32
+ .byt PATEND
+PPDAT_track0_pattern29:
+ .byt N_C|D_D32
+ .byt PATEND
+PPDAT_track0_pattern30:
+ .byt N_E|D_32
+ .byt PATEND
+PPDAT_track1_pattern0:
+ .byt N_A|D_D32
+ .byt PATEND
+PPDAT_track1_pattern1:
+ .byt N_A|D_D32
+ .byt PATEND
+PPDAT_track1_pattern2:
+ .byt N_A|D_D32
+ .byt PATEND
+PPDAT_track1_pattern3:
+ .byt N_A|D_D32
+ .byt PATEND
+PPDAT_track1_pattern4:
+ .byt N_A|D_D32
+ .byt PATEND
+PPDAT_track1_pattern5:
+ .byt N_A|D_D32
+ .byt PATEND
+PPDAT_track1_pattern6:
+ .byt N_A|D_16
+ .byt PATEND
+PPDAT_track1_pattern7:
+ .byt N_A|D_D32
+ .byt PATEND
+PPDAT_track1_pattern8:
+ .byt N_A|D_32
+ .byt PATEND
+PPDAT_track1_pattern9:
+ .byt N_A|D_32
+ .byt N_A|D_32
+ .byt PATEND
+PPDAT_track1_pattern10:
+ .byt N_A|D_32
+ .byt PATEND
+PPDAT_track1_pattern11:
+ .byt N_A|D_32
+ .byt N_A|D_32
+ .byt PATEND
+PPDAT_track1_pattern12:
+ .byt N_A|D_32
+ .byt PATEND
+PPDAT_track1_pattern13:
+ .byt N_A|D_32
+ .byt N_A|D_32
+ .byt PATEND
+PPDAT_track1_pattern14:
+ .byt N_A|D_32
+ .byt PATEND
+PPDAT_track1_pattern15:
+ .byt N_A|D_32
+ .byt N_A|D_32
+ .byt PATEND
+PPDAT_track1_pattern16:
+ .byt N_A|D_32
+ .byt PATEND
+PPDAT_track1_pattern17:
+ .byt N_A|D_32
+ .byt N_A|D_32
+ .byt PATEND
+PPDAT_track1_pattern18:
+ .byt N_A|D_32
+ .byt N_A|D_32
+ .byt PATEND
+PPDAT_track1_pattern19:
+ .byt N_A|D_32
+ .byt N_A|D_32
+ .byt PATEND
+PPDAT_track1_pattern20:
+ .byt N_A|D_32
+ .byt N_A|D_32
+ .byt PATEND
+PPDAT_track1_pattern21:
+ .byt N_A|D_32
+ .byt N_A|D_D32
+ .byt PATEND
+PPDAT_track1_pattern22:
+ .byt N_A|D_32
+ .byt N_A|D_D32
+ .byt PATEND
+PPDAT_track1_pattern23:
+ .byt N_A|D_32
+ .byt N_A|D_32
+ .byt PATEND
+PPDAT_track1_pattern24:
+ .byt N_A|D_32
+ .byt PATEND
+PPDAT_track1_pattern25:
+ .byt N_A|D_32
+ .byt PATEND
+
+pently_songs:
+.addr PSDAT_composition
+
+; ÐомпозиÑиÑ
+PSDAT_composition:
+ setTempo 300
+ playPat 0, 0, 0, PLING_2
+ waitRows 16
+ playPat 0, 1, 0, PLING_2
+ waitRows 16
+ playPat 0, 2, 0, PLING_2
+ waitRows 16
+ playPat 0, 3, 0, PLING_2
+ waitRows 16
+ playPat 0, 4, 0, PLING_2
+ waitRows 16
+ playPat 0, 5, 0, PLING_2
+ waitRows 16
+ playPat 0, 6, 0, PLING_2
+ waitRows 16
+ playPat 0, 7, 0, PLING_2
+ waitRows 16
+ playPat 0, 8, 0, PLING_2
+ waitRows 16
+ playPat 0, 9, 0, PLING_2
+ waitRows 16
+ playPat 0, 10, 0, PLING_2
+ waitRows 16
+ playPat 0, 11, 0, PLING_2
+ waitRows 16
+ playPat 0, 12, 0, PLING_2
+ waitRows 16
+ playPat 0, 13, 0, PLING_2
+ waitRows 16
+ playPat 0, 14, 0, PLING_2
+ waitRows 16
+ playPat 0, 15, 0, PLING_2
+ waitRows 16
+ playPat 0, 16, 0, PLING_2
+ waitRows 16
+ playPat 0, 17, 0, PLING_2
+ waitRows 16
+ playPat 0, 18, 0, PLING_2
+ waitRows 16
+ playPat 0, 19, 0, PLING_2
+ waitRows 16
+ playPat 0, 20, 0, PLING_2
+ waitRows 16
+ playPat 0, 21, 0, PLING_2
+ waitRows 16
+ playPat 0, 22, 0, PLING_2
+ waitRows 16
+ playPat 0, 23, 0, PLING_2
+ waitRows 16
+ playPat 0, 24, 0, PLING_2
+ waitRows 16
+ playPat 0, 25, 0, PLING_2
+ waitRows 16
+ playPat 0, 26, 0, PLING_2
+ waitRows 16
+ playPat 0, 27, 0, PLING_2
+ waitRows 16
+ playPat 0, 28, 0, PLING_2
+ waitRows 16
+ playPat 0, 29, 0, PLING_2
+ waitRows 16
+ playPat 0, 30, 0, PLING_2
+ waitRows 16
+ playPat 1, 31, 0, PLING_2
+ waitRows 16
+ playPat 1, 32, 0, PLING_2
+ waitRows 16
+ playPat 1, 33, 0, PLING_2
+ waitRows 16
+ playPat 1, 34, 0, PLING_2
+ waitRows 16
+ playPat 1, 35, 0, PLING_2
+ waitRows 16
+ playPat 1, 36, 0, PLING_2
+ waitRows 16
+ playPat 1, 37, 0, PLING_2
+ waitRows 16
+ playPat 1, 38, 0, PLING_2
+ waitRows 16
+ playPat 1, 39, 0, PLING_2
+ waitRows 16
+ playPat 1, 40, 0, PLING_2
+ waitRows 16
+ playPat 1, 41, 0, PLING_2
+ waitRows 16
+ playPat 1, 42, 0, PLING_2
+ waitRows 16
+ playPat 1, 43, 0, PLING_2
+ waitRows 16
+ playPat 1, 44, 0, PLING_2
+ waitRows 16
+ playPat 1, 45, 0, PLING_2
+ waitRows 16
+ playPat 1, 46, 0, PLING_2
+ waitRows 16
+ playPat 1, 47, 0, PLING_2
+ waitRows 16
+ playPat 1, 48, 0, PLING_2
+ waitRows 16
+ playPat 1, 49, 0, PLING_2
+ waitRows 16
+ playPat 1, 50, 0, PLING_2
+ waitRows 16
+ playPat 1, 51, 0, PLING_2
+ waitRows 16
+ playPat 1, 52, 0, PLING_2
+ waitRows 16
+ playPat 1, 53, 0, PLING_2
+ waitRows 16
+ playPat 1, 54, 0, PLING_2
+ waitRows 16
+ playPat 1, 55, 0, PLING_2
+ waitRows 16
+ playPat 1, 56, 0, PLING_2
+ waitRows 16
+ fine
diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/simplewavwriter.cpp b/OtherPush/yamitraherIlyaEdit/Yamitracker/simplewavwriter.cpp
new file mode 100644
index 0000000..b8c420e
--- /dev/null
+++ b/OtherPush/yamitraherIlyaEdit/Yamitracker/simplewavwriter.cpp
@@ -0,0 +1,885 @@
+#include "simplewavwriter.h"
+#include
+#include
+#include
+#include
+#include
+
+SimpleWavWriter::SimpleWavWriter(QObject *parent)
+ : QObject(parent), recording(false), paused(false), playbackSpeed(1.0), bassVolumeMultiplier(2.0)
+{
+ // Инициализируем дорожки
+ tracks.resize(MAX_TRACKS);
+ for (int i = 0; i < MAX_TRACKS; i++) {
+ tracks[i] = Track(i); // Используем конструктор с индексом
+ tracks[i].instrument = 1; // По умолчанию Grand Piano
+ tracks[i].volume = 1.0;
+ tracks[i].muted = false;
+ tracks[i].solo = false;
+ }
+
+ // Настраиваем формат аудио
+ format.setSampleRate(SAMPLE_RATE);
+ format.setChannelCount(1); // Моно
+ format.setSampleSize(BIT_DEPTH);
+ format.setCodec("audio/pcm");
+ format.setByteOrder(QAudioFormat::LittleEndian);
+ format.setSampleType(QAudioFormat::SignedInt);
+}
+
+bool SimpleWavWriter::startRecording(int sampleRate)
+{
+ if (recording) return false;
+
+ format.setSampleRate(sampleRate);
+ recording = true;
+ paused = false;
+
+ emit recordingStatusChanged(true);
+ return true;
+}
+
+void SimpleWavWriter::stopRecording()
+{
+ recording = false;
+ paused = false;
+ emit recordingStatusChanged(false);
+}
+
+void SimpleWavWriter::pauseRecording()
+{
+ if (recording && !paused) {
+ paused = true;
+ }
+}
+
+void SimpleWavWriter::resumeRecording()
+{
+ if (recording && paused) {
+ paused = false;
+ }
+}
+
+void SimpleWavWriter::addNote(int track, double time, int note, int velocity, double duration, int instrument)
+{
+ if (track < 0 || track >= MAX_TRACKS) return;
+
+ // Применяем множитель громкости для басовых инструментов
+ double volume = velocity / 127.0;
+ static QSet bassInstruments = {28, 33, 39, 40, 29, 37, 38};
+ if (bassInstruments.contains(instrument)) {
+ volume *= bassVolumeMultiplier;
+ volume = qMin(volume, 1.0); // Ограничиваем максимальную громкость
+ }
+
+ tracks[track].events.append(NoteEvent(time, note, velocity, duration, instrument, volume));
+ tracks[track].instrument = instrument;
+
+ emit trackUpdated(track);
+}
+
+void SimpleWavWriter::clearTrack(int track)
+{
+ if (track >= 0 && track < MAX_TRACKS) {
+ tracks[track].events.clear();
+ emit trackUpdated(track);
+ }
+}
+
+void SimpleWavWriter::clearAllTracks()
+{
+ for (int i = 0; i < MAX_TRACKS; i++) {
+ tracks[i].events.clear();
+ emit trackUpdated(i);
+ }
+}
+
+QString SimpleWavWriter::getTrackName(int track) const
+{
+ if (track >= 0 && track < MAX_TRACKS) {
+ return tracks[track].name;
+ }
+ return QString();
+}
+
+void SimpleWavWriter::setTrackName(int track, const QString &name)
+{
+ if (track >= 0 && track < MAX_TRACKS) {
+ tracks[track].name = name;
+ emit trackUpdated(track);
+ }
+}
+
+int SimpleWavWriter::getEventCount(int track) const
+{
+ if (track >= 0 && track < MAX_TRACKS) {
+ return tracks[track].events.size();
+ }
+ return 0;
+}
+
+int SimpleWavWriter::getTrackInstrument(int track) const
+{
+ if (track >= 0 && track < MAX_TRACKS) {
+ return tracks[track].instrument;
+ }
+ return 1;
+}
+
+void SimpleWavWriter::setTrackInstrument(int track, int instrument)
+{
+ if (track >= 0 && track < MAX_TRACKS) {
+ tracks[track].instrument = instrument;
+ emit trackUpdated(track);
+ }
+}
+
+double SimpleWavWriter::getTrackVolume(int track) const
+{
+ if (track >= 0 && track < MAX_TRACKS) {
+ return tracks[track].volume;
+ }
+ return 1.0;
+}
+
+void SimpleWavWriter::setTrackVolume(int track, double volume)
+{
+ if (track >= 0 && track < MAX_TRACKS) {
+ tracks[track].volume = qBound(0.0, volume, 2.0);
+ emit trackUpdated(track);
+ }
+}
+
+bool SimpleWavWriter::isTrackMuted(int track) const
+{
+ if (track >= 0 && track < MAX_TRACKS) {
+ return tracks[track].muted;
+ }
+ return false;
+}
+
+void SimpleWavWriter::muteTrack(int track, bool muted)
+{
+ if (track >= 0 && track < MAX_TRACKS) {
+ tracks[track].muted = muted;
+ emit trackUpdated(track);
+ }
+}
+
+bool SimpleWavWriter::isTrackSolo(int track) const
+{
+ if (track >= 0 && track < MAX_TRACKS) {
+ return tracks[track].solo;
+ }
+ return false;
+}
+
+void SimpleWavWriter::soloTrack(int track, bool solo)
+{
+ if (track >= 0 && track < MAX_TRACKS) {
+ tracks[track].solo = solo;
+ emit trackUpdated(track);
+ }
+}
+
+QByteArray SimpleWavWriter::getTrackAudioData(int track, bool mix)
+{
+ if (track < 0 || track >= MAX_TRACKS) return QByteArray();
+
+ if (mix) {
+ // Смешиваем все дорожки
+ QVector allTracks;
+ for (int i = 0; i < MAX_TRACKS; i++) {
+ allTracks.append(i);
+ }
+ return mixTracks(allTracks);
+ }
+
+ return mixTracks(QVector{track});
+}
+
+QByteArray SimpleWavWriter::getAllTracksAudioData()
+{
+ // Собираем индексы всех дорожек, которые не заглушены и имеют данные
+ QVector activeTracks;
+ for (int i = 0; i < MAX_TRACKS; i++) {
+ if (!tracks[i].muted && !tracks[i].events.isEmpty()) {
+ activeTracks.append(i);
+ }
+ }
+
+ if (activeTracks.isEmpty()) {
+ return QByteArray();
+ }
+
+ return mixTracks(activeTracks);
+}
+
+bool SimpleWavWriter::loadWavToTrack(const QString &filename, int track)
+{
+ // Временно заглушка - в реальной реализации нужно парсить WAV файл
+ QFile file(filename);
+ if (!file.open(QIODevice::ReadOnly)) return false;
+
+ // Пропускаем заголовок WAV (44 байта)
+ file.seek(44);
+ QByteArray audioData = file.readAll();
+ file.close();
+
+ // Создаем событие для импортированного аудио
+ if (!audioData.isEmpty()) {
+ // Очищаем дорожку и добавляем специальное событие
+ tracks[track].events.clear();
+ // Здесь нужно добавить логику для импорта WAV
+ emit trackUpdated(track);
+ return true;
+ }
+
+ return false;
+}
+
+void SimpleWavWriter::copyTrack(int fromTrack, int toTrack)
+{
+ if (fromTrack < 0 || fromTrack >= MAX_TRACKS ||
+ toTrack < 0 || toTrack >= MAX_TRACKS || fromTrack == toTrack) {
+ return;
+ }
+
+ tracks[toTrack] = tracks[fromTrack];
+ tracks[toTrack].name = QString("Копия %1").arg(tracks[fromTrack].name);
+ emit trackUpdated(toTrack);
+}
+
+void SimpleWavWriter::mergeTrack(int fromTrack, int toTrack)
+{
+ if (fromTrack < 0 || fromTrack >= MAX_TRACKS ||
+ toTrack < 0 || toTrack >= MAX_TRACKS || fromTrack == toTrack) {
+ return;
+ }
+
+ tracks[toTrack].events.append(tracks[fromTrack].events);
+ // Сортируем события по времени
+ std::sort(tracks[toTrack].events.begin(), tracks[toTrack].events.end(),
+ [](const NoteEvent &a, const NoteEvent &b) { return a.time < b.time; });
+
+ emit trackUpdated(toTrack);
+}
+
+void SimpleWavWriter::setPlaybackSpeed(double speed)
+{
+ playbackSpeed = qBound(0.5, speed, 2.0);
+}
+
+void SimpleWavWriter::setBassVolumeMultiplier(double multiplier)
+{
+ bassVolumeMultiplier = qBound(1.0, multiplier, 4.0);
+}
+
+QByteArray SimpleWavWriter::generateNoteAudio(int note, int velocity, double duration, int instrument, double volume)
+{
+ double frequency = noteToFrequency(note);
+ double amplitude = (velocity / 127.0) * volume;
+
+ return generateInstrumentWave(instrument, frequency, duration, amplitude);
+}
+
+QByteArray SimpleWavWriter::generateSilence(double duration)
+{
+ int samples = static_cast(duration * format.sampleRate());
+ QByteArray silence(samples * sizeof(qint16), 0);
+ return silence;
+}
+
+void SimpleWavWriter::writeWavHeader(QFile &file, quint32 dataSize)
+{
+ // RIFF header
+ file.write("RIFF");
+ file.write(intToBytes(36 + dataSize));
+ file.write("WAVE");
+
+ // fmt chunk
+ file.write("fmt ");
+ file.write(intToBytes(16)); // chunk size
+ file.write(shortToBytes(1)); // audio format (PCM)
+ file.write(shortToBytes(format.channelCount())); // channels
+ file.write(intToBytes(format.sampleRate())); // sample rate
+ file.write(intToBytes(format.sampleRate() * format.channelCount() * format.sampleSize() / 8)); // byte rate
+ file.write(shortToBytes(format.channelCount() * format.sampleSize() / 8)); // block align
+ file.write(shortToBytes(format.sampleSize())); // bits per sample
+
+ // data chunk
+ file.write("data");
+ file.write(intToBytes(dataSize));
+}
+
+bool SimpleWavWriter::saveToFile(const QString &filename)
+{
+ // Получаем аудиоданные всех активных дорожек
+ QByteArray audioData = getAllTracksAudioData();
+ if (audioData.isEmpty()) {
+ qDebug() << "Нет данных для сохранения - все дорожки пусты или заглушены";
+ return false;
+ }
+
+ QFile file(filename);
+ if (!file.open(QIODevice::WriteOnly)) {
+ qDebug() << "Не удалось открыть файл для записи:" << filename;
+ return false;
+ }
+
+ // Записываем WAV заголовок
+ writeWavHeader(file, audioData.size());
+
+ // Записываем аудиоданные
+ qint64 bytesWritten = file.write(audioData);
+ file.close();
+
+ if (bytesWritten != audioData.size()) {
+ qDebug() << "Ошибка записи файла: записано" << bytesWritten << "байт из" << audioData.size();
+ return false;
+ }
+
+ // Выводим информацию о каждой дорожке
+ qDebug() << "Информация о дорожках";
+ for (int i = 0; i < MAX_TRACKS; i++) {
+ if (!tracks[i].events.isEmpty()) {
+ qDebug() << "Дорожка" << i << ":"
+ << "нот:" << tracks[i].events.size()
+ << "время начала:" << tracks[i].events.first().time
+ << "время конца:" << (tracks[i].events.last().time + tracks[i].events.last().duration);
+ }
+ }
+
+ return true;
+
+ // Выводим информацию о сохраненном файле
+ double duration = audioData.size() / (2.0 * SAMPLE_RATE); // байты / (2 байта на сэмпл * частота)
+ int activeTracks = 0;
+ int totalNotes = 0;
+
+ for (int i = 0; i < MAX_TRACKS; i++) {
+ if (!tracks[i].muted && !tracks[i].events.isEmpty()) {
+ activeTracks++;
+ totalNotes += tracks[i].events.size();
+ }
+ }
+
+ qDebug() << "Файл успешно сохранен:";
+ qDebug() << " Имя файла:" << filename;
+ qDebug() << " Размер:" << audioData.size() << "байт";
+ qDebug() << " Частота дискретизации:" << SAMPLE_RATE << "Гц";
+ qDebug() << " Битрейт:" << (SAMPLE_RATE * 2 * 8) / 1000 << "кбит/с";
+ qDebug() << " Длительность:" << duration << "секунд";
+ qDebug() << " Активных дорожек:" << activeTracks;
+ qDebug() << " Всего нот:" << totalNotes;
+
+ return true;
+}
+
+// НОВЫЙ МЕТОД: Конвертирует время в секундах в тики Pently (базовый темп 1000)
+int SimpleWavWriter::secondsToPentlyTicks(double seconds) const
+{
+ // Базовый темп: 1000 тиков в секунде
+ return static_cast(seconds * 1000.0);
+}
+
+// НОВЫЙ МЕТОД: Конвертирует тики в строку задержки
+QString SimpleWavWriter::ticksToDelayString(int ticks) const
+{
+ if (ticks <= 0) return QString();
+
+ // Определяем наилучшее представление задержки
+ if (ticks >= 2000) return QString("D_2");
+ if (ticks >= 1000) return QString("D_1");
+ if (ticks >= 500) return QString("D_D2");
+ if (ticks >= 250) return QString("D_D4");
+ if (ticks >= 125) return QString("D_D8");
+ if (ticks >= 62) return QString("D_D16");
+ if (ticks >= 31) return QString("D_2");
+ if (ticks >= 16) return QString("D_4");
+ if (ticks >= 8) return QString("D_8");
+ if (ticks >= 4) return QString("D_16");
+ if (ticks >= 2) return QString("D_32");
+
+ return QString("D_32");
+}
+
+// НОВЫЙ МЕТОД: Создает паттерн из событий дорожки
+QString SimpleWavWriter::generatePattern(int trackIndex) const
+{
+ if (trackIndex < 0 || trackIndex >= tracks.size()) return QString();
+
+ const Track& track = tracks[trackIndex];
+ if (track.events.isEmpty()) return QString();
+
+ QString pattern;
+
+ // Сортируем события по времени
+ QVector sortedEvents = track.events;
+ std::sort(sortedEvents.begin(), sortedEvents.end(),
+ [](const NoteEvent &a, const NoteEvent &b) { return a.time < b.time; });
+
+ double lastTime = 0;
+ for (const NoteEvent &event : sortedEvents) {
+ // Вычисляем задержку от предыдущего события
+ double delay = event.time - lastTime;
+ if (delay > 0) {
+ int delayTicks = secondsToPentlyTicks(delay);
+ QString delayCmd = ticksToDelayString(delayTicks);
+ if (!delayCmd.isEmpty()) {
+ pattern += QString(" .byt %1\n").arg(delayCmd);
+ }
+ }
+
+ // Добавляем ноту с ее длительностью
+ QString noteStr = noteToPentlyNote(event.note);
+ int durationTicks = secondsToPentlyTicks(event.duration);
+ QString durationStr = ticksToDelayString(durationTicks);
+
+ pattern += QString(" .byt %1|%2\n").arg(noteStr).arg(durationStr);
+
+ lastTime = event.time + event.duration;
+ }
+
+ return pattern;
+}
+
+// ИСПРАВЛЕННЫЙ МЕТОД: Сохранение в музыкальный файл Pently
+bool SimpleWavWriter::saveToMusicFile(const QString &filename)
+{
+ QFile file(filename);
+ if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) {
+ qDebug() << "Не удалось открыть файл для записи:" << filename;
+ return false;
+ }
+
+ QTextStream out(&file);
+ out.setCodec("UTF-8");
+
+ // 1. Проверяем, есть ли данные для сохранения
+ int trackCount = 0;
+ QVector trackIndices;
+ for (int i = 0; i < MAX_TRACKS; i++) {
+ if (!tracks[i].events.isEmpty()) {
+ trackCount++;
+ trackIndices.append(i);
+ }
+ }
+
+ if (trackCount == 0) {
+ out << "; Нет данных для сохранения\n";
+ file.close();
+ return false;
+ }
+
+ qDebug() << "Сохранение музыки: найдено" << trackCount << "дорожек с данными";
+
+ // 2. Заголовок файла
+ out << "; Generated by Yamitracker\n";
+ out << "; Date: " << QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss") << "\n";
+ out << "; Tracks: " << trackCount << "\n\n";
+
+ // 3. Таблица инструментов
+ out << "music_inst_table:\n";
+
+ // Карта преобразования инструментов GM в Pently
+ QMap pentlyInstruments = {
+ {1, "PLING_8"}, // Grand Piano
+ {2, "PLING_4"}, // Bright Piano
+ {3, "PLING_2"}, // Harpsichord
+ {6, "PLING_2"}, // Harpsichord 2
+
+ // Bass instruments
+ {28, "BASSGUITAR"},
+ {33, "BASSGUITAR"},
+ {39, "BASSGUITAR"},
+ {40, "BASSGUITAR"},
+
+ // Guitar/Overdrive
+ {29, "XYLSHORT"},
+ {37, "XYLSHORT"},
+ {38, "XYLSHORT"},
+
+ // Strings
+ {48, "XYLMED"},
+ {49, "XYLMED"},
+
+ // Sax/Horn
+ {81, "HORNBLAT"},
+
+ // Bright
+ {95, "XYLSHORT"},
+ {96, "XYLSHORT"},
+ {100, "XYLSHORT"}
+ };
+
+ // Карта параметров инструментов Pently (lv, rv, frq, smp, att, dec, sus, lvl)
+ QMap instrumentParams = {
+ {"PLING_8", " 3, 10, 1, 0, 31, 19, 15, 2"},
+ {"PLING_4", " 7, 7, 1, 1, 31, 19, 15, 2"},
+ {"PLING_2", " 9, 6, 1, 2, 31, 17, 15, 2"},
+ {"BASSGUITAR", "12, 12, 1, 4, 31, 17, 15, 8"},
+ {"BASSCLAR", "12, 12, 1, 2, 21, 21, 27, 4"},
+ {"HORNBLAT", " 3, 9, 1, 0, 21, 21, 27, 4"},
+ {"XYLSHORT", "10, 6, 1, 2, 31, 23, 20, 2"},
+ {"XYLMED", "10, 6, 1, 2, 31, 19, 17, 2"},
+ {"STRING", "10, 6, 1, 2, 31, 23, 20, 2"}
+ };
+
+ // Генерируем уникальные инструменты для каждой дорожки
+ QMap trackInstruments;
+ for (int trackIndex : trackIndices) {
+ int gmInstrument = tracks[trackIndex].instrument;
+ QString pentlyInst = pentlyInstruments.value(gmInstrument, "PLING_8");
+ trackInstruments[trackIndex] = pentlyInst;
+
+ QString params = instrumentParams.value(pentlyInst, "10, 10, 1, 1, 31, 17, 15, 8");
+ out << " INST " << pentlyInst << "," << params << "\n";
+ }
+
+ out << "\n";
+
+ // 4. Таблица паттернов
+ out << "pently_patterns:\n";
+ for (int trackIndex : trackIndices) {
+ out << " .addr PPDAT_track" << trackIndex << "\n";
+ }
+
+ // 5. Данные паттернов
+ for (int trackIndex : trackIndices) {
+ out << "\nPPDAT_track" << trackIndex << ":\n";
+ QString patternData = generatePattern(trackIndex);
+ if (patternData.isEmpty()) {
+ out << " .byt PATEND\n";
+ } else {
+ out << patternData;
+ out << " .byt PATEND\n";
+ }
+ }
+
+ // 6. Таблица песен (теперь только ОДНА песня)
+ out << "\npently_songs:\n";
+ out << " .addr PSDAT_main_song\n\n";
+
+ // 7. Создаем ОДНУ главную песню, которая управляет всеми дорожками
+ out << "PSDAT_main_song:\n";
+
+ // Определяем общую длительность композиции
+ double maxDuration = 0;
+ for (int trackIndex : trackIndices) {
+ const Track& track = tracks[trackIndex];
+ for (const NoteEvent &event : track.events) {
+ double endTime = event.time + event.duration;
+ if (endTime > maxDuration) {
+ maxDuration = endTime;
+ }
+ }
+ }
+
+ int totalTicks = secondsToPentlyTicks(maxDuration);
+ if (totalTicks < 1) totalTicks = 100; // Минимальная длительность
+
+ qDebug() << "Общая длительность:" << maxDuration << "секунд =" << totalTicks << "тиков";
+
+ // Устанавливаем темп
+ out << " setTempo 1000\n";
+
+ // Запускаем все паттерны одновременно
+ int channel = 0;
+ for (int trackIndex : trackIndices) {
+ QString instName = trackInstruments[trackIndex];
+ out << QString(" playPat %1, %2, 23, %3\n")
+ .arg(channel).arg(trackIndex).arg(instName);
+ channel++;
+ }
+
+ // Ждем полную длительность композиции
+ out << QString(" waitRows %1\n").arg(totalTicks);
+
+ // Останавливаем все паттерны
+ for (int i = 0; i < channel; i++) {
+ out << QString(" stopPat %1\n").arg(i);
+ }
+
+ // Зацикливаем
+ out << " dalSegno\n";
+
+ file.close();
+
+ qDebug() << "Музыкальный файл сохранен:" << filename;
+ qDebug() << "Треков:" << trackCount;
+ qDebug() << "Максимальная длительность:" << maxDuration << "сек";
+ qDebug() << "В тиках:" << totalTicks;
+
+ return true;
+}
+
+QByteArray SimpleWavWriter::mixTracks(const QVector &trackIndices)
+{
+ double maxDuration = 0;
+ for (int trackIndex : trackIndices) {
+ if (trackIndex < 0 || trackIndex >= MAX_TRACKS) continue;
+ const Track &track = tracks[trackIndex];
+ for (const NoteEvent &event : track.events) {
+ double endTime = event.time + event.duration;
+ if (endTime > maxDuration) {
+ maxDuration = endTime;
+ }
+ }
+ }
+
+ if (maxDuration <= 0) {
+ return QByteArray();
+ }
+
+ // Создаем буфер для микширования
+ int totalSamples = static_cast(maxDuration * format.sampleRate());
+ QVector mixBuffer(totalSamples, 0); // Используем qint32 для предотвращения клиппинга
+
+ // Обрабатываем каждую дорожку
+ for (int trackIndex : trackIndices) {
+ if (trackIndex < 0 || trackIndex >= MAX_TRACKS) continue;
+ const Track &track = tracks[trackIndex];
+
+ // Проверяем mute/solo
+ if (track.muted) continue;
+
+ double trackVolume = track.volume;
+
+ // Обрабатываем каждое событие в дорожке
+ for (const NoteEvent &event : track.events) {
+ // Генерируем аудио для ноты
+ QByteArray noteAudio = generateNoteAudio(
+ event.note,
+ event.velocity,
+ event.duration,
+ event.instrument,
+ event.volume * trackVolume
+ );
+
+ // Вычисляем начальный сэмпл (на основе абсолютного времени)
+ int startSample = static_cast(event.time * format.sampleRate());
+ const qint16 *noteData = reinterpret_cast(noteAudio.constData());
+ int noteSamples = noteAudio.size() / sizeof(qint16);
+
+ // Микшируем ноту в общий буфер
+ for (int i = 0; i < noteSamples && startSample + i < totalSamples; i++) {
+ // Прибавляем ноту к миксу (используем qint32)
+ qint32 mixed = mixBuffer[startSample + i] + noteData[i];
+ mixBuffer[startSample + i] = mixed;
+ }
+ }
+ }
+
+ // Конвертируем буфер в QByteArray с ограничением (clamping)
+ QByteArray result;
+ result.resize(totalSamples * sizeof(qint16));
+ qint16 *resultData = reinterpret_cast(result.data());
+ for (int i = 0; i < totalSamples; i++) {
+ // Ограничиваем значение для предотвращения клиппинга
+ qint32 sample = mixBuffer[i];
+ if (sample > 32767) sample = 32767;
+ if (sample < -32768) sample = -32768;
+ resultData[i] = static_cast(sample);
+ }
+ return result;
+}
+
+double SimpleWavWriter::noteToFrequency(int note) const
+{
+ // Формула для преобразования ноты в частоту
+ return 440.0 * pow(2.0, (note - 69) / 12.0);
+}
+
+QByteArray SimpleWavWriter::generateSineWave(double frequency, double duration, double amplitude)
+{
+ int samples = static_cast(duration * format.sampleRate());
+ QByteArray data(samples * sizeof(qint16), 0);
+ qint16 *buffer = reinterpret_cast(data.data());
+
+ double angularFreq = 2.0 * M_PI * frequency;
+ double maxAmplitude = 32767.0 * amplitude;
+
+ for (int i = 0; i < samples; i++) {
+ double t = i / static_cast(format.sampleRate());
+ double value = sin(angularFreq * t);
+ buffer[i] = static_cast(value * maxAmplitude);
+ }
+
+ return data;
+}
+
+QByteArray SimpleWavWriter::generateSquareWave(double frequency, double duration, double amplitude)
+{
+ int samples = static_cast(duration * format.sampleRate());
+ QByteArray data(samples * sizeof(qint16), 0);
+ qint16 *buffer = reinterpret_cast(data.data());
+
+ double period = 1.0 / frequency;
+ double maxAmplitude = 32767.0 * amplitude;
+
+ for (int i = 0; i < samples; i++) {
+ double t = i / static_cast(format.sampleRate());
+ double phase = fmod(t, period) / period;
+ buffer[i] = static_cast((phase < 0.5 ? maxAmplitude : -maxAmplitude));
+ }
+
+ return data;
+}
+
+QByteArray SimpleWavWriter::generateSawtoothWave(double frequency, double duration, double amplitude)
+{
+ int samples = static_cast(duration * format.sampleRate());
+ QByteArray data(samples * sizeof(qint16), 0);
+ qint16 *buffer = reinterpret_cast(data.data());
+
+ double period = 1.0 / frequency;
+ double maxAmplitude = 32767.0 * amplitude;
+
+ for (int i = 0; i < samples; i++) {
+ double t = i / static_cast(format.sampleRate());
+ double phase = fmod(t, period) / period;
+ buffer[i] = static_cast((2.0 * phase - 1.0) * maxAmplitude);
+ }
+
+ return data;
+}
+
+QByteArray SimpleWavWriter::generateTriangleWave(double frequency, double duration, double amplitude)
+{
+ int samples = static_cast(duration * format.sampleRate());
+ QByteArray data(samples * sizeof(qint16), 0);
+ qint16 *buffer = reinterpret_cast(data.data());
+
+ double period = 1.0 / frequency;
+ double maxAmplitude = 32767.0 * amplitude;
+
+ for (int i = 0; i < samples; i++) {
+ double t = i / static_cast(format.sampleRate());
+ double phase = fmod(t, period) / period;
+ double value;
+
+ if (phase < 0.25) {
+ value = 4.0 * phase;
+ } else if (phase < 0.75) {
+ value = 2.0 - 4.0 * phase;
+ } else {
+ value = 4.0 * phase - 4.0;
+ }
+
+ buffer[i] = static_cast(value * maxAmplitude);
+ }
+
+ return data;
+}
+
+QByteArray SimpleWavWriter::generateInstrumentWave(int instrument, double frequency, double duration, double amplitude)
+{
+ // Выбираем форму волны в зависимости от инструмента
+ static QMap waveTypes = {
+ {1, "sine"}, {2, "sine"}, // Piano
+ {3, "square"}, {6, "square"}, // Harpsichord
+ {28, "sawtooth"}, {33, "sawtooth"}, {39, "sawtooth"}, {40, "square"}, // Bass
+ {29, "square"}, {37, "square"}, {38, "square"}, // Guitar
+ {48, "sine"}, {49, "sine"}, // Strings
+ {81, "sine"}, // Sax
+ {95, "triangle"}, {96, "triangle"}, {100, "triangle"} // Bright
+ };
+
+ QString waveType = waveTypes.value(instrument, "sine");
+
+ if (waveType == "square") {
+ return generateSquareWave(frequency, duration, amplitude);
+ } else if (waveType == "sawtooth") {
+ return generateSawtoothWave(frequency, duration, amplitude);
+ } else if (waveType == "triangle") {
+ return generateTriangleWave(frequency, duration, amplitude);
+ } else {
+ return generateSineWave(frequency, duration, amplitude);
+ }
+}
+
+QByteArray SimpleWavWriter::intToBytes(qint32 value)
+{
+ QByteArray bytes(4, 0);
+ bytes[0] = static_cast(value & 0xFF);
+ bytes[1] = static_cast((value >> 8) & 0xFF);
+ bytes[2] = static_cast((value >> 16) & 0xFF);
+ bytes[3] = static_cast((value >> 24) & 0xFF);
+ return bytes;
+}
+
+QByteArray SimpleWavWriter::shortToBytes(qint16 value)
+{
+ QByteArray bytes(2, 0);
+ bytes[0] = static_cast(value & 0xFF);
+ bytes[1] = static_cast((value >> 8) & 0xFF);
+ return bytes;
+}
+
+QString SimpleWavWriter::noteToPentlyNote(int note) const
+{
+ // Преобразуем MIDI номер ноты в формат Pently
+ // MIDI: 60 = C4, 61 = C#4, 62 = D4, и т.д.
+
+ int octave = note / 12;
+ int noteInOctave = note % 12;
+
+ // Базовые названия нот
+ QString noteName;
+ switch (noteInOctave) {
+ case 0: noteName = "N_C"; break;
+ case 1: noteName = "N_CS"; break;
+ case 2: noteName = "N_D"; break;
+ case 3: noteName = "N_DS"; break;
+ case 4: noteName = "N_E"; break;
+ case 5: noteName = "N_F"; break;
+ case 6: noteName = "N_FS"; break;
+ case 7: noteName = "N_G"; break;
+ case 8: noteName = "N_GS"; break;
+ case 9: noteName = "N_A"; break;
+ case 10: noteName = "N_AS"; break;
+ case 11: noteName = "N_B"; break;
+ }
+
+ // Добавляем октаву
+ if (octave == 4) {
+ // Средняя октава (C4-B4) - без суффикса в Pently
+ return noteName;
+ } else if (octave == 5) {
+ // Высокая октава (C5-B5) - добавляем H
+ return noteName + "H";
+ } else if (octave == 3) {
+ // Низкая октава (C3-B3) - добавляем суффикс октавы
+ return noteName + "|OCTAVE_1";
+ } else if (octave == 2) {
+ // Очень низкая октава (C2-B2) - добавляем суффикс
+ return noteName + "L";
+ } else if (octave == 6) {
+ // Очень высокая октава (C6+) - добавляем суффикс
+ return noteName + "H|OCTAVE_1";
+ }
+
+ // По умолчанию возвращаем базовое имя
+ return noteName;
+}
+
+QString SimpleWavWriter::durationToPentlyDuration(double duration) const
+{
+ // Конвертируем длительность в секундах в формат Pently
+ int ticks = secondsToPentlyTicks(duration);
+ return ticksToDelayString(ticks);
+}
+
+QString SimpleWavWriter::instrumentToPentlyInstrument(int instrument) const
+{
+ static QMap instMap = {
+ {1, "PLING_8"}, {2, "PLING_4"}, {3, "PLING_2"}, {6, "PLING_2"},
+ {28, "BASSGUITAR"}, {33, "BASSGUITAR"}, {39, "BASSGUITAR"}, {40, "BASSGUITAR"},
+ {29, "XYLSHORT"}, {37, "XYLSHORT"}, {38, "XYLSHORT"},
+ {48, "XYLMED"}, {49, "XYLMED"}, {81, "HORNBLAT"},
+ {95, "XYLSHORT"}, {96, "XYLSHORT"}, {100, "XYLSHORT"}
+ };
+
+ return instMap.value(instrument, "PLING_8");
+}
\ No newline at end of file
diff --git a/OtherPush/yamitraherIlyaEdit/Yamitracker/simplewavwriter.h b/OtherPush/yamitraherIlyaEdit/Yamitracker/simplewavwriter.h
new file mode 100644
index 0000000..fa6eb87
--- /dev/null
+++ b/OtherPush/yamitraherIlyaEdit/Yamitracker/simplewavwriter.h
@@ -0,0 +1,133 @@
+// simplewavwriter.h
+#ifndef SIMPLEWAVWRITER_H
+#define SIMPLEWAVWRITER_H
+
+#include
+#include
+#include
+#include
+#include
+#include
+
+struct NoteEvent {
+ double time; // Время начала в секундах
+ int note; // Номер ноты (0-127)
+ int velocity; // Сила нажатия (0-127)
+ double duration; // Длительность в секундах
+ int instrument; // Номер инструмента
+ double volume; // Громкость ноты (0.0-1.0)
+
+ NoteEvent(double t = 0, int n = 0, int v = 100, double d = 0, int i = 1, double vol = 1.0)
+ : time(t), note(n), velocity(v), duration(d), instrument(i), volume(vol) {}
+};
+
+class SimpleWavWriter : public QObject
+{
+ Q_OBJECT
+
+public:
+ static const int MAX_TRACKS = 7; // ИЗМЕНЕНО: было 16, стало 7
+ static const int SAMPLE_RATE = 44100; // Улучшенное качество
+ static const int BIT_DEPTH = 16;
+
+ explicit SimpleWavWriter(QObject *parent = nullptr);
+
+ bool startRecording(int sampleRate = SAMPLE_RATE);
+ void stopRecording();
+ bool isRecording() const { return recording; }
+ bool isPaused() const { return paused; }
+ void pauseRecording();
+ void resumeRecording();
+
+ void addNote(int track, double time, int note, int velocity, double duration, int instrument = 1);
+ void clearTrack(int track);
+ void clearAllTracks();
+
+ bool saveToFile(const QString &filename);
+ bool saveToMusicFile(const QString &filename);
+
+ // Работа с дорожками
+ QString getTrackName(int track) const;
+ void setTrackName(int track, const QString &name);
+ int getEventCount(int track) const;
+ int getTrackInstrument(int track) const;
+ void setTrackInstrument(int track, int instrument);
+ double getTrackVolume(int track) const;
+ void setTrackVolume(int track, double volume);
+ bool isTrackMuted(int track) const;
+ void muteTrack(int track, bool muted);
+ bool isTrackSolo(int track) const;
+ void soloTrack(int track, bool solo);
+
+ // Работа с аудиоданными
+ QByteArray getTrackAudioData(int track, bool mix = false);
+ QByteArray getAllTracksAudioData();
+
+ // Загрузка/сохранение дорожек
+ bool loadWavToTrack(const QString &filename, int track);
+ void copyTrack(int fromTrack, int toTrack);
+ void mergeTrack(int fromTrack, int toTrack);
+
+ // Эффекты и настройки
+ void setPlaybackSpeed(double speed);
+ void setBassVolumeMultiplier(double multiplier);
+
+ // Генерация звука
+ QByteArray generateNoteAudio(int note, int velocity, double duration, int instrument, double volume = 1.0);
+ QByteArray generateSilence(double duration);
+
+signals:
+ void trackUpdated(int track);
+ void recordingStatusChanged(bool recording);
+
+private:
+ struct Track {
+ QString name;
+ QVector events;
+ int instrument;
+ double volume;
+ bool muted;
+ bool solo;
+ int index; // Добавляем индекс дорожки
+
+ Track() : instrument(1), volume(1.0), muted(false), solo(false), index(0) {
+ }
+
+ // Конструктор с индексом
+ Track(int idx) : instrument(1), volume(1.0), muted(false), solo(false), index(idx) {
+ name = QString("Дорожка %1").arg(idx + 1);
+ }
+ };
+
+ bool recording;
+ bool paused;
+ QVector