cli

package module
v0.0.1-alpha.16 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 7, 2020 License: Unlicense Imports: 19 Imported by: 0

README

Imgur

codecov

gocomu

gocomu is a command user interface designed to help speed things up when working with comu library.

Installation

You can download the latest pre-compiled binary from releases

or simply run go get github.com/gocomu/cli/cmd/gocomu

Use

Test that everything works by printing -help

$ gocomu -help

      ::::::::       ::::::::       ::::::::       ::::::::         :::   :::      :::    ::: 
    :+:    :+:     :+:    :+:     :+:    :+:     :+:    :+:       :+:+: :+:+:     :+:    :+:  
   +:+            +:+    +:+     +:+            +:+    +:+      +:+ +:+:+ +:+    +:+    +:+   
  :#:            +#+    +:+     +#+            +#+    +:+      +#+  +:+  +#+    +#+    +:+    
 +#+   +#+#     +#+    +#+     +#+            +#+    +#+      +#+       +#+    +#+    +#+     
#+#    #+#     #+#    #+#     #+#    #+#     #+#    #+#      #+#       #+#    #+#    #+#      
########       ########       ########       ########       ###       ###     ########        

  v0.0.1 - GOCOMU CLI

Available commands:

   new       Create New Project 
   serve     Hot load your composition while working
   record    Record audio output in real-time as wav/aiff
   offline   Render audio output as wav/aiff 
   embed     Embed all *.wav/*.aiff files in binary
   build     Build stand-alone application 

Flags:

  -help
        Get help on the 'gocomu' command.
New

gocomu provides cli & gui based templates to get you started.

Project Structure
.
├── cmd
│   ├── gocomu.go
│   └── sampleProject
│       └── main.go
├── embed
│   └── fs.go
├── gocomu.yml
├── go.mod
├── sine.go
└── output/
CLI

gocomu new cli -name sampleProject

GUI

GUI template uses Fyne.

From project's README:

In order to use it you will need Go version 1.12 or later. As Fyne uses CGo you will require a C compiler (typically gcc). If you don't have one set up the instructions at Compiling may help. By default Fyne uses the gl golang bindings which means you need a working OpenGL configuration (or GLES for ARM or mobile devices). Debian/Ubuntu based systems may also need to install the libegl1-mesa-dev and xorg-dev packages.

For more information refer to project's documentation.

gocomu new gui -name sampleProject

Serve

gocomu serve

Record

WIP

Offline render

WIP

Embed

gocomu embed

Build

gocomu build

Roadmap to v1.0.0

  • Create new project
    • CLI Template
    • GUI Template
  • Project serve
    • comu's timeline starting markers flag
  • Project embedder (wav/aiff)
  • Real-time audio recording (wav/aiff)
  • Render offline
  • Build stand-alone app

Documentation

Index

Constants

View Source
const (
	// Cli project type
	Cli = ProjectType(iota)
	// Gui project type
	Gui
)

Variables

This section is empty.

Functions

func BuildApp

func BuildApp() error

BuildApp .

func ClirActions

func ClirActions(cli *clir.Cli)

ClirActions cli handlers

func Embed

func Embed() error

Embed is used to embded all wav/aiff files under 'embed' dir

func Render

func Render(dur, format int, buf audio.Buffer, w io.WriteSeeker) error

Render .

Types

type GocomuYaml

type GocomuYaml struct {
	Name        string
	Description string
	Version     string
	Type        string
	ServeOutput string
}

GocomuYaml .

func Yaml

func Yaml() (*GocomuYaml, error)

Yaml reads & returns content from gocomu.yml

type ProjectType

type ProjectType int

ProjectType type helps cli's `cli` subcommand

type RTout

type RTout int

RTout type helps cli's -out flag

const (
	// PortAudio output
	PortAudio RTout = iota
	// Oto output
	Oto
)

Directories

Path Synopsis
cmd
gocomu command

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL