3

Я надеялся, что какой-нибудь супер-эксперт по электронике сможет дать мне несколько советов. Как мне получить этот http://www.amazon.co.uk/Cherub-WTB-004-Keyboard-Sustain-Pedal/dp/B000UDVV6E для работы с моим компьютером? Я в основном хочу использовать его для замены / эмуляции нажатия клавиш или чего-то в моих играх. Кто-нибудь с некоторым опытом с чем-то вроде этого получил какой-нибудь совет? Я готов попробовать простые хаки, связанные с программным обеспечением ... или более сложные программные продукты, если для этого есть ресурсы в Интернете.

Редактировать:

Форма волны педали

Я попытался подключить его к разъему для микрофона, и вот, всякий раз, когда я активирую (нажимаю) педаль, я получаю сигнал - это запись (на наглость).

Первый "толстый" - от нажатия на педаль, остальные были просто постукивания.

4 ответа4

2

Зачем проходить через все неприятности, когда вы можете просто купить именно то, что вы ищете? Педали USB Foot сделано для ПК, как это:

Они дешевые и делают именно то, что вы хотите сделать.

1

На самом деле сделать это. Все, что вам действительно нужно, это клавиатура. Что - то небольшое , как это. Гут педаль и клавиатуру. Возможно, вы даже сможете установить клавиатуру внутри педали с помощью USB-кабеля, чтобы заменить аудио-провод. Педаль, вероятно, имеет 3 провода, + & - и резистор. Просто найдите + и - ведет методом проб и ошибок (только 6 возможных вариантов). Подсоедините один из ключей к проводам педали. Когда вы нажимаете педаль и замыкаете цепь ... нажатие клавиши!

0

Ну, прошло уже 7 месяцев или около того, и я полностью забыл об этом ... вернулся и попробовал снова сегодня, и мне удалось заставить его работать.

Вот простая программа на Java, которая работает для моей педали. Он преобразует нажатия в клавиатуру "V" (мне нужно активировать +voice_record в cS GO)

package pedal2keyboard;

import java.io.ByteArrayOutputStream;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;

import javax.sound.sampled.*;

import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.KeyEvent;

/***
 * Author: Dois Koh
 * Date: 27th October 2015
 * 
 * Gets your microphone signal and you can go do whatever you want with it.
 * Right now, it takes signals from my Cherub WTB-004 Keyboard Sustain Pedal, plugged into
 * my microphone jack, and converts it into key presses (holds down V when depressed,
 * releases V when released)
 */
public class PedalToKeyboard {

    // Robot for performing keyboard actions (pressing V)
    public static Robot robot = null;

    // Currently 8KHz, 16 bit signal (2 bytes), single channel, signed (+ and -) and BIG ENDIAN format
    public static AudioFormat format = new AudioFormat(8000.0f, 16, 1, true, true);

    public static TargetDataLine microphone = null;
    public static boolean pedalPressed = false;

    public static void main(String[] args) {

        try {
            // Initialize robot for later use
            robot = new Robot();

            // Retrieve the line to from which to read in the audio signal
            microphone = AudioSystem.getTargetDataLine(format);

            // Open the line in the specified format -
            // Currently 8KHz, 16 bit signal (2 bytes), single channel, signed (+ and -) and BIG ENDIAN format      
            microphone.open(new AudioFormat(8000.0f, 16, 1, true, true));

            ByteArrayOutputStream out = new ByteArrayOutputStream();
            byte[] data = new byte[microphone.getBufferSize()/8];

            // Begin audio capture.
            microphone.start();

            int numBytesRead = 0;
            short previousShort = 0;

            // Continue until program is manually terminated
            while (true) {

                // Read the next chunk of data from the TargetDataLine.
                numBytesRead = microphone.read(data, 0, data.length);

                // Reset the buffer (get rid of previous data)
                out.reset();

                // Save this chunk of data.
                out.write(data, 0, numBytesRead);

                byte[] bytes = out.toByteArray();
                short[] shorts = new short[bytes.length/2];

                // to turn bytes to shorts as either big endian or little endian. 
                ByteBuffer.wrap(bytes).order(ByteOrder.BIG_ENDIAN).asShortBuffer().get(shorts);

                // Iterate through retrieved 16 bit data (shorts)
                for (short s : shorts) {

                    // Check if descending or ascending (pedal press is descending, release is ascending)
                    if (s < 0) { // descending                  
                        // make sure drop is large instantaneous drop
                        if (Math.abs(previousShort - s) > 200 && s < -32700) {
                            if (!pedalPressed) {
                                PedalPressedAction();
                                previousShort = s;
                                break;
                            }
                        }
                    } else if (s > 0) { // ascending
                        // make sure increase is large instantaneous increase
                        if (Math.abs(previousShort - s) > 200 && s > 32700) {
                            if (pedalPressed) {
                                PedalReleasedAction();
                                previousShort = s;
                                break;
                            }
                        }
                    }

                    previousShort = s;
                }
            }    

        } catch (LineUnavailableException | AWTException e) {
            e.printStackTrace();
        } finally {
            if (microphone != null)
                microphone.close();
        }
    }

    /***
     * The action to perform when the pedal is depressed
     */
    public static void PedalPressedAction() {
        pedalPressed = true;
        robot.keyPress(KeyEvent.VK_V);
    }

    /***
     * The action to perform when the pedal is released
     */
    public static void PedalReleasedAction(){
        pedalPressed = false;
        robot.keyRelease(KeyEvent.VK_V);        
    }
}
-2

Как вы обнаружили, эта педаль является просто мгновенным переключателем.

Для считывания состояния переключателя и конвертации в midi вам понадобится "головное" устройство midi; способ подключить это головное устройство к компьютеру; а затем программное обеспечение для использования ввода MIDI.

Кроме того, вы можете посмотреть на устройства, которые преобразуются во входные данные джойстика. Люди, которые делают симуляторы кабины, используют настоящие переключатели для взаимодействия с программным обеспечением сима. Если вы пойдете по этому пути, вы будете использовать простой драйвер джойстик-миди, а затем программное обеспечение, подходящее для использования со входами.

Обратите внимание, что вы можете получить 10 $ геймпад и взломать выводы на плате и подключить 1 $ переключатели Radio Shack, установленные на плате, для целого ряда ножных педалей. Вы бы использовали драйвер joy-midi для направления сигналов на DAW или Amp Simulator.

Обычно для музыкального интерфейса и интеграции записи требуется приложение DAW (Digital Audio Workstation).

Существуют также аудиоинтерфейсы в стиле педали вау-вау, которые имеют порты для педалей экспрессии. Обычно они предназначены для гитары, но нет никаких причин, по которым вы не можете использовать их в качестве обычных аудиоинтерфейсов, а сигналы MIDI можно направить на ЛЮБУЮ функцию, поэтому педаль управления можно использовать, например, для кроссфейдера, громкости, вау, тумблера и т. д.

Даже при наличии соответствующего устройства, чтобы нажать кнопку для регистрации на вашем ПК, вы не можете использовать Audacity для этого. Вы можете попробовать бесплатный "vsthost" и некоторые обработчики эффектов VST (попробуйте "simuanalog" также бесплатно). VSTHost является хостом для загрузки усилителей и может направлять входные сигналы миди и джойстика на любую выставленную функцию / кнопку / диск в приложении VST. Он имеет встроенный рекордер, и вы можете редактировать файлы с дерзостью.

Все, что генерирует напряжение, может быть подключено к гнезду микрофона и генерировать записываемый сигнал, если только он не поджигает компьютер и даже тогда ...

Итак: подведем итоги. Вам нужно взломать два провода (1/4-1/8-дюймовый кабель, зачищенный и припаянный к джойстику) или иным образом получить сигнал на компьютер в виде джойстика или миди. Затем вы можете перевести этот сигнал на все, что его обрабатывает. Joy2midi, переводчик Midi, midi2joy.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .