Project #16: Sound – Audacity – Mk06

——

#donluc #sound #audacity #synthesizer #programming #arduino #fritzing #electronics #microcontrollers #consultant #vlog

——

Audacity

——

Audacity

Audacity

Free, open source, cross-platform audio software. Audacity is an easy-to-use, multi-track audio editor and recorder for Windows, macOS, GNU/Linux and other operating systems. Developed by a group of volunteers as open source.

Recording

Audacity can record live audio through a microphone or mixer, or digitize recordings from other media.

Export / Import

Import, edit, and combine sound files. Export your recordings in many different file formats, including multiple files at once.

Sound Quality

Supports 16-bit, 24-bit and 32-bit. Sample rates and formats are converted using high-quality resampling and dithering.

Plugins

Support for LADSPA, LV2, Nyquist, VST and Audio Unit effect plug-ins. Nyquist effects can be easily modified in a text editor – or you can even write your own plug-in.

Editing

Easy editing with Cut, Copy, Paste and Delete. Also unlimited sequential Undo (and Redo) in the session to go back any number of steps.

Effects

Real-time preview of LADSPA, LV2, VST and Audio Unit (macOS) effects. Plug-in Manager handles plug-in installation and addition/removal of effects and generators from the menus.

Accessibility

Tracks and selections can be fully manipulated using the keyboard. Large range of keyboard shortcuts.

Analysis

Spectrogram view mode for visualizing and selecting frequencies. Plot Spectrum window for detailed frequency analysis.

Arduino

The keyboard functions prevent Arduino Uno a processor ATmega328P to send keystrokes to an attached computer through their micro’s native USB port. Keyboard processor ATmega32U4 command the Leonardo, Micro, Due board, Pro Micro, and Fio v3. The approximately 150 most important functions in Audacity can be controlled and triggered with shortcuts, by pressing multiple keys on the computer keyboard. Keyboard Serial listens for a byte coming from the serial port. When received, the board sends a keystroke back to the computer.

DL2010Mk05

1 x Fio v3 – ATmega32U4
1 x 4×4 Matrix Keypad
8 x Jumper Wires 6in M/F
1 x Half-Size Breadboard
1 x SparkFun Cerberus USB Cable

Fio v3 – ATmega32U4

KP2 – Digital 2
KP3 – Digital 3
KP4 – Digital 4
KP5 – Digital 5
KP6 – Digital 6
KP7 – Digital 7
KP8 – Digital 8
KP9 – Digital 9
VIN – +3.3V
GND – GND

DL2010Mk05p.ino

// ***** Don Luc Electronics © *****
// Software Version Information
// Project #16: Sound - Audacity - Mk06
// 10-05
// DL2010Mk05p.ino 16-06
// 1 x Fio v3 - ATmega32U4
// 1 x 4x4 Matrix Keypad
// 8 x Jumper Wires 6in M/F
// 1 x Half-Size Breadboard
// 1 x SparkFun Cerberus USB Cable

// Include the Library Code
// 4x4 Matrix Keypad
#include 
#include "Keyboard.h"

// 4x4 Matrix Keypad
// Four rows
const byte ROWS = 4;
// Four columns
const byte COLS = 4;
// Define the symbols on the buttons of the keypads
char hexaKeys[ROWS][COLS] = {
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {'*','0','#','D'}
};
// Connect to the row pinouts of the keypad
byte rowPins[ROWS] = {5, 4, 3, 2};
// Connect to the column pinouts of the keypad
byte colPins[COLS] = {9, 8, 7, 6};

// Initialize an instance of class NewKeypad
Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS); 

char customKey;

// Software Version Information
String sver = "16-06";

void loop() {

  // 4x4 Matrix Keypad
  isKeypad();

  delay( 50 );
  
}

getKeypad.ino

// 4x4 Matrix Keypad
// Keypad
void isKeypad() {

  // 4x4 Matrix Keypad
  customKey = customKeypad.getKey();

  if ( customKey == '0' ){
    
    // 0 = Go to Selection Start
    delay(10);
    Keyboard.press(KEY_LEFT_CTRL);
    delay(10);
    Keyboard.press('[');
    delay(10);
    Keyboard.releaseAll();
    
  } 

  if ( customKey == '1' ){

    // 1 = Increase gain on focused track 1 dB.
    delay(10);
    Keyboard.press(KEY_LEFT_ALT);
    delay(10);
    Keyboard.press(KEY_RIGHT_SHIFT);
    delay(10);
    Keyboard.press(KEY_UP_ARROW);
    delay(10);
    Keyboard.releaseAll();

  } 

  if ( customKey == '2' ){
    
    // 2 = Zoom In
    delay(10);
    Keyboard.press(KEY_LEFT_CTRL);
    delay(10);
    Keyboard.press('1');
    delay(10);
    Keyboard.releaseAll();
    
  } 

  if ( customKey == '3' ){
    
    // 3 = Play/Stop
    delay(10);
    Keyboard.press(KEY_LEFT_SHIFT);
    delay(10);
    Keyboard.press('A');
    delay(10);
    Keyboard.releaseAll();
    
  } 

  if ( customKey == '4' ){
    
    // 4 = Decrease gain on focused track 1 dB.
    delay(10);
    Keyboard.press(KEY_LEFT_ALT);
    delay(10);
    Keyboard.press(KEY_RIGHT_SHIFT);
    delay(10);
    Keyboard.press(KEY_DOWN_ARROW);
    delay(10);
    Keyboard.releaseAll();
    
  } 

  if ( customKey == '5' ){
    
    // 5 = Zoom Normal
    delay(10);
    Keyboard.press(KEY_LEFT_CTRL);
    delay(10);
    Keyboard.press('2');
    delay(10);
    Keyboard.releaseAll();
    
  } 

  if ( customKey == '6' ){
    
    // 6 =
    
  } 

  if ( customKey == '7' ){
    
    // 7 =
    
  } 

  if ( customKey == '8' ){
    
    // 8 = Zoom Out
    delay(10);
    Keyboard.press(KEY_LEFT_CTRL);
    delay(10);
    Keyboard.press('3');
    delay(10);
    Keyboard.releaseAll();
    
  } 

  if ( customKey == '9' ){
    
    // 9 =
    
  } 

  if ( customKey == 'A' ){
    
    // A = Skip to Start
    delay(10);
    Keyboard.press(KEY_HOME);
    delay(10);
    Keyboard.releaseAll();
     
  } 

  if ( customKey == 'B' ){
    
    // B = Skip to End
    delay(10);
    Keyboard.press(KEY_END);
    delay(10);
    Keyboard.releaseAll();
     
  } 

  if ( customKey == 'C' ){
    
    // C = 
     
  } 
  
  if ( customKey == 'D' ){
    
    // D = 
     
  } 

  if ( customKey == '*' ){
    
     // * =
     
  }

  if ( customKey == '#' ){
    
     // # =
     
  }

}

setup.ino

// Setup
void setup() {

  // Open the serial port
  Serial.begin(9600);
  // Initialize control over the keyboard
  Keyboard.begin();
  
}

Technology Experience

  • Single-Board Microcontrollers (PIC, Arduino, Raspberry Pi,Espressif, etc…)
  • Robotics
  • Research & Development (R & D)
  • Desktop Applications (Windows, OSX, Linux, Multi-OS, Multi-Tier, etc…)
  • Mobile Applications (Android, iOS, Blackberry, Windows Mobile, Windows CE, etc…)
  • Web Applications (LAMP, Scripting, Java, ASP, ASP.NET, RoR, Wakanda, etc…)
  • Social Media Programming & Integration (Facebook, Twitter, YouTube, Pinterest, etc…)
  • Content Management Systems (WordPress, Drupal, Joomla, Moodle, etc…)
  • Bulletin Boards (phpBB, SMF, Vanilla, jobberBase, etc…)
  • eCommerce (WooCommerce, OSCommerce, ZenCart, PayPal Shopping Cart, etc…)

Instructor

  • Arduino
  • Raspberry Pi
  • Espressif
  • Robotics
  • DOS, Windows, OSX, Linux, iOS, Android, Multi-OS
  • Linux-Apache-PHP-MySQL

Follow Us

J. Luc Paquin – Curriculum Vitae
http://www.donluc.com/DLHackster/LucPaquinCVEngMk2020a.pdf

Web: http://www.donluc.com/
Web: http://www.jlpconsultants.com/
Web: http://www.donluc.com/DLHackster/
Web: https://www.hackster.io/neosteam-labs
Facebook: https://www.facebook.com/neosteam.labs.9/
YouTube: https://www.youtube.com/channel/UC5eRjrGn1CqkkGfZy0jxEdA
Twitter: https://twitter.com/labs_steam
Pinterest: https://www.pinterest.com/NeoSteamLabs/
Instagram: https://www.instagram.com/luc.paquin/

Don Luc

Leave a Comment