Post on 07-Jun-2020
acSequencerAudio Sequencer unit partially controlled via a mobile application.
Group 10: Brandon Marcoux (CpE) Giani Francis (Cpe)
Miguel Chavez (Cpe) Alexis San Javier (Cpe)
What is an Audio Sequencer?Project Description
Audio Sequencers
● Programmed music, sounds over time.● Implemented in many different ways for
many different platforms.● Sounds assigned to channels, dynamically or
statically.● Output can be a trigger signal or audio.● Basic components: Start/Stop button,
sequencing button array, Tempo and Volume controls.
What do we aim to change?● Update the sequencing workflow for the modern day.
○ Phones in place of computers.○ Bluetooth sound transfer in place of wired connection or transferable storage medium.
● Improve portability while maintaining appeal of physical unit.● Share your sounds with your friends.● Add new sounds easily.● Low price point
Goals and Objectives● Main Goal: Create a professional grade product that musicians will prefer to use over other
commercially available options.● Maintain well formatted documentation in order to ensure the project is scaleable and
maintainable.● Design a product that will durable and easily replicated and built.
System Design
Requirements● MCU -> Smartphone wirelessly for sound transfer● 8 channels x 16 steps.● MCU can store at least 8 10-second sound files.● Physical unit with at least two output options.● Mobile application allows user to select sets of sound samples from an existing library as
well as access their own for uploading to the MCU.● Unit weight of less than 5 pounds.● Unit can run on battery power or from a power supply (provided with the unit).● Users can alter tempo and volume from the unit.
System component Diagram
Hardware Design andImplementation
Multiplexing overview● Necessary due to limited number of pins on MCU.● Handle outputting signal for LEDs, input signal for buttons.● Utilizing bicolor LEDs, 8x16 array, makes for 256 effective LEDs.
○ Secondary color will be lit per row (16 rows) to show tempo cycle, so we don’t need control of individual LEDs.
○ Reduces effective LED number to 144.
● 8x16 buttons = 128 buttons.● The MCU does not have 272 GPIO pins.
Button Multiplexing● The best way we could find to multiplex the buttons was to connect them in rows and
columns. That way, when we read which button is pressed, we can detect the row and column and figure out which button has been pressed. All buttons are momentary push buttons.
● With the SN74LS148 one can utilize multiple units and cascade them with a multi NAND gate in order to implement a 16:4 encoder.
● Utilizing one SN74LS148 (8:3 encoding) for the columns and two in a 16:4 configuration will accommodate reading all buttons using only 7 GPIO pins.
LED Multiplexing● Shift Register implementation (74HC595) vs Decade counter implementation (CD4017B)
vs LED Display Driver (MAX7219).● Based on the number needed and efficiency the MAX7219 was the obvious option.
MCUThe microcontroller selection was the most important decision to make in the design of our project. We chose the ATmega328 for the following reasons -
● high performance
● low power
● large online community for support during development
● 5V operating voltage
● 32KB flash memory
● processing speeds of 16MHz.
● cost effective
Bluetooth Module● The SH-HC-08 is a Bluetooth 4.0 BLE module is required for our wireless design. ● The Bluetooth module will allow us to send instructions, sound files, and sound set
outputs wirelessly. ● Permits the transfer of serial data from our mobile application to hardware
Bluetooth Unit Operating Voltage (V)
Pins Required Version Price ($)
Bluefruit LE 3.3-5 6 4.0 BLE 17
HC-06 RS232 TTL 3.3 2 2.0 7
SH-HC-08 3.3-5 2 4.0 BLE 8
Bluetooth Data Transfer Data transfer for our project will be done using serial communication. Below is a prototype of the steps taken to control the sequencer from the mobile application.
● Mobile Application will send sounds associated with each row in the LED matrix to the bluetooth peripheral.
● Bluetooth module will read in serial data● Microcontroller will store value of that data in some
variable● The values stored on the MCU will correspond with a
sound and row
SD Card Module● We will be using the Adafruit SD Card Breakout Board● Playing audio files from the SD card is a key function of this project. ● If the SD Card breakout board is configured correctly on the board, the hardware has the
capability to read and write files to the MicroSD card using simple code.● If we are able to read wav files to the SD card, this can lead to several potential features.
Playing Multiple SoundsRequirements needed to test and play multiple sounds are:
● ATmega328 microcontroller● Adafruit SD Card Breakout Board● MicroSD card● Speaker (at least 8 ohm)● TMRcpm WAV library for arduino. ● Summing Solutions
Enclosure● Material Property Considerations:
○ Weight○ Durability○ Ease of construction
● Materials considered:○ Wood○ Plastic (3d printed)
Power Constraints● All chosen components run on 9, 5, or 3.3 volts.● A system requirement specifies that we must be able to supply the system from a battery or
a wall outlet.
Voltage Regulator Selection● Decided on L78xx series based on:
○ Price point○ Consistency○ We will be able to source all regulators we require from this one series.
SchematicAdd alexis full schematic
SchematicAdd alexis full schematic Main LED Array
SchematicAdd alexis full schematic Secondary LED Array
SchematicAdd alexis full schematic MCU
SchematicAdd alexis full schematicButton Array
PCBMaterials
- Single Layer Copper Clad Board- Muriatic Acid and Hydrogen Peroxide- Drill- Soldering Gun
Process
- Print PCB design on paper and Iron onto Copper Board- Melt Copper using acid mixture - Clean board and drill holes- Solder Components
Software Design andImplementation
System Software Architecture 4 Main Software Components
- Website- Database- Mobile Application- MCU
DatabaseGoogle Firebase
SQL vs Firebase
Firebase
●●●
■■■■
Firebase layout
● ●
Firebase layout cont.
● Sounds ● Users
Mobile Application
Class Diagram
●○○○
●○○
UML Diagram
●○
●●●●
Native vs Hybrid vs Xamarin
iOS Application Design
●○
●○
●○
●○
■■
○■
○■■■
iOS Application UI● Menu
○ 4 Sections■ Sound Sets■ Upload■ Settings■ Log Off
● Sound Sets○ Search through Sound Sets
■ UISearchController○ Add new Sound Sets○ Select a Sound Set to Edit
■ UICollectionView
iOS Application UI● Edit Sound Set
○ Delete Sound set○ Add /Delete Channels○ Play sound on Channel ○ Edit Title○ Select a Sound to Edit
■ UICollectionView
● Select Sound for Channel○ Search through sounds
■ UISearchController○ Add new Sound Sets
Website
Website Functionality
- Create Account- Edit Profile Information
- Username - Password- etc..
- Upload Sounds- Edit Sound Sets
- Create- Delete- Rename
Website UI
Administrative
MilestonesFall 2017
Description Duration Dates
Purchase Remaining Parts and Test Components
1 week August 28th -September 4th
Build Prototype 8 weeks September 4th -October 9th
Test sound files pushing to database using Bluetooth Communication from device to app
1 week September 4th-September 11th
Test LED responsive using Bluetooth Communication from mobile app to device
1 week September 11th-September 18th
Test Playing audio files using Bluetooth Communication from mobile app to device
1 week September 18th-September 25th
Test Playing multiple sounds on the device from the software
1 week September 25th-October 2nd
Test playing files on website once sound set is pushed to database
1 week October 2nd -October 9th
Integrate Software 2 weeks October 9th-October 23rd
Build the housing for the sequencer
1 week October 16th -October 23rd
Debug and Optimize Software 1 week October 16th -October 23rd
Test Prototype 2 weeks October 23rd-November 6th
Finalize Project 2 weeks November 6th-November 20th
Practice Presentation 1 week November 20th-November 27th
Progress
BudgetItem Cost
5Pcs MAX7219 DIP-24 8-Bit LED Drivers Chips for LED display/ Instrument $10.90
20PCS SN74HC00N SN74HC00 74HC00N 74HC00 DIP14 IC#20236 $6.99
2 of Chanzon 100 pcs 5mm Red & Yellow-Green LED Diode Lights $6.47
Adafruit MicroSD card breakout board+ [ADA254] $8.38
DSD TECH SH-HC-08 Bluetooth 4.0 BLE Transceiver for Arduino Compatible with iO $7.99
Major Brands 74LS148 ICs and Semiconductors, 8 to 3 Line Priority Encoder (Pack of 4) $11.11
2 of 100 Pcs GZFY 6x6x4.5mm Panel PCB Momentary Tactile Tact Push Button Switch 4 Pin DIP $5.99
3M 9000NA-20-CC Sandpaper Aluminum Obyide, 9-Inch by 11-Inch, Very Fine $5.07
Hydrogen Peroxide Antiseptic Solution 16 Oz $5.88
Super Nail Pure Acetone Polish Remover, 8 oz $6.42
Single Sided Copper Clad Laminate PCB Circuit Board 4X3 (10pcs) $10.99
Green Envy Muriatic Acid $10.99
Total $91.18
Work Distribution
Mobile App Web Application Bluetooth Communication/Data Transfer
System Design/Hardware
Miguel Chavez Primary Secondary
Giani Francis Secondary Primary Secondary
Brandon Marcoux Primary
Alexis San Javier Primary Secondary
Questions?